% \CheckSum{1323} % \iffalse meta-comment % % ============================================================================ % % TUD-KOMA-Script % Copyright (c) Falk Hanisch , 2012-2016 % % ============================================================================ % % This work may be distributed and/or modified under the conditions of the % LaTeX Project Public License, version 1.3c of the license. The latest % version of this license is in http://www.latex-project.org/lppl.txt and % version 1.3c or later is part of all distributions of LaTeX 2005/12/01 % or later and of this work. This work has the LPPL maintenance status % "author-maintained". The current maintainer and author of this work % is Falk Hanisch. % % ---------------------------------------------------------------------------- % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz % in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle % Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und % Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 % oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status % "author-maintained", wird somit allein durch den Autor verwaltet. Der % aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. % % ============================================================================ % % \fi % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \iffalse %%% From File: tudscr-fonts.dtx %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-fonts.dtx}[% 2015/11/29 v2.04c TUD-KOMA-Script\space% % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{% % tudscrfonts% % tudscrfontsizes% %}[% %<*driver|package&identify> %!TUDVersion % package % (corporate design fonts)% % (creatings fontsize files)% ] % %<*driver> \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{tudscrfonts} % only load this package, if the fonts are installed \KOMAoptions{parskip=half-} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-fonts.dtx} \begin{document} \maketitle \DocInput{\filename} \end{document} % % \fi % % \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.04}{2015/02/27}{Interaktion mit Paketen insbesondere für % den Mathematiksatz verbessert}^^A % \changes{v2.04c}{2015/11/29}{Bugfix für \pkg{fontspec} bei fehlenden % Schriften}^^A % % \section{Schriften des \CDs} % % Für das \CD der Technischen Universität Dresden werden die Schriften Univers % und DIN"~Bold zwingend benötigt. Zur fehlerfreien Verwendung dieser Klassen % sollten diese bitte installiert werden. Hier werden die \LaTeX-Befehle zur % Verwendung der Schriften im Dokument definiert. Sollen nur kurze Passagen in % einer anderen Schrift als der restliche Text gesetzt werden, so sollten % anstatt der einfachen Schalter wie beispielsweise \cs{univ\dots} besser die % Befehle \cs{text\dots}\marg{Auszeichnungstext} verwendet werden. % % 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 und Nutzung des Paketes \pkg{tudscrfonts}} % % \begin{macrocode} \PreventPackageFromLoading[% \ClassWarning{\TUDClassName}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% ]{tudscrfonts} % \end{macrocode} % % \iffalse % %<*package&identify> % \fi % % Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket % \pkg{scrextend} benötigt. Das Paket \pkg{trimspaces} ist für die alternative % Schriftauswahl mit \cs{cdfont} bzw. \cs{textcdfont} notwendig. % \begin{macrocode} \ifcsname KOMAClassName\endcsname\else% \RequirePackage{scrextend}[2013/12/19]% \fi \RequirePackage{trimspaces}[2009/09/17] % \end{macrocode} % % \iffalse % %<*(class|package)&option> % \fi % % \subsection{Schriftauswahl im \TUDScript-Bundle} % % Das \TUDScript-Bundle unterstützt sowohl die Schriftauswahl im klassischen % New Font Selection Scheme (NFSS) als auch das Einbinden der Schriften im % OpenType"=Format aus dem System über das Paket \pkg{fontspec} für Lua\LaTeX % bzw. Xe\LaTeX, wobei die letztere Variante nicht ideal ist. Zum einen % funktioniert das Kerning nicht sonderlich gut und zum anderen sind keine % Schriften für den mathematischen Satz vorhanden. Da die skriptbasierte % Installation der PostScript"=Schriften gut funktioniert, ist diese Variante % zu bevorzugen. Trotzdem werden beide Varianten, die Schriftfamilie des \CDs % für den Fließtext und die Überschriften zu verwenden, angeboten. % \begin{option}{fontspec} % \changes{v2.02}{2014/08/29}{neu}^^A % \begin{macro}{\if@tud@fontspec} % \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 % \begin{macro}{\tud@univers} % \begin{macro}{\tud@dinbold} % \begin{macro}{\tud@mathenc} % \changes{v2.04}{2015/02/19}{entfernt}^^A % Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes % \pkg{fontspec} aktiviert werden. Alternativ kann das Paket auch durch den % Nutzer selbst geladen werden. Zu Beginn werden Schalter und Hilfsmakros % definiert. % \begin{macrocode} \newif\if@tud@univers \newif\if@tud@dinbold \newcommand*\tud@univers{lun} \newcommand*\tud@dinbold{0m6} % \end{macrocode} % Hier kommt die eigentliche Option. % \begin{macrocode} \newif\if@tud@fontspec \TUD@key{fontspec}[true]{% %<*class> \ClassWarning{\TUDClassName}% % %<*package> \PackageWarning{tudscrfonts} % {% The option key `fontspec' is deprecated.\MessageBreak% You should load the package `fontspec' manually% }% \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% } % \end{macrocode} % Da dieser Prozess sehr tief in die Schriftauswahl eingreift und das Laden des % Paketes die Schriftauswahl für das ganze Dokument verändert, wird diese % Option nur beim Laden der Klasse zugelassen. % \begin{macrocode} %<*class> \AtEndOfClass% % %<*package> \AtEndOfPackage% % {% \TUD@key{fontspec}[]% {% %<*class> \ClassError{\TUDClassName}% % %<*package> \PackageError{tudscrfonts}% % {Option `fontspec' too late}{% Option `fontspec' can only be set while loading the\MessageBreak% %<*class> class `\TUDClassName' % %<*package> package `tudscrfonts' % but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% \if@tud@fontspec% \RequirePackage{fontspec}[2014/06/21]% \fi% } % \end{macrocode} % Sobald das Paket \opt{fontspec} manuell geladen wurde, wird auch der passende % Schlüssel gesetzt. % \begin{macrocode} \AfterPackage*{fontspec}{\@tud@fontspectrue} % \end{macrocode} % \end{macro}^^A \tud@mathenc % \end{macro}^^A \tud@dinbold % \end{macro}^^A \tud@univers % \end{macro}^^A if@tud@dinbold % \end{macro}^^A if@tud@univers % \end{macro}^^A \if@tud@fontspec % \end{option}^^A fontspec % % \iffalse % %<*(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\IfFileExists{OT1\tud@univers.fd}}% }% \edef\@tempb{% \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% }% \def\@tempc##1{% %<*class> \ClassInfoNoLine{\TUDClassName}% % %<*package> \PackageInfoNoLine{tudscrfonts}% % {% `##1' fonts for math typesetting not found\MessageBreak% Please use one of the installation scripts for the\MessageBreak% tudscr-bundle mentioned in the manual% }% }% \else% \edef\@tempa{% \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% }% \edef\@tempb{% \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% }% \def\@tempc##1{% \@tempswafalse% \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} %<*class> \ClassWarningNoLine{\TUDClassName}% % %<*package> \PackageWarningNoLine{tudscrfonts}% % {% `##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}{\@tempc{Univers}}% \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% \undef\tud@font@check% } % \end{macrocode} % \end{macro}^^A \tud@font@check % \begin{macro}{\tud@font@init} % \changes{v2.04}{2014/03/10}{neu}^^A % \begin{macro}{\textuln} % \begin{macro}{\texturn} % \begin{macro}{\textubn} % \begin{macro}{\textuxn} % \begin{macro}{\textuls} % \begin{macro}{\texturs} % \begin{macro}{\textubs} % \begin{macro}{\textuxs} % \begin{macro}{\textdbn} % Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl % der Schriften des \CDs verwendet. Er wird als Hook genutzt und abhängig vom % Schalter \cs{if@tud@fontspec} entweder für die Verwendung von \pkg{fontspec} % oder des NFSS-Schemas mit \cs{preto}\cs{tud@font@init}\marg{Makro} angepasst. % \begin{macrocode} \newcommand*\tud@font@init{% % \end{macrocode} % Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle % bereitgestellt. % \begin{macrocode} \newcommand*\textuln{}% \newcommand*\texturn{}% \newcommand*\textubn{}% \newcommand*\textuxn{}% \newcommand*\textuls{}% \newcommand*\texturs{}% \newcommand*\textubs{}% \newcommand*\textuxs{}% \newcommand*\textdbn{}% \DeclareTextFontCommand{\textuln}{\univln}% \DeclareTextFontCommand{\texturn}{\univrn}% \DeclareTextFontCommand{\textubn}{\univbn}% \DeclareTextFontCommand{\textuxn}{\univxn}% \DeclareTextFontCommand{\textuls}{\univls}% \DeclareTextFontCommand{\texturs}{\univrs}% \DeclareTextFontCommand{\textubs}{\univbs}% \DeclareTextFontCommand{\textuxs}{\univxs}% \DeclareTextFontCommand{\textdbn}{\dinbn}% % \end{macrocode} % Nach der optionsabhängigen Definition der Schriftauswahlbefehle werden die % Initialisierungsbefehle undefiniert gesetzt. % \begin{macrocode} \undef\tud@font@init@fontspec% \undef\tud@fontface% \undef\tud@fontspec@flag% \undef\tud@fontspec@error% \undef\tud@font@init@nfss% \undef\tud@font@init% } % \end{macrocode} % \end{macro}^^A \textdbn % \end{macro}^^A \textuxs % \end{macro}^^A \textubs % \end{macro}^^A \texturs % \end{macro}^^A \textuls % \end{macro}^^A \textuxn % \end{macro}^^A \textubn % \end{macro}^^A \texturn % \end{macro}^^A \textuln % \end{macro}^^A \tud@font@init % \begin{macro}{\univln} % \begin{macro}{\univrn} % \begin{macro}{\univbn} % \begin{macro}{\univxn} % \begin{macro}{\univls} % \begin{macro}{\univrs} % \begin{macro}{\univbs} % \begin{macro}{\univxs} % \begin{macro}{\dinbn} % \begin{macro}{\@dinbn} % Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte % Univers~45~Light, Univers~55~Regular, Univers~65~Bold, Univers~75~Black, % Univers~45~Light~Oblique, Univers~55~Regular~Oblique, Univers~65~Bold~Oblique % sowie Univers~75~Black~Oblique und DIN~Bold definiert. Diese können so im % Dokument unabhängig von der Option \opt{cdfont} genutzt werden. Bei der % Schriftauswahl der DIN~Bold wird neben dieser noch die entsprechende % Mathematikschrift aktiviert. Dabei ist zu beachten, dass die Schriften evtl. % gar nicht installiert sind und für diesen Fall eine Rückfallebene notwendig % ist. % \begin{macro}{\tud@font@init@fontspec} % \changes{v2.04}{2014/03/10}{neu}^^A % \begin{macro}{\if@tud@fontspec@missing} % \changes{v2.04c}{2015/11/29}{neu}^^A % \begin{macro}{\tud@fontface} % \changes{v2.04c}{2015/11/29}{neu}^^A % \begin{macro}{\tud@fontspec@flag} % \changes{v2.04c}{2015/11/29}{neu}^^A % \begin{macro}{\tud@fontspec@error} % \changes{v2.04c}{2015/11/29}{neu}^^A % Leider exisitiert im Paket \pkg{fontspec} keine einfache Möglichkeit, auf das % Vorhandensein von Schriften zu testen. Deshalb wird hier etwa getrickst, um % die Schriften nur zu laden, falls diese auch tatsächlich existieren und die % ggf. auftrtende Fehlermeldung zu unterdrücken. % \begin{macrocode} \newif\if@tud@fontspec@missing \newcommand*\tud@font@init@fontspec{} % \end{macrocode} % Alles etwas umständlich, aber leider geht es nicht anders. Um die Fehler % zu unterdrücken, ist die Syntax von \LaTeX{}3 notwendig. Es wird mit % dem Paket \pkg{xparse} der Befehl \cs{tud@fontface} welcher eigentlch den % Befehl \cs{newfontface} nutzt und für denn Fall, dass keine Schrift % exisitiert, den entsprechenden Befehl leer definiert. % \begin{macrocode} \IfFileExists{xparse.sty}{\@tempswatrue}{\@tempswafalse}% \if@tempswa \RequirePackage{xparse} \newcommand*\tud@fontspec@flag{\global\@tud@fontspec@missingtrue\@gobbletwo}% \NewDocumentCommand\tud@fontface{mmo}{% \global\@tud@fontspec@missingfalse% \newfontface#1{#2}[#3]% \if@tud@fontspec@missing% \renewrobustcmd*#1{}% \fi% }% % \end{macrocode} % Um die Fehler bei dem Laden der Schrift zu unterdrücken, wird der dafür % verantwortliche Befehl gesichertr und anschließend passend neu definiert. % \begin{macrocode} \ExplSyntaxOn \renewcommand*\tud@font@init@fontspec{% \cs_set_eq:NN \tud@fontspec@error \__fontspec_error:nx \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@flag % \end{macrocode} % Für die Schriften werden feste NFSS-Namen vergeben, um diese unter anderem % auch beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können. % \begin{macrocode} \tud@fontface\univln{Univers Light}[NFSSFamily=UniversLight]% \tud@fontface\univrn{Univers}[NFSSFamily=UniversRegular]% \tud@fontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% \tud@fontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% \tud@fontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% \tud@fontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% \tud@fontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% \tud@fontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% % \end{macrocode} % Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da % dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte % dieser zumindest auch auf deren Stil schalten. % \begin{macrocode} \tud@fontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% \if@tud@fontspec@missing% \newrobustcmd*\dinbn{\sectfont}% \else% \if@tud@dinbold% \newrobustcmd*\dinbn{\@dinbn\mathversion{dinbold}}% \else% \newrobustcmd*\dinbn{\@dinbn}% \fi% \fi% % \end{macrocode} % Zum Schluss wird noch die Fehlermeldungen auf ihre ursprüngliche Definition % gesetzt und damit ist der ganze Zauber vorbei. % \begin{macrocode} \cs_set_eq:NN \__fontspec_error:nx \tud@fontspec@error }% \ExplSyntaxOff \fi% % \end{macrocode} % \end{macro}^^A \tud@fontspec@error % \end{macro}^^A \tud@fontspec@flag % \end{macro}^^A \tud@fontface % \end{macro}^^A \if@tud@fontspec@missing % \end{macro}^^A \tud@font@init@fontspec % \begin{macro}{\tud@font@init@nfss} % \changes{v2.04}{2014/03/10}{neu}^^A % Falls \opt{fontspec} nicht aktiv ist, werden die Schriften klassisch nach dem % NFSS definiert. Sind die Univer-Schriften installiert, dann werden dazu % passende Schalter erstellt. % \begin{macrocode} \newcommand*\tud@font@init@nfss{% \if@tud@univers% \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% % \end{macrocode} % Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese % einfach nichts machen. % \begin{macrocode} \else% \newrobustcmd*\univln{}% \newrobustcmd*\univrn{}% \newrobustcmd*\univbn{}% \newrobustcmd*\univxn{}% \newrobustcmd*\univls{}% \newrobustcmd*\univrs{}% \newrobustcmd*\univbs{}% \newrobustcmd*\univxs{}% \fi% % \end{macrocode} % Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. % \begin{macrocode} \if@tud@dinbold% \newrobustcmd*\dinbn{% \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% \mathversion{dinbold}% }% \else% \newrobustcmd*\dinbn{\sectfont}% \fi% } % \end{macrocode} % \end{macro}^^A \tud@font@init@nfss % \end{macro}^^A \@dinbn % \end{macro}^^A \dinbn % \end{macro}^^A \univxs % \end{macro}^^A \univbs % \end{macro}^^A \univrs % \end{macro}^^A \univls % \end{macro}^^A \univxn % \end{macro}^^A \univbn % \end{macro}^^A \univrn % \end{macro}^^A \univln % \begin{macro}{\cdfont} % \changes{v2.04}{2015/03/04}{neu}^^A % \begin{macro}{\tudfont} % \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A % \begin{macro}{\textcdfont} % \changes{v2.04}{2015/03/04}{neu}^^A % \begin{macro}{\@cdfont} % \changes{v2.04}{2015/03/04}{neu}^^A % \begin{macro}{\tud@trimfontname} % \changes{v2.04}{2015/03/04}{neu}^^A % \begin{macro}{\tud@@trimfontname} % \changes{v2.04}{2015/03/04}{neu}^^A % Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl % \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen % ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont} % definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird % der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als % Textbefehl ermöglicht. % \begin{macrocode} \newcommand*\cdfont[1]{% \@cdfont{#1}% \ifx\@tempc\relax\else% \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% \fi% } \providecommand*\tudfont[1]{\cdfont{#1}} \newcommand*\textcdfont[2]{% \@cdfont{#1}% \ifx\@tempc\relax\else% \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% \fi% } \newcommand*\@cdfont[1]{% \tud@trimfontname\@tempa{#1}% \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% \let\@tempc\relax% \PackageWarning{tudscrfonts}{The font `#1' is unknown}% }}}}}}}}}}}}}}% } \newcommand*\tud@trimfontname[2]{% \protected@edef\@tempa{\trim@spaces{#2}}% \tud@lowerstring{\@tempa}{\@tempa}% \tud@@trimfontname{ }{}% \tud@@trimfontname{-}{}% \tud@@trimfontname{_}{}% \tud@@trimfontname{~}{}% \tud@@trimfontname{ce}{}% \tud@@trimfontname{ff}{}% \tud@@trimfontname{univers}{}% \tud@@trimfontname{60}{65}% \tud@@trimfontname{light}{45}% \tud@@trimfontname{regular}{55}% \tud@@trimfontname{bold}{65}% \tud@@trimfontname{black}{75}% \tud@@trimfontname{4545}{45}% \tud@@trimfontname{5555}{55}% \tud@@trimfontname{6565}{65}% \tud@@trimfontname{7575}{75}% \tud@@trimfontname{italic}{oblique}% \tud@@trimfontname{slanted}{oblique}% \let#1\@tempa% } \newcommand*\tud@@trimfontname[2]{% \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% \@expandtwoargs\in@{#1}{\@tempa}% \@whilesw\ifin@\fi{% \expandafter\@tempb\@tempa\relax% \@expandtwoargs\in@{#1}{\@tempa}% }% } % \end{macrocode} % \end{macro}^^A \tud@@trimfontname % \end{macro}^^A \tud@trimfontname % \end{macro}^^A \@cdfont % \end{macro}^^A \textcdfont % \end{macro}^^A \tudfont % \end{macro}^^A \cdfont % \begin{macro}{\tud@font@math@init} % \changes{v2.04}{2014/03/10}{neu}^^A % \begin{macro}{\mv@univers} % \begin{macro}{\mv@universbold} % \begin{macro}{\mv@dinbold} % \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart % DIN~Bold verwendet}^^A % Für die Mathematikschriften im Fließtext werden für die lateinischen Lettern % die Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die % griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus % dem \pkg{iwona}"~Paket die mathematische Symbole verwendet. Es werden zwei % Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. % \begin{macrocode} \newcommand*\mv@univers{}% \newcommand*\mv@universbold{}% \newcommand*\mv@dinbold{}% \newcommand*\tud@font@math@init{% \if@tud@fontspec\if@tud@univers\if@tud@dinbold% \@ifpackagewith{fontspec}{no-math}{}{% %<*class> \ClassWarningNoLine{\TUDClassName}% % %<*package> \PackageWarningNoLine{tudscrfonts}% % {% 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} % Auch für die Schrift DIN~Bold werden mathematische Glyphen bereitgestellt. % Diese wurden aus dem \pkg{iwona}"=Paket entnommen. Auch die verwendeten % Symbole stammen aus diesem Paket. % \begin{macrocode} \if@tud@dinbold% \DeclareMathVersion{dinbold}% \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% \fi% % \end{macrocode} % Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für % die Mathematikschriften vorgenommen\dots % \begin{macrocode} \@ifpackageloaded{unicode-math}{% \let\tud@font@math@set\relax% \bool@set@lock{@tud@cdmath}{false}% }{% % \end{macrocode} % Für die griechischen Buchstaben wird geprüft, ob durch ein Paket diese auf % die kursive Variante gesetzt wurden. Ist dies der Fall, wird der Standardwert % für die Option \opt{slantedgreek} auf \val{true} gesetzt. Anschließend % erfolgt die \emph{Intialisierung} der griechischen Großbuchstaben mit dem % Befehl \cs{tud@font@greek@init}. % \begin{macrocode} \let\@tempb\relax% \let\@tempc\relax% \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% \@tempswafalse% \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% \if@tempswa% \bool@std@lock{@tud@slantedgreek}{true}% \fi% \tud@font@greek@loop\tud@font@greek@init% % \end{macrocode} % Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart % der Option \opt{cdfont} die benötigten Mathematikversionen geladen. % \begin{macrocode} \tud@font@math@set% }% % \end{macrocode} % Daran anschließend werden die DIN-Bold-Schriften in einer Box verwendet, um % das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren. % \begin{macrocode} \sbox\z@{\dinbn$ $}% % \end{macrocode} % Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften % undefiniert gesetzt. % \begin{macrocode} \undef\tud@font@math@init% } % \end{macrocode} % \end{macro}^^A \mv@dinbold % \end{macro}^^A \mv@universbold % \end{macro}^^A \mv@univers % \end{macro}^^A \tud@font@math@init % Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige % Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt % das Setzen der Mathematikschriften druch \cs{AtBeginDocument} innerhalb von % \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}. % % Für das Paket müssen zuvor einige Einstellungen angepasst werden, damit bei % der Verwendung einer alten Klasse alles reibungslos funktioniert. % \begin{macrocode} %<*package> \ifbool{@tud@oldscrclass}{% \let\univln\relax% \let\univrn\relax% \let\univbn\relax% \let\univxn\relax% \let\univls\relax% \let\univrs\relax% \let\univbs\relax% \let\univxs\relax% \let\dinbn\relax% \let\textuln\relax% \let\texturn\relax% \let\textubn\relax% \let\textuxn\relax% \let\textuls\relax% \let\texturs\relax% \let\textubs\relax% \let\textuxs\relax% \let\textdbn\relax% \AtBeginDocument{% \cmd@restore{rmdefault}% \cmd@restore{sfdefault}% \cmd@restore{bfdefault}% \cmd@restore{mddefault}% \cmd@restore{familydefault}% \cmd@restore{seriesdefault}% \cmd@restore{shapedefault}% \cmd@restore{rmfamily}% \cmd@restore{sffamily}% \cmd@restore{ttfamily}% }% }{} % % \end{macrocode} % Jetzt kommt es zur eigentlichen Initialisierung der Schriften. % \begin{macrocode} %\AtEndPreamble% %\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}% % \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]% % \AtBeginDocument{\tud@font@math@init}% % \tud@font@math@init% } % \end{macrocode} % \begin{macro}{\tud@font@greek@init} % \changes{v2.04}{2014/03/10}{neu}^^A % \begin{macro}{\upDelta} % \begin{macro}{\upGamma} % \begin{macro}{\upLambda} % \begin{macro}{\upOmega} % \begin{macro}{\upPhi} % \begin{macro}{\upPi} % \begin{macro}{\upPsi} % \begin{macro}{\upSigma} % \begin{macro}{\upTheta} % \begin{macro}{\upUpsilon} % \begin{macro}{\upXi} % \begin{macro}{\varDelta} % \begin{macro}{\varGamma} % \begin{macro}{\varLambda} % \begin{macro}{\varOmega} % \begin{macro}{\varPhi} % \begin{macro}{\varPi} % \begin{macro}{\varPsi} % \begin{macro}{\varSigma} % \begin{macro}{\varTheta} % \begin{macro}{\varUpsilon} % \begin{macro}{\varXi} % Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen % Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und % kursiver Buchstaben. % \begin{macrocode} \newcommand*\tud@font@greek@init[1]{% \ifcsdef{up#1}{}{% \if@tempswa% \csletcs{up#1}{tud@up#1}% \else% \csletcs{up#1}{#1}% \fi% }% \ifcsdef{var#1}{}{% \if@tempswa% \csletcs{var#1}{#1}% \else% \csletcs{var#1}{tud@var#1}% \fi% }% } % \end{macrocode} % \end{macro}^^A \varXi % \end{macro}^^A \varUpsilon % \end{macro}^^A \varTheta % \end{macro}^^A \varSigma % \end{macro}^^A \varPsi % \end{macro}^^A \varPi % \end{macro}^^A \varPhi % \end{macro}^^A \varOmega % \end{macro}^^A \varLambda % \end{macro}^^A \varGamma % \end{macro}^^A \varDelta % \end{macro}^^A \upXi % \end{macro}^^A \upUpsilon % \end{macro}^^A \upTheta % \end{macro}^^A \upSigma % \end{macro}^^A \upPsi % \end{macro}^^A \upPi % \end{macro}^^A \upPhi % \end{macro}^^A \upOmega % \end{macro}^^A \upLambda % \end{macro}^^A \upGamma % \end{macro}^^A \upDelta % \end{macro}^^A \tud@font@greek@init % % \iffalse % %<*(class|package)&option> % \fi % % \begin{macro}{\tud@uclcnotmath} % \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im % Argument des Befehls \cs{MakeTextUppercase}}^^A % \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls % \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A % \begin{macro}{\@uclcnotmath} % Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit % \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase} % verbessert, wird das Paket \pkg{textcase} genutzt. Damit Fußnoten nicht % automatisch in Majuskeln gesetzt werden, wird außerdem der interne Befehl % \cs{@uclcnotmath} aus diesem Paket angepasst. % \begin{macrocode} \RequirePackage{textcase}[2004/10/07] \newcommand*\tud@uclcnotmath{% \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% } \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% \@nonchangecase\ensuremath\tud@uclcnotmath }{}{\tud@patch@wrn{@uclcnotmath}}% % \end{macrocode} % \end{macro}^^A \@uclcnotmath % \end{macro}^^A \tud@uclcnotmath % \begin{macro}{\tud@font@heading} % Mit \cs{tud@font@heading} wird die Schriftart für Überschriften im Layout des % \CDs definiert. Normalerweise wird hierfür DIN-Bold verwendet, was allerdings % per Option auch deaktiviert werden kann. % \begin{macrocode} \newcommand*\tud@font@heading{\dinbn\tud@raggedright} % \end{macrocode} % \end{macro}^^A \tud@font@heading % \begin{option}{cdfont} % \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}^^A % \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}^^A % \begin{macro}{\tud@cdfont} % Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen % Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option % können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke % der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von % DIN~Bold für die Überschriften deaktivieren. Außerdem kann eingestellt % werden, ob für den Mathematiksatz serifenlose Schriften zum Einsatz kommen % sollen. % \begin{macrocode} \newcommand*\tud@cdfont{1} \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% \TUD@numkey@bool,% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% {heavy}{2},{heavyfont}{2},% {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},% {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},% %<*class> {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},% {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},% {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},% {bar}{6},{barfont}{6},% {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},% {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},% {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},% {headlight}{6},{headfontlight}{6},{headlightfont}{6},% {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},% {barlight}{6},{barfontlight}{6},{barlightfont}{6},% {litehead}{6},{liteheadfont}{6},{litefonthead}{6},% {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},% {litebar}{6},{litebarfont}{6},{litefontbar}{6},% {headlite}{6},{headfontlite}{6},{headlitefont}{6},% {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},% {barlite}{6},{barfontlite}{6},{barlitefont}{6},% {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},% {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},% {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},% {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},% {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},% {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},% {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},% {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},% {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},% {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},% {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},% {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},% % {nomath}{8},{nocdmath}{8},% {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},% {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},% {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% }{#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% false \def\tud@cdfont{0}% \if@atdocument\tud@font@set\fi% \or% true \def\tud@cdfont{1}% \if@atdocument\tud@font@set\fi% \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% nodin \renewcommand*\tud@font@heading{\tud@RaggedRight}% \or% din \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% % \end{macrocode} % Die Schrift für den Querbalken. % \begin{macrocode} \or% nohead %<*class> \TUDoptions{cdhead=false}% % \or% head %<*class> \TUDoptions{cdhead=true}% % \or% heavyhead %<*class> \TUDoptions{cdhead=heavy}% % % \end{macrocode} % Die Mathematikschriften. % \begin{macrocode} \or% nomath \TUDoptions{cdmath=false}% \or% math \TUDoptions{cdmath=true}% % \end{macrocode} % Die Neigung der großen griechischen Buchstaben. % \begin{macrocode} \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek \TUDoptions{slantedgreek=true}% % \end{macrocode} % Die Verwendung von \pkg{fontspec}. % \begin{macrocode} \or% fontspec \TUDoptions{fontspec=true}% \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)&body> % \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} \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% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% \tud@cmd@restore{bfdefault}% \tud@cmd@restore{mddefault}% \tud@cmd@restore{itdefault}% \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 Standardverhalten zurückgesetzt. % \begin{macrocode} \bool@std@lock{@tud@cdmath}{false}% % \end{macrocode} % Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt. % \begin{macrocode} %<*class> \cs@std@lock{tud@head@font}{0}% % % \end{macrocode} % Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der % Standardschriften vorher vorher gesichert, um diese später vollständig % wiederherstellen zu können. % \begin{macrocode} \else% true/heavy \tud@cmd@store{rmdefault}% \tud@cmd@store{sfdefault}% \tud@cmd@store{ttdefault}% \tud@cmd@store{bfdefault}% \tud@cmd@store{mddefault}% \tud@cmd@store{itdefault}% \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. % \begin{macrocode} \bool@std@lock{@tud@cdmath}{true}% % \end{macrocode} % Die Schrift im Querbalken wird bei den Klassen angepasst. % \begin{macrocode} %<*class> \cs@std@lock{tud@head@font}{\tud@cdfont}% % % \end{macrocode} % Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket % \pkg{fontspec} oder\dots % \begin{macrocode} \if@tud@fontspec% \ifnum\tud@cdfont=\@ne\relax% true \setsansfont{Univers Light}[% BoldFont = Univers,% ItalicFont = Univers Light Oblique,% BoldItalicFont = Univers Oblique,% ]% \setmonofont{LMMonoLt10-Regular}[% BoldFont = LMMono10-Regular,% ItalicFont = LMMonoLt10-Oblique,% BoldItalicFont = LMMonoSlant10-Regular,% ]% % \end{macrocode} % Für die alten Klassen von Klaus Bergmann sowie \TUDScript in der Version~v1.0 % werden die fetten Schriften in einem stärkeren Schriftschnitt gesetzt. % \begin{macrocode} %<*package> \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{% \setsansfont{Univers Light}[% BoldFont = Univers Bold,% ItalicFont = Univers Light Oblique,% BoldItalicFont = Univers Bold Oblique,% ]% }{}% % \else% heavy \setsansfont{Univers}[% BoldFont = Univers Bold,% ItalicFont = Univers Oblique,% BoldItalicFont = Univers Bold Oblique,% ]% \setmonofont{LMMono10-Regular}[% BoldFont = LMMonoLt10-Bold,% ItalicFont = LMMonoSlant10-Regular,% BoldItalicFont = LMMonoLt10-BoldOblique,% ]% \fi% % \end{macrocode} % \dots nach dem NFSS. % \begin{macrocode} \else% \if@tud@univers% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% \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 % Schriften stärker. % \begin{macrocode} %<*package> \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{% \renewcommand*\bfdefault{b}% }{}% % \renewcommand*\mddefault{l}% \if@tud@mweights% \def\bfseries@rm{m}% \def\bfseries@sf{m}% \def\bfseries@tt{m}% \def\mdseries@rm{l}% \def\mdseries@sf{l}% \def\mdseries@tt{l}% \fi% \else% heavy \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% \renewcommand*\rmdefault{\sfdefault}% \renewcommand*\familydefault{\sfdefault}% \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 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% %<*class> \tud@layout@process% % } % \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 % neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen % das Mapping der griechischen Glyphen geändert, zum anderen werden die % originalen Mathematikversionen überschrieben respektive wiederhergestellt. % \begin{macrocode} \newcommand*\tud@font@math@set{% \if@tud@univers% \if@tud@cdmath% \tud@cmd@store{mv@normal}% \tud@cmd@store{mv@bold}% \let\mv@normal\mv@univers% \let\mv@bold\mv@universbold% \tud@font@greek@loop\tud@font@greek@set% \else% \tud@cmd@restore{mv@normal}% \tud@cmd@restore{mv@bold}% \tud@font@greek@loop\tud@font@greek@reset% \fi% \fi% \if@tud@slantedgreek% \tud@font@greek@loop\tud@font@greek@slanted% \else% \tud@font@greek@loop\tud@font@greek@upright% \fi% \mathversion{normal}% } % \end{macrocode} % \end{macro}^^A \tud@font@math@set % \begin{macro}{\tud@font@greek@set} % \changes{v2.04}{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@set[1]{% \tud@cmd@store{#1}% \tud@cmd@store{up#1}% \tud@cmd@store{var#1}% \csletcs{#1}{tud@#1}% \csletcs{up#1}{tud@up#1}% \csletcs{var#1}{tud@var#1}% } \newcommand*\tud@font@greek@reset[1]{% \tud@cmd@restore{#1}% \tud@cmd@restore{up#1}% \tud@cmd@restore{var#1}% } % \end{macrocode} % \end{macro}^^A \tud@font@greek@reset % \end{macro}^^A \tud@font@greek@set % \begin{macro}{\tud@font@greek@upright} % \begin{macro}{\tud@font@greek@slanted} % \changes{v2.04}{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@upright[1]{\csletcs{#1}{up#1}} \newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} % \end{macrocode} % \end{macro}^^A \tud@font@greek@slanted % \end{macro}^^A \tud@font@greek@upright % % \iffalse % %<*(class|package)&option> % \fi % % \subsection{Schriften für den Mathematiksatz} % % Da die Schriften des \CDs keinen Mathematiksatz beeinhalten, musste~-- % insbesondere für griechische Symbole~-- eine passende Alternative gefunden % werden. Die Auswahl an Mathematikschriften für \LaTeX{} ist relativ gering. % Dennoch schien das \pkg{cmbright}-Paket dafür geeignet, weshalb dieses direkt % bei der Installation der Schriften eingebunden wurde. % % \begin{option}{cdmath} % \begin{macro}{\if@tud@cdmath} % \begin{macro}{\if@tud@cdmath@locked} % Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz % für das gesamte Dokument umgestellt werden. % \begin{macrocode} \bool@lock{@tud@cdmath} \TUD@key{cdmath}[true]{% \TUD@set@numkey{cdmath}{@tempa}{% \TUD@numkey@bool,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% \if@atdocument\tud@font@math@set\fi% \or% true \bool@set@lock{@tud@cdmath}{true}% \if@atdocument\tud@font@math@set\fi% \or% upgreek \TUDoptions{slantedgreek=false}% \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% } % \end{macrocode} % \end{macro}^^A \if@tud@cdmath@locked % \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} \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&body> % \fi % % \begin{macro}{\tud@head@font@set} % \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}^^A % \changes{v2.03}{2015/01/30}{Fix für die Änderung von \cs{spaceskip} durch % \pkg{ragged2e}}^^A % \begin{macro}{\tud@head@font@bold} % \begin{macro}{\tud@head@font@light} % Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber % in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten % sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die % Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im % Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und % in \cs{tud@head@font@size} gespeichert. % \begin{macrocode} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@set{% % \end{macrocode} % Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um % den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu % lassen, wird dies hier temporär unterdrückt. % \begin{macrocode} \ifdef{\@raggedtwoe@everyselectfont}{% \let\@raggedtwoe@everyselectfont\relax% \setlength\spaceskip{\z@}% \selectfont% }{}% % \end{macrocode} % Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet % werden. % \begin{macrocode} \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\sfdefault}{bx}{n}{\tud@head@font@size}% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% % \end{macrocode} % Die Option \opt{cdhead} wird ausgewertet. % \begin{macrocode} \@tempswafalse% \ifcase\tud@head@font\relax% false \ifnum\tud@cdfont>\z@\relax% true/heavy \ClassWarning{\TUDClassName}{% It isn't possible to use `cdhead=false'\MessageBreak% together with `cdfont=true'% }% \@tempswatrue% \fi% \else% true/heavy \@tempswatrue% \fi% % \end{macrocode} % Die Schriften für den Kopf im \CD werden aktiviert. % \begin{macrocode} \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 % Univers spezielle Namen zugewiesen, die hier verwendet werden. % \begin{macrocode} \if@tud@fontspec% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {UniversBold}{m}{n}{\tud@head@font@size}% \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversLight}{m}{n}{\tud@head@font@size}% \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversRegular}{m}{n}{\tud@head@font@size}% \fi% % \end{macrocode} % Die klassische Auswahl mittels NFSS-Schriftname und \cs{mddefault}. % \begin{macrocode} \else% \if@tud@univers% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\tud@univers}{b}{n}{\tud@head@font@size}% \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{l}{n}{\tud@head@font@size}% \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{m}{n}{\tud@head@font@size}% \fi% \fi% \fi% \fi% } % \end{macrocode} % \end{macro}^^A \tud@head@font@light % \end{macro}^^A \tud@head@font@bold % \end{macro}^^A \tud@head@font@set % % \iffalse % %<*(class|package)&body> % \fi % % \begin{macro}{\ifdin} % \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A % Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig % wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für % die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe % im Dokument sowie Inhaltserzeichnis und/oder Kolumnentitel zu unterscheiden. % \begin{macrocode} \newrobustcmd*\ifdin{% \@tempswafalse% \@expandtwoargs\in@{DINBold}{\f@family}% \ifin@\@tempswatrue\fi% \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi% \if@tempswa% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } % \end{macrocode} % \end{macro}^^A \ifdin % % \subsection{Bedingte Majuskeln für Überschriften} % % Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch % tatsächlich die Schrift DIN~Bold verwendet wird. % \begin{macro}{\tud@makeuppercase} % Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die % richtige Schriftfamilie verwendet wird. % \begin{macrocode} \newcommand*\tud@makeuppercase[1]{% \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% % \end{macrocode} % Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden % Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen % des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten % verschoben. Allerdings ist das ein ziemlich übler Hack. % \begin{macrocode} \protect\vphantom{\"A\"O\"U}% % \addtokomafont{section}{\strut\ignorespaces}% } % \end{macrocode} % \end{macro}^^A \tud@makeuppercase % % \subsection{Anpassungen für das Paket \pkg{ragged2e}} % % \begin{macro}{\tud@raggedright} % \begin{macro}{\tud@RaggedRight} % Die Überschriften in DIN"~Bold sollen laut \CD linksbündig und nie mit % Silbentrennung gesetzt werden. Normalerweise ist das dies beim linksbündigen % Satz bei \LaTeX{} der Fall. Allerdings ist es mit dem Paket \pkg{ragged2e} % möglich, das Verhalten für den Flattersatz zu ändern und die Silbentrennung % zu aktivieren. Mit der Option \opt{newcommands} werden dabei die originalen % Befehle überschrieben, vorher jedoch in \cs{LaTeX\dots} gesichert. Dieses % Makro dient dazu, die Überschriften in jedem Fall~-- auch bei der Verwendung % von \pkg{ragged2e} mit der Option \opt{newcommands}~-- ohne Trennungen zu % setzen. % \begin{macrocode} \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} \AfterPackage*{ragged2e}{% \ifdef{\LaTeXraggedright}{% \renewcommand*\tud@raggedright{\LaTeXraggedright}% }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } % \end{macrocode} % \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 % % % \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@ % %<*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@ % %<*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@ % \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@ % %<*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@ % %<*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@ % \def\@listi{% \leftmargin\leftmargini %<*10pt> \topsep 6\p@ \@plus2\p@ \@minus3\p@ \parsep 3\p@ \@plus1.5\p@ \@minus\p@ % %<*11pt> \topsep 6.6\p@ \@plus2.2\p@ \@minus3.3\p@ \parsep 3.3\p@ \@plus1.65\p@ \@minus1.1\p@ % %<*12pt> \topsep 7.2\p@ \@plus2.4\p@ \@minus3.6\p@ \parsep 3.6\p@ \@plus1.8\p@ \@minus1.2\p@ % \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@ % %<*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@ % %<*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@ % \def\@listi{% \leftmargin\leftmargini %<*10pt> \topsep 4.5\p@ \@plus1.5\p@ \@minus2.25\p@ \parsep 2.25\p@ \@plus1.125\p@ \@minus\p@ % %<*11pt> \topsep 4.95\p@ \@plus1.65\p@ \@minus2.475\p@ \parsep 2.475\p@ \@plus1.2375\p@ \@minus\p@ % %<*12pt> \topsep 5.4\p@ \@plus1.8\p@ \@minus2.7\p@ \parsep 2.7\p@ \@plus1.35\p@ \@minus\p@ % \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@}} % %<*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@}} % %<*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@}} % \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@} % %<*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@} % %<*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@} % \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@ % %<*11pt> \topsep 8.8\p@ \@plus2.2\p@ \@minus4.4\p@ \parsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@ % %<*12pt> \topsep 9.6\p@ \@plus2.4\p@ \@minus4.8\p@ \parsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@ % \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@ % %<*11pt> \topsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@ \parsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@ % %<*12pt> \topsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@ \parsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@ % \itemsep\parsep } \def\@listiii{% \leftmargin\leftmarginiii \labelwidth\leftmarginiii \advance\labelwidth-\labelsep %<*10pt> \topsep 2\p@ \@plus\p@ \@minus\p@ % %<*11pt> \topsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@ % %<*12pt> \topsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@ % \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@} % %<*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@} % %<*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@} % \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 % %<*package&body> % \fi % % Es wird der Inhalt des Pakets \pkg{tudscrfontsizes} definiert, welches auf % \pkg{scrfontsizes} aufbaut. % \begin{macro}{\changefontsizes} % \begin{macro}{\tud@changefontsizes} % Das Pendant zum \KOMAScript-Makro \cs{generate@fontfile} ist der hier % definierte Befehl \cs{tud@generate@fontfile}. Mit diesem können eigenständige % Schriftgrößendateien erstellt werden. % \begin{macrocode} \RequirePackage{scrfontsizes}[2015/02/07] % \end{macrocode} % Hiermit kann die Schriftgröße im Dokument geändert werden, falls keine % passende Schriftgrößendatei vorhanden ist. Der Befehl lehnt sich stark am % \KOMAScript-Befehl \cs{changefontsizes} an, ändert allerdings einige Längen % marginal. % \begin{macrocode} \newcommand*{\tud@changefontsizes}[2][\dimexpr5\@tempdima/4\relax]{% %<*class> \ClassInfo{\TUDClassName}% % %<*package> \PackageInfo{tudscrfonts}% % {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 \tud@generate@fontfile % \end{macro}^^A \generate@fontfile % % \iffalse % % % \fi % % \Finale % \endinput