% \CheckSum{1097}
% \iffalse meta-comment
% 
% ============================================================================
% 
%  TUD-KOMA-Script
%  Copyright (c) Falk Hanisch <tudscr@gmail.com>, 2012-2015
% 
% ============================================================================
% 
%  This work may be distributed and/or modified under the conditions of the
%  LaTeX Project Public License, version 1.3c of the license. The latest
%  version of this license is in http://www.latex-project.org/lppl.txt and 
%  version 1.3c or later is part of all distributions of LaTeX 2005/12/01
%  or later and of this work. This work has the LPPL maintenance status 
%  "author-maintained". The current maintainer and author of this work
%  is Falk Hanisch.
% 
% ----------------------------------------------------------------------------
% 
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle 
% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und 
% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 
% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status 
% "author-maintained", wird somit allein durch den Autor verwaltet. Der 
% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch.
% 
% ============================================================================
%
% \fi
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \iffalse
%%% From File: tudscr-fonts.dtx
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-fonts.dtx}[%
  2015/02/19 v2.03a TUD-KOMA-Script\space%
%</driver>
%<package&identify>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
%<package&identify>\ProvidesPackage{tudscrfonts}[%
%<*driver|package&identify>
%!TUDVersion
%<package>  package
  (corporate design fonts)%
]
%</driver|package&identify>
%<*driver>
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass[english,ngerman]{tudscrdoc}
\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-fonts.dtx}
\begin{document}
  \maketitle
  \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A
% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A
% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} entfernt}%^^A
% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}%^^A
% \changes{v2.02}{2014/09/30}{\pkg{tudscrfonts} Nutzung alter tud-Klassen 
%   mit neuen Schriftfamilien ermöglicht}%^^A
%
% \section{Schriften des \CDs}
%
% Für das \CD der Technischen Universität Dresden werden die Schriften Univers
% und DIN"~Bold zwingend benötigt. Zur fehlerfreien Verwendung dieser Klassen
% sollten diese bitte installiert werden. Hier werden die \LaTeX-Befehle zur
% Verwendung der Schriften im Dokument definiert. Sollen nur kurze Passagen in
% einer anderen Schrift als der restliche Text gesetzt werden, so sollten
% anstatt der einfachen Schalter wie beispielsweise \cs{univ\dots} besser die
% Befehle \cs{text\dots}\marg{Auszeichnungstext} verwendet werden.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \iffalse
%<*class&option>
% \fi
%
% \subsection{Verwendbarkeit des Paketes \pkg{tudscrfonts}}
%
%    \begin{macrocode}
\PreventPackageFromLoading[%
  \ClassWarning{\tudcls@name}{%
    The package `tudscrfonts' must not be used with\MessageBreak%
    a TUD-KOMA-Script class%
  }%
]{tudscrfonts}
%    \end{macrocode}
%
% \iffalse
%</class&option>
%<*package&identify>
% \fi
%
% \subsection{Verwendung alter TUD-Klassen oder \TUDScript~v1.0}
%
% Das Paket kann genutzt werden, um alle möglichen veralteten Klassen mit den
% neuen Schriftfamilien zu verwenden.
% \begin{macro}{\if@tud@oldclass}
% \changes{v2.02}{2014/08/29}{neu}%^^A
% \begin{macro}{\if@tud@oldscrclass}
% \changes{v2.02}{2014/08/29}{neu}%^^A
%    \begin{macrocode}
\newif\if@tud@oldclass
\newif\if@tud@oldscrclass
%    \end{macrocode}
% Wenn eine der alten Klassen aus den Vorlagen von Klaus Bergmann geladen 
% wurde, wird dies für spätere Anpassungen registriert.
% \ToDo{Klassen tudmathposter und tudposter einpflegen, 
%   \cs{tudfont\marg{\dots}}, besser \cs{cdfont} für Klassen und Paket}[v2.04]
% \ToDo{Klasse tudbeamer einpflegen}[v2.xx]
%    \begin{macrocode}
\@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}%
\@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}%
\@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}%
\@ifclassloaded{tudform}{\@tud@oldclasstrue}{}%
\@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}%
\@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}%
%    \end{macrocode}
% Soll das Paket \pkg{tudscrfonts} mit den \TUDScript-Klassen der Version~v1.0
% genutzt werden, muss Sorge dafür getragen werden, dass einige veraltete 
% Befehle aktualisiert werden. Hierfür müssen diese \enquote{unschädlich}
% gemacht werden, noch bevor das Paket selbst in Erscheinung tritt.
%    \begin{macrocode}
\@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}%
\@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}%
\@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}%
\if@tud@oldscrclass
  \let\TUDoptions\relax
  \let\TUDoption\relax
  \let\univln\relax
  \let\univrn\relax
  \let\univbn\relax
  \let\univxn\relax
  \let\univls\relax
  \let\univrs\relax
  \let\univbs\relax
  \let\univxs\relax
  \let\dinbn\relax
\fi
%    \end{macrocode}
% \end{macro}^^A if@tud@oldscrclass
% \end{macro}^^A if@tud@oldclass
% \iffalse
%</package&identify>
%<*(class|package)&option>
% \fi
%
% \subsection{Schriftauswahl im \TUDScript-Bundle}
%
% Das \TUDScript-Bundle unterstützt sowohl die Schriftauswahl im klassischen 
% New Font Selection Scheme (NFSS) als auch das Einbinden der Schriften im 
% OpenType"=Format aus dem System über das Paket \pkg{fontspec} für Lua\LaTeX 
% bzw. Xe\LaTeX, wobei die letztere Variante nicht ideal ist. Zum einen 
% funktioniert das Kerning nicht sonderlich gut und zum anderen sind keine 
% Schriften für den mathematischen Satz vorhanden. Da die skriptbasierte
% Installation der PostScript"=Schriften gut funktioniert, ist diese Variante 
% zu bevorzugen. Trotzdem werden beide Varianten, die Schriftfamilie des \CDs 
% für den Fließtext und die Überschriften zu verwenden, angeboten.
% \begin{option}{fontspec}
% \changes{v2.02}{2014/08/29}{neu}%^^A
% \begin{macro}{\if@tud@fontspec}
% \changes{v2.02}{2014/08/29}{neu}%^^A
% \begin{macro}{\if@tud@univers}
% \begin{macro}{\if@tud@dinbold}
% \changes{v2.02}{2014/08/29}{neu}%^^A
% \begin{macro}{\tud@univers}
% \begin{macro}{\tud@dinbold}
% \begin{macro}{\tud@mathenc}
% \changes{v2.03a}{2015/02/19}{entfernt}%^^A
% Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes 
% \pkg{fontspec} aktiviert werden. Nur so ist eine vollständige Anpassung der 
% Schriften an die Funktionalitäten des Paketes möglich. Zu Beginn werden 
% Schalter und Hilfsmakros definiert.
%    \begin{macrocode}
\newif\if@tud@univers
\newif\if@tud@dinbold
\newcommand*\tud@univers{lun}
\newcommand*\tud@dinbold{0m6}
%    \end{macrocode}
% Hier kommt die eigentliche Option.
%    \begin{macrocode}
\newif\if@tud@fontspec
\TUD@key{fontspec}[true]{%
  \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}%
}
%    \end{macrocode}
% Da dieser Prozess sehr tief in die Schriftauswahl eingreift und das Laden des
% Paketes die Schriftauswahl für das ganze Dokument verändert, wird diese 
% Option nur beim Laden der Klasse zugelassen.
%    \begin{macrocode}
%<*class>
\AtEndOfClass%
%</class>
%<*package>
\AtEndOfPackage%
%</package>
{%
  \TUD@key{fontspec}[]
  {%
%<*class>
    \ClassError{\tudcls@name}
%</class>
%<*package>
    \PackageError{tudscrfonts}
%</package>
      {Option `fontspec' too late}{%
      Option `fontspec' can only be set while loading the\MessageBreak%
%<*class>
      class `\tudcls@name'
%</class>
%<*package>
      package `tudscrfonts'
%</package>
      but you have tried to set it up later.%
    }%
    \FamilyKeyStateProcessed%
  }%
%<*package>
  \@ifpackageloaded{fontspec}{%
    \PackageError{tudscrfonts}{Package `fontspec' too early}{%
      When using the option `fontspec' you must not load\MessageBreak%
      the package `fontspec' before `tudscrfonts'.%
    }%
  }{}
%</package>
  \if@tud@fontspec%
    \PreventPackageFromLoading[%
%<*class>
      \ClassWarning{\tudcls@name}%
%</class>
%<*package>
      \PackageWarning{tudscrfonts}%
%</package>
      {%
        You must not load the package `fontspec' as it is\MessageBreak%
        loaded automatically at the end of the preamble.\MessageBreak%
        If you want to pass options to `fontspec' use\MessageBreak%
        `\string\PassOptionsToPackage{<option list>}{fontspec}'
      }%
    ]{fontspec}
  \fi%
}
%    \end{macrocode}
% Anschließend erfolgt die Verarbeitung der Option am Ende der Klasse. Zu 
% allererst wird die Kodierung der Mathematikschriften für den weiteren Verlauf 
% festgelegt. Da es so gut wie keine freien OpenType"=Schriften für den 
% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option 
% \opt{fontspec} \emph{immer} die PostScript"=Schriften verwendet, falls diese 
% installiert sind.
%    \begin{macrocode}
\AtEndPreamble{%
%    \end{macrocode}
% Es wird überprüft, ob die PostScript"=Schriften installiert sind. Wird das 
% Paket \pkg{fontspec} verwendet, werden diese nur für die Mathematikschriften 
% verwendet. Sollte diese nicht vorhanden sein, wird eine Warnung ausgegeben. 
% Ist die Option \opt{fontspec} nicht aktiviert, wird beim Nichtvorhandensein
% der Schriften eine Warnung ausgegeben und eine Rückfallebene definiert.
%    \begin{macrocode}
  \if@tud@fontspec%
    \edef\@tempa{%
      \lowercase{\noexpand\InputIfFileExists{OT1\tud@univers.fd}}%
    }%
    \def\@tempb#1{%
%<*class>
      \ClassInfoNoLine{\tudcls@name}{%
%</class>
%<*package>
      \PackageInfoNoLine{tudscrfonts}{%
%</package>
        `#1' fonts not found for math typesetting%
      }%
    }%
  \else%
    \edef\@tempa{%
      \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}%
    }%
    \def\@tempb#1{%
%<*class>
      \ClassWarningNoLine{\tudcls@name}{%
%</class>
%<*package>
      \PackageWarningNoLine{tudscrfonts}{%
%</package>
        `#1' fonts not found for encoding `\encodingdefault'.\MessageBreak%
        Please use on of the installation scripts out of the\MessageBreak%
        tudscr-bundle, which suits to your OS or choose a\MessageBreak%
        possible encoding. A fallback layout is used%
      }%
    }%
  \fi%
  \@tempa{\@tud@universtrue}{\@tempb{Univers}}%
%    \end{macrocode}
% Ebenso wie bei der Univers"=Schriftfamilie wird auch bei DIN~Bold verfahren.
%    \begin{macrocode}
  \if@tud@fontspec%
    \edef\@tempa{%
      \lowercase{\noexpand\InputIfFileExists{OT1\tud@dinbold.fd}}%
    }%
  \else%
    \edef\@tempa{%
      \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}%
    }%
  \fi%
  \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}%
%    \end{macrocode}
% Nachdem auf die Schriften geprüft wurde, kommt nun die Umsetzung der Option. 
% Sollten die PostScript"=Schriften installiert sein, wird \pkg{fontspec} darin 
% gehindert, die Mathematikschriften von sich aus anzupassen.
%    \begin{macrocode}
  \if@tud@fontspec%
    \UnPreventPackageFromLoading{fontspec}%
    \if@tud@univers\if@tud@dinbold%
      \PassOptionsToPackage{no-math}{fontspec}%
    \fi\fi%
    \RequirePackage{fontspec}[2014/06/21]%
  \fi%
%    \end{macrocode}
% Damit ist die Verarbeitung der Option \opt{fontspec} abgeschlossen.
%    \begin{macrocode}
}
%    \end{macrocode}
% \end{macro}^^A \tud@mathenc
% \end{macro}^^A \tud@dinbold
% \end{macro}^^A \tud@univers
% \end{macro}^^A if@tud@dinbold
% \end{macro}^^A if@tud@univers
% \end{macro}^^A \if@tud@fontspec
% \end{option}^^A fontspec
%
% \iffalse
%</(class|package)&option>
%<*(class|package)&body>
% \fi
%
% \begin{macro}{\univln}
% \begin{macro}{\univrn}
% \begin{macro}{\univbn}
% \begin{macro}{\univxn}
% \begin{macro}{\univls}
% \begin{macro}{\univrs}
% \begin{macro}{\univbs}
% \begin{macro}{\univxs}
% Sollte die Univers installiert sein, werden mehrere Schalter zur expliziten
% Auswahl für die Schriftschnitte Univers~45~Light, Univers~55~Regular,
% Univers~65~Bold, Univers~75~Black, Univers~45~Light~Oblique,
% Univers~55~Regular~Oblique, Univers~65~Bold~Oblique sowie
% Univers~75~Black~Oblique definiert. Diese können so im Dokument unabhängig 
% von der Option \opt{cdfont} genutzt werden
%    \begin{macrocode}
\AtEndPreamble{%
%    \end{macrocode}
% Dies geschieht abhängig von der Option \opt{fontspec}.
%    \begin{macrocode}
  \if@tud@fontspec%
%    \end{macrocode}
% Für die ersten drei Schriften werden hierfür feste NFSS-Namen vergeben, um 
% diese beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können.
%    \begin{macrocode}
    \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]%
    \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]%
    \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]%
    \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]%
    \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]%
    \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]%
    \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]%
    \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]%
    \newcommand*\textuln[1]{{\univln#1}}%
    \newcommand*\texturn[1]{{\univrn#1}}%
    \newcommand*\textubn[1]{{\univbn#1}}%
    \newcommand*\textuxn[1]{{\univxn#1}}%
    \newcommand*\textuls[1]{{\univls#1}}%
    \newcommand*\texturs[1]{{\univrs#1}}%
    \newcommand*\textubs[1]{{\univbs#1}}%
    \newcommand*\textuxs[1]{{\univxs#1}}%
%    \end{macrocode}
% Falls \opt{fontspec} nicht aktiv ist, werden die Schriften klassisch nach dem 
% NFSS definiert.
%    \begin{macrocode}
  \else%
    \if@tud@univers%
      \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}%
      \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}%
      \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}%
      \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}%
      \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}%
      \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}%
      \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}%
      \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}%
%    \end{macrocode}
% Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese
% einfach nichts machen.
%    \begin{macrocode}
    \else%
      \newcommand*\univln{}%
      \newcommand*\univrn{}%
      \newcommand*\univbn{}%
      \newcommand*\univxn{}%
      \newcommand*\univls{}%
      \newcommand*\univrs{}%
      \newcommand*\univbs{}%
      \newcommand*\univxs{}%
    \fi%
%    \end{macrocode}
% \end{macro}^^A \univxs
% \end{macro}^^A \univbs
% \end{macro}^^A \univrs
% \end{macro}^^A \univls
% \end{macro}^^A \univxn
% \end{macro}^^A \univbn
% \end{macro}^^A \univrn
% \end{macro}^^A \univln
% \begin{macro}{\textuln}
% \begin{macro}{\texturn}
% \begin{macro}{\textubn}
% \begin{macro}{\textuxn}
% \begin{macro}{\textuls}
% \begin{macro}{\texturs}
% \begin{macro}{\textubs}
% \begin{macro}{\textuxs}
% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle
% bereitgestellt.
%    \begin{macrocode}
    \newcommand*\textuln{}%
    \newcommand*\texturn{}%
    \newcommand*\textubn{}%
    \newcommand*\textuxn{}%
    \newcommand*\textuls{}%
    \newcommand*\texturs{}%
    \newcommand*\textubs{}%
    \newcommand*\textuxs{}%
    \DeclareTextFontCommand{\textuln}{\univln}%
    \DeclareTextFontCommand{\texturn}{\univrn}%
    \DeclareTextFontCommand{\textubn}{\univbn}%
    \DeclareTextFontCommand{\textuxn}{\univxn}%
    \DeclareTextFontCommand{\textuls}{\univls}%
    \DeclareTextFontCommand{\texturs}{\univrs}%
    \DeclareTextFontCommand{\textubs}{\univbs}%
    \DeclareTextFontCommand{\textuxs}{\univxs}%
  \fi%
%    \end{macrocode}
% \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
% \begin{macro}{\dinbn}
% \begin{macro}{\@dinbn}
% \begin{macro}{\textdbn}
% Schalter bzw. Befehl für die Auszeichnung in DIN~Bold. Bei der Schriftauswahl 
% wird neben dieser noch die entsprechende Mathematikschrift aktiviert. Auch
% hier geschieht dies abhängig von der Option \opt{fontspec}.
%    \begin{macrocode}
%<*package>
  \ifdef{\sectfont}{}{\let\sectfont\relax}%
%</package>
  \if@tud@fontspec%
    \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]%
    \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}%
    \newcommand*\textdbn[1]{{\dinbn#1}}%
  \else%
    \if@tud@dinbold%
      \newcommand*\dinbn{%
        \usefont{\encodingdefault}{\tud@dinbold}{b}{n}%
        \mathversion{dinbold}%
      }%
    \else%
      \let\dinbn\sectfont%
    \fi%
    \newcommand*\textdbn{}%
    \DeclareTextFontCommand{\textdbn}{\dinbn}%
  \fi%
%    \end{macrocode}
% \end{macro}^^A \textdbn
% \end{macro}^^A \@dinbn
% \end{macro}^^A \dinbn
% \begin{macro}{\mv@univers}
% \begin{macro}{\mv@universbold}
% Für die Mathematikschriften im FLießtext werden für die lateineischen Lettern
% die Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die
% griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus
% dem \pkg{iwona}"~Paket die mathematische Symbole verwendet. Es werden zwei
% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. 
%    \begin{macrocode}
  \DeclareMathVersion{univers}%
  \DeclareMathVersion{universbold}%
  \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}%
  \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}%
  \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}%
  \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}%
  \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}%
  \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}%
  \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}%
  \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}%
  \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}%
  \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}%
  \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}%
  \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}%
  \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}%
  \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}%
  \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}%
  \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}%
%    \end{macrocode}
% \end{macro}^^A \mv@universbold
% \end{macro}^^A \mv@univers
% \begin{macro}{\mv@dinbold}
% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart 
%   DIN~Bold verwendet}%^^A
% Auch für die Schrift DIN~Bold werden mathematische Glyphen bereitgestellt.
% Diese wurden aus dem \pkg{iwona}"=Paket entnommen. Auch die verwendeten 
% Symbole stammen aus diesem Paket.
%    \begin{macrocode}
  \DeclareMathVersion{dinbold}%
  \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
  \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}%
  \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}%
  \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}%
  \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
  \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}%
  \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}%
%    \end{macrocode}
% \end{macro}^^A \mv@dinbold
% \begin{macro}{\upGamma}
% \begin{macro}{\upDelta}
% \begin{macro}{\upTheta}
% \begin{macro}{\upLambda}
% \begin{macro}{\upXi}
% \begin{macro}{\upPi}
% \begin{macro}{\upSigma}
% \begin{macro}{\upUpsilon}
% \begin{macro}{\upPhi}
% \begin{macro}{\upPsi}
% \begin{macro}{\upOmega}
% \begin{macro}{\varGamma}
% \begin{macro}{\varDelta}
% \begin{macro}{\varTheta}
% \begin{macro}{\varLambda}
% \begin{macro}{\varXi}
% \begin{macro}{\varPi}
% \begin{macro}{\varSigma}
% \begin{macro}{\varUpsilon}
% \begin{macro}{\varPhi}
% \begin{macro}{\varPsi}
% \begin{macro}{\varOmega}
% In Anlehnung an verschiedene Pakete für Mathematikschriften werden die 
% Symbole für aufrechte und kursive Majuskeln der griechischen Lettern separat
% definiert.
%    \begin{macrocode}
  \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}%
  \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}%
  \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}%
  \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}%
  \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}%
  \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}%
  \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}%
  \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}%
  \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}%
  \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}%
  \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}%
  \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}%
  \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}%
  \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}%
  \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}%
  \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}%
  \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}%
  \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}%
  \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}%
  \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}%
  \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}%
  \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}%
  \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}%
  \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}%
}
%    \end{macrocode}
% \end{macro}^^A \varOmega
% \end{macro}^^A \varPsi
% \end{macro}^^A \varPhi
% \end{macro}^^A \varUpsilon
% \end{macro}^^A \varSigma
% \end{macro}^^A \varPi
% \end{macro}^^A \varXi
% \end{macro}^^A \varLambda
% \end{macro}^^A \varTheta
% \end{macro}^^A \varDelta
% \end{macro}^^A \varGamma
% \end{macro}^^A \upOmega
% \end{macro}^^A \upPsi
% \end{macro}^^A \upPhi
% \end{macro}^^A \upUpsilon
% \end{macro}^^A \upSigma
% \end{macro}^^A \upPi
% \end{macro}^^A \upXi
% \end{macro}^^A \upLambda
% \end{macro}^^A \upTheta
% \end{macro}^^A \upDelta
% \end{macro}^^A \upGamma
%
% \iffalse
%</(class|package)&body>
%<*(class|package)&option>
% \fi
%
% \begin{macro}{\tud@uclcnotmath}
% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im 
%   Argument des Befehls \cs{MakeTextUppercase}}%^^A
% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls 
%   \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}%^^A
% \begin{macro}{\@uclcnotmath}
% Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit
% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase}
% verbessert, wird das Paket \pkg{textcase} genutzt. Damit Fußnoten nicht 
% automatisch in Majuskeln gesetzt werden, wird außerdem der interne Befehl
% \cs{@uclcnotmath} aus diesem Paket angepasst.
%    \begin{macrocode}
\RequirePackage{textcase}[2004/10/07]
\newcommand*\tud@uclcnotmath{%
  \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}%
  \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}%
  \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}%
}
\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{%
  \@nonchangecase\ensuremath\tud@uclcnotmath
}{}{\tud@patch@wrn{@uclcnotmath}}%
%    \end{macrocode}
% \end{macro}^^A \@uclcnotmath
% \end{macro}^^A \tud@uclcnotmath
% \begin{macro}{\tud@font@heading}
% Mit \cs{tud@font@heading} wird die Schriftart für Überschriften im Layout des 
% \CDs definiert. Normalerweise wird hierfür DIN-Bold verwendet, was allerdings
% per Option auch deaktiviert werden kann.
%    \begin{macrocode}
\newcommand*\tud@font@heading{\dinbn\tud@raggedright}
%    \end{macrocode}
% \end{macro}^^A \tud@font@heading
% \begin{option}{cdfont}
% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}%^^A
% \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}%^^A
% \begin{macro}{\tud@cdfont}
% Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen
% Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option
% können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke
% der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von 
% DIN~Bold für die Überschriften deaktivieren. Außerdem kann eingestellt
% werden, ob für den Mathematiksatz serifenlose Schriften zum Einsatz kommen
% sollen.
%    \begin{macrocode}
\newcommand*\tud@cdfont{1}
\TUD@key{cdfont}[true]{%
  \TUD@set@numkey{cdfont}{@tempa}{%
    \TUD@numkey@bool,%
    {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
    {heavy}{2},{heavyfont}{2},%
    {nodin}{3},{nodinbold}{3},{noDIN}{3},{noDINBold}{3},%
    {din}{4},{dinbold}{4},{DIN}{4},{DINBold}{4},%
%<*class>
    {nohead}{5},{nocdhead}{5},{noheadfont}{5},{noheadcdfont}{5},%
    {nocdheadfont}{5},{nobar}{5},{nobarfont}{5},%
    {head}{6},{headfont}{6},{cdhead}{6},{headcdfont}{6},{cdheadfont}{6},%
    {bar}{6},{barfont}{6},%
    {lighthead}{6},{lightheadfont}{6},{lightfonthead}{6},%
    {lightcdhead}{6},{lightheadcdfont}{6},{lightcdheadfont}{6},%
    {lightbar}{6},{lightbarfont}{6},{lightfontbar}{6},%
    {headlight}{6},{headfontlight}{6},{headlightfont}{6},%
    {cdheadlight}{6},{headcdfontlight}{6},{cdheadfontlight}{6},%
    {barlight}{6},{barfontlight}{6},{barlightfont}{6},%
    {litehead}{6},{liteheadfont}{6},{litefonthead}{6},%
    {litecdhead}{6},{liteheadcdfont}{6},{litecdheadfont}{6},%
    {litebar}{6},{litebarfont}{6},{litefontbar}{6},%
    {headlite}{6},{headfontlite}{6},{headlitefont}{6},%
    {cdheadlite}{6},{headcdfontlite}{6},{cdheadfontlite}{6},%
    {barlite}{6},{barfontlite}{6},{barlitefont}{6},%
    {noheavyhead}{6},{noheavyheadfont}{6},{noheavyfonthead}{6},%
    {noheavycdhead}{6},{noheavyheadcdfont}{6},{noheavycdheadfont}{6},%
    {noheavybar}{6},{noheavybarfont}{6},{noheavyfontbar}{6},%
    {headnoheavy}{6},{headfontnoheavy}{6},{headnoheavyfont}{6},%
    {cdheadnoheavy}{6},{headcdfontnoheavy}{6},{cdheadfontnoheavy}{6},%
    {barnoheavy}{6},{barfontnoheavy}{6},{barnoheavyfont}{6},%
    {heavyhead}{7},{heavyheadfont}{7},{heavyfonthead}{7},%
    {heavycdhead}{7},{heavyheadcdfont}{7},{heavycdheadfont}{7},%
    {heavybar}{7},{heavybarfont}{7},{heavyfontbar}{7},%
    {headheavy}{7},{headfontheavy}{7},{headheavyfont}{7},%
    {cdheadheavy}{7},{headcdfontheavy}{7},{cdheadfontheavy}{7},%
    {barheavy}{7},{barfontheavy}{7},{barheavyfont}{7},%
%</class>
    {nomath}{8},{nocdmath}{8},%
    {serifmath}{8},{serif}{8},{nosansmath}{8},{nosans}{8},%
    {math}{9},{cdmath}{9},{sansmath}{9},{sans}{9},%
    {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},%
    {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},%
    {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},%
    {nofontspec}{13},{pdftex}{13},{pdflatex}{13}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
%    \end{macrocode}
% Die ersten drei Werte dienen zum Umschalten auf die Schriften des \CDs für
% den Fließtext.
%    \begin{macrocode}
    \ifcase\@tempa\relax%
      \def\tud@cdfont{0}%
      \if@atdocument\tud@font@set\fi%
    \or%
      \def\tud@cdfont{1}%
      \if@atdocument\tud@font@set\fi%
    \or%
      \def\tud@cdfont{2}%
      \if@atdocument\tud@font@set\fi%
%    \end{macrocode}
% Hier wird die Verwendung von DIN~Bold für die Überschirften festgelegt.
%    \begin{macrocode}
    \or%
      \renewcommand*\tud@font@heading{\tud@RaggedRight}%
    \or%
      \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}
%    \end{macrocode}
% Die Schrift für den Querbalken.
%    \begin{macrocode}
    \or%
%<*class>
      \TUDoptions{cdhead=false}%
%</class>
    \or%
%<*class>
      \TUDoptions{cdhead=true}%
%</class>
    \or%
%<*class>
      \TUDoptions{cdhead=heavy}%
%</class>
%    \end{macrocode}
% Die Mathematikschriften.
%    \begin{macrocode}
    \or%
      \TUDoptions{cdmath=false}%
    \or%
      \TUDoptions{cdmath=true}%
%    \end{macrocode}
% Die Neigung der großen griechischen Buchstaben.
%    \begin{macrocode}
    \or%
      \TUDoptions{slantedgreek=false}%
    \or%
      \TUDoptions{slantedgreek=true}%
%    \end{macrocode}
% Die Verwendung von \pkg{fontspec}.
%    \begin{macrocode}
    \or%
      \TUDoptions{fontspec=true}%
    \or%
      \TUDoptions{fontspec=false}%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cdfont
% \end{option}^^A cdfont
%
% \iffalse
%</(class|package)&option>
%<*(class|package)&body>
% \fi
%
% \begin{macro}{\tud@font@set}
% Mit diesem Befehl werden entweder die normalen oder aber die Schriften des 
% \CDs aktiviert. Dabei wird die Option \opt{fontspec} beachtet.
%    \begin{macrocode}
\newcommand*\tud@font@set{%
%    \end{macrocode}
% Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn
% gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet.
%    \begin{macrocode}
  \ifcase\tud@cdfont\relax%
    \tud@cmd@restore{rmdefault}%
    \tud@cmd@restore{sfdefault}%
    \tud@cmd@restore{ttdefault}%
    \tud@cmd@restore{bfdefault}%
    \tud@cmd@restore{mddefault}%
    \tud@cmd@restore{itdefault}%
    \tud@cmd@restore{familydefault}%
    \tud@cmd@restore{seriesdefault}%
    \tud@cmd@restore{shapedefault}%
%    \end{macrocode}
% Die Mathematikschriften werden auf ihr Stanardverhalten zurückgesetzt. 
%    \begin{macrocode}
    \bool@std@lock{@tud@cdmath}{false}%
%    \end{macrocode}
% Innerhalb der Klassen wird auch die Schrift im Querbalken zurückgsetzt.
%    \begin{macrocode}
%<*class>
    \cs@std@lock{tud@head@font}{0}%
%</class>
%    \end{macrocode}
% Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der 
% Standardschriften vorher vorher gesichert, um diese später vollständig 
% wiederherstellen zu können.
%    \begin{macrocode}
  \else%
    \tud@cmd@store{rmdefault}%
    \tud@cmd@store{sfdefault}%
    \tud@cmd@store{ttdefault}%
    \tud@cmd@store{bfdefault}%
    \tud@cmd@store{mddefault}%
    \tud@cmd@store{itdefault}%
    \tud@cmd@store{familydefault}%
    \tud@cmd@store{seriesdefault}%
    \tud@cmd@store{shapedefault}%
%    \end{macrocode}
% Die Mathematikschriften werden bei der Verwendung der Schriften des \CDs~--
% falls nicht anders durch den Anwender definiert~-- auf Serifenlose gesetzt.
%    \begin{macrocode}
    \bool@std@lock{@tud@cdmath}{true}%
%    \end{macrocode}
% Die Schrift im Querbalken wird bei den Klassen angepasst.
%    \begin{macrocode}
%<*class>
    \cs@std@lock{tud@head@font}{\tud@cdfont}%
%</class>
%    \end{macrocode}
% Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket
% \pkg{fontspec} oder\dots
%    \begin{macrocode}
    \if@tud@fontspec%
      \ifnum\tud@cdfont=\@ne\relax%
        \setsansfont{Univers Light}[%
          BoldFont = Univers,%
          ItalicFont = Univers Light Oblique,%
          BoldItalicFont = Univers Oblique,%
        ]%
        \setmonofont{LMMonoLt10-Regular}[%
          BoldFont = LMMono10-Regular,%
          ItalicFont = LMMonoLt10-Oblique,%
          BoldItalicFont = LMMonoSlant10-Regular,%
        ]%
%    \end{macrocode}
% Für die alten Klassen von Klaus Bergmann sowie \TUDScript in der Version~v1.0 
% werden die fetten Schriften in einem stärkeren Schriftschnitt gesetzt.
%    \begin{macrocode}
%<*package>
        \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{%
          \setsansfont{Univers Light}[%
            BoldFont = Univers Bold,%
            ItalicFont = Univers Light Oblique,%
            BoldItalicFont = Univers Bold Oblique,%
          ]%
        }{}%
%</package>
      \else%
        \setsansfont{Univers}[%
          BoldFont = Univers Bold,%
          ItalicFont = Univers Oblique,%
          BoldItalicFont = Univers Bold Oblique,%
        ]%
        \setmonofont{LMMono10-Regular}[%
          BoldFont = LMMonoLt10-Bold,%
          ItalicFont = LMMonoSlant10-Regular,%
          BoldItalicFont = LMMonoLt10-BoldOblique,%
        ]%
      \fi%
%    \end{macrocode}
% \dots nach dem NFSS.
%    \begin{macrocode}
    \else%
      \if@tud@univers%
        \renewcommand*\sfdefault{\tud@univers}%
        \renewcommand*\ttdefault{\tud@univers t}%
        \ifnum\tud@cdfont=\@ne\relax%
          \renewcommand*\bfdefault{m}%
%    \end{macrocode}
% Bei den alten Klassen von Klaus Bergmann bzw. \TUDScript~v1.0 sind die fetten 
% Schriften stärker.
%    \begin{macrocode}
%<*package>
          \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{%
            \renewcommand*\bfdefault{b}%
          }{}%
%</package>
          \renewcommand*\mddefault{l}%
        \else%
          \renewcommand*\bfdefault{b}%
          \renewcommand*\mddefault{m}%
        \fi%
      \fi%
    \fi%
    \renewcommand*\rmdefault{\sfdefault}%
    \renewcommand*\familydefault{\sfdefault}%
    \renewcommand*\seriesdefault{\mddefault}%
    \renewcommand*\shapedefault{\updefault}%
  \fi%
%    \end{macrocode}
% Zum Abschluss wird die gewählte Standardschrift aktiviert. Danach erfolgt die 
% Behandlung der mathrematikschriften. Ganz zum Schluss wird das Layout erneut 
% gesetzt.
%    \begin{macrocode}
  \normalfont\selectfont%
  \tud@font@math@set%
%<*class>
  \tud@layout@process%
%</class>
}
%    \end{macrocode}
% \end{macro}^^A \tud@font@set
% \begin{macro}{\tud@font@math@set}
% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
% Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und
% neuem Mathematiksatz hin"~ und herschalten zu können. Dabei wird zum einen
% das Mapping der griechischen Glyphen geändert, zum anderen werden die
% originalen Mathematikversionen überschrieben respektive wiederhergestellt.
%    \begin{macrocode}
\newcommand*\tud@font@math@set{%
  \if@tud@univers%
    \if@tud@cdmath%
      \tud@cmd@store{mv@normal}%
      \tud@cmd@store{mv@bold}%
      \let\mv@normal\mv@univers%
      \let\mv@bold\mv@universbold%
    \else%
      \tud@cmd@restore{mv@normal}%
      \tud@cmd@restore{mv@bold}%
    \fi%
  \fi%
  \if@tud@slantedgreek%
    \tud@font@greek@slanted%
  \else%
    \tud@font@greek@upright%
  \fi%
  \mathversion{normal}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@font@math@set
% \begin{macro}{\tud@font@greek@upGamma}
% \begin{macro}{\tud@font@greek@offset}
% Damit innerhalb des Dokumentes problemlos zwischen aufrechten und kursiven 
% griechischen Buchstaben für den Mathematiksatz gewechselt werden kann, wurden
% die folgenden beiden Befehle definiert, welche vom Prinzip aus dem Paket
% \pkg{sansmath} abgekupfert sind. Es wird der Offset der Kodierung zwischen den
% kursiven und den aufrechten Glyphen in \cs{tud@font@greek@offset} gespeichert.
%    \begin{macrocode}
\newcount\tud@font@greek@upGamma
\tud@font@greek@upGamma\Gamma
\newcount\tud@font@greek@offset
\let\@tempa\relax
\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0}
\tud@font@greek@offset\@tempa
\advance\tud@font@greek@offset-\Gamma
%    \end{macrocode}
% \end{macro}^^A \tud@font@greek@offset
% \end{macro}^^A \tud@font@greek@upGamma
% \begin{macro}{\tud@font@greek@slanted}
% \begin{macro}{\tud@font@greek@upright}
% Mit dem Makro \cs{tud@font@greek@slanted} wird die Kodierung der griechischen
% Majuskeln von \texttt{operator} auf \texttt{letter} geändert\dots
%    \begin{macrocode}
\newcommand*\tud@font@greek@slanted{%
  \ifnum\Gamma=\tud@font@greek@upGamma\relax\tud@font@greek@changeshape\fi%
}
%    \end{macrocode}
% \dots und \cs{tud@font@greek@upright} macht alles wieder rückgängig. Dabei 
% wird bei beiden Befehlen vor der Ausführung geprüft, ob dies überhauot
% notwendig ist.
%    \begin{macrocode}
\newcommand*\tud@font@greek@upright{%
  \ifnum\Gamma>\tud@font@greek@upGamma%
    \tud@font@greek@offset=-\tud@font@greek@offset%
    \tud@font@greek@changeshape%
    \tud@font@greek@offset=-\tud@font@greek@offset%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@font@greek@upright
% \end{macro}^^A \tud@font@greek@slanted
% \begin{macro}{\tud@font@greek@def}
% \begin{macro}{\tud@font@greek@uc}
% \begin{macro}{\tud@font@greek@changeshape}
% Mit \cs{tud@font@greek@def} erfolgt die Umkodierung einer einzelnen 
% griechischen Glyphe. Das Makro \cs{tud@font@greek@changeshape} arbeitet die
% Liste \cs{tud@font@greek@uc} ab.
%    \begin{macrocode}
\newcommand*\tud@font@greek@def[2]{%
  \expandafter\@tempcnta\csname #1\endcsname%
  \advance\@tempcnta#2%
  \expandafter\mathchardef\csname #1\endcsname\@tempcnta%
}
%    \end{macrocode}
% Die Liste enthält die Namen der Befehle für große griechische Buchstaben. 
% Diese wird von \cs{tud@font@greek@changeshape} genutzt wird.
%    \begin{macrocode}
\newcommand*\tud@font@greek@uc{%
  Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
}
\newcommand*\tud@font@greek@changeshape{%
  \@for\@tempa:=\tud@font@greek@uc\do{%
    \@expandtwoargs\tud@font@greek@def{\@tempa}{\tud@font@greek@offset}%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@font@greek@changeshape
% \end{macro}^^A \tud@font@greek@uc
% \end{macro}^^A \tud@font@greek@def
%
% \iffalse
%</(class|package)&body>
%<*(class|package)&option>
% \fi
%
% Damit die Schrift im Dokument später noch umgestellt werden kann, werden
% sämtliche Einstellungen erst zu Beginn des Dokumentes gesichert. Deshalb wird
% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal
% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie
% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu
% aktivieren. Auch die Einstellungen für den Mathematiksatz werden erstmalig 
% durch \cs{tud@font@math@set} gesetzt.
%    \begin{macrocode}
\AtBeginDocument{\tud@font@set}%
%    \end{macrocode}
%
% \subsection{Schriften für den Mathematiksatz}
%
% Da die Schriften des \CDs keinen Mathematiksatz beeinhalten, musste~--
% insbesondere für griechische Symbole~-- eine passende Alternative gefunden
% werden. Die Auswahl an Mathematikschriften für \LaTeX{} ist relativ gering.
% Dennoch schien das \pkg{cmbright}-Paket dafür geeignet, weshalb dieses direkt
% bei der Installation der Schriften eingebunden wurde.
%
% \begin{option}{cdmath}
% \begin{macro}{\if@tud@cdmath}
% \begin{macro}{\if@tud@cdmath@locked}
% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz
% für das gesamte Dokument umgestellt werden.
%    \begin{macrocode}
\bool@lock{@tud@cdmath}
\TUD@key{cdmath}[true]{%
  \TUD@set@numkey{cdmath}{@tempa}{%
    \TUD@numkey@bool,%
    {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},%
    {sansmath}{1},{sans}{1},%
    {upright}{2},{upgreek}{2},{uprightgreek}{2},{uprightGreek}{2},%
    {slanted}{3},{slgreek}{3},{slantedgreek}{3},{slantedGreek}{3}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax%
      \bool@set@lock{@tud@cdmath}{false}%
      \TUD@std@ifkey@lock{slantedgreek}{false}%
      \if@atdocument\tud@font@math@set\fi%
    \or%
      \bool@set@lock{@tud@cdmath}{true}%
      \TUD@std@ifkey@lock{slantedgreek}{true}%
      \if@atdocument\tud@font@math@set\fi%
    \or
      \TUDoptions{slantedgreek=false}%
    \or
      \TUDoptions{slantedgreek=true}%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@cdmath@locked
% \end{macro}^^A \if@tud@cdmath
% \end{option}^^A cdmath
% \begin{option}{slantedgreek}
% \begin{macro}{\if@tud@slantedgreek}
% \begin{macro}{\if@tud@slantedgreek@locked}
% Mit dieser Option kann die Neigung der griechischen Majuskeln geändert werden.
%    \begin{macrocode}
\newif\if@tud@slantedgreek
\TUD@key@lock{slantedgreek}[true]{%
  \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \if@atdocument\tud@font@math@set\fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@slantedgreek@locked
% \end{macro}^^A \if@tud@slantedgreek
% \end{option}^^A slantedgreek
%
% \iffalse
%</(class|package)&option>
%<*package&execute>
% \fi
%
% Für das Paket \pkg{tudscrfonts} werden die Schriften aktiviert und die an das
% Paket übergebenen Optionen ausgeführt.
%    \begin{macrocode}
\TUDoptions{cdfont=true}
\DeclareOption*{\TUDoptions{\CurrentOption}}
\TUDProcessOptions\relax
%    \end{macrocode}
%
% \iffalse
%</package&execute>
%<*class&body>
% \fi
%
% \begin{macro}{\tud@head@font@set}
% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}%^^A
% \begin{macro}{\tud@head@font@bold}
% \begin{macro}{\tud@head@font@light}
% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber 
% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten
% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die
% Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im
% Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und
% in \cs{tud@head@font@size} gespeichert.
%    \begin{macrocode}
\newcommand*\tud@head@font@bold{}
\newcommand*\tud@head@font@light{}
\newcommand*\tud@head@font@set{%
% \changes{v2.03}{2015/01/30}{Fix für die Änderung von \cs{spaceskip} durch
%   \pkg{ragged2e}}%^^A
%    \end{macrocode}
% Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um 
% den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu 
% lassen, wird dies hier temporär unterdrückt.
%    \begin{macrocode}
  \ifdef{\@raggedtwoe@everyselectfont}{%
    \let\@raggedtwoe@everyselectfont\relax%
    \spaceskip\z@\selectfont%
  }{}%
%    \end{macrocode}
% Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet 
% werden.
%    \begin{macrocode}
  \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
    {\sfdefault}{bx}{n}{\tud@head@font@size}%
  \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
    {\sfdefault}{\mddefault}{n}{\tud@head@font@size}%
%    \end{macrocode}
% Die Option \opt{cdhead} wird ausgewertet.
%    \begin{macrocode}
  \@tempswafalse%
  \ifcase\tud@head@font\relax%
    \ifnum\tud@cdfont>\z@\relax%
      \ClassWarning{\tudcls@name}{%
        It isn't possible to use `cdhead=false'\MessageBreak%
        together with `cdfont=true'%
      }%
      \@tempswatrue%
    \fi%
  \else%
    \@tempswatrue%
  \fi%
%    \end{macrocode}
% Die Schriften für den Kopf im \CD werden aktiviert.
%    \begin{macrocode}
  \if@tempswa%
%    \end{macrocode}
% Damit \cs{DeclareFixedFont} zusammen mit \pkg{fontspec} verwendet werden 
% kann, wurde zu Beginn der Klasse den drei benötigten Schriftschnitten der 
% Univers spezielle Namen zugewiesen, die hier verwendet werden.
%    \begin{macrocode}
    \if@tud@fontspec%
      \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
        {UniversBold}{m}{n}{\tud@head@font@size}%
      \ifcase\tud@head@font\relax\or%
        \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
          {UniversLight}{m}{n}{\tud@head@font@size}%
      \or%
        \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
          {UniversRegular}{m}{n}{\tud@head@font@size}%
      \fi%
%    \end{macrocode}
% Die klassische Auswahl mittels NFSS-Schriftname und \cs{mddefault}.
%    \begin{macrocode}
    \else%
      \if@tud@univers%
        \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}%
          {\tud@univers}{b}{n}{\tud@head@font@size}%
        \ifcase\tud@head@font\relax\or%
          \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
            {\tud@univers}{l}{n}{\tud@head@font@size}%
        \or%
          \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
            {\tud@univers}{m}{n}{\tud@head@font@size}%
        \fi%
      \fi%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@head@font@light
% \end{macro}^^A \tud@head@font@bold
% \end{macro}^^A \tud@head@font@set
%
% \iffalse
%</class&body>
%<*(class|package)&body>
% \fi
%
% \begin{macro}{\ifdin}
% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A
% Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig 
% wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für 
% die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe 
% im Dokument sowie Inhaltserzeichnis und/oder Kolumnentitel zu unterscheiden.
%    \begin{macrocode}
\newrobustcmd*\ifdin{%
  \@tempswafalse%
  \@expandtwoargs\in@{DINBold}{\f@family}%
  \ifin@\@tempswatrue\fi%
  \ifx\f@family\tud@dinbold\relax\@tempswatrue\fi%
  \if@tempswa%
    \expandafter\@firstoftwo%
  \else%
    \expandafter\@secondoftwo%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \ifdin
% Wird das Paket \pkg{tudscrfonts} mit den alten TUD-Klassen oder \TUDScript in 
% der Version~v1.0 verwendet, müssen einige Kompatibilitätseinstellungen 
% vorgenmommen werden. Dies betrifft insbesondere allerhand darin definierter,
% fixer Schriften sowie die Mathematikschriften.
%    \begin{macrocode}
%<*package>
\AtBeginDocument{%
  \ifbool{@tud@oldclass}{%
    \if@tud@fontspec%
      \DeclareFixedFont{\univLightVII}{\encodingdefault}%
        {UniversLight}{m}{n}{7}%
      \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}%
        {UniversLightOblique}{m}{n}{7}%
      \DeclareFixedFont{\univBoldVII}{\encodingdefault}%
        {UniversBold}{m}{n}{7}%
      \DeclareFixedFont{\univLightIX}{\encodingdefault}%
        {UniversLight}{m}{n}{9}%
      \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}%
        {UniversLightOblique}{m}{n}{9}%
      \DeclareFixedFont{\univBoldIX}{\encodingdefault}%
        {UniversBold}{m}{n}{9}%
      \DeclareFixedFont{\univLightXI}{\encodingdefault}%
        {UniversLight}{m}{n}{11}%
      \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}%
        {UniversLightOblique}{m}{n}{11}%
      \DeclareFixedFont{\univBoldXI}{\encodingdefault}%
        {UniversBold}{m}{n}{11}%
      \DeclareFixedFont{\univLightXV}{\encodingdefault}%
        {UniversLight}{m}{n}{15}%
      \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}%
        {UniversLightOblique}{m}{n}{15}%
      \DeclareFixedFont{\univBoldXV}{\encodingdefault}%
        {UniversBold}{m}{n}{15}%
    \else%
      \if@tud@univers%
        \DeclareFixedFont{\univLightVII}{\encodingdefault}%
          {\tud@univers}{l}{n}{7}%
        \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}%
          {\tud@univers}{l}{sl}{7}%
        \DeclareFixedFont{\univBoldVII}{\encodingdefault}%
          {\tud@univers}{b}{n}{7}%
        \DeclareFixedFont{\univLightIX}{\encodingdefault}%
          {\tud@univers}{l}{n}{9}%
        \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}%
          {\tud@univers}{l}{sl}{9}%
        \DeclareFixedFont{\univBoldIX}{\encodingdefault}%
          {\tud@univers}{b}{n}{9}%
        \DeclareFixedFont{\univLightXI}{\encodingdefault}%
          {\tud@univers}{l}{n}{11}%
        \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}%
          {\tud@univers}{l}{sl}{11}%
        \DeclareFixedFont{\univBoldXI}{\encodingdefault}%
          {\tud@univers}{b}{n}{11}%
        \DeclareFixedFont{\univLightXV}{\encodingdefault}%
          {\tud@univers}{l}{n}{15}%
        \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}%
          {\tud@univers}{l}{sl}{15}%
        \DeclareFixedFont{\univBoldXV}{\encodingdefault}%
          {\tud@univers}{b}{n}{15}%
      \fi%
    \fi%
    \if@sansmath%
      \DeclareSymbolFont{aunLetters}{OT1}{\tud@univers}{l}{sl}%
      \SetSymbolFont{aunLetters}{bold}{OT1}{\tud@univers}{b}{sl}%
      \DeclareSymbolFont{aunOperators}{OT1}{\tud@univers}{l}{n}%
      \SetSymbolFont{aunOperators}{bold}{OT1}{\tud@univers}{b}{n}%
      \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}%
      \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}%
      \DeclareMathAlphabet\mathbf{OT1}{\tud@univers}{b}{n}%
      \SetMathAlphabet\mathbf{bold}{OT1}{\tud@univers}{b}{n}%
      \DeclareMathAlphabet\mathit{OT1}{\tud@univers}{l}{sl}%
      \SetMathAlphabet\mathit{bold}{OT1}{\tud@univers}{l}{sl}%
    \fi%
    \let\dinBold\dinbn%
    \let\dinfamily\dinbn%
  }{}%
  \ifbool{@tud@oldscrclass}{%
    \cmd@restore{rmdefault}%
    \cmd@restore{sfdefault}%
    \cmd@restore{bfdefault}%
    \cmd@restore{mddefault}%
    \cmd@restore{familydefault}%
    \cmd@restore{seriesdefault}%
    \cmd@restore{shapedefault}%
    \cmd@restore{rmfamily}%
    \cmd@restore{sffamily}%
    \cmd@restore{ttfamily}%
    \DeclareSymbolFontAlphabet{\mathrm}{operators}
    \if@tud@fontspec%
      \DeclareFixedFont{\univLightHead}{\encodingdefault}%
        {UniversLight}{m}{n}{\tud@head@fntsz}%
      \DeclareFixedFont{\univBoldHead}{\encodingdefault}%
        {UniversBold}{m}{n}{\tud@head@fntsz}%
    \else%
      \if@tud@univers%
        \DeclareFixedFont{\univLightHead}{\encodingdefault}%
          {\tud@univers}{l}{n}{\tud@head@fntsz}%
        \DeclareFixedFont{\univBoldHead}{\encodingdefault}%
          {\tud@univers}{b}{n}{\tud@head@fntsz}%
      \fi%
    \fi%
  }{}%
}
%</package>
%    \end{macrocode}
% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die
% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen.
%    \begin{macrocode}
\AfterPackage*{amsfonts}{%
  \DeclareFontFamily{U}{msa}{}%
  \DeclareFontShape{U}{msa}{m}{n}{%
    <-9>cmbras8%
    <9-10>cmbras9%
    <10->cmbras10%
  }{}%
  \DeclareFontFamily{U}{msb}{}%
  \DeclareFontShape{U}{msb}{m}{n}{%
    <-9>cmbrbs8%
    <9-10>cmbrbs9%
    <10->cmbrbs10%
  }{}%
}
%    \end{macrocode}
%
% \subsection{Anpassungen für das Paket \pkg{ragged2e}}
%
% \begin{macro}{\tud@raggedright}
% \begin{macro}{\tud@RaggedRight}
% Die Überschriften in DIN"~Bold sollen laut \CD linksbündig und nie mit
% Silbentrennung gesetzt werden. Normalerweise ist das dies beim linksbündigen
% Satz bei \LaTeX{} der Fall. Allerdings ist es mit dem Paket \pkg{ragged2e}
% möglich, das Verhalten für den Flattersatz zu ändern und die Silbentrennung
% zu aktivieren. Mit der Option \opt{newcommands} werden dabei die originalen
% Befehle überschrieben, vorher jedoch in \cs{LaTeX\dots} gesichert. Dieses
% Makro dient dazu, die Überschriften in jedem Fall~-- auch bei der Verwendung
% von \pkg{ragged2e} mit der Option \opt{newcommands}~-- ohne Trennungen zu
% setzen.
%    \begin{macrocode}
\newcommand*\tud@raggedright{\raggedright}
\newcommand*\tud@RaggedRight{\raggedright}
\AfterPackage*{ragged2e}{%
  \ifdef{\LaTeXraggedright}{%
    \renewcommand*\tud@raggedright{\LaTeXraggedright}%
  }{}%
  \renewcommand*\tud@RaggedRight{\RaggedRight}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@ragged2e
% \end{macro}^^A \tud@raggedright
%
% \iffalse
%</(class|package)&body>
%<*package&body>
% \fi
%
% \begin{macro}{\@makechapterhead}
% \begin{macro}{\@makeschapterhead}
% \begin{macro}{\section}
% \begin{macro}{\showtitle}
% Ganz zum Schluss merden für das Paket \pkg{tudscrfonts} noch ein paar 
% Anpassungen für die \cls{tudbook}-Klasse gemacht.
%    \begin{macrocode}
\@ifclassloaded{tudbook}{%
  \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}%
    {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}%
  \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}%
    {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}%
  \patchcmd{\section}{\dinBold\Large\bfseries}%
    {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}%
  \patchcmd{\showtitle}{\dinBold\Huge\bfseries}%
    {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}%
}{}
%    \end{macrocode}
% \end{macro}^^A \showtitle
% \end{macro}^^A \section
% \end{macro}^^A \@makeschapterhead
% \end{macro}^^A \@makechapterhead
%
% \iffalse
%</package&body>
% \fi
%
% \Finale
%
\endinput
