% \iffalse meta-comment
%/GitFileInfo=tudscr-layout.dtx
%
%  TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
%  Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2022
%
% ----------------------------------------------------------------------------
%
%  This work may be distributed and/or modified under the conditions of the
%  LaTeX Project Public License, either version 1.3c of this license or
%  any later version. 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 2008-05-04 or later.
%
%  This work has the LPPL maintenance status "maintained".
%
%  The current maintainer and author of this work is Falk Hanisch.
%
% ----------------------------------------------------------------------------
%
% \fi
%
% \iffalse ins:batch + dtx:driver
%<*ins>
\ifx\documentclass\undefined
  \input docstrip.tex
  \ifToplevel{\batchinput{tudscr.ins}}
\else
  \let\endbatchfile\relax
\fi
\endbatchfile
%</ins>
%<*dtx>
\ProvidesFile{tudscr-layout.dtx}[2022/08/09]
\RequirePackage{tudscr-gitinfo}
\documentclass[english,ngerman,xindy]{tudscrdoc}
\iftutex
  \usepackage{fontspec}
\else
  \usepackage[T1]{fontenc}
  \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
\fi
\usepackage{babel}
\usepackage{tudscrfonts}
\usepackage[babel]{microtype}

\GitHubBase{\TUDScriptRepository}
\begin{document}
  \author{Falk Hanisch\TUDScriptContactTitle}
  \maketitle
  \tableofcontents
  \DocInput{\filename}
\end{document}
%</dtx>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
% \changes{v2.05}{2015/07/06}{Layout für Poster}^^A
% \changes{v2.06o}{2022/08/02}{\opt{cdfont=false} und \opt{cd=true} setzt
%   Überschriften im \CD}^^A
%
%
%
% \section{Das Layout des \CDs}
%
% 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 wesentliche Ausprägungen, die für die verschiedenen
% Elemente auch unabhängig gewählt werden können.
%
% 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.
%
% \iffalse
%<*class&option>
% \fi
%
% \subsection{Gestalt von Umschlagseite, Titel, Teile und Kapitel}
%
% 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. Die folgenden Optionen sind hierfür 
% zuständig.
%
% \begin{macro}{\tud@cd@switch}
% Dies sind die Standardoptionen für alle einzelnen Einstellungen des Layouts.
% Es gibt die Varianten monochrom~(1), leichter~(2) und voller Farbeinsatz~(5)
% sowie die Möglichkeit, das \CD vollständig zu deaktivieren~(0). Außerdem kann
% die farbige Ausprägung des Querbalkens im Zusammenspiel mit dem Seitenkopf
% festgelegt werden (farbiger Querbalken~(3), farbiger Kopf~(4) und voller 
% Farbeinsatz mit hervorgehobenem Querbalken~(6)).
%    \begin{macrocode}
\newcommand*\tud@cd@switch{}
\edef\tud@cd@switch{%
  \TUD@bool@numkey,%
  {nocolor}{1},{nocolour}{1},{monochrome}{1},{monochromatic}{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},%
  {colorbar}{3},{barcolor}{3},{colourbar}{3},{barcolour}{3},%
  {bicolor}{4},{bicolour}{4},{twocolor}{4},{twocolour}{4},%
  {bichrome}{4},{bichromatic}{4},{dichrome}{4},{dichromatic}{4},%
  {color}{5},{colour}{5},%
  {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cd@switch
% \begin{option}{cd}
% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
% \begin{macro}{\tud@cd@num}
% Diese Option dient für die Hauptklassen zur globalen Einstellung für Cover-
% Titel-, Teil- und Kapitelseiten. Mit dem Schalter werden für alle Komponenten
% die gleichen Einstellungen gesetzt. Die Standardfarbe des Kopfes der Seiten 
% im \pgs{tudheadings}-Stil ist schwarz und wird für die farbigen Layouts auf
% dunkelblau gesetzt. Abhängig von der gewählten Option~-- der nummerische Wert
% ist über \cs{tud@cd@switch} festgelegt~-- werden die sog. Layoutschlüssel
% (|\tud@cd@|\meta{Typ}|@num|) auf einen Wert gesetzt (0\dots 6), welcher
% später ausgewertet werden kann. Der Schalter für Kapitel wird lediglich für
% die Klassen \cls{tudscrbook} und \cls{tudscrreprt} definiert und genutzt.
% Damit werden alle Komponenten mit einer zentralen Option festgelegt, können
% aber auch durch den Nutzer explizit überschrieben werden.
%
% Für die Klasse \cls{tudscrposter} wird mit der Option die farbige Ausprägung 
% eines Posters definiert. Dabei sind alle Werte gültig, die auch für die 
% meisten anderen Layouteinstellungen verwendet werden können. Abhängig vom 
% gewählten Wert, wird der Seitenstil, die Ausprägung der Fußzeile sowie die
% farbliche Gestalt von Kopf- und Fußzeile festgelegt. Da dabei unter anderem
% auch gegebenenfalls der Seitenstil auf einen vom Typ \pgs{tudheadings}
% festgelegt wird, erfolgt die Ausführung der Option frühestens zu Beginn des
% Dokumentes.
%    \begin{macrocode}
\newcommand*\tud@cd@num{0}
\TUD@key{cd}[true]{%
  \TUD@set@numkey{cd}{tud@cd@num}{\tud@cd@switch}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
%    \end{macrocode}
% Die Umschlagseite wird standardmäßig immer monochrom gesetzt.
%    \begin{macrocode}
%<*book|report|article>
    \ifcase\tud@cd@num\relax% false
      \TUD@key@preset{cdcover}{false}%
    \else% !false
      \TUD@key@preset{cdcover}{true}%
    \fi%
%</book|report|article>
%    \end{macrocode}
% Alle übrigen Varianten des Layouts im \CD~-- schwarze Schrift und schwarzer
% Kopf, blaue Schrift und blauer Kopf, blaue Schrift und farbiger Querbalken,
% blaue Schrift und zweifarbiger Kopf sowie farbiger Hintergrund mit weißer
% Schrift und entweder Outline oder farbigem Querbalken im Kopf~-- werden als 
% Voreinstellung an die anderen Schlüssel durgereicht.
%    \begin{macrocode}
    \TUD@key@preset{cdtitle}{#1}%
    \TUD@key@preset{cdpart}{#1}%
%<*book|report>
    \TUD@key@preset{cdchapter}{#1}%
%</book|report>
    \TUD@key@preset{cdsection}{#1}%
%    \end{macrocode}
% Die Ausführung des Befehls \cs{tud@cd@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}
    \TUD@SpecialOptionAtDocument{tud@cd@process}%
%    \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{cdgeometry}
% überschrieben werden.
%    \begin{macrocode}
    \tud@if@preamble{%
      \ifcase\tud@cd@num\relax% false
        \tud@locked@num@preset{tud@cdgeometry@num}{0}%
      \else% !false
        \tud@locked@num@preset{tud@cdgeometry@num}{2}%
      \fi%
    }{}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cd@num
% \end{option}^^A cd
% \begin{option}{cdcover}
% \changes{v2.02}{2014/08/08}{neue Option für \cs{makecover}}^^A
% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
% \begin{macro}{\tud@cd@cover@num}
% \changes{v2.02}{2014/08/08}{neu}^^A
% Das durch die Option \opt{cd} insgesamt festgelegte Layout kann für die
% einzelnen Elemente Umschlagseite (\opt{cdcover}),\dots
%    \begin{macrocode}
%<*book|report|article>
\newcommand*\tud@cd@cover@num{0}
\TUD@key{cdcover}[true]{%
  \TUD@set@numkey{cdcover}{tud@cd@cover@num}{\tud@cd@switch}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \TUD@SpecialOptionAtDocument{tud@cd@process}%
  \fi%
}
%</book|report|article>
%    \end{macrocode}
% \end{macro}^^A \tud@cd@cover@num
% \end{option}^^A cdcover
% \begin{option}{cdtitle}
% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
% \begin{macro}{\tud@cd@title@num}
% \dots Titel (\opt{cdtitle}),\dots
%    \begin{macrocode}
\newcommand*\tud@cd@title@num{0}
\TUD@key{cdtitle}[true]{%
  \TUD@set@numkey{cdtitle}{tud@cd@title@num}{\tud@cd@switch}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \TUD@SpecialOptionAtDocument{tud@cd@process}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cd@title@num
% \end{option}^^A cdtitle
% \begin{option}{cdpart}
% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
% \begin{macro}{\tud@cd@part@num}
% \dots Teile- (\opt{cdpart}) und\dots
%    \begin{macrocode}
\newcommand*\tud@cd@part@num{0}
\TUD@key{cdpart}[true]{%
  \TUD@set@numkey{cdpart}{tud@cd@part@num}{\tud@cd@switch}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \TUD@SpecialOptionAtDocument{tud@cd@process}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cd@part@num
% \end{option}^^A cdpart
% \begin{option}{cdchapter}
% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
% \begin{macro}{\tud@cd@chapter@num}
% \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>
\newcommand*\tud@cd@chapter@num{0}
\TUD@key{cdchapter}[true]{%
  \TUD@set@numkey{cdchapter}{tud@cd@chapter@num}{\tud@cd@switch}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifnum\tud@cd@chapter@num>4\relax% color/full
      \TUD@key@preset{chapterpage}{true}%
    \else%
      \TUD@key@preset{chapterpage}{false}%
    \fi%
    \TUD@SpecialOptionAtDocument{tud@cd@process}%
  \fi%
}
%</book|report>
%    \end{macrocode}
% \end{macro}^^A \tud@cd@chapter@num
% \end{option}^^A cdchapter
% \begin{option}{cdsection}
% \changes{v2.05}{2015/07/07}{neu}^^A
% \begin{macro}{\tud@cd@section@num}
% \changes{v2.05}{2015/07/07}{neu}^^A
% Zuletzt noch alle nachgelagerten Gliederungsebenen.
%    \begin{macrocode}
\newcommand*\tud@cd@section@num{0}
\TUD@key{cdsection}[true]{%
  \TUD@set@numkey{cdsection}{tud@cd@section@num}{\tud@cd@switch}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \TUD@SpecialOptionAtDocument{tud@cd@process}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cd@section@num
% \end{option}^^A cdsection
%
% \iffalse
%</class&option>
%<*book|report>
%<*class&option>
% \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}
% Der Schalter dient zur Steuerung, ob der Titel des Dokumentes wie im Handbuch
% des \CDs auf den Teileseiten stehen soll.
%    \begin{macrocode}
\tud@newif\if@tud@parttitle
\TUD@key{parttitle}[true]{%
  \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@parttitle
% \end{option}^^A parttitle
% \begin{option}{chapterpage}
% \begin{macro}{\if@tud@chapterpage}
% Mit dieser Option können Kapitelüberschriften alleine auf einer Seite stehen.
% Es werden separate Kapitelseiten erzeugt.
%    \begin{macrocode}
\tud@newif\if@tud@chapterpage
\TUD@key{chapterpage}[true]{%
  \TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@chapterpage
% \end{option}^^A chapterpage
% \begin{option}{cleardoublespecialpage}
% \changes{v2.02}{2014/07/08}{Werte für Seitenstil aus den \TUDScript- bzw.
%   \KOMAScript-Klassen möglich}^^A
% \changes{v2.03}{2015/01/09}{Prüfung des Seitenstils mit \cs{AfterEndPreamble}
%   auf Beginn des Dokumentes verzögert}^^A
% \changes{v2.06}{2018/08/21}{Farbeinstellungen integriert}^^A
% \begin{macro}{\tud@cleardoublepage}
% \begin{macro}{\if@tud@clearcolor}
% 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}|=|\val{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~-- abhängig von der \KOMAScript-Option
% \opt{cleardoublepage}~-- als Vakatseite ausgegeben werden. Außerdem ist die
% Festlegung eines bestimmten Seitenstiles möglich. Weiterhin kann eingestellt 
% werden, ob bei der Verwendung einer Hintergrundfarbe auf Titel- Teil- oder 
% Kapitelseiten im Stile des \CDs verwendet (\opt{cd\dots}|=|\val{color}) die
% entsprechende Rückseite in der gleichen Farbe wie die Vorderseite erschienen 
% soll. Dafür muss die Option \opt{cleardoublespecialpage} aktiviert sein.
%
% Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden
% Doppelseite.
%    \begin{macrocode}
\tud@newif\if@tud@clearcolor
\newcommand*\tud@cleardoublepage{\cleardoubleoddpage}
%    \end{macrocode}
% Mit der Option \opt{cleardoublespecialpage} kann dieser festgelegt werden.
%    \begin{macrocode}
\TUD@key{cleardoublespecialpage}[true]{%
  \TUD@set@numkey{cleardoublespecialpage}{@tempa}{%
    \TUD@bool@numkey,%
    {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},%
    {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},%
    {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},%
    {color}{3},{colour}{3},%
    {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3},%
    {current}{4}%
  }{#1}%
%    \end{macrocode}
% Dabei wird die Rückseite entweder wie alle Vakatseiten oder leer gesetzt.
%    \begin{macrocode}
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% false
      \renewcommand*\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}%
    \or% true
      \renewcommand*\tud@cleardoublepage{\cleardoubleoddpage}%
%    \end{macrocode}
% Zusätzlich kann die Vakatseite gegebenenfalls auch farbig ausgegeben werden, 
% was abhängig von \opt{cd=true/color/pale/bicolor/fullcolor} erfolgt.
%    \begin{macrocode}
    \or% nocolor
      \@tud@clearcolorfalse%
    \or% color
      \@tud@clearcolortrue%
%    \end{macrocode}
% Außerdem kann ein Seitenstil gezielt ausgewählt werden.
%    \begin{macrocode}
    \or% current
      \renewcommand*\tud@cleardoublepage{\cleardoubleoddstandardpage}%
    \fi%
%    \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. Deshalb wird für diesen Fall das Überprüfen mit
% \cs{AfterEndPreamble} auf den Beginn des Dokumentes verzögert.
%    \begin{macrocode}
  \else%
    \AfterEndPreamble{%
      \ifcsundef{ps@#1}{%
        \ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{%
          You tried to use `#1' as a pagestyle for option\MessageBreak%
          `cleardoublespecialpage', but it was never defined.%
        }%
      }{%
        \renewcommand*\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}%
      }%
    }%
    \FamilyKeyStateProcessed%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@clearcolor
% \end{macro}^^A \tud@cleardoublepage
% \end{option}^^A cleardoublespecialpage
%
% \iffalse
%</class&option>
%<*class&body>
% \fi
%
% \begin{macro}{\tud@cleardoublespecialpage}
% \begin{macro}{\tud@clearcolor@wrn}
% 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%
    \addtokomafont{pagenumber}{\usekomafont{tudheadings}}%
    \addtokomafont{pagefoot}{\usekomafont{tudheadings}}%
    #2%
    \ifboolexpr{bool {@twoside} and bool {@openright}}{%
      \if@tud@clearcolor%
        \def\@tempa{%
          #1%
          \tud@cleardoublepage%
          \endgroup%
        }%
      \else%
        \def\@tempa{%
          \endgroup%
          #1%
          \tud@cleardoublepage%
        }%
      \fi%
    }{%
      \if@tud@clearcolor\tud@clearcolor@wrn\fi%
      \def\@tempa{%
        \endgroup%
        #1%
      }%
    }%
  \@tempa%
  \@afterindentfalse\@afterheading%
}
%    \end{macrocode}
% Die Warnung für den Fall, dass die Option \opt{clearcolor} ohne 
% \opt{open}|=|\val{right} und \opt{twoside} verwendet wird.
%    \begin{macrocode}
\newcommand*\tud@clearcolor@wrn{%
  \ClassWarning{\TUD@Class@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
% \end{macro}^^A \tud@cleardoublespecialpage
%
% \iffalse
%</class&body>
%</book|report>
%<*class&option>
% \fi
%
% Damit endet der Abschnitt für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse.
%
% \begin{macro}{\tud@pagecolor}
% \begin{macro}{\normalcolor}
% Der Befehl \cs{tud@pagecolor} dient für die Hauptklassen als Hilfsmakro, um 
% je nach gewählter Ausprägung des Layouts die farblichen Seitenhintergründe zu 
% aktivieren. Für die Klasse \cls{tudscrposter} wird der Befehl zusätzlich für 
% das benutzerdefinierte Festlegen einer standardmäßigen Hintergrundfarbe mit
% der Option \opt{backcolor} genutzt.
%
% Für das Aktivieren der Farbe \val{HKS41} wird \cs{normalcolor} erweitert, um 
% hier in jedem Fall als Schriftfarbe \emph{weiß} zu verwenden.
%    \begin{macrocode}
\newcommand*\tud@pagecolor{}%
\AfterPackage{xcolor}{%
  \apptocmd\normalcolor{%
    \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{}%
  }{}{\tud@patch@wrn{normalcolor}}%
  \AtBeginDocument{%
    \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}%
    \normalcolor%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \normalcolor
% \end{macro}^^A \tud@pagecolor
% \begin{option}{backcolor}
% \changes{v2.05}{2016/04/15}{neu}^^A
% \begin{option}{backgroundcolor}
% \begin{option}{bgcolor}
% Mit dieser Option kann die standardmäßige Hintergrundfarbe für Poster gesetzt 
% werden.
%    \begin{macrocode}
%<*poster>
\TUD@key{backcolor}[true]{%
  \TUD@set@numkey{backcolor}{@tempa}{%
    \TUD@bool@numkey,%
    {nocolor}{0},{nocolour}{0},{none}{0},%
    {color}{1},{colour}{1},{cdcolor}{1},{cdcolour}{1}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% false
      \renewcommand*\tud@pagecolor{}%
    \else% true
      \renewcommand*\tud@pagecolor{HKS41}%
    \fi%
  \else%
    \renewcommand*\tud@pagecolor{#1}%
    \FamilyKeyStateProcessed%
  \fi%
%    \end{macrocode}
% Wird die Option innerhalb des Dokumentes verwendet, wird mit einer Box erst 
% die gewählte Farbe verifiziert und anschließend auf die am Dokumentbeginn 
% definierte Textfarbe umgestellt.
% \ToDo{angucken, was soll das genau?}[v2.07]
%    \begin{macrocode}
  \tud@if@preamble{}{%
    \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}%
    \normalcolor%
  }%
}
\TUD@key{backgroundcolor}[true]{\TUDoptions{backcolor=#1}}
\TUD@key{bgcolor}[true]{\TUDoptions{backcolor=#1}}
%</poster>
%    \end{macrocode}
% \end{option}^^A bgcolor
% \end{option}^^A backgroundcolor
% \end{option}^^A backcolor
% \begin{option}{pageheadingsvskip}
% \changes{v2.05}{2016/06/20}{neu}^^A
% \begin{macro}{\tud@pageheadingsvskip@dim}
% \changes{v2.05}{2016/06/20}{neu}^^A
% \begin{option}{headingsvskip}
% \changes{v2.05}{2016/06/20}{neu}^^A
% \begin{macro}{\tud@headingsvskip@dim}
% \changes{v2.05}{2016/06/20}{neu}^^A
% Mit diesen Optionen kann der Anwender die Überschriften von Titel, Teilen und
% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD
% eigentlich vorgegeben ist. Die Option \opt{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 der Option \opt{headingsvskip} werden die
% Überschriften von Kapiteln, bei denen direkt danach der Fließtext folgt, oder 
% die des Titelkopfes (\opt{titlepage}|=|\val{false}) verschoben.
%    \begin{macrocode}
%<*book|report|article>
\newcommand*\tud@headingsvskip@dim{0pt}
\TUD@key{headingsvskip}{%
  \TUD@set@dimkey{headingsvskip}{\tud@headingsvskip@dim}{#1}%
}
\newcommand*\tud@pageheadingsvskip@dim{\tud@headingsvskip@dim}
\TUD@key{pageheadingsvskip}{%
  \TUD@set@dimkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}%
}
%</book|report|article>
%    \end{macrocode}
% \end{macro}^^A \tud@headingsvskip@dim
% \end{option}^^A headingsvskip
% \end{macro}^^A \tud@pageheadingsvskip@dim
% \end{option}^^A pageheadingsvskip
%
% \iffalse
%</class&option>
%<*class|package&fixfonts>
%<*option>
% \fi
%
% \subsection{Schrifteinstellung und -größe der Überschriften}
%
% \begin{option}{headings}
% \changes{v2.06}{2018/08/20}{neu}^^A
% \begin{macro}{\if@tud@heavyheadings}
% \changes{v2.06}{2018/08/20}{neu}^^A
% Die Option wird dahingehend erweitert, dass die Überschriften auch im 
% extra-fetten Schnitt gesetzt werden können.
% \ToDo{%
%   Klassenoptionen paper=A4 und headings=optiontoheadandtoc durchreichen, 
%   wenn mit \cs{PassOptionsToClass} genutzt.
% }[v2.07]
%    \begin{macrocode}
\tud@newif\if@tud@heavyheadings
\TUD@key{headings}{%
  \TUD@set@numkey{headings}{@tempa}{%
    {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},%
    {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},%
    {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},%
    {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},%
    {extendedbold}{1},{boldextended}{1}%
  }{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
    \ifcase\@tempa\relax% light
      \@tud@heavyheadingsfalse%
    \or% heavy
      \@tud@heavyheadingstrue%
    \fi%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \if@tud@heavyheadings
% \end{option}^^A headings
%
% \iffalse
%</option>
%</class|package&fixfonts>
%<*class&option>
% \fi
%
% \begin{option}{headings}
% \begin{option}{open}
% \begin{option}{chapterprefix}
% Die \KOMAScript-Option \opt{headings} setzt für alle Überschriften die 
% Formatierung zurück. Um die Einstellungen für das \CD aktiv zu halten, werden 
% nach der Ausführung der Option durch \cs{tud@x@scr@headings@reset} die mit 
% \cs{tud@komafont@set} definierten Makros |\tud@komafont@|\meta{Element}
% erneut an die entsprechenden Schriftelemente angehängt. Bei der Verwendung 
% der \KOMAScript-Option \opt{headings}|=|\val{standardclasses} werden außerdem 
% noch die Optionen \opt{open} und \opt{chapterprefix} ausgeführt, weshalb auch
% auf diese reagiert werden muss.
%    \begin{macrocode}
\DefineFamilyMember{KOMA}
\DefineFamilyKey{KOMA}{headings}{%
  \FamilyKeyStateUnknownValue%
  \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
}
%<*book|report>
\DefineFamilyKey{KOMA}{open}{%
  \FamilyKeyStateUnknownValue%
  \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
}
\DefineFamilyKey{KOMA}{chapterprefix}{%
  \FamilyKeyStateUnknownValue%
  \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
}
%</book|report>
%    \end{macrocode}
% \end{option}^^A chapterprefix
% \end{option}^^A open
% \end{option}^^A headings
%
% \iffalse
%</class&option>
%<*class&body>
% \fi
%
% \begin{macro}{\tud@x@scr@headings@set}
% \changes{v2.05}{2015/11/24}{neu}^^A
% \begin{macro}{\tud@subtitle@fontsizecmd}
% \changes{v2.05}{2015/11/24}{neu}^^A
% \begin{macro}{\tud@prefix@fontsizecmd}
% \changes{v2.06o}{2022/08/02}{neu}^^A
% \begin{macro}{\tud@sec@fontsizecmd}
% \changes{v2.05}{2015/11/24}{neu}^^A
% \begin{macro}{\tud@sec@baselineskip@@dim}
% \changes{v2.06o}{2022/08/02}{neu}^^A
% \begin{macro}{\tud@sec@baselineskip@set}
% \changes{v2.06o}{2022/08/02}{neu}^^A
% Als erstes werden die Optionen verarbeitet, welche einen Einfluss auf die 
% Formatierung respektive die Schriftgröße der Überschriften haben. Wird die
% Option \opt{headings} verwendet, werden mit \cs{tud@x@scr@headings@set} die
% Schriftgrößen für Überschriften sowie Präfix und Untertitel sowohl für die
% Gliederungsebenen als auch den Titel gesetzt. Der Grundzeilenabstand in 
% Überschriften wird in \cs{tud@sec@baselineskip@@dim} abgelegt, dieser ist 
% für die Abstände innerhalb von Überschriften notwendig. 
%    \begin{macrocode}
\newcommand*\tud@subtitle@fontsizecmd{\LARGE}
\newcommand*\tud@prefix@fontsizecmd{\huge}
\newcommand*\tud@sec@fontsizecmd{\Huge}
\newcommand*\tud@sec@baselineskip@@dim{}
\newcommand*\tud@sec@baselineskip@set{%
  \begingroup%
    \tud@sec@fontsizecmd%
    \edef\tud@res@a{%
      \endgroup%
      \unexpanded{\def\tud@sec@baselineskip@@dim}{%
        \the\dimexpr\glueexpr\f@baselineskip\relax\relax%
      }%
    }%
  \tud@res@a%
}
\tud@sec@baselineskip@set
%    \end{macrocode}
% Wird \cs{tud@x@scr@headings@set} aufgerufen, so werden mit \cs{KOMAoptionOf} 
% die aktuellen Werte der Option \opt{headings} ausgelesen, welche in einer
% Liste ausgegeben werden. Diese wird durchlaufen und dabei auf die relevanten
% Werte reagiert.
%    \begin{macrocode}
\newcommand*\tud@x@scr@headings@set[1][]{%
  \def\@tempb##1##2##3{%
    \renewcommand*\tud@sec@fontsizecmd{##1}%
    \renewcommand*\tud@prefix@fontsizecmd{##2}%
    \renewcommand*\tud@subtitle@fontsizecmd{##3}%
    \tud@sec@baselineskip@set%
    #1%
  }%
  \KOMAoptionOf[\def\@tempc]{\KOMAClassFileName}{headings}%
  \@for\@tempc:=\@tempc\do{%
    \TUD@set@numkey{headings}{@tempa}{%
      {standardclasses}{0},{big}{1},{normal}{2},{small}{3}%
    }{\@tempc}%
    \ifx\FamilyKeyState\FamilyKeyStateProcessed%
      \ifcase\@tempa\relax% standardclasses
        \@tempb{\Huge} {\LARGE}{\Large}%
      \or% big
        \@tempb{\Huge} {\huge} {\LARGE}%
      \or% normal
        \@tempb{\huge} {\LARGE}{\Large}%
      \or% small
        \@tempb{\LARGE}{\Large}{\large}%
      \fi%
    \fi%
  }%
}
%    \end{macrocode}
% Damit die Einstellungen für die Größe wirksam werden, wird das Makro einmalig
% zu Beginn des Dokumentes ausgeführt.
%    \begin{macrocode}
\AfterEndPreamble{\tud@x@scr@headings@set}
%    \end{macrocode}
% \end{macro}^^A \tud@sec@baselineskip@set
% \end{macro}^^A \tud@sec@baselineskip@@dim
% \end{macro}^^A \tud@sec@fontsizecmd
% \end{macro}^^A \tud@prefix@fontsizecmd
% \end{macro}^^A \tud@subtitle@fontsizecmd
% \end{macro}^^A \tud@x@scr@headings@set
% \begin{macro}{\tud@x@scr@headings@reset}
% \changes{v2.05}{2015/11/24}{neu}^^A
% Hiermit wird nach dem Ausführen der Option \opt{headings} die Größe und 
% Formatierung der Überschriften neu gesetzt.
%    \begin{macrocode}
\newcommand*\tud@x@scr@headings@reset{%
  \tud@cd@process%
  \tud@x@scr@headings@set[%
    \ifcase\tud@cd@part@num\relax\else% !false
      \tud@komafont@reset{part}%
      \tud@komafont@reset{partnumber}%
    \fi%
%<*book|report>
    \ifcase\tud@cd@chapter@num\relax\else% !false
      \tud@komafont@reset{chapter}%
      \tud@komafont@reset{chapterprefix}%
    \fi%
%</book|report>
    \ifcase\tud@cd@section@num\relax\else% !false
      \tud@komafont@reset{section}%
      \tud@komafont@reset{subsection}%
      \tud@komafont@reset{subsubsection}%
    \fi%
  ]%
}
%    \end{macrocode}
% \end{macro}^^A \tud@x@scr@headings@reset
%
% \iffalse
%</class&body>
%<*body>
%<*class|package&fixfonts>
% \fi
%
% \subsection{Umsetzung des Layouts}
%
% \begin{macro}{\tud@sec@fontface}
% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A
% \changes{v2.06}{2018/08/20}{extra-fette Überschriften möglich}^^A
% \changes{v2.06o}{2022/08/02}{Überschrifen im \CD ohne aktive
%   Fließtextschriften möglich}^^A
% \begin{macro}{\tud@sec@@fontface}
% \begin{macro}{\tud@sec@format}
% \changes{v2.06o}{2022/08/02}{Sternversion für Leerraum ohne \cs{strut}}^^A
% \begin{macro}{\tud@sec@@format}
% \begin{macro}{\tud@sec@@@format}
% \begin{macro}{\tud@sec@uppercase}
% \begin{macro}{\if@tud@sec}
% \changes{v2.06o}{2022/08/02}{neu}^^A
% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im 
% Layout des \CDs definiert.
% \ToDo{Auf neues NFSS anpassen, \cs{fontseriesforce} überprüfen}[v2.07]
%    \begin{macrocode}
%<package&fixfonts>\AfterPackage{tudscrfonts}{%
\newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}%
\newcommand*\tud@sec@@fontface[1]{%
  \sectfont#1%
  \if@tud@cdfont@active%
    \if@tud@heavyheadings%
      \if@tud@x@mweights@enabled%
        \edef\bfseries@rm{\tud@cdfont@ebf}%
        \edef\bfseries@sf{\tud@cdfont@ebf}%
        \edef\bfseries@tt{\tud@ttfont@ebf}%
      \fi%
      \let\bfdefault\tud@cdfont@ebf%
      \fontseriesforce{\tud@cdfont@ebf}%
    \fi%
  \else%
    \fontfamily{\tud@cdfont@fam}%
    \if@tud@heavyheadings%
      \let\bfdefault\tud@cdfont@ebf%
    \else%
      \let\bfdefault\tud@cdfont@bf%
    \fi%
    \fontseriesforce{\bfdefault}%
  \fi%
  \selectfont%
}
%    \end{macrocode}
% Sind die alten Schriftfamilien aktiv, wird mit \cs{tud@sec@fontface} \DIN als
% Schriftart für Überschriften im Layout des \CDs definiert. Allerdings kann 
% dies per Option auch deaktiviert werden.
%    \begin{macrocode}
\if@tud@cdoldfont@active
  \renewcommand*\tud@sec@fontface[1][]{%
    \if@tud@cdoldfont@nodin%
      \tud@sec@@fontface{#1}%
    \else%
      \tud@db\tud@raggedright%
    \fi%
  }%
\fi
%    \end{macrocode}
% Mit \cs{tud@sec@format} erfolgt die Formatierung von Überschriften, wobei die
% \KOMAScript-Schnittstelle für Teile\footnote{\cs{partlineswithprefixformat}}, 
% Kapitel\footnote{\cs{chapterlineswithprefixformat}, \cs{chapterlinesformat}}, 
% Abschnitte\footnote{\cs{sectionlinesformat}, \cs{sectioncatchphraseformat}} 
% sowie zusätzlich einfache Layoutelemente verwendet werden. Dadurch wird eine 
% Anpassung der Gliederungsbefehle~-- wie es einschließlich Version~v2.05 für
% die erzwungene Großschreibung umgesetzt wurde~-- vermieden.
%
% Um für Teile und Kapitel ein einheitliches Erscheinungsbild zu erhalten, wird
% für diese zum einen \cs{strut}~-- in der Schriftgröße des Kontexts oder aber 
% für das im  optionalen Argument gegebene Schriftelement~-- und zum anderen
% ausreichend vertikaler Leerraum für Umlaute eingefügt. Letzteres erfolgt auch 
% für Abschnitte (Sternversion). Dies liegt darin begründet, dass auf einer 
% neuen Seite die erste Grundlinie höher liegt, als für Umlautmajuskeln in der 
% Schrift für \cs{section} etc. notwendig ist. Deshalb wird die Grundlinie
% \enquote{notfallmäßig} mit \cs{vphantom} so weit nach unten verschoben, wie 
% für die höchste Letter benötigt wird, unabhängig vom tatsächlichen Inhalt.
%
% Für Markup oder andere Inhalte, die lediglich im Fließtext jedoch nicht in 
% Überschriften ausgegeben werden, wird der Schalter \cs{if@tud@sec} definiert.
% Das Setzen des Schalters wird in \cs{tud@sec@format} vorgenommen.
%    \begin{macrocode}
\tud@newif\if@tud@sec
\newrobustcmd*\tud@sec@format{%
  \@tud@sectrue%
  \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}%
}
\newcommand*\tud@sec@@format[1]{%
  \kernel@ifnextchar[%]
    {\tud@sec@@@format{#1}}%
    {\tud@sec@@@format{#1}[]}%
}
\newcommand*\tud@sec@@@format{}
\def\tud@sec@@@format#1[#2]#3{%
  \begingroup%
    \IfArgIsEmpty{#2}%
      {\let\tud@res@a\@firstofone}%
      {\def\tud@res@a{\usekomafont{#2}}}%
    \tud@res@a{%
      \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}%
    }%
  \endgroup%
  \tud@sec@@@@format{#3}%
}
\newcommand*\tud@sec@@@@format[1]{#1}
%    \end{macrocode}
% Für die alten Schriften hat der Befehl eine erweiterte Funktionalität, wenn 
% die Schriftfamilie \DIN aktiv ist, welche für Überschriften einzusetzen ist.
% Das \CD verlangt dabei, dass zwingend Majuskeln zu verwenden sind. Hierfür 
% wird der Befehl \cs{MakeTextUppercase} aus dem Paket \pkg{textcase} genutzt, 
% der den internen \LaTeX"~Befehl \cs{MakeUppercase} verbessert.
%    \begin{macrocode}
\if@tud@cdoldfont@active
  \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}%
\fi
%<package&fixfonts>}
%    \end{macrocode}
% \end{macro}^^A \if@tud@sec
% \end{macro}^^A \tud@sec@uppercase
% \end{macro}^^A \tud@sec@@@format
% \end{macro}^^A \tud@sec@@format
% \end{macro}^^A \tud@sec@format
% \end{macro}^^A \tud@sec@@fontface
% \end{macro}^^A \tud@sec@fontface
%
% \iffalse
%</class|package&fixfonts>
%</body>
%<*class&body>
% \fi
%
% \begin{macro}{\tud@part@hook}
% \changes{v2.06o}{2022/08/02}{neu}^^A
% \KOMAScript{} ignoriert für Teile standardmäßig alle Einstellungen für die 
% Option \opt{parskip}. Da diese jedoch für Kapitel Beachtung finden und mit 
% \TUDScript das Erscheinungsbild~-- insbesondere die vertikale Platzierung von 
% Überschriften~-- für diese beiden Elemente einheitlich sein soll, wird über 
% diesen Haken dafür gesorgt, dass \opt{parskip} auch für Teile genutzt wird.
%    \begin{macrocode}
%<*book|report>
\newcommand*\tud@part@hook{}
\let\tud@part@hook\relax
\AddtoDoHook{heading/begingroup/part}{\tud@part@hook}
%</book|report>
%    \end{macrocode}
% \end{macro}^^A \tud@part@hook
% \begin{macro}{\tud@title@fontcolor}
% \begin{macro}{\tud@part@fontcolor}
% \begin{macro}{\tud@chapter@fontcolor}
% \begin{macro}{\tud@section@fontcolor}
% \changes{v2.05}{2015/07/07}{neu}^^A
% Die Makros werden für die Farbe der Überschriften verwendet.
%    \begin{macrocode}
\newcommand*\tud@title@fontcolor{}
\newcommand*\tud@part@fontcolor{}
%<*book|report>
\newcommand*\tud@chapter@fontcolor{}
%</book|report>
\newcommand*\tud@section@fontcolor{}
%    \end{macrocode}
% \end{macro}^^A \tud@section@fontcolor
% \end{macro}^^A \tud@chapter@fontcolor
% \end{macro}^^A \tud@part@fontcolor
% \end{macro}^^A \tud@title@fontcolor
% \begin{macro}{\raggedtitle}
% \changes{v2.05}{2016/04/05}{neu}^^A
% Dieses Makro wird für die Ausrichtung des Titels bereitgehalten.
%    \begin{macrocode}
\providecommand*\raggedtitle{\tud@raggedright}
%    \end{macrocode}
% \end{macro}^^A \raggedtitle
% \begin{macro}{\tud@cd@process}
% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A
% \changes{v2.05}{2016/04/04}{Schrift für \val{subtitle} abhängig von
%   \cs{mddefault}}^^A
% \changes{v2.05}{2016/04/05}{Einstellung für Ausrichtung der Überschriften}^^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 im Dokument geändert und wiederhergestellt werden
% können.
% \ToDo{\cs{...pagecolor} und {\cs{...fontcolor} (part/chapter/title)}}[v2.07]
% \ToDo{Farbauswahl in \cs{tud@cd@process} bzw. \KOMAScript{} do-hooks}[v2.07]
% \ToDo{Überschriften paragraph und subparagraph in Open Sans}[v2.07]
%    \begin{macrocode}
\newcommand*\tud@cd@process{%
%    \end{macrocode}
% Die Einstellungen für den Titel. Vor dessen Umstellung werden die relevanten
% Originalbefehle mit \cs{tud@cs@store}\marg{Befehl} gesichert, damit diese
% mit \cs{tud@cs@restore}\marg{Befehl} wiederhergestellt werden können.
%    \begin{macrocode}
  \ifcase\tud@cd@title@num\relax% false
%<*book|report|article>
    \tud@cs@restore{titlepagestyle}%
%</book|report|article>
%<*poster>
    \renewcommand*\titlepagestyle{empty}%
%</poster>
    \tud@komafont@unset{titlehead}%
    \tud@komafont@unset{title}%
    \tud@komafont@unset{subtitle}%
    \tud@komafont@unset{subject}%
%<*book|report|article>
    \tud@komafont@unset{author}%
    \tud@komafont@unset{date}%
    \tud@komafont@unset{publishers}%
%</book|report|article>
  \else% !false
%<*book|report|article>
    \tud@cs@store{titlepagestyle}%
    \renewcommand*\titlepagestyle{plain.tudheadings}%
%</book|report|article>
%<*poster>
    \renewcommand*\titlepagestyle{empty.tudheadings}%
%</poster>
    \tud@komafont@set{titlehead}{\usekomafont{titlepage}}%
    \tud@komafont@set{title}{%
      \usekomafont{disposition}%
      \raggedtitle%
      \tud@sec@fontface%
      \tud@sec@fontsizecmd%
      \tud@color{\tud@title@fontcolor}%
    }%
    \tud@komafont@set{subtitle}{%
      \tud@subtitle@fontsizecmd%
      \fontseriesforce{\tud@cdfont@bf}\selectfont%
    }%
    \tud@komafont@set{subject}{%
      \usesizeofkomafont{section}%
      \sffamily%
      \fontseriesforce{\tud@cdfont@bf}\selectfont%
      \tud@color{\tud@title@fontcolor}%
    }%
%<*book|report|article>
    \tud@komafont@set{author}{\usekomafont{subject}}%
    \tud@komafont@set{publishers}{\usekomafont{author}}%
    \tud@komafont@set{date}{\usekomafont{titlepage}}%
%</book|report|article>
  \fi%
%    \end{macrocode}
% Das gleiche für die Teileseiten.
%    \begin{macrocode}
  \ifcase\tud@cd@part@num\relax% false
    \tud@cs@restore{partlineswithprefixformat}%
    \tud@cs@restore{scr@part@beforeskip}%
%<*book|report>
    \tud@cs@restore{scr@part@innerskip}%
%</book|report>
    \tud@cs@restore{scr@part@afterskip}%
    \tud@cs@restore{partheadstartvskip}%
%<*book|report>
    \tud@cs@restore{partheadendvskip}%
    \tud@cs@restore{partheademptypage}%
    \tud@cs@restore{partpagestyle}%
    \let\tud@part@hook\relax%
%</book|report>
    \tud@komafont@unset{part}%
    \tud@komafont@unset{partnumber}%
    \tud@cs@restore{raggedpart}%
%    \end{macrocode}
% Es werden die Standardbefehle gesichert und für das \CD angepasst. 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}
  \else% !false
    \tud@cs@store{partlineswithprefixformat}%
    \let\partlineswithprefixformat\tud@partlineswithprefixformat%
    \tud@cs@store{scr@part@beforeskip}%
%<*book|report>
    \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@@dim}%
%</book|report>
%<*article|poster>
    \renewcommand*\scr@part@beforeskip{%
      \glueexpr\tud@cd@aftervskip@@glue+\baselineskip\relax%
    }%
%</article|poster>
%<*book|report>
    \tud@cs@store{scr@part@innerskip}%
    \renewcommand*\scr@part@innerskip{\tud@cd@innervskip@@dim}%
%</book|report>
    \tud@cs@store{scr@part@afterskip}%
    \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@@glue}%
    \tud@cs@store{partheadstartvskip}%
    \let\partheadstartvskip\tud@partheadstartvskip%
%<*book|report>
    \tud@cs@store{partheadendvskip}%
    \let\partheadendvskip\relax%
    \tud@cs@store{partheademptypage}%
    \let\partheademptypage\tud@partheademptypage%
    \tud@cs@store{partpagestyle}%
    \renewcommand*\partpagestyle{plain.tudheadings}%
%    \end{macrocode}
% Mit |\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative| werden
% normalerweise direkt nach dem Haken |heading/begingroup/part| durch 
% \KOMAScript{} die Einstellungen für die Option \opt{parskip} deaktiviert. Ist 
% das Layout des \CDs aktiv, wird dies unterbunden.
%    \begin{macrocode}
    \def\tud@part@hook{\let\setparsizes\@gobblefour}%
%</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}
    \tud@komafont@set{part}{%
      \tud@sec@fontface%
      \tud@color{\tud@part@fontcolor}%
    }%
    \tud@komafont@set{partnumber}{%
      \tud@sec@fontface%
      \tud@prefix@fontsizecmd%
      \tud@color{\tud@part@fontcolor}%
    }%
    \tud@cs@store{raggedpart}%
    \renewcommand*\raggedpart{\tud@raggedright}%
  \fi%
%    \end{macrocode}
% Die Einstellungen für die Kapitel. 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. 
%    \begin{macrocode}
%<*book|report>
  \ifcase\tud@cd@chapter@num\relax% false
    \tud@cs@restore{chapterlineswithprefixformat}%
    \tud@cs@restore{chapterlinesformat}%
    \tud@cs@restore{scr@chapter@beforeskip}%
    \tud@cs@restore{scr@chapter@innerskip}%
    \tud@cs@restore{scr@chapter@afterskip}%
    \tud@cs@restore{chapterheadstartvskip}%
    \tud@cs@restore{tud@chapter@before@hook}%
    \tud@cs@restore{tud@chapter@after@hook}%
    \tud@komafont@unset{chapter}%
    \tud@komafont@unset{chapterprefix}%
    \tud@cs@restore{raggedchapter}%
%    \end{macrocode}
% Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der
% Optionen gesichert und anschließend geändert. Dabei erfolgt die Zuweisung der
% angepassten Befehle abermals über \cs{let}.
%    \begin{macrocode}
  \else% !false
    \tud@cs@store{chapterlineswithprefixformat}%
    \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat%
    \tud@cs@store{chapterlinesformat}%
    \let\chapterlinesformat\tud@chapterlinesformat%
    \tud@cs@store{scr@chapter@beforeskip}%
    \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@@dim}%
    \tud@cs@store{scr@chapter@innerskip}%
    \renewcommand*\scr@chapter@innerskip{\tud@cd@innervskip@@dim}%
    \tud@cs@store{scr@chapter@afterskip}%
    \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@@glue}%
    \tud@cs@store{chapterheadstartvskip}%
    \let\chapterheadstartvskip\tud@chapterheadstartvskip%
    \tud@cs@store{tud@chapter@before@hook}%
    \renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}%
    \tud@cs@store{tud@chapter@after@hook}%
    \renewcommand*\tud@chapter@after@hook{\tud@chapter@app}%
    \tud@komafont@set{chapter}{%
      \tud@sec@fontface%
      \tud@sec@fontsizecmd%
      \tud@color{\tud@chapter@fontcolor}%
    }%
    \tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}%
    \tud@cs@store{raggedchapter}%
    \renewcommand*\raggedchapter{\tud@raggedright}%
  \fi%
%</book|report>
%    \end{macrocode}
% Die Einstellungen für die Abschnittsebene. Wiederum werden alle relevanten
% Befehle gesichert.
%    \begin{macrocode}
  \ifcase\tud@cd@section@num\relax% false
    \tud@cs@restore{sectionlinesformat}%
    \tud@cs@restore{sectioncatchphraseformat}%
    \tud@komafont@unset{section}%
    \tud@komafont@unset{subsection}%
    \tud@komafont@unset{subsubsection}%
    \tud@komafont@unset{paragraph}%
    \tud@komafont@unset{subparagraph}%
    \tud@cs@restore{raggedsection}%
    \tud@cs@restore{minisec}%
    \tud@komafont@unset{minisec}%
  \else% !false
    \tud@cs@store{sectionlinesformat}%
    \let\sectionlinesformat\tud@sectionlinesformat%
    \tud@cs@store{sectioncatchphraseformat}%
    \let\sectioncatchphraseformat\tud@sectioncatchphraseformat%
    \tud@komafont@set{section}{%
      \tud@sec@fontface%
      \tud@color{\tud@section@fontcolor}%
    }%
    \tud@komafont@set{subsection}{%
      \tud@sec@fontface%
      \tud@color{\tud@section@fontcolor}%
    }%
    \tud@komafont@set{subsubsection}{%
      \tud@sec@fontface%
      \tud@color{\tud@section@fontcolor}%
    }%
    \tud@komafont@set{paragraph}{%
      \tud@color{\tud@section@fontcolor}%
    }%
    \tud@komafont@set{subparagraph}{%
      \tud@color{\tud@section@fontcolor}%
    }%
    \tud@cs@store{raggedsection}%
    \renewcommand*\raggedsection{\tud@raggedright}%
    \tud@cs@store{minisec}%
    \renewcommand\minisec[1]{%
      \tud@cs@use{minisec}{\tud@sec@format*{##1}}%
    }%
    \tud@komafont@set{minisec}{%
      \tud@sec@fontface%
      \ifcase\tud@cd@section@num\relax\or\else% *color
        \tud@if@strequal{\tud@pagecolor}{HKS41}{}{\color{HKS41}}%
      \fi%
    }%
  \fi%
%    \end{macrocode}
% Für Poster wird außerdem der passende Seitenstil und die Ausprägung von Kopf
% und Fuß sowie die Schriftfarbe festgelegt.
%    \begin{macrocode}
%<*poster>
  \ifcase\tud@cd@num\relax% false
    \pagestyle{empty}%
    \color{black}%
  \else% !false
    \pagestyle{empty.tudheadings}%
    \ifcase\tud@cd@num\relax\or% true
      \tud@locked@num@preset{tud@head@bar@num}{0}%
      \tud@locked@bool@preset{@tud@foot@colored}{false}%
      \color{black}%
    \or% litecolor
      \tud@locked@num@preset{tud@head@bar@num}{1}%
      \tud@locked@bool@preset{@tud@foot@colored}{false}%
      \color{HKS41}%
    \or% barcolor
      \tud@locked@num@preset{tud@head@bar@num}{2}%
      \tud@locked@bool@preset{@tud@foot@colored}{false}%
      \color{HKS41}%
    \else% bicolor/color/full
      \tud@locked@num@preset{tud@head@bar@num}{3}%
      \tud@locked@bool@preset{@tud@foot@colored}{true}%
      \color{HKS41}%
    \fi%
  \fi%
%</poster>
}
%    \end{macrocode}
% \end{macro}^^A \tud@cd@process
% \begin{macro}{\tud@cd@specialpage@set}
% \changes{v2.04}{2015/04/21}{neu}^^A
% \changes{v2.04d}{2016/03/26}{Bugfix für \cls{tudscrartcl}}^^A
% \begin{macro}{\tud@cd@specialpage@unset}
% \changes{v2.04}{2015/04/21}{neu}^^A
% Diese beiden Hilfsmakros werden für Titel- Teile und separate Kapitelseite 
% benötigt, um die Fußnoten auf diesen speziellen Seiten in der gleichen Farbe 
% wie den Rest der verwendeten Schriften zu setzen.
%    \begin{macrocode}
%<*book|report|article>
\newcommand*\tud@cd@specialpage@set[1]{%
  \tud@komafont@set{footnote}{%
    \edef\@tempa{%
      \noexpand\tud@color{%
        \expandafter\noexpand\csname tud@#1@fontcolor\endcsname%
      }%
    }\@tempa%
  }%
  \tud@cs@store{footnoterule}%
  \let\footnoterule\relax%
}
%</book|report|article>
%<*book|report>
\newcommand*\tud@cd@specialpage@unset{%
  \tud@komafont@unset{footnote}%
  \tud@cs@restore{footnoterule}%
}
%</book|report>
%    \end{macrocode}
% \end{macro}^^A \tud@cd@specialpage@unset
% \end{macro}^^A \tud@cd@specialpage@set
% \begin{macro}{\tud@cd@headstart@vskip}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \changes{v2.06o}{2022/08/02}{Bugfix für vertikale Unterschiede}^^A
% \begin{macro}{\tud@cd@vphantom}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@cd@beforevskip@@dim}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@cd@innervskip@@dim}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@cd@aftervskip@@glue}
% \changes{v2.06}{2018/08/01}{neu}^^A
% Im \TUDCD werden sowohl Titel als auch Teil- und Kapitelüberschriften auf der 
% gleichen Grundlinienhöhe gesetzt. Hierfür sind Anpassungen der entsprechenden
% Gliederungsbefehle notwendig. Insbesondere der vor den Überschriften gesetzte 
% Abstand wird für gewöhnlich über die Befehle \cs{partheadstartvskip} bzw. 
% \cs{chapterheadstartvskip} gesetzt. Um das Layout des \CDs umzusetzen, werden 
% diese beiden Makros als Haken genutzt.
%
% Das Makro \cs{tud@cd@beforevskip@@dim} ist der Abstand vor einer Überschrift, 
% welcher über \cs{tud@cd@headstart@vskip} gesetzt wird. Der Abstand zwischen 
% der Nummerierung eines Teils und der eigentlichen Bezeichnung wird mit
% \cs{tud@cd@innervskip@@dim} definiert und durch \KOMAScript{} eingefügt.
% Gleiches gilt für eine separate Kapitelnummernzeile (\opt{chapterprefix}) und
% dem eigentlichen Kapiteltitel. Durch \cs{tud@cd@aftervskip@@glue} wird der
% Abstand zwischen Titel und Fließtext respektive der unteren Prääambel
% definiert. Dieser Abstand ist abhängig von der gewählten Einstellung für die 
% Option \opt{headings}.
%    \begin{macrocode}
\newcommand*\tud@cd@beforevskip@@dim{%
  \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax%
}
\newcommand*\tud@cd@innervskip@@dim{%
  \dimexpr(\tud@sec@baselineskip@@dim)/5\relax%
}%
\newcommand*\tud@cd@aftervskip@@glue{%
  \glueexpr
    \dimexpr(\tud@sec@baselineskip@@dim)*4/5\relax
    \@plus\dimexpr(\tud@sec@baselineskip@@dim)/20\relax
    \@minus\dimexpr(\tud@sec@baselineskip@@dim)/10\relax
  \relax
}
%    \end{macrocode}
% Dieses Konstrukt ist mehr oder weniger durch Ausprobieren entstanden, da für 
% die unterschiedlichen Einstellungsmöglichkeiten der Option \opt{headings} je 
% nach gewählter Größe der Überschriften leichte Verschiebungen und Sprünge für 
% die unterschiedlichen Varianten\footnote{Prefix, Untertitel, Absatzabstände} 
% aufgetreten sind.
%    \begin{macrocode}
\newcommand*\tud@cd@headstart@vskip{%
  \tud@setdim\@tempdima{\tud@cd@beforevskip@@dim}%
  \tud@length@setabsolute\@tempdima%
  \null\vskip\dimexpr\glueexpr\@tempdima-\f@baselineskip-\parskip\relax\relax%
}
%    \end{macrocode}
% Sollte keine Präfixzeile für Teile oder Kapitel verwendet werden, muss für 
% die exakte Positionierung der Grundlinie des Titels der entsprechende Abstand
% eingefügt werden, wofür \cs{tud@cd@vphantom} genutzt wird.
%    \begin{macrocode}
\newcommand*\tud@cd@vphantom{%
  \begingroup%
    \usekomafont{partnumber}{%
      \tud@sec@format{\vskip\tud@cd@innervskip@@dim}%
    }%
  \endgroup%
}
%    \end{macrocode}
% \end{macro}^^A \tud@cd@aftervskip@@glue
% \end{macro}^^A \tud@cd@innervskip@@dim
% \end{macro}^^A \tud@cd@beforevskip@@dim
% \end{macro}^^A \tud@cd@vphantom
% \end{macro}^^A \tud@cd@headstart@vskip
%
% \iffalse
%<*book|report>
% \fi
%
% \subsection{Positionierung und Formatierung von Überschriften}
% \subsubsection{Präambeln für Teile und Kapitel}
%
% \begin{macro}{\scr@startpart}
% Für die Präambel von Teilen muss ebenfalls etwas gebastelt werden, um das 
% Erscheinungsbild an das von Teilen anzupassen, falls das Layout des \CDs 
% aktiv ist.
%    \begin{macrocode}
\patchcmd\scr@startpart{%
  \partheadstartvskip
  \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}%
  \vskip-\baselineskip\nobreak
}{%
  \ifcase\tud@cd@part@num\relax% false
    \partheadstartvskip%
    \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}%
    \vskip-\baselineskip\nobreak%
  \else%
%    \end{macrocode}
% Im Gegensatz zur ursprünglichen Definition wird die Präambel vor der 
% vertikalen Formatierung des Teils ausgegeben und an die Kapitelpräambel 
% angeglichen.
%    \begin{macrocode}
    {%
      \setbox\z@\vbox{%
        \vskip\dimexpr%
          \tud@cd@innervskip@@dim-\tud@sec@baselineskip@@dim-\baselineskip%
        \relax%
        \use@preamble{#1@o}\strut\par%
      }%
      \vbox to \z@{\box\z@\vss}%
      \vskip\dimexpr\parskip-\baselineskip\relax%
    }%
    \partheadstartvskip%
  \fi%
}{}{\tud@patch@wrn{scr@startpart}}
%    \end{macrocode}
% \end{macro}^^A \scr@startpart
% \begin{macro}{\tud@preamble@fontcolor}
% \changes{v2.06}{2018/08/08}{neu}^^A
% Der Befehl wird innerhalb von \cs{set@@@@preamble} genutzt, um die notwendige 
% Farbe des Textes zu aktivieren.
%    \begin{macrocode}
\newcommand*\tud@preamble@fontcolor{}
%    \end{macrocode}
% \end{macro}^^A \tud@preamble@fontcolor
% \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{%
%    \end{macrocode}
% Zunächst wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln 
% ausgeglichen.
%    \begin{macrocode}
  \tud@setglue\@tempskipa{\tud@cd@aftervskip@@glue}%
  \tud@length@setabsolute\@tempskipa%
  \vskip\@tempskipa%
%    \end{macrocode}
% Anschließend folgen die Anpassungen für die Teilpräambel.
%    \begin{macrocode}
  \ifnum\tud@abstract@level@num>\@ne\relax% sec/chap
    \renewcommand*\tud@abstract@level@num{1}%
  \fi%
  \KOMAoptions{titlepage=false}%
  \null\vskip-1\baselineskip%
  \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}%
  \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}%
  \let\tud@preamble@fontcolor\tud@part@fontcolor%
  \@afterindentfalse\@afterheading%
}
%    \end{macrocode}
% \end{macro}^^A \tud@partpreamble
% \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@num>\@ne\relax% sec/chap
    \renewcommand*\tud@abstract@level@num{1}%
  \fi%
  \KOMAoptions{titlepage=false}%
  \null\vskip-1\baselineskip%
%    \end{macrocode}
% Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig.
%    \begin{macrocode}
  \if@tud@chapterpage%
    \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}%
    \addtokomafont{dictum}{\tud@color{\tud@chapter@fontcolor}}%
    \let\tud@preamble@fontcolor\tud@chapter@fontcolor%
  \fi%
  \@afterindentfalse\@afterheading%
}
%    \end{macrocode}
% \end{macro}^^A \tud@chapterpreamble
% \begin{macro}{\set@@@@preamble}
% 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 wird das Makro für die Layouteinstellungen für 
% Teile (\cs{tud@partpreamble}) respektive Kapitel (\cs{tud@chapterpreamble})
% 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. Alternativ zu \cs{let}\cs{@parboxrestore}\cs{relax} 
% müsste innerhalb des Argumentes von \cs{parbox} die \KOMAScript-Option 
% \opt{parskip} neu gesetzt werden.
%    \begin{macrocode}
\CheckCommand\set@@@@preamble[6]{%
  \expandafter\gdef\csname #1@preamble\endcsname{%
    \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
  }%
}
\patchcmd\set@@@@preamble{%
  \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
}{%
  \def\@tempa####1@####2{%
    \@nameuse{tud@####1preamble}%
    \tud@color{\tud@preamble@fontcolor}%
    \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}%
  }%
  \hbox to\hsize{%
    \let\phantomsection\relax%
    #4\parbox[{#2}]{#3}{\@tempa#1#6\par\bigskip}#5\par%
  }%
}{}{\tud@patch@wrn{set@@@@preamble}}
%    \end{macrocode}
% \end{macro}^^A \set@@@@preamble
%
% \iffalse
%</book|report>
% \fi
%
% \subsubsection{Untertitel für Teile und Kapitel}
% Im Layout des \CDs können für Teile und Kapitel auch Untertitel angegeben 
% werden.
%
% \begin{macro}{\setpartsubtitle}
% \changes{v2.06}{2018/08/20}{neu}^^A
% \begin{KOMAfont}{partsubtitle}
% \changes{v2.06}{2018/08/20}{neu}^^A
% \begin{KOMAfont}{parttitle}
% \begin{macro}{\tud@part@subtitle}
% \changes{v2.06}{2018/08/20}{neu}^^A
% Auf Anwenderebene können mit \cs{setpartsubtitle} und \cs{setchaptersubtitle}
% die gewünschten Untertitel angegegben werden.
%    \begin{macrocode}
\newcommand*\tud@part@subtitle{}
\newcommand*\setpartsubtitle[1]{\gdef\tud@part@subtitle{#1}}
%    \end{macrocode}
% Die Schriftelement für die Untertitel von Teilen.
%    \begin{macrocode}
\newkomafont{partsubtitle}{%
  \tud@subtitle@fontsizecmd%
  \fontseriesforce{\tud@cdfont@bf}\selectfont%
  \tud@color{\tud@part@fontcolor}%
}
\aliaskomafont{parttitle}{partsubtitle}
%    \end{macrocode}
% \end{macro}^^A \tud@part@subtitle
% \end{KOMAfont}^^A parttitle
% \end{KOMAfont}^^A partsubtitle
% \end{macro}^^A \setpartsubtitle
% \begin{macro}{\setchaptersubtitle}
% \changes{v2.06}{2018/08/20}{neu}^^A
% \begin{KOMAfont}{chaptersubtitle}
% \changes{v2.06}{2018/08/20}{neu}^^A
% \begin{macro}{\tud@chapter@subtitle}
% \changes{v2.06}{2018/08/20}{neu}^^A
% Das gleiche Spiel für Kapitel.
%    \begin{macrocode}
%<*book|report>
\newcommand*\tud@chapter@subtitle{}
\newcommand*\setchaptersubtitle[1]{\gdef\tud@chapter@subtitle{#1}}
%    \end{macrocode}
% Die Schriftelement für die Untertitel von Kapiteln.
%    \begin{macrocode}
\newkomafont{chaptersubtitle}{%
  \tud@subtitle@fontsizecmd%
  \fontseriesforce{\tud@cdfont@bf}\selectfont%
  \tud@color{\tud@chapter@fontcolor}%
}
%</book|report>
%    \end{macrocode}
% \end{macro}^^A \tud@chapter@subtitle
% \end{KOMAfont}^^A chaptersubtitle
% \end{macro}^^A \setchaptersubtitle
% \begin{macro}{\tud@sec@subtitle}
% \changes{v2.06}{2018/08/01}{neu}^^A
% Dieses Makro dient zur Umsetzung der Untertitel.
%    \begin{macrocode}
\newcommand*\tud@sec@subtitle[1]{%
  \ifcsvoid{tud@#1@subtitle}{}{%
    {\usekomafont{#1subtitle}{%
      \vskip-1\parskip%
      \tud@sec@format{\csuse{tud@#1@subtitle}}%
    }}\par%
    \global\cslet{tud@#1@subtitle}{\@empty}%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@sec@subtitle
%
%
% \subsubsection{Umsetzung für Teile}
%
% \begin{macro}{\tud@partheadstartvskip}
% \begin{macro}{\partheadstartvskip}
% Dieses Makro ersetzt den Standardbefehl \cs{partheadstartvskip} für die
% CD-Teilseiten. Damit lassen sich insbesondere die Farbanpassungen für alle
% Klassen 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.
% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
%    \begin{macrocode}
%<*article|poster>
\newcommand*\tud@partheadstartvskip{}
\let\tud@partheadstartvskip\partheadstartvskip
\pretocmd\tud@partheadstartvskip{%
  \renewcommand*\tud@part@fontcolor{}% false/true
  \ifcase\tud@cd@part@num\relax\or\else% *color
    \renewcommand*\tud@part@fontcolor{HKS41}%
  \fi%
}{}{\tud@patch@wrn{tud@partheadstartvskip}}
%</article|poster>
%    \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>
\AddtoDoHook{heading/preinit/part}{
  \TUD@deprecated@length\pageheadingsvskip%
}
\newcommand*\tud@partheadstartvskip{%
  \renewcommand*\tud@part@fontcolor{}% false/true
  \ifcase\tud@cd@part@num\relax\or\or% litecolor
    \renewcommand*\tud@part@fontcolor{HKS41}%
  \or% barcolor
    \renewcommand*\tud@part@fontcolor{HKS41}%
  \or% bicolor
    \renewcommand*\tud@part@fontcolor{HKS41}%
  \or% color
    \renewcommand*\tud@part@fontcolor{HKS41!30}%
  \or% full
    \renewcommand*\tud@part@fontcolor{HKS41!30}%
  \fi%
  \tud@cd@specialpage@set{part}%
  \tud@cd@headstart@vskip%
  \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}%
}
%</book|report>
%    \end{macrocode}
% \end{macro}^^A \partheadstartvskip
% \end{macro}^^A \tud@partheadstartvskip
% \begin{macro}{\tud@partheademptypage}
% \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 
% der Befehl \cs{tud@cleardoublespecialpage} verwendet wird. Damit wird
% abhängig von den beiden Optionen \opt{cleardoublespecialpage} und
% \opt{clearcolor} die Rückseite farbig gesetzt.
%    \begin{macrocode}
%<*book|report>
\newcommand*\tud@partheademptypage{%
  \tud@cleardoublespecialpage{%
    \renewcommand*\tud@pagecolor{}%
    \ifcase\tud@cd@part@num\relax\or% true
      \tud@locked@num@preset{tud@head@bar@num}{0}%
    \or% litecolor
      \tud@locked@num@set{tud@head@bar@num}{1}%
    \or% barcolor
      \tud@locked@num@set{tud@head@bar@num}{2}%
    \or% bicolor
      \tud@locked@num@set{tud@head@bar@num}{3}%
    \or% color
      \renewcommand*\tud@pagecolor{HKS41}%
      \tud@locked@num@set{tud@head@bar@num}{1}%
    \or% full
      \renewcommand*\tud@pagecolor{HKS41}%
      \tud@locked@num@set{tud@head@bar@num}{3}%
    \fi%
    \clearpage%
  }%
  \tud@cd@specialpage@unset%
}
%</book|report>
%    \end{macrocode}
% \end{macro}^^A \tud@partheademptypage
% \begin{macro}{\tud@partlineswithprefixformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@partformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \changes{v2.06o}{2022/08/02}{Bugfix für Option \opt{parttitle}}^^A
% Die Formatierungsbefehle für die Überschriften von Teilen.
%    \begin{macrocode}
\newcommand*\tud@partformat{}%
\newcommand*\tud@partlineswithprefixformat[3]{%
%<*book|report>
  \vskip-2\parskip%
  \if@tud@parttitle%
    \ifx\@@title\@empty%
      \ClassWarning{\TUD@Class@Name}{%
        You activated the option `parttitle' but\MessageBreak%
        no title was given%
      }%
    \fi%
    \tud@cd@vphantom%
    \usekomafont{#1}{%
      \tud@sec@format{\nobreak\interlinepenalty\@M\@@title\strut\@@par}%
    }%
%    \end{macrocode}
% Hier wird etwas hemdsärmlich der eigentliche Titel aus |#3| extrahiert.
%    \begin{macrocode}
    \def\tud@partformat##1\nobreak\interlinepenalty\@M##2\strut\@@par##3\@nil{%
      \def\tud@partformat{\IfUseNumber{\partformat\enskip}{}##2}%
    }%
    \expandafter\expandafter\expandafter\tud@partformat%
      \expandafter\@firstofone\@gobbletwo#3\@nil%
    \expandafter\setpartsubtitle\expandafter{\tud@partformat}%
  \else%
%</book|report>
    \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}%
    \let\partformat\tud@partformat%
    \IfUseNumber{}{\tud@cd@vphantom}%
    #2\tud@sec@format[{#1}]{#3}%
%<*book|report>
  \fi%
%</book|report>
  \tud@sec@subtitle{#1}%
}
%    \end{macrocode}
% Beim Aufruf von \cs{partlineswithprefixformat} nutzt \KOMAScript im dritten 
% Argument intern \cs{usekomafont}|{part}|. Für die Verwendung von \DIN in der 
% Überschrift wird das besagte Argument allerdings via \cs{tud@sec@format} mit 
% \cs{MakeUppercase} ummantelt. Der daraus letztendlich resultierende Aufruf 
% |\MakeUppercase{\usekomafont{part}{...#3...}}| führt zu einem Fehler. Der
% nachfolgende Patch behebt das Problem.
%    \begin{macrocode}
\if@tud@cdoldfont@active
  \patchcmd\tud@partlineswithprefixformat
    {#2\tud@sec@format[{#1}]{#3}}
    {#2\tud@sec@format[{#1}]{}\addtokomafont{#1}{\tud@sec@format}#3}
    {}{\tud@patch@wrn{tud@partlineswithprefixformat}}
\fi
%    \end{macrocode}
% \end{macro}^^A \tud@partformat
% \end{macro}^^A \tud@partlineswithprefixformat
%
% \iffalse
%<*book|report>
% \fi
%
% \subsubsection{Umsetzung für Kapitel}
%
% \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 Option \opt{headingsvskip} kann diese vertikal durch
% den Benutzer verschoben werden. Außerdem werden die benötigten Farben für die
% jeweils gewählte Option ausgewählt.
% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
%    \begin{macrocode}
\AddtoDoHook{heading/preinit/chapter}{
  \if@tud@chapterpage%
    \TUD@deprecated@length\pageheadingsvskip%
  \else%
    \TUD@deprecated@length\headingsvskip%
  \fi%
}
\newcommand*\tud@chapterheadstartvskip{%
  \renewcommand*\tud@chapter@fontcolor{}%
  \ifcase\tud@cd@chapter@num\relax\or\else% *color
    \renewcommand*\tud@chapter@fontcolor{HKS41}%
  \fi%
  \tud@cd@headstart@vskip%
  \if@tud@chapterpage%
    \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}%
  \else%
    \vspace*{\dimexpr\tud@headingsvskip@dim\relax}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@chapterheadstartvskip
% \begin{macro}{\tud@chapterlineswithprefixformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@chapterformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@chapterlinesformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
% Die Formatierungsbefehle für die Überschriften von Kapiteln.
%    \begin{macrocode}
\newcommand*\tud@chapterformat{}%
\newcommand*\tud@chapterlineswithprefixformat[3]{%
  \edef\tud@chapterformat{\noexpand\tud@sec@format{\expandonce\chapterformat}}%
  \let\chapterformat\tud@chapterformat%
  \IfUseNumber{}{\tud@cd@vphantom}%
  #2\tud@sec@format[{#1}]{#3}%
  \tud@sec@subtitle{#1}%
}
\newcommand*\tud@chapterlinesformat[3]{%
  \tud@cd@vphantom%
  \@hangfrom{#2}{\tud@sec@format[{#1}]{#3}}%
  \tud@sec@subtitle{#1}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@chapterlinesformat
% \end{macro}^^A \tud@chapterformat
% \end{macro}^^A \tud@chapterlineswithprefixformat
% \begin{macro}{\tud@chapter@pre}
% \begin{macro}{\tud@chapter@app}
% \begin{macro}{\tud@head@bar@restore}
% \changes{v2.04}{2015/04/01}{neu}^^A
% Diese Makros dienen zur Behandlung der Besonderheiten von Kapiteln. Dies gilt 
% sowohl für normale Kapitelüberschriften als auch für separate Kapitelseiten
% (Option~\opt{chapterpage}). Eingefügt werden sie für die Gliederungsbefehle
% der Kapitel durch die beiden Haken \cs{tud@chapter@before@hook} sowie
% \cs{tud@chapter@after@hook}, den Start und das Ende der Gliederungsbefehle
% für Kapitel definieren.
% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
%    \begin{macrocode}
\newcommand*\tud@chapter@pre{%
  \if@tud@chapterpage%
%    \end{macrocode}
% 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%
    \tud@cd@specialpage@set{chapter}%
  \fi%
}
%    \end{macrocode}
% Unabhängig von der Nutzung einer Kapitelseite, wird die Einstellung der 
% Option \opt{cdchapter} für die Gestalt des TUD-Kopfes beachtet, falls dieser
% zum Einsatz kommt.
%    \begin{macrocode}
\newcommand*\tud@head@bar@restore{}
\let\tud@head@bar@restore\relax
\newcommand*\tud@chapter@app{%
%    \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}
  \if@tud@chapterpage%
    \tud@cleardoublespecialpage{%
      \renewcommand*\tud@pagecolor{}%
      \let\tud@foot@fontcolor\tud@chapter@fontcolor%
      \ifcase\tud@cd@chapter@num\relax\or% true
        \tud@locked@num@preset{tud@head@bar@num}{0}%
      \or% litecolor
        \tud@locked@num@set{tud@head@bar@num}{1}%
      \or% barcolor
        \tud@locked@num@set{tud@head@bar@num}{2}%
      \or% bicolor
        \tud@locked@num@set{tud@head@bar@num}{3}%
      \or% color
        \renewcommand*\tud@pagecolor{HKS41!10}%
        \tud@locked@num@set{tud@head@bar@num}{1}%
      \or% fullcolor
        \renewcommand*\tud@pagecolor{HKS41!10}%
        \tud@locked@num@set{tud@head@bar@num}{3}%
      \fi%
      \clearpage%
    }%
    \tud@cd@specialpage@unset%
%    \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, wird die Einstellung für
% die Gestalt des Seitenkopfes im restlichen Dokument (\cs{tud@head@bar@num})
% in \cs{tud@head@bar@restore} gesichert. Dieser Befehl wird beim Ausführen der
% Ebene \pgs{tudheadings.last} aufgerufen, wodurch der geischerte Wert ab der 
% darauffolgenden Seite wiederhergestellt wird.
%    \begin{macrocode}
  \else%
    \edef\tud@head@bar@restore{%
      \gdef\noexpand\tud@head@bar@num{\tud@head@bar@num}%
      \global\let\noexpand\tud@head@bar@restore\relax%
    }%
    \ifcase\tud@cd@chapter@num\relax\or% true
      \tud@locked@num@preset{tud@head@bar@num}{0}%
    \or% litecolor
      \tud@locked@num@set{tud@head@bar@num}{1}%
    \or% barcolor
      \tud@locked@num@set{tud@head@bar@num}{2}%
    \or% bicolor
      \tud@locked@num@set{tud@head@bar@num}{3}%
    \or% color
      \tud@locked@num@set{tud@head@bar@num}{1}%
    \or% fullcolor
      \tud@locked@num@set{tud@head@bar@num}{3}%
    \fi%
%    \end{macrocode}
% Im Kompatibilitätsmodus muss genügend zusätzlicher Freiraum für ein ggf. 
% auszugebendes \DDC-Logo gelassen werden.
%    \begin{macrocode}
    \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}%
  \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@head@bar@restore
% \end{macro}^^A \tud@chapter@pre
% \end{macro}^^A \tud@chapter@app
% \begin{macro}{\tud@chapter@before@hook}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@chapter@after@hook}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\scr@startchapter}
% \begin{macro}{\scr@@startchapter}
% \begin{macro}{\scr@@startschapter}
% Die beiden Haken \cs{tud@chapter@before@hook} und \cs{tud@chapter@after@hook}
% werden den \KOMAScript-Befehlen hinzugefügt, welche den Start und das Ende 
% der Gliederungsbefehle für Kapitel definieren.
% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
%    \begin{macrocode}
\newcommand*\tud@chapter@before@hook{}
\newcommand*\tud@chapter@after@hook{}
\pretocmd\scr@startchapter{%
  \tud@chapter@before@hook%
}{}{\tud@patch@wrn{scr@startchapter}}
\apptocmd\scr@@startchapter{%
  \tud@chapter@after@hook%
}{}{\tud@patch@wrn{scr@@startchapter}}
\apptocmd\scr@@startschapter{%
  \tud@chapter@after@hook%
}{}{\tud@patch@wrn{scr@@startschapter}}
%    \end{macrocode}
% \end{macro}^^A \scr@@startschapter
% \end{macro}^^A \scr@@startchapter
% \end{macro}^^A \scr@startchapter
% \end{macro}^^A \tud@chapter@after@hook
% \end{macro}^^A \tud@chapter@before@hook
%
% \iffalse
%</book|report>
% \fi
%
% \subsubsection{Umsetzung für Abschnitte etc.}
%
% Die Farbwahl wird einfach in dem von \KOMAScript{} bereitgestellten Haken 
% zu Beginn einer Abschnittsüberschrift ausgeführt.
% \ToDo{use AddtoDoHook{heading/postinit}}[v2.07]
%    \begin{macrocode}
\At@startsection{%
  \renewcommand*\tud@section@fontcolor{}%
  \ifcase\tud@cd@section@num\relax\or\else% *color
    \tud@if@strequal{\tud@pagecolor}{HKS41}{}{%
      \renewcommand*\tud@section@fontcolor{HKS41}%
    }%
  \fi%
}
%    \end{macrocode}
% \begin{macro}{\tud@sectionlinesformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@sectioncatchphraseformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
% Die Formatierungsbefehle für die Überschriften von Abschnitten etc.
%    \begin{macrocode}
\newcommand*\tud@sectionlinesformat[4]{%
  \@hangfrom{\hskip #2#3}{\tud@sec@format*[{#1}]{#4}}%
}
\newcommand*\tud@sectioncatchphraseformat[4]{%
  \hskip #2#3\tud@sec@format*[{#1}]{#4}%
}
%    \end{macrocode}
% \end{macro}^^A \tud@sectioncatchphraseformat
% \end{macro}^^A \tud@sectionlinesformat
%
% \iffalse
%</class&body>
% \fi
%
% \PrintBackMatter
%
\endinput
