% \CheckSum{324}
% \iffalse meta-comment
%
%  TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
%  Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2020
%
% ----------------------------------------------------------------------------
%
%  This work may be distributed and/or modified under the conditions of the
%  LaTeX Project Public License, version 1.3c of the license. The latest
%  version of this license is in http://www.latex-project.org/lppl.txt and
%  version 1.3c or later is part of all distributions of LaTeX 2005/12/01
%  or later and of this work. This work has the LPPL maintenance status
%  "author-maintained". The current maintainer and author of this work
%  is Falk Hanisch.
%
% ----------------------------------------------------------------------------
%
%  Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz
%  in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle
%  Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
%  Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
%  oder später und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status
%  "author-maintained", wird somit allein durch den Autor verwaltet. Der
%  aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch.
%
% ----------------------------------------------------------------------------
%
% \fi
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \iffalse
%%% From File: tudscr-misc.dtx
%<*dtx>
% \fi
%
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-misc.dtx}[2020/09/29 v2.06j TUD-Script\space%
  (miscellaneous)%
]
%
% \iffalse
\documentclass[english,ngerman,xindy]{tudscrdoc}
\iftutex
  \usepackage{fontspec}
\else
  \usepackage[T1]{fontenc}
  \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
\fi
\usepackage{babel}
\usepackage{tudscrfonts}
\KOMAoptions{parskip=half-}
\usepackage{bookmark}
\usepackage[babel]{microtype}

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

\begin{document}
  \maketitle
  \tableofcontents
  \DocInput{\filename}
\end{document}
%</dtx>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
%
% \section{Verschiedenes für das \TUDScript-Bundle}
%
% Alles, wofür sich eine separate Datei nicht lohnt, landet hier.
%
% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
%<*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@key{tudbookmarks}[true]{%
  \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@bookmarks
% \end{option}^^A tudbookmarks
%
% \iffalse
%</class&option>
%<*class&body>
% \fi
%
% \begin{macro}{\tudbookmark}
% \begin{macro}{\tud@x@hyperref@realfootnotes}
% Die Befehle zum Eintragen der Sprungmarken. Im Dokument kann \cs{tudbookmark}
% auch vom Anwender genutzt werden, um weitere Lesezeichen abhängig von der
% Option \opt{tudbookmarks} manuell zu erzeugen.
%
% Für die Titelseite werden~-- wie auch durch das Paket \pkg{hyperref}~-- die 
% Fußnoten mit dem Befehl \cs{tud@x@hyperref@realfootnotes} auf den originalen 
% Zustand zurückgesetzt.
%    \begin{macrocode}
\newcommand*\tudbookmark[1][]{\@gobbletwo}
\newcommand*\tud@x@hyperref@realfootnotes{}
\AfterPackage{hyperref}{%
  \renewcommand*\tudbookmark[3][]{%
    \relax%
    \if@tud@bookmarks%
      \phantomsection%
      \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}%
    \fi%
  }%
  \renewcommand*\tud@x@hyperref@realfootnotes{%
    \let\Hy@saved@footnotemark\@footnotemark%
    \let\Hy@saved@footnotetext\@footnotetext%
    \let\@footnotemark\H@@footnotemark%
    \let\@footnotetext\H@@footnotetext%
  }%
  \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@x@hyperref@realfootnotes
% \end{macro}^^A \tudbookmark
% \begin{macro}{\tud@x@bookmark@startatroot}
% \changes{v2.05}{2015/08/05}{neu}^^A
% Wird das Paket \pkg{bookmark} geladen, können die erzeugten Outlines gezielt 
% auf der obersten Ebene erzeugt werden.
%    \begin{macrocode}
\newcommand*\tud@x@bookmark@startatroot{\relax}
\AfterPackage{bookmark}{%
  \renewcommand*\tud@x@bookmark@startatroot{%
    \if@tud@bookmarks\bookmarksetup{startatroot}\fi%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@x@bookmark@startatroot
% \begin{environment}{titlepage}
% \changes{v2.05}{2015/08/05}{neu}^^A
% \begin{macro}{\@maketitle}
% \changes{v2.05}{2015/08/05}{neu}^^A
% \begin{macro}{\tud@maketitle@inpage}
% \changes{v2.05}{2015/08/05}{neu}^^A
% Ist die Option \opt{tudbookmarks} aktiviert, werden für Umschlag- und 
% Titelseite PDF"=Lesezeichen bzw. Outline-Einträge erzeugt.
%    \begin{macrocode}
%<*book|report|article>
\apptocmd{\titlepage}{%
  \tud@x@bookmark@startatroot%
  \@tud@res@swafalse%
  \if@tud@coverpage\@tud@res@swatrue\fi%
  \if@titlepageiscoverpage\@tud@res@swatrue\fi%
  \if@tud@res@swa%
    \tudbookmark[%
%<book|report>    0%
%<article>    1%
    ]{\coverpagename}{cover}%
  \else%
    \tudbookmark[%
%<book|report>    0%
%<article>    1%
    ]{\titlepagename}{title}%
  \fi%
}{}{\tud@patch@wrn{titlepage}}
%</book|report|article>
%    \end{macrocode}
% Dies geschieht außerdem auch für die Titelköpfe.
%    \begin{macrocode}
\pretocmd{\tud@maketitle@inpage}{%
  \tud@x@bookmark@startatroot%
  \tudbookmark[%
%<book|report>  0%
%<article|poster>  1%
  ]{\titlename}{title}%
}{}{\tud@patch@wrn{tud@maketitle@inpage}}
\pretocmd{\@maketitle}{%
  \tud@x@bookmark@startatroot%
  \tudbookmark[%
%<book|report>  0%
%<article|poster>  1%
  ]{\titlename}{title}%
}{}{\tud@patch@wrn{@maketitle}}
%    \end{macrocode}
% \end{macro}^^A \tud@maketitle@inpage
% \end{macro}^^A \@maketitle
% \end{environment}^^A titlepage
% \begin{macro}{\tableofcontents}
% \begin{macro}{\listoffigures}
% \begin{macro}{\listoftables}
% Für die Verzeichnisse geschieht dies auch. Für das Inhaltsverzeichnis ist 
% hierfür etwas mehr Aufwand notwendig. Für dieses wird im Normalfall keine 
% PDF-Outline erzeugt. Deshalb ist hier ein wenig Trickserei notwendig, um zwar 
% einen Outline-Eintrag für das Inhaltsverzeichnis zu erzeugen, dieses dabei
% aber nicht in sich selbst einzutragen.
%    \begin{macrocode}
\BeforeTOCHead[toc]{%
  \tud@x@bookmark@startatroot%
  \let\@tempc\relax%
  \Iftocfeature{toc}{totoc}{}{%
    \if@tud@bookmarks%
      \setuptoc{toc}{totoc}%
      \tud@cs@store{addtocontents}%
      \def\@tempc{%
        \unsettoc{toc}{totoc}%
        \tud@cs@restore{addtocontents}%
      }%
      \let\addtocontents\@gobbletwo%
    \fi%
  }%
}
\AfterTOCHead[toc]{\@tempc}
\BeforeTOCHead[lof]{\tud@x@bookmark@startatroot}
\BeforeTOCHead[lot]{\tud@x@bookmark@startatroot}
%    \end{macrocode}
% \end{macro}^^A \listoftables
% \end{macro}^^A \listoffigures
% \end{macro}^^A \tableofcontents
%
% \iffalse
%</class&body>
%<*class&option>
% \fi
%
% \subsection{Fußnoten in Überschriften}
%
% Eigentlich sollte die Option \opt{footnotes}|=|\val{symbolheadings} es 
% ermöglichen, Fußnoten mit Symbolen in Überschriften zu verwenden. Umgesetzt 
% werden sollte dies mit dem Paket \pkg{footmisc}. Da dieses aber mit 
% Inkompatibilitäten zu \pkg{hyperref} und \KOMAScript{} aufwartet, wird darauf 
% leider verzichtet.
%^^A% \begin{option}{footnotes}
%^^A% \changes{v2.02}{2014/06/27}{neu}^^A
%^^A% \begin{macro}{\if@tud@symbolheadings}
%^^A% \changes{v2.02}{2014/06/27}{neu}^^A
%^^A% \begin{macro}{\tud@sec@note}
%^^A% \changes{v2.02}{2014/06/27}{neu}^^A
%^^A% \begin{counter}{symbolheadings}
%^^A% \changes{v2.02}{2014/06/27}{neu}^^A
%^^A% Die \KOMAScript-Option \opt{footnotes} wird um den Schlüssel 
%^^A% \val{symbolheadings} erweitert, mit welchem eingestellt werden kann, ob 
%^^A% in den Überschriften Symbole für die Fußnoten anstelle von Zahlen 
%^^A% verwendet werden sollen.
%^^A%    \begin{macrocode}
%^^A\newif\if@tud@symbolheadings
%^^A\TUD@key{footnotes}{%
%^^A  \TUD@set@numkey{footnotes}{@tempa}{%
%^^A    {nosymbolheadings}{0},{numberheadings}{0},%
%^^A    {symbolheadings}{1}%
%^^A  }{#1}%
%^^A  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
%^^A    \ifcase\@tempa\relax% nosymbolheadings
%^^A      \@tud@symbolheadingsfalse%
%^^A    \or% symbolheadings
%^^A      \@tud@symbolheadingstrue%
%^^A    \fi%
%^^A  \fi%
%^^A}
%^^A%    \end{macrocode}
%^^A% Mit \cs{tud@sec@note} wird die Option \opt{footnotes=symbolheadings} 
%^^A% umgesetzt. Hierfür wird das Paket \pkg{footmisc} benötigt.
%^^A%    \begin{macrocode}
%^^A\newcommand*\tud@sec@note[1]{%
%^^A  \ClassWarning{\TUD@Class@Name}{%
%^^A    You have to load package `footmisc' with\MessageBreak%
%^^A    option `stable' in order to use\MessageBreak%
%^^A    footnotes with symbols in headings%
%^^A  }%
%^^A}
%^^A\AfterPackage{footmisc}{%
%^^A  \@ifpackagewith{footmisc}{stable}{%
%^^A    \renewcommand*\tud@sec@note[1]{%
%^^A      \begingroup%
%^^A        \if@tud@symbolheadings%
%^^A          \let\c@footnote\c@symbolheadings%
%^^A          \def\thefootnote{\fnsymbol{symbolheadings}}%
%^^A        \fi%
%^^A        \footnote{#1}%
%^^A      \endgroup%
%^^A    }%
%^^A  }{}%
%^^A}
%^^A%    \end{macrocode}
%^^A% Bei aktivierter Option \opt{footnotes}|=|\val{symbolheadings} wird  
%^^A% dieser Zähler für die Symboleauswahl von Fußnoten in Überschirften 
%^^A% inkrementiert.
%^^A%    \begin{macrocode}
%^^A\AtEndOfClass{%
%^^A%<book|report>  \newcounter{symbolheadings}[chapter]
%^^A%<article|poster>  \newcounter{symbolheadings}
%^^A}
%^^A%    \end{macrocode}
%^^A% \end{counter}^^A symbolheadings
%^^A% \end{macro}^^A \tud@sec@note
%^^A% \end{macro}^^A \if@tud@symbolheadings
%^^A% \end{option}^^A footnotes
%
% \subsection{Papierformat und Schriftgröße}
%
% Insbesondere für Poster aber auch für alle anderen \TUDScript-Klassen wird
% überprüft, ob nach einer Änderung des Standardpapierformates auch die
% Schriftgröße durch den Anwender angepasst wurde. Diese wird jedoch nicht auf
% Plausibilität geprüft, da der Aufwand hierfür relativ hoch wäre. Vielmehr 
% wird davon ausgegangen, dass die explizite Angabe der Schriftgröße bewusst 
% und dem Papierformat sowie den verwendeten Textspalten entsprechend erfolgt.
%
% \begin{macro}{\tud@x@scr@checkoptions}
% \changes{v2.06}{2018/07/31}{neu}^^A
% \begin{macro}{\tud@x@scr@pt}
% \changes{v2.06}{2018/07/31}{neu}^^A
% Das Makro \cs{tud@x@scr@checkoptions} wird mit \cs{DeclareOption*} für alle 
% Optionen aufgerufen, welche kein Mitglied der Familie~\val{TUD} sind. Damit 
% kann auf nicht definierte Schlüssel reagiert werden. Anschließend werden diese
% an die zugrundeliegende \KOMAScript-Klasse weitergereicht.
%    \begin{macrocode}
\newcommand*\tud@x@scr@checkoptions{%
  \expandafter\tud@x@scr@pt\CurrentOption pt\@nil%
  \PassOptionsToClass{\CurrentOption}{\TUD@Class@KOMA}%
}
%    \end{macrocode}
% Wird die Schriftgröße im veralteten Format \val{\dots pt} übergeben, so wird 
% der Schalter \cs{if@tud@x@scr@fontsize@set} auf \val{true} gesetzt.
%    \begin{macrocode}
\newcommand*\tud@x@scr@pt{}
\def\tud@x@scr@pt #1pt#2\@nil{%
  \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@x@scr@pt
% \end{macro}^^A \tud@x@scr@checkoptions
%
% \iffalse
%</class&option>
%<*class&body>
% \fi
%
% Wurde das Papierformat jedoch nicht die Schriftgröße geändert, wird eine
% Warnung erzeugt.
%    \begin{macrocode}
\AtBeginDocument{%
  \if@tud@x@scr@fontsize@set\else%
    \@tud@res@swafalse%
    \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi%
    \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi%
    \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi%
    \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi%
    \if@tud@res@swa%
      \ClassWarningNoLine{\TUD@Class@Name}{%
        You've set a layout size, which is different from\MessageBreak%
        default (paper=a4, paper=portrait). Therefore you\MessageBreak%
        should additionally specify an explicit font size. \MessageBreak%
        See the manual for further information%
      }%
    \fi%
  \fi%
}
%    \end{macrocode}
%
% \iffalse
%</class&body>
%<*class&!inherit|package&fonts>
%<*option>
% \fi
%
% \subsection{Sukkzessives Abarbeiten von Optionen im Dokument}
%
% Werden mit \cs{TUDoptions} nach \cs{begin\{document\}} mehrere Layoutoptionen 
% gleichzeitig angegeben, muss dafür Sorge getragen werden, dass diese in der 
% korrekten Reihenfolge abgearbeitet werden. 
%
% Das Makro \cs{TUD@SpecialOptionAtDocument} kann innerhalb von \cs{TUD@key} 
% verwendet werden, um einen im obligatorischen Argument angegebenen Schalter 
% zu aktivieren. Dabei wird über \cs{tud@atdocument@hook} garantiert, dass der 
% Befehl \cs{tud@atdocument@process}, welcher für die Abarbeitung der einzelnen 
% Makros in der richtigen Reihenfolge verantwortlich ist, lediglich einmal über 
% \cs{AtEndOfFamilyOptions*} ausgeführt wird.
%
% \begin{macro}{\TUD@SpecialOptionAtDocument}
% \changes{v2.05}{2016/06/14}{neu}^^A
% \begin{macro}{\tud@atdocument@hook}
% \changes{v2.05}{2016/06/14}{neu}^^A
%    \begin{macrocode}
\newcommand*\tud@atdocument@hook{}
\let\tud@atdocument@hook\relax
\newcommand*\TUD@SpecialOptionAtDocument[1]{}
\AfterEndPreamble{%
  \renewcommand*\TUD@SpecialOptionAtDocument[1]{%
    \ifx\tud@atdocument@hook\relax%
      \gdef\tud@atdocument@hook{\global\let\tud@atdocument@hook\relax}%
      \AtEndOfFamilyOptions*{%
        \tud@atdocument@hook%
        \tud@atdocument@process%
      }%
    \fi%
    \gappto\tud@atdocument@hook{\global\booltrue{@#1}}%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@atdocument@hook
% \end{macro}^^A \TUD@SpecialOptionAtDocument
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \begin{macro}{\tud@atdocument@process}
% \changes{v2.05}{2016/06/14}{neu}^^A
% \begin{macro}{\if@tud@font@set}
% \changes{v2.05}{2016/06/14}{neu}^^A
% \begin{macro}{\if@tud@math@set}
% \changes{v2.05}{2016/06/14}{neu}^^A
% \begin{macro}{\if@tud@font@skip@set}
% \changes{v2.05}{2016/06/14}{neu}^^A
% \begin{macro}{\if@tud@x@scr@headings@reset}
% \changes{v2.05}{2016/06/14}{neu}^^A
% \begin{macro}{\if@tud@cd@process}
% \changes{v2.05}{2016/06/14}{neu}^^A
% \begin{macro}{\if@tud@cdgeometry@process}
% \changes{v2.05}{2016/06/14}{neu}^^A
% Das Makro \cs{tud@atdocument@process} wird im Dokument ausgeführt, wenn 
% mindestens eine Option gesetzt wurde, welche \cs{TUD@SpecialOptionAtDocument} 
% verwendet. Je nachdem, welche Schalter insgesamt aktiviert wurden, werden die 
% dazugehörigen Befehle für die Einstellungen von Schriften, Layout und/oder 
% Satzspiegel in der richtigen Reihenfolge ausgeführt.
%    \begin{macrocode}
\newif\if@tud@font@set
\newif\if@tud@math@set
\newif\if@tud@font@skip@set
%<*class>
\newif\if@tud@x@scr@headings@reset
\newif\if@tud@cd@process
\newif\if@tud@cdgeometry@process
%</class>
\newcommand*\tud@atdocument@process{%
  \if@tud@font@set%
    \tud@font@set%
    \global\@tud@font@setfalse%
    \global\@tud@font@skip@setfalse%
%<class>    \global\@tud@cd@processfalse%
  \fi%
  \if@tud@font@skip@set%
    \tud@font@skip@set%
    \global\@tud@font@skip@setfalse%
  \fi%
  \if@tud@math@set%
    \tud@math@set%
    \global\@tud@math@setfalse%
  \fi%
%<*class>
  \if@tud@x@scr@headings@reset%
    \tud@x@scr@headings@reset%
    \global\@tud@x@scr@headings@resetfalse%
    \global\@tud@cd@processfalse%
  \fi%
  \if@tud@cd@process%
    \tud@cd@process%
    \global\@tud@cd@processfalse%
  \fi%
  \if@tud@cdgeometry@process%
    \tud@cdgeometry@process%
    \global\@tud@cdgeometry@processfalse%
  \fi%
%</class>
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@cdgeometry@process
% \end{macro}^^A \if@tud@cd@process
% \end{macro}^^A \if@tud@x@scr@headings@reset
% \end{macro}^^A \if@tud@font@skip@set
% \end{macro}^^A \if@tud@math@set
% \end{macro}^^A \if@tud@font@set
% \end{macro}^^A \tud@atdocument@process
%
% \iffalse
%</body>
%</class&!inherit|package&fonts>
%<*execute>
%<*class&!inherit|package&fonts>
% \fi
%
% \subsection{Versionsabhängige Voreinstellungen}
%
% Voreinstellungen von neu eingeführten Optionen, welche die resultierende 
% Ausgabe entscheidend verändern könnten, werden hier versionsabhängig gesetzt.
% Hierfür wird der Schlüssel \opt{tudscrver} des Mitglieds \val{.comp} vor 
% allen anderen Schlüsseln ausgewertet. Danach kann mit \cs{tud@if@v@lower} auf 
% die gewählte Kompatibilitäsversion getestet werden.
%    \begin{macrocode}
\DeclareOption*{}
\FamilyProcessOptions[.comp]{TUD}\relax
%    \end{macrocode}
% Ab der \TUDScript-Version~v2.05 werden einige vertikale Abstände abhängig von 
% der Schriftgröße definiert. Sollte eine frühere Kompatibilitätseinstellung 
% angegeben worden sein, wird dieses verhalten deaktiviert.
%    \begin{macrocode}
\tud@if@v@lower{2.05}{%
  \TUD@key@preset{relspacing}{false}%
}{%
  \TUD@key@preset{relspacing}{true}%
}
%    \end{macrocode}
% Ab \TUDScript-Version~v2.06 werden die verwendeten Schriften auf \OpenSans 
% gesetzt, für die Komptibilität zu vorherigen Versionen auf \Univers und \DIN.
%    \begin{macrocode}
\tud@if@v@lower{2.06}{%
%<!(class&poster)>  \TUD@key@preset{cdoldfont}{true}%
%<class&poster>  \TUD@key@preset{cdoldfont}{ultrabold}%
  \TUD@key@preset{ttfont}{lmodern}%
%<class>  \TUD@key@preset{headings}{light}%
}{%
%<!(class&poster)>  \TUD@key@preset{cdfont}{true}%
%<class&poster>  \TUD@key@preset{cdfont}{ultrabold}%
  \TUD@key@preset{ttfont}{roboto}%
%<class>  \TUD@key@preset{headings}{heavy}%
}
%    \end{macrocode}
%
% \iffalse
%</class&!inherit|package&fonts>
% \fi
%
% \subsection{Durchreichen von Optionen und Standardoptionen}
%
% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse bzw. an die
% genutzte \TUDScript-Elternklasse. Für Klassen wird vor dem Durchreichen noch 
% geprüft, ob ein spezielles Papierformat angegeben wurde.
%    \begin{macrocode}
%<*package>
%<*fonts>
\DeclareOption*{\KOMAoptions{\CurrentOption}}
%</fonts>
%<*fixfonts>
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tudscrfonts}}
%</fixfonts>
%<*comp>
\DeclareOption*{\TUDoptions{\CurrentOption}}
%</comp>
%</package>
%<*class>
%<*!inherit>
\DeclareOption*{\tud@x@scr@checkoptions}
%</!inherit>
%<*inherit>
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUD@Class@Parent}}
%</inherit>
%</class>
%    \end{macrocode}
% Es werden die Standardoptionen ausgeführt. Für die Klasse \cls{tudscrposter} 
% werden die Farben aktiviert.
%    \begin{macrocode}
%<*package&tutorial>
\KOMAoptions{headings=small}
\TUDoptions{cdfoot=true}
%</package&tutorial>
\TUDExecuteOptions{%
%<*package>
%<*fixfonts>
  headings=heavy%
%</fixfonts>
%<*tutorial>
  ToDo=true%
%</tutorial>
%</package>
%<*class&!inherit>
%<*book|report|article>
  cd=true,tudbookmarks=true%
%</book|report|article>
%<*poster>
  cd=bicolor,tudbookmarks=false%
%</poster>
%</class&!inherit>
}
\TUDProcessOptions\relax
%    \end{macrocode}
% Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird 
% geladen.
%    \begin{macrocode}
%<*class&!inherit>
\LoadClass{\TUD@Class@KOMA}[2020/09/21]
%</class&!inherit>
%<*class&inherit>
%<manual>\PassOptionsToClass{ttfont=roboto}{\TUD@Class@Parent}
\LoadClass{\TUD@Class@Parent}
%</class&inherit>
%    \end{macrocode}
%
% \iffalse
%<*class&!inherit|package&fonts>
% \fi
%
% \subsection{Optionen ohne späte Wahlmöglichkeit}
%
% Einige Optionen können nur zum Zeitpunkt des Ladens einer Klasse oder eines 
% Paketes respektive in der Präambel gesetzt werden. Diese müssen \emph{nach}
% \cs{TUDProcessOptions} mit \cs{TUD@key@toolate} redefiniert werden.
%
% \begin{macro}{\TUD@key@toolate}
% \changes{v2.06c}{2019/08/20}{neu}^^A
% Dieser Befehl definiert eine Fehlermeldung für Schlüssel respektive Optionen, 
% die zu spät verwendet wurden, wobei er innerhalb der Makros \cs{AtEndOfClass},
% \cs{AtEndOfClass}, \cs{AtEndPreamble} etc. genutzt werden sollte. Wird dieser 
% noch im Kontext von Klasse oder Paket (\verb=\@currname.\@currext-h@@k=)
% verwendet, wird gemeldet, dass der Schlüssel allein beim Laden der Klasse 
% respektive des Paketes genutzt werden darf. Andernfalls wird die zwingende
% Verwendung in der Präambel angemerkt.
%    \begin{macrocode}
\newcommand*\TUD@key@toolate[1]{%
  \csedef{tud@key@#1@error}{%
%<*class>
    \noexpand\ClassError{\noexpand\TUD@Class@Name}%
%</class>
%<*package&fonts>
    \noexpand\PackageError{tudscrfonts}%
%</package&fonts>
    {Option `#1' too late}{%
      Option `#1' can only be set\space%
      \ifcsname \@currname.\@currext-h@@k\endcsname%
        as optional \MessageBreak argument while loading\space%
%<*class>
        class `\noexpand\TUD@Class@Name'%
%</class>
%<*package&fonts>
        package `tudscrfonts'%
%</package&fonts>
      \else%
        in the preamble
      \fi%
      \MessageBreak but you have tried to set it up later.%
    }%
  }%
  \TUD@key{#1}[]%
  {%
    \csuse{tud@key@#1@error}
    \FamilyKeyStateProcessed%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \TUD@key@toolate
%
%
% \iffalse
%</class&!inherit|package&fonts>
%</execute>
%<*body>
% \fi
%
% \subsection{Anpassungen für das Paket \pkg{textcase}}
%
% \begin{macro}{\@uclcnotmath}
% \begin{macro}{\tud@x@textcase@uclcnotmath}
% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im 
%   Argument des Befehls \cs{MakeTextUppercase}}^^A
% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls 
%   \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A
% Damit Fußnoten innerhalb von \cs{MakeTextUppercase} nicht in Majuskeln
% gesetzt werden, wird der interne Befehl \cs{@uclcnotmath} aus dem Paket
% \pkg{textcase} angepasst.
%    \begin{macrocode}
\if@tud@cdoldfont@active
  \RequirePackage{textcase}[2004/10/07]
  \AfterPackage*{textcase}{%
    \robustify\NoCaseChange%
    \newcommand*\tud@x@textcase@uclcnotmath{%
      \@nonchangecase\hologo%
      \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}%
      \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}%
      \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}%
    }%
    \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{%
      \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath%
    }{}{\tud@patch@wrn{@uclcnotmath}}%
  }%
\fi
\TUD@deprecated@cs{NoCaseChange}{@firstofone}
%    \end{macrocode}
% \end{macro}^^A \tud@x@textcase@uclcnotmath
% \end{macro}^^A \@uclcnotmath
%
% \iffalse
%</body>
% \fi
%
% \Finale
%
\endinput
