summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx610
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx444
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx569
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx225
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx643
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx1371
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx977
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx1532
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx638
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx3361
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx269
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx456
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx2005
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx532
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx1360
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx180
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx249
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr.ins192
18 files changed, 15613 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx
new file mode 100644
index 00000000000..517936b8410
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx
@@ -0,0 +1,610 @@
+% \CheckSum{271}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-base.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-base.dtx}[%
+ 2014/11/05 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<package>\ProvidesPackage{tudscrbase}[%
+%<*driver|package>
+%!TUDVersion
+%<package> package
+ (basics for the bundle)%
+]
+%</driver|package>
+%<*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-base.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
+%
+% \section{Grundlegende Befehle und Pakete}
+%
+% Für die Erstellung der Wrapper-Klassen werden die dafür benötigten Pakete
+% eingebunden und Steuerungsbefehle definiert.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Das Paket \pkg{tudscrbase}}
+%
+% Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt.
+% \begin{macrocode}
+\RequirePackage{scrbase}[2013/12/19]
+% \end{macrocode}
+% Das Paket \pkg{kvsetkeys} erweitert \pkg{keyval} um die Möglichkeit, das
+% Verhalten bei der Angabe eines nicht definierten Schlüssels festzulegen.
+% \begin{macrocode}
+\RequirePackage{kvsetkeys}[2012/04/25]
+% \end{macrocode}
+% Das Paket \pkg{etoolbox} wird für die Manipulation bereits definierter
+% Makros sowie zur erweiterten Auswertung boolescher Ausdrücke benötigt.
+% \begin{macrocode}
+\RequirePackage{etoolbox}[2011/01/03]
+% \end{macrocode}
+%
+% \subsubsection{Robuster Test auf leeres Argument}
+%
+% \begin{macro}{\ifxblank}
+% Hiermit kann ein Argument geprüft werden, ob dieses blank ist (leer oder
+% Leerzeichen). In seiner Syntax ist er identisch zu \cs{ifblank}, allerdings
+% expandiert er im Gegensatz zu diesem das gegebene Argument.
+% \begin{macrocode}
+\newcommand*\ifxblank{\expandafter\ifblank\expandafter}
+% \end{macrocode}
+% \end{macro}^^A \ifxblank
+%
+% \subsubsection{Robuster Test auf numerischen Ausdruck}
+%
+% \begin{macro}{\ifxnumber}
+% Dieser Befehl dient zum Testen, ob ein gegebenes Argument eine Zahl ist.
+% Die Syntax lautet: \cs{ifxnumber}\marg{Argument}\marg{Wahr}\marg{Falsch}
+% \begin{macrocode}
+\newcommand*\ifxnumber[1]{%
+ \if\relax\detokenize\expandafter{\romannumeral-0#1}\relax%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \ifxnumber
+%
+% \subsubsection{Schlüssel und Parameter für die Wrapper-Klassen}
+%
+% \begin{macro}{\TUDProcessOptions}
+% \begin{macro}{\TUDExecuteOptions}
+% \begin{macro}{\TUDDefaultOptions}
+% \begin{macro}{\TUDoptions}
+% \begin{macro}{\TUDoption}
+% \begin{macro}{\TUD@noworlater}
+% \begin{macro}{\TUD@key}
+% \begin{macro}{\TUD@@key}
+% \begin{macro}{\TUD@@@key}
+% \begin{macro}{\TUD@ifkey}
+% \begin{macro}{\TUD@set@ifkey}
+% \begin{macro}{\TUD@numkey}
+% \begin{macro}{\TUD@numkey@bool}
+% \changes{v2.02}{2014/11/05}{neu}%^^A
+% \begin{macro}{\TUD@set@numkey}
+% \begin{macro}{\TUD@unknown@keyval}
+% In Anlehnung an \KOMAScript{} werden hier Befehle zur Definition und
+% Ausführung unterschiedlicher Klassenoptionen mithilfe der Funktionen aus
+% dem \pkg{scrbase}-Paket erstellt. Klassenoptionen können entweder als
+% Schalter (\cs{TUD@ifkey}) oder aber mit mehreren möglichen Werten
+% (\cs{TUD@numkey}) definiert werden. Die Grundeinstellungen für alle
+% \cls{tudscr}-Klassen werden in \cs{TUDDefaultOptions} hinterlegt.
+% \begin{macrocode}
+\DefineFamily{TUD}
+\newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}}
+\newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}}
+\newcommand*\TUDDefaultOptions{cd,cdfont,tudbookmarks}
+\newcommand*\TUDoptions{\FamilyOptions{TUD}}
+\newcommand*\TUDoption{\FamilyOption{TUD}}
+\newcommand*\TUD@noworlater{\AtEndOfClass}
+\AtEndOfClass{\let\TUD@noworlater\@firstofone}
+\newcommand*\TUD@key[2][.\@currname.\@currext]{%
+ \DefineFamilyMember{TUD}%
+ \@ifnextchar[%]
+ {\TUD@@key[#1]{#2}}{\TUD@@@key[#1]{#2}}%
+}
+\def\TUD@@key[#1]#2[#3]#4{%
+ \DefineFamilyKey[#1]{TUD}{#2}[{#3}]{\TUD@noworlater{#4}}%
+}
+\def\TUD@@@key[#1]#2#3{%
+ \DefineFamilyKey[#1]{TUD}{#2}{\TUD@noworlater{#3}}%
+}
+\newcommand*\TUD@ifkey[1][.\@currname.\@currext]{%
+ \DefineFamilyMember{TUD}%
+ \FamilyBoolKey[#1]{TUD}%
+}
+\newcommand*\TUD@set@ifkey{\FamilySetBool{TUD}}
+\newcommand*\TUD@numkey[1][.\@currname.\@currext]{%
+ \DefineFamilyMember{TUD}%
+ \FamilyNumericalKey[#1]{TUD}%
+}
+% \end{macrocode}
+% Um Dopplungen im Code zu vermeiden, werden für die numerische Schlüssel die
+% booleschen Standardwertzuweisungen in einem Makro gespeichert.
+% \begin{macrocode}
+\newcommand*\TUD@numkey@bool{%
+ {false}{0},{off}{0},{no}{0},{true}{1},{on}{1},{yes}{1}%
+}
+\newcommand*\TUD@set@numkey{\FamilySetNumerical{TUD}}
+\newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}}
+% \end{macrocode}
+% \end{macro}^^A \TUD@unknown@keyval
+% \end{macro}^^A \TUD@set@numkey
+% \end{macro}^^A \TUD@numkey@bool
+% \end{macro}^^A \TUD@numkey
+% \end{macro}^^A \TUD@set@ifkey
+% \end{macro}^^A \TUD@ifkey
+% \end{macro}^^A \TUD@@@key
+% \end{macro}^^A \TUD@@key
+% \end{macro}^^A \TUD@key
+% \end{macro}^^A \TUD@noworlater
+% \end{macro}^^A \TUDoption
+% \end{macro}^^A \TUDoptions
+% \end{macro}^^A \TUDDefaultOptions
+% \end{macro}^^A \TUDExecuteOptions
+% \end{macro}^^A \TUDProcessOptions
+% \begin{macro}{\TUD@key@lock}
+% \begin{macro}{\TUD@std@ifkey@lock}
+% \begin{macro}{\TUD@std@numkey@lock}
+% \begin{macro}{\TUD@set@ifkey@lock}
+% \begin{macro}{\TUD@set@numkey@lock}
+% Da sich die Klassenoptionen teilweise selbst gegenseitig beeinflussen oder
+% aber in bestimmten Fällen eine Option in Abhängigkeit von einer anderen
+% unterschiedliche Standardwerte annehmen soll, wird dafür eine Möglichkeit
+% geschaffen. Dabei kann der Nutzer jederzeit einen von einer Option abhängigen
+% Standardwert einer Klassenoption überschreiben. Die Klassenoptionen selber
+% werden intern mit dem Befehl \cs{TUD@key@lock} definiert und die Standardwerte
+% sowie deren Manipulation innerhalb der Optionen mit \cs{TUD@std@ifkey@lock}
+% bzw. \cs{TUD@std@numkey@lock} gesetzt. Mit \cs{TUD@set@ifkey@lock} und
+% \cs{TUD@set@numkey@lock} werden bei der expliziten Anwendung einer Option
+% durch den Nutzer die entsprechenden Werte geändert und gegen ein internes
+% Überschreiben gesperrt.
+% \begin{macrocode}
+\newcommand*\TUD@key@lock[2][.\@currname.\@currext]{%
+% \end{macrocode}
+% Basierend auf dem Namen des Schalters wird die notwendige, boolesche Variable
+% erzeugt (\cs{if@tud@\meta{Schaltername}@lock}), welche im Falle des direkten
+% Aufrufs des Schlüssels durch den Anwender, ein internes Überschreiben
+% verhindert.
+% \begin{macrocode}
+ \newbool{@tud@#2@locked}%
+ \TUD@key[{#1}]{#2}%
+}
+% \end{macrocode}
+% Es kann intern über \cs{if\meta{Schaltername}@lock} geprüft werden, ob einem
+% mit Schlüssel, der mit \cs{TUD@key@lock} definiert wurde, durch den Anwender
+% ein explizites Verhalten zugewiesen wurde. Sollte dies nicht der Fall sein,
+% kann dieser hiermit intern beliebig angepasst werden. Da es durch das Setzen
+% der Option mit \cs{TUDoption} zu einer Sperrung kommt, muss diese folgend
+% wieder rückgängig gemacht werden.
+% \begin{macrocode}
+\newcommand*\TUD@std@ifkey@lock[2]{%
+ \ifbool{@tud@#1@locked}{}{%
+ \TUDoption{#1}{#2}%
+ \boolfalse{@tud@#1@locked}%
+ }%
+}
+\let\TUD@std@numkey@lock\TUD@std@ifkey@lock
+\newcommand*\TUD@set@ifkey@lock[1]{%
+ \booltrue{@tud@#1@locked}%
+ \TUD@set@ifkey{#1}%
+}
+\newcommand*\TUD@set@numkey@lock[1]{%
+ \booltrue{@tud@#1@locked}%
+ \TUD@set@numkey{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@set@numkey@lock
+% \end{macro}^^A \TUD@set@ifkey@lock
+% \end{macro}^^A \TUD@std@numkey@lock
+% \end{macro}^^A \TUD@std@ifkey@lock
+% \end{macro}^^A \TUD@key@lock
+% \begin{macro}{\csdef@lock}
+% \begin{macro}{\csstd@lock}
+% \begin{macro}{\csset@lock}
+% Mit \cs{csdef@lock}\marg{Name}\marg{Definition} kann ein Befehl definiert
+% werden, welcher intern nur mit \cs{csstd@lock}\marg{Name}\marg{Definition}
+% geschrieben wird, wenn nicht über eine entsprechende Option ein explizites
+% Verhalten mit \cs{csset@lock}\marg{Name}\marg{Definition} zugewiesen wurde.
+% Dies ist äquivalent zu \cs{TUD@std@ifkey@lock} und \cs{TUD@set@ifkey@lock}
+% bzw. \cs{TUD@std@numkey@lock} und \cs{TUD@set@numkey@lock}
+% \begin{macrocode}
+\newcommand*\csdef@lock[2]{%
+ \csdef{#1}{#2}%
+ \newbool{#1@locked}%
+}
+\newcommand*\csstd@lock[2]{%
+ \ifbool{#1@locked}{}{%
+ \csdef{#1}{#2}%
+ \boolfalse{#1@locked}%
+ }%
+}
+\newcommand*\csset@lock[2]{%
+ \csdef{#1}{#2}%
+ \booltrue{#1@locked}%
+}
+% \end{macrocode}
+% \end{macro}^^A \csset@lock
+% \end{macro}^^A \csstd@lock
+% \end{macro}^^A \csdef@lock
+% \begin{macro}{\newbool@lock}
+% \begin{macro}{\stdbool@lock}
+% \begin{macro}{\setbool@lock}
+% Diese Makros dienen in Anlehnung an die vorherigen zum Definieren und Setzen
+% von sperrbaren booleschen Schaltern.
+% \begin{macrocode}
+\newcommand*\newbool@lock[2][false]{%
+ \newbool{#2}%
+ \newbool{#2@locked}%
+ \setbool{#2}{#1}%
+}
+\newcommand*\stdbool@lock[2]{%
+ \ifbool{#1@locked}{}{%
+ \setbool{#1}{#2}%
+ \boolfalse{#1@locked}%
+ }%
+}
+\newcommand*\setbool@lock[2]{%
+ \setbool{#1}{#2}%
+ \booltrue{#1@locked}%
+}
+% \end{macrocode}
+% \end{macro}^^A \setbool@lock
+% \end{macro}^^A \stdbool@lock
+% \end{macro}^^A \newbool@lock
+% \begin{macro}{\tud@cmd@store}
+% \begin{macro}{\tud@cmd@reset}
+% \begin{macro}{\tud@cmd@use}
+% \begin{macro}{\tud@cmd@restore}
+% Mit diesen beiden Befehlene wird es möglich, Originalbefehle sichern, nutzen
+% und wiederherstellen zu können. Dies wird benötigt, um zwischen den einzelnen
+% Layouts über Optionseinstellungen zu wechseln und dabei von einem definierten
+% Anfangszustand auszugehen. Mit dem Aufruf \cs{tud@cmd@store}\marg{Befehlsname}
+% wird der angegebene Befehl in einem neuen Makro \cs{@@tud@\meta{Befehlsname}}
+% gespeichert.
+%
+% Der Originalbefehl kann als solcher mit \cs{tud@cmd@use}\marg{Befehlsname}
+% weiterhin genutzt werden. Das Makro \cs{tud@cmd@reset}\marg{Befehlsname}
+% setzt den Originalbefehl zurück. Durch \cs{tud@cmd@restore}\marg{Befehlsname}
+% wird das mit \cs{tud@cmd@store} erstellte Hilfsmakro zusätzlich gelöscht.
+% \begin{macrocode}
+\newcommand*\tud@cmd@store[1]{%
+ \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}%
+}
+\newcommand*\tud@cmd@reset[1]{%
+ \ifcsdef{@@tud@#1}{%
+ \csletcs{#1}{@@tud@#1}%
+ }{}%
+}
+\newcommand*\tud@cmd@use[1]{%
+ \ifcsdef{@@tud@#1}{\@nameuse{@@tud@#1}}{\@nameuse{#1}}%
+}
+\newcommand*\tud@cmd@restore[1]{%
+ \ifcsdef{@@tud@#1}{%
+ \csletcs{#1}{@@tud@#1}%
+ \csundef{@@tud@#1}%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@cmd@restore
+% \end{macro}^^A \tud@cmd@use
+% \end{macro}^^A \tud@cmd@reset
+% \end{macro}^^A \tud@cmd@store
+% \begin{macro}{\tud@patch@wrn}
+% Dieses Makro wird verwendet, wenn mit den Mitteln von \pkg{etoolbox} bereits
+% vorhandene Befehle angepasst werden sollen (\cs{apptocmd}, \cs{pretocmd},
+% \cs{patchcmd}) und dies nicht gelingt.
+% \begin{macrocode}
+\newcommand*\tud@patch@wrn[1]{%
+ \PackageWarning{tudscrbase}{%
+ It wasn't possible to patch `#1'.\MessageBreak%
+ Please contact the author via \tudscrmail.\MessageBreak%
+ Without a bugfix an erroneous output\MessageBreak%
+ may occur.
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@patch@wrn
+% \begin{macro}{\TUD@parameter}
+% \begin{macro}{\TUD@parameter@family}
+% \begin{macro}{\TUD@parameter@checkfamily}
+% Mit \cs{TUD@parameter}\marg{Familienname}\marg{Definitionen} können
+% Schlüssel"=Wert"=Parameter für die optionalen Argumente von Befehle definiert
+% werden. Das erste Argument definiert den Familiennamen für den jeweiligen
+% Befehl, welcher eindeutig gewählt werden sollte. Dieser wird im Hilfsmakro
+% \cs{TUD@parameter@family} gesichert. Dies soll im Zusammenspiel mit dem
+% Makro \cs{TUD@parameter@checkfamily} dafür sorgen, dass die im Folgenden
+% bereitgestellten Befehle\footnote{\cs{TUD@parameter@define},
+% \cs{TUD@parameter@let}, \cs{TUD@parameter@sethandler},
+% \cs{TUD@parameter@set}}~-- welche die eigentliche Definition der Parameter
+% für den Benutzer bewerkstelligen~-- nur innerhalb des zweiten Argumentes von
+% \cs{TUD@parameter} verwendet werden können.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@family{}%
+\newcommand*\TUD@parameter[2]{%
+ \ifxblank{#1}{}{\xdef\TUD@parameter@family{#1}}%
+ #2%
+ \global\let\TUD@parameter@family\relax%
+}
+\let\TUD@parameter@family\relax%
+% \end{macrocode}
+% Dieser Befehl prüft, ob eine Familie für den Paramter definiert wurde.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@checkfamily[1]{%
+ \ifx\TUD@parameter@family\relax%
+ \PackageError{tudscrbase}{%
+ No family for keys given.
+ }{%
+ You have to use \string#1\space within the\MessageBreak%
+ second argument of \string\TUD@parameter. The first \MessageBreak%
+ argument of \string\TUD@parameter\space has to be a unique family name.
+ }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@checkfamily
+% \end{macro}^^A \TUD@parameter@family
+% \end{macro}^^A \TUD@parameter
+% \begin{macro}{\TUD@parameter@define}
+% \begin{macro}{\TUD@parameter@let}
+% \changes{v2.02}{2014/07/25}{Beachtung der gegebenen Standardwerte}%^^A
+% \begin{macro}{\TUD@parameter@sethandler}
+% \cs{TUD@parameter@define}\marg{Name}\oarg{Säumniswert}\marg{Verarbeitung}
+% nutzt \cs{define@key} aus dem \pkg{keyval}"=Paket, um einen Schlüssel und
+% dessen Verarbeitung zu definieren, wobei auf den zugewiesenen Wert innerhalb
+% des zweiten obligatorischen Argumentes mit \texttt{\#1} zugegriffen werden
+% kann.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@define[1][]{%
+ \ifxblank{#1}{%
+ \TUD@parameter@checkfamily{\TUD@parameter@define}%
+ \expandafter\define@key\expandafter{\TUD@parameter@family}%
+ }{%
+ \expandafter\define@key\expandafter{#1}%
+ }%
+}
+% \end{macrocode}
+% Mit \cs{TUD@parameter@let}\marg{Name}\marg{Name} kann äquivalent zur
+% \mbox{\TeX-Primitive \cs{let}} die Definition der Verarbeitung eines
+% Parameters auf einen weiteren übertragen werden.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@let[3][]{%
+ \ifxblank{#1}{%
+ \TUD@parameter@checkfamily{\TUD@parameter@let}%
+ \@expandtwoargs{\csletcs}{%
+ KV@\TUD@parameter@family @#2%
+ }{%
+ KV@\TUD@parameter@family @#3%
+ }%
+ \@expandtwoargs{\csletcs}{%
+ KV@\TUD@parameter@family @#2@default%
+ }{%
+ KV@\TUD@parameter@family @#3@default%
+ }%
+ }{%
+ \@expandtwoargs{\csletcs}{KV@#1@#2}{KV@#1@#3}%
+ \@expandtwoargs{\csletcs}{KV@#1@#2@default}{KV@#1@#3@default}%
+ }%
+}
+% \end{macrocode}
+% Außerdem kann durch \cs{TUD@parameter@sethandler}\marg{Verarbeitung} definiert
+% werden, wie verfahren werden soll, wenn ein optionales Argument im klasischen
+% \LaTeX-Stil und nicht in der Schlüssel"=Wert"=Syntax angegeben wird. Auf das
+% optionale Argument wird ganz normal mit \texttt{\#1} zugegriffen.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@sethandler[1][]{%
+ \ifxblank{#1}{%
+ \TUD@parameter@checkfamily{\TUD@parameter@sethandler}%
+ \expandafter\kv@set@family@handler\expandafter{\TUD@parameter@family}%
+ }{%
+ \expandafter\kv@set@family@handler\expandafter{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@sethandler
+% \end{macro}^^A \TUD@parameter@let
+% \end{macro}^^A \TUD@parameter@define
+% \begin{macro}{\TUD@parameter@set}
+% Mit \cs{TUD@parameter@set}\oarg{Familienname}\marg{Parameterliste} wird die
+% Verarbeitung aller gegebenen Parameter veranlasst. Normalerweise wird dieser
+% Befehl innerhalb des zweiten Argumentes von \cs{TUD@parameter} verwendet.
+% Alternativ dazu kann die gewünschte Familie im optionalen Argument angegeben
+% werden.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@set[1][]{%
+ \ifxblank{#1}{%
+ \TUD@parameter@checkfamily{\TUD@parameter@set}%
+ \expandafter\kvsetkeys\expandafter{\TUD@parameter@family}%
+ }{%
+ \expandafter\kvsetkeys\expandafter{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@set
+% \begin{macro}{\TUD@parameter@wrn}
+% Das Makro \cs{TUD@parameter@wrn}\marg{Parameter}\marg{Werteliste} gibt für
+% den Fall einer ungültigen Wertzuweisung an einen bestimmten \meta{Parameter}
+% eine Warnung mit einem entsprechenden Hinweis auf gültige Werte innerhalb von
+% \meta{Werteliste} aus.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@wrn[2]{%
+ \PackageWarning{tudscrbase}{%
+ Parameter `#1' can only be used with values:\MessageBreak%
+ #2%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@wrn
+%
+% \iffalse
+%</package>
+%<*load>
+% \fi
+%
+% \subsection{Laden des Paketes}
+% Die Klassen benötigen das Paket und laden dieses auch.
+% \begin{macrocode}
+\RequirePackage{tudscrbase}[\TUDVersion]
+% \end{macrocode}
+%
+% \iffalse
+%</load>
+%<*execute>
+% \fi
+%
+% \subsection{Durchreichen von Optionen und Standardoptionen}
+%
+% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse bzw. an die
+% genutzte \TUDScript-Elternklasse.
+% \begin{macrocode}
+%<*!inherit>
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\scrcls@name}}
+%</!inherit>
+%<*inherit>
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\tudinh@name}}
+%</inherit>
+% \end{macrocode}
+% Es werden die Standardoptionen ausgeführt. Die Ausführung selbst wird durch
+% den Befehl \cs{TUD@noworlater} innerhalb von \cs{TUD@key} auf das Ende der
+% \KOMAScript-Klasse verzögert.
+% \begin{macrocode}
+%<*!inherit>
+\TUDExecuteOptions{\TUDDefaultOptions}
+%</!inherit>
+\TUDProcessOptions\relax
+% \end{macrocode}
+% Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird
+% geladen.
+% \begin{macrocode}
+%<*!inherit>
+\LoadClass{\scrcls@name}[2013/12/19]
+%</!inherit>
+%<*inherit>
+\LoadClass{\tudinh@name}
+%</inherit>
+% \end{macrocode}
+%
+% \iffalse
+%<*!inherit>
+% \fi
+%
+% \subsection{Externe Pakete}
+%
+% \changes{v2.01}{2014/04/24}{Versionsanforderungen bei benötigten Paketen}%^^A
+% \changes{v2.02}{2014/07/08}{Warnung bei der Verwendung von \pkg{graphics}}%^^A
+%
+% Für die Verwendung der hier erstellten \KOMAScript-Wrapper-Klassen werden
+% einige wenige Pakete eingebunden. Dabei wurde versucht, die Anzahl der
+% Pakete möglichst gering zu halten und nur die wirklich notwendigen zu
+% verwenden.
+%
+% Die \env{abstract}-Umgebung wird im Vergleich zu den \KOMAScript-Klassen
+% stark erweitert. Für diese sowie für die Umgebungen \env{declarations} und
+% \env{tudpage} wird das Paket \pkg{environ} für die Umgebungsdefinition
+% benötigt.
+% \begin{macrocode}
+\RequirePackage{environ}[2013/04/01]
+% \end{macrocode}
+% Es folgen die Pakete, welche bei Bedarf am Ende der Präambel geladen werden.
+% \begin{macrocode}
+\AtEndPreamble{%
+% \end{macrocode}
+% Mit \pkg{graphicx} werden die Logos der TU~Dresden sowie von Dresden Concept
+% mit dem Befehl \cs{includegraphics} u.\,a. auf der Titelseite eingebunden.
+% Sollte lediglich das \pkg{graphics}-Paket geladen worden sein, so wird der
+% Nutzer mit einer Warnung informiert, dass das \pkg{graphicx}-Paket zusätzlich
+% geladen wird.
+% \begin{macrocode}
+ \@ifpackageloaded{graphicx}{}{%
+ \@ifpackageloaded{graphics}{%
+ \ClassWarningNoLine{\tudcls@name}{%
+ The package `graphics' was superseded by `graphicx'%
+ }%
+ }{}%
+ }%
+ \RequirePackage{graphicx}[1999/02/16]%
+% \end{macrocode}
+% Mit dem Paket \pkg{tudscrcolor} werden die Befehle für die Auswahl der Farben
+% des \CDs definiert, welches wiederum \pkg{xcolor} lädt.
+% \begin{macrocode}
+ \RequirePackage{tudscrcolor}[\TUDVersion]%
+}
+% \end{macrocode}
+%
+% \iffalse
+%</!inherit>
+%</execute>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx
new file mode 100644
index 00000000000..bf07d2ead4c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx
@@ -0,0 +1,444 @@
+% \CheckSum{233}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-color.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-color.dtx}[%
+ 2014/10/10 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<package>\ProvidesPackage{tudscrcolor}[%
+%<*driver|package>
+%!TUDVersion
+%<package> package
+ (corporate design colors)%
+]
+%</driver|package>
+%<*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-color.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \section{Die Farben des \CDs}
+%
+% Das \CD der Technischen Universität Dresden legt nicht nur die zu nutzenden
+% Schriften und das Layout sondern auch die zu verwendenden Farben fest. Diese
+% werden nachfolgend für das CMYK"~ und RGB"~Farbmodel definiert. Sie können im
+% Dokument mit sämtlichen Befehlen zur Farbauswahl wie \cs{color}\marg{Farbe}
+% oder aber \cs{textcolor}\marg{Farbe} verwendet werden.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Optionen des Paketes \pkg{tudscrcolor}}
+%
+% \begin{macrocode}
+\DeclareOption{reduced}{\let\setcdcolors@add\relax}
+\DeclareOption{full}{\let\setcdcolors@add\setcdcolors@full}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+%<*class>
+% \fi
+%
+% \subsection{Befehle für die \cls{tudscr}-Klassen}
+%
+% \begin{macro}{\nopagecolor}
+% \begin{macro}{\tud@pagecolor}
+% \begin{macro}{\tud@restorepagecolor}
+% Diese Befehle dienen zum Umschalten der Farben für Titel- und Kapitelseiten.
+% Wenn die Farben für Titel- und Kapitelseiten umgeschaltet werden, geht die
+% Information über die aktuelle Text- und Seitenfarbe verloren. Um dies zu
+% verhindern, kann das Paket \pkg{pagecolor} geladen werden, welches mit den
+% Befehlen \cs{newcolor} und \cs{restorecolor} ein Wiederherstellen ermöglicht.
+% \begin{macrocode}
+\newcommand*\tud@pagecolor[1]{}
+\newcommand*\tud@restorepagecolor{}
+\AfterPackage{tudscrcolor}{%
+ \providecommand*\nopagecolor{\pagecolor{white}}%
+ \let\tud@pagecolor\pagecolor%
+ \let\tud@restorepagecolor\nopagecolor%
+ \AfterPackage*{pagecolor}{%
+ \let\tud@pagecolor\newpagecolor%
+ \let\tud@restorepagecolor\restorepagecolor%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@restorepagecolor
+% \end{macro}^^A \tud@pagecolor
+% \end{macro}^^A \nopagecolor
+% Sollte das Paket \pkg{pdfpages} geladen werden, so ist eine Definition
+% der Standardseitenfarbe zum Einbinden von PDF-Dokumenten notwendig.
+% Andernfalls werden bei der Verwendung von \cs{includepdf} nur leere Seiten
+% erzeugt.
+% \begin{macrocode}
+\AfterPackage{pdfpages}{\AtEndPreamble{\nopagecolor}}
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+%<*package>
+% \fi
+%
+% \subsection{Farbdefinitionen für das Paket \pkg{tudscrcolor}}
+%
+% \begin{macro}{\setcdcolors}
+% \begin{macro}{\setcdcolors@add}
+% Der Befehl \cs{setcdcolors} definiert die Farben des \CDs. Das Argument dient
+% zur Auswahl des gewünschten Farbmodels. Dies kann dazu genutzt werden,
+% innerhalb des Dokumentes die Definition der Farben für ein neues Farbmodell zu
+% ändern.
+% \begin{macrocode}
+\newcommand*\setcdcolors@add{}
+\newcommand*\setcdcolors[1]{%
+ \def\@tempa{#1}\ifx\@tempa\@empty\else%
+ \selectcolormodel{\@tempa}
+ \fi%
+% \end{macrocode}
+% \begin{color}{HKS41}
+% Die primäre Hausfarbe (dunkles Blau)
+% \begin{macrocode}
+ \definecolor{HKS41}{cmyk/RGB/rgb}{%
+ 1.00,0.70,0.10,0.50/011,042,081/0.0431372549,0.16470588235,0.31764705882%
+ }
+% \end{macrocode}
+% \end{color}^^A HKS41
+% \begin{color}{HKS92}
+% Die sekundäre Hausfarbe (grau), allein und ausschließlich für die Verwendung
+% in der Geschäftsausstattung und nicht für Fließtext, Grafiken etc.
+% \begin{macrocode}
+ \definecolor{HKS92}{cmyk/RGB/rgb}{%
+ 0.10,0.00,0.05,0.65/080,089,085/0.31372549019,0.34901960784,0.33333333333%
+ }
+% \end{macrocode}
+% \end{color}^^A HKS92
+% \begin{color}{HKS44}
+% Auszeichnungen 1. Kategorie (helles Blau)
+% \begin{macrocode}
+ \definecolor{HKS44}{cmyk/RGB/rgb}{%
+ 1.00,0.50,0.00,0.00/000,089,163/0,0.34901960784,0.63921568627%
+ }
+% \end{macrocode}
+% \end{color}^^A HKS44
+% \begin{color}{HKS36}
+% \begin{color}{HKS33}
+% \begin{color}{HKS57}
+% \begin{color}{HKS65}
+% Auszeichnungen 2. Kategorie (Indigo, Purpur, dunkles Grün, helles Grün)
+% \begin{macrocode}
+ \definecolor{HKS36}{cmyk/RGB/rgb}{%
+ 0.80,0.90,0.00,0.00/081,041,127/0.31764705882,0.16078431372,0.49803921568%
+ }
+ \definecolor{HKS33}{cmyk/RGB/rgb}{%
+ 0.50,1.00,0.00,0.00/129,026,120/0.50588235294,0.10196078431,0.47058823529%
+ }
+ \definecolor{HKS57}{cmyk/RGB/rgb}{%
+ 1.00,0.00,0.90,0.20/000,122,071/0,0.47843137254,0.28235294117%
+ }
+ \definecolor{HKS65}{cmyk/RGB/rgb}{%
+ 0.65,0.00,1.00,0.00/034,173,054/0.13333333333,0.67843137254,0.21176470588%
+ }
+% \end{macrocode}
+% \end{color}^^A HKS65
+% \end{color}^^A HKS57
+% \end{color}^^A HKS33
+% \end{color}^^A HKS36
+% \begin{color}{HKS07}
+% Ausnahmefarbe (Orange)
+% \begin{macrocode}
+ \definecolor{HKS07}{cmyk/RGB/rgb}{%
+ 0.00,0.60,1.00,0.00/232,123,020/0.90980392156,0.48235294117,0.07843137254%
+ }
+% \end{macrocode}
+% \end{color}^^A HKS07
+% \begin{color}{cddarkblue}
+% \begin{color}{cdgray}
+% \begin{color}{cdgrey}
+% \begin{color}{cdblue}
+% \begin{color}{cdindigo}
+% \begin{color}{cdpurple}
+% \begin{color}{cddarkgreen}
+% \begin{color}{cdgreen}
+% \begin{color}{cdorange}
+% Die definierten Grundfarben werden zur einfacheren Verwendung im Dokument
+% noch einmal speziell benannt.
+% \begin{macrocode}
+ \colorlet{cddarkblue}{HKS41}
+ \colorlet{cdgray}{HKS92}
+ \colorlet{cdgrey}{HKS92}
+ \colorlet{cdblue}{HKS44}
+ \colorlet{cdindigo}{HKS36}
+ \colorlet{cdpurple}{HKS33}
+ \colorlet{cddarkgreen}{HKS57}
+ \colorlet{cdgreen}{HKS65}
+ \colorlet{cdorange}{HKS07}
+% \end{macrocode}
+% \end{color}^^A cdorange
+% \end{color}^^A cdgreen
+% \end{color}^^A cddarkgreen
+% \end{color}^^A cdpurple
+% \end{color}^^A cdindigo
+% \end{color}^^A cdblue
+% \end{color}^^A cdgrey
+% \end{color}^^A cdgray
+% \end{color}^^A cddarkblue
+% Damit enden die notwendigen Farbdefinitionen für das \pkg{tudscrcolor}-Paket.
+% Abhängig von den gewählten Optionen werden mit \cs{setcdcolors@add} ggf.
+% zusätzliche Farbnamen definiert.
+% \begin{macrocode}
+ \setcdcolors@add%
+}
+% \end{macrocode}
+% \end{macro}^^A \setcdcolors@add
+% \end{macro}^^A \setcdcolors
+% \begin{macro}{\setcdcolors@full}
+% Die erweiterten Farbbefehle werden durch \pkg{tudscrcolor} definiert, wenn
+% das Paket explizit mit der Option \opt{full} geladen wird. Damit werden
+% alle gängigen Farbdefinitionen der vielen Insellösungen des \LaTeX-Universums
+% an der Technischen Universität Dresden unterstützt.
+% \begin{macrocode}
+\newcommand*\setcdcolors@full{%
+ \colorlet{HKS41K100}{HKS41!100}
+ \colorlet{HKS41K90}{HKS41!90}
+ \colorlet{HKS41K80}{HKS41!80}
+ \colorlet{HKS41K70}{HKS41!70}
+ \colorlet{HKS41K60}{HKS41!60}
+ \colorlet{HKS41K50}{HKS41!50}
+ \colorlet{HKS41K40}{HKS41!40}
+ \colorlet{HKS41K30}{HKS41!30}
+ \colorlet{HKS41K20}{HKS41!20}
+ \colorlet{HKS41K10}{HKS41!10}
+ \colorlet{HKS92K100}{HKS92!100}
+ \colorlet{HKS92K90}{HKS92!90}
+ \colorlet{HKS92K80}{HKS92!80}
+ \colorlet{HKS92K70}{HKS92!70}
+ \colorlet{HKS92K60}{HKS92!60}
+ \colorlet{HKS92K50}{HKS92!50}
+ \colorlet{HKS92K40}{HKS92!40}
+ \colorlet{HKS92K30}{HKS92!30}
+ \colorlet{HKS92K20}{HKS92!20}
+ \colorlet{HKS92K10}{HKS92!10}
+ \colorlet{HKS44K100}{HKS44!100}
+ \colorlet{HKS44K90}{HKS44!90}
+ \colorlet{HKS44K80}{HKS44!80}
+ \colorlet{HKS44K70}{HKS44!70}
+ \colorlet{HKS44K60}{HKS44!60}
+ \colorlet{HKS44K50}{HKS44!50}
+ \colorlet{HKS44K40}{HKS44!40}
+ \colorlet{HKS44K30}{HKS44!30}
+ \colorlet{HKS44K20}{HKS44!20}
+ \colorlet{HKS44K10}{HKS44!10}
+ \colorlet{HKS36K10}{HKS36!10}
+ \colorlet{HKS36K20}{HKS36!20}
+ \colorlet{HKS36K30}{HKS36!30}
+ \colorlet{HKS36K40}{HKS36!40}
+ \colorlet{HKS36K50}{HKS36!50}
+ \colorlet{HKS36K60}{HKS36!60}
+ \colorlet{HKS36K70}{HKS36!70}
+ \colorlet{HKS36K80}{HKS36!80}
+ \colorlet{HKS36K90}{HKS36!90}
+ \colorlet{HKS36K100}{HKS36!100}
+ \colorlet{HKS33K10}{HKS33!10}
+ \colorlet{HKS33K20}{HKS33!20}
+ \colorlet{HKS33K30}{HKS33!30}
+ \colorlet{HKS33K40}{HKS33!40}
+ \colorlet{HKS33K50}{HKS33!50}
+ \colorlet{HKS33K60}{HKS33!60}
+ \colorlet{HKS33K70}{HKS33!70}
+ \colorlet{HKS33K80}{HKS33!80}
+ \colorlet{HKS33K90}{HKS33!90}
+ \colorlet{HKS33K100}{HKS33!100}
+ \colorlet{HKS57K10}{HKS57!10}
+ \colorlet{HKS57K20}{HKS57!20}
+ \colorlet{HKS57K30}{HKS57!30}
+ \colorlet{HKS57K40}{HKS57!40}
+ \colorlet{HKS57K50}{HKS57!50}
+ \colorlet{HKS57K60}{HKS57!60}
+ \colorlet{HKS57K70}{HKS57!70}
+ \colorlet{HKS57K80}{HKS57!80}
+ \colorlet{HKS57K90}{HKS57!90}
+ \colorlet{HKS57K100}{HKS57!100}
+ \colorlet{HKS65K10}{HKS65!10}
+ \colorlet{HKS65K20}{HKS65!20}
+ \colorlet{HKS65K30}{HKS65!30}
+ \colorlet{HKS65K40}{HKS65!40}
+ \colorlet{HKS65K50}{HKS65!50}
+ \colorlet{HKS65K60}{HKS65!60}
+ \colorlet{HKS65K70}{HKS65!70}
+ \colorlet{HKS65K80}{HKS65!80}
+ \colorlet{HKS65K90}{HKS65!90}
+ \colorlet{HKS65K100}{HKS65!100}
+ \colorlet{HKS07K10}{HKS07!10}
+ \colorlet{HKS07K20}{HKS07!20}
+ \colorlet{HKS07K30}{HKS07!30}
+ \colorlet{HKS07K40}{HKS07!40}
+ \colorlet{HKS07K50}{HKS07!50}
+ \colorlet{HKS07K60}{HKS07!60}
+ \colorlet{HKS07K70}{HKS07!70}
+ \colorlet{HKS07K80}{HKS07!80}
+ \colorlet{HKS07K90}{HKS07!90}
+ \colorlet{HKS07K100}{HKS07!100}
+ \colorlet{HKS41-100}{HKS41!100}
+ \colorlet{HKS41-90}{HKS41!90}
+ \colorlet{HKS41-80}{HKS41!80}
+ \colorlet{HKS41-70}{HKS41!70}
+ \colorlet{HKS41-60}{HKS41!60}
+ \colorlet{HKS41-50}{HKS41!50}
+ \colorlet{HKS41-40}{HKS41!40}
+ \colorlet{HKS41-30}{HKS41!30}
+ \colorlet{HKS41-20}{HKS41!20}
+ \colorlet{HKS41-10}{HKS41!10}
+ \colorlet{HKS92-100}{HKS92!100}
+ \colorlet{HKS92-90}{HKS92!90}
+ \colorlet{HKS92-80}{HKS92!80}
+ \colorlet{HKS92-70}{HKS92!70}
+ \colorlet{HKS92-60}{HKS92!60}
+ \colorlet{HKS92-50}{HKS92!50}
+ \colorlet{HKS92-40}{HKS92!40}
+ \colorlet{HKS92-30}{HKS92!30}
+ \colorlet{HKS92-20}{HKS92!20}
+ \colorlet{HKS92-10}{HKS92!10}
+ \colorlet{HKS44-100}{HKS44!100}
+ \colorlet{HKS44-90}{HKS44!90}
+ \colorlet{HKS44-80}{HKS44!80}
+ \colorlet{HKS44-70}{HKS44!70}
+ \colorlet{HKS44-60}{HKS44!60}
+ \colorlet{HKS44-50}{HKS44!50}
+ \colorlet{HKS44-40}{HKS44!40}
+ \colorlet{HKS44-30}{HKS44!30}
+ \colorlet{HKS44-20}{HKS44!20}
+ \colorlet{HKS44-10}{HKS44!10}
+ \colorlet{HKS36-10}{HKS36!10}
+ \colorlet{HKS36-20}{HKS36!20}
+ \colorlet{HKS36-30}{HKS36!30}
+ \colorlet{HKS36-40}{HKS36!40}
+ \colorlet{HKS36-50}{HKS36!50}
+ \colorlet{HKS36-60}{HKS36!60}
+ \colorlet{HKS36-70}{HKS36!70}
+ \colorlet{HKS36-80}{HKS36!80}
+ \colorlet{HKS36-90}{HKS36!90}
+ \colorlet{HKS36-100}{HKS36!100}
+ \colorlet{HKS33-10}{HKS33!10}
+ \colorlet{HKS33-20}{HKS33!20}
+ \colorlet{HKS33-30}{HKS33!30}
+ \colorlet{HKS33-40}{HKS33!40}
+ \colorlet{HKS33-50}{HKS33!50}
+ \colorlet{HKS33-60}{HKS33!60}
+ \colorlet{HKS33-70}{HKS33!70}
+ \colorlet{HKS33-80}{HKS33!80}
+ \colorlet{HKS33-90}{HKS33!90}
+ \colorlet{HKS33-100}{HKS33!100}
+ \colorlet{HKS57-10}{HKS57!10}
+ \colorlet{HKS57-20}{HKS57!20}
+ \colorlet{HKS57-30}{HKS57!30}
+ \colorlet{HKS57-40}{HKS57!40}
+ \colorlet{HKS57-50}{HKS57!50}
+ \colorlet{HKS57-60}{HKS57!60}
+ \colorlet{HKS57-70}{HKS57!70}
+ \colorlet{HKS57-80}{HKS57!80}
+ \colorlet{HKS57-90}{HKS57!90}
+ \colorlet{HKS57-100}{HKS57!100}
+ \colorlet{HKS65-10}{HKS65!10}
+ \colorlet{HKS65-20}{HKS65!20}
+ \colorlet{HKS65-30}{HKS65!30}
+ \colorlet{HKS65-40}{HKS65!40}
+ \colorlet{HKS65-50}{HKS65!50}
+ \colorlet{HKS65-60}{HKS65!60}
+ \colorlet{HKS65-70}{HKS65!70}
+ \colorlet{HKS65-80}{HKS65!80}
+ \colorlet{HKS65-90}{HKS65!90}
+ \colorlet{HKS65-100}{HKS65!100}
+ \colorlet{HKS07-10}{HKS07!10}
+ \colorlet{HKS07-20}{HKS07!20}
+ \colorlet{HKS07-30}{HKS07!30}
+ \colorlet{HKS07-40}{HKS07!40}
+ \colorlet{HKS07-50}{HKS07!50}
+ \colorlet{HKS07-60}{HKS07!60}
+ \colorlet{HKS07-70}{HKS07!70}
+ \colorlet{HKS07-80}{HKS07!80}
+ \colorlet{HKS07-90}{HKS07!90}
+ \colorlet{HKS07-100}{HKS07!100}
+}
+% \end{macrocode}
+% \end{macro}^^A \setcdcolors@full
+% Zum Schluss werden die Optionen ausgeführt und ggf. an \pkg{xcolor}
+% weitergereicht. Anschließend werden die Farben für das Dokument definiert.
+% Ohne die Angabe eines optionalen Argumentes an das Paket \pkg{xcolor} erfolgt
+% die Definition für den gewählten bzw. standardmäßig eingestellten Farbraum.
+% \begin{macrocode}
+\ExecuteOptions{reduced}
+\ProcessOptions\relax
+\RequirePackage{xcolor}[2007/01/21]
+\setcdcolors{}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx
new file mode 100644
index 00000000000..091416da345
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx
@@ -0,0 +1,569 @@
+% \CheckSum{336}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-comp.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-comp.dtx}[%
+ 2014/11/05 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<package>\ProvidesPackage{tudscrcomp}[%
+%<*driver|package>
+%!TUDVersion
+%<package> package
+ (compatibility for tudbook)%
+]
+%</driver|package>
+%<*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-comp.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \section{Kompatibilität für die \cls{tudbook}-Klasse und frühere Versionen}
+%
+% Diese Paket stellt für die \cls{tudscr}-Klassen eine Schnittstelle bereit,
+% die es ermöglicht, die in der alten \cls{tudbook}-Klasse und dem dazugehörigen
+% \pkg{tudthesis}-Paket definierten Befehle hier zu benutzen, um alte Dokumente
+% mit den neuen Klassen zu setzen.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Das Paket \pkg{tudscrcomp} -- \cls{tudbook}-Kompatibilität}
+%
+% \begin{macro}{\einrichtung}
+% \begin{macro}{\fachrichtung}
+% \begin{macro}{\institut}
+% \begin{macro}{\professur}
+% \begin{macro}{\moreauthor}
+% \begin{macro}{\submitdate}
+% \begin{macro}{\supervisorII}
+% \begin{macro}{\supervisedby}
+% \begin{macro}{\supervisedIIby}
+% \begin{macro}{\submittedon}
+% Es werden Aliasbefehle für die Eingabefelder definiert.
+% \begin{macrocode}
+\newcommand*\einrichtung{}
+\let\einrichtung\faculty
+\newcommand*\fachrichtung{}
+\let\fachrichtung\department
+\newcommand*\institut{}
+\let\institut\institute
+\newcommand*\professur{}
+\let\professur\chair
+\newcommand*\moreauthor{}
+\let\moreauthor\authormore
+\newcommand*\submitdate{}
+\let\submitdate\date
+\newcommand*\supervisorII[1]{%
+ \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and #1}%
+}
+\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}}
+\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}}
+\newcommand*\submittedon[1]{\gdef\datetext{#1}}
+% \end{macrocode}
+% \end{macro}^^A \submittedon
+% \end{macro}^^A \supervisedIIby
+% \end{macro}^^A \supervisedby
+% \end{macro}^^A \supervisorII
+% \end{macro}^^A \submitdate
+% \end{macro}^^A \moreauthor
+% \end{macro}^^A \professur
+% \end{macro}^^A \institut
+% \end{macro}^^A \fachrichtung
+% \end{macro}^^A \einrichtung}
+% \begin{macro}{\dissertation}
+% Bei der Definition des Typs der Abschlussarbeit mit \cs{dissertation} wird
+% die Lokalisierungsvariable \cs{dissertationname} verwendet und die Feldnamen
+% angepasst.
+% \begin{macrocode}
+\newcommand*\dissertation{%
+ \thesis{\dissertationname}%
+ \let\supervisorname\refereename%
+ \let\supervisorothername\refereeothername%
+}
+% \end{macrocode}
+% \end{macro}^^A \dissertation
+% \begin{option}{colortitle}
+% \begin{option}{nocolortitle}
+% Für farbige Einstellungen wird von \cls{tudbook} die Option \opt{color}
+% definiert. Soll die Titelseite konträr dazu gesetzt werden, muss sich mit den
+% Schlüsseln \opt{colortitle} und \opt{nocolortitle} beholfen werden.
+% \begin{macrocode}
+\TUD@key{colortitle}[true]{%
+ \TUD@set@ifkey{colortitle}{@tempswa}{#1}%
+ \if@tempswa%
+ \TUDoptions{cdtitle=color}%
+ \else%
+ \TUDoptions{cdtitle=true}%
+ \fi%
+}
+\TUD@key{nocolortitle}[true]{%
+ \TUD@set@ifkey{nocolortitle}{@tempswa}{#1}%
+ \if@tempswa%
+ \TUDoptions{cdtitle=true}%
+ \else%
+ \TUDoptions{cdtitle=color}%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A nocolortitle
+% \end{option}^^A colortitle
+% \begin{option}{ddcfooter}
+% Außer der Option \opt{ddc} gibt es bei der alten \cls{tudbook}-Klasse noch
+% den Schlüssel \opt{ddcfooter}. Dieser wird auf die Option \opt{ddcfoot}
+% gelegt.
+% \begin{macrocode}
+\TUD@key{ddcfooter}[true]{%
+ \TUD@set@ifkey{ddcfooter}{@tempswa}{#1}%
+ \if@tempswa%
+ \TUDoptions{ddcfoot=true}%
+ \else%
+ \TUDoptions{ddcfoot=false}%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A ddcfooter
+% \begin{environment}{theglossary}
+% \begin{macro}{\glossaryname}
+% \begin{macro}{\glossitem}
+% Eine rudimentäre Umgebung für ein Glossar.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifdef{\theglossary}{}{%
+ \providecommand*{\glossaryname}{Glossar}
+ \newenvironment{theglossary}[1][]{%
+ \ClassWarning{\tudcls@name}{%
+ Using the environment theglossary is not\MessageBreak%
+ recommended. You should rather use an appropriate\MessageBreak%
+ package such as glossaries%
+ }%
+ \let\bibname\glossaryname%
+ \bib@heading%
+ #1%
+ \list{}{%
+ \setlength{\labelsep}{\z@}%
+ \setlength{\labelwidth}{\z@}%
+ \setlength{\itemindent}{-\leftmargin}%
+ }%
+ }{\endlist}
+ \newcommand\glossitem[1]{\item[] #1\par}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \glossitem
+% \end{macro}^^A \glossaryname
+% \end{environment}^^A theglossary
+% \begin{option}{serifmath}
+% Die alte \cls{tudbook}-Klasse hat neben der Option \opt{sansmath}
+% außerdem den zusätzlichen Schlüssel \opt{serifmath} definiert, welcher aus
+% Gründen der Kompatibilität hier ebenfalls vorgehalten wird.
+% \begin{macrocode}
+\TUD@key{serifmath}[true]{%
+ \TUD@set@ifkey{serifmath}{@tempswa}{#1}%
+ \if@tempswa%
+ \TUDoptions{sansmath=false}%
+ \else%
+ \TUDoptions{sansmath=true}%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A serifmath
+% \begin{macro}{\chapterpage}
+% \begin{macro}{\if@tud@chapterpage@temp}
+% \begin{macro}{\tud@chapterpage@set}
+% \begin{macro}{\tud@chapterpage@unset}
+% \begin{macro}{\tud@chapterpage@wrn}
+% Die alte \cls{tudbook}-Klasse stellt den Befehl \cs{chapterpage} bereit.
+% Mit diesem ist es möglich, das Verhalten der Kapitelseiten~-- welches durch
+% die Option \opt{chapterpage} gesteuert wird~-- temporär umzuschalten, also
+% statt Kapitelseiten lediglich Überschriften zu setzen und umgekehrt. Dies ist
+% typographisch durchaus zu hinterfragen, allerdings sollen die neuen Klassen
+% möglichst kompatibel zu der alten sein, weshalb diese Funktionalität trotzdem
+% implementiert wird. Der Befehl \cs{chapterpage} setzt den globalen Schalter
+% \cs{if@tud@chapterpage@temp}. Der Befehl \cs{tud@chapterpage@set} setzt für
+% Kapitel das komplementäre Verhalten zur eigentlich gewählten
+% \opt{chapterpage}"=Option. Nach dem Setzen der entsprechenden Überschrift
+% wird \cs{tud@chapterpage@set} nochmals aufgerufen, das Verhalten auf den
+% ursprünglichen Zustand geschaltet und der globale Schalter
+% \cs{if@tud@chapterpage@temp} zurückgesetzt.
+% \begin{macrocode}
+\newif\if@tud@chapterpage@temp
+\newcommand*\chapterpage{%
+ \global\@tud@chapterpage@temptrue%
+ \tud@chapterpage@wrn%
+}
+\newcommand*\tud@chapterpage@set[1][]{%
+ \if@tud@chapterpage@temp%
+ \if@tud@chapterpage%
+ \TUDoptions{chapterpage=false}%
+ \else%
+ \TUDoptions{chapterpage=true}%
+ \fi%
+ \fi%
+}
+\newcommand*\tud@chapterpage@unset[1][]{%
+ \tud@chapterpage@set%
+ \global\@tud@chapterpage@tempfalse%
+}
+\AtEndPreamble{%
+ \pretocmd{\tud@chapter}{\tud@chapterpage@set}%
+ {}{\tud@patch@wrn{tud@nchapter}}%
+ \apptocmd{\tud@chapter}{\tud@chapterpage@unset}%
+ {}{\tud@patch@wrn{tud@nchapter}}%
+ \pretocmd{\tud@schapter}{\tud@chapterpage@set}%
+ {}{\tud@patch@wrn{tud@schapter}}%
+ \apptocmd{\tud@schapter}{\tud@chapterpage@unset}%
+ {}{\tud@patch@wrn{tud@schapter}}%
+ \pretocmd{\tud@addchap}{\tud@chapterpage@set}%
+ {}{\tud@patch@wrn{tud@naddchap}}%
+ \apptocmd{\tud@addchap}{\tud@chapterpage@unset}%
+ {}{\tud@patch@wrn{tud@naddchap}}%
+ \pretocmd{\tud@saddchap}{\tud@chapterpage@set}%
+ {}{\tud@patch@wrn{tud@saddchap}}%
+ \apptocmd{\tud@saddchap}{\tud@chapterpage@unset}%
+ {}{\tud@patch@wrn{tud@saddchap}}%
+}
+% \end{macrocode}
+% Da wie bereits beschrieben das Vorgehen äußerst fragwürdig ist, wird bei der
+% Verwendung von \cs{chapterpage} zumindest einmalig eine Warnung ausgegeben.
+% \begin{macrocode}
+\newcommand*\tud@chapterpage@wrn{%
+ \ClassWarning{\tudcls@name}{%
+ The command \string\chapterpage\space is not\MessageBreak%
+ recommended. You should use the same style for\MessageBreak%
+ chapters throughout the document
+ }%
+ \global\let\tud@chapterpage@wrn\relax%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@chapterpage@wrn
+% \end{macro}^^A \tud@chapterpage@unset
+% \end{macro}^^A \tud@chapterpage@set
+% \end{macro}^^A \if@tud@chapterpage@temp
+% \end{macro}^^A \chapterpage
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \subsection{Kompatibilität zu früheren \TUDScript-Versionen}
+%
+% Neben den Optionen und Befehlen im Paket \pkg{tudscrcomp} gibt es weitere
+% veraltete, die jedoch direkt in den Klassen vorgehalten werden. Deren Maßgabe
+% ist es, die Kompatibilität zu älteren \TUDScript-Versionen zu erhalten.
+%
+% Mit der Version v2.02 wurde eine Menge~-- teilweise sehr tiefgreifend~--
+% geändert. Die Kompatibilität zu früheren Versionen wird nicht verfolgt.
+% In Zukunft wird es wohl noch die ein oder andere Änderung geben. Hierfür soll
+% jedoch allerdings sehr wohl ein Kompatibilitätsmodus zur Verfügung stehen.
+% Hiermit wird alles dafür vorbereitet.
+%
+% \iffalse
+%<*class&option>
+% \fi
+%
+% \begin{option}{color}
+% \begin{option}{colour}
+% Die alte \cls{tudbook}-Klasse hat die Option \opt{color} definiert, mit
+% welcher ein Umschalten auf farbige Titel- und Kapitelseiten möglich ist. Aus
+% Kompatibilitätsgründen wird diese hier ebenfalls vorgehalten.
+% \begin{macrocode}
+\TUD@key{color}[true]{%
+ \TUD@set@numkey{color}{@tempa}{%
+ \TUD@numkey@bool,%
+ {simple}{0},{std}{0},{standard}{0},{mono}{0},{monochrom}{0},%
+ {color}{1},{colour}{1},{full}{1},%
+ {colorfull}{1},{fullcolor}{1},{colourfull}{1},{fullcolour}{1},%
+ {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},%
+ {light}{2},{colorlight}{2},{lightcolor}{2},{colorpale}{2},{palecolor}{2},%
+ {pale}{2},{colourlight}{2},{lightcolour}{2},{colourpale}{2},{palecolour}{2}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+ \TUDoptions{cd=true}%
+ \or%
+ \TUDoptions{cd=color}%
+ \or%
+ \TUDoptions{cd=lite}%
+ \fi%
+ \fi%
+}
+\TUD@key{colour}[true]{\TUDoptions{color=#1}\FamilyKeyStateProcessed}
+% \end{macrocode}
+% \end{option}^^A colour
+% \end{option}^^A color
+% \begin{option}{tudfonts}
+% Diese Option wird nur aus Gründen der Kompatibilität zu v1.0 definiert.
+% \begin{macrocode}
+\TUD@key{tudfonts}[true]{%
+ \TUD@set@ifkey{tudfonts}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tempswa%
+ \TUDoptions{cdfont=true}%
+ \else%
+ \TUDoptions{cdfont=false}%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A tudfonts
+% \begin{option}{tudfoot}
+% Diese Option wird nur aus Gründen der Kompatibilität zu v1.0 definiert.
+% \begin{macrocode}
+\TUD@key{tudfoot}[true]{%
+ \TUD@set@ifkey{tudfoot}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tempswa%
+ \TUDoptions{cdfoot=true}%
+ \else%
+ \TUDoptions{cdfoot=false}%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A tudfoot
+% \begin{option}{tudscrver}
+% \changes{v2.02}{2014/08/22}{neu}%^^A
+% \begin{macro}{\tudscr@v@comp}
+% \changes{v2.02}{2014/08/22}{neu}%^^A
+% \begin{macro}{\tudscr@v@first}
+% \changes{v2.02}{2014/08/22}{neu}%^^A
+% \begin{macro}{\tudscr@v@2.02}
+% \changes{v2.02}{2014/08/22}{neu}%^^A
+% \begin{macro}{\tudscr@v@last}
+% \changes{v2.02}{2014/08/22}{neu}%^^A
+% In einigen Fällen sind Änderungen mit früheren Versionen nicht kompatibel
+% oder unerwünscht, weil diese beispielsweise das Ausgabeergebnis verändern.
+% Standardmäßig werden die Klassen in der aktuellen Version geladen. Mit
+% \opt{tudscrver=\meta{Version}} kann auf das Verhalten einer früheren
+% Version geschaltet werden. Die eingestellte Kompatibilität wird als Zahl in
+% \cs{tudscr@v@comp} gespeichert. In den Makros \cs{tudscr@v@\meta{Version}}
+% werden die zugehörigen Nummern gespeichert.
+% \begin{macrocode}
+\newcommand*\tudscr@v@comp{\tudscr@v@last}
+\TUD@key{tudscrver}[last]{%
+ \scr@ifundefinedorrelax{tudscr@v@#1}{%
+ \def\tudscr@v@comp{0}%
+ \ClassWarningNoLine{\tudcls@name}{%
+ You have set option `tudscrver' to `#1', but\MessageBreak%
+ this value of version is not supported.\MessageBreak%
+ Because of this, version was set to `first'%
+ }%
+ \FamilyKeyStateProcessed%
+ }{%
+ \ClassInfoNoLine{\tudcls@name}{%
+ Switching compatibility level to `#1'%
+ }%
+ \edef\tudscr@v@comp{\@nameuse{tudscr@v@#1}}%
+ \FamilyKeyStateProcessed%
+ }%
+}
+% \end{macrocode}
+% Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim
+% Laden der Klasse gesetzt werden. Danach geht dies nicht mehr.
+% \begin{macrocode}
+\AtEndOfClass{%
+ \TUD@key{tudscrver}[]{%
+ \ClassError{\tudcls@name}{Option `tudscrver' too late}{%
+ Option `tudscrver' can only be set while loading the\MessageBreak%
+ class `\tudcls@name' but you have tried to set it up later.%
+ }%
+ \FamilyKeyStateProcessed%
+ }%
+% Außerdem wird darauf geachtet, dass mindestens \KOMAScript-Version~v3.12
+% vorhanden ist, andernfalls wird ein Fehler erzeugt.
+% \begin{macrocode}
+ \ifcsdef{scr@v@3.12}{%
+ \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax%
+ \ClassError{\tudcls@name}{%
+ KOMA-Script compatibility level too low%
+ }{%
+ \TUDVersion\space has to be used at least with\MessageBreak%
+ KOMA-Script `version=v3.12'%
+ }%
+ \fi%
+ }{%
+ \ClassError{\tudcls@name}{%
+ outdated version of KOMA-Script%
+ }{%
+ \TUDVersion\space has to be used with KOMA-Script v3.12 or newer%
+ }%
+ }%
+}
+\@namedef{tudscr@v@first}{0}
+\@namedef{tudscr@v@2.02}{0}
+\@namedef{tudscr@v@last}{0}
+% \end{macrocode}
+% \end{macro}^^A \tudscr@v@last
+% \end{macro}^^A \tudscr@v@2.02
+% \end{macro}^^A \tudscr@v@first
+% \end{macro}^^A \tudscr@v@comp
+% \end{option}^^A tudscrver
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{length}{\chapterheadingvskip}
+% Die Länge \cs{chapterheadingvskip} wird aus Gründen der Kompatibilität zu
+% älteren Versionen definiert.
+% \begin{macrocode}
+%<*book|report>
+\newlength{\chapterheadingvskip}
+\let\chapterheadingvskip\headingsvskip
+%</book|report>
+% \end{macrocode}
+% \end{length}^^A \chapterheadingvskip
+% \begin{macro}{\professorship}
+% Für die Angabe des Lehrstuhls bzw. der Professur mit kann anstelle von
+% \cs{chair} als Aliasbefehl auch \cs{professorship} genutzt werden.
+% \begin{macrocode}
+\newcommand*\professorship{}
+\let\professorship\chair
+% \end{macrocode}
+% \end{macro}^^A \professorship
+% \begin{macro}{\student}
+% Der Befehl \cs{student} kann als Alias für \cs{author} genutzt werden.
+% \begin{macrocode}
+\newcommand*\student{}
+\let\student\author
+% \end{macrocode}
+% \end{macro}^^A \student
+% \begin{macro}{\studentid}
+% \begin{macro}{\matriculationid}
+% Zur Angabe von Matrikelnummer kann auch \cs{studentid} oder
+% \cs{matriculationnumber} genutzt werden.
+% \begin{macrocode}
+\newrobustcmd*\studentid{}
+\newrobustcmd*\matriculationid{}
+\let\studentid\matriculationnumber
+\let\matriculationid\matriculationnumber
+% \end{macrocode}
+% \end{macro}^^A \matriculationid
+% \end{macro}^^A \studentid
+% \begin{macro}{\enrolmentyear}
+% Das Immatrikulationsjahr kann auch mit \cs{enrolmentyear} angegeben werden.
+% \begin{macrocode}
+\newrobustcmd*\enrolmentyear{}
+\let\enrolmentyear\matriculationyear
+% \end{macrocode}
+% \end{macro}^^A \enrolmentyear
+% \begin{macro}{\birthplace}
+% Zur Angabe des Geburtsortes kann auch \cs{birthplace} verwendet werden.
+% \begin{macrocode}
+\newrobustcmd*\birthplace{}
+\let\birthplace\placeofbirth
+% \end{macrocode}
+% \end{macro}^^A \birthplace
+% \begin{macro}{\location}
+% Für die Angabe des Ortes kann auch \cs{location} genutzt werden.
+% \begin{macrocode}
+\newcommand*\location{}
+\let\location\place
+% \end{macrocode}
+% \end{macro}^^A \location
+% \begin{macro}{\submissiondate}
+% Der Befehl \cs{submissiondate} kann als Aliasbefehl für den Standardbefehl
+% \cs{date} zur Datumsangabe genutzt werden.
+% \begin{macrocode}
+\newcommand*\submissiondate{}
+\let\submissiondate\date
+% \end{macrocode}
+% \end{macro}^^A \submissiondate
+% \begin{macro}{\oralexaminationdate}
+% Für \cs{defensedate} kann als Aliasbefehl auch \cs{oralexaminationdate}
+% verwendet werden.
+% \begin{macrocode}
+\newcommand*\oralexaminationdate{}
+\let\oralexaminationdate\defensedate
+% \end{macrocode}
+% \end{macro}^^A \oralexaminationdate
+% \begin{macro}{\birthday}
+% Der Geburtstag kann auch mit \cs{birthday} angegeben werden.
+% \begin{macrocode}
+\newrobustcmd*\birthday{}
+\let\birthday\dateofbirth
+% \end{macrocode}
+% \end{macro}^^A \birthday
+% \begin{macro}{\logofile}
+% \begin{macro}{\logofilename}
+% Diese beiden Befehle können anstelle von \cs{headlogo} eingesetzt werden.
+% \begin{macrocode}
+\newcommand*\logofile{}
+\let\logofile\headlogo
+\newcommand*\logofilename{}
+\let\logofilename\headlogo
+% \end{macrocode}
+% \end{macro}^^A \logofilename
+% \end{macro}^^A \logofile
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx
new file mode 100644
index 00000000000..b980c247226
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx
@@ -0,0 +1,225 @@
+% \CheckSum{183}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-doc.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-doc.dtx}[%
+ 2014/12/16 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<class>\ProvidesClass{tudscrdoc}[%
+%<*driver|class>
+%!TUDVersion
+%<class> class
+ (source code documentation based on scrdoc)%
+]
+%</driver|class>
+%<*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-doc.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/07/10}{Versionsnummer angepasst}%^^A
+%
+% \section{Quelltextdokumentation für das \TUDScript-Bundle}
+%
+% Mit dieser Klasse erfolgt die Quelltextdokumentation des \TUDScript-Bundles.
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% Sie basiert auf der Klasse \cls{scrdoc}.
+% \begin{macrocode}
+\LoadClassWithOptions{scrdoc}
+% \end{macrocode}
+% Die Seitenränder werden so eingestellt, dass für die Darstellung des
+% Quelltextes genau 80~Zeichen zur Verfügung stehen.
+% \begin{macrocode}
+\setlength{\marginparwidth}{140pt}
+\setlength{\marginparsep}{8pt}
+\setlength{\oddsidemargin}{\dimexpr\marginparwidth+\marginparsep-1in}
+\setlength{\textwidth}{\dimexpr\paperwidth-1in-\oddsidemargin-2\marginparsep}
+\setlength{\topmargin}{-1in}
+\setlength{\headheight}{0pt}
+\setlength{\headsep}{30pt}
+\setlength{\footskip}{1.5\headsep}
+\setlength{\textheight}{\dimexpr\paperheight-2\headsep-\footskip}
+\RequirePackage{dox}[2010/12/16]
+% \end{macrocode}
+% Titelei.
+% \begin{macrocode}
+\title{%
+ \texttt{\filename}\thanks{%
+ Dies ist Version \fileversion\ von Datei \texttt{\filename}.%
+ }%
+}
+\author{Falk Hanisch\thanks{\tudscrmail}}
+\date{\filedate}
+% \end{macrocode}
+% Befehle, welche nicht im Index auftauchen sollen.
+% \begin{macrocode}
+\DoNotIndex{\",\\,,\if,\@}
+% \end{macrocode}
+% Weitere Eintragstypen mittels Paket~\pkg{dox}.
+% \begin{macrocode}
+\doxitem[idxtype=Option]{Option}{option}{Optionen}
+\doxitem[idxtype=Parameter]{Parameter}{parameter}{Parameter}
+\doxitem[idxtype=Seitenstil]{Pagestyle}{pagestyle}{Seitenstile}
+\doxitem[macrolike,idxtype=L\noexpand\"ange]{Length}{length}{L\noexpand\"angen}
+\doxitem[idxtype=Z\noexpand\"ahler]{Counter}{counter}{Z\noexpand\"ahler}
+\doxitem[idxtype=Farbe]{Color}{color}{Farben}
+\doxitem[macrolike,idxtype=Lok.]{Locale}{locale}{Lokalisierungsvariablen}
+\doxitem[macrolike,idxtype=Feld]{Field}{field}{Eingabefelder}
+% \end{macrocode}
+% Zusätzliche Auszeichnungsbefehle.
+% \begin{macrocode}
+\DeclareRobustCommand*{\cls}[1]{\mbox{\textsf{\textbf{#1}}}}
+\DeclareRobustCommand*{\pkg}[1]{\mbox{\textsf{\textbf{#1}}}}
+\DeclareRobustCommand*{\opt}[1]{\mbox{\texttt{#1}}}
+\DeclareRobustCommand*{\val}[1]{\mbox{\texttt{#1}}}
+\DeclareRobustCommand*{\pgs}[1]{\mbox{\texttt{#1}}}
+\DeclareRobustCommand*{\env}[1]{\mbox{\texttt{#1}}}
+% \end{macrocode}
+% \begin{macro}{\ToDo}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% \begin{macro}{\@ToDo}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% \begin{macro}{\@@ToDo}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% Die Befehle für die ToDo-Notizen. Um in der gleichen Nomenklatur wie beim
+% Handbuch bleiben zu können, wird die Randnotizmarke als optionales Argument
+% hinter dem eigentlichen Text angegeben.
+% \begin{macrocode}
+\newcommand*\ToDo[2][]{%
+ \@ifnextchar[
+ {\@ToDo{#2}}{\@ToDo{#2}[]}
+}
+\newcommand*\@ToDo{}
+\newcommand*\@@ToDo{}%
+\def\@ToDo#1[#2]{%
+ \ifdefined\tudfinalflag\else%
+ \def\@@ToDo{\ifstr{#2}{}{ToDo}{ToDo: #2}}%
+ \endgraf%
+ \hfuzz0.8pt%
+ \leavevmode\marginpar{\raggedleft\fbox{\@@ToDo\strut}}%
+ \fbox{\parbox{\dimexpr\textwidth-2\fboxsep}{#1\strut}}%
+ \endgraf%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}^^A \@@ToDo
+% \end{macro}^^A \@ToDo
+% \end{macro}^^A \ToDo
+% Optionen bzw. Flag für das automatisierte Erstellen der Quelltextdokumentation
+% mit einem Skript ohne ToDo-Befehle.
+% \begin{macrocode}
+\DeclareOption{final}{\let\tudfinalflag\relax}
+\ProcessOptions\relax
+% \end{macrocode}
+% Und noch etwas Kleinkram für \pkg{hyperref}, \pkg{babel} und \pkg{csquotes}.
+% \begin{macrocode}
+\AfterPackage{hyperref}{%
+ \pdfstringdefDisableCommands{\def\TUDScript{TUD-KOMA-Script}}%
+}
+\AfterPackage{babel}{%
+ \AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}%
+}
+\AtBeginDocument{%
+ \providecommand*\url[1]{\texttt{#1}}%
+ \providecommand*\texorpdfstring[2]{#1}%
+ \@ifpackageloaded{babel}{}{%
+ \ClassWarning{\tudcls@name}{Package `babel' not loaded}%
+ \let\selectlanguage\@gobble%
+ \let\glqq\relax%
+ \let\grqq\relax%
+ }%
+ \@ifpackageloaded{csquotes}{}{%
+ \ClassWarning{\tudcls@name}{Package `csquotes' not loaded}%
+ \providecommand\enquote[1]{\glqg#1\grqq{}}%
+ }%
+ \providecommand*\ifdin[2]{#2}%
+}
+% \end{macrocode}
+% Sollte das Paket \pkg{tudscrfonts} geladen worden sein, so wird die Stärke
+% der Schriften für die Quelltextausgabe etwas erhöht, um die Lesbarkeit zu
+% verbessern. Andernfalls wird das Paket \pkg{lmodern} geladen.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \expandafter\ifx\csname if@tud@cdfonts\endcsname\iftrue\relax%
+ \RequirePackage{mweights}[2013/07/21]%
+ \def\mddefault{m}%
+ \def\mdseries@tt{m}%
+ \renewcommand*\@pnumwidth{1.7em}%
+ \else%
+ \RequirePackage{lmodern}[2009/10/30]%
+ \fi%
+}%
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx
new file mode 100644
index 00000000000..92ddb27e125
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx
@@ -0,0 +1,643 @@
+% \CheckSum{399}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-fields.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-fields.dtx}[%
+ 2014/11/13 v2.02 TUD-KOMA-Script (input fields)%
+]
+\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-fields.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/11/05}{Korrekturen bei der Verwendung von
+% \cs{@@title}}%^^A
+%
+% \section{Eingabefelder für den Nutzer}
+%
+% Die Vorlagen für das \CD der Technischen Universität Dresden definieren
+% mehrere Felder, welche durch den Nutzer gesetzt und auf Titelseite bzw. mit
+% \pkg{tudscrsupervisor} auch teilweise für die Aufgabenstellung verwendet
+% werden. Ein Großteil der definierten Felder wird unter anderem für den Satz
+% der Titelseite benötigt.
+%
+% Das Setzen einer speziellen Titelseite mit \LaTeX{} ist eines der häufigsten
+% anliegen. Dafür ist von Markus Kohm\footnote{Autor von \KOMAScript} das
+% \pkg{titlepage}-Paket entworfen worden. Um gleichzeitig konsistent zu diesem
+% Paket, werden für die entsprechenden Felder Alias-Befehle definiert.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \subsection{Textfelder}
+%
+% Für das Setzen von Feldern werden bei einem übergebenen Argument führende und
+% angehängte Leerzeichen beseitigt.
+% \begin{macrocode}
+\RequirePackage{trimspaces}[2009/09/17]
+% \end{macrocode}
+% Von den Klassen benötigte Formularfelder werden definiert.
+% \begin{macro}{\faculty}
+% \begin{field}{\@faculty}
+% Angabe der Fakultät für die TUD-Kopfzeile mit \cs{faculty}\marg{Fakultät},
+% wird im Makro \cs{@faculty} gespeichert.
+% \begin{macrocode}
+\newcommand*\@faculty{}
+\newcommand*\faculty[1]{\gdef\@faculty{\trim@spaces{#1}}}
+% \end{macrocode}
+% \end{field}^^A \@faculty
+% \end{macro}^^A \faculty
+% \begin{macro}{\department}
+% \begin{field}{\@department}
+% Angabe der Einrichtung mit \cs{department}\marg{Fachrichtung} für die
+% TUD-Kopfzeile, wird im Makro \cs{@department} gespeichert.
+% \begin{macrocode}
+\newcommand*\@department{}
+\newcommand*\department[1]{\gdef\@department{\trim@spaces{#1}}}
+% \end{macrocode}
+% \end{field}^^A \@department
+% \end{macro}^^A \department
+% \begin{macro}{\institute}
+% \begin{field}{\@institute}
+% Angabe des Instituts für die TUD-Kopfzeile mit \cs{institute}\marg{Institut},
+% wird im Makro \cs{@institute} gespeichert.
+% \begin{macrocode}
+\newcommand*\@institute{}
+\newcommand*\institute[1]{\gdef\@institute{\trim@spaces{#1}}}
+% \end{macrocode}
+% \end{field}^^A \@institute
+% \end{macro}^^A \institute
+% \begin{macro}{\chair}
+% \begin{field}{\@chair}
+% Angabe des Lehrstuhls bzw. der Professur mit \cs{chair}\marg{Lehrstuhl} für
+% die TUD-Kopfzeile, wird im Makro \cs{@chair} gespeichert.
+% \begin{macrocode}
+\newcommand*\@chair{}
+\newcommand*\chair[1]{\gdef\@chair{\trim@spaces{#1}}}
+% \end{macrocode}
+% \end{field}^^A \@chair
+% \end{macro}^^A \chair
+% \begin{macro}{\extraheadline}
+% \begin{field}{\@extraheadline}
+% Für die Angabe einer freien zweiten bzw. dritten Textzeile im Kopf. Dies ist
+% laut \CD nur in besonderen Ausnahmefällen gestattet.
+% \begin{macrocode}
+\newcommand*\@extraheadline{}
+\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}}
+% \end{macrocode}
+% \end{field}^^A \@extraheadline
+% \end{macro}^^A \extraheadline
+% \begin{macro}{\title}
+% \begin{field}{\@@title}
+% \begin{field}{\@@author}
+% \changes{v2.02}{2014/07/25}{entfernt}%^^A
+% Für die spätere Verwendung im Dokument des Titels~-- beispielsweise für die
+% Aufgabenstellung oder die Selbstständigkeitserklärung~-- wird das Feld
+% \cs{@@title} definiert. In diesem wird der mit \cs{title} gesicherte Eintrag
+% ohne die etwaigen Fußnoten gespeichert. Das Feld \cs{@@author} wurde mit der
+% Version~v2.02 entfernt.
+% \begin{macrocode}
+\newcommand*\@@title{}
+\renewcommand*\title[1]{%
+ \gdef\@title{#1}%
+ \begingroup%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \protected@xdef\@@title{\trim@spaces{#1}}%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{field}^^A \@@author
+% \end{field}^^A \@@title
+% \end{macro}^^A \title
+% \begin{macro}{\authormore}
+% \begin{field}{\@authormore}
+% Ausgabe einer zusätzlichen Zeile mit \cs{authormore}\marg{Textzeile} direkt
+% unterhalb der Angabe des Autors auf der Titelseite, wird im Makro
+% \cs{@authormore} gespeichert.
+% \begin{macrocode}
+\newcommand*\@authormore{}
+\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}}
+% \end{macrocode}
+% \end{field}^^A \@authormore
+% \end{macro}^^A \authormore
+% \begin{macro}{\thesis}
+% \begin{field}{\@thesis}
+% \begin{field}{\@@thesis}
+% \begin{macro}{\subject}
+% \begin{field}{\@subject}
+% \begin{macro}{\tud@thesis}
+% \begin{macro}{\tud@@thesis}
+% \begin{macro}{\tud@thanks}
+% Art bzw. Typ der Abschlussarbeit kann \cs{thesis}\marg{Abschlussarbeit}
+% angegeben werden und wird im Makro \cs{@thesis} gespeichert. Alternativ
+% dazu kann auch der Befehl \cs{subject} verwendet werden. Mit dem Befehl
+% \cs{tud@thesis} wird in den Feldern \@thesis bzw. \@subject nach bestimmten
+% Schlagwörtern für Abschlussarbeiten o.\,ä. gesucht. Wird eines dieser Wörter
+% gefunden, wird der entsprechende reguläre Ausdruck für dieses Feld gesetzt.
+% Zusätzlich wird durch \cs{tud@@thesis} dafür gesorgt, dass gegebenenfalls der
+% Inhalt von \cs{@subject} in \cs{@thesis} verschoben und die entsprechende
+% Option \opt{subjectthesis} gesetzt wird. In \cs{@@thesis} wird die angegebene
+% Abschlussarbeit ohne etwaige Fußnoten gespeichert.
+% \begin{macrocode}
+\newcommand*\@thesis{}
+\newcommand*\@@thesis{}
+\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}}
+\newcommand*\tud@thanks{}
+\newcommand*\tud@thesis[2]{%
+ \AfterPreamble{%
+ \begingroup%
+% \end{macrocode}
+% Hier das gleiche wie an anderer Stelle auch schon. Der Inhalt einer eventuell
+% vorhandenen Fußnote wird gesichert
+% \begin{macrocode}
+ \global\let\tud@thanks\relax%
+ \def\thanks##1{\gdef\tud@thanks{##1}}%
+ \let\footnote\thanks%
+ \setbox0\vbox{#2}%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \tud@lowerstring{\@tempa}{#2}%
+ \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}%
+ \endgroup%
+ \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{%
+ \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{%
+ \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{%
+ \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{%
+ \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{%
+ \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{%
+ \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{%
+ \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{%
+ \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{%
+ \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{%
+ \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{%
+ \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{%
+ \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{%
+ \@namedef{@#1}{#2}%
+ }}}}}}}}}}}}}%
+ }%
+}
+\newcommand*\tud@@thesis[2]{%
+ \ifstr{#1}{subject}{%
+ \ifx\@thesis\@empty\else%
+ \ClassWarning{\tudcls@name}{Field `thesis' is overwritten by `subject'}%
+ \fi%
+ \TUD@std@ifkey@lock{subjectthesis}{true}%
+ }{%
+ \TUD@std@ifkey@lock{subjectthesis}{false}%
+ }%
+ \ifx\tud@thanks\relax%
+ \gdef\@thesis{#2}%
+ \else%
+ \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}%
+ \fi%
+ \gdef\@@thesis{#2}%
+}
+\renewcommand*\subject[1]{\tud@thesis{subject}{#1}}
+% \end{macrocode}
+% \end{macro}^^A \tud@thanks
+% \end{macro}^^A \tud@@thesis
+% \end{macro}^^A \tud@thesis
+% \end{field}^^A \@subject
+% \end{macro}^^A \subject
+% \end{field}^^A \@@thesis
+% \end{field}^^A \@thesis
+% \end{macro}^^A \thesis
+% \begin{macro}{\graduation}
+% \changes{v2.02}{2014/05/16}{neu, von \cs{degree} umbenannt}%^^A
+% \begin{field}{\@graduation}
+% \changes{v2.02}{2014/05/16}{neu, von \cs{@degree} umbenannt}%^^A
+% \begin{field}{\@graduationabbr}
+% \changes{v2.02}{2014/05/16}{neu, \cs{@degreeabbr} umbenannt}%^^A
+% Der angestrebte Abschluss bzw. der zu erwerbende akademische Grad, welcher
+% auf der Titelseite ausgegeben werden soll, wird im Makro \cs{@graduation}
+% gespeichert. Zusätzlich kann als optionales Argument die Kurzform des
+% akademischen Grades angegeben werden, wird in \cs{@graduationabbr}
+% gespeichert.
+% \begin{macrocode}
+\newcommand*\@graduation{}
+\newcommand*\@graduationabbr{}
+\newcommand*\graduation[2][]{%
+ \ifxblank{#1}{\gdef\@graduationabbr{}}{\gdef\@graduationabbr{(#1)}}%
+ \gdef\@graduation{#2}%
+}
+% \end{macrocode}
+% \end{field}^^A \@graduationabbr
+% \end{field}^^A \@graduation
+% \end{macro}^^A \graduation
+% \begin{macro}{\professor}
+% \begin{field}{\@professor}
+% Angabe des verantwortlichen Hochschullehrers für Titel und Aufgabenstellung,
+% wird im Makro \cs{@professor} gespeichert.
+% \begin{macrocode}
+\newcommand*\@professor{}
+\newcommand*\professor[1]{\gdef\@professor{#1}}
+% \end{macrocode}
+% \end{field}^^A \@professor
+% \end{macro}^^A \professor
+% \begin{macro}{\supervisor}
+% \changes{v2.02}{2014/05/16}{Automatisch erzeugter Eintrag der Betreuer mit
+% \cs{supervisor} für Selbstständigkeitserklärung verworfen}%^^A
+% \begin{field}{\@supervisor}
+% (Erst- und Zweit"~)Betreuer bei Abschlussarbeiten, wird in \cs{@supervisor}
+% gespeichert. Mehrere Betreuer werden durch \cs{and} getrennt.
+% \begin{macrocode}
+\newcommand*\@supervisor{}
+\newcommand*\supervisor[1]{\gdef\@supervisor{#1}}
+% \end{macrocode}
+% \end{field}^^A \@supervisor
+% \end{macro}^^A \supervisor
+% \begin{macro}{\supporter}
+% \changes{v2.02}{2014/05/16}{Automatisch erzeugter Eintrag der Betreuer mit
+% \cs{supervisor} für Selbstständigkeitserklärung verworfen}%^^A
+% \begin{field}{\@supporter}
+% Diese Feld ist für die Hilfesteller bei der Anfertigung der Abschlussarbeit,
+% welche auf der Selbstständigkeitserklärung aufgeführt werden. Mehrere
+% Hilfesteller werden durch \cs{and} voneinander getrennt.
+% \begin{macrocode}
+\newcommand*\@supporter{}
+\newcommand*\supporter[1]{\gdef\@supporter{#1}}
+% \end{macrocode}
+% \end{field}^^A \@supporter
+% \end{macro}^^A \supporter
+% \begin{macro}{\company}
+% \begin{field}{\@company}
+% Angabe einer externen Firma, wird im Makro \cs{@company} gespeichert.
+% \begin{macrocode}
+\newcommand*\@company{}
+\newcommand*\company[1]{\gdef\@company{#1}}
+% \end{macrocode}
+% \end{field}^^A \@company
+% \end{macro}^^A \company
+% \begin{macro}{\referee}
+% \begin{field}{\@referee}
+% Gutachter bei einer Dissertation, werden im Makro \cs{@referee} gespeichert.
+% Mehrere Gutachter werden durch \cs{and} getrennt.
+% \begin{macrocode}
+\newcommand*\@referee{}
+\newcommand*\referee[1]{\gdef\@referee{#1}}
+% \end{macrocode}
+% \end{field}^^A \@referee
+% \end{macro}^^A \referee
+% \begin{macro}{\advisor}
+% \begin{field}{\@advisor}
+% Fachreferenten bei einer Dissertation, werden im Makro \cs{@advisor}
+% gespeichert. Mehrere Fachreferenten werden durch \cs{and} getrennt.
+% \begin{macrocode}
+\newcommand*\@advisor{}
+\newcommand*\advisor[1]{\gdef\@advisor{#1}}
+% \end{macrocode}
+% \end{field}^^A \@advisor
+% \end{macro}^^A \advisor
+% \begin{macro}{\matriculationnumber}
+% \begin{field}{\@matriculationnumber}
+% Angabe der Matrikelnummer für Titelseite und Aufgabenstellung, wird in dem
+% Makro \cs{@matriculationid} gespeichert.
+% \begin{macrocode}
+\newcommand*\@matriculationnumber{}
+\newrobustcmd*\matriculationnumber[1]{%
+ \gdef\@matriculationnumber{#1}%
+}
+% \end{macrocode}
+% \end{field}^^A \@matriculationnumber
+% \end{macro}^^A \matriculationnumber
+% \begin{macro}{\matriculationyear}
+% \begin{field}{\@matriculationyear}
+% Das Immatrikulationsjahr für den Titel wird in \cs{@matriculationyear}
+% gespeichert.
+% \begin{macrocode}
+\newcommand*\@matriculationyear{}
+\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}}
+% \end{macrocode}
+% \end{field}^^A \@matriculationyear
+% \end{macro}^^A \matriculationyear
+% \begin{macro}{\placeofbirth}
+% \begin{field}{\@placeofbirth}
+% Der Geburtsort für den Titel wird in \cs{@placeofbirth} gespeichert.
+% \begin{macrocode}
+\newcommand*\@placeofbirth{}
+\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}}
+% \end{macrocode}
+% \end{field}^^A \@placeofbirth
+% \end{macro}^^A \placeofbirth
+% \begin{macro}{\publisher}
+% \begin{field}{\@publisher}
+% \changes{v2.02}{2014/07/25}{entfernt}%^^A
+% Kleine Korrektur für \KOMAScript, der Befehl sollte im Singular stehen.
+% \begin{macrocode}
+\providecommand*\publisher[1]{\publishers{#1}}
+% \end{macrocode}
+% \end{field}^^A \@publisher
+% \end{macro}^^A \publisher
+% \begin{macro}{\confirmationclosing}
+% \begin{field}{\@confirmationclosing}
+% \changes{v2.02}{2014/07/25}{\cs{@@date} mit \cs{@date} ersetzt}%^^A
+% Als Abschluss der Selbstständigkeitserklärung für Ort und Unterschrift.
+% \begin{macrocode}
+\newcommand*\@confirmationclosing{%
+ \medskip%
+ \noindent\@place, \@date%
+ \\[20mm plus 10mm minus 10mm]%
+ \begingroup%
+ \let\and\hfil%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \@author%
+ \hfil%
+ \endgroup%
+}
+\newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}}
+% \end{macrocode}
+% \end{field}^^A \@confirmationclosing
+% \end{macro}^^A \confirmationclosing
+% \begin{macro}{\place}
+% \begin{field}{\@place}
+% Die Angabe des Ortes mit \cs{place} für die Selbstständigkeitserklärung wird
+% im Makro \cs{@place} gespeichert und standardmäßig mit \enquote{Dresden}
+% gesetzt.
+% \begin{macrocode}
+\newcommand*\@place{Dresden}
+\newcommand*\place[1]{\gdef\@place{#1}}
+% \end{macrocode}
+% \end{field}^^A \@place
+% \end{macro}^^A \place
+%
+% \iffalse
+%</class>
+%<*supervisor>
+% \fi
+%
+% \begin{macro}{\course}
+% \begin{field}{\@course}
+% Studiengang für den Kopf der Aufgabenstellung, wird im Makro \cs{@course}
+% gespeichert.
+% \begin{macrocode}
+\newcommand*\@course{}
+\newrobustcmd*\course[1]{\gdef\@course{#1}}
+% \end{macrocode}
+% \end{field}^^A \@course
+% \end{macro}^^A \course
+% \begin{macro}{\discipline}
+% \changes{v2.02}{2014/05/16}{neu, von \cs{branch} umbenannt}%^^A
+% \begin{field}{\@discipline}
+% \changes{v2.02}{2014/05/16}{neu, von \cs{@branch} umbenannt}%^^A
+% Studienrichtung bzw. Fachrichtung für den Kopf der Aufgabenstellung, wird
+% im Makro \cs{@discipline} gespeichert.
+% \begin{macrocode}
+\newcommand*\@discipline{}
+\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}}
+% \end{macrocode}
+% \end{field}^^A \@discipline
+% \end{macro}^^A \discipline
+% \begin{macro}{\chairman}
+% \begin{field}{\@chairman}
+% Angabe des Prüfungsausschussvorsitzenden für die Aufgabenstellung, wird im
+% Makro \cs{@chairman} gespeichert.
+% \begin{macrocode}
+\newcommand*\@chairman{}
+\newcommand*\chairman[1]{\gdef\@chairman{#1}}
+% \end{macrocode}
+% \end{field}^^A \@chairman
+% \end{macro}^^A \chairman
+% \begin{macro}{\contactperson}
+% \changes{v2.02}{2014/05/16}{neu, \cs{contact} umbenannt}%^^A
+% \begin{field}{\@contactperson}
+% \changes{v2.02}{2014/05/16}{neu, \cs{@contact} umbenannt}%^^A
+% \begin{macro}{\office}
+% \begin{field}{\@office}
+% \begin{macro}{\telephone}
+% \changes{v2.02}{2014/05/16}{neu, \cs{phone} umbenannt}%^^A
+% \begin{field}{\@telephone}
+% \changes{v2.02}{2014/05/16}{neu, \cs{@phone} umbenannt}%^^A
+% \begin{macro}{\emailaddress}
+% \changes{v2.02}{2014/05/16}{neu, \cs{email} umbenannt}%^^A
+% \begin{field}{\@emailaddress}
+% \changes{v2.02}{2014/05/16}{neu, \cs{@email} umbenannt}%^^A
+% Für einen Aushang kann eine oder mehrere Kontaktpersonen angegeben werden.
+% Zusätzlich kann für jede einzelne Person ein Raum, eine Telefonnummer und die
+% E-Mail"=Adresse hinzugefügt werden.
+% \begin{macrocode}
+\newcommand*\@contactperson{}
+\newcommand*\contactperson[1]{\gdef\@contactperson{#1}}
+\newcommand*\@office{}
+\newrobustcmd*\office[1]{\gdef\@office{#1}}
+\newcommand*\@telephone{}
+\newrobustcmd*\telephone[1]{\gdef\@telephone{#1}}
+\newcommand*\@emailaddress{}
+\newrobustcmd*\emailaddress[1]{\gdef\@emailaddress{#1}}
+\AfterPackage*{hyperref}{%
+ \renewrobustcmd*\emailaddress[1]{%
+ \gdef\@emailaddress{\href{mailto:#1}{\nolinkurl{#1}}}%
+ }%
+}
+% \end{macrocode}
+% \end{field}^^A \@emailaddress
+% \end{macro}^^A \emailaddress
+% \end{field}^^A \@telephone
+% \end{macro}^^A \telephone
+% \end{field}^^A \@office
+% \end{macro}^^A \office
+% \end{field}^^A \@contactperson
+% \end{macro}^^A \contactperson
+% \begin{macro}{\grade}
+% \begin{field}{\@grade}
+% \begin{field}{\@headline}
+% Die Befehle dienen zum Abspeichern der entsprechenden Parameter innerhalb
+% der neu definierten Umgebungen aus dem Paket \pkg{tudscrsupervisor}.
+% \begin{macrocode}
+\newcommand*\@grade{}
+\newcommand*\grade[1]{\gdef\@grade{#1}}
+\newcommand*\@headline{}
+% \end{macrocode}
+% \end{field}^^A \@headline
+% \end{field}^^A \@grade
+% \end{macro}^^A \grade
+%
+% \iffalse
+%</supervisor>
+%<*class>
+% \fi
+%
+% \subsection{Datumsfelder}
+%
+% \begin{macro}{\printdate}
+% Im Folgenden werden mehrere Datumsfelder definiert. Damit diese optional
+% durch das \pkg{isodate}-Paket formatiert werden können, wird der zu
+% diesem Paket gehörende Befehl \cs{printdate} in die Definition der
+% eigentlichen Datumsfelder integriert. Sollte das \pkg{isodate}-Paket nicht
+% geladen werden, so muss dieser Befehl trotzdem definiert sein.
+% \begin{macrocode}
+\newcommand*\printdate[1]{#1}
+\BeforePackage{isodate}{\undef\printdate}
+% \end{macrocode}
+% \end{macro}^^A \printdate
+% \begin{macro}{\tud@printdate}
+% Damit die Datumsfelder definiert werden können und das \pkg{isodate}-Paket
+% unterstützen, muss beim Festlegen der Datumsfelder einiges beachtet werden.
+% So müssen beispielsweise leere Argumente und Sonderfälle separat betrachtet
+% werden. Damit dies einheitlich für alle Felder geschehen kann, wird dieser
+% Befehl genutzt. Dabei wird als erstes Argument der Befehlsname für das
+% Datumsfeld übergeben, als zweites Argument der gewünschte Inhalt.
+% \begin{macrocode}
+\newcommand*\tud@printdate[2]{%
+ \ifx\today#2%
+ \gdef#1{#2}%
+ \else%
+ \ifxblank{#2}%
+ {\gdef#1{}}%
+ {\gdef#1{\printdate{#2}}}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@printdate
+% \begin{macro}{\date}
+% \begin{field}{\@date}
+% \begin{field}{\@@date}
+% \changes{v2.02}{2014/07/25}{entfernt}%^^A
+% \begin{field}{\@datemore}
+% Das Abgabedatum der Arbeit für den Titel, wird im originalen Makro \cs{@date}
+% gespeichert. Zusätzlich kann als optionales Argument eine Ergänzung angehängt
+% werden~-- beispielsweise als Erklärung für eine verspätete Abgabe aufgrund
+% einer offiziellen Verlängerung der Bearbeitungszeit~-- welche im Feld
+% \cs{@datemore} gespeichert wird. Der originale Standardbefehl für das Datum
+% \cs{date} wird erweitert, das Feld \cs{@@date} wurde entfernt.
+% \begin{macrocode}
+\newcommand*\@datemore{}
+\renewcommand*\date[2][]{%
+ \gdef\@datemore{#1}%
+ \tud@printdate{\@date}{#2}%
+}
+% \end{macrocode}
+% \end{field}^^A \@datemore
+% \end{field}^^A \@@date
+% \end{field}^^A \@date
+% \end{macro}^^A \date
+% \begin{macro}{\defensedate}
+% \begin{field}{\@defensedate}
+% Das Verteidigungsdatum erscheint auf dem Titel und wird in \cs{@defensedate}
+% gespeichert.
+% \begin{macrocode}
+\newcommand*\@defensedate{}
+\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}}
+% \end{macrocode}
+% \end{field}^^A \@defensedate
+% \end{macro}^^A \defensedate
+% \begin{macro}{\dateofbirth}
+% \begin{field}{\@dateofbirth}
+% Angabe des Geburtstages für die Titelseite, wird im Makro \cs{@dateofbirth}
+% gespeichert.
+% \begin{macrocode}
+\newcommand*\@dateofbirth{}
+\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}}
+% \end{macrocode}
+% \end{field}^^A \@dateofbirth
+% \end{macro}^^A \dateofbirth
+%
+% \iffalse
+%</class>
+%<*supervisor>
+% \fi
+%
+% \begin{macro}{\issuedate}
+% \begin{field}{\@issuedate}
+% \begin{macro}{\startdate}
+% Angabe des Anfangsdatums für die Aufgabenstellung, wird im Makro
+% \cs{@issuedate} gespeichert, für \cs{issuedate} kann als Aliasbefehl auch
+% \cs{startdate} genutzt werden.
+% \begin{macrocode}
+\newcommand*\@issuedate{}
+\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}}
+\let\startdate\issuedate
+% \end{macrocode}
+% \end{macro}^^A \startdate
+% \end{field}^^A \@issuedate
+% \end{macro}^^A \issuedate
+% \begin{macro}{\duedate}
+% \begin{field}{\@duedate}
+% \begin{macro}{\finaldate}
+% \begin{macro}{\maturitydate}
+% Angabe des geplanten Abgabedatums für die Aufgabenstellung, wird im Makro
+% \cs{@duedate} gespeichert, für \cs{duedate} kann als Aliasbefehl auch
+% \cs{finaldate} oder \cs{maturitydate} genutzt werden.
+% \begin{macrocode}
+\newcommand*\@duedate{}
+\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}}
+\newcommand*\finaldate{}
+\newcommand*\maturitydate{}
+\let\finaldate\duedate
+\let\maturitydate\duedate
+% \end{macrocode}
+% \end{macro}^^A \maturitydate
+% \end{macro}^^A \finaldate
+% \end{field}^^A \@duedate
+% \end{macro}^^A \duedate
+%
+% \iffalse
+%</supervisor>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
new file mode 100644
index 00000000000..f3264e41b05
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx
@@ -0,0 +1,1371 @@
+% \CheckSum{1099}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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}[%
+ 2014/12/04 v2.02 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}{Verwendung \cs{FamilyKeyState}}%^^A
+% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}%^^A
+% \changes{v2.02}{2014/09/30}{Nutzung alter tud-Klassen 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.
+% \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}
+% 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}
+\newcommand*\tud@mathenc{OT1}
+% \end{macrocode}
+% Hier kommt die eigentliche Option.
+% \begin{macrocode}
+\newif\if@tud@fontspec
+\TUD@key@lock{fontspec}[true]{%
+ \TUD@set@ifkey@lock{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{%
+ \TUD@key{fontspec}[]{%
+ \ClassError{\tudcls@name}{Option `fontspec' too late}{%
+ Option `fontspec' can only be set while loading the\MessageBreak%
+ class `\tudcls@name' but you have tried to set it up later.%
+ }%
+ \FamilyKeyStateProcessed%
+ }%
+%</class>
+%<*package>
+\AtEndOfPackage{%
+ \TUD@key{fontspec}[]{%
+ \PackageError{tudscrfonts}{Option `fontspec' too late}{%
+ Option `fontspec' can only be set while loading the\MessageBreak%
+ package `tudscrfonts' but you have tried to set it up later.%
+ }%
+ \FamilyKeyStateProcessed%
+ }%
+ \@ifpackageloaded{fontspec}{%
+ \PackageError{tudscrfonts}{Package `fontspec' too early}{%
+ When using the option `fontspec' you must not load\MessageBreak%
+ the package `fontspec' before `tudscrfonts'.%
+ }%
+ }{}
+%</package>
+}
+% \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. Dabei wird die Kodierung der Mathematikschriften abhängig
+% von der Eingabekodierung gewählt.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \@expandtwoargs\in@{OT}{\encodingdefault}%
+ \ifin@%
+ \def\tud@mathenc{OT1}%
+ \else%
+ \def\tud@mathenc{T1}%
+ \fi%
+% \end{macrocode}
+% Nun 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 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{\tud@mathenc\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. Please use on of the\MessageBreak%
+ installation scripts out of the tudscr-bundle,\MessageBreak%
+ which suits to your OS. 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{\tud@mathenc\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%
+ \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[NFSSFamily=UniversLight]{Univers Light}%
+ \newfontface\univrn[NFSSFamily=UniversRegular]{Univers}%
+ \newfontface\univbn[NFSSFamily=UniversBold]{Univers Bold}%
+ \newfontface\univxn[NFSSFamily=UniversBlack]{Univers Black}%
+ \newfontface\univls[NFSSFamily=UniversLightOblique]{Univers Light Oblique}%
+ \newfontface\univrs[NFSSFamily=UniversRegularOblique]{Univers Oblique}%
+ \newfontface\univbs[NFSSFamily=UniversBoldOblique]{Univers Bold Oblique}%
+ \newfontface\univxs[NFSSFamily=UniversBlackOblique]{Univers Black Oblique}%
+ \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}{\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}[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
+% \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}{\tud@mathenc}{\tud@univers}{b}{n}
+ \SetMathAlphabet{\mathsf}{univers}{\tud@mathenc}{\tud@univers}{l}{n}
+ \SetMathAlphabet{\mathit}{univers}{\tud@mathenc}{\tud@univers}{l}{sl}
+ \SetMathAlphabet{\mathtt}{univers}{\tud@mathenc}{\tud@univers t}{l}{n}
+ \SetMathAlphabet{\mathbf}{universbold}{\tud@mathenc}{\tud@univers}{eb}{n}
+ \SetMathAlphabet{\mathsf}{universbold}{\tud@mathenc}{\tud@univers}{b}{n}
+ \SetMathAlphabet{\mathit}{universbold}{\tud@mathenc}{\tud@univers}{b}{sl}
+ \SetMathAlphabet{\mathtt}{universbold}{\tud@mathenc}{\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}{\tud@mathenc}{\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}{\tud@mathenc}{\tud@dinbold}{b}{n}
+ \SetMathAlphabet{\mathsf}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{n}
+ \SetMathAlphabet{\mathit}{dinbold}{\tud@mathenc}{\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
+%
+% 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.
+% \changes{v2.02}{2014/06/27}{Ignorieren von Fußnoten im Befehl
+% \cs{MakeTextUppercase}}%^^A
+% \begin{macrocode}
+\RequirePackage{textcase}[2004/10/07]
+\patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{%
+ \@nonchangecase\ensuremath%
+ \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}%
+ \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}%
+}{}{\tud@patch@wrn{@uclcnotmath}}%
+% \end{macrocode}
+% \begin{option}{cdfont}
+% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{barfont}}%^^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{0}
+\TUD@key{cdfont}[true]{%
+ \TUD@set@numkey{cdfont}{tud@cdfont}{%
+ \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>
+ {barfont}{5},{litebar}{5},{barlite}{5},{lightbar}{5},{barlight}{5},%
+ {barfontlite}{5},{litebarfont}{5},{barfontlight}{5},{lightbarfont}{5},%
+ {noheavybarfont}{5},{barfontnoheavy}{5},%
+ {heavybar}{6},{barheavy}{6},{barfontheavy}{6},{heavybarfont}{6},%
+%</class>
+ {serifmath}{7},{serif}{7},{nosansmath}{7},{nosans}{7},%
+ {sansmath}{8},{sans}{8},%
+ {upgreek}{9},{uprightgreek}{9},{uprightGreek}{9},%
+ {slgreek}{10},{slantedgreek}{10},{slantedGreek}{10},%
+ {fontspec}{11},{luatex}{11},{lualatex}{11}{xetex}{11},{xelatex}{11},%
+ {nofontspec}{12},{pdftex}{12},{pdflatex}{12}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \tud@cdfont\relax%
+ \TUDoptions{cdfonts=false}%
+%<*class>
+ \TUD@std@numkey@lock{barfont}{false}%
+%</class>
+ \or%
+ \TUDoptions{cdfonts=true}%
+ \TUDoptions{heavyfont=false}%
+%<*class>
+ \TUD@std@numkey@lock{barfont}{true}%
+%</class>
+ \or%
+ \TUDoptions{cdfonts=true}%
+ \TUDoptions{heavyfont=true}%
+%<*class>
+ \TUD@std@numkey@lock{barfont}{heavy}%
+%</class>
+ \or%
+ \TUDoptions{din=false}%
+ \or%
+ \TUDoptions{din=true}%
+ \or%
+%<*class>
+ \TUDoptions{barfont=true}%
+%</class>
+ \or%
+%<*class>
+ \TUDoptions{barfont=heavy}%
+%</class>
+ \or%
+ \TUDoptions{sansmath=false}%
+ \or%
+ \TUDoptions{sansmath=true}%
+ \or%
+ \TUDoptions{slantedgreek=false}%
+ \or%
+ \TUDoptions{slantedgreek=true}%
+ \or%
+ \TUDoptions{fontspec=true}%
+ \or%
+ \TUDoptions{fontspec=false}%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@cdfont
+% \end{option}^^A cdfont
+% \begin{option}{cdfonts}
+% \begin{macro}{\if@tud@cdfonts}
+% Diese Option dient zum Umschalten auf die Schriften des \CDs für den
+% Fließtext.
+% \begin{macrocode}
+\newif\if@tud@cdfonts
+\TUD@key{cdfonts}[true]{%
+ \TUD@set@ifkey{cdfonts}{@tud@cdfonts}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+% \end{macrocode}
+% Wird die Option innerhalb nach der Präambel angewendet, erfolgt die Umsetzung
+% sofort. Ist die Verwendung der Schriften des \CDs gewünscht, werden diese mit
+% \cs{tud@font@cdfonts} aktiviert.
+% \begin{macrocode}
+ \if@tud@cdfonts%
+ \if@atdocument\tud@font@cdfonts\fi%
+% \end{macrocode}
+% Die Mathematikschriften werden bei der Verwendung der Schriften des \CDs~--
+% falls nicht anders durch den Anwender definiert~-- auf Serifenlose gesetzt.
+% \begin{macrocode}
+ \TUD@std@ifkey@lock{sansmath}{true}%
+ \TUD@std@ifkey@lock{slantedgreek}{true}%
+% \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%
+ \if@atdocument%
+ \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}%
+ \normalfont\selectfont%
+ \fi%
+% \end{macrocode}
+% Die Mathematikschriften werden auf ihr Stanardverhalten zurückgesetzt.
+% \begin{macrocode}
+ \TUD@std@ifkey@lock{sansmath}{false}%
+ \TUD@std@ifkey@lock{slantedgreek}{false}%
+ \fi%
+% \end{macrocode}
+% Da der Befehl \cs{tud@layout@process} auf jeden Fall mit \cs{AfterEndPreamble}
+% verzögert ausgeführt wird, muss dies bei der Wahl der Option nur nach der
+% Präambel, also im Dokument selbst neuerlich erfolgen.
+% \begin{macrocode}
+%<*class>
+ \if@atdocument\tud@layout@process\fi%
+%</class>
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@cdfonts
+% \end{option}^^A cdfonts
+%
+% \iffalse
+%</(class|package)&option>
+%<*(class|package)&body>
+% \fi
+%
+% \begin{macro}{\tud@font@cdfonts}
+% Mit diesem Befehl werden die Schriften des \CDs aktiviert. Dabei wird die
+% Option \opt{fontspec} beachtet.
+% \begin{macrocode}
+\newcommand*\tud@font@cdfonts{%
+% \end{macrocode}
+% Schnitte der Schriften vorher vorher gesichert, um diese später vollständig
+% wiederherstellen zu können..
+% \begin{macrocode}
+ \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}
+% Danach erfolgt die Definition der Schriften des \CDs entweder mit dem Paket
+% \pkg{fontspec} oder\dots
+% \begin{macrocode}
+ \if@tud@fontspec%
+ \if@tud@heavyfont%
+ \setsansfont{Univers}[%
+ BoldFont = Univers Bold,%
+ ItalicFont = Univers Oblique,%
+ BoldItalicFont = Univers Bold Oblique,%
+ ]%
+ \setmonofont{LMMono10-Regular}[%
+ BoldFont = LMMonoLt10-Bold,%
+ ItalicFont = LMMonoSlant10-Regular,%
+ BoldItalicFont = LMMonoLt10-BoldOblique,%
+ ]
+ \else%
+ \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>
+ \fi%
+% \end{macrocode}
+% \dots nach dem NFSS.
+% \begin{macrocode}
+ \else%
+ \if@tud@univers%
+ \renewcommand*\sfdefault{\tud@univers}%
+ \renewcommand*\ttdefault{\tud@univers t}%
+ \if@tud@heavyfont%
+ \renewcommand*\bfdefault{b}%
+ \renewcommand*\mddefault{m}%
+ \else%
+ \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}%
+ \fi%
+ \fi%
+ \fi%
+ \renewcommand*\rmdefault{\sfdefault}%
+ \renewcommand*\familydefault{\sfdefault}%
+ \renewcommand*\seriesdefault{\mddefault}%
+ \renewcommand*\shapedefault{\updefault}%
+% \end{macrocode}
+% Zum Abschluss wird die gewählte Standardschrift aktiviert.
+% \begin{macrocode}
+ \normalfont\selectfont%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@cdfonts
+% \begin{macro}{\tud@font@mathfonts}
+% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen.
+% \begin{macrocode}
+\newcommand*\tud@font@mathfonts{%
+ \if@tud@sansmath\tud@sansmath\else\tud@serifmath\fi%
+ \if@tud@slantedgreek\tud@greek@slanted\else\tud@greek@upright\fi%
+ \mathversion{normal}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@mathfonts
+% \begin{macro}{\tud@sansmath}
+% \begin{macro}{\tud@serifmath}
+% Die Befehle werden von der Option \opt{sansmath} verwendet, 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 beziehungsweise
+% wiederhergestellt.
+% \begin{macrocode}
+\newcommand*\tud@sansmath{%
+ \if@tud@univers%
+ \tud@cmd@store{mv@normal}%
+ \tud@cmd@store{mv@bold}%
+ \let\mv@normal\mv@univers%
+ \let\mv@bold\mv@universbold%
+ \mathversion{normal}%
+ \fi%
+}
+\newcommand*\tud@serifmath{%
+ \if@tud@univers%
+ \tud@cmd@restore{mv@normal}%
+ \tud@cmd@restore{mv@bold}%
+ \mathversion{normal}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@serifmath
+% \end{macro}^^A \tud@sansmath
+% \begin{macro}{\tud@greek@upGamma}
+% \begin{macro}{\tud@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@greek@offset} gespeichert.
+% \begin{macrocode}
+\newcount\tud@greek@upGamma
+\tud@greek@upGamma\Gamma
+\newcount\tud@greek@offset
+\let\@tempa\relax
+\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0}
+\tud@greek@offset\@tempa
+\advance\tud@greek@offset-\Gamma
+% \end{macrocode}
+% \end{macro}^^A \tud@greek@offset
+% \end{macro}^^A \tud@greek@upGamma
+% \begin{macro}{\tud@greek@slanted}
+% \begin{macro}{\tud@greek@upright}
+% Mit \cs{tud@greek@slanted} wird die Kodierung der griechischen Majuskeln von
+% \texttt{operator} auf \texttt{letter} geändert\dots
+% \begin{macrocode}
+\newcommand*\tud@greek@slanted{%
+ \ifnum\Gamma=\tud@greek@upGamma\relax\tud@greek@changeshape\fi%
+}
+% \end{macrocode}
+% \dots und \cs{tud@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@greek@upright{%
+ \ifnum\Gamma>\tud@greek@upGamma%
+ \tud@greek@offset=-\tud@greek@offset%
+ \tud@greek@changeshape%
+ \tud@greek@offset=-\tud@greek@offset%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@greek@upright
+% \end{macro}^^A \tud@greek@slanted
+% \begin{macro}{\tud@greek@def}
+% \begin{macro}{\tud@greek@uc}
+% \begin{macro}{\tud@greek@changeshape}
+% Mit \cs{tud@greek@def} erfolgt die Umkodierung einer einzelnen griechischen
+% Glyphe. Das Makro \cs{tud@greek@changeshape} arbeitet die Liste
+% \cs{tud@greek@uc} ab.
+% \begin{macrocode}
+\newcommand*\tud@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@greek@changeshape} genutzt wird.
+% \begin{macrocode}
+\newcommand*\tud@greek@uc{%
+ Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega%
+}
+\newcommand*\tud@greek@changeshape{%
+ \@for\@tempa:=\tud@greek@uc\do{%
+ \@expandtwoargs\tud@greek@def{\@tempa}{\tud@greek@offset}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@greek@changeshape
+% \end{macro}^^A \tud@greek@uc
+% \end{macro}^^A \tud@greek@def
+%
+% \iffalse
+%</(class|package)&body>
+%<*(class|package)&option>
+% \fi
+%
+% \begin{option}{heavyfont}
+% \begin{macro}{\if@tud@heavyfont}
+% Hiermit lässt sich die Schriftstärke im Dokument beeinflussen.
+% \begin{macrocode}
+\newif\if@tud@heavyfont
+\TUD@key{heavyfont}[true]{%
+ \TUD@set@ifkey{heavyfont}{@tud@heavyfont}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument\tud@font@cdfonts\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@heavyfont
+% \end{option}^^A heavyfont
+% \begin{option}{barfont}
+% \changes{v2.02}{2014/07/08}{neu}%^^A
+% \begin{macro}{\tud@barfont}
+% \changes{v2.02}{2014/07/08}{neu}%^^A
+% Mit dieser Option kann die Schrift des \CDs und deren Schriftstärke in der
+% TUD-Kopfzeile unabhängig von der gewählten Schriftart für den Fließtext
+% aktiviert werden.
+% \begin{macrocode}
+%<*class>
+\newcommand*\tud@barfont{0}
+\TUD@key@lock{barfont}[true]{%
+ \TUD@set@numkey@lock{barfont}{tud@barfont}{%
+ \TUD@numkey@bool,%
+ {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},%
+ {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
+ {heavy}{2},{heavyfont}{2}%
+ }{#1}%
+}
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \tud@barfont
+% \end{option}^^A barfont
+% \begin{option}{din}
+% \begin{macro}{\if@tud@din}
+% Diese Option dient zur Auswahl, ob die Schrift DIN~Bold für die Überschriften
+% verwendet werden soll.
+% \begin{macrocode}
+\newif\if@tud@din\@tud@dintrue
+\TUD@ifkey{din}{@tud@din}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@din
+% \end{option}^^A din
+%
+% \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}{sansmath}
+% \begin{macro}{\if@tud@sansmath}
+% \begin{macro}{\if@tud@sansmath@locked}
+% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz
+% für das gesamte Dokument umgestellt werden.
+% \begin{macrocode}
+\newif\if@tud@sansmath
+\TUD@key@lock{sansmath}[true]{%
+ \TUD@set@ifkey@lock{sansmath}{@tud@sansmath}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument\tud@font@mathfonts\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@sansmath@locked
+% \end{macro}^^A \if@tud@sansmath
+% \end{option}^^A sansmath
+% \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@mathfonts\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&option>
+% \fi
+%
+% Für das Paket \pkg{tudscrfonts} werden die Schriften aktiviert und~-- aus
+% Kompatibilitätsgründen zur \cls{tudbook}-Klasse~-- die Option \opt{serifmath}
+% definiert. Die an das Paket übergebenen Optionen werden daran anschließend
+% ausgeführt.
+% \begin{macrocode}
+\TUDoptions{cdfont=true}
+\DeclareOption*{\TUDoptions{\CurrentOption}}
+\TUDProcessOptions\relax
+% \end{macrocode}
+%
+% \iffalse
+%</package&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@head@font@set}
+% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{barfont} 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{%
+% \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{barfont} wird ausgewertet.
+% \begin{macrocode}
+ \ifcase \tud@barfont\relax%
+ \if@tud@cdfonts%
+ \ClassWarning{\tudcls@name}{%
+ It isn't possible to use `barfont=false'\MessageBreak%
+ together with `cdfont=true'%
+ }%
+ \fi%
+ \or%
+ \@tud@cdfontstrue%
+ \def\mddefault{l}%
+ \or%
+ \@tud@cdfontstrue%
+ \def\mddefault{m}%
+ \fi%
+% \end{macrocode}
+% Die Schriften für den Kopf im \CD werden aktiviert.
+% \begin{macrocode}
+ \if@tud@cdfonts%
+% \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}%
+ \ifstr{\mddefault}{m}{%
+ \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+ {UniversRegular}{m}{n}{\tud@head@font@size}%
+ }{%
+ \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+ {UniversLight}{m}{n}{\tud@head@font@size}%
+ }%
+% \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}%
+ \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}%
+ {\tud@univers}{\mddefault}{n}{\tud@head@font@size}%
+ \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}{\tud@mathenc}{\tud@univers}{l}{sl}%
+ \SetSymbolFont{aunLetters}{bold}{\tud@mathenc}{\tud@univers}{b}{sl}%
+ \DeclareSymbolFont{aunOperators}{\tud@mathenc}{\tud@univers}{l}{n}%
+ \SetSymbolFont{aunOperators}{bold}{\tud@mathenc}{\tud@univers}{b}{n}%
+ \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}%
+ \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}%
+ \DeclareMathAlphabet\mathbf{\tud@mathenc}{\tud@univers}{b}{n}%
+ \SetMathAlphabet\mathbf{bold}{\tud@mathenc}{\tud@univers}{b}{n}%
+ \DeclareMathAlphabet\mathit{\tud@mathenc}{\tud@univers}{l}{sl}%
+ \SetMathAlphabet\mathit{bold}{\tud@mathenc}{\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}
+% 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@cdfonts} 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@mathfonts} gesetzt.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \if@tud@cdfonts\tud@font@cdfonts\fi%
+ \tud@font@mathfonts%
+}
+% \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}
+%<*class>
+\newcommand*\tud@RaggedRight{\raggedright}
+%</class>
+\AfterPackage*{ragged2e}{%
+ \ifdef{\LaTeXraggedright}{%
+ \renewcommand*\tud@raggedright{\LaTeXraggedright}%
+ }{}%
+%<*class>
+ \renewcommand*\tud@RaggedRight{\RaggedRight}%
+%</class>
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ragged2e
+% \end{macro}^^A \tud@raggedright
+%
+% \iffalse
+%</(class|package)&body>
+%<*package&body>
+% \fi
+% 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}%
+ {\if@tud@din\dinbn\fi\Huge}{}{\tud@patch@wrn{@makechapterhead}}%
+ \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}%
+ {\if@tud@din\dinbn\fi\Huge}{}{\tud@patch@wrn{@makeschapterhead}}%
+ \patchcmd{\section}{\dinBold\Large\bfseries}%
+ {\if@tud@din\dinbn\fi\Large}{}{\tud@patch@wrn{section}}%
+ \patchcmd{\showtitle}{\dinBold\Huge\bfseries}%
+ {\if@tud@din\dinbn\fi\Huge}{}{\tud@patch@wrn{showtitle}}%
+}{}
+% \end{macrocode}
+%
+% \iffalse
+%</package&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx
new file mode 100644
index 00000000000..5e305fb91e5
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx
@@ -0,0 +1,977 @@
+% \CheckSum{587}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-frontmatter.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-frontmatter.dtx}[%
+ 2014/12/04 v2.02 TUD-KOMA-Script (frontmatter)%
+]
+\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-frontmatter.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/07/08}{Verwendung \cs{FamilyKeyState}}%^^A
+% \changes{v2.02}{2014/11/05}{Verbesserungen für Kolumnentitel und
+% Inhaltsverzeichnis}%^^A
+%
+% \section{Befehle und Umgebungen für den Vorspann}
+%
+% Im Vorspann des Dokumentes kann der Benutzer eine Zusammenfassung angegeben.
+% Außerdem kann eine Selbstständigkeitserklärung sowie ein Sperrvermerk
+% hinzugefügt werden. Damit für diese das Layout möglichst individuell gewählt
+% werden kann, werden hier entsprechende Optionen und die dafür notwendige
+% Ausgabe definiert. Im weiteren Verlauf der Dokumentation wird der Begriff
+% \enquote{Erklärung} für die unterschiedlichen Elemente verwendet. Die
+% verwendeten Schalter und Befehle zum Setzen der Optionen heißen entweder
+% \cs{tud@abstract@\dots} oder aber \cs{tud@declaration@\dots} je nach Element.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@fm@check}
+% \changes{v2.02}{2014/07/18}{neu}%^^A
+% Mit diesem Befehl wird für den Fall, dass eine oder mehrerer Erklräungen auf
+% einer einzelnen Seite gesetzt werden sollen geprüft, ob dies überhaupt
+% möglich ist. Sollte dies nicht der Fall sein, wird eine Warnung ausgegeben.
+% \begin{macrocode}
+\newcommand*\tud@fm@check[2]{%
+ \ifnumless{\@nameuse{tud@#1@level}}{3}{%
+ \@tempswatrue%
+ \ifboolexpr{bool {@tud@#1@fil} and bool {@tud@#1@multi}}{%
+ \setbox0\vbox{%
+ \ifcase\@nameuse{tud@#1@level}\relax\or\or%
+ \vspace*{-\parskip}%
+ {\usekomafont{section}\vspace*{-\baselineskip}}%
+ \fi%
+ #2%
+ }%
+ \ifdim\textheight<\dimexpr\ht0+\dp0\relax%
+ \ClassWarning{\tudcls@name}{%
+ The given content within the `#1'\MessageBreak%
+ environment is too large, so it wasn't possible\MessageBreak%
+ to center the body vertically. Setting the option\MessageBreak%
+ `#1=nofill' would be a solution. You\MessageBreak%
+ could also use multiple `#1' environments%
+ }%
+ \@tempswafalse%
+ \fi%
+ }{}%
+ }{}%
+ #2%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@check
+% \begin{macro}{\tud@fm@set}
+% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A
+% Dies ist das zentrale Makro zur Ausgabe der einzelnen Erklärungen, welches
+% alle relevanten Optionen\footnote{\opt{titlepage}, \opt{twocolumn},
+% \opt{abstract/declaration=multi}, \opt{abstract/declaration=fill} sowie die
+% Gliederungsebene der Überschrift} unterscheidet und die Erklärungen diesen
+% entsprechend setzt. Verwendet wird der Befehl wie folgt:
+% \cs{tud@fm@set}\marg{Erklärungstyp}\marg{Überschrift}\marg{Inhalt}
+% \begin{macrocode}
+\newcommand*\tud@fm@set[3]{%
+% \end{macrocode}
+% Sollte die Gliederungsebene der Erklärung einem Kapitel entsprechen, wird
+% jede Erklärung immer auf eine neue Seite gesetzt. Die Optionen zum vertikalen
+% Zentrieren wird ignoriert. Auf eine Warnung für den Anwender wird verzichtet.
+% \begin{macrocode}
+%<*book|report>
+ \ifnumless{\@nameuse{tud@#1@level}}{3}{}{%
+ \boolfalse{@tud@#1@multi}%
+ \boolfalse{@tud@#1@fil}%
+ }%
+%</book|report>
+% Im Zweispaltensatz wird der Inhalt der Umgebung einfach ausgegeben, eine
+% vertikale Zentrierung findet nicht statt.
+% \begin{macrocode}
+ \if@twocolumn%
+ \tud@fm@body{#1}{#2}{#3}%
+% \end{macrocode}
+% Beim einspaltigen Satz wird die \opt{titlepage}-Option beachtet.
+% \begin{macrocode}
+ \else%
+% \end{macrocode}
+% Sollte diese aktiv sein, wird jede Erklärung oder Zusammenfassung abhängig
+% von der Einstellung von \opt{abstract/declaration=multi} entweder auf eine
+% neue Seite gesetzt, oder aber auf der aktuellen ausgegeben. Dabei werden
+% diese ggf. noch vertikal auf der Seite ausgerichtet.
+% \begin{macrocode}
+ \if@titlepage%
+ \ifbool{@tud@#1@multi}{}{\clearpage}%
+ \ifbool{@tud@#1@fil}{%
+ \ifcase\@nameuse{tud@#1@level}\relax\or\or%
+ \vspace*{-\parskip}%
+ {\usekomafont{section}\vspace*{-2\baselineskip}}%
+ \fi%
+ \if@tempswa\vspace*{\z@ \@plus 1fil}\fi%
+ }{}%
+ \tud@fm@body{#1}{#2}{#3}%
+ \ifbool{@tud@#1@fil}{\vspace*{\z@ \@plus 2fil}}{}%
+% \end{macrocode}
+% Bei deaktivierter \opt{titlepage}-Option werden die Inhalte jeder erzeugten
+% Erklärung direkt nacheinander ausgegeben. Die Erklärung oder Zusammenfassung
+% wird dabei wie ein Zitat ausgegeben, sollte dessen Überschrift nicht
+% in Form eines Abschnitts gesetzt werden. Der Inhalt wird entweder in der
+% normalen \env{quotation}-Umgebung oder aber~-- wenn entsprechend das Paket
+% \pkg{quoting} geladen wurde~-- in der \env{quoting}-Umgebung gesetzt. Die
+% entsprechende Umgebung wird hierfür im Makro \cs{tud@quoting} gespeichert.
+% \begin{macrocode}
+ \else%
+ \ifnum\@nameuse{tud@#1@level}<2\begin{\tud@quoting}\fi%
+ \tud@fm@body{#1}{#2}{#3}%
+ \ifnum\@nameuse{tud@#1@level}<2\end{\tud@quoting}\fi%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@set
+% \begin{macro}{\tud@fm@body}
+% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A
+% \begin{macro}{\tud@fm@vcenter}
+% \changes{v2.02}{2014/07/18}{Mit \pkg{scrlayer-scrpage} entfernt}%^^A
+% Dieser Befehl formatiert den im dritten Argument gespeicherten Inhalt der
+% Erklärung. Sollte das Paket \pkg{multicol} Verwendung finden, wird hier die
+% entsprechende Umgebung gestartet. Für das Setzen der Überschrift und der
+% Kolumnentitel wird \cs{tud@fm@head} verwendet, welches abhängig von den
+% gewählten Optionen die Gliederungsebene der Überschrift setzt. Die optional
+% gewählte vertikale Ausrichtung des Inhaltes wird seit Version~v2.02 nicht
+% mehr von \cs{tud@fm@vcenter} sondern hier direkt ausgeführt.
+% \begin{macrocode}
+\newcommand*\tud@fm@body[3]{%
+ \ifnum\tud@multicols>1\relax%
+ \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#2}}]%
+ \else%
+% \end{macrocode}
+% Für die Verwendung einer kleinen, zentrierten Überschrift wird vorher ein
+% Abstand eingefügt. Dies ist jedoch nur notwendig, wenn \env{multicols} nicht
+% verwendet wird.
+% \begin{macrocode}
+ \ifbool{@tud@#1@multi}{%
+ \ifcase\@nameuse{tud@#1@level}\relax\or%
+ \vspace{\dimexpr\bigskipamount-\parskip\relax}%
+ \fi%
+ }{}%
+ \tud@fm@head{#1}{#2}%
+ \fi%
+ #3\par%
+ \ifnum\tud@multicols>1\relax%
+ \end{multicols}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@vcenter
+% \end{macro}^^A \tud@fm@body
+% \begin{macro}{\tud@fm@head}
+% \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}%^^A
+% \changes{v2.02}{2014/10/09}{Bugfix für Kolumnentitel}%^^A
+% Dieses Makro dient zur Festlegung der Gliederungsebene der Überschrift der
+% Erklärung. Die gewählte Gliederungsebene ist in \cs{tud@\meta{Typ}@level}
+% gespeichert. Verwendet wird das Makro folgendermaßen:
+% \cs{tud@fm@head}\marg{Erklärungstyp}\marg{Überschrift}\marg{Inhalt}. Damit
+% die ggf. aktive Option \opt{abstract/declaration=toc} funktionieren kann,
+% wird für die Level, in denen keine Standardüberschrift verwendet wird, mit
+% dem Befehl \cs{phantomsection} aus dem Paket \pkg{hyperref}~-- wenn es
+% tatsächlich geladen wurde~-- ein Anker für einen Hyperlink erzeugt. Ist
+% \cs{if@tud@\meta{Typ}@toc} wahr, so entspricht der erzeugte Eintrag ins
+% Inhaltsverzeichnis für \cls{tudscrartcl} normalerweise dem eines Abschnitts,
+% der für \cls{tudscrbook} und \cls{tudscrreprt} dem eines Kapitels.%
+% \footnote{sonst sieht das Inhaltsverzeichnis recht bescheiden aus}
+% Mit der Eintellung \val{tocleveldown} kann der Eintrag um eine Ebene
+% \begin{macrocode}
+\newcommand*\tud@fm@head[2]{%
+ \ifcase\@nameuse{tud@#1@level}\relax%
+ \if@titlepage\endgraf\fi%
+ \csname phantomsection\endcsname%
+ \or%
+ \if@titlepage\endgraf\fi%
+ \csname phantomsection\endcsname%
+ \@afterindentfalse%
+ \begingroup%
+ \centering%
+ \normalfont\sectfont\nobreak#2%
+ \@endparpenalty\@M%
+ \endgraf%
+ \endgroup%
+ \nopagebreak%
+ \vskip\dimexpr\bigskipamount-\parskip\relax%
+ \@afterheading%
+ \or%
+ \section*{#2}%
+ \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi%
+%<*book|report>
+ \or%
+ \chapter*{#2}%
+ \@mkdouble{\MakeMarkcase{#2}}%
+%</book|report>
+ \fi%
+ \ifbool{@tud@#1@markboth}{%
+ \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}%
+ }{}%
+ \ifbool{@tud@#1@toc}{%
+ \ifbool{@tud@#1@toc@leveldown}{%
+%<*book|report>
+ \addsectiontocentry{}{#2}%
+%</book|report>
+%<*article>
+ \addsubsectiontocentry{}{#2}%
+%</article>
+ }{%
+%<*book|report>
+ \addchaptertocentry{}{#2}%
+%</book|report>
+%<*article>
+ \addsectiontocentry{}{#2}%
+%</article>
+ }
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@head
+% \begin{macro}{\tud@fm@next}
+% \changes{v2.02}{2014/07/19}{mit \pkg{scrlayer-scrpage} eingeführt}%^^A
+% Dieser Befehl sorgt für die Trennung einzelner Abschnitte innerhalb der
+% Umgebungen \env{abstract} und \env{declarations}. Dabei werden bei aktiver
+% vertikaler Ausrichtung die entsprchenden Abstände dazwischen eingefügt.
+% \begin{macrocode}
+\newcommand*\tud@fm@next[2]{%
+ \TUD@parameter@set[#1]{#2}%
+ \if@twocolumn%
+ \ifbool{@tud@#1@multi}{\par}{\newpage}
+ \else%
+ \if@titlepage%
+ \ifbool{@tud@#1@fil}{%
+ \vspace*{\z@ \@plus 1fil}%
+ \ifbool{@tud@#1@multi}{}{%
+ \vspace*{\z@ \@plus 1fil}%
+ \clearpage%
+ \ifcase\@nameuse{tud@#1@level}\relax\or\or%
+ \vspace*{-\parskip}%
+ {\usekomafont{section}\vspace*{-2\baselineskip}}%
+ \fi%
+ \vspace*{\z@ \@plus 1fil}%
+ }%
+ }{\ifbool{@tud@#1@multi}{}{\clearpage}}%
+ \else%
+ \ifnum\@nameuse{tud@#1@level}<2
+ \end{\tud@quoting}
+ \begin{\tud@quoting}
+ \fi%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@next
+% \begin{macro}{\tud@fm@pagestyle}
+% \changes{v2.02}{2014/07/19}{neu}%^^A
+% Dieser Befehl sorgt für die Auswahl des Seitenstiles über die Parameter von
+% \env{abstract} und \env{declarations}.
+% \begin{macrocode}
+\newcommand*\tud@fm@pagestyle[2]{%
+ \if@titlepage%
+ \ifcsdef{ps@#2}{\renewcommand*\tud@ps{#2}}{%
+ \ClassError{\tudcls@name}{`#2' is no valid pagestyle}{}%
+ }%
+ \else%
+ \ClassWarning{\tudcls@name}{%
+%<*article>
+ The key `pagestyle' can only be used with\MessageBreak%
+ activated option `titlepage'%
+%</article>
+%<*book|report>
+ The key `pagestyle' can only be used either with\MessageBreak%
+ activated option `titlepage' or with chapter\MessageBreak%
+ headings (`#1=chapter')%
+%</book|report>
+ }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@pagestyle
+% \begin{macro}{\tud@fm@level@wrn}
+% \changes{v2.02}{2014/07/19}{entfernt}%^^A
+% \begin{macro}{\tud@fm@option@wrn}
+% \changes{v2.02}{2014/07/19}{entfernt}%^^A
+% \begin{macro}{\tud@fm@multi@wrn}
+% \changes{v2.02}{2014/07/19}{entfernt}%^^A
+% Die Befehle für die Warnungen an den Benutzer bei nicht beachteten oder nicht
+% umsetzbaren Einstellungen wurden mit der Version~v2.02 entfernt, da Sie als
+% wenig sinnvoll erachtet wurden.
+% \end{macro}^^A \tud@fm@multi@wrn
+% \end{macro}^^A \tud@fm@option@wrn
+% \end{macro}^^A \tud@fm@level@wrn
+% \begin{macro}{\tud@quoting}
+% \begin{macro}{\tud@endquoting}
+% \changes{v2.02}{2014/07/19}{entfernt}%^^A
+% Mit diesem Befehl kann das empfehlenswerte Paket \pkg{quoting} unterstützt
+% werden. Sollte dieses geladen werden, wird für das Setzen der Zusammenfassung
+% bei einem Titelkopf die \env{quoting}-Umgebung genutzt.
+% \begin{macrocode}
+\newcommand*\tud@quoting{quotation}
+\AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}}
+% \end{macrocode}
+% \end{macro}^^A \tud@endquoting
+% \end{macro}^^A \tud@quoting
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \begin{macro}{\tud@fm@switch}
+% \changes{v2.02}{2014/11/05}{neu}%^^A
+% Das aus \KOMAScript{} bekannte Verhalten für die Zusammenfassung wird für die
+% beiden Klassen \cls{tudscrartcl} und \cls{tudscrreprt} adaptiert. Dazu werden
+% boolesche Schlüssel bei der Definiton der beiden Optionen \opt{abstract} und
+% \opt{declaration} eingefügt. Außerdem werden zusätzliche Werte zur Auswahl
+% einer Gliederungsebene für die gesetzten Überschriften wie \cs{section} oder
+% \cs{chapter}\footnote{nicht für \cls{tudscrartcl}} oder bereitgestellt,
+% welche auch für die Buchklasse \cls{tudscrbook} zur Verfügung stehen. Das
+% Setzen von Einträgen ins Inhaltsverzeichnis lässt sich ebenfalls anpassen.
+%
+% Des Weiteren werden mehrere Schlüssel für die Anordnung und Positionierung
+% von Zusammenfassung bzw. Erklärungen bereitgestellt. Diese dienen dem Setzen
+% der Optionen \opt{abstract/declaration} mit den Werten \val{single/multi},
+% \val{toc/notoc}, \val{fill/nofill} sowie \val{leveldown}.
+% \begin{macrocode}
+\newcommand*\tud@fm@switch{%
+ {section}{2},{sect}{2},{sec}{2},{addsec}{2},%
+%<*article>
+ {new}{2},{std}{2},{heading}{2},%
+%</article>
+%<*book|report>
+ {chapter}{3},{chap}{3},{addchap}{3},%
+ {new}{3},{std}{3},{heading}{3},%
+%</book|report>
+ {totoc}{4},{toc}{4},{totoclevelup}{4},{toclevelup}{4},{levelup}{4},%
+ {totocleveldown}{5},{tocleveldown}{5},{leveldown}{5},%
+ {nottotoc}{6},{notoc}{6},%
+ {markboth}{7},{mark}{7},%
+ {nomarkboth}{8},{nomark}{8},%
+ {one}{9},{simple}{9},{single}{9},%
+ {multi}{10},{multiple}{10},{all}{10},{two}{10},{both}{10},{double}{10},%
+ {nofil}{11},{nofill}{11},{novfil}{11},{novfill}{11},%
+ {fil}{12},{fill}{12},{vfil}{12},{vfill}{12}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@switch
+%
+% \subsection{Erweiterung der Umgebung für eine Zusammenfassung}
+%
+% Die \env{abstract}-Umgebung wird um mehrere Optionen erweitert. So kann
+% in den neuen \cls{tudscr}-Klassen die Sprache der Zusammenfassung leicht
+% eingestellt und auch zwei Zusammenfassungen auf eine Seite gesetzt werden.
+% \begin{macro}{\tud@abstract@level}
+% \begin{macro}{\if@tud@abstract@toc}
+% \begin{macro}{\if@tud@abstract@toc@locked}
+% Der Befehl \cs{tud@abstract@level} beschreibt die Gliederungsebene der
+% Überschrift der Zusammenfassung numerisch und wird über die Schlüssel der
+% Option \opt{abstract} gesetzt. Über \opt{abstract=toc/notoc} wird festgelegt,
+% ob die Zusammenfassung einen eigenen Eintrag ins Inhaltsverzeichnis bekommt.
+% Da unterschiedliche Gliederungsebenen der Überschriften möglich sind, wird das
+% Standardverhalten in Abhängigkeit dieser gewählt. Initial erscheint für
+% \cls{tudscrreprt} und \cls{tudscrartcl}~-- wie in \KOMAScript{} auch~-- keine
+% Überschrift und kein Eintrag im Inhaltsverzeichnis. In \cls{tudscrbook} wird
+% standardmäßig eine Überschrift in Form eines Kapitels mit Eintrag ins
+% Inhaltsverzeichnis gesetzt.
+% \begin{macrocode}
+%<*report|article>
+\newcommand*\tud@abstract@level{0}
+\newbool@lock{@tud@abstract@toc}
+%</report|article>
+%<*book>
+\newcommand*\tud@abstract@level{3}
+\newbool@lock[true]{@tud@abstract@toc}
+%</book>
+% \end{macrocode}
+% \end{macro}^^A \if@tud@abstract@toc@locked
+% \end{macro}^^A \if@tud@abstract@toc
+% \end{macro}^^A \tud@abstract@level
+% \begin{macro}{\if@tud@abstract@toc@leveldown}
+% \changes{v2.02}{2014/11/05}{neu}%^^A
+% Dieser Schalter bestimmt, ob der Eintrag in das Inhaltsverzeichnis in der
+% obersten Gliederungsebene~-- \cs{chapter} für die Klassen \cls{tudscrbook}
+% und \cls{tudscrreprt} sowie \cs{section} für \cls{tudscrartcl}~-- oder in der
+% darunterliegenden erfolgt.
+% \begin{macrocode}
+\newif\if@tud@abstract@toc@leveldown
+% \end{macrocode}
+% \end{macro}^^A \if@tud@abstract@toc@leveldown
+% \begin{macro}{\if@tud@abstract@markboth}
+% \changes{v2.02}{2014/11/05}{neu}%^^A
+% Dieser Schalter setzt rechten und linken Kolumnentitel automatisch auf die
+% verwendete Überschrift.
+% \begin{macrocode}
+\newif\if@tud@abstract@markboth
+% \end{macrocode}
+% \end{macro}^^A \if@tud@abstract@markboth
+% \begin{macro}{\if@tud@abstract@multi}
+% Is dieser Schalter aktiviert, wird eine durch \cs{nextabstract} angegebene
+% zweite~-- wahrscheinlich in einer Fremdsprache verfasste~-- Zusammenfassung
+% auf die gleiche Seite wie die erste zu setzen. Gesetzt wird der Schalter über
+% die Option \opt{abstract=single/multi}.
+% \begin{macrocode}
+\newif\if@tud@abstract@multi
+% \end{macrocode}
+% \end{macro}^^A \if@tud@abstract@multi
+% \begin{macro}{\if@tud@abstract@fil}
+% Mit diesem Schalter wird bestimmt, ob eine Zusammenfassung auf einer Seite
+% vertikal zentriert wird. Er wird mit \opt{abstract=fill/nofill} gesetzt und
+% ist normalerweise aktiviert.
+% \begin{macrocode}
+\newif\if@tud@abstract@fil
+\@tud@abstract@filtrue
+% \end{macrocode}
+% \end{macro}^^A \if@tud@abstract@fil
+% \begin{option}{abstract}
+% Alle Klassen unterstützen die Werte, welche in \cs{tud@fm@switch} definiert
+% wurden. Die beiden Klassen \cls{tudscrartcl} und\ cls{tudscrreprt} adaptieren
+% außerdem das aus \KOMAScript{} bekannte Verhalten über die booleschen Werte
+% aus \cs{TUD@numkey@bool}.
+% \begin{macrocode}
+%<*report|article>
+\TUD@key{abstract}[true]{%
+ \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}%
+%</report|article>
+%<*book>
+\TUD@key{abstract}[chapter]{%
+ \edef\@tempb{\tud@fm@switch}%
+%</book>
+ \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}%
+% \end{macrocode}
+% Bei der Einstellungen der Überschriftgliederungsebene wird außerdem das
+% Standardverhalten für einen Eintrag ins Inhaltsverzeichnis festgelegt, was
+% allerdings vom Anwender jederzeit überschrieben werden kann.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+%<*report|article>
+ \def\tud@abstract@level{0}%
+ \stdbool@lock{@tud@abstract@toc}{false}%
+%</report|article>
+ \or%
+%<*report|article>
+ \def\tud@abstract@level{1}%
+ \stdbool@lock{@tud@abstract@toc}{false}%
+%</report|article>
+ \or%
+ \def\tud@abstract@level{2}%
+ \stdbool@lock{@tud@abstract@toc}{true}%
+ \or%
+%<*book|report>
+ \def\tud@abstract@level{3}%
+ \stdbool@lock{@tud@abstract@toc}{true}%
+%</book|report>
+% \end{macrocode}
+% Neben den Einstellungen für die Art der Gliederungsebene der Überschrift für
+% die Zusammenfassung können außerdem noch die Optionen gesetzt werden, ob
+% versucht werden soll, eine mögliche Zusammenfassung in einer anderen Sprache
+% auf die gleiche Seite wie die erste zu setzen (\opt{abstract=multi}) und ob
+% die Zusammenfassung einen Eintrag ins Inhaltsverzeichnis bekommen soll.
+% \begin{macrocode}
+ \or%
+ \setbool@lock{@tud@abstract@toc}{true}%
+ \@tud@abstract@toc@leveldownfalse%
+ \or%
+ \setbool@lock{@tud@abstract@toc}{true}%
+ \@tud@abstract@toc@leveldowntrue%
+ \or%
+ \setbool@lock{@tud@abstract@toc}{false}%
+ \or%
+ \@tud@abstract@markbothtrue%
+ \or%
+ \@tud@abstract@markbothfalse%
+ \or%
+ \@tud@abstract@multifalse%
+ \or%
+ \@tud@abstract@multitrue%
+ \or%
+ \@tud@abstract@filfalse%
+ \or%
+ \@tud@abstract@filtrue%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A abstract
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{environment}{abstract}
+% Die \env{abstract}-Umgebung wird komplett überarbeitet. Um alle gewünschten
+% Optionen\footnote{\opt{titlepage}, \opt{twocolumn}, \opt{abstract@multi},
+% \opt{abstract@fil} sowie Gliederungsebene der Überschrift} beachten zu
+% können, wird auf die Möglichkeiten der Definition mit \cs{NewEnviron} aus dem
+% Paket \pkg{environ} zurückgegriffen. Damit ist es möglich, gezielt auf den
+% Inhalt der Umgebung selbst mit dem Befehl \cs{BODY} zuzugreifen. Dieser
+% Mechanismus wird innerhalb von \cs{tud@abstractbody} verwendet.
+% \begin{macrocode}
+%<*report|article>
+\csundef{abstract}
+\csundef{endabstract}
+%</report|article>
+\NewEnviron{abstract}[1][]{%
+% \end{macrocode}
+% Sollten Überschriften in Form von Kapiteln gewählt worden sein, so wird
+% temporär die \opt{titlepage}-Option aktivert, da alle weiteren notwendigen
+% Einstellungen dieser entsprechen. Bei aktiver \opt{titlepage}-Option wird
+% anschließend der aktuelle Seitenstil gesichert, um diesen nach der Umgebung
+% wiederherstellen zu können.
+% \begin{macrocode}
+ \ifnumless{\@nameuse{tud@abstract@level}}{3}{}{\@titlepagetrue}%
+ \if@titlepage%
+ \tud@currentpagestyle@set%
+ \clearpage\def\tud@ps{empty}%
+ \fi%
+% \end{macrocode}
+% Als nächstes werden die Optionen verarbeitet. Sollte nach Abarbeitung der
+% Optionen für \env{abstract} festgestellt werden, dass eine spezielle
+% Spaltenanzahl gewünscht ist, so wird~-- für den Fall, dass das Paket
+% \pkg{multicol} geladen ist~-- diese gesetzt. Sonst wird die angegbene Anzahl
+% der Spalten ignoriert und eine Warnung ausgegeben. Bei aktiver Option
+% \opt{titlepage} kann über den Parameter \opt{pagestyle} der Seitenstil
+% innerhalb der Umgebung geändert werden. Dieser wird automatisch auf
+% \val{headings} gesetzt, wenn beidseitige Kolumnentitel verwendet werden.
+% \begin{macrocode}
+ \TUD@parameter@set[abstract]{#1}%
+ \if@tud@abstract@markboth\def\tud@ps{headings}\fi%
+ \tud@multicols@check%
+ \if@titlepage\tud@ps@select\fi%
+ \tud@fm@check{abstract}{\tud@fm@set{abstract}{\abstractname}{\BODY}}%
+% \end{macrocode}
+% Nach der Umgebung wird bei aktiver \opt{titlepage}-Option der ursprüngliche
+% Seitenstil zurückgesetzt.
+% \begin{macrocode}
+}[%
+ \if@titlepage%
+ \aftergroup\tud@currentpagestyle@reset%
+ \clearpage%
+ \fi%
+]
+% \end{macrocode}
+% \end{environment}^^A abstract
+% \begin{parameter}{language}
+% \begin{parameter}{columns}
+% \begin{parameter}{pagestyle}
+% \changes{v2.02}{2014/07/19}{neu}%^^A
+% \begin{parameter}{markboth}
+% \changes{v2.02}{2014/11/05}{neu}%^^A
+% \begin{parameter}{abstract}
+% \begin{parameter}{option}
+% Als Schlüssel für die \env{abstract}-Umgebung können Sprache, Anzahl der
+% Spalten oder auch die zur Umgebung gehörigen Klassenoptionen angegeben werden.
+% \begin{macrocode}
+\TUD@parameter{abstract}{%
+ \TUD@parameter@define{language}{\selectlanguage{#1}}%
+ \TUD@parameter@define{columns}{\def\tud@multicols{#1}}%
+ \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}%
+ \TUD@parameter@define{markboth}[true]{%
+ \ifstr{#1}{true}{\@tud@abstract@markbothtrue}{%
+ \ifstr{#1}{on}{\@tud@abstract@markbothtrue}{%
+ \ifstr{#1}{yes}{\@tud@abstract@markbothtrue}{%
+ \ifstr{#1}{false}{\@tud@abstract@markbothfalse}{%
+ \ifstr{#1}{no}{\@tud@abstract@markbothfalse}{%
+ \ifstr{#1}{off}{\@tud@abstract@markbothfalse}{%
+ \@tud@abstract@markbothfalse%
+ \manualmark\markboth{#1}{#1}%
+ }}}}}}%
+ }%
+ \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}%
+ \TUD@parameter@define{option}{\TUDoption{abstract}{#1}}%
+% \end{macrocode}
+% Für die Optionsangabe ohne Schlüssel und Wert kann eine Anzahl an Spalten
+% oder eine alternative Sprache angegeben werden. Hierfür ist der Befehl
+% \cs{tud@environmenthandler} definiert, welcher auch von \env{tudpage}-Umgebung
+% verwendet wird
+% \begin{macrocode}
+ \TUD@parameter@sethandler{\tud@environmenthandler{#1}}%
+}
+% \end{macrocode}
+% \end{parameter}^^A option
+% \end{parameter}^^A abstract
+% \end{parameter}^^A markboth
+% \end{parameter}^^A pagestyle
+% \end{parameter}^^A columns
+% \end{parameter}^^A language
+% \begin{macro}{\nextabstract}
+% Um einzelne Abschnitte innerhalb einer Zusammenfassung trennen zu können, ist
+% dieser Befehl notwendig.
+% \begin{macrocode}
+\newcommand*\nextabstract[1][]{%
+ \ifnum\tud@multicols>1\relax%
+ \end{multicols}%
+ \else%
+ \ifbool{@tud@abstract@multi}{%
+ \ifcase\@nameuse{tud@abstract@level}\relax\or%
+ \vspace{\dimexpr\bigskipamount-\parskip\relax}%
+ \fi%
+ }{}%
+ \fi%
+ \tud@fm@next{abstract}{#1}%
+ \ifnum\tud@multicols>1\relax%
+ \begin{multicols}{\tud@multicols}[{\tud@fm@head{abstract}{\abstractname}}]%
+ \else%
+ \tud@fm@head{abstract}{\abstractname}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \nextabstract
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \subsection{Befehle für Selbstständigkeitserklärung und Sperrvermerk}
+%
+% Die Befehle für Selbstständigkeitserklärung und Sperrvermerk werden
+% äquivalent zur \env{abstract}-Umgebung mit den gleichen Optionen
+% ausgestattet.
+% \begin{macro}{\tud@declaration@level}
+% \begin{macro}{\if@tud@declaration@toc}
+% \begin{macro}{\if@tud@declaration@toc@locked}
+% \begin{macro}{\if@tud@declaration@toc@leveldown}
+% \changes{v2.02}{2014/11/05}{}%^^A
+% \begin{macro}{\if@tud@declaration@markboth}
+% \changes{v2.02}{2014/11/05}{neu}%^^A
+% \begin{macro}{\if@tud@declaration@multi}
+% \begin{macro}{\if@tud@declaration@fil}
+% Siehe die Option \opt{abstract}.
+% \begin{macrocode}
+%<*report|article>
+\newcommand*\tud@declaration@level{1}
+\newbool@lock{@tud@declaration@toc}
+%</report|article>
+%<*book>
+\newcommand*\tud@declaration@level{3}
+\newbool@lock[true]{@tud@declaration@toc}
+%</book>
+\newif\if@tud@declaration@toc@leveldown
+\newif\if@tud@declaration@markboth
+\newif\if@tud@declaration@multi
+\@tud@declaration@multitrue
+\newif\if@tud@declaration@fil
+\@tud@declaration@filtrue
+% \end{macrocode}
+% \end{macro}^^A \if@tud@declaration@fil
+% \end{macro}^^A \if@tud@declaration@multi
+% \end{macro}^^A \if@tud@declaration@markboth
+% \end{macro}^^A \if@tud@declaration@toc@leveldown
+% \end{macro}^^A \if@tud@declaration@toc@locked
+% \end{macro}^^A \if@tud@declaration@toc
+% \end{macro}^^A \tud@declaration@level
+% \begin{option}{declaration}
+% Siehe die Option \opt{abstract}.
+% \begin{macrocode}
+%<*report|article>
+\TUD@key{declaration}[true]{%
+%</report|article>
+%<*book>
+\TUD@key{declaration}[chapter]{%
+%</book>
+ \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}%
+ \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+ \def\tud@declaration@level{0}%
+ \stdbool@lock{@tud@declaration@toc}{false}%
+ \or%
+ \def\tud@declaration@level{1}%
+ \stdbool@lock{@tud@declaration@toc}{false}%
+ \or%
+ \def\tud@declaration@level{2}%
+ \stdbool@lock{@tud@declaration@toc}{true}%
+ \or%
+%<*book|report>
+ \def\tud@declaration@level{3}%
+ \stdbool@lock{@tud@declaration@toc}{true}%
+%</book|report>
+ \or%
+ \stdbool@lock{@tud@declaration@toc}{true}%
+ \@tud@declaration@toc@leveldownfalse%
+ \or%
+ \stdbool@lock{@tud@declaration@toc}{true}%
+ \@tud@declaration@toc@leveldowntrue%
+ \or%
+ \stdbool@lock{@tud@declaration@toc}{false}%
+ \or%
+ \@tud@declaration@markbothtrue%
+ \or%
+ \@tud@declaration@markbothfalse%
+ \or%
+ \@tud@declaration@multifalse%
+ \or%
+ \@tud@declaration@multitrue%
+ \or%
+ \@tud@declaration@filfalse%
+ \or%
+ \@tud@declaration@filtrue%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A declaration
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{environment}{declarations}
+% \begin{macro}{\if@tud@declarations}
+% Die \env{declarations}-Umgebung wird ähnlich zur \env{abstract}-Umgebung
+% definiert. Prinzipiell funktioniert diese genauso, inklusive der Parameter.
+% Der Schalter \cs{if@tud@declarations} wird verwendet, um die weiteren Befehle
+% \cs{declaration}, \cs{confirmation} und \cs{blocking} innerhalb und außerhalb
+% dieser Umgebung verwenden zu können.
+% \begin{macrocode}
+\newif\if@tud@declarations
+\NewEnviron{declarations}[1][]{%
+ \ifnumless{\@nameuse{tud@declaration@level}}{3}{}{\@titlepagetrue}%
+ \if@titlepage%
+ \tud@currentpagestyle@set%
+ \clearpage\def\tud@ps{empty}%
+ \fi%
+ \@tud@declarationstrue%
+ \TUD@parameter@set[declaration]{#1}%
+ \if@tud@declaration@markboth\def\tud@ps{headings}\fi%
+ \tud@multicols@check%
+ \if@titlepage\tud@ps@select\fi%
+ \tud@fm@check{declaration}{\BODY}%
+}[%
+ \if@titlepage%
+ \aftergroup\tud@currentpagestyle@reset%
+ \clearpage%
+ \fi%
+]
+% \end{macrocode}
+% \end{macro}^^A \if@tud@declarations
+% \end{environment}^^A declarations
+% \begin{parameter}{language}
+% \begin{parameter}{columns}
+% \changes{v2.02}{2014/07/19}{neu}%^^A
+% \begin{parameter}{pagestyle}
+% \changes{v2.02}{2014/07/19}{neu}%^^A
+% \begin{parameter}{markboth}
+% \changes{v2.02}{2014/11/05}{neu}%^^A
+% \begin{parameter}{supporter}
+% \begin{parameter}{place}
+% \begin{parameter}{closing}
+% \begin{parameter}{company}
+% \begin{parameter}{declaration}
+% \begin{parameter}{option}
+% Dies sind die möglichen Schlüssel für die Befehle \cs{declaration},
+% \cs{confirmation} und \cs{blocking}. Die Schlüssel \opt{declaration} bzw.
+% \opt{option} dienen zum Setzen der Werte, welche auch als Klassenoptionen
+% gesetzt werden können.
+% \begin{macrocode}
+\TUD@parameter{declaration}{%
+ \TUD@parameter@define{language}{\selectlanguage{#1}}%
+ \TUD@parameter@define{columns}{\def\tud@multicols{#1}}%
+ \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}%
+ \TUD@parameter@define{markboth}[true]{%
+ \ifstr{#1}{true}{\@tud@declaration@markbothtrue}{%
+ \ifstr{#1}{on}{\@tud@declaration@markbothtrue}{%
+ \ifstr{#1}{yes}{\@tud@declaration@markbothtrue}{%
+ \ifstr{#1}{false}{\@tud@declaration@markbothfalse}{%
+ \ifstr{#1}{no}{\@tud@declaration@markbothfalse}{%
+ \ifstr{#1}{off}{\@tud@declaration@markbothfalse}{%
+ \@tud@declaration@markbothfalse%
+ \manualmark\markboth{#1}{#1}%
+ }}}}}}%
+ }%
+ \TUD@parameter@define{company}{\def\@company{#1}}%
+ \TUD@parameter@define{supporter}{\def\@supporter{#1}}%
+ \TUD@parameter@define{place}{\def\@place{#1}}%
+ \TUD@parameter@define{closing}{\def\@confirmationclosing{#1}}%
+ \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}%
+ \TUD@parameter@define{option}{\TUDoption{declaration}{#1}}%
+% \end{macrocode}
+% Für die Optionsangabe ohne Schlüssel und Wert kann eine Anzahl an Spalten
+% oder eine alternative Sprache angegeben werden. Hierfür ist der Befehl
+% \cs{tud@environmenthandler} definiert, welcher auch von \env{tudpage}-Umgebung
+% verwendet wird
+% \begin{macrocode}
+ \TUD@parameter@sethandler{\tud@environmenthandler{#1}}%
+}
+% \end{macrocode}
+% \end{parameter}^^A option
+% \end{parameter}^^A declaration
+% \end{parameter}^^A company
+% \end{parameter}^^A closing
+% \end{parameter}^^A place
+% \end{parameter}^^A supporter
+% \end{parameter}^^A markboth
+% \end{parameter}^^A pagestyle
+% \end{parameter}^^A columns
+% \end{parameter}^^A language
+% \begin{macro}{\declaration}
+% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A
+% Dieser Befehl dient zur Ausgabe von sowohl Selbstständigkeitserklärung als
+% auch Sperrvermerk. Über das optionale Argument kann ohne Schlüssel die
+% gewünschte Sprache eingestellt werden. Zusätzlich können Optionen als
+% Schlüssel-Wert-Paare angegeben werden.
+% \begin{macrocode}
+\newcommand*\declaration[1][]{%
+ \ifbool{@tud@declarations}{%
+ \begingroup%
+ \TUD@parameter@set[declaration]{#1}%
+ \tud@fm@confirmation%
+ \tud@fm@blocking
+ \endgroup%
+ }{%
+ \begin{declarations}[#1]%
+ \tud@fm@confirmation%
+ \tud@fm@blocking%
+ \end{declarations}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \declaration
+% \begin{macro}{\confirmation}
+% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A
+% \begin{macro}{\tud@fm@confirmation}
+% \changes{v2.02}{2014/07/18}{neu}%^^A
+% Mit diesem Befehl kann die Selbstständigkeitserklärung ausgegeben werden. Das
+% optionale Argument bestimmt, wer als Unterstützer angegeben wird. Außerdem
+% sind Schlüssel-Wert-Paare als Option nutzbar.
+% \begin{macrocode}
+\newcommand*\confirmation[1][]{%
+% \end{macrocode}
+% Damit das optionale Argument ohne Schlüssel für die Unterstützer verwendet
+% werden kann, wird der Handler umdefiniert.
+% \begin{macrocode}
+ \TUD@parameter@sethandler[declaration]{\def\@supporter{##1}}%
+ \ifbool{@tud@declarations}{%
+ \begingroup%
+ \TUD@parameter@set[declaration]{#1}%
+ \tud@fm@confirmation%
+ \endgroup%
+ }{%
+ \begin{declarations}[#1]%
+ \tud@fm@confirmation%
+ \end{declarations}%
+ }%
+% \end{macrocode}
+% Der Handler wird auf das ursprüngliche Verhalten zurückgesetzt.
+% \begin{macrocode}
+ \TUD@parameter@sethandler[declaration]{\tud@environmenthandler{##1}}%
+}
+% \end{macrocode}
+% Dies ist der eigentliche Inhalt des Befehls \cs{confirmation}.
+% \begin{macrocode}
+\newcommand*\tud@fm@confirmation{%
+ \tud@fm@check{declaration}{%
+ \tud@fm@set{declaration}{\confirmationname}{%
+ \confirmationtext\vskip0pt\@confirmationclosing%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@confirmation
+% \end{macro}^^A \confirmation
+% \begin{macro}{\blocking}
+% \changes{v2.02}{2014/05/16}{neu, \cs{restriction} umbenannt}%^^A
+% \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}%^^A
+% \begin{macro}{\tud@fm@blocking}
+% \changes{v2.02}{2014/07/18}{neu}%^^A
+% Für den Sperrvermerk wird äquivalent zu \cs{confirmation} verfahren. Das
+% optionale Argument ohne Schlüssel setzt hier die Firma für den Sperrvermerk.
+% \begin{macrocode}
+\newcommand*\blocking[1][]{%
+ \TUD@parameter@sethandler[declaration]{\def\@company{##1}}%
+ \ifbool{@tud@declarations}{%
+ \begingroup%
+ \TUD@parameter@set[declaration]{#1}%
+ \tud@fm@blocking%
+ \endgroup%
+ }{%
+ \begin{declarations}[#1]%
+ \tud@fm@blocking%
+ \end{declarations}%
+ }%
+ \TUD@parameter@sethandler[declaration]{\tud@environmenthandler{##1}}%
+}
+% \end{macrocode}
+% Dies ist der eigentliche Inhalt des Befehls \cs{blocking}.
+% \begin{macrocode}
+\newcommand*\tud@fm@blocking{%
+ \tud@fm@check{declaration}{%
+ \tud@fm@set{declaration}{\blockingname}{\blockingtext}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@fm@blocking
+% \end{macro}^^A \blocking
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx
new file mode 100644
index 00000000000..50ea0d764dd
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx
@@ -0,0 +1,1532 @@
+% \CheckSum{1021}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-layout.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-layout.dtx}[%
+ 2014/11/21 v2.02 TUD-KOMA-Script (layout)%
+]
+\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-layout.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/07/08}{Nutzung \cs{FamilyKeyState}}%^^A
+%
+% \section{Das Layout des \CDs}
+%
+% Für das \CD werden sowohl Teile- als auch die Kapitelseiten neu gestaltet.
+% Es werden eine monochrome Version, eine Version mit leichtem Farbeinsatz und
+% eine durchweg farbige Version bereitgestellt. Außerdem wird hier das Aussehen
+% und die Position der Überschriften festgelegt.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*class&option>
+% \fi
+%
+% \subsection{Optionen}
+%
+% \begin{macro}{\tud@head@color}
+% Dieses Makro definiert die Farbe des Kopfes. Diese kann durch die
+% entsprechende Option der \env{tudpage}"=Umgebung geändert werden. Außerdem
+% gibt es für Titel, Teil und Kapitel speziell dazugehörige Farben, so dass
+% das Aussehen des Kopfes ggf. angepasst wird.
+% \begin{macrocode}
+\newcommand*\tud@head@color{black}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@color
+% \begin{option}{cd}
+% \begin{macro}{\tud@cd}
+% \begin{macro}{\tud@layout@cover}
+% \changes{v2.02}{2014/08/08}{neu}^^A
+% \begin{macro}{\tud@layout@title}
+% \begin{macro}{\tud@layout@part}
+% \begin{macro}{\tud@layout@chapter}
+% \begin{macro}{\tud@layout@switch}
+% Ein zentraler Teil der Wrapper-Klassen ist die Auswahl der Darstellung des
+% \CDs. Dabei kann gewählt werden, ob es einfarbig, mit leichtem oder aber mit
+% starkem Farbeinsatz genutzt werden soll. Diese Option dient zur globalen
+% Einstellung für Cover- Titel-, Teil- und Kapitelseiten. Mit dem Schalter
+% werden die gleichen Einstellungen für alle drei Komponenten gesetzt. Die
+% Standardfarbe des Kopfes der \env{tudpage}"=Seite ist schwarz und wird für
+% die farbigen Layouts auf dunkelblau gesetzt. Abhängig von der gewählten
+% Option, die über \cs{tud@layout@switch} festgelegt ist, werden die
+% sogenannten Layoutschlüssel (\cs{tud@layout@\dots}) auf einen Wert gesetzt
+% (0\dots 3), welcher im weiteren Verlauf ausgewertet werden kann. Der Schalter
+% für Kapitel wird lediglich für \cls{tudscrbook}- und \cls{tudscrreprt} jedoch
+% nicht für die \cls{tudscrartcl}-Klasse definiert und genutzt. Eigentlich
+% werden alle Komponenten mit einer zentralen Option festgelegt, können aber
+% auch durch den Nutzer explizit überschrieben werden.
+% \begin{macrocode}
+\newcommand*\tud@cd{0}
+\csdef@lock{tud@layout@cover}{0}
+\csdef@lock{tud@layout@title}{0}
+\csdef@lock{tud@layout@part}{0}
+%<*book|report>
+\csdef@lock{tud@layout@chapter}{0}
+%</book|report>
+% \end{macrocode}
+% Dies sind die Standardoptionen für alle einzelnen Einstellungen des Layouts.
+% Es gibt die Varianten monochrom~(1), leichter~(2) und voller Farbeinsatz~(3)
+% sowie die Möglichkeit, das \CD vollständig zu deaktivieren (0).
+% \begin{macrocode}
+\newcommand*\tud@layout@switch{}
+\edef\tud@layout@switch{%
+ \TUD@numkey@bool,%
+ {simple}{1},{std}{1},{standard}{1},{mono}{1},{monochrom}{1},%
+ {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},%
+ {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},%
+ {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},%
+ {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3},%
+ {color}{3},{colour}{3}%
+}
+% \end{macrocode}
+% Es folgt die eigentliche Option.
+% \begin{macrocode}
+\TUD@key{cd}[true]{%
+ \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \def\tud@head@color{black}%
+ \ifcase \tud@cd\relax%
+ \csstd@lock{tud@layout@cover}{0}%
+ \csstd@lock{tud@layout@title}{0}%
+ \csstd@lock{tud@layout@part}{0}%
+%<*book|report>
+ \csstd@lock{tud@layout@chapter}{0}%
+%</book|report>
+ \or%
+ \csstd@lock{tud@layout@cover}{1}%
+ \csstd@lock{tud@layout@title}{1}%
+ \csstd@lock{tud@layout@part}{1}%
+%<*book|report>
+ \csstd@lock{tud@layout@chapter}{1}%
+%</book|report>
+ \or%
+ \def\tud@head@color{HKS41}%
+% \end{macrocode}
+% Die Umschlagseite wird standardmäßig immer monochrom gesetzt.
+% \begin{macrocode}
+ \csstd@lock{tud@layout@cover}{1}%
+ \csstd@lock{tud@layout@title}{2}%
+ \csstd@lock{tud@layout@part}{2}%
+%<*book|report>
+ \csstd@lock{tud@layout@chapter}{2}%
+%</book|report>
+ \or%
+ \def\tud@head@color{HKS41}%
+ \csstd@lock{tud@layout@cover}{1}%
+ \csstd@lock{tud@layout@title}{3}%
+% \end{macrocode}
+% Ein komplett farbiges Layout ist bloß für Klassen mit Teil- und Kapitelseiten
+% (\cls{tudscrbook} und \cls{tudscrreprt}) möglich. Ansonsten werden lediglich
+% die Überschriften, jedoch nicht der Seitenhintergrund farbig gestaltet.
+% \begin{macrocode}
+%<*article>
+ \csstd@lock{tud@layout@part}{2}%
+%</article>
+%<*book|report>
+ \csstd@lock{tud@layout@part}{3}%
+ \csstd@lock{tud@layout@chapter}{3}%
+%</book|report>
+% \end{macrocode}
+% Die Klassenoptionen \opt{chapterpage} und \opt{widehead} werden für den
+% Fall der komplett farbigen Darstellung standardmäßig aktiviert
+% können allerdings vom Anwender überschrieben werden.
+% \begin{macrocode}
+%<*book|report>
+ \TUD@std@ifkey@lock{chapterpage}{true}%
+ \TUD@std@ifkey@lock{widehead}{true}%
+%</book|report>
+ \fi%
+% \end{macrocode}
+% Die Ausführung des Befehls \cs{tud@layout@process} sorgt dafür, dass alle
+% Optionen auch verarbeitet und wirksam werden. Dieser wird standardmäßig nach
+% der Abarbeitung aller Optionen innerhalb der Präambel einmalig ausgeführt.
+% Deshalb wird er hier nur innerhalb des Dokumentes genutzt. Dies gilt auch für
+% die folgenden Optionen.
+% \begin{macrocode}
+ \if@atdocument%
+ \tud@layout@process%
+ \else%
+% \end{macrocode}
+% Innerhalb der Präambel wird der Satzspiegel abhängig vom gewünschten Layout
+% festgelegt. Dies kann vom Benutzer mit dem Setzen der Option \opt{geometry}
+% überschrieben werden.
+% \begin{macrocode}
+ \ifcase \tud@cd\relax%
+ \TUD@std@numkey@lock{geometry}{false}%
+ \else%
+ \TUD@std@numkey@lock{geometry}{true}%
+ \fi%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@layout@switch
+% \end{macro}^^A \tud@layout@chapter
+% \end{macro}^^A \tud@layout@part
+% \end{macro}^^A \tud@layout@title
+% \end{macro}^^A \tud@layout@cover
+% \end{macro}^^A \if@tud@cd
+% \end{option}^^A cd
+% \begin{option}{cdcover}
+% \changes{v2.02}{2014/08/08}{neue Option für \cs{makecover}}^^A
+% Das durch die Option \opt{cd} insgesamt festgelegte Layout kann für die
+% einzelnen Elemente Umschlagseite (\opt{cdcover}),\dots
+% \begin{macrocode}
+\TUD@key{cdcover}[true]{%
+ \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+ \csset@lock{tud@layout@cover}{0}%
+ \or%
+ \csset@lock{tud@layout@cover}{1}%
+ \or%
+ \csset@lock{tud@layout@cover}{2}%
+ \or%
+ \csset@lock{tud@layout@cover}{3}%
+ \fi%
+ \if@atdocument\tud@layout@process\fi%
+ \fi%
+}
+% \end{option}^^A cdcover
+% \begin{option}{cdtitle}
+% \dots Titel (\opt{cdtitle}),\dots
+% \begin{macrocode}
+\TUD@key{cdtitle}[true]{%
+ \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+ \csset@lock{tud@layout@title}{0}%
+ \or%
+ \csset@lock{tud@layout@title}{1}%
+ \or%
+ \csset@lock{tud@layout@title}{2}%
+ \or%
+ \csset@lock{tud@layout@title}{3}%
+ \fi%
+ \if@atdocument\tud@layout@process\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A cdtitle
+% \begin{option}{cdpart}
+% \dots Teile- (\opt{cdpart}) und\dots
+% \begin{macrocode}
+\TUD@key{cdpart}[true]{%
+ \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+ \csset@lock{tud@layout@part}{0}%
+ \or%
+ \csset@lock{tud@layout@part}{1}%
+ \or%
+ \csset@lock{tud@layout@part}{2}%
+ \or%
+%<*article>
+ \csset@lock{tud@layout@part}{2}%
+%</article>
+%<*book|report>
+ \csset@lock{tud@layout@part}{3}%
+%</book|report>
+ \fi%
+ \if@atdocument\tud@layout@process\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{option}^^A cdpart
+% \begin{option}{cdchapter}
+% \dots bei den entsprechenden Klassen (\cls{tudscrbook} und \cls{tudscrreprt})
+% auch für die Kapitelseiten (\opt{cdchapter}) separat für die einzelnen
+% Elemente geändert bzw. überschrieben werden.
+% \begin{macrocode}
+%<*book|report>
+\TUD@key{cdchapter}[true]{%
+ \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+ \csset@lock{tud@layout@chapter}{0}%
+ \TUD@std@ifkey@lock{chapterpage}{false}%
+ \or%
+ \csset@lock{tud@layout@chapter}{1}%
+ \TUD@std@ifkey@lock{chapterpage}{false}%
+ \or%
+ \csset@lock{tud@layout@chapter}{2}%
+ \TUD@std@ifkey@lock{chapterpage}{false}%
+ \or%
+ \csset@lock{tud@layout@chapter}{3}%
+ \TUD@std@ifkey@lock{chapterpage}{true}%
+ \fi%
+ \if@atdocument\tud@layout@process\fi%
+ \fi%
+}
+%</book|report>
+% \end{macrocode}
+% \end{option}^^A cdchapter
+% \begin{option}{headings}
+% Die \KOMAScript-Option \opt{headings} setzt die Formatierung aller
+% Überschriften zurück. Damit die Einstellungen für das \CD aktiv bleiben,
+% werden nach der Ausführung der Option die mit \cs{tud@font@koma@set}
+% definierten Makros \cs{tud@font@koma@\meta{Element}} erneut an die
+% entsprechenden Schriftelemente angehängt.
+% \begin{macrocode}
+\DefineFamilyMember{KOMA}
+\DefineFamilyKey{KOMA}{headings}{%
+ \AtEndOfFamilyOptions{%
+ \let\tud@font@heading@size\size@part%
+ \tud@layout@process%
+ \ifcase \tud@layout@part\relax\else%
+ \tud@font@koma@reset{part}%
+ \tud@font@koma@reset{partnumber}%
+%<*book|report>
+ \fi%
+ \ifcase \tud@layout@chapter\relax\else%
+ \tud@font@koma@reset{chapter}%
+ \tud@font@koma@reset{chapterprefix}%
+ \let\chapterheadstartvskip\tud@chapterheadstartvskip%
+%</book|report>
+ \tud@font@koma@reset{section}%
+ \tud@font@koma@reset{subsection}%
+ \tud@font@koma@reset{subsubsection}%
+ \tud@font@koma@reset{minisec}%
+ \fi%
+ }%
+}
+% \end{macrocode}
+% \end{option}^^A headings
+%
+% \iffalse
+%<*book|report>
+% \fi
+%
+% Die nun folgenden Optionen und Befehle werden nur für die beiden Klassen
+% \cls{tudscrbook} und \cls{tudscrreprt} definiert.
+% \begin{option}{parttitle}
+% \begin{macro}{\if@tud@parttitle}
+% \begin{macro}{\if@tud@parttitle@locked}
+% Der Schalter dient zur Steuerung, ob der Titel des Dokumentes wie im Handbuch
+% des \CDs auf den Teileseiten stehen soll.
+% \begin{macrocode}
+\newif\if@tud@parttitle
+\TUD@key@lock{parttitle}[true]{%
+ \TUD@set@ifkey@lock{parttitle}{@tud@parttitle}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument\tud@layout@process\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@parttitle@locked
+% \end{macro}^^A \if@tud@parttitle
+% \end{option}^^A parttitle
+% \begin{option}{chapterpage}
+% \begin{macro}{\if@tud@chapterpage}
+% \begin{macro}{\if@tud@chapterpage@locked}
+% Mit dieser Option können Kapitelüberschriften alleine auf einer Seite stehen.
+% Es werden separate Kapitelseiten erzeugt.
+% \begin{macrocode}
+\newif\if@tud@chapterpage
+\TUD@key@lock{chapterpage}[true]{%
+ \TUD@set@ifkey@lock{chapterpage}{@tud@chapterpage}{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@chapterpage@locked
+% \end{macro}^^A \if@tud@chapterpage
+% \end{option}^^A chapterpage
+% \begin{option}{cleardoublespecialpage}
+% \changes{v2.02}{2014/07/08}{Nutzung als globale Klassenoption mit Werten für
+% Seitenstile aus den \KOMAScript{} bzw. \TUDScript-Klassen}%^^A
+% \begin{macro}{\tud@cleardoublepage}
+% \begin{macro}{\tud@cleardoublespecialpage}
+% Für Klassen mit separaten Teileseiten und Kapiteln wird eine zusätzliche
+% Option definiert, welche nur bei zweiseitigem Satz (\opt{twoside}) und
+% zusätzlich immer auf nur der rechten Seite öffnenden Teilen bzw. Kapiteln
+% (\opt{open=right}) zum Tragen kommen.
+%
+% Diese Option steuert, ob die Rückseite von Titel, Teilen und ggf. auch bei
+% separaten Kapitelseiten\footnote{bei aktivierter \opt{chapterpage}"=Option}
+% entweder zwingend als leere Seite oder aber ~-- abhängig von der
+% \KOMAScript-Option \opt{cleardoublepage}~-- als Vakatseite ausgegeben werden.
+% Auch die Festlegung eines bestimmten Seitenstiles ist möglich.
+%
+% Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden
+% Doppelseite.
+% \begin{macrocode}
+\newcommand*\tud@cleardoublepage{\cleardoubleoddpage}
+% \end{macrocode}
+% Mit der Option \opt{cleardoublespecialpage} kann dieser festgelegt werden.
+% \begin{macrocode}
+\TUD@key{cleardoublespecialpage}[true]{%
+ \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}%
+% \end{macrocode}
+% Dabei wird die Rückseite entweder wie alle Vakatseiten oder leer gesetzt.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tempswa%
+ \def\tud@cleardoublepage{\cleardoubleoddpage}%
+ \else%
+ \def\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}%
+ \fi%
+ \else%
+% \end{macrocode}
+% Zusätzlich wird die Seite ggf. auch farbig ausgegeben (s. \opt{color}).
+% \begin{macrocode}
+ \ifstr{#1}{color}{\TUDoptions{clearcolor=true}}{%
+ \ifstr{#1}{colour}{\TUDoptions{clearcolor=true}}{%
+% \end{macrocode}
+% Außerdem kann ein Seitenstil gezielt ausgewählt werden.
+% \begin{macrocode}
+ \ifstr{#1}{current}{%
+ \def\tud@cleardoublepage{\cleardoubleoddstandardpage}%
+ \FamilyKeyStateProcessed%
+ }{%
+ \ifcsdef{ps@#1}{%
+ \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}%
+ \FamilyKeyStateProcessed%
+ }{%
+% \end{macrocode}
+% Beim Laden der Klasse selbst sind die speziellen Seitenstile der \KOMAScript-
+% bzw. \TUDScript-Klassen noch nicht definiert. Diese sollen als Werte jedoch
+% trotzdem erlaubt sein.
+% \begin{macrocode}
+ \ifx\@currname\tudcls@name%
+ \ifx\@currext\@clsextension%
+ \ifstr{#1}{headings}{%
+ \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}%
+ \FamilyKeyStateProcessed%
+ }{%
+ \tud@ifinpslist{#1}{%
+ \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}%
+ \FamilyKeyStateProcessed%
+ }{}%
+ }%
+ \fi%
+ \fi%
+ }%
+ }}}%
+ \fi%
+}
+% \end{macrocode}
+% Der Befehl \cs{tud@cleardoublespecialpage} dient zur eigentlichen Umsetzung.
+% Das obligatorische Argument enthält alles, was innerhalb der Gruppe an
+% lokalen Einstellungen vorgenommen werden soll. Das optionale Argument wird
+% ggf. genutzt, um einen Inhalt auf der Rückseite auszugeben.
+% \begin{macrocode}
+\newcommand*\tud@cleardoublespecialpage[2][]{%
+ \begingroup%
+ #2%
+ \ifboolexpr{bool {@twoside} and bool {@openright}}{%
+ \if@tud@clearcolor%
+ \def\@tempa{%
+ #1%
+ \tud@cleardoublepage%
+ \tud@restorepagecolor%
+ \endgroup%
+ }%
+ \else%
+ \def\@tempa{%
+ \endgroup%
+ \tud@restorepagecolor%
+ #1%
+ \tud@cleardoublepage%
+ }%
+ \fi%
+ }{%
+ \if@tud@clearcolor\tud@clearcolor@wrn\fi%
+ \def\@tempa{%
+ \tud@restorepagecolor%
+ \endgroup%
+ #1%
+ }%
+ }%
+ \@tempa%
+ \@afterindentfalse\@afterheading%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@cleardoublespecialpage
+% \end{macro}^^A \tud@cleardoublepage
+% \end{option}^^A cleardoublespecialpage
+% \begin{option}{clearcolor}
+% \begin{option}{clearcolour}
+% \begin{macro}{\if@tud@clearcolor}
+% Bei starkem Farbeinsatz im Stil des \CDs auf Titel- Teil- oder Kapitelseiten
+% (\opt{cd\dots=color}) wird die entsprechende Rückseite in der gleichen
+% Farbe wie die dazugehörige Vorderseite gestaltet. Für Teile- bzw.
+% Kapitelseiten muss die entsprechende Option aktiviert sein.%
+% \footnote{\opt{cleardoublespecialpage}}
+% \begin{macrocode}
+\newif\if@tud@clearcolor
+\TUD@ifkey{clearcolor}{@tud@clearcolor}
+\TUD@ifkey{clearcolour}{@tud@clearcolor}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@clearcolor
+% \end{option}^^A clearcolour
+% \end{option}^^A clearcolor
+% Damit endet der exklusive Abschnitt für \cls{tudscrbook}- und
+% \cls{tudscrreprt}-Klasse.
+%
+% \iffalse
+%</book|report>
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \subsection{Umsetzung des Layouts}
+%
+% Unter Layout wird die Wahl von Schriftart und "~größe, die Positionierung
+% verschiedener Textelemente sowie die farbliche Gestaltung verstanden. Für das
+% \CD gibt es dabei drei Ausprägungen, die für die verschiedenen Elemente
+% auch unabhängig gewählt werden können.
+% \begin{macro}{\tud@color@partfont}
+% \begin{macro}{\tud@color@partpage}
+% \begin{macro}{\tud@color@parthead}
+% \begin{macro}{\tud@color@chapterfont}
+% \begin{macro}{\tud@color@chapterpage}
+% Die Makros werden für die Hintergrundfarbe der Seiten und die Farbe der
+% Überschriften verwendet.
+% \begin{macrocode}
+\newcommand*\tud@color@partfont{black}
+%<*book|report>
+\newcommand*\tud@color@partpage{white}
+\newcommand*\tud@color@parthead{black}
+\newcommand*\tud@color@chapterfont{black}
+\newcommand*\tud@color@chapterpage{white}
+%</book|report>
+% \end{macrocode}
+% \end{macro}^^A \tud@color@chapterpage
+% \end{macro}^^A \tud@color@chapterfont
+% \end{macro}^^A \tud@color@parthead
+% \end{macro}^^A \tud@color@partpage
+% \end{macro}^^A \tud@color@partfont
+% \begin{KOMAfont}{tud@heading}
+% \changes{v2.02}{2014/08/24}{entfernt}%^^A
+% \begin{KOMAfont}{parttitle}
+% \begin{macro}{\tud@font@heading}
+% \begin{macro}{\tud@font@heading@size}
+% \begin{macro}{\tud@font@heading@numsize}
+% \changes{v2.02}{2014/08/24}{entfernt}%^^A
+% \begin{macro}{\tud@font@part}
+% \changes{v2.02}{2014/08/24}{entfernt}%^^A
+% \begin{macro}{\tud@font@part@number}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \begin{macro}{\tud@font@part@title}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \begin{macro}{\tud@font@chapter}
+% \changes{v2.02}{2014/08/24}{entfernt}%^^A
+% Mit \cs{tud@font@heading} wird die Schriftart für Überschriften definiert.
+% Falls die Schriftarten des \CDs installiert wurden, wird DIN-Bold verwendet,
+% sonst die Standardüberschriften.
+% \begin{macrocode}
+\newcommand*\tud@font@heading{%
+ \if@tud@din\dinbn\tud@raggedright\else\tud@RaggedRight\fi%
+}
+\newcommand*\tud@font@heading@size{\Huge}
+% \end{macrocode}
+% Anschließend wird das Schriftelement für die Option \opt{parttitle} erstellt.
+% \begin{macrocode}
+\newkomafont{parttitle}{%
+ \tud@font@heading%
+ \color{\tud@color@partfont}%
+ \usesizeofkomafont{section}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@chapter
+% \end{macro}^^A \tud@font@part@title
+% \end{macro}^^A \tud@font@part@number
+% \end{macro}^^A \tud@font@part
+% \end{macro}^^A \tud@font@heading@numsize
+% \end{macro}^^A \tud@font@heading@size
+% \end{macro}^^A \tud@font@heading
+% \end{KOMAfont}^^A parttitle
+% \end{KOMAfont}^^A tud@heading
+% \begin{length}{\pageheadingsvskip}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{length}{\headingsvskip}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Mit diesen Längen kann der Anwender die Überschriften von Titel, Teilen und
+% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD
+% eigentlich vorgegeben ist. Die Länge \cs{pageheadingsvskip} verschiebt dabei
+% Überschriften, welche allein auf einer Seite stehen, also Überschriften von
+% Teilen oder auf Kapitelseiten. Auch die vertikale Position des Titels kann
+% damit beeinflusst werden. Mit \cs{headingsvskip} werden Überschriften von
+% Kapiteln oder aber die des Titelkopfes (\opt{titlepage=false}) verschoben,
+% bei denen nach der Überschrift direkt der Fließtext folgt.
+% \begin{macrocode}
+\newlength{\pageheadingsvskip}
+\newlength{\headingsvskip}
+% \end{macrocode}
+% \end{length}^^A \headingsvskip
+% \end{length}^^A \pageheadingsvskip
+% \begin{macro}{\tud@layout@process}
+% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A
+% Dieser Befehl kümmert sich darum, dass die gewählten Optionen für den
+% Seitenstil auch umgesetzt werden. Dabei wird insbesondere darauf Wert gelegt,
+% dass die Optionen auch zur Laufzeit geändert und wiederhergestellt werden
+% können.
+% \begin{macrocode}
+\newcommand*\tud@layout@process{%
+% \end{macrocode}
+% Die Einstellungen für die Umschlagseite. Je nachdem, ob das \CD verwendet
+% wird, wird der Satzspiegel standardmäßig umgestellt oder eben nicht.
+% \begin{macrocode}
+ \ifcase \tud@layout@cover\relax%
+ \stdbool@lock{@tud@cover@cdlayout}{false}%
+ \else%
+ \stdbool@lock{@tud@cover@cdlayout}{true}%
+ \fi%
+% \end{macrocode}
+% Die Einstellungen für den Titel. Vor dessen Umstellung werden die relevanten
+% Originalbefehle mit \cs{tud@cmd@store}\marg{Befehl} gesichert, damit diese
+% später gegebenenfalls mit \cs{tud@cmd@restore}\marg{Befehl} wiederhergestellt
+% werden können.
+% \begin{macrocode}
+ \ifcase \tud@layout@title\relax%
+ \tud@cmd@restore{maketitle}%
+ \tud@cmd@restore{@maketitle}%
+ \tud@cmd@restore{titlepagestyle}%
+ \tud@font@koma@unset{titlehead}%
+ \tud@font@koma@unset{title}%
+ \tud@font@koma@unset{subtitle}%
+ \tud@font@koma@unset{subject}%
+ \tud@font@koma@unset{author}%
+ \tud@font@koma@unset{date}%
+ \tud@font@koma@unset{publishers}%
+ \else%
+ \tud@cmd@store{maketitle}%
+ \tud@cmd@store{@maketitle}%
+ \tud@cmd@store{titlepagestyle}%
+ \tud@font@koma@set{titlehead}{\usekomafont{titlepage}}%
+ \tud@font@koma@set{title}{%
+ \usekomafont{disposition}%
+ \tud@font@heading%
+ \tud@font@heading@size%
+ \color{\tud@color@titlefont}%
+ }%
+ \tud@font@koma@set{subtitle}{%
+ \tud@font@heading%
+ \usesizeofkomafont{section}%
+ \color{\tud@color@titlefont}%
+ }%
+ \tud@font@koma@set{subject}{%
+ \fontfamily{\sfdefault}%
+ \fontseries{\bfdefault}%
+ \selectfont%
+ \color{\tud@color@titlefont}%
+ }%
+ \tud@font@koma@set{author}{\usekomafont{subject}}%
+ \tud@font@koma@set{date}{\usekomafont{titlepage}}%
+ \tud@font@koma@set{publishers}{\usekomafont{author}}%
+ \let\maketitle\tud@maketitle%
+ \renewcommand*\titlepagestyle{plain.tudheadings}%
+ \fi%
+% \end{macrocode}
+% Das gleiche für die Teileseiten.
+% \begin{macrocode}
+ \ifcase \tud@layout@part\relax%
+ \tud@cmd@restore{partheadstartvskip}%
+ \tud@cmd@restore{partheadmidvskip}%
+%<*book|report>
+ \tud@cmd@restore{partheadendvskip}%
+ \tud@cmd@restore{partheademptypage}%
+ \tud@cmd@restore{partpagestyle}%
+%</book|report>
+ \tud@cmd@restore{@part}%
+%<*book|report>
+ \tud@cmd@restore{@spart}%
+%</book|report>
+ \tud@sectioning@reset[addpart]{part}%
+ \tud@font@koma@unset{partnumber}%
+% \end{macrocode}
+% Es werden die Standardbefehle gesichert und für das \CD angepasst.
+% \begin{macrocode}
+ \else%
+ \tud@cmd@store{partheadstartvskip}%
+ \tud@cmd@store{partheadmidvskip}%
+%<*book|report>
+ \tud@cmd@store{partheadendvskip}%
+ \tud@cmd@store{partheademptypage}%
+ \tud@cmd@store{partpagestyle}%
+%</book|report>
+ \tud@cmd@store{@part}%
+%<*book|report>
+ \tud@cmd@store{@spart}%
+%</book|report>
+% \end{macrocode}
+% Es wird die Schriftfarbe, "~größe und "~art angepasst, je nachdem ob der
+% Titel des Dokumentes auf den Teileseiten auftauchen soll oder eben nicht.
+% \begin{macrocode}
+%<*book|report>
+ \if@tud@parttitle%
+ \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}%
+ \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}%
+ \renewcommand*\partheadmidvskip{\enskip}%
+ \else%
+ \tud@sectioning@set[addpart]{part}{%
+ \tud@font@heading%
+ \color{\tud@color@partfont}%
+ }%
+ \tud@font@koma@set{partnumber}{%
+ \tud@font@heading%
+ \color{\tud@color@partfont}%
+ }%
+ \renewcommand*\partheadmidvskip{\par\nobreak\vspace{.5\baselineskip}}%
+ \fi%
+%</book|report>
+% \end{macrocode}
+% Für die Artikel-Klasse gibt es die \opt{parttitle}-Option nicht.
+% \begin{macrocode}
+%<*article>
+ \tud@sectioning@set[addpart]{part}{%
+ \tud@font@heading%
+ \color{\tud@color@partfont}%
+ }%
+ \tud@font@koma@set{partnumber}{%
+ \tud@font@heading%
+ \color{\tud@color@partfont}%
+ }%
+ \renewcommand*\partheadmidvskip{\par\nobreak\vskip.3\baselineskip}%
+%</article>
+% \end{macrocode}
+% Einigen Makros werden mittels \cs{let} Definitionen von anderen Makros
+% zugewiesen, die sich wiederum am Original orientieren. Hintergrund ist, dass
+% die originalen Befehle angepasst werden sollen. Damit dies nicht bei jeder
+% Optionswahl sondern nur einmalig geschehen muss und um möglichst einfach auf
+% die Originaldefinition zurückschalten zu können, wird so verfahren. Die
+% angepassten Befehle selbst und die dazugehörige Beschreibung sind etwas
+% weiter unten im Quelltext zu finden.
+% \begin{macrocode}
+ \let\partheadstartvskip\tud@partheadstartvskip%
+%<*book|report>
+ \let\partheadendvskip\tud@partheadendvskip%
+ \renewcommand*\partheademptypage{}%
+ \renewcommand*\partpagestyle{plain.tudheadings}%
+%</book|report>
+ \let\@part\tud@@part%
+%<*book|report>
+ \let\@spart\tud@@spart%
+%</book|report>
+ \fi%
+% \end{macrocode}
+% Die Einstellungen für die Kapitel bzw. die folgenden Gliederungsebenen. Auch
+% hier werden alle relevanten Befehle gesichert, damit diese wiederhergestellt
+% werden können. Verständlicherweise fällt für die \cls{tudscrartcl}-Klasse
+% der Anteil für die Kapitel weg. Das Verhalten der nachgelagerten
+% Gliederungsebenen orientiert für diese Klasse an den Einstellungen für die
+% Teileseiten.
+% \begin{macrocode}
+%<*article>
+ \ifcase \tud@layout@part\relax%
+%</article>
+%<*book|report>
+ \ifcase \tud@layout@chapter\relax%
+ \tud@cmd@restore{chapterheadstartvskip}%
+ \tud@cmd@restore{chapterformat}%
+ \tud@cmd@restore{@chapter}%
+ \tud@cmd@restore{@schapter}%
+ \tud@cmd@restore{@@makechapterhead}%
+ \tud@sectioning@reset[addchap]{chapter}%
+ \tud@font@koma@unset{chapterprefix}%
+%</book|report>
+ \tud@sectioning@reset[addsec]{section}%
+ \tud@sectioning@reset{subsection}%
+ \tud@sectioning@reset{subsubsection}%
+ \tud@sectioning@reset{minisec}%
+% \end{macrocode}
+% Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der
+% Optionen gesichert und anschließend geändert.
+% \begin{macrocode}
+ \else%
+%<*book|report>
+ \tud@cmd@store{chapterheadstartvskip}%
+ \tud@cmd@store{chapterformat}%
+ \tud@cmd@store{@chapter}%
+ \tud@cmd@store{@schapter}%
+ \tud@cmd@store{@@makechapterhead}%
+ \tud@sectioning@set[addchap]{chapter}{%
+ \tud@font@heading%
+ \tud@font@heading@size%
+ \color{\tud@color@chapterfont}%
+ }%
+ \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}%
+%</book|report>
+ \tud@sectioning@set[addsec]{section}{\tud@font@heading}%
+ \tud@sectioning@set{subsection}{\tud@font@heading}%
+ \tud@sectioning@set{subsubsection}{\tud@font@heading}%
+ \tud@sectioning@set{minisec}{\tud@font@heading}%
+% \end{macrocode}
+% Und wieder erfolgt die Zuweisung der angepassten Befehle über \cs{let}.
+% \begin{macrocode}
+%<*book|report>
+ \let\chapterheadstartvskip\tud@chapterheadstartvskip%
+ \let\@@makechapterhead\tud@@@makechapterhead%
+%</book|report>
+ \fi%
+}
+% \end{macrocode}
+% Die beteiligten Optionen führen den Befehl nur nach der Präambel aus. Um die
+% Grundeinstellungen zu Beginn des Dokumentes umzusetzen, werden die Befehle
+% am Ende der Präambel einmalig ausgeführt.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \let\tud@font@heading@size\size@part%
+ \tud@layout@process%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@layout@process
+% \begin{macro}{\tud@partheadstartvskip}
+% \changes{v2.02}{2014/11/05}{Nutzung der Option \opt{parttitle} verbessert}%^^A
+% Dieses Makro ersetzt den Standardbefehl \cs{partheadstartvskip} für die
+% CD-Teilseiten. Damit lassen sich insbesondere die Farbanpassungen für alle
+% Klassen sowie die Option \opt{parttitle} für \cls{tudscrreprt}- und
+% \cls{tudscrbook}-Klasse einfach realisieren und gleichzeitig das
+% Zurückschalten auf das Standardverhalten gewährleisten.
+%
+% Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand
+% beibehalten und lediglich die Farbanpassung hinzugefügt.
+% \begin{macrocode}
+%<*article>
+\newcommand*\tud@partheadstartvskip{}
+\let\tud@partheadstartvskip\partheadstartvskip%
+\pretocmd{\tud@partheadstartvskip}{%
+ \def\tud@color@partfont{black}%
+ \ifcase \tud@layout@part\relax\or\or%
+ \def\tud@color@partfont{HKS41}%
+ \fi%
+}{}{\tud@patch@wrn{tud@partheadstartvskip}}
+%</article>
+% \end{macrocode}
+% Für \cls{tudscrreprt}- und \cls{tudscrbook}-Klasse werden die Farben gesetzt
+% und die vertikalen Abstände neu definiert.
+% \begin{macrocode}
+%<*book|report>
+\newcommand*\tud@partheadstartvskip{%
+ \def\tud@color@partfont{black}%
+ \def\tud@color@partpage{white}%
+ \def\tud@color@parthead{black}%
+ \ifcase \tud@layout@part\relax\or\or%
+ \def\tud@color@partfont{HKS41}%
+ \def\tud@color@partpage{white}%
+ \def\tud@color@parthead{HKS41}%
+ \or%
+ \def\tud@color@partpage{HKS41}%
+ \def\tud@color@partfont{HKS41!30}%
+ \def\tud@color@parthead{white}%
+ \fi%
+ \begingroup%
+ \vspace*{\dimexpr%
+ \tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip+\parskip\relax%
+ }%
+ \vspace*{\pageheadingsvskip}%
+ \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative%
+% \end{macrocode}
+% Sollte die \opt{parttitle}-Option aktiviert sein, so wird der Titel des
+% Dokumentes statt des Teiletitels mit \cs{tud@parttitle} auf die Seite
+% gesetzt.
+% \begin{macrocode}
+ \if@tud@parttitle%
+ \begingroup%
+ \tud@font@heading%
+ \tud@font@heading@size%
+ \color{\tud@color@partfont}%
+ \ifx\@@title\@empty%
+ \tud@makeuppercase{\strut}%
+ \else%
+ \tud@makeuppercase{\@@title}%
+ \fi%
+ \par\nobreak\vskip .775\baselineskip%
+ \endgroup%
+ \else%
+ \usekomafont{partnumber}%
+ \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-.5\baselineskip\relax}%
+ \fi%
+ \endgroup%
+}
+%</book|report>
+% \end{macrocode}
+% \end{macro}^^A \tud@partheadstartvskip
+%
+% \iffalse
+%<*book|report>
+% \fi
+%
+% \begin{macro}{\tud@partheadendvskip}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Hiermit wird die Seitenfarbe gesetzt sowie die Schrift für Kopf und
+% Seitenzahl verändert. Die Änderungen sollen dabei lokal bleiben, wofür das
+% obligatorische Argument des Befehls \cs{tud@cleardoublespecialpage} verwendet
+% wird. Damit wird abhängig von den Einstellungen für die beiden Optionen
+% \opt{cleardoublespecialpage} und \opt{clearcolor} die Rückseite farbig
+% gesetzt.
+% \begin{macrocode}
+\newcommand*\tud@partheadendvskip{%
+ \tud@cleardoublespecialpage{%
+ \tud@pagecolor{\tud@color@partpage}%
+ \def\tud@head@color{\tud@color@parthead}%
+ \addtokomafont{pagenumber}{\sffamily\color{\tud@color@partfont}}%
+ \clearpage%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@partheadendvskip
+% \begin{macro}{\tud@parttitle}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \end{macro}^^A \tud@parttitle
+%
+% \iffalse
+%</book|report>
+% \fi
+%
+% \begin{macro}{\tud@@part}
+% Damit auch das Präfix der Teile in Majuskeln erscheint, wird dem Befehl
+% \cs{partformat}, welcher das Präfix enthält, für die \cls{tudscrartcl}-Klasse
+% der entsprechende Befehl vorangestellt.
+% \begin{macrocode}
+%<*article>
+\let\tud@@part\@part
+\patchcmd{\tud@@part}%
+ {\size@partnumber{\partformat}}%
+ {\size@partnumber{\tud@makeuppercase\partformat}}%
+ {}{\tud@patch@wrn{@part}}%
+%</article>
+% \end{macrocode}
+% Für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse ist etwas mehr Arbeit
+% nötig. Für separate Teileseiten muss dafür Sorge getragen werden, dass die
+% Überschrift unabhängig von der Tiefe der Nummerierung immer an der gleichen
+% Position steht.
+% \begin{macrocode}
+%<*book|report>
+\let\tud@@part\@part
+\patchcmd{\tud@@part}{%
+ \ifnumbered{part}{%
+ \size@partnumber{\partformat}%
+ \partheadmidvskip%
+ }{}%
+}{%
+ \ifnumbered{part}{%
+ \size@partnumber{\tud@makeuppercase\partformat}%
+ }{%
+ \size@partnumber{\strut}%
+ }%
+ \unskip\partheadmidvskip%
+}{}{\tud@patch@wrn{@part}}%
+%</book|report>
+% \end{macrocode}
+% \end{macro}^^A \tud@@part
+%
+% \iffalse
+%<*book|report>
+% \fi
+%
+% \begin{macro}{\tud@@spart}
+% Bei den Teile-Befehlen ohne Gliederungsnummerierung muss zusätzlich der
+% Freiraum vorgehalten werden, damit alle Überschriften auf der gleichen
+% vertikalen Position liegen.
+% \begin{macrocode}
+\let\tud@@spart\@spart
+\patchcmd{\tud@@spart}{%
+ \normalfont
+ \sectfont\nobreak\size@part
+}{%
+ \normalfont\sectfont\nobreak%
+ \size@partnumber{\strut}%
+ \partheadmidvskip\unskip%
+ \size@part%
+}{}{\tud@patch@wrn{@spart}}
+% \end{macrocode}
+% \end{macro}^^A \tud@@spart
+% \begin{macro}{\tud@partpreamble}
+% Um die \KOMAScript-Befehle für die Teilepräambel auch für das farbige Layout
+% nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln wird
+% die Überschrift einer Zusammenfassung ausschließlich zentriert und relativ
+% klein gesetzt. Außerdem wird für eine mögliche Zusammenfassung die
+% \opt{titlepage}-Option deaktiviert. Aufgerufen wird der Befehl durch die
+% gepatchte Version von \cs{set@@@@preamble}.
+% \begin{macrocode}
+\newcommand*\tud@partpreamble{%
+ \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi%
+ \KOMAoptions{titlepage=false}%
+ \addtokomafont{disposition}{\color{\tud@color@partfont}}%
+ \addtokomafont{dictumtext}{\color{\tud@color@partfont}}%
+ \color{\tud@color@partfont}%
+% \end{macrocode}
+% Hiermit wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln
+% ausgeglichen.
+% \begin{macrocode}
+ \vskip\dimexpr\topskip+.9\baselineskip\relax%
+ \@afterindentfalse\@afterheading%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@partpreamble
+% \begin{macro}{\tud@chapterheadstartvskip}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \cs{chapterheadstartvskip} wird für die Position der Kapitelüberschriften im
+% \CD angepasst. Mit der Länge \cs{headingsvskip} kann diese Position vertikal
+% durch den Benutzer verschoben werden. Außerdem werden die benötigten Farben
+% für die jeweilig gewählte Option ausgewählt.
+% \begin{macrocode}
+\newcommand*\tud@chapterheadstartvskip{%
+ \def\tud@color@chapterpage{white}%
+ \def\tud@color@chapterfont{black}%
+ \ifcase \tud@layout@chapter\relax\or\or%
+ \def\tud@color@chapterpage{white}%
+ \def\tud@color@chapterfont{HKS41}%
+ \or%
+ \def\tud@color@chapterpage{HKS41!10}%
+ \def\tud@color@chapterfont{HKS41}%
+ \fi%
+ \vspace*{%
+ \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip\relax%
+ }%
+ \if@tud@chapterpage%
+ \vspace*{\pageheadingsvskip}%
+ \else%
+ \vspace*{\headingsvskip}%
+ \fi%
+}%
+% \end{macrocode}
+% \end{macro}^^A \tud@chapterheadstartvskip
+% \begin{macro}{\tud@@@makechapterhead}
+% Damit das Präfix des Kapitels bei der gegebenenfalls aktivierten Option
+% \opt{chapterprefix} in Majuskeln erscheint, wird dem Befehl
+% \cs{chapterformat}, welcher das Präfix enthält, der entsprechende Befehl
+% vorangestellt. Außerdem muss die Überschrift bei aktivierter
+% \opt{chapterprefix}-Option um die Höhe des Präfixes nach oben verschoben
+% werden, damit die Überschrift selbst auf der richtigen Höhe liegt.
+% \begin{macrocode}
+\newcommand*\tud@@@makechapterhead{}
+\let\tud@@@makechapterhead\@@makechapterhead
+\patchcmd{\tud@@@makechapterhead}{\chapterheadstartvskip}{%
+ \chapterheadstartvskip%
+ \if@chapterprefix%
+ \begingroup%
+ \usekomafont{chapterprefix}%
+ \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-.5\baselineskip\relax}%
+ \endgroup%
+ \fi%
+}{}{\tud@patch@wrn{@@makechapterhead}}
+\patchcmd{\tud@@@makechapterhead}{\chapterformat}{%
+ \tud@makeuppercase{\chapterformat}%
+}{}{\tud@patch@wrn{@@makechapterhead}}
+% \end{macrocode}
+% Weiterhin müssen alle vertikalen Abstände gelöscht werden, damit die
+% Überschriften für alle Einstellungen der \opt{parskip}-Option immer auf
+% exakt der selben Höhe liegen und auch die Abstände zwischen den ggf.
+% genutzten Präfixen identisch sind.
+% \begin{macrocode}
+\patchcmd{\tud@@@makechapterhead}{\size@chapter{#1}}{%
+ \setlength{\parskip}{\z@}%
+ \size@chapter{#1}%
+}{}{\tud@patch@wrn{@@makechapterhead}}
+% \end{macrocode}
+% \end{macro}^^A \tud@@@makechapterhead
+% \begin{macro}{\tud@chapterpreamble}
+% Um die \KOMAScript-Befehle für die Kapitelpräambel auch für das farbige Layout
+% nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln der
+% Kapitel gilt das gleiche wie für die der Teileseiten. Auch hier erfolgt die
+% Ausführung des Befehls durch die gepatchte Version von \cs{set@@@@preamble}.
+% \begin{macrocode}
+\newcommand*\tud@chapterpreamble{%
+ \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi%
+ \KOMAoptions{titlepage=false}%
+% \end{macrocode}
+% Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig.
+% \begin{macrocode}
+ \if@tud@chapterpage%
+ \if@tud@cdfonts%
+ \if@tud@heavyfont%
+ \TUDoptions{cdfont=heavy}%
+ \else%
+ \TUDoptions{cdfont=true}%
+ \fi%
+ \fi%
+ \addtokomafont{disposition}{\color{\tud@color@chapterfont}}%
+ \addtokomafont{dictumtext}{\color{\tud@color@chapterfont}}%
+ \color{\tud@color@chapterfont}%
+ \fi%
+ \@afterindentfalse\@afterheading%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@chapterpreamble
+% Die beiden Befehle für Präambeln aus \KOMAScript{} ignorieren in ihrer
+% ursprünglichen Form die Einstellungen für \opt{parskip}. Dies wird mit diesem
+% Patch beseitigt. Außerdem werden das Makro für die Layouteinstellungen für
+% Teile bzw. Kapitel (\cs{tud@\dots preamble}) aufgerufen. Für die Verwendung
+% der \env{abstract}-Umgebung in den Präambeln wird außerdem der Befehl
+% \cs{phantomsection} auf \cs{relax} gesetzt, um mit \cs{autoref} automatisch
+% generierte Querverweise aus dem Paket \pkg{hyperref} nicht zu verändern.
+% \begin{macrocode}
+\patchcmd{\set@@@@preamble}{%
+ \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
+}{%
+ \def\@tempa####1@####2{\@nameuse{tud@####1preamble}}%
+ \hbox to\hsize{%
+ \let\@parboxrestore\relax%
+ \let\phantomsection\relax%
+ #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par%
+ }%
+}{}{\tud@patch@wrn{set@@@@preamble}}
+% \end{macrocode}
+% \begin{macro}{\tud@chapter@pre}
+% \begin{macro}{\tud@chapter@app}
+% Diese beiden Makros dienen zur Behandlung der Besonderheiten von spearaten
+% Kapitelseiten (Option~\opt{chapterpage}). Eingefügt werden sie für die
+% die Gliederungsbefehle der Kapitel innerhalb von \cs{tud@sectioning@case}.
+% \begin{macrocode}
+\newcommand*\tud@chapter@pre{%
+ \if@tud@chapterpage%
+% Für den zweispaltigen Satz und aktivierter \opt{chapterpage}-Option muss
+% für die Kapitelseiten temporär auf einseitigen Satz umgestellt werden, damit
+% alle Befehle und Einstellungen beim Erzeugen des jeweiligen Kapitels zum
+% Tragen kommen. Soll der Fehler behoben werden, dass bei Kapitelüberschriften
+% im zweispaltigen Satz der Abstand zwischen Überschrift und Textkörper nicht
+% stimmt, sei außerdem das Paket \pkg{twocolfix} empfohlen.
+% \begin{macrocode}
+ \@restonecolfalse%
+ \if@twocolumn\@restonecoltrue\onecolumn\fi%
+ \fi%
+}
+\newcommand*\tud@chapter@app{%
+ \if@tud@chapterpage%
+% \end{macrocode}
+% Nach dem Setzen der Kapitelüberschrift selbst werden die Farbe für den
+% Hintergrund, die Seitenzahl und den ggf. verwendeten TUD-Kopf angewendet.
+% Danach wird die Seite beendet. Sollte zweiseitiger Satz, immer rechts
+% öffnende Kapitel und die Option \opt{chapterpage} gewählt sein, so wird für
+% ein konsistentes Layout für Überschriften auf Einzelseiten die Rückseite
+% abhängig von der Option \opt{clearcolor} gegebenenfalls farbig gesetzt und
+% die Option \opt{cleardoublespecialpage} bezüglich des Seitenstils der
+% Rückseite beachtet. Umgesetzt wird dies mit \cs{tud@cleardoublespecialpage}.
+% \begin{macrocode}
+ \tud@cleardoublespecialpage{%
+ \tud@pagecolor{\tud@color@chapterpage}%
+ \def\tud@head@color{\tud@color@chapterfont}%
+ \addtokomafont{pagenumber}{\sffamily\color{\tud@color@chapterfont}}%
+ \clearpage%
+ }%
+% \end{macrocode}
+% Außerdem wird für den Zweispaltensatz auf normales Verhalten zurückgestellt.
+% \begin{macrocode}
+ \if@restonecol\twocolumn\fi%
+% \end{macrocode}
+% Sollten keine reinen Kapitelseiten verwendet werden, muss gegebenenfalls im
+% Fuß genügend Freiraum für das \DDC-Logo gelassen werden.
+% \begin{macrocode}
+ \else%
+ \tud@ifinpslist{\chapterpagestyle}{\tud@ddc@enlargepage}{}%
+ \fi%
+% \end{macrocode}
+% Unabhängig von der Option \opt{chapterpage} wird deim zweispaltigen Layout
+% der Einzug des ersten Absatzes verhindert.
+% \begin{macrocode}
+ \if@twocolumn%
+ \@afterindentfalse\@afterheading%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@chapter@pre
+% \end{macro}^^A \tud@chapter@app
+% \begin{macro}{\tud@clearcolor@wrn}
+% Warnung für den Fall, dass die Option \opt{clearcolor} ohne \opt{open=right}
+% und \opt{twoside} verwendet wird.
+% \begin{macrocode}
+\newcommand*\tud@clearcolor@wrn{%
+ \ClassWarning{\tudcls@name}{%
+ Option `clearcolor' is only available together with\MessageBreak%
+ options `twoside' and `open=right'%
+ }%
+ \global\let\tud@clearcolor@wrn\relax%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@clearcolor@wrn
+% Damit ist das Intermezzo für die beiden Klassen \cls{tudscrbook} und
+% \cls{tudscrreprt} beendet.
+%
+% \iffalse
+%</book|report>
+% \fi
+%
+% \begin{macro}{\SecDef}
+% \begin{macro}{\scr@section@dblarg}
+% \begin{macro}{\scr@section@xdblarg}
+% Diese Befehle werden ab der \KOMAScript-Version~v3.13a eingeführt. Damit
+% werden obligatorische Argumente der Gliederungsebenen besser auf das
+% optionale Argument dupliziert, falls dieses nicht angegeben wurde. Damit das
+% auch mit der Version~v3.12 funktioniert, werden die entsprechenden Befehle
+% hier bereitgehalten.
+% \begin{macrocode}
+\providecommand*\SecDef[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}}
+\providecommand\scr@section@dblarg[1]{%
+ \kernel@ifnextchar[%]
+ {#1}%
+ {\scr@section@xdblarg{#1}}%
+}
+\providecommand\scr@section@xdblarg[2]{%
+ \begingroup
+ \edef\reserved@a{%
+ \unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}%
+ {\scr@osectarg}}%
+ \reserved@a
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@section@xdblarg
+% \end{macro}^^A \scr@section@dblarg
+% \end{macro}^^A \SecDef
+% \begin{macro}{\tud@part}
+% \begin{macro}{\tud@spart}
+% \begin{macro}{\tud@addpart}
+% \begin{macro}{\tud@saddpart}
+% \begin{macro}{\tud@chapter}
+% \begin{macro}{\tud@schapter}
+% \begin{macro}{\tud@addchap}
+% \begin{macro}{\tud@saddchap}
+% \begin{macro}{\tud@section}
+% \begin{macro}{\tud@ssection}
+% \begin{macro}{\tud@subsection}
+% \begin{macro}{\tud@ssubsection}
+% \begin{macro}{\tud@subsubsection}
+% \begin{macro}{\tud@ssubsubsection}
+% \begin{macro}{\tud@npart}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@opart}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@naddpart}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@oaddpart}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@nchapter}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@ochapter}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@naddchap}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@oaddchap}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@nsection}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@osection}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@nsubsection}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@osubsection}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@nsubsubsection}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% \begin{macro}{\tud@osubsubsection}
+% \changes{v2.02}{2014/09/12}{entfernt}%^^A
+% Das \CD verlangt, dass sämtliche Auszeichnungen, die in DIN~Bold gesetzt
+% werden, groß zu schreiben sind. Für die Klassen bedeutet dies, dass alle
+% Überschriften automatisch in Majuskeln und in der gewünschten Schriftart
+% erscheinen müssen. Dies erfordert eine Anpassung der Gliederungsbefehle, ohne
+% deren normales Verhalten zu beeinflussen.
+%
+% Dazu werden die benötigten Hilfsmakros initialisiert. Die Gliederungsbefehle
+% selbst werden innerhalb des Befehles \cs{tud@sectioning@set} durch
+% \cs{tud@cmd@store} gesichert und anschließend mit \cs{tud@sectioning@case}
+% neu definiert. Dabei wird mit \cs{SecDef} unterschieden, ob die Sternversion
+% des Gliederungsbefehls durch den Anwender verwendet wird und ggf. das
+% Hilfsmakro \cs{tud@s\meta{Gliederungsbefehl}} aufgerufen. Andernfalls wird
+% \cs{tud@\meta{Gliederungsbefehl}} verwendet.
+%
+% Alle für die \TUDScript-Klassen angepassten Gliederungsbefehle von \cs{part}
+% bis \cs{subsubsection} werden seit Version~v2.02 ausnahmslos mit \cs{SecDef}
+% erzeugt. Damit wurden die in vorherigen Versionen benötigten Hilfsmakros
+% \cs{tud@n\meta{Gliederungsbefehl}} und \cs{tud@o\meta{Gliederungsbefehl}}
+% überflüssig unt deshalb entfernt.
+% \begin{macrocode}
+\newcommand*\tud@part{}
+\newcommand*\tud@spart{}
+\newcommand*\tud@addpart{}
+\newcommand*\tud@saddpart{}
+%<*book|report>
+\newcommand*\tud@chapter{}
+\newcommand*\tud@schapter{}
+\newcommand*\tud@addchap{}
+\newcommand*\tud@saddchap{}
+%</book|report>
+\newcommand*\tud@section{}
+\newcommand*\tud@ssection{}
+\newcommand*\tud@subsection{}
+\newcommand*\tud@ssubsection{}
+\newcommand*\tud@subsubsection{}
+\newcommand*\tud@ssubsubsection{}
+% \end{macrocode}
+% \end{macro}^^A \tud@osubsubsection
+% \end{macro}^^A \tud@nsubsubsection
+% \end{macro}^^A \tud@osubsection
+% \end{macro}^^A \tud@nsubsection
+% \end{macro}^^A \tud@osection
+% \end{macro}^^A \tud@nsection
+% \end{macro}^^A \tud@oaddchap
+% \end{macro}^^A \tud@naddchap
+% \end{macro}^^A \tud@ochapter
+% \end{macro}^^A \tud@nchapter
+% \end{macro}^^A \tud@oaddpart
+% \end{macro}^^A \tud@naddpart
+% \end{macro}^^A \tud@opart
+% \end{macro}^^A \tud@npart
+% \end{macro}^^A \tud@ssubsubsection
+% \end{macro}^^A \tud@subsubsection
+% \end{macro}^^A \tud@ssubsection
+% \end{macro}^^A \tud@subsection
+% \end{macro}^^A \tud@ssection
+% \end{macro}^^A \tud@section
+% \end{macro}^^A \tud@saddchap
+% \end{macro}^^A \tud@addchap
+% \end{macro}^^A \tud@schapter
+% \end{macro}^^A \tud@chapter
+% \end{macro}^^A \tud@saddpart
+% \end{macro}^^A \tud@addpart
+% \end{macro}^^A \tud@spart
+% \end{macro}^^A \tud@part
+% \begin{macro}{\tud@sectioning@set}
+% \changes{v2.02}{2014/08/16}{Bug mit Majuskeln bei \cs{addsec} behoben}%^^A
+% \begin{macro}{\tud@sectioning@case}
+% \changes{v2.02}{2014/09/12}{Reimplementierung mit \cs{SecDef}}%^^A
+% \begin{macro}{\tud@sectioning@reset}
+% \begin{macro}{\tud@sectioning@uppercase}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% \begin{macro}{\tud@font@koma@set}
+% \begin{macro}{\tud@font@koma@reset}
+% \changes{v2.02}{2014/08/24}{neu}%^^A
+% \begin{macro}{\tud@font@koma@unset}
+% Das Makro \cs{tud@sectioning@set} sichert und überschreibt die gegebenen
+% Befehle der einzelnen Gliederungsebenen und fügt diesen die zusätzlich
+% angegebene Schriftdefinition mit dem Makro \cs{tud@font@koma@set} zu. Das
+% optionale Argument ermöglicht die Anpassung des gegebenen Gliederungsbefehls
+% ohne zusätzliche Definition der Schrift. Dies ist für die von \KOMAScript{}
+% obendrein bereitgestellten Gliederungsbefehle (\cs{add\dots}) notwendig.
+% \begin{macrocode}
+\newcommand*\tud@sectioning@set[3][]{%
+ \tud@cmd@store{#2}%
+% \end{macrocode}
+% Für die Überschriften, welche mit \cs{minisec} gesetzt werden, genügt jedoch
+% ein vereinfachtes Vorgehen.
+% \begin{macrocode}
+ \ifstr{#2}{minisec}{%
+ \renewcommand\minisec[1]{\@@tud@minisec{\tud@makeuppercase{##1}}}%
+% \end{macrocode}
+% Hier erfolgt die Anpassung und Formatierung aller anderen Gliederungsbefehle.
+% \begin{macrocode}
+ }{%
+ \tud@sectioning@case{#2}%
+ \ifstrempty{#1}{}{%
+ \tud@cmd@store{#1}%
+ \tud@sectioning@case{#1}%
+ }%
+ }%
+ \tud@font@koma@set{#2}{#3}%
+}
+% \end{macrocode}
+% Da die Großschreibung der Überschriften nur beim Setzen der Überschrift
+% selbst, nicht aber beispielsweise im Inhaltsverzeichnis oder aber in der
+% Kopfzeile unerwünscht erfolgen soll, werden die Gliederungsbefehle angepasst.
+% Dabei müssen alle Varianten, also auch die mit Stern und optionalen Argument
+% beachtet werden.
+% \begin{macrocode}
+\newcommand*\tud@sectioning@case[1]{%
+% \end{macrocode}
+% Als erstes wird unterschieden, ob die normale oder aber die nicht-nummerierte
+% sprich die Sternversion gefordert ist. Dies passiert mit \cs{SecDef}. Für die
+% Teileebene werden beispielsweise entweder \cs{tud@part} oder \cs{tud@spart}
+% aufgerufen. Dabei wird durch \cs{SecDef} für \cs{tud@part} das obligatorische
+% in das optionale Argument kopiert, falls keines angegeben wurde.
+% \begin{macrocode}
+ \csedef{#1}{%
+ \noexpand\SecDef%
+ \expandafter\expandafter\expandafter\noexpand%
+ \expandafter\csname tud@#1\endcsname%
+ \expandafter\expandafter\expandafter\noexpand%
+ \expandafter\csname tud@s#1\endcsname%
+ }%
+% \end{macrocode}
+% Da für die normale Version das optionale Argument ggf. durch \cs{SecDef}
+% automatisch erzeugt wird, ist nur die Definition eines Befehls mit optionalen
+% Argument notwendig. Dabei wird der in \cs{@@tud@\meta{Gliederungsbefehl}}
+% gesicherte Originalbefehl mit dem gewünschten Eintrag als optionales Argument
+% aufgerufen und nur das obligatorische Argument mit \cs{tud@makeuppercase}
+% behandelt.
+% \begin{macrocode}
+ \csedef{tud@#1}[##1]##2{%
+ \expandafter\expandafter\expandafter\noexpand%
+ \expandafter\csname @@tud@#1\endcsname%
+ [{##1}]{\noexpand\tud@sectioning@uppercase{##2}}%
+ }%
+% \end{macrocode}
+% Für die Version mit Stern gibt es kein optionales Argument. Dementsprechend
+% wird hier lediglich das obligatorische Argument in Großbuchstaben gesetzt.
+% \begin{macrocode}
+ \csedef{tud@s#1}##1{%
+ \expandafter\expandafter\expandafter\noexpand%
+ \expandafter\csname @@tud@#1\endcsname*%
+ {\noexpand\tud@sectioning@uppercase{##1}}%
+ }%
+% \end{macrocode}
+% Aus nicht ganz nachvollziehbaren Gründen gibt es bei Überschriften, die mit
+% \cs{addsec} gesetzt werden, ein Problem, wenn innerhalb dieser der Befehl
+% \cs{NoCaseChange} verwendet wird. Dieser bleibt hier wirkungslos. Es liegt
+% sehr wahrscheinlich daran, dass diese Befehle intern \cs{section*} verwenden.
+% Deshalb werden für \cs{addsec} die Befehle leicht abgewandelt definiert.
+% \begin{macrocode}
+ \ifstr{#1}{addsec}{%
+ \def\tud@addsec[##1]##2{%
+ \@@tud@addsec[{##1}]{\tud@sectioning@uppercase##2}%
+ }%
+ \def\tud@saddsec##1{%
+ \@@tud@addsec*{\tud@sectioning@uppercase##1}%
+ }%
+ }{}%
+% \end{macrocode}
+% Die Änderungen durch \cs{tud@chapter@pre} und \cs{tud@chapter@app} sollen bei
+% der Erzeugung eines Kapitels greifen. Damit die originalen Befehle nicht
+% beeinflusst werden, erfolgt die Manipulation der bereits adaptierten Befehle
+% für Kapitel.
+% \begin{macrocode}
+%<*book|report>
+ \@tempswafalse%
+ \ifstr{#1}{chapter}{\@tempswatrue}{}%
+ \ifstr{#1}{addchap}{\@tempswatrue}{}%
+ \if@tempswa%
+ \def\@tempa{,s}%
+ \@for\@tempb:=\@tempa\do{%
+ \expandafter\pretocmd\expandafter{\csname tud@\@tempb#1\endcsname}{%
+ \tud@chapter@pre%
+ }{}{\tud@patch@wrn{tud@sectioning@case}}%
+ \expandafter\apptocmd\expandafter{\csname tud@\@tempb#1\endcsname}{%
+ \tud@chapter@app%
+ }{}{\tud@patch@wrn{tud@sectioning@case}}%
+ }%
+ \fi%
+%</book|report>
+}
+% \end{macrocode}
+% Mit dem Makro \cs{tud@sectioning@reset} können die manipulierten
+% Gliederungsbefehle wieder auf ihr ursprüngliches Verhalten zurückgesetzt
+% werden.
+% \begin{macrocode}
+\newcommand*\tud@sectioning@reset[2][]{%
+ \tud@cmd@restore{#2}%
+ \ifstrempty{#1}{}{\tud@cmd@restore{#1}}%
+ \tud@font@koma@unset{#2}%
+}
+% \end{macrocode}
+% Der Befehl \cs{tud@sectioning@uppercase} ist für das Setzen der
+% Gliederungsüberschriften in Majuskeln verantwortlich. Außerdem wird ggf. die
+% Option \opt{footnotes=symbolheadings} umgesetzt.
+% \begin{macrocode}
+\robustify{\footnote}%
+\newcommand*\tud@sectioning@uppercase[1]{%
+ \begingroup%
+ \if@tud@symbolheadings%
+ \let\c@footnote\c@symbolheadings%
+ \renewcommand*\thefootnote{\fnsymbol{symbolheadings}}%
+ \fi%
+ \tud@makeuppercase{#1}%
+ \endgroup%
+}
+% \end{macrocode}
+% Es wird die Möglichkeit geschaffen, bestimmten Schriftelementen weitere
+% Eigenschaften mitzugeben. Damit dies optionsabhängig geschehen kann und
+% \cs{addtokomafont} nur einmalig verwendete werden muss, wird im Zweifelsfall
+% einem Schriftelement ein Hilfsmakro \cs{tud@font@koma@\meta{Element}}
+% zugewiesen, welches intern angepasst werden kann. Mit \cs{tud@font@koma@set}
+% werden dem angegebenen Element die gewünschten Schriftattribute zugeteilt.
+% \begin{macrocode}
+\newcommand*\tud@font@koma@set[2]{%
+ \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}%
+ \@namedef{tud@font@koma@#1}{#2}%
+}
+% \end{macrocode}
+% Durch die Option \opt{headings} werden die Schriftelemente zurückgesetzt.
+% Mit dem hier definierten Befehl \cs{tud@font@koma@reset} kann diesen das
+% Hilfsmakro abermals zugewiesen
+% werden.
+% \begin{macrocode}
+\newcommand*\tud@font@koma@reset[1]{%
+ \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}%
+}
+% \end{macrocode}
+% Mit \cs{tud@font@koma@unset} kann das angegebene Element wieder zurückgesetzt
+% werden. Dabei wird das zuvor hinzugefügte Makro auf \cs{relax} gesetzt.
+% \begin{macrocode}
+\newcommand*\tud@font@koma@unset[1]{%
+ \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@font@koma@unset
+% \end{macro}^^A \tud@font@koma@reset
+% \end{macro}^^A \tud@font@koma@set
+% \end{macro}^^A \tud@sectioning@uppercase
+% \end{macro}^^A \tud@sectioning@reset
+% \end{macro}^^A \tud@sectioning@case
+% \end{macro}^^A \tud@sectioning@set
+% \begin{macro}{\usesizeofkomafont}
+% \changes{v2.02}{2014/05/17}{entfernt}%^^A
+% Mit \TUDScript~v2.02 wurde die Bereitstellung dieses Befehls aufgrund der
+% zwingenden Verwendung von \KOMAScript{}~v3.12 entfernt.
+% \end{macro}^^A \usesizeofkomafont
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx
new file mode 100644
index 00000000000..96d43819ce8
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx
@@ -0,0 +1,638 @@
+% \CheckSum{549}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-locale.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-locale.dtx}[%
+ 2014/11/11 v2.02 TUD-KOMA-Script (localization)%
+]
+\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-locale.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/11/05}{Korrekturen bei der Verwendung von
+% \cs{@@title}}%^^A
+%
+% \section{Lokalisierung}
+%
+% Die TUD-Vorlagen sind für die deutsche und englische Sprache lokalisiert. Das
+% bedeutet, dass abhängig von der gewählten Sprache die entsprechenden
+% Bezeichner gesetzt werden.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \subsection{Definition der sprachabhängigen Bezeichner}
+%
+% \begin{macro}{\tud@locale@define}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{locale}{\graduationtext}
+% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{degreetext}}%^^A
+% \begin{locale}{\supervisorname}
+% \begin{locale}{\supervisorothername}
+% \begin{locale}{\refereename}
+% \changes{v2.02}{2014/05/20}{Unterscheidung, ob ein oder mehrere Gutachter
+% angegeben sind}%^^A
+% \begin{locale}{\refereeothername}
+% \begin{locale}{\advisorname}
+% \begin{locale}{\advisorothername}
+% \begin{locale}{\professorname}
+% \begin{locale}{\professorothername}
+% \changes{v2.02}{2014/09/03}{neu}%^^A
+% \begin{locale}{\datetext}
+% \begin{locale}{\dateofbirthtext}
+% \begin{locale}{\placeofbirthtext}
+% \begin{locale}{\defensedatetext}
+% \begin{locale}{\matriculationnumbername}
+% \begin{locale}{\matriculationyearname}
+% \begin{locale}{\coverpagename}
+% \begin{locale}{\titlepagename}
+% \begin{locale}{\abstractname}
+% \begin{locale}{\confirmationname}
+% \begin{locale}{\confirmationtext}
+% \begin{locale}{\blockingname}
+% \changes{v2.02}{2014/05/16}{neu, \cs{restrictionname} umbenannt}%^^A
+% \begin{locale}{\blockingtext}
+% \changes{v2.02}{2014/05/16}{neu, \cs{restrictiontext} umbenannt}%^^A
+% \begin{locale}{\listingname}
+% \begin{locale}{\listlistingname}
+% \begin{locale}{\dissertationname}
+% \begin{locale}{\diplomathesisname}
+% \begin{locale}{\masterthesisname}
+% \begin{locale}{\bachelorthesisname}
+% \begin{locale}{\studentresearchname}
+% \begin{locale}{\projectpapername}
+% \begin{locale}{\seminarpapername}
+% \begin{locale}{\researchname}
+% \begin{locale}{\logname}
+% \begin{locale}{\internshipname}
+% \begin{locale}{\reportname}
+% Die neu definierten Bezeichner werden mit einer Fehlermeldung initialisiert.
+% Wird eine unterstützte Dokumentsprache~-- momentan sind dies lediglich
+% Deutsch und Englisch~-- in der Präambel des Dokumentes geladen, so werden die
+% Bezeichner sprachspezifisch überschrieben. Andernfalls bekommt der Anwender
+% eine Fehlermeldung mit Hinweisen, wie er selbst die Bezeichner für die
+% gewählte Sprache manuell definieren muss.
+% \begin{macrocode}
+\newcommand*\tud@locale@define[1]{%
+ \providecommand*#1{%
+ \ClassError{\tudcls@name}{%
+ `\string#1' not defined for language `\languagename'%
+ }{%
+ Currently the class `\tudcls@name' only supports the\MessageBreak%
+ languages german and english an its dialects. You must\MessageBreak%
+ define single patterns by yourself, e.g.:\MessageBreak%
+ `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak%
+ To implement new languages, it would be nice if you could\MessageBreak%
+ contact the author of this class and send your definitions\MessageBreak%
+ to \tudscrmail%
+ }%
+ }%
+}
+\tud@locale@define{\graduationtext}
+\tud@locale@define{\supervisorname}
+\tud@locale@define{\supervisorothername}
+\tud@locale@define{\refereename}
+\tud@locale@define{\refereeothername}
+\tud@locale@define{\advisorname}
+\tud@locale@define{\advisorothername}
+\tud@locale@define{\professorname}
+\tud@locale@define{\professorothername}
+\tud@locale@define{\datetext}
+\tud@locale@define{\dateofbirthtext}
+\tud@locale@define{\placeofbirthtext}
+\tud@locale@define{\defensedatetext}
+\tud@locale@define{\matriculationyearname}
+\tud@locale@define{\matriculationnumbername}
+\tud@locale@define{\coverpagename}
+\tud@locale@define{\titlepagename}
+%<*book>
+\tud@locale@define{\abstractname}
+%</book>
+\tud@locale@define{\confirmationname}
+\tud@locale@define{\confirmationtext}
+\tud@locale@define{\blockingname}
+\tud@locale@define{\blockingtext}
+\tud@locale@define{\listingname}
+\tud@locale@define{\listlistingname}
+\tud@locale@define{\dissertationname}
+\tud@locale@define{\diplomathesisname}
+\tud@locale@define{\masterthesisname}
+\tud@locale@define{\bachelorthesisname}
+\tud@locale@define{\studentresearchname}
+\tud@locale@define{\projectpapername}
+\tud@locale@define{\seminarpapername}
+\tud@locale@define{\researchname}
+\tud@locale@define{\logname}
+\tud@locale@define{\internshipname}
+\tud@locale@define{\reportname}
+% \end{macrocode}
+% \end{locale}^^A \reportname
+% \end{locale}^^A \internshipname
+% \end{locale}^^A \logname
+% \end{locale}^^A \researchname
+% \end{locale}^^A \seminarpapername
+% \end{locale}^^A \projectpapername
+% \end{locale}^^A \studentresearchname
+% \end{locale}^^A \bachelorthesisname
+% \end{locale}^^A \masterthesisname
+% \end{locale}^^A \diplomathesisname
+% \end{locale}^^A \dissertationname
+% \end{locale}^^A \blockingtext
+% \end{locale}^^A \listlistingname
+% \end{locale}^^A \listingname
+% \end{locale}^^A \blockingname
+% \end{locale}^^A \confirmationtext
+% \end{locale}^^A \confirmationname
+% \end{locale}^^A \abstractname
+% \end{locale}^^A \titlepagename
+% \end{locale}^^A \coverpagename
+% \end{locale}^^A \matriculationyearname
+% \end{locale}^^A \matriculationnumbername
+% \end{locale}^^A \defensedatetext
+% \end{locale}^^A \placeofbirthtext
+% \end{locale}^^A \dateofbirthtext
+% \end{locale}^^A \datetext
+% \end{locale}^^A \professorothername
+% \end{locale}^^A \professorname
+% \end{locale}^^A \advisorothername
+% \end{locale}^^A \advisorname
+% \end{locale}^^A \refereeothername
+% \end{locale}^^A \refereename
+% \end{locale}^^A \supervisorothername
+% \end{locale}^^A \supervisorname
+% \end{locale}^^A \graduationtext
+%
+% \iffalse
+%</class>
+%<*supervisor>
+% \fi
+%
+% \begin{locale}{\taskname}
+% \begin{locale}{\tasktext}
+% \begin{locale}{\authorname}
+% \begin{locale}{\titlename}
+% \begin{locale}{\coursename}
+% \begin{locale}{\disciplinename}
+% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{branchname}}%^^A
+% \begin{locale}{\issuedatetext}
+% \begin{locale}{\duedatetext}
+% \begin{locale}{\chairmanname}
+% \begin{locale}{\focusname}
+% \begin{locale}{\objectivesname}
+% \begin{locale}{\evaluationname}
+% \begin{locale}{\evaluationtext}
+% \begin{locale}{\contentname}
+% \begin{locale}{\assessmentname}
+% \begin{locale}{\gradetext}
+% \begin{locale}{\noticename}
+% \begin{locale}{\contactpersonname}
+% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{contactname}}%^^A
+% Die für \pkg{tudscrsupervisor} definierten Bezeichner werden durch
+% \cs{tud@locale@define} mit einer Fehlermeldung initialisiert.
+% \begin{macrocode}
+\tud@locale@define{\taskname}
+\tud@locale@define{\tasktext}
+\tud@locale@define{\authorname}
+\tud@locale@define{\titlename}
+\tud@locale@define{\coursename}
+\tud@locale@define{\disciplinename}
+\tud@locale@define{\issuedatetext}
+\tud@locale@define{\duedatetext}
+\tud@locale@define{\chairmanname}
+\tud@locale@define{\focusname}
+\tud@locale@define{\objectivesname}
+\tud@locale@define{\evaluationname}
+\tud@locale@define{\evaluationtext}
+\tud@locale@define{\contentname}
+\tud@locale@define{\assessmentname}
+\tud@locale@define{\gradetext}
+\tud@locale@define{\noticename}
+\tud@locale@define{\contactpersonname}
+% \end{macrocode}
+% \end{locale}^^A \contactpersonname
+% \end{locale}^^A \noticename
+% \end{locale}^^A \gradetext
+% \end{locale}^^A \assessmentname
+% \end{locale}^^A \contentname
+% \end{locale}^^A \evaluationtext
+% \end{locale}^^A \evaluationname
+% \end{locale}^^A \objectivesname
+% \end{locale}^^A \focusname
+% \end{locale}^^A \chairmanname
+% \end{locale}^^A \duedatetext
+% \end{locale}^^A \issuedatetext
+% \end{locale}^^A \disciplinename
+% \end{locale}^^A \coursename
+% \end{locale}^^A \titlename
+% \end{locale}^^A \authorname
+% \end{locale}^^A \tasktext
+% \end{locale}^^A \taskname
+%
+% \iffalse
+%</supervisor>
+% \fi
+%
+% \end{macro}^^A \tud@locale@define
+%
+% \subsection{Deutschsprachige Bezeichner}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{macro}{\tud@locale@german}
+% \changes{v2.02}{2014/07/07}{als Aliasbefehl für \cs{providecaptionname} mit
+% dem Argument \marg{deutsche Sprachliste}}%^^A
+% Dieser Befehl dient zur Definition der deutschsprachigen Bezeichner. Dabei
+% müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige
+% Definition angegeben werden. Intern wird dabei \cs{providecaptionname}
+% verwendet.
+% \begin{macrocode}
+\newcommand*\tud@locale@german{%
+ \providecaptionname{%
+ german,ngerman,austrian,naustrian,swissgerman,nswissgerman%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@locale@german
+% Hier erfolgt die eigentliche Definition der sprachabhängigen Bezeichner für
+% die deutsche Sprache und ihre Dialekte.
+% \begin{macrocode}
+\tud@locale@german{\graduationtext}{zur Erlangung des akademischen Grades}%
+\tud@locale@german{\supervisorname}{Betreuer}%
+\tud@locale@german{\supervisorothername}{}%
+\tud@locale@german{\refereename}{%
+ \begingroup%
+ \protecting{%
+ \global\@tempswafalse%
+ \def\and{\global\@tempswatrue}%
+ \savebox0{\@referee}%
+ }%
+ \endgroup%
+ \if@tempswa%
+ Erstgutachter%
+ \else%
+ Gutachter%
+ \fi%
+}
+\tud@locale@german{\refereeothername}{Zweitgutachter}%
+\tud@locale@german{\advisorname}{Fachreferent}%
+\tud@locale@german{\advisorothername}{}%
+\tud@locale@german{\professorname}{%
+ \begingroup%
+ \protecting{%
+ \global\@tempswafalse%
+ \def\and{\global\@tempswatrue}%
+ \savebox0{\@professor}%
+ }%
+ \endgroup%
+ \if@tempswa%
+ Betreuende Hochschullehrer%
+ \else%
+ Betreuender Hochschullehrer%
+ \fi%
+}
+\tud@locale@german{\professorothername}{}%
+\tud@locale@german{\datetext}{Eingereicht am}%
+\tud@locale@german{\dateofbirthtext}{Geboren am}%
+\tud@locale@german{\placeofbirthtext}{in}%
+\tud@locale@german{\defensedatetext}{Verteidigt am}%
+\tud@locale@german{\matriculationyearname}{Immatrikulationsjahr}%
+\tud@locale@german{\matriculationnumbername}{Matrikelnummer}%
+\tud@locale@german{\coverpagename}{Umschlagseite}%
+\tud@locale@german{\titlepagename}{Titelblatt}%
+%<*book>
+\tud@locale@german{\abstractname}{Zusammenfassung}%
+%</book>
+\tud@locale@german{\confirmationname}{Selbstst\"andigkeitserkl\"arung}%
+\tud@locale@german{\confirmationtext}{%
+ Hiermit versichere ich, dass ich die vorliegende
+ \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi
+ \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi
+ selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. Es
+ wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel und
+ Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} \"ubernommenen
+ Zitate habe ich als solche kenntlich gemacht.
+ \ifx\@supporter\@empty%
+ Es waren keine weiteren Personen an der geistigen Herstellung der
+ vorliegenden Arbeit beteiligt.
+ \else%
+ W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von folgenden
+ Personen unterst\"utzt:%
+ \begin{quote}\def\and{\newline}\@supporter\end{quote}%
+ \noindent Weitere Personen waren an der geistigen Herstellung der
+ vorliegenden Arbeit nicht beteiligt.
+ \fi%
+ Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum
+ nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.%
+}
+\tud@locale@german{\blockingname}{Sperrvermerk}%
+\tud@locale@german{\blockingtext}{%
+ Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi
+ \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi
+ enth\"alt vertrauliche Informationen\ifx\@company\@empty\else
+ , offengelegt durch \@company{}\fi. Ver\"offentlichungen,
+ Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~--
+ sind ohne ausdr\"uckliche Genehmigung \ifx\@company\@empty\else
+ durch \@company{} \fi nicht gestattet, ebenso wie
+ Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die
+ vorliegende Arbeit ist nur dem Betreuer an der Technischen
+ Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des
+ Pr\"ufungsausschusses zug\"anglich zu machen.%
+}
+\tud@locale@german{\listingname}{Quelltext}%
+\tud@locale@german{\listlistingname}{Quelltextverzeichnis}%
+\tud@locale@german{\dissertationname}{Dissertation}%
+\tud@locale@german{\diplomathesisname}{Diplomarbeit}%
+\tud@locale@german{\masterthesisname}{Master-Arbeit}%
+\tud@locale@german{\bachelorthesisname}{Bachelor-Arbeit}%
+\tud@locale@german{\studentresearchname}{Studienarbeit}%
+\tud@locale@german{\projectpapername}{Projektarbeit}%
+\tud@locale@german{\seminarpapername}{Seminararbeit}%
+\tud@locale@german{\researchname}{Forschungsbericht}%
+\tud@locale@german{\logname}{Protokoll}%
+\tud@locale@german{\internshipname}{Praktikumsbericht}%
+\tud@locale@german{\reportname}{Bericht}%
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+%<*supervisor>
+% \fi
+%
+% Hier erfolgen für das Paket \pkg{tudscrsupervisor} weitere Definitionen.
+% \begin{macrocode}
+\tud@locale@german{\taskname}{Aufgabenstellung}%
+\tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}%
+\tud@locale@german{\authorname}{Name}%
+\tud@locale@german{\titlename}{Titel}%
+\tud@locale@german{\coursename}{Studiengang}%
+\tud@locale@german{\disciplinename}{Studienrichtung}%
+\tud@locale@german{\issuedatetext}{Ausgeh\"andigt am}%
+\tud@locale@german{\duedatetext}{Einzureichen am}%
+\tud@locale@german{\chairmanname}{Pr\"ufungsausschussvorsitzender}%
+\tud@locale@german{\focusname}{Schwerpunkte der Arbeit}%
+\tud@locale@german{\objectivesname}{Ziele der Arbeit}%
+\tud@locale@german{\evaluationname}{Gutachten}%
+\tud@locale@german{\evaluationtext}{f\"ur die}%
+\tud@locale@german{\contentname}{Inhalt}%
+\tud@locale@german{\assessmentname}{Bewertung}%
+\tud@locale@german{\gradetext}{%
+ Die Arbeit wird mit der Note \textbf{\@grade} bewertet.%
+}
+\tud@locale@german{\noticename}{Aushang}%
+\tud@locale@german{\contactpersonname}{Ansprechpartner}%
+% \end{macrocode}
+%
+% \iffalse
+%</supervisor>
+% \fi
+%
+%
+% \subsection{Englischsprachige Bezeichner}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{macro}{\tud@locale@english}
+% \changes{v2.02}{2014/07/07}{Pseudonym für \cs{providecaptionname} mit
+% dem Argument \marg{englische Sprachliste}}%^^A
+% Dieser Befehl dient zur Definition der englischsprachigen Bezeichner. Dabei
+% müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige
+% Definition angegeben werden. Intern wird dabei \cs{providecaptionname}
+% verwendet.
+% \begin{macrocode}
+\newcommand*\tud@locale@english{%
+ \providecaptionname{%
+ american,australian,british,canadian,english,newzealand,UKenglish,USenglish%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@locale@english
+% Hier erfolgt die eigentliche Definition der sprachabhängigen Bezeichner für
+% die deutsche Sprache und ihre Dialekte.
+% \begin{macrocode}
+\tud@locale@english{\graduationtext}{to achieve the academic degree}%
+\tud@locale@english{\supervisorname}{Supervisor}%
+\tud@locale@english{\supervisorothername}{}%
+\tud@locale@english{\refereename}{%
+ \begingroup%
+ \protecting{%
+ \global\@tempswafalse%
+ \def\and{\global\@tempswatrue}%
+ \savebox0{\@referee}%
+ }%
+ \endgroup%
+ \if@tempswa%
+ First referee%
+ \else%
+ Referee%
+ \fi%
+}
+\tud@locale@english{\refereeothername}{Second referee}%
+\tud@locale@english{\advisorname}{Advisor}%
+\tud@locale@english{\advisorothername}{}%
+\tud@locale@english{\professorname}{%
+ \begingroup%
+ \protecting{%
+ \global\@tempswafalse%
+ \def\and{\global\@tempswatrue}%
+ \savebox0{\@professor}%
+ }%
+ \endgroup%
+ \if@tempswa%
+ Supervising professors%
+ \else%
+ Supervising professor%
+ \fi%
+}
+\tud@locale@english{\professorothername}{}%
+\tud@locale@english{\datetext}{Submitted on}%
+\tud@locale@english{\dateofbirthtext}{Born on}%
+\tud@locale@english{\placeofbirthtext}{in}%
+\tud@locale@english{\defensedatetext}{Defended on}%
+\tud@locale@english{\matriculationyearname}{Matriculation year}%
+\tud@locale@english{\matriculationnumbername}{Matriculation number}%
+\tud@locale@english{\coverpagename}{Cover page}%
+\tud@locale@english{\titlepagename}{Title page}%
+%<*book>
+\tud@locale@english{\abstractname}{Abstract}%
+%</book>
+\tud@locale@english{\confirmationname}{Statement of authorship}%
+\tud@locale@english{\confirmationtext}{%
+ I hereby certify that I have authored this
+ \ifx\@@thesis\@empty thesis\else\@@thesis{} \fi
+ \ifx\@@title\@empty\else entitled \emph{\@@title} \fi
+ independently and without undue assistance from third
+ parties. No other than the resources and references
+ indicated in this thesis have been used. I have marked
+ both literal and accordingly adopted quotations as such.
+ \ifx\@supporter\@empty%
+ They were no additional persons involved in the spiritual
+ preparation of the present thesis.
+ \else%
+ During the preparation of this thesis I was only supported
+ by the following persons:%
+ \begin{quote}\def\and{\newline}\@supporter\end{quote}%
+ \noindent Additional persons were not involved in the spiritual
+ preparation of the present thesis.
+ \fi%
+ I am aware that violations of this declaration may lead to
+ subsequent withdrawal of the degree.%
+}
+\tud@locale@english{\blockingname}{Restriction note}%
+\tud@locale@english{\blockingtext}{%
+ This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi
+ \ifx\@@title\@empty\else entitled \emph{\@@title} \fi
+ contains confidential data\ifx\@company\@empty\else
+ , disclosed by \@company{}\fi. Publications, duplications and
+ inspections---even in part---are prohibited without explicit
+ permission\ifx\@company\@empty\else\space by \@company{}\fi,
+ as well as publications about the content of this thesis.
+ This thesis may only be made accessible to the supervisor at
+ Technische Universit\"at Dresden, the reviewers and also the
+ members of the examination board.%
+}
+\tud@locale@english{\listingname}{Listing}%
+\tud@locale@english{\listlistingname}{List of Listings}%
+\tud@locale@english{\dissertationname}{Dissertation}%
+\tud@locale@english{\diplomathesisname}{Diploma Thesis}%
+\tud@locale@english{\masterthesisname}{Master Thesis}%
+\tud@locale@english{\bachelorthesisname}{Bachelor Thesis}%
+\tud@locale@english{\studentresearchname}{Student Research Project}%
+\tud@locale@english{\projectpapername}{Project Paper}%
+\tud@locale@english{\seminarpapername}{Seminar Paper}%
+\tud@locale@english{\researchname}{Research Report}%
+\tud@locale@english{\logname}{Log}%
+\tud@locale@english{\internshipname}{Internship Report}%
+\tud@locale@english{\reportname}{Report}%
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+%<*supervisor>
+% \fi
+%
+% Hier erfolgen für das Paket \pkg{tudscrsupervisor} weitere Definitionen.
+% \begin{macrocode}
+\tud@locale@english{\taskname}{Task}%
+\tud@locale@english{\tasktext}{for the preparation of a}%
+\tud@locale@english{\authorname}{Name}%
+\tud@locale@english{\titlename}{Title}%
+\tud@locale@english{\coursename}{Course}%
+\tud@locale@english{\disciplinename}{Discipline}%
+\tud@locale@english{\issuedatetext}{Issued on}%
+\tud@locale@english{\duedatetext}{Due date for submission}%
+\tud@locale@english{\chairmanname}{Chairman of the Audit Committee}%
+\tud@locale@english{\focusname}{Focus of work}%
+\tud@locale@english{\objectivesname}{Objectives of work}%
+\tud@locale@english{\evaluationname}{Evaluation}%
+\tud@locale@english{\evaluationtext}{for the}%
+\tud@locale@english{\contentname}{Content}%
+\tud@locale@english{\assessmentname}{Assessment}%
+\tud@locale@english{\gradetext}{%
+ The thesis is evaluated with a grade of \textbf{\@grade}.%
+}
+\tud@locale@english{\noticename}{Notice}%
+\tud@locale@english{\contactpersonname}{Contact}%
+% \end{macrocode}
+%
+% \iffalse
+%</supervisor>
+%<*class>
+% \fi
+%
+% \subsection{Unterstützung des Paketes \pkg{listings}}
+%
+% Die Bezeichner des Paketes werden auf die bereits definierten gesetzt.
+% \begin{macrocode}
+\AfterPackage{listings}{%
+ \renewcommand*\lstlistingname{\listingname}%
+ \renewcommand*\lstlistlistingname{\listlistingname}%
+}
+% \end{macrocode}
+%
+% \subsection{Unterstützung des Paketes \pkg{mathswap}}
+%
+% Wird das Paket \pkg{mathswap} verwendet, werden die Ersetzungen für Punkt und
+% Komma im Mathematikmodus sprachspezifisch angepasst.
+% \begin{macrocode}
+\AfterPackage{mathswap}{%
+ \tud@locale@german{\@commaswap}{,}%
+ \tud@locale@german{\@dotswap}{\,}%
+ \tud@locale@english{\@commaswap}{\,}%
+ \tud@locale@english{\@dotswap}{.}%
+}
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
new file mode 100644
index 00000000000..392573d872d
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
@@ -0,0 +1,3361 @@
+% \CheckSum{2611}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-manual.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-manual.dtx}[%
+ 2014/12/17 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<identify>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<class&identify>\ProvidesClass{tudscrman}[%
+%<package&identify>\ProvidesPackage{tudscrman}[%
+%<*driver|(class|package)&identify>
+%!TUDVersion
+%<class> class (internal manual)%
+%<package> package (internal tutorials)%
+]
+%</driver|(class|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-manual.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/11/18}{Index für Tutorials möglich}%^^A
+% \changes{v2.02}{2014/12/17}{xindy-Stildatei wird zur Laufzeit erzeugt}%^^A
+%
+% \section{Klasse und Paket für die Anwenderdokumentation von \TUDScript}
+%
+% Es werden die Klasse \cls{tudscrman} für das \TUDScript-Handuch sowie das
+% Paket \pkg{tudscrman} für das Setzen von einigen Anwenderleitfäden bzw.
+% Tutorials erzeugt. Da es zwischen der Klasse und dem Paket es eine große
+% Menge an Überschneidungen gibt, basieren diese auf der gleichen Quelldatei.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*body>
+% \fi
+%
+% \subsection{Benötigte Pakete für die Anwenderdokumentation}
+%
+% Basis für das Handbuch ist die Klasse \cls{tudscrreprt}. An diese werden alle
+% Klassenoptionen weitergereicht. Sie wird für das Setzen des Anwenderhandbuchs
+% genutzt. Zusätzlich wird das Paket \pkg{tudscrman} erstellt, um an das
+% Handbuch angelehnte Tutorials in einem Unterordner zu erstellen. Sowohl für
+% die Klasse als auch das Paket werden einige Pakete geladen.
+%
+% Das Paket \pkg{xparse} erlaubt eine sehr freie Deklaration von Makros mit
+% nahezu beliebig arrangierbaren (optionalen) Argumenten.
+% \begin{macrocode}
+\RequirePackage{xparse}[2013/12/31]
+% \end{macrocode}
+% Für den Fließtext werden Pfeile u.\,ä. durch \pkg{textcomp} bereitgestellt.
+% \begin{macrocode}
+\RequirePackage{textcomp}[2005/09/27]
+% \end{macrocode}
+% Verbesserungen am \LaTeX-Kernel.
+% \begin{macrocode}
+\RequirePackage{fixltx2e}[2014/06/10]
+% \end{macrocode}
+% Vergrößerung des Durchschusses.
+% \begin{macrocode}
+\RequirePackage{setspace}[2011/12/19]
+\setstretch{1.1}\recalctypearea
+% \end{macrocode}
+% Sprachunterstützung.
+% \begin{macrocode}
+\RequirePackage{babel}[2014/03/24]
+% \end{macrocode}
+% Sprachabhängiges Setzen von Anführungszeichen.
+% \begin{macrocode}
+\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
+\AtBeginDocument{%
+ \@ifpackageloaded{csquotes}{}{%
+ \ClassWarning{\tudcls@name}{Package `csquotes' not loaded}%
+ \providecommand\enquote[1]{\glqg#1\grqq{}}%
+ }%
+}
+% \end{macrocode}
+% Das Paket \pkg{microtype} wird für den optischen Randausgleich verwendet.
+% \begin{macrocode}
+\RequirePackage[babel]{microtype}[2013/05/23]
+% \end{macrocode}
+% Verbesserte Zitate.
+% \begin{macrocode}
+\RequirePackage{quoting}[2014/01/28]
+% \end{macrocode}
+% Automatisierte Datumsformatierung.
+% \begin{macrocode}
+\RequirePackage{isodate}[2010/01/03]
+% \end{macrocode}
+% Verschiedenste Symbole aus dem \LaTeX-Universum.
+% \begin{macrocode}
+\RequirePackage{hologo}[2012/04/26]
+% \end{macrocode}
+% Das Paket \pkg{marginnote} stellt nicht fließenden Randnotizen bereit.
+% \begin{macrocode}
+\RequirePackage{marginnote}[2012/03/29]
+% \end{macrocode}
+% Sowohl im Handbuch als auch in den Tutroials werden Quelltextauszüge für das
+% bessere Verständnis des Anwenders angegeben. Um diese darzustellen wird das
+% Paket \pkg{listings} verwendet.
+% \begin{macrocode}
+\RequirePackage{listings}[2014/03/04]
+\lstdefinestyle{tudscr}{%
+ basicstyle=\ttfamily\setstretch{1},%
+ keywordstyle=,%
+ columns=fullflexible,keepspaces,%
+ aboveskip=.5\baselineskipglue,%
+ belowskip=.5\baselineskipglue,%
+ language=[LaTeX]TeX,%
+ texcl,%
+}
+% \end{macrocode}
+% Mit dem Paket \pkg{silence} lassen sich ungewollte bzw. lästige Warnungen
+% deaktivieren.
+% \begin{macrocode}
+\RequirePackage{silence}[2012/07/02]
+% \end{macrocode}
+% Das Pakete wird genutzt, um externer Dateien nur zu kompilieren, wenn dies
+% aufgrund einer Änderung auch notwendig ist.
+% \begin{macrocode}
+\RequirePackage{filemod}[2011/09/19]
+% \end{macrocode}
+% Sollte \pkg{auto-pst-pdf} aktiv sein, so wird das Laden von \pkg{todonotes}
+% unterdrückt, da dieses wiederum das Paket \pkg{tikz} lädt, was zu Problem bei
+% der automatisierten Erstellung von \env{pstricks}"=Grafiken führt.
+% \begin{macrocode}
+\RequirePackage{ifpdf}[2011/01/30]
+\ifpdf
+ \PassOptionsToPackage{colorinlistoftodos,obeyFinal,color=HKS92!10}{todonotes}
+ \RequirePackage{todonotes}[2012/07/25]
+\else
+ \TUDoptions{ToDo=false}
+\fi
+% \end{macrocode}
+% Um die \cs{write18} sowohl für Windows als auch für unixoide Betriebssysteme
+% nutzen zu können, wird das Paket \pkg{ifplatform} geladen. Damit dieses nicht
+% allzu lästig ist, wird mithilfe von \pkg{silence} die normalerweise erzeugte
+% Warnung der nicht aktivierten Option \opt{shell escape} deaktiviert.
+% \begin{macrocode}
+\WarningFilter*{ifplatform}{^^J \space\space\space shell escape is disabled}
+\RequirePackage{ifplatform}[2010/10/22]
+% \end{macrocode}
+% Das Paket \pkg{hyperref} wird für alle möglichen Links und Querverweise
+% geladen.
+% \begin{macrocode}
+\PassOptionsToPackage{hyperindex=false}{hyperref}
+\AtEndPreamble{%
+ \RequirePackage{hyperref}[2012/11/06]
+ \hypersetup{colorlinks,linkcolor=blue}
+% \end{macrocode}
+% Es folgen einige Befehle, die an das Paket \pkg{hyperref} gekoppelt sind.
+% \begin{macro}{\Email}
+% Hyperlink für die Angabe einer E-Mail-Adresse.
+% \begin{macrocode}
+ \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}}
+% \end{macrocode}
+% \end{macro}^^A \Email
+% Die Bezeichner für die Abschnittsebenen werden umbenannt.
+% \begin{macrocode}
+ \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}
+ \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}
+ \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}
+% \end{macrocode}
+% \begin{macro}{\autorefname}
+% \begin{macro}{\@autorefname}
+% \begin{macro}{\@@autorefname}
+% Der Befehl \cs{autorefname} dient dazu, den Verweistyp beziehungsweise den
+% Bezeichner des aktuellen oder optional zu einem speziellen Label ohne die
+% dazugehörige Nummerierung zu erhalten. Auf der Seite LaTeX Stack Exchange%
+%\footnote{\url{http://tex.stackexchange.com/q/33776/}} wurde das Prinzip
+% vorgestellt und hier übernommen.
+% \begin{macrocode}
+ \newcommand*\autorefname[1][current]{%
+ \ifstr{#1}{current}{%
+ \expandafter\HyPsd@@autorefname\@currentHref\@nil%
+ }{%
+ \@autorefname\HyPsd@@autorefname{#1}%
+ }%
+ \unskip\xspace%
+ }
+ \newcommand*\@autorefname[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax%
+ ??%
+ \else%
+ \expandafter\expandafter\expandafter\@@autorefname%
+ \csname r@#2\endcsname{}{}{}{}\@nil#1\@nil%
+ \fi%
+ }
+ \newcommand*\@@autorefname{}
+ \def\@@autorefname#1#2#3#4#5\@nil#6\@nil{#6#4.\@nil}
+% \end{macrocode}
+% \end{macro}^^A \@@autorefname
+% \end{macro}^^A \@autorefname
+% \end{macro}^^A \autorefname
+% \begin{macro}{\manualhyperdef}
+% \changes{v2.02}{2014/10/27}{neu}%^^A
+% \begin{macro}{\manualhyperref}
+% \changes{v2.02}{2014/10/27}{neu}%^^A
+% Diese beiden Befehle dienen zum Defnieren von Textankern im Handbuch und zum
+% Referenzieren auf diese. Bei der Erstelung des Ankers mit \cs{manualhyperdef}
+% wird zusätzlich auch noch ein Label (\cs{label}) erzeugt. Die Sternversion
+% des Befehls unterdrückt dies. Der Anker wird mit \cs{Hy@raisedlink}~-- wie es
+% auch bei normalen \pkg{hyperref}-Labels geschieht~-- über die Grundlinie
+% gehoben. Die Version mit Apostroph kann nach Überschriften verwendet werden
+% und verschiebt die vertikale Position des Ankers noch weiter nach oben.
+% \begin{macrocode}
+%<*class>
+ \NewDocumentCommand\manualhyperdef{st'm}{%
+ \IfBooleanTF{#2}{%
+ \raisebox{4\baselineskip}[0pt][0pt]{\hyperdef{\jobname}{#3}{}}%
+ \par\nobreak\vskip\dimexpr-\parskip-\baselineskip%
+ \@afterindentfalse\@afterheading%
+ }{%
+ \Hy@raisedlink{\hyperdef{\jobname}{#3}{}}%
+ \ignorespaces%
+ }%
+ \IfBooleanF{#1}{\label{#3}}%
+ }
+ \newcommand*\manualhyperref[2]{\hyperref{}{\jobname}{#1}{#2}}
+%</class>
+% \end{macrocode}
+% Aus einem Tutorial erfolgen alle Querverweise mit \cs{manualhyperref} auf das
+% Anwenderhandbuch \enquote{tudscr}.
+% \begin{macrocode}
+%<*package>
+ \newcommand*\manualhyperref[2]{\hyperref{../tudscr}{tudscr}{#1}{#2}}
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \manualhyperref
+% \end{macro}^^A \manualhyperdef
+% Damit sind die Ausführungen für das Paket \pkg{hyperref} \emph{fast} beendet.
+% Etwas später wird noch der Befehl \cs{pdfexpandableoutline} definiert.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% Für die Erstellung des Indexes wird das Paket \pkg{imakeidx} zusammen mit
+% \pkg{xindy} verwendet. Zuerst ein paar kleinere Einstellungen für das Layout.
+% \begin{macrocode}
+\PassOptionsToPackage{xindy,splitindex}{imakeidx}
+\RequirePackage{imakeidx}[2013/07/11]%
+\indexsetup{%
+%<*class>
+ level=\addsec,%
+%</class>
+%<*package>
+ level=\subsection*,%
+%</package>
+ noclearpage,firstpagestyle=headings,headers={\indexname}{\indexname}%
+}
+\newcommand*\xdyopt{-M tudscrman-temp.xdy -L german-din}
+% \end{macrocode}
+% \begin{macro}{\tud@write@i}
+% \changes{v2.02}{2014/10/22}{neu}%^^A
+% \begin{macro}{\tud@write@ii}
+% \changes{v2.02}{2014/11/02}{neu}%^^A
+% \begin{macro}{\tud@read}
+% \changes{v2.02}{2014/08/19}{neu}%^^A
+% Für die Erstellung der Indizes wird zum Sortieren das Programm \pkg{xindy}
+% genutzt. Für dieses wird eine eigene Stildatei verwendet, welche zur Laufzeit
+% erzeugt wofür zuerst ein Ausgabestream reserviert wird.
+% \begin{macrocode}
+\newcommand*\tud@write@i{}
+\newwrite\tud@write@i
+% \end{macrocode}
+% Für die Tutorials werden später zusätzlich noch ein weiterer Ausgabe- sowie
+% ein Eingabestream benötigt, die hier gleich mit initilaisiert werden.
+% \begin{macrocode}
+%<*package>
+\newcommand*\tud@write@ii{}
+\newwrite\tud@write@ii
+\newcommand*\tud@read{}
+\newread\tud@read
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \tud@read
+% \end{macro}^^A \tud@write@ii
+% \end{macro}^^A \tud@write@i
+% Nachfolgend wird die zu erstellenden \pkg{xindy}-Stildatei kurz beschrieben.
+% \begin{macrocode}
+\openout\tud@write@i=tudscrman-temp.xdy
+% \end{macrocode}
+% Als erstes wird Standard-\LaTeX-Modul geladen.
+% \begin{macrocode}
+\write\tud@write@i{(require "texindy.xdy")}
+% \end{macrocode}
+% Leider lässt sich für Seitenzahlbereiche via \val{:attr} (noch) kein Markup
+% für angehängte \enquote{f.} sowie \enquote{ff.} einstellen. Diese würden
+% deshalb bei kursiven oder fetten Seitenzahlen trotzdem in normaler Schrift
+% erscheinen, weshalb auf die Auszeichnung folgender Seiten verzichtet wird.
+% \begin{macrocode}
+%\write\tud@write@i{(require "ff-ranges.xdy")}
+% \end{macrocode}
+% Seitenbereiche werden sofort zusammengefasst, wobei als Trennzeichen ein
+% Halbgeviertstrich verwendet wird.
+% \begin{macrocode}
+\write\tud@write@i{%
+(define-location-class^^J%
+\space\space "arabic-page-numbers" ("arabic-numbers") :min-range-length 1^^J%
+)%
+}
+\write\tud@write@i{(markup-range :sep "--")}
+% \end{macrocode}
+% Alle Argumente in eckigen Klammern werden ignoriert. Dies wird bei einigen
+% Indexbefehlen genutzt, um die nicht beachteten RegExp-Regeln auszugleichen,
+% siehe den nächsten Absatz.
+% \begin{macrocode}
+\write\tud@write@i{(merge-rule "\[(.*)\]" "" :eregexp)}
+% \end{macrocode}
+% Innerhalb ausgewählter Auszeichnungs- und Textbefehle sollten die Befehle
+% selbst, nicht jedoch die Argumente verworfen werden. Leider werden die
+% manuell erstellten RegExp-Regeln durch \texttt{texindy} zu spät genutzt
+% (\url{http://sourceforge.net/p/xindy/bugs/22/}).
+% \begin{macrocode}
+%\write\tud@write@i{(merge-rule "\\hyperindex\{(.*)\}\{(.*)\}" "/2" :eregexp)}
+%\write\tud@write@i{(merge-rule "\\hologo\{(.*)\}" "/1" :eregexp)}
+%\write\tud@write@i{(merge-rule "\\texttt\{(.*)\}" "/1" :eregexp)}
+%\write\tud@write@i{(merge-rule "\\textsbn\{(.*)\}" "/1" :eregexp)}
+%\write\tud@write@i{(merge-rule "\\textsbs\{(.*)\}" "/1" :eregexp)}
+% \end{macrocode}
+% Es werden die Attribute \emph{declare} mit der Abkürzung \emph{!} sowie
+% \emph{important} mit der Abkürzung \emph{?} und \emph{default} definiert,
+% welche hierarchisch gleichgestellt sind.
+% \begin{macrocode}
+\write\tud@write@i{%
+ (define-attributes (("declare" "!" "important" "?" "default")))%
+}
+% \end{macrocode}
+% Eine Alternative wäre, diese in der Hierarchie zu unterscheiden, allerdings
+% war eine Bildung von zufriedenstellenden Seitenbereichen dabei nicht möglich
+% und wurde deshalb verworfen.
+% \begin{macrocode}
+%\write\tud@write@i{(markup-attribute-group-list :sep ", ")}
+%\write\tud@write@i{%
+%\space\space(define-attributes (("declare" "!") ("important" "?")("default")))%
+%}
+% \end{macrocode}
+% Einträge, die als wichtig deklariert wurden, können auch für normale zur
+% Bereichsbildung verwendet werden.
+% \begin{macrocode}
+\write\tud@write@i{(merge-to "important" "default")}
+\write\tud@write@i{(merge-to "?" "default")}
+% \end{macrocode}
+% Hier erfolgt die Definition der Auszeichnugen der Attribute. Deklarationen
+% werden fett gedruckt, wichtige Einträge erscheinen kursiv. Außerdem wird ein
+% entsprechnder Link auf die Seite eingefügt.
+% \begin{macrocode}
+\write\tud@write@i{%
+(markup-locref^^J%
+\space\space :open "\string\textbf{\string\hyperpage{"^^J%
+\space\space :close "}}"^^J%
+\space\space :attr "declare"^^J%
+)%
+}
+\write\tud@write@i{%
+(markup-locref^^J%
+\space\space :open "\string\textbf{\string\hyperpage{"^^J%
+\space\space :close "}}"^^J%
+\space\space :attr "!"^^J%
+)%
+}
+\write\tud@write@i{%
+(markup-locref^^J%
+\space\space :open "\string\textsl{\string\hyperpage{"^^J%
+\space\space :close "}}"^^J%
+\space\space :attr "important"^^J%
+)%
+}
+\write\tud@write@i{%
+(markup-locref^^J%
+\space\space :open "\string\textsl{\string\hyperpage{"^^J%
+\space\space :close "}}"^^J%
+\space\space :attr "?"^^J%
+)%
+}
+\write\tud@write@i{%
+(markup-locref^^J%
+\space\space :open "\string\hyperpage{"^^J%
+\space\space :close "}"^^J%
+\space\space :attr "default"^^J%
+)%
+}
+% \end{macrocode}
+% Punkte zwischen Eintrag und Seitenzahl.
+% \begin{macrocode}
+\write\tud@write@i{%
+ (markup-locclass-list :open "\string\,\string\dotfill\string\,")%
+}
+% \end{macrocode}
+% Dieser Querverweistyp wird speziell im allgemeinen Index verwendet, um auf
+% einen Spezialindex zu verweisen.
+% \begin{macrocode}
+\write\tud@write@i{(define-crossref-class "seeidx")}
+\write\tud@write@i{%
+(markup-crossref-list^^J%
+\space\space :class "seeidx" :open "\string\seeidx{" :sep "; " :close "}{}"^^J%
+)%
+}
+% \end{macrocode}
+% Damit ist die \pkg{xindy}-Stildatei fertig.
+% \begin{macrocode}
+\closeout\tud@write@i
+% \end{macrocode}
+% Nun können die einzelnen Indizes erstellt werden.
+% \begin{macrocode}
+%<*class>
+\makeindex[title={Allgemeiner Index},options=\xdyopt]%
+%</class>
+\makeindex[title={Klassen- und Paketoptionen},name=options,options=\xdyopt]%
+\makeindex[%
+ title={Umgebungen, Befehle und Seitenstile},name=macros,options=\xdyopt%
+]%
+%<*class>
+\makeindex[title={Umgebungs- und Befehlsparameter},name=keys,options=\xdyopt]%
+\makeindex[title={Sprachabh\"angige Bezeichner},name=terms,options=\xdyopt]%
+\makeindex[title={Schriftelemente},name=fonts,options=\xdyopt]%
+\makeindex[title={Farben},name=colors,options=\xdyopt]%
+%</class>
+\makeindex[title={Klassen, Pakete und Dateien},name=files,options=\xdyopt]%
+%<*class>
+\makeindex[title={\"Anderungsliste},name=changelog,columns=1,options=\xdyopt]%
+%</class>
+% \end{macrocode}
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \subsubsection{Pakete für die Klasse \cls{tudscrman}}
+%
+% Das Paket \pkg{enumitem} erlaubt das Beeinflussen der Standardlisten und die
+% Ableitung neuer Listen aus diesen. mit \cs{setlist\{noitemsep\}} werden die
+% zusätzlichen Zwischenräume innerhalb der Listen beseitigt.
+% \begin{macrocode}
+\RequirePackage{enumitem}[2011/09/28]
+\setlist{noitemsep}
+% \end{macrocode}
+% Das Paket \pkg{ellipsis} sorgt für korrekte Auslassungpunkte.
+% \begin{macrocode}
+\AtBeginDocument{
+ \RequirePackage{ellipsis}[2004/9/28]
+ \let\ellipsispunctuation\relax
+}
+% \end{macrocode}
+% Mit Hilfe von \pkg{tabularx} können Tabellen bestimmter Breite und
+% automatisch berechneten Spaltenbreiten gesetzt werden.
+% \begin{macrocode}
+\RequirePackage{tabularx}[1999/01/07]
+% \end{macrocode}
+% Mit \pkg{ragged2e} wird~-- falls benötigt~-- die Silbentrennung im
+% Flattersatz aktiviert.
+% \begin{macrocode}
+\RequirePackage{ragged2e}[2009/05/21]
+% \end{macrocode}
+% Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt.
+% \begin{macrocode}
+\RequirePackage{chngcntr}[2009/09/02]
+\counterwithout{footnote}{chapter}
+% \end{macrocode}
+% Das Paket wird für die Erstellung von Tabellen verwendet.
+% \begin{macrocode}
+\RequirePackage{booktabs}[2005/04/14]
+% \end{macrocode}
+% Verbesserte Referenzierungen auf Seiten.
+% \begin{macrocode}
+\RequirePackage{varioref}[2011/10/02]%
+\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}}
+% \end{macrocode}
+% Erstellen von Grafiken.
+% \begin{macrocode}
+\RequirePackage{tikz}[2013/12/13]
+% \end{macrocode}
+% Einbinden von ganzseitigen PDF"~Dokumenten als Beispiel im Handbuch.
+% \begin{macrocode}
+\RequirePackage{pdfpages}[2013/08/25]
+% \end{macrocode}
+% Typographisch saubere Einheiten.
+% \begin{macrocode}
+\RequirePackage{units}[1998/08/04]
+% \end{macrocode}
+% Befehle für die Dokumentation des Pakets \pkg{tudscrsupervisor}.
+% \begin{macrocode}
+\RequirePackage{tudscrsupervisor}[\TUDVersion]
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+%<*package>
+% \fi
+%
+% \subsubsection{Pakete für das Paket \pkg{tudscrman}}
+%
+% Mit dem Paket \pkg{scrwfile} lassen sich Probleme mit zu wenig verfügbaren
+% Streams für das Schreiben externer Datein beheben. Hintergrund ist die
+% Verwendung des Paketes \pkg{glossaries} in einem der Tutorials, welches eine
+% Vielzahl solcher Streams benötigt. Das Paket \pkg{morewrites} hat keinen
+% Einfluss auf \pkg{glossaries}.
+% \begin{macrocode}
+\RequirePackage{scrwfile}[2013/08/05]
+% \end{macrocode}
+% Die Umgebungen \env{Preamble}, \env{Trunk} und \env{Hint} sowie deren
+% Varianten nutzen das Paket \pkg{filecontents}, um ihren Inhalt in eine
+% temporäre Datei zu schreiben und diese direkt mit dem Paket \pkg{listings}
+% darzustellen sowie ggf. den Quelltext auszuführen. Beim Überschreiben einer
+% Datei wird für gewöhnlich eine Warnung erzeugt. Mit dem Paket \pkg{silence}
+% wird diese innerhalb der genannten Umgebungen deaktiviert.
+% \begin{macrocode}
+\RequirePackage{filecontents}[2011/10/08]
+\WarningFilter[Tutorial]{latex}{Overwriting file}%
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+%</body>
+%<*option>
+% \fi
+%
+% \subsection{Optionen der Anwenderdokumentation}
+%
+% Hier werden die Optionen für Klasse und Paket definiert.
+%
+% \begin{option}{ToDo}
+% \changes{v2.02}{2014/07/10}{neu}%^^A
+% \begin{macro}{\if@tud@todo}
+% \changes{v2.02}{2014/07/10}{neu}%^^A
+% Diese Option ist verantwortlich für den Schalter \cs{if@tud@todo}. Über
+% diesen wird gesteuert, ob ToDo-Notizen ausgegeben werden sollen.
+% \begin{macrocode}
+\newif\if@tud@todo
+\@tud@todotrue
+\TUD@ifkey{ToDo}{@tud@todo}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@todo
+% \end{option}^^A ToDo
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% Es werden einige Optionen für das Handbuch standardmäßig aktiviert. Dazu
+% werden diese an die entsprechende Elternklasse übergeben.
+% \begin{macrocode}
+\PassOptionsToClass{%
+ cdfoot=true,%
+ chapterpage=true,%
+ chapterprefix=true,%
+ headings=optiontoheadandtoc,%
+ captions=tableheading,%
+ numbers=noenddot,%
+ color=true,%
+}{\tudinh@name}
+\PassOptionsToPackage{automark}{scrlayer-scrpage}
+% \end{macrocode}
+% \begin{macro}{\tudfinalflag}
+% \begin{macro}{\tudprintflag}
+% Außerdem wird geprüft, ob durch einen externen pdf\LaTeX-Aufruf die Flags
+% \cs{tudfinalflag} und/oder \cs{tudprintflag} definiert wurde. In diesem Fall
+% werden Optionen zur finalen Ausgabe und/oder unbunten Druck aktiviert.
+% \begin{macrocode}
+\DeclareOption{final}{\let\tudfinalflag\relax}
+\DeclareOption{print}{\let\tudprintflag\relax}
+\AtBeginDocument{%
+ \ifdef{\tudfinalflag}{\TUDoptions{ToDo=false}}{}%
+ \ifdef{\tudprintflag}{\hypersetup{hidelinks}\TUDoptions{color=no}}{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tudprintflag
+% \end{macro}^^A \tudfinalflag
+%
+% \iffalse
+%</class>
+%<*package>
+% \fi
+%
+% Wird das Paket \pkg{tudscrman} geladen, werden zu Beginn des Dokumentes ein
+% paar Standardeinstellungen gemacht.
+%
+% \begin{macrocode}
+\KOMAoptions{headings=small}
+\TUDoptions{cd=true,cdfoot=true}
+% \end{macrocode}
+% Falls innerhalb eines Tutorials das Paket \pkg{pstricks} verwendet wird, muss
+% dafür Sorge getragen werden, dass die automatische Kompilierung reibungslos
+% mit \pkg{auto-pst-pdf} funktioniert.
+% \begin{macrocode}
+\AfterPackage*{pstricks}{%
+ \ifnum\pdfshellescape=1\relax
+ \RequirePackage{auto-pst-pdf}[2009/04/26]
+ \else
+ \RequirePackage[off]{auto-pst-pdf}[2009/04/26]
+ \fi
+}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+%</option>
+%<*body>
+% \fi
+%
+% \subsection{Gemeinsame Befehle und Umgebungen für Klasse und Paket}
+%
+% Es folgen die Definitionen für Befehle und Umgebungen für Klasse und Paket,
+% welche sich überschneidenden und für beide benötigt werden. Allerdings sind
+% diese jedoch für Klasse und Paket in ihrer Implementierung teilweise sehr
+% unterschiedlich.
+%
+% \subsubsection{Auszeichnung von Variablen, Parametern etc.}
+%
+% \begin{macro}{\PName}
+% \begin{macro}{\PBoolean}
+% \begin{macro}{\PBName}
+% \changes{v2.02}{2014/11/12}{neu}%^^A
+% \begin{macro}{\PSet}
+% \begin{macro}{\Parameter}
+% \begin{macro}{\OParameter}
+% \begin{macro}{\LParameter}
+% \begin{macro}{\OLParameter}
+% \begin{macro}{\PValue}
+% \begin{macro}{\PParameter}
+% \begin{macro}{\POParameter}
+% Diese Befehle dienen zum Auszeichnen von obligatorischen und optionalen
+% Parametern und Befehlen oder bestimmten Wertzuweisungen.
+% \begin{macrocode}
+\newrobustcmd*\PName[1]{\mbox{\texttt{\textsl{<#1>}}}}
+\newrobustcmd*\PBoolean{\PName{Ein-Aus-Wert}}
+\newrobustcmd*\PBName[1]{\PBoolean|\PName{#1}}
+\newrobustcmd*\PSet{\PName{Einstellung}}
+\newrobustcmd*\Parameter[1]{\mbox{\texttt{\{}\PName{#1}\texttt{\}}}}
+\newrobustcmd*\OParameter[1]{\mbox{\texttt{[}\PName{#1}\texttt{]}}}
+\newrobustcmd*\LParameter{\mbox{\texttt{[}\PName{Parameterliste}\texttt{]}}}
+\newrobustcmd*\OLParameter[1]{%
+ \mbox{\texttt{[}\PName{#1}|\PName{Parameterliste}\texttt{]}}%
+}
+\newrobustcmd*\PValue[1]{\mbox{\texttt{#1}}}
+\newrobustcmd*\PParameter[1]{\mbox{\texttt{\{#1\}}}}
+\newrobustcmd*\POParameter[1]{\mbox{\texttt{[#1]}}}
+% \end{macrocode}
+% \end{macro}^^A \POParameter
+% \end{macro}^^A \PParameter
+% \end{macro}^^A \PValue
+% \end{macro}^^A \OLParameter
+% \end{macro}^^A \LParameter
+% \end{macro}^^A \OParameter
+% \end{macro}^^A \Parameter
+% \end{macro}^^A \PSet
+% \end{macro}^^A \PBName
+% \end{macro}^^A \PBoolean
+% \end{macro}^^A \PName
+%
+% \subsubsection{Kompilieren von externen Dateien und Querverweise auf diese}
+%
+% \begin{macro}{\Tutorial}
+% \changes{v2.02}{2014/08/22}{neu}%^^A
+% \changes{v2.02}{2014/10/22}{Reimplementierung}%^^A
+% \begin{macro}{\hypertut}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% Die gegebenenfalls notwendige Kompilierung und die Referenzierung eines
+% Tutorials aus dem Handbuch erfolgt mit \cs{Tutorial}. Außerdem erfolgt mit
+% \cs{hypertut} ein verlinkter Eintrag in den Index.
+% \begin{macrocode}
+%<*class>
+\newrobustcmd*\hypertut[2]{%
+ \hyperref{tutorials/#1.pdf}{\jobname}{tutorials:#1}{\textsbn{#1.pdf}#2}%
+}
+\NewDocumentCommand\Tutorial{som}{%
+ \ifnum\pdfshellescape=1\relax%
+% \end{macrocode}
+% Um mit den verschachtelten Aufrufen von pdf\LaTeX{} umgehen zu können, wird
+% das ganze Prozedere in ein Skript ausgelagert. Somit können die Aufrufe von
+% pdf\LaTeX{} für die Tutorials im entsprechenden Ordner erfolgen.
+% \begin{macrocode}
+ \filemodCmp{tutorials/#3.pdf}{tutorials/#3.tex}{}{%
+ \immediate\openout\tud@write@i=tutorials.sh%
+ \immediate\write\tud@write@i{%
+ cd tutorials^^J%
+ pdflatex -shell-escape #3^^J%
+ biber #3^^J%
+ makeglossaries #3^^J%
+ pdflatex #3^^J%
+ pdflatex #3%
+ }%
+ \immediate\closeout\tud@write@i%
+% \end{macrocode}
+% Hier erfolgt die Unterscheidung der Befehle für die unterschiedlichen OS.
+% \begin{macrocode}
+ \ifwindows%
+ \immediate\write18{rename tutorials.sh tutorials.bat}%
+ \immediate\write18{tutorials.bat}%
+ \immediate\write18{del tutorials.bat}%
+ \else%
+ \immediate\write18{bash tutorials.sh}%
+ \immediate\write18{rm tutorials.sh}%
+ \fi%
+ }%
+ \fi%
+% \end{macrocode}
+% Hyperlink und Indexeintrag.
+% \begin{macrocode}
+ \IfFileExists{tutorials/#3.pdf}{%
+ \hypertut{#3}{}%
+ }{%
+ \textsbn{#3.pdf}%
+ \tud@shellescape@wrn%
+ }%
+ \IfBooleanF{#1}{%
+ \index[files]{\hypertut{#3}{~{\idxfont(Tutorial)}\IfValueT{#2}{|#2}}}%
+ }%
+}
+%</class>
+% \end{macrocode}
+% Der Befehl für die Querverweise innerhalb von Tutorials.
+% \begin{macrocode}
+%<*package>
+\newcommand*\Tutorial[1]{\href{#1.pdf}{\textsbn{#1.pdf}}}
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \hypertut
+% \end{macro}^^A \Tutorial
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{macro}{\IncludeExample}
+% \changes{v2.02}{2014/07/25}{Skalierung der eingefügten Seiten}%^^A
+% \changes{v2.02}{2014/10/14}{Reimplementierung}%^^A
+% Mit diesem Befehl wird eine \LaTeX-Datei ggf. übersetzt und anschließend als
+% PDF"~Datei wieder eingebunden. Zuvor wird der dazugehörige Quelltext mittels
+% \cs{lstinputlisting} im Dokument ausgegeben. Dieser Befehl wird lediglich für
+% die Klasse \cls{tudscrman} benötigt.
+% \begin{macrocode}
+\newcommand*\IncludeExample[1]{%
+ \lstinputlisting[style=tudscr]{examples/#1}%
+% \end{macrocode}
+% Die Beispiele werden nur erneut kompiliert, wenn sich diese geändert haben
+% oder noch gar kein entsprechendes PDF"~Dokument existiert.
+% \begin{macrocode}
+ \ifnum\pdfshellescape=1\relax%
+ \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{%
+ \immediate\write18{%
+ pdflatex -shell-escape -output-directory examples examples/#1.tex
+ pdflatex -output-directory examples examples/#1.tex
+ pdflatex -output-directory examples examples/#1.tex
+ }%
+ }%
+ \fi%
+% \end{macrocode}
+% Ist die gesuchte Datei vorhanden, wird diese auch eingebunden. Andernfalls
+% wird eine Warnung mit dem Hinweis auf die notwendige Verwednung von
+% \val{pdflatex} mit der Option \opt{--shell-escape} erzeugt.
+% \begin{macrocode}
+ \IfFileExists{examples/#1.pdf}{%
+ \includepdf[%
+ pages=-,noautoscale,frame,keepaspectratio,pagecommand={},%
+ height=\textheight,width=\textwidth, offset=5mm 0mm%
+ ]{examples/#1.pdf}%
+ }{%
+ \tud@shellescape@wrn%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \IncludeExample
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \subsubsection{ToDo-Liste}
+%
+% \begin{macro}{\ToDo}
+% \changes{v2.02}{2014/07/10}{Verwendung von \pkg{todonotes}}%^^A
+% \begin{macro}{\@ToDo}
+% \changes{v2.02}{2014/07/10}{neu}%^^A
+% \begin{macro}{\ListOfToDo}
+% \changes{v2.02}{2014/07/10}{neu}%^^A
+% Mit dem Befehl \cs{ToDo}\oarg{options}\marg{inline text}\oarg{marginnote}
+% kann bei aktivierter Option \opt{ToDo} eine Notiz mit einer offenen Ausgabe
+% erstellt werden. Das vorangestellte Argument kann Optionen beinhalten, welche
+% durch \pkg{todonotes} unterstützt werden. Außerdem werden die vier boolschen
+% Schlüssel \val{doc}, \val{man}, \val{imp} und \val{nxt} definiert, welche
+% eine feste, farbliche Kodierung erzeugen. Das angestellte optionale Argument
+% erzeugt eine gleichartige Notiz am Rand, in welcher vorzugsweise die
+% angedachte Version eingetragen werden kann. Mit \cs{ListOfToDo} wird abhängig
+% von der Option \opt{ToDo} eine Liste der offenen Aufgaben erstellt.
+% \begin{macrocode}
+\newcommand*\@ToDo{}
+\NewDocumentCommand\ToDo{somo}{%
+ \ifbool{@tud@todo}{%
+ \begingroup%
+% \end{macrocode}
+% Die boolschen Schlüssel.
+% \begin{macrocode}
+ \define@boolkey{todonotes}{doc}[true]{%
+ \ifbool{KV@todonotes@doc}{\setkeys{todonotes}{color=HKS41!10}}{}%
+ }%
+ \define@boolkey{todonotes}{rls}[true]{%
+ \ifbool{KV@todonotes@rls}{\setkeys{todonotes}{color=HKS44!50}}{}%
+ }%
+ \define@boolkey{todonotes}{imp}[true]{%
+ \ifbool{KV@todonotes@imp}{\setkeys{todonotes}{color=HKS07!50}}{}%
+ }%
+ \define@boolkey{todonotes}{nxt}[true]{%
+ \ifbool{KV@todonotes@nxt}{\setkeys{todonotes}{color=HKS57!50}}{}%
+ }%
+% \end{macrocode}
+% In \cs{@ToDo} wird das optionale Argument für \pkg{todonotes} gesichert.
+% \begin{macrocode}
+ \def\@ToDo{}%
+ \IfValueTF{#2}{%
+ \IfBooleanTF{#1}{\edef\@ToDo{#2,nolist}}{\edef\@ToDo{#2}}%
+ }{%
+ \IfBooleanT{#1}{\edef\@ToDo{nolist}}%
+ }%
+% \end{macrocode}
+% Damit die Randnotiz nicht verrutscht, wird \cs{marginnote} anstelle von
+% \cs{marginpar} verwendet. Außerdem ist eine Verschiebung um den durch
+% \pkg{todonotes} definierten Leerraum notwendig.
+% \begin{macrocode}
+ \renewcommand*\marginpar[2][]{\marginnote[##1]{##2}[\dimexpr-1.6ex+1pt]}%
+ \vskip.8ex%
+% \end{macrocode}
+% hier erfolgt die Ausgabe.
+% \begin{macrocode}
+ \IfValueT{#4}{%
+ \settowidth\marginparwidth{#4}%
+ \addtolength\marginparwidth{\dimexpr1.6ex+1pt}%
+ \let\par\relax\noindent%
+ \edef\@tempa{\noexpand\todo[\@ToDo,noline,nolist]}%
+ \@tempa{#4}%
+ }%
+ \edef\@tempa{\noexpand\todo[\@ToDo,inline]}%
+ \@tempa{#3}%
+ \endgroup%
+ \par\noindent%
+ }{}%
+ \ignorespaces%
+}
+% \end{macrocode}
+% Zum Schluss wird der Befehl \cs{ListOfToDo} definiert, der die Liste der noch
+% zu erledigenden Punkte nur ausgeführt ausgibt, wenn die Option \opt{ToDo}
+% aktiviert ist. Außerdem werden die Randnotizen auf den linken~-- weil
+% größeren~-- Rand gesetzt.
+% \begin{macrocode}
+\newcommand*\ListOfToDo{\if@tud@todo\listoftodos\fi}
+\reversemarginpar
+% \end{macrocode}
+% \end{macro}^^A \ListOfToDo
+% \end{macro}^^A \@ToDo
+% \end{macro}^^A \ToDo
+%
+% \subsubsection{Kleinkram}
+%
+% \begin{macro}{\bsc}
+% \changes{v2.02}{2014/07/22}{\cs{DeclareRobustCommand} ersetzt mit
+% \cs{newrobustcmd} aus \pkg{etoolbox}}%^^A
+% Eine einfacher zu verwendende Kurzform.
+% \begin{macrocode}
+\newrobustcmd*\bsc{\@backslashchar}
+% \end{macrocode}
+% \end{macro}^^A \bsc
+% \begin{length}{\baselineskipglue}
+% Diese Länge wird in der Dokumentation für alle möglichen stauch- und
+% dehnbaren Einfügen genutzt.
+% \begin{macrocode}
+\newlength\baselineskipglue
+\setlength\baselineskipglue{%
+ .4\baselineskip plus .4\baselineskip minus .2\baselineskip%
+}
+% \end{macrocode}
+% \end{length}^^A \baselineskipglue
+% \begin{macro}{\tud@shellescape@wrn}
+% \changes{v2.02}{2014/10/14}{neu}%^^A
+% Dieses Makro wird verwendet, wenn eine gesuchte Datei nicht gefunden wurde,
+% weil das Dokument noch nicht mit der Option \opt{--shell-escape} kompiliert
+% wurde.
+% \begin{macrocode}
+\newcommand*\tud@shellescape@wrn{%
+ \ClassWarning{\tudcls@name}{%
+ You have to recompile this document with\MessageBreak%
+ activated shell escape option%
+ }%
+ \global\let\tud@shellescape@wrn\relax%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@shellescape@wrn
+% \begin{macro}{\pdfexpandableoutline}
+% \changes{v2.02}{2014/11/04}{neu}%^^A
+% \begin{macro}{\@TUDScript}
+% \changes{v2.02}{2014/08/16}{neu}%^^A
+% Für die PDF-Outline-Einträge müssen einige Befehle durch eine expandierbare
+% Version ersetzt werden. Der Befehl \cs{pdfexpandableoutline} wird definiert,
+% um dies möglichst einfach zu gestalten.
+% \begin{macrocode}
+\newcommand*\pdfexpandableoutline[1]{%
+ \AfterPackage*{hyperref}{\pdfstringdefDisableCommands{\csletcs{#1}{@#1}}}
+}
+% \end{macrocode}
+% Den Anfang mach gleich \cs{TUDScript}.
+% \begin{macrocode}
+\newcommand*\@TUDScript{TUD-KOMA-Script}
+\pdfexpandableoutline{TUDScript}
+% \end{macrocode}
+% \end{macro}^^A \@TUDScript
+% \end{macro}^^A \pdfexpandableoutline
+%
+% \subsubsection{Markup von Klassen, Paketen, Optionen und weiteren Elementen}
+%
+% Im Folgenden werden allerhand Befehle mit Hilfe des Paketes \pkg{xparse}
+% definiert, um bestimmte Begriffe, Klassen, Pakete, Optionen, Umgebungen,
+% Befehle, Parameter, Bezeichner, Längen, Schriftelemente und Farben speziell
+% auszuzeichnen. Diese Befehle lauten für Klasse und Paket nutzen aus Gründen
+% der Konsistenz zwar gleich, unterschieden sich jedoch in der Implementierung.
+%
+% Für die Klasse gilt, dass die Sternversion all dieser Befehlen nichts in den
+% Index einträgt, wenn diese denn im Fließtext Verwendung finden. Wird die
+% Sternversion jedoch in einer Änderungsnotiz genutzt, so wird die für diese
+% normalerweise angehängte Beschreibung des Elementes unterdrückt. Für (fast)
+% alle der folgenden Befehle gilt, dass diese mit zwei optionalen Befehlen am
+% Ende genutzt werden können. Mit \val{'refformat'} kann angegeben werden, ob
+% der automatisch erzeugte Hyperlink um einen textuellen Querverweis ergänzt
+% werden soll. Mit \val{|idxformat|} kann die Erscheinung im Index angepasst
+% werden. Die eigentliche Behandlung der Eingabe und die Eintragungen in den
+% Index erfolgen dabei mit dem Befehl \cs{@ProcessOutput}, für einen Eintrag
+% in die Änderungsliste wird der Befehl \cs{@ProcessChangedAt} genutzt.
+%
+% Die Befehle für das Paket \pkg{tudscrman} sind in ihrer Funktionalität um
+% einiges reduziert. Die meisten besitzen nur ein obligatorisches Argument für
+% die formatierte Ausgabe sowie evtl. eine Sternversion, die einen Querverweis
+% auf das Handbuch erzeugt.
+% \begin{macro}{\Application}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@Application}
+% Die Auszeichnung und der Indexeintrag einer Anwendungssoftware.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\Application{smd||}{%
+ \ifdin{#2}{%
+ \mbox{\textsbs{#2}}%
+ \CheckIndexFormat{#1}{#3}%
+ \IfBooleanF{#1}{%
+ \index{\textsbs{#2}~{\idxfont(Anwendungssoftware)}\IfValueT{#3}{|#3}}%
+ }%
+ }%
+}
+\DeclareExpandableDocumentCommand\@Application{sm}{#2}
+\pdfexpandableoutline{Application}
+%</class>
+%<*package>
+\newcommand*\Application[1]{\ifdin{#1}{\mbox{\textsbs{#1}}}}
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \@Application
+% \end{macro}^^A \Application
+% \begin{macro}{\Distribution}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% Die Auszeichnung und der Indexeintrag einer \LaTeX-Distribution.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\Distribution{smod||}{%
+ \ifdin{#2\IfValueT{#3}{~#3}}{%
+ \mbox{\textsbn{#2\IfValueT{#3}{~#3}}}%
+ \CheckIndexFormat{#1}{#4}%
+ \IfBooleanF{#1}{%
+ \index{\textsbn{#2}~{\idxfont(Distribution)}\IfValueT{#4}{|#4}}%
+ }%
+ }%
+}
+%</class>
+%<*package>
+\newcommand*\Distribution[1]{\ifdin{#1}{\mbox{\textsbn{#1}}}}
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \Distribution
+% \begin{macro}{\Path}
+% \changes{v2.02}{2014/07/22}{\cs{DeclareRobustCommand} ersetzt durch
+% \cs{newrobustcmd} aus \pkg{etoolbox}}%^^A
+% Die Auszeichnung eines Dateipfades.
+% \begin{macrocode}
+\newrobustcmd*\Path[1]{\mbox{\texttt{#1}}}
+% \end{macrocode}
+% \end{macro}^^A \Path
+% \begin{macro}{\File}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% Die Auszeichnung und der Indexeintrag einer Datei.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\File{smd||}{%
+ \ifdin{#2}{%
+ \mbox{\textsbn{#2}}%
+ \CheckIndexFormat{#1}{#3}%
+ \IfBooleanF{#1}{%
+ \index[files]{\textsbn{#2}~{\idxfont(Datei)}\IfValueT{#3}{|#3}}%
+ }%
+ }%
+}
+%</class>
+%<*package>
+\newcommand*\File[1]{\ifdin{#1}{\mbox{\textsbn{#1}}}}
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \File
+% \begin{macro}{\Class}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@Class}
+% \begin{macro}{\@TempClass}
+% \changes{v2.02}{2014/10/08}{entfernt}%^^A
+% \begin{macro}{\DeclareClass}
+% \changes{v2.02}{2014/10/09}{entfernt}%^^A
+% Die Auszeichnung und der Indexeintrag einer Klasse. Sollte gerade DIN~Bold
+% verwendet werden~-- der Befehl wird innerhalb einer Überschrift genutzt~--
+% wird lediglich das Hauptargument ausgegeben. Das optionale Argument zwischen
+% Apostrophen kann für die Formatierung eines Querverweises im Text genutzt
+% werden, das optionale Argument zwischen senkrechten Strichen dient der
+% Formatierung des Indexeintrages. Außerdem wird für Einträge mit dem Paket
+% \pkg{hyperref} mit \cs{@Class} eine expandierbare Version definiert.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\Class{smd''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{files}{\protect\sbnfont}{#2}{Klasse}%
+ \else%
+ \ifdin{#2}{%
+ \SetIndexFormat{#1}{#4}%
+ \@ProcessOutput{\textsbn{#2}}'#3'%
+ {files}[\protect\sbnfont]{#2}[~{\idxfont(Klasse)}]%
+ }%
+ \fi%
+}
+%</class>
+%<*package>
+\NewDocumentCommand\Class{sm}{%
+ \ifdin{#2}{%
+ \IfBooleanTF{#1}{%
+ \manualhyperref{files:#2}{\textsbn{#2}}%
+ }{%
+ \textsbn{#2}%
+ }%
+ \index[files]{\begingroup\protect\sbnfont#2\endgroup~{\idxfont(Klasse)}}%
+ }%
+}
+%</package>
+\DeclareExpandableDocumentCommand\@Class{sm}{#2}
+\pdfexpandableoutline{Class}
+% \end{macrocode}
+% \end{macro}^^A \DeclareClass
+% \end{macro}^^A \@TempClass
+% \end{macro}^^A \@Class
+% \end{macro}^^A \Class
+% \begin{macro}{\Package}
+% \changes{v2.02}{2014/07/10}{Ausgabe für ChangeLog hinzugefügt}%^^A
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@Package}
+% \begin{macro}{\@TempPackage}
+% \begin{macro}{\DeclarePackage}
+% \changes{v2.02}{2014/10/09}{entfernt}%^^A
+% Für die Auszeichnungen von Paketen gelten vorherigen Aussagen äquivalent.
+% Für Pakete wird ergänzend ein Hyperlink auf CTAN erzeugt, wenn für dieses
+% kein Label im Dokument besteht, wo dieses genauer erläutert wird. Mit dem
+% optionalen Argument in runden Klammern lässt sich der Paketname für den Link,
+% welcher normalerweise aus obligatorischen Argument entnommen wird, anpassen.
+% Zusätzlich wird ein Befehl für Tutorials erstellt, welcher auf das Handbuch
+% verweist.
+% \begin{macrocode}
+%<*class>
+\newcommand*\@TempPackage{}
+\NewDocumentCommand\Package{smd''d()d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{files}{\protect\sbnfont}{#2}{Paket}%
+ \else%
+ \ifdin{#2}{%
+ \IfValueTF{#4}{\def\@TempPackage{#4}}{\def\@TempPackage{#2}}%
+ \SetIndexFormat{#1}{#5}%
+ \@ProcessOutput{\textsbn{#2}}'#3'(\@TempPackage)%
+ {files}[\protect\sbnfont]{#2}[~{\idxfont(Paket)}]%
+ }%
+ \fi%
+}
+%</class>
+%<*package>
+\NewDocumentCommand\Package{smd()}{%
+ \ifdin{#2}{%
+ \IfBooleanTF{#1}{%
+ \manualhyperref{files:#2}{\textsbn{#2}}%
+ }{%
+ \IfValueTF{#3}{%
+ \href{http://www.ctan.org/pkg/#3}{\textsbn{#2}}%
+ }{%
+ \href{http://www.ctan.org/pkg/#2}{\textsbn{#2}}%
+ }%
+ }%
+ \index[files]{\begingroup\protect\sbnfont#2\endgroup~{\idxfont(Paket)}}%
+ }%
+}
+%</package>
+\DeclareExpandableDocumentCommand\@Package{sm}{#2}
+\pdfexpandableoutline{Package}
+% \end{macrocode}
+% \end{macro}^^A \DeclarePackage
+% \end{macro}^^A \@TempPackage
+% \end{macro}^^A \@Package
+% \end{macro}^^A \Package
+% \begin{macro}{\Option}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@Option}
+% \changes{v2.02}{2014/11/02}{neu}%^^A
+% \begin{macro}{\@TempOption}
+% Im Gegensatz zu den vorherigen Befehlen gibt es ein ordinäres optionales
+% Argument nach dem Hauptargument. Damit kann der Option im Handbuch ein Wert
+% zugewiesen werden. Für Tutorials wird ein Befehl definiert, der auf das
+% Handbuch verweist.
+% \begin{macrocode}
+%<*class>
+\newcommand*\@TempOption{}
+\NewDocumentCommand\Option{smod''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{options}{\ttfamily}{#2}{Option}%
+ \else%
+ \IfValueTF{#3}{\gdef\@TempOption{\texttt{=#3}}}{\gdef\@TempOption{}}%
+ \SetIndexFormat{#1}{#5}%
+ \@ProcessOutput{\texttt{#2}}[\@TempOption]'#4'{options}[\ttfamily]{#2}%
+ \fi%
+}
+%</class>
+%<*package>
+\NewDocumentCommand\Option{smo}{%
+ \ifdin{#2}{%
+ \IfBooleanTF{#1}{%
+ \manualhyperref{options:#2}{\texttt{#2}}\IfValueT{#3}{\texttt{=#3}}%
+ }{%
+ \texttt{#2}\IfValueT{#3}{\texttt{=#3}}%
+ }%
+ \index[options]{\begingroup\ttfamily#2\endgroup}%
+ }%
+}
+%</package>
+\DeclareExpandableDocumentCommand\@Option{sm}{#2}
+\pdfexpandableoutline{Option}
+% \end{macrocode}
+% \end{macro}^^A \@TempOption
+% \end{macro}^^A \@Option
+% \end{macro}^^A \Option
+% \begin{macro}{\Environment}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@Environment}
+% \changes{v2.02}{2014/11/02}{neu}%^^A
+% \begin{macro}{\@TempEnvironment}
+% Auch hier wird für die Änderungsliste unterschieden und für Tutorials ein
+% Befehl definiert, welcher auf das Handbuch referenziert.
+% \begin{macrocode}
+%<*class>
+\newcommand*\@TempEnvironment{}
+\NewDocumentCommand\Environment{smod''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Umgebung}%
+ \else%
+% \end{macrocode}
+% Außerdem wird für den Fall, dass der \cs{Environment}-Befehl innerhalb der
+% Umgebung \env{Declaration} verwendet wird, eine spezielle Ausgabe erzeugt. Nur
+% hier kommt das optionale Argument nach dem Hauptargument zum Tragen. Damit
+% können etwaige obligatorische und optionale Argumente angegeben werden.
+% \begin{macrocode}
+ \if@declare%
+ \gdef\@TempEnvironment{%
+ \texttt{\bsc{}begin\{#2\}\IfValueT{#3}{#3}}\tabularnewline%
+ \texttt{\dots}\tabularnewline%
+ \texttt{\bsc{}end\{#2\}}%
+ }%
+ \else%
+ \gdef\@TempEnvironment{\texttt{#2}}%
+ \fi%
+ \SetIndexFormat{#1}{#5}%
+ \@ProcessOutput{\@TempEnvironment}'#4'{macros}[\ttfamily]{#2}%
+ \fi%
+}
+%</class>
+%<*package>
+\NewDocumentCommand\Environment{sm}{%
+ \ifdin{#2}{%
+ \IfBooleanTF{#1}{%
+ \manualhyperref{macros:#2}{\texttt{#2}}%
+ }{%
+ \texttt{#2}%
+ }%
+ \index[macros]{\begingroup\ttfamily#2\endgroup}%
+ }%
+}
+%</package>
+\DeclareExpandableDocumentCommand\@Environment{sm}{#2}
+\pdfexpandableoutline{Environment}%
+% \end{macrocode}
+% \end{macro}^^A \@TempEnvironment
+% \end{macro}^^A \@Environment
+% \end{macro}^^A \Environment
+% \begin{macro}{\Macro}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@Macro}
+% \changes{v2.02}{2014/11/02}{neu}%^^A
+% Die Auszeichnung und der Indexeintrag eines Befehls sowie für das Paket
+% \pkg{tudscrman} der Hyperlink auf das Handbuch.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\Macro{smd''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{macros}{\ttfamily\bsc}{#2}{Befehl}%
+ \else%
+ \SetIndexFormat{#1}{#4}%
+ \@ProcessOutput{\texttt{\bsc#2}}'#3'{macros}[\ttfamily\bsc]{#2}%
+ \fi%
+}
+%</class>
+%<*package>
+\NewDocumentCommand\Macro{sm}{%
+ \ifdin{\bsc#2}{%
+ \IfBooleanTF{#1}{%
+ \manualhyperref{macros:#2}{\texttt{\bsc#2}}%
+ }{%
+ \texttt{\bsc#2}%
+ }%
+ \index[macros]{\begingroup\ttfamily\bsc#2\endgroup}%
+ }%
+}
+%</package>
+\DeclareExpandableDocumentCommand\@Macro{sm}{#2}
+% \end{macrocode}
+% \end{macro}^^A \@Macro
+% \end{macro}^^A \Macro
+% \begin{macro}{\Length}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@TempLength}
+% \changes{v2.02}{2014/10/08}{entfernt}%^^A
+% Die Auszeichnung und der Indexeintrag einer \LaTeX-Länge.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\Length{smd''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{macros}{\ttfamily\bsc}{#2}{L\"ange}%
+ \else%
+ \SetIndexFormat{#1}{#4}%
+ \@ProcessOutput{\texttt{\bsc#2}}[\if@declare~{\idxfont(L\"ange)}\fi]'#3'%
+ {macros}[\ttfamily\bsc]{#2}[~{\idxfont(L\"ange)}]%
+ \fi%
+}
+%</class>
+%<*package>
+\NewDocumentCommand\Length{sm}{%
+ \ifdin{\bsc#2}{%
+ \IfBooleanTF{#1}{%
+ \manualhyperref{macros:#2}{\texttt{\bsc#2}}%
+ }{%
+ \texttt{\bsc#2}%
+ }%
+ \index[macros]{\begingroup\ttfamily\bsc#2\endgroup~{\idxfont(L\"ange)}}%
+ }%
+}
+%</package>
+% \end{macrocode}
+% \end{macro}^^A \@TempLength
+% \end{macro}^^A \Length
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \minisec{Exklusive Auszeichnungen für die Klasse}
+% Alle weiteren Befehle werden ausschließlich für die Klasse \cls{tudscrman}
+% definiert.
+%
+% \begin{macro}{\Key}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@TempKey}
+% Die Auszeichnung und der Indexeintrag eines Parameters für Umgebungen und
+% Befehle. Das erste Argument ist die Umgebung oder der Befehl, wofür der
+% Parameter gültig ist. Das zweite Argument ist der Parameter selbst. Dafür
+% werden die Befehle \cs{Environment} und \cs{Macro} lokal umdefiniert. Das
+% ordinäre obligatorische Argument danach dient der Zuweisung eines Wertes im
+% Fließtext.
+% \begin{macrocode}
+\newcommand*\@TempKey{}
+\NewDocumentCommand\Key{smmod''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{macros}(#2){\ttfamily}{#3}{Parameter}%
+ \else%
+ \begingroup%
+ \let\Environment\@firstofone%
+ \let\Macro\@firstofone%
+ \IfValueTF{#4}{%
+ \gdef\@TempKey{\texttt{=#4}\if@declare~{\idxfont(Parameter)}\fi}%
+ }{%
+ \gdef\@TempKey{\if@declare~{\idxfont(Parameter)}\fi}%
+ }%
+ \SetIndexFormat{#1}{#6}%
+ \@ProcessOutput{\texttt{#3}}[\@TempKey]'#5'{macros}(#2)[\ttfamily]{#3}%
+ \endgroup%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \@TempKey
+% \end{macro}^^A \Key
+% \begin{macro}{\PageStyle}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% Die Auszeichnung und der Indexeintrag eines Seitenstils.
+% \begin{macrocode}
+\NewDocumentCommand\PageStyle{smd''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Seitenstil}%
+ \else%
+ \SetIndexFormat{#1}{#4}%
+ \@ProcessOutput{\texttt{#2}\if@declare~{\idxfont(Seitenstil)}\fi}'#3'%
+ {macros}[\ttfamily]{#2}[~{\idxfont(Seitenstil)}]%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \PageStyle
+% \begin{macro}{\Counter}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@TempCounter}
+% \changes{v2.02}{2014/10/08}{entfernt}%^^A
+% Die Auszeichnung und der Indexeintrag einer \LaTeX-Zählers.
+% \begin{macrocode}
+\NewDocumentCommand\Counter{smd''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{macros}{\ttfamily}{#2}{Z\"ahler}%
+ \else%
+ \SetIndexFormat{#1}{#4}%
+ \@ProcessOutput{\texttt{#2}}[\if@declare~{\idxfont(Z\"ahler)}\fi]%
+ {macros}[\ttfamily]{#2}[~{\idxfont(Z\"ahler)}]%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \@TempCounter
+% \end{macro}^^A \Counter
+% \begin{macro}{\Term}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@TempTerm}
+% \changes{v2.02}{2014/10/08}{entfernt}%^^A
+% Die Auszeichnung und der Indexeintrag eines sprachabhängigen Bezeichners.
+% \begin{macrocode}
+\NewDocumentCommand\Term{smd''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{terms}{\ttfamily\bsc}{#2}{Bezeichner}%
+ \else%
+ \SetIndexFormat{#1}{#4}%
+ \@ProcessOutput{\texttt{\bsc#2}}[\if@declare~{\idxfont(Bezeichner)}\fi]'#3'%
+ {terms}[\ttfamily\bsc]{#2}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \@TempTerm
+% \end{macro}^^A \Term
+% \begin{macro}{\TermTable}
+% \begin{macro}{\@TermTable}
+% \begin{macro}{\@@TermTable}
+% \begin{macro}{\@termlist}
+% Für sprachabhängige Bezeichner wird zusätzlich der Befehl \cs{TermTable}
+% definiert, dem eine kommaseparierte Liste übergeben werden kann. Anhand
+% dieser Liste werden die enthalten Begriffe für die Sprachen Deutsch und
+% English in einer Tabelle ausgegeben. Die Sternversion dieses Befehls nutzt
+% dafür die \env{tabularx}-Umgebung. Für diese kann ein zweites Argument
+% angegeben werden, welches die gewünschte Breite der Tabelle angibt.
+% \begin{macrocode}
+\newcommand\@termlist{}
+\let\@termlist\relax
+\NewDocumentCommand\TermTable{smg}{%
+ \forcsvlist{\listadd\@termlist}{#2}%
+ \ifvmode\else\par\fi%
+ \vskip\baselineskipglue%
+ \@afterindentfalse\@afterheading%
+ \IfBooleanTF{#1}{%
+ \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}%
+ \setlength{\@tempdimc}{-.7\baselineskip}%
+ \begin{tabularx}{\@tempdima}{lXX}\@TermTable\end{tabularx}%
+ }{%
+ \setlength{\@tempdimc}{\z@}%
+ \begin{tabular}{lll}\@TermTable\end{tabular}%
+ }%
+ \let\@termlist\relax%
+}
+\newcommand*\@TermTable{%
+ \toprule%
+ \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch}\tabularnewline%
+ \midrule%
+ \forlistloop\@@TermTable{\@termlist}%
+ \bottomrule%
+}
+\newcommand*\@@TermTable[1]{%
+ \Term{#1} & %
+ \ifstr{\@nameuse{#1}}{}{\PName{leer}}{\@nameuse{#1}} & %
+ \selectlanguage{english}\vspace*{\@tempdimc}%
+ \ifstr{\@nameuse{#1}}{}{\PName{empty}}{\@nameuse{#1}}\tabularnewline%
+}
+% \end{macrocode}
+% \end{macro}^^A \@termlist
+% \end{macro}^^A \@@TermTable
+% \end{macro}^^A \@TermTable
+% \end{macro}^^A \TermTable
+% \begin{macro}{\Font}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@TempFont}
+% \changes{v2.02}{2014/10/08}{entfernt}%^^A
+% Die Auszeichnung und der Indexeintrag eines Schriftelementes.
+% \begin{macrocode}
+\NewDocumentCommand\Font{smd''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{fonts}{\ttfamily}{#2}{Schriftelement}%
+ \else%
+ \SetIndexFormat{#1}{#4}%
+ \@ProcessOutput{\texttt{#2}\if@declare~{\idxfont(Schriftelement)}\fi}%
+ {fonts}[\ttfamily]{#2}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \@TempFont
+% \end{macro}^^A \Font
+% \begin{macro}{\Color}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% \begin{macro}{\@TempColor}
+% \changes{v2.02}{2014/10/08}{entfernt}%^^A
+% Die Auszeichnung und der Indexeintrag einer Farbe des \CDs.
+% \begin{macrocode}
+\NewDocumentCommand\Color{smod''d||}{%
+ \if@changelog%
+ \@ProcessChangedAt{#1}{colors}{\ttfamily}{#2}{Farbe}%
+ \else%
+ \SetIndexFormat{#1}{#5}%
+ \@ProcessOutput{\texttt{#2}}[%
+ \IfValueT{#3}{~\texttt{(#3)}}\if@declare~{\idxfont(Farbe)}\fi%
+ ]'#4'{colors}[\ttfamily]{#2}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \@TempColor
+% \end{macro}^^A \Color
+% Damit ist das Intermezzo mit Auszeichnungsbefehlen speziell für die Klasse
+% beendet.
+%
+% \iffalse
+%</class>
+% \fi
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \subsection{Befehle und Umgebungen für die Klasse}
+%
+% Hier taucht alles auf, was lediglich für die Klasse \cls{tudscrman} und nicht
+% für das Paket benötigt wird.
+%
+% \begin{macro}{\CheckIndexFormat}
+% \changes{v2.02}{2014/10/08}{neu}%^^A
+% \begin{macro}{\SetIndexFormat}
+% \changes{v2.02}{2014/10/08}{neu}%^^A
+% \begin{macro}{\@IndexFormat}
+% \changes{v2.02}{2014/10/08}{neu}%^^A
+% Zuerst werden jedoch einige Hilfsmakros erstellt mit denen überprüft wird, ob
+% die Sternversion der zuvor definierten Auszeichnung"=Befehle zusammen mit
+% einer Indexformatierung \val{|idxformat|} genutzt wurde, was sich natürlich
+% widerspricht. In diesem Fall erfolgt eine Warnung.
+% \begin{macrocode}
+\newcommand*\@IndexFormat{}
+\let\@IndexFormat\relax
+\newcommand*\CheckIndexFormat[2]{%
+ \IfBooleanT{#1}{%
+ \IfValueT{#2}{%
+ \ClassWarning{\tudcls@name}{%
+ You've used the starred version so no entry for\MessageBreak%
+ the index is created and the optional argument\MessageBreak%
+ |#2| will be ignored%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% Der Befehl \cs{SetIndexFormat} setzt das gewünschte Format für den jeweilgen
+% Indexeintrag.
+% \begin{macrocode}
+\newcommand*\SetIndexFormat[2]{%
+ \CheckIndexFormat{#1}{#2}%
+ \IfBooleanTF{#1}{%
+ \def\@IndexFormat{#1}%
+ }{%
+ \IfValueTF{#2}{\def\@IndexFormat{#2}}{\def\@IndexFormat{}}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \@IndexFormat
+% \end{macro}^^A \SetIndexFormat
+% \end{macro}^^A \CheckIndexFormat
+% \begin{macro}{\if@declare}
+% \begin{macro}{\if@stareddeclare}
+% \changes{v2.02}{2014/10/09}{neu}%^^A
+% \begin{macro}{\if@openindex}
+% \begin{macro}{\if@noindex}
+% Dies sin ein paar Hilfsmakros zur Steuerung des Markup sowie der Ausgabe von
+% Deklarationen, Index und Änderungsliste, welche bei den nächsten Befehlen und
+% Umgebungen genutzt werden.
+% \begin{macrocode}
+\newif\if@declare
+\newif\if@stareddeclare
+\newif\if@openindex
+\newif\if@noindex
+% \end{macrocode}
+% \end{macro}^^A \if@noindex
+% \end{macro}^^A \if@openindex
+% \end{macro}^^A \if@stareddeclare
+% \end{macro}^^A \if@declare
+%
+% \subsubsection{Abarbeitung der Markup-Befehle}
+%
+% In der Klasse \cls{tudscrman} werden die Markup-Befehle entweder im Fließtext
+% verwendet und dabei automatisch Einträge in den Index erzeugt oder aber diese
+% werden als Argument der Umgebung \env{Declaration} genutzt.
+%
+% \begin{macro}{\@ProcessOutput}
+% \changes{v2.02}{2014/10/08}{Markup für Index und Fließtext getrennt}%^^A
+% \changes{v2.02}{2014/10/09}{Anpassung für Umgebung \env{Declaration*}}%^^A
+% Der Befehl \cs{@ProcessOutput} ist das Herzstück der Auszeichnungen aller
+% Elemente. Das erste obligatorische Argument ist der übergebene Wert, welcher
+% in einer bestimmten Form ausgezeichnet werden soll. Darauf folgen die ein
+% möglicher \oarg{Anhang} sowie ggf. das \val{'}\meta{Kürzel}\val{'} für die
+% Erweiterung der Referenzierunug im Fließtext. Danach wird der Zielindex
+% \marg{Index} und~-- für Parameter~-- der \parg{Haupteintrag} übergeben. Es
+% folgt der zu erstellende Indexeintrag mit \oarg{Vorsatz}, \marg{Eintrag} und
+% \oarg{Anhang}. Die Formatierung für den Indexbefehl wurde zuvor durch
+% \cs{SetIndexFormat} in \cs{@IndexFormat} gespeichert. Der vollständige
+% Funktionsaufruf lautet:
+% \newline\begingroup\scriptsize
+% \cs{@ProcessOutput}*
+% \marg{Ausgabe}\oarg{Anhang}\val{'}\meta{Kürzel}\val{'}\ignorespaces%
+% \marg{Index}\parg{Haupteintrag}\oarg{Vorsatz}\marg{Eintrag}\oarg{Anhang}
+% \endgroup
+% \begin{macrocode}
+\NewDocumentCommand\@ProcessOutput{mod''d()md()omo}{%
+% \end{macrocode}
+% Mit dem Schalter \cs{if@declare} wird unterschieden, ob ein beliebiger
+% Auszeichnungsbefehl innerhalb der Umgebung~\env{Declaration} verwendet wird.
+% Ist dies der Fall wird ein Label und mit \cs{@HyperIndex} ein spezieller
+% Indexeintrag für die Deklaration erstellt. Eine Ausgabe der Auszeichnung
+% erfolgt in diesem Fall nicht, dafür ist der Befehl \cs{printdeclarationlist}
+% verantwortlich. Außerdem wird mit Hilfe der \env{Declaration}-Umgebung der
+% Anfang und das Ende der Deklaration für den Indexeintrag mit \cs{@HyperIndex}
+% exakt festgelegt. Der Schalter \cs{if@openindex} wird zu Beginn der Umgebung
+% auf \cs{@openindextrue} gesetzt, am Ende dieser auf \cs{@openindexfalse}.
+% \begin{macrocode}
+ \if@declare%
+ \if@openindex%
+ \IfValueT{#3}{%
+ \ClassWarning{\tudcls@name}{%
+ It is not possible to use any cross-reference\MessageBreak%
+ shorthand like '#3' within the arguments of\MessageBreak%
+ the environment `Declaration'%
+ }%
+ }%
+ \ifx\@IndexFormat\@empty\else%
+ \ClassWarning{\tudcls@name}{%
+ It is not possible to use any indexing format\MessageBreak%
+ like |\@IndexFormat| within the arguments of the\MessageBreak%
+ environment `Declaration'%
+ }%
+ \fi%
+ \if@noindex\else%
+ \IfValueTF{#6}{\edef\@tempa{#5:#6:#8}}{\edef\@tempa{#5:#8}}%
+% \end{macrocode}
+% Wird zur Deklaration die Umgebung \env{Declaration*} genutzt, so wird der
+% Hyperlink ein ganzes Stück nach oben verschoben. Hintergrund ist, dass diese
+% Umgebung eigentlich nur zum Deklarieren von Klassen und Paketen gedacht ist
+% und direkt nach einer Gliederungsüberschrift folgen sollte.
+% \begin{macrocode}
+ \if@stareddeclare%
+ \manualhyperdef'{\@tempa}%
+ \else%
+% \end{macrocode}
+% Andernfalls wird der normale Hyperlink gesetzt. Das Label zum Prüfen wird
+% implizit durch \cs{manualhyperdef} gesetzt.
+% \begin{macrocode}
+ \manualhyperdef{\@tempa}%
+ \fi%
+ \@HyperIndex{#5}{#6}{#7}{#8}{#9}{(declare}%
+ \fi%
+% \end{macrocode}
+% Die \env{Declaration*}"=Umgebung erzeugt keine direkte Ausgabe sondern nur
+% die Hyperlinks und Indexeinträge. Die Nennung der Klasse bzw. des Paketes
+% oder der Pakete sollte in der Überschrift davor erfolgen.
+% \begin{macrocode}
+ \if@stareddeclare\else%
+ #1\IfValueT{#2}{#2}%
+ \fi%
+ \else%
+ \if@noindex\else%
+ \@HyperIndex{#5}{#6}{#7}{#8}{#9}{declare)}%
+ \fi%
+ \fi%
+ \else%
+% \end{macrocode}
+% Findet der Auszeichnungsbefehl außerhalb der \env{Declaration}-Umgebung im
+% Fließtext Verwendung, wird für den Fall, dass keine Sternversion genutzt
+% wurde, mit \cs{@HyperIndex} ein Eintrag im dazugehörigen Index erzeugt.
+% \begin{macrocode}
+ \ifx\@IndexFormat\relax%
+ \ClassError{\tudcls@name}{\string\SetIndexFormat\space unused}{%
+ It seems you have forgotten to use \string\SetIndexFormat%
+ }%
+ \else%
+ \expandafter\IfBooleanF\expandafter{\@IndexFormat}{%
+ \@HyperIndex{#5}{#6}{#7}{#8}{#9}{\@IndexFormat}%
+ }%
+ \fi%
+% \end{macrocode}
+% Danach erfolgt die Ausgabe der Auszeichnung. Sollte für diesen ein Label
+% durch eine Deklaration innerhalb der \env{Declaration}-Umgebung definiert
+% worden sein, so wird auf dieses ein Hyperlink gesetzt. Ansonsten erfolgt die
+% normale textuelle Ausgabe. Für Parameter muss der Hyperlink dabei aufgrund
+% des definierten Haupteintrag etwas anders ausgeführt werden (\cs{@tempa}).
+% \begin{macrocode}
+ \IfValueTF{#6}{\edef\@tempa{#5:#6:#8}}{\edef\@tempa{#5:#8}}%
+ \ifcsdef{r@\@tempa}{%
+% \end{macrocode}
+% Wurde ein Format für den Querverweis gesetzt, muss dieses validiert werden.
+% Gültige Kürzel sind 'auto', 'page' und 'full'. Damit werden die erzeugten
+% Querverweise um den Gliederungsabschnitt, die Seite oder beides ergänzt.
+% Außerdem kann mit 'none' der Hyperlink selbst unterbunden werden.
+% \begin{macrocode}
+ \let\@tempb\relax%
+ \def\@tempc{\mbox{\hyperref{}{\jobname}{\@tempa}{#1}\IfValueT{#2}{#2}}}%
+ \IfValueT{#3}{%
+ \def\@tempb{%
+ \ClassWarning{\tudcls@name}{%
+ You've used the unknown cross-reference\MessageBreak%
+ shorthand '#3'. Only 'auto', 'page'\MessageBreak%
+ and 'full' as well as 'none' are valid%
+ }%
+ }%
+ \ifstr{#3}{auto}{\def\@tempb{ in \autoref{\@tempa}}}{}%
+ \ifstr{#3}{page}{\def\@tempb{ \vpageref{\@tempa}}}{}%
+ \ifstr{#3}{full}{\def\@tempb{ in \fullref{\@tempa}}}{}%
+ \ifstr{#3}{none}{%
+ \let\@tempb\relax%
+ \def\@tempc{\mbox{#1\IfValueT{#2}{#2}}}%
+ }{}%
+ }%
+ \@tempc\@tempb%
+ }{%
+% \end{macrocode}
+% Wurde ein Format für den Querverweis gesetzt und es existiert kein passendes
+% Label, wird eine Warnung ausgegeben.
+% \begin{macrocode}
+ \IfValueT{#3}{%
+ \ClassWarning{\tudcls@name}{%
+ No cross-reference created, label \@tempa\space is missing%
+ }%
+ }%
+% \end{macrocode}
+% Sollte ein Paket mit \cs{Package} angegeben worden sein, so wurde das erste
+% optionale Argument in runden Klammern verwendet. Dieses wird genutzt, um
+% einen Hyperlink auf CTAN zu generieren. Die Ausgabe selbst besteht in jedem
+% Fall aus dem ersten obligatorischen und ggf. dem ersten optionalen Argument.
+% \begin{macrocode}
+ \IfValueTF{#4}{%
+ \href{http://www.ctan.org/pkg/#4}{\mbox{#1\IfValueT{#2}{#2}}}%
+ }{%
+ \mbox{#1\IfValueT{#2}{#2}}%
+ }%
+ }%
+ \fi%
+% \end{macrocode}
+% Zum Schluss wird \cs{@IndexFormat} zurückgesetzt.
+% \begin{macrocode}
+ \let\@IndexFormat\relax%
+}
+% \end{macrocode}
+% \end{macro}^^A \@ProcessOutput
+% \begin{macro}{\hyperidx}
+% \changes{v2.02}{2014/08/16}{neu}%^^A
+% Aufgrund der Nichtbeachtung von RegExp"=Ausdrücken durch den Indexprozessor
+% \texttt{texindy} (\url{http://sourceforge.net/p/xindy/bugs/22/}) muss hierfür
+% etwas getrickst werden. Der Befehl \cs{hyperidx} hat ein optionales Argument,
+% in welchem das für \cs{manualhyperref} obligatorische Label enthalten ist.
+% Das führt dazu, dass \texttt{texindy} dieses beim internen Filtern in eckigen
+% Klammern beibehält und es anschließend über eine in \texttt{tudscrman.xdy}
+% eigens definierte \texttt{merge-rule} verworfen werden kann.
+% \begin{macrocode}
+\newrobustcmd*\hyperidx[2][]{\manualhyperref{#1}{#2}}
+% \end{macrocode}
+% \end{macro}^^A hyperidx
+% \begin{macro}{\@HyperIndex}
+% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A
+% Dieser Befehl sorgt für die eigentlichen Indexeinträge. Dabei werden für
+% Einträge, welche innerhalb der \env{Declaration}-Umgebung deklariert wurden,
+% ein Hyperlink im Index erstellt. Das erste Argument \marg{Index} enthält den
+% gewünschten Zielindex. Danach folgt~-- für Parameter~-- der Haupteintrag.
+% Daran schließt der Indexeintrag selbst mit \marg{Vorsatz}, \marg{Eintrag},
+% \marg{Anhang} und zum Abschluss \oarg{Formatierung} an. Der vollständige
+% Funktionsaufruf lautet:
+% \newline\begingroup\scriptsize
+% \cs{@HyperIndex}\marg{Index}\marg{Haupteintrag}\ignorespaces%
+% \marg{Vorsatz}\marg{Eintrag}\marg{Anhang}\marg{Formatierung}
+% \endgroup
+% \begin{macrocode}
+\NewDocumentCommand\@HyperIndex{mmmmmm}{%
+ \IfValueTF{#3}{\def\@tempa{#3}}{\def\@tempa{}}%
+ \IfValueTF{#5}{\def\@tempb{#5}}{\def\@tempb{}}%
+ \IfValueTF{#6}{\edef\@tempc{|#6}}{\def\@tempc{}}%
+% \end{macrocode}
+% Auch hier wird unterschieden, ob es sich um einen Parameter (keys) handelt.
+% Wurde für einen Parameter eine Umgebung oder ein Befehl bereits definiert,
+% werden zwei Indexeinträge generiert. Einer beim Befehl selber als
+% Untereintrag für den jeweiligen Parameter und einer im Index für Parameter
+% selbst mit der dazugehörigen Umgebung bzw. dem dazugehörigen Befehl. Beide
+% erhalten einen entsprechenden Hyperlink zur Deklaration.
+% \begin{macrocode}
+ \IfValueTF{#2}{%
+ \ifcsdef{r@#1:#2:#4}{%
+ \edef\@tempb{#1:#2:#4}%
+ \index[#1]{%
+ #2!\hyperidx[\@tempb]{\begingroup\expandonce\@tempa#4\endgroup}%
+ ~{\idxfont(Parameter)}\expandonce\@tempc%
+ }%
+ \begingroup%
+ \let\Environment\@firstofone%
+ \def\Macro##1{\bsc##1}%
+ \index[keys]{%
+ \hyperidx[\@tempb]{%
+ \begingroup\expandonce\@tempa#4\endgroup~{\idxfont(\texttt{#2})}%
+ }%
+ \expandonce\@tempc%
+ }%
+ \endgroup%
+ }{%
+ \index[#1]{%
+ #2!\begingroup\expandonce\@tempa#4\endgroup%
+ ~{\idxfont(Parameter)}\expandonce\@tempc%
+ }%
+ \index[keys]{%
+ \begingroup\expandonce\@tempa#4\endgroup~{\idxfont(\texttt{#2})}%
+ \expandonce\@tempc%
+ }%
+ }%
+% \end{macrocode}
+% Falls es sich nicht um einen Parameter handelt, wird lediglich der Eintrag im
+% speziellen Index vorgenommen und ggf. ein Hyperlink erzeugt.
+% \begin{macrocode}
+ }{%
+ \ifcsdef{r@#1:#4}{%
+ \index[#1]{%
+ \hyperidx[#1:#4]{%
+ \begingroup\expandonce\@tempa#4\endgroup\expandonce\@tempb%
+ }%
+ \expandonce\@tempc%
+ }%
+ }{%
+ \index[#1]{%
+ \begingroup\expandonce\@tempa#4\endgroup%
+ \expandonce\@tempb\expandonce\@tempc%
+ }%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \@HyperIndex
+%
+% \subsubsection{Deklarationen}
+%
+% Die Umgebungen \env{Declaration} und \env{Declaration*} werden beide für die
+% Auszeichnung von Optionen, Umgebungen und Befehlen verwendet, die \TUDScript
+% dem Anwender zur Verfügung stellt.
+%
+% \begin{environment}{Declaration}
+% \begin{macro}{\printdeclarationlist}
+% \begin{macro}{\@declarationlist}
+% \begin{macro}{\@presetlist}
+% \begin{macro}{\if@presetlist}
+% \begin{macro}{\@additionallist}
+% \begin{macro}{\if@additionallist}
+% \begin{macro}{\@gobbleparameters}
+% \changes{v2.02}{2014/10/09}{neu}%^^A
+% Es werden einige Hilfsmakros für die Ausgabe einer Deklaration sowie der
+% dazugehörigen Änderungsliste initialisiert.
+% \begin{macrocode}
+\newcommand*\@declarationlist{}
+\let\@declarationlist\relax
+\newcommand*\@presetlist{}
+\let\@presetlist\relax
+\newif\if@presetlist
+\newcommand*\@additionallist{}
+\let\@additionallist\relax
+\newif\if@additionallist
+\newcommand*\@gobbleparameters{%
+ \let\PName\@gobble%
+ \let\PBoolean\relax%
+ \let\PBName\@gobble%
+ \let\PSet\relax%
+ \let\PValue\@gobble%
+ \let\Parameter\@gobble%
+ \let\OParameter\@gobble%
+ \let\LParameter\relax%
+ \let\OLParameter\@gobble%
+ \let\PParameter\@gobble%
+ \let\POParameter\@gobble%
+}
+% \end{macrocode}
+% Die \env{Declaration}-Umgebung dient zur Deklaration von Optionen, Umgebungen,
+% Befehlen, Parametern, Bezeichnern, Längen, Schriftelementen und Farben. Diese
+% werden mit den entsprechenden Auszeichnungsbefehlen als obligatorisches
+% Argument übergeben. Zuvor kann noch vorher im ersten optionalen Argument eine
+% Beschreibung für die Änderungsliste in der Form \oarg{Verison!Beschreibung}
+% angegeben werden. Danach kann im dritten Argument~-- das zweite optionale~--
+% die Voreinstellung für eine Option oder dergleichen angegeben werden. Das
+% nächste optionale Argument erlaubt die Angabe einer bedingten Voreinstellung,
+% also einer anderen Voreinstellung als der zuerst angegeben unter bestimmten
+% Voraussetzungen. Diese wird in der Form \oarg{Bedingung:Voreinstellung}
+% angegeben. Das letzte Argument ist ebenfalls optional, wird aber in der Form
+% \marg{Zusatz} angegeben und enthält ggf. zusätzliche Informationen.
+%
+% Die Umgebung selbst gibt zu Beginn nichts weiter aus sondern sammelt
+% lediglich alle übergebenen Argumente in jeweiligen Listen. Die eigentliche
+% Ausgabe erfolgt mit dem Befehl \cs{printdeclarationlist}.
+% \begin{macrocode}
+\NewDocumentEnvironment{Declaration}{omoog}{%
+ \listadd\@declarationlist{#2}%
+% \end{macrocode}
+% Die optional angegebenen Änderungen werden später mit \cs{ChangedAt@Process}
+% verarbeitet und für die Änderungsliste sowie die Randnotiz mit
+% \cs{@changedatdeclare} in der Liste \cs{@changedatdeclarelist} gesichert.
+% \begin{macrocode}
+ \@changedatdeclare{#1}{#2}%
+% \end{macrocode}
+% Hier noch die Listen für Voreinstellungen\dots
+% \begin{macrocode}
+ \IfValueTF{#3}{%
+ \@presetlisttrue%
+ \IfValueTF{#4}{%
+ \def\@tempa[##1:##2]{##1:\,##2}%
+ \listeadd\@presetlist{preset:\,#3\,|\,\expandonce{\@tempa[#4]}}%
+ }{%
+ \listadd\@presetlist{preset:\,#3}%
+ }%
+ }{%
+ \listadd\@presetlist{\relax}%
+ }%
+% \end{macrocode}
+% \dots sowie zusätliche Informationen.
+% \begin{macrocode}
+ \IfValueTF{#5}{%
+ \@additionallisttrue%
+ \listadd\@additionallist{\hspace*{\tabcolsep}\small(#5)}%
+ \in@{\Environment}{#2}%
+ \ifin@ \listadd\@additionallist{\tabularnewline}\fi%
+ }{%
+ \listadd\@additionallist{\relax}%
+ }%
+}{%
+% \end{macrocode}
+% Am Ende der Umgebung wird das übergebenen Hauptargument erneut ausgeführt,
+% was zum Beenden der Indexeinträge für die jeweilige Deklaration führt
+% (\cs{@openindexfalse}, siehe \cs{@ProcessOutput}). Dafür werden die Makros für
+% die Angabe obligatorischer und optionaler Parameter lokal umdefiniert.
+% \begin{macrocode}
+ \ifx\@declarationlist\relax\else%
+ \ClassError{\tudcls@name}{\string\printdeclarationlist\space is missing}{%
+ \string\@declarationlist\space is not empty. Did you forget\MessageBreak%
+ to print this list with \string\printdeclarationlist?%
+ }%
+ \fi%
+ \@gobbleparameters%
+ \vskip-\lastskip%
+ \@declaretrue\@openindexfalse#2\@declarefalse%
+ \pagebreak[0]%
+}
+% \end{macrocode}
+% Mit dem Befehl \cs{printdeclarationlist} erfolgt die eingentliche Ausgabe
+% aller Deklarationen. Zweck ist es, mehrere \env{Declaration}-Umgebungen
+% ineinander verschachteln zu können und eine Ausgabe aller auf einmal zu
+% erzeugen. Die durch die ggf. nacheinander folgenden Deklarationen wurden in
+% entsprechenden Listen gesammelt und werden hier jetzt formatiert ausgegben.
+% \begin{macrocode}
+\NewDocumentCommand\printdeclarationlist{sod()}{%
+ \ifx\@declarationlist\relax\else%
+ \ifvmode\else\par\fi%
+ \addpenalty{\@beginparpenalty}%
+ \addvspace{1.5\baselineskipglue}%
+% \end{macrocode}
+% Die Sternversion erzeugt die Ausgabe ohne Deklarationsindexbefehle. Das
+% optionale Argument kann genutzt werden, um das standardmäßige Atrribut für
+% die Änderungsliste, welches in \cs{@changedatdeclaredefault} hinterlegt ist,
+% zu ändern. Dies ist für die normale Version auf \emph{neu} und für die
+% Sternversion auf \emph{entfällt} voreingestellt.
+% \begin{macrocode}
+ \IfBooleanTF{#1}{%
+ \global\@noindextrue%
+ \renewcommand*\@changedatdeclaredefault{\emph{entf\"allt}}%
+ }{%
+ \global\@noindexfalse%
+ }%
+ \IfValueT{#2}{\renewcommand*\@changedatdeclaredefault{\emph{#2}}}%
+ \@declaretrue\@openindextrue%
+ \@afterindentfalse\@afterheading%
+% \end{macrocode}
+% Die deklarierten Optionen, Umgebungen, Befehle etc. werden umrahmt. Dabe
+% erfolgt die Ausgabe mithilfe einer Box, um die Größe des Deklarationsrahmens
+% zu speichern und die Änderungsmarkierung am Seitenrand auf die richtige Höhe
+% zu platzieren. Da innerhalb von Tabellen der Wert von \cs{baselineskip} auf
+% \makeatletter\the\z@\makeatother~gesetzt wird, muss für einen richtig
+% platzierten Link dieser in \cs{HyperRaiseLinkDefault} gesichert werden.
+% \begin{macrocode}
+ \def\@tempa##1{\ignorespaces##1\tabularnewline}%
+ \edef\HyperRaiseLinkDefault{\the\baselineskip}%
+ \setbox0\hbox{%
+ \begin{tabular}{|l|}%
+ \hline%
+ \forlistloop\@tempa{\@declarationlist}%
+ \hline%
+ \end{tabular}%
+ }\usebox0%
+ \@declarefalse%
+% \end{macrocode}
+% Danach werden ggf. die Voreinstellungen und Zusatzinformationen gesetzt.
+% \begin{macrocode}
+ \ifboolexpr{bool {@presetlist} or bool {@additionallist}}{%
+ \if@presetlist%
+ \qquad%
+ \texttt{%
+ \begin{tabular}{l}%
+ \forlistloop\@tempa{\@presetlist}%
+ \end{tabular}%
+ }%
+ \fi%
+ \if@additionallist%
+ \begin{tabular}{@{}l@{}}%
+ \forlistloop\@tempa{\@additionallist}%
+ \end{tabular}%
+ \fi%
+ }{}%
+% \end{macrocode}
+% Alle für die Deklaration verwendeten Listen werden nach ihrer Abarbeitung
+% zurückgesetzt.
+% \begin{macrocode}
+ \global\let\@declarationlist\relax%
+ \global\let\@presetlist\relax%
+ \global\@presetlistfalse%
+ \global\let\@additionallist\relax%
+ \global\@additionallistfalse%
+% \end{macrocode}
+% Die Einträge in der Änderungsliste sowie die dazugehörige Randnotiz werden
+% innerhalb der Deklaration mit \cs{printchangedatlist} erzeugt. Das optionale
+% Argument sorgt für die Verschiebung der Randnotiz auf die richtige Höhe, um
+% den Höhenversatz zwischen Randnotiz und Deklarationsrahmen auszugleichen.
+% \begin{macrocode}
+ \printchangedatlist*[%
+ \dimexpr.5\ht\strutbox+.5\dp\strutbox-.5\ht0-.5\dp0\relax%
+ ]%
+% \end{macrocode}
+% Zum Schluss wird das optionale Argument (in runden Klammern) neben der
+% Deklarationsbox ausgegeben.
+% \begin{macrocode}
+ \IfValueT{#3}{#3}%
+ \par\nobreak%
+ \vskip 1.5\baselineskipglue%
+ \@afterindentfalse\@afterheading%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \@gobbleparameters
+% \end{macro}^^A \if@additionallist
+% \end{macro}^^A \@additionallist
+% \end{macro}^^A \if@presetlist
+% \end{macro}^^A \@presetlist
+% \end{macro}^^A \@declarationlist
+% \end{macro}^^A \printdeclarationlist
+% \end{environment}^^A Declaration
+% \begin{environment}{Declaration*}
+% \changes{v2.02}{2014/10/09}{neu}%^^A
+% Die Sternversion der Umgebung \env{Declaration*} ist für die vereinfachte
+% Deklaration von Klassen, Paketen etc. gedacht, bei denen keine Ausgabe
+% sondern lediglich Hyperlink, Indexeintrag und Änderungsnotiz erzeugt werden
+% sollen. Dabei sollte diese direkt nach einer Gliederungsüberschrift genutzt
+% werden, in welcher das zu deklarierende ELement (Klasse, Paket etc.) genannt
+% wird.
+% \begin{macrocode}
+\NewDocumentEnvironment{Declaration*}{om}{%
+ \@changedatdeclare{#1}{#2}%
+ \@stareddeclaretrue%
+ \global\@noindexfalse%
+ \@declaretrue\@openindextrue#2\@declarefalse%
+ \@stareddeclarefalse%
+}{%
+ \ifx\@changedatdeclarelist\relax\else%
+ \ClassError{\tudcls@name}{\string\printchangedatlist\space is missing}{%
+ \string\@changedatdeclarelist\space is not empty. Did you\MessageBreak%
+ forget to print this list with \string\printchangedatlist?%
+ }%
+ \fi%
+ \@gobbleparameters%
+ \@declaretrue\@openindexfalse#2\@declarefalse%
+}
+% \end{macrocode}
+% \end{environment}^^A Declaration*
+% \begin{environment}{tabularm}
+% \begin{macro}{\allcolumnpar}
+% \begin{macro}{\@allcolumnpar}
+% \begin{macro}{\tabularm@box}
+% \begin{macro}{\tabularm@num}
+% \begin{length}{\tabularm@wd}
+% Die Umgebung \env{tabularm} ist eine Erweiterung der \env{tabularm}-Umgebung.
+% In dieser wird die Breite der zu setzenden Tabelle mit Hilfe der Box
+% \cs{tabularm@box} in \cs{tabularm@wd} gespeichert. Anschließend kann mit dem
+% Befehl \cs{allcolumnpar} eine Zeile über alle Spalten der Tabelle
+% ausgegeben werden. Dabei ist das zu übergebende Argument die Anzahl der zu
+% erzeugenden, linksbündigen Spalten.
+% \begin{macrocode}
+\newsavebox\tabularm@box
+\newlength\tabularm@wd
+\newcommand*\tabularm@num{1}
+\NewEnviron{tabularm}[1]{%
+ \begin{lrbox}{\tabularm@box}%
+ \let\allcolumnpar\@gobble%
+ \begin{tabular}{*{#1}l}\BODY\end{tabular}%
+ \end{lrbox}%
+ \setlength{\tabularm@wd}{\wd\tabularm@box}%
+ \def\tabularm@num{#1}%
+ \let\allcolumnpar\@allcolumnpar%
+ \begin{tabular}{*{#1}l}\BODY\end{tabular}%
+}
+\newcommand*\@allcolumnpar[1]{%
+ \multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}%
+}
+% \end{macrocode}
+% \end{length}^^A \tabularm@wd
+% \end{macro}^^A \tabularm@box
+% \end{macro}^^A \tabularm@num
+% \end{macro}^^A \@allcolumnpar
+% \end{macro}^^A \allcolumnpar
+% \end{environment}^^A tabularm
+% \begin{environment}{values}
+% \begin{macro}{\before@values}
+% \begin{macro}{\item@values}
+% \begin{macro}{\itemtrue}
+% \begin{macro}{\itemfalse}
+% \begin{macro}{\tud@item@val}
+% \begin{macro}{\tud@item@add}
+% \begin{macro}{\tud@item@format}
+% \begin{macro}{\tud@item}
+% \begin{macro}{\tud@@item}
+% \begin{macro}{\tud@@@item}
+% Die Liste \env{values} dient zum Benennen der möglichen Werte für einen
+% bestimmten Schlüssel. Im Handbuch kommt diese Liste vorallem bei Optionen
+% aber auch bei bestimmten Befehls- und Optionsparametern zum Einsatz.
+% \begin{macrocode}
+\newlist{values}{description}{1}
+\setlist[values]{%
+ topsep=.5\baselineskipglue,labelwidth=\columnwidth,labelsep=0pt,%
+ font=\normalfont\ttfamily,before*=\before@values%
+}
+% \end{macrocode}
+% Zu Beginn der Umgebung wird die Definition des \cs{item}-Befehls gesichert
+% und anschließend geändert.
+% \begin{macrocode}
+\newcommand*\before@values{%
+ \let\item@values\item%
+ \let\item\tud@item%
+}
+% \end{macrocode}
+% Die folgenden beiden Befehle enthalten die Standardwerte für boolsche
+% Schalter.
+% \begin{macrocode}
+\newcommand*\itemfalse{\def\tud@item@val{false/off/no}\item}
+\newcommand*\itemtrue{\def\tud@item@val{true/on/yes}\item}
+% \end{macrocode}
+% Mit der neuen Definition kann der Säumniswert mit \cs{item*} explizit in der
+% Liste hervorgehoben werden.
+% \begin{macrocode}
+\newcommand*\item@values{}
+\newcommand*\tud@item@val{}
+\newcommand*\tud@item@add{}
+\newcommand*\tud@item@format{}
+\newcommand*\tud@item{%
+ \@ifstar{%
+ \def\tud@item@add{(S\"aumniswert)}%
+ \let\tud@item@format\emph%
+ \tud@@item%
+ }{%
+ \let\tud@item@add\relax%
+ \let\tud@item@format\relax%
+ \tud@@item%
+ }%
+}
+% \end{macrocode}
+% In der zweiten Instanz wird das optionale Argument von \cs{item} ausgewertet.
+% Dabei wird das Hilfsmakro \cs{tud@item@val} beachtet, welches evtl. mit den
+% Befehlen \cs{itemtrue} oder \cs{itemfalse} gesetzt wurde und vor dem
+% optionalen Argument aufgeführt wird.
+% \begin{macrocode}
+\newcommand*\tud@@item[1][]{%
+ \ifstrempty{#1}%
+ {\edef\@tempa{\tud@item@val}}%
+ {\ifstr{\tud@item@val}{}%
+ {\edef\@tempa{#1}}%
+ {\edef\@tempa{\tud@item@val/#1}}%
+ }%
+ \def\tud@item@val{}%
+% \end{macrocode}
+% Wurde weder \cs{tud@item@val} gesetzt noch ein Wert im optionalen Argument
+% von \cs{item} angegeben, so wird der gesicherte Befehl ausgeführt. Ansonsten
+% folgt die dritte Instanz.
+% \begin{macrocode}
+ \ifstr{\@tempa}{}{\item@values}{\tud@@@item}%
+}
+% \end{macrocode}
+% Der gesicherte Befehl wird mit den aufbereiteten Formatierungen genutzt.
+% \begin{macrocode}
+\newcommand*\tud@@@item[1][]{%
+ \ifstrempty{#1}{}{%
+ \ifx\tud@item@add\relax%
+ \def\tud@item@add{#1}%
+ \else%
+ \apptocmd{\tud@item@add}{~#1}{}{}%
+ \fi%
+ }%
+ \item@values[%
+ \tud@item@format{\@tempa:}%
+ \ifx\tud@item@add\relax\else%
+ {\normalfont\space\footnotesize\tud@item@add}%
+ \fi%
+ ]%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@@@item
+% \end{macro}^^A \tud@@item
+% \end{macro}^^A \tud@item
+% \end{macro}^^A \tud@item@format
+% \end{macro}^^A \tud@item@add
+% \end{macro}^^A \tud@item@val
+% \end{macro}^^A \itemfalse
+% \end{macro}^^A \itemtrue
+% \end{macro}^^A \item@values
+% \end{macro}^^A \before@values
+% \end{environment}^^A values
+%
+% \subsubsection{Erläuterungen und weiterführende Ergänzungen im Handbuch}
+%
+% Es folgen einige Umgebungen, mit welchen bestimmte Aspekte oder Pakete im
+% Handbuch erläutert werden.
+%
+% \begin{environment}{Example}
+% \begin{environment}{Example*}
+% Diese Umgebung wird für die exemplarische Erläuterung von bestimmten Aspekten
+% im Handbuch verwendet. Wenn dafür ein Quelltextauszug nötig ist, kann
+% innerhalb dieser die \env{Code}-Umgebung genutzt werden. Die Sternversion
+% unterdrückt dabei das Zurücksetzen des eigentlich entfernten vertikalen
+% Abstandes.
+% \begin{macrocode}
+\newenvironment{Example}{\@nameuse{Example*}}{%
+ \@nameuse{endExample*}%
+ \addvspace{-\topsep}%
+}
+\newenvironment{Example*}{%
+ \labeling{{\usekomafont{disposition}Beispiel:\ }}%
+ \item[{\usekomafont{disposition}Beispiel:\ }]%
+}{%
+ \endlabeling%
+}
+% \end{macrocode}
+% \end{environment}^^A Example*
+% \end{environment}^^A Example
+% \begin{environment}{Code}
+% \begin{macro}{\tud@currentHref}
+% Folgend werden Befehle und Umgebungen für die Darstellung von Quelltexten im
+% Handbuch definiert. Mit dieser Umgebung können kurze Quelltextbeispiele im
+% Handbuch ausgegeben werden. Sicherlich sinnvoll ist, die \env{Code}-Umgebung
+% innerhalb von \env{Example} oder \env{quoting} zu verwenden, um den
+% Quelltext etwas abzuheben.
+% \begin{macrocode}
+\lstnewenvironment{Code}[1][]{\lstset{style=tudscr,#1}}{}
+% \end{macrocode}
+% Innerhalb der Umgebung \env{Code} wird \cs{@currentHref} unerwünschter Weise
+% geändert. Um dies zu vermeiden, wird dieser Befehl gesichert und anschließend
+% zurückgesetzt.
+% \begin{macrocode}
+\newcommand*\tud@currentHref{}
+\BeforeBeginEnvironment{Code}{\global\let\tud@currentHref\@currentHref}
+\AfterEndEnvironment{Code}{\global\let\@currentHref\tud@currentHref}
+% \end{macrocode}
+% \end{macro}^^A \tud@currentHref
+% \end{environment}^^A Code
+% \begin{environment}{packages}
+% \begin{macro}{\itempackages}
+% \begin{macro}{\tud@item@pkg}
+% \changes{v2.02}{2014/10/08}{\cs{DeclarePackage} entfernt}%^^A
+% \changes{v2.02}{2014/10/09}{optionales Argument für CTAN-Link}%^^A
+% \begin{macro}{\before@packages}
+% Ähnlich wie für die Auflistung von Werten eines Schlüssels wird auch mit der
+% Charakterisierung von Paketen verfahren. Diese werden in der Auflistung
+% speziell gekennzeichnet und mit \cs{DeclarePackage} im Index eingetragen.
+% \begin{macrocode}
+\newlist{packages}{description}{2}
+\setlist[packages]{%
+ topsep=\medskipamount,labelwidth=\linewidth,labelsep=0pt,font=\normalfont,%
+ parsep=\parskip,listparindent=\parindent,before=\before@packages%
+}
+\newcommand*\itempackages{}
+\newcommand*\before@packages{%
+ \ifdefvoid{\itempackages}{%
+ \let\itempackages\item%
+ \let\item\tud@item@pkg%
+ }{}%
+}
+\NewDocumentCommand\tud@item@pkg{od()}{%
+ \itempackages[{%
+ \IfValueT{#1}{%
+ \manualhyperdef{files:#1}%
+ \IfValueTF{#2}{%
+ \def\@tempa{http://www.ctan.org/pkg/#2}%
+ }{%
+ \def\@tempa{http://www.ctan.org/pkg/#1}%
+ }%
+ \href{\@tempa}{\Package{#1}'none'|!|}%
+ }%
+ }]%
+}
+% \end{macrocode}
+% \end{macro}^^A \before@packages
+% \end{macro}^^A \tud@item@pkg
+% \end{macro}^^A \itempackages
+% \end{environment}^^A packages
+%
+% \subsubsection{Änderungsliste}
+%
+% Um dem Anwender einen schnellen Überblick zu Änderungen der aktuellen Verison
+% bereitstellen zu können, werden Befehle zur automatisierten Erzeugung einer
+% solchen Liste definiert.
+%
+% \begin{macro}{\printchangedatlist}
+% \changes{v2.02}{2014/10/09}{neu}%^^A
+% \begin{macro}{\@changedatdeclare}
+% \changes{v2.02}{2014/10/09}{neu}%^^A
+% \begin{macro}{\@changedatdeclaredefault}
+% \changes{v2.02}{2014/10/09}{neu}%^^A
+% \begin{macro}{\@changedatdeclarelist}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% Um für Änderungsnotizen die dazugehörige Option, Befehl etc. bei einer
+% Deklaration kenntlich zu machen, wird das deklarierte Element zusammen mit
+% der Notiz in einer Liste gespeichert. Da mehrere kommaseparierte Werte
+% angegeben werden können, muss das optionale Argument der Umgebung
+% \env{Declaration} dahingehend abgearbeitet werden. Wenn keine weitere
+% Erklärung angegeben wurde, wird der entspredchende Eintrag mit dem Attribut
+% versehen, welches in \cs{@changedatdeclaredefault} gespeichert ist.
+% \begin{macrocode}
+\newcommand*\@changedatdeclarelist{}
+\let\@changedatdeclarelist\relax
+\newcommand*\@changedatdeclaredefault{\emph{neu}}
+\newcommand*\@changedatdeclare[2]{%
+ \IfValueT{#1}{%
+ \@for\@tempa:=#1\do{%
+ \protected@expandtwoargs\in@{!}{\@tempa}%
+ \ifin@%
+ \expandafter\listadd\expandafter\@changedatdeclarelist%
+ \expandafter{\@tempa!#2}%
+ \else%
+ \expandafter\listadd\expandafter\@changedatdeclarelist%
+ \expandafter{\@tempa!\@changedatdeclaredefault!#2}%
+ \fi%
+ }%
+ }%
+}
+% \end{macrocode}
+% Die Einträge in der Änderungsliste sowie die dazugehörige Randnotiz werden
+% mit dem Makro \cs{ChangedAt@Process} abgearbeitet, sortiert und erstellt. Bei
+% \cs{printchangedatlist} wird mit dem optionalen Argument der Versatz für die
+% Randnotiz gesetzt. Dieser wird wie auch die Liste an \cs{ChangedAt@Process}
+% übergeben, womit diese und die Randnotiz letztendlich erzeugt werden.
+% \begin{macrocode}
+\NewDocumentCommand\printchangedatlist{sO{\z@}}{%
+ \ifx\@changedatdeclarelist\relax\else%
+ \ChangedAt@Process{#2}{\@changedatdeclarelist}%
+ \global\let\@changedatdeclarelist\relax%
+ \IfBooleanF{#1}{%
+ \par\nobreak\vskip\dimexpr-\parskip-\baselineskip%
+ \@afterindentfalse\@afterheading%
+ }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \@changedatdeclarelist
+% \end{macro}^^A \@changedatdeclaredefault
+% \end{macro}^^A \@changedatdeclare
+% \end{macro}^^A \printchangedatlist
+% \begin{macro}{\ChangedAt}
+% \changes{v2.02}{2014/07/25}{erweitert}%^^A
+% \changes{v2.02}{2014/10/15}{Sternversion neu (keine Randnotiz)}%^^A
+% An den Befehl \cs{ChangedAt} kann eine kommagetrente Liste mit verschiedenen
+% Versionsnummern und dazugehörigen Änderungen übergeben werden. Er wird in der
+% Form: \cs{ChangedAt}\marg{Version!Definition,Version!Erweiterung} genutzt.
+% Der Prozess selbst wird mit \cs{ChangedAt@Process} durchgeführt. Es wird
+% zu der angegebenen Versionsnummer ein Eintrag in die Änderungsliste erstellt,
+% wenn mit einem Ausrufezeichen getrennt der gewünschte Inhalt gegeben wurde.
+%
+% Alle übergegebenen Versionsnummern werden als Liste mit einmaligen Einträgen
+% in einer Randnotiz gesetzt. Mit dem optionalen Argument kann ein vertikaler
+% dieser angegeben werden. Die Sternversion von \cs{ChangedAt} unterdrückt die
+% Ausgabe dieser Randnotiz.
+% \begin{macrocode}
+\NewDocumentCommand\ChangedAt{sO{\z@}m}{\ChangedAt@Process[#1]{#2}{#3}}
+% \end{macrocode}
+% \end{macro}^^A \ChangedAt
+% \begin{macro}{\ChangedAt@Process}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% \begin{macro}{\ChangedAt@@Process}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% \begin{macro}{\ChangedAt@@@Process}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% \changes{v2.02}{2014/10/16}{Unterteilung Änderungsliste in Bereiche}%^^A
+% \begin{macro}{\ChangedAt@Default}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% \begin{macro}{\ChangedAt@Split}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% \begin{macro}{\@changedatlist}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% \begin{macro}{\@changedatversionlist}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% Mit diesen Befehlen wird die Änderungshistorie in Form eines Index erstellt.
+% Der Befehl \cs{ChangedAt@Process} setzt eine kommagetrennte Liste in eine
+% im Format von \pkg{etoolbox} um. Anschließend wird diese für die Liste der
+% Änderungen mit \cs{ChangedAt@Split} aufgespalten. Die einzelnen Einträge
+% werden mit \cs{ChangedAt@@Process} weiter verarbeitet.
+% \begin{macrocode}
+\newcommand*\@changedatlist{}
+\newcommand*\ChangedAt@Default{}
+\newcommand*\@changedatversionlist{}
+\let\@changedatversionlist\relax
+\newcommand*\ChangedAt@Process[3][]{%
+ \let\@changedatlist\relax%
+ \let\@changedatversionlist\relax%
+ \@for\@tempa:=#3\do{\listeadd{\@changedatlist}{\expandonce\@tempa}}%
+ \forlistloop\ChangedAt@Split{\@changedatlist}%
+% \end{macrocode}
+% Nach der Verarbeitung aller Einräge sind in \cs{@changedatlist} alle
+% angegebenen Versionsnummern genau einmal enthalten. Mit \cs{sortlist} werden
+% diese in die richtige Reihenfolge sortiert und anschließend als Randnotiz in
+% einer Tabelle ausgegeben, falls nicht die Sternversion verwendet wurde.
+% \begin{macrocode}
+ \IfBooleanF{#1}{%
+ \sortlist{\@changedatversionlist}%
+ \strut%
+ \marginnote{%
+ \def\@tempa####1{%
+ \ignorespaces\manualhyperref{####1}{####1}\tabularnewline%
+ }%
+ \begin{tabular}{|l|}%
+ \hline%
+ \forlistloop\@tempa{\@changedatversionlist}%
+ \hline%
+ \end{tabular}%
+ }[#2]%
+ \ignorespaces%
+ }%
+}
+% \end{macrocode}
+% Der Befehl \cs{ChangedAt@Split} teilt ein gegebenes Argument am Delimiter
+% Ausrufezeichen (\enquote{!}) in drei Argumente auf und reicht diese an
+% \cs{ChangedAt@@Process} weiter. Sollte kein oder nur Ausrufezeichen gefunden
+% werden, so wird das zweite und/oder dritte Argument mit dem~-- vom Paket
+% \pkg{xparse} definierten~-- leeren Wert \texttt{-NoValue-} an den Befehl
+% \cs{ChangedAt@@Process} übergeben.
+% \begin{macrocode}
+\NewDocumentCommand\ChangedAt@Split{>{\SplitArgument{2}{!}}m}{%
+ \ChangedAt@@Process#1%
+}
+% \end{macrocode}
+% Hiermit wird der Eintrag in die Änderungshistorie erzeugt. Dabei ist zu
+% unterscheiden, ob der Befehl \cs{ChangedAt} direkt genutzt wurde oder aber
+% der Eintrag innerhalb der \env{Declaration}-Umgebung erfolgte. Dies wird
+% anhand von des dritten Argumentes erkannt. Für den ersten Fall erfolgt ein
+% Eintrag lediglich, wenn neben der Versionsnummer selbst auch eine Erklärung
+% angegben wurde~-- eine Randnotiz wird aber in jedem Fall gesetzt. Im zweiten
+% Fall wird der Erklärung \emph{immer} \cs{ChangedAt@Default} vorangestellt.
+% Sollte keine Erklärung direkt angegeben worden sein, so wird in der
+% Änderungsliste vermerkt, dass es sich um eine \emph{neue} Option, Befehl etc.
+% handelt. Der eigentliche Eintrag selbst erfolgt mit \cs{ChangedAt@@@Process}.
+% \begin{macrocode}
+\newcommand*\ChangedAt@@Process[3]{%
+ \IfValueTF{#3}{%
+% \end{macrocode}
+% Bei der Deklaration von Optionen, Befehlen etc. werden diese automatisch in
+% der Liste der Änderungen im Bereich \enquote{Implementierung} vor der
+% gegebenen Erklärung selbst ausgegeben. Hierfür wird das dritte Argument
+% genutzt. Damit lediglich diese und nicht noch die dazugehörigen Argumente
+% eingetragen werden, werden die relevanten Befehle deaktiviert und das
+% optionale Argument in \cs{ChangedAt@Default} expandiert.
+% \begin{macrocode}
+ \begingroup%
+ \@gobbleparameters%
+ \xdef\ChangedAt@Default{#3}%
+ \endgroup%
+ \ChangedAt@@@Process{#1}{Implementierung}{\ChangedAt@Default: #2}%
+ }{%
+% \end{macrocode}
+% Wurde \cs{ChangedAt} direkt und nicht über das optionale Argument der
+% Umgebungen \env{Declaration} genutzt, erscheint der gewünschte Eintrag im
+% Bereich \enquote{Allgemein}.
+% \begin{macrocode}
+ \IfValueT{#2}{\ChangedAt@@@Process{#1}{Allgemein}{#2}}%
+ }%
+% \end{macrocode}
+% Außerdem wird der Liste \cs{changedatversionlist} die aktuelle Version
+% einmalig hinzugefügt, um alle in einer Randnotiz ausgeben zu können.
+% \begin{macrocode}
+ \xifinlist{#1}{\@changedatversionlist}{}{\listeadd\@changedatversionlist{#1}}%
+}
+% \end{macrocode}
+% Mit \cs{ChangedAt@@@Process} Erfolgen die Einträge in die Änderungsliste.
+% \begin{macrocode}
+\newcommand*\ChangedAt@@@Process[3]{%
+ \begingroup%
+% \end{macrocode}
+% Für geänderte Parameter wird als Haupteintrag das dazugehörige Makro bzw. die
+% entsprechende Umgebung verwendet. Der geänderte Parameter folgt danach.
+% Zuerst muss ggf. das Makro \cs{ChangedAt@Default} expandiert werden.
+% \begin{macrocode}
+ \def\@tempa{#3}%
+ \in@{\ChangedAt@Default}{#3}%
+ \ifin@%
+ \expandafter\def\expandafter\@tempa\expandafter{\ChangedAt@Default}%
+ \fi%
+% \end{macrocode}
+% Danach wird geprüft, ob das Makro \cs{Key} übergeben wurde. Außerdem wird ein
+% Anker in der Änderungsliste für die Referenzierung auf die einzelnen Bereiche
+% (\enquote{Allgemein}, \enquote{Implementierung} und \enquote{Umbenennungen})
+% gesetzt.
+% \begin{macrocode}
+ \expandafter\in@\expandafter\Key\expandafter{\@tempa}%
+ \ifin@%
+ \begingroup%
+ \RenewDocumentCommand\Key{sommo}{\xdef\@TempKey{##3:}}%
+ \setbox0\hbox{#3}%
+ \endgroup%
+ \index[changelog]{%
+ #1 \manualhyperdef*{#1}!\manualhyperdef*{#1:#2}{#2}!\@TempKey\ #3%
+ }%
+ \else%
+ \index[changelog]{%
+ #1 \manualhyperdef*{#1}!\manualhyperdef*{#1:#2}{#2}!#3%
+ }%
+ \fi%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \@changedatversionlist
+% \end{macro}^^A \@changedatlist
+% \end{macro}^^A \ChangedAt@Split
+% \end{macro}^^A \ChangedAt@Default
+% \end{macro}^^A \ChangedAt@@@Process
+% \end{macro}^^A \ChangedAt@@Process
+% \end{macro}^^A \ChangedAt@Process
+% \begin{macro}{\Rename}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% Der Befehl \cs{Rename} erzeugt einen Eintrag in der Änderungshistorie sowie
+% einen Eintrag im gewünschten Index mit einem Verweis auf den neuen Befehl.
+% \begin{macrocode}
+\newcommand*\Rename[4][]{%
+ \ChangedAt@@@Process{#2}{Umbenennungen}{%
+ #3: \emph{umbenannt}~\textrightarrow~siehe #4%
+ }%
+ \ChangedAt@@@Process{#2}{Implementierung}{%
+ #4: \emph{neu}~\textrightarrow~ersetzt #3%
+ }%
+ \listeadd\@changedatdeclarelist{#2}%
+ \index[#1]{#3|see{#4}}%
+}
+% \end{macrocode}
+% \end{macro}^^A \Rename
+% \begin{macro}{\@ProcessChangedAt}
+% \changes{v2.02}{2014/07/25}{erweitert}%^^A
+% \changes{v2.02}{2014/10/08}{Sternversion ergänzt}%^^A
+% Die Änderungsliste erhält ebenfalls einen Hyperlink zur Deklaration. Für
+% Umgebungs- und Befehlsparameter wird mit dem zweiten optionalen Argument ein
+% Untereintrag für die dazugehörige Umgebung beziehungsweise den dazugehörigen
+% Befehl erzeugt.
+% \begin{macrocode}
+\NewDocumentCommand\@ProcessChangedAt{mmd()mmm}{%
+ \begingroup%
+ \let\texttt\@firstofone%
+ \let\textsbn\@firstofone%
+ \let\textsbs\@firstofone%
+ \let\Environment\@firstofone%
+ \let\Macro\@firstofone%
+ \IfValueTF{#3}{\xdef\@tempa{#2:#3:#5}}{\xdef\@tempa{#2:#5}}%
+ \endgroup%
+ \IfBooleanTF{#1}{%
+ \def\@tempb{\begingroup#4#5\endgroup}%
+ }{%
+ \def\@tempb{\begingroup#4#5\endgroup~{\idxfont(#6)}}%
+ }%
+ \ifcsdef{r@\@tempa}{\hyperidx[\@tempa]{\@tempb}}{\@tempb}%
+}
+% \end{macrocode}
+% \end{macro}^^A \@ProcessChangedAt
+% \begin{macro}{\sortlist}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% \begin{macro}{\@sortlist}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% \begin{macro}{\@sortedlist}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% \begin{macro}{\if@listsorted}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% Der Befehl \cs{sortlist} erwartet eine \pkg{etoolbox}-Liste und sortiert diese
+% mit \cs{@sortlist} in alphabetischer Reihenfolge in eine kommagetrennte
+% Auflistung. Diese wird anschließend wieder in eine \pkg{etoolbox}-Liste
+% umgewandelt.
+% \begin{macrocode}
+\newif\if@listsorted
+\newcommand*\@sortedlist{}
+\newcommand*\sortlist[1]{%
+ \let\@sortedlist\relax%
+ \forlistloop\@sortlist{#1}%
+ \let#1\relax%
+ \@for\@tempa:=\@sortedlist\do{\listeadd{#1}{\@tempa}}%
+}
+% \end{macrocode}
+% Hier erfolgt die eigentliche Sortierung der Liste.
+% \begin{macrocode}
+\newcommand*\@sortlist[1]{%
+% \end{macrocode}
+% Der erste Eintrag wird direkt der Liste hinzugefügt.
+% \begin{macrocode}
+ \ifx\@sortedlist\relax%
+ \def\@sortedlist{#1}%
+% \end{macrocode}
+% Weitere Einräge werden mit \cs{pdfstrcmp} an der richtigen Stelle eingefügt.
+% Dabei wird die kommagetrennte Liste \cs{@sortedlist} mit \cs{@for} durchlaufen
+% und \cs{@tempb} als Hilfsmakro verwendet, in welches die aktuelle Liste
+% innerhalb der \cs{@for}-Schelife stückweise expandiert wird. Der Schalter
+% \cs{if@listsorted} wird gesetzt, wenn das aktuelle Element an der richtigen
+% Stelle eingesetzt wurde.
+% \begin{macrocode}
+ \else%
+ \@listsortedfalse%
+ \let\@tempb\@empty%
+ \@for\@tempa:=\@sortedlist\do{%
+% \end{macrocode}
+% Ist der Eintrag bereits erfolgt, wird der verbliebene Teil der Liste
+% angehängt.
+% \begin{macrocode}
+ \if@listsorted%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}%
+ \else%
+% \end{macrocode}
+% Liegt der Eintrag in alphabetischer Reihenfolge vor dem aktuellen der
+% durchlaufenenen Liste, so wird dieser davor eingefügt. Dabei muss der Fall,
+% dass das Element der erste Eintrag in der temporären Liste \cs{@tempb} ist,
+% eine Sonderbehandlung erfolgen. Anschließend wird \cs{@listsortedtrue}
+% gesetzt.
+% \begin{macrocode}
+ \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<0\relax%
+ \ifx\@tempb\@empty%
+ \expandafter\edef\expandafter\@tempb\expandafter{%
+ #1,\@tempa%
+ }%
+ \else%
+ \expandafter\edef\expandafter\@tempb\expandafter{%
+ \@tempb,#1,\@tempa%
+ }%
+ \fi%
+ \@listsortedtrue%
+ \else%
+% \end{macrocode}
+% Ist Eintrag in alphabetischer Reihenfolge nach dem aktuellen der geprüften
+% Liste, so wird dieser (noch) nicht eingefügt. Der Sonderfall des ersten
+% Elementes wird abgedeckt.
+% \begin{macrocode}
+ \ifx\@tempb\@empty%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}%
+ \else%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}%
+ \fi%
+ \fi%
+ \fi%
+ }%
+% \end{macrocode}
+% Wurde der Eintrag nach dem Durchlaufen der Liste nicht eingefügt, so erfolgt
+% dies hier am Ende der Liste.
+% \begin{macrocode}
+ \if@listsorted\else%
+ \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}%
+ \fi%
+% \end{macrocode}
+% Die temporäre Liste \cs{@tempb} wird auf \cs{@sortedlist} überschrieben.
+% \begin{macrocode}
+ \let\@sortedlist\@tempb%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@listsorted
+% \end{macro}^^A \@sortedlist
+% \end{macro}^^A \@sortlist
+% \end{macro}^^A \sortlist
+%
+% \iffalse
+%</class>
+%<*package>
+% \fi
+%
+% \subsection{Befehle und Umgebungen für das Paket}
+%
+% Hier taucht alles auf, was lediglich für das Paket \pkg{tudscrman} und nicht
+% für die Klasse benötigt wird.
+%
+% Für den Anwender werden im \TUDScript-Bundle einige Tutorials für die Nutzung
+% von \LaTeXe bereitgestellt. Innerhalb dieser werden Auszüge von Quelltexten
+% verwendet und erläutert. Zum einen soll die Möglichkeit geschaffen werden,
+% diese gesammelt am Ende eines Tutorials für ein Copy"~\&"~Paste"~Beispiel zu
+% verwenden. Andererseits soll auch das sofortige Ausführen des beschriebenen
+% Quelltextauszuges direkt im Tutorial möglich sein. Dafür werden im Folgenden
+% die Umgebungen \env{Preamble}, \env{Trunk} und \env{Hint} sowie daraus
+% abgeleitet Varianten definiert, womit sich die Angabe und Erläuterung der
+% Quelltexte im Tutorial logisch strukturieren lässt und dennoch die notwendige
+% Ordnung dieser für das Copy"~\&"~Paste"~Beispiel aufrechterhalen werden kann.
+% Hierfür zeichnen die beiden Umgebungen \env{Preamble} und \env{Trunk} und
+% deren Derivate verantwortlich. Die Umgebung \env{Hint} steht für zusätzliche
+% Erläuterungen bereit, welche jedoch nicht in das Copy"~\&"~Paste"~Beispiel
+% übernommen werden.
+%
+% Damit die Umgebungen nicht doppelt implementiert werden müssen, werden die
+% Hilfsmakros \cs{tud@tut@pre} und \cs{tud@tut@post} definiert. Diese nutzen
+% die \env{filecontents}"=Umgebung, welche den Inhalt in die temporäre Datei
+% \val{\string\jobname-temp.tex} schreibt. Zusätzlich wird dieser Inhalt mit
+% \cs{tud@tut@append} der Datei \val{\string\jobname-preamble-temp.tex} oder
+% \val{\string\jobname-trunk-temp.tex}~-- abhängig vom gegebenen Argument~--
+% hinzugefügt. So werden die im Dokumentes gesetzten Quelltextauszüge für ein
+% Copy"~\&"~Paste"~Beispiel gesammelt und mit \cs{FinishTutorial} ausgegeben.
+% \begin{environment}{Preamble}
+% \changes{v2.02}{2014/11/02}{neu}%^^A
+% \begin{environment}{Preamble*}
+% \changes{v2.02}{2014/11/03}{neu}%^^A
+% \begin{environment}{Preamble+}
+% \changes{v2.02}{2014/11/03}{neu}%^^A
+% Die Umgebung \env{Preamble} dient für die Ausgabe von Quelltexten, welche in
+% einem \LaTeXe-Dokument in der Präambel verwendet werden müssen oder sollten.
+% Die in ihr gesetzten Inhalte werden für das Copy"~\&"~Paste-Beispiel vor den
+% Inhalten aus der Umgebung \env{Trunk} ausgegeben. Die Sternversion führt
+% den Inhalt zusätzlich im Dokument aus. Die Pluszechen"=Version fügt dem
+% Ausgabestream ihren Inhalt hinzu, ohne das dieser ausgegeben oder ausgeführt
+% wird.
+% \begin{macrocode}
+\newenvironment{Preamble}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \tud@tut@append{\tud@write@i}%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Preamble*}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \tud@tut@append{\tud@write@i}%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \tud@tut@input%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Preamble+}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \tud@tut@append{\tud@write@i}%
+ \gdef\@tempa{%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+% \end{macrocode}
+% \end{environment}^^A Preamble+
+% \end{environment}^^A Preamble*
+% \end{environment}^^A Preamble
+% \begin{environment}{Trunk}
+% \changes{v2.02}{2014/08/16}{neu}%^^A
+% \begin{environment}{Trunk*}
+% \changes{v2.02}{2014/08/19}{neu}%^^A
+% \begin{environment}{Trunk+}
+% \changes{v2.02}{2014/11/03}{neu}%^^A
+% \begin{environment}{Trunk!}
+% \changes{v2.02}{2014/10/07}{neu}%^^A
+% Die Umgebung \env{Trunk} dient zur Ausgabe von exemplarischen Quelltexten,
+% welche in einem \LaTeXe-Dokument innerhalb der \env{document}-Umgebung
+% verwendet werden müssen oder sollten. Für das Copy"~\&"~Paste-Beispiel werden
+% die gegebenen Inhalte nach den Inhalten aus der Umgebung \env{Preamble}
+% ausgegeben. Die Sternversion der Umgebung führt ihren Inhalt zusätzlich im
+% Dokument aus. Die Pluszeichen"=Version fügt dem Ausgabestream ihren Inhalt
+% hinzu, ohne diesen auszugeben oder auszuführen. Die Ausrufezeichen"=Version
+% fügt den Quelltext im Dokument ein und führt diesen zusätzlich in einer
+% separaten Datei mit einem minimalen Dokumentkörper aus, um daraus eine
+% PDF-Datei zu erzeugen, welche im Nachhinein mit \cs{IncludeStandalone} als
+% Grafik eingebunden werden kann. Dies ist für Quelltextabschnitte gedacht,
+% deren Ausgabe zu groß ist, um diese direkt anzuzeigen und dennoch dargestellt
+% werden sollen.
+% \begin{macrocode}
+\newenvironment{Trunk}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \tud@tut@append{\tud@write@ii}%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Trunk*}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \tud@tut@append{\tud@write@ii}%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \tud@tut@input%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Trunk+}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \tud@tut@append{\tud@write@ii}%
+ \gdef\@tempa{%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Trunk!}[1]{%
+ \gdef\@StandaloneFile{#1}%
+ \tud@tut@pre%
+}{%
+ \tud@tut@post%
+ \tud@tut@append{\tud@write@ii}%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \tud@tut@pdf%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+% \end{macrocode}
+% \end{environment}^^A Trunk!
+% \end{environment}^^A Trunk+
+% \end{environment}^^A Trunk*
+% \end{environment}^^A Trunk
+% \begin{environment}{Hint}
+% \changes{v2.02}{2014/09/16}{neu}%^^A
+% \begin{environment}{Hint*}
+% \changes{v2.02}{2014/10/13}{neu}%^^A
+% \begin{environment}{Hint?}
+% \changes{v2.02}{2014/12/09}{neu}%^^A
+% \begin{environment}{Hint!}
+% \changes{v2.02}{2014/11/13}{neu}%^^A
+% Um Quelltextausschnitte zur weiterführenden Information anzugeben, wird die
+% Umgebung \env{Hint} definiert. Der Inhalt wird ausgegben und~-- falls die
+% Sternversion genutzt wurde~-- auch ausgeführt, allerdings nicht in das
+% Copy"~\&"~Paste"~Beispiel übernommen. Ansonsten entsprechen alle Umgebungen
+% in ihren Eigenschaften den äquivalenten \env{Trunk}-Umgebungen. Die Version
+% mit Fragezeichen ist für Quelltextauszüge gedacht, die ungeprüft \emph{vor}
+% dessen Ausgabe ausgeführt werden sollen.
+% \begin{macrocode}
+\newenvironment{Hint}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Hint*}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \tud@tut@input%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Hint?}{\tud@tut@pre}{%
+ \tud@tut@post%
+ \gdef\@tempa{%
+ \InputCode%
+ \tud@tut@lst%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+\newenvironment{Hint!}[1]{%
+ \gdef\@StandaloneFile{#1}%
+ \tud@tut@pre%
+}{%
+ \tud@tut@post%
+ \gdef\@tempa{%
+ \tud@tut@lst%
+ \tud@tut@pdf%
+ \global\let\@CodePreamble\relax%
+ }%
+ \aftergroup\@tempa%
+}
+% \end{macrocode}
+% \end{environment}^^A Hint!
+% \end{environment}^^A Hint?
+% \end{environment}^^A Hint*
+% \end{environment}^^A Hint
+% \begin{macro}{\@StandaloneFile}
+% \changes{v2.02}{2014/08/19}{neu}%^^A
+% Die Umgebungen \env{Trunk!} und \env{Hint!} erzeugen nach der Ausgabe des
+% Quelltextes mit dem Makro \cs{tud@tut@pdf} eine PDF-Datei, welche mit
+% \cs{IncludeStandalone} in das Tutorial eingebunden werden kann.
+% \begin{macrocode}
+\newcommand*\@StandaloneFile{}
+\let\@StandaloneFile\relax
+% \end{macrocode}
+% \end{macro}^^A \@StandaloneFile
+% \begin{macro}{\tud@tut@pre}
+% \changes{v2.02}{2014/08/19}{neu}%^^A
+% \begin{macro}{\tud@tut@post}
+% \changes{v2.02}{2014/08/19}{neu}%^^A
+% Dies sind die Hilfsmakros, welche zu Beginn und Ende der Quelltextumgebungen
+% \env{Preamble}, \env{Trunk} und \env{Hint} für das Sichern der Inhalte in
+% eine Hilfsdatei verantwortlich zeichnen.
+% \begin{macrocode}
+\newcommand*\tud@tut@pre{%
+ \ActivateWarningFilters[Tutorial]%
+ \@nameuse{filecontents*}{\jobname-temp.tex}%
+}
+\newcommand*\tud@tut@post{%
+ \@nameuse{endfilecontents*}%
+ \DeactivateWarningFilters[Tutorial]%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@tut@post
+% \end{macro}^^A \tud@tut@pre
+% \begin{macro}{\tud@tut@lst}
+% \changes{v2.02}{2014/10/07}{neu}%^^A
+% Damit wird der Quelltext eingezogen ausgegeben.
+% \begin{macrocode}
+\newcommand*\tud@tut@lst{%
+ \begin{quoting}[rightmargin=0pt]%
+ \lstinputlisting[style=tudscr]{\jobname-temp.tex}%
+ \end{quoting}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@tut@lst
+% \begin{macro}{\tud@tut@input}
+% \changes{v2.02}{2014/10/13}{neu}%^^A
+% \begin{macro}{\CodePreamble}
+% \changes{v2.02}{2014/08/20}{neu}%^^A
+% \begin{macro}{\@CodePreamble}
+% \changes{v2.02}{2014/10/22}{neu}%^^A
+% \begin{macro}{\CodeHook}
+% \changes{v2.02}{2014/10/11}{neu}%^^A
+% \begin{macro}{\@CodeHook}
+% \changes{v2.02}{2014/10/11}{neu}%^^A
+% Bereitstellung von Hilfsmakros für die formatierte Ausgabe von Quelltexten.
+% \begin{macrocode}
+\newcommand\@CodePreamble{}
+\let\@CodePreamble\relax
+\newcommand\CodePreamble[1]{\long\gdef\@CodePreamble{#1}}
+\newcommand*\@CodeHook{}
+\let\@CodeHook\relax
+\newcommand*\CodeHook[1]{\gdef\@CodeHook{#1}}%
+% \end{macrocode}
+% Für die Ausgabe des Quelltextergebnisses erfolgt ein linker Einzug. Außerdem
+% werden unter anderem abhängig von der Verwendung eines erklärenden Textes die
+% eingefügten vertikalen Abstände angepasst.
+% \begin{macrocode}
+\newcommand*\tud@tut@input{%
+% \end{macrocode}
+% Nach dem Ausführen des ersten Argumentes von \cs{@tempa} wird geprüft, ob
+% dieses überhaupt eine sichtbare Ausgabe erzeugt hat. Nur für diesen Fall wird
+% nach dieser vertikaler Leerraum eingefügt. Der Anfang entspricht prinzipiell
+% dem Standardbefehl \cs{settoheight}, jedoch wird im Inneren zusätzlich eine
+% \cs{vbox} verwendet, um damit auch mathematische Umgebungen testen zu können.
+% Das Ganze findet innerhalb einer Gruppierung statt, um keine Änderungen zu
+% erzeugen.
+% \begin{macrocode}
+ \def\@tempa##1##2{%
+ ##1%
+ \begingroup%
+ ##2%
+ \setbox\@tempboxa\hbox{\vbox{##1}}%
+ \@tempdima=\ht\@tempboxa%
+ \setbox\@tempboxa\box\voidb@x%
+ \ifdim\@tempdima>\z@\relax%
+ \endgraf%
+ \vspace{\baselineskipglue}%
+ \noindent\ignorespaces%
+ \fi%
+ \endgroup%
+ }%
+% \end{macrocode}
+% Da aufgrund der Verwendung der \env{filecontents}"=Umgebung ein optionales
+% Argument für alle Abwandlungen der Quelltextumgebungen nicht möglich ist,
+% wird \cs{CodePreamble} bereitgestellt, womit der Ausgabe ein erläuternder
+% Text vorangestellt werden kann.
+% \begin{macrocode}
+ \@tempa{\@CodePreamble}{}%
+ \setlength{\@tempdimc}{\leftskip}%
+ \setlength{\leftskip}{\leftmargin}%
+% \end{macrocode}
+% Durch die zweimalige Verwendung von \val{\string\jobname-temp.tex}~-- einmal
+% dirket und einmal innerhalb einer Box~-- können darin verwendete Befehle wie
+% \cs{newcommand} zu Fehler führen. Mit dem Makro \cs{CodeHook} lassen sich
+% diese Konflikte durch eine lokale Redefinition ebensoclher Befehle auflösen
+% (bspw. \cs{let}\cs{newcommand}\cs{renewcommand}).
+% \begin{macrocode}
+ \ActivateWarningFilters[Tutorial]%
+ \@tempa{\input{\jobname-temp.tex}}{\@CodeHook}%
+ \DeactivateWarningFilters[Tutorial]%
+ \global\let\@CodeHook\relax%
+ \setlength{\leftskip}{\@tempdimc}%
+ \noindent\ignorespaces%
+}
+% \end{macrocode}
+% \end{macro}^^A \@CodeHook
+% \end{macro}^^A \CodeHook
+% \end{macro}^^A \@CodePreamble
+% \end{macro}^^A \CodePreamble
+% \end{macro}^^A \tud@tut@input
+% \begin{macro}{\InputCode}
+% \changes{v2.02}{2014/10/21}{neu}%^^A
+% Mit \cs{InputCode} kann der Inhalt der letzen \env{Trunk}"=Umgebung
+% direkt ausgeführt werden, ohne diesen zuvor mit \cs{tud@tut@input} zu prüfen
+% und zu formatieren.
+% \begin{macrocode}
+\newcommand*\InputCode{\input{\jobname-temp.tex}}
+% \end{macrocode}
+% \end{macro}^^A \InputCode
+% \begin{macro}{\tud@tut@pdf}
+% \changes{v2.02}{2014/10/22}{neu}%^^A
+% Die Umgebung \env{Trunk!} verwendet nach der Ausgabe des Quelltextes diesen
+% abermals, um daraus eine PDF-Datei zu erzeugen. Dafür wird mithilfe einer
+% \env{filecontents}"=Umgebung eine temporäre \LaTeX-Datei erzeugt. Diese
+% bindet die mit \env{Trunk!} erzeugte Datei ein und wird anschließende via
+% \cs{write18} kompiliert. Dabei sollte man sich nicht von der doppelten
+% Verwendung von \cs{jobname} verwirren lassen. Der Dateiname der temporär
+% erzeugten \LaTeX-Datei ist abhängig vom gesetzten Tutorial. Beim Aufruf
+% dieser wird über die Optionen von pdf\LaTeX{} der verwendete \cs{jobname}
+% angepasst (siehe \cs{tud@tut@pdf}).
+% \begin{macrocode}
+\ifnum\pdfshellescape=1\relax%
+\ActivateWarningFilters[Tutorial]%
+\begin{filecontents*}{tutorial-temp.tex}
+\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
+\documentclass[english,ngerman]{tudscrreprt}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{babel}
+\usepackage{tudscrsupervisor}
+\usepackage{isodate}
+\usepackage{enumitem}
+\setlist{noitemsep}
+\begin{document}
+\input{\jobname.tex}
+\end{document}
+\end{filecontents*}
+\DeactivateWarningFilters[Tutorial]%
+\fi
+% \end{macrocode}
+% Der Quelltext aus der \env{Trunk!}"=Umgebung wird~-- wie bei allen anderen
+% Derivaten der Umgebungen \env{Trunk}~-- in \val{\string\jobname-temp.tex}
+% gesichert. Beim Aufruf von pdf\LaTeX{} wird durch die Verwendung der Option
+% \opt{-jobname=\string\jobname-temp} die eigentliche Definition des Makros
+% \cs{jobname} in der aufgerufenen Datei \val{tutorial-temp.tex} überschrieben
+% und der Inhalt von \val{\string\jobname-temp.tex} wie gewünscht eingebunden
+% und kompiliert. Damit die so erstellte PDF-Datei mit \cs{IncludeStandalone}
+% im weiteren Verlauf in das Tutorial eingebunden werden kann, wird diese noch
+% in \cs{\meta{Argument}-temp.pdf} umbenannt.
+% \begin{macrocode}
+\newcommand*\tud@tut@pdf{%
+ \ifnum\pdfshellescape=1\relax%
+ \immediate\write18{%
+ pdflatex -jobname=\jobname-temp tutorial-temp.tex
+ pdflatex -jobname=\jobname-temp tutorial-temp.tex
+ pdflatex -jobname=\jobname-temp tutorial-temp.tex
+ }%
+ \ifwindows%
+ \immediate\write18{rename \jobname-temp.pdf \@StandaloneFile-temp.pdf}%
+ \else%
+ \immediate\write18{mv \jobname-temp.pdf \@StandaloneFile-temp.pdf}%
+ \fi%
+ \fi%
+ \global\let\@StandaloneFile\relax%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@tut@pdf
+% \begin{macro}{\IncludeStandalone}
+% \changes{v2.02}{2014/09/10}{neu}%^^A
+% Der Befehl \cs{IncludeStandalone} bindet die durch \env{Trunk!} generierten
+% PDF-Dateien ein. Das angehängte optionale Argument dient zur Angabe der
+% einzubindenden Seiten der PDF-Datei, wobei diese automatisch auf die passende
+% Breite skaliert werden.
+% \begin{macrocode}
+\NewDocumentCommand\IncludeStandalone{omO{1}}{%
+ \IfFileExists{#2-temp.pdf}{%
+ \@tempcnta\z@%
+ \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}%
+ \ifnum\@tempcnta>\z@%
+ \setlength{\@tempdima}{\textwidth}%
+ \divide\@tempdima\@tempcnta%
+ \advance\@tempcnta\m@ne%
+ \multiply\@tempcnta 2%
+ \addtolength{\@tempdima}{-\@tempcnta\tabcolsep}%
+ \@for\@tempa:=#3\do{%
+ \advance\@tempcnta\m@ne%
+ \edef\@tempb{%
+ keepaspectratio,page=\@tempa,width=\the\@tempdima,%
+ \IfValueT{#1}{#1}%
+ }
+ \fbox{\expandafter\includegraphics\expandafter[\@tempb]{#2-temp.pdf}}%
+ \ifnum\@tempcnta>\z@\hfill\fi%
+ }%
+ \fi%
+ }{%
+ \tud@shellescape@wrn%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \IncludeStandalone
+% \begin{macro}{\StartTutorial}
+% \changes{v2.02}{2014/08/21}{neu}%^^A
+% \begin{macro}{\FinishTutorial}
+% \changes{v2.02}{2014/08/21}{neu}%^^A
+% Mit \cs{StartTutorial} wird ein Hyperlink für den Querverweis aus dem
+% Handbuch definiert. Außerdem wird gleich der Titel und ein einleitender Satz
+% gesetzt.
+% \begin{macrocode}
+\newcommand\StartTutorial[1][%
+ Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse
+ als auch die f\"ur jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach
+ sinnvollen Pakete geladen.
+]{%
+ \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}%
+ \faculty{}%
+ \setlength\headingsvskip{-15mm}%
+ \maketitle\noindent#1%
+ \immediate\openout\tud@write@i=\jobname-preamble-temp.tex\relax
+ \immediate\openout\tud@write@ii=\jobname-trunk-temp.tex\relax
+ \immediate\write\tud@write@ii{^^J\string\begin{document}^^J}
+}
+% \end{macrocode}
+% Der Befehl \cs{FinishTutorial} schleißt den noch offenen Ausgabestream und
+% gibt den vorgestellten Quelltext vollständig aus.
+% \begin{macrocode}
+\newcommand\FinishTutorial[1][]{%
+ \immediate\write\tud@write@ii{^^J\string\end{document}^^J}
+ \immediate\closeout\tud@write@ii%
+ \immediate\closeout\tud@write@i%
+ \tud@tut@collect%
+ \clearpage%
+ \addsec{Copy~\&~Paste}%
+ \pagestyle{empty}%
+ Zum Ende des Dokumentes wird das vorgestellte Tutorial als \"ubersetzbarer
+ Quelltext ausgegeben, um dieses via Copy~\&~Paste verwenden und alle Punkte
+ nachvollziehen zu k\"onnen. Bitte beachten Sie, dass~-- abh\"angig vom
+ genutzten PDF-Betrachter~-- beim Kopieren die dargestellten Einz\"uge und
+ Abs\"atze m\"oglicherweise verloren gehen k\"onnen. Dies kann insbesondere
+ aufgrund fehlender Leerzeilen zu einem unvorteilhaften Ausgabeergebnis
+ f\"uhren. Alternativ finden Sie den folgenden \hologo{LaTeX}-Quelltext auch
+ im Pfad \Path{texmf/source/latex/tudscr/doc/examples/} als Datei
+ \File{\jobname-example.tex}. \par #1
+ \begin{quoting}[rightmargin=0pt]%
+ \lstinputlisting[style=tudscr]{\jobname-example-temp.tex}%
+ \end{quoting}%
+}
+% \end{macrocode}
+% \end{macro}^^A \FinishTutorial
+% \end{macro}^^A \StartTutorial
+% \begin{macro}{\tud@tut@readtostream}
+% \changes{v2.02}{2014/12/16}{neu}%^^A
+% \begin{macro}{\tud@tut@line}
+% \changes{v2.02}{2014/08/19}{neu}%^^A
+% \begin{macro}{\tud@tut@append}
+% \changes{v2.02}{2014/08/19}{neu}%^^A
+% \begin{macro}{\tud@tut@collect}
+% \changes{v2.02}{2014/12/16}{neu}%^^A
+% Bei den Tutorials soll zum Schluss ein komplett kompilierbares Beispiel für
+% Copy~\&~Paste gegeben werden. Um dieses zusammenzubauen, werden alle im
+% Dokument innerhalb der Varianten der \env{Trunk}"=Umgebungen gegebenen
+% Codefragmente zusammengesetzt. Um die Quelltexte einlesen und verarbeiten zu
+% können, werden zwei Eingabe- sowie ein Ausgabestream benötigt, welche bereits
+% zuvor initilaisiert wurden.
+%
+% Mit \cs{tud@tut@readtostream} wird der Inhalt der Datei im ersten Argument
+% in den Ausgabestream des zweiten Argumentes geschrieben. Dies wird durch die
+% Makros \cs{tud@tut@append} und \cs{tud@tut@collect} genutzt.
+% \begin{macrocode}
+\newcommand*\tud@tut@line{}
+\newcommand*\tud@tut@readtostream[2]{%
+ \begingroup%
+ \endlinechar=-1\relax%
+ \openin\tud@read=#1%
+% \end{macrocode}
+% Der Schalter \cs{if@tempswa} wird verwendet, um unnötige Leerzeilen in der
+% Ausgabedatei zu entfernen. Wurde eine nicht leere Zeile gefunden, wird diese
+% auf jeden Fall geschrieben, indem \cs{@tempswatrue} gesetzt wird. Eine leere
+% Zeile wird~-- bis auf den Sonderfall, dass es sich um die letzte Zeile in der
+% Datei handelt~-- zunächst nicht weiter beachtet. Im Zweifelsfall wird diese
+% (erste) Leerzeile geschrieben.
+% \begin{macrocode}
+ \@tempswafalse%
+ \loop\unless\ifeof\tud@read%
+ \readline\tud@read to\tud@tut@line%
+ \ifx\tud@tut@line\@empty%
+ \ifeof\tud@read\@tempswafalse\fi%
+ \else%
+ \@tempswatrue%
+ \fi%
+% \end{macrocode}
+% Hier erfolgt das eigentliche Schreiben im selektierten Stream.
+% \begin{macrocode}
+ \if@tempswa%
+ \immediate\write#2{\unexpanded\expandafter{\tud@tut@line}}%
+ \fi%
+% \end{macrocode}
+% Im Nachgang wird überprüft, ob die aktuell geschriebene Zeile leer war. Ist
+% dies der Fall, so wird \cs{@tempswafalse} gesetzt, um eine etwaig folgende
+% Leerzeile nicht in die Ausgabedatei zu schrieben.
+% \begin{macrocode}
+ \ifx\tud@tut@line\@empty\@tempswafalse\fi%
+ \repeat%
+ \closein\tud@read%
+ \endgroup%
+}
+% \end{macrocode}
+% Der innerhalb der Umgebungen \env{Preamble} und \env{Trunk}~-- sowie deren
+% Derivaten~-- angegeben Inhalt wird beim Beenden dieser in die Hilfsdatei
+% \cs{jobname-temp.tex} zwischengespeichert. Mit dem Befehl \cs{tud@tut@append}
+% wird der Inhalt dieser Datei ausgelesen und den zusätzlichen Hilfsdateien
+% \cs{jobname-preamble-temp.tex} beziehungsweise \cs{jobname-trunk-temp.tex}
+% angehangen und damit gesichert, um Quelltextauszüge aus dem Tutorial für die
+% Präambel sowie den Dokumentteil trennen beziehungsweise sortieren zu können.
+% \begin{macrocode}
+\newcommand*\tud@tut@append[1]{\tud@tut@readtostream{\jobname-temp.tex}{#1}}
+% \end{macrocode}
+% Das Makro \cs{tud@tut@collect} fügt alle Quelltexte des Tutorials, welche
+% nach Präambel und Dokumentteil sortiert wurden, in einer Datei zusammen.
+% Diese wird zum einen am Ende des Tutorials mit \cs{FinishTutorial} ausgeben,
+% zum anderen wird diese als Beispiel in den Ordner für Beispiele beim Erzeugen
+% eines Release kopiert.
+% \begin{macrocode}
+\newcommand*\tud@tut@collect{%
+ \immediate\openout\tud@write@ii\jobname-example-temp.tex\relax%
+ \tud@tut@readtostream{\jobname-preamble-temp.tex}{\tud@write@ii}%
+ \tud@tut@readtostream{\jobname-trunk-temp.tex}{\tud@write@ii}%
+ \immediate\closeout\tud@write@ii
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@tut@collect
+% \end{macro}^^A \tud@tut@append
+% \end{macro}^^A \tud@tut@line
+% \end{macro}^^A \tud@tut@readtostream
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \subsection{Ausgabe von Index und Änderungsliste}
+%
+% Ein Index kann sowhol mit dem Paket als auch mit der Klasse erzeugt werden,
+% die Änderungsliste ist der Klasse vorbehalten.
+% \begin{macro}{\idxfont}
+% Für zusätzliche Informationen im Index nach dem eigentlichen Eintrag wird
+% eine etwas kleinere Schrift verwendet.
+% \begin{macrocode}
+\newcommand*\idxfont{}
+\let\idxfont\footnotesize
+\robustify{\idxfont}
+% \end{macrocode}
+% \end{macro}^^A \idxfont
+% \begin{macro}{\PrintIndex}
+% \begin{macro}{\PrintIndexPrologue}
+% \changes{v2.02}{2014/08/20}{neu}%^^A
+% \begin{macro}{\@printindexprologue}
+% \changes{v2.02}{2014/08/20}{neu}%^^A
+% \begin{macro}{\@printindexskip}
+% \changes{v2.02}{2014/09/02}{neu}%^^A
+% \begin{macro}{\Index}
+% \begin{macro}{\seeidx}
+% \begin{macro}{\@printindex}
+% \changes{v2.02}{2014/07/25}{neu}%^^A
+% Der Befehl \cs{PrintIndex} ist die Zusammenfassung für die Ausgabe aller
+% Indexe.
+% \begin{macrocode}
+\newcommand*\PrintIndex{%
+ \begingroup%
+%<*class>
+ \@printindex%
+%</class>
+ \@printindex[options]%
+ \@printindex[macros]%
+%<*class>
+ \@printindex[keys]%
+ \@printindex[terms]%
+ \begingroup%
+ \let\lettergroup\@gobble%
+ \let\indexspace\par%
+ \@printindex[fonts]%
+ \@printindex[colors]%
+ \endgroup%
+%</class>
+ \@printindex[files]%
+ \endgroup%
+}
+% \end{macrocode}
+% Hiermit kann der einleitende Teil für den allgemeinen Index gesetzt werden.
+% \begin{macrocode}
+%<*class>
+\newcommand*\PrintIndexPrologue[1]{\long\gdef\@printindexprologue{#1}}
+\newcommand*\@printindexprologue{}
+%</class>
+% \end{macrocode}
+% Durch die Verwendung der \env{multicols}"=Umgebung werden zu große vertikale
+% Abstände gesetzt. Dies wird mit diesem Befehl rückgängig gemacht.
+% \begin{macrocode}
+\newcommand*\@printindexskip{\ifnum\imki@columns>\@ne\vspace{-\multicolsep}\fi}
+% \end{macrocode}
+% Der Befehl \cs{@printindex} setzt vor jedem Unterindex ein referenzierbares
+% Label und gibt diesen danach aus.
+% \begin{macrocode}
+\newcommand*\@printindex[1][]{%
+ \pagebreak[3]%
+ \apptocmd{\prepare@multicols}{\hbadness10000}{}{}%
+%<*class>
+ \ifblank{#1}{%
+ \ifx\@printindexprologue\@empty%
+ \indexprologue[\@printindexskip]{\manualhyperdef'{idx:main}}%
+ \else%
+ \indexprologue{%
+ \manualhyperdef'{idx:main}%
+ \@printindexprologue%
+ }%
+ \fi%
+ \printindex\@printindexskip%
+ \let\@printindexprologue\@empty%
+ }{%
+ \indexprologue[\@printindexskip]{\manualhyperdef'{idx:#1}}%
+ \printindex[#1]\@printindexskip%
+ }%
+%</class>
+%<*package>
+ \indexprologue[\@printindexskip]{}%
+ \printindex[#1]\@printindexskip%
+%</package>
+}
+% \end{macrocode}
+% Der Befehl \cs{Index} dient zum Eintragen eines Schlagwortes im allgemeinen
+% Index und verweist auf den speziellen, zum Schlagwort gehörigen Index. Das
+% optionale Argument kann verwendet werden, um ggf. den Eintrag in den
+% allgemeinen Index anders zu benennen, als den Verweis.
+% \begin{macrocode}
+%<*class>
+\newcommand*\seeidx[2]{\pageref{idx:#1}}
+\NewDocumentCommand\Index{mom}{%
+ \index{%
+ #1!\textrightarrow{}\space%
+ \manualhyperref{idx:#3}{Index der \IfValueTF{#2}{#2}{#1}}|seeidx{#3}%
+ }%
+}
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \@printindex
+% \end{macro}^^A \seeidx
+% \end{macro}^^A \Index
+% \end{macro}^^A \@printindexskip
+% \end{macro}^^A \@printindexprologue
+% \end{macro}^^A \PrintIndexPrologue
+% \end{macro}^^A \PrintIndex
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{macro}{\PrintChangelog}
+% \begin{macro}{\if@changelog}
+% \begin{macro}{\Changelog}
+% \changes{v2.02}{2014/08/20}{neu}%^^A
+% Ähnlich wie für den Index wird auch für die Änderungsliste verfahren.
+% \begin{macrocode}
+\newif\if@changelog
+\newcommand*\PrintChangelog{%
+ \begingroup%
+ \let\lettergroup\@gobble%
+ \@changelogtrue%
+ \@printindex[changelog]%
+ \endgroup%
+}
+\NewDocumentCommand\Changelog{m}{%
+ \index{%
+ #1!\textrightarrow{}\space%
+ \manualhyperref{idx:changelog}{\"Anderungsliste}|seeidx{changelog}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \Changelog
+% \end{macro}^^A \if@changelog
+% \end{macro}^^A \PrintChangelog
+%
+% \iffalse
+%</class>
+%</body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx
new file mode 100644
index 00000000000..15ab5eab35f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx
@@ -0,0 +1,269 @@
+% \CheckSum{149}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-mathswap.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-mathswap.dtx}[%
+ 2014/10/10 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<package>\ProvidesPackage{mathswap}[%
+%<*driver|package>
+%!TUDVersion
+%<package> package
+ (swap mathematical separators)%
+]
+%</driver|package>
+%<*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-mathswap.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/07/10}{Versionsnummer angepasst}%^^A
+% \changes{v2.02}{2014/08/18}{Schalter zum Aktivieren und Deaktivieren}%^^A
+%
+% \section{Aktive Trennzeichen im mathematischen Satz}
+%
+% Die Verwendung von Dezimal- und Tausendertrennzeichen im mathematischen Satz
+% sind regional sehr unterschiedlich. In den meisten englischsprachigen Ländern
+% wird der Punkt als Dezimaltrennzeichen und das Komma zur Zifferngruppierung
+% verwendet, im restlichen Europa wird dies genau entgegengesetzt praktiziert.
+% Dieses Paket soll dazu dienen, beliebige formatierte Zahlen in ihrer Ausgabe
+% anzupassen. Dafür werden die Zeichen Punkt (\ .\ ) und Komma (\ ,\ ) als
+% aktive Zeichen im Mathematikmodus definiert.
+%
+% Ähnliche Funktionalitäten werden bereits durch die Pakete \pkg{icomma} und
+% \pkg{ziffer} bereitgestellt. Bei \pkg{icomma} muss jedoch beim
+% Verfassen des Dokumentes durch den Autor beachtet werden, ob das verwendete
+% Komma einem Dezimaltrennzeichen entspricht ($t=1,\!2$) oder aber einem
+% normalen Komma im Mathematiksatz ($z=f(x,y)$), wo ein gewisser Abstand nach
+% dem Komma durchaus gewünscht ist. Das Paket \pkg{ziffer} liefert dafür die
+% gewünschte Funktionalität,%
+% \footnote{kein Leerraum nach Komma, wenn direkt danach eine Ziffer folgt}
+% ist allerdings etwas unflexibel, was den Umgang mit den Trennzeichen
+% anbelangt. Als Alternative zu diesem Paket kann außerdem \pkg{ionumbers}
+% verwendet werden.
+%
+% Das Paket \pkg{mathswap} sorgt dafür, dass Trennzeichen direkt vor einer
+% Ziffer erkannt und nach bestimmten Vorgaben ersetzt werden. Sollte sich
+% jedoch zwischen Trennzeichen und Ziffer Leerraum befinden, wird dieser als
+% solcher auch gesetzt.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Das Paket \pkg{mathswap}}
+%
+% \begin{macro}{\commaswap}
+% \begin{macro}{\dotswap}
+% \begin{macro}{\@commaswap}
+% \begin{macro}{\@dotswap}
+% Die beiden Befehle \cs{commaswap} und \cs{dotswap} sind die zentrale
+% Benutzerschnittstelle des Paketes. Das Makro \cs{commaswap} definiert das
+% Trennzeichen oder den Inhalt, wodurch ein Komma ersetzt werden soll, auf
+% welches direkt danach eine Ziffer folgt. Normalerweise setzt \LaTeX
+% nach einem Komma im mathematischen Satz zusätzlich einen horizontalen Abstand.
+% Bei der Ersetzung durch \cs{commaswap} entfällt dieser. Die Voreinstellung
+% für \cs{commaswap} ist deshalb auf ein Komma (,) gesetzt.
+%
+% Mit dem Makro \cs{dotswap} kann definiert werden, wodurch der Punkt im
+% mathematischen Satz ersetzt werden soll, wenn auf diesen direkt anschließend
+% eine Ziffer folgt. Da der Punkt im deutschsprachigem Raum zur Gruppierung von
+% Ziffern genutzt wird, ist hierfür standardmäßig ein halbes geschütztes
+% Leerzeichen definiert (\cs{,}).
+%
+% Die mit \cs{commaswap}\marg{Trennzeichen} und \cs{dotswap}\marg{Trennzeichen}
+% definierten Trennzeichen werden in \cs{@commaswap} und \cs{@dotswap}
+% gesichert.
+% \begin{macrocode}
+\newcommand*\@commaswap{,}
+\newcommand*\commaswap[1]{\gdef\@commaswap{#1}\ignorespaces}
+\newcommand*\@dotswap{\,}
+\newcommand*\dotswap[1]{\gdef\@dotswap{#1}\ignorespaces}
+% \end{macrocode}
+% \end{macro}^^A \@dotswap
+% \end{macro}^^A \@commaswap
+% \end{macro}^^A \dotswap
+% \end{macro}^^A \commaswap
+% \begin{macro}{\ms@comma}
+% \begin{macro}{\ms@commachar}
+% \begin{macro}{\ms@dot}
+% \begin{macro}{\ms@dotchar}
+% In den Befehlen \cs{ms@commachar} und \cs{ms@dotchar} wird die originale
+% Definition von Komma und Punkt im Mathematikmodus gesichert, welche weiterhin
+% verwendet wird, falls nach diesen nicht direkt eine Ziffer folgt. Mit den
+% Makros \cs{ms@comma} und \cs{ms@dot} werden die Definitionen von Komma und
+% Punkt als normale Textzeichen für den mathematischen Satz bereitgehalten.
+% Anschließend werden beide als aktive Zeichen für den Mathematikmodus gesetzt.
+% \begin{macrocode}
+\newcommand*\ms@commachar{}
+\newcommand*\ms@dotchar{}
+\AtBeginDocument{%
+ \DeclareMathSymbol{\ms@comma}{\mathord}{letters}{"3B}%
+ \mathchardef\ms@commachar\mathcode\expandafter`,%
+ \mathcode\expandafter`,="8000%
+ \DeclareMathSymbol{\ms@dot}{\mathord}{letters}{"3A}%
+ \mathchardef\ms@dotchar\mathcode\expandafter`.%
+ \mathcode\expandafter`.="8000%
+ \mathswapon%
+}
+% \end{macrocode}
+% \end{macro}^^A \ms@dotchar
+% \end{macro}^^A \ms@dot
+% \end{macro}^^A \ms@commachar
+% \end{macro}^^A \ms@comma
+% \begin{macro}{\mathswapon}
+% \changes{v2.02}{2014/08/18}{neu}%^^A
+% \begin{macro}{\mathswapoff}
+% \changes{v2.02}{2014/08/18}{neu}%^^A
+% \begin{macro}{\ms@commaswap}
+% \changes{v2.02}{2014/08/18}{neu}%^^A
+% \begin{macro}{\ms@dotswap}
+% \changes{v2.02}{2014/08/18}{neu}%^^A
+% Mit den Befehlen \cs{mathswapon} und \cs{mathswapoff} kann die Funktionalität
+% des Paketes innerhalb des Dokumentes aktiviert und deaktiviert werden.
+% \begin{macrocode}
+\newcommand*\mathswapon{%
+ \def\ms@commaswap{\@commaswap}%
+ \def\ms@dotswap{\@dotswap}%
+}
+\newcommand*\mathswapoff{%
+ \def\ms@commaswap{\ms@commachar}%
+ \def\ms@dotswap{\ms@dotchar}%
+}
+\newcommand*\ms@commaswap{}
+\newcommand*\ms@dotswap{}
+% \end{macrocode}
+% \end{macro}^^A \ms@dotswap
+% \end{macro}^^A \ms@commaswap
+% \end{macro}^^A \mathswapoff
+% \end{macro}^^A \mathswapon
+% \begin{macro}{\ms@token}
+% \begin{macro}{\ms@smartcomma}
+% \begin{macro}{\ms@smartdot}
+% Mit \cs{futurelet} wird dem Makro \cs{ms@token} das nachfolgende Zeichen von
+% Komma bzw. Punkt zugewiesen. Anschließend wird mittels \cs{ms@smartcomma} bzw.
+% \cs{ms@smartdot} geprüft, ob es sich beim Inhalt von \cs{ms@token} um eine
+% Ziffer handelt. Dazu wird der Befehl \cs{ms@ifnum} verwendet. Sollte dies der
+% Fall sein, so wird ein Komma innerhalb einer Zahl durch \cs{@commaswap} und
+% ein Punkt entsprechend mit \cs{@dotswap} ersetzt. Sollte direkt nach dem
+% Trennzeichen keine Ziffer folgen, wird für Punkt und Komma die originale
+% Definition aus \cs{ms@commachar} bzw. \cs{ms@dotchar} verwendet.
+% \begin{macrocode}
+\newcommand*\ms@token{}
+\begingroup%
+ \catcode`,=\active%
+ \gdef,{\futurelet\ms@token\ms@smartcomma}%
+ \catcode`.=\active%
+ \gdef.{\futurelet\ms@token\ms@smartdot}%
+\endgroup%
+\def\ms@smartcomma{\ms@ifnum{\ms@commaswap}{\ms@commachar}}
+\def\ms@smartdot{\ms@ifnum{\ms@dotswap}{\ms@dotchar}}
+% \end{macrocode}
+% \end{macro}^^A \ms@smartdot
+% \end{macro}^^A \ms@smartcomma
+% \end{macro}^^A \ms@token
+% \begin{macro}{\ms@ifnum}
+% \begin{macro}{\ms@@ifnum}
+% Der Befehl \cs{ms@ifnum} reicht das erste Argument an \cs{ms@@ifnum} weiter,
+% falls der Inhalt von \cs{ms@token} zu einer Ziffer expandiert. Andernfalls
+% wird das zweite Argument ausgeführt.
+% \begin{macrocode}
+\def\ms@ifnum#1#2{%
+ \ifx\ms@token0\ms@@ifnum{#1}\else%
+ \ifx\ms@token1\ms@@ifnum{#1}\else%
+ \ifx\ms@token2\ms@@ifnum{#1}\else%
+ \ifx\ms@token3\ms@@ifnum{#1}\else%
+ \ifx\ms@token4\ms@@ifnum{#1}\else%
+ \ifx\ms@token5\ms@@ifnum{#1}\else%
+ \ifx\ms@token6\ms@@ifnum{#1}\else%
+ \ifx\ms@token7\ms@@ifnum{#1}\else%
+ \ifx\ms@token8\ms@@ifnum{#1}\else%
+ \ifx\ms@token9\ms@@ifnum{#1}\else%
+ #2%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
+}
+% \end{macrocode}
+% Wurde eine nachfolgende Ziffer erkannt, so wird die Definition von Punkt und
+% Komma auf die eines normalen Textzeichens gesetzt und anschließend die mit
+% \cs{commaswap} bzw. \cs{dotswap} angegebene Ersetzung ausgegeben.
+% \begin{macrocode}
+\def\ms@@ifnum#1{%
+ \begingroup%
+ \mathcode\expandafter`,=\the\ms@comma%
+ \mathcode\expandafter`.=\the\ms@dot%
+ #1%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \ms@@ifnum
+% \end{macro}^^A \ms@ifnum
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx
new file mode 100644
index 00000000000..4748344ff2c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx
@@ -0,0 +1,456 @@
+% \CheckSum{298}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-misc.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-misc.dtx}[%
+ 2014/12/12 v2.02 TUD-KOMA-Script (miscellaneous)%
+]
+\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-misc.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}{Verwendung \cs{FamilyKeyState}}%^^A
+%
+% \section{Verschiedenes für die Hauptklassen}
+%
+% Alles, wofür sich eine separate Datei nicht lohnt, landet hier.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*class&option>
+% \fi
+%
+% \subsection{Fußnoten in Überschriften}
+%
+% \begin{option}{footnotes}
+% \changes{v2.02}{2014/06/27}{neu}%^^A
+% \begin{macro}{\if@tud@symbolheadings}
+% \changes{v2.02}{2014/06/27}{neu}%^^A
+% Die \KOMAScript-Option \opt{footnotes} wird um den Schlüssel
+% \val{symbolheadings} erweitert, mit welchem eingestellt werden kann, ob in den
+% Überschriften Symbole für die Fußnoten anstelle von Zahlen verwendet werden
+% sollen.
+% \begin{macrocode}
+\newif\if@tud@symbolheadings
+\TUD@key{footnotes}{%
+ \TUD@set@numkey{footnotes}{@tempa}{%
+ {nosymbolheadings}{0},{numberheadings}{0},%
+ {symbolheadings}{1}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase \@tempa\relax%
+ \@tud@symbolheadingsfalse%
+ \or%
+ \@tud@symbolheadingstrue%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@bookmarks
+% \end{option}^^A symbolheadings
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{counter}{symbolheadings}
+% \changes{v2.02}{2014/06/27}{neu}%^^A
+% Dieser Zähler wird bei aktivierter Option \opt{footnotes=symbolheadings} für
+% die Symboleauswahl von Fußnoten in Überschirften inkrementiert.
+% \begin{macrocode}
+%<*book|report>
+\newcounter{symbolheadings}[chapter]
+%</book|report>
+%<*article>
+\newcounter{symbolheadings}
+%</article>
+% \end{macrocode}
+% \end{counter}^^A symbolheadings
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \subsection{Sprungmarken}
+%
+% \begin{option}{tudbookmarks}
+% \begin{macro}{\if@tud@bookmarks}
+% Wird das Paket \pkg{hyperref} geladen, so kann die Option \opt{tudbookmarks}
+% genutzt werden, um zu steuern, ob für Titel und Inhaltsverzeichnis
+% automatisch ein Eintrag für die Sprungmarken erzeugt werden soll.
+% \begin{macrocode}
+\newif\if@tud@bookmarks
+\TUD@ifkey{tudbookmarks}{@tud@bookmarks}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@bookmarks
+% \end{option}^^A tudbookmarks
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tudbookmark}
+% \begin{macro}{\tud@footnote@unhyper}
+% \begin{macro}{\tud@footnote@rehyper}
+% \changes{v2.02}{2014/11/13}{entfernt}%^^A
+% Die Befehle zum Eintragen der Sprungmarken. Im Dokument kann auch der Befehl
+% \cs{tudbookmark} vom Anwender genutzt werden, um manuell weitere Lesezeichen
+% zu erzeugen.
+%
+% Für die Titelseite werden~-- wie auch durch das Paket \pkg{hyperref}~-- die
+% Fußnoten mit dem Befehl \cs{tud@footnote@unhyper} auf den Originalzustand
+% zurückgesetzt.
+% \begin{macrocode}
+\newcommand*\tudbookmark[1][]{\@gobbletwo}
+\newcommand*\tud@footnote@unhyper{}
+\AfterPackage{hyperref}{%
+ \renewcommand*\tudbookmark[3][]{%
+ \relax%
+ \if@tud@bookmarks%
+ \phantomsection%
+ \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}%
+ \fi%
+ }%
+ \renewcommand*\tud@footnote@unhyper{%
+ \let\Hy@saved@footnotemark\@footnotemark%
+ \let\Hy@saved@footnotetext\@footnotetext%
+ \let\@footnotemark\H@@footnotemark%
+ \let\@footnotetext\H@@footnotetext%
+ }%
+ \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}%
+}
+\pretocmd{\maketitle}{%
+ \if@tud@bookmarks%
+ \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
+ \fi%
+%<*book|report>
+ \tudbookmark[0]{\titlepagename}{title}%
+%</book|report>
+%<*article>
+ \tudbookmark[1]{\titlepagename}{title}%
+%</article>
+}{}{\tud@patch@wrn{maketitle}}
+\pretocmd{\tableofcontents}{%
+%<*book|report>
+ \if@openright\cleardoublepage\else\clearpage\fi%
+%</book|report>
+ \if@tud@bookmarks%
+ \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
+ \fi%
+%<*book|report>
+ \tudbookmark[0]{\contentsname}{toc}%
+%</book|report>
+%<*article>
+ \tudbookmark[1]{\contentsname}{toc}%
+%</article>
+}{}{\tud@patch@wrn{tableofcontents}}
+% \end{macrocode}
+% \end{macro}^^A \tud@footnote@rehyper
+% \end{macro}^^A \tud@footnote@unhyper
+% \end{macro}^^A \tudbookmark
+%
+% \subsection{Parameter für Umgebungen und mehrspaltige Texte}
+%
+% Diese Befehle dienen dazu, bei Umgebungen die Sprache über einen Parameter
+% anzugeben sowie das Paket \pkg{multicol} verwenden zu können.
+% \begin{macro}{\tud@environmenthandler}
+% Hiermit kann sowohl die zu verwendende Sprache als auch die Anzahl der
+% gewünschten Spalten für bestimmte Umgebungen ohne die explizite Angabe eines
+% Schlüssels festgelegt werden. Momentan betrifft das die beiden Umgebungen
+% \env{abstract} und \env{tudpage}.
+% \begin{macrocode}
+\newcommand*\tud@environmenthandler[1]{%
+ \def\@tempa{#1}%
+ \@for\@tempb:=\@tempa\do{%
+ \ifx\@tempb\@empty\else%
+ \ifxnumber{\@tempb}{\let\tud@multicols\@tempb}{%
+ \ifstr{\@tempb}{twocolumn}{\def\tud@multicols{2}}{%
+ \expandafter\selectlanguage\expandafter{\@tempb}%
+ }}%
+ \fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@environmenthandler
+% \begin{macro}{\tud@multicols}
+% \begin{macro}{\tud@multicols@check}
+% Im Makro \cs{tud@multicols} wird die Anzahl der gewünschten Spalten in einer
+% Umgebung für die Verwendung des \pkg{multicol}"=Paketes gespeichert.
+% \begin{macrocode}
+\newcommand*\tud@multicols{1}
+% \end{macrocode}
+% Der Befehl \cs{tud@multicols@check} prüft, ob das Paket \pkg{multicol}
+% geladen wurde. Falls dies nicht der Fall ist, wird eine Warnung ausgegeben.
+% \begin{macrocode}
+\newcommand*\tud@multicols@check{%
+ \ifdef{\multicols}{}{%
+ \ifnum\tud@multicols>1\relax%
+ \ClassWarning{\tudcls@name}{%
+ The option `columns=\tud@multicols' is only supported,\MessageBreak%
+ when package `multicol' is loaded%
+ }%
+ \def\tud@multicols{1}%
+ \fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@multicols@check
+% \end{macro}^^A \tud@multicols
+%
+% \subsection{Bedingte Majuskeln für Überschriften}
+%
+% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch
+% tatsächlich die Schrift DIN~Bold verwendet wird.
+% \begin{macro}{\tud@makeuppercase}
+% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die
+% richtige Schriftfamilie verwendet wird. Außerdem wird gleich noch die zu hoch
+% liegende Grundlinie bei Überschriften der beiden Ebenen \cs{section} und
+% \cs{subsection} nach unten korrigiert (derber Hack).
+% \begin{macrocode}
+\newcommand*\tud@makeuppercase[1]{%
+ \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}%
+ \protect\vphantom{\"A\"O\"U}%
+% \end{macrocode}
+% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die
+% Gliederungsebene \cs{section} zu hoch. Mit dem Einfügen des vertikalen
+% Freiraums für die Umlaute würde diese automatisch nach unten verschoben.
+% Allerdings wäre das ein ziemlich übler Hack.
+% \begin{macrocode}
+%% \addtokomafont{section}{\strut\ignorespaces}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@makeuppercase
+%
+% \subsection{Erzwungene Minuskeln für Strings}
+%
+% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in
+% bestimmten Feldern mit Sicherheit erkennen zu können, werden diese zwingend
+% in Kleinbuchstaben geschieben.
+% \begin{macro}{\tud@lowerstring}
+% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} bennutzt.
+% \begin{macrocode}
+\newcommand*\tud@lowerstring[2]{%
+ \protected@edef#1{#2}%
+ \lowercase\expandafter{%
+ \expandafter\gdef\expandafter #1\expandafter{#1}%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@lowerstring
+%
+% \subsection{Expansion geschützter Makros}
+%
+% Im \LaTeX-Kernel wird der Befehl \cs{@expandtwoargs} definiert, welcher zwei
+% Argumente in ein angegebenes Makro vollständig expandiert. Dabei erfolgt die
+% Expansion der beiden Argumente aufgrund der standardmäßigen Verwendung von
+% \cs{edef} allerdings vollständig und ohne die Beachtung von \cs{protect}.
+% \begin{macro}{\protected@expandtwoargs}
+% Der Befehl \cs{protected@expandtwoargs} kann äquivalent genutzt werden,
+% lässt dabei aber mit \cs{protect} geschützte Makros unberührt.
+% \begin{macrocode}
+\providecommand*\protected@expandtwoargs[3]{%
+ \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a%
+}
+% \end{macrocode}
+% \end{macro}^^A \protected@expandtwoargs
+%
+% \iffalse
+%</class&body>
+%<*manual|doc>
+% \fi
+%
+% \section{Verschiedenes für die Dokumentationklassen}
+%
+% \begin{macro}{\vTUDScript}
+% \begin{macro}{\vKOMAScript}
+% \begin{macro}{\Attention}
+% \changes{v2.02}{2014/08/16}{neu}%^^A
+% \begin{macro}{\Forum}
+% \begin{macro}{\notudscrartcl}
+% \begin{length}{\tempdim}
+% \begin{macro}{\hrfn}
+% \begin{macro}{\scrguide}
+% \changes{v2.02}{2014/09/04}{neu}%^^A
+% \begin{macro}{\CD}
+% \begin{macro}{\CDs}
+% \begin{macro}{\TUD}
+% \begin{macro}{\TnUD}
+% \begin{macro}{\DDC}
+% \begin{macro}{\Univers}
+% \begin{macro}{\DIN}
+% Diese Befehle stellen regelmäßig in der Quelltextdokumentatuion und im
+% Handbuch genutzte Textbausteine bereit. Dazu wird der Befehl \cs{xspace} aus
+% dem \pkg{xspace}-Paket genutzt.
+% \begin{macrocode}
+\RequirePackage{xspace}[2009/10/20]
+\xspaceaddexceptions{"=}
+% \end{macrocode}
+% Der Befehl \cs{vTUDScript} enthält die aktuelle \TUDScript"=Versionsnummer.
+% \begin{macrocode}
+\newcommand*\vTUDScript{}
+\AtBeginDocument{%
+ \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}%
+ \edef\@tempa{\TUDVersion}%
+ \expandafter\@tempb\@tempa\relax? ? \relax\relax%
+}
+\newcommand*\vKOMAScript{v3.12\xspace}
+% \end{macrocode}
+% Ganz zum Schluss noch Bugfixes für unterschiedliche Pakete.
+% \begin{macrocode}
+\RequirePackage{scrhack}[2014/07/07]
+% \end{macrocode}
+% \dots und der Rest.
+% \begin{macrocode}
+%<*manual>
+\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}}
+\NewDocumentCommand\Forum{s}{%
+ \IfBooleanTF{#1}{%
+ \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}%
+ }{%
+ \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}%
+ }%
+ \xspace%
+}
+\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scriptsize\url{#1}}}
+\NewDocumentCommand\scrguide{s}{%
+ \def\@tempc{%
+ http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf%
+ }%
+ \IfBooleanTF{#1}{%
+ \href{\@tempc}{\File{scrguide.pdf}}%
+ }{%
+ \hrfn{\@tempc}{\File{scrguide.pdf}}%
+ }%
+ \xspace%
+}
+%<*manual&class>
+\NewDocumentCommand\GitHubRepo{s}{%
+ \def\@tempc{%
+ https://github.com/tud-cd/tudscr/releases%
+ }%
+ \IfBooleanTF{#1}{%
+ \href{\@tempc}{GitHub-Repository~\File*{tudscr}}%
+ }{%
+ \hrfn{\@tempc}{GitHub-Repository~\File*{tudscr}}%
+ }%
+ \xspace%
+}
+\newcommand*\notudscrartcl{%
+ F\"ur die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verf\"ugbar.
+}
+\newlength{\tempdim}
+%</manual&class>
+%</manual>
+\newcommand*\CD{Corporate Design\xspace}
+\newcommand*\CDs{Corporate Designs\xspace}
+\newcommand*\TUD{Technische Universit\"at Dresden\xspace}
+\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace}
+\newcommand*\DDC{%
+ \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em
+ N\kern.1em-\kern.1em concept}\xspace%
+}
+\AfterPackage*{babel}{%
+ \@expandtwoargs\in@{,english,}{,\bbl@loaded,}%
+ \ifin@%
+ \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace}
+ \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace}
+ \fi
+}
+%<*manual>
+\newcommand*\Univers{\textubn{Univers}\xspace}
+\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace}
+\newcommand*\sbnfont{\sffamily\bfseries\upshape}
+\newcommand*\sbsfont{\sffamily\bfseries\slshape}
+\newcommand*\textsbn{}
+\newcommand*\textsbs{}
+\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape}
+\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape}
+%</manual>
+% \end{macrocode}
+% \end{macro}^^A \DIN
+% \end{macro}^^A \Univers
+% \end{macro}^^A \DDC
+% \end{macro}^^A \TnUD
+% \end{macro}^^A \TUD
+% \end{macro}^^A \CDs
+% \end{macro}^^A \CD
+% \end{macro}^^A \scrguide
+% \end{macro}^^A \hrfn
+% \end{length}^^A \tempdim
+% \end{macro}^^A \notudscrartcl
+% \end{macro}^^A \Forum
+% \end{macro}^^A \Attention
+% \end{macro}^^A \vKOMAScript
+% \end{macro}^^A \vTUDScript
+%
+% \iffalse
+%</manual|doc>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx
new file mode 100644
index 00000000000..f3c196cde38
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx
@@ -0,0 +1,2005 @@
+% \CheckSum{1513}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-pagestyle.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-pagestyle.dtx}[%
+ 2014/12/17 v2.02 TUD-KOMA-Script (pagestyle)%
+]
+\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-pagestyle.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}{Verwendung \cs{FamilyKeyState}}%^^A
+%
+% \section{Der Seitenstil des \CDs}
+%
+% Das \CD verlangt (eigentlich) einen fest vorgegebenen Satzspiegel. Für das
+% Setzen längerer wissenschaftlicher Abhandlungen ist dieser jedoch alles
+% andere als glücklich gewählt. Insbesondere für den doppelseitigen Satz ist
+% das Standardlayout nicht gut nutzbar. Für die \TUDScript"=Klassen wird
+% deshalb die Abweichung vom sonst fest vorgegebenen Satzspiegel ermöglicht.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \subsection{Definition der konstanten Größen und Maße}
+%
+% Die Vorlagen sollen neben den vom \CD vorgegebenen Seitenrändern weitere
+% Layouts ermöglichen und u.\,a. auch die Nutzung des Paketes \pkg{typearea}
+% erlauben. Damit ein einheitliches Verfahren zur Wahl bzw. Umschaltung des
+% Satzspiegels genutzt werden kann, wird das Paket \pkg{geometry} genutzt.
+% Dabei werden entweder die gewünschten Maße der Seitenränder direkt gewählt
+% oder aber die mit \pkg{typearea} berechneten Maße an \pkg{geometry}
+% durchgereicht.
+%
+% Als erstes werden die Standardmaße für die Seitenränder im \CD definiert,
+% danach speziell für die \env{tudpage}"=Umgebung.
+%
+% \iffalse
+%<*class&body>
+% \fi
+%
+% \begin{length}{\tud@dim@left}
+% \begin{length}{\tud@dim@right}
+% \begin{length}{\tud@dim@both}
+% Die Seitenränder für links und rechts sowie deren Summe, welche später für
+% weitere Layouts dazu verwendet wird, diese anteilig zu verteilen.
+% \begin{macrocode}
+\newlength{\tud@dim@left}
+\newlength{\tud@dim@right}
+\newlength{\tud@dim@both}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@both
+% \end{length}^^A \tud@dim@right
+% \end{length}^^A \tud@dim@left
+% \begin{length}{\tud@dim@top}
+% \begin{length}{\tud@dim@bottom}
+% \begin{length}{\tud@dim@footskip}
+% Die Seitenränder für sowohl oben als auch unten sowie der Abstand zwischen
+% Textkörper und Fußzeile.
+% \begin{macrocode}
+\newlength{\tud@dim@top}
+\newlength{\tud@dim@bottom}
+\newlength{\tud@dim@footskip}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@footskip
+% \end{length}^^A \tud@dim@bottom
+% \end{length}^^A \tud@dim@top
+% \begin{length}{\tud@dim@headheight}
+% \begin{length}{\tud@dim@barheight}
+% \begin{length}{\tud@dim@headsep}
+% Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe
+% oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale
+% (Mindest"~)Abstand zwischen Querbalken und Textkörper.
+% \begin{macrocode}
+\newlength{\tud@dim@headheight}
+\newlength{\tud@dim@barheight}
+\newlength{\tud@dim@headsep}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@headsep
+% \end{length}^^A \tud@dim@barheight
+% \end{length}^^A \tud@dim@headheight
+% \begin{length}{\tud@dim@logox}
+% \begin{length}{\tud@dim@logoy}
+% \begin{length}{\tud@dim@logowidth}
+% \begin{length}{\tud@dim@logoheight}
+% Außerdem müssen noch die Abmessungen und die Position des TUD-Logos definiert
+% werden, nämlich der horizontale (Soll"~)Abstand zwischen linkem Seitenrand
+% und Logo, der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo
+% sowie die Breite und Höhe\footnote{Proportionen sind durch die Grafik
+% vorgegeben} des Logos.
+% \begin{macrocode}
+\newlength{\tud@dim@logox}
+\newlength{\tud@dim@logoy}
+\newlength{\tud@dim@logowidth}
+\newlength{\tud@dim@logoheight}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@logoheight
+% \end{length}^^A \tud@dim@logowidth
+% \end{length}^^A \tud@dim@logoy
+% \end{length}^^A \tud@dim@logox
+% \begin{length}{\tud@dim@line}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{length}{\tud@dim@thinline}
+% \begin{length}{\tud@dim@heavyline}
+% Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler
+% als im Layout mit farbigem Hintergrund.\footnote{%
+% monochrom \cs{tud@dim@thinline}, koloriert \cs{tud@dim@heavyline}}%
+% Da im Dokument beide Varianten vorkommen können, wird die Breite
+% \cs{tud@dim@line} durch den Seitenstil situativ entweder auf den Wert von
+% \cs{tud@dim@thinline} oder aber \cs{tud@dim@heavyline} gesetzt.
+% \begin{macrocode}
+\newlength{\tud@dim@line}
+\newlength{\tud@dim@thinline}
+\newlength{\tud@dim@heavyline}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@heavyline
+% \end{length}^^A \tud@dim@thinline
+% \end{length}^^A \tud@dim@line
+% \begin{length}{\tud@dim@headingsvskip}
+% Die Länge für den vertikalen Standardversatz der Überschriften.
+% \begin{macrocode}
+\newlength{\tud@dim@headingsvskip}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@headingsvskip
+% \begin{length}{\tud@dim@headdiff}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{length}{\tud@dim@ddcdiff}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{length}{\tud@dim@ddcfoot}
+% \changes{v2.02}{2014/06/23}{neu, Umbenennung von \cs{tud@dim@ddcheight}}%^^A
+% Zu guter Letzt noch die Höhe des \DDC-Logos in der Fußzeile. Die maximale Höhe
+% der Fußzeile ist fest vorgegeben.
+% \begin{macrocode}
+\newlength{\tud@dim@headdiff}
+\newlength{\tud@dim@ddcdiff}
+\newlength{\tud@dim@ddcfoot}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@ddcfoot
+% \end{length}^^A \tud@dim@ddcdiff
+% \end{length}^^A \tud@dim@headdiff
+% \begin{macro}{\tud@geometry@set}
+% \begin{macro}{\tud@head@font@size}
+% Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die
+% Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die
+% Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch
+% \cs{tud@geometry@process}.
+% \begin{macrocode}
+\newcommand*\tud@head@font@size{}
+\newcommand*\tud@geometry@set{%
+ \ifdim\paperheight<148.1mm\relax%
+ \setlength{\tud@dim@headheight}{17.5mm}%
+ \setlength{\tud@dim@barheight}{2.5mm}%
+ \setlength{\tud@dim@headsep}{6mm}%
+ \setlength{\tud@dim@logox}{5.5mm}%
+ \setlength{\tud@dim@logoy}{6.5mm}%
+ \setlength{\tud@dim@logowidth}{28.5mm}%
+ \setlength{\tud@dim@left}{15mm}%
+ \setlength{\tud@dim@right}{10mm}%
+ \setlength{\tud@dim@top}{12.5mm}%
+ \setlength{\tud@dim@bottom}{12.5mm}%
+ \setlength{\tud@dim@footskip}{6mm}%
+ \setlength{\tud@dim@heavyline}{0.75pt}%
+ \setlength{\tud@dim@thinline}{0.5pt}%
+ \def\tud@head@font@size{4.5}%
+ \else\ifdim\paperheight<297.1mm\relax%
+ \setlength{\tud@dim@headheight}{35mm}%
+ \setlength{\tud@dim@barheight}{5mm}%
+ \setlength{\tud@dim@headsep}{12mm}%
+ \setlength{\tud@dim@logox}{11mm}%
+ \setlength{\tud@dim@logoy}{13.5mm}%
+ \setlength{\tud@dim@logowidth}{57mm}%
+ \setlength{\tud@dim@left}{30mm}%
+ \setlength{\tud@dim@right}{20mm}%
+ \setlength{\tud@dim@top}{25mm}%
+ \setlength{\tud@dim@bottom}{25mm}%
+ \setlength{\tud@dim@footskip}{12mm}%
+ \setlength{\tud@dim@heavyline}{1pt}%
+ \setlength{\tud@dim@thinline}{0.5pt}%
+ \def\tud@head@font@size{9}%
+ \else\ifdim\paperheight<420.1mm\relax%
+ \setlength{\tud@dim@headheight}{50mm}%
+ \setlength{\tud@dim@barheight}{7mm}%
+ \setlength{\tud@dim@headsep}{17mm}%
+ \setlength{\tud@dim@logox}{15.5mm}%
+ \setlength{\tud@dim@logoy}{19mm}%
+ \setlength{\tud@dim@logowidth}{80mm}%
+ \setlength{\tud@dim@left}{42mm}%
+ \setlength{\tud@dim@right}{28mm}%
+ \setlength{\tud@dim@top}{35mm}%
+ \setlength{\tud@dim@bottom}{35mm}%
+ \setlength{\tud@dim@footskip}{17mm}%
+ \setlength{\tud@dim@heavyline}{1.4pt}%
+ \setlength{\tud@dim@thinline}{0.7pt}%
+ \def\tud@head@font@size{13}%
+ \else\ifdim\paperheight<594.1mm\relax%
+ \setlength{\tud@dim@headheight}{70mm}%
+ \setlength{\tud@dim@barheight}{10mm}%
+ \setlength{\tud@dim@headsep}{24mm}%
+ \setlength{\tud@dim@logox}{22mm}%
+ \setlength{\tud@dim@logoy}{27mm}%
+ \setlength{\tud@dim@logowidth}{114mm}%
+ \setlength{\tud@dim@left}{60mm}%
+ \setlength{\tud@dim@right}{40mm}%
+ \setlength{\tud@dim@top}{50mm}%
+ \setlength{\tud@dim@bottom}{50mm}%
+ \setlength{\tud@dim@footskip}{24mm}%
+ \setlength{\tud@dim@heavyline}{1.7pt}%
+ \setlength{\tud@dim@thinline}{1pt}%
+ \def\tud@head@font@size{13.5}%
+ \else\ifdim\paperheight<841.1mm\relax%
+ \setlength{\tud@dim@headheight}{100mm}%
+ \setlength{\tud@dim@barheight}{14mm}%
+ \setlength{\tud@dim@headsep}{34mm}%
+ \setlength{\tud@dim@logox}{31mm}%
+ \setlength{\tud@dim@logoy}{38mm}%
+ \setlength{\tud@dim@logowidth}{161.5mm}%
+ \setlength{\tud@dim@left}{85mm}%
+ \setlength{\tud@dim@right}{56.5mm}%
+ \setlength{\tud@dim@top}{71mm}%
+ \setlength{\tud@dim@bottom}{71mm}%
+ \setlength{\tud@dim@footskip}{34mm}%
+ \setlength{\tud@dim@heavyline}{1.9pt}%
+ \setlength{\tud@dim@thinline}{1.5pt}%
+ \def\tud@head@font@size{14}%
+ \else%
+ \setlength{\tud@dim@headheight}{140mm}%
+ \setlength{\tud@dim@barheight}{20mm}%
+ \setlength{\tud@dim@headsep}{48mm}%
+ \setlength{\tud@dim@logox}{44mm}%
+ \setlength{\tud@dim@logoy}{54mm}%
+ \setlength{\tud@dim@logowidth}{228mm}%
+ \setlength{\tud@dim@left}{120mm}%
+ \setlength{\tud@dim@right}{80mm}%
+ \setlength{\tud@dim@top}{100mm}%
+ \setlength{\tud@dim@bottom}{100mm}%
+ \setlength{\tud@dim@footskip}{48mm}%
+ \setlength{\tud@dim@heavyline}{2.1pt}%
+ \setlength{\tud@dim@thinline}{2pt}%
+ \def\tud@head@font@size{20}%
+ \fi\fi\fi\fi\fi%
+ \setlength{\tud@dim@both}{\dimexpr\tud@dim@left+\tud@dim@right\relax}%
+% \end{macrocode}
+% Hiermit wird sichergestellt, dass bei der Verwendung des \DDC-Logos im Fuß
+% ausreichend Platz zur Verfügung steht.
+% \begin{macrocode}
+ \setlength{\tud@dim@ddcfoot}{.6\tud@dim@headheight}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@font@size
+% \end{macro}^^A \tud@geometry@set
+%
+% \subsection{Unterstützung der \cls{standalone}-Klasse}
+%
+% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}"=Klasse}%^^A
+%
+% Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate
+% Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse
+% ändert allerhand an den Einstellungen der Seitenränder. Damit sich diese bei
+% der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen
+% für einige Einstellungen unterdrückt werden.
+%
+% \begin{macro}{\tud@ifsacrop}
+% \changes{v2.02}{2014/09/08}{neu}%^^A
+% Mit diesem Makro kann die Verwendung der Option \opt{crop} mit der Klasse
+% \cls{standalone} geprüft werden. Das erste Argument wird ausgeführt, wenn
+% die Klasse geladen und die Option aktiv ist. Das zweite Argument wird
+% ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die
+% Klasse \cls{standalone} gar nicht geladen wurde.
+% \begin{macrocode}
+\newcommand*\tud@ifsacrop{%
+ \ifcsdef{ifsa@crop}{%
+ \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}%
+ }{%
+ \@secondoftwo%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ifsacrop
+%
+% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv,
+% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das
+% Laden von \pkg{scrlayer-scrpage} verhindert.
+%
+% \begin{macrocode}
+\AtEndPreamble{%
+ \tud@ifsacrop{%
+ \PreventPackageFromLoading{scrlayer-scrpage}%
+ \pagestyle{empty}%
+ \hoffset=-72.27pt%
+ \voffset=-72.27pt%
+ \topmargin=0pt%
+ \headheight=0pt%
+ \headsep=0pt%
+ \marginparsep=0pt%
+ \marginparwidth=0pt%
+ \footskip=0pt%
+ \marginparpush=0pt%
+ \oddsidemargin=0pt%
+ \evensidemargin=0pt%
+ \topskip=0pt%
+ \textheight=\dimexpr\maxdimen%
+ }{}%
+}
+% \end{macrocode}
+%
+% \subsection{Definition des Seitenstils mittels \pkg{scrlayer-scrpage}}
+%
+% Ein zentraler Bestandteil der Vorlagen ist der Seitenkopf des \CDs. Dieser
+% wird ab der Version~v2.02 mit Hilfe des Paketes \pkg{scrlayer-scrpage}
+% erstellt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von
+% verschiedenen Befehlen wie beispielsweise von\cs{maketitle} oder \cs{part}
+% bzw. \cs{addpart} genutzt werden. Zum anderen kann der Anwender selbst diese
+% entweder direkt über die Wahl des Seitenstils oder aber mit der
+% \env{tudpage}"=Umgebung nutzen.
+%
+% \begin{pagestyle}{tudheadings}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{pagestyle}{plain.tudheadings}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{pagestyle}{empty.tudheadings}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Es wird ein neuer Seitenstil kreiert, der das \CD der TU~Dresden mit der
+% prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein,
+% wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket
+% \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD
+% vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum
+% Textblock gesetzt. Für den Fall, dass das Dokument nicht ausschließlich mit
+% dem TUD-Kopf auf jeder Seite gesetzt wird, muss der komplette vertikale
+% Satzspiegel angepasst werden, sonst wäre der obere Rand optisch viel zu groß.
+% Hierfür wird das Paket \pkg{geometry} genutzt.Durch \cs{tud@geometry@process}
+% werden drei Layouts erstellt. Diese können mit \cs{loadgeometry}\marg{Stil}
+% geladen werden.
+% \begin{macrocode}
+\AtEndPreamble{%
+% \end{macrocode}
+% Damit der Anwender beliebige Optionen an \pkg{scrlayer-scrpage} übergeben
+% kann, wird das Paket erst zum Ende der Präambel geladen, wenn dies nicht
+% bereits vorher geschehen ist.
+% \ToDo{Versionsanforderung rein, sobald aktuelle Version auf CTAN vorhanden}
+% \begin{macrocode}
+ \RequirePackage{scrlayer-scrpage}[2013/12/14]%
+% \end{macrocode}
+% Anschließend werden verschiedene, sogeannte Layers für die einzelnen Elemente
+% auf einer Seite erstellt. Dies sind das aus dem Satzspiegel nach links
+% verschobene Logo der \TnUD sowie \dots
+% \begin{macrocode}
+ \AfterPackage*{scrlayer-scrpage}{%
+ \DeclareNewLayer[%
+ background,head,align=tl,%
+ voffset=\tud@dim@logoy,%
+ contents={%
+ \hspace*{\dimexpr\tud@dim@logox-\tud@dim@left\relax}\tud@mainlogo%
+ },%
+ ]{tudheadings.head.mainlogo}%
+% \end{macrocode}
+% \dots das Zweitlogo, \dots
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,head,align=tl,%
+ voffset=\tud@dim@logoy,%
+ contents={\hfill\tud@headlogo},%
+ ]{tudheadings.head.logo}%
+% \end{macrocode}
+% \dots die obere und untere Linie des Querbalkens sowohl in der normalen
+% Version, welche den Textbereich überspannt als auch in der Variante über die
+% komplette Seitenbreite. Dabei muss für beide Varianten der entsprechenden
+% horizontale Versatz beachtet werden. Dafür wird ggf. der Parameter \val{head}
+% von \pkg{scrlayer-scrpage} verwendet. Darauf folgt \dots
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,head,align=tl,%
+ voffset=\dimexpr\tud@dim@headheight-.5\tud@dim@line\relax,%
+ contents={\if@tud@widehead\else\tud@head@rule{\textwidth}\fi},%
+ ]{tudheadings.head.topline}%
+ \DeclareNewLayer[%
+ background,head,align=tl,%
+ voffset={%
+ \dimexpr\tud@dim@headheight+\tud@dim@barheight-.5\tud@dim@line\relax%
+ },%
+ contents={\if@tud@widehead\else\tud@head@rule{\textwidth}\fi},%
+ ]{tudheadings.head.bottomline}%
+ \DeclareNewLayer[%
+ background,align=tl,%
+ voffset=\dimexpr\tud@dim@headheight-.5\tud@dim@line\relax,%
+ contents={\if@tud@widehead\tud@head@rule{\paperwidth}\fi},%
+ ]{tudheadings.head.topwideline}%
+ \DeclareNewLayer[%
+ background,align=tl,%
+ voffset={%
+ \dimexpr\tud@dim@headheight+\tud@dim@barheight-.5\tud@dim@line\relax%
+ },%
+ contents={\if@tud@widehead\tud@head@rule{\paperwidth}\fi},%
+ ]{tudheadings.head.bottomwideline}%
+% \end{macrocode}
+% \dots der Inhalt mit Fakultät, Einrichtung, Institut und Lehrstuhl.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,head,align=tl,%
+ voffset=\dimexpr\tud@dim@headheight+\tud@dim@line\relax,%
+ contents={\tud@head@text@box},%
+ ]{tudheadings.head.text}%
+% \end{macrocode}
+% Außerdem wird eine weitere Ebene mit dem \DDC-Logo im Seitenfuß erstellt.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,foot,%
+ contents={%
+ \vskip\dimexpr-\tud@dim@ddcfoot-\baselineskip+\ht\strutbox%
+ \hfill\tud@footlogo%
+ },%
+ ]{tudheadings.foot.ddclogo}%
+% \end{macrocode}
+% Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile
+% zusammengesetzt. Mit \cs{newpairofpagestyles} wird neben dem Seitenstil
+% \pgs{tudheadings} der passende Seitenstil \pgs{plain.tudheadings} gleich mit
+% deklariert.
+% \begin{macrocode}
+ \newpairofpagestyles{tudheadings}{}%
+% \end{macrocode}
+% Allerdings führt der Befehl dazu, dass zunächst eine Vielzahl an Ebenen
+% hinzugefügt wird, welche nicht benötigt werden. Deshalb werden diese mit
+% \cs{RemoveLayersFromPageStyle} zunächst entfernt.
+% \begin{macrocode}
+ \ForEachLayerOfPageStyle{tudheadings}{%
+ \RemoveLayersFromPageStyle{tudheadings}{#1}%
+ }%
+ \ForEachLayerOfPageStyle{plain.tudheadings}{%
+ \RemoveLayersFromPageStyle{plain.tudheadings}{#1}%
+ }%
+% \end{macrocode}
+% Nun folgt das Hinzufügen der Ebenen zu den jetzt leeren Seitenstilen. Damit
+% die Benutzerschnittstelle von \pkg{scrlayer-scrpage} für die Fußzeile
+% weiterhin durch den Anwender verwendet werden kann, werden die entsprechenden
+% \pgs{scrheadings}-Ebenen verwendet.
+% \begin{macrocode}
+ \AddLayersToPageStyle{tudheadings}{%
+ tudheadings.head.mainlogo,%
+ tudheadings.head.logo,%
+ tudheadings.head.topline,%
+ tudheadings.head.bottomline,%
+ tudheadings.head.topwideline,%
+ tudheadings.head.bottomwideline,%
+ tudheadings.head.text,%
+ tudheadings.foot.ddclogo,%
+ scrheadings.foot.odd,%
+ scrheadings.foot.even,%
+ scrheadings.foot.oneside,%
+ scrheadings.foot.above.line,%
+ scrheadings.foot.below.line%
+ }%
+ \AddLayersToPageStyle{plain.tudheadings}{%
+ tudheadings.head.mainlogo,%
+ tudheadings.head.logo,%
+ tudheadings.head.topline,%
+ tudheadings.head.bottomline,%
+ tudheadings.head.topwideline,%
+ tudheadings.head.bottomwideline,%
+ tudheadings.head.text,%
+ tudheadings.foot.ddclogo,%
+ plain.scrheadings.foot.odd,%
+ plain.scrheadings.foot.even,%
+ plain.scrheadings.foot.oneside,%
+ plain.scrheadings.foot.above.line,%
+ plain.scrheadings.foot.below.line%
+ }%
+ \DeclareNewPageStyleByLayers{empty.tudheadings}{%
+ tudheadings.head.mainlogo,%
+ tudheadings.head.logo,%
+ tudheadings.head.topline,%
+ tudheadings.head.bottomline,%
+ tudheadings.head.topwideline,%
+ tudheadings.head.bottomwideline,%
+ tudheadings.head.text,%
+ tudheadings.foot.ddclogo,%
+ }%
+% \end{macrocode}
+% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf
+% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten
+% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Alias für
+% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} definiert. Hiermit
+% wird zusätzlich dafür gesorgt, das der Seitenstil \pgs{empty} ebenfalls als
+% Alias für \pgs{empty.tudheadings} verwendet werden kann.
+% \begin{macrocode}
+ \AddToLayerPageStyleOptions{tudheadings}{%
+ onselect={\letcs\ps@empty{ps@empty.tudheadings}}%
+ }%
+ \AddToLayerPageStyleOptions{plain.tudheadings}{%
+ onselect={\letcs\ps@empty{ps@empty.tudheadings}}%
+ }%
+ \AddToLayerPageStyleOptions{empty.tudheadings}{%
+ onselect={%
+ \letcs\ps@empty{ps@empty.tudheadings}%
+ \letcs\ps@plain{ps@plain.tudheadings}%
+ \letcs\ps@headings{ps@tudheadings}%
+ }%
+ }%
+% \end{macrocode}
+% Außerdem wird der Alias-Seitenstil \pgs{tudscrheadings} definiert.
+% \begin{macrocode}
+ \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}%
+ \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}%
+ \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}%
+% \end{macrocode}
+% Der TUD-Kopf erfordert einen eigenen Satzspiegel, der ggf. durch
+% \cs{tud@beforepagestyle} aktiviert bzw. deaktiviert wird.
+% \begin{macrocode}
+ \BeforeSelectAnyPageStyle{\tud@beforepagestyle{#1}}%
+ }%
+}
+% \end{macrocode}
+% \end{pagestyle}^^A empty.tudheadings
+% \end{pagestyle}^^A plain.tudheadings
+% \end{pagestyle}^^A tudheadings
+% \begin{macro}{\ps@tudpage@plain}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \begin{macro}{\ps@tudpage@empty}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt.
+% \end{macro}^^A \ps@tudpage@empty
+% \end{macro}^^A \ps@tudpage@plain
+% \begin{macro}{\tud@beforepagestyle}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\tud@currentgeometry}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Mit \cs{tud@beforepagestyle} wird beim Umschalten des Seitenstils ggf. der
+% Satzspiegel geändert.
+% \begin{macrocode}
+\newcommand*\tud@currentgeometry{}
+\newcommand*\tud@beforepagestyle[1]{%
+% \end{macrocode}
+% Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles}
+% derart definiert, dass zwischen \pgs{tudheadings}, \pgs{plain.tudheadings}
+% sowie~-- durch die Anpassungen weiter oben~-- \pgs{empty.tudheadings} auch
+% mit \LaTeX-Standardseitenstilen \pgs{headings}, \pgs{plain} und \pgs{empty}
+% umgeschaltet werden kann. Dies wird hiermit beachtet.
+% \begin{macrocode}
+ \def\@tempa{#1}%
+ \ifstr{\sls@currentheadings}{tudheadings}{%
+ \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}%
+ \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}%
+ \ifstr{#1}{empty}{\def\@tempa{empty.tudheadings}}{}%
+ }{}%
+% \end{macrocode}
+% Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll\dots
+% \begin{macrocode}
+ \tud@ifinpslist{\@tempa}{%
+% \end{macrocode}
+% \dots werden die Einstellungen für den Seitenfuß mit \cs{tud@ddc@check} in
+% \cs{@tempb} geschrieben und abhängig davon der richtige Satzspiegel geladen.
+% Dabei wird zuvor mit dem Wert aus \cs{tud@currentgeometry} geprüft, ob dies
+% überhaupt notwendig ist.
+% \begin{macrocode}
+ \tud@ddc@check%
+% \end{macrocode}
+% Das \DDC-Logo im Fuß ist nicht aktiviert.
+% \begin{macrocode}
+ \ifcase \@tempb\relax%
+ \ifstr{\tud@currentgeometry}{tudarea}{}{%
+ \loadgeometry{tudarea}%
+ \gdef\tud@currentgeometry{tudarea}%
+ }%
+% \end{macrocode}
+% Das \DDC-Logo im Fuß ist aktiviert.
+% \begin{macrocode}
+ \else%
+ \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+ \loadgeometry{tudareaddc}%
+ \gdef\tud@currentgeometry{tudareaddc}%
+ }%
+ \fi%
+% \end{macrocode}
+% Die Länge \cs{tud@dim@headdiff} gibt an, wie groß die Differenz zwischen
+% Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil
+% ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@}
+% gesetzt.
+% \begin{macrocode}
+ \setlength{\tud@dim@headdiff}{\z@}%
+% \end{macrocode}
+% Hier ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll.
+% Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty}
+% zurückgesetzt.
+% \begin{macrocode}
+ }{%
+ \ifstr{\tud@currentgeometry}{typearea}{}{%
+ \loadgeometry{typearea}%
+ \gdef\tud@currentgeometry{typearea}%
+ \RedeclarePageStyleByLayers{empty}{}%
+ }%
+% \end{macrocode}
+% Die Länge \cs{tud@dim@headdiff} wird auf den berechneten Wert gesetzt. Nur
+% für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und dieser
+% nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas angepasst
+% werden.
+% \begin{macrocode}
+ \setlength{\tud@dim@headdiff}{\tud@ta@headdiff}%
+ \ifcase \tud@geometry\relax\else%
+ \if@hincl%
+ \addtolength{\tud@dim@headdiff}{%
+ \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax%
+ }%
+ \fi%
+ \fi%
+ }%
+% \end{macrocode}
+% Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt.
+% \begin{macrocode}
+ \global\tud@dim@headdiff=\tud@dim@headdiff%
+}
+% \end{macrocode}
+% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die
+% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal
+% angepasst werden.
+% \begin{macrocode}
+\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{%
+ \let\tud@beforepagestyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}}
+\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{%
+ \let\tud@beforepagestyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}}
+\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{%
+ \let\tud@beforepagestyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoublepageusingstyle}}
+% \end{macrocode}
+% \end{macro}^^A \tud@currentgeometry
+% \end{macro}^^A \tud@beforepagestyle
+% \begin{macro}{\tud@ddc@enlargepage}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Der Befehl wird für die Titelkopf- und Kapitelseiten verwendet. Er
+% verkleinert die entsprechenden Seiten, wenn für diese mit dem Befehl
+% \cs{thispagestyle} einer der \pgs{tudheadings}"=Seitenstile gewählt wurde
+% \emph{und} des \DDC-Logo im Fuß gesetzt werden soll.
+% \begin{macrocode}
+\newcommand*\tud@ddc@enlargepage{%
+ \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+ \tud@ddc@check%
+ \ifcase \@tempb\relax\else\enlargethispage{-\tud@dim@ddcdiff}\fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@enlargepage
+% \begin{macro}{\tud@head@text}
+% \begin{macro}{\tud@head@text@first}
+% \begin{macro}{\tud@head@text@second}
+% \begin{macro}{\tud@head@text@delimiter}
+% \begin{macro}{\tud@head@text@buffer}
+% \begin{macro}{\tud@head@font}
+% Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und
+% unterhalb des Querbalkens des TUD-Kopfes dienen.
+% \begin{macrocode}
+\newcommand*\tud@head@text{}
+\newcommand*\tud@head@text@first{}
+\newcommand*\tud@head@text@second{}
+\newcommand*\tud@head@text@delimiter{}
+\newcommand*\tud@head@text@buffer{}
+\newcommand*\tud@head@font{}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@font
+% \end{macro}^^A \tud@head@text@buffer
+% \end{macro}^^A \tud@head@text@delimiter
+% \end{macro}^^A \tud@head@text@second
+% \end{macro}^^A \tud@head@text@first
+% \end{macro}^^A \tud@head@text
+% \begin{macro}{\tud@head@rule}
+% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}%^^A
+% Der Querbalken des Kopfes läuft je nach gewähltem Parameter \opt{widehead}
+% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite.
+% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und
+% über \cs{tud@dim@line} definierter Dicke.
+% \begin{macrocode}
+\newcommand*\tud@head@rule[1]{%
+ \color{\tud@head@color}%
+ \rule[\dimexpr\ht\strutbox\relax]{#1}{\tud@dim@line}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@rule
+% \begin{macro}{\tud@head@text@add}
+% Dieser Befehl dient zum Füllen eines Puffer-Strings. Es werden sequentiell
+% alle potentiellen Felder hinzugefügt. Sollte das zuletzt hinzugefügte Feld
+% dazu führen, dass der Text der Kopfzeile über den Seitenrand hinausragt, so
+% wird eine zweite Zeile begonnen. In diesem Fall wird der temporäre Schalter
+% \cs{@tempswa} aktiviert. Auch das Trennzeichen zwischen einzelnen Feldern
+% muss gepuffert werden, da dieses nur gesetzt wird, wenn ein weiteres Feld
+% nachfolgt.
+% \begin{macrocode}
+\newcommand*\tud@head@text@add[3][, ]{%
+ \def\tud@head@font{#2}%
+ \edef\tud@head@text{#3}%
+ \ifx\tud@head@text\@empty%
+ \def\tud@head@text@delimiter{}%
+ \else%
+ \edef\tud@head@text@delimiter{\tud@head@text@buffer}%
+ \def\tud@head@text@buffer{#1}%
+ \fi%
+ \if@tempswa\else%
+ \def\@tempa{%
+ \tud@head@text@first%
+ \tud@head@text@delimiter%
+ \tud@head@font%
+ \tud@head@text%
+ }%
+ \settowidth{\@tempdima}{\@tempa}%
+ \ifdim\@tempdima>\textwidth\relax%
+ \@tempswatrue%
+ \def\tud@head@text@delimiter{}%
+ \else%
+ \edef\tud@head@text@first{\@tempa}%
+ \fi%
+ \fi%
+ \if@tempswa%
+ \edef\tud@head@text@second{%
+ \tud@head@text@second%
+ \tud@head@text@delimiter%
+ \tud@head@font%
+ \tud@head@text%
+ }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@add
+% \begin{macro}{\tud@head@text@box}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile.
+% \begin{macrocode}
+\newcommand*\tud@head@text@box{%
+% \end{macrocode}
+% Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben.
+% \begin{macrocode}
+ \ifx\@faculty\@empty%
+ \ClassWarningNoLine{\tudcls@name}{No `\string\faculty' given}%
+ \faculty{}%
+ \fi%
+% \end{macrocode}
+% Die Farbe des Kopfes wird für Titel und Teileseiten durch die gewählten
+% Optionen\footnote{\opt{cdtitle}, \opt{cdpart}} bestimmt.\footnote{für
+% die \env{tudpage}-Umgebung kann dieser angepasst werden}
+% \begin{macrocode}
+ \color{\tud@head@color}%
+% \end{macrocode}
+% Abhängig vom Schalter \cs{if@tud@cdfonts}~-- gesetzt entweder von der globalen
+% Klassenoption oder vom lokalelParameter \opt{cdfont}~-- werden entweder die
+% Schriften des \CDs oder aber die serifenlose Standardschrift für die Kopfzeile
+% verwendet.
+% \begin{macrocode}
+ \tud@head@font@set%
+% \end{macrocode}
+% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben.
+% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine zweite
+% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der
+% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der ersten und
+% gegebenenfalls der zweiten Textzeile im Kopf erfolgt durch das Makro
+% \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Der dafür
+% verwendete Schalter \cs{@tempswa} und die benötigten Hilfsmakros werden
+% vor der Verwendung initialisiert.
+% \begin{macrocode}
+ \@tempswafalse%
+ \def\tud@head@text@first{}%
+ \def\tud@head@text@second{}%
+ \def\tud@head@text@buffer{}%
+ \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}%
+ \tud@head@text@add{\tud@head@font@light}{\@department}%
+ \tud@head@text@add{\tud@head@font@light}{\@institute}%
+ \tud@head@text@add{\tud@head@font@light}{\@chair}%
+% \end{macrocode}
+% Sollte die zweite Textzeile zu lang sein, was bei kleinen Papierformaten
+% vorkommen kann, dann wird eine Warnung ausgegeben.
+% \begin{macrocode}
+ \settowidth{\@tempdima}{\tud@head@text@second}%
+ \ifdim\@tempdima>\textwidth\relax%
+ \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}%
+ \hfuzz=\@tempdima%
+ \fi%
+% \end{macrocode}
+% Es erfolgt die Ausgabe der Textzeile(n) mit Fakultät etc. über
+% \cs{tud@head@text@write} sowie einer möglichen Extrazeile.
+% \begin{macrocode}
+ \vbox{%
+ \linespread{0}\selectfont%
+ \tud@head@text@write{\tud@head@text@first}%
+ \ifx\tud@head@text@second\@empty%
+ \ifx\@extraheadline\@empty\else%
+ \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}%
+ \fi%
+ \else%
+ \newline\tud@head@text@write{\tud@head@text@second}%
+ \ifx\@extraheadline\@empty\else%
+ \newline\tud@head@font@light\@extraheadline%
+ \fi%
+ \fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@box
+% \begin{macro}{\tud@head@text@write}
+% \changes{v2.02}{2014/06/23}{Vertikaler Freiraum für Ober- und Unterlängen
+% mit \cs{vphantom} eingefügt}%^^A
+% \changes{v2.02}{2014/12/04}{optische Zentrierung des Zeilentextes}%^^A
+% Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf
+% \begin{macrocode}
+\newcommand*\tud@head@text@write[1]{%
+ \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[%
+ \dimexpr\tud@dim@barheight-\depth\relax%
+ ][\depth]{#1\vphantom{gjpqy\"A\"O\"U}}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@write
+% \begin{macro}{\tud@head@text@wrn}
+% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die
+% Textbreite, was bei besonders kleinen Papierformaten geschehen kann.
+% \begin{macrocode}
+\newcommand\tud@head@text@wrn[1]{%
+ \ClassWarning{\tudcls@name}{%
+ The given entries for the headline\MessageBreak%
+ (faculty, institute etc.) are #1\MessageBreak%
+ too wide for the textwidth%
+ }%
+ \global\let\tud@head@text@wrn\@gobble%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@wrn
+% \begin{macro}{\tud@mainlogo@wrn}
+% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}%^^A
+% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die
+% Textbreite, was bei besonders kleinen Papierformaten geschehen kann.
+% \begin{macrocode}
+\newcommand*\tud@mainlogo@wrn[1]{%
+ \ClassWarning{\tudcls@name}{%
+ The selected page layout means that the\MessageBreak%
+ logo of TUD extends beyond the printing area.\MessageBreak%
+ The inner margin is smaller than BCOR\MessageBreak%
+ (`BCOR=\the\ta@bcor', inner margin is #1)\MessageBreak%
+ Maybe you should decrease the current value\MessageBreak%
+ of DIV (`DIV=\the\ta@div')%
+ }%
+ \global\let\tud@mainlogo@wrn\@gobble%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@mainlogo@wrn
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \subsection{Befehle, Optionen und Umsetzung der Seitenstilvarianten}
+%
+% \begin{option}{ddc}
+% \changes{v2.02}{2014/06/23}{automatische Logowahl}%^^A
+% \begin{option}{ddchead}
+% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A
+% \begin{option}{ddcfoot}
+% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A
+% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil
+% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den
+% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls
+% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß.
+% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein
+% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen
+% im Fuß ausgegeben.
+% \begin{macro}{\tud@ddc@switch}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Dieser Befehl enthält die gültigen Werte für die Optionen \opt{ddc},
+% \opt{ddchead} sowie \opt{ddcfoot}.
+% \begin{macrocode}
+\newcommand*\tud@ddc@switch{}
+\edef\tud@ddc@switch{%
+ \TUD@numkey@bool,%
+ {color}{2},{colour}{2},%
+ {colorblack}{3},{colourblack}{3},%
+ {gray}{4},{grey}{4},{cdgray}{4},%
+ {black}{5},%
+ {blue}{6},{cddarkblue}{6},%
+ {white}{7}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@switch
+% \begin{macro}{\tud@ddc@save}
+% \changes{v2.02}{2014/07/08}{neu}%^^A
+% \begin{macro}{\if@tud@ddc@save}
+% \changes{v2.02}{2014/07/08}{neu}%^^A
+% Diese beiden Befehle werden von den Optionen \opt{ddchead} und \opt{ddcfoot}
+% benötigt, um nach dem Setzen der Option den vorherigen Wert vor dem möglichen
+% Beenden einer Seite mit \cs{clearpage} wiederherstellen zu können.
+% \begin{macrocode}
+\newcommand*\tud@ddc@save{}
+\newif\if@tud@ddc@save
+\@tud@ddc@savetrue
+% \end{macrocode}
+% \end{macro}^^A \if@tud@ddc@save
+% \end{macro}^^A \tud@ddc@save
+% \begin{macro}{\tud@ddc}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\if@tud@ddc@autoset}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Die Option \opt{ddc}.
+% \begin{macrocode}
+\newcommand*\tud@ddc{0}
+\newif\if@tud@ddc@autoset
+\TUD@key{ddc}[true]{%
+% \end{macrocode}
+% Sollte diese innerhalb des Dokumentes aufgerufen werden, so wird für den Fall,
+% dass ein \pgs{tudheadings}-Seitenstil gewählt ist, ein \cs{clearpage}
+% ausgeführt, da eventuell eine Änderung des Layers sowie des Satzspeigels
+% notwendig ist. Anschließend wird der Schalter \cs{if@tud@ddc@autoset}
+% entsprechend des angegebenen Wertes gesetzt.
+% \begin{macrocode}
+ \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}%
+ \ifcase \tud@ddc\relax%
+ \@tud@ddc@autosetfalse%
+ \else%
+ \@tud@ddc@autosettrue%
+ \fi%
+% \end{macrocode}
+% Abschließend wird der aktuelle Seitenstil erneut aufgerufen, um bei einem
+% geänderten Fuß den notwendigen Satzspiegel zu laden. Siehe dazu auch
+% \cs{tud@beforepagestyle}.
+% \begin{macrocode}
+ \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@ddc@autoset
+% \end{macro}^^A \tud@ddc
+% \begin{macro}{\tud@ddc@head}
+% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf
+% der Seiten im Stil von \pgs{tudheadings}.
+% \begin{macrocode}
+\newcommand*\tud@ddc@head{0}
+\TUD@key{ddchead}[true]{%
+% \end{macrocode}
+% Der aktuelle Zustand des Schlüssels wird gesichert. Anschließend wird der
+% Schlüssel mit dem neuen Wert gesetzt.
+% \begin{macrocode}
+ \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@head\fi%
+ \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}%
+% \end{macrocode}
+% Sollte ein gültiger Wert für den Schlüssel übergeben worden sein, wird dieser
+% lokal auf den alten Wert gesetzt, um ggf. eine neue Seite zu erzeugen.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tud@ddc@save%
+ \begingroup%
+ \let\tud@ddc@head\tud@ddc@save%
+ \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}%
+ \endgroup%
+ \fi%
+% \end{macrocode}
+% Danach werden die sich ausschließenden Optionen deaktiviert, ohne eine
+% Sicherung der Werte vorzunehmen.
+% \begin{macrocode}
+ \ifcase \tud@ddc@head\relax\else%
+ \@tud@ddc@savefalse%
+ \TUDoptions{ddc=false}%
+ \TUDoptions{ddcfoot=false}%
+ \@tud@ddc@savetrue%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@head
+% \begin{macro}{\tud@ddc@foot}
+% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß
+% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des
+% Schlüssels ist äquivalent zur Option \opt{ddchead}
+% \begin{macrocode}
+\newcommand*\tud@ddc@foot{0}
+\TUD@key{ddcfoot}[true]{%
+ \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@foot\fi%
+ \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tud@ddc@save%
+ \begingroup%
+ \let\tud@ddc@foot\tud@ddc@save%
+ \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}%
+ \endgroup%
+ \fi%
+ \ifcase \tud@ddc@foot\relax\else%
+ \@tud@ddc@savefalse%
+ \TUDoptions{ddc=false}%
+ \TUDoptions{ddchead=false}%
+ \@tud@ddc@savetrue%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@foot
+% \begin{macro}{\tud@ddc@check}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Dieses Hilfsmakro wird aufgerufen, wenn geprüft werden soll, welche
+% Einstellungen für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen
+% kommen sollen. Dabei wird insbesondere geprüft, ob die automatischen Auswahl
+% des \DDC-Logos aktiviert ist. Die jeweils gültige Auswahl für Kopf bzw. Fuß
+% wird in \cs{@tempa} bzw. \cs{@tempb} geschrieben und kann anschließend
+% ausgewertet werden.
+% \begin{macrocode}
+\newcommand*\tud@ddc@check{%
+ \let\@tempa\tud@ddc@head%
+ \let\@tempb\tud@ddc@foot%
+ \if@tud@ddc@autoset%
+ \ifx\tud@@headlogo\@empty%
+ \let\@tempa\tud@ddc%
+ \let\@tempb\z@%
+ \else%
+ \let\@tempa\z@%
+ \let\@tempb\tud@ddc%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@check
+% \end{option}^^A ddcfoot
+% \end{option}^^A ddchead
+% \end{option}^^A ddc
+% \begin{macro}{\tud@ifinpslist}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\tud@pslist}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Mit dem Befehl \cs{tud@ifinpslist} wird geprüft, ob der übergebene
+% Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein kann, welches
+% durch das Paket \pkg{scrlayer-scrpage} definiert wird und den aktuellen
+% Seitenstil beinhaltet~-- einem aus \cs{tud@pslist} entspricht. Ist dies der
+% Fall, wird das zweite Argument ausgeführt, sonst das dritte.
+% \begin{macrocode}
+\newcommand*\tud@ifinpslist[3]{\xifinlist{#1}{\tud@pslist}{#2}{#3}}
+\newcommand*\tud@pslist{}
+\forcsvlist{\listadd\tud@pslist}{%
+ tudheadings,plain.tudheadings,empty.tudheadings%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@pslist
+% \end{macro}^^A \tud@ifinpslist
+% \begin{option}{widehead}
+% \begin{macro}{\if@tud@widehead}
+% \begin{macro}{\if@tud@widehead@locked}
+% Der Schalter dient zur Steuerung der Breite des Querbalkens im Kopf der
+% \env{tudpage}-Seite. Entweder der Querbalken liegt im Satzspiegel oder
+% aber über die komplette Papierbreite.
+% \begin{macrocode}
+\newif\if@tud@widehead
+\TUD@key@lock{widehead}[true]{%
+ \TUD@set@ifkey@lock{widehead}{@tud@widehead}{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@widehead@locked
+% \end{macro}^^A \if@tud@widehead
+% \end{option}^^A widehead
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@mainlogo}
+% \changes{v2.02}{2014/08/04}{Dateinamen der TUD-Logos geändert}%^^A
+% \begin{macro}{\tud@@mainlogo}
+% Mit diesem Makro wird das Logo der TU~Dresden eingebunden. Bei der Verwendung
+% von pdf\LaTeX{} kann wird Farbe des Logos an die Kopffarbe angepasst. Wird
+% der klassische Weg über dvi gewählt, so muss abhängig von der gewählten
+% Kopffarbe das entsprechend gefärbte Logo eingebunden werden.
+%
+% \begin{macrocode}
+\newcommand*\tud@@mainlogo{}
+\newcommand*\tud@mainlogo{%
+% \end{macrocode}
+% Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea}
+% über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb
+% des Druckrandes liegt. Dies kann beispielsweise bei zweiseitigem Satz
+% und/oder einem zu großen \opt{DIV}-Wertes passieren. Es wird in diesem Fall
+% eine Warnung ausgegeben, damit das Problem durch den Anwender behoben werden
+% kann.
+% \begin{macrocode}
+ \setlength{\@tempdima}{%
+ \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@left\relax%
+ }%
+ \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi%
+% \end{macrocode}
+% Es wird das Standardlogo festgelegt und dieses ggf. für eine andere Kopffarbe
+% geändert.
+% \begin{macrocode}
+ \def\tud@@mainlogo{TUD-black}%
+ \ifstr{\tud@head@color}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}%
+ \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}%
+ \ifstr{\tud@head@color}{white}{\def\tud@@mainlogo{TUD-white}}{}%
+ \global\let\tud@dim@line\tud@dim@thinline%
+ \ifstr{\tud@head@color}{white}{\global\let\tud@dim@line\tud@dim@heavyline}{}%
+ \color{\tud@head@color}%
+ \includegraphics[width=\tud@dim@logowidth]{\tud@@mainlogo}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@@mainlogo
+% \end{macro}^^A \tud@mainlogo
+% \begin{macro}{\headlogo}
+% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}%^^A
+% \begin{macro}{\tud@headlogo}
+% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@logo} umbenannt}%^^A
+% \changes{v2.02}{2014/06/23}{von \cs{tud@ddc@sethead} wurde die Auswahl des
+% \DDC-Logos übernommen und erweitert}%^^A
+% \begin{macro}{\tud@@headlogo}
+% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@@logo} umbenannt}%^^A
+% \begin{macro}{\tud@@@headlogo}
+% \changes{v2.02}{2014/06/23}{Umbenennen des Befehls \cs{tud@head@@@logo}}%^^A
+% \begin{macro}{\tud@headlogo@wrn}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Diese Befehle dienen zum Einbinden eines Zweitlogos im Kopf bündig zum
+% rechten Seitenrand. Bei der Angabe des Logos mit
+% \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} wird der Dateiname in
+% \cs{tud@@headlogo} und das optionale Argument in \cs{tud@@@headlogo}
+% gespeichert, damit diese später über \cs{tud@headlogo} an den Befehl
+% \cs{includegraphics} weitergereicht werden können.
+% \begin{macrocode}
+\newcommand*\headlogo[2][]{%
+ \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}%
+ \def\tud@@headlogo{#2}%
+ \def\tud@@@headlogo{#1}%
+ \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi%
+}
+\newcommand*\tud@@headlogo{}
+\newcommand*\tud@@@headlogo{}
+\newcommand*\tud@headlogo{%
+ \tud@ddc@check%
+ \ifx\tud@@headlogo\@empty\else%
+ \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi%
+ \fi%
+ \ifcase \@tempa\relax\or%
+ \def\tud@@headlogo{DDC-24}%
+ \ifstr{\tud@head@color}{HKS41}{\def\tud@@headlogo{DDC-27}}{}%
+ \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}%
+ \ifstr{\tud@head@color}{white}{\def\tud@@headlogo{DDC-30}}{}%
+ \or%
+ \def\tud@@headlogo{DDC-03}%
+ \or%
+ \def\tud@@headlogo{DDC-09}%
+ \or%
+ \def\tud@@headlogo{DDC-21}%
+ \or%
+ \def\tud@@headlogo{DDC-24}%
+ \or%
+ \def\tud@@headlogo{DDC-27}%
+ \or%
+ \def\tud@@headlogo{DDC-30}%
+ \fi%
+ \ifx\tud@@headlogo\@empty\else%
+ \settoheight{\tud@dim@logoheight}{\tud@mainlogo}%
+ \pretocmd{\tud@@@headlogo}{height=\tud@dim@logoheight,}%
+ {}{\tud@patch@wrn{tud@@@headlogo}}%
+ \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}%
+ \fi%
+}
+\newcommand*\tud@headlogo@wrn{%
+ \ClassWarning{\tudcls@name}{%
+ The secondary logo given with `\string\headlogo' is\MessageBreak%
+ overwritten with DDC logo. Maybe you should use\MessageBreak%
+ `ddcfoot' or better `ddc' instead of `ddchead'%
+ }%
+ \global\let\tud@headlogo@wrn\relax%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@headlogo@wrn
+% \end{macro}^^A \tud@@@headlogo
+% \end{macro}^^A \tud@@headlogo
+% \end{macro}^^A \tud@headlogo
+% \end{macro}^^A \headlogo
+% \begin{macro}{\tud@ddc@sethead}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% Dieser Befehl wurde mit der \TUDScript-Version~v2.02 entfernt.
+% \end{macro}^^A \tud@ddc@sethead
+% \begin{macro}{\tud@footlogo}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\tud@@footlogo}
+% \changes{v2.02}{2014/06/23}{neu, \cs{tud@foot@logo} umbenannt}%^^A
+% Diese Befehle dienen zum Einbinden des \DDC-Logos im Fuß der Seiten im Stil
+% \pgs{tudheadings}.
+% \begin{macrocode}
+\newcommand*\tud@@footlogo{}
+\newcommand*\tud@footlogo{%
+ \tud@ddc@check%
+ \ifcase \@tempb\relax\or%
+ \def\tud@@footlogo{DDC-22}%
+ \ifstr{\tud@head@color}{HKS41}{\def\tud@@footlogo{DDC-25}}{}%
+ \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@footlogo{DDC-25}}{}%
+ \ifstr{\tud@head@color}{white}{\def\tud@@footlogo{DDC-28}}{}%
+ \or%
+ \def\tud@@footlogo{DDC-01}%
+ \or%
+ \def\tud@@footlogo{DDC-07}%
+ \or%
+ \def\tud@@footlogo{DDC-19}%
+ \or%
+ \def\tud@@footlogo{DDC-22}%
+ \or%
+ \def\tud@@footlogo{DDC-25}%
+ \or%
+ \def\tud@@footlogo{DDC-28}%
+ \fi%
+ \ifx\tud@@footlogo\@empty\else%
+ \includegraphics[height=\tud@dim@ddcfoot]{\tud@@footlogo}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@@footlogo
+% \end{macro}^^A \tud@footlogo
+% \begin{macro}{\tud@ddc@setfoot}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% Dieser Befehl wurde mit der \TUDScript-Version~v2.02 entfernt.
+% \end{macro}^^A \tud@ddc@setfoot
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \begin{option}{cdfoot}
+% \begin{macro}{\if@tud@cdfoot}
+% \begin{macro}{\tud@ps@store}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\tud@@ps@store}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\tud@ps@restore}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\tud@@ps@restore}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Dieser Seitenstil mit dem Kolumnentitel im Fuß wurde bereits für die alte
+% \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten
+% werden.
+% \begin{macrocode}
+\newif\if@tud@cdfoot
+\TUD@key{cdfoot}[true]{%
+ \TUD@set@ifkey{cdfoot}{@tud@cdfoot}{#1}%
+% \end{macrocode}
+% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@store}
+% gesichert, um gegebenenfalls zurückschalten zu können. Anschließend werden
+% diese mit dem neuen Stil überschrieben.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument%
+ \if@tud@cdfoot%
+ \tud@ps@store{headings}%
+ \tud@ps@store{plain}%
+ \tud@font@koma@set{pageheadfoot}{\upshape}%
+ \clearpairofpagestyles%
+ \ofoot[\pagemark]{%
+ \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi%
+ {\footnotesize\headmark}%
+ \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi%
+ }%
+% \end{macrocode}
+% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore}
+% wiederhergestellt.
+% \begin{macrocode}
+ \else%
+ \tud@ps@restore{headings}%
+ \tud@ps@restore{plain}%
+ \tud@font@koma@unset{pageheadfoot}%
+ \fi%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% Die nächsten beiden Befehle dienen zum Sichern der Kopf- und Fußzeilen\dots
+% \begin{macrocode}
+\newcommand*\tud@ps@store[1]{%
+ \tud@@ps@store{#1}{odd}{left}{head}{}%
+ \tud@@ps@store{#1}{odd}{right}{head}{}%
+ \tud@@ps@store{#1}{odd}{middle}{head}{}%
+ \tud@@ps@store{#1}{even}{left}{head}{}%
+ \tud@@ps@store{#1}{even}{right}{head}{}%
+ \tud@@ps@store{#1}{even}{middle}{head}{}%
+ \tud@@ps@store{#1}{odd}{left}{foot}{}%
+ \tud@@ps@store{#1}{odd}{right}{foot}{}%
+ \tud@@ps@store{#1}{odd}{middle}{foot}{}%
+ \tud@@ps@store{#1}{even}{left}{foot}{}%
+ \tud@@ps@store{#1}{even}{right}{foot}{}%
+ \tud@@ps@store{#1}{even}{middle}{foot}{}%
+}
+% \end{macrocode}
+% \dots, wobei hierfür auf die internen Befehle von \pkg{scrlayer-scrpage}
+% zurückgegriffen werden muss.
+% \begin{macrocode}
+\newcommand*\tud@@ps@store[4]{%
+ \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{%
+ \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@\@nameuse{sls@current#1}@#2@#3@#4}%
+ }%
+}
+\newcommand*\tud@ps@restore[1]{%
+ \tud@@ps@restore{#1}{odd}{left}{head}{}%
+ \tud@@ps@restore{#1}{odd}{right}{head}{}%
+ \tud@@ps@restore{#1}{odd}{middle}{head}{}%
+ \tud@@ps@restore{#1}{even}{left}{head}{}%
+ \tud@@ps@restore{#1}{even}{right}{head}{}%
+ \tud@@ps@restore{#1}{even}{middle}{head}{}%
+ \tud@@ps@restore{#1}{odd}{left}{foot}{}%
+ \tud@@ps@restore{#1}{odd}{right}{foot}{}%
+ \tud@@ps@restore{#1}{odd}{middle}{foot}{}%
+ \tud@@ps@restore{#1}{even}{left}{foot}{}%
+ \tud@@ps@restore{#1}{even}{right}{foot}{}%
+ \tud@@ps@restore{#1}{even}{middle}{foot}{}%
+}
+\newcommand*\tud@@ps@restore[4]{%
+ \ifcsdef{@@tud@ps@#1@#2@#3@#4}{%
+ \csletcs{sls@ps@\@nameuse{sls@current#1}@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}%
+ \csundef{@@tud@ps@#1@#2@#3@#4}%
+ }%
+}
+% \end{macrocode}
+% Damit die Einstellungen aus der Präambel übernommen werden, wird die Option
+% ggf. zu Beginn mit \cs{AtBeginDocument} aufgerufen.
+% \begin{macrocode}
+\AtBeginDocument{\if@tud@cdfoot\TUDoptions{cdfoot=true}\fi}
+% \end{macrocode}
+% \end{macro}^^A \tud@@ps@restore
+% \end{macro}^^A \tud@ps@restore
+% \end{macro}^^A \tud@@ps@store
+% \end{macro}^^A \tud@ps@store
+% \end{macro}^^A \if@tud@cdfoot
+% \end{option}^^A cdfoot
+% \begin{macro}{\tud@ps@headings}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \begin{macro}{\tud@ps@myheadings}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \begin{macro}{\tud@ps@plain}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% Diese Befehle wurden bei der Umstellung auf das Paket~\pkg{scrlayer-scrpage}
+% mit der \TUDScript-Version~v2.02 allesamt entfernt. Die Funktionalität wird
+% seitdem durch die \pgs{tudheadings}-Seitenstile bereitgestellt.
+% \end{macro}^^A \tud@ps@plain
+% \end{macro}^^A \tud@ps@myheadings
+% \end{macro}^^A \tud@ps@headings
+% \begin{option}{geometry}
+% \begin{macro}{\tud@geometry}
+% \begin{macro}{\if@tud@geometry@locked}
+% Für das \CD sind standardmäßig feste Seitenränder vorgegeben. Diese sind
+% jedoch leider nur aus gestalterischen Motiven und ohne die Beachtung
+% typographischer Belange gewählt und festgelegt worden. Beispielweise ist ein
+% doppelseitiger Satz einer Abschlussarbeit im \CD nur mit einem grauenhaften
+% Satzspiegel möglich. Um dem Anwender einen gewissen Spielraum zu geben, wird
+% alternativ zum asymmetrischen (\opt{geomery=on}) ein symmetrischer
+% Satzspiegel bereitgestellt (\opt{geomery=normal}), welcher bei einseitigem
+% Satz zentriert ist und bei zweiseitigem Satz den inneren Rand kleiner setzt
+% als den äußeren. Des Weiteren kann die Satzspiegelberechnung auch direkt
+% durch \pkg{typearea} aus dem \KOMAScript"=Paket erfolgen
+% (\opt{geomery=no}). Mit \cs{tud@geometry@process} werden alle getroffenen
+% Satzspiegeloptionen umgesetzt und nachfolgend definiert.
+% \begin{macrocode}
+\newcommand*\tud@geometry{0}
+\TUD@key@lock{geometry}[true]{%
+ \TUD@set@numkey@lock{geometry}{tud@geometry}{%
+ \TUD@numkey@bool,%
+ {typearea}{0},%
+ {tud}{1},{asymmetric}{1},{cd}{1},%
+ {symmetric}{2},{centred}{2},{centered}{2},%
+ {twoside}{3},{balanced}{3}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@atdocument\recalctypearea\fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@geometry@locked
+% \end{macro}^^A \tud@geometry
+% \end{option}^^A geometry
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{length}{\tud@ta@textheight}
+% \begin{length}{\tud@ta@topmargin}
+% \begin{length}{\tud@ta@headheight}
+% \begin{length}{\tud@ta@headsep}
+% \begin{length}{\tud@ta@footskip}
+% Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten
+% Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom
+% Satzspiegel abhängigen Seitenlayouts zu erstelen.
+% \begin{macrocode}
+\newlength{\tud@ta@textheight}
+\newlength{\tud@ta@topmargin}
+\newlength{\tud@ta@headheight}
+\newlength{\tud@ta@headsep}
+\newlength{\tud@ta@footskip}
+% \end{macrocode}
+% \end{length}^^A \tud@ta@footskip
+% \end{length}^^A \tud@ta@headsep
+% \end{length}^^A \tud@ta@headheight
+% \end{length}^^A \tud@ta@topmargin
+% \end{length}^^A \tud@ta@textheight
+% \begin{length}{\tud@ta@headdiff}
+% \begin{length}{\tud@ta@footdiff}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% Eine Länge für den Ausgleich zwischen normalem und benötigtem Satzspiegel für
+% das spezielle Layout des \CDs. Die Differenz zwischen den unterschiedlichen
+% Kopfhöhen der Satzspiegelvarianten wird bei der Ausführung von
+% \cs{tud@geometry@process} berechnet und in \cs{tud@ta@headdiff} gespeichert.
+% Dabei muss unterschieden werden, ober der Satzspiegel genutzt wird, der durch
+% das \CD vorgegeben ist oder der durch \pkg{typearea} berechnete. Die Länge
+% \cs{tud@ta@footdiff} wurde mit der \TUDScript-Version~v2.02 entfernt.
+% \begin{macrocode}
+\newlength{\tud@ta@headdiff}
+% \end{macrocode}
+% \end{length}^^A \tud@ta@footdiff
+% \end{length}^^A \tud@ta@headdiff
+% \begin{macro}{\tud@geometry@restore}
+% \changes{v2.02}{2014/06/27}{neu}%^^A
+% Der Befehl \cs{AfterCalculatingTypearea} wird durch das Paket \pkg{typearea}
+% bereitgestellt. Die durch \pkg{typearea} berechneten Längenwerte für den
+% Satzspiegel werden zur Weiterverarbeitung gesichert. Für die Erstellung des
+% Satzspiegels wird das Paket \pkg{geometry} verwendet. Bei der entsprechenden
+% Option (\opt{geometry=no}) wird jedoch der von \pkg{typearea} berechnete
+% Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich,
+% unabhängig vom genutzten Paket\footnote{\pkg{typearea} oder \pkg{geometry}}
+% zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern.
+% Damit auch Änderungen an der Papiergröße möglich sind, muss ein einzelnes
+% Makro (\cs{Gm@restore@org}) aus \pkg{geometry} temporär deaktiviert werden.
+% \begin{macrocode}
+\newcommand*\tud@geometry@restore{}
+\AfterCalculatingTypearea{%
+ \setlength{\tud@ta@textheight}{\textheight}%
+ \setlength{\tud@ta@topmargin}{\topmargin}%
+ \setlength{\tud@ta@headheight}{\headheight}%
+ \setlength{\tud@ta@headsep}{\headsep}%
+ \setlength{\tud@ta@footskip}{\footskip}%
+ \let\tud@geometry@restore\Gm@restore@org%
+ \if@atdocument%
+ \let\Gm@restore@org\relax%
+ \tud@geometry@process%
+% \end{macrocode}
+% Damit Änderungen am Satzspiegel im Dokument sicher übernommen werden, wird
+% das Setzen des Satzspiegels forciert. Dafür wird \cs{tud@currentgeometry}
+% zurückgesetzt und anschließend der aktuelle Seitenstil erneut geladen, um das
+% erneute und korrekte Ausführen von \cs{tud@beforepagestyle} zu erzwingen.
+% \begin{macrocode}
+ \gdef\tud@currentgeometry{}%
+ \expandafter\pagestyle\expandafter{\currentpagestyle}%
+ \fi%
+ \let\Gm@restore@org\tud@geometry@restore%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@geometry@restore
+% \begin{macro}{\tud@geometry@hmargin}
+% \begin{macro}{\tud@geometry@vmargin}
+% \begin{macro}{\tud@geometry@pmargin}
+% \begin{macro}{\tud@geometry@dmargin}
+% Dies sind Hilfsmakros zur Definition unterschiedicher Seitenlayouts
+% (horizontale und vertikale Ränder). Es handelt sich dabei um die Definition
+% der horizontalen und vertikalen Seitenränder sowie die angepassten vertikalen
+% Einstellungen für die Seitenstilvarianten mit TUD-Kopf und/oder \DDC-Fuß.
+% Gesetzt werden diese in Abhängigkeit von der Option \opt{geometry} im
+% Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}.
+% \begin{macrocode}
+\newcommand*\tud@geometry@hmargin{}
+\newcommand*\tud@geometry@vmargin{}
+\newcommand*\tud@geometry@pmargin{}
+\newcommand*\tud@geometry@dmargin{}
+% \end{macrocode}
+% \end{macro}^^A \tud@geometry@dmargin
+% \end{macro}^^A \tud@geometry@pmargin
+% \end{macro}^^A \tud@geometry@vmargin
+% \end{macro}^^A \tud@geometry@hmargin
+% \changes{v2.02}{2014/06/29}{Verzögertes Laden von \pkg{geometry}}%^^A
+% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und
+% der Seitenränder, wie es vom \CD der TU~Dresden verlangt wird. Damit dieses
+% alle Satzspiegeleinstellungen korrekt vornimmt und auch alle Klassenoptionen
+% korrekt verarbeitet, wird das Laden mit \cs{AtEndPreamble} bis ans Ende der
+% Präambel verzögert und vorher der Satzspiegel neu berechnet. Anschließend
+% erstellt \cs{tud@geometry@process} alle benötigten Satzspiegel. Durch das
+% Setzen des Seitenstils wird der richtige Satzspiegel ausgewählt. Dies
+% geschieht \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option
+% \opt{crop} geladen wurde, um die Seitenränder nicht zu ändern.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \tud@ifsacrop{}{%
+ \recalctypearea%
+ \RequirePackage{geometry}[2010/09/12]%
+ \tud@geometry@process%
+ \expandafter\pagestyle\expandafter{\currentpagestyle}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\tud@geometry@process}
+% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A
+% \begin{macro}{\tud@geometry@@process}
+% Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten
+% Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der
+% Kopf- und/oder Fußzeile. Um mehrere Satzspiegel verwenden zu können~-- was
+% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das
+% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung
+% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry}
+% weitergereicht.
+% Es werden drei Layouts erstellt: normaler Satzspiegel, nur TUD-Kopf sowie
+% TUD-Kopf und "~Fuß und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann
+% innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer
+% sowie ggf. untere Seitenrand geändert werden.
+% \begin{macrocode}
+\newcommand*\tud@geometry@process{%
+% \end{macrocode}
+% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt.
+% \begin{macrocode}
+ \tud@geometry@set%
+% \end{macrocode}
+% Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden
+% die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht.
+% Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros
+% für die Erstellung der \pkg{geometry}-Satzspiegel übergeben.
+% \begin{macrocode}
+ \ifcase \tud@geometry\relax%
+ \def\tud@geometry@hmargin{%
+ left=\dimexpr\oddsidemargin+1in\relax,%
+ width=\textwidth,%
+ }%
+ \def\tud@geometry@vmargin{%
+ top={%
+ \dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep+1in\relax%
+ },%
+ headheight=\tud@ta@headheight,%
+ headsep=\tud@ta@headsep,%
+ textheight=\tud@ta@textheight,%
+ footskip=\tud@ta@footskip,%
+ }%
+ \def\tud@geometry@pmargin{%
+ top={%
+ \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax%
+ },%
+ headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax,%
+ headsep=\tud@dim@headsep,%
+ textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,%
+ footskip=\tud@ta@footskip,%
+ }%
+ \def\tud@geometry@dmargin{%
+ textheight={%
+ \dimexpr\tud@ta@textheight-\tud@ta@headdiff-\tud@dim@ddcdiff\relax%
+ },%
+ footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,%
+ }%
+% \end{macrocode}
+% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
+% für den \pkg{typearea}-Satzspiegel berechnet.
+% \begin{macrocode}
+ \setlength{\tud@ta@headdiff}{\dimexpr%
+ \tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep%
+ -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax%
+ }%
+ \setlength{\tud@dim@ddcdiff}{\dimexpr%
+ \tud@dim@ddcfoot-\tud@ta@footskip+\tud@dim@footskip\relax%
+ }%
+% \end{macrocode}
+% Sollte der \pkg{typearea}-Satzspiegel noch unterhalb des TUD-Kopfes liegen,
+% wird der Abstand zum Kopf vergrößert.
+% \begin{macrocode}
+ \ifdim\tud@ta@headdiff<\z@\relax%
+ \addtolength{\tud@dim@headsep}{-\tud@ta@headdiff}%
+ \fi%
+% \end{macrocode}
+% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische
+% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz.
+% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die
+% unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil.
+% \begin{macrocode}
+ \else%
+ \ifcase \tud@geometry\or%
+ \def\tud@geometry@hmargin{%
+ left=\tud@dim@left,%
+ textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
+ bindingoffset=\ta@bcor,%
+ \if@twoside asymmetric,\fi%
+ }%
+% \end{macrocode}
+% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl
+% im einseitigen als auch im zweiseitgigen Satz symmetrisch.
+% \begin{macrocode}
+ \or%
+ \def\tud@geometry@hmargin{%
+ left=.5\tud@dim@both,%
+ textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
+ bindingoffset=\ta@bcor,%
+ }%
+% \end{macrocode}
+% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist
+% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite
+% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende
+% TUD-Logo geachtet werden muss.
+% \begin{macrocode}
+ \or%
+ \def\tud@geometry@hmargin{%
+ \if@twoside%
+ left=.4\tud@dim@both,%
+ twoside,%
+ \else%
+ left=.5\tud@dim@both,%
+ \fi%
+ textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
+ bindingoffset=\ta@bcor,%
+ }%
+ \fi%
+% \end{macrocode}
+% Für alle drei Varianten der vertikale Gleichanteil.
+% \begin{macrocode}
+ \def\tud@geometry@vmargin{%
+ top=\tud@dim@top,%
+ headheight=\tud@ta@headheight,%
+ headsep=\tud@dim@headsep,%
+ bottom=\tud@dim@bottom,%
+ footskip=\tud@dim@footskip,%
+ \tud@geometry@hincl,%
+ \tud@geometry@fincl,%
+ }%
+ \def\tud@geometry@pmargin{%
+ top={%
+ \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax%
+ },%
+ headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax,%
+ headsep=\tud@dim@headsep,%
+ bottom=\tud@dim@bottom,%
+ footskip=\tud@dim@footskip,%
+ }%
+% \end{macrocode}
+% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß
+% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt.
+% \begin{macrocode}
+ \def\tud@geometry@dmargin{%
+ \if@fincl%
+ bottom=\dimexpr%
+ \tud@dim@bottom+\tud@dim@ddcfoot+\tud@dim@footskip\relax,%
+ \else%
+ bottom=\dimexpr\tud@dim@bottom+\tud@dim@ddcfoot\relax,%
+ \fi%
+ footskip=\dimexpr\tud@dim@footskip+\tud@dim@ddcfoot\relax,%
+ }%
+% \end{macrocode}
+% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
+% für den Satzspiegel des \CDs berechnet.
+% \begin{macrocode}
+ \setlength{\tud@ta@headdiff}{%
+ \dimexpr\tud@dim@headheight+\tud@dim@barheight%
+ +\tud@dim@headsep-\tud@dim@top\relax%
+ }%
+ \setlength{\tud@dim@ddcdiff}{\dimexpr%
+ \tud@dim@ddcfoot+2\tud@dim@footskip-\tud@dim@bottom\relax%
+ }%
+ \fi%
+% \end{macrocode}
+% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
+% für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige
+% vertikale Verschiebung der Überschriften festgelegt.
+% \begin{macrocode}
+ \ifdim\tud@ta@headdiff<\z@\relax\setlength{\tud@ta@headdiff}{\z@}\fi%
+ \global\tud@ta@headdiff=\tud@ta@headdiff%
+ \ifdim\tud@dim@ddcdiff<\z@\relax\setlength{\tud@dim@ddcdiff}{\z@}\fi%
+ \global\tud@dim@ddcdiff=\tud@dim@ddcdiff%
+ \setlength{\tud@dim@headingsvskip}{.6\tud@dim@headheight}%
+ \global\tud@dim@headingsvskip=\tud@dim@headingsvskip%
+% \end{macrocode}
+% Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten
+% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu
+% erstellen.
+% \begin{macrocode}
+ \tud@geometry@@process%
+}
+% \end{macrocode}
+% Der Befehl \cs{tud@geometry@@process} setzt mit den zuvor definierten
+% Hilfsmakros die \pkg{geometry}"=Optionen für sowohl die seitlichen als auch
+% die oberen sowie unteren Seitenränder und inkludiert ggf. Kopf- und Fußzeile
+% in den Satzspiegel. Die unterschiedlichen Layouts sind dabei \opt{tudddc} für
+% TUD-Kopf und \DDC-Fuß, \opt{tudpage} für den alleinigen TUD-Kopf sowie
+% \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten
+% Satzspiegel.
+% \begin{macrocode}
+\newcommand*\tud@geometry@@process{%
+% \end{macrocode}
+% Als erstes wird der Satzspiegel für TUD-Kopf und \DDC-Fuß erstellt. Das
+% Einbeziehen der Fußzeile in den Satzspiegel erfolgt ggf. manuell bei der
+% Definition von \cs{tud@geometry@dmargin}.
+% \begin{macrocode}
+ \edef\@tempa{%
+ \tud@geometry@hmargin,%
+ \tud@geometry@pmargin,%
+ \tud@geometry@dmargin,%
+ ignorehead,ignorefoot,%
+ }%
+ \expandafter\newgeometry\expandafter{\@tempa}%
+ \savegeometry{tudareaddc}%
+% \end{macrocode}
+% Danach folgt der Seitenstil, welcher zwar den TUD-Kopf aber lediglich die
+% Standardfußzeile hat.
+% \begin{macrocode}
+ \edef\@tempa{%
+ \tud@geometry@hmargin,%
+ \tud@geometry@pmargin,%
+ ignorehead,%
+ \tud@geometry@fincl%
+ }%
+ \expandafter\newgeometry\expandafter{\@tempa}%
+ \savegeometry{tudarea}%
+% \end{macrocode}
+% Der Standardsatzspiegel wird erstellt.
+% \begin{macrocode}
+ \edef\@tempa{%
+ \tud@geometry@hmargin,%
+ \tud@geometry@vmargin,%
+ }%
+ \expandafter\newgeometry\expandafter{\@tempa}%
+ \savegeometry{typearea}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@geometry@@process
+% \end{macro}^^A \tud@geometry@process
+% \begin{macro}{\tud@geometry@hincl}
+% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A
+% \begin{macro}{\tud@geometry@fincl}
+% Diese beiden Hilfsmakro werten die Optionen für das Einbeziehen von Kopf- und
+% Fußzeile aus.
+% \begin{macrocode}
+\newcommand*\tud@geometry@hincl{%
+ \if@hincl%
+ includehead,%
+ \else%
+ ignorehead,%
+ \fi%
+}
+\newcommand*\tud@geometry@fincl{%
+ \if@fincl%
+ includefoot,%
+ \else%
+ ignorefoot,%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@geometry@fincl
+% \end{macro}^^A \tud@geometry@hincl
+% \begin{environment}{tudpage}
+% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}%^^A
+% \begin{macro}{\tud@ps}
+% \begin{macro}{\tud@ps@select}
+% \changes{v2.02}{2014/07/19}{neu}%^^A
+% \begin{macro}{\tud@currentpagestyle}
+% \begin{macro}{\tud@currentpagestyle@set}
+% \changes{v2.02}{2014/07/18}{neu}%^^A
+% \begin{macro}{\tud@currentpagestyle@reset}
+% \changes{v2.02}{2014/07/18}{neu}%^^A
+% Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout
+% temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern.
+% Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}.
+% Dabei wird mit \cs{loadgeometry} ein Seitenumbruch erzwungen und der
+% benötigte Satzspiegel geladen.
+%
+% Die Befehle \cs{tud@currentpagestyle@set} und
+% \cs{tud@currentpagestyle@reset} sind für die Sicherung und Wiederherstellung
+% des vor der Umgebung geladenen Seitenstils verantwortlich.
+%
+% Zu Beginn der Umgebung werden die weiter unten beschriebenen Optionen für
+% diese Umgebung mit \cs{TUD@parameter@set} ausgeführt. Nach dem Beenden der
+% Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout
+% wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner
+% Wert ohne Schlüssel angegben werden.
+% \begin{macrocode}
+\newcommand*\tud@ps{tudheadings}
+\newcommand*\tud@ps@select{%
+ \expandafter\pagestyle\expandafter{\tud@ps}%
+%<*book|report>
+ \ifstr{\tud@ps}{empty}{\renewcommand*\chapterpagestyle{empty}}{}%
+ \ifstr{\tud@ps}{empty.tudheadings}{%
+ \renewcommand*\chapterpagestyle{empty.tudheadings}%
+ }{}%
+%</book|report>
+}
+\newcommand*\tud@currentpagestyle{}
+\newcommand*\tud@currentpagestyle@set{%
+ \ifdefvoid{\tud@currentpagestyle}{%
+ \xdef\tud@currentpagestyle{\currentpagestyle}%
+ }{}%
+}
+\newcommand*\tud@currentpagestyle@reset{%
+ \expandafter\pagestyle\expandafter{\tud@currentpagestyle}%
+ \let\tud@currentpagestyle\relax%
+}
+\NewEnviron{tudpage}[1][]{%
+% \end{macrocode}
+% Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird
+% dieser im Hilfsmakro \cs{tud@currentpagestyle} gespeichert.
+% \begin{macrocode}
+ \tud@currentpagestyle@set%
+ \clearpage\def\tud@ps{tudheadings}%
+ \TUD@parameter@set[tudpage]{#1}%
+ \tud@ps@select%
+ \tud@multicols@check%
+% \end{macrocode}
+% Falls das \pkg{multicol}-Paket geladen ist und eine Spaltenanzahl angegeben
+% ist, wird die entsprechende Umgebung gesartet, mit \cs{BODY} der Inhalt der
+% \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die
+% \env{multicols}-Umgebung beendet.
+% \begin{macrocode}
+ \ifnum\tud@multicols>1\relax%
+ \begin{multicols}{\tud@multicols}%
+ \fi%
+ \BODY%
+ \ifnum\tud@multicols>1\relax%
+ \end{multicols}%
+ \fi%
+% \end{macrocode}
+% Am Ende der Umgebung wird der vorhergehende Seitenstil zurückgesetzt und der
+% dazugehörige Satzspiegel geladen. Dazu wird die Ausführung das Hilfsmakro
+% \cs{@tempa} auf das Beenden der Umgebung mit \cs{aftergroup} verzögert.
+% \begin{macrocode}
+}[%
+ \aftergroup\tud@currentpagestyle@reset%
+ \clearpage%
+]
+% \end{macrocode}
+% \end{macro}^^A \tud@currentpagestyle@reset
+% \end{macro}^^A \tud@currentpagestyle@set
+% \end{macro}^^A \tud@currentpagestyle
+% \end{macro}^^A \tud@ps@select
+% \end{macro}^^A \tud@ps
+% \end{environment}^^A tudpage
+% Im Folgenden werden die einzelnen Parameter für die \env{tudpage}"=Umgebung
+% definiert. Mit \cs{TUD@parameter}\marg{Family}\marg{\dots} wird die
+% Parameterfamilie festgelegt und anschließend die Definitionen getätigt.
+% \begin{macrocode}
+\TUD@parameter{tudpage}{%
+% \end{macrocode}
+% \begin{parameter}{language}
+% Mit diesem Parameter kann die Sprache in der Umgebung umgeschaltet werden. Die
+% Sprache kann auch ohne den entsprechenden Schlüssel direkt als Parameter
+% angegeben werden.
+% \begin{macrocode}
+ \TUD@parameter@define{language}{\selectlanguage{#1}}%
+% \end{macrocode}
+% \end{parameter} ^^A language
+% \begin{parameter}{columns}
+% Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für
+% mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die
+% Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter
+% angegeben werden.
+% \begin{macrocode}
+ \TUD@parameter@define{columns}{\def\tud@multicols{#1}}%
+% \end{macrocode}
+% \end{parameter} ^^A columns
+% \begin{parameter}{color}
+% \begin{parameter}{colour}
+% Die \opt{color}"=Option ändert die Farbe von Schrift, Querbalken und im
+% pdf\LaTeX-Modus auch die des TUD-Logos.
+% \begin{macrocode}
+ \TUD@parameter@define{color}[HKS41]{\def\tud@head@color{#1}}%
+ \TUD@parameter@let{colour}{color}%
+% \end{macrocode}
+% \end{parameter}^^A colour
+% \end{parameter}^^A color
+% \begin{parameter}{widehead}
+% Die Breite des Querbalkens kann ebenfalls geändert werden.
+% \begin{macrocode}
+ \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A widehead
+% \begin{parameter}{ddc}
+% \changes{v2.02}{2014/08/16}{neu}%^^A
+% \begin{parameter}{ddchead}
+% \begin{parameter}{ddcfoot}
+% Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden.
+% \begin{macrocode}
+ \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}%
+ \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}%
+ \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A ddc
+% \end{parameter}^^A ddchead
+% \end{parameter}^^A ddcfoot
+% \begin{parameter}{head}
+% \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option
+% \opt{ddchead} übernommen}%^^A
+% \begin{parameter}{foot}
+% \changes{v2.02}{2014/06/30}{entfernt, Funktinalität teilweise durch Option
+% \opt{ddcfoot} übernommen}%^^A
+% Diese Parameter wurden entfernt. Innerhalb der Umgebung können hierfür
+% \cs{TUDoptions} mit den Schlüsseln \opt{ddchead=\dots} und \opt{ddcfoot=\dots}
+% sowie \cs{headlogo} bzw. für den Querbalken \opt{widehead=true/false} genutzt
+% werden.
+% \end{parameter}^^A head
+% \end{parameter}^^A foot
+% \begin{parameter}{cdfont}
+% \begin{parameter}{cdfonts}
+% \changes{v2.02}{2014/08/08}{entfernt}^^A
+% \begin{parameter}{tudfonts}
+% \changes{v2.02}{2014/08/08}{entfernt}^^A
+% Die Option \opt{cdfont} bzw. \opt{cdfonts} bestimmt, ob die Schriften des
+% \CDs{} oder aber die standarmäßigen Serifenlosen für die Auszeichnugen in der
+% Kopfzeile und Serifen im Inhalt verwendet werden.
+% \begin{macrocode}
+ \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A tudfonts
+% \end{parameter}^^A cdfonts
+% \end{parameter}^^A cdfont
+% \begin{parameter}{barfont}
+% \changes{v2.02}{2014/07/08}{neu}%^^A
+% Mit der Option \opt{headfont} kann die Verwendung der Schriften des \CDs
+% aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen.
+% \begin{macrocode}
+ \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A headfont
+% \begin{parameter}{pagestyle}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Mit diesem Parameter kann der verwendete Seitenstil eingestellt werden, wobei
+% entweder \pgs{tudheadings} oder aber\pgs{plain.tudheadings} bzw.
+% \pgs{empty.tudheadings} verwendet wird.
+% \begin{macrocode}
+ \TUD@parameter@define{pagestyle}{%
+ \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{%
+ \ifstr{#1}{empty.tudheadings}{\renewcommand*\tud@ps{empty.tudheadings}}{%
+ \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{%
+ \ifstr{#1}{plain.tudheadings}{\renewcommand*\tud@ps{plain.tudheadings}}{%
+ \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{%
+ \ifstr{#1}{tudheadings}{\renewcommand*\tud@ps{tudheadings}}{%
+ \TUD@parameter@wrn{pagestyle}{%
+ headings, plain, empty or any tudheadings page style type%
+ }%
+ }}}}}}%
+ }%
+% \end{macrocode}
+% \end{parameter}^^A pagestyle
+% \begin{parameter}{headlogo}
+% \begin{parameter}{logo}
+% Das sekundäre Logo kann ebenfalls lokal geändert werden.
+% \begin{macrocode}
+ \TUD@parameter@define{headlogo}{\headlogo{#1}}%
+ \TUD@parameter@let{logo}{headlogo}%
+% \end{macrocode}
+% \end{parameter}^^A logo
+% \end{parameter}^^A headlogo
+% Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben
+% wird, erfolgt eine Sonderbehandlung durch \cs{tud@environmenthandler}, bei der
+% erst auf eine Zahl geprüft wird und anschießend versucht wird, das Argument
+% als Sprache zu setzen. Nach der Definition aller Parameter wird der Befehl
+% \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie beendet.
+% \begin{macrocode}
+ \TUD@parameter@sethandler{\tud@environmenthandler{#1}}%
+}
+% \end{macrocode}
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx
new file mode 100644
index 00000000000..cfc68f265d5
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx
@@ -0,0 +1,532 @@
+% \CheckSum{586}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-supervisor.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-supervisor.dtx}[%
+ 2014/11/04 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<package>\ProvidesPackage{tudscrsupervisor}[%
+%<*driver|package>
+%!TUDVersion
+%<package> package
+ (commands for supervisors)%
+]
+%</driver|package>
+%<*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-supervisor.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \section{Aufgabenstellung}
+%
+% Diese Paket stellt für die \cls{tudscr}-Klassen eine Umgebung für die
+% Aufgabenstellung einer Abschlussarbeit bereit.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Das Paket \pkg{tudscrsupervisor}}
+%
+% \begin{environment}{task}
+% Die Umgebung für die Aufgabenstellung nutzt die \env{tudpage}-Umgebung. Sie
+% wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle
+% mit Informationen zum Autor gesetzt. Zum Abschluss werden Betreuer,
+% Hochschullehrer und ggf. Vorsitzender des Prüfungsausschusses ausgegeben.
+% \begin{macrocode}
+\newenvironment{task}[1][]{%
+% \end{macrocode}
+% Die \env{tudpage}-Umgebung wird geöffnet. Mit dem Parameter \opt{headline}
+% kann die standardmäßige Überschrift überschrieben werden.
+% \begin{macrocode}
+ \cleardoubleoddpage%
+ \def\@headline{}%
+ \TUD@parameter{tudpage}{%
+ \TUD@parameter@define{headline}{\def\@headline{##1}}%
+ \TUD@parameter@let{line}{headline}%
+ \TUD@parameter@sethandler{\def\@headline{##1}}%
+ \TUD@parameter@set{pagestyle=empty}%
+ }%
+ \tudpage[#1]%
+% \end{macrocode}
+% Zu Beginn wird als erstes die Überschrift und~-- die entsprechende Option
+% vorausgesetzt~-- im PDF einen Lesezeichen- oder auch Outline-Eintrag gesetzt.
+% \begin{macrocode}
+ \tudbookmark{\taskname}{task}%
+ \subsection*{%
+ \ifx\@headline\@empty%
+ \taskname\space%
+ \ifx\tasktext\@empty\else\ifx\@thesis\@empty\else%
+ \ignorespaces\tasktext\space\trim@spaces{\@thesis}%
+ \fi\fi%
+ \else\@headline\fi%
+ }%
+ \tud@author@table%
+}{%
+% \end{macrocode}
+% Da auch Betreuer durch den Befehl \cs{and} getrennt werden, wird dieser für
+% die korrekte Ausgabe umdefiniert. Anschließend folgt die Ausgabe in einer
+% Tabelle, die Spalte der Bezeichner entspricht der aus dem oberen Teil.
+% \begin{macrocode}
+ \def\and{%
+ \tabularnewline%
+ \ifx\supervisorothername\@empty\else\supervisorothername\@titledelim\fi%
+ & \def\and{\tabularnewline &}%
+ }%
+ \vskip-\lastskip%
+ \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip%
+ \begingroup%
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative%
+ \begin{tabular}{@{}p{\tud@dim@table}l@{}}%
+ \supervisorname\@titledelim &
+ \@supervisor\tabularnewline[\smallskipamount]%
+ \issuedatetext\@titledelim & \@issuedate\tabularnewline%
+ \duedatetext\@titledelim & \@duedate\tabularnewline%
+ \end{tabular}%
+% \end{macrocode}
+% Darunter wird etwas Platz für die Unterschriften von betreuendem Professor
+% und ggf. Prüfungsausschussvorsitzenden gehalten. Auch diese beiden werden
+% in einer Tabelle ausgegeben. Die \env{tudpage}-Umgebung wird beendet, und
+% eine neue (rechte) Seite geöffnet.
+% \begin{macrocode}
+ \vskip 15mm plus 10mm minus 10mm%
+ \ifx\@chairman\@empty\else%
+ \begin{tabular}{@{}l@{}}%
+ \@chairman\tabularnewline%
+ \chairmanname\tabularnewline%
+ \end{tabular}%
+ \hfill%
+ \fi%
+ \ifx\@professor\@empty\else%
+ \begin{tabular}{@{}l@{}}%
+ \@professor\tabularnewline%
+ \professorname\tabularnewline%
+ \end{tabular}%
+ \fi%
+ \par%
+ \endgroup%
+ \endtudpage%
+ \cleardoublepage%
+}
+% \end{macrocode}
+% \end{environment}^^A task
+% \begin{macro}{\taskform}
+% Dies soll die Standardform einer Aufgabenstellung sein. Im ersten Argument
+% werden kurz die Ziele motiviert und erläutert, im zweiten Argument werden im
+% besten Fall die Schwerpunkte in einer \env{itemize}-Umgebung aufgeschlüsselt.
+% \begin{macrocode}
+\newcommand\taskform[3][]{%
+ \begin{task}[#1]
+ \vskip-\lastskip%
+ \ifxblank{#2}{}{\minisec{\objectivesname}#2}%
+ \ifxblank{#3}{}{%
+ \minisec{\focusname}%
+ \begin{itemize}\tud@RaggedRight%
+ #3
+ \end{itemize}%
+ }%
+ \end{task}%
+}
+% \end{macrocode}
+% \end{macro}^^A \taskform
+% \begin{environment}{evaluation}
+% Die Umgebung für das Gutachten nutzt ebenfalls die \env{tudpage}-Umgebung. Sie
+% wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle
+% mit Informationen zum Autor gesetzt. Zum Abschluss werden Ort, Datum und
+% Gutachter ausgegeben.
+% \begin{macrocode}
+\newenvironment{evaluation}[1][]{%
+% \end{macrocode}
+% Die \env{tudpage}-Umgebung wird geöffnet. Mit dem Parameter \opt{headline}
+% kann die standardmäßige Überschrift überschrieben werden. Zu Beginn wird als
+% erstes die Überschrift und~-- die entsprechende Option vorausgesetzt~-- im
+% PDF einen Lesezeichen- oder auch Outline-Eintrag gesetzt.
+% \begin{macrocode}
+ \cleardoubleoddpage%
+ \def\@headline{}%
+ \TUD@parameter{tudpage}{%
+ \TUD@parameter@define{headline}{\def\@headline{##1}}%
+ \TUD@parameter@let{line}{headline}%
+ \TUD@parameter@define{grade}{\def\@grade{##1}}%
+ \TUD@parameter@sethandler{\def\@headline{##1}}%
+ \TUD@parameter@set{pagestyle=empty}%
+ }%
+ \tudpage[#1]%
+ \tudbookmark{\evaluationname}{evaluation}%
+ \subsection*{%
+ \ifx\@headline\@empty%
+ \evaluationname\space%
+ \ifx\evaluationtext\@empty\else\ifx\@thesis\@empty\else%
+ \ignorespaces\evaluationtext\space\trim@spaces{\@thesis}%
+ \fi\fi%
+ \else\@headline\fi%
+ }%
+ \tud@author@table%
+}{%
+% \end{macrocode}
+% Die gegebenen Note sowie Ort und Datum werden am Ende ggf. ausgegeben.
+% \begin{macrocode}
+ \vskip-\lastskip%
+ \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi%
+ \medskip%
+ \ifx\@grade\@empty\else%
+ \noindent\gradetext%
+ \vskip\bigskipamount%
+ \fi%
+ \ifx\@date\@empty\else%
+ \noindent%
+ \ifx\@place\@empty\else\@place,~\fi\@date%
+ \vskip\bigskipamount%
+ \fi%
+ \bigskip\bigskip\noindent%
+% \end{macrocode}
+% Der Befehl \cs{and} wird für einen möglichen Zweitgutachter angepasst. Das
+% Hilfsmakro \cs{@tempa} dient zur Übernahme des richtigen Bezeichners für
+% Erst- bzw. Zweitgutachter. Sollten mit \cs{referee} keine Gutachter angegeben
+% sein, so werden die angegeben Betreuer verwendet.
+% \begin{macrocode}
+ \ifx\@referee\@empty\let\@referee\@supervisor\fi%
+ \let\@tempa\refereename%
+ \def\and{%
+ \tabularnewline%
+ \@tempa%
+ \endtabular%
+ \hfill%
+ \tabular{@{}l@{}}%
+ \global\let\@tempa\refereeothername%
+ }%
+ \begin{tabular}{@{}l@{}}%
+ \@referee%
+ \tabularnewline%
+ \@tempa%
+ \end{tabular}%
+ \hfill\null%
+ \endtudpage%
+ \cleardoublepage%
+}
+% \end{macrocode}
+% \end{environment}^^A evaluation
+% \begin{macro}{\evaluationform}
+% Dies soll die Standardform eines Gutachtens sein. Im ersten Argument wird
+% kurz die Aufgabenstellung zusammengefasst, im zweiten Argument wird der
+% Inhalt und die Struktur der Arbeit kurz beschrieben. Im dritten Argument
+% erfolgt die Bewertung, das letzte Argument beinhaltet die Note.
+% \begin{macrocode}
+\newcommand\evaluationform[5][]{%
+ \begin{evaluation}[#1]
+ \vskip-\lastskip%
+ \ifxblank{#2}{}{\minisec{\taskname}#2}%
+ \ifxblank{#3}{}{\minisec{\contentname}#3}%
+ \ifxblank{#4}{}{\minisec{\assessmentname}#4}%
+ \ifxblank{#5}{}{\def\@grade{#5}}%
+ \end{evaluation}%
+}
+% \end{macrocode}
+% \end{macro}^^A \evaluationform
+% \begin{macro}{\tud@author@table}
+% \changes{v2.01b}{2014/06/04}{Probleme mit \pkg{calc} behoben}%^^A
+% \begin{length}{\tud@dim@table}
+% Der Befehl \cs{tud@author@table} dient zur Ausgabe einer Tabelle mit
+% Informationen zum Autor/zu den Autoren\footnote{Matrikelnummer, Jahrgang,
+% Studiengang etc.} für Aufgabenstellung und Gutachten.
+% \begin{macrocode}
+\newlength{\tud@dim@table}%
+\newcommand*\tud@author@table{%
+ \tud@check@author%
+ \begingroup%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+% \end{macrocode}
+% Der Befehl \cs{tud@split@author} ist original aus den \cls{tudscr}-Klassen
+% und dient zur formatierten Ausgabe von mehreren Autoren, welche durch
+% \cs{author}\marg{Autor(en)} angegeben und mit \cs{and} getrennt wurden.
+% Er wird hier auf die Ausgabe der Autoren mit den jeweils zusätzlich gegebenen
+% Informationen in einer Tabelle angepasst.
+% \begin{macrocode}
+ \renewcommand*\tud@split@author[2]{%
+% \end{macrocode}
+% Weil alle Autoren in einer Tabelle gesetzt werden wird geprüft, welche Felder
+% individuell via \cs{author} angegeben wurden. Damit die Tabellen die gleiche
+% Höhe haben, auch wenn für einen Autor ein Feld ausgelassen wurde, werden alle
+% insgesamt angegebenen Felder mit via \cs{tud@multiple@setfields} mit \cs{null}
+% initialisiert. Anschließend werden für den aktuellen Autor angegebenen Felder
+% gesetzt.
+% \begin{macrocode}
+ \tud@multiple@setfields{\null}{##1}%
+% \end{macrocode}
+% Nach viel Geplänkel kommt nun die eigentliche Tabelle mit ggf. zusätzlichen
+% Informationen zum Autor.
+% \begin{macrocode}
+ \begin{tabular}{l@{}}%
+ \ifx\@course\@empty\else\@course\tabularnewline\fi%
+ \ifx\@discipline\@empty\else\@discipline\tabularnewline\fi%
+ \textsf{\textbf{\ignorespaces##1}}\tabularnewline%
+ \ifx\@matriculationnumber\@empty\else%
+ \@matriculationnumber\tabularnewline%
+ \fi%
+ \ifx\@matriculationyear\@empty\else%
+ \@matriculationyear\tabularnewline%
+ \fi%
+ \end{tabular}%
+% \end{macrocode}
+% Sollte ein weiterer Autor folgen, wird \cs{tabcolsep} zusätzlich eingefügt,
+% um den Standardabstand bei Tabellen zu sichern, da die Tabelle vorher ohne
+% rechten \enquote{Rand} gesetzt wurde, um die letzte Tabelle ggf. genau bis
+% zum rechten Rand setzen zu können.
+% \begin{macrocode}
+ \tud@multiple@@@split{##2}{~~\hspace{\tabcolsep}}
+ }%
+% \end{macrocode}
+% Zu Beginn wird eine Tabelle mit den Bezeichnern aller genutzten Feldern
+% ausgegeben. Danach folgen alle Autoren. Damit ein einheitliches Layout
+% entsteht und auch die Tabellen am Ende der Umgebung in der ersten Spalte die
+% gleiche Breite haben wie im oberen Teil, ist die Bestimmung einer festen
+% Spaltenbreite notwendig, die so breit wie der längste Bezeichner ist.
+% Dafür muss festgestellt werden, welche optionalen Felder denn nun überhaupt
+% genutzt werden. Dafür wird \cs{tud@multiple@setfields} mit \cs{null} als
+% Argument aufgerufen, um alle potentiellen Felder erkennen zu können.
+% \begin{macrocode}
+ \setlength{\tud@dim@table}{2em}%
+ \gdef\tud@multiple@field{@author}%
+ \tud@multiple@setfields{\null}{}%
+% \end{macrocode}
+% Anschließend werden die Bezeichner sowohl der obligatorischen als auch der
+% genutzten, optionalen Felder expandiert. Anschließend wir mit dieser Liste
+% der längste bestimmt und in \cs{tud@dim@table} gespeichert.
+% \begin{macrocode}
+ \edef\@tempa{%
+ \authorname,\titlename,\supervisorname,\supervisorothername,%
+ \issuedatetext,\duedatetext,%
+ \expandafter\ifx\@matriculationnumber\@empty\else%
+ \matriculationnumbername%
+ \fi,%
+ \expandafter\ifx\@matriculationyear\@empty\else%
+ \matriculationyearname%
+ \fi,%
+ \expandafter\ifx\@course\@empty\else\coursename\fi,%
+ \expandafter\ifx\@discipline\@empty\else\disciplinename\fi,%
+ }%
+ \@for\@tempb:=\@tempa\do{%
+ \settowidth{\@tempdima}{\@tempb\@titledelim}%
+ \ifdim\@tempdima>\tud@dim@table\relax%
+ \setlength{\tud@dim@table}{\@tempdima}%
+ \fi%
+ }%
+ \global\tud@dim@table=\tud@dim@table%
+% \end{macrocode}
+% Die Tabelle mit den benötigten Bezeichnern. Damit diese bis an den Seiterand
+% ohne Warnungen gesetzt werden können, wird die Auszeichnung von Absatzenden
+% aufgehoben.
+% \begin{macrocode}
+ \begingroup%
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative%
+ \begin{tabular}{@{}p{\tud@dim@table}}%
+ \ifx\@course\@empty\else%
+ \coursename\@titledelim\tabularnewline%
+ \fi%
+ \ifx\@discipline\@empty\else%
+ \disciplinename\@titledelim\tabularnewline%
+ \fi%
+ \authorname\@titledelim\tabularnewline%
+ \ifx\@matriculationnumber\@empty\else%
+ \matriculationnumbername\@titledelim\tabularnewline%
+ \fi%
+ \ifx\@matriculationyear\@empty\else%
+ \matriculationyearname\@titledelim\tabularnewline%
+ \fi%
+ \end{tabular}%
+% \end{macrocode}
+% Folgend werden die Autoren wie schon bei \cs{maketitle} mit den gleichen
+% Makros gesplittet und separat ausgegeben.
+% \begin{macrocode}
+ \tud@multiple@split{@author}%
+% \end{macrocode}
+% Nach den Autoren wird der Titel über die komplette Textbreite ausgegeben.
+% Danach wird der Inhalt der Aufgabenstellung ausgegeben.
+% \begin{macrocode}
+ \vskip\smallskipamount%
+ \begin{tabular}{@{}p{\tud@dim@table}%
+ p{\dimexpr\textwidth-\tud@dim@table-2\tabcolsep\relax}@{}}%
+ \titlename\@titledelim & \tud@RaggedRight\textsf{\textbf{\@@title}}%
+ \end{tabular}%
+ \par%
+ \endgroup%
+ \ifdim\parskip>\z@\else\vskip\topsep\fi%
+ \endgroup%
+ \noindent\ignorespaces%
+}
+% \end{macrocode}
+% \end{length}^^A \tud@dim@table
+% \end{macro}^^A \tud@author@table
+% \begin{macro}{\tud@author@checkfields}
+% Der Befehl \cs{tud@author@checkfields} wird um die hier im Paket zusätzlich
+% definierten Felder erweitert.
+% \begin{macrocode}
+\patchcmd{\tud@split@author@list}{\authormore}%
+ {\authormore,\course,\discipline}{}{\tud@patch@wrn{tud@split@author@list}}
+% \end{macrocode}
+% \end{macro}^^A \tud@author@checkfields
+% \begin{environment}{notice}
+% Die Umgebung für Aushänge nutzt ebenfalls die \env{tudpage}-Umgebung. Sie wird
+% auf einer neuen (rechten) Seite gesetzt. Die Überschrift wird in der
+% Voreinstellung auf den sprachabhängigen Bezeichner \cs{noticename} gesetzt,
+% welcher allerdings mit dem Parameter \opt{headline} überschrieben werden kann.
+% \begin{macrocode}
+\newenvironment{notice}[1][]{%
+ \cleardoubleoddpage%
+ \def\@headline{\noticename}%
+ \TUD@parameter{tudpage}{%
+ \TUD@parameter@define{headline}{\def\@headline{##1}}%
+ \TUD@parameter@let{line}{headline}%
+ \TUD@parameter@sethandler{\def\@headline{##1}}%
+ \TUD@parameter@set{pagestyle=empty}%
+ }%
+ \tudpage[#1]%
+ \tudbookmark{\noticename}{notice}%
+% \end{macrocode}
+% Es wird zu Beginn das angegebene Datum oben auf der rechten Seite ausgegeben.
+% Anschließend wird die Überschrift und der gegebene Titel gesetzt.
+% \begin{macrocode}
+ \ifx\@date\@empty\else%
+ \begingroup%
+ \vspace*{-\parskip}%
+ \vspace*{-2\baselineskip}%
+ \raggedleft
+ \@date\par%
+ \vspace*{-\parskip}%
+ \endgroup%
+ \fi%
+ \ifx\@headline\@empty\else%
+ \section*{\@headline}%
+ \fi%
+}{%
+% \end{macrocode}
+% Wenn keine Kontaktperson direkt angegeben wurden, werden die Informationen der
+% angegeben Betreuer verwendet. Wenn eine Personenangabe gefunden wurde, werden
+% die Kontaktdaten ausgegeben.
+% \begin{macrocode}
+ \ifx\@contactperson\@empty\let\@contactperson\@supervisor\fi%
+ \ifx\@contactperson\@empty\else%
+ \vskip-\lastskip%
+ \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi%
+ \subsection*{\contactpersonname}%
+ \noindent\tud@multiple@split{@contactperson}\hfill\null%
+ \fi%
+ \endtudpage%
+ \cleardoublepage%
+}
+% \end{macrocode}
+% \end{environment}^^A notice
+% \begin{macro}{\noticeform}
+% Dies soll die Standardform eines Aushangs für eine Abschlussarbeit sein. Im
+% ersten Argument wird kurz der Inhalt zusammengefasst, im zweiten Argument
+% werden die Arbeitsschwerpunkte beschrieben.
+% \begin{macrocode}
+\newcommand\noticeform[3][]{%
+ \begin{notice}[#1]
+ \vskip-\lastskip%
+ \ifxblank{#2}{}{%
+ \ifx\@@title\@empty\else%
+ \minisec{\expandonce{\@@title}}%
+ \fi%
+ #2%
+ }%
+ \ifxblank{#3}{}{%
+ \minisec{\focusname}%
+ \begin{itemize}\tud@RaggedRight%
+ #3
+ \end{itemize}%
+ }%
+ \end{notice}%
+}
+% \end{macrocode}
+% \end{macro}^^A \noticeform
+% \begin{macro}{\tud@split@contactperson}
+% \begin{macro}{\tud@split@contactperson@list}
+% Mit diesem Befehl werden für einen Aushang die Daten für einen oder mehrere
+% Kontaktpersonen ausgegeben.
+% \begin{macrocode}
+\newcommand*\tud@split@contactperson[2]{%
+ \tud@multiple@setfields{\null}{#1}%
+ \begin{tabular}{@{}l@{}}%
+ \ignorespaces#1\tabularnewline%
+ \ifx\@office\@empty\else\@office\tabularnewline\fi%
+ \ifx\@telephone\@empty\else\@telephone\tabularnewline\fi%
+ \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi%
+ \end{tabular}%
+ \tud@multiple@@@split{#2}{\hfill}%
+}
+\newcommand*\tud@split@contactperson@list{\office,\telephone,\emailaddress}
+% \end{macrocode}
+% \end{macro}^^A \tud@split@contactperson@list
+% \end{macro}^^A \tud@split@contactperson
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx
new file mode 100644
index 00000000000..f2461fd028a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx
@@ -0,0 +1,1360 @@
+% \CheckSum{1375}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-title.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-title.dtx}[%
+ 2014/11/13 v2.02 TUD-KOMA-Script (title)%
+]
+\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-title.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/06/24}{Unterstützung für \pkg{titlepage} entfernt}%^^A
+%
+% \section{Titelei}
+%
+% Die Titelseite wird für die \TUDScript-Klassen bereitgestellt.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*class&body>
+% \fi
+%
+% \subsection{Titelseite und Titelkopf}
+%
+% Für alle Klassen im \CD der Technischen Universität Dresden wird eine neue
+% Titelseite und ein neuer Titelkopf bereitgestellt. Es werden eine monochrome
+% Version, eine Version mit leichtem Farbeinsatz und eine durchweg farbige
+% Version bereitgestellt Außerdem wird hier das Aussehen und die Position des
+% Titels analog zu den Überschriften auf Teile- und Kapitelseiten festgelegt.
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \begin{option}{subjectthesis}
+% \begin{macro}{\if@tud@subjectthesis}
+% \begin{macro}{\if@tud@subjectthesis@locked}
+% Die alte \cls{tudbook}-Klasse hat den Typ der Arbeit in der Betreffzeile des
+% Titels gesetzt. Um dieses Verhalten nachbilden zu können, wird diese Option
+% zur Verfügung gestellt.
+% \begin{macrocode}
+\newif\if@tud@subjectthesis
+\TUD@key@lock{subjectthesis}[true]{%
+ \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@subjectthesis@locked
+% \end{macro}^^A \if@tud@subjectthesis
+% \end{option}^^A subjectthesis
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{KOMAfont}{thesis}
+% \begin{KOMAfont}{titlepage}
+% \changes{v2.01}{2014/04/24}{Explizite Wahl der genutzten Schriftstärke}%^^A
+% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A
+% Diese Font-Elemente werden auf der Titelseite verwendet. \opt{thesis}, um den
+% Typ der Arbeit und ggf. den zu erlangenden akademischen Grad zu setzen.
+% Allerdings kommt letzteres nur zum Tragen, wenn die Option \opt{subthesis}
+% deaktiviert ist. Es wird die gleiche Schrift wie für den Titel verwendet,
+% allerdings etwas kleiner. \opt{titlepage} für alle Zusatzinformationen wie
+% Autor, Datum etc.
+% \begin{macrocode}
+\newkomafont{thesis}{\usekomafont{title}\LARGE}
+\newkomafont{titlepage}{%
+ \usekomafont{subject}%
+ \fontseries{\mddefault}%
+ \selectfont%
+ \large%
+}
+% \end{macrocode}
+% \end{KOMAfont}^^A titlepage
+% \end{KOMAfont}^^A thesis
+% \begin{macro}{\tud@color@titlefont}
+% \begin{macro}{\tud@color@titlepage}
+% \begin{macro}{\tud@color@titlehead}
+% Die Makros werden für die Hintergrundfarbe der Titelseite sowie die Farbe der
+% Schriften verwendet.
+% \begin{macrocode}
+\newcommand*\tud@color@titlefont{black}
+\newcommand*\tud@color@titlepage{white}
+\newcommand*\tud@color@titlehead{black}
+% \end{macrocode}
+% \end{macro}^^A \tud@color@titlehead
+% \end{macro}^^A \tud@color@titlepage
+% \end{macro}^^A \tud@color@titlefont
+% \begin{macro}{\tud@maketitle}
+% \changes{v2.01a}{2014/06/03}{Fehler bei Nutzung von \cs{subtitle} behoben}%^^A
+% \changes{v2.02}{2014/06/23}{\val{firstiscover} wird als Wert für die Option
+% \opt{titlepage} unterstützt}%^^A
+% \changes{v2.02}{2014/07/19}{Im zweispaltigen Satz wird für den Titelkopf
+% \cs{tud@title@twocolumn} verwendet}%^^A
+% \changes{v2.02}{2014/09/05}{Neue Parameter}%^^A
+% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@maketitlepage}}%^^A
+% \begin{macro}{\tud@titlepagenumber}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD
+% gesetzt. Damit auf das Standardverhalten von \KOMAScript{} zurückgestellt
+% werden kann, wird der ursprüngliche \cs{maketitle}-Befehl bei der Abarbeitung
+% der Layoutoptionen gesichert. (siehe \cs{tud@layout@process}) und kann ggf.
+% wiederhergestellt bzw. mit \cs{tud@cmd@use} verwendet werden. Ist das Layout
+% des \CDs gefordert wird entweder mit \cs{tud@maketitlepage} eine Titelseite
+% gesetzt~-- wobei sich diese in ihrer Struktur am originalen \cs{maketitle}
+% orientiert~-- oder das Titelkopflayout wird angepasst.
+% \begin{macrocode}
+\newcommand*\tud@titlepagenumber{}%
+\let\tud@titlepagenumber\relax%
+\newcommand*\tud@maketitle[1][]{%
+ \begingroup%
+% \end{macrocode}
+% Das optionale Argument wird für das Setzen der Parameter verwendet.
+% \begin{macrocode}
+ \TUD@parameter@set[title]{#1}%
+ \ifcase \tud@layout@title
+ \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi%
+ \tud@cmd@use{maketitle}[\tud@titlepagenumber]%
+ \else%
+ \if@titlepage%
+ \tud@maketitlepage%
+% \end{macrocode}
+% Neben einer kompletten Titelseite gibt es auch noch einen Titelkopf. Auch
+% hierfür wird die Ausprägung festgelegt.
+% \begin{macrocode}
+ \else%
+ \ifcase \tud@layout@title\relax\or\else%
+ \def\tud@color@titlefont{HKS41}%
+ \def\tud@color@titlehead{HKS41}%
+ \fi%
+% \end{macrocode}
+% Um einen Titelkopf zu setzen, wird einfach der Originalbefehl verwendet und
+% nur der innere Teil (\cs{@maketitle}) angepasst.
+% \begin{macrocode}
+ \let\@maketitle\tud@@maketitle%
+ \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi%
+% \end{macrocode}
+% Um einen zweispaltigen Satz für den Titelkopf ermöglichen zu können und
+% gleichzeitig dabei den TUD-Kopf zu verwenden, wird der interne Befehl
+% \cs{tud@title@twocolumn} verwendet. Damit wird der Titel selber einspaltig
+% gesetzt und direkt danach der zweispaltige Satz begonnen.
+% \begin{macrocode}
+ \if@twocolumn%
+ \tud@title@twocolumn[{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}]%
+ \else%
+ \tud@cmd@use{maketitle}[\tud@titlepagenumber]%
+ \fi%
+ \fi%
+ \fi%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@titlepagenumber
+% \end{macro}^^A \tud@maketitle
+% \begin{parameter}{pagenumber}
+% \changes{v2.02}{2014/09/05}{neu}^^A
+% \begin{parameter}{cdfont}
+% \changes{v2.02}{2014/09/05}{neu}^^A
+% Die einzelnen Parameter dienen zur Einstellung der Titelseite und entsprechen
+% in ihrem Verhalten den gleichnamigen Klassenoptionen.
+% \begin{macrocode}
+\TUD@parameter{title}{%
+ \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}%
+ \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}%
+ \TUD@parameter@sethandler{\TUD@parameter@set[title]{pagenumber=#1}}%
+}%
+% \end{macrocode}
+% \end{parameter}^^A cdfont
+% \end{parameter}^^A pagenumber
+% Die Befehle \cs{thanks} und \cs{footnotemark} werden mit \cs{robustify}
+% behandelt, um die Makros vor dem Expandieren zu schützen. Dies ist z.\,B. für
+% \cs{tud@multiple@split} aber auch für weitere Felder auf dem Titel nötig.
+% \begin{macrocode}
+\robustify{\thanks}%
+\robustify{\footnotemark}%
+% \end{macrocode}
+% \begin{macro}{\tud@maketitlepage}
+% \changes{v2.02}{2014/09/05}{neu}%^^A
+% \begin{macro}{\tud@titleback}
+% Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD
+% gesetzt. Damit auf das Standardverhalten von \KOMAScript{} zurückgestellt
+% werden kann, wird der standardmäßige \cs{maketitle}-Befehl nur wenn notwendig
+% überschrieben (siehe \cs{tud@layout@process}) und kann ggf. wiederhergestellt
+% werden. Der Befehl selbst orientiert sich dabei in seiner Struktur an dem
+% originalen \cs{maketitle}. Für die ggf. farbige Ausgabe der Titelrückseite
+% wird das Hilfmakro \cs{tud@titleback} definiert. Mit \cs{tud@titlepagenumber}
+% kann eine Seitenzahl für den Titel~-- auch über den Befehl \cs{makecover}~--
+% angegeben werden.
+% \begin{macrocode}
+\newcommand*\tud@titleback{}%
+\newcommand*\tud@maketitlepage{%
+% \end{macrocode}
+% Es wird durch die \KOMAScript-Option \opt{titlepage} unterschieden, ob eine
+% Titelseite oder aber ein Titelkopf gesetzt werden soll. In Abhängigkeit davon
+% werden Farben für die Schriften und den Seitenhintergrund festgelegt. Hierfür
+% wird die entsprechende Layoutoption ausgewertet und entsprechend dieser die
+% Werte belegt.
+% \begin{macrocode}
+ \ifcase \tud@layout@title\relax\or\or%
+ \def\tud@color@titlefont{HKS41}%
+ \def\tud@color@titlehead{HKS41}%
+ \or%
+ \def\tud@color@titlepage{HKS41}%
+ \def\tud@color@titlefont{HKS41!30}%
+ \def\tud@color@titlehead{white}%
+ \fi%
+% \end{macrocode}
+% Die Titelseite. Es existieren die Optionen \opt{full} für eine vollständig
+% farbige Seite sowie \opt{lite} für farbige Schriften und \opt{on} für den
+% Standardtitel.
+% \begin{macrocode}
+ \begin{titlepage}%
+% \end{macrocode}
+% Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist
+% ein Großteil der Einstellungen irrelevant und wird übersrpungen.
+% \begin{macrocode}
+ \ifx\tud@titlepagenumber\relax\else%
+ \setcounter{page}{\tud@titlepagenumber}%
+ \fi%
+% \end{macrocode}
+% Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist
+% ein Großteil der Einstellungen irrelevant und wird übersrpungen.
+% \begin{macrocode}
+ \if@tud@cover\else%
+ \let\footnotesize\small%
+ \let\footnoterule\relax%
+ \let\footnote\thanks%
+ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
+ \let\@oldmakefnmark\@makefnmark%
+ \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}%
+% \end{macrocode}
+% Das Paket \pkg{hyperref} definert im Normalfall die Fußnoten so um, dass es
+% anklickbare Links erzeugt. Damit dies auf der Titelseite zu ungewollten
+% Effekten führt, werden die Hyperlinks hier deaktiviert. Leider macht dies
+% \pkg{hyperref} direkt beim Laden. Da die \TUDScript-Klassen aber nun mal zwei
+% unterschiedliche Titel bereitstellen und die Möglichkeit bestehen soll, dass
+% Layout per später Optionswahl noch zu ändern, muss der interne Code aus
+% \pkg{hyperref} hier noch einmal für den TUD-Titel aufgerufen werden.
+% \begin{macrocode}
+ \tud@footnote@unhyper%
+% \end{macrocode}
+% Im Gegensatz zu den \KOMAScript-Klassen wird für eine Umschlagseite die
+% Option \opt{titlepage=firstiscover} nur für den Schmutztitel \cs{extratitle}
+% und nicht für die eigentlcihe Titelseite unterstützt. Für ein Cover im \CD
+% ist der Befehl \cs{makecover} mit den dazugehörigen Parametern zu nutzen.
+% \begin{macrocode}
+ \ifx\@extratitle\@empty%
+ \if@titlepageiscoverpage%
+ \ClassWarning{\tudcls@name}{%
+ Using option `titlepage=firstiscover' is only\MessageBreak%
+ possible with an extra title. Alternatively you can\MessageBreak%
+ create a cover with `\string\makecover'%
+ }%
+ \fi%
+ \else%
+% \end{macrocode}
+% Der Teil ist aus den \KOMAScript-Klassen kopiert\dots
+% \begin{macrocode}
+ \if@titlepageiscoverpage%
+ \edef\titlepage@restore{%
+ \noexpand\endgroup%
+ \noexpand\global\noexpand\@colht\the\@colht%
+ \noexpand\global\noexpand\@colroom\the\@colroom%
+ \noexpand\global\vsize\the\vsize%
+ \noexpand\global\noexpand\@titlepageiscoverpagefalse%
+ \noexpand\let\noexpand\titlepage@restore\noexpand\relax%
+ }%
+ \begingroup%
+ \topmargin=\dimexpr \coverpagetopmargin-1in\relax%
+ \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax%
+ \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax%
+ \textwidth=\dimexpr%
+ \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax%
+ \textheight=\dimexpr%
+ \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax%
+ \headheight=0pt%
+ \headsep=0pt%
+ \footskip=\baselineskip%
+ \@colht=\textheight%
+ \@colroom=\textheight%
+ \vsize=\textheight%
+ \columnwidth=\textwidth%
+ \hsize=\columnwidth%
+ \linewidth=\hsize%
+ \else%
+ \let\titlepage@restore\relax%
+ \fi%
+ \noindent\@extratitle\next@tdpage%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Ist die Option \opt{tudbookmarks} aktiviert, werden für Umschlag- und
+% Titelseite PDF"=Lesezeichen gesetzt.
+% \begin{macrocode}
+ \if@tud@bookmarks%
+ \if@tud@cover%
+%<*book|report>
+ \tudbookmark[0]{\coverpagename}{cover}%
+%</book|report>
+%<*article>
+ \tudbookmark[1]{\coverpagename}{cover}%
+%</article>
+ \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
+ \else%
+%<*book|report>
+ \tudbookmark[0]{\titlepagename}{title}%
+%</book|report>
+%<*article>
+ \tudbookmark[1]{\titlepagename}{title}%
+%</article>
+ \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Das ganze Layout wird vertikal so verschoben, dass der Titel auf der gleichen
+% Höhe steht wie die Überschriften auf Teil- und Kapitelseiten.
+% \begin{macrocode}
+ \vspace*{\dimexpr%
+ \tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip+\parskip\relax%
+ }%
+ \vspace*{\pageheadingsvskip}%
+ \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative%
+% \end{macrocode}
+% Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser
+% Teil des Titels in einer Gruppe (\cs{begingroup}) gesetzt.
+% \begin{macrocode}
+ \begingroup%
+ \usekomafont{titlepage}%
+% \end{macrocode}
+% Da die Überschrift auf einer festen Position liegen soll, muss von allem, was
+% über der Überschrift positioniert werden soll, die Höhe bestimmt werden, um
+% einen entsprechenden Offset einfügen zu können. Dafür werden zwei temporäre
+% Standardboxen verwendet. In diesen wird der gewünschte Inhalt für die beiden
+% Felder \cs{@titlehead} bzw. \cs{@subject} abgelegt und die sich daraus
+% kumulierende Höhe in \cs{@tempdima} gespeichert. Vor dem Setzen der Felder
+% kann nun der \textbf{insgesamt} notwendige vertikaler Freiraum vor dem
+% eigentlichen Titel für \cs{@titlehead} \textbf{und} \cs{@subject} abgezogen
+% werden. Anschließend werden die beiden Boxen ausgegeben und der Aufbau der
+% Titelseite kann beginnen.
+% \begin{macrocode}
+ \setlength{\@tempdima}{\z@}%
+ \ifx\@titlehead\@empty\else%
+ \setbox0\vbox{%
+ \begin{minipage}[t]{\textwidth}%
+ {\usekomafont{titlehead}{\@titlehead\par\null}}%
+ \end{minipage}\newline\null%
+ }%
+ \addtolength{\@tempdima}{\dimexpr\ht0+\dp0\relax}%
+ \fi%
+% \end{macrocode}
+% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll
+% und kann.
+% \begin{macrocode}
+ \tud@letsubjectthesis%
+ \ifx\@subject\@empty\else%
+ \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}%
+ \addtolength{\@tempdima}{\dimexpr\ht1+\dp1+1pt\relax}%
+ \fi%
+ \vspace*{-\@tempdima}%
+ \ifx\@titlehead\@empty\else\usebox0\par\fi%
+ \ifx\@subject\@empty\else\usebox1\par\fi%
+% \end{macrocode}
+% Nachdem bereits \cs{@titlehead} und \cs{@subject} gesetzt worden, folgen nun
+% die weiteren Felder wie vom \CD~-- mehr oder weniger~-- vorgegeben auf der
+% Titelseite in unterschiedlichen Größen und Schriftstärken.
+% \begin{macrocode}
+ {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}%
+ \vskip 2ex\@plus1ex\@minus1ex%
+% \end{macrocode}
+% Der Untertitel wird ggf. in der gleichen Schrift gesetzt wie der Titel,
+% allerdings etwas kleiner.
+% \begin{macrocode}
+ \ifx\@subtitle\@empty\else%
+ {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ \fi%
+ \vskip 2\bigskipamount%
+% \end{macrocode}
+% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen.
+% \begin{macrocode}
+ \tud@check@author%
+ \tud@multiple@split{@author}\par%
+ \vskip 2ex\@plus1ex\@minus1ex%
+% \end{macrocode}
+% Die Titelseite unterscheidet sich ein wenig, abhängig davon ob eine eine
+% Abschlussarbeit gesetzt wird oder nicht. Falls dies nicht der Fall ist, dann
+% wird das angegebene bzw. das heutige Datum und ggf. die Ergänzung ausgegeben.
+% \begin{macrocode}
+ \ifx\@thesis\@empty%
+ \if@tud@cover\else%
+ \ifx\@date\@empty\else%
+ \vskip 2ex\@plus.1fill%
+ {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}%
+ \fi%
+ \fi%
+ \vskip 2ex\@plus.25fill%
+% \end{macrocode}
+% Ist eine Abschlussarbeit angegeben, so wird zusätzlich unterschieden, ob
+% diese bereits~-- gesteuert durch die Option \opt{subjectthesis}~-- in der
+% Betreffzeile angegeben wurde oder aber separat und in deutlicherer Form auf
+% dem Titelblatt ausgegeben werden soll. Sowohl Arbeitstyp als auf akademischer
+% Grad werden dabei im Verhältnis 1:2 zwischen allen weiteren Angaben auf dem
+% Titel vertikal ausgerichtet.
+% \begin{macrocode}
+ \else%
+ \vskip 2ex\@plus.25fill%
+ \if@tud@subjectthesis\else%
+ {\usekomafont{thesis}{\tud@title@uppercase{\@thesis}\par}}%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ \fi%
+% \end{macrocode}
+% Ebenfalls wird in Abhängigkeit von der Option \opt{subjectthesis} der
+% angestrebte akademische Grad ausgegeben.
+% \begin{macrocode}
+ \if@tud@cover\else%
+ \ifx\@graduation\@empty\else%
+ \def\@tempc{%
+ \@graduation%
+ \ifx\@graduationabbr\@empty\else\space\@graduationabbr\fi%
+ }%
+ {\usekomafont{titlepage}{\graduationtext\par}}%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ \if@tud@subjectthesis%
+ {\usekomafont{subject}{\@tempc\par}}%
+ \else%
+ {\usekomafont{thesis}{\tud@title@uppercase{\@tempc}\par}}%
+ \fi%
+ \vskip 3ex\@plus1ex\@minus1ex%
+ \fi%
+ \fi%
+ \vskip 2ex\@plus.5fill%
+ \fi%
+% \end{macrocode}
+% Wenn Betreuer angegeben wurden, dann werden diese auf dem Titel ausgeben. Um
+% die Vorlage auch für Dissertationen verwenden zu können, ist ein Feld für
+% Gutachter vorgesehen. Außerdem wird für Promotionsschriften ein Feld für
+% Fachreferenten bereitgehalten. Das Format der Ausgabe ist dabei identisch.
+% Darauf folgend wird der betreuende Hochschullehrer ausgegeben.
+% \begin{macrocode}
+ \if@tud@cover\else%
+ \tud@title@names{supervisor}%
+ \tud@title@names{referee}%
+ \tud@title@names{advisor}%
+ \tud@title@names{professor}%
+% \end{macrocode}
+% Bei einer Abschlussarbeit gehört normalerweise auch ein Abgabedatum auf den
+% Titel. Sollte keines angegeben sein, so erscheint eine Warnung. Es wird an
+% Stelle dessen das angegebene Enddatum oder aber das heutige Datum verwendet.
+% \begin{macrocode}
+ \ifx\@thesis\@empty\else%
+ \ifdefstring{\@date}{\today}{%
+% \end{macrocode}
+% Durch das Paket \pkg{tudscrtask} wird das zusätzliche Feld \cs{@duedate}
+% definiert, welches hier ggf. für auf ein nutzbares Datum geprüft wird.
+% \begin{macrocode}
+ \ifdefvoid{\@duedate}{%
+ \ClassWarning{\tudcls@name}{%
+ `\string\submissiondate' or `\string\date' was not given.%
+ \MessageBreak%
+ Since a thesis is a self-contained work, an end\MessageBreak%
+ date should be specified by the author.\MessageBreak%
+ Nevertheless, today's date is used%
+ }%
+ }{%
+ \ClassWarning{\tudcls@name}{%
+ `\string\submissiondate' or `\string\date' was not given.%
+ \MessageBreak It's substituted by the given due date%
+ }%
+ \let\@date\@duedate%
+ }%
+ }{}%
+ \ifx\@date\@empty\else%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ \ifstr{\datetext}{}{}{\datetext\@titledelim}%
+ {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}%
+% \end{macrocode}
+% Zusätzlich kann noch ein Datum der mündlichen Verteidigung angegeben werden.
+% \begin{macrocode}
+ \ifx\@defensedate\@empty\else%
+ \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}%
+ {\usekomafont{date}{\@defensedate\par}}%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Zu guter Letzt kann das Standard-Verlagsfeld befüllt werden.
+% \begin{macrocode}
+ \ifx\@publishers\@empty\else%
+ \vskip 2ex\@plus.25fill%
+ {\usekomafont{publishers}{\@publishers\par}}%
+ \vskip\z@\@plus.25fill%
+ \fi%
+ \endgroup%
+% \end{macrocode}
+% Die Rückseite des Titels wird~-- wie bei \KOMAScript~-- bloß bei zweiseitigem
+% Satz ausgegeben. Für diese Klassen wird aufgrund der möglicherweise farbigen
+% Rückseite das Hilfsmakro \cs{tud@titleback} benötigt.
+% \begin{macrocode}
+ \let\tud@titleback\relax%
+ \if@twoside%
+ \@tempswatrue%
+ \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty%
+ \@tempswafalse%
+ \fi\fi%
+ \if@tempswa%
+ \gdef\tud@titleback{%
+ \next@tpage%
+ \begin{minipage}[t]{\textwidth}%
+ \@uppertitleback%
+ \end{minipage}\par%
+ \vfill%
+ \begin{minipage}[b]{\textwidth}%
+ \@lowertitleback%
+ \end{minipage}\par%
+ \@thanks\let\@thanks\@empty%
+ }%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Es werden Schriftart, abhängig \opt{heavyfont} die Schriftstärke, sowie die
+% Farbe der Seite und des Kopfes und die Linienstärke des Querbalkens und die
+% \DDC-Logos aus den Einstellungen übernommen.
+% \begin{macrocode}
+ \def\@tempa{%
+ \tud@pagecolor{\tud@color@titlepage}%
+ \def\tud@head@color{\tud@color@titlehead}%
+ \color{\tud@color@titlefont}%
+ \addtokomafont{pagenumber}{\sffamily\color{\tud@color@titlefont}}%
+ \addtokomafont{footnote}{\sffamily\color{\tud@color@titlefont}}%
+ \thispagestyle{empty.tudheadings}%
+ \tud@ddc@enlargepage%
+ }%
+% \end{macrocode}
+% Bei der Ausgabe des Covers werden lediglich die Farb- und Schriftdefinitionen
+% benötigt, die Seite kann danach beendet werden.
+% \begin{macrocode}
+ \if@tud@cover%
+ \begingroup%
+ \@tempa%
+ \cleardoubleemptypage%
+ \tud@restorepagecolor%
+ \endgroup%
+ \else%
+% \end{macrocode}
+% Beim Titel selbst muss noch ausgewertet werden, wie die Rückseite zu
+% gestalten ist. Sollte als Klassenoption das strikte Beginnen aller Teile
+% oder Kapitel auf einer rechten Seite aktiviert sein (\opt{open=right}) und
+% zusätzlich bei farbigem \CD auch die Rückseiten farbig geleert werden, so
+% erfolgt dies auch für die Titelseite. Die Klasse \cls{tudscrartcl} setzt
+% lediglich die Titelseite farbig, die Rückseite niemals.
+% \begin{macrocode}
+%<*book|report>
+ \tud@cleardoublespecialpage[\tud@titleback]{%
+%</book|report>
+%<*article>
+ \begingroup%
+%</article>
+ \@tempa%
+ \begingroup%
+ \let\thispagestyle\@gobble%
+ \next@tpage%
+ \endgroup%
+%<*article>
+ \tud@restorepagecolor%
+ \endgroup%
+ \tud@titleback%
+%</article>
+%<*book|report>
+ }%
+%</book|report>
+% \end{macrocode}
+% Die Danksagung ist identisch zu \KOMAScript.
+% \begin{macrocode}
+ \ifx\@dedication\@empty\else%
+ \next@tdpage\null\vfill%
+ {\centering\usekomafont{dedication}{\@dedication\par}}%
+ \vskip\z@\@plus3fill%
+ \@thanks\let\@thanks\@empty%
+ \cleardoubleemptypage%
+ \fi%
+ \fi%
+ \end{titlepage}%
+ \if@tud@cover\else%
+ \setcounter{footnote}{0}%
+ \global\let\and\relax%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@titleback
+% \end{macro}^^A \tud@maketitlepage
+% \begin{macro}{\tud@title@uppercase}
+% Für das Setzen einzelner Felder in Majuskeln werden diese beiden Befehle
+% definiert. Bei der Verwendung des Befehls \cs{thanks} auf der Titelseite soll
+% sichergestellt werden, dass der Inhalt selbst nicht in Majuskeln gesetzt wird.
+% \begin{macrocode}
+\newcommand*\tud@title@uppercase[1]{%
+ \let\@tempa\relax%
+ \begingroup%
+% \end{macrocode}
+% Der Befehl \cs{thanks} wird so umdefiniert, dass der Inhalt in ein temporäres
+% Makro gespeichert wird. Danach wird durch das Setzen einer temporären Box der
+% Befehl \cs{thanks} ausgeführt und der Inhalt gesichert. Für die Ausführung von
+% \cs{tud@makeuppercase} wird das Argument von \cs{thanks} ignoriert. Nachdem
+% das gewünschte Feld in Majuskeln gesetzt wurde, wird die gespeicherte Fußnote
+% ausgegeben.
+% \begin{macrocode}
+ \def\thanks##1{\gdef\@tempa{##1}}%
+ \let\footnote\thanks%
+ \setbox0\vbox{#1}%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \tud@makeuppercase{#1}%
+ \endgroup%
+ \ifx\@tempa\relax\else\thanks\@tempa\fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@title@uppercase
+% \begin{macro}{\tud@title@names}
+% Dieser Befehl dient zur getrennten Ausgabe von mehreren, mit dem Makro
+% \cs{and} separierten Einträgen in den Feldern \cs{@supervisor}, \cs{@referee}
+% und \cs{@advisor}.
+% \begin{macrocode}
+\newcommand*\tud@title@names[1]{%
+ \letcs\@tempa{@#1}%
+ \ifx\@tempa\@empty\else%
+ \def\and{%
+ \ifcsvoid{#1othername}{\par}{%
+ \vskip 1ex\@plus.5ex\@minus.5ex%
+ {\usekomafont{titlepage}{\@nameuse{#1othername}\par}}%
+ }%
+ \let\and\par%
+ }%
+ \vskip 1ex\@plus.5ex\@minus.5ex%
+ {\usekomafont{titlepage}{\@nameuse{#1name}\par}}%
+ {\usekomafont{author}{\@nameuse{@#1}\par}}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@title@names
+% \begin{macro}{\titledelimiter}
+% \begin{macro}{\@titledelim}
+% Dieses Makro wird für das Trennzeichen auf der Titelseite genutzt.
+% \begin{macrocode}
+\newcommand*\@titledelim{:\nobreakspace}
+\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}}
+% \end{macrocode}
+% \end{macro}^^A \@titledelim
+% \end{macro}^^A \titledelimiter
+% \begin{macro}{\tud@@maketitle}
+% Der eigentliche Befehl für einen Titelkopf (\opt{titlepage=no}).
+% \begin{macrocode}
+\newcommand*\tud@@maketitle{%
+% \end{macrocode}
+% Ab der \KOMAScript-Version 3.11c gibt es mit \cs{@makeextratitle} einen
+% neuen, separaten Befehl für das Feld \cs{@extratitle}. Falls eine frühere
+% Version verwendet wird, muss der Extratitel hier mit \cs{tud@extratitle}
+% gesetzt werden.
+% \begin{macrocode}
+ \global\@topnum=\z@%
+ \vspace*{\dimexpr%
+ \tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip+\parskip\relax%
+ }%
+ \vspace*{\headingsvskip}%
+ \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative%
+% \end{macrocode}
+% Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser
+% Teil des Titels in einer Gruppe (\cs{begingroup}) gesetzt. Außerdem werden
+% wie auch für die Titelseite die Hyperlinks der Fußnoten deaktiviert.
+% \begin{macrocode}
+ \begingroup%
+ \usekomafont{titlepage}%
+ \tud@footnote@unhyper%
+% \end{macrocode}
+% Ähnlich wie bei der Titelseite wird auch beim Titelkopf die Inhalte von
+% \cs{@titlehead} und \cs{@subject} so nach oben verschoben, dass der Titel
+% selbst auf der gewünschten Höhe landet.
+% \begin{macrocode}
+ \setlength{\@tempdima}{\z@}%
+ \ifx\@titlehead\@empty\else%
+ \setbox0\vbox{%
+ \begin{minipage}[t]{\textwidth}%
+ {\usekomafont{titlehead}{\@titlehead\par\null}}%
+ \end{minipage}\newline\null%
+ }%
+ \addtolength{\@tempdima}{\dimexpr\ht0+\dp0\relax}%
+ \fi%
+% \end{macrocode}
+% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll
+% und kann. Bei einem Titelkopf ist nur diese Variante möglich.
+% \begin{macrocode}
+ \TUDoptions{subjectthesis=true}%
+ \tud@letsubjectthesis%
+ \ifx\@subject\@empty\else%
+ \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}%
+ \addtolength{\@tempdima}{\dimexpr\ht1+\dp1+1pt\relax}%
+ \fi%
+ \vspace*{-\@tempdima}%
+ \ifx\@titlehead\@empty\else\usebox0\par\fi%
+ \ifx\@subject\@empty\else\usebox1\par\fi%
+ {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ \ifx\@subtitle\@empty\else%
+ {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ \fi%
+ \vskip 2\bigskipamount%
+% \end{macrocode}
+% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen.
+% \begin{macrocode}
+ \tud@check@author%
+ \tud@multiple@split{@author}\par%
+ \vskip 2ex\@plus1ex\@minus1ex%
+% \end{macrocode}
+% Ausgabe von Datum, Verlag und Danksagung wie im Original.
+% \begin{macrocode}
+ {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}%
+ \ifx\@publishers\@empty\else%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ {\usekomafont{publishers}{\@publishers\par}}%
+ \fi%
+ \ifx\@dedication\@empty\else%
+ \vskip 2ex\@plus1ex\@minus1ex%
+ {\centering\usekomafont{dedication}{\@dedication\par}}%
+ \fi%
+% \end{macrocode}
+% Falls Felder genutzt wurden, die nur auf der Titelseite, nicht aber im
+% Titelkopf ausgegeben werden, dann wird eine Warnung ausgegeben.
+% \begin{macrocode}
+ \ifx\@graduation\@empty\else\tud@title@wrn{graduation}\fi%
+ \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi%
+ \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi%
+ \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi%
+% \end{macrocode}
+% Am Ende wird noch etwas vertikaler Abstand eingefügt.
+% \begin{macrocode}
+ \vskip 2\bigskipamount%
+% \end{macrocode}
+% Wird das \DDC-Logo gesetzt, muss dafür am unteren Rand entsprechend Platz
+% gelassen werden.
+% \begin{macrocode}
+ \tud@ifinpslist{\titlepagestyle}{\tud@ddc@enlargepage}{}%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@@maketitle
+% Es wird die Angabe einer kollaborativen Autorenschaft ermöglicht, wo für
+% jeden einzelnen Autor weitere Angaben (Matrikelnummer etc.) gemacht werden
+% können. Hierfür ist eine spezielle Art der Eingabe im Dokument notwendig.
+% \begin{macro}{\tud@multiple@split}
+% \begin{macro}{\tud@multiple@@split}
+% \begin{macro}{\tud@multiple@@@split}
+% \begin{macro}{\tud@multiple@field}
+% Mehrere Autoren werden durch \cs{and} voneinander getrennt. Damit alle
+% zusätzlichen Felder für alle Autoren einzeln nutzbar sind, muss der Inhalt
+% des Feldes \cs{@author} an jedem \cs{and}-Befehl getrennt und für jeden Teil
+% separat ausgewertet. Dafür wird der Befehl \cs{tud@multiple@@split} definiert,
+% welcher allgemein gehalten ist um diesen auch für andere Felder nutzen zu
+% können. Das obligatorische Argument ist dabei das Feld mit dem auszuwertenden
+% Inhalt, der jeweils an \cs{and} getrennt werden soll. Dieses wird in
+% \cs{tud@multiple@field} gespeichert.
+% \begin{macrocode}
+\newcommand*\tud@multiple@field{}
+\newcommand*\tud@multiple@split[1]{%
+ \gdef\tud@multiple@field{#1}%
+ \begingroup%
+ \let\and\relax%
+% \end{macrocode}
+% Das Feld wird mit \cs{and} terminiert, um der Definition von
+% \cs{tud@multiple@@split} in jedem Fall zu entsprechen.
+% \begin{macrocode}
+ \edef\@tempa{\csname#1\endcsname\and}%
+ \expandafter\endgroup%
+ \expandafter\tud@multiple@@split\@tempa\relax%
+}
+% \end{macrocode}
+% Das Makro \cs{tud@multiple@@split} wird so definiert, dass der Befehl
+% \cs{and} als Separator für die einzelnen Argumente dient. Mit den beiden
+% freigestellten Argumenten kann das Makro zur eigentlichen Ausgabe aufgerufen
+% werden, welches aus dem gegebenen Feld (\cs{tud@multiple@field}) konstruiert
+% wird (\cs{tud@split\meta{Feld}}). An dieses wird der jeweils aktuelle Autor
+% im ersten Argument und die restlichen im zweiten Argument übergeben.
+% \begin{macrocode}
+\newcommand*\tud@multiple@@split{}%
+\def\tud@multiple@@split#1\and#2\relax{%
+ \expandafter\csname tud@split\tud@multiple@field\endcsname{#1}{#2}%
+}
+% \end{macrocode}
+% Der Befehl \cs{tud@multiple@@@split} prüft zum Schluss, ob noch weitere
+% Autoren angegeben sind. Sollte dies der Fall sein, so wird der Inhalt des
+% zweiten Argumentes ausgeführt und \cs{tud@multiple@@split} ein weiteres Mal
+% aufgerufen, um so sequentiell alle Autoren abzuarbeiten. Dafür muss
+% \cs{tud@multiple@@@split} innerhalb des verarbeitenden Makro
+% (\cs{tud@split\meta{Feld}}) aufgerufen werden.
+% \begin{macrocode}
+\newcommand*\tud@multiple@@@split[2]{%
+ \ifx\relax#1\relax%
+ \def\@tempb{}%
+ \else%
+ \def\@tempb{#2\tud@multiple@@split#1\relax}%
+ \fi%
+ \@tempb%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@multiple@field
+% \end{macro}^^A \tud@multiple@@@split
+% \end{macro}^^A \tud@multiple@@split
+% \end{macro}^^A \tud@multiple@split
+% \begin{macro}{\tud@multiple@setfields}
+% Der Befehl \cs{tud@multiple@setfields}\marg{Initialisierung}\marg{Teilinhalt}
+% wird verwendet, um innerhalb des Feldes \cs{@tud@multiple@field} zu prüfen, ob
+% sich darin bestimmte Befehle aus \cs{tud@split\\meta{Feld}@list} zum Setzen
+% zusätzlicher Informationen befinden. Sollte dies der Fall sein, so werden
+% diese mit \meta{Initialisierung} initialisiert. Anschließend wird der
+% übergebene Teilinhalt mit \cs{setbox0}\cs{vtop}\marg{\#1} in eine Box
+% expandiert. Dieser Trick führt dazu, dass die Felder bereits gesetzt werden,
+% ohne eine Ausgabe zu erzeugen.
+% \begin{macrocode}
+\newcommand*\tud@multiple@setfields[2]{%
+ \letcs\@tempa{tud@split\tud@multiple@field @list}%
+ \let\and\relax%
+ \@for\@tempb:=\@tempa\do{%
+ \ifx\@tempb\@empty\else%
+ \begingroup%
+ \protected@expandtwoargs\in@{\@tempb}{\@nameuse{\tud@multiple@field}}%
+ \ifin@ \@tempb{#1}\fi%
+ \endgroup%
+ \fi%
+ }%
+ \begingroup%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \setbox0\vtop{#2}%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@multiple@setfields
+% \begin{macro}{\tud@check@author}
+% \changes{v2.02}{2014/08/17}{neu}%^^A
+% \begin{macro}{\tud@split@author}
+% \changes{v2.02}{2014/07/25}{neu, aus Umbenennung \cs{tud@split@@author}}%^^A
+% \begin{macro}{\tud@split@author@list}
+% \changes{v2.02}{2014/07/25}{neu, Umbenennung \cs{tud@split@@author@list}}%^^A
+% \begin{macro}{\tud@newline}
+% Das Makro \cs{tud@split@author} dient der formatierten Ausgabe aller
+% Informationen für mehrere Autoren auf der Titelseite. Falls das Autorenfeld
+% nicht gesetzt wurde, wird mit \cs{tud@check@author} die standardmäßig
+% vorhandene Warnung ausgegeben und danach das Feld als leer definiert.
+% \begin{macrocode}
+\newcommand*\tud@newline{}
+\newcommand*\tud@check@author{%
+ \ifpatchable{\@author}{\@latex@warning@no@line}{\@author\gdef\@author{}}{}%
+}
+\newcommand*\tud@split@author[2]{%
+% Zu Beginn werden alle Felder, welche innerhalb des \meta{Feld}-Argumentes
+% angegeben sind, initial gelöscht (erstes Argument \cs{tud@multiple@setfields})
+% Anschließend werden die Felder des aktuellen Teils gefüllt (zweites Argument
+% \cs{tud@multiple@setfields}).
+% \begin{macrocode}
+ \tud@multiple@setfields{}{#1}%
+% \end{macrocode}
+% Um die Abstände definiert zu setzen, wird \cs{tud@newline} verwendet. Sobald
+% auch nur eine zusätzliche Information ausgegeben werden soll, wird ein etwas
+% kleiner Abstand eingefügt. Anschließend wird jede Information einfach in
+% einer neuen Zeile ausgegeben.
+% \begin{macrocode}
+ \def\tud@newline{\vskip .5ex\let\tud@newline\newline}%
+% \end{macrocode}
+% Die Felder \cs{@author} und ggf. \cs{@authormore} werden sowohl auf der
+% Titelseite als auch im Titelkopf jedoch nicht auf der Umschlagseite
+% ausgegeben.
+% \begin{macrocode}
+ {\usekomafont{author}{\ignorespaces#1}}%
+ \if@tud@cover\else%
+ \ifx\@authormore\@empty\else%
+ \tud@newline%
+ \@authormore%
+ \fi%
+% \end{macrocode}
+% Nur auf der Titelseite erfolgt die Ausgabe von Geburtsdatum, Geburtsort,
+% Matrikelnummer und Immatrikulationsjahr. Sollte ein Titelkopf verwendet
+% werden, so wird für jedes gesetzte Feld eine Warnung ausgegeben.
+% \begin{macrocode}
+ \ifx\@dateofbirth\@empty\else%
+ \if@titlepage%
+ \tud@newline%
+ \ifstr{\dateofbirthtext}{}%
+ {}{\dateofbirthtext\@titledelim}\@dateofbirth%
+ \ifx\@placeofbirth\@empty\else%
+ \space\placeofbirthtext\unskip\space\@placeofbirth%
+ \fi%
+ \else%
+ \tud@title@wrn{dateofbirth}%
+ \fi%
+ \fi%
+ \ifx\@matriculationnumber\@empty\else%
+ \if@titlepage%
+ \tud@newline%
+ \ifstr{\matriculationnumbername}{}%
+ {}{\matriculationnumbername\@titledelim}%
+ \@matriculationnumber%
+ \else%
+ \tud@title@wrn{matriculationnumber}%
+ \fi%
+ \fi%
+ \ifx\@matriculationyear\@empty\else%
+ \if@titlepage%
+ \tud@newline%
+ \ifstr{\matriculationyearname}{}%
+ {}{\matriculationyearname\@titledelim}%
+ \@matriculationyear%
+ \else%
+ \tud@title@wrn{matriculationyear}%
+ \fi%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Durch den Aufruf von \cs{tud@multiple@@@split} wird das übergebene \meta{Feld}
+% sukzessive abgearbeitet.
+% \begin{macrocode}
+ \tud@multiple@@@split{#2}{\vskip 2ex}%
+}
+% \end{macrocode}
+% Innerhalb von \cs{tud@split@author@list} werden die Feldbefehle hinterlegt,
+% die durch \cs{tud@multiple@setfield} geprüft und ggf. initialisert werden
+% sollen.
+% \begin{macrocode}
+\newcommand*\tud@split@author@list{%
+ \authormore,\matriculationyear,\enrolmentyear,%
+ \matriculationnumber,\studentid,\matriculationid,%
+ \placeofbirth,\birthplace,\dateofbirth,\birthday,%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@newline
+% \end{macro}^^A \tud@split@author@list
+% \end{macro}^^A \tud@split@author
+% \end{macro}^^A \tud@check@author
+% \begin{macro}{\maketitleonecolumn}
+% \changes{v2.02}{2014/08/16}{einspaltiger Text obligatorisch}%^^A
+% \begin{macro}{\@maketitleonecolumn}
+% \changes{v2.02}{2014/08/12}{entfernt}%^^A
+% \begin{macro}{\tud@title@twocolumn}
+% \begin{macro}{\tud@title@twocolumn@box}
+% Zum Setzen eines einspaltigen Titels mit einspaltiger Zusammenfassung bei
+% einem Titelkopf~-- dank der Hilfe von Markus Kohm.%
+% \footnote{\url{http://www.komascript.de/node/1699}}
+%
+% Der Befehl \cs{maketitleonecolumn}\oarg{Parameter}\oarg{Inhalt} kann bei
+% zweispaltigem Satz dazu genutzt werden, einen einspaltigen Titel zu bekommen.
+% Beim der Verwendung einer Titelseite wird lediglich der Titel sowie
+% anschließend ggf. \meta{Inhalt} einspaltig ausgegeben. Beim Satz eines
+% Titelkopfes wird der Befehl \cs{tud@title@twocolumn} zur Ausgabe genutzt.
+% \begin{macrocode}
+\RequirePackage{afterpage}[1995/10/27]
+\newcommand\maketitleonecolumn[2][]{%
+% \end{macrocode}
+% Hier erfolgt die Unterscheidung der Ausgabe, abhängig von der Option
+% \opt{titlepage}.
+% \begin{macrocode}
+ \if@twocolumn%
+ \if@titlepage%
+ \maketitle[#1]%
+ \onecolumn{#2}\twocolumn%
+ \else%
+ \tud@title@twocolumn[{\vspace*{.9\baselineskip}\maketitle[#1]{#2}}]%
+ \fi%
+ \else%
+ \ClassError{\tudcls@name}{%
+ `\string\maketitleonecolumn' can only be used in twocolumn mode%
+ }{}%
+ \fi%
+}
+% \end{macrocode}
+% Es folgt die Verarbeitung des Inhaltes des Titelkopfes, welcher einspaltig
+% gesetzt werden soll. Damit sich dieser auch über mehrere Seiten erstrecken
+% kann, wird mit einer Box gearbeitet.
+% \begin{macrocode}
+\newsavebox\tud@title@twocolumn@box
+\newcommand\tud@title@twocolumn[1][]{%
+% \end{macrocode}
+% Zunächst wird auf einseitigen Satz umgeschaltet. Der zu schreibende Inhalt
+% wird in einer Box gespeichert. Während des Zusammenbaus der Box sind keine
+% expliziten \cs{newpage}- oder \cs{clearpage}-Befehle erlaubt.
+% \begin{macrocode}
+ \onecolumn%
+ \begingroup%
+ \let\clearpage\relax%
+ \let\newpage\relax%
+ \global\setbox\tud@title@twocolumn@box\vbox{#1\bigskip}%
+ \endgroup%
+% \end{macrocode}
+% Für den speziellen Satzspiegel mit dem \DDC-Logo im Fuß ist im Zweifelsfall
+% etwas Anpassungarbeit von Nöten. Sollte dieser für die Titelseite benötigt
+% werden, der entsprechende Seitenstil ist aber nicht geladen, so wird für die
+% folgende Ausgaberoutine im ersten Durchlauf der Platz auf der Titelseite
+% reduziert.
+% \begin{macrocode}
+ \setlength{\@tempdimc}{\textheight}%
+ \tud@ifinpslist{\titlepagestyle}{%
+ \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+ \tud@ddc@check%
+ \ifcase \@tempb\relax\else%
+ \setlength{\@tempdimc}{\dimexpr\textheight-\tud@dim@ddcdiff}%
+ \fi%
+ }{}%
+ }{}%
+% \end{macrocode}
+% Jetzt werden der Inhalt stückweise so lange auf einzelnen Seiten ausgeben,
+% bis der immer kleiner werdende Rest in der Box auf eine Seite passt. Dabei
+% sollen für das seitenweise Zerteilen des Inhaltes innerhalb der Box dieselben
+% Rahmenbedingungen für den Seitenaufbau gelten, wie auch im normalen Dokument.
+% Nach der Ausgabe der ersten vollständigen Seite wird der verfügbare Platz auf
+% das normale Maß zurückgesetzt.
+% \begin{macrocode}
+ \@whiledim\@tempdimc<\ht\tud@title@twocolumn@box\do{%
+ \splittopskip\topskip%
+ \splitmaxdepth\maxdepth%
+ \vsplit\tud@title@twocolumn@box to \@tempdimc%
+ \clearpage%
+ \setlength{\@tempdimc}{\textheight}%
+ }%
+% \end{macrocode}
+% Der Rest wir einfach als optionales Argument von \cs{twocolumn} ausgegeben.
+% \begin{macrocode}
+ \twocolumn[\unvbox\tud@title@twocolumn@box]%
+% \end{macrocode}
+% Sollte der einspaltige Teil bereits auf der Titelseite selbst beendet worden
+% sein, so muss im zweispaltigen Satz für beide Spalten der Platz eingeschränkt
+% werden. Leider ist das Vergrößern zweier Spalten in \LaTeXe nicht trivial
+% möglich, weshalb hierfür wird das Paket \pkg{afterpage} benötigt wird. Es
+% wird die aktuelle und mit \cs{afterpage} die nächstfolgende Spalte verkürzt.
+% \begin{macrocode}
+ \ifdim\@tempdimc<\textheight\relax%
+ \enlargethispage{-\tud@dim@ddcdiff}%
+ \afterpage{\enlargethispage{-\tud@dim@ddcdiff}}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@title@twocolumn@box
+% \end{macro}^^A \tud@title@twocolumn
+% \end{macro}^^A \@maketitleonecolumn
+% \end{macro}^^A \maketitleonecolumn
+% \begin{macro}{\tud@letsubjectthesis}
+% Bei der Verwendung der Option \opt{subjectthesis} wird zum einen geprüft, ob
+% das Feld \cs{@thesis} gesetzt ist und zum anderen, ob das Feld \cs{@subject}
+% auch leer ist.
+% \begin{macrocode}
+\newcommand*\tud@letsubjectthesis{%
+ \if@tud@subjectthesis\ifx\@thesis\@empty\else%
+ \ifx\@subject\@empty\else%
+ \ClassWarning{\tudcls@name}{%
+ The option `subjectthesis' was activated.\MessageBreak%
+ The field `subject' will be overwritten with the\MessageBreak%
+ given thesis%
+ }%
+ \fi%
+ \let\@subject\@thesis%
+ \fi\fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@letsubjectthesis
+% \begin{macro}{\tud@title@wrn}
+% Bei der Nutzung eines Titelkopfes wird bloß eine reduzierte Menge an
+% Informationen ausgegeben. Darauf wird der Anwender ggf. hingewiesen.
+% \begin{macrocode}
+\newcommand*\tud@title@wrn[1]{%
+ \ClassWarning{\tudcls@name}{%
+ `\@backslashchar#1' has to be used with\MessageBreak%
+ activated titlepage option%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@title@wrn
+% \begin{macro}{\next@tdpage}
+% \changes{v2.02}{2014/05/17}{entfernt}%^^A
+% \begin{macro}{\tud@extratitle}
+% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% Mit \TUDScript~v2.02 wurde die Bereitstellung dieser beiden Befehle aufgrund
+% der zwingenden Verwendung von \KOMAScript{}~v3.12 entfernt.
+% \end{macro}^^A \tud@extratitle
+% \end{macro}^^A \next@tdpage
+%
+% \subsection{Cover}
+%
+% Zusätzlich zur eigentlichen Titelseite kann für Druckerzeugnisse eine
+% separate Umschlagseite erzeugt werden. Um die Gestaltung dieser anzupassen,
+% wurden Einstellungsmöglichkeiten vorgesehen, die insbesondere den verwendeten
+% Satzspiegel betreffen.
+% \begin{macro}{\makecover}
+% \changes{v2.02}{2014/06/23}{Warnung für die Option \opt{titlepage} mit dem
+% Wert \val{firstiscover}}%^^A
+% \changes{v2.02}{2014/08/08}{\cs{makecover} jetzt auch ohne \CD verwendbar}^^A
+% \begin{macro}{\if@tud@cover}
+% \begin{macro}{\tud@coverpagetopmargin}
+% \changes{v2.02}{2014/08/12}{neu}^^A
+% Der Befehl ist für ein Cover bei einem gebundenen Werk zu verwenden.
+% \begin{macrocode}
+\newif\if@tud@cover
+\newcommand*\tud@coverpagetopmargin{}
+\let\tud@coverpagetopmargin\coverpagetopmargin
+\newcommand*\makecover[1][]{%
+% \changes{v2.02}{2014/08/12}{Satzspiegel bei \opt{cdlayout=false}
+% anpassbar}%^^A
+% \end{macrocode}
+% Ist die Option \opt{titlepage=firstiscover} aktiv, wird eine Warnung erzeugt.
+% \begin{macrocode}
+ \if@titlepageiscoverpage%
+ \ClassWarning{\tudcls@name}{%
+ Using both option `titlepage=firstiscover' and\MessageBreak%
+ `\string\makecover' together isn't supported. The\MessageBreak%
+ option `titlepage=firstiscover' will be ignorded. If you\MessageBreak%
+ want to create an individual cover, you have to use\MessageBreak%
+ `\string\extratitle' instead of `\string\makecover'.\MessageBreak%
+ See also the documentation of KOMA-Script%
+ }%
+ \@titlepageiscoverpagefalse%
+ \fi%
+% \end{macrocode}
+% Die Erscheinung des Covers lässt sich durch wenige Optionen etwas anpassen.
+% Standardmäßig ist das Cover farblos, die farbige Darstellung wird durch die
+% Klassenoption \opt{cdcover} gewählt. Außerdem wird normalerwe ein Layout
+% erzeugt, welches sich genau an die Vorgaben des \CDs hält und außerdem die
+% Binderandkorrektur \emph{nicht} beachtet. Optional kann das Cover im
+% Satzspiegel erstellt werden. Zuletzt ist die Verwendung der Schriften des
+% \CDs deaktivierbar.
+% \begin{macrocode}
+ \clearpage%
+ \begingroup%
+ \let\thanks\@gobble%
+ \let\footnote\@gobble%
+ \TUD@parameter@set[cover]{#1}%
+ \let\tud@layout@title\tud@layout@cover%
+ \tud@layout@process%
+% \end{macrocode}
+% Wird der Parameter \opt{cdlayout} aktiviert, werden die Seitenränder wie
+% durch das \CD vorgegeben eingestellt. Andernfalls entsprechen diese den
+% Einstellungen des Satzspiegels und können mit \cs{coverpage\dots margin}
+% durch den Anwender angepasst werden. Der mit \cs{coverpagetopmargin}
+% zusätzlich eingefügte, obere Seitenrand wird bei aktiviertem Parameter
+% \opt{cdlayout} im Normalfall~-- sprich ohne eine Änderung des Befehls
+% \cs{coverpagetopmargin}~-- durch \cs{tud@coverpagetopmargin} ausgeglichen, um
+% den Titel auf der Umschlagseite in der richtigen vertikalen Position
+% erscheinen zu lassen.
+% \begin{macrocode}
+ \if@tud@cover@cdlayout%
+ \ifcase \tud@layout@cover\relax%
+ \let\coverpagetopmargin\tud@dim@top%
+ \else%
+ \def\coverpagetopmargin{%
+ \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax%
+ }%
+ \fi%
+ \let\coverpagebottommargin\tud@dim@bottom%
+ \let\coverpageleftmargin\tud@dim@left%
+ \let\coverpagerightmargin\tud@dim@right%
+ \else%
+ \ifcase \tud@layout@cover\relax\else%
+ \expandafter\def\expandafter\coverpagetopmargin\expandafter{%
+ \coverpagetopmargin-\tud@coverpagetopmargin%
+ }%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Für den Fall, dass eine Umschlagseite gesetzt werden soll, die nicht im \CD
+% erscheint, wird einfach das originale \cs{maketitle} aufgerufen und dabei
+% die Option \opt{titlepage=firstiscover} verwendet, um die Seitenränder
+% anpassen zu können. Außerdem werden ein mit \cs{extatitle} gegebener
+% Schmutztitel ebenso ignoriert, wie Danksagung oder Einträge für die Rückseite.
+% \begin{macrocode}
+ \ifcase \tud@layout@cover\relax%
+ \KOMAoptions{titlepage=firstiscover}%
+ \let\@extratitle\@empty%
+ \let\@uppertitleback\@empty%
+ \let\@lowertitleback\@empty%
+ \let\@dedication\@empty%
+ \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi%
+ \tud@cmd@use{maketitle}[\tud@titlepagenumber]%
+ \else%
+% \end{macrocode}
+% Der Befehl verwendet das Layout des Titels im \CD. Allerdings werden nicht
+% alle sondern nur für ein Cover relavante Angaben ausgegeben. Der Schalter
+% \cs{if@tud@cover} wird innerhalb des Befehles \cs{tud@maketitle} genutzt, um
+% die Unterscheidung zu machen, ob es sich bei der aktuellen Ausgabe um das
+% Cover oder aber die Titelseite handelt.
+% \begin{macrocode}
+ \@tud@covertrue%
+ \@titlepagetrue%
+% \end{macrocode}
+% Der Satzspiegel wird hierfür äquivalent zu den \KOMAScript-Klassen gesetzt,
+% wenn die Option \opt{titlepage=firstiscover} aktiviert ist.
+% \begin{macrocode}
+ \edef\titlepage@restore{%
+ \noexpand\endgroup%
+ \noexpand\global\noexpand\@colht\the\@colht%
+ \noexpand\global\noexpand\@colroom\the\@colroom%
+ \noexpand\global\vsize\the\vsize%
+ \noexpand\let\noexpand\titlepage@restore\noexpand\relax%
+ }%
+ \begingroup%
+ \topmargin=\dimexpr \coverpagetopmargin-1in\relax%
+ \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax%
+ \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax%
+ \textwidth=\dimexpr%
+ \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax%
+% \end{macrocode}
+% Bei der Höhe des Textbereiches und der Kopfzeile muss unterschieden werden,
+% ob der Satzspiegel im \CD oder aber im Buchblock erfolgen soll.
+% \begin{macrocode}
+ \if@tud@cover@cdlayout%
+ \textheight=\dimexpr%
+ \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax%
+ \headheight=0pt%
+ \headsep=0pt%
+ \else%
+ \textheight=\dimexpr\paperheight-\coverpagebottommargin%
+ -\tud@dim@headheight-\tud@dim@barheight%
+ -\tud@dim@headsep-\tud@dim@bottom\relax%
+ \headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax%
+ \headsep=\tud@dim@headsep%
+ \fi%
+ \footskip=\tud@dim@footskip%
+ \@colht=\textheight%
+ \@colroom=\textheight%
+ \vsize=\textheight%
+ \columnwidth=\textwidth%
+ \hsize=\columnwidth%
+ \linewidth=\hsize%
+ \tud@dim@headdiff=\z@%
+% \end{macrocode}
+% Weil bereits die Titelseite normalerweise die Seitenzahl eins bekommt, kann es
+% bei der Verwendung des Paketes \pkg{hyperref} zu einer Warnung aufgrund der
+% doppelt verwendeten Seitenzahl kommen. Um dies zu verhindern, werden die
+% Seitenanker für das Cover deaktiviert.
+% \begin{macrocode}
+ \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}%
+% \end{macrocode}
+% Die Ausgabe des Covers und ggf. das Wiederherstellen des Satzspiegels.
+% \begin{macrocode}
+ \tud@maketitle%
+ \clearpage%
+ \csname titlepage@restore\endcsname%
+ \fi%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@coverpagetopmargin
+% \end{macro}^^A \if@tud@cover
+% \end{macro}^^A \makecover
+% \begin{parameter}{pagenumber}
+% \begin{parameter}{cdfont}
+% \begin{parameter}{cdfonts}
+% \changes{v2.02}{2014/08/08}{entfernt}^^A
+% \begin{parameter}{tudfonts}
+% \changes{v2.02}{2014/08/08}{entfernt}^^A
+% \begin{parameter}{cdlayout}
+% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \begin{macro}{\if@tud@cover@cdlayout}
+% Die einzelnen Parameter dienen zur Einstellung der Umschlagseite und
+% entsprechen in ihrem Verhalten den gleichnamigen Klassenoptionen~--
+% \opt{cdlayout} ausgenommen.
+% \begin{macrocode}
+\newbool@lock{@tud@cover@cdlayout}
+\TUD@parameter{cover}{%
+ \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}%
+ \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}%
+ \TUD@parameter@define{cdlayout}[true]{%
+ \ifstr{#1}{true}{\setbool@lock{@tud@cover@cdlayout}{true}}{%
+ \ifstr{#1}{on}{\setbool@lock{@tud@cover@cdlayout}{true}}{%
+ \ifstr{#1}{yes}{\setbool@lock{@tud@cover@cdlayout}{true}}{%
+ \ifstr{#1}{false}{\setbool@lock{@tud@cover@cdlayout}{false}}{%
+ \ifstr{#1}{no}{\setbool@lock{@tud@cover@cdlayout}{false}}{%
+ \ifstr{#1}{off}{\setbool@lock{@tud@cover@cdlayout}{false}}{%
+ \TUD@parameter@wrn{cdlayout}{true,false}%
+ }}}}}}%
+ }%
+ \TUD@parameter@sethandler{%
+ \ifxnumber{#1}{%
+ \TUD@parameter@set[cover]{pagenumber=#1}%
+ }{%
+ \TUD@parameter@set[cover]{cdlayout=#1}%
+ }%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}^^A \if@tud@cover@cdlayout
+% \end{parameter}^^A cdlayout
+% \end{parameter}^^A tudfonts
+% \end{parameter}^^A cdfonts
+% \end{parameter}^^A cdfont
+% \end{parameter}^^A pagenumber
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx
new file mode 100644
index 00000000000..ab4738a5131
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx
@@ -0,0 +1,180 @@
+% \CheckSum{119}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-twocolfix.dtx
+%<*driver>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-twocolfix.dtx}[%
+ 2014/11/21 v2.02 TUD-KOMA-Script\space%
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+%<package>\ProvidesPackage{twocolfix}[%
+%<*driver|package>
+%!TUDVersion
+%<package> package
+ (twocolumn layout bugfix)%
+]
+%</driver|package>
+%<*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-twocolfix.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/07/10}{Versionsnummer angepasst}%^^A
+%
+% \section{Bugfix für den zweispaltigen Satz}
+%
+% Der \LaTeXe-Kernel enthält einen Fehler, der Kapitelüberschriften im
+% zweispaltigen Layout höher setzt, als im einspaltigen. Der Fehler ist zwar
+% schon länger bekannt,\footnote{\url{%
+% http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3126}} allerdings
+% noch nicht in \pkg{ltxfix2e} übernommen worden. Das Paket \pkg{twocolfix}
+% soll das Problem beheben. Eine Integration dieses Bugfixes in \KOMAScript{}
+% wurde bereits bei Markus Kohm angefragt,\footnote{\url{%
+% http://www.komascript.de/node/1681}} jedoch von ihm bis jetzt nicht weiter
+% verfolgt.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \iffalse
+%<*package>
+% \fi
+%
+% \subsection{Das Paket \pkg{twocolfix}}
+%
+% Es wird der fehlerhafte Befehl aus dem \LaTeXe-Kernel neu definiert.
+% Allerdingds definieren die \KOMAScript"=Klassen das Makro \cs{@topnewpage}
+% um und sichern vorher das Original in \cs{scr@topnewpage}. Daher wird der
+% neue Befehl erst temporär definiert.
+% \begin{macrocode}
+\long\def \@tempa [#1]{%
+ \@nodocument%
+ \@next\@currbox\@freelist{}{}%
+ \global \setbox\@currbox%
+ \vbox {%
+ \break%
+ \prevdepth\z@%
+ \begingroup%
+ \normalcolor%
+ \hsize\textwidth%
+% \end{macrocode}
+% Damit der Inhalt des optionale Argumentes mit den gleichen Absatzeinstellungen
+% gesetzt wird, darf der Befehl \cs{@parboxrestore} nicht aufgerufen werden.
+% Alternativ müsste \KOMAScript{} eine Option bereitstellen, mit der sich die
+% Einstellungen für Absätze wiederherstellen lassen.
+% \begin{macrocode}
+% \@parboxrestore
+% \KOMAoptions{parskip=last}
+ \col@number \@ne%
+ \ignorespaces #1\par%
+ \ifdim\parskip>\z@\null\fi%
+ \vskip -\dbltextfloatsep%
+ \endgroup%
+ \ifdim\parskip>\z@\vskip\parskip\else\null\fi%
+ \vskip -\topskip%
+ }%
+ \begingroup%
+ \splitmaxdepth\maxdepth \splittopskip\topskip%
+ \setbox\@tempboxa \vsplit\@currbox to\z@%
+ \endgroup%
+ \ifdim \ht\@currbox>\textheight%
+ \ht\@currbox \textheight%
+ \fi%
+ \global \count\@currbox \tw@%
+ \@tempdima -\ht\@currbox%
+ \advance \@tempdima -\dbltextfloatsep%
+ \global \advance \@colht \@tempdima%
+ \ifx \@dbltoplist \@empty%
+ \else%
+ \@latexerr{Float(s) lost}\@ehb%
+ \let \@dbltoplist \@empty%
+ \fi%
+ \@cons \@dbltoplist \@currbox%
+ \global \@dbltopnum \m@ne%
+ \ifdim \@colht<2.5\baselineskip%
+ \@latex@warning@no@line {Optional argument of \noexpand\twocolumn
+ too tall on page \thepage}%
+ \@emptycol%
+ \if@firstcolumn%
+ \else%
+ \@emptycol%
+ \fi%
+ \else%
+ \global \vsize \@colht%
+ \global \@colroom \@colht%
+ \@floatplacement%
+ \fi%
+}
+% \end{macrocode}
+% Nachdem der Befehl zuerst temporär definert wurde, wird nun abhängig von der
+% aktiven Klasse der notwendige Befehl mit der neuen Definition überschrieben.
+% \begin{macrocode}
+\@ifundefined{scr@topnewpage}
+ {\let\@topnewpage\@tempa}
+ {\let\scr@topnewpage\@tempa}
+% \end{macrocode}
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx
new file mode 100644
index 00000000000..afd592063fa
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx
@@ -0,0 +1,249 @@
+% \CheckSum{101}
+% \iffalse meta-comment
+% ======================================================================
+%
+% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen
+%
+% ======================================================================
+% 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
+% version 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,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (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-version.dtx
+% \fi
+%
+% \iffalse
+% Nicht verwirren lassen! In dieser Datei steht die Dokumentation und der Code
+% vor dem Treiber. Das ist notwendig, weil der Code bereits am Anfang des
+% Treibers selbst benötigt wird.
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v1.0}{2012/10/31}{\TUDScript-Bundle erstellt und erstmalig
+% veröffentlicht}%^^A
+% \changes{v2.00}{2014/04/21}{\TUDScript-Bundle auf \pkg{docstrip} umgestellt
+% und stark erweitert}%^^A
+% \changes{v2.01}{2014/04/24}{Anpassungen in Dokumentation und
+% Schriftinstallation, Fehlerkorrekturen}%^^A
+% \changes{v2.02}{2014/05/14}{Probleme mit \pkg{calc} behoben}%^^A
+% \changes{v2.02}{2014/05/16}{Mehrere Befehle für die Kompatibilität mit
+% anderen Paketen umbenannt}%^^A
+%
+% \section{Version des \texorpdfstring{\TUDScript}{TUD-KOMA-Script}-Bundles}
+%
+% Für alle Klassen und Paketen, die zum \TUDScript-Bundle auf \KOMAScript-Basis
+% gehören wird als erstes die aktuelle Version festgelgt.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \begin{macro}{\TUDVersion}
+% Dieses Makro gibt an, zu welcher \TUDScript"~Version die Datei gehört. Die
+% Klassen und Pakete des Bundles verwenden dieses Makro außerdem zur eigenen
+% Versionsangabe.
+% \begin{macro}{\@TUDVersion}
+% \changes{v2.02}{2014/07/22}{Expandieren der Versionsangabe bei der Verwendung
+% von \pkg{docstrip} ermöglicht}%^^A
+% Je nachdem, ob \cs{TUDVersion} bereits definiert ist oder nicht, wird die
+% Definition überprüft oder eine globale Definition vorgenommen. Da das Ganze
+% auch bei der Erstellung der Dokumentation geschieht, wird \cs{makeatletter}
+% innerhalb einer Gruppe verwendet.
+% \begin{macrocode}
+\begingroup%
+ \catcode`\@11\relax%
+%<*!(package|class)>
+ \ifx\newcommand\undefined%
+ \gdef\@TUDVersion#1{%
+ \gdef\TUDVersion{\space\space#1}%
+ \aftergroup\endinput%
+ }%
+ \else%
+%</!(package|class)>
+ \ifx\TUDVersion\undefined%
+ \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}%
+ \else%
+ \newcommand*\@TUDVersion[1]{%
+ \def\@tempa{#1}%
+ \ifx\TUDVersion\@tempa\else%
+ \@latex@warning@no@line{%
+ \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak%
+ but `#1' was expected!\MessageBreak%
+ You should not use classes, packages or files from\MessageBreak%
+ different TUD-KOMA-Script-Bundle versions%
+ }%
+ \fi%
+ }%
+ \fi%
+%<*!(package|class)>
+ \fi%
+%</!(package|class)>
+ \@TUDVersion{2014/12/17 v2.02 TUD-KOMA-Script}%
+\endgroup%
+% \end{macrocode}
+% \end{macro}^^A \@TUDVersion
+% \end{macro}^^A \TUDVersion
+%
+% \iffalse
+%<*driver>
+% \fi
+\ProvidesFile{tudscr-version.dtx}[\TUDVersion\space (versions)]
+% \iffalse
+\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-version.dtx}
+\begin{document}
+ \maketitle
+ \DocInput{\filename}
+\end{document}
+%</driver>
+% \fi
+%
+% \begin{macro}{\tudscrmail}
+% \begin{macrocode}
+\providecommand*\tudscrmail{tudscr@gmail.com}
+% \end{macrocode}
+% \end{macro}^^A \tudscrmail
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \begin{macro}{\cls@name}
+% \begin{macro}{\scrcls@name}
+% \begin{macro}{\tudcls@name}
+% Für die \TUDScript-Klassen werden hier einmalig die Namen der jeweiligen
+% Klassen definiert.
+% \begin{macrocode}
+%<*article>
+\newcommand*\cls@name{article}
+\newcommand*\scrcls@name{scrartcl}
+\newcommand*\tudcls@name{tudscrartcl}
+%</article>
+%<*report>
+\newcommand*\cls@name{report}
+\newcommand*\scrcls@name{scrreprt}
+\newcommand*\tudcls@name{tudscrreprt}
+%</report>
+%<*book>
+\newcommand*\cls@name{book}
+\newcommand*\scrcls@name{scrbook}
+\newcommand*\tudcls@name{tudscrbook}
+%</book>
+%<*doc>
+\newcommand*\cls@name{doc}
+\newcommand*\scrcls@name{scrdoc}
+\newcommand*\tudcls@name{tudscrdoc}
+%</doc>
+%<*inherit>
+\newcommand*\tudinh@name{tudscrreprt}
+%</inherit>
+% \end{macrocode}
+% \end{macro}^^A \tudcls@name
+% \end{macro}^^A \scrcls@name
+% \end{macro}^^A \cls@name
+% Der Quelltext für das Bereitstellen der Klassen. Es wird als Basis die
+% korrespondierende \KOMAScript-Klasse geladen.
+% \begin{macrocode}
+%<*article|book|report>
+\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+\ProvidesClass{\tudcls@name}[%
+%!TUDVersion
+ document class (\cls@name)%
+]
+% \end{macrocode}
+% Beim Verwenden der Klassen wird in der log-Datei ein Vermerk mit \cs{typeout}
+% erstellt.
+% \begin{macrocode}
+\typeout{The Corporate Design of Technische Universitaet Dresden}
+\typeout{Class: \tudcls@name}
+\typeout{Version: \TUDVersion}
+\typeout{Author: Falk Hanisch (\tudscrmail)}
+\typeout{http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php}
+%</article|book|report>
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+%<*package&tudscr>
+% \fi
+%
+% \subsection{Verwendbarkeit von \TUDScript-Paketen}
+%
+% Einige Pakete sind nur mit den \TUDScript-Klassen verwendbar. Diese erzeugen
+% einen Fehler, wenn sie nicht mit diesen verwendet werden.
+% \begin{macrocode}
+\@ifundefined{tudcls@name}{%
+ \PackageError{%
+%<comp> tudscrcomp%
+%<manual> tudscrmanual%
+%<supervisor> tudscrsupervisor%
+ }{Unsupported class found}{%
+ This package can only be used with a class out of the\MessageBreak%
+ tudscr bundle (tudscrartcl, tudscrreprt, tudscrbook)%
+ }
+ \endinput
+}{}
+% \end{macrocode}
+%
+% \iffalse
+%</package&tudscr>
+% \fi
+%
+% \subsection{Das \TUDScript-Logo}
+% Der Schriftzug von \TUDScript.
+% \begin{macro}{\TUDScript}
+% \begin{macrocode}
+\@ifundefined{TUDScript}{%
+ \DeclareRobustCommand{\TUDScript}{%
+ \ifdin{TUD-KOMA-SCRIPT}{%
+ \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript%
+ }\csname xspace\endcsname%
+ }%
+}{}
+% \end{macrocode}
+% \end{macro}^^A \TUDScript
+%
+% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr.ins b/Master/texmf-dist/source/latex/tudscr/tudscr.ins
new file mode 100644
index 00000000000..c821e9aafce
--- /dev/null
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr.ins
@@ -0,0 +1,192 @@
+\input docstrip.tex
+\begingroup
+\catcode`\%=12 \catcode`\*=14
+\gdef\processLineX%#1{*
+ \ifcase\ifx%#10\else
+ \ifx<#11\else
+ \ifx!#12\else 3\fi\fi\fi\relax
+ \expandafter\putMetaComment\or
+ \expandafter\checkOption\or
+ \expandafter\expandVariable\or
+ \expandafter\removeComment\fi
+ #1}
+\endgroup
+\def\expandVariable!#1\endLine{%
+ \advance\codeLinesPassed\@ne
+ \maybeMsg{x}%
+ \edef\inLine{\csname #1\endcsname}%
+ \let\do\putline@do
+ \activefiles
+}
+\@@input tudscr-version.dtx
+
+\keepsilent
+
+\preamble
+
+============================================================================
+
+ TUD-KOMA-Script
+ Copyright (c) Falk Hanisch <tudscr[at]gmail.com>, 2012-2014
+
+============================================================================
+
+ 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,
+ Version 1.3c, verteilt und/oder veraendert werden. Die neuste Version
+ dieser Lizenz ist http://www.latex-project.org/lppl.txt und Version 1.3c
+ 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.
+
+============================================================================
+
+\endpreamble
+
+\askforoverwritefalse
+
+\usedir{tex/latex/tudscr}
+\generate{%
+ \usepreamble\defaultpreamble%
+ \file{tudscrbase.sty}{%
+ \from{tudscr-version.dtx}{package}%
+ \from{tudscr-base.dtx}{package}%
+ }
+ \file{tudscrbook.cls}{%
+ \from{tudscr-version.dtx}{class,book}%
+ \from{tudscr-base.dtx}{load}%
+ \from{tudscr-fonts.dtx}{class,option}%
+ \from{tudscr-pagestyle.dtx}{class,book,option}%
+ \from{tudscr-layout.dtx}{class,book,option}%
+ \from{tudscr-frontmatter.dtx}{class,book,option}%
+ \from{tudscr-title.dtx}{class,book,option}%
+ \from{tudscr-misc.dtx}{class,book,option}%
+ \from{tudscr-comp.dtx}{class,book,option}%
+ \from{tudscr-base.dtx}{execute}%
+ \from{tudscr-fonts.dtx}{class,body}%
+ \from{tudscr-color.dtx}{class,body}%
+ \from{tudscr-fields.dtx}{class,body}%
+ \from{tudscr-locale.dtx}{class,book,body}%
+ \from{tudscr-pagestyle.dtx}{class,book,body}%
+ \from{tudscr-layout.dtx}{class,book,body}%
+ \from{tudscr-frontmatter.dtx}{class,book,body}%
+ \from{tudscr-title.dtx}{class,book,body}%
+ \from{tudscr-misc.dtx}{class,book,body}%
+ \from{tudscr-comp.dtx}{class,book,body}%
+ }
+ \file{tudscrreprt.cls}{%
+ \from{tudscr-version.dtx}{class,report}%
+ \from{tudscr-base.dtx}{load}%
+ \from{tudscr-fonts.dtx}{class,option}%
+ \from{tudscr-pagestyle.dtx}{class,report,option}%
+ \from{tudscr-layout.dtx}{class,report,option}%
+ \from{tudscr-frontmatter.dtx}{class,report,option}%
+ \from{tudscr-title.dtx}{class,report,option}%
+ \from{tudscr-misc.dtx}{class,report,option}%
+ \from{tudscr-comp.dtx}{class,report,option}%
+ \from{tudscr-base.dtx}{execute}%
+ \from{tudscr-fonts.dtx}{class,body}%
+ \from{tudscr-color.dtx}{class,body}%
+ \from{tudscr-fields.dtx}{class,body}%
+ \from{tudscr-locale.dtx}{class,report,body}%
+ \from{tudscr-pagestyle.dtx}{class,report,body}%
+ \from{tudscr-layout.dtx}{class,report,body}%
+ \from{tudscr-frontmatter.dtx}{class,report,body}%
+ \from{tudscr-title.dtx}{class,report,body}%
+ \from{tudscr-misc.dtx}{class,report,body}%
+ \from{tudscr-comp.dtx}{class,report,body}%
+ }
+ \file{tudscrartcl.cls}{%
+ \from{tudscr-version.dtx}{class,article}%
+ \from{tudscr-base.dtx}{load}%
+ \from{tudscr-fonts.dtx}{class,option}%
+ \from{tudscr-pagestyle.dtx}{class,article,option}%
+ \from{tudscr-layout.dtx}{class,article,option}%
+ \from{tudscr-frontmatter.dtx}{class,article,option}%
+ \from{tudscr-title.dtx}{class,article,option}%
+ \from{tudscr-misc.dtx}{class,article,option}%
+ \from{tudscr-comp.dtx}{class,article,option}%
+ \from{tudscr-base.dtx}{execute}%
+ \from{tudscr-fonts.dtx}{class,body}%
+ \from{tudscr-color.dtx}{class,body}%
+ \from{tudscr-fields.dtx}{class,body}%
+ \from{tudscr-locale.dtx}{class,article,body}%
+ \from{tudscr-pagestyle.dtx}{class,article,body}%
+ \from{tudscr-layout.dtx}{class,article,body}%
+ \from{tudscr-frontmatter.dtx}{class,article,body}%
+ \from{tudscr-title.dtx}{class,article,body}%
+ \from{tudscr-misc.dtx}{class,article,body}%
+ \from{tudscr-comp.dtx}{class,article,body}%
+ }
+}
+\generate{%
+ \usepreamble\defaultpreamble%
+ \file{tudscrsupervisor.sty}{%
+ \from{tudscr-version.dtx}{package,supervisor,tudscr}%
+ \from{tudscr-supervisor.dtx}{package}%
+ \from{tudscr-fields.dtx}{package,supervisor}%
+ \from{tudscr-locale.dtx}{package,supervisor}%
+ }
+ \file{tudscrcomp.sty}{%
+ \from{tudscr-version.dtx}{package,comp,tudscr}%
+ \from{tudscr-comp.dtx}{package}%
+ }
+ \file{tudscrcolor.sty}{%
+ \from{tudscr-version.dtx}{package}%
+ \from{tudscr-color.dtx}{package}%
+ }
+ \file{twocolfix.sty}{%
+ \from{tudscr-twocolfix.dtx}{package}%
+ }
+ \file{mathswap.sty}{%
+ \from{tudscr-mathswap.dtx}{package}%
+ }
+ \file{tudscrfonts.sty}{%
+ \from{tudscr-version.dtx}{package}%
+ \from{tudscr-fonts.dtx}{package,identify}%
+ \from{tudscr-base.dtx}{load}%
+ \from{tudscr-fonts.dtx}{package,option}%
+ \from{tudscr-fonts.dtx}{package,body}%
+ }
+}
+\generate{%
+ \usepreamble\defaultpreamble%
+ \file{tudscrdoc.cls}{%
+ \from{tudscr-version.dtx}{class,doc}%
+ \from{tudscr-doc.dtx}{class,doc}%
+ \from{tudscr-misc.dtx}{class,doc}%
+ }
+}
+\generate{%
+ \usepreamble\defaultpreamble%
+ \file{tudscrman.sty}{%
+ \from{tudscr-version.dtx}{package,manual,tudscr}%
+ \from{tudscr-manual.dtx}{package,identify}%
+ \from{tudscr-base.dtx}{load}%
+ \from{tudscr-manual.dtx}{package,option}%
+ \from{tudscr-base.dtx}{}%
+ \from{tudscr-manual.dtx}{package,body}%
+ \from{tudscr-misc.dtx}{package,manual}%
+ }
+ \usepreamble\defaultpreamble%
+ \file{tudscrman.cls}{%
+ \from{tudscr-version.dtx}{class,inherit}%
+ \from{tudscr-manual.dtx}{class,identify}%
+ \from{tudscr-base.dtx}{load}%
+ \from{tudscr-manual.dtx}{class,option}%
+ \from{tudscr-base.dtx}{execute,inherit}%
+ \from{tudscr-manual.dtx}{class,body}%
+ \from{tudscr-misc.dtx}{class,manual}%
+ }
+}
+\endbatchfile