% \CheckSum{3183}
% \iffalse meta-comment
%
%  TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
%  Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
%
% ----------------------------------------------------------------------------
%
%  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 verändert werden. Die aktuelle
%  Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
%  Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
%  oder später 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
%<*dtx>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
% \fi
%
\ProvidesFile{tudscr-fonts.dtx}[2020/09/29 v2.06j TUD-Script\space%
%
% \iffalse
%</dtx>
%<package&identify>\ProvidesPackage{tudscrfonts}[%
%<*package&identify>
%!TUD@Version
%</package&identify>
%<package&identify>  package
%<*dtx|package&identify>
% \fi
  (corporate design fonts)%
]
% \iffalse
%</dtx|package&identify>
%<*dtx>
\documentclass[english,ngerman,xindy]{tudscrdoc}
\iftutex
  \usepackage{fontspec}
\else
  \usepackage[T1]{fontenc}
  \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
\fi
\usepackage{babel}
\usepackage{tudscrfonts}
\KOMAoptions{parskip=half-}
\usepackage{bookmark}
\usepackage[babel]{microtype}

\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-fonts.dtx}
\title{\file{\filename}}
\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}}
\date{\fileversion\nobreakspace(\filedate)}

\begin{document}
  \maketitle
  \tableofcontents
  \DocInput{\filename}
\end{document}
%</dtx>
% \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{Die Hausschrift der \TnUD}
%
% Für das \TUDCD wird die Schrift \OpenSans benötigt. Die Type1-Variante wird 
% mit diesen Klassen mitgeliefert, die OTF-Variante muss entweder durch das 
% Paket \pkg{opensans} oder über das System bereitgestellt werden. Hier werden
% die Optionen und Befehle zur Verwendung der Schriften im Dokument definiert.
%
% 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{%
%   Verwendung durch die \TUDScript-Klassen und das Paket \pkg{tudscrfonts}%
% }
%
% Die Schriften des \TUDCDs werden standardmäßig durch die \TUDScript-Klassen 
% verwendet. Für Dokumentklassen, welche nicht zum \TUDScript-Bundle gehören,
% können diese über das Paket \pkg{tudscrfonts} geladen werden.
%    \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}[2020/09/21]
\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>
%<*body>
% \fi
%
% \begin{macro}{\tud@cdfont@wrn}
% \changes{v2.06}{2018/06/17}{neu}^^A
% \begin{macro}{\tud@cdmath@wrn}
% \changes{v2.06}{2019/06/17}{neu}^^A
% Diese beiden Makros dienen als zentrale Hooks, die während der Initialiserung
% der Schrfiten des \CDs befüllt werden, falls beispielsweise Warnungen wegen 
% fehlender Schriftdateien oder inkompatibler Pakete ausgegeben werden müssen.
% Diese werden gegebebfalls nur einmalig bei der Aktivierung der Schriften des 
% \CDs ausgegeben.
%    \begin{macrocode}
\newcommand*\tud@cdfont@wrn{\global\let\tud@cdfont@wrn\relax}
\newcommand*\tud@cdmath@wrn{\global\let\tud@cdmath@wrn\relax}
%    \end{macrocode}
% \end{macro}^^A \tud@cdmath@wrn
% \end{macro}^^A \tud@cdfont@wrn
%
% \subsection{Auswahl des Fontformates}
%
% 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.
%
% \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. Nach dem Laden des Paketes
% wird geprüft, ob diesem mit den entsprechenden Optionen das Bereitstellen der 
% Mathematikschriften überlassen wurde. In diesem Fall wird eine entsprechende 
% Warnung an \cs{tud@cdmath@wrn} angehängt.
%    \begin{macrocode}
\newif\if@tud@x@fontspec@enabled
\PassOptionsToPackage{no-math}{fontspec}
\AfterPackage*{fontspec}{%
  \@ifpackagelater{fontspec}{2017/01/24}{%
    \@tud@x@fontspec@enabledtrue%
    \@tud@res@swafalse%
    \@ifpackagewith{fontspec}{no-math}{}{\@tud@res@swatrue}%
    \@ifpackagewith{fontspec}{math}{\@tud@res@swatrue}{}%
    \if@tud@res@swa%
      \appto\tud@cdmath@wrn{%
%<*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%
  }{%
    \@tud@x@fontspec@enabledfalse%
%<*class>
    \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
    \PackageWarningNoLine{tudscrfonts}%
%</package>
    {%
      Version `2017/01/24' of package `fontspec' is needed,\MessageBreak%
      but only version\MessageBreak%
      `\csname ver@fontspec.sty\endcsname'\MessageBreak%
      is available, so a fallback layout is used%
    }%
  }%
}
%    \end{macrocode}
% Bei der Nutzung des Pakets \pkg{unicode-math} kann es ebenfalls zu Problemen 
% mit den mathematischen Schriften kommen, weshalb auch hier eine Warnung an
% \cs{tud@cdmath@wrn} angehängt wird.
%    \begin{macrocode}
\AfterPackage*{unicode-math}{%
  \appto\tud@cdmath@wrn{%
%<*class>
    \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
    \PackageWarningNoLine{tudscrfonts}%
%</package>
    {%
      The usage of package `unicode-math' will\MessageBreak%
      most likely cause erroneous outputs in math mode\MessageBreak%
      with corporate design fonts%
    }%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@x@fontspec@enabled
% \begin{macro}{\if@tud@x@mweights@enabled}
% \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A
% Das Paket \pkg{mweights} wird geladen, um unterschiedliche Schriftschnitte
% für beispielsweise die TypeWriter-Schriften nutzen zu können.
%    \begin{macrocode}
\TUD@RecommendPackage{mweights}[2017/03/30]%
\newif\if@tud@x@mweights@enabled
\AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue}
%    \end{macrocode}
% \end{macro}^^A \if@tud@x@mweights@enabled
%
% \subsection{Prüfen der Schriftverfügbarkeit}
%
% Nachfolgend werden Makros definiert, mit denen geprüft werden kann, ob die 
% notwendigen Schriften im passenden Fontformat auch installiert sind. Seit 
% 2018 wird \OpenSans als die Hausschrift verwendet. Um weiterhin noch alte 
% Dokumente mit den Schriften \Univers und \DIN nutzen zu können, werden die 
% entsprechenden Befehle ebenfalls vorgehalten.
%
% \begin{macro}{\if@tud@cdfont@fam@exist}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\if@tud@cdfont@db@exist}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@cdfont@fam}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@cdfont@fam@lf}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@cdfont@fam@osf}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@cdfont@db}
% Zu Beginn werden Schalter und Hilfsmakros sowohl für den Fließtext\dots
%    \begin{macrocode}
\newif\if@tud@cdfont@fam@exist
\newif\if@tud@cdfont@db@exist
\newcommand*\tud@cdfont@fam{opensans-TLF}
\newcommand*\tud@cdfont@fam@lf{opensans-TLF}
\newcommand*\tud@cdfont@fam@osf{opensans-TOsF}
\if@tud@cdoldfont@active
  \renewcommand*\tud@cdfont@fam{lun}
  \renewcommand*\tud@cdfont@fam@lf{lun}
  \renewcommand*\tud@cdfont@fam@osf{lun}
  \newcommand*\tud@cdfont@db{0m6}
\fi
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont@db
% \end{macro}^^A \tud@cdfont@fam@osf
% \end{macro}^^A \tud@cdfont@fam@lf
% \end{macro}^^A \tud@cdfont@fam
% \end{macro}^^A \if@tud@cdfont@db@exist
% \end{macro}^^A \if@tud@cdfont@fam@exist
% \begin{macro}{\tud@ttfont@fam}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@rb}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@lm}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \dots als auch für die TypeWriter-Schriften definiert.
%    \begin{macrocode}
\newcommand*\tud@ttfont@fam{tudtt}
\newcommand*\tud@ttfont@rb{tudtt}
\newcommand*\tud@ttfont@lm{lmtt}
%    \end{macrocode}
% \end{macro}^^A \tud@ttfont@lm
% \end{macro}^^A \tud@ttfont@rb
% \end{macro}^^A \tud@ttfont@fam
% \begin{macro}{\if@tud@ttfont@rb@exist}
% \changes{v2.06}{2018/07/12}{neu}^^A
% Die TypeWriter-Schrift aus \pkg{roboto-mono} kann nur genutzt werden, wenn
% diese tatsächlich auch vorhanden ist.
%    \begin{macrocode}
\newif\if@tud@ttfont@rb@exist
\IfFileExists{roboto-mono.sty}{%
  \@tud@ttfont@rb@existtrue%
}{%
  \TUD@key@preset{ttfont}{lmodern}%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@ttfont@rb@exist
% \begin{macro}{\tud@cdfont@check}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@cdfont@@check}
% \changes{v2.06}{2018/07/12}{Auswahl der Schriftfamilie angepasst}^^A
% \changes{v2.06b}{2019/07/17}{Verwendung von \cs{tud@if@fdfileexists}}^^A
% \begin{macro}{\tud@cdfont@@@check}
% \changes{v2.06}{2019/06/18}{neu}^^A
% \changes{v2.06b}{2019/07/17}{Verwendung von \cs{tud@if@fdfileexists}}^^A
% \begin{macro}{\tud@cdfont@missing}
% \changes{v2.05l}{2017/03/29}{neu}^^A
% Mit \cs{tud@cdfont@check} wird geprüft, ob die Schrift \OpenSans respektive 
% die veralteten Schriften \Univers und \DIN im OTF-Format respektive im 
% Type1-Format vorhanden sind. Die Schriftschnitte der \OpenSans werden für 
% beide Formate vom Paket \pkg{opensans} geliefert, die veralteten Schriften
% \Univers und \DIN müssen aus lizenrechtlichen Gründen installiert werden. Bei 
% Nichtvorhandensein der Schriften wird eine Warnung ausgegeben sowie eine
% Rückfallebene definiert.
%    \begin{macrocode}
\newcommand*\tud@cdfont@check{%
  \if@tud@cdoldfont@active%
    \tud@cdfont@@check{Univers}{%
      Light,,Bold,Black,%
      LightOblique,Oblique,BoldOblique,BlackOblique%
    }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}%
    \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}%
    \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}%
    \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}%
  \else%
%    \end{macrocode}
% Die Version von \pkg{opensans} wird geprüft. Das Paket \pkg{iwona} wird 
% genutzt, um fehlende Glyphen und Symbole für die Mathematikschriften des \CDs 
% zu ergänzen.
%    \begin{macrocode}
    \@ifpackageloaded{opensans}{%
%<*class>
      \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
      \PackageWarningNoLine{tudscrfonts}%
%</package>
      {%
        You should not load package `opensans'\MessageBreak%
        manually but just use option `cdfont=true'%
      }%
    }{}%
    \if@tud@cdfont@active%
      \TUD@CheckPackage{opensans}{2019/06/20}%
      \TUD@CheckPackage{iwona}{2005/10/03}%
    \fi%
    \tud@cdfont@@check{OpenSans}{%
      Light,Regular,SemiBold,Bold,ExtraBold,%
      LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic%
    }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}%
  \fi%
}
%    \end{macrocode}
% Dieses Makro prüft auf das Vorhandensein der Schriften für den Fließtext. 
% Im optionalen Argument wird das Trennzeichen zwischen dem Hauptnamen für die 
% OTF-Schriften aus dem ersten obligatorischen Argument und der Liste der 
% Bezeichnungen für die einzelnen Schriftschnitte im zweiten obligatorischen 
% Argument angegeben. Die darauffolgenden Argumente enthalten die zu prüfenden 
% Type1-Schriftfamilien und die Bezeichnung des zu setzenden Schalters.
%    \begin{macrocode}
\newcommand*\tud@cdfont@@check[5][-]{%
  \@tud@res@swatrue%
  \def\tud@res@a##1{%
    \@tud@res@swafalse%
    \tud@cdfont@missing{##1}{\tud@cdfont@wrn}%
  }%
%    \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\tud@res@b##1{\IfFontExistsTF{##1}{}{\tud@res@a{##1}}}%
    \@for\tud@res@c:={#3}\do{%
      \expandafter\IfArgIsEmpty\expandafter{\tud@res@c}%
        {\tud@res@b{#2}}%
        {\tud@res@b{#2#1\tud@res@c}}%
    }%
  \else%
%    \end{macrocode}
% Ist \pkg{fontspec} nicht aktiv, wird auf die Type1-Schriften für den
% Fließtext für die aktuelle Kodierung im gleichen Maße geprüft.
%    \begin{macrocode}
    \def\tud@res@b##1##2{%
%    \end{macrocode}
% Der Schalter \cs{if@tud@res@swa} wird \val{false} gesetzt, falls die Schrift 
% gefunden wurde. Der zu prüfenden Schriftname wird dabei in unterschiedlichen 
% Varianten getestet, da \cs{IfFileExists} auf unixoiden Betriebssystemen 
% case-sensitiv ist. 
%    \begin{macrocode}
      \tud@if@fdfileexists{##1}{##2}{}{%
%    \end{macrocode}
% Existiert die Schrift nicht, wird die entsprechende Warnung ausgegeben.
%    \begin{macrocode}
        \begingroup%
          \edef\tud@res@a{%
            \endgroup%
            \noexpand\tud@res@a{##1##2.fd}%
          }%
        \tud@res@a%
      }%
    }%
    \@for\tud@res@c:={#4}\do{\tud@res@b{\encodingdefault}{\tud@res@c}}%
  \fi%
%    \end{macrocode}
% Zuletzt wird der angegebene Schalter gesetzt.
%    \begin{macrocode}
  \if@tud@res@swa%
    \booltrue{#5}%
  \else%
    \boolfalse{#5}%
  \fi%
}
%    \end{macrocode}
% Hiermit wird auf Type1-Schriften in den notwendigen Kodierungen für den
% Mathematiksatz geprüft. Warnungen für fehlende Schriften werden dem Hook
% \cs{tud@cdmath@wrn} hinzugefügt.
%    \begin{macrocode}
\newcommand*\tud@cdfont@@@check[2]{%
  \@tud@res@swatrue%
  \def\tud@res@a##1##2{%
    \@tud@res@swafalse%
    \tud@cdfont@missing[##1]{##2}{\tud@cdmath@wrn}%
  }%
  \def\tud@res@b##1##2{%
    \tud@if@fdfileexists{##1}{##2}{}{%
      \begingroup%
        \edef\tud@res@a{%
          \endgroup%
          \noexpand\tud@res@a{##1}{##1##2.fd}%
        }%
      \tud@res@a%
    }%
  }%
  \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}%
%    \end{macrocode}
% Wurde mindestens eine notwendige nicht gefunden, wird \opt{cdmath=false} 
% gesetzt. War diese zuvor aktiv, wird eine Warnung dazu ausgegeben.
%    \begin{macrocode}
  \if@tud@res@swa\else%
    \AtBeginDocument{%
      \if@tud@cdmath@active%
%<*class>
        \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
        \PackageWarning{tudscrfonts}%
%</package>
        {%
          Some math font encodings are missing. \MessageBreak%
          The option `cdmath=false' is executed. You should\MessageBreak%
          either use this option by yourself or install\MessageBreak%
          all necessary fonts with a installation script\MessageBreak%
          listed in the manual
        }%
      \fi%
      \TUDoptions{cdmath=false}%
    }%
  \fi%
}
%    \end{macrocode}
% Das Makro für die Erstellung einer Warnung bei fehlenden Schriften. Diese 
% wird an den Hook im letzten Argument angehängt.
%    \begin{macrocode}
\newcommand*\tud@cdfont@missing[3][\encodingdefault]{%
  \begingroup%
    \def\tud@res@a{%
      `#2' font\MessageBreak%
      not found for `#1' encoding. \MessageBreak%
    }%
    \if@tud@x@fontspec@enabled%
      \ifstr{\encodingdefault}{#1}{%
        \appto\tud@res@a{%
          It seems, you haven't installed the required\MessageBreak%
          OTF-font on your system. You should provide\MessageBreak%
          the fonts manually to your OS\MessageBreak%
          \if@tud@cdoldfont@active\else%
            or install package `opensans'\MessageBreak%
          \fi%
        }%
      }{}%
    \else%
      \if@tud@cdoldfont@active%
        \def\tud@res@b{T1,OT1,OMS,OML}%
      \else%
        \def\tud@res@b{T1,OT1,T2A,T2B,T2C,X2,LGR}%
      \fi%
      \@tud@res@swafalse%
      \@for\tud@res@c:=\tud@res@b\do{%
        \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}%
      }%
%    \end{macrocode}
% Wird eine unterstützte Kodierung verwendet, müssen die Schriften installiert 
% werden.
%    \begin{macrocode}
      \if@tud@res@swa%
        \appto\tud@res@a{%
          You should %
          \if@tud@cdoldfont@active%
            try to install the necessary fonts\MessageBreak%
            with a installation script listed in the manual%
          \else%
            install package `opensans'%
          \fi%
          . \MessageBreak%
        }%
      \else%
        \ifstr{\encodingdefault}{#1}{%
          \ifstr{TU}{#1}{%
            \appto\tud@res@a{%
              You should either load package `fontspec'\MessageBreak%
              or %
            }%
          }{%
            \appto\tud@res@a{Please }%
          }%
          \appto\tud@res@a{%
            choose a possible encoding with package\MessageBreak%
            `fontenc' (\tud@res@b). \MessageBreak%
          }%
        }{}%
      \fi%
    \fi%
    \appto\tud@res@a{A fallback layout is used}%
    \edef\tud@res@c{%
%<*class>
      \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}%
%</class>
%<*package>
      \etex@unexpanded{\PackageWarning{tudscrfonts}}%
%</package>
        {\tud@res@a}
    }%
    \xappto#3{\expandonce\tud@res@c}%
  \endgroup%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont@missing
% \end{macro}^^A \tud@cdfont@@@check
% \end{macro}^^A \tud@cdfont@@check
% \end{macro}^^A \tud@cdfont@check
%
% \subsection{Kompatibilität der Schriften}
% \subsubsection{Majuskel-ß für Unicode-Prozessoren}
%
% Es wird für die Majuskelvariante der Glyphe \enquote*{ß} eine Rückfallebene
% (Substitution mit \enquote*{SS}) definiert, da diese für Unicode-Engines 
% standardmäßig nicht bereitgestellt wird. Um diese zu erkennen, wird auf die 
% gleiche Methodik wie im Paket \pkg{newunicodechar} zurückgegriffen.
%    \begin{macrocode}
\begingroup
\catcode`\^=7
\catcode30=12
\catcode`\!=12
\edef\tud@reserved{\@gobble^^^^0021}
\expandafter\endgroup
%    \end{macrocode}
% Wurde eine Unicode-Engine erkannt (|^^^^0021| wird als ein Token gelesen), 
% dann werden die Kodierungen für kleines und großes \enquote*{ß} dahingehend 
% angepasst, dass diese \enquote*{ss} bzw. \enquote*{SS} verwenden, wenn die 
% entsprechende Glyphe nicht vorhanden ist.
%    \begin{macrocode}
\ifx\tud@reserved\@empty\relax
  \RequirePackage{newunicodechar}[2012/11/12]%
  \uccode"00DF="1E9E%
  \lccode"1E9E="00DF%
  \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}%
  \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}%
\fi
%    \end{macrocode}
%
% \subsubsection{Ausrichtung von Überschriften und das Paket \pkg{ragged2e}}
%
% \begin{macro}{\tud@raggedright}
% \begin{macro}{\tud@RaggedRight}
% Die Überschriften sollen laut \CD linksbündig und ohne 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. Diese Makros dienen 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}{%
  \ifundef{\LaTeXraggedright}{}{%
    \renewcommand*\tud@raggedright{\LaTeXraggedright}%
  }%
  \renewcommand*\tud@RaggedRight{\RaggedRight}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@RaggedRight
% \end{macro}^^A \tud@raggedright
%
% \subsubsection{Anpassungen für das Paket \pkg{siunitx}}
%
% \begin{macro}{\lseries}
% \begin{macro}{\if@tud@x@siunitx@enabled}
% \changes{v2.05m}{2017/05/29}{neu}
% 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. Außerdem muss bei der Auswahl der Schriften evtl. auf das 
% Paket reagiert werden, weil es sich bei der Definition der Schriften für den 
% Mathematikmodus auf \cs{familydefault} bzw. \cs{rmfamily} verlässt.
%    \begin{macrocode}
\newif\if@tud@x@siunitx@enabled
\AfterAtEndOfPackage*{siunitx}{%
  \@tud@x@siunitx@enabledtrue%
  \providecommand*\lseries{\fontseries{l}\selectfont}%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@x@siunitx@enabled
% \end{macro}^^A \lseries
%
% \subsubsection{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}
%
% \subsubsection{Mathematikschriften in Verbindung mit dem 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
%<*package>
\@ifpackageloaded{bm}{%
  \PackageWarning{tudscrfonts}{%
    Package `bm' must be loaded after `tudscrfonts'. \MessageBreak%
    Otherwise the functionality can not be guaranteed%
  }%
}{%
%</package>
\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm}
%<*package>
}
%</package>
%    \end{macrocode}
% \end{macro}^^A \if@tud@x@bm@requested
%
% \iffalse
%</body>
%<*option>
% \fi
%
% \subsection{Schriftauswahl und -optionen}
%
% Hier werden die Optionen und Befehle zur Schriftauswahl definiert.
%
% \subsubsection{Schriften für den Fließtext}
% \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
% \changes{v2.05l}{2017/03/29}{Standardeinstellungen für \opt{cdmath}}^^A
% \begin{macro}{\if@tud@cdfont@active}
% \changes{v2.06}{2018/06/26}{neu}^^A
% \begin{macro}{\if@tud@cdfont@heavy}
% \changes{v2.06}{2018/06/26}{neu}^^A
% \begin{macro}{\if@tud@cdfont@ultrabold}
% \changes{v2.05}{2016/04/04}{neu}^^A
% \begin{macro}{\if@tud@cdfont@lining}
% \changes{v2.06}{2018/07/10}{neu}^^A
% \begin{macro}{\tud@cdfont@activate}
% \changes{v2.06}{2018/07/02}{neu}^^A
% \begin{macro}{\tud@cdfont@deactivate}
% \changes{v2.06}{2018/07/24}{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 
% Minuskelziffern im Fließtext aktivieren. Außerdem kann eingestellt werden, ob 
% für den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen.
% \ToDo{%
%   Option evtl. überarbeiten und nicht mehr im Dokument zulassen;
%   das macht alles um einiges einfacher, siehe \opt{cdoldfont}, \opt{cdmath}
% }[v2.07]
%    \begin{macrocode}
\newif\if@tud@cdfont@active
\newif\if@tud@cdfont@heavy
\newif\if@tud@cdfont@ultrabold
\newif\if@tud@cdfont@lining
\@tud@cdfont@liningtrue
\TUD@key{cdfont}[true]{%
  \TUD@set@numkey{cdfont}{@tempa}{%
    \TUD@bool@numkey,%
    {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},%
    {lf}{5},{lfigures}{5},{liningfigures}{5},{lining}{5},%
    {ln}{5},{lnumbers}{5},{liningnumbers}{5},%
    {nf}{5},{nfigures}{5},{normalfigures}{5},%
    {nn}{5},{nnumbers}{5},{normalnumbers}{5},%
    {osf}{6},{osfigures}{6},{oldfigures}{6},{oldstylefigures}{6},{oldstyle}{6},%
    {osn}{6},{osnumbers}{6},{oldnumbers}{6},{oldstylenumbers}{6},%
    {nomath}{7},{nocdmath}{7},%
    {serifmath}{7},{serif}{7},{nosansmath}{7},{nosans}{7},%
    {math}{8},{cdmath}{8},{sansmath}{8},{sans}{8},%
    {upgreek}{9},{uprightgreek}{9},{uprightgreeks}{9},%
    {slgreek}{10},{slantedgreek}{10},{slantedgreeks}{10},%
    {itgreek}{10},{italicgreek}{10},{italicgreeks}{10},%
    {texgreek}{11},{latexgreek}{11},{texgreeks}{11},{latexgreeks}{11},%
    {standardgreek}{11},{standardgreeks}{11},%
    {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},%
    {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}%
%<*class>
    ,{nohead}{14},{nocdhead}{14},{noheadfont}{14},{noheadcdfont}{14},%
    {nocdheadfont}{14},{nobar}{14},{nobarfont}{14},%
    {head}{15},{headfont}{15},{cdhead}{15},{headcdfont}{15},{cdheadfont}{15},%
    {bar}{15},{barfont}{15},%
    {lighthead}{15},{lightheadfont}{15},{lightfonthead}{15},%
    {lightcdhead}{15},{lightheadcdfont}{15},{lightcdheadfont}{15},%
    {lightbar}{15},{lightbarfont}{15},{lightfontbar}{15},%
    {headlight}{15},{headfontlight}{15},{headlightfont}{15},%
    {cdheadlight}{15},{headcdfontlight}{15},{cdheadfontlight}{15},%
    {barlight}{15},{barfontlight}{15},{barlightfont}{15},%
    {litehead}{15},{liteheadfont}{15},{litefonthead}{15},%
    {litecdhead}{15},{liteheadcdfont}{15},{litecdheadfont}{15},%
    {litebar}{15},{litebarfont}{15},{litefontbar}{15},%
    {headlite}{15},{headfontlite}{15},{headlitefont}{15},%
    {cdheadlite}{15},{headcdfontlite}{15},{cdheadfontlite}{15},%
    {barlite}{15},{barfontlite}{15},{barlitefont}{15},%
    {noheavyhead}{15},{noheavyheadfont}{15},{noheavyfonthead}{15},%
    {noheavycdhead}{15},{noheavyheadcdfont}{15},{noheavycdheadfont}{15},%
    {noheavybar}{15},{noheavybarfont}{15},{noheavyfontbar}{15},%
    {headnoheavy}{15},{headfontnoheavy}{15},{headnoheavyfont}{15},%
    {cdheadnoheavy}{15},{headcdfontnoheavy}{15},{cdheadfontnoheavy}{15},%
    {barnoheavy}{15},{barfontnoheavy}{15},{barnoheavyfont}{15},%
    {heavyhead}{16},{heavyheadfont}{16},{heavyfonthead}{16},%
    {heavycdhead}{16},{heavyheadcdfont}{16},{heavycdheadfont}{16},%
    {heavybar}{16},{heavybarfont}{16},{heavyfontbar}{16},%
    {headheavy}{16},{headfontheavy}{16},{headheavyfont}{16},%
    {cdheadheavy}{16},{headcdfontheavy}{16},{cdheadfontheavy}{16},%
    {barheavy}{16},{barfontheavy}{16},{barheavyfont}{16}%
%</class>
  }{#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
      \tud@cdfont@deactivate%
    \or% true
      \@tud@cdfont@heavyfalse%
      \tud@cdfont@activate%
    \or% heavy
      \@tud@cdfont@heavytrue%
      \tud@cdfont@activate%
%    \end{macrocode}
% Für die Definition der fetten Schriftstärke kommt je nach Einstellung ein
% anderer Schriftschnitt zum Einsatz.
%    \begin{macrocode}
    \or% normalbold
      \@tud@cdfont@ultraboldfalse%
      \tud@cdfont@activate%
    \or% ultrabold
      \@tud@cdfont@ultraboldtrue%
      \tud@cdfont@activate%
%    \end{macrocode}
% Hier wird die Art der Ziffern für den Fleißtext festgelegt.
%    \begin{macrocode}
    \or% liningfigures
      \@tud@cdfont@liningtrue%
      \tud@cdfont@activate%
    \or% oldstylefigures
      \@tud@cdfont@liningfalse%
      \tud@cdfont@activate%
%    \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% uprightgreek
      \TUDoptions{slantedgreek=false}%
    \or% slantedgreek
      \TUDoptions{slantedgreek=true}%
    \or% standardgreek
      \TUDoptions{slantedgreek=standard}%
%    \end{macrocode}
% Die Verwendung von \pkg{fontspec}.
%    \begin{macrocode}
    \or% fontspec
      \TUDoptions{fontspec=true}%
    \or% nofontspec
      \TUDoptions{fontspec=false}%
%    \end{macrocode}
% Die Schrift für den Querbalken.
%    \begin{macrocode}
%<*class>
    \or% nohead
      \TUDoptions{cdhead=false}%
    \or% head
      \TUDoptions{cdhead=true}%
    \or% heavyhead
      \TUDoptions{cdhead=heavy}%
%</class>
    \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%
    \tud@lowerstring\tud@res@a{#1}%
    \ifdimen{\tud@res@a}{%
      \ifdim\tud@res@a>\z@\relax%
        \TUDoptions{fontsize=#1}%
        \tud@cdfont@activate%
        \FamilyKeyStateProcessed%
      \fi%
    }{}%
  \fi%
}
\newcommand*\tud@cdfont@activate{%
  \@tud@cdfont@activetrue%
%    \end{macrocode}
% Die Schrift im Querbalken wird bei den Klassen angepasst.
%    \begin{macrocode}
%<*class>
  \if@tud@cdfont@heavy%
    \tud@locked@num@preset{tud@head@font@num}{2}%
  \else%
    \tud@locked@num@preset{tud@head@font@num}{1}%
  \fi%
%</class>
  \TUD@SpecialOptionAtDocument{tud@font@set}%
  \tud@locked@bool@preset{@tud@cdmath@active}{true}%
  \TUD@SpecialOptionAtDocument{tud@math@set}%
}
\newcommand*\tud@cdfont@deactivate{%
  \@tud@cdfont@activefalse%
%<*class>
  \tud@locked@num@preset{tud@head@font@num}{0}%
%</class>
  \TUD@SpecialOptionAtDocument{tud@font@set}%
  \tud@locked@bool@preset{@tud@cdmath@active}{false}%
  \TUD@SpecialOptionAtDocument{tud@math@set}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont@deactivate
% \end{macro}^^A \tud@cdfont@activate
% \end{macro}^^A \if@tud@cdfont@lining
% \end{macro}^^A \if@tud@cdfont@ultrabold
% \end{macro}^^A \if@tud@cdfont@heavy
% \end{macro}^^A \if@tud@cdfont@active
% \end{option}^^A cdfont
% \begin{option}{cdoldfont}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\if@tud@cdoldfont@active}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\if@tud@cdoldfont@nodin}
% \changes{v2.06}{2018/07/12}{neu}^^A
% Seit 2018 wird \OpenSans als Hausschrift im \TUDCD genutzt. Für die Nutzung 
% der vormals verwendeten Schriften \Univers und \DIN für ältere Dokumente wird 
% die Option \pkg{cdoldfont} bereitgestellt. Damit werden die Befehle zur 
% Schriftauswahl für die \TUDScript-Klassen oder das Paket \pkg{tudscrfonts} 
% entsprechend angepasst.
%    \begin{macrocode}
\newif\if@tud@cdoldfont@active
\newif\if@tud@cdoldfont@nodin
\TUD@key{cdoldfont}[true]{%
  \TUD@set@numkey{cdoldfont}{@tempa}{%
    \TUD@bool@numkey,%
    {din}{1},{dinbold}{1},%
    {nodin}{2},{nodinbold}{2},%
    {onlydin}{3},{onlydinbold}{3}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% false
      \@tud@cdoldfont@activefalse%
      \@tud@cdoldfont@nodintrue%
%    \end{macrocode}
% Achtung, nicht verwirren lassen! Mit \opt{cdoldfonts=false} kann beim Laden
% der Klasse die Verwendung der alten Schriften deaktiviert werden. Dabei wird 
% nicht beeinflusst, ob die Schriften des \CDs (\opt{cdfont=true/false}) denn 
% überhaupt zum Einsatz kommen. Nachdem die Klasse geladen wurde, wird jedoch 
% \opt{cdoldfonts} eingefroren, ist diese aktiv, kann sie ab diesem Zeitpunkt 
% nicht mehr deaktiviert werden. Dann kann mit \opt{cdoldfonts=false} quasi das 
% gleiche Verhalten wie mit \opt{cdfont=false} erzeugt werden.
%    \begin{macrocode}
      \if@tud@cdoldfont@active%
        \tud@cdfont@deactivate%
      \fi%
    \or% true/din
      \@tud@cdoldfont@activetrue%
      \@tud@cdoldfont@nodinfalse%
      \tud@cdfont@activate%
    \or% nodin
      \@tud@cdoldfont@activetrue%
      \@tud@cdoldfont@nodintrue%
      \tud@cdfont@activate%
    \or% onlydin
      \@tud@cdoldfont@activetrue%
      \@tud@cdoldfont@nodinfalse%
      \tud@cdfont@deactivate%
    \fi%
  \else%
    \@tud@cdoldfont@activetrue%
    \TUDoptions{cdfont=#1}%
  \fi%
}
%<*class>
\AtEndOfClass%
%</class>
%<*package>
\AtEndOfPackage%
%</package>
{%
  \if@tud@cdoldfont@active%
%    \end{macrocode}
% Der aktive Zustand der Option \opt{cdoldfont} wird \enquote{eingefroren}.
%    \begin{macrocode}
    \let\@tud@cdoldfont@activefalse\@tud@cdoldfont@activetrue%
%    \end{macrocode}
% Wenn die Option \opt{cdoldfont} beim Laden der Klasse aktiviert wurde, kann 
% sie auch im Dokument genutzt werden. Um möglichst einfach alte Dokumente mit
% den alten Schriften setzen zu können, wird die Option \opt{cdfont} in diesem 
% Fall um die alten Werte erweitert.
%    \begin{macrocode}
    \TUD@key[.comp]{cdfont}{%
      \TUD@set@numkey{cdfont}{@tempa}{%
        {din}{1},{dinbold}{1},%
        {nodin}{2},{nodinbold}{2},%
        {onlydin}{3},{onlydinbold}{3}%
      }{#1}%
      \ifx\FamilyKeyState\FamilyKeyStateProcessed%
        \TUDoptions{cdoldfont=#1}%
      \fi%
    }%
%    \end{macrocode}
% Andernfalls wird \opt{cdoldfont} schlichtweg deaktiviert.
%    \begin{macrocode}
  \else%
    \TUD@key{cdoldfont}[]{%
%<*class>
      \ClassError{\TUD@Class@Name}%
%</class>
%<*package>
      \PackageError{tudscrfonts}%
%</package>
      {Option `cdoldfont' not active}{%
        Option `cdoldfont' must be activated while loading the\MessageBreak%
%<*class>
        class `\TUD@Class@Name'\space%
%</class>
%<*package>
        package `tudscrfonts'\space%
%</package>
        but you have tried to set it up later.%
      }%
      \FamilyKeyStateProcessed%
    }%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@cdoldfont@nodin
% \end{macro}^^A \if@tud@cdoldfont@active
% \end{option}^^A cdoldfont
% \begin{option}{fontsize}
% \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A
% \begin{macro}{\if@tud@x@scr@fontsize@set}
% \changes{v2.05}{2015/07/24}{neu}^^A
% Die genutzte Grundschriftgröße kann mit der \KOMAScript-Option \opt{fontsize} 
% eingestellt werden. Um ein aktives Setzen der Schriftgröße zu erkennen, wird 
% für das Laden der \TUDScript-Klasse ein Schlüssel definiert, der den Wert an
% \KOMAScript{} weiterreicht.
%    \begin{macrocode}
\newif\if@tud@x@scr@fontsize@set
\TUD@key{fontsize}{%
  \TUD@set@dimenkey{fontsize}{\@tempa}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
%    \end{macrocode}
% Für das Paket wird geprüft, ob die gerade abgearbeitete Option global als
% Klassenoption angegeben wurde. Für den Fall, dass dies nicht so ist~-- die 
% Option also lokal dem Paket selbst übergeben wurde~--, wird eine Warnung mit
% dem Hinweis auf das vorgeschlagene Vorgehen ausgegeben.
%    \begin{macrocode}
%<*package>
    \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}%
    \ifin@\else%
      \edef\tud@res@a{%
        \noexpand\PackageWarning{tudscrfonts}%
        {%
          The key `\CurrentOption' should only be\MessageBreak%
          used as class option%
        }%
      }%
      \expandafter\AtEndOfPackage\expandafter{\tud@res@a}%
    \fi
%</package>
    \@tud@x@scr@fontsize@settrue%
    \TUD@KOMAoptions{fontsize=#1}%
  \fi%
}
%<*class>
\AtEndOfClass%
%</class>
%<*package>
\AtEndOfPackage%
%</package>
{%
  \RelaxFamilyKey{TUD}{fontsize}%
  \DefineFamilyMember{KOMA}%
  \DefineFamilyKey{KOMA}{fontsize}{%
    \@tud@x@scr@fontsize@settrue%
%<*class>
    \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
    \PackageWarning{tudscrfonts}%
%</package>
    {%
      The key `fontsize=#1' should only be\MessageBreak%
      used as class option%
    }%
    \TUD@SpecialOptionAtDocument{tud@font@set}%
    \FamilyKeyStateProcessed%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@x@scr@fontsize@set
% \end{option}^^A fontsize
% \begin{option}{relspacing}
% \changes{v2.05}{2015/12/17}{neu}^^A
% \begin{macro}{\if@tud@relspacing}
% \changes{v2.05}{2015/12/17}{neu}^^
% Die Option \opt{relspacing} setzt einige Abstände und Längen in Abhängigkeit 
% der aktuellen Grundschriftgröße, wenn sie aktiviert wurde. Die verwendete 
% Grundschriftgröße kann mit der \KOMAScript-Option \opt{fontsize} eingestellt
% werden. Die Definiton der Längen wird durch das Makro \cs{tud@font@skip@set} 
% vorgenommen.
%    \begin{macrocode}
\newif\if@tud@relspacing
\TUD@key{relspacing}[true]{%
  \TUD@set@numkey{relspacing}{@tempa}{%
    \TUD@bool@numkey,%
    {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%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@relspacing
% \end{option}^^A relspacing
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \begin{macro}{\tud@x@fontspec@init}
% \changes{v2.06}{2018/06/28}{neu}^^A
% Dieses Makro wird bei der Initialisierun der Schriftfamilien aufgerufen, 
% falls \pkg{fontspec} aktiv ist. Das erste Argument enthält den NFSS-Namen 
% der Schriftfamilie, das zweite Argument spezifiziert die Schriften für die 
% jeweiligen Schriftschnitte.
%    \begin{macrocode}
\newcommand*\tud@x@fontspec@init[2]{%
%    \end{macrocode}
% Durch die Verwendung des optionalen Argumentes von \cs{defaultfontfeatures} 
% werden die gewünschten Features einem Schriftfamiliennamen zugewiesen. Diese 
% können anschließend einfach bspw. mit \cs{setsansfont}\marg{Name} genutzt 
% werden. Damit alle Änderungen lokal bleiben, werden die Argumente in einer 
% Gruppe expandiert.
%    \begin{macrocode}
  \begingroup%
    \edef\tud@res@a{%
      \noexpand\defaultfontfeatures[#1]{%
        NFSSFamily=#1,%
        Ligatures=TeX,%
        BoldFont={},%
        ItalicFont={},%
        BoldItalicFont={},%
        SmallCapsFont={},%
        #2%
      }%
    }%
%    \end{macrocode}
% Damit die Schrift mit ihrem NFSS-Namen auf jeden Fall definiert ist, auch 
% wenn die Schriften des \CDs nicht aktiviert wurden, wird \cs{newfontfamily} 
% aufgerufen.
%    \begin{macrocode}
    \edef\tud@res@b{%
      \noexpand\newfontfamily%
        \expandafter\noexpand\csname tud@x@fontspec@fam@#1\endcsname{#1}%
    }%
%    \end{macrocode}
% Die expandierten Argumente werden nach der Gruppe ausgeführt.
%    \begin{macrocode}
    \edef\tud@res@c{%
      \endgroup\expandonce\tud@res@a\expandonce\tud@res@b%
    }%
  \tud@res@c%
}
%    \end{macrocode}
% \end{macro}^^A \tud@x@fontspec@init
% \begin{macro}{\tud@x@fontspec@set}
% \changes{v2.06}{2018/08/31}{neu}^^A
% Das Paket \pkg{fontspec} ermöglicht es leider nicht, mit \cs{newfontfamily} 
% bereits definierte Schriftfamilien für die Zuweisung mit \cs{setmainfont} 
% etc. zu nutzen. Deshalb wird folgendes Hilfsmakro definiert, welches diese 
% Aufgabe übernimmt.
%    \begin{macrocode}
\newcommand*\tud@x@fontspec@set[2]{%
  \begingroup%
    \edef\tud@res@a{%
      \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname%
    }%
    \edef\tud@res@a{%
      \endgroup%
      \noexpand\DeclareRobustCommand%
          \expandafter\noexpand\csname #1family\endcsname{%
        \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname%
      }%
      \def\expandafter\noexpand\csname #1default\endcsname{\tud@cdfont@fam}%
    }%
  \tud@res@a%
}
%    \end{macrocode}
% \end{macro}^^A \tud@x@fontspec@set
% \begin{macro}{\tud@font@set}
% \changes{v2.04}{2015/03/01}{Unterstützung für das Paket \pkg{mweights}}^^A
% \begin{macro}{\bfseries@rm}
% \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}{\bfseries@sf}
% \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}{\bfseries@tt}
% \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 \cs{tud@font@set} werden entweder die normalen oder aber die Schriften 
% des \CDs aktiviert. Dabei werden die Pakete \pkg{fontspec} und \pkg{mweights} 
% beachtet. 
%    \begin{macrocode}
\newcommand*\tud@font@set{%
%    \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}
  \if@tud@cdfont@active%
    \tud@cs@store{rmdefault}%
    \tud@cs@store{sfdefault}%
    \tud@cs@store{ttdefault}%
    \tud@cs@store{bfdefault}%
    \tud@cs@store{mddefault}%
    \tud@cs@store{updefault}%
    \tud@cs@store{sldefault}%
    \tud@cs@store{itdefault}%
    \tud@cs@store{familydefault}%
    \tud@cs@store{seriesdefault}%
    \tud@cs@store{shapedefault}%
    \if@tud@x@mweights@enabled%
      \tud@cs@store{bfseries@rm}%
      \tud@cs@store{mdseries@rm}%
      \tud@cs@store{bfseries@sf}%
      \tud@cs@store{mdseries@sf}%
      \tud@cs@store{bfseries@tt}%
      \tud@cs@store{mdseries@tt}%
    \fi%
%    \end{macrocode}
% Das Paket \pkg{fontspec} definiert u.\,U. die Familienauswahlbefehle um, so
% dass diese ebenfalls gesichert werden.
%    \begin{macrocode}
    \if@tud@x@fontspec@enabled%
      \tud@cs@store{rmfamily}%
      \tud@cs@store{sffamily}%
      \tud@cs@store{ttfamily}%
    \fi%
%    \end{macrocode}
% Zunächst werden die Standardwerte für die Schriftfamilien gesetzt.
%    \begin{macrocode}
    \renewcommand*\rmdefault{\sfdefault}%
    \renewcommand*\updefault{n}%
    \renewcommand*\itdefault{it}%
    \renewcommand*\sldefault{sl}%
    \renewcommand*\familydefault{\sfdefault}%
    \renewcommand*\seriesdefault{\mddefault}%
    \renewcommand*\shapedefault{\updefault}%
%    \end{macrocode}
% Danach erfolgt die Definition der Schriften des \CDs. 
%    \begin{macrocode}
    \tud@cdfont@set%
    \tud@cdfont@symbols@set%
    \tud@ttfont@set%
    \if@tud@x@mweights@enabled%
      \edef\bfseries@rm{\tud@cdfont@bf}%
      \edef\mdseries@rm{\tud@cdfont@md}%
      \edef\bfseries@sf{\tud@cdfont@bf}%
      \edef\mdseries@sf{\tud@cdfont@md}%
      \edef\bfseries@tt{\tud@ttfont@bf}%
      \edef\mdseries@tt{\tud@ttfont@md}%
    \fi%
    \let\bfdefault\tud@cdfont@bf%
    \let\mddefault\tud@cdfont@md%
%    \end{macrocode}
% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn
% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet.
%    \begin{macrocode}
  \else%
    \tud@cs@restore{rmdefault}%
    \tud@cs@restore{sfdefault}%
    \tud@cs@restore{ttdefault}%
    \tud@cs@restore{bfdefault}%
    \tud@cs@restore{mddefault}%
    \tud@cs@restore{updefault}%
    \tud@cs@restore{sldefault}%
    \tud@cs@restore{itdefault}%
    \tud@cs@restore{familydefault}%
    \tud@cs@restore{seriesdefault}%
    \tud@cs@restore{shapedefault}%
    \if@tud@x@mweights@enabled%
      \tud@cs@restore{bfseries@rm}%
      \tud@cs@restore{mdseries@rm}%
      \tud@cs@restore{bfseries@sf}%
      \tud@cs@restore{mdseries@sf}%
      \tud@cs@restore{bfseries@tt}%
      \tud@cs@restore{mdseries@tt}%
    \fi%
    \if@tud@x@fontspec@enabled%
      \tud@cs@restore{rmfamily}%
      \tud@cs@restore{sffamily}%
      \tud@cs@restore{ttfamily}%
    \fi%
    \tud@cdfont@symbols@reset%
  \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}%
    \edef\famdef@ult{\familydefault}%
  \fi%
%    \end{macrocode}
% Zum Ende werden einige Abstände abhängig von der gewählten Schriftgröße 
% definiert. Danach wird gewählte Standardschrift aktiviert und für die Klassen 
% das Layout erneuert.
%    \begin{macrocode}
  \tud@font@skip@set%
  \normalfont\selectfont%
%<*class>
  \tud@cd@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 \bfseries@tt
% \end{macro}^^A \mdseries@sf
% \end{macro}^^A \bfseries@sf
% \end{macro}^^A \mdseries@rm
% \end{macro}^^A \bfseries@rm
% \end{macro}^^A \tud@font@set
% \begin{macro}{\tud@cdfont@set}
% \changes{v2.06}{2018/06/28}{neu}^^A
% \begin{macro}{\tud@cdfont@@set}
% \changes{v2.06}{2018/06/28}{neu}^^A
% \begin{macro}{\tud@cdfont@md}
% \changes{v2.06}{2018/06/28}{neu}^^A
% \begin{macro}{\tud@cdfont@bf}
% \changes{v2.06}{2018/06/28}{neu}^^A
% \begin{macro}{\tud@cdfont@ebf}
% \changes{v2.06}{2018/06/28}{neu}^^A
% Hiermit erfolgt die eigentliche Auswahl der Schriftfamilien für das \CD.
%    \begin{macrocode}
\newcommand*\tud@cdfont@set{%
  \if@tud@cdfont@fam@exist%
    \if@tud@cdfont@lining%
      \let\tud@cdfont@fam\tud@cdfont@fam@lf%
    \else%
      \let\tud@cdfont@fam\tud@cdfont@fam@osf%
    \fi%
%    \end{macrocode}
% Das Aktivieren der Schriften erfolgt entweder mit dem Paket \pkg{fontspec}
% oder\dots
%    \begin{macrocode}
    \if@tud@x@fontspec@enabled%
      \tud@x@fontspec@set{sf}{\tud@cdfont@fam}%
%    \end{macrocode}
% \dots nach dem NFSS.
%    \begin{macrocode}
    \else%
      \renewcommand*\sfdefault{\tud@cdfont@fam}%
    \fi%
    \tud@cdfont@@set%
  \fi%
%    \end{macrocode}
% Sollte versucht werden, die Schriften zu aktivieren, obwohl diese nicht
% installiert sind, werden die entsprechenden Warnungen ausgegeben.
%    \begin{macrocode}
  \tud@cdfont@wrn%
}
\newcommand*\tud@cdfont@md{m}
\newcommand*\tud@cdfont@bf{b}
\newcommand*\tud@cdfont@ebf{bx}
\newcommand*\tud@cdfont@@set{%
  \if@tud@cdfont@heavy%
    \renewcommand*\tud@cdfont@md{m}%
    \if@tud@cdfont@ultrabold%
      \renewcommand*\tud@cdfont@bf{b}%
      \renewcommand*\tud@cdfont@ebf{eb}%
    \else%
      \renewcommand*\tud@cdfont@bf{sb}%
      \renewcommand*\tud@cdfont@ebf{b}%
    \fi%
  \else%
    \renewcommand*\tud@cdfont@md{l}%
    \if@tud@cdfont@ultrabold%
      \renewcommand*\tud@cdfont@bf{sb}%
      \renewcommand*\tud@cdfont@ebf{b}%
    \else%
      \renewcommand*\tud@cdfont@bf{m}%
      \renewcommand*\tud@cdfont@ebf{sb}%
    \fi%
  \fi%
}
\if@tud@cdoldfont@active
  \renewcommand*\tud@cdfont@@set{%
    \if@tud@cdfont@heavy%
      \renewcommand*\tud@cdfont@md{m}%
      \if@tud@cdfont@ultrabold%
        \renewcommand*\tud@cdfont@bf{eb}%
        \renewcommand*\tud@cdfont@ebf{eb}%
      \else%
        \renewcommand*\tud@cdfont@bf{b}%
        \renewcommand*\tud@cdfont@ebf{eb}%
      \fi%
    \else%
      \renewcommand*\tud@cdfont@md{l}%
      \if@tud@cdfont@ultrabold%
        \renewcommand*\tud@cdfont@bf{b}%
        \renewcommand*\tud@cdfont@ebf{eb}%
      \else%
        \renewcommand*\tud@cdfont@bf{m}%
        \renewcommand*\tud@cdfont@ebf{b}%
      \fi%
    \fi%
  }%
\fi
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont@ebf
% \end{macro}^^A \tud@cdfont@bf
% \end{macro}^^A \tud@cdfont@md
% \end{macro}^^A \tud@cdfont@@set
% \end{macro}^^A \tud@cdfont@set
% \begin{macro}{\tud@cdfont@declare@symb}
% \changes{v2.07}{2020/01/22}{neu}^^A
% \begin{macro}{\tud@cdfont@symb@list}
% \changes{v2.07}{2020/01/22}{neu}^^A
% \begin{macro}{\tud@DeclareTextSymbol}
% \changes{v2.07}{2020/01/22}{neu}^^A
% Mit \cs{tud@cdfont@declare@symb} können Glyhen respektive einzelne Zeichen 
% definiert werden, welche über das Makro \cs{tud@cdfont@symbols@set} nur zum 
% Einsatz kommen, wenn \opt{cdfont=true} aktiviert wurde. Damit können gezielt 
% Symbole in verschiedenen Kodierungen aus unterscihedlichen Schriftfamilien 
% definiert werden.
%    \begin{macrocode}
\newcommand*\tud@cdfont@symb@list{}
\newcommand*\tud@cdfont@declare@symb[4]{%
  \listeadd\tud@cdfont@symb@list{#1}%
  \tud@DeclareTextSymbol{#1}{#2}{#3}{#4}%
}
%    \end{macrocode}
% Die an \cs{tud@cdfont@declare@symb} übergebenen Bezeichner für Auswahlbefehle
% erhalten \cs{tud@cdfont@symbol@\dots} als Präfix. Da so der ursprüngliche 
% Befehlsname verändert wird, würde dieser Befehlsname auch verwendet werden, 
% wenn dieser in einem fragilen Kontext genutzt wird (siehe \cs{@changed@cmd}).
% Deshalb wird im Anschluss der neue Befehl selbst robust definiert, damit 
% eine spätere Expansion nach der Zuweisung mit \cs{tud@cs@letltx} nicht in 
% \cs{tud@cdfont@symbol@\meta{symbol}} resultiert sondern in jedem Fall 
% \cs{\meta{symbol}} erhalen bleibt.
%    \begin{macrocode}
\newcommand*\tud@DeclareTextSymbol[4]{%
  \begingroup%
    \edef\tud@res@a{%
      \endgroup%
      \noexpand\DeclareTextCommand%
        {\csname tud@cdfont@symbol@#1\endcsname}{#2}%
        {\unexpanded{{\fontfamily{#3}\selectfont\char#4}}}%
      \noexpand\DeclareTextCommandDefault%
        {\csname tud@cdfont@symbol@#1\endcsname}%
        {\noexpand\UseTextSymbol{#2}{\csname tud@cdfont@symbol@#1\endcsname}}%
    }%
  \tud@res@a%
  \expandafter\robustify\csname tud@cdfont@symbol@#1\endcsname%
}
%    \end{macrocode}
% \end{macro}^^A \tud@DeclareTextSymbol
% \end{macro}^^A \tud@cdfont@symb@list
% \end{macro}^^A \tud@cdfont@declare@symb
% \begin{macro}{\tud@cdfont@symbols@set}
% \changes{v2.07}{2020/01/22}{neu}^^A
% \begin{macro}{\tud@cdfont@symbols@toks}
% \changes{v2.07}{2020/01/22}{neu}^^A
% \begin{macro}{\tud@cdfont@symbols@set@cmd}
% \changes{v2.07}{2020/01/22}{neu}^^A
% \begin{macro}{\tud@cdfont@symbols@reset}
% \changes{v2.07}{2020/01/22}{neu}^^A
% Mit diesen Befehlen wird im zwischen Symbolen für die Schriften des \CDs, 
% welche mit \cs{tud@cdfont@declare@symb} deklariert wurden, und den normalen 
% gewechselt werden. 
%    \begin{macrocode}
\newtoks\tud@cdfont@symbols@toks
\newcommand*\tud@cdfont@symbols@set{%
%    \end{macrocode}
% Die Sicherung der alten Definitionen erfolgt nur einmalig. Die Liste der 
% Symbole wird durchlaufen und die erfolgten Definitionen werden umgesetzt.
%    \begin{macrocode}
  \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdfont@symbols@toks}{%
    \forlistloop\tud@cdfont@symbols@set@cmd\tud@cdfont@symb@list%
%    \end{macrocode}
% Wird das Tokenregister abgerufen, soll es anschließend auch wieder geleert 
% werden.
%    \begin{macrocode}
    \addto@hook\tud@cdfont@symbols@toks{\tud@cdfont@symbols@toks{}}%
  }{}%
}
%    \end{macrocode}
% Das Vorgehen zur Wiederherstellung im Token \cs{tud@cdfont@symbols@toks}
% definiert.
%    \begin{macrocode}
\newcommand*\tud@cdfont@symbols@set@cmd[1]{%
  \tud@cs@store{#1}%
  \addto@hook\tud@cdfont@symbols@toks{\tud@cs@restore{#1}}%
  \tud@cs@letltx{#1}{tud@cdfont@symbol@#1}%
}
%    \end{macrocode}
% Für das Zurücksetzen muss lediglich das Tokenregister aufgerufen werden.
%    \begin{macrocode}
\newcommand*\tud@cdfont@symbols@reset{\the\tud@cdfont@symbols@toks}
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont@symbols@reset
% \end{macro}^^A \tud@cdfont@symbols@set@cmd
% \end{macro}^^A \tud@cdfont@symbols@toks
% \end{macro}^^A \tud@cdfont@symbols@set
% \begin{macro}{\tud@cdfont@declare@textsymb}
% \changes{v2.07}{2020/01/22}{neu}^^A
% \begin{macro}{\tud@cdmath@symbol@textleftarrow}
% \begin{macro}{\tud@cdmath@symbol@textrightarrow}
% \begin{macro}{\tud@cdmath@symbol@textuparrow}
% \begin{macro}{\tud@cdmath@symbol@textdownarrow}
% \begin{macro}{\tud@cdmath@symbol@textlangle}
% \begin{macro}{\tud@cdmath@symbol@textrangle}
% Die Definition der Textsymbole für die \val{TS1}-Kodierung.
%    \begin{macrocode}
\newcommand*\tud@cdfont@declare@textsymb{%
  \tud@cdfont@declare@symb{textleftarrow}{TS1}{iwona}{24}%
  \tud@cdfont@declare@symb{textrightarrow}{TS1}{iwona}{25}%
  \tud@cdfont@declare@symb{textuparrow}{TS1}{iwona}{94}%
  \tud@cdfont@declare@symb{textdownarrow}{TS1}{iwona}{95}%
  \tud@cdfont@declare@symb{textlangle}{TS1}{iwona}{60}%
  \tud@cdfont@declare@symb{textrangle}{TS1}{iwona}{62}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdmath@symbol@textrangle
% \end{macro}^^A \tud@cdmath@symbol@textlangle
% \end{macro}^^A \tud@cdmath@symbol@textdownarrow
% \end{macro}^^A \tud@cdmath@symbol@textuparrow
% \end{macro}^^A \tud@cdmath@symbol@textrightarrow
% \end{macro}^^A \tud@cdmath@symbol@textleftarrow
% \end{macro}^^A \tud@cdfont@declare@textsymb
% \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@cdfont@init}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\cdfontln}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontrn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontsn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontbn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontxn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontli}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontri}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontsi}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontbi}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\cdfontxi}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdln}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdrn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdsn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdbn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdxn}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdli}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdri}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdsi}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdbi}
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\textcdxs}
% \changes{v2.06}{2018/06/29}{neu}^^A
% Das Makro \cs{tud@cdfont@init} wird für die Defintion aller Befehle zur
% Auswahl der Schriften des \CDs verwendet.
%    \begin{macrocode}
\newcommand*\tud@cdfont@init{%
%    \end{macrocode}
% Zur Nutztung der OTF"~Schriften werden mit \cs{tud@x@fontspec@init} alle 
% benötigten Schriftfamilien mit ihren einzelnen Schriftschnitten definiert.
%    \begin{macrocode}
  \if@tud@cdfont@fam@exist%
    \if@tud@x@fontspec@enabled%
      \def\tud@res@a{%
        UprightFont={OpenSans-Regular},%
        FontFace={l}{n}{OpenSans-Light},%
        FontFace={m}{n}{OpenSans-Regular},%
        FontFace={sb}{n}{OpenSans-SemiBold},%
        FontFace={b}{n}{OpenSans-Bold},%
        FontFace={bx}{n}{OpenSans-Bold},%
        FontFace={eb}{n}{OpenSans-ExtraBold},%
        FontFace={l}{it}{OpenSans-LightItalic},%
        FontFace={m}{it}{OpenSans-Italic},%
        FontFace={sb}{it}{OpenSans-SemiBoldItalic},%
        FontFace={b}{it}{OpenSans-BoldItalic},%
        FontFace={bx}{it}{OpenSans-BoldItalic},%
        FontFace={eb}{it}{OpenSans-ExtraBoldItalic}%
      }%
      \tud@x@fontspec@init{\tud@cdfont@fam@osf}{Numbers=OldStyle,\tud@res@a}%
      \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}%
%    \end{macrocode}
% Da einige Befehle mit \cs{DeclareTextSymbolDefault} für den Textmodus 
% definiert werden und dabei lediglich die Kodierung auf \val{OMS} oder 
% \val{OML} jedoch nicht den Namen der Schriftfamilie anpassen, werden hierfür
% Aliasbefehle definiert, welche sich der Schriften des Paketes \pkg{iwona} 
% bedienen.
%    \begin{macrocode}
    \else%
      \IfFileExists{omliwona.fd}{%
        \input{omliwona.fd}%
        \@for\tud@res@a:={l,m,sb,b,eb}\do{%
          \csletcs{OML/\tud@cdfont@fam@lf/\tud@res@a/it}%
            {OML/iwona/\tud@res@a/it}%
          \csletcs{OML/\tud@cdfont@fam@osf/\tud@res@a/it}%
            {OML/iwona/\tud@res@a/it}%
        }%
      }{}%
      \IfFileExists{omsiwona.fd}{%
        \input{omsiwona.fd}%
        \@for\tud@res@a:={l,m,sb,b,eb}\do{%
          \csletcs{OMS/\tud@cdfont@fam@lf/\tud@res@a/n}%
            {OMS/iwona/\tud@res@a/n}%
          \csletcs{OMS/\tud@cdfont@fam@osf/\tud@res@a/n}%
            {OMS/iwona/\tud@res@a/n}%
        }%
      }{}%
%    \end{macrocode}
% Nun folgen noch einzeln definierte Symbole.
%    \begin{macrocode}
      \tud@cdfont@declare@textsymb%
    \fi%
%    \end{macrocode}
% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte
% \textcdln{Open~Sans~Light}, \textcdrn{Open~Sans~Regular}, 
% \textcdsn{Open~Sans~SemiBold}, \textcdbn{Open~Sans~Bold} und 
% \textcdxn{Open~Sans~ExtraBold} sowie \textcdli{Open~Sans~Light~Italic}, 
% \textcdri{Open~Sans~Regular~Italic}, \textcdsi{Open~Sans~SemiBold}
% \textcdbi{Open~Sans~Bold~Italic} und \textcdxi{Open~Sans~ExtraBold~Italic}
% definiert. Diese können so im Dokument unabhängig von der Option 
% \opt{cdfont} genutzt werden.
%    \begin{macrocode}
    \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}}
    \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}}
    \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}}
    \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}}
    \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}}
    \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}}
    \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}}
    \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}}
    \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}}
    \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}}
%    \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%
    \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}
    \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}
    \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}
    \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}
    \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}
    \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}
    \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}
    \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}
    \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}
    \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}
  \fi%
%    \end{macrocode}
% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
% bereitgestellt.
%    \begin{macrocode}
  \newcommand*\textcdln{}%
  \newcommand*\textcdrn{}%
  \newcommand*\textcdsn{}%
  \newcommand*\textcdbn{}%
  \newcommand*\textcdxn{}%
  \newcommand*\textcdli{}%
  \newcommand*\textcdri{}%
  \newcommand*\textcdsi{}%
  \newcommand*\textcdbi{}%
  \newcommand*\textcdxi{}%
  \DeclareTextFontCommand\textcdln{\cdfontln}%
  \DeclareTextFontCommand\textcdrn{\cdfontrn}%
  \DeclareTextFontCommand\textcdsn{\cdfontsn}%
  \DeclareTextFontCommand\textcdbn{\cdfontbn}%
  \DeclareTextFontCommand\textcdxn{\cdfontxn}%
  \DeclareTextFontCommand\textcdli{\cdfontli}%
  \DeclareTextFontCommand\textcdri{\cdfontri}%
  \DeclareTextFontCommand\textcdsi{\cdfontsi}%
  \DeclareTextFontCommand\textcdbi{\cdfontbi}%
  \DeclareTextFontCommand\textcdxi{\cdfontxi}%
}
%    \end{macrocode}
% \end{macro}^^A \textcdxi
% \end{macro}^^A \textcdbi
% \end{macro}^^A \textcdsi
% \end{macro}^^A \textcdri
% \end{macro}^^A \textcdli
% \end{macro}^^A \textcdxn
% \end{macro}^^A \textcdbn
% \end{macro}^^A \textcdsn
% \end{macro}^^A \textcdrn
% \end{macro}^^A \textcdln
% \end{macro}^^A \cdfontxi
% \end{macro}^^A \cdfontbi
% \end{macro}^^A \cdfontsi
% \end{macro}^^A \cdfontri
% \end{macro}^^A \cdfontli
% \end{macro}^^A \cdfontxn
% \end{macro}^^A \cdfontbn
% \end{macro}^^A \cdfontsn
% \end{macro}^^A \cdfontrn
% \end{macro}^^A \cdfontln
% \end{macro}^^A \tud@cdfont@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}{\tud@db}
% \begin{macro}{\tud@db@wrn}
% \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}
% Die Definition der Befehle der veralteten Schriften des \CDs.
%    \begin{macrocode}
\if@tud@cdoldfont@active
  \renewcommand*\tud@cdfont@init{%
    \if@tud@cdfont@fam@exist%
      \if@tud@x@fontspec@enabled%
        \def\tud@res@a{%
          UprightFont={Univers},%
          FontFace={l}{n}{Univers-Light},%
          FontFace={m}{n}{Univers},%
          FontFace={b}{n}{Univers-Bold},%
          FontFace={bx}{n}{Univers-Bold},%
          FontFace={eb}{n}{Univers-Black},%
          FontFace={l}{it}{Univers-LightOblique},%
          FontFace={m}{it}{Univers-Oblique},%
          FontFace={b}{it}{Univers-BoldOblique},%
          FontFace={bx}{it}{Univers-BoldOblique},%
          FontFace={eb}{it}{Univers-BlackOblique}%
        }%
        \tud@x@fontspec@init{\tud@cdfont@fam@lf}{\tud@res@a}%
      \fi%
%    \end{macrocode}
% Die Schalter zur expliziten Auswahl für die \Univers-Schriftschnitte.
%    \begin{macrocode}
      \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}}
      \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}}
      \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}}
      \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}}
      \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}}
      \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}}
      \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}}
      \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{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%
      \tud@cdfont@fallback\univln{Univers-Light}{md}{up}
      \tud@cdfont@fallback\univrn{Univers}{md}{up}
      \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}
      \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}
      \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl}
      \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl}
      \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl}
      \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl}
    \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{}%
    \DeclareTextFontCommand\textuln{\univln}%
    \DeclareTextFontCommand\texturn{\univrn}%
    \DeclareTextFontCommand\textubn{\univbn}%
    \DeclareTextFontCommand\textuxn{\univxn}%
    \DeclareTextFontCommand\textuls{\univls}%
    \DeclareTextFontCommand\texturs{\univrs}%
    \DeclareTextFontCommand\textubs{\univbs}%
    \DeclareTextFontCommand\textuxs{\univxs}%
%    \end{macrocode}
% Diese werden auch für die Definition der neuen Schriftauswahlbefehle genutzt.
%    \begin{macrocode}
    \newrobustcmd*\cdfontln{\univln}%
    \newrobustcmd*\cdfontrn{\univrn}%
    \newrobustcmd*\cdfontsn{\univrn}%
    \newrobustcmd*\cdfontbn{\univbn}%
    \newrobustcmd*\cdfontxn{\univxn}%
    \newrobustcmd*\cdfontli{\univls}%
    \newrobustcmd*\cdfontri{\univrs}%
    \newrobustcmd*\cdfontsi{\univrs}%
    \newrobustcmd*\cdfontbi{\univbs}%
    \newrobustcmd*\cdfontxi{\univxs}%
    \newcommand*\textcdln{}%
    \newcommand*\textcdrn{}%
    \newcommand*\textcdsn{}%
    \newcommand*\textcdbn{}%
    \newcommand*\textcdxn{}%
    \newcommand*\textcdli{}%
    \newcommand*\textcdri{}%
    \newcommand*\textcdsi{}%
    \newcommand*\textcdbi{}%
    \newcommand*\textcdxi{}%
    \DeclareTextFontCommand\textcdln{\cdfontln}%
    \DeclareTextFontCommand\textcdrn{\cdfontrn}%
    \DeclareTextFontCommand\textcdsn{\cdfontsn}%
    \DeclareTextFontCommand\textcdbn{\cdfontbn}%
    \DeclareTextFontCommand\textcdxn{\cdfontxn}%
    \DeclareTextFontCommand\textcdli{\cdfontli}%
    \DeclareTextFontCommand\textcdri{\cdfontri}%
    \DeclareTextFontCommand\textcdsi{\cdfontsi}%
    \DeclareTextFontCommand\textcdbi{\cdfontbi}%
    \DeclareTextFontCommand\textcdxi{\cdfontxi}%
%    \end{macrocode}
% Anschließend wird für \DIN äquivalent verfahren.
%    \begin{macrocode}
    \if@tud@cdfont@db@exist%
      \if@tud@x@fontspec@enabled%
        \def\tud@res@a{%
          UprightFont={DIN-Bold},%
          FontFace={l}{n}{DIN-Bold},%
          FontFace={m}{n}{DIN-Bold},%
          FontFace={b}{n}{DIN-Bold},%
          FontFace={bx}{n}{DIN-Bold},%
          FontFace={eb}{n}{DIN-Bold},%
          FontFace={l}{it}{Font=DIN-Bold,FakeSlant=0.15},%
          FontFace={m}{it}{Font=DIN-Bold,FakeSlant=0.15},%
          FontFace={b}{it}{Font=DIN-Bold,FakeSlant=0.15},%
          FontFace={bx}{it}{Font=DIN-Bold,FakeSlant=0.15},%
          FontFace={eb}{it}{Font=DIN-Bold,FakeSlant=0.15}%
        }%
        \tud@x@fontspec@init{\tud@cdfont@db}{\tud@res@a}%
      \fi%
%    \end{macrocode}
% Bei der Schriftauswahl wird die entsprechende Mathematikschrift aktiviert.
%    \begin{macrocode}
      \newrobustcmd*\tud@db{%
        \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}%
        \if@tud@cdmath@active\mathversion{tuddin}\fi%
      }%
      \newrobustcmd*\dinbn{\tud@db}%
%    \end{macrocode}
% Da der Schalter \cs{dinbn} innerhalb der Überschriften verwendet wird, sollte 
% dieser zumindest auch auf den Überschriftenstil schalten, falls die benötigte
% Schrift selbst nicht installiert ist.
%    \begin{macrocode}
    \else%
      \newrobustcmd*\tud@db{\tud@db@wrn\sectfont}%
      \newcommand*\tud@db@wrn{%
%<*class>
        \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
        \PackageWarning{tudscrfonts}%
%</package>
        {%
          Font `DIN-Bold' is not available and therefore\MessageBreak
          can not be used for headings%
        }%
        \global\let\tud@db@wrn\relax%
      }%
      \newrobustcmd*\dinbn{\tud@cdfont@fallback@wrn{DIN-Bold}\sectfont}%
    \fi%
    \newcommand*\textdbn{}%
    \DeclareTextFontCommand\textdbn{\dinbn}%
  }%
\fi
%    \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@db@wrn
% \end{macro}^^A \tud@db
% \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}{\tud@cdfont@fallback}
% \changes{v2.05}{2015/12/14}{neu}^^A
% \begin{macro}{\tud@cdfont@fallback@wrn}
% \changes{v2.05}{2015/12/14}{neu}^^A
% Hier wird die Rückfallebene für die Schriftschalter sowie die dazugehörige 
% Warnung definiert.
%    \begin{macrocode}
\newcommand*\tud@cdfont@fallback[4]{%
  \newrobustcmd*#1{%
    \tud@cdfont@fallback@wrn{#2}%
    \sffamily\csuse{#3series}\csuse{#4shape}%
  }%
}
\newcommand*\tud@cdfont@fallback@wrn[1]{%
%<*class>
  \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
  \PackageWarning{tudscrfonts}%
%</package>
  {%
    The requested font `#1'\MessageBreak%
    is not available, a fallback layout is used%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont@fallback@wrn
% \end{macro}^^A \tud@cdfont@fallback
% \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}{\textcd}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \begin{macro}{\tud@cdfont@get}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \changes{v2.06}{2018/06/29}{für \OpenSans überarbeitet}^^A
% \begin{macro}{\tud@cdfont@trim}
% \changes{v2.04}{2015/03/04}{neu}^^A
% \changes{v2.06}{2018/06/29}{für \OpenSans überarbeitet}^^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{textcd} bereitgestellt, der die Auswahl der Schrift als 
% Textbefehl ermöglicht.
%    \begin{macrocode}
\newcommand*\cdfont[1]{%
  \tud@cdfont@get{#1}%
  \ifx\@tempc\relax\else%
    \csuse{cdfont\@tempc}%
  \fi%
}
\newcommand*\textcd[2]{%
  \tud@cdfont@get{#1}%
  \ifx\@tempc\relax%
    \textsf{#2}%
  \else%
    \csuse{textcd\@tempc}{#2}%
  \fi%
}
\if@tud@cdoldfont@active
  \renewcommand*\cdfont[1]{%
    \tud@cdfont@get{#1}%
    \ifx\@tempc\relax\else%
      \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}%
    \fi%
  }%
  \renewcommand*\textcd[2]{%
    \tud@cdfont@get{#1}%
    \ifx\@tempc\relax%
      \textsf{#2}%
    \else%
      \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}%
    \fi%
  }%
\fi
\newcommand*\tud@cdfont@get[1]{%
  \tud@cdfont@trim\@tempa{#1}%
  \ifstr{\@tempa}{l}{\def\@tempc{ln}}{%
  \ifstr{\@tempa}{}{\def\@tempc{rn}}{%
  \ifstr{\@tempa}{r}{\def\@tempc{rn}}{%
  \ifstr{\@tempa}{s}{\def\@tempc{sn}}{%
  \ifstr{\@tempa}{b}{\def\@tempc{bn}}{%
  \ifstr{\@tempa}{x}{\def\@tempc{xn}}{%
  \ifstr{\@tempa}{li}{\def\@tempc{li}}{%
  \ifstr{\@tempa}{il}{\def\@tempc{li}}{%
  \ifstr{\@tempa}{i}{\def\@tempc{ri}}{%
  \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{%
  \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{%
  \ifstr{\@tempa}{si}{\def\@tempc{si}}{%
  \ifstr{\@tempa}{is}{\def\@tempc{si}}{%
  \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{%
  \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{%
  \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{%
  \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{%
    \let\@tempc\relax%
%<*class>
    \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
    \PackageWarning{tudscrfonts}%
%</package>
      {The font `#1' is unknown}%
  }}}}}}}}}}}}}}}}}%
}
\if@tud@cdoldfont@active
  \renewcommand*\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}%
    }}}}}}}}}}}}}}%
  }%
\fi
\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{opensans}{}%
  \tud@cdfont@@trim{light}{l}%
  \tud@cdfont@@trim{regular}{r}%
  \tud@cdfont@@trim{book}{r}%
  \tud@cdfont@@trim{semibold}{s}%
  \tud@cdfont@@trim{demi}{s}%
  \tud@cdfont@@trim{extrabold}{x}%
  \tud@cdfont@@trim{black}{x}%
  \tud@cdfont@@trim{bold}{b}%
  \tud@cdfont@@trim{italic}{i}%
  \tud@cdfont@@trim{oblique}{i}%
  \tud@cdfont@@trim{slanted}{i}%
  \let#1\@tempa%
}
\if@tud@cdoldfont@active
  \renewcommand*\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%
  }%
\fi
\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 \textcd
% \end{macro}^^A \tudfont
% \end{macro}^^A \cdfont
%
% \iffalse
%</body>
%<*option>
% \fi
%
% \subsubsection{TypeWriter-Schriften}
%
% \begin{option}{ttfont}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@num}
% \changes{v2.06}{2018/07/12}{neu}^^A
% Mit dieser Option regelt, ob die TypeWriter-Schriften durch den Anwender
% manuell eingestellt werden oder aber die entsprechenden Schriften aus den 
% Paketen \pkg{lmodern} oder \pkg{roboto-mono} zum Einsatz kommt.
%    \begin{macrocode}
\newcommand*\tud@ttfont@num{0}
\TUD@key{ttfont}[true]{%
  \TUD@set@numkey{ttfont}{@tempa}{%
    \TUD@bool@numkey,%
    {roboto}{1},{roboto-mono}{1},{robo}{1},%
    {lm}{2},{lmtt}{2},{lmodern}{2}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% false
      \renewcommand*\tud@ttfont@num{0}%
    \or% roboto
      \renewcommand*\tud@ttfont@num{1}%
    \or% lmodern
      \renewcommand*\tud@ttfont@num{2}%
    \fi%
    \TUD@SpecialOptionAtDocument{tud@font@set}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@ttfont@num
% \end{option}^^A ttfont
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \begin{macro}{\tud@ttfont@set}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@@set}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@md}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@bf}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@ebf}
% \changes{v2.06}{2018/07/12}{neu}^^A
% Die Auswahl der TypeWriter-Schrift.
%    \begin{macrocode}
\newcommand*\tud@ttfont@set{%
  \if@tud@ttfont@rb@exist\else\ifnum\tud@ttfont@num=\@ne\relax%
%<*class>
    \ClassWarning{\TUD@Class@Name}%
%</class>
%<*package>
    \PackageWarning{tudscrfonts}%
%</package>
    {%
      The package `roboto-mono' is missing so the\MessageBreak%
      typewriter font of package `lmodern' is used%
    }%
    \TUDoptions{ttfont=lmodern}%
  \fi\fi%
  \ifcase\tud@ttfont@num\relax% false
    \let\tud@ttfont@fam\ttdefault%
  \or% roboto
    \let\tud@ttfont@fam\tud@ttfont@rb%
  \or% lmodern
    \let\tud@ttfont@fam\tud@ttfont@lm%
  \fi%
  \ifcase\tud@ttfont@num\relax\else% !false
    \if@tud@x@fontspec@enabled%
%    \end{macrocode}
% Das Setzen der TypeWriter-Schriften aus dem Paket \pkg{lmodern} erfolgt nur,
% wenn diese nicht standardmäßig durch \pkg{fontspec} aktiviert ist.
%    \begin{macrocode}
      \ifx\ttdefault\tud@ttfont@fam\else%
        \tud@x@fontspec@set{tt}{\tud@ttfont@fam}%
      \fi%
    \else%
      \renewcommand*\ttdefault{\tud@ttfont@fam}%
    \fi%
  \fi%
  \tud@ttfont@@set%
}
\newcommand*\tud@ttfont@md{}
\newcommand*\tud@ttfont@bf{}
\newcommand*\tud@ttfont@ebf{}
\newcommand*\tud@ttfont@@set{%
  \ifcase\tud@ttfont@num\relax%
    \ifundef{\mdseries@tt}{%
      \edef\tud@ttfont@md{\tud@cs@use{mddefault}}%
    }{%
      \edef\tud@ttfont@md{\mdseries@tt}%
    }%
    \ifundef{\bfseries@tt}{%
      \edef\tud@ttfont@bf{\tud@cs@use{bfdefault}}%
    }{%
      \edef\tud@ttfont@bf{\bfseries@tt}%
    }%
    \edef\tud@ttfont@ebf{\tud@ttfont@bf}%
  \or% roboto
    \renewcommand*\tud@ttfont@md{\tud@cdfont@md}%
    \renewcommand*\tud@ttfont@bf{\tud@cdfont@bf}%
    \renewcommand*\tud@ttfont@ebf{\tud@cdfont@ebf}%
  \else% lmodern
    \if@tud@cdfont@heavy%
      \renewcommand*\tud@ttfont@md{m}%
      \renewcommand*\tud@ttfont@bf{b}%
      \renewcommand*\tud@ttfont@ebf{b}%
    \else%
      \renewcommand*\tud@ttfont@md{l}%
      \if@tud@cdfont@ultrabold%
        \renewcommand*\tud@ttfont@bf{b}%
        \renewcommand*\tud@ttfont@ebf{b}%
      \else%
        \renewcommand*\tud@ttfont@bf{m}%
        \renewcommand*\tud@ttfont@ebf{b}%
      \fi%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@ttfont@ebf
% \end{macro}^^A \tud@ttfont@bf
% \end{macro}^^A \tud@ttfont@md
% \end{macro}^^A \tud@ttfont@@set
% \end{macro}^^A \tud@ttfont@set
% \begin{macro}{\tud@ttfont@init}
% \changes{v2.06}{2018/07/12}{neu}^^A
% \begin{macro}{\tud@ttfont@rb@scale}
% \changes{v2.06}{2018/08/30}{neu}^^A
% Mit \cs{tud@ttfont@init} erfolgt die Defintion der TypeWriter-Schriften.
%    \begin{macrocode}
\newcommand*\tud@ttfont@init{%
%    \end{macrocode}
% Für die \texttt{RobotoMono} wird der Skalierungsfaktor fest definiert.
%    \begin{macrocode}
  \newcommand*\tud@ttfont@rb@scale{0.9}%
  \if@tud@x@fontspec@enabled%
    \if@tud@ttfont@rb@exist%
      \tud@x@fontspec@init{\tud@ttfont@rb}{%
        Scale={\tud@ttfont@rb@scale},%
        UprightFont={RobotoMono-Regular},%
        FontFace={l}{n}{RobotoMono-Light},%
        FontFace={m}{n}{RobotoMono-Regular},%
        FontFace={sb}{n}{RobotoMono-Medium},%
        FontFace={b}{n}{RobotoMono-Bold},%
        FontFace={bx}{n}{RobotoMono-Bold},%
        FontFace={eb}{n}{RobotoMono-Bold},%
        FontFace={l}{it}{RobotoMono-LightItalic},%
        FontFace={m}{it}{RobotoMono-Italic},%
        FontFace={sb}{it}{RobotoMono-MediumItalic},%
        FontFace={b}{it}{RobotoMono-BoldItalic},%
        FontFace={bx}{it}{RobotoMono-BoldItalic},%
        FontFace={eb}{it}{RobotoMono-BoldItalic}%
      }%
    \fi%
%    \end{macrocode}
% Gewöhnlich ist die Schrift \texttt{lmtt} via \pkg{fontspec} voreingestellt. 
% Allerdings wird diese von einigen Paketen mit \cs{setmonofont} überschrieben. 
% Für diesen Fall wird die Schriftfamilie \texttt{lmtt} mit den Mitteln von 
% \pkg{fontspec} definiert.
%    \begin{macrocode}
    \ifx\ttdefault\tud@ttfont@lm\else%
      \tud@x@fontspec@init{\tud@ttfont@lm}{%
        UprightFont={LMMono10-Regular},%
        FontFace={l}{n}{LMMonoLt10-Regular},%
        FontFace={m}{n}{LMMono10-Regular},%
        FontFace={b}{n}{LMMonoLt10-Bold},%
        FontFace={bx}{n}{LMMonoLt10-Bold},%
        FontFace={l}{it}{LMMonoLt10-Oblique},%
        FontFace={m}{it}{LMMonoSlant10-Regular},%
        FontFace={b}{it}{LMMonoLt10-BoldOblique},%
        FontFace={bx}{it}{LMMonoLt10-BoldOblique}%
      }%
    \fi%
  \else%
%    \end{macrocode}
% Existiert das Paket \pkg{roboto-mono}, wird die Schriftfamilie \val{tudtt} 
% definiert und die passenden Type1-Schriften für diese definiert.
%    \begin{macrocode}
    \if@tud@ttfont@rb@exist%
%    \end{macrocode}
% Der Skalierungsfaktor für das NFSS gesetzt.
%    \begin{macrocode}
      \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}%
      \begingroup%
        \def\tud@res@c##1##2{%
          \tud@lowerstring\tud@res@a{##1}%
          \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}%
%    \end{macrocode}
% Das temporäre Makro verlangt im ersten Argument die NFSS-Serie, im zweiten 
% den Teil des Dateinamens der \texttt{RobotoMono} für aufrechte Metriken und 
% im dritten Argument den für kursive. 
%    \begin{macrocode}
          \def\tud@res@b####1####2####3{%
            \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{%
               <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a%
            }{}%
            \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{%
               <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a%
            }{}%
            \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{%
              <->ssub*\tud@ttfont@rb/####1/it%
            }{}%
%    \end{macrocode}
% Kapitälchen sind nicht für alle Kodierungen definiert, weshalb diese nur 
% optional definiert werden. 
%    \begin{macrocode}
            \ifbool{##2}{%
              \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{%
                 <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a%
              }{}%
              \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{%
                 <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a%
              }{}%
              \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{%
                <->ssub*\tud@ttfont@rb/####1/scit%
              }{}%
            }{}%
          }%
          \tud@res@b{l}{Light}{LightItalic}%
          \tud@res@b{m}{Regular}{Italic}%
          \tud@res@b{sb}{Medium}{MediumItalic}%
          \tud@res@b{b}{Bold}{BoldItalic}%
          \tud@res@b{bx}{Bold}{BoldItalic}%
        }%
        \tud@res@c{OT1}{true}%
        \tud@res@c{T1}{true}%
        \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}%
      \endgroup%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@ttfont@rb@scale
% \end{macro}^^A \tud@ttfont@init
%
% \iffalse
%</body>
%<*option>
% \fi
%
% \subsubsection{Schriften für den Mathematiksatz}
%
% Für den mathematischen Satz werden ergänzend zur \OpenSans die Symbole aus 
% dem Paket \pkg{mdsymbol} genutzt. Diese werden bereits bei der Erstellung der 
% Type1-Schriften eingefügt.
%
% Die veralteten Schriften des \CDs \Univers und \DIN besitzen keine Glyphen für
% den Mathematiksatz. Daher 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 die darin enthaltenen Glyphen direkt bei der Installation 
% der Schriften eingebunden werden.
%
% \begin{option}{cdmath}
% \begin{macro}{\if@tud@cdmath@active}
% \begin{macro}{\if@tud@cdmath@active@locked}
% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz
% für das gesamte Dokument umgestellt werden.
% \ToDo{%
%   Option evtl. überarbeiten und nicht mehr im Dokument zulassen;
%   andernfalls müssten alle bereitgestellte Befehle für den Mathematiksatz
%   gesichert und neu definiert werden, weil diese ggf. von anderen Paketen
%   umdefiniert werden. Bspw. \cs{the}\cs{mathcode`!}
% }[v2.07]
%    \begin{macrocode}
\tud@locked@newbool{@tud@cdmath@active}
\tud@locked@bool@preset{@tud@cdmath@active}{true}%
\TUD@key{cdmath}[true]{%
  \TUD@set@numkey{cdmath}{@tempa}{%
    \TUD@bool@numkey,%
    {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},%
    {sansmath}{1},{sans}{1},%
    {upgreek}{2},{uprightgreek}{2},{uprightgreeks}{2},%
    {slgreek}{3},{slantedgreek}{3},{slantedgreeks}{3},%
    {itgreek}{3},{italicgreek}{3},{italicgreeks}{3},%
    {texgreek}{4},{latexgreek}{4},{texgreeks}{4},{latexgreeks}{4},%
    {standardgreek}{4},{standardgreeks}{4}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% false
      \tud@locked@bool@set{@tud@cdmath@active}{false}%
      \TUD@SpecialOptionAtDocument{tud@math@set}%
    \or% true
      \tud@locked@bool@set{@tud@cdmath@active}{true}%
      \TUD@SpecialOptionAtDocument{tud@math@set}%
    \or% uprightgreek
      \TUDoptions{slantedgreek=false}%
    \or% slantedgreek
      \TUDoptions{slantedgreek=true}%
    \or% standardgreek
      \TUDoptions{slantedgreek=standard}%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@cdmath@active@locked
% \end{macro}^^A \if@tud@cdmath@active
% \end{option}^^A cdmath
% \begin{option}{slantedgreek}
% \begin{option}{slantedGreek}
% \begin{option}{slantedGreeks}
% \changes{v2.04}{2015/02/27}{neu}^^A
% \begin{macro}{\if@tud@slantedgreek}
% Mit dieser Option kann die Neigung der griechischen Majuskeln geändert werden.
%    \begin{macrocode}
\newcommand*\tud@slantedgreek@num{0}
\TUD@key{slantedgreek}[true]{%
  \TUD@set@numkey{slantedgreek}{@tempa}{%
    \TUD@bool@numkey,%
    {up}{0},{upright}{0},%
    {sl}{1},{slanted}{1},{it}{1},{italic}{1},%
    {standard}{2},{std}{2},{tex}{2},{latex}{2},{stdgrk}{2},{stdgrks}{2},%
    {standardgreek}{2},{standardgreeks}{2},%
    {texgreek}{2},{latexgreek}{2},{texgreeks}{2},{latexgreeks}{2}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% upright
      \renewcommand*\tud@slantedgreek@num{0}%
    \or% slanted
      \renewcommand*\tud@slantedgreek@num{1}%
    \or% standard
      \renewcommand*\tud@slantedgreek@num{2}%
    \fi%
    \TUD@SpecialOptionAtDocument{tud@math@set}%
  \fi%
}
\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}}
\TUD@key{slantedGreeks}[true]{\TUDoptions{slantedgreek=#1}}
%    \end{macrocode}
% \end{macro}^^A \if@tud@slantedgreek
% \end{option}^^A slantedGreeks
% \end{option}^^A slantedGreek
% \end{option}^^A slantedgreek
% \begin{option}{lgrgreek}
% \changes{v2.06}{2019/06/13}{neu}^^A
% \begin{option}{lgrgreeks}
% \changes{v2.06}{2019/06/13}{neu}^^A
% \begin{option}{LGRgreek}
% \changes{v2.06}{2019/06/13}{neu}^^A
% \begin{option}{LGRgreeks}
% \changes{v2.06}{2019/06/13}{neu}^^A
% \begin{macro}{\if@tud@lgrgreeks}
% \changes{v2.06}{2019/06/13}{neu}^^A
% Mit dieser Option lässt sich die Nutzung von griechischen Glyphen der aus der 
% LGR-Kodierung der aktuellen Schriftfamilie für den Mathematiksatz aktivieren.
%    \begin{macrocode}
\newif\if@tud@lgrgreeks
\TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}}
\TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}}
\TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}}
\TUD@key{LGRgreek}[true]{\TUDoptions{lgrgreeks=#1}}
%    \end{macrocode}
% \end{macro}^^A \if@tud@lgrgreeks
% \end{option}^^A LGRgreeks
% \end{option}^^A LGRgreek
% \end{option}^^A lgrgreeks
% \end{option}^^A lgrgreek
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \begin{macro}{\tud@if@issymbolfont}
% \changes{v2.06}{2019/06/17}{neu}^^A
% \begin{macro}{\tud@if@ismathalphabet}
% \changes{v2.06}{2019/06/17}{neu}^^A
% Diese Abfragen prüfen, ob der gegebene Bezeichner bzw. das gegebene Makro 
% für eine Deklaration mit \cs{DeclareSymbolFont} bzw. \cs{DeclareMathAlphabet} 
% verwendet wurde.
%    \begin{macrocode}
\newcommand*\tud@if@issymbolfont[1]{%
  \begingroup%
    \edef\tud@res@a{%
      \noexpand\in@\expandafter\noexpand%
        \csname sym#1\endcsname%
        {\expandonce\group@list}%
    }%
    \tud@res@a%
    \ifin@%
      \aftergroup\@firstoftwo%
    \else%
      \aftergroup\@secondoftwo%
    \fi%
  \endgroup%
}
\@onlypreamble\tud@if@issymbolfont
\newcommand*\tud@if@ismathalphabet[1]{%
  \begingroup%
    \edef\tud@res@a{%
      \noexpand\in@\expandafter\noexpand%
        \csname\expandafter\@gobble\string#1\space\endcsname%
        {\expandonce\alpha@list}%
    }%
    \tud@res@a%
    \ifin@%
      \aftergroup\@firstoftwo%
    \else%
      \aftergroup\@secondoftwo%
    \fi%
  \endgroup%
}
\@onlypreamble\tud@if@ismathalphabet
%    \end{macrocode}
% \end{macro}^^A \tud@if@ismathalphabet
% \end{macro}^^A \tud@if@issymbolfont
% \begin{macro}{\tud@math@loop@greeks@all}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@math@loop@greeks@uc}
% \changes{v2.06}{2018/07/17}{neu}^^A
% \begin{macro}{\tud@math@loop@greeks@lc}
% \changes{v2.06}{2018/07/17}{neu}^^A
% Um Änderungen an den griechischen Glyphen vornehmen zu können, wird das Makro
% \cs{tud@math@loop@greeks@all} definiert, mit dem eine Namensliste der Glyphen
% durchlaufen wird. Dabei wird in Majuskeln und Minuskeln unterschieden.
%    \begin{macrocode}
\newcommand*\tud@math@loop@greeks@all[1]{%
  \tud@math@loop@greeks@uc{#1}%
  \tud@math@loop@greeks@lc{#1}%
}
\newcommand*\tud@math@loop@greeks@uc[1]{%
  \@for\@tempa:={%
    Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
  }\do{\expandafter#1\expandafter{\@tempa}}%
}
\newcommand*\tud@math@loop@greeks@lc[1]{%
  \@for\@tempa:={%
    alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,%
    mu,nu,xi,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,%
    varepsilon,vartheta,varpi,varrho,varsigma,varphi%
  }\do{\expandafter#1\expandafter{\@tempa}}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@math@loop@greeks@lc
% \end{macro}^^A \tud@math@loop@greeks@uc
% \end{macro}^^A \tud@math@loop@greeks@all
% \begin{macro}{\tud@math@declare@lgrgreeks}
% \changes{v2.06}{2019/06/18}{neu}^^A
% Hiermit werden die beiden Symbolschriften \val{tudupgrk} und \val{tuditgrk} 
% in der LGR-Kodierung definiert. Diese werden insbesondere für die \OpenSans 
% benötigt, da das Paket \pkg{opensans} keine Schriften in mathematischen 
% Kodierungen enthält. Das etrste Argument enthält die zu deklarierende 
% Schriftfamilie, zweites und drittes Argument die Schriftstärke für normale 
% und fette Glyphen, die letzten beiden die Schriftgestalt für aufrechte und 
% kursive Variante.
%    \begin{macrocode}
\newcommand*\tud@math@declare@lgrgreeks[5]{%
  \ifundef{\T@LGR}{\DeclareFontEncoding{LGR}{}{}}{}%
  \tud@if@issymbolfont{tudupgrk}{%
    \SetSymbolFont{tudupgrk}{normal}{LGR}{#1}{#2}{#4}%
  }{%
    \DeclareSymbolFont{tudupgrk}{LGR}{#1}{#2}{#4}%
  }%
  \SetSymbolFont{tudupgrk}{bold}{LGR}{#1}{#3}{#4}%
  \tud@if@issymbolfont{tuditgrk}{%
    \SetSymbolFont{tuditgrk}{normal}{LGR}{#1}{#2}{#5}%
  }{%
    \DeclareSymbolFont{tuditgrk}{LGR}{#1}{#2}{#5}%
  }%
  \SetSymbolFont{tuditgrk}{bold}{LGR}{#1}{#3}{#5}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@math@declare@lgrgreeks
% \begin{macro}{\tud@math@map@greeks}
% \changes{v2.06}{2018/07/02}{neu}^^A
% \begin{macro}{\tud@math@map@@greeks}
% \changes{v2.06}{2018/07/02}{neu}^^A
% \begin{macro}{\tud@math@map@@@greeks}
% \changes{v2.06}{2018/07/02}{neu}^^A
% \begin{macro}{\tud@math@supplement@greeks}
% \changes{v2.06}{2019/06/19}{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}{\upalpha}
% \begin{macro}{\upbeta}
% \begin{macro}{\upgamma}
% \begin{macro}{\updelta}
% \begin{macro}{\upepsilon}
% \begin{macro}{\upzeta}
% \begin{macro}{\upeta}
% \begin{macro}{\uptheta}
% \begin{macro}{\upiota}
% \begin{macro}{\upkappa}
% \begin{macro}{\uplambda}
% \begin{macro}{\upmu}
% \begin{macro}{\upnu}
% \begin{macro}{\upxi}
% \begin{macro}{\uppi}
% \begin{macro}{\uprho}
% \begin{macro}{\upsigma}
% \begin{macro}{\uptau}
% \begin{macro}{\upupsilon}
% \begin{macro}{\upphi}
% \begin{macro}{\upchi}
% \begin{macro}{\uppsi}
% \begin{macro}{\upomega}
% \begin{macro}{\upvarepsilon}
% \begin{macro}{\upvartheta}
% \begin{macro}{\upvarpi}
% \begin{macro}{\upvarrho}
% \begin{macro}{\upvarsigma}
% \begin{macro}{\upvarphi}
% \begin{macro}{\itDelta}
% \begin{macro}{\itGamma}
% \begin{macro}{\itLambda}
% \begin{macro}{\itOmega}
% \begin{macro}{\itPhi}
% \begin{macro}{\itPi}
% \begin{macro}{\itPsi}
% \begin{macro}{\itSigma}
% \begin{macro}{\itTheta}
% \begin{macro}{\itUpsilon}
% \begin{macro}{\itXi}
% \begin{macro}{\italpha}
% \begin{macro}{\itbeta}
% \begin{macro}{\itgamma}
% \begin{macro}{\itdelta}
% \begin{macro}{\itepsilon}
% \begin{macro}{\itzeta}
% \begin{macro}{\iteta}
% \begin{macro}{\ittheta}
% \begin{macro}{\itiota}
% \begin{macro}{\itkappa}
% \begin{macro}{\itlambda}
% \begin{macro}{\itmu}
% \begin{macro}{\itnu}
% \begin{macro}{\itxi}
% \begin{macro}{\itpi}
% \begin{macro}{\itrho}
% \begin{macro}{\itsigma}
% \begin{macro}{\ittau}
% \begin{macro}{\itupsilon}
% \begin{macro}{\itphi}
% \begin{macro}{\itchi}
% \begin{macro}{\itpsi}
% \begin{macro}{\itomega}
% \begin{macro}{\itvarepsilon}
% \begin{macro}{\itvartheta}
% \begin{macro}{\itvarpi}
% \begin{macro}{\itvarrho}
% \begin{macro}{\itvarsigma}
% \begin{macro}{\itvarphi}
% \begin{macro}{\otherDelta}
% \begin{macro}{\otherGamma}
% \begin{macro}{\otherLambda}
% \begin{macro}{\otherOmega}
% \begin{macro}{\otherPhi}
% \begin{macro}{\otherPi}
% \begin{macro}{\otherPsi}
% \begin{macro}{\otherSigma}
% \begin{macro}{\otherTheta}
% \begin{macro}{\otherUpsilon}
% \begin{macro}{\otherXi}
% \begin{macro}{\otheralpha}
% \begin{macro}{\otherbeta}
% \begin{macro}{\othergamma}
% \begin{macro}{\otherdelta}
% \begin{macro}{\otherepsilon}
% \begin{macro}{\otherzeta}
% \begin{macro}{\othereta}
% \begin{macro}{\othertheta}
% \begin{macro}{\otheriota}
% \begin{macro}{\otherkappa}
% \begin{macro}{\otherlambda}
% \begin{macro}{\othermu}
% \begin{macro}{\othernu}
% \begin{macro}{\otherxi}
% \begin{macro}{\otherpi}
% \begin{macro}{\otherrho}
% \begin{macro}{\othersigma}
% \begin{macro}{\othertau}
% \begin{macro}{\otherupsilon}
% \begin{macro}{\otherphi}
% \begin{macro}{\otherchi}
% \begin{macro}{\otherpsi}
% \begin{macro}{\otheromega}
% \begin{macro}{\othervarepsilon}
% \begin{macro}{\othervartheta}
% \begin{macro}{\othervarpi}
% \begin{macro}{\othervarrho}
% \begin{macro}{\othervarsigma}
% \begin{macro}{\othervarphi}
% Es gibt eine Vielzahl von Paketen, die das Setzen von aufrechten griechischen 
% Glyphen adressieren. Allerdings gibt es keinen einheitlichen Standard, was 
% die Nomenklatur der Auswahlbefehle betrifft. Mit diesem Makro wird nach den 
% am häufigsten auftretenden Varianten für die Auswahl für aufrechte und 
% kursive Glyphen gesucht, um diese auf die von \TUDScript verwendete 
% Nomenklatur abzubilden, damit diese unabhängig von der Einstellung für
% \opt{cdmath} genutzt werden kann und somit neben den normalen Makros für die 
% zusätzlichen Befehle (\cs{up\meta{Bezeichner}}, \cs{it\meta{Bezeichner}})
% für das explizite Auswählen aufrechter und kursiver Buchstaben bereitstehen.
%    \begin{macrocode}
\newcommand*\tud@math@map@greeks{%
  \tud@math@loop@greeks@all\tud@math@map@@greeks%
  \tud@math@loop@greeks@uc\tud@math@map@@@greeks%
  \tud@math@supplement@greeks%
}
\newcommand*\tud@math@map@@greeks[1]{%
  \ifcsundef{it#1}{%
    \@for\tud@res@a:={#1sl,sl#1,#1it}\do{%
      \ifcsundef{\tud@res@a}{}{\csedef{it#1}{\csname\tud@res@a\endcsname}}%
    }%
  }{}%
  \ifcsundef{up#1}{%
    \ifcsundef{#1up}{}{\csedef{up#1}{\csname#1up\endcsname}}%
  }{}%
  \ifcsundef{other#1}{%
    \ifcsundef{#1other}{}{\csedef{other#1}{\csname#1other\endcsname}}%
  }{}%
}
%    \end{macrocode}
% Einige Pakete stellen für griechische Majuskeln die Befehle \cs{var\dots} 
% bereit, um diese im kursiven Schnitt zu setzen. Weiterhin existiert für 
% aufrechte Majuskeln auch noch die Form \cs{Up\meta{Bezeichner}}. Diese werden 
% ebenfalls ausgewertet und ggf. auf die \TUDScript-Nomenklatur abgebildet.
%    \begin{macrocode}
\newcommand*\tud@math@map@@@greeks[1]{%
  \ifcsundef{it#1}{%
    \ifcsundef{var#1}{}{\csedef{it#1}{\csname var#1\endcsname}}%
  }{}%
  \ifcsundef{up#1}{%
    \tud@lowerstring\tud@res@a{#1}%
    \edef\tud@res@a{Up\tud@res@a}%
    \ifcsundef{\tud@res@a}{}{\csedef{up#1}{\csname\tud@res@a\endcsname}}%
  }{}%
}
%    \end{macrocode}
% Mit diesem Makro werden in letztendlich~-- nachdem \cs{tud@math@map@greeks} 
% bereits ausgeführt wurde~-- die standardmäßig definierten Symbolschriften 
% \val{operators} und \val{letters} geprüft, ob diese in den Kodierungen 
% \val{OT1} bzw. \val{OML} genutzt werden. Trifft dies zu, so werden die 
% Schriftfamilien der Symbolschriften genutzt, um die Auswahlbefehle für die 
% griechischen Glyphen zu definieren, sofern dies noch notwendig ist.
%    \begin{macrocode}
\newcommand*\tud@math@supplement@greeks{%
%    \end{macrocode}
% Um keine globalen Änderungen vorzunehmen, wird die normale Mathematikversion 
% in einer Gruppe durchsucht. Alle mit \cs{DeclareMathSymbol} vorzunehmenden 
% Deklarationen werden in \cs{tud@res@c} gesichert und nach der Gruppe 
% aufgerufen.
%    \begin{macrocode}
  \begingroup%
    \newcommand*\tud@math@operators@enc{}%
    \newcommand*\tud@math@operators@fam{}%
    \newcommand*\tud@math@letters@enc{}%
    \newcommand*\tud@math@letters@fam{}%
    \def\getanddefine@fonts##1##2{%
      \ifx\symoperators##1%
        \expandafter\tud@res@a\string##2\@nil%
      \else\ifx\symletters##1%
        \expandafter\tud@res@b\string##2\@nil%
      \fi\fi%
    }%
    \def\tud@res@a##1##2/##3/##4\@nil{%
      \def\tud@math@operators@enc{##2}%
      \def\tud@math@operators@fam{##3}%
    }%
    \def\tud@res@b##1##2/##3/##4\@nil{%
      \def\tud@math@letters@enc{##2}%
      \def\tud@math@letters@fam{##3}%
    }%
    \tud@cs@use{mv@normal}%
    \let\tud@res@c\@empty%
    \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{%
      \def\tud@res@a##1{%
        \ifcsundef{it##1}{%
          \eappto\tud@res@c{%
            \noexpand\DeclareMathSymbol{\csname it##1\endcsname}%
              {\noexpand\mathalpha}{letters}{\the\tud@res@cnt}%
          }%
        }{}%
        \advance\tud@res@cnt\@ne\relax%
      }%
      \tud@res@cnt=\z@\relax%
      \tud@math@loop@greeks@all\tud@res@a%
    }{}%
    \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{%
      \def\tud@res@a##1{%
        \ifcsundef{up##1}{%
          \eappto\tud@res@c{%
            \noexpand\DeclareMathSymbol{\csname up##1\endcsname}%
              {\noexpand\mathalpha}{operators}{\the\tud@res@cnt}%
          }%
        }{}%
        \advance\tud@res@cnt\@ne\relax%
      }%
      \tud@res@cnt=\z@\relax%
      \tud@math@loop@greeks@uc\tud@res@a%
    }{}%
%    \end{macrocode}
% Mit der Option \opt{lgrgreeks} besteht zusätzlich die Möglichkeit, fehlende 
% Glyphen aus einer potenziell sinnvollen Schriftfamilie in der LGR-Kodierung
% zu ergänzen. Wird eine solche gefunden, wird diese in \cs{tud@res@a} abgelegt.
%    \begin{macrocode}
    \let\tud@res@a\@empty%
    \if@tud@lgrgreeks%
      \tud@if@fdfileexists{LGR}{\tud@cs@use{familydefault}}{%
        \def\tud@res@a{\tud@cs@use{familydefault}}%
      }{%
        \tud@if@fdfileexists{LGR}{\tud@math@letters@fam}{%
          \let\tud@res@a\tud@math@letters@fam%
        }{%
          \tud@if@fdfileexists{LGR}{\tud@math@operators@fam}{%
            \let\tud@res@a\tud@math@operators@fam%
          }{}%
        }%
      }%
    \fi%
%    \end{macrocode}
% Die Gruppe wird beendet, die in \cs{tud@res@c} gesicherten Deklarationen 
% werden ausgeführt, und der Inhalt von \cs{tud@res@a} wird erhalten.
%    \begin{macrocode}
    \edef\tud@res@a{%
      \endgroup%
      \expandonce\tud@res@c%
      \edef\noexpand\tud@res@a{\tud@res@a}%
    }%
  \tud@res@a%
  \ifx\tud@res@a\@empty\else%
%    \end{macrocode}
% Mit der gefunden LGR-Schriftfamilie werden alle bisher nicht vorhanden 
% aufrechte und kursive griechische Glyphen aus den entsprechenden Slots 
% ergänzt.
%    \begin{macrocode}
    \tud@math@declare@lgrgreeks{\tud@res@a}%
      {\tud@cs@use{mddefault}}{\tud@cs@use{bfdefault}}%
      {\tud@cs@use{updefault}}{\tud@cs@use{itdefault}}%
    \let\tud@res@c\@empty%
    \def\tud@res@b##1##2{%
      \ifcsundef{it##1}{%
        \eappto\tud@res@c{%
          \noexpand\DeclareMathSymbol{\csname it##1\endcsname}%
              {\noexpand\mathalpha}{tuditgrk}{##2}%
        }%
      }{}%
      \ifcsundef{up##1}{%
        \eappto\tud@res@c{%
          \noexpand\DeclareMathSymbol{\csname up##1\endcsname}%
              {\noexpand\mathalpha}{tudupgrk}{##2}%
        }%
      }{}%
    }%
    \tud@res@b{Gamma}{71}%
    \tud@res@b{Delta}{68}%
    \tud@res@b{Theta}{74}%
    \tud@res@b{Lambda}{76}%
    \tud@res@b{Xi}{88}%
    \tud@res@b{Pi}{80}%
    \tud@res@b{Sigma}{83}%
    \tud@res@b{Upsilon}{85}%
    \tud@res@b{Phi}{70}%
    \tud@res@b{Psi}{89}%
    \tud@res@b{Omega}{87}%
    \tud@res@b{alpha}{97}%
    \tud@res@b{beta}{98}%
    \tud@res@b{gamma}{103}%
    \tud@res@b{delta}{100}%
    \tud@res@b{epsilon}{101}%
    \tud@res@b{zeta}{122}%
    \tud@res@b{eta}{104}%
    \tud@res@b{theta}{106}%
    \tud@res@b{iota}{105}%
    \tud@res@b{kappa}{107}%
    \tud@res@b{lambda}{108}%
    \tud@res@b{mu}{109}%
    \tud@res@b{nu}{110}%
    \tud@res@b{xi}{120}%
    \tud@res@b{pi}{112}%
    \tud@res@b{rho}{114}%
    \tud@res@b{sigma}{115}%
    \tud@res@b{tau}{116}%
    \tud@res@b{upsilon}{117}%
    \tud@res@b{phi}{102}%
    \tud@res@b{chi}{113}%
    \tud@res@b{psi}{121}%
    \tud@res@b{omega}{119}%
    \tud@res@c%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \othervarphi
% \end{macro}^^A \othervarsigma
% \end{macro}^^A \othervarrho
% \end{macro}^^A \othervarpi
% \end{macro}^^A \othervartheta
% \end{macro}^^A \othervarepsilon
% \end{macro}^^A \otheromega
% \end{macro}^^A \otherpsi
% \end{macro}^^A \otherchi
% \end{macro}^^A \otherphi
% \end{macro}^^A \otherupsilon
% \end{macro}^^A \othertau
% \end{macro}^^A \othersigma
% \end{macro}^^A \otherrho
% \end{macro}^^A \otherpi
% \end{macro}^^A \otherxi
% \end{macro}^^A \othernu
% \end{macro}^^A \othermu
% \end{macro}^^A \otherlambda
% \end{macro}^^A \otherkappa
% \end{macro}^^A \otheriota
% \end{macro}^^A \othertheta
% \end{macro}^^A \othereta
% \end{macro}^^A \otherzeta
% \end{macro}^^A \otherepsilon
% \end{macro}^^A \otherdelta
% \end{macro}^^A \othergamma
% \end{macro}^^A \otherbeta
% \end{macro}^^A \otheralpha
% \end{macro}^^A \otherXi
% \end{macro}^^A \otherUpsilon
% \end{macro}^^A \otherTheta
% \end{macro}^^A \otherSigma
% \end{macro}^^A \otherPsi
% \end{macro}^^A \otherPi
% \end{macro}^^A \otherPhi
% \end{macro}^^A \otherOmega
% \end{macro}^^A \otherLambda
% \end{macro}^^A \otherGamma
% \end{macro}^^A \otherDelta
% \end{macro}^^A \itvarphi
% \end{macro}^^A \itvarsigma
% \end{macro}^^A \itvarrho
% \end{macro}^^A \itvarpi
% \end{macro}^^A \itvartheta
% \end{macro}^^A \itvarepsilon
% \end{macro}^^A \itomega
% \end{macro}^^A \itpsi
% \end{macro}^^A \itchi
% \end{macro}^^A \itphi
% \end{macro}^^A \itupsilon
% \end{macro}^^A \ittau
% \end{macro}^^A \itsigma
% \end{macro}^^A \itrho
% \end{macro}^^A \itpi
% \end{macro}^^A \itxi
% \end{macro}^^A \itnu
% \end{macro}^^A \itmu
% \end{macro}^^A \itlambda
% \end{macro}^^A \itkappa
% \end{macro}^^A \itiota
% \end{macro}^^A \ittheta
% \end{macro}^^A \iteta
% \end{macro}^^A \itzeta
% \end{macro}^^A \itepsilon
% \end{macro}^^A \itdelta
% \end{macro}^^A \itgamma
% \end{macro}^^A \itbeta
% \end{macro}^^A \italpha
% \end{macro}^^A \itXi
% \end{macro}^^A \itUpsilon
% \end{macro}^^A \itTheta
% \end{macro}^^A \itSigma
% \end{macro}^^A \itPsi
% \end{macro}^^A \itPi
% \end{macro}^^A \itPhi
% \end{macro}^^A \itOmega
% \end{macro}^^A \itLambda
% \end{macro}^^A \itGamma
% \end{macro}^^A \itDelta
% \end{macro}^^A \upvarphi
% \end{macro}^^A \upvarsigma
% \end{macro}^^A \upvarrho
% \end{macro}^^A \upvarpi
% \end{macro}^^A \upvartheta
% \end{macro}^^A \upvarepsilon
% \end{macro}^^A \upomega
% \end{macro}^^A \uppsi
% \end{macro}^^A \upchi
% \end{macro}^^A \upphi
% \end{macro}^^A \upupsilon
% \end{macro}^^A \uptau
% \end{macro}^^A \upsigma
% \end{macro}^^A \uprho
% \end{macro}^^A \uppi
% \end{macro}^^A \upxi
% \end{macro}^^A \upnu
% \end{macro}^^A \upmu
% \end{macro}^^A \uplambda
% \end{macro}^^A \upkappa
% \end{macro}^^A \upiota
% \end{macro}^^A \uptheta
% \end{macro}^^A \upeta
% \end{macro}^^A \upzeta
% \end{macro}^^A \upepsilon
% \end{macro}^^A \updelta
% \end{macro}^^A \upgamma
% \end{macro}^^A \upbeta
% \end{macro}^^A \upalpha
% \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@math@supplement@greeks
% \end{macro}^^A \tud@math@map@@@greeks
% \end{macro}^^A \tud@math@map@@greeks
% \end{macro}^^A \tud@math@map@greeks
% \begin{macro}{\tud@math@checkslanted@greeks}
% \changes{v2.05d}{2016/09/22}{neu}^^A
% Für die Verwendung der griechischen Glyphen im Mathematikmodus wird versucht, 
% ein hohes Maß an Kompatibilität für andere Pakete zu gewährleisten. Es wird 
% versucht zu erkennen, ob Pakete mit einer Option wie \opt{slantedGreek}, 
% \opt{frenchmath} oder ähnlichem geladen wurde. Hierfür wird nach Definitionen 
% für \cs{upalpha} als auch \cs{itGamma} gesucht. Existieren die Makros nicht, 
% wird zumindest auf die aktuelle Definition von \cs{Gamma} geprüft und mit der 
% standardmäßigen Variant der Glyphe verglichen. Wurde eine passende Definition 
% gefunden, wird die Option \opt{slantedgreek} voreingestellt.
%    \begin{macrocode}
\newcommand*\tud@math@checkslanted@greeks{%
  \begingroup%
%    \end{macrocode}
% Wird keine Änderung durch Pakete erkannt, werden ab \TUDScript-Version~v2.06 
% die Glyphen kursiv gesetzt. Dies betrifft insbesondere die Majuskeln, welche
% bei \LaTeX{} normalerweise aufrecht gesetzt werden.
%    \begin{macrocode}
    \def\tud@res@c{%
      \tud@if@v@lower{2.06}{%
        \TUD@key@preset{slantedgreek}{standard}%
      }{%
        \TUD@key@preset{slantedgreek}{true}%
      }%
    }%
    \@tud@res@swafalse%
    \ifcsdef{upalpha}{%
      \ifx\upalpha\alpha%
        \@tud@res@swatrue%
      \fi%
    }{}%
%    \end{macrocode}
% Existiert \cs{upalpha} und ist mit \cs{alpha} identisch, werden \emph{alle} 
% griechischen Glyphen aufrecht gesetzt.
%    \begin{macrocode}
    \if@tud@res@swa%
      \def\tud@res@c{\TUD@key@preset{slantedgreek}{false}}%
    \else%
%    \end{macrocode}
% Existiert \cs{itGamma} und ist mit \cs{Gamma} oder\dots
%    \begin{macrocode}
      \ifcsdef{itGamma}{%
        \ifx\itGamma\Gamma%
          \@tud@res@swatrue%
        \fi%
      }{%
%    \end{macrocode}
% \dots\cs{Gamma} entspricht einer möglichen Standarddefnition,\dots
%    \begin{macrocode}
        \let\tud@res@a\relax%
        \let\tud@res@b\relax%
        \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}%
        \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}%
        \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi%
        \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi%
      }%
%    \end{macrocode}
% \dots werden \emph{alle} griechischen Glyphen kursiv gesetzt.
%    \begin{macrocode}
      \if@tud@res@swa%
        \def\tud@res@c{\TUD@key@preset{slantedgreek}{true}}%
      \fi%
    \fi%
    \edef\tud@res@c{\endgroup\expandonce\tud@res@c}%
  \tud@res@c%
}
%    \end{macrocode}
% \end{macro}^^A \tud@math@checkslanted@greeks
% \begin{macro}{\tud@cdmath@init}
% \changes{v2.06}{2018/07/02}{neu}^^A
% \begin{macro}{\tud@cdmath@@init}
% \changes{v2.06}{2018/07/02}{neu}^^A
% \changes{v2.06a}{2019/07/09}{Bugfix für \pkg{mathastext} Eingabekodierung}^^A
% \begin{macro}{\tud@x@mathastext@enc}
% \changes{v2.06a}{2019/07/09}{neu}^^A
% \begin{macro}{\mv@tudnormal}
% \begin{macro}{\mv@tudbold}
% \begin{macro}{\mv@tuddin}
% \begin{macro}{\tud@mathversion}
% \changes{v2.06}{2019/06/17}{neu}^^A
% \begin{macro}{\MTDeclareVersion}
% \changes{v2.06}{2019/06/17}{neu}^^A
% \begin{macro}{\MTversion@@}
% \changes{v2.06}{2019/06/17}{neu}^^A
% Die folgenden Befehle dienen allesamt für das Bereitstellen der Schriften des 
% \CDs im mathematischen Satz. Hierbei kommt das Paket \pkg{mathastext} zum 
% Einsatz, falls \OpenSans verwendet wird.
%    \begin{macrocode}
\newcommand*\mv@tudnormal{}
\newcommand*\mv@tudbold{}
\newcommand*\mv@tuddin{}
%    \end{macrocode}
% Um das Umschalten der Mathematikversion mit \cs{mathversion} auch nutzen zu 
% können, wenn \pkg{mathastext} für die Schriften des \CDs aktiv ist, wird ein 
% Wrappermakro benötigt, welches im Bedarfsfall\cs{MTversion*} aufruft. Hierfür 
% wird zunächst auf die gewünschte Mathematikversion, danach der originale 
% Befehl \cs{mathversion} wiederhergestellt, aufgerufen und anschließend wieder 
% auf das Wrappermakro \cs{tud@mathversion} zurückgesetzt.
%    \begin{macrocode}
\AfterPackage*{mathastext}{%
  \newrobustcmd*\tud@mathversion[1]{%
    \begingroup%
      \let\tud@res@a\relax%
      \if@tud@cdmath@active%
        \ifstr{#1}{normal}{%
          \def\tud@res@a{tudnormal}%
        }{%
          \ifstr{#1}{bold}{%
            \def\tud@res@a{tudbold}%
          }{}%
        }%
      \fi%
      \edef\tud@res@a{%
        \endgroup%
        \noexpand\tud@cs@restore{mathversion}%
        \ifx\tud@res@a\relax%
          \noexpand\mathversion{#1}%
        \else%
          \noexpand\MTversion*{\tud@res@a}%
        \fi%
        \noexpand\tud@cs@store{mathversion}%
        \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}%
      }%
    \tud@res@a%
  }%
  \AtEndPreamble{%
    \tud@cs@store{mathversion}%
    \tud@cs@letltx{mathversion}{tud@mathversion}%
  }%
}
%    \end{macrocode}
% Mit \cs{tud@cdmath@init} werden für den Mathematikmodus die Schriften im 
% \CD deklariert.
%    \begin{macrocode}
\newcommand*\tud@cdmath@init{%
%    \end{macrocode}
% Für die Schriftfamilie \OpenSans existieren leider bisher keine Kodierung für 
% den Mathematikmodus (\val{OML}, \val{OMS}, \val{OMX}), weshalb hierfür das 
% Paket \pkg{mathastext} genutzt wird, um trotzdem einen mathematischen Satz zu 
% ermöglichen. Dabei wird die Computer~Modern in der \val{LGR}~Kodierung 
% zwingend benötigt.
%
% Für die LGR-Kodierung werden die Bundles \pkg{cbfonts} und \pkg{cbfonts-fd} 
% benötigt. Leider lässt sich momentan nur auf letzteres testen. Für ersteres 
% ließe sich |\font\testfont=grmn1200|\footnote{\file{ltxcheck.tex}} oder
% \verb+\immediate\openin\pathfont="|kpsewhich grmn1200.tfm"+\ignorespaces%
% \footnote{\url{https://tex.stackexchange.com/questions/306980/}} oder nutzen.
% Beide Ansätze sind aber nicht vollends stimmig. Der erste funktioniert nicht, 
% sobald der Anwender \val{-interaction-mode} selbst definiert und für den 
% zweiten müssen zumindest eingeschränkte Schreibrechte aktiviert sein.
%    \begin{macrocode}
  \@tud@res@swafalse%
  \if@tud@cdfont@fam@exist%
    \@tud@res@swatrue%
    \if@tud@cdoldfont@active\else%
      \tud@if@fdfileexists{LGR}{cmr}{}{%
        \@tud@res@swafalse%
        \def\tud@res@a{%
%<*class>
          \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
          \PackageWarningNoLine{tudscrfonts}%
%</package>
          {%
            The packages `cbfonts/cbgreek' and\MessageBreak%
            `cbfonts-fd' have to be installed for using\MessageBreak%
            corporate design fonts in math mode. As they\MessageBreak%
            are not, standard math versions are applied%
          }%
        }%
        \if@tud@cdmath@active%
          \tud@res@a%
        \else%
          \eappto\tud@cdmath@wrn{\expandonce\tud@res@a}%
        \fi%
      }%
    \fi%
  \fi%
%    \end{macrocode}
% Um die Mathematikschriften sauber zu definieren, ist das Laden von bestimmten
% Paketen durch den Anwender ungünstig. Deshalb wird für diesen Fall eine 
% Warnung ausgegeben.
%    \begin{macrocode}
  \if@tud@res@swa%
    \if@tud@cdoldfont@active\else%
      \if@tud@cdmath@active%
        \def\tud@res@a##1{%
%<*class>
          \ClassWarningNoLine{\TUD@Class@Name}%
%</class>
%<*package>
          \PackageWarningNoLine{tudscrfonts}%
%</package>
          {%
            You should not load package `##1'\MessageBreak%
            manually when option `cdmath=true' is active as\MessageBreak%
            TUD-Script uses package `mathastext' internally\MessageBreak%
            with a specific set of required options for the\MessageBreak%
            math font setup%
          }%
        }%
        \@ifpackageloaded{sansmath}{%
          \tud@res@a{sansmath}%
        }{}%
        \@ifpackageloaded{mathastext}{%
          \tud@res@a{mathastext}%
        }{}%
      \fi%
      \PassOptionsToPackage{%
        subdued,defaultmathsizes,nosmalldelims,noequal,%
        defaultrm,defaultbf,defaultit,defaultsf,defaulttt%
      }{mathastext}%
      \RequirePackage{mathastext}[2018/08/22]%
      \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}%
    \fi%
    \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}%
    \providecommand*\MTversion@@[1]{}%
    \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}%
%    \end{macrocode}
% Die Symbole für aufrechte und kursive griechische Glyphen werden definiert. 
% Da im Paket \pkg{opensans} keine mathematischen Schriftkodierungen enthalten 
% sind, wird in diesem Fall auf die LGR-Kodierung zurückgegriffen.
% \ToDo{kann mit \pkg{opensans-math} raus}[v2.??]
%    \begin{macrocode}
    \if@tud@cdoldfont@active%
      \tud@res@cnt=\z@\relax%
      \tud@math@loop@greeks@uc\tud@cdmath@declare@greek@uc%
      \tud@math@loop@greeks@lc\tud@cdmath@declare@greek@lc%
    \else%
      \tud@cdmath@declare@greek@lgr%
    \fi%
%    \end{macrocode}
% Abschließend werden einzelne Zeichen für die Mathematikversionen definiert.
%    \begin{macrocode}
    \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}%
%    \end{macrocode}
% Nach der Definition der griechischen Glyphen werden diese~-- inklusive aller 
% Auswahlvariationen~-- deklariert.
%    \begin{macrocode}
    \tud@cdmath@also@greeks%
%    \end{macrocode}
% Sollten die notwendigen Schriftfamilien nicht gefunden worden sein, werden 
% keine separaten Mathematikversionen definiert.
%    \begin{macrocode}
  \else%
    \let\mv@tudnormal\mv@normal%
    \let\mv@tudbold\mv@bold%
    \if@tud@cdoldfont@active%
      \let\mv@tuddin\mv@bold%
    \fi%
  \fi%
}
%    \end{macrocode}
% Mit \cs{tud@cdmath@@init} werden die notwendigen Mathematikversionen und die 
% dazugehörigen Symbolschriften sowie Alphabete deklariert.
%    \begin{macrocode}
\newcommand*\tud@x@mathastext@enc{OT1}
\newcommand*\tud@cdmath@@init[2]{%
%    \end{macrocode}
% Mit \cs{tud@cdfont@@set} werden die Schriftstärken gemäß den ausgewählten 
% Schriftoptionen aktiviert (\cs{tud@cdfont@md}, \cs{tud@cdfont@bf}, 
% \cs{tud@cdfont@ebf}), um diese auch für die Mathematikschriften zu nutzen.
%    \begin{macrocode}
  \tud@cdfont@@set%
  \tud@ttfont@@set%
%    \end{macrocode}
% Die Deklaration der Mathematikversionen für die alten Schriften. Auch für die 
% Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese wurden schon 
% bei der Installation aus dem \pkg{iwona}-Paket entnommen. Die verwendeten
% Symbole stammen aus diesem Paket.
%    \begin{macrocode}
  \if@tud@cdoldfont@active%
    \DeclareMathVersion{tudnormal}%
    \DeclareMathVersion{tudbold}%
    \DeclareMathVersion{tuddin}%
    \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
    \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
    \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
    \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}%
    \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}%
    \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
    \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}%
    \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}%
    \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}%
    \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}%
    \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}%
    \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}%
    \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}%
    \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}%
    \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
    \tud@if@ismathalphabet{\mathbold}{%
      \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}%
      \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}%
      \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}%
    }{}%
  \else%
%    \end{macrocode}
% Für \OpenSans wird mangels der Kodierungen \val{OML}, \val{OMS} und \val{OMX} 
% im Paket \pkg{opensans} zur Deklaration der Mathematikversionen der Befehl 
% \cs{MTDeclareVersion} aus dem Paket \pkg{mathastext} genutzt. Dabei wird die 
% Kodierung der Mathematikschriften identisch zur genutzten Eingabekodierung 
% für den Text gesetzt, da diese in der Version \val{v1.3t} nicht problemfrei 
% unabhängig davon gewählt werden kann. Sämtliche fehlenden Kodierungen werden
% notdürftig mit dem Paket \pkg{iwona} definiert. Zur Definition griechischer
% Glyphen wird die LGR-Kodierung der \OpenSans genutzt.
%    \begin{macrocode}
    \edef\tud@res@b{\encodingdefault}%
    \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{%
      \ifx\tud@res@a\tud@res@b%
        \let\tud@x@mathastext@enc\tud@res@b%
        \@break@tfor
      \fi%
    }%
    \MTDeclareVersion[it]{tudnormal}%
      {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}%
    \MTDeclareVersion[it]{tudbold}%
      {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}%
    \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}%
    \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}%
%    \end{macrocode}
% \ToDo{%
%   sollte \pkg{opensans-math} irgendwann einmal real werden, dann würde es
%   sich anbieten, die OML-Kodierung ähnlich zu \pkg{euler[vm]} auf eine 
%   U-Kodierung zu erweitern und aufrechte griechische Glyphen einzubinden, um 
%   ein Alphabet zu sparen. Siehe Kodierungen FML/FMS, LML/LMS, LBL/LBS, LS1/LS2
% }[v2.??]
%    \begin{macrocode}
    \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}%
    \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}%
%^^A    \SetSymbolFont{letters}{tudnormal}{U}{#1m}{\tud@cdfont@md}{it}%
%^^A    \SetSymbolFont{letters}{tudbold}{U}{#1m}{\tud@cdfont@bf}{it}%
    \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}%
    \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}%
    \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}%
    \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}%
    \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}%
    \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}%
    \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}%
    \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}%
%^^A    \SetMathAlphabet{\mathnormal}{tudnormal}{U}{#1m}{\tud@cdfont@md}{it}%
%^^A    \SetMathAlphabet{\mathnormal}{tudbold}{U}{#1m}{\tud@cdfont@bf}{it}%
    \tud@if@ismathalphabet{\mathbold}{%
      \SetMathAlphabet{\mathbold}{tudnormal}%
        {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}%
      \SetMathAlphabet{\mathbold}{tudbold}%
        {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}%
%^^A      \SetMathAlphabet{\mathbold}{tudnormal}{U}{#1m}{\tud@cdfont@bf}{it}%
%^^A      \SetMathAlphabet{\mathbold}{tudbold}{U}{#1m}{\tud@cdfont@ebf}{it}%
    }{}%
  \fi%
  \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
  \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
  \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}%
  \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}%
  \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
  \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
  \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}%
  \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}%
  \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}%
  \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}%
  \if@tud@cdoldfont@active%
    \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
    \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
    \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
    \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}%
    \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}%
  \fi%
  \IfFileExists{ueus.fd}{%
    \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}%
    \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}%
    \if@tud@cdoldfont@active%
      \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}%
    \fi%
  }{}%
  \tud@if@ismathalphabet{\mathfrak}{%
    \IfFileExists{ueuf.fd}{%
      \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}%
      \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}%
      \if@tud@cdoldfont@active%
        \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}%
      \fi%
    }{}%
  }{}%
%    \end{macrocode}
% Das Paket \pkg{cmbright} stelt zusätzlich noch Schriftschnitte für die 
% Symbolschriften \val{AMSa} und \val{AMSb} bereit, welche gegebenenfalls für 
% die alten Schriften geladen werden.
%    \begin{macrocode}
  \AtBeginDocument{%
    \@tud@res@swafalse%
    \tud@if@issymbolfont{AMSa}{\@tud@res@swatrue}{}%
    \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}%
    \if@tud@res@swa%
      \if@tud@cdoldfont@active%
        \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}%
        \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}%
        \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}%
        \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}%
        \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}%
        \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}%
        \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}%
        \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}%
%    \end{macrocode}
% Wurde ein Paket geladen, welches die \pkg{amsfonts}-Schriftfamilie definiert,
% so wird bei der Verwendung von \OpenSans eine Information ausgegeben, dass im 
% Zweifel das Paket \pkg{mdsymbol} besser zu den Schriften des \CDs passt.
%    \begin{macrocode}
      \else%
        \@ifpackageloaded{mdsymbol}{}{%
          \appto\tud@cdmath@wrn{%
%<*class>
            \ClassInfoNoLine{\TUD@Class@Name}%
%</class>
%<*package>
            \PackageInfoNoLine{tudscrfonts}%
%</package>
            {%
              You may load package `mdsymbol' in order to\MessageBreak%
              get symbols matching the used math font%
            }%
          }%
        }%
      \fi%
    \fi%
%    \end{macrocode}
% Wurde das Paket \pkg{fontspec} mit der Option \opt{math} geladen, so wird 
% durch dieses die Symbolschrift \val{legacymaths} erstellt. Diese wird 
% gegebenenfalls für die Mathematikversionen sinnvoll definiert.
%    \begin{macrocode}
    \tud@if@issymbolfont{legacymaths}{%
      \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}%
      \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}%
      \if@tud@cdoldfont@active%
        \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}%
      \fi%
    }{}%
%    \end{macrocode}
% Daran anschließend wird die zuvor definierte Schrift in einer Box verwendet,
% um das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren.
%    \begin{macrocode}
    \if@tud@cdoldfont@active%
      \if@tud@cdmath@active%
        \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}%
      \fi%
    \fi%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \MTversion@@
% \end{macro}^^A \MTDeclareVersion
% \end{macro}^^A \tud@mathversion
% \end{macro}^^A \mv@tuddin
% \end{macro}^^A \mv@tudbold
% \end{macro}^^A \mv@tudnormal
% \end{macro}^^A \tud@x@mathastext@enc
% \end{macro}^^A \tud@cdmath@@init
% \end{macro}^^A \tud@cdmath@init
% \begin{macro}{\tud@cdmath@declare@symb}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@declare@alias}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@symb@list}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@declare@char}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@char@list}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@DeclareMathSymbol}
% \changes{v2.06}{2019/06/19}{neu}^^A
% Mit \cs{tud@cdmath@declare@symb} und \cs{tud@cdmath@declare@char} können 
% Glyhen respektive einzelne Zeichen definiert werden, welche über das Makro 
% \cs{tud@cdmath@symbols@set} nur zum Einsatz kommen, wenn \opt{cdmath=true}
% aktiviert wurde. Damit können in den unterschiedlichen Mathematikversionen 
% Symbole wie beispielsweise \cs{alpha} unterschiedlich kodiert werden, was 
% über die einfache Verwendung von \cs{DeclareMathSymbol} nicht möglich ist.
%    \begin{macrocode}
\newcommand*\tud@cdmath@symb@list{}
\newcommand*\tud@cdmath@declare@symb[4]{%
  \listeadd\tud@cdmath@symb@list{#1}%
  \tud@DeclareMathSymbol{#1}{#2}{#3}{#4}%
}
%    \end{macrocode}
% Hiermit kann ein Alias-Befehl für ein Symbol definiert werden.
%    \begin{macrocode}
\newcommand*\tud@cdmath@declare@alias[2]{%
  \listeadd\tud@cdmath@symb@list{#1}%
  \ifcsdef{tud@cdmath@symbol@#2}{%
    \csedef{tud@cdmath@symbol@#1}{\csname tud@cdmath@symbol@#2\endcsname}%
  }{}%
}
\newcommand*\tud@cdmath@char@list{}
\newcommand*\tud@cdmath@declare@char[4]{%
  \listeadd\tud@cdmath@char@list{#1}%
  \tud@DeclareMathSymbol{#1}{#2}{#3}{#4}%
}
%    \end{macrocode}
% Die an \cs{tud@cdmath@declare@symb} und \cs{tud@cdmath@declare@char} 
% übergebene Bezeichner für Auswahlbefehle erhalten \cs{tud@cdmath@symbol@} als
% Präfix, wodurch sich die Definitionen für die einzelnen Mathematikversionen 
% beliebig tauschen lassen.
%    \begin{macrocode}
\newcommand*\tud@DeclareMathSymbol[4]{%
  \begingroup%
    \edef\tud@res@a{%
      \endgroup%
      \noexpand\DeclareMathSymbol%
        {\csname tud@cdmath@symbol@#1\endcsname}%
        {\etex@unexpanded{#2}}{#3}{#4}%
    }%
  \tud@res@a%
}
%    \end{macrocode}
% \end{macro}^^A \tud@DeclareMathSymbol
% \end{macro}^^A \tud@cdmath@char@list
% \end{macro}^^A \tud@cdmath@declare@char
% \end{macro}^^A \tud@cdmath@symb@list
% \end{macro}^^A \tud@cdmath@declare@alias
% \end{macro}^^A \tud@cdmath@declare@symb
% \begin{macro}{\tud@cdmath@symbols@set}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@cdmath@symbols@toks}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@symbols@set@cmd}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@symbols@set@chr}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@symbols@reset}
% \changes{v2.04}{2015/03/10}{neu}^^A
% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen 
% mathematischen Symbolen und Zeichen für die Schriften des \CDs, welche mit 
% \cs{tud@cdmath@declare@symb} sowie \cs{tud@cdmath@declare@char} deklariert 
% wurden, und den normalen gewechselt werden. 
%    \begin{macrocode}
\newtoks\tud@cdmath@symbols@toks
\newcommand*\tud@cdmath@symbols@set{%
%    \end{macrocode}
% Die Sicherung der alten Definitionen erfolgt nur einmalig. Die Liste der 
% Symbole respektive Zeichen wird durchlaufen und die erfolgten Definitionen 
% werden umgesetzt.
%    \begin{macrocode}
  \expandafter\IfArgIsEmpty\expandafter{\the\tud@cdmath@symbols@toks}{%
    \forlistloop\tud@cdmath@symbols@set@cmd\tud@cdmath@symb@list%
    \forlistloop\tud@cdmath@symbols@set@chr\tud@cdmath@char@list%
%    \end{macrocode}
% Wird das Tokenregister abgerufen, soll es anschließend auch wieder geleert 
% werden.
%    \begin{macrocode}
    \addto@hook\tud@cdmath@symbols@toks{\tud@cdmath@symbols@toks{}}%
  }{}%
}
%    \end{macrocode}
% Beim Setzen der Mathematikversion im \CD wird zur Wiederherstellung der 
% Standardmathematikversion das Vorgehen im Token \cs{tud@cdmath@symbols@toks} 
% definiert.
%    \begin{macrocode}
\newcommand*\tud@cdmath@symbols@set@cmd[1]{%
%    \end{macrocode}
% Existiert ein Befehl in der Standardmathematikversion, dann wird dieser 
% gesichert und später wiederhergestellt. Andernfalls wird er wieder undefinert 
% gesetzt.
%    \begin{macrocode}
  \ifcsdef{#1}{%
    \tud@cs@store{#1}%
    \addto@hook\tud@cdmath@symbols@toks{\tud@cs@restore{#1}}%
  }{%
    \addto@hook\tud@cdmath@symbols@toks{\csundef{#1}}%
  }%
%    \end{macrocode}
% Nur wenn ein gewünschtes Symbol auch existiert, wird es gesetzt. Damit können 
% Symbole für \opt{cdmath=true} auch gezielt undefiniert gesetzt werden.
%    \begin{macrocode}
  \ifcsdef{tud@cdmath@symbol@#1}{%
    \tud@cs@letltx{#1}{tud@cdmath@symbol@#1}%
  }{%
    \csundef{#1}%
  }%
}
%    \end{macrocode}
% Für einzelne Zeichen ist das Vorgehen vom Prinzip her gleich. Allerdings wird 
% hier der zu sichernde \cs{mathcode} direkt in \cs{tud@cdmath@symbols@toks} 
% geschrieben.
%    \begin{macrocode}
\newcommand*\tud@cdmath@symbols@set@chr[1]{%
  \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}%
  \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}%
%    \end{macrocode}
% Für das Überschreiben des \cs{mathcode} des gewünschen \meta{Zeichen} wird 
% dieser aus der Bedeutung von \cs{tud@cdmath@symbols@\meta{Zeichen}} mit
% \cs{meaning} herausgelöst.
%    \begin{macrocode}
  \begingroup%
    \edef\tud@res@a{\expandafter\meaning\csname tud@cdmath@symbol@#1\endcsname}%
    \def\tud@res@b##1"##2\@nil{"##2}%
    \edef\tud@res@c{\expandafter\tud@res@b\tud@res@a\@nil}%
    \edef\tud@res@a{%
      \endgroup%
      \global\mathcode`#1=\tud@res@c%
    }%
  \tud@res@a%
}
%    \end{macrocode}
% Für das Zurücksetzen muss lediglich das Tokenregister aufgerufen werden.
%    \begin{macrocode}
\newcommand*\tud@cdmath@symbols@reset{\the\tud@cdmath@symbols@toks}
%    \end{macrocode}
% \end{macro}^^A \tud@cdmath@symbols@reset
% \end{macro}^^A \tud@cdmath@symbols@set@chr
% \end{macro}^^A \tud@cdmath@symbols@set@cmd
% \end{macro}^^A \tud@cdmath@symbols@toks
% \end{macro}^^A \tud@cdmath@symbols@set
% \begin{macro}{\tud@cdmath@declare@greek@uc}
% \changes{v2.04}{2015/03/10}{neu}^^A
% \begin{macro}{\tud@cdmath@symbol@upGamma}
% \begin{macro}{\tud@cdmath@symbol@upDelta}
% \begin{macro}{\tud@cdmath@symbol@upTheta}
% \begin{macro}{\tud@cdmath@symbol@upLambda}
% \begin{macro}{\tud@cdmath@symbol@upXi}
% \begin{macro}{\tud@cdmath@symbol@upPi}
% \begin{macro}{\tud@cdmath@symbol@upSigma}
% \begin{macro}{\tud@cdmath@symbol@upUpsilon}
% \begin{macro}{\tud@cdmath@symbol@upPhi}
% \begin{macro}{\tud@cdmath@symbol@upPsi}
% \begin{macro}{\tud@cdmath@symbol@upOmega}
% \begin{macro}{\tud@cdmath@symbol@itGamma}
% \begin{macro}{\tud@cdmath@symbol@itDelta}
% \begin{macro}{\tud@cdmath@symbol@itTheta}
% \begin{macro}{\tud@cdmath@symbol@itLambda}
% \begin{macro}{\tud@cdmath@symbol@itXi}
% \begin{macro}{\tud@cdmath@symbol@itPi}
% \begin{macro}{\tud@cdmath@symbol@itSigma}
% \begin{macro}{\tud@cdmath@symbol@itUpsilon}
% \begin{macro}{\tud@cdmath@symbol@itPhi}
% \begin{macro}{\tud@cdmath@symbol@itPsi}
% \begin{macro}{\tud@cdmath@symbol@itOmega}
% 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. Hierfür sind die beiden 
% Befehle \cs{tud@cdmath@symbols@set} und \cs{tud@cdmath@symbols@reset}
% verantwortlich.
% \ToDo{Codierungen \val{LS1/LS2}; siehe \pkg{stix,libertinust1math}}[v2.??]
%    \begin{macrocode}
\newcommand*\tud@cdmath@declare@greek@uc[1]{%
  \tud@cdmath@declare@symb{it#1}{\mathalpha}{letters}{\the\tud@res@cnt}%
  \tud@cdmath@declare@symb{up#1}{\mathalpha}{operators}{\the\tud@res@cnt}%
  \advance\tud@res@cnt\@ne\relax%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdmath@symbol@itOmega
% \end{macro}^^A \tud@cdmath@symbol@itPsi
% \end{macro}^^A \tud@cdmath@symbol@itPhi
% \end{macro}^^A \tud@cdmath@symbol@itUpsilon
% \end{macro}^^A \tud@cdmath@symbol@itSigma
% \end{macro}^^A \tud@cdmath@symbol@itPi
% \end{macro}^^A \tud@cdmath@symbol@itXi
% \end{macro}^^A \tud@cdmath@symbol@itLambda
% \end{macro}^^A \tud@cdmath@symbol@itTheta
% \end{macro}^^A \tud@cdmath@symbol@itDelta
% \end{macro}^^A \tud@cdmath@symbol@itGamma
% \end{macro}^^A \tud@cdmath@symbol@upOmega
% \end{macro}^^A \tud@cdmath@symbol@upPsi
% \end{macro}^^A \tud@cdmath@symbol@upPhi
% \end{macro}^^A \tud@cdmath@symbol@upUpsilon
% \end{macro}^^A \tud@cdmath@symbol@upSigma
% \end{macro}^^A \tud@cdmath@symbol@upPi
% \end{macro}^^A \tud@cdmath@symbol@upXi
% \end{macro}^^A \tud@cdmath@symbol@upLambda
% \end{macro}^^A \tud@cdmath@symbol@upTheta
% \end{macro}^^A \tud@cdmath@symbol@upDelta
% \end{macro}^^A \tud@cdmath@symbol@upGamma
% \end{macro}^^A \tud@cdmath@declare@greek@uc
% \begin{macro}{\tud@cdmath@declare@greek@lc}
% \changes{v2.06}{2018/07/17}{neu}^^A
% \begin{macro}{\tud@cdmath@symbol@upalpha}
% \begin{macro}{\tud@cdmath@symbol@upbeta}
% \begin{macro}{\tud@cdmath@symbol@upgamma}
% \begin{macro}{\tud@cdmath@symbol@updelta}
% \begin{macro}{\tud@cdmath@symbol@upepsilon}
% \begin{macro}{\tud@cdmath@symbol@upzeta}
% \begin{macro}{\tud@cdmath@symbol@upeta}
% \begin{macro}{\tud@cdmath@symbol@uptheta}
% \begin{macro}{\tud@cdmath@symbol@upiota}
% \begin{macro}{\tud@cdmath@symbol@upkappa}
% \begin{macro}{\tud@cdmath@symbol@uplambda}
% \begin{macro}{\tud@cdmath@symbol@upmu}
% \begin{macro}{\tud@cdmath@symbol@upnu}
% \begin{macro}{\tud@cdmath@symbol@upxi}
% \begin{macro}{\tud@cdmath@symbol@uppi}
% \begin{macro}{\tud@cdmath@symbol@uprho}
% \begin{macro}{\tud@cdmath@symbol@upsigma}
% \begin{macro}{\tud@cdmath@symbol@uptau}
% \begin{macro}{\tud@cdmath@symbol@upupsilon}
% \begin{macro}{\tud@cdmath@symbol@upphi}
% \begin{macro}{\tud@cdmath@symbol@upchi}
% \begin{macro}{\tud@cdmath@symbol@uppsi}
% \begin{macro}{\tud@cdmath@symbol@upomega}
% \begin{macro}{\tud@cdmath@symbol@upvarepsilon}
% \begin{macro}{\tud@cdmath@symbol@upvartheta}
% \begin{macro}{\tud@cdmath@symbol@upvarpi}
% \begin{macro}{\tud@cdmath@symbol@upvarrho}
% \begin{macro}{\tud@cdmath@symbol@upvarsigma}
% \begin{macro}{\tud@cdmath@symbol@upvarphi}
% \begin{macro}{\tud@cdmath@symbol@italpha}
% \begin{macro}{\tud@cdmath@symbol@itbeta}
% \begin{macro}{\tud@cdmath@symbol@itgamma}
% \begin{macro}{\tud@cdmath@symbol@itdelta}
% \begin{macro}{\tud@cdmath@symbol@itepsilon}
% \begin{macro}{\tud@cdmath@symbol@itzeta}
% \begin{macro}{\tud@cdmath@symbol@iteta}
% \begin{macro}{\tud@cdmath@symbol@ittheta}
% \begin{macro}{\tud@cdmath@symbol@itiota}
% \begin{macro}{\tud@cdmath@symbol@itkappa}
% \begin{macro}{\tud@cdmath@symbol@itlambda}
% \begin{macro}{\tud@cdmath@symbol@itmu}
% \begin{macro}{\tud@cdmath@symbol@itnu}
% \begin{macro}{\tud@cdmath@symbol@itxi}
% \begin{macro}{\tud@cdmath@symbol@itpi}
% \begin{macro}{\tud@cdmath@symbol@itrho}
% \begin{macro}{\tud@cdmath@symbol@itsigma}
% \begin{macro}{\tud@cdmath@symbol@ittau}
% \begin{macro}{\tud@cdmath@symbol@itupsilon}
% \begin{macro}{\tud@cdmath@symbol@itphi}
% \begin{macro}{\tud@cdmath@symbol@itchi}
% \begin{macro}{\tud@cdmath@symbol@itpsi}
% \begin{macro}{\tud@cdmath@symbol@itomega}
% \begin{macro}{\tud@cdmath@symbol@itvarepsilon}
% \begin{macro}{\tud@cdmath@symbol@itvartheta}
% \begin{macro}{\tud@cdmath@symbol@itvarpi}
% \begin{macro}{\tud@cdmath@symbol@itvarrho}
% \begin{macro}{\tud@cdmath@symbol@itvarsigma}
% \begin{macro}{\tud@cdmath@symbol@itvarphi}
% Aufrechte griechische  Minuskeln sind in den mathematischen Kodierungen von 
% \LaTeXe{} leider nicht enthalten, weshalb diese hier auch nicht für die 
% normale OML-Kodierung deklariert werden können.
%    \begin{macrocode}
\newcommand*\tud@cdmath@declare@greek@lc[1]{%
  \tud@cdmath@declare@symb{it#1}{\mathalpha}{letters}{\the\tud@res@cnt}%
%    \end{macrocode}
% Für aufrechte griechische Minuskeln gibt es gewöhnlich keine Symbolschrift, 
% weshalb ein einfacher Eintrag \cs{up\meta{Bezeichner}} in die Liste 
% {tud@cdmath@symb@list} gesetzt wird, was in Verbindung mit einem fehlenden 
% Symbol \cs{tud@cdmath@symbol@\meta{Bezeichner}} zu einem undefinierten
%  cs{up\meta{Bezeichner}} bei \opt{cdmath=true} führt.
% \ToDo{falls irgendwann erweiterte OML-Kodierung existiert, dann nutzen}[v2.??]
%    \begin{macrocode}
%^^A  \tud@cdmath@declare@symb{it##1}{\mathalpha}{letters}%
%^^A    {\the\numexpr\tud@res@cnt+128\relax}%
  \listeadd\tud@cdmath@symb@list{up#1}%
  \advance\tud@res@cnt\@ne\relax%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdmath@symbol@itvarphi
% \end{macro}^^A \tud@cdmath@symbol@itvarsigma
% \end{macro}^^A \tud@cdmath@symbol@itvarrho
% \end{macro}^^A \tud@cdmath@symbol@itvarpi
% \end{macro}^^A \tud@cdmath@symbol@itvartheta
% \end{macro}^^A \tud@cdmath@symbol@itvarepsilon
% \end{macro}^^A \tud@cdmath@symbol@itomega
% \end{macro}^^A \tud@cdmath@symbol@itpsi
% \end{macro}^^A \tud@cdmath@symbol@itchi
% \end{macro}^^A \tud@cdmath@symbol@itphi
% \end{macro}^^A \tud@cdmath@symbol@itupsilon
% \end{macro}^^A \tud@cdmath@symbol@ittau
% \end{macro}^^A \tud@cdmath@symbol@itsigma
% \end{macro}^^A \tud@cdmath@symbol@itrho
% \end{macro}^^A \tud@cdmath@symbol@itpi
% \end{macro}^^A \tud@cdmath@symbol@itxi
% \end{macro}^^A \tud@cdmath@symbol@itnu
% \end{macro}^^A \tud@cdmath@symbol@itmu
% \end{macro}^^A \tud@cdmath@symbol@itlambda
% \end{macro}^^A \tud@cdmath@symbol@itkappa
% \end{macro}^^A \tud@cdmath@symbol@itiota
% \end{macro}^^A \tud@cdmath@symbol@ittheta
% \end{macro}^^A \tud@cdmath@symbol@iteta
% \end{macro}^^A \tud@cdmath@symbol@itzeta
% \end{macro}^^A \tud@cdmath@symbol@itepsilon
% \end{macro}^^A \tud@cdmath@symbol@itdelta
% \end{macro}^^A \tud@cdmath@symbol@itgamma
% \end{macro}^^A \tud@cdmath@symbol@itbeta
% \end{macro}^^A \tud@cdmath@symbol@italpha
% \end{macro}^^A \tud@cdmath@symbol@upvarphi
% \end{macro}^^A \tud@cdmath@symbol@upvarsigma
% \end{macro}^^A \tud@cdmath@symbol@upvarrho
% \end{macro}^^A \tud@cdmath@symbol@upvarpi
% \end{macro}^^A \tud@cdmath@symbol@upvartheta
% \end{macro}^^A \tud@cdmath@symbol@upvarepsilon
% \end{macro}^^A \tud@cdmath@symbol@upomega
% \end{macro}^^A \tud@cdmath@symbol@uppsi
% \end{macro}^^A \tud@cdmath@symbol@upchi
% \end{macro}^^A \tud@cdmath@symbol@upphi
% \end{macro}^^A \tud@cdmath@symbol@upupsilon
% \end{macro}^^A \tud@cdmath@symbol@uptau
% \end{macro}^^A \tud@cdmath@symbol@upsigma
% \end{macro}^^A \tud@cdmath@symbol@uprho
% \end{macro}^^A \tud@cdmath@symbol@uppi
% \end{macro}^^A \tud@cdmath@symbol@upxi
% \end{macro}^^A \tud@cdmath@symbol@upnu
% \end{macro}^^A \tud@cdmath@symbol@upmu
% \end{macro}^^A \tud@cdmath@symbol@uplambda
% \end{macro}^^A \tud@cdmath@symbol@upkappa
% \end{macro}^^A \tud@cdmath@symbol@upiota
% \end{macro}^^A \tud@cdmath@symbol@uptheta
% \end{macro}^^A \tud@cdmath@symbol@upeta
% \end{macro}^^A \tud@cdmath@symbol@upzeta
% \end{macro}^^A \tud@cdmath@symbol@upepsilon
% \end{macro}^^A \tud@cdmath@symbol@updelta
% \end{macro}^^A \tud@cdmath@symbol@upgamma
% \end{macro}^^A \tud@cdmath@symbol@upbeta
% \end{macro}^^A \tud@cdmath@symbol@upalpha
% \end{macro}^^A \tud@cdmath@declare@greek@lc
% \begin{macro}{\tud@cdmath@declare@greek@lgr}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@declare@greek@@lgr}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \changes{v2.06d}{2019/08/27}{Ligaturen für Lua\LaTeX{} deaktiviert}^^A
% Die \OpenSans hält die griechischen Glyphen nur in der LGR-Kodierung bereit. 
% Hiermit werden diese für den mathematischen Satz definiert. Die übergebenen 
% Argumente an das Makro \cs{tud@cdmath@declare@greek@@lgr} sind Bezeichnung 
% und LGR-Slot der Glyphe.
%    \begin{macrocode}
\newcommand*\tud@cdmath@declare@greek@lgr{%
  \tud@cdmath@declare@greek@@lgr{Gamma}{71}%
  \tud@cdmath@declare@greek@@lgr{Delta}{68}%
  \tud@cdmath@declare@greek@@lgr{Theta}{74}%
  \tud@cdmath@declare@greek@@lgr{Lambda}{76}%
  \tud@cdmath@declare@greek@@lgr{Xi}{88}%
  \tud@cdmath@declare@greek@@lgr{Pi}{80}%
  \tud@cdmath@declare@greek@@lgr{Sigma}{83}%
  \tud@cdmath@declare@greek@@lgr{Upsilon}{85}%
  \tud@cdmath@declare@greek@@lgr{Phi}{70}%
  \tud@cdmath@declare@greek@@lgr{Psi}{89}%
  \tud@cdmath@declare@greek@@lgr{Omega}{87}%
  \tud@cdmath@declare@greek@@lgr{alpha}{97}%
  \tud@cdmath@declare@greek@@lgr{beta}{98}%
  \tud@cdmath@declare@greek@@lgr{gamma}{103}%
  \tud@cdmath@declare@greek@@lgr{delta}{100}%
  \tud@cdmath@declare@greek@@lgr{epsilon}{101}%
  \tud@cdmath@declare@greek@@lgr{zeta}{122}%
  \tud@cdmath@declare@greek@@lgr{eta}{104}%
  \tud@cdmath@declare@greek@@lgr{theta}{106}%
  \tud@cdmath@declare@greek@@lgr{iota}{105}%
  \tud@cdmath@declare@greek@@lgr{kappa}{107}%
  \tud@cdmath@declare@greek@@lgr{lambda}{108}%
  \tud@cdmath@declare@greek@@lgr{mu}{109}%
  \tud@cdmath@declare@greek@@lgr{nu}{110}%
  \tud@cdmath@declare@greek@@lgr{xi}{120}%
  \tud@cdmath@declare@greek@@lgr{pi}{112}%
  \tud@cdmath@declare@greek@@lgr{rho}{114}%
  \tud@cdmath@declare@greek@@lgr{sigma}{115}%
  \tud@cdmath@declare@greek@@lgr{tau}{116}%
  \tud@cdmath@declare@greek@@lgr{upsilon}{117}%
  \tud@cdmath@declare@greek@@lgr{phi}{102}%
  \tud@cdmath@declare@greek@@lgr{chi}{113}%
  \tud@cdmath@declare@greek@@lgr{psi}{121}%
  \tud@cdmath@declare@greek@@lgr{omega}{119}%
  \tud@cdmath@declare@greek@@lgr{varepsilon}{101}%
  \tud@cdmath@declare@greek@@lgr{vartheta}{106}%
  \tud@cdmath@declare@greek@@lgr{varpi}{119}%
  \tud@cdmath@declare@greek@@lgr{varrho}{114}%
  \tud@cdmath@declare@greek@@lgr{varsigma}{99}%
  \tud@cdmath@declare@greek@@lgr{varphi}{102}%
}
\newcommand*\tud@cdmath@declare@greek@@lgr[2]{%
  \tud@cdmath@declare@symb{it#1}{\mathalpha}{tuditgrk}{#2}%
  \tud@cdmath@declare@symb{up#1}{\mathalpha}{tudupgrk}{#2}%
%    \end{macrocode}
% Normalerweise sollten Ligaturen für angrenzende Glyphen (boundary ligatures) 
% im Mathematikmodus deaktiviert werden. Bei Lua\LaTeX{} ist dies jedoch nicht 
% der Fall, weshalb hier etwas nachgeholfen werden muss, indem nach der Glyphe
% schlichtweg ein Klammernpaar in der richtigen Kodierung eingefügt wird.
%    \begin{macrocode}
  \ifluatex%
    \begingroup%
      \def\tud@res@a{\if@tud@cdmath@active\fontencoding{LGR}\selectfont{}\fi}%
      \def\tud@res@b##1{%
        \csxdef{tud@cdmath@symbol@##1}{%
          {%
            \mathchar\expandafter\the\csuse{tud@cdmath@symbol@##1}%
            \expandonce\tud@res@a%
          }%
        }%
      }%
      \tud@res@b{it#1}%
      \tud@res@b{up#1}%
    \endgroup%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdmath@declare@greek@@lgr
% \end{macro}^^A \tud@cdmath@declare@greek@lgr
% \begin{macro}{\tud@cdmath@also@greeks}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@also@@greeks}
% \changes{v2.06}{2019/06/19}{neu}^^A
% \begin{macro}{\tud@cdmath@also@@@greeks}
% \changes{v2.06}{2019/06/19}{neu}^^A
% Das ist quasi das Gegenstück zu \cs{tud@math@map@greeks}. Alle bekannten 
% Variationen der Auswahlbefehle für griechische Glyphen werden durch die 
% Definitionen für die Mathematikschriften im \CD gespiegelt.
%    \begin{macrocode}
\newcommand*\tud@cdmath@also@greeks{%
  \tud@math@loop@greeks@all\tud@cdmath@also@@greeks%
  \tud@math@loop@greeks@uc\tud@cdmath@also@@@greeks%
}
\newcommand*\tud@cdmath@also@@greeks[1]{%
  \tud@cdmath@declare@alias{#1}{it#1}%
  \tud@cdmath@declare@alias{other#1}{up#1}%
  \ifcsundef{#1up}{}{%
    \tud@cdmath@declare@alias{#1up}{up#1}%
  }%
  \@for\tud@res@a:={#1sl,sl#1,#1it}\do{%
    \ifcsundef{\tud@res@a}{}{%
      \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{it#1}%
    }%
  }%
  \ifcsundef{#1other}{}{%
    \tud@cdmath@declare@alias{#1other}{other#1}%
  }%
}
\newcommand*\tud@cdmath@also@@@greeks[1]{%
  \tud@lowerstring\tud@res@a{#1}%
  \edef\tud@res@a{Up\tud@res@a}%
  \ifcsundef{\tud@res@a}{}{%
    \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}%
  }%
  \ifcsundef{var#1}{}{%
    \expandafter\tud@cdmath@declare@alias\expandafter{var#1}{it#1}%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdmath@also@@@greeks
% \end{macro}^^A \tud@cdmath@also@@greeks
% \end{macro}^^A \tud@cdmath@also@greeks
% \begin{macro}{\tud@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@math@set{%
%    \end{macrocode}
% Beim Aktivieren der Mathematikschriften im \CD werden einmalig alle Warnungen 
% ausgegeben, falls bei der Initialisierung Probleme aufgetreten sind und 
% dementsprechend der Hook \cs{tud@cdmath@wrn} gefüllt wurde.
%    \begin{macrocode}
  \if@tud@cdmath@active%
    \tud@cdmath@wrn%
    \tud@cs@store{mv@normal}%
    \tud@cs@store{mv@bold}%
    \let\mv@normal\mv@tudnormal%
    \let\mv@bold\mv@tudbold%
    \tud@cdmath@symbols@set%
%    \end{macrocode}
% Anschließend erfolgt~-- abhängig von der Option \opt{slantedgreek}~-- die 
% Einstellung der Neigung der griechischen Glyphen.
%    \begin{macrocode}
    \ifcase\tud@slantedgreek@num\relax% upright
      \tud@math@loop@greeks@all\tud@math@upright@greeks%
    \or% slanted
      \tud@math@loop@greeks@all\tud@math@slanted@greeks%
    \or% standard
      \tud@math@loop@greeks@uc\tud@math@upright@greeks%
      \tud@math@loop@greeks@lc\tud@math@slanted@greeks%
    \fi%
  \else%
    \tud@cs@restore{mv@normal}%
    \tud@cs@restore{mv@bold}%
    \tud@cdmath@symbols@reset%
  \fi%
  \mathversion{normal}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@math@set
% \begin{macro}{\tud@math@upright@greeks}
% \changes{v2.06}{2018/07/02}{neu}^^A
% \begin{macro}{\tud@math@slanted@greeks}
% \changes{v2.06}{2018/07/02}{neu}^^A
% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben 
% entweder auf aufrecht bzw. kursiv gesetzt werden.
%    \begin{macrocode}
\newcommand*\tud@math@upright@greeks[1]{%
  \ifcsundef{up#1}{}{%
    \csletcs{#1}{up#1}%
    \csletcs{other#1}{it#1}%
  }%
}
\newcommand*\tud@math@slanted@greeks[1]{%
  \ifcsundef{up#1}{}{%
    \csletcs{#1}{it#1}%
    \csletcs{other#1}{up#1}%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@math@slanted@greeks
% \end{macro}^^A \tud@math@upright@greeks
% Sämtliche 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 das Paket \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom
% Paket erwarteten Makros für die Schriftstärken 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{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}%
    \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}%
    \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}%
    \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}%
    \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}%
  \fi%
%    \end{macrocode}
% Hier wird auf das Vorhandensein aller benötigten Schriften geprüft.
%    \begin{macrocode}
  \tud@cdfont@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}
% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und 
% die dazugehörigen Befehle definiert. Auch die mathematischen Schriften werden
% initialisiert.
%    \begin{macrocode}
  \tud@cdfont@init%
  \tud@ttfont@init%
  \tud@cdmath@init%
%    \end{macrocode}
% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um
% auf Einstellungen von anderen Schriftpaketen reagieren zu können. Da es
% so gut wie keine freien OpenType-Schriften für den mathmatischen Formelsatz
% gibt, werden \emph{immer} die Type1-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%
    \UnPreventPackageFromLoading{bm}%
    \if@tud@cdmath@active%
      \tud@cs@store{mv@normal}%
      \tud@cs@store{mv@bold}%
      \let\mv@normal\mv@tudnormal%
      \let\mv@bold\mv@tudbold%
    \fi%
    \RequirePackage{bm}[2017/01/16]%
    \tud@cs@restore{mv@normal}%
    \tud@cs@restore{mv@bold}%
  \fi%
%    \end{macrocode}
% Wurde das Paket \pkg{siunitx} geladen, so werden die Schrifteinstellungen
% mit \opt{cdfont}|=|\val{false} deaktiviert und zu Beginn des Dokumentes 
% auf die aktuelle Einstellung gesetzt.
%    \begin{macrocode}
  \if@tud@x@siunitx@enabled%
    \if@tud@cdfont@active%
      \if@tud@cdfont@heavy%
        \def\tud@reserved{\TUDoptions{cdfont=heavy}}%
      \else%
        \def\tud@reserved{\TUDoptions{cdfont=true}}%
      \fi%
    \else%
      \def\tud@reserved{\TUDoptions{cdfont=false}}%
    \fi%
    \expandafter\AfterEndPreamble\expandafter{\tud@reserved}%
    \TUDoptions{cdfont=false}%
  \fi%
%    \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%
  \AtBeginDocument{%
%    \end{macrocode}
% Bereitstellung der Auswahlbefehle für griechische Glyphen in der Nomenklatur 
% von \TUDScript (\cs{up\meta{Bezeichner}}, \cs{it\meta{Bezeichner}}).
%    \begin{macrocode}
    \tud@math@map@greeks%
%    \end{macrocode}
% Für die griechischen Glyphen wird mit \cs{tud@math@checkslanted@greeks} 
% geprüft, ob diese durch ein Paket explizit auf kursive Majuskeln oder eine 
% vollständig aufrechte Variante gesetzt wurden. Ist dies der Fall, wird der
% Standardwert für die Option \opt{slantedgreek} entsprechend angepasst.
%    \begin{macrocode}
    \tud@math@checkslanted@greeks%
%    \end{macrocode}
% Nachdem alle Vorbereitungen getroffen wurden, werden die Schriften für den 
% mathematischen Satz nun endlich gesetzt.
%    \begin{macrocode}
    \tud@math@set%
  }%
}
%    \end{macrocode}
%
% \iffalse
%<*class>
% \fi
%
% \subsubsection{Schriften für die speziellen Seitenstile}
%
% \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}{Bugfix für die Änderung von \cs{spaceskip} durch
%   das Paket \pkg{ragged2e}}^^A
% \begin{macro}{\tud@head@cdfont@set}%
% \changes{v2.06}{2018/06/29}{neu}^^A
% \begin{macro}{\tud@head@font@light}
% \begin{macro}{\tud@head@font@bold}
% \begin{macro}{\tud@head@font@@bold}
% \changes{v2.05}{2016/04/17}{neu}^^A
% 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@fontsize} gespeichert. Das Makro \cs{tud@head@font@@bold} 
% wird verwendet, um die Einstellung der fetten Schriften ohne die fixierte 
% Schriftgröße nutzen zu können.
%    \begin{macrocode}
\newcommand*\tud@head@font@light{}
\newcommand*\tud@head@font@bold{}
%<poster>\newcommand*\tud@head@font@@bold{}
\newcommand*\tud@head@font@set{%
%    \end{macrocode}
% Die Option \opt{cdhead} wird ausgewertet. Sollte diese inkompatibel gesetzt 
% sein, wird eine Warnung ausgegeben.
%    \begin{macrocode}
  \if@tud@cdfont@active\ifcase\tud@head@font@num\relax% false
    \if@tud@head@font@set%
      \ClassWarning{\TUD@Class@Name}{%
        It isn't possible to use `cdhead=false'\MessageBreak%
        together with `cdfont=true'%
      }%
    \fi%
    \if@tud@cdfont@heavy%
      \TUDoptions{cdhead=heavy}%
    \else%
      \TUDoptions{cdhead=true}%
    \fi%
  \fi\fi%
%    \end{macrocode}
% Die Schriften für die Kopfzeile werden hier definiert. Abhängig von 
% \cs{if@tud@cdfont@active} werden entweder die Schriften des \CDs oder die 
% serifenlose Standardschrift für die Kopfzeile verwendet. Die Rückfallebene:
%    \begin{macrocode}
  \if@tud@head@font@set%
    \if@tud@x@mweights@enabled%
      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
        {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}%
      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
        {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}%
%<*poster>
      \protected\gdef\tud@head@font@@bold{%
        \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\updefault}%
      }%
%</poster>
    \else%
      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
        {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}%
      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
        {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}%
%<*poster>
      \protected\gdef\tud@head@font@@bold{%
        \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}%
      }%
%</poster>
    \fi%
    \ifcase\tud@head@font@num\relax\else% true/heavy
      \tud@head@cdfont@set%
    \fi%
    \global\@tud@head@font@setfalse%
    \global\@tud@head@text@settrue%
  \fi%
}
%    \end{macrocode}
% Hiermit werden die eigentlichen Schriften des \CDs gesetzt.
%    \begin{macrocode}
\newcommand*\tud@head@cdfont@set{%
  \if@tud@cdfont@fam@exist%
    \ifcase\tud@head@font@num\relax\or% true
      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
        {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}%
      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
        {\tud@cdfont@fam@lf}{sb}{n}{\tud@head@fontsize}%
%<*poster>
      \protected\gdef\tud@head@font@@bold{%
        \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{sb}{n}%
      }%
%</poster>
    \or% heavy
      \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
        {\tud@cdfont@fam@lf}{m}{n}{\tud@head@fontsize}%
      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
        {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}%
%<*poster>
      \protected\gdef\tud@head@font@@bold{%
        \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{b}{n}%
      }%
%</poster>
    \fi%
  \fi%
}
%    \end{macrocode}
% Und noch die Variante für die alten Schriften.
%    \begin{macrocode}
\if@tud@cdoldfont@active
  \renewcommand*\tud@head@cdfont@set{%
    \if@tud@cdfont@fam@exist%
      \ifcase\tud@head@font@num\relax\or% true
        \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
          {\tud@cdfont@fam@lf}{l}{n}{\tud@head@fontsize}%
      \or% heavy
        \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
          {\tud@cdfont@fam@lf}{m}{n}{\tud@head@fontsize}%
      \fi%
      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
        {\tud@cdfont@fam@lf}{b}{n}{\tud@head@fontsize}%
%<*poster>
      \protected\gdef\tud@head@font@@bold{%
        \usefont{\encodingdefault}{\tud@cdfont@fam@lf}{b}{n}%
      }%
%</poster>
    \fi%
  }%
\fi
%    \end{macrocode}
% \end{macro}^^A \tud@head@font@@bold
% \end{macro}^^A \tud@head@font@bold
% \end{macro}^^A \tud@head@font@light
% \end{macro}^^A \tud@head@cdfont@set
% \end{macro}^^A \tud@head@font@set
%
% \iffalse
%</class>
%</body>
% \fi
%
% \Finale
%
\endinput
