diff options
author | Karl Berry <karl@freefriends.org> | 2015-07-02 22:12:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-07-02 22:12:17 +0000 |
commit | 586aedcf63ecf6ea7da1c1529e5ea5ba8f5cb426 (patch) | |
tree | b679941add6df7f6b1ee8c135b24181f992dcb65 /Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx | |
parent | fecdcd43eaa7f73e830159293fe22a202803086b (diff) |
tudscr (2jul15)
git-svn-id: svn://tug.org/texlive/trunk@37736 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx | 2483 |
1 files changed, 1837 insertions, 646 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx index d716c031a6b..7fa676b88e6 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{1097} +% \CheckSum{1300} % \iffalse meta-comment % % ============================================================================ @@ -51,14 +51,18 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-fonts.dtx}[% - 2015/02/19 v2.03a TUD-KOMA-Script\space% + 2015/06/12 v2.04 TUD-KOMA-Script\space% %</driver> -%<package&identify>\NeedsTeXFormat{LaTeX2e}[2011/06/27] -%<package&identify>\ProvidesPackage{tudscrfonts}[% +%<package&identify>\NeedsTeXFormat{LaTeX2e} +%<package&identify>\ProvidesPackage{% +%<package&identify&!fontsizes> tudscrfonts% +%<package&identify&fontsizes> tudscrfontsizes% +%<package&identify>}[% %<*driver|package&identify> %!TUDVersion %<package> package - (corporate design fonts)% +%<!fontsizes> (corporate design fonts)% +%<fontsizes> (creatings fontsize files)% ] %</driver|package&identify> %<*driver> @@ -81,12 +85,12 @@ % % \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/08/29}{Unterstützung für \pkg{fontspec}}%^^A -% \changes{v2.02}{2014/09/30}{\pkg{tudscrfonts} Nutzung alter tud-Klassen -% mit neuen Schriftfamilien ermöglicht}%^^A +% \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/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 % % \section{Schriften des \CDs} % @@ -98,17 +102,25 @@ % 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. +% % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse +%<*!fontsizes> %<*class&option> % \fi % -% \subsection{Verwendbarkeit des Paketes \pkg{tudscrfonts}} +% \subsection{Verwendbarkeit und Nutzung des Paketes \pkg{tudscrfonts}} % % \begin{macrocode} \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% @@ -120,55 +132,16 @@ %<*package&identify> % \fi % -% \subsection{Verwendung alter TUD-Klassen oder \TUDScript~v1.0} -% -% Das Paket kann genutzt werden, um alle möglichen veralteten Klassen mit den -% neuen Schriftfamilien zu verwenden. -% \begin{macro}{\if@tud@oldclass} -% \changes{v2.02}{2014/08/29}{neu}%^^A -% \begin{macro}{\if@tud@oldscrclass} -% \changes{v2.02}{2014/08/29}{neu}%^^A -% \begin{macrocode} -\newif\if@tud@oldclass -\newif\if@tud@oldscrclass -% \end{macrocode} -% Wenn eine der alten Klassen aus den Vorlagen von Klaus Bergmann geladen -% wurde, wird dies für spätere Anpassungen registriert. -% \ToDo{Klassen tudmathposter und tudposter einpflegen, -% \cs{tudfont\marg{\dots}}, besser \cs{cdfont} für Klassen und Paket}[v2.04] -% \ToDo{Klasse tudbeamer einpflegen}[v2.xx] -% \begin{macrocode} -\@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudform}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}% -% \end{macrocode} -% Soll das Paket \pkg{tudscrfonts} mit den \TUDScript-Klassen der Version~v1.0 -% genutzt werden, muss Sorge dafür getragen werden, dass einige veraltete -% Befehle aktualisiert werden. Hierfür müssen diese \enquote{unschädlich} -% gemacht werden, noch bevor das Paket selbst in Erscheinung tritt. -% \begin{macrocode} -\@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}% -\@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}% -\@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}% -\if@tud@oldscrclass - \let\TUDoptions\relax - \let\TUDoption\relax - \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 +% 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. +% \begin{macrocode} +\ifcsname KOMAClassName\endcsname\else% + \RequirePackage{scrextend}[2013/12/19]% \fi +\RequirePackage{trimspaces}[2009/09/17] % \end{macrocode} -% \end{macro}^^A if@tud@oldscrclass -% \end{macro}^^A if@tud@oldclass +% % \iffalse %</package&identify> %<*(class|package)&option> @@ -186,20 +159,20 @@ % 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 +% \changes{v2.02}{2014/08/29}{neu}^^A % \begin{macro}{\if@tud@fontspec} -% \changes{v2.02}{2014/08/29}{neu}%^^A +% \changes{v2.02}{2014/08/29}{neu}^^A % \begin{macro}{\if@tud@univers} % \begin{macro}{\if@tud@dinbold} -% \changes{v2.02}{2014/08/29}{neu}%^^A +% \changes{v2.02}{2014/08/29}{neu}^^A % \begin{macro}{\tud@univers} % \begin{macro}{\tud@dinbold} % \begin{macro}{\tud@mathenc} -% \changes{v2.03a}{2015/02/19}{entfernt}%^^A +% \changes{v2.04}{2015/02/19}{entfernt}^^A % Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes -% \pkg{fontspec} aktiviert werden. Nur so ist eine vollständige Anpassung der -% Schriften an die Funktionalitäten des Paketes möglich. Zu Beginn werden -% Schalter und Hilfsmakros definiert. +% \pkg{fontspec} aktiviert werden. Alternativ kann das Paket auch durch den +% Nutzer selbst geladen werden. Zu Beginn werden Schalter und Hilfsmakros +% definiert. % \begin{macrocode} \newif\if@tud@univers \newif\if@tud@dinbold @@ -210,6 +183,16 @@ % \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} @@ -224,18 +207,18 @@ \AtEndOfPackage% %</package> {% - \TUD@key{fontspec}[] + \TUD@key{fontspec}[]% {% %<*class> - \ClassError{\tudcls@name} + \ClassError{\TUDClassName}% %</class> %<*package> - \PackageError{tudscrfonts} + \PackageError{tudscrfonts}% %</package> {Option `fontspec' too late}{% Option `fontspec' can only be set while loading the\MessageBreak% %<*class> - class `\tudcls@name' + class `\TUDClassName' %</class> %<*package> package `tudscrfonts' @@ -244,123 +227,246 @@ }% \FamilyKeyStateProcessed% }% -%<*package> - \@ifpackageloaded{fontspec}{% - \PackageError{tudscrfonts}{Package `fontspec' too early}{% - When using the option `fontspec' you must not load\MessageBreak% - the package `fontspec' before `tudscrfonts'.% - }% - }{} -%</package> \if@tud@fontspec% - \PreventPackageFromLoading[% -%<*class> - \ClassWarning{\tudcls@name}% -%</class> -%<*package> - \PackageWarning{tudscrfonts}% -%</package> - {% - You must not load the package `fontspec' as it is\MessageBreak% - loaded automatically at the end of the preamble.\MessageBreak% - If you want to pass options to `fontspec' use\MessageBreak% - `\string\PassOptionsToPackage{<option list>}{fontspec}' - }% - ]{fontspec} + \RequirePackage{fontspec}[2014/06/21]% \fi% } % \end{macrocode} -% Anschließend erfolgt die Verarbeitung der Option am Ende der Klasse. Zu -% allererst wird die Kodierung der Mathematikschriften für den weiteren Verlauf -% festgelegt. Da es so gut wie keine freien OpenType"=Schriften für den -% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option -% \opt{fontspec} \emph{immer} die PostScript"=Schriften verwendet, falls diese -% installiert sind. +% Sobald das Paket \opt{fontspec} manuell geladen wurde, wird auch der passende +% Schlüssel gesetzt. % \begin{macrocode} -\AtEndPreamble{% +\AfterPackage*{fontspec}{\@tud@fontspectrue} % \end{macrocode} -% Es wird überprüft, ob die PostScript"=Schriften installiert sind. Wird das -% Paket \pkg{fontspec} verwendet, werden diese nur für die Mathematikschriften -% verwendet. Sollte diese nicht vorhanden sein, wird eine Warnung ausgegeben. -% Ist die Option \opt{fontspec} nicht aktiviert, wird beim Nichtvorhandensein -% der Schriften eine Warnung ausgegeben und eine Rückfallebene definiert. -% \begin{macrocode} +% \end{macro}^^A \tud@mathenc +% \end{macro}^^A \tud@dinbold +% \end{macro}^^A \tud@univers +% \end{macro}^^A if@tud@dinbold +% \end{macro}^^A if@tud@univers +% \end{macro}^^A \if@tud@fontspec +% \end{option}^^A fontspec +% +% \iffalse +%</(class|package)&option> +%<*(class|package)&body> +% \fi +% +% \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 +% \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. +% \begin{macrocode} +\newcommand*\tud@font@check{% \if@tud@fontspec% \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@univers.fd}}% + \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% }% - \def\@tempb#1{% + \def\@tempc##1{% %<*class> - \ClassInfoNoLine{\tudcls@name}{% + \ClassInfoNoLine{\TUDClassName}% %</class> %<*package> - \PackageInfoNoLine{tudscrfonts}{% + \PackageInfoNoLine{tudscrfonts}% %</package> - `#1' fonts not found for math typesetting% + {% + `##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\InputIfFileExists{\encodingdefault\tud@univers.fd}}% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% }% - \def\@tempb#1{% + \def\@tempc##1{% + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} %<*class> - \ClassWarningNoLine{\tudcls@name}{% + \ClassWarningNoLine{\TUDClassName}% %</class> %<*package> - \PackageWarningNoLine{tudscrfonts}{% + \PackageWarningNoLine{tudscrfonts}% %</package> - `#1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - Please use on of the installation scripts out of the\MessageBreak% - tudscr-bundle, which suits to your OS or choose a\MessageBreak% - possible encoding. A fallback layout is used% + {% + `##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{\@tud@universtrue}{\@tempb{Univers}}% -% \end{macrocode} -% Ebenso wie bei der Univers"=Schriftfamilie wird auch bei DIN~Bold verfahren. -% \begin{macrocode} - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@dinbold.fd}}% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \fi% - \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}% -% \end{macrocode} -% Nachdem auf die Schriften geprüft wurde, kommt nun die Umsetzung der Option. -% Sollten die PostScript"=Schriften installiert sein, wird \pkg{fontspec} darin -% gehindert, die Mathematikschriften von sich aus anzupassen. -% \begin{macrocode} - \if@tud@fontspec% - \UnPreventPackageFromLoading{fontspec}% - \if@tud@univers\if@tud@dinbold% - \PassOptionsToPackage{no-math}{fontspec}% - \fi\fi% - \RequirePackage{fontspec}[2014/06/21]% - \fi% + \@tempa{\@tud@universtrue}{\@tempc{Univers}}% + \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \undef\tud@font@check% +} % \end{macrocode} -% Damit ist die Verarbeitung der Option \opt{fontspec} abgeschlossen. -% \begin{macrocode} +% \end{macro}^^A \tud@font@check +% \begin{macro}{\tud@font@init} +% \changes{v2.04}{2014/03/10}{neu}^^A +% 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. +% Nach der optionsabhängigen Definition der Schriftauswahlbefehle werden die +% Initialisierungsbefehle undefiniert gesetzt. +% \begin{macrocode} +\newcommand*\tud@font@init{% + \undef\tud@font@init@fontspec% + \undef\tud@font@init@nfss% + \undef\tud@font@init% } % \end{macrocode} -% \end{macro}^^A \tud@mathenc -% \end{macro}^^A \tud@dinbold -% \end{macro}^^A \tud@univers -% \end{macro}^^A if@tud@dinbold -% \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@font@init % \begin{macro}{\univln} % \begin{macro}{\univrn} % \begin{macro}{\univbn} @@ -369,104 +475,128 @@ % \begin{macro}{\univrs} % \begin{macro}{\univbs} % \begin{macro}{\univxs} -% Sollte die Univers installiert sein, 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 definiert. Diese können so im Dokument unabhängig -% von der Option \opt{cdfont} genutzt werden -% \begin{macrocode} -\AtEndPreamble{% -% \end{macrocode} -% Dies geschieht abhängig von der Option \opt{fontspec}. -% \begin{macrocode} - \if@tud@fontspec% -% \end{macrocode} -% Für die ersten drei Schriften werden hierfür feste NFSS-Namen vergeben, um -% diese beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können. -% \begin{macrocode} - \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \newcommand*\textuln[1]{{\univln#1}}% - \newcommand*\texturn[1]{{\univrn#1}}% - \newcommand*\textubn[1]{{\univbn#1}}% - \newcommand*\textuxn[1]{{\univxn#1}}% - \newcommand*\textuls[1]{{\univls#1}}% - \newcommand*\texturs[1]{{\univrs#1}}% - \newcommand*\textubs[1]{{\univbs#1}}% - \newcommand*\textuxs[1]{{\univxs#1}}% +% \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}{\dinbn} +% \begin{macro}{\@dinbn} +% \begin{macro}{\textdbn} +% 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. +% \begin{macro}{\tud@font@init@fontspec} +% \changes{v2.04}{2014/03/10}{neu}^^A +% Zuerst wird das Makro für die Defintion nach \pkg{fontspec}-Manier definiert, +% danach . +% \begin{macrocode} +\newcommand*\tud@font@init@fontspec{% +% \end{macrocode} +% Für die Schriften werden hierfür 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} + \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% + \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% + \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% + \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% + \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% + \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% + \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% + \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% + \newcommand*\textuln[1]{{\univln##1}}% + \newcommand*\texturn[1]{{\univrn##1}}% + \newcommand*\textubn[1]{{\univbn##1}}% + \newcommand*\textuxn[1]{{\univxn##1}}% + \newcommand*\textuls[1]{{\univls##1}}% + \newcommand*\texturs[1]{{\univrs##1}}% + \newcommand*\textubs[1]{{\univbs##1}}% + \newcommand*\textuxs[1]{{\univxs##1}}% +% \end{macrocode} +% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. +% \begin{macrocode} + \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% + \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% + \newcommand*\textdbn[1]{{\dinbn##1}}% +} % \end{macrocode} +% \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. % \begin{macrocode} - \else% - \if@tud@univers% - \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% +\newcommand*\tud@font@init@nfss{% + \if@tud@univers% + \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newcommand*\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. % \begin{macrocode} - \else% - \newcommand*\univln{}% - \newcommand*\univrn{}% - \newcommand*\univbn{}% - \newcommand*\univxn{}% - \newcommand*\univls{}% - \newcommand*\univrs{}% - \newcommand*\univbs{}% - \newcommand*\univxs{}% - \fi% + \else% + \newcommand*\univln{}% + \newcommand*\univrn{}% + \newcommand*\univbn{}% + \newcommand*\univxn{}% + \newcommand*\univls{}% + \newcommand*\univrs{}% + \newcommand*\univbs{}% + \newcommand*\univxs{}% + \fi% % \end{macrocode} -% \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}{\textuln} -% \begin{macro}{\texturn} -% \begin{macro}{\textubn} -% \begin{macro}{\textuxn} -% \begin{macro}{\textuls} -% \begin{macro}{\texturs} -% \begin{macro}{\textubs} -% \begin{macro}{\textuxs} % 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{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \DeclareTextFontCommand{\textuln}{\univln}% + \DeclareTextFontCommand{\texturn}{\univrn}% + \DeclareTextFontCommand{\textubn}{\univbn}% + \DeclareTextFontCommand{\textuxn}{\univxn}% + \DeclareTextFontCommand{\textuls}{\univls}% + \DeclareTextFontCommand{\texturs}{\univrs}% + \DeclareTextFontCommand{\textubs}{\univbs}% + \DeclareTextFontCommand{\textuxs}{\univxs}% +% \end{macrocode} +% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. +% \begin{macrocode} + \if@tud@dinbold% + \newcommand*\dinbn{% + \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% + \mathversion{dinbold}% + }% + \else% + \let\dinbn\sectfont% \fi% + \newcommand*\textdbn{}% + \DeclareTextFontCommand{\textdbn}{\dinbn}% +} % \end{macrocode} +% \end{macro}^^A \tud@font@init@fontspec +% \end{macro}^^A \textdbn +% \end{macro}^^A \@dinbn +% \end{macro}^^A \dinbn % \end{macro}^^A \textuxs % \end{macro}^^A \textubs % \end{macro}^^A \texturs @@ -475,156 +605,389 @@ % \end{macro}^^A \textubn % \end{macro}^^A \texturn % \end{macro}^^A \textuln -% \begin{macro}{\dinbn} -% \begin{macro}{\@dinbn} -% \begin{macro}{\textdbn} -% Schalter bzw. Befehl für die Auszeichnung in DIN~Bold. Bei der Schriftauswahl -% wird neben dieser noch die entsprechende Mathematikschrift aktiviert. Auch -% hier geschieht dies abhängig von der Option \opt{fontspec}. -% \begin{macrocode} -%<*package> - \ifdef{\sectfont}{}{\let\sectfont\relax}% -%</package> - \if@tud@fontspec% - \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% - \newcommand*\textdbn[1]{{\dinbn#1}}% - \else% - \if@tud@dinbold% - \newcommand*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% - \else% - \let\dinbn\sectfont% - \fi% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textdbn}{\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 \textdbn -% \end{macro}^^A \@dinbn -% \end{macro}^^A \dinbn +% \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} -% Für die Mathematikschriften im FLießtext werden für die lateineischen Lettern +% \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} - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% +% 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}{}{% +%<*class> + \ClassWarningNoLine{\TUDClassName}% +%</class> +%<*package> + \PackageWarningNoLine{tudscrfonts}% +%</package> + {% + It's recommended to load package `fontspec' with\MessageBreak% + option `no-math'% + }% + }% + \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} -% \end{macro}^^A \mv@universbold -% \end{macro}^^A \mv@univers -% \begin{macro}{\mv@dinbold} -% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart -% DIN~Bold verwendet}%^^A % 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} - \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}% + \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 -% \begin{macro}{\upGamma} +% \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% + \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. +% \begin{macrocode} +%<*package> + \ifdef{\sectfont}{}{\let\sectfont\relax}% +%</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}{\upTheta} +% \begin{macro}{\upGamma} % \begin{macro}{\upLambda} -% \begin{macro}{\upXi} +% \begin{macro}{\upOmega} +% \begin{macro}{\upPhi} % \begin{macro}{\upPi} +% \begin{macro}{\upPsi} % \begin{macro}{\upSigma} +% \begin{macro}{\upTheta} % \begin{macro}{\upUpsilon} -% \begin{macro}{\upPhi} -% \begin{macro}{\upPsi} -% \begin{macro}{\upOmega} -% \begin{macro}{\varGamma} +% \begin{macro}{\upXi} % \begin{macro}{\varDelta} -% \begin{macro}{\varTheta} +% \begin{macro}{\varGamma} % \begin{macro}{\varLambda} -% \begin{macro}{\varXi} +% \begin{macro}{\varOmega} +% \begin{macro}{\varPhi} % \begin{macro}{\varPi} +% \begin{macro}{\varPsi} % \begin{macro}{\varSigma} +% \begin{macro}{\varTheta} % \begin{macro}{\varUpsilon} -% \begin{macro}{\varPhi} -% \begin{macro}{\varPsi} -% \begin{macro}{\varOmega} -% In Anlehnung an verschiedene Pakete für Mathematikschriften werden die -% Symbole für aufrechte und kursive Majuskeln der griechischen Lettern separat -% definiert. -% \begin{macrocode} - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}% - \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}% - \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}% - \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}% - \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}% - \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}% - \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}% - \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}% - \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}% - \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}% - \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}% - \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}% - \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}% - \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}% - \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}% - \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}% - \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}% +% \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% + }% } % \end{macrocode} -% \end{macro}^^A \varOmega -% \end{macro}^^A \varPsi -% \end{macro}^^A \varPhi +% \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 \varXi +% \end{macro}^^A \varPhi +% \end{macro}^^A \varOmega % \end{macro}^^A \varLambda -% \end{macro}^^A \varTheta -% \end{macro}^^A \varDelta % \end{macro}^^A \varGamma -% \end{macro}^^A \upOmega -% \end{macro}^^A \upPsi -% \end{macro}^^A \upPhi +% \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 \upXi +% \end{macro}^^A \upPhi +% \end{macro}^^A \upOmega % \end{macro}^^A \upLambda -% \end{macro}^^A \upTheta -% \end{macro}^^A \upDelta % \end{macro}^^A \upGamma +% \end{macro}^^A \upDelta +% \end{macro}^^A \tud@font@greek@init % % \iffalse %</(class|package)&body> @@ -633,9 +996,9 @@ % % \begin{macro}{\tud@uclcnotmath} % \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im -% Argument des Befehls \cs{MakeTextUppercase}}%^^A +% 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 +% \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} @@ -664,8 +1027,8 @@ % \end{macrocode} % \end{macro}^^A \tud@font@heading % \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 +% \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} % Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen % Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option @@ -719,71 +1082,94 @@ {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},{pdftex}{13},{pdflatex}{13}% + {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% % \end{macrocode} % Die ersten drei Werte dienen zum Umschalten auf die Schriften des \CDs für % den Fließtext. % \begin{macrocode} - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@cdfont{0}% \if@atdocument\tud@font@set\fi% - \or% + \or% true \def\tud@cdfont{1}% \if@atdocument\tud@font@set\fi% - \or% + \or% heavy \def\tud@cdfont{2}% \if@atdocument\tud@font@set\fi% % \end{macrocode} % Hier wird die Verwendung von DIN~Bold für die Überschirften festgelegt. % \begin{macrocode} - \or% + \or% nodin \renewcommand*\tud@font@heading{\tud@RaggedRight}% - \or% - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright} + \or% din + \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% % \end{macrocode} % Die Schrift für den Querbalken. % \begin{macrocode} - \or% + \or% nohead %<*class> \TUDoptions{cdhead=false}% %</class> - \or% + \or% head %<*class> \TUDoptions{cdhead=true}% %</class> - \or% + \or% heavyhead %<*class> \TUDoptions{cdhead=heavy}% %</class> % \end{macrocode} % Die Mathematikschriften. % \begin{macrocode} - \or% + \or% nomath \TUDoptions{cdmath=false}% - \or% + \or% math \TUDoptions{cdmath=true}% % \end{macrocode} % Die Neigung der großen griechischen Buchstaben. % \begin{macrocode} - \or% + \or% upgreek \TUDoptions{slantedgreek=false}% - \or% + \or% slgreek \TUDoptions{slantedgreek=true}% % \end{macrocode} % Die Verwendung von \pkg{fontspec}. % \begin{macrocode} - \or% + \or% fontspec \TUDoptions{fontspec=true}% - \or% + \or% nofontspec \TUDoptions{fontspec=false}% \fi% +% \end{macrocode} +% Wird kein gültiger Wert für die Option angegeben, so wird davon ausgegangen, +% 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% \fi% } % \end{macrocode} % \end{macro}^^A \tud@cdfont % \end{option}^^A cdfont +% \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} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{fontsize}{% + \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \FamilyKeyStateProcessed% +} +% \end{macrocode} +% \end{option}^^A fontsize % % \iffalse %</(class|package)&option> @@ -791,15 +1177,50 @@ % \fi % % \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} +% \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 +% \begin{macro}{\bfseries@sf} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\bfseries@tt} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mdseries@rm} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mdseries@sf} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mdseries@tt} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\rmdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\sfdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\ttdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\bfdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mddef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % Mit diesem Befehl werden entweder die normalen oder aber die Schriften des % \CDs aktiviert. Dabei wird die Option \opt{fontspec} beachtet. % \begin{macrocode} -\newcommand*\tud@font@set{% +\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}}% + \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% + \ifcase\tud@cdfont\relax% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% @@ -809,8 +1230,16 @@ \tud@cmd@restore{familydefault}% \tud@cmd@restore{seriesdefault}% \tud@cmd@restore{shapedefault}% + \if@tud@mweights% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% % \end{macrocode} -% Die Mathematikschriften werden auf ihr Stanardverhalten zurückgesetzt. +% Die Mathematikschriften werden auf ihr Standardverhalten zurückgesetzt. % \begin{macrocode} \bool@std@lock{@tud@cdmath}{false}% % \end{macrocode} @@ -824,7 +1253,7 @@ % Standardschriften vorher vorher gesichert, um diese später vollständig % wiederherstellen zu können. % \begin{macrocode} - \else% + \else% true/heavy \tud@cmd@store{rmdefault}% \tud@cmd@store{sfdefault}% \tud@cmd@store{ttdefault}% @@ -834,6 +1263,14 @@ \tud@cmd@store{familydefault}% \tud@cmd@store{seriesdefault}% \tud@cmd@store{shapedefault}% + \if@tud@mweights% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% % \end{macrocode} % Die Mathematikschriften werden bei der Verwendung der Schriften des \CDs~-- % falls nicht anders durch den Anwender definiert~-- auf Serifenlose gesetzt. @@ -850,7 +1287,7 @@ % \pkg{fontspec} oder\dots % \begin{macrocode} \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \setsansfont{Univers Light}[% BoldFont = Univers,% ItalicFont = Univers Light Oblique,% @@ -874,7 +1311,7 @@ ]% }{}% %</package> - \else% + \else% heavy \setsansfont{Univers}[% BoldFont = Univers Bold,% ItalicFont = Univers Oblique,% @@ -893,7 +1330,7 @@ \if@tud@univers% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \renewcommand*\bfdefault{m}% % \end{macrocode} % Bei den alten Klassen von Klaus Bergmann bzw. \TUDScript~v1.0 sind die fetten @@ -905,9 +1342,25 @@ }{}% %</package> \renewcommand*\mddefault{l}% - \else% + \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 \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% \fi% \fi% @@ -916,19 +1369,106 @@ \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% + \if@tud@mweights% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% % \end{macrocode} -% Zum Abschluss wird die gewählte Standardschrift aktiviert. Danach erfolgt die -% Behandlung der mathrematikschriften. Ganz zum Schluss wird das Layout erneut -% gesetzt. +% Zum Ende werden einige Abstände abhängig von der gewählten Schriftgröße +% definiert. Danach erfolgt die Behandlung der Mathematikschriften und die +% gewählte Standardschrift aktiviert. Zum Schluss wird das Layout erneuert. % \begin{macrocode} + \tud@font@skip@set% + \ifstr{#1}{nomath}{}{\tud@font@math@set}% \normalfont\selectfont% - \tud@font@math@set% %<*class> \tud@layout@process% %</class> } % \end{macrocode} +% \end{macro}^^A \mddef@ult +% \end{macro}^^A \bfdef@ult +% \end{macro}^^A \ttdef@ult +% \end{macro}^^A \sfdef@ult +% \end{macro}^^A \rmdef@ult +% \end{macro}^^A \mdseries@tt +% \end{macro}^^A \mdseries@sf +% \end{macro}^^A \mdseries@rm +% \end{macro}^^A \bfseries@tt +% \end{macro}^^A \bfseries@sf +% \end{macro}^^A \bfseries@rm +% \end{macro}^^A \if@tud@mweights % \end{macro}^^A \tud@font@set +% \begin{macro}{\tud@font@skip@set} +% \changes{v2.04}{2015/02/17}{neu}^^A +% \begin{macro}{\tud@font@skip@@set} +% \changes{v2.04}{2015/03/27}{neu}^^A +% \begin{macro}{\smallskipamount} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\medskipamount} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\bigskipamount} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\abovecaptionskip} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\belowcaptionskip} +% \begin{macro}{\columnsep} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% Mit diesem Befehl wird nach der Auswahl der Schriftgröße die Länge einiger +% Abstände angepasst, die bei den \KOMAScript-Klassen nicht abhängig von dieser +% sind. +% \begin{macrocode} +\newcommand*\tud@font@skip@set{% +% \end{macrocode} +% 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% + }% +} +% \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}% +} +% \end{macrocode} +% \end{macro}^^A \columnsep +% \end{macro}^^A \belowcaptionskip +% \end{macro}^^A \abovecaptionskip +% \end{macro}^^A \bigskipamount +% \end{macro}^^A \medskipamount +% \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 @@ -943,106 +1483,63 @@ \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@slanted% + \tud@font@greek@loop\tud@font@greek@slanted% \else% - \tud@font@greek@upright% + \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@upGamma} -% \begin{macro}{\tud@font@greek@offset} -% Damit innerhalb des Dokumentes problemlos zwischen aufrechten und kursiven -% griechischen Buchstaben für den Mathematiksatz gewechselt werden kann, wurden -% die folgenden beiden Befehle definiert, welche vom Prinzip aus dem Paket -% \pkg{sansmath} abgekupfert sind. Es wird der Offset der Kodierung zwischen den -% kursiven und den aufrechten Glyphen in \cs{tud@font@greek@offset} gespeichert. -% \begin{macrocode} -\newcount\tud@font@greek@upGamma -\tud@font@greek@upGamma\Gamma -\newcount\tud@font@greek@offset -\let\@tempa\relax -\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0} -\tud@font@greek@offset\@tempa -\advance\tud@font@greek@offset-\Gamma -% \end{macrocode} -% \end{macro}^^A \tud@font@greek@offset -% \end{macro}^^A \tud@font@greek@upGamma -% \begin{macro}{\tud@font@greek@slanted} -% \begin{macro}{\tud@font@greek@upright} -% Mit dem Makro \cs{tud@font@greek@slanted} wird die Kodierung der griechischen -% Majuskeln von \texttt{operator} auf \texttt{letter} geändert\dots -% \begin{macrocode} -\newcommand*\tud@font@greek@slanted{% - \ifnum\Gamma=\tud@font@greek@upGamma\relax\tud@font@greek@changeshape\fi% -} -% \end{macrocode} -% \dots und \cs{tud@font@greek@upright} macht alles wieder rückgängig. Dabei -% wird bei beiden Befehlen vor der Ausführung geprüft, ob dies überhauot -% notwendig ist. +% \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. % \begin{macrocode} -\newcommand*\tud@font@greek@upright{% - \ifnum\Gamma>\tud@font@greek@upGamma% - \tud@font@greek@offset=-\tud@font@greek@offset% - \tud@font@greek@changeshape% - \tud@font@greek@offset=-\tud@font@greek@offset% - \fi% +\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}% } -% \end{macrocode} -% \end{macro}^^A \tud@font@greek@upright -% \end{macro}^^A \tud@font@greek@slanted -% \begin{macro}{\tud@font@greek@def} -% \begin{macro}{\tud@font@greek@uc} -% \begin{macro}{\tud@font@greek@changeshape} -% Mit \cs{tud@font@greek@def} erfolgt die Umkodierung einer einzelnen -% griechischen Glyphe. Das Makro \cs{tud@font@greek@changeshape} arbeitet die -% Liste \cs{tud@font@greek@uc} ab. -% \begin{macrocode} -\newcommand*\tud@font@greek@def[2]{% - \expandafter\@tempcnta\csname #1\endcsname% - \advance\@tempcnta#2% - \expandafter\mathchardef\csname #1\endcsname\@tempcnta% +\newcommand*\tud@font@greek@reset[1]{% + \tud@cmd@restore{#1}% + \tud@cmd@restore{up#1}% + \tud@cmd@restore{var#1}% } % \end{macrocode} -% Die Liste enthält die Namen der Befehle für große griechische Buchstaben. -% Diese wird von \cs{tud@font@greek@changeshape} genutzt wird. +% \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. % \begin{macrocode} -\newcommand*\tud@font@greek@uc{% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% -} -\newcommand*\tud@font@greek@changeshape{% - \@for\@tempa:=\tud@font@greek@uc\do{% - \@expandtwoargs\tud@font@greek@def{\@tempa}{\tud@font@greek@offset}% - }% -} +\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@changeshape -% \end{macro}^^A \tud@font@greek@uc -% \end{macro}^^A \tud@font@greek@def +% \end{macro}^^A \tud@font@greek@slanted +% \end{macro}^^A \tud@font@greek@upright % % \iffalse %</(class|package)&body> %<*(class|package)&option> % \fi % -% Damit die Schrift im Dokument später noch umgestellt werden kann, werden -% sämtliche Einstellungen erst zu Beginn des Dokumentes 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. Auch die Einstellungen für den Mathematiksatz werden erstmalig -% durch \cs{tud@font@math@set} gesetzt. -% \begin{macrocode} -\AtBeginDocument{\tud@font@set}% -% \end{macrocode} -% % \subsection{Schriften für den Mathematiksatz} % % Da die Schriften des \CDs keinen Mathematiksatz beeinhalten, musste~-- @@ -1063,21 +1560,19 @@ \TUD@numkey@bool,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% - {upright}{2},{upgreek}{2},{uprightgreek}{2},{uprightGreek}{2},% - {slanted}{3},{slgreek}{3},{slantedgreek}{3},{slantedGreek}{3}% + {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% + {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \TUD@std@ifkey@lock{slantedgreek}{false}% \if@atdocument\tud@font@math@set\fi% - \or% + \or% true \bool@set@lock{@tud@cdmath}{true}% - \TUD@std@ifkey@lock{slantedgreek}{true}% \if@atdocument\tud@font@math@set\fi% - \or + \or% upgreek \TUDoptions{slantedgreek=false}% - \or + \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% @@ -1087,42 +1582,36 @@ % \end{macro}^^A \if@tud@cdmath % \end{option}^^A cdmath % \begin{option}{slantedgreek} +% \begin{option}{slantedGreek} +% \changes{v2.04}{2015/02/27}{neu}^^A % \begin{macro}{\if@tud@slantedgreek} % \begin{macro}{\if@tud@slantedgreek@locked} % Mit dieser Option kann die Neigung der griechischen Majuskeln geändert werden. % \begin{macrocode} -\newif\if@tud@slantedgreek -\TUD@key@lock{slantedgreek}[true]{% - \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}% +\bool@lock{@tud@slantedgreek} +\TUD@key{slantedgreek}[true]{% + \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \bool@set@lock{@tud@slantedgreek}{#1}% \if@atdocument\tud@font@math@set\fi% \fi% } +\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} % \end{macrocode} % \end{macro}^^A \if@tud@slantedgreek@locked % \end{macro}^^A \if@tud@slantedgreek +% \end{option}^^A slantedGreek % \end{option}^^A slantedgreek % % \iffalse %</(class|package)&option> -%<*package&execute> -% \fi -% -% Für das Paket \pkg{tudscrfonts} werden die Schriften aktiviert und die an das -% Paket übergebenen Optionen ausgeführt. -% \begin{macrocode} -\TUDoptions{cdfont=true} -\DeclareOption*{\TUDoptions{\CurrentOption}} -\TUDProcessOptions\relax -% \end{macrocode} -% -% \iffalse -%</package&execute> %<*class&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.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 @@ -1135,8 +1624,6 @@ \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@set{% -% \changes{v2.03}{2015/01/30}{Fix für die Änderung von \cs{spaceskip} durch -% \pkg{ragged2e}}%^^A % \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 @@ -1144,7 +1631,8 @@ % \begin{macrocode} \ifdef{\@raggedtwoe@everyselectfont}{% \let\@raggedtwoe@everyselectfont\relax% - \spaceskip\z@\selectfont% + \setlength\spaceskip{\z@}% + \selectfont% }{}% % \end{macrocode} % Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet @@ -1158,21 +1646,21 @@ % Die Option \opt{cdhead} wird ausgewertet. % \begin{macrocode} \@tempswafalse% - \ifcase\tud@head@font\relax% - \ifnum\tud@cdfont>\z@\relax% - \ClassWarning{\tudcls@name}{% + \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'% }% \@tempswatrue% \fi% - \else% + \else% true/heavy \@tempswatrue% \fi% % \end{macrocode} % Die Schriften für den Kopf im \CD werden aktiviert. % \begin{macrocode} - \if@tempswa% + \if@tempswa% true/heavy % \end{macrocode} % Damit \cs{DeclareFixedFont} zusammen mit \pkg{fontspec} verwendet werden % kann, wurde zu Beginn der Klasse den drei benötigten Schriftschnitten der @@ -1181,10 +1669,10 @@ \if@tud@fontspec% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversLight}{m}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversRegular}{m}{n}{\tud@head@font@size}% \fi% @@ -1195,10 +1683,10 @@ \if@tud@univers% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{m}{n}{\tud@head@font@size}% \fi% @@ -1217,7 +1705,7 @@ % \fi % % \begin{macro}{\ifdin} -% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A +% \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 @@ -1236,129 +1724,28 @@ } % \end{macrocode} % \end{macro}^^A \ifdin -% Wird das Paket \pkg{tudscrfonts} mit den alten TUD-Klassen oder \TUDScript in -% der Version~v1.0 verwendet, müssen einige Kompatibilitätseinstellungen -% vorgenmommen werden. Dies betrifft insbesondere allerhand darin definierter, -% fixer Schriften sowie die Mathematikschriften. -% \begin{macrocode} -%<*package> -\AtBeginDocument{% - \ifbool{@tud@oldclass}{% - \if@tud@fontspec% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {UniversLight}{m}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {UniversLightOblique}{m}{n}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {UniversBold}{m}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {UniversLight}{m}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {UniversLightOblique}{m}{n}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {UniversBold}{m}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {UniversLight}{m}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {UniversLightOblique}{m}{n}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {UniversBold}{m}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {UniversLight}{m}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {UniversLightOblique}{m}{n}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {UniversBold}{m}{n}{15}% - \else% - \if@tud@univers% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {\tud@univers}{l}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {\tud@univers}{l}{sl}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {\tud@univers}{b}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {\tud@univers}{l}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {\tud@univers}{l}{sl}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {\tud@univers}{b}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {\tud@univers}{l}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {\tud@univers}{l}{sl}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {\tud@univers}{b}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {\tud@univers}{l}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {\tud@univers}{l}{sl}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {\tud@univers}{b}{n}{15}% - \fi% - \fi% - \if@sansmath% - \DeclareSymbolFont{aunLetters}{OT1}{\tud@univers}{l}{sl}% - \SetSymbolFont{aunLetters}{bold}{OT1}{\tud@univers}{b}{sl}% - \DeclareSymbolFont{aunOperators}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{aunOperators}{bold}{OT1}{\tud@univers}{b}{n}% - \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}% - \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}% - \DeclareMathAlphabet\mathbf{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet\mathbf{bold}{OT1}{\tud@univers}{b}{n}% - \DeclareMathAlphabet\mathit{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet\mathit{bold}{OT1}{\tud@univers}{l}{sl}% - \fi% - \let\dinBold\dinbn% - \let\dinfamily\dinbn% - }{}% - \ifbool{@tud@oldscrclass}{% - \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}% - \DeclareSymbolFontAlphabet{\mathrm}{operators} - \if@tud@fontspec% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@fntsz}% - \else% - \if@tud@univers% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@fntsz}% - \fi% - \fi% - }{}% -} -%</package> -% \end{macrocode} -% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die -% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen. -% \begin{macrocode} -\AfterPackage*{amsfonts}{% - \DeclareFontFamily{U}{msa}{}% - \DeclareFontShape{U}{msa}{m}{n}{% - <-9>cmbras8% - <9-10>cmbras9% - <10->cmbras10% - }{}% - \DeclareFontFamily{U}{msb}{}% - \DeclareFontShape{U}{msb}{m}{n}{% - <-9>cmbrbs8% - <9-10>cmbrbs9% - <10->cmbrbs10% - }{}% +% +% \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}% } % \end{macrocode} +% \end{macro}^^A \tud@makeuppercase % % \subsection{Anpassungen für das Paket \pkg{ragged2e}} % @@ -1386,36 +1773,840 @@ % \end{macro}^^A \tud@ragged2e % \end{macro}^^A \tud@raggedright % +% \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 +% % \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 +% \end{macrocode} +% +% \iffalse +%</10pt|11pt|12pt> %<*package&body> % \fi % -% \begin{macro}{\@makechapterhead} -% \begin{macro}{\@makeschapterhead} -% \begin{macro}{\section} -% \begin{macro}{\showtitle} -% Ganz zum Schluss merden für das Paket \pkg{tudscrfonts} noch ein paar -% Anpassungen für die \cls{tudbook}-Klasse gemacht. -% \begin{macrocode} -\@ifclassloaded{tudbook}{% - \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\section}{\dinBold\Large\bfseries}% - {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}% - \patchcmd{\showtitle}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}% -}{} +% 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% +} +% \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 +} +\let\generate@fontfile\tud@generate@fontfile % \end{macrocode} -% \end{macro}^^A \showtitle -% \end{macro}^^A \section -% \end{macro}^^A \@makeschapterhead -% \end{macro}^^A \@makechapterhead +% \end{macro}^^A \tud@generate@fontfile +% \end{macro}^^A \generate@fontfile % % \iffalse %</package&body> +%</fontsizes> % \fi % % \Finale |