% \CheckSum{1291}
% \iffalse meta-comment
% 
% ============================================================================
% 
%  TUD-Script
%  Copyright (c) Falk Hanisch <tudscr@gmail.com>, 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}[%
  2016/10/12 v2.05f TUD-Script\space%
%</driver>
%<package&identify>\ProvidesPackage{tudscrfonts}[%
%<*driver|package&identify>
%!TUD@Version
%<package>  package (corporate design fonts)%
]
%</driver|package&identify>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass[english,ngerman,xindy]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
\usepackage{microtype}
\usepackage{bookmark}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-fonts.dtx}
\begin{document}
  \maketitle
  \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} unnötig}^^A
% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}^^A
% \changes{v2.04}{2015/02/27}{Interaktion mit Paketen insbesondere für 
%   den Mathematiksatz verbessert}^^A
% \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 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\PrintToDos}
%
% \iffalse
%<*class&option>
% \fi
%
% \subsection{Verwendbarkeit und Nutzung des Paketes \pkg{tudscrfonts}}
%
%    \begin{macrocode}
\PreventPackageFromLoading[%
  \ClassWarning{\TUD@Class@Name}{%
    The package `tudscrfonts' must not be used with\MessageBreak%
    a TUD-Script class%
  }%
]{tudscrfonts}
%    \end{macrocode}
%
% \iffalse
%</class&option>
%<*package&identify>
% \fi
%
% Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket
% \pkg{scrextend} benötigt. 
%    \begin{macrocode}
\ifcsname KOMAClassName\endcsname\else
  \RequirePackage{scrextend}[2013/12/19]
\fi
%    \end{macrocode}
% Wird das Paket \pkg{tudscrfonts} nach einer der Klassen verwendet, welche die 
% veralteten Schriftfamilien für \Univers und \DIN definieren, so wird eine 
% Warnung mit dem Hinweis auf das Paket \pkg{fix-tudscrfonts} ausgegeben.
%    \begin{macrocode}
\@tempswafalse%
\@for\@tempa:={%
  tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,tudposter,tudmathposter%
}\do{%
  \@ifclassloaded{\@tempa}{%
    \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi%
  }{}%
}%
\if@tempswa%
    \@ifpackageloaded{fix-tudscrfonts}{}{%
      \PackageWarning{tudscrfonts}{%
        As you loaded class `\@tempb', you should\MessageBreak%
        load `fix-tudscrfonts' before the class\MessageBreak%
        with `\string\RequirePackage'%
      }%
    }%
\fi%
%    \end{macrocode}
%
% \iffalse
%</package&identify>
%<*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{macro}{\if@tud@x@fontspec@enabled}
% \changes{v2.02}{2014/08/29}{neu}^^A
% Wird das Paket \pkg{fontspec} durch den Nutzer geladen, wird der passende 
% Schlüssel gesetzt und die Schrifteinstellungen erfolgen mit den dazugehörigen 
% Befehlen. Dies wurde in früheren Versionen mit der Option \opt{fontspec} 
% realisiert, die auch weiterhin bereitgehalten wird. Deshalb muss der Schalter 
% bereits vor der Abarbeitung der Optionen definiert werden. 
%    \begin{macrocode}
\newif\if@tud@x@fontspec@enabled
\AfterPackage*{fontspec}{\@tud@x@fontspec@enabledtrue}
%    \end{macrocode}
% \end{macro}^^A \if@tud@x@fontspec@enabled
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \begin{macro}{\tud@univers}
% \begin{macro}{\if@tud@univers}
% \begin{macro}{\if@tud@universmath}
% \changes{v2.05}{2015/12/14}{neu}^^A
% \begin{macro}{\tud@dinbold}
% \begin{macro}{\if@tud@dinbold}
% \changes{v2.02}{2014/08/29}{neu}^^A
% \begin{macro}{\if@tud@dinboldmath}
% \changes{v2.05}{2015/12/14}{neu}^^A
% Zu Beginn werden Schalter und Hilfsmakros definiert.
%    \begin{macrocode}
\newcommand*\tud@univers{lun}
\newif\if@tud@univers
\newif\if@tud@universmath
\newcommand*\tud@dinbold{0m6}
\newif\if@tud@dinbold
\newif\if@tud@dinboldmath
%    \end{macrocode}
% \end{macro}^^A if@tud@dinboldmath
% \end{macro}^^A if@tud@dinbold
% \end{macro}^^A if@tud@universmath
% \end{macro}^^A if@tud@univers
% \end{macro}^^A \tud@dinbold
% \end{macro}^^A \tud@univers
% \begin{macro}{\tud@font@check}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@x@fontspec@noerror}
% \changes{v2.05}{2015/12/14}{neu}^^A
% Mit \cs{tud@font@check} wird überprüft, ob die benötigten Schriften \Univers
% und \DIN im PostScript- bzw. OTF-Format installiert sind und die passenden 
% Schalter gesetzt. Beim Nichtvorhandensein der Schriften wird im eine Warnung
% ausgegeben und eine Rückfallebene definiert.
%
% Da das Paket \pkg{fontspec} keinen Befehl zum Prüfen auf das Vorhandensein
% einer bestimmten Schrift bereitstellt, muss hier etwas getrickst werden. Bei
% der Wahl einer nicht installierten Schrift wird normalerweise ein Fehler 
% ausgegeben. Mit \cs{tud@x@fontspec@noerror} wird dies verhindert, indem die
% erzeugte Fehlermeldung mit \cs{msg\_redirect\_name:nnn} unterdrückt wird.
%    \begin{macrocode}
\newcommand*\tud@x@fontspec@noerror{}
\IfFileExists{expl3.sty}{\@tempswatrue}{\@tempswafalse}
\if@tempswa
  \RequirePackage{expl3}[2016/05/18]
  \ExplSyntaxOn
  \renewcommand*\tud@x@fontspec@noerror{%
    \__fontspec_font_suppress_not_found_error:
    \msg_redirect_name:nnn {fontspec}{font-not-found}{none}
  }%
  \ExplSyntaxOff
\fi
%    \end{macrocode}
% Jetzt kann es mit dem eigentlichen Überprüfen der Schriften losgehen. Für das 
% Prüfen der Mathematikschriften ist es unerheblich, ob \pkg{fontspec} genutzt 
% wird, da hier immer die PostScript-Schriften zum Einsatz kommen.
%    \begin{macrocode}
\newcommand*\tud@font@check{%
  \edef\@tempa##1##2{\lowercase{\noexpand\IfFileExists{##1##2.fd}}}%
  \def\@tempb##1{%
    \ifnum\tud@cdfont@num>\z@\relax% true/heavy
      \if@tud@cdmath%
%<*class>
        \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
        \PackageWarningNoLine{tudscrfonts}%
%</package>
        {%
          `##1' fonts for math typesetting not found\MessageBreak%
          Please use one of the installation scripts for the\MessageBreak%
          tudscr-bundle mentioned in the manual%
        }%
      \fi%
    \fi%
  }%
%    \end{macrocode}
% Existieren die Schriften, werden die Schalter auf \val{true} gesetzt, sonst 
% wird eine Warnung ausgegeben, falls die Schriften eigentlich verwendet werden 
% sollen.
%    \begin{macrocode}
  \@tempa{OT1}{\tud@univers}{\@tud@universmathtrue}{\@tempb{Univers}}%
  \@tempa{OT1}{\tud@dinbold}{\@tud@dinboldmathtrue}{\@tempb{DIN Bold}}%
%    \end{macrocode}
% Für jede der OTF-Schriften wird eine Warnung ausgegeben, falls diese nicht 
% installiert ist. Um sicher zu gehen, dass das Layout komplett genutzt werden 
% kann, ist es hinreichend, wenn eine der benötigten Schriften nicht existiert,
% um die Rückfallebene zu aktivieren.
%    \begin{macrocode}
  \if@tud@x@fontspec@enabled%
    \def\@tempc##1##2{%
      \fontspec{##1}%
      \expandafter\ifx\the\font\nullfont%
        ##2%
        \ifnum\tud@cdfont@num>\z@\relax% true/heavy
%<*class>
          \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
          \PackageWarningNoLine{tudscrfonts}%
%</package>
          {%
            `##1' fonts not found for encoding `\encodingdefault'\MessageBreak%
            It seems, you haven't installed the required\MessageBreak%
            OTF-font on your system. A fallback layout is used%
          }%
        \fi%
      \fi%
    }%
    \begingroup%
      \tud@x@fontspec@noerror%
      \global\@tud@universtrue%
      \@tempc{Univers Light}{\global\@tud@universfalse}%
      \@tempc{Univers}{\global\@tud@universfalse}%
      \@tempc{Univers Bold}{\global\@tud@universfalse}%
      \@tempc{Univers Black}{\global\@tud@universfalse}%
      \@tempc{Univers Light Oblique}{\global\@tud@universfalse}%
      \@tempc{Univers Oblique}{\global\@tud@universfalse}%
      \@tempc{Univers Bold Oblique}{\global\@tud@universfalse}%
      \@tempc{Univers Black Oblique}{\global\@tud@universfalse}%
      \global\@tud@dinboldtrue%
      \@tempc{DIN Bold}{\global\@tud@dinboldfalse}%
    \endgroup%
  \else%
%    \end{macrocode}
% Ist \pkg{fontspec} nicht aktiv, wird auf die Schriften für den Fließtext im 
% gleichen Maße geprüft.
%    \begin{macrocode}
    \def\@tempc##1{%
      \ifnum\tud@cdfont@num>\z@\relax% true/heavy
        \@tempswafalse%
        \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{}%
        \ifstr{T1}{\encodingdefault}{\@tempswatrue}{}%
%<*class>
        \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
        \PackageWarningNoLine{tudscrfonts}%
%</package>
        {%
          `##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%
    }%
    \expandafter\@tempa\expandafter{\encodingdefault}%
      {\tud@univers}{\@tud@universtrue}{\@tempc{Univers}}%
    \expandafter\@tempa\expandafter{\encodingdefault}%
      {\tud@dinbold}{\@tud@dinboldtrue}{\@tempc{DIN Bold}}%
  \fi%
  \undef\tud@font@check%
}
%    \end{macrocode}
% \end{macro}^^A \tud@x@fontspec@noerror
% \end{macro}^^A \tud@font@check
%
% \iffalse
%</body>
%<*option>
% \fi
%
% \subsubsection{Schriften für den Fließtext}
%
% Hier werden die Optionen und Befehle zur Schriftauswahl definiert.
%
% \begin{option}{cdfont}
% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}^^A
% \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}^^A
% \changes{v2.05}{2016/04/04}{Schlüsselwerte für \val{ultrabold}}^^A
% \begin{macro}{\tud@cdfont@num}
% \begin{macro}{\if@tud@cdfont@din}
% \begin{macro}{\if@tud@cdfont@ultrabold}
% \changes{v2.05}{2016/04/04}{neu}^^A
% Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen
% Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option
% können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke
% der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von 
% \DIN für die Überschriften deaktivieren. Außerdem kann eingestellt werden, ob
% für den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen.
%    \begin{macrocode}
\newif\if@tud@cdfont@din
\newif\if@tud@cdfont@ultrabold
\@tud@cdfont@dintrue
\newcommand*\tud@cdfont@num{1}
\TUD@key{cdfont}[true]{%
  \TUD@set@numkey{cdfont}{@tempa}{%
    \TUD@numkey@bool,%
    {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
    {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},%
    {normalbold}{3},{boldnormal}{3},%
    {ultrabold}{4},{boldultra}{4},{heavybold}{4},{boldheavy}{4},%
    {extendedbold}{4},{boldextended}{4},%
    {nodin}{5},{nodinbold}{5},{noDIN}{5},{noDINBold}{5},%
    {din}{6},{dinbold}{6},{DIN}{6},{DINBold}{6},%
%<*class>
    {nohead}{7},{nocdhead}{7},{noheadfont}{7},{noheadcdfont}{7},%
    {nocdheadfont}{7},{nobar}{7},{nobarfont}{7},%
    {head}{8},{headfont}{8},{cdhead}{8},{headcdfont}{8},{cdheadfont}{8},%
    {bar}{8},{barfont}{8},%
    {lighthead}{8},{lightheadfont}{8},{lightfonthead}{8},%
    {lightcdhead}{8},{lightheadcdfont}{8},{lightcdheadfont}{8},%
    {lightbar}{8},{lightbarfont}{8},{lightfontbar}{8},%
    {headlight}{8},{headfontlight}{8},{headlightfont}{8},%
    {cdheadlight}{8},{headcdfontlight}{8},{cdheadfontlight}{8},%
    {barlight}{8},{barfontlight}{8},{barlightfont}{8},%
    {litehead}{8},{liteheadfont}{8},{litefonthead}{8},%
    {litecdhead}{8},{liteheadcdfont}{8},{litecdheadfont}{8},%
    {litebar}{8},{litebarfont}{8},{litefontbar}{8},%
    {headlite}{8},{headfontlite}{8},{headlitefont}{8},%
    {cdheadlite}{8},{headcdfontlite}{8},{cdheadfontlite}{8},%
    {barlite}{8},{barfontlite}{8},{barlitefont}{8},%
    {noheavyhead}{8},{noheavyheadfont}{8},{noheavyfonthead}{8},%
    {noheavycdhead}{8},{noheavyheadcdfont}{8},{noheavycdheadfont}{8},%
    {noheavybar}{8},{noheavybarfont}{8},{noheavyfontbar}{8},%
    {headnoheavy}{8},{headfontnoheavy}{8},{headnoheavyfont}{8},%
    {cdheadnoheavy}{8},{headcdfontnoheavy}{8},{cdheadfontnoheavy}{8},%
    {barnoheavy}{8},{barfontnoheavy}{8},{barnoheavyfont}{8},%
    {heavyhead}{9},{heavyheadfont}{9},{heavyfonthead}{9},%
    {heavycdhead}{9},{heavyheadcdfont}{9},{heavycdheadfont}{9},%
    {heavybar}{9},{heavybarfont}{9},{heavyfontbar}{9},%
    {headheavy}{9},{headfontheavy}{9},{headheavyfont}{9},%
    {cdheadheavy}{9},{headcdfontheavy}{9},{cdheadfontheavy}{9},%
    {barheavy}{9},{barfontheavy}{9},{barheavyfont}{9},%
%</class>
    {nomath}{10},{nocdmath}{10},%
    {serifmath}{10},{serif}{10},{nosansmath}{10},{nosans}{10},%
    {math}{11},{cdmath}{11},{sansmath}{11},{sans}{11},%
    {upgreek}{12},{upright}{12},{uprightgreek}{12},{uprightGreek}{12},%
    {slgreek}{13},{slanted}{13},{slantedgreek}{13},{slantedGreek}{13},%
    {fontspec}{14},{luatex}{14},{lualatex}{14}{xetex}{14},{xelatex}{14},%
    {nofontspec}{15},{nfss}{15},{pdftex}{15},{pdflatex}{15}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
%    \end{macrocode}
% Die ersten drei Werte dienen zum Umschalten auf die Schriften des \CDs für
% den Fließtext.
%    \begin{macrocode}
    \ifcase\@tempa\relax% false
      \renewcommand*\tud@cdfont@num{0}%
      \TUD@SpecialOptionAtDocument{tud@font@set}%
    \or% true
      \renewcommand*\tud@cdfont@num{1}%
      \TUD@SpecialOptionAtDocument{tud@font@set}%
    \or% heavy
      \renewcommand*\tud@cdfont@num{2}%
      \TUD@SpecialOptionAtDocument{tud@font@set}%
%    \end{macrocode}
% Die Definition des fetten Schriftschnittes.
%    \begin{macrocode}
    \or% normalbold
      \@tud@cdfont@ultraboldfalse%
      \ifcase\tud@cdfont@num\relax% false to true
        \renewcommand*\tud@cdfont@num{1}%
      \fi%
      \TUD@SpecialOptionAtDocument{tud@font@set}%
    \or% ultrabold
      \@tud@cdfont@ultraboldtrue%
      \ifcase\tud@cdfont@num\relax% false to true
        \renewcommand*\tud@cdfont@num{1}%
      \fi%
      \TUD@SpecialOptionAtDocument{tud@font@set}%
%    \end{macrocode}
% Hier wird die Verwendung von \DIN für die Überschirften festgelegt.
%    \begin{macrocode}
    \or% nodin
      \@tud@cdfont@dinfalse%
    \or% din
      \@tud@cdfont@dintrue%
%    \end{macrocode}
% Die Schrift für den Querbalken.
%    \begin{macrocode}
    \or% nohead
%<*class>
      \TUDoptions{cdhead=false}%
%</class>
%<*package>
      \PackageWarning{tudscrfonts}{Option `cdfont=nohead' is not available}%
%</package>
    \or% head
%<*class>
      \TUDoptions{cdhead=true}%
%</class>
%<*package>
      \PackageWarning{tudscrfonts}{Option `cdfont=head' is not available}%
%</package>
    \or% heavyhead
%<*class>
      \TUDoptions{cdhead=heavy}%
%</class>
%<*package>
      \PackageWarning{tudscrfonts}{Option `cdfont=heavyhead' is not available}%
%</package>
%    \end{macrocode}
% Die Mathematikschriften.
%    \begin{macrocode}
    \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%
    \ifdimen{#1}{%
      \ifdim#1>\z@\relax%
        \TUD@KOMAoptions{fontsize=#1}%
        \csname @tud@fontsize@settrue\endcsname%
        \ifcase\tud@cdfont@num\relax% false to true
          \renewcommand*\tud@cdfont@num{1}%
          \TUD@SpecialOptionAtDocument{tud@font@set}%
        \fi%
        \FamilyKeyStateProcessed%
      \fi%
    }{}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@cdfont@ultrabold
% \end{macro}^^A \if@tud@cdfont@din
% \end{macro}^^A \tud@cdfont@num
% \end{option}^^A cdfont
% \begin{option}{relspacing}
% \changes{v2.05}{2015/12/17}{neu}^^A
% \begin{macro}{\if@tud@relspacing}
% \changes{v2.05}{2015/12/17}{neu}^^A
% \begin{option}{fontsize}
% \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A
% Die Option \opt{relspacing} setzt einige Abstände und Längen in Abhängigkeit 
% der aktuellen Grundschriftgröße, wenn sie aktiviert wurde. Die Schriftgröße
% kann mit der \KOMAScript-Option \opt{fontsize} eingestellt werden. Durch das
% Makro \cs{tud@font@skip@set} wird die Definiton der Längen vorgenommen.
%    \begin{macrocode}
\newif\if@tud@relspacing
\TUD@key{relspacing}[true]{%
  \TUD@set@numkey{relspacing}{@tempa}{%
    \TUD@numkey@bool,%
    {absolute}{0},{classic}{0},{standard}{0},%
    {relative}{1},{fontsize}{1},{font}{1},{size}{1}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% false
      \@tud@relspacingfalse%
    \or% true
      \@tud@relspacingtrue%
    \fi%
    \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
  \fi%
}
\DefineFamilyMember{KOMA}
\DefineFamilyKey{KOMA}{fontsize}{%
  \TUD@SpecialOptionAtDocument{tud@font@skip@set}%
  \FamilyKeyStateProcessed%
}
%    \end{macrocode}
% \end{option}^^A fontsize
% \end{macro}^^A \if@tud@relspacing
% \end{option}^^A relspacing
%
% \iffalse
%</option>
%<*body>
% \fi
%
% Mit dem Paket \pkg{trimspaces} werden für die alternative Schriftauswahl mit 
% \cs{cdfont} bzw. \cs{textcdfont} eventuell vorhandene Leerzeichen aus dem 
% Argument entfernt. Auch beim Einlesen von Feldern wird dies genutzt.
%    \begin{macrocode}
\RequirePackage{trimspaces}[2009/09/17]
%    \end{macrocode}
% \begin{macro}{\tud@font@set}
% \changes{v2.04}{2015/03/01}{Unterstützung für das Paket \pkg{mweights}}^^A
% \begin{macro}{\if@tud@x@mweights@enabled}
% \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A
% \begin{macro}{\bfseries@rm}
% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A
% \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@x@mweights@enabled
\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue}
\newcommand*\tud@font@set{%
%    \end{macrocode}
% Wurde die Option \opt{cdfont} nicht in der Präambel genutzt, wird im Fall,
% dass die Schriften des \CDs nicht installiert sind, eine Warnung erzeugt.
%    \begin{macrocode}
  \if@atdocument%
    \ifnum\tud@cdfont@num>\z@\relax% true/heavy
      \if@tud@univers\else%
%<*class>
        \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
        \PackageWarning{tudscrfonts}%
%</package>
          {`Univers' fonts not found}%
      \fi%
      \if@tud@dinbold\else%
%<*class>
        \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
        \PackageWarning{tudscrfonts}%
%</package>
          {`DIN Bold' fonts not found}%
      \fi%
    \fi%
  \fi%
%    \end{macrocode}
% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn
% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet.
%    \begin{macrocode}
  \ifcase\tud@cdfont@num\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@x@mweights@enabled%
      \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, wenn 
% kein Layout im \CD genutzt wird.
%    \begin{macrocode}
%<*class>
    \ifcase\tud@cd@num\relax% false
      \cs@std@lock{tud@head@font@num}{0}%
    \else% !false
      \cs@std@lock{tud@head@font@num}{1}%
    \fi%
%</class>
%    \end{macrocode}
% Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der 
% 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@x@mweights@enabled%
      \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@num}{\tud@cdfont@num}%
%</class>
%    \end{macrocode}
% Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket
% \pkg{fontspec} oder\dots
%    \begin{macrocode}
    \if@tud@univers%
      \if@tud@x@fontspec@enabled%
        \setsansfont{Univers}[%
          FontFace = {l}{\updefault}{Univers Light},%
          FontFace = {m}{\updefault}{Univers},%
          FontFace = {b}{\updefault}{Univers Bold},%
          FontFace = {bx}{\updefault}{Univers Bold},%
          FontFace = {eb}{\updefault}{Univers Black},%
          FontFace = {l}{\sldefault}{Univers Light Oblique},%
          FontFace = {m}{\sldefault}{Univers Oblique},%
          FontFace = {b}{\sldefault}{Univers Bold Oblique},%
          FontFace = {bx}{\sldefault}{Univers Bold Oblique},%
          FontFace = {eb}{\sldefault}{Univers Black Oblique},%
          NFSSFamily = \tud@univers%
        ]%
        \setmonofont{LMMono10-Regular}[%
          FontFace = {l}{\updefault}{LMMonoLt10-Regular},%
          FontFace = {m}{\updefault}{LMMono10-Regular},%
          FontFace = {b}{\updefault}{LMMonoLt10-Bold},%
          FontFace = {bx}{\updefault}{LMMonoLt10-Bold},%
          FontFace = {eb}{\updefault}{LMMonoLt10-Bold},%
          FontFace = {l}{\sldefault}{LMMonoLt10-Oblique},%
          FontFace = {m}{\sldefault}{LMMonoSlant10-Regular},%
          FontFace = {b}{\sldefault}{LMMonoLt10-BoldOblique},%
          FontFace = {bx}{\sldefault}{LMMonoLt10-BoldOblique},%
          FontFace = {eb}{\sldefault}{LMMonoLt10-BoldOblique},%
          NFSSFamily = \tud@univers t%
        ]%
%    \end{macrocode}
% \dots nach dem NFSS.
%    \begin{macrocode}
      \else%
        \renewcommand*\sfdefault{\tud@univers}%
        \renewcommand*\ttdefault{\tud@univers t}%
      \fi%
      \ifnum\tud@cdfont@num=\@ne\relax% true
        \if@tud@cdfont@ultrabold% ultrabold
          \renewcommand*\bfdefault{b}%
        \else% normalbold
          \renewcommand*\bfdefault{m}%
        \fi%
        \renewcommand*\mddefault{l}%
        \if@tud@x@mweights@enabled%
          \def\bfseries@rm{m}%
          \def\bfseries@sf{m}%
          \def\bfseries@tt{m}%
          \def\mdseries@rm{l}%
          \def\mdseries@sf{l}%
          \def\mdseries@tt{l}%
        \fi%
      \else% heavy
        \if@tud@cdfont@ultrabold% ultrabold
          \renewcommand*\bfdefault{eb}%
        \else% normalbold
          \renewcommand*\bfdefault{b}%
        \fi%
        \renewcommand*\mddefault{m}%
        \if@tud@x@mweights@enabled%
          \def\bfseries@rm{b}%
          \def\bfseries@sf{b}%
          \def\bfseries@tt{b}%
          \def\mdseries@rm{m}%
          \def\mdseries@sf{m}%
          \def\mdseries@tt{m}%
        \fi%
      \fi%
      \renewcommand*\rmdefault{\sfdefault}%
      \renewcommand*\itdefault{\sldefault}%
    \fi%
    \renewcommand*\familydefault{\sfdefault}%
    \renewcommand*\seriesdefault{\mddefault}%
    \renewcommand*\shapedefault{\updefault}%
  \fi%
  \if@tud@x@mweights@enabled%
    \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}
  \ifundef{\tud@font@math@init}{\tud@font@math@set}{}%
  \tud@font@skip@set%
  \normalfont\selectfont%
%<*class>
  \tud@layout@process%
  \global\@tud@head@font@settrue%
%</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@x@mweights@enabled
% \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}
  \if@tud@relspacing%
    \tud@skip@store{smallskipamount}%
    \tud@skip@store{medskipamount}%
    \tud@skip@store{bigskipamount}%
    \tud@skip@store{abovecaptionskip}%
    \tud@skip@store{belowcaptionskip}%
    \tud@skip@store{columnsep}%
    \tud@font@skip@@set%
  \else%
    \tud@skip@restore{smallskipamount}%
    \tud@skip@restore{medskipamount}%
    \tud@skip@restore{bigskipamount}%
    \tud@skip@restore{abovecaptionskip}%
    \tud@skip@restore{belowcaptionskip}%
    \tud@skip@restore{columnsep}%
  \fi%
}
%    \end{macrocode}
% Hiermit erfolgt das eigentliche Setzen der Abstände.
%    \begin{macrocode}
\newcommand*\tud@font@skip@@set{%
  \smallskipamount=\partopsep%
  \medskipamount=\partopsep%
  \multiply\medskipamount by 2%
  \bigskipamount=\partopsep%
  \multiply\bigskipamount by 4%
  \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}%
  \tud@skip@set{belowcaptionskip}{\z@}%
  \tud@skip@set{columnsep}{1.1\baselineskip}%
}
%    \end{macrocode}
% \end{macro}^^A \columnsep
% \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@init}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@font@fallback}
% \changes{v2.05}{2015/12/14}{neu}^^A
% \begin{macro}{\tud@font@wrn}
% \changes{v2.05}{2015/12/14}{neu}^^A
% \begin{macro}{\univln}
% \begin{macro}{\univrn}
% \begin{macro}{\univbn}
% \begin{macro}{\univxn}
% \begin{macro}{\univls}
% \begin{macro}{\univrs}
% \begin{macro}{\univbs}
% \begin{macro}{\univxs}
% \begin{macro}{\dinbn}
% \begin{macro}{\tud@dinbn}
% \begin{macro}{\textuln}
% \begin{macro}{\texturn}
% \begin{macro}{\textubn}
% \begin{macro}{\textuxn}
% \begin{macro}{\textuls}
% \begin{macro}{\texturs}
% \begin{macro}{\textubs}
% \begin{macro}{\textuxs}
% \begin{macro}{\textdbn}
% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl 
% der Schriften des \CDs verwendet.
%    \begin{macrocode}
\newcommand*\tud@dinbn{}
\let\tud@dinbn\relax
\newcommand*\tud@font@init{%
%    \end{macrocode}
% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte
% \textuln{Univers~45~Light}, \texturn{Univers~55~Regular}, 
% \textubn{Univers~65~Bold}, \textuxn{Univers~75~Black}, 
% \textuls{Univers~45~Light~Oblique}, \texturs{Univers~55~Regular~Oblique},
% \textubs{Univers~65~Bold~Oblique} sowie \textuxs{Univers~75~Black~Oblique}
% und \DIN definiert. Diese können so im Dokument unabhängig von der Option 
% \opt{cdfont} genutzt werden. Bei der Schriftauswahl der \DIN wird neben 
% dieser noch die entsprechende Mathematikschrift aktiviert.
%    \begin{macrocode}
  \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}
% Sind die notwendigen Schriften nicht installiert, werden die Schalter für die
% Rückfallebene so definiert, dass diese eine Warnung ausgeben.
%    \begin{macrocode}
  \else%
    \newrobustcmd*\univln{\tud@font@fallback{Univers Light}{md}{up}}%
    \newrobustcmd*\univrn{\tud@font@fallback{Univers}{md}{up}}%
    \newrobustcmd*\univbn{\tud@font@fallback{Univers Bold}{bf}{up}}%
    \newrobustcmd*\univxn{\tud@font@fallback{Univers Black}{bf}{up}}%
    \newrobustcmd*\univls{\tud@font@fallback{Univers Light Oblique}{md}{sl}}%
    \newrobustcmd*\univrs{\tud@font@fallback{Univers Oblique}{md}{sl}}%
    \newrobustcmd*\univbs{\tud@font@fallback{Univers Bold Oblique}{bf}{sl}}%
    \newrobustcmd*\univxs{\tud@font@fallback{Univers Black Oblique}{bf}{sl}}%
  \fi%
%    \end{macrocode}
% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. Da 
% dieser Schriftschnitt zwingend für die Überschriften benötigt wird, sollte 
% dieser zumindest auch auf deren Stil schalten.
%    \begin{macrocode}
  \if@tud@dinbold%
    \if@tud@x@fontspec@enabled%
      \newfontface\tud@dinbn{DIN Bold}[%
        FontFace = {l}{\updefault}{DIN Bold},%
        FontFace = {m}{\updefault}{DIN Bold},%
        FontFace = {b}{\updefault}{DIN Bold},%
        FontFace = {bx}{\updefault}{DIN Bold},%
        FontFace = {eb}{\updefault}{DIN Bold},%
        FontFace = {l}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
        FontFace = {m}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
        FontFace = {b}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
        FontFace = {bx}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
        FontFace = {eb}{\sldefault}{Font=DIN Bold,FakeSlant=0.15},%
        NFSSFamily = \tud@dinbold%
      ]%
    \else%
      \newrobustcmd*\tud@dinbn{\usefont{\encodingdefault}{\tud@dinbold}{b}{n}}%
    \fi%
    \if@tud@dinboldmath%
      \appto\tud@dinbn{\mathversion{dinbold}}%
    \fi%
    \newrobustcmd*\dinbn{\tud@dinbn}%
  \else%
    \newrobustcmd*\tud@dinbn{\sectfont}%
    \newrobustcmd*\dinbn{\tud@font@wrn{DIN Bold}\tud@dinbn}%
  \fi%
%    \end{macrocode}
% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
% bereitgestellt.
%    \begin{macrocode}
  \newcommand*\textuln{}%
  \newcommand*\texturn{}%
  \newcommand*\textubn{}%
  \newcommand*\textuxn{}%
  \newcommand*\textuls{}%
  \newcommand*\texturs{}%
  \newcommand*\textubs{}%
  \newcommand*\textuxs{}%
  \newcommand*\textdbn{}%
  \DeclareTextFontCommand\textuln{\univln}%
  \DeclareTextFontCommand\texturn{\univrn}%
  \DeclareTextFontCommand\textubn{\univbn}%
  \DeclareTextFontCommand\textuxn{\univxn}%
  \DeclareTextFontCommand\textuls{\univls}%
  \DeclareTextFontCommand\texturs{\univrs}%
  \DeclareTextFontCommand\textubs{\univbs}%
  \DeclareTextFontCommand\textuxs{\univxs}%
  \DeclareTextFontCommand\textdbn{\dinbn}%
%    \end{macrocode}
% Nach der optionsabhängigen Definition der Schriftauswahlbefehle wird der
% Initialisierungsbefehle undefiniert gesetzt.
%    \begin{macrocode}
  \undef\tud@font@init%
}
%    \end{macrocode}
% Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige 
% Warnung definiert.
%    \begin{macrocode}
\newcommand*\tud@font@fallback[3]{%
  \tud@font@wrn{#1}%
  \sffamily\csuse{#2series}\csuse{#3shape}%
}
\newcommand*\tud@font@wrn[1]{%
%<*class>
  \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
  \PackageWarning{tudscrfonts}%
%</package>
  {%
    The requested font `#1' is not available, so\MessageBreak%
    a fallback layout is used%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \textdbn
% \end{macro}^^A \textuxs
% \end{macro}^^A \textubs
% \end{macro}^^A \texturs
% \end{macro}^^A \textuls
% \end{macro}^^A \textuxn
% \end{macro}^^A \textubn
% \end{macro}^^A \texturn
% \end{macro}^^A \textuln
% \end{macro}^^A \tud@dinbn
% \end{macro}^^A \dinbn
% \end{macro}^^A \univxs
% \end{macro}^^A \univbs
% \end{macro}^^A \univrs
% \end{macro}^^A \univls
% \end{macro}^^A \univxn
% \end{macro}^^A \univbn
% \end{macro}^^A \univrn
% \end{macro}^^A \univln
% \end{macro}^^A \tud@font@wrn
% \end{macro}^^A \tud@font@fallback
% \end{macro}^^A \tud@font@init
% \begin{macro}{\cdfont}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \begin{macro}{\tudfont}
% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A
% \begin{macro}{\textcdfont}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \begin{macro}{\tud@cdfont@get}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \begin{macro}{\tud@cdfont@trim}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \begin{macro}{\tud@cdfont@@trim}
% \changes{v2.04}{2015/03/04}{neu}^^A
% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl 
% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen
% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont} 
% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird 
% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als 
% Textbefehl ermöglicht.
%    \begin{macrocode}
\newcommand*\cdfont[1]{%
  \tud@cdfont@get{#1}%
  \ifx\@tempc\relax\else%
    \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
  \fi%
}
\providecommand*\tudfont[1]{\cdfont{#1}}
\newcommand*\textcdfont[2]{%
  \tud@cdfont@get{#1}%
  \ifx\@tempc\relax\else%
    \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
  \fi%
}
\newcommand*\tud@cdfont@get[1]{%
  \tud@cdfont@trim\@tempa{#1}%
  \ifstr{\@tempa}{45}{\def\@tempc{ln}}{%
  \ifstr{\@tempa}{55}{\def\@tempc{rn}}{%
  \ifstr{\@tempa}{65}{\def\@tempc{bn}}{%
  \ifstr{\@tempa}{75}{\def\@tempc{xn}}{%
  \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{%
  \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{%
  \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{%
  \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{%
  \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{%
  \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{%
  \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{%
  \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{%
  \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{%
  \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{%
    \let\@tempc\relax%
%<*class>
    \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
    \PackageWarning{tudscrfonts}%
%</package>
      {The font `#1' is unknown}%
  }}}}}}}}}}}}}}%
}
\newcommand*\tud@cdfont@trim[2]{%
  \protected@edef\@tempa{\trim@spaces{#2}}%
  \tud@lowerstring{\@tempa}{\@tempa}%
  \tud@cdfont@@trim{ }{}%
  \tud@cdfont@@trim{-}{}%
  \tud@cdfont@@trim{_}{}%
  \tud@cdfont@@trim{~}{}%
  \tud@cdfont@@trim{ce}{}%
  \tud@cdfont@@trim{ff}{}%
  \tud@cdfont@@trim{univers}{}%
  \tud@cdfont@@trim{60}{65}%
  \tud@cdfont@@trim{light}{45}%
  \tud@cdfont@@trim{regular}{55}%
  \tud@cdfont@@trim{bold}{65}%
  \tud@cdfont@@trim{black}{75}%
  \tud@cdfont@@trim{4545}{45}%
  \tud@cdfont@@trim{5555}{55}%
  \tud@cdfont@@trim{6565}{65}%
  \tud@cdfont@@trim{7575}{75}%
  \tud@cdfont@@trim{italic}{oblique}%
  \tud@cdfont@@trim{slanted}{oblique}%
  \let#1\@tempa%
}
\newcommand*\tud@cdfont@@trim[2]{%
  \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}%
  \@expandtwoargs\in@{#1}{\@tempa}%
  \@whilesw\ifin@\fi{%
    \expandafter\@tempb\@tempa\relax%
    \@expandtwoargs\in@{#1}{\@tempa}%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont@@trim
% \end{macro}^^A \tud@cdfont@trim
% \end{macro}^^A \tud@cdfont@get
% \end{macro}^^A \textcdfont
% \end{macro}^^A \tudfont
% \end{macro}^^A \cdfont
%
% \iffalse
%</body>
%<*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}%
      \TUD@SpecialOptionAtDocument{tud@font@math@set}%
    \or% true
      \bool@set@lock{@tud@cdmath}{true}%
      \TUD@SpecialOptionAtDocument{tud@font@math@set}%
    \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}%
    \TUD@SpecialOptionAtDocument{tud@font@math@set}%
  \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
%</option>
%<*body>
% \fi
%
% \begin{macro}{\tud@font@greek@loop}
% \changes{v2.04}{2015/03/10}{neu}^^A
% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird 
% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der
% Buchstaben durchlaufen wird.
%    \begin{macrocode}
\newcommand*\tud@font@greek@loop[1]{%
  \@for\@tempa:={%
    Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
  }\do{#1{\@tempa}}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@font@greek@loop
% \begin{macro}{\tud@font@greek@declare}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Gamma}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Delta}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Theta}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Lambda}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Xi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Pi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Sigma}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Upsilon}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Phi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@Psi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upOmega}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upGamma}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upDelta}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upTheta}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upLambda}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upXi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upPi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upSigma}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upUpsilon}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upPhi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upPsi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@upOmega}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varGamma}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varDelta}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varTheta}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varLambda}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varXi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varPi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varSigma}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varUpsilon}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varPhi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varPsi}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@varOmega}
% \changes{v2.04}{2015/03/10}{neu}^^A
% In Anlehnung an verschiedene Pakete für Mathematikschriften werden Symbole 
% für aufrechte und kursive Majuskeln der griechischen Lettern definiert. Damit 
% auch bei diesen Buchstaben ein Umschalten für die unterschiedlichen Schriften 
% möglich ist, wird eine interne Version definiert und im Bedarfsfall der
% dazugehörige \LaTeX-Befehl mit dieser überschrieben.
%    \begin{macrocode}
\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@math@init}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\mv@univers}
% \begin{macro}{\mv@universbold}
% \begin{macro}{\mv@dinbold}
% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart 
%   \DIN verwendet}^^A
% Für die Mathematikschriften im Fließtext werden für die lateinischen Lettern
% die \Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die
% griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus
% dem \pkg{iwona}-Paket die mathematische Symbole verwendet. Es werden zwei
% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt.
%    \begin{macrocode}
\newcommand*\mv@univers{}
\newcommand*\mv@universbold{}
\newcommand*\mv@dinbold{}
\newcommand*\tud@font@math@init{%
  \if@tud@x@fontspec@enabled\if@tud@cdmath%
    \ifboolexpr{bool {@tud@universmath} or bool {@tud@dinboldmath}}{%
      \@ifpackagewith{fontspec}{no-math}{}{%
%<*class>
        \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
        \PackageWarningNoLine{tudscrfonts}%
%</package>
        {%
          It's recommended to load package `fontspec'\MessageBreak%
          with option `no-math', if you want to use the\MessageBreak%
          corporate design fonts in math mode%
        }%
      }%
    }{}%
  \fi\fi%
  \if@tud@universmath%
    \DeclareMathVersion{univers}%
    \DeclareMathVersion{universbold}%
    \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}%
    \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}%
    \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}%
    \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}%
    \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}%
    \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}%
    \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}%
    \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}%
    \SetMathAlphabet{\mathrm}{univers}{OT1}{\tud@univers}{l}{n}%
    \SetMathAlphabet{\mathrm}{universbold}{OT1}{\tud@univers}{b}{n}%
    \SetMathAlphabet{\mathnormal}{univers}{OML}{\tud@univers}{l}{sl}%
    \SetMathAlphabet{\mathnormal}{universbold}{OML}{\tud@univers}{b}{sl}%
    \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}%
    \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}%
    \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}%
    \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}%
    \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}%
    \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}%
    \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}%
    \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}%
    \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}%
    \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}%
%    \end{macrocode}
% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die
% \pkg{ams}-Pakete mit. Diese werden gegebenenfalls geladen.
%    \begin{macrocode}
    \@ifpackageloaded{amsfonts}{%
      \DeclareFontFamily{U}{\tud@univers a}{}%
      \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}%
      \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}%
      \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}%
      \DeclareFontFamily{U}{\tud@univers b}{}%
      \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}%
      \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}%
      \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}%
      \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}%
      \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}%
    }{}%
  \fi%
%    \end{macrocode}
% Auch für die Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese
% wurden aus dem \pkg{iwona}-Paket entnommen. Auch die verwendeten Symbole
% stammen aus diesem Paket.
%    \begin{macrocode}
  \if@tud@dinboldmath%
    \DeclareMathVersion{dinbold}%
    \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
    \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
    \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}%
    \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}%
    \SetMathAlphabet{\mathrm}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
    \SetMathAlphabet{\mathnormal}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
    \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
    \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
    \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}%
    \SetMathAlphabet{\mathtt}{dinbold}{OT1}{\tud@univers t}{b}{n}%
    \SetMathAlphabet{\mathcal}{dinbold}{OMS}{lmsy}{b}{n}%
  \fi%
%    \end{macrocode}
% 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 mit \cs{tud@font@greek@check@slanted}
% 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}
    \tud@font@greek@check@slanted%
    \tud@font@greek@loop\tud@font@greek@init%
%    \end{macrocode}
% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart 
% der Option \opt{cdfont} die benötigten Mathematikversionen geladen.
%    \begin{macrocode}
    \tud@font@math@set%
  }%
%    \end{macrocode}
% Daran anschließend werden die \DIN-Schriften in einer Box verwendet, um das
% Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren.
%    \begin{macrocode}
  \sbox\z@{\tud@dinbn$ $}%
}
%    \end{macrocode}
% \end{macro}^^A \mv@dinbold
% \end{macro}^^A \mv@universbold
% \end{macro}^^A \mv@univers
% \end{macro}^^A \tud@font@math@init
% \begin{macro}{\tud@font@greek@check@slanted}
% \changes{v2.05d}{2016/09/22}{neu}^^A
% Dieser Befehl prüft die aktuelle Definition von \cs{Gamma} und vergleicht 
% diese mit den kursiven Varianten des Buchstabens. Sind diese identisch, wird 
% davon ausgegangen, dass ein Paket mit der Option \opt{slantedGreek} oder 
% ähnlich geladen wurde. In diesem Fall wird der voreingestellte Wert für die 
% entsprechende \TUDScript-Option gesetzt.
%    \begin{macrocode}
\newcommand*\tud@font@greek@check@slanted{%
  \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%
  \let\tud@font@greek@check@slanted\relax%
}
%    \end{macrocode}
% Da die Definition der griechischen Buchstaben durch das Paket \pkg{flexisym} 
% stark verändert wird, wird die Prüfung in jedem Fall vor besagtem Paket 
% ausgeführt.
%    \begin{macrocode}
\BeforePackage{flexisym}{\tud@font@greek@check@slanted}
%    \end{macrocode}
% \end{macro}^^A \tud@font@greek@check@slanted
% \begin{macro}{\tud@font@greek@init}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\upDelta}
% \begin{macro}{\upGamma}
% \begin{macro}{\upLambda}
% \begin{macro}{\upOmega}
% \begin{macro}{\upPhi}
% \begin{macro}{\upPi}
% \begin{macro}{\upPsi}
% \begin{macro}{\upSigma}
% \begin{macro}{\upTheta}
% \begin{macro}{\upUpsilon}
% \begin{macro}{\upXi}
% \begin{macro}{\varDelta}
% \begin{macro}{\varGamma}
% \begin{macro}{\varLambda}
% \begin{macro}{\varOmega}
% \begin{macro}{\varPhi}
% \begin{macro}{\varPi}
% \begin{macro}{\varPsi}
% \begin{macro}{\varSigma}
% \begin{macro}{\varTheta}
% \begin{macro}{\varUpsilon}
% \begin{macro}{\varXi}
% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen 
% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und 
% kursiver Buchstaben.
%    \begin{macrocode}
\newcommand*\tud@font@greek@init[1]{%
  \ifcsundef{up#1}{%
    \if@tempswa%
      \csletcs{up#1}{tud@up#1}%
    \else%
      \csletcs{up#1}{#1}%
    \fi%
  }{}%
  \ifcsundef{var#1}{%
    \if@tempswa%
      \csletcs{var#1}{#1}%
    \else%
      \csletcs{var#1}{tud@var#1}%
    \fi%
  }{}%
}
%    \end{macrocode}
% \end{macro}^^A \varXi
% \end{macro}^^A \varUpsilon
% \end{macro}^^A \varTheta
% \end{macro}^^A \varSigma
% \end{macro}^^A \varPsi
% \end{macro}^^A \varPi
% \end{macro}^^A \varPhi
% \end{macro}^^A \varOmega
% \end{macro}^^A \varLambda
% \end{macro}^^A \varGamma
% \end{macro}^^A \varDelta
% \end{macro}^^A \upXi
% \end{macro}^^A \upUpsilon
% \end{macro}^^A \upTheta
% \end{macro}^^A \upSigma
% \end{macro}^^A \upPsi
% \end{macro}^^A \upPi
% \end{macro}^^A \upPhi
% \end{macro}^^A \upOmega
% \end{macro}^^A \upLambda
% \end{macro}^^A \upGamma
% \end{macro}^^A \upDelta
% \end{macro}^^A \tud@font@greek@init
% \begin{macro}{\tud@font@math@set}
% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und
% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen
% das Mapping der griechischen Glyphen geändert, zum anderen werden die
% originalen Mathematikversionen überschrieben respektive wiederhergestellt.
%    \begin{macrocode}
\newcommand*\tud@font@math@set{%
%    \end{macrocode}
% Wurde per Option die Verwendung der Mathematikschriften im \CD aktiviert, 
% wird für den Fall, dass die Schriften des \CDs nicht installiert sind, eine
% Warnung erzeugt.
%    \begin{macrocode}
  \if@atdocument%
    \ifnum\tud@cdfont@num>\z@\relax% true/heavy
      \if@tud@cdmath%
        \if@tud@universmath\else%
%<*class>
          \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
          \PackageWarning{tudscrfonts}%
%</package>
            {`Univers' math fonts not found}%
        \fi%
        \if@tud@dinboldmath\else%
%<*class>
          \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
          \PackageWarning{tudscrfonts}%
%</package>
            {`DIN Bold' math fonts not found}%
        \fi%
      \fi%
    \fi%
  \fi%
  \if@tud@universmath%
    \if@tud@cdmath%
      \tud@cmd@store{mv@normal}%
      \tud@cmd@store{mv@bold}%
      \let\mv@normal\mv@univers%
      \let\mv@bold\mv@universbold%
      \tud@font@greek@loop\tud@font@greek@set%
    \else%
      \tud@cmd@restore{mv@normal}%
      \tud@cmd@restore{mv@bold}%
      \tud@font@greek@loop\tud@font@greek@reset%
    \fi%
  \fi%
  \if@tud@slantedgreek%
    \tud@font@greek@loop\tud@font@greek@slanted%
  \else%
    \tud@font@greek@loop\tud@font@greek@upright%
  \fi%
  \mathversion{normal}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@font@math@set
% \begin{macro}{\tud@font@greek@set}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@font@greek@reset}
% \changes{v2.04}{2015/03/10}{neu}^^A
% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen 
% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt 
% werden.
%    \begin{macrocode}
\newcommand*\tud@font@greek@set[1]{%
  \tud@cmd@store{#1}%
  \tud@cmd@store{up#1}%
  \tud@cmd@store{var#1}%
  \csletcs{#1}{tud@#1}%
  \csletcs{up#1}{tud@up#1}%
  \csletcs{var#1}{tud@var#1}%
}
\newcommand*\tud@font@greek@reset[1]{%
  \tud@cmd@restore{#1}%
  \tud@cmd@restore{up#1}%
  \tud@cmd@restore{var#1}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@font@greek@reset
% \end{macro}^^A \tud@font@greek@set
% \begin{macro}{\tud@font@greek@upright}
% \begin{macro}{\tud@font@greek@slanted}
% \changes{v2.04}{2015/03/10}{neu}^^A
% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben 
% entweder auf aufrecht bzw. kursiv gesetzt werden.
%    \begin{macrocode}
\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}}
\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}}
%    \end{macrocode}
% \end{macro}^^A \tud@font@greek@slanted
% \end{macro}^^A \tud@font@greek@upright
% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige
% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt 
% das Setzen der Mathematikschriften durch \cs{AtBeginDocument} innerhalb von 
% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}.
%    \begin{macrocode}
\AtEndPreamble{%
%    \end{macrocode}
% Falls \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom Paket
% erwarteten Makros für die Schriftschnitte der einzelnen Schriftfamilien 
% definiert. Beim Aufruf von \cs{tud@font@set} werden diese anschließend 
% gesichert.
%    \begin{macrocode}
  \if@tud@x@mweights@enabled%
    \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}%
    \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
    \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
    \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}%
    \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}%
    \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
  \fi%
  \tud@font@check%
%    \end{macrocode}
% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen
% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten. 
%    \begin{macrocode}
%<package>  \ifdef{\sectfont}{}{\let\sectfont\relax}%
%    \end{macrocode}
% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird
% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal
% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie
% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu
% aktivieren. 
%    \begin{macrocode}
  \tud@font@set%
%    \end{macrocode}
% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und 
% die dazugehörigen Befehle definiert. Außerdem wird eine Warnung ausgegeben,
% sobald mindestens eine der notwendigen OpenType-Schriften fehlt.
%    \begin{macrocode}
  \tud@font@init%
%    \end{macrocode} 
% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um
% insbesondere auf Einstellungen von \pkg{fontspec} reagieren zu können. Da es
% so gut wie keine freien OpenType"=Schriften für den mathmatischen Formelsatz
% gibt, werden \emph{immer} die PostScript"=Schriften verwendet, falls diese
% installiert sind. Wurde jedoch das Paket \pkg{bm} angefordert, so müssen die
% Mathematikschriften spätestens zum Ende der Präambel initialisiert werden.
%    \begin{macrocode}
  \if@tud@x@bm@requested%
    \tud@font@math@init%
    \UnPreventPackageFromLoading{bm}%
    \RequirePackage{bm}%
  \fi%
  \AtBeginDocument{\tud@font@math@init\let\tud@font@math@init\relax}%
}
%    \end{macrocode}
%
% \subsection{Anpassungen für das Paket \pkg{bm}}
%
% \begin{macro}{\if@tud@x@bm@requested}
% Das Paket \pkg{bm} stellt den Befehl \cs{bm} für fette und kursive Symbole im 
% Mathematiksatz bereit. Damit dies funktioniert, muss das Laden des Paketes 
% auf das Ende der Präambel verzögert werden, um zuvor alle Einstellungen für 
% die mathematischen Symbole vornehmen zu können.
%    \begin{macrocode}
\newif\if@tud@x@bm@requested
\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm}
%    \end{macrocode}
% \end{macro}^^A \if@tud@x@bm@requested
%
% \subsection{Anpassungen für die Klasse \cls{beamer}}
%
% Die \cls{beamer}-Klasse lädt standardmäßig serifenlose Mathematikschriften. 
% Dies soll verhindert werden, damit die Auswahl über die Option \opt{cdmath} 
% erfolgen kann.
%    \begin{macrocode}
%<*package>
\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}}
%</package>
%    \end{macrocode}
%
% \subsection{Anpassungen für das Paket \pkg{siunitx}}
%
% \begin{macro}{\lseries}
% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für
% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier 
% Rechnung getragen.
%    \begin{macrocode}
\AfterPackage*{siunitx}{%
  \providecommand*\lseries{\fontseries{l}\selectfont}%
}
%    \end{macrocode}
% \end{macro}^^A \lseries
%
% \subsection{Schrifteinstellungen für Überschriften}
%
% \begin{macro}{\ifdin}
% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A
% Der Befehl \cs{ifdin} prüft auf die Verwendung von \DIN. Davon abhängig wird
% entweder das erste oder das zweite Argument ausgeführt. Dies kann für die
% Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe im
% Dokument sowie Inhaltsverzeichnis und/oder Kolumnentitel zu unterscheiden.
%    \begin{macrocode}
\newrobustcmd*\ifdin{%
  \ifx\f@family\tud@dinbold%
    \expandafter\@firstoftwo%
  \else%
    \expandafter\@secondoftwo%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \ifdin
% \begin{macro}{\tud@sec@fontface}
% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A
% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im 
% Layout des \CDs definiert. Normalerweise wird hierfür \DIN verwendet, was
% allerdings per Option auch deaktiviert werden kann.
%    \begin{macrocode}
\newcommand*\tud@sec@fontface[1][]{%
  \if@tud@cdfont@din%
    \tud@dinbn\tud@raggedright%
  \else%
    \sectfont#1%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@sec@fontface
%
% \subsection{Ausrichtung von Überschriften und das Paket \pkg{ragged2e}}
%
% \begin{macro}{\tud@raggedright}
% \begin{macro}{\tud@RaggedRight}
% Die Überschriften in \DIN sollen laut \CD linksbündig und nie mit aktiver
% Silbentrennung gesetzt werden. Normalerweise ist das dies beim linksbündigen
% Satz bei \LaTeX{} der Fall. Allerdings ist es mit dem Paket \pkg{ragged2e}
% möglich, das Verhalten für den Flattersatz zu ändern und die Silbentrennung
% 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@RaggedRight
% \end{macro}^^A \tud@raggedright
%
% \subsection{Bedingte Majuskeln für Überschriften}
%
% Für Überschriften in Majuskeln\footnote{Großbuchstaben} wird der Befehl
% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase}
% verbessert, aus dem Paket \pkg{textcase} genutzt. 
%    \begin{macrocode}
\RequirePackage{textcase}[2004/10/07]
%    \end{macrocode}
% \begin{macro}{\tud@makeuppercase}
% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} nur dann aus, wenn die 
% richtige Schriftfamilie~-- sprich \DIN~-- verwendet wird.
%    \begin{macrocode}
\newcommand*\tud@makeuppercase[1]{%
  \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}%
%    \end{macrocode}
% 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}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@makeuppercase
%
% \iffalse
%</body>
% \fi
%
% \Finale
%
\endinput
