diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx | 3345 |
1 files changed, 1255 insertions, 2090 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx index c89b94151c4..940d1c81e2d 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1323} +% \CheckSum{1266} % \iffalse meta-comment % % ============================================================================ @@ -18,13 +18,13 @@ % % ---------------------------------------------------------------------------- % -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz -% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle -% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und -% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 -% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status -% "author-maintained", wird somit allein durch den Autor verwaltet. Der -% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +% "author-maintained", wird somit allein durch den Autor verwaltet. Der +% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. % % ============================================================================ % @@ -51,28 +51,24 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-fonts.dtx}[% - 2015/11/29 v2.04c TUD-KOMA-Script\space% + 2016/07/15 v2.05 TUD-KOMA-Script\space% %</driver> -%<package&identify>\NeedsTeXFormat{LaTeX2e} -%<package&identify>\ProvidesPackage{% -%<package&identify&!fontsizes> tudscrfonts% -%<package&identify&fontsizes> tudscrfontsizes% -%<package&identify>}[% +%<package&identify>\ProvidesPackage{tudscrfonts}[% %<*driver|package&identify> -%!TUDVersion -%<package> package -%<!fontsizes> (corporate design fonts)% -%<fontsizes> (creatings fontsize files)% +%!TUD@Version +%<package> package (corporate design fonts)% ] %</driver|package&identify> %<*driver> \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman]{tudscrdoc} +\documentclass[english,ngerman,xindy]{tudscrdoc} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{tudscrfonts} % only load this package, if the fonts are installed \KOMAoptions{parskip=half-} +\usepackage{microtype} +\usepackage{bookmark} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-fonts.dtx} @@ -85,9 +81,9 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A -% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A -% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} entfernt}^^A +% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A +% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A +% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} unnötig}^^A % \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}^^A % \changes{v2.04}{2015/02/27}{Interaktion mit Paketen insbesondere für % den Mathematiksatz verbessert}^^A @@ -96,25 +92,24 @@ % % \section{Schriften des \CDs} % -% Für das \CD der Technischen Universität Dresden werden die Schriften Univers -% und DIN"~Bold zwingend benötigt. Zur fehlerfreien Verwendung dieser Klassen -% sollten diese bitte installiert werden. Hier werden die \LaTeX-Befehle zur -% Verwendung der Schriften im Dokument definiert. Sollen nur kurze Passagen in -% einer anderen Schrift als der restliche Text gesetzt werden, so sollten -% anstatt der einfachen Schalter wie beispielsweise \cs{univ\dots} besser die -% Befehle \cs{text\dots}\marg{Auszeichnungstext} verwendet werden. +% Für das \CD der Technischen Universität Dresden werden die Schriften \Univers +% und \DIN benötigt. Zur fehlerfreien Verwendung dieser Klassen sollten diese +% bitte installiert werden. Hier werden die \LaTeX-Befehle zur Verwendung der +% Schriften im Dokument definiert. Sollen nur kurze Passagen in einer anderen +% Schrift als der restliche Text gesetzt werden, so sollten anstatt der +% einfachen Schalter wie beispielsweise \cs{univ\dots} besser die Befehle +% \cs{text\dots}\marg{Auszeichnungstext} verwendet werden. % % Die Schriften des \CDs können nicht nur mit den \TUDScript-Klassen sondern % auch mit anderen \LaTeX-Dokumentklassen verwendet werden. Hierfür wird das % Paket \pkg{tudscrfonts} bereitgestellt. Damit kann auf die Installtion der % Schriftfamilien für die alten Klassen verzichtet werden. Im Vergleich zu % dieser Installation werden dabei fehlende Glyphen ergänzt und Probleme beim -% Kerning behoben. +% Kerning behoben. % -% \StopEventually{\PrintIndex\PrintChanges} +% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % % \iffalse -%<*!fontsizes> %<*class&option> % \fi % @@ -122,7 +117,7 @@ % % \begin{macrocode} \PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% @@ -135,18 +130,39 @@ % \fi % % Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket -% \pkg{scrextend} benötigt. Das Paket \pkg{trimspaces} ist für die alternative -% Schriftauswahl mit \cs{cdfont} bzw. \cs{textcdfont} notwendig. +% \pkg{scrextend} benötigt. % \begin{macrocode} -\ifcsname KOMAClassName\endcsname\else% - \RequirePackage{scrextend}[2013/12/19]% +\ifcsname KOMAClassName\endcsname\else + \RequirePackage{scrextend}[2013/12/19] \fi -\RequirePackage{trimspaces}[2009/09/17] +% \end{macrocode} +% Wird das Paket \pkg{tudscrfonts} nach einer der Klassen verwendet, welche die +% veralteten Schriftfamilien für \Univers und \DIN definieren, so wird eine +% Warnung mit dem Hinweis auf das Paket \pkg{fix-tudscrfonts} ausgegeben. +% \begin{macrocode} +\@tempswafalse% +\@for\@tempa:={% + tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,% + tudposter,tudmathposter,tudscrbookold,tudscrreprtold,tudscrartclold% +}\do{% + \@ifclassloaded{\@tempa}{% + \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi% + }{}% +}% +\if@tempswa% + \@ifpackageloaded{fix-tudscrfonts}{}{% + \PackageWarning{tudscrfonts}{% + As you loaded class `\@tempb', you should\MessageBreak% + load `fix-tudscrfonts' before the class\MessageBreak% + with `\string\RequirePackage'% + }% + }% +\fi% % \end{macrocode} % % \iffalse %</package&identify> -%<*(class|package)&option> +%<*option> % \fi % % \subsection{Schriftauswahl im \TUDScript-Bundle} @@ -160,987 +176,260 @@ % Installation der PostScript"=Schriften gut funktioniert, ist diese Variante % zu bevorzugen. Trotzdem werden beide Varianten, die Schriftfamilie des \CDs % für den Fließtext und die Überschriften zu verwenden, angeboten. -% \begin{option}{fontspec} -% \changes{v2.02}{2014/08/29}{neu}^^A -% \begin{macro}{\if@tud@fontspec} +% +% \begin{macro}{\if@tud@x@fontspec@enabled} % \changes{v2.02}{2014/08/29}{neu}^^A +% Wird das Paket \pkg{fontspec} durch den Nutzer geladen, wird der passende +% Schlüssel gesetzt und die Schrifteinstellungen erfolgen mit den dazugehörigen +% Befehlen. Dies wurde in früheren Versionen mit der Option \opt{fontspec} +% realisiert, die auch weiterhin bereitgehalten wird. Deshalb muss der Schalter +% bereits vor der Abarbeitung der Optionen definiert werden. +% \begin{macrocode} +\newif\if@tud@x@fontspec@enabled +\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue} +% \end{macrocode} +% \end{macro}^^A \if@tud@x@fontspec@enabled +% +% \iffalse +%</option> +%<*body> +% \fi +% +% \begin{macro}{\tud@univers} % \begin{macro}{\if@tud@univers} +% \begin{macro}{\if@tud@universmath} +% \changes{v2.05}{2015/12/14}{neu}^^A +% \begin{macro}{\tud@dinbold} % \begin{macro}{\if@tud@dinbold} % \changes{v2.02}{2014/08/29}{neu}^^A -% \begin{macro}{\tud@univers} -% \begin{macro}{\tud@dinbold} -% \begin{macro}{\tud@mathenc} -% \changes{v2.04}{2015/02/19}{entfernt}^^A -% Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes -% \pkg{fontspec} aktiviert werden. Alternativ kann das Paket auch durch den -% Nutzer selbst geladen werden. Zu Beginn werden Schalter und Hilfsmakros -% definiert. +% \begin{macro}{\if@tud@dinboldmath} +% \changes{v2.05}{2015/12/14}{neu}^^A +% Zu Beginn werden Schalter und Hilfsmakros definiert. % \begin{macrocode} -\newif\if@tud@univers -\newif\if@tud@dinbold \newcommand*\tud@univers{lun} +\newif\if@tud@univers +\newif\if@tud@universmath \newcommand*\tud@dinbold{0m6} +\newif\if@tud@dinbold +\newif\if@tud@dinboldmath % \end{macrocode} -% Hier kommt die eigentliche Option. -% \begin{macrocode} -\newif\if@tud@fontspec -\TUD@key{fontspec}[true]{% -%<*class> - \ClassWarning{\TUDClassName}% -%</class> -%<*package> - \PackageWarning{tudscrfonts} -%</package> - {% - The option key `fontspec' is deprecated.\MessageBreak% - You should load the package `fontspec' manually% - }% - \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% -} -% \end{macrocode} -% Da dieser Prozess sehr tief in die Schriftauswahl eingreift und das Laden des -% Paketes die Schriftauswahl für das ganze Dokument verändert, wird diese -% Option nur beim Laden der Klasse zugelassen. -% \begin{macrocode} -%<*class> -\AtEndOfClass% -%</class> -%<*package> -\AtEndOfPackage% -%</package> -{% - \TUD@key{fontspec}[]% - {% -%<*class> - \ClassError{\TUDClassName}% -%</class> -%<*package> - \PackageError{tudscrfonts}% -%</package> - {Option `fontspec' too late}{% - Option `fontspec' can only be set while loading the\MessageBreak% -%<*class> - class `\TUDClassName' -%</class> -%<*package> - package `tudscrfonts' -%</package> - but you have tried to set it up later.% - }% - \FamilyKeyStateProcessed% - }% - \if@tud@fontspec% - \RequirePackage{fontspec}[2014/06/21]% - \fi% -} -% \end{macrocode} -% Sobald das Paket \opt{fontspec} manuell geladen wurde, wird auch der passende -% Schlüssel gesetzt. -% \begin{macrocode} -\AfterPackage*{fontspec}{\@tud@fontspectrue} -% \end{macrocode} -% \end{macro}^^A \tud@mathenc -% \end{macro}^^A \tud@dinbold -% \end{macro}^^A \tud@univers +% \end{macro}^^A if@tud@dinboldmath % \end{macro}^^A if@tud@dinbold +% \end{macro}^^A if@tud@universmath % \end{macro}^^A if@tud@univers -% \end{macro}^^A \if@tud@fontspec -% \end{option}^^A fontspec -% -% \iffalse -%</(class|package)&option> -%<*(class|package)&body> -% \fi +% \end{macro}^^A \tud@dinbold +% \end{macro}^^A \tud@univers +% \begin{macro}{\tud@font@check} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@x@fontspec@noerror} +% \changes{v2.05}{2015/12/14}{neu}^^A +% Mit \cs{tud@font@check} wird überprüft, ob die benötigten Schriften \Univers +% und \DIN im PostScript- bzw. OTF-Format installiert sind und die passenden +% Schalter gesetzt. Beim Nichtvorhandensein der Schriften wird im eine Warnung +% ausgegeben und eine Rückfallebene definiert. % -% \begin{macro}{\tud@font@greek@loop} -% \changes{v2.04}{2014/03/10}{neu}^^A -% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird -% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der -% Buchstaben durchlaufen wird. -% \begin{macrocode} -\newcommand*\tud@font@greek@loop[1]{% - \@for\@tempa:={% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% - }\do{#1{\@tempa}}% -} -% \end{macrocode} -% \end{macro}^^A \tud@font@greek@loop -% \begin{macro}{\tud@font@greek@declare} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Gamma} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Delta} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Theta} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Lambda} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Xi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Pi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Sigma} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Upsilon} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Phi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@Psi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upOmega} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upGamma} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upDelta} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upTheta} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upLambda} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upXi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upPi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upSigma} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upUpsilon} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upPhi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upPsi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@upOmega} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varGamma} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varDelta} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varTheta} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varLambda} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varXi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varPi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varSigma} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varUpsilon} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varPhi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varPsi} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@varOmega} -% \changes{v2.04}{2014/03/10}{neu}^^A -% In Anlehnung an verschiedene Pakete für Mathematikschriften werden Symbole -% für aufrechte und kursive Majuskeln der griechischen Lettern definiert. Damit -% auch bei diesen Buchstaben ein Umschalten für die unterschiedlichen Schriften -% möglich ist, wird eine interne Version definiert und im Bedarfsfall der -% dazugehörige \LaTeX-Befehl mit dieser überschrieben. -% \begin{macrocode} -\newcommand*\tud@font@greek@declare[1]{% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% - {\noexpand\mathalpha}{operators}{\the\@tempcnta}% - }\@tempb% - \edef\@tempb{% - \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% - {\noexpand\mathalpha}{letters}{\the\@tempcnta}% - }\@tempb% - \csletcs{tud@#1}{tud@up#1}% - \advance \@tempcnta by 1% -} -\@tempcnta=\z@\relax -\tud@font@greek@loop\tud@font@greek@declare +% Da das Paket \pkg{fontspec} keinen Befehl zum Prüfen auf das Vorhandensein +% einer bestimmten Schrift bereitstellt, muss hier etwas getrickst werden. Bei +% der Wahl einer nicht installierten Schrift wird normalerweise ein Fehler +% ausgegeben. Mit \cs{tud@x@fontspec@noerror} wird dies verhindert, indem die +% erzeugte Fehlermeldung mit \cs{msg\_redirect\_name:nnn} unterdrückt wird. +% \begin{macrocode} +\newcommand*\tud@x@fontspec@noerror{} +\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse} +\if@tempswa + \RequirePackage{expl3}[2016/05/18] + \ExplSyntaxOn + \renewcommand*\tud@x@fontspec@noerror{% + \__fontspec_font_suppress_not_found_error: + \msg_redirect_name:nnn {fontspec}{font-not-found}{none} + }% + \ExplSyntaxOff +\fi % \end{macrocode} -% \end{macro}^^A \tud@varOmega -% \end{macro}^^A \tud@varPsi -% \end{macro}^^A \tud@varPhi -% \end{macro}^^A \tud@varUpsilon -% \end{macro}^^A \tud@varSigma -% \end{macro}^^A \tud@varPi -% \end{macro}^^A \tud@varXi -% \end{macro}^^A \tud@varLambda -% \end{macro}^^A \tud@varTheta -% \end{macro}^^A \tud@varDelta -% \end{macro}^^A \tud@varGamma -% \end{macro}^^A \tud@upOmega -% \end{macro}^^A \tud@upPsi -% \end{macro}^^A \tud@upPhi -% \end{macro}^^A \tud@upUpsilon -% \end{macro}^^A \tud@upSigma -% \end{macro}^^A \tud@upPi -% \end{macro}^^A \tud@upXi -% \end{macro}^^A \tud@upLambda -% \end{macro}^^A \tud@upTheta -% \end{macro}^^A \tud@upDelta -% \end{macro}^^A \tud@upGamma -% \end{macro}^^A \tud@Omega -% \end{macro}^^A \tud@Psi -% \end{macro}^^A \tud@Phi -% \end{macro}^^A \tud@Upsilon -% \end{macro}^^A \tud@Sigma -% \end{macro}^^A \tud@Pi -% \end{macro}^^A \tud@Xi -% \end{macro}^^A \tud@Lambda -% \end{macro}^^A \tud@Theta -% \end{macro}^^A \tud@Delta -% \end{macro}^^A \tud@Gamma -% \end{macro}^^A \tud@font@greek@declare -% \begin{macro}{\tud@font@check} -% \changes{v2.04}{2014/03/10}{neu}^^A -% Mit diesem Makro wird überprüft, ob die relevanten PostScript"=Schriften -% Univers und DIN~Bold installiert sind. Beim Nichtvorhandensein der Schriften -% wird im Normalfall eine Warnung ausgegeben und eine Rückfallebene definiert. -% Wird das Paket \pkg{fontspec} verwendet, werden die Schriften nur für den -% Mathematiksatz verwendet. Sollten diese nicht vorhanden sein, wird eine -% Info in die Log-Datei geschrieben. +% Jetzt kann es mit dem eigentlichen Überprüfen der Schriften losgehen. Für das +% Prüfen der Mathematikschriften ist es unerheblich, ob \pkg{fontspec} genutzt +% wird, da hier immer die PostScript-Schriften zum Einsatz kommen. % \begin{macrocode} \newcommand*\tud@font@check{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% - }% - \def\@tempc##1{% + \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}% + \def\@tempb##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% %<*class> - \ClassInfoNoLine{\TUDClassName}% + \ClassWarningNoLine{\TUD@Class@Name}% %</class> %<*package> - \PackageInfoNoLine{tudscrfonts}% + \PackageWarningNoLine{tudscrfonts}% %</package> - {% - `##1' fonts for math typesetting not found\MessageBreak% - Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual% - }% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \edef\@tempb{% - \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \def\@tempc##1{% - \@tempswafalse% - \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} - \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} -%<*class> - \ClassWarningNoLine{\TUDClassName}% -%</class> -%<*package> - \PackageWarningNoLine{tudscrfonts}% -%</package> - {% - `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - \if@tempswa% + {% + `##1' fonts for math typesetting not found\MessageBreak% Please use one of the installation scripts for the\MessageBreak% - tudscr-bundle mentioned in the manual.\MessageBreak% - \else% - Please choose a possible encoding (`OT1' or `T1').\MessageBreak% - \fi% - A fallback layout is used% - }% - }% - \fi% - \@tempa{\@tud@universtrue}{\@tempc{Univers}}% - \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% - \undef\tud@font@check% -} -% \end{macrocode} -% \end{macro}^^A \tud@font@check -% \begin{macro}{\tud@font@init} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\textuln} -% \begin{macro}{\texturn} -% \begin{macro}{\textubn} -% \begin{macro}{\textuxn} -% \begin{macro}{\textuls} -% \begin{macro}{\texturs} -% \begin{macro}{\textubs} -% \begin{macro}{\textuxs} -% \begin{macro}{\textdbn} -% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl -% der Schriften des \CDs verwendet. Er wird als Hook genutzt und abhängig vom -% Schalter \cs{if@tud@fontspec} entweder für die Verwendung von \pkg{fontspec} -% oder des NFSS-Schemas mit \cs{preto}\cs{tud@font@init}\marg{Makro} angepasst. -% \begin{macrocode} -\newcommand*\tud@font@init{% -% \end{macrocode} -% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle -% bereitgestellt. -% \begin{macrocode} - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% -% \end{macrocode} -% Nach der optionsabhängigen Definition der Schriftauswahlbefehle werden die -% Initialisierungsbefehle undefiniert gesetzt. -% \begin{macrocode} - \undef\tud@font@init@fontspec% - \undef\tud@fontface% - \undef\tud@fontspec@flag% - \undef\tud@fontspec@error% - \undef\tud@font@init@nfss% - \undef\tud@font@init% -} -% \end{macrocode} -% \end{macro}^^A \textdbn -% \end{macro}^^A \textuxs -% \end{macro}^^A \textubs -% \end{macro}^^A \texturs -% \end{macro}^^A \textuls -% \end{macro}^^A \textuxn -% \end{macro}^^A \textubn -% \end{macro}^^A \texturn -% \end{macro}^^A \textuln -% \end{macro}^^A \tud@font@init -% \begin{macro}{\univln} -% \begin{macro}{\univrn} -% \begin{macro}{\univbn} -% \begin{macro}{\univxn} -% \begin{macro}{\univls} -% \begin{macro}{\univrs} -% \begin{macro}{\univbs} -% \begin{macro}{\univxs} -% \begin{macro}{\dinbn} -% \begin{macro}{\@dinbn} -% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte -% Univers~45~Light, Univers~55~Regular, Univers~65~Bold, Univers~75~Black, -% Univers~45~Light~Oblique, Univers~55~Regular~Oblique, Univers~65~Bold~Oblique -% sowie Univers~75~Black~Oblique und DIN~Bold definiert. Diese können so im -% Dokument unabhängig von der Option \opt{cdfont} genutzt werden. Bei der -% Schriftauswahl der DIN~Bold wird neben dieser noch die entsprechende -% Mathematikschrift aktiviert. Dabei ist zu beachten, dass die Schriften evtl. -% gar nicht installiert sind und für diesen Fall eine Rückfallebene notwendig -% ist. -% \begin{macro}{\tud@font@init@fontspec} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\if@tud@fontspec@missing} -% \changes{v2.04c}{2015/11/29}{neu}^^A -% \begin{macro}{\tud@fontface} -% \changes{v2.04c}{2015/11/29}{neu}^^A -% \begin{macro}{\tud@fontspec@flag} -% \changes{v2.04c}{2015/11/29}{neu}^^A -% \begin{macro}{\tud@fontspec@error} -% \changes{v2.04c}{2015/11/29}{neu}^^A -% Leider exisitiert im Paket \pkg{fontspec} keine einfache Möglichkeit, auf das -% Vorhandensein von Schriften zu testen. Deshalb wird hier etwa getrickst, um -% die Schriften nur zu laden, falls diese auch tatsächlich existieren und die -% ggf. auftrtende Fehlermeldung zu unterdrücken. -% \begin{macrocode} -\newif\if@tud@fontspec@missing -\newcommand*\tud@font@init@fontspec{} -% \end{macrocode} -% Alles etwas umständlich, aber leider geht es nicht anders. Um die Fehler -% zu unterdrücken, ist die Syntax von \LaTeX{}3 notwendig. Es wird mit -% dem Paket \pkg{xparse} der Befehl \cs{tud@fontface} welcher eigentlch den -% Befehl \cs{newfontface} nutzt und für denn Fall, dass keine Schrift -% exisitiert, den entsprechenden Befehl leer definiert. -% \begin{macrocode} -\IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}% -\if@tempswa - \RequirePackage{xparse} - \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}% - \NewDocumentCommand\tud@fontface{mmo}{% - \global\@tud@fontspec@missingfalse% - \newfontface#1{#2}[#3]% - \if@tud@fontspec@missing% - \renewrobustcmd*#1{}% - \fi% - }% -% \end{macrocode} -% Um die Fehler bei dem Laden der Schrift zu unterdrücken, wird der dafür -% verantwortliche Befehl gesichertr und anschließend passend neu definiert. -% \begin{macrocode} - \ExplSyntaxOn - \renewcommand*\tud@font@init@fontspec{% - \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag -% \end{macrocode} -% Für die Schriften werden feste NFSS-Namen vergeben, um diese unter anderem -% auch beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können. -% \begin{macrocode} - \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% -% \end{macrocode} -% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da -% dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte -% dieser zumindest auch auf deren Stil schalten. -% \begin{macrocode} - \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \if@tud@fontspec@missing% - \newrobustcmd*\dinbn{\sectfont}% - \else% - \if@tud@dinbold% - \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}% - \else% - \newrobustcmd*\dinbn{\@dinbn}% + tudscr-bundle mentioned in the manual% + }% \fi% \fi% -% \end{macrocode} -% Zum Schluss wird noch die Fehlermeldungen auf ihre ursprüngliche Definition -% gesetzt und damit ist der ganze Zauber vorbei. -% \begin{macrocode} - \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error }% - \ExplSyntaxOff -\fi% % \end{macrocode} -% \end{macro}^^A \tud@fontspec@error -% \end{macro}^^A \tud@fontspec@flag -% \end{macro}^^A \tud@fontface -% \end{macro}^^A \if@tud@fontspec@missing -% \end{macro}^^A \tud@font@init@fontspec -% \begin{macro}{\tud@font@init@nfss} -% \changes{v2.04}{2014/03/10}{neu}^^A -% Falls \opt{fontspec} nicht aktiv ist, werden die Schriften klassisch nach dem -% NFSS definiert. Sind die Univer-Schriften installiert, dann werden dazu -% passende Schalter erstellt. -% \begin{macrocode} -\newcommand*\tud@font@init@nfss{% - \if@tud@univers% - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% -% \end{macrocode} -% Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese -% einfach nichts machen. +% Existieren die Schriften, werden die Schalter auf \val{true} gesetzt, sonst +% wird eine Warnung ausgegeben, falls die Schriften eigentlich verwendet werden +% sollen. % \begin{macrocode} - \else% - \newrobustcmd*\univln{}% - \newrobustcmd*\univrn{}% - \newrobustcmd*\univbn{}% - \newrobustcmd*\univxn{}% - \newrobustcmd*\univls{}% - \newrobustcmd*\univrs{}% - \newrobustcmd*\univbs{}% - \newrobustcmd*\univxs{}% - \fi% + \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}% + \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}% % \end{macrocode} -% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. +% Für jede der OTF-Schriften wird eine Warnung ausgegeben, falls diese nicht +% installiert ist. Um sicher zu gehen, dass das Layout komplett genutzt werden +% kann, ist es hinreichend, wenn eine der benötigten Schriften nicht existiert, +% um die Rückfallebene zu aktivieren. % \begin{macrocode} - \if@tud@dinbold% - \newrobustcmd*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% - \else% - \newrobustcmd*\dinbn{\sectfont}% - \fi% -} -% \end{macrocode} -% \end{macro}^^A \tud@font@init@nfss -% \end{macro}^^A \@dinbn -% \end{macro}^^A \dinbn -% \end{macro}^^A \univxs -% \end{macro}^^A \univbs -% \end{macro}^^A \univrs -% \end{macro}^^A \univls -% \end{macro}^^A \univxn -% \end{macro}^^A \univbn -% \end{macro}^^A \univrn -% \end{macro}^^A \univln -% \begin{macro}{\cdfont} -% \changes{v2.04}{2015/03/04}{neu}^^A -% \begin{macro}{\tudfont} -% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A -% \begin{macro}{\textcdfont} -% \changes{v2.04}{2015/03/04}{neu}^^A -% \begin{macro}{\@cdfont} -% \changes{v2.04}{2015/03/04}{neu}^^A -% \begin{macro}{\tud@trimfontname} -% \changes{v2.04}{2015/03/04}{neu}^^A -% \begin{macro}{\tud@@trimfontname} -% \changes{v2.04}{2015/03/04}{neu}^^A -% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl -% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen -% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont} -% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird -% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als -% Textbefehl ermöglicht. -% \begin{macrocode} -\newcommand*\cdfont[1]{% - \@cdfont{#1}% - \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% - \fi% -} -\providecommand*\tudfont[1]{\cdfont{#1}} -\newcommand*\textcdfont[2]{% - \@cdfont{#1}% - \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% - \fi% -} -\newcommand*\@cdfont[1]{% - \tud@trimfontname\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% - \let\@tempc\relax% - \PackageWarning{tudscrfonts}{The font `#1' is unknown}% - }}}}}}}}}}}}}}% -} -\newcommand*\tud@trimfontname[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% - \tud@@trimfontname{ }{}% - \tud@@trimfontname{-}{}% - \tud@@trimfontname{_}{}% - \tud@@trimfontname{~}{}% - \tud@@trimfontname{ce}{}% - \tud@@trimfontname{ff}{}% - \tud@@trimfontname{univers}{}% - \tud@@trimfontname{60}{65}% - \tud@@trimfontname{light}{45}% - \tud@@trimfontname{regular}{55}% - \tud@@trimfontname{bold}{65}% - \tud@@trimfontname{black}{75}% - \tud@@trimfontname{4545}{45}% - \tud@@trimfontname{5555}{55}% - \tud@@trimfontname{6565}{65}% - \tud@@trimfontname{7575}{75}% - \tud@@trimfontname{italic}{oblique}% - \tud@@trimfontname{slanted}{oblique}% - \let#1\@tempa% -} -\newcommand*\tud@@trimfontname[2]{% - \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% - \@expandtwoargs\in@{#1}{\@tempa}% - \@whilesw\ifin@\fi{% - \expandafter\@tempb\@tempa\relax% - \@expandtwoargs\in@{#1}{\@tempa}% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@@trimfontname -% \end{macro}^^A \tud@trimfontname -% \end{macro}^^A \@cdfont -% \end{macro}^^A \textcdfont -% \end{macro}^^A \tudfont -% \end{macro}^^A \cdfont -% \begin{macro}{\tud@font@math@init} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\mv@univers} -% \begin{macro}{\mv@universbold} -% \begin{macro}{\mv@dinbold} -% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart -% DIN~Bold verwendet}^^A -% Für die Mathematikschriften im Fließtext werden für die lateinischen Lettern -% die Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die -% griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus -% dem \pkg{iwona}"~Paket die mathematische Symbole verwendet. Es werden zwei -% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. -% \begin{macrocode} -\newcommand*\mv@univers{}% -\newcommand*\mv@universbold{}% -\newcommand*\mv@dinbold{}% -\newcommand*\tud@font@math@init{% - \if@tud@fontspec\if@tud@univers\if@tud@dinbold% - \@ifpackagewith{fontspec}{no-math}{}{% + \if@tud@x@fontspec@enabled% + \def\@tempc##1##2{% + \fontspec{##1}% + \expandafter\ifx\the\font\nullfont% + ##2% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy %<*class> - \ClassWarningNoLine{\TUDClassName}% + \ClassWarningNoLine{\TUD@Class@Name}% %</class> %<*package> - \PackageWarningNoLine{tudscrfonts}% + \PackageWarningNoLine{tudscrfonts}% %</package> - {% - It's recommended to load package `fontspec' with\MessageBreak% - option `no-math'% - }% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + It seems, you haven't installed the required\MessageBreak% + OTF-font on your system. A fallback layout is used% + }% + \fi% + \fi% }% - \fi\fi\fi% - \if@tud@univers% - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% - \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% -% \end{macrocode} -% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die -% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen. -% \begin{macrocode} - \@ifpackageloaded{amsfonts}{% - \DeclareFontFamily{U}{\tud@univers a}{}% - \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% - \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% - \DeclareFontFamily{U}{\tud@univers b}{}% - \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% - \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% - \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% - }{}% - \fi% -% \end{macrocode} -% Auch für die Schrift DIN~Bold werden mathematische Glyphen bereitgestellt. -% Diese wurden aus dem \pkg{iwona}"=Paket entnommen. Auch die verwendeten -% Symbole stammen aus diesem Paket. -% \begin{macrocode} - \if@tud@dinbold% - \DeclareMathVersion{dinbold}% - \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% - \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% - \fi% -% \end{macrocode} -% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für -% die Mathematikschriften vorgenommen\dots -% \begin{macrocode} - \@ifpackageloaded{unicode-math}{% - \let\tud@font@math@set\relax% - \bool@set@lock{@tud@cdmath}{false}% - }{% -% \end{macrocode} -% Für die griechischen Buchstaben wird geprüft, ob durch ein Paket diese auf -% die kursive Variante gesetzt wurden. Ist dies der Fall, wird der Standardwert -% für die Option \opt{slantedgreek} auf \val{true} gesetzt. Anschließend -% erfolgt die \emph{Intialisierung} der griechischen Großbuchstaben mit dem -% Befehl \cs{tud@font@greek@init}. -% \begin{macrocode} - \let\@tempb\relax% - \let\@tempc\relax% - \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% - \@tempswafalse% - \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% - \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% - \if@tempswa% - \bool@std@lock{@tud@slantedgreek}{true}% - \fi% - \tud@font@greek@loop\tud@font@greek@init% -% \end{macrocode} -% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart -% der Option \opt{cdfont} die benötigten Mathematikversionen geladen. -% \begin{macrocode} - \tud@font@math@set% - }% -% \end{macrocode} -% Daran anschließend werden die DIN-Bold-Schriften in einer Box verwendet, um -% das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren. -% \begin{macrocode} - \sbox\z@{\dinbn$ $}% -% \end{macrocode} -% Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften -% undefiniert gesetzt. -% \begin{macrocode} - \undef\tud@font@math@init% -} -% \end{macrocode} -% \end{macro}^^A \mv@dinbold -% \end{macro}^^A \mv@universbold -% \end{macro}^^A \mv@univers -% \end{macro}^^A \tud@font@math@init -% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige -% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt -% das Setzen der Mathematikschriften druch \cs{AtBeginDocument} innerhalb von -% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}. -% -% Für das Paket müssen zuvor einige Einstellungen angepasst werden, damit bei -% der Verwendung einer alten Klasse alles reibungslos funktioniert. -% \begin{macrocode} -%<*package> -\ifbool{@tud@oldscrclass}{% - \let\univln\relax% - \let\univrn\relax% - \let\univbn\relax% - \let\univxn\relax% - \let\univls\relax% - \let\univrs\relax% - \let\univbs\relax% - \let\univxs\relax% - \let\dinbn\relax% - \let\textuln\relax% - \let\texturn\relax% - \let\textubn\relax% - \let\textuxn\relax% - \let\textuls\relax% - \let\texturs\relax% - \let\textubs\relax% - \let\textuxs\relax% - \let\textdbn\relax% - \AtBeginDocument{% - \cmd@restore{rmdefault}% - \cmd@restore{sfdefault}% - \cmd@restore{bfdefault}% - \cmd@restore{mddefault}% - \cmd@restore{familydefault}% - \cmd@restore{seriesdefault}% - \cmd@restore{shapedefault}% - \cmd@restore{rmfamily}% - \cmd@restore{sffamily}% - \cmd@restore{ttfamily}% - }% -}{} -%</package> -% \end{macrocode} -% Jetzt kommt es zur eigentlichen Initialisierung der Schriften. -% \begin{macrocode} -%<class>\AtEndPreamble% -%<package>\AtBeginDocument% -{% - \tud@font@check% -% \end{macrocode} -% Es erfolgt das optionsabhängige Voranstellen von \cs{tud@font@init@fontspec} -% respektive \cs{tud@font@init@nfss} bei \cs{tud@font@init}. -% \begin{macrocode} - \if@tud@fontspec% - \preto\tud@font@init\tud@font@init@fontspec% + \begingroup% + \tud@x@fontspec@noerror% + \global\@tud@universtrue% + \@tempc{Univers Light}{\global\@tud@universfalse}% + \@tempc{Univers}{\global\@tud@universfalse}% + \@tempc{Univers Bold}{\global\@tud@universfalse}% + \@tempc{Univers Black}{\global\@tud@universfalse}% + \@tempc{Univers Light Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}% + \@tempc{Univers Black Oblique}{\global\@tud@universfalse}% + \global\@tud@dinboldtrue% + \@tempc{DIN Bold}{\global\@tud@dinboldfalse}% + \endgroup% \else% - \preto\tud@font@init\tud@font@init@nfss% - \fi% % \end{macrocode} -% Nachdem auf die Schriften geprüft wurde, erfolgt die Verarbeitung der Option -% \pkg{fontspec}. Da es so gut wie keine freien OpenType"=Schriften für den -% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option -% \emph{immer} die PostScript"=Schriften verwendet, falls diese installiert -% sind. Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen -% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten. +% Ist \pkg{fontspec} nicht aktiv, wird auf die Schriften für den Fließtext im +% gleichen Maße geprüft. % \begin{macrocode} + \def\@tempc##1{% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}% + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +%</class> %<*package> - \ifdef{\sectfont}{}{\let\sectfont\relax}% + \PackageWarningNoLine{tudscrfonts}% %</package> - \tud@font@init% -% \end{macrocode} -% Damit die Schrift im Dokument später noch umgestellt werden kann, werden -% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird -% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal -% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie -% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu -% aktivieren. Die Einstellungen für den Mathematiksatz erfolgen erst zu Beginn -% des Dokumentes, um insbesondere auf Einstellungen des Paketes \pkg{fontspec} -% reagieren zu können. -% \begin{macrocode} - \tud@font@set[nomath]% -%<class> \AtBeginDocument{\tud@font@math@init}% -%<package> \tud@font@math@init% -} -% \end{macrocode} -% \begin{macro}{\tud@font@greek@init} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\upDelta} -% \begin{macro}{\upGamma} -% \begin{macro}{\upLambda} -% \begin{macro}{\upOmega} -% \begin{macro}{\upPhi} -% \begin{macro}{\upPi} -% \begin{macro}{\upPsi} -% \begin{macro}{\upSigma} -% \begin{macro}{\upTheta} -% \begin{macro}{\upUpsilon} -% \begin{macro}{\upXi} -% \begin{macro}{\varDelta} -% \begin{macro}{\varGamma} -% \begin{macro}{\varLambda} -% \begin{macro}{\varOmega} -% \begin{macro}{\varPhi} -% \begin{macro}{\varPi} -% \begin{macro}{\varPsi} -% \begin{macro}{\varSigma} -% \begin{macro}{\varTheta} -% \begin{macro}{\varUpsilon} -% \begin{macro}{\varXi} -% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen -% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und -% kursiver Buchstaben. -% \begin{macrocode} -\newcommand*\tud@font@greek@init[1]{% - \ifcsdef{up#1}{}{% - \if@tempswa% - \csletcs{up#1}{tud@up#1}% - \else% - \csletcs{up#1}{#1}% - \fi% - }% - \ifcsdef{var#1}{}{% - \if@tempswa% - \csletcs{var#1}{#1}% - \else% - \csletcs{var#1}{tud@var#1}% - \fi% - }% + {% + `##1' fonts not found for encoding `\encodingdefault'\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + \fi% + }% + \@tempa{\encodingdefault}% + {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}% + \@tempa{\encodingdefault}% + {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \fi% + \undef\tud@font@check% } % \end{macrocode} -% \end{macro}^^A \varXi -% \end{macro}^^A \varUpsilon -% \end{macro}^^A \varTheta -% \end{macro}^^A \varSigma -% \end{macro}^^A \varPsi -% \end{macro}^^A \varPi -% \end{macro}^^A \varPhi -% \end{macro}^^A \varOmega -% \end{macro}^^A \varLambda -% \end{macro}^^A \varGamma -% \end{macro}^^A \varDelta -% \end{macro}^^A \upXi -% \end{macro}^^A \upUpsilon -% \end{macro}^^A \upTheta -% \end{macro}^^A \upSigma -% \end{macro}^^A \upPsi -% \end{macro}^^A \upPi -% \end{macro}^^A \upPhi -% \end{macro}^^A \upOmega -% \end{macro}^^A \upLambda -% \end{macro}^^A \upGamma -% \end{macro}^^A \upDelta -% \end{macro}^^A \tud@font@greek@init +% \end{macro}^^A \tud@x@fontspec@noerror +% \end{macro}^^A \tud@font@check % % \iffalse -%</(class|package)&body> -%<*(class|package)&option> +%</body> +%<*option> % \fi % -% \begin{macro}{\tud@uclcnotmath} -% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im -% Argument des Befehls \cs{MakeTextUppercase}}^^A -% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls -% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A -% \begin{macro}{\@uclcnotmath} -% Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit -% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase} -% verbessert, wird das Paket \pkg{textcase} genutzt. Damit Fußnoten nicht -% automatisch in Majuskeln gesetzt werden, wird außerdem der interne Befehl -% \cs{@uclcnotmath} aus diesem Paket angepasst. -% \begin{macrocode} -\RequirePackage{textcase}[2004/10/07] -\newcommand*\tud@uclcnotmath{% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% -} -\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% - \@nonchangecase\ensuremath\tud@uclcnotmath -}{}{\tud@patch@wrn{@uclcnotmath}}% -% \end{macrocode} -% \end{macro}^^A \@uclcnotmath -% \end{macro}^^A \tud@uclcnotmath -% \begin{macro}{\tud@font@heading} -% Mit \cs{tud@font@heading} wird die Schriftart für Überschriften im Layout des -% \CDs definiert. Normalerweise wird hierfür DIN-Bold verwendet, was allerdings -% per Option auch deaktiviert werden kann. -% \begin{macrocode} -\newcommand*\tud@font@heading{\dinbn\tud@raggedright} -% \end{macrocode} -% \end{macro}^^A \tud@font@heading +% \subsubsection{Schriften für den Fließtext} +% +% Hier werden die Optionen und Befehle zur Schriftauswahl definiert. +% % \begin{option}{cdfont} % \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}^^A % \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}^^A -% \begin{macro}{\tud@cdfont} +% \changes{v2.05}{2016/04/04}{Schlüsselwerte für \val{ultrabold}}^^A +% \begin{macro}{\tud@cdfont@num} +% \begin{macro}{\if@tud@cdfont@din} +% \begin{macro}{\if@tud@cdfont@ultrabold} +% \changes{v2.05}{2016/04/04}{neu}^^A % Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen % Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option % können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke % der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von -% DIN~Bold für die Überschriften deaktivieren. Außerdem kann eingestellt -% werden, ob für den Mathematiksatz serifenlose Schriften zum Einsatz kommen -% sollen. +% \DIN für die Überschriften deaktivieren. Außerdem kann eingestellt werden, ob +% für den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen. % \begin{macrocode} -\newcommand*\tud@cdfont{1} +\newif\if@tud@cdfont@din +\newif\if@tud@cdfont@ultrabold +\@tud@cdfont@dintrue +\newcommand*\tud@cdfont@num{1} \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@numkey@bool,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% - {heavy}{2},{heavyfont}{2},% - {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},% - {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% + {normalbold}{3},{boldnormal}{3},% + {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},% + {extendedbold}{4},{boldextended}{4},% + {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},% + {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},% %<*class> - {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},% - {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},% - {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},% - {bar}{6},{barfont}{6},% - {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},% - {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},% - {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},% - {headlight}{6},{headfontlight}{6},{headlightfont}{6},% - {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},% - {barlight}{6},{barfontlight}{6},{barlightfont}{6},% - {litehead}{6},{liteheadfont}{6},{litefonthead}{6},% - {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},% - {litebar}{6},{litebarfont}{6},{litefontbar}{6},% - {headlite}{6},{headfontlite}{6},{headlitefont}{6},% - {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},% - {barlite}{6},{barfontlite}{6},{barlitefont}{6},% - {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},% - {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},% - {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},% - {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},% - {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},% - {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},% - {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},% - {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},% - {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},% - {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},% - {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},% - {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},% + {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},% + {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},% + {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},% + {bar}{8},{barfont}{8},% + {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},% + {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},% + {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},% + {headlight}{8},{headfontlight}{8},{headlightfont}{8},% + {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},% + {barlight}{8},{barfontlight}{8},{barlightfont}{8},% + {litehead}{8},{liteheadfont}{8},{litefonthead}{8},% + {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},% + {litebar}{8},{litebarfont}{8},{litefontbar}{8},% + {headlite}{8},{headfontlite}{8},{headlitefont}{8},% + {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},% + {barlite}{8},{barfontlite}{8},{barlitefont}{8},% + {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},% + {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},% + {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},% + {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},% + {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},% + {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},% + {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},% + {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},% + {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},% + {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},% + {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},% + {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},% %</class> - {nomath}{8},{nocdmath}{8},% - {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},% - {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},% - {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% - {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% - {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% + {nomath}{10},{nocdmath}{10},% + {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},% + {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},% + {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},% + {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},% + {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},% + {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% % \end{macrocode} @@ -1148,21 +437,36 @@ % den Fließtext. % \begin{macrocode} \ifcase\@tempa\relax% false - \def\tud@cdfont{0}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{0}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% \or% heavy - \def\tud@cdfont{2}% - \if@atdocument\tud@font@set\fi% + \renewcommand*\tud@cdfont@num{2}% + \TUD@SpecialOptionAtDocument{tud@font@set}% +% \end{macrocode} +% Die Definition des fetten Schriftschnittes. +% \begin{macrocode} + \or% normalbold + \@tud@cdfont@ultraboldfalse% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \or% ultrabold + \@tud@cdfont@ultraboldtrue% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@set}% % \end{macrocode} -% Hier wird die Verwendung von DIN~Bold für die Überschirften festgelegt. +% Hier wird die Verwendung von \DIN für die Überschirften festgelegt. % \begin{macrocode} \or% nodin - \renewcommand*\tud@font@heading{\tud@RaggedRight}% + \@tud@cdfont@dinfalse% \or% din - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \@tud@cdfont@dintrue% % \end{macrocode} % Die Schrift für den Querbalken. % \begin{macrocode} @@ -1170,14 +474,23 @@ %<*class> \TUDoptions{cdhead=false}% %</class> +%<*package> + \PackageWarning{tudscrfonts}{Option `cdfont=nohead' is not available}% +%</package> \or% head %<*class> \TUDoptions{cdhead=true}% %</class> +%<*package> + \PackageWarning{tudscrfonts}{Option `cdfont=head' is not available}% +%</package> \or% heavyhead %<*class> \TUDoptions{cdhead=heavy}% %</class> +%<*package> + \PackageWarning{tudscrfonts}{Option `cdfont=heavyhead' is not available}% +%</package> % \end{macrocode} % Die Mathematikschriften. % \begin{macrocode} @@ -1205,38 +518,75 @@ % dass es sich bei diesem um die gewünschte Schriftgröße handelt. % \begin{macrocode} \else% - \KOMAoptions{fontsize=#1}% - \ifcase\tud@cdfont\relax% false to true - \def\tud@cdfont{1}% - \if@atdocument\tud@font@set\fi% - \fi% + \ifdimen{#1}{% + \ifdim#1>\z@\relax% + \TUD@KOMAoptions{fontsize=#1}% + \csname @tud@fontsize@settrue\endcsname% + \ifcase\tud@cdfont@num\relax% false to true + \renewcommand*\tud@cdfont@num{1}% + \TUD@SpecialOptionAtDocument{tud@font@set}% + \fi% + \FamilyKeyStateProcessed% + \fi% + }{}% \fi% } % \end{macrocode} -% \end{macro}^^A \tud@cdfont +% \end{macro}^^A \if@tud@cdfont@ultrabold +% \end{macro}^^A \if@tud@cdfont@din +% \end{macro}^^A \tud@cdfont@num % \end{option}^^A cdfont +% \begin{option}{relspacing} +% \changes{v2.05}{2015/12/17}{neu}^^A +% \begin{macro}{\if@tud@relspacing} +% \changes{v2.05}{2015/12/17}{neu}^^A % \begin{option}{fontsize} % \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A -% Mit der \KOMAScript-Option \opt{fontsize} kann die Schriftgröße eingestellt -% werden. Durch \TUDScript werden bei aktiven Schriften im \CD verschiedene -% Abstände mit \cs{tud@font@skip@set} schriftgrößenabhängig definiert. -% \begin{macrocode} +% Die Option \opt{relspacing} setzt einige Abstände und Längen in Abhängigkeit +% der aktuellen Grundschriftgröße, wenn sie aktiviert wurde. Die Schriftgröße +% kann mit der \KOMAScript-Option \opt{fontsize} eingestellt werden. Durch das +% Makro \cs{tud@font@skip@set} wird die Definiton der Längen vorgenommen. +% \begin{macrocode} +\newif\if@tud@relspacing +\TUD@key{relspacing}[true]{% + \TUD@set@numkey{relspacing}{@tempa}{% + \TUD@numkey@bool,% + {absolute}{0},{classic}{0},{standard}{0},% + {relative}{1},{fontsize}{1},{font}{1},{size}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% false + \@tud@relspacingfalse% + \or% true + \@tud@relspacingtrue% + \fi% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \fi% +} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{fontsize}{% - \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \TUD@SpecialOptionAtDocument{tud@font@skip@set}% \FamilyKeyStateProcessed% } % \end{macrocode} % \end{option}^^A fontsize +% \end{macro}^^A \if@tud@relspacing +% \end{option}^^A relspacing % % \iffalse -%</(class|package)&option> -%<*(class|package)&body> +%</option> +%<*body> % \fi % +% Mit dem Paket \pkg{trimspaces} werden für die alternative Schriftauswahl mit +% \cs{cdfont} bzw. \cs{textcdfont} eventuell vorhandene Leerzeichen aus dem +% Argument entfernt. Auch beim Einlesen von Feldern wird dies genutzt. +% \begin{macrocode} +\RequirePackage{trimspaces}[2009/09/17] +% \end{macrocode} % \begin{macro}{\tud@font@set} % \changes{v2.04}{2015/03/01}{Unterstützung für das Paket \pkg{mweights}}^^A -% \begin{macro}{\if@tud@mweights} +% \begin{macro}{\if@tud@x@mweights@enabled} % \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A % \begin{macro}{\bfseries@rm} % \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A @@ -1263,22 +613,40 @@ % Mit diesem Befehl werden entweder die normalen oder aber die Schriften des % \CDs aktiviert. Dabei wird die Option \opt{fontspec} beachtet. % \begin{macrocode} -\newif\if@tud@mweights -\AfterPackage*{mweights}{\@tud@mweightstrue} -\newcommand*\tud@font@set[1][]{% - \if@tud@mweights% - \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% - \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% - \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% - \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% - \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% - \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% +\newif\if@tud@x@mweights@enabled +\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} +\newcommand*\tud@font@set{% +% \end{macrocode} +% Wurde die Option \opt{cdfont} nicht in der Präambel genutzt, wird im Fall, +% dass die Schriften des \CDs nicht installiert sind, eine Warnung erzeugt. +% \begin{macrocode} + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@univers\else% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {`Univers' fonts not found}% + \fi% + \if@tud@dinbold\else% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {`DIN Bold' fonts not found}% + \fi% + \fi% \fi% % \end{macrocode} % Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn % gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet. % \begin{macrocode} - \ifcase\tud@cdfont\relax% false + \ifcase\tud@cdfont@num\relax% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% @@ -1288,7 +656,7 @@ \tud@cmd@restore{familydefault}% \tud@cmd@restore{seriesdefault}% \tud@cmd@restore{shapedefault}% - \if@tud@mweights% + \if@tud@x@mweights@enabled% \tud@cmd@restore{bfseries@rm}% \tud@cmd@restore{bfseries@sf}% \tud@cmd@restore{bfseries@tt}% @@ -1301,10 +669,15 @@ % \begin{macrocode} \bool@std@lock{@tud@cdmath}{false}% % \end{macrocode} -% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt. +% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt, wenn +% kein Layout im \CD genutzt wird. % \begin{macrocode} %<*class> - \cs@std@lock{tud@head@font}{0}% + \ifcase\tud@cd@num\relax% false + \cs@std@lock{tud@head@font@num}{0}% + \else% !false + \cs@std@lock{tud@head@font@num}{1}% + \fi% %</class> % \end{macrocode} % Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der @@ -1321,7 +694,7 @@ \tud@cmd@store{familydefault}% \tud@cmd@store{seriesdefault}% \tud@cmd@store{shapedefault}% - \if@tud@mweights% + \if@tud@x@mweights@enabled% \tud@cmd@store{bfseries@rm}% \tud@cmd@store{bfseries@sf}% \tud@cmd@store{bfseries@tt}% @@ -1338,96 +711,86 @@ % Die Schrift im Querbalken wird bei den Klassen angepasst. % \begin{macrocode} %<*class> - \cs@std@lock{tud@head@font}{\tud@cdfont}% + \cs@std@lock{tud@head@font@num}{\tud@cdfont@num}% %</class> % \end{macrocode} % Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket % \pkg{fontspec} oder\dots % \begin{macrocode} - \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% true - \setsansfont{Univers Light}[% - BoldFont = Univers,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Oblique,% - ]% - \setmonofont{LMMonoLt10-Regular}[% - BoldFont = LMMono10-Regular,% - ItalicFont = LMMonoLt10-Oblique,% - BoldItalicFont = LMMonoSlant10-Regular,% - ]% -% \end{macrocode} -% Für die alten Klassen von Klaus Bergmann sowie \TUDScript in der Version~v1.0 -% werden die fetten Schriften in einem stärkeren Schriftschnitt gesetzt. -% \begin{macrocode} -%<*package> - \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{% - \setsansfont{Univers Light}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Light Oblique,% - BoldItalicFont = Univers Bold Oblique,% - ]% - }{}% -%</package> - \else% heavy + \if@tud@univers% + \if@tud@x@fontspec@enabled% \setsansfont{Univers}[% - BoldFont = Univers Bold,% - ItalicFont = Univers Oblique,% - BoldItalicFont = Univers Bold Oblique,% + FontFace = {l}{\updefault}{Univers Light},% + FontFace = {m}{\updefault}{Univers},% + FontFace = {b}{\updefault}{Univers Bold},% + FontFace = {bx}{\updefault}{Univers Bold},% + FontFace = {eb}{\updefault}{Univers Black},% + FontFace = {l}{\sldefault}{Univers Light Oblique},% + FontFace = {m}{\sldefault}{Univers Oblique},% + FontFace = {b}{\sldefault}{Univers Bold Oblique},% + FontFace = {bx}{\sldefault}{Univers Bold Oblique},% + FontFace = {eb}{\sldefault}{Univers Black Oblique},% + NFSSFamily = \tud@univers% ]% \setmonofont{LMMono10-Regular}[% - BoldFont = LMMonoLt10-Bold,% - ItalicFont = LMMonoSlant10-Regular,% - BoldItalicFont = LMMonoLt10-BoldOblique,% + FontFace = {l}{\updefault}{LMMonoLt10-Regular},% + FontFace = {m}{\updefault}{LMMono10-Regular},% + FontFace = {b}{\updefault}{LMMonoLt10-Bold},% + FontFace = {bx}{\updefault}{LMMonoLt10-Bold},% + FontFace = {eb}{\updefault}{LMMonoLt10-Bold},% + FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},% + FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},% + FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},% + FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},% + NFSSFamily = \tud@univers t% ]% - \fi% % \end{macrocode} % \dots nach dem NFSS. % \begin{macrocode} - \else% - \if@tud@univers% + \else% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% true + \fi% + \ifnum\tud@cdfont@num=\@ne\relax% true + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{b}% + \else% normalbold \renewcommand*\bfdefault{m}% -% \end{macrocode} -% Bei den alten Klassen von Klaus Bergmann bzw. \TUDScript~v1.0 sind die fetten -% Schriften stärker. -% \begin{macrocode} -%<*package> - \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{% - \renewcommand*\bfdefault{b}% - }{}% -%</package> - \renewcommand*\mddefault{l}% - \if@tud@mweights% - \def\bfseries@rm{m}% - \def\bfseries@sf{m}% - \def\bfseries@tt{m}% - \def\mdseries@rm{l}% - \def\mdseries@sf{l}% - \def\mdseries@tt{l}% - \fi% - \else% heavy + \fi% + \renewcommand*\mddefault{l}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy + \if@tud@cdfont@ultrabold% ultrabold + \renewcommand*\bfdefault{eb}% + \else% normalbold \renewcommand*\bfdefault{b}% - \renewcommand*\mddefault{m}% - \if@tud@mweights% - \def\bfseries@rm{b}% - \def\bfseries@sf{b}% - \def\bfseries@tt{b}% - \def\mdseries@rm{m}% - \def\mdseries@sf{m}% - \def\mdseries@tt{m}% - \fi% + \fi% + \renewcommand*\mddefault{m}% + \if@tud@x@mweights@enabled% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% \fi% \fi% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\itdefault{\sldefault}% \fi% - \renewcommand*\rmdefault{\sfdefault}% \renewcommand*\familydefault{\sfdefault}% \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% - \if@tud@mweights% + \if@tud@x@mweights@enabled% \edef\rmdef@ult{\rmdefault}% \edef\sfdef@ult{\sfdefault}% \edef\ttdef@ult{\ttdefault}% @@ -1439,11 +802,12 @@ % definiert. Danach erfolgt die Behandlung der Mathematikschriften und die % gewählte Standardschrift aktiviert. Zum Schluss wird das Layout erneuert. % \begin{macrocode} + \ifdef{\tud@font@math@init}{}{\tud@font@math@set}% \tud@font@skip@set% - \ifstr{#1}{nomath}{}{\tud@font@math@set}% \normalfont\selectfont% %<*class> \tud@layout@process% + \global\@tud@head@font@settrue% %</class> } % \end{macrocode} @@ -1458,7 +822,7 @@ % \end{macro}^^A \bfseries@tt % \end{macro}^^A \bfseries@sf % \end{macro}^^A \bfseries@rm -% \end{macro}^^A \if@tud@mweights +% \end{macro}^^A \if@tud@x@mweights@enabled % \end{macro}^^A \tud@font@set % \begin{macro}{\tud@font@skip@set} % \changes{v2.04}{2015/02/17}{neu}^^A @@ -1484,39 +848,35 @@ % Es werden die Standardeinstellungen abhängig von \opt{cdfont} entweder % wiederhergestellt oder gesichert und neu definiert. % \begin{macrocode} - \tud@ifverlower{2.04}{}{% - \ifcase\tud@cdfont\relax% false - \tud@skip@restore{smallskipamount}% - \tud@skip@restore{medskipamount}% - \tud@skip@restore{bigskipamount}% - \tud@skip@restore{abovecaptionskip}% - \tud@skip@restore{belowcaptionskip}% - \tud@skip@restore{columnsep}% - \else% true/heavy - \tud@skip@store{smallskipamount}% - \tud@skip@store{medskipamount}% - \tud@skip@store{bigskipamount}% - \tud@skip@store{abovecaptionskip}% - \tud@skip@store{belowcaptionskip}% - \tud@skip@store{columnsep}% - \tud@font@skip@@set% - \fi% - }% + \if@tud@relspacing% + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \else% + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \fi% } % \end{macrocode} % Hiermit erfolgt das eigentliche Setzen der Abstände. % \begin{macrocode} \newcommand*\tud@font@skip@@set{% - \setlength{\@tempdimb}{\f@baselineskip}% - \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% - {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% - \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% - {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% - \scr@setlength\bigskipamount{\@tempdimb}% - {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% - \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% - \tud@skip@set\belowcaptionskip{\z@}% - \tud@skip@set\columnsep{1.1\baselineskip}% + \smallskipamount=\partopsep% + \medskipamount=\partopsep% + \multiply\medskipamount by 2% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% + \tud@skip@set{belowcaptionskip}{\z@}% + \tud@skip@set{columnsep}{1.1\baselineskip}% } % \end{macrocode} % \end{macro}^^A \columnsep @@ -1527,75 +887,270 @@ % \end{macro}^^A \smallskipamount % \end{macro}^^A \tud@font@skip@@set % \end{macro}^^A \tud@font@skip@set -% \begin{macro}{\tud@font@math@set} -% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen. -% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und -% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen -% das Mapping der griechischen Glyphen geändert, zum anderen werden die -% originalen Mathematikversionen überschrieben respektive wiederhergestellt. +% \begin{macro}{\tud@font@init} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@font@fallback} +% \changes{v2.05}{2015/12/14}{neu}^^A +% \begin{macro}{\tud@font@wrn} +% \changes{v2.05}{2015/12/14}{neu}^^A +% \begin{macro}{\univln} +% \begin{macro}{\univrn} +% \begin{macro}{\univbn} +% \begin{macro}{\univxn} +% \begin{macro}{\univls} +% \begin{macro}{\univrs} +% \begin{macro}{\univbs} +% \begin{macro}{\univxs} +% \begin{macro}{\dinbn} +% \begin{macro}{\tud@dinbn} +% \begin{macro}{\textuln} +% \begin{macro}{\texturn} +% \begin{macro}{\textubn} +% \begin{macro}{\textuxn} +% \begin{macro}{\textuls} +% \begin{macro}{\texturs} +% \begin{macro}{\textubs} +% \begin{macro}{\textuxs} +% \begin{macro}{\textdbn} +% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl +% der Schriften des \CDs verwendet. +% \begin{macrocode} +\newcommand*\tud@font@init{% +% \end{macrocode} +% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte +% \textuln{Univers~45~Light}, \texturn{Univers~55~Regular}, +% \textubn{Univers~65~Bold}, \textuxn{Univers~75~Black}, +% \textuls{Univers~45~Light~Oblique}, \texturs{Univers~55~Regular~Oblique}, +% \textubs{Univers~65~Bold~Oblique} sowie \textuxs{Univers~75~Black~Oblique} +% und \DIN definiert. Diese können so im Dokument unabhängig von der Option +% \opt{cdfont} genutzt werden. Bei der Schriftauswahl der \DIN wird neben +% dieser noch die entsprechende Mathematikschrift aktiviert. % \begin{macrocode} -\newcommand*\tud@font@math@set{% \if@tud@univers% - \if@tud@cdmath% - \tud@cmd@store{mv@normal}% - \tud@cmd@store{mv@bold}% - \let\mv@normal\mv@univers% - \let\mv@bold\mv@universbold% - \tud@font@greek@loop\tud@font@greek@set% + \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% +% \end{macrocode} +% Sind die notwendigen Schriften nicht installiert, werden die Schalter für die +% Rückfallebene so definiert, dass diese eine Warnung ausgeben. +% \begin{macrocode} + \else% + \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}% + \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}% + \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}% + \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}% + \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}% + \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}% + \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}% + \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}% + \fi% +% \end{macrocode} +% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da +% dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte +% dieser zumindest auch auf deren Stil schalten. +% \begin{macrocode} + \if@tud@dinbold% + \if@tud@x@fontspec@enabled% + \newfontface\tud@dinbn{DIN Bold}[% + FontFace = {l}{\updefault}{DIN Bold},% + FontFace = {m}{\updefault}{DIN Bold},% + FontFace = {b}{\updefault}{DIN Bold},% + FontFace = {bx}{\updefault}{DIN Bold},% + FontFace = {eb}{\updefault}{DIN Bold},% + FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},% + NFSSFamily = \tud@dinbold% + ]% \else% - \tud@cmd@restore{mv@normal}% - \tud@cmd@restore{mv@bold}% - \tud@font@greek@loop\tud@font@greek@reset% + \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}% \fi% - \fi% - \if@tud@slantedgreek% - \tud@font@greek@loop\tud@font@greek@slanted% + \if@tud@dinboldmath% + \appto\tud@dinbn{\mathversion{dinbold}}% + \fi% + \newrobustcmd*\dinbn{\tud@dinbn}% \else% - \tud@font@greek@loop\tud@font@greek@upright% + \newrobustcmd*\tud@dinbn{\sectfont}% + \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}% \fi% - \mathversion{normal}% +% \end{macrocode} +% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle +% bereitgestellt. +% \begin{macrocode} + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \newcommand*\textdbn{}% + \DeclareTextFontCommand\textuln{\univln}% + \DeclareTextFontCommand\texturn{\univrn}% + \DeclareTextFontCommand\textubn{\univbn}% + \DeclareTextFontCommand\textuxn{\univxn}% + \DeclareTextFontCommand\textuls{\univls}% + \DeclareTextFontCommand\texturs{\univrs}% + \DeclareTextFontCommand\textubs{\univbs}% + \DeclareTextFontCommand\textuxs{\univxs}% + \DeclareTextFontCommand\textdbn{\dinbn}% +% \end{macrocode} +% Nach der optionsabhängigen Definition der Schriftauswahlbefehle wird der +% Initialisierungsbefehle undefiniert gesetzt. +% \begin{macrocode} + \undef\tud@font@init% } % \end{macrocode} -% \end{macro}^^A \tud@font@math@set -% \begin{macro}{\tud@font@greek@set} -% \changes{v2.04}{2014/03/10}{neu}^^A -% \begin{macro}{\tud@font@greek@reset} -% \changes{v2.04}{2014/03/10}{neu}^^A -% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen -% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt -% werden. +% Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige +% Warnung definiert. % \begin{macrocode} -\newcommand*\tud@font@greek@set[1]{% - \tud@cmd@store{#1}% - \tud@cmd@store{up#1}% - \tud@cmd@store{var#1}% - \csletcs{#1}{tud@#1}% - \csletcs{up#1}{tud@up#1}% - \csletcs{var#1}{tud@var#1}% +\newcommand*\tud@font@fallback[3]{% + \tud@font@wrn{#1}% + \sffamily\csuse{#2series}\csuse{#3shape}% } -\newcommand*\tud@font@greek@reset[1]{% - \tud@cmd@restore{#1}% - \tud@cmd@restore{up#1}% - \tud@cmd@restore{var#1}% +\newcommand*\tud@font@wrn[1]{% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {% + The requested font `#1' is not available, so\MessageBreak% + a fallback layout is used% + }% } % \end{macrocode} -% \end{macro}^^A \tud@font@greek@reset -% \end{macro}^^A \tud@font@greek@set -% \begin{macro}{\tud@font@greek@upright} -% \begin{macro}{\tud@font@greek@slanted} -% \changes{v2.04}{2014/03/10}{neu}^^A -% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben -% entweder auf aufrecht bzw. kursiv gesetzt werden. +% \end{macro}^^A \textdbn +% \end{macro}^^A \textuxs +% \end{macro}^^A \textubs +% \end{macro}^^A \texturs +% \end{macro}^^A \textuls +% \end{macro}^^A \textuxn +% \end{macro}^^A \textubn +% \end{macro}^^A \texturn +% \end{macro}^^A \textuln +% \end{macro}^^A \tud@dinbn +% \end{macro}^^A \dinbn +% \end{macro}^^A \univxs +% \end{macro}^^A \univbs +% \end{macro}^^A \univrs +% \end{macro}^^A \univls +% \end{macro}^^A \univxn +% \end{macro}^^A \univbn +% \end{macro}^^A \univrn +% \end{macro}^^A \univln +% \end{macro}^^A \tud@font@wrn +% \end{macro}^^A \tud@font@fallback +% \end{macro}^^A \tud@font@init +% \begin{macro}{\cdfont} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\tudfont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% \begin{macro}{\textcdfont} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\tud@cdfont@get} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\tud@cdfont@trim} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\tud@cdfont@@trim} +% \changes{v2.04}{2015/03/04}{neu}^^A +% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl +% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen +% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont} +% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird +% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als +% Textbefehl ermöglicht. % \begin{macrocode} -\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} -\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} +\newcommand*\cdfont[1]{% + \tud@cdfont@get{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \fi% +} +\providecommand*\tudfont[1]{\cdfont{#1}} +\newcommand*\textcdfont[2]{% + \tud@cdfont@get{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \fi% +} +\newcommand*\tud@cdfont@get[1]{% + \tud@cdfont@trim\@tempa{#1}% + \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% + \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% + \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% + \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% + \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% + \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \let\@tempc\relax% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {The font `#1' is unknown}% + }}}}}}}}}}}}}}% +} +\newcommand*\tud@cdfont@trim[2]{% + \protected@edef\@tempa{\trim@spaces{#2}}% + \tud@lowerstring{\@tempa}{\@tempa}% + \tud@cdfont@@trim{ }{}% + \tud@cdfont@@trim{-}{}% + \tud@cdfont@@trim{_}{}% + \tud@cdfont@@trim{~}{}% + \tud@cdfont@@trim{ce}{}% + \tud@cdfont@@trim{ff}{}% + \tud@cdfont@@trim{univers}{}% + \tud@cdfont@@trim{60}{65}% + \tud@cdfont@@trim{light}{45}% + \tud@cdfont@@trim{regular}{55}% + \tud@cdfont@@trim{bold}{65}% + \tud@cdfont@@trim{black}{75}% + \tud@cdfont@@trim{4545}{45}% + \tud@cdfont@@trim{5555}{55}% + \tud@cdfont@@trim{6565}{65}% + \tud@cdfont@@trim{7575}{75}% + \tud@cdfont@@trim{italic}{oblique}% + \tud@cdfont@@trim{slanted}{oblique}% + \let#1\@tempa% +} +\newcommand*\tud@cdfont@@trim[2]{% + \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% + \@expandtwoargs\in@{#1}{\@tempa}% + \@whilesw\ifin@\fi{% + \expandafter\@tempb\@tempa\relax% + \@expandtwoargs\in@{#1}{\@tempa}% + }% +} % \end{macrocode} -% \end{macro}^^A \tud@font@greek@slanted -% \end{macro}^^A \tud@font@greek@upright +% \end{macro}^^A \tud@cdfont@@trim +% \end{macro}^^A \tud@cdfont@trim +% \end{macro}^^A \tud@cdfont@get +% \end{macro}^^A \textcdfont +% \end{macro}^^A \tudfont +% \end{macro}^^A \cdfont % % \iffalse -%</(class|package)&body> -%<*(class|package)&option> +%</body> +%<*option> % \fi % % \subsection{Schriften für den Mathematiksatz} @@ -1624,10 +1179,10 @@ \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% true \bool@set@lock{@tud@cdmath}{true}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek @@ -1651,7 +1206,7 @@ \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \bool@set@lock{@tud@slantedgreek}{#1}% - \if@atdocument\tud@font@math@set\fi% + \TUD@SpecialOptionAtDocument{tud@font@math@set}% \fi% } \TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} @@ -1662,119 +1217,543 @@ % \end{option}^^A slantedgreek % % \iffalse -%</(class|package)&option> -%<*class&body> +%</option> +%<*body> % \fi % -% \begin{macro}{\tud@head@font@set} -% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}^^A -% \changes{v2.03}{2015/01/30}{Fix für die Änderung von \cs{spaceskip} durch -% \pkg{ragged2e}}^^A -% \begin{macro}{\tud@head@font@bold} -% \begin{macro}{\tud@head@font@light} -% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber -% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten -% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die -% Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im -% Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und -% in \cs{tud@head@font@size} gespeichert. -% \begin{macrocode} -\newcommand*\tud@head@font@bold{} -\newcommand*\tud@head@font@light{} -\newcommand*\tud@head@font@set{% -% \end{macrocode} -% Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um -% den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu -% lassen, wird dies hier temporär unterdrückt. -% \begin{macrocode} - \ifdef{\@raggedtwoe@everyselectfont}{% - \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% - \selectfont% - }{}% +% \begin{macro}{\tud@font@greek@loop} +% \changes{v2.04}{2015/03/10}{neu}^^A +% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird +% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der +% Buchstaben durchlaufen wird. +% \begin{macrocode} +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} % \end{macrocode} -% Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet -% werden. +% \end{macro}^^A \tud@font@greek@loop +% \begin{macro}{\tud@font@greek@declare} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Gamma} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Delta} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Theta} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Lambda} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Xi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Pi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Sigma} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Upsilon} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Phi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@Psi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upOmega} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upGamma} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upDelta} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upTheta} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upLambda} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upXi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upPi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upSigma} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upUpsilon} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upPhi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upPsi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@upOmega} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varGamma} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varDelta} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varTheta} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varLambda} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varXi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varPi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varSigma} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varUpsilon} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varPhi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varPsi} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@varOmega} +% \changes{v2.04}{2015/03/10}{neu}^^A +% In Anlehnung an verschiedene Pakete für Mathematikschriften werden Symbole +% für aufrechte und kursive Majuskeln der griechischen Lettern definiert. Damit +% auch bei diesen Buchstaben ein Umschalten für die unterschiedlichen Schriften +% möglich ist, wird eine interne Version definiert und im Bedarfsfall der +% dazugehörige \LaTeX-Befehl mit dieser überschrieben. % \begin{macrocode} - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{bx}{n}{\tud@head@font@size}% - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare % \end{macrocode} -% Die Option \opt{cdhead} wird ausgewertet. +% \end{macro}^^A \tud@varOmega +% \end{macro}^^A \tud@varPsi +% \end{macro}^^A \tud@varPhi +% \end{macro}^^A \tud@varUpsilon +% \end{macro}^^A \tud@varSigma +% \end{macro}^^A \tud@varPi +% \end{macro}^^A \tud@varXi +% \end{macro}^^A \tud@varLambda +% \end{macro}^^A \tud@varTheta +% \end{macro}^^A \tud@varDelta +% \end{macro}^^A \tud@varGamma +% \end{macro}^^A \tud@upOmega +% \end{macro}^^A \tud@upPsi +% \end{macro}^^A \tud@upPhi +% \end{macro}^^A \tud@upUpsilon +% \end{macro}^^A \tud@upSigma +% \end{macro}^^A \tud@upPi +% \end{macro}^^A \tud@upXi +% \end{macro}^^A \tud@upLambda +% \end{macro}^^A \tud@upTheta +% \end{macro}^^A \tud@upDelta +% \end{macro}^^A \tud@upGamma +% \end{macro}^^A \tud@Omega +% \end{macro}^^A \tud@Psi +% \end{macro}^^A \tud@Phi +% \end{macro}^^A \tud@Upsilon +% \end{macro}^^A \tud@Sigma +% \end{macro}^^A \tud@Pi +% \end{macro}^^A \tud@Xi +% \end{macro}^^A \tud@Lambda +% \end{macro}^^A \tud@Theta +% \end{macro}^^A \tud@Delta +% \end{macro}^^A \tud@Gamma +% \end{macro}^^A \tud@font@greek@declare +% \begin{macro}{\tud@font@math@init} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\mv@univers} +% \begin{macro}{\mv@universbold} +% \begin{macro}{\mv@dinbold} +% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart +% \DIN verwendet}^^A +% Für die Mathematikschriften im Fließtext werden für die lateinischen Lettern +% die \Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die +% griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus +% dem \pkg{iwona}-Paket die mathematische Symbole verwendet. Es werden zwei +% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. % \begin{macrocode} - \@tempswafalse% - \ifcase\tud@head@font\relax% false - \ifnum\tud@cdfont>\z@\relax% true/heavy - \ClassWarning{\TUDClassName}{% - It isn't possible to use `cdhead=false'\MessageBreak% - together with `cdfont=true'% +\newcommand*\mv@univers{} +\newcommand*\mv@universbold{} +\newcommand*\mv@dinbold{} +\newcommand*\tud@font@math@init{% + \if@tud@x@fontspec@enabled\if@tud@cdmath% + \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{% + \@ifpackagewith{fontspec}{no-math}{}{% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarningNoLine{tudscrfonts}% +%</package> + {% + It's recommended to load package `fontspec'\MessageBreak% + with option `no-math', if you want to use the\MessageBreak% + corporate design fonts in math mode% + }% }% - \@tempswatrue% - \fi% - \else% true/heavy - \@tempswatrue% + }{}% + \fi\fi% + \if@tud@universmath% + \DeclareMathVersion{univers}% + \DeclareMathVersion{universbold}% + \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% + \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% + \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% + \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% + \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% + \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% + \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}% + \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% + \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% + \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% + \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% +% \end{macrocode} +% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die +% \pkg{ams}-Pakete mit. Diese werden gegebenenfalls geladen. +% \begin{macrocode} + \@ifpackageloaded{amsfonts}{% + \DeclareFontFamily{U}{\tud@univers a}{}% + \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% + \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% + \DeclareFontFamily{U}{\tud@univers b}{}% + \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% + \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% + \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% + }{}% \fi% % \end{macrocode} -% Die Schriften für den Kopf im \CD werden aktiviert. +% Auch für die Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese +% wurden aus dem \pkg{iwona}-Paket entnommen. Auch die verwendeten Symbole +% stammen aus diesem Paket. % \begin{macrocode} - \if@tempswa% true/heavy + \if@tud@dinboldmath% + \DeclareMathVersion{dinbold}% + \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% + \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% + \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}% + \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}% + \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}% + \fi% % \end{macrocode} -% Damit \cs{DeclareFixedFont} zusammen mit \pkg{fontspec} verwendet werden -% kann, wurde zu Beginn der Klasse den drei benötigten Schriftschnitten der -% Univers spezielle Namen zugewiesen, die hier verwendet werden. +% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für +% die Mathematikschriften vorgenommen\dots % \begin{macrocode} - \if@tud@fontspec% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {UniversRegular}{m}{n}{\tud@head@font@size}% - \fi% + \@ifpackageloaded{unicode-math}{% + \let\tud@font@math@set\relax% + \bool@set@lock{@tud@cdmath}{false}% + }{% % \end{macrocode} -% Die klassische Auswahl mittels NFSS-Schriftname und \cs{mddefault}. +% Für die griechischen Buchstaben wird geprüft, ob durch ein Paket diese auf +% die kursive Variante gesetzt wurden. Ist dies der Fall, wird der Standardwert +% für die Option \opt{slantedgreek} auf \val{true} gesetzt. Anschließend +% erfolgt die \emph{Intialisierung} der griechischen Großbuchstaben mit dem +% Befehl \cs{tud@font@greek@init}. % \begin{macrocode} + \let\@tempb\relax% + \let\@tempc\relax% + \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% + \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% + \@tempswafalse% + \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% + \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% + \if@tempswa% + \bool@std@lock{@tud@slantedgreek}{true}% + \fi% + \tud@font@greek@loop\tud@font@greek@init% +% \end{macrocode} +% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart +% der Option \opt{cdfont} die benötigten Mathematikversionen geladen. +% \begin{macrocode} + \tud@font@math@set% + }% +% \end{macrocode} +% Daran anschließend werden die \DIN-Schriften in einer Box verwendet, um das +% Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren. +% \begin{macrocode} + \sbox\z@{\tud@dinbn$ $}% +% \end{macrocode} +% Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften +% undefiniert gesetzt. +% \begin{macrocode} + \undef\tud@font@math@init% +} +% \end{macrocode} +% \end{macro}^^A \mv@dinbold +% \end{macro}^^A \mv@universbold +% \end{macro}^^A \mv@univers +% \end{macro}^^A \tud@font@math@init +% \begin{macro}{\tud@font@greek@init} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\upDelta} +% \begin{macro}{\upGamma} +% \begin{macro}{\upLambda} +% \begin{macro}{\upOmega} +% \begin{macro}{\upPhi} +% \begin{macro}{\upPi} +% \begin{macro}{\upPsi} +% \begin{macro}{\upSigma} +% \begin{macro}{\upTheta} +% \begin{macro}{\upUpsilon} +% \begin{macro}{\upXi} +% \begin{macro}{\varDelta} +% \begin{macro}{\varGamma} +% \begin{macro}{\varLambda} +% \begin{macro}{\varOmega} +% \begin{macro}{\varPhi} +% \begin{macro}{\varPi} +% \begin{macro}{\varPsi} +% \begin{macro}{\varSigma} +% \begin{macro}{\varTheta} +% \begin{macro}{\varUpsilon} +% \begin{macro}{\varXi} +% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen +% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und +% kursiver Buchstaben. +% \begin{macrocode} +\newcommand*\tud@font@greek@init[1]{% + \ifcsundef{up#1}{% + \if@tempswa% + \csletcs{up#1}{tud@up#1}% \else% - \if@tud@univers% - \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% true - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% heavy - \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\tud@univers}{m}{n}{\tud@head@font@size}% + \csletcs{up#1}{#1}% + \fi% + }{}% + \ifcsundef{var#1}{% + \if@tempswa% + \csletcs{var#1}{#1}% + \else% + \csletcs{var#1}{tud@var#1}% + \fi% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \varXi +% \end{macro}^^A \varUpsilon +% \end{macro}^^A \varTheta +% \end{macro}^^A \varSigma +% \end{macro}^^A \varPsi +% \end{macro}^^A \varPi +% \end{macro}^^A \varPhi +% \end{macro}^^A \varOmega +% \end{macro}^^A \varLambda +% \end{macro}^^A \varGamma +% \end{macro}^^A \varDelta +% \end{macro}^^A \upXi +% \end{macro}^^A \upUpsilon +% \end{macro}^^A \upTheta +% \end{macro}^^A \upSigma +% \end{macro}^^A \upPsi +% \end{macro}^^A \upPi +% \end{macro}^^A \upPhi +% \end{macro}^^A \upOmega +% \end{macro}^^A \upLambda +% \end{macro}^^A \upGamma +% \end{macro}^^A \upDelta +% \end{macro}^^A \tud@font@greek@init +% \begin{macro}{\tud@font@math@set} +% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen. +% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und +% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen +% das Mapping der griechischen Glyphen geändert, zum anderen werden die +% originalen Mathematikversionen überschrieben respektive wiederhergestellt. +% \begin{macrocode} +\newcommand*\tud@font@math@set{% +% \end{macrocode} +% Wurde per Option die Verwendung der Mathematikschriften im \CD aktiviert, +% wird für den Fall, dass die Schriften des \CDs nicht installiert sind, eine +% Warnung erzeugt. +% \begin{macrocode} + \if@atdocument% + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@cdmath% + \if@tud@universmath\else% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {`Univers' math fonts not found}% + \fi% + \if@tud@dinboldmath\else% +%<*class> + \ClassWarning{\TUD@Class@Name}% +%</class> +%<*package> + \PackageWarning{tudscrfonts}% +%</package> + {`DIN Bold' math fonts not found}% \fi% \fi% \fi% \fi% + \if@tud@universmath% + \if@tud@cdmath% + \tud@cmd@store{mv@normal}% + \tud@cmd@store{mv@bold}% + \let\mv@normal\mv@univers% + \let\mv@bold\mv@universbold% + \tud@font@greek@loop\tud@font@greek@set% + \else% + \tud@cmd@restore{mv@normal}% + \tud@cmd@restore{mv@bold}% + \tud@font@greek@loop\tud@font@greek@reset% + \fi% + \fi% + \if@tud@slantedgreek% + \tud@font@greek@loop\tud@font@greek@slanted% + \else% + \tud@font@greek@loop\tud@font@greek@upright% + \fi% + \mathversion{normal}% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@math@set +% \begin{macro}{\tud@font@greek@set} +% \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@font@greek@reset} +% \changes{v2.04}{2015/03/10}{neu}^^A +% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen +% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt +% werden. +% \begin{macrocode} +\newcommand*\tud@font@greek@set[1]{% + \tud@cmd@store{#1}% + \tud@cmd@store{up#1}% + \tud@cmd@store{var#1}% + \csletcs{#1}{tud@#1}% + \csletcs{up#1}{tud@up#1}% + \csletcs{var#1}{tud@var#1}% +} +\newcommand*\tud@font@greek@reset[1]{% + \tud@cmd@restore{#1}% + \tud@cmd@restore{up#1}% + \tud@cmd@restore{var#1}% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@greek@reset +% \end{macro}^^A \tud@font@greek@set +% \begin{macro}{\tud@font@greek@upright} +% \begin{macro}{\tud@font@greek@slanted} +% \changes{v2.04}{2015/03/10}{neu}^^A +% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben +% entweder auf aufrecht bzw. kursiv gesetzt werden. +% \begin{macrocode} +\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} +\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} +% \end{macrocode} +% \end{macro}^^A \tud@font@greek@slanted +% \end{macro}^^A \tud@font@greek@upright +% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige +% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt +% das Setzen der Mathematikschriften durch \cs{AtBeginDocument} innerhalb von +% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}. +% \begin{macrocode} +%<class>\AtEndPreamble% +%<package>\AtBeginDocument% +{% +% \end{macrocode} +% Falls \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom Paket +% erwarteten Makros für die Schriftschnitte der einzelnen Schriftfamilien +% definiert. Beim Aufruf von \cs{tud@font@set} werden diese anschließend +% gesichert. +% \begin{macrocode} + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% + \tud@font@check% +% \end{macrocode} +% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen +% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten. +% \begin{macrocode} +%<*package> + \ifdef{\sectfont}{}{\let\sectfont\relax}% +%</package> +% \end{macrocode} +% Damit die Schrift im Dokument später noch umgestellt werden kann, werden +% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird +% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal +% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie +% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu +% aktivieren. +% \begin{macrocode} + \tud@font@set% +% \end{macrocode} +% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und +% die dazugehörigen Befehle definiert. Außerdem wird eine Warnung ausgegeben, +% sobald mindestens eine der notwendigen OpenType-Schriften fehlt. +% \begin{macrocode} + \tud@font@init% +% \end{macrocode} +% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um +% insbesondere auf Einstellungen von \pkg{fontspec} reagieren zu können. Da es +% so gut wie keine freien OpenType"=Schriften für den mathmatischen Formelsatz +% gibt, werden \emph{immer} die PostScript"=Schriften verwendet, falls diese +% installiert sind. +% \begin{macrocode} +%<class> \AtBeginDocument{\tud@font@math@init}% +%<package> \tud@font@math@init% } % \end{macrocode} -% \end{macro}^^A \tud@head@font@light -% \end{macro}^^A \tud@head@font@bold -% \end{macro}^^A \tud@head@font@set % -% \iffalse -%</class&body> -%<*(class|package)&body> -% \fi +% \subsection{Anpassungen für die Klasse \cls{beamer}} +% +% Die \cls{beamer}-Klasse lädt standardmäßig serifenlose Mathematikschriften. +% Dies soll verhindert werden, damit die Auswahl über die Option \opt{cdmath} +% erfolgen kann. +% \begin{macrocode} +%<*package> +\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}} +%</package> +% \end{macrocode} +% +% \subsection{Anpassungen für das Paket \pkg{siunitx}} +% +% \begin{macro}{\lseries} +% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für +% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier +% Rechnung getragen. +% \begin{macrocode} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% +} +% \end{macrocode} +% \end{macro}^^A \lseries +% +% \subsection{Schrifteinstellungen für Überschriften} % % \begin{macro}{\ifdin} % \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A -% Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig -% wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für -% die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe -% im Dokument sowie Inhaltserzeichnis und/oder Kolumnentitel zu unterscheiden. +% Der Befehl \cs{ifdin} prüft auf die Verwendung von \DIN. Davon abhängig wird +% entweder das erste oder das zweite Argument ausgeführt. Dies kann für die +% Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe im +% Dokument sowie Inhaltsverzeichnis und/oder Kolumnentitel zu unterscheiden. % \begin{macrocode} \newrobustcmd*\ifdin{% - \@tempswafalse% - \@expandtwoargs\in@{DINBold}{\f@family}% - \ifin@\@tempswatrue\fi% - \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi% - \if@tempswa% + \ifx\f@family\tud@dinbold% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% @@ -1782,34 +1761,27 @@ } % \end{macrocode} % \end{macro}^^A \ifdin -% -% \subsection{Bedingte Majuskeln für Überschriften} -% -% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch -% tatsächlich die Schrift DIN~Bold verwendet wird. -% \begin{macro}{\tud@makeuppercase} -% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die -% richtige Schriftfamilie verwendet wird. -% \begin{macrocode} -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% -% \end{macrocode} -% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden -% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen -% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten -% verschoben. Allerdings ist das ein ziemlich übler Hack. -% \begin{macrocode} - \protect\vphantom{\"A\"O\"U}% -% \addtokomafont{section}{\strut\ignorespaces}% +% \begin{macro}{\tud@sec@fontface} +% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A +% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im +% Layout des \CDs definiert. Normalerweise wird hierfür \DIN verwendet, was +% allerdings per Option auch deaktiviert werden kann. +% \begin{macrocode} +\newcommand*\tud@sec@fontface[1][]{% + \if@tud@cdfont@din% + \tud@dinbn\tud@raggedright% + \else% + \sectfont#1% + \fi% } % \end{macrocode} -% \end{macro}^^A \tud@makeuppercase +% \end{macro}^^A \tud@sec@fontface % -% \subsection{Anpassungen für das Paket \pkg{ragged2e}} +% \subsection{Ausrichtung von Überschriften und das Paket \pkg{ragged2e}} % % \begin{macro}{\tud@raggedright} % \begin{macro}{\tud@RaggedRight} -% Die Überschriften in DIN"~Bold sollen laut \CD linksbündig und nie mit +% Die Überschriften in \DIN sollen laut \CD linksbündig und nie mit aktiver % Silbentrennung gesetzt werden. Normalerweise ist das dies beim linksbündigen % Satz bei \LaTeX{} der Fall. Allerdings ist es mit dem Paket \pkg{ragged2e} % möglich, das Verhalten für den Flattersatz zu ändern und die Silbentrennung @@ -1828,843 +1800,36 @@ \renewcommand*\tud@RaggedRight{\RaggedRight}% } % \end{macrocode} -% \end{macro}^^A \tud@ragged2e +% \end{macro}^^A \tud@RaggedRight % \end{macro}^^A \tud@raggedright % -% \subsection{Anpassungen für das Paket \pkg{siunitx}} +% \subsection{Bedingte Majuskeln für Überschriften} % -% \begin{macro}{\lseries} -% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für -% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier -% Rechnung getragen. +% Für Überschriften in Majuskeln\footnote{Großbuchstaben} wird der Befehl +% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase} +% verbessert, aus dem Paket \pkg{textcase} genutzt. % \begin{macrocode} -\AfterPackage*{siunitx}{% - \providecommand*\lseries{\fontseries{l}\selectfont} -} -% \end{macrocode} -% \end{macro}^^A \lseries -% -% \iffalse -%</(class|package)&body> -%</!fontsizes> -% \fi -% -% \Finale -% -\endinput -% -% \iffalse -%<*fontsizes> -% \fi -% -% \subsection{Erzeugen von Schriftgrößendateien} -% -% Ab der \TUDScript-Version~v2.04 können sowohl eigene Schriftgrößendateien -% erzeugt werden als auch zusätzlich ein~-- aus \KOMAScript{} abgewandelter~-- -% Befehl zur automatischen Erzeugung dieser Dateien genutzt werden. Im Laufe -% der Weiterentwicklung von \TUDScript hat sich jedoch gezeigt, dass dies -% spätestens mit \KOMAScript~v3.17 nicht notwendig ist. Deshalb wird auf die -% Verwendung dieser Möglichkeiten vorerst verzichtet. Die Schriftgrößendateien -% und das Paket \pkg{scrfontsizes} werden momentan nicht generiert. Dennoch -% bleibt der Quelltext bis auf weiteres hier bestehen. -% -% \iffalse -%<*10pt|11pt|12pt> -% \fi -% -% Erst ein bisschen Geplänkel. -% \begin{macrocode} -\ProvidesFile{% -%<10pt> tudscrsize10pt.clo% -%<11pt> tudscrsize11pt.clo% -%<12pt> tudscrsize12pt.clo% -}[% -%!TUDVersion - font size class option -%<10pt> (10pt)% -%<11pt> (11pt)% -%<12pt> (12pt)% -] -% \end{macrocode} -% Und jetzt die Schriftgrößendefinition. -% \begin{macrocode} -\def\normalsize{% -%<*10pt> - \@setfontsize\normalsize{10}{12.5\p@}% - \abovedisplayskip 10\p@ \@plus2.5\p@ \@minus5\p@ - \abovedisplayshortskip \z@ \@plus3\p@ - \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ -%</10pt> -%<*11pt> - \@setfontsize\normalsize{11}{13.75\p@}% - \abovedisplayskip 11\p@ \@plus2.75\p@ \@minus5.5\p@ - \abovedisplayshortskip \z@ \@plus3.3\p@ - \belowdisplayshortskip 6.6\p@ \@plus3.3\p@ \@minus3.3\p@ -%</11pt> -%<*12pt> - \@setfontsize\normalsize{12}{15\p@}% - \abovedisplayskip 12\p@ \@plus3\p@ \@minus6\p@ - \abovedisplayshortskip \z@ \@plus3.6\p@ - \belowdisplayshortskip 7.2\p@ \@plus3.6\p@ \@minus3.6\p@ -%</12pt> - \belowdisplayskip\abovedisplayskip - \let\@listi\@listI -} -\def\small{% -%<*10pt> - \@setfontsize\small{9}{11.25\p@}% - \abovedisplayskip 9\p@ \@plus2.25\p@ \@minus4.5\p@ - \abovedisplayshortskip \z@ \@plus2.7\p@ - \belowdisplayshortskip 5.4\p@ \@plus2.7\p@ \@minus2.7\p@ -%</10pt> -%<*11pt> - \@setfontsize\small{9.9}{12.375\p@}% - \abovedisplayskip 9.9\p@ \@plus2.475\p@ \@minus4.95\p@ - \abovedisplayshortskip \z@ \@plus2.97\p@ - \belowdisplayshortskip 5.94\p@ \@plus2.97\p@ \@minus2.97\p@ -%</11pt> -%<*12pt> - \@setfontsize\small{10.8}{13.5\p@}% - \abovedisplayskip 10.8\p@ \@plus2.7\p@ \@minus5.4\p@ - \abovedisplayshortskip \z@ \@plus3.24\p@ - \belowdisplayshortskip 6.48\p@ \@plus3.24\p@ \@minus3.24\p@ -%</12pt> - \def\@listi{% - \leftmargin\leftmargini -%<*10pt> - \topsep 6\p@ \@plus2\p@ \@minus3\p@ - \parsep 3\p@ \@plus1.5\p@ \@minus\p@ -%</10pt> -%<*11pt> - \topsep 6.6\p@ \@plus2.2\p@ \@minus3.3\p@ - \parsep 3.3\p@ \@plus1.65\p@ \@minus1.1\p@ -%</11pt> -%<*12pt> - \topsep 7.2\p@ \@plus2.4\p@ \@minus3.6\p@ - \parsep 3.6\p@ \@plus1.8\p@ \@minus1.2\p@ -%</12pt> - \itemsep\parsep - }% - \belowdisplayskip\abovedisplayskip -} -\def\footnotesize{% -%<*10pt> - \@setfontsize\footnotesize{8}{10\p@}% - \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2.4\p@ - \belowdisplayshortskip 4.8\p@ \@plus2.4\p@ \@minus2.4\p@ -%</10pt> -%<*11pt> - \@setfontsize\footnotesize{8.8}{11\p@}% - \abovedisplayskip 8.8\p@ \@plus2.2\p@ \@minus4.4\p@ - \abovedisplayshortskip \z@ \@plus2.64\p@ - \belowdisplayshortskip 5.28\p@ \@plus2.64\p@ \@minus2.64\p@ -%</11pt> -%<*12pt> - \@setfontsize\footnotesize{9.6}{12\p@}% - \abovedisplayskip 9.6\p@ \@plus2.4\p@ \@minus4.8\p@ - \abovedisplayshortskip \z@ \@plus2.88\p@ - \belowdisplayshortskip 5.76\p@ \@plus2.88\p@ \@minus2.88\p@ -%</12pt> - \def\@listi{% - \leftmargin\leftmargini -%<*10pt> - \topsep 4.5\p@ \@plus1.5\p@ \@minus2.25\p@ - \parsep 2.25\p@ \@plus1.125\p@ \@minus\p@ -%</10pt> -%<*11pt> - \topsep 4.95\p@ \@plus1.65\p@ \@minus2.475\p@ - \parsep 2.475\p@ \@plus1.2375\p@ \@minus\p@ -%</11pt> -%<*12pt> - \topsep 5.4\p@ \@plus1.8\p@ \@minus2.7\p@ - \parsep 2.7\p@ \@plus1.35\p@ \@minus\p@ -%</12pt> - \itemsep\parsep - }% - \belowdisplayskip\abovedisplayskip -} -%<*10pt> -\def\scriptsize{\@setfontsize\scriptsize{6.5}{8.125\p@}} -\def\tiny{\@setfontsize\tiny{5}{6.25\p@}} -\def\large{\@setfontsize\large{11}{13.75\p@}} -\def\Large{\@setfontsize\Large{13}{16.25\p@}} -\def\LARGE{\@setfontsize\LARGE{16}{20\p@}} -\def\huge{\@setfontsize\huge{19}{23.75\p@}} -\def\Huge{\@setfontsize\Huge{22}{27.5\p@}} -%</10pt> -%<*11pt> -\def\scriptsize{\@setfontsize\scriptsize{7.15}{8.9375\p@}} -\def\tiny{\@setfontsize\tiny{5.5}{6.875\p@}} -\def\large{\@setfontsize\large{12.1}{15.125\p@}} -\def\Large{\@setfontsize\Large{14.3}{17.875\p@}} -\def\LARGE{\@setfontsize\LARGE{17.6}{22\p@}} -\def\huge{\@setfontsize\huge{20.9}{26.125\p@}} -\def\Huge{\@setfontsize\Huge{24.2}{30.25\p@}} -%</11pt> -%<*12pt> -\def\scriptsize{\@setfontsize\scriptsize{7.8}{9.75\p@}} -\def\tiny{\@setfontsize\tiny{6}{7.5\p@}} -\def\large{\@setfontsize\large{13.2}{16.5\p@}} -\def\Large{\@setfontsize\Large{15.6}{19.5\p@}} -\def\LARGE{\@setfontsize\LARGE{19.2}{24\p@}} -\def\huge{\@setfontsize\huge{22.8}{28.5\p@}} -\def\Huge{\@setfontsize\Huge{26.4}{33\p@}} -%</12pt> -\normalsize -%<*10pt> -\setlength{\footnotesep}{7\p@} -\setlength{\skip\footins}{9\p@ \@plus4\p@ \@minus2\p@} -\setlength{\floatsep}{12.5\p@ \@plus2.5\p@ \@minus2.5\p@} -\setlength{\textfloatsep}{20\p@ \@plus2.5\p@ \@minus5\p@} -%</10pt> -%<*11pt> -\setlength{\footnotesep}{7.7\p@} -\setlength{\skip\footins}{9.9\p@ \@plus4.4\p@ \@minus2.2\p@} -\setlength{\floatsep}{13.75\p@ \@plus2.75\p@ \@minus2.75\p@} -\setlength{\textfloatsep}{22\p@ \@plus2.75\p@ \@minus5.5\p@} -%</11pt> -%<*12pt> -\setlength{\footnotesep}{8.4\p@} -\setlength{\skip\footins}{10.8\p@ \@plus4.8\p@ \@minus2.4\p@} -\setlength{\floatsep}{15\p@ \@plus3\p@ \@minus3\p@} -\setlength{\textfloatsep}{24\p@ \@plus3\p@ \@minus6\p@} -%</12pt> -\intextsep\floatsep -\dblfloatsep\floatsep -\dbltextfloatsep\textfloatsep -\setlength{\@fptop}{\z@ \@plus1fil} -%<10pt>\setlength{\@fpsep}{7.5\p@ \@plus2fil} -%<11pt>\setlength{\@fpsep}{8.25\p@ \@plus2fil} -%<12pt>\setlength{\@fpsep}{9\p@ \@plus2fil} -\@fpbot\@fptop -\@dblfptop\@fptop -\@dblfpsep\@fpsep -\@dblfpbot\@dblfptop -%<10pt>\setlength{\partopsep}{2.5\p@ \@plus1.25\p@ \@minus1.25\p@} -%<11pt>\setlength{\partopsep}{2.75\p@ \@plus1.375\p@ \@minus1.375\p@} -%<12pt>\setlength{\partopsep}{3\p@ \@plus1.5\p@ \@minus1.5\p@} -\def\@listi{% - \leftmargin\leftmargini -%<*10pt> - \topsep 8\p@ \@plus2\p@ \@minus4\p@ - \parsep 4\p@ \@plus2\p@ \@minus\p@ -%</10pt> -%<*11pt> - \topsep 8.8\p@ \@plus2.2\p@ \@minus4.4\p@ - \parsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@ -%</11pt> -%<*12pt> - \topsep 9.6\p@ \@plus2.4\p@ \@minus4.8\p@ - \parsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@ -%</12pt> - \itemsep\parsep -} -\let\@listI\@listi -\def\@listii{% - \leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep -%<*10pt> - \topsep 4\p@ \@plus2\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ -%</10pt> -%<*11pt> - \topsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@ - \parsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@ -%</11pt> -%<*12pt> - \topsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@ - \parsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@ -%</12pt> - \itemsep\parsep -} -\def\@listiii{% - \leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep -%<*10pt> - \topsep 2\p@ \@plus\p@ \@minus\p@ -%</10pt> -%<*11pt> - \topsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@ -%</11pt> -%<*12pt> - \topsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@ -%</12pt> - \parsep\z@ - \partopsep \z@ \@minus\p@ - \itemsep\topsep -} -\def\@listiv{% - \leftmargin\leftmarginiv - \labelwidth\leftmarginiv - \advance\labelwidth-\labelsep -} -\def\@listv{% - \leftmargin\leftmarginv - \labelwidth\leftmarginv - \advance\labelwidth-\labelsep -} -\def\@listvi{% - \leftmargin\leftmarginvi - \labelwidth\leftmarginvi - \advance\labelwidth-\labelsep -} -%<*10pt> -\setlength{\smallskipamount}{3.125\p@ \@plus1.25\p@ \@minus1.25\p@} -\setlength{\medskipamount}{6.25\p@ \@plus2.5\p@ \@minus2.5\p@} -\setlength{\bigskipamount}{12.5\p@ \@plus5\p@ \@minus5\p@} -%</10pt> -%<*11pt> -\setlength{\smallskipamount}{3.4375\p@ \@plus1.375\p@ \@minus1.375\p@} -\setlength{\medskipamount}{6.875\p@ \@plus2.75\p@ \@minus2.75\p@} -\setlength{\bigskipamount}{13.75\p@ \@plus5.5\p@ \@minus5.5\p@} -%</11pt> -%<*12pt> -\setlength{\smallskipamount}{3.75\p@ \@plus1.5\p@ \@minus1.5\p@} -\setlength{\medskipamount}{7.5\p@ \@plus3\p@ \@minus3\p@} -\setlength{\bigskipamount}{15\p@ \@plus6\p@ \@minus6\p@} -%</12pt> -\providecommand*\TUD@AfterKOMAClass[1]{% - \ifcsname KOMAClassName\endcsname - \if@atdocument% - #1 - \else% - \AfterClass+{\KOMAClassName}{#1}% - \fi% - \fi% -} -\TUD@AfterKOMAClass{% -%<10pt> \setlength{\abovecaptionskip}{10\p@} -%<11pt> \setlength{\abovecaptionskip}{11\p@} -%<12pt> \setlength{\abovecaptionskip}{12\p@} - \setlength{\belowcaptionskip}{\z@} -} -\@ifundefined{@list@extra}{}{% - \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi% - \l@addto@macro{\@listi}{\@list@extra}% - \let\@listI=\@listi - \l@addto@macro{\@listii}{\@list@extra}% - \l@addto@macro{\@listiii}{\@list@extra}% - \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}% - \l@addto@macro{\small}{\protect\add@extra@listi{sml}}% -} -\@listi +\RequirePackage{textcase}[2004/10/07] % \end{macrocode} -% -% \iffalse -%</10pt|11pt|12pt> -%<*package&body> -% \fi -% -% Es wird der Inhalt des Pakets \pkg{tudscrfontsizes} definiert, welches auf -% \pkg{scrfontsizes} aufbaut. -% \begin{macro}{\changefontsizes} -% \begin{macro}{\tud@changefontsizes} -% Das Pendant zum \KOMAScript-Makro \cs{generate@fontfile} ist der hier -% definierte Befehl \cs{tud@generate@fontfile}. Mit diesem können eigenständige -% Schriftgrößendateien erstellt werden. -% \begin{macrocode} -\RequirePackage{scrfontsizes}[2015/02/07] -% \end{macrocode} -% Hiermit kann die Schriftgröße im Dokument geändert werden, falls keine -% passende Schriftgrößendatei vorhanden ist. Der Befehl lehnt sich stark am -% \KOMAScript-Befehl \cs{changefontsizes} an, ändert allerdings einige Längen -% marginal. -% \begin{macrocode} -\newcommand*{\tud@changefontsizes}[2][\dimexpr5\@tempdima/4\relax]{% -%<*class> - \ClassInfo{\TUDClassName}% -%</class> -%<*package> - \PackageInfo{tudscrfonts}% -%</package> - {Calculating font sizes for basic size `#2'}% - \@defaultunits\@tempdima#2pt\relax\@nnil% - \setlength{\@tempdimc}{\@tempdima}% - \addtolength{\@tempdimc}{-10\p@}% - \edef\@ptsize{\strip@pt\@tempdimc}% - \setlength{\@tempdimb}{#1}% - \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}% - \edef\@tempa{\strip@pt\@tempdimc}% - \@defaultunits\@tempdimb\dimexpr\@tempa\@tempdima/100\relax pt\relax\@nnil% - \setlength{\@tempdimc}{\@tempdima}% - \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}% - {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% - \scr@setlength{\abovedisplayshortskip}{\z@}% - {\dimexpr6\@tempdimb/25\relax}{\z@}% - \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}% - {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% - \setlength{\belowdisplayskip}{\abovedisplayskip}% - \edef\normalsize{% - \noexpand\@setfontsize\noexpand\normalsize% - {\the\@tempdima}{\the\@tempdimb}% - \abovedisplayskip \the\abovedisplayskip% - \abovedisplayshortskip \the\abovedisplayshortskip% - \belowdisplayskip \the\belowdisplayskip% - \belowdisplayshortskip \the\belowdisplayshortskip% - \let\noexpand\@listi\noexpand\@listI% - }% - \setlength{\@tempdima}{\dimexpr9\@tempdimc/10\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}% - {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% - \scr@setlength{\abovedisplayshortskip}{\z@}% - {\dimexpr6\@tempdimb/25\relax}{\z@}% - \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}% - {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% - \setlength{\belowdisplayskip}{\abovedisplayskip}% - \edef\small{% - \noexpand\@setfontsize\noexpand\small% - {\the\@tempdima}{\the\@tempdimb}% - \abovedisplayskip \the\abovedisplayskip% - \abovedisplayshortskip \the\abovedisplayshortskip% - \belowdisplayskip \the\belowdisplayskip% - \belowdisplayshortskip \the\belowdisplayshortskip% - \let\noexpand\@listi\noexpand\@listi@small% - }% - \setlength{\@tempdima}{\dimexpr4\@tempdimc/5\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}% - {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% - \scr@setlength{\abovedisplayshortskip}{\z@}% - {\dimexpr6\@tempdimb/25\relax}{\z@}% - \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}% - {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% - \setlength{\belowdisplayskip}{\abovedisplayskip}% - \edef\footnotesize{% - \noexpand\@setfontsize\noexpand\footnotesize% - {\the\@tempdima}{\the\@tempdimb}% - \abovedisplayskip \the\abovedisplayskip% - \abovedisplayshortskip \the\abovedisplayshortskip% - \belowdisplayskip \the\belowdisplayskip% - \belowdisplayshortskip \the\belowdisplayshortskip% - \let\noexpand\@listi\noexpand\@listi@footnotesize% - }% - \setlength{\@tempdima}{\dimexpr13\@tempdimc/20\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \edef\scriptsize{% - \noexpand\@setfontsize\noexpand\scriptsize% - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{\dimexpr\@tempdimc/2\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \edef\tiny{% - \noexpand\@setfontsize\noexpand\tiny% - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{\dimexpr11\@tempdimc/10\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \edef\large{% - \noexpand\@setfontsize\noexpand\large% - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{\dimexpr13\@tempdimc/10\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \edef\Large{% - \noexpand\@setfontsize\noexpand\Large% - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{\dimexpr16\@tempdimc/10\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \edef\LARGE{% - \noexpand\@setfontsize\noexpand\LARGE% - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{\dimexpr19\@tempdimc/10\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \edef\huge{% - \noexpand\@setfontsize\noexpand\huge% - {\the\@tempdima}{\the\@tempdimb}% - }% - \setlength{\@tempdima}{\dimexpr22\@tempdimc/10\relax}% - \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% - \edef\Huge{% - \noexpand\@setfontsize\noexpand\Huge% - {\the\@tempdima}{\the\@tempdimb}% - }% - \normalsize% - \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi% - \setlength{\@tempdimb}{\f@baselineskip}% - \scr@setlength{\topsep}{\dimexpr16\@tempdimb/25\relax}% - {\dimexpr4\@tempdimb/25\relax}{\dimexpr8\@tempdimb/25\relax}% - \scr@setlength{\parsep}{\dimexpr8\@tempdimb/25\relax}% - {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listi\endcsname% - \endgroup% - \edef\@listi{\leftmargin\leftmargini% - \topsep \the\topsep% - \parsep \the\parsep% - \itemsep \parsep% - \if@tempswa\noexpand\@list@extra\fi% - }% - \let\@listI\@listi% - \scr@setlength{\topsep}{\dimexpr12\@tempdimb/25\relax}% - {\dimexpr4\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% - \scr@setlength{\parsep}{\dimexpr6\@tempdimb/25\relax}% - {\dimexpr3\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listi\endcsname% - \endgroup% - \edef\@listi@small{\leftmargin\leftmargini% - \topsep \the\topsep% - \parsep \the\parsep% - \itemsep \parsep% - \if@tempswa\noexpand\@list@extra\fi% - }% - \scr@setlength{\topsep}{\dimexpr36\@tempdimb/100\relax}% - {\dimexpr12\@tempdimb/100\relax}{\dimexpr18\@tempdimb/100\relax}% - \scr@setlength{\parsep}{\dimexpr18\@tempdimb/100\relax}% - {\dimexpr9\@tempdimb/100\relax}{\dimexpr6\@tempdimb/100\relax}% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listi\endcsname% - \endgroup% - \edef\@listi@footnotesize{\leftmargin\leftmargini% - \topsep \the\topsep% - \parsep \the\parsep% - \itemsep \parsep% - \if@tempswa\noexpand\@list@extra\fi% - }% - \scr@setlength{\topsep}{\dimexpr8\@tempdimb/25\relax}% - {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% - \scr@setlength{\parsep}{\dimexpr4\@tempdimb/25\relax}% - {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listii\endcsname% - \endgroup% - \edef\@listii{\leftmargin\leftmarginii% - \labelwidth=\dimexpr \leftmargin-\labelsep% - \topsep \the\topsep% - \parsep \the\parsep% - \itemsep \parsep% - \if@tempswa\noexpand\@list@extra\fi% - }% - \scr@setlength{\topsep}{\dimexpr4\@tempdimb/25\relax}% - {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% - \setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listiii\endcsname% - \endgroup% - \edef\@listiii{\leftmargin\leftmarginiii% - \labelwidth=\dimexpr \leftmargin-\labelsep% - \topsep \the\topsep% - \parsep \z@% - \partopsep \the\partopsep% - \itemsep \topsep% - \if@tempswa\noexpand\@list@extra\fi% - }% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listiv\endcsname% - \endgroup% - \edef\@listiv{\leftmargin\leftmarginiv% - \labelwidth=\dimexpr \leftmargin-\labelsep\relax% - \if@tempswa\noexpand\@list@extra\fi% - }% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listv\endcsname% - \endgroup% - \edef\@listv{\leftmargin\leftmarginv% - \labelwidth=\dimexpr \leftmargin-\labelsep\relax% - \if@tempswa\noexpand\@list@extra\fi% - }% - \@tempswafalse% - \begingroup% - \def\@list@extra{\aftergroup\@tempswatrue}% - \csname @listvi\endcsname% - \endgroup% - \edef\@listvi{\leftmargin\leftmarginvi% - \labelwidth=\dimexpr \leftmargin-\labelsep\relax% - \if@tempswa\noexpand\@list@extra\fi% - }% - \@listi% - \setlength{\@tempdimb}{\f@baselineskip}% - \setlength{\footnotesep}{\dimexpr14\@tempdimb/25\relax}% - \scr@setlength{\skip\footins}{\dimexpr18\@tempdimb/25\relax}% - {\dimexpr8\@tempdimb/25\relax}{\dimexpr4\@tempdimb/25\relax}% - \scr@setlength{\floatsep}{\@tempdimb}% - {\dimexpr\@tempdimb/5\relax}{\dimexpr\@tempdimb/5\relax}% - \scr@setlength{\textfloatsep}{\dimexpr8\@tempdimb/5\relax}% - {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% - \setlength{\intextsep}{\floatsep}% - \setlength{\dblfloatsep}{\floatsep}% - \setlength{\dbltextfloatsep}{\textfloatsep}% - \setlength{\@fptop}{\z@ \@plus 1fil}% - \setlength{\@fpsep}{\dimexpr3\@tempdimb/5\relax \@plus 2fil}% - \setlength{\@fpbot}{\@fptop}% - \setlength{\@dblfptop}{\@fptop}% - \setlength{\@dblfpsep}{\@fpsep}% - \setlength{\@dblfpbot}{\@fptop}% - \scr@setlength{\partopsep}{\dimexpr\@tempdimb/5\relax}% - {\dimexpr\@tempdimb/10\relax}{\dimexpr\@tempdimb/10\relax}% - \tud@font@skip@@set% -} +% \begin{macro}{\tud@makeuppercase} +% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} nur dann aus, wenn die +% richtige Schriftfamilie~-- sprich \DIN~-- verwendet wird. +% \begin{macrocode} +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% % \end{macrocode} -% \ToDo{Versionsdatum einfügen} -% \begin{macrocode} -\@ifundefined{tud@font@skip@@set}{\RequirePackage{tudscrfonts}[2015/03/27]}{} -\let\changefontsizes\tud@changefontsizes% -% \end{macrocode} -% \end{macro}^^A \tud@changefontsizes -% \end{macro}^^A \changefontsizes -% \begin{macro}{\generate@fontfile} -% \begin{macro}{\tud@generate@fontfile} -% \begin{macrocode} -\newcommand*{\tud@generate@fontfile}[2]{% - \def\@ind{\space\space}% - \immediate\openout\@fontfile #1#2.clo - \immediate\write\@fontfile{\@percentchar^^J% - \@percentchar\space This is file `#1#2.clo', generated with^^J% - \@percentchar\space tudscrfontsizes - \csname ver@tudscrfontsizes.sty\endcsname,^^J% - \@percentchar\space and bases on scrfontsize.sty by Markus Kohm.^^J% - \@percentchar^^J% - \string\ProvidesFile{#1#2.clo}[% - \the\year/\ifnum\month<10 0\fi\the\month/\ifnum\day<10 0\fi\the\day% - \space generated font size class option (#2)]}% - \immediate\write\@fontfile{% - \string\def\string\normalsize{\@percentchar^^J% - \@ind\string\@setfontsize\string\normalsize{\f@size}{\f@baselineskip}% - \@percentchar^^J% - \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% - \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% - \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% - \@ind\string\belowdisplayskip\string\abovedisplayskip^^J% - \@ind\string\let\string\@listi\string\@listI^^J% - }% - }% - \begingroup\small\@listi - \immediate\write\@fontfile{% - \string\def\string\small{\@percentchar^^J% - \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}% - \@percentchar^^J% - \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% - \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% - \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% - \@ind\string\def\string\@listi{\@percentchar^^J% - \@ind\@ind\string\leftmargin\string\leftmargini^^J% - \@ind\@ind\string\topsep \the\topsep^^J% - \@ind\@ind\string\parsep \the\parsep^^J% - \@ind\@ind\string\itemsep \string\parsep^^J% - \@ind}\@percentchar^^J% - \@ind\string\belowdisplayskip\string\abovedisplayskip^^J% - }% - }% - \endgroup - \begingroup\footnotesize\@listi - \immediate\write\@fontfile{% - \string\def\string\footnotesize{\@percentchar^^J% - \@ind\string\@setfontsize\string\footnotesize{\f@size}{\f@baselineskip}% - \@percentchar^^J% - \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% - \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% - \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% - \@ind\string\def\string\@listi{\@percentchar^^J% - \@ind\@ind\string\leftmargin\string\leftmargini^^J% - \@ind\@ind\string\topsep \the\topsep^^J% - \@ind\@ind\string\parsep \the\parsep^^J% - \@ind\@ind\string\itemsep \string\parsep^^J% - \@ind}\@percentchar^^J% - \@ind\string\belowdisplayskip\string\abovedisplayskip^^J% - }% - }% - \endgroup - \begingroup\scriptsize - \immediate\write\@fontfile{% - \string\def\string\scriptsize{% - \string\@setfontsize\string\scriptsize{\f@size}{\f@baselineskip}% - }% - }% - \endgroup - \begingroup\tiny - \immediate\write\@fontfile{% - \string\def\string\tiny{% - \string\@setfontsize\string\tiny{\f@size}{\f@baselineskip}% - }% - }% - \endgroup - \begingroup\large - \immediate\write\@fontfile{% - \string\def\string\large{% - \string\@setfontsize\string\large{\f@size}{\f@baselineskip}% - }% - }% - \endgroup - \begingroup\Large - \immediate\write\@fontfile{% - \string\def\string\Large{% - \string\@setfontsize\string\Large{\f@size}{\f@baselineskip}% - }% - }% - \endgroup - \begingroup\LARGE - \immediate\write\@fontfile{% - \string\def\string\LARGE{% - \string\@setfontsize\string\LARGE{\f@size}{\f@baselineskip}% - }% - }% - \endgroup - \begingroup\huge - \immediate\write\@fontfile{% - \string\def\string\huge{% - \string\@setfontsize\string\huge{\f@size}{\f@baselineskip}% - }% - }% - \endgroup - \begingroup\Huge - \immediate\write\@fontfile{% - \string\def\string\Huge{% - \string\@setfontsize\string\Huge{\f@size}{\f@baselineskip}% - }% - }% - \endgroup - \immediate\write\@fontfile{\string\normalsize}% - \immediate\write\@fontfile{% - \string\setlength{\string\footnotesep}{\the\footnotesep}^^J% - \string\setlength{\string\skip\string\footins}{\the\skip\footins}^^J% - \string\setlength{\string\floatsep}{\the\floatsep}^^J% - \string\setlength{\string\textfloatsep}{\the\textfloatsep}^^J% - \string\setlength{\string\intextsep}{\the\intextsep}^^J% - \string\setlength{\string\dblfloatsep}{\the\dblfloatsep}^^J% - \string\setlength{\string\dbltextfloatsep}{\the\dbltextfloatsep}^^J% - \string\setlength{\string\@fptop}{\the\@fptop}^^J% - \string\setlength{\string\@fpsep}{\the\@fpsep}^^J% - \string\setlength{\string\@fpbot}{\the\@fpbot}^^J% - \string\setlength{\string\@dblfptop}{\the\@dblfptop}^^J% - \string\setlength{\string\@dblfpsep}{\the\@dblfpsep}^^J% - \string\setlength{\string\@dblfpbot}{\the\@dblfpbot}^^J% - \string\setlength{\string\partopsep}{\the\partopsep}% - }% - \begingroup - \@listi - \immediate\write\@fontfile{% - \string\def\string\@listi{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmargini^^J% - \@ind\string\topsep \the\topsep^^J% - \@ind\string\parsep \the\parsep^^J% - \@ind\string\itemsep \string\parsep^^J% - }% - }% - \endgroup - \immediate\write\@fontfile{% - \string\let\string\@listI\string\@listi - }% - \begingroup - \@listii - \immediate\write\@fontfile{% - \string\def\string\@listii{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginii^^J% - \@ind\string\labelwidth\string\leftmarginii^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - \@ind\string\topsep \the\topsep^^J% - \@ind\string\parsep \the\parsep^^J% - \@ind\string\itemsep \string\parsep^^J% - }% - }% - \endgroup - \begingroup - \@listiii - \immediate\write\@fontfile{% - \string\def\string\@listiii{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginiii^^J% - \@ind\string\labelwidth\string\leftmarginiii^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - \@ind\string\topsep \the\topsep^^J% - \@ind\string\parsep \the\parsep^^J% - \@ind\string\partopsep \the\partopsep^^J% - \@ind\string\itemsep \string\topsep^^J% - }% - }% - \endgroup - \begingroup - \@listiv - \immediate\write\@fontfile{% - \string\def\string\@listiv{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginiv^^J% - \@ind\string\labelwidth\string\leftmarginiv^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - }% - }% - \endgroup - \begingroup - \@listv - \immediate\write\@fontfile{% - \string\def\string\@listv{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginv^^J% - \@ind\string\labelwidth\string\leftmarginv^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - }% - }% - \endgroup - \begingroup - \@listvi - \immediate\write\@fontfile{% - \string\def\string\@listvi{\@percentchar^^J% - \@ind\string\leftmargin\string\leftmarginvi^^J% - \@ind\string\labelwidth\string\leftmarginvi^^J% - \@ind\string\advance\string\labelwidth-\string\labelsep^^J% - }% - }% - \endgroup - \immediate\write\@fontfile{% - \string\setlength{\string\smallskipamount}{\the\smallskipamount}^^J% - \string\setlength{\string\medskipamount}{\the\medskipamount}^^J% - \string\setlength{\string\bigskipamount}{\the\bigskipamount}% - }% - \immediate\write\@fontfile{% - \string\@ifundefined{TUDClassName@KOMA}{}{\@percentchar^^J% - \@ind\string\AfterClass+{\string\TUDClassName@KOMA}{\@percentchar^^J% - \@ind\@ind\string\setlength{\string\abovecaptionskip}% - {\the\abovecaptionskip}^^J% - \@ind\@ind\string\setlength{\string\belowcaptionskip}% - {\the\belowcaptionskip}^^J% - \@ind}\@percentchar^^J% - }% - }% - \immediate\write\@fontfile{% - \string\@ifundefined{@list@extra}{}{\@percentchar^^J% - \@ind\string\l@addto@macro{\string\@listi}{\string\@list@extra}% - \@percentchar^^J% - \@ind\string\let\string\@listI=\string\@listi^^J% - \@ind\string\l@addto@macro{\string\@listii}{\string\@list@extra}% - \@percentchar^^J% - \@ind\string\l@addto@macro{\string\@listiii}{\string\@list@extra}% - \@percentchar^^J% - \@ind\string\l@addto@macro{\string\footnotesize}{\string\protect - \string\add@extra@listi{ftns}}\@percentchar^^J% - \@ind\string\l@addto@macro{\string\small}{\string\protect - \string\add@extra@listi{sml}}\@percentchar^^J% - }^^J% - \string\@listi^^J% - \string\endinput^^J% - \@percentchar^^J% - \@percentchar\space End of file `#1#2.clo'.% - } - \immediate\closeout\@fontfile +% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden +% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen +% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten +% verschoben. Allerdings ist das ein ziemlich übler Hack. +% \begin{macrocode} + \protect\vphantom{\"A\"O\"U}% } -\let\generate@fontfile\tud@generate@fontfile % \end{macrocode} -% \end{macro}^^A \tud@generate@fontfile -% \end{macro}^^A \generate@fontfile +% \end{macro}^^A \tud@makeuppercase % % \iffalse -%</package&body> -%</fontsizes> +%</body> % \fi % % \Finale |