summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx')
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx2785
1 files changed, 2785 insertions, 0 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx b/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
new file mode 100644
index 0000000000..e6cb0a94e4
--- /dev/null
+++ b/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
@@ -0,0 +1,2785 @@
+% \CheckSum{2044}
+% \iffalse meta-comment
+%
+% TUD-Script -- Corporate Design of Technische Universität Dresden
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2019
+%
+% ----------------------------------------------------------------------------
+%
+% 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-pagestyle.dtx
+%<*dtx>
+% \fi
+%
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ProvidesFile{tudscr-pagestyle.dtx}[2019/08/20 v2.06c TUD-Script\space%
+ (pagestyle)%
+]
+%
+% \iffalse
+\documentclass[english,ngerman,xindy]{tudscrdoc}
+\ifpdftex{
+ \usepackage[T1]{fontenc}
+ \usepackage[ngerman=ngerman-x-latest]{hyphsubst}
+}{
+ \usepackage{fontspec}
+}
+\usepackage{babel}
+\usepackage{tudscrfonts}
+\KOMAoptions{parskip=half-}
+\usepackage{bookmark}
+\usepackage[babel]{microtype}
+
+\CodelineIndex
+\RecordChanges
+\GetFileInfo{tudscr-pagestyle.dtx}
+\title{\file{\filename}}
+\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}}
+\date{\fileversion\nobreakspace(\filedate)}
+
+\begin{document}
+ \maketitle
+ \tableofcontents
+ \DocInput{\filename}
+\end{document}
+%</dtx>
+% \fi
+%
+% \selectlanguage{ngerman}
+%
+% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A
+% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
+% \changes{v2.05}{2015/07/06}{Seitenstil für Poster}^^A
+%
+% \section{Der Seitenstil des \CDs}
+%
+% Es wird der Seitenstil des \CD der \TnUD mit Logo und dem charakteristischen
+% Querbalken im Kopfbereich definiert. Hierfür kommt das \KOMAScript-Paket
+% \pkg{scrlayer-scrpage} zum Einsatz.
+% \ToDo{Abhängigkeiten Satzspiegel<>Seitenstil beseitigen}[v2.07]
+%
+% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
+%
+% \iffalse
+%<*class&body>
+% \fi
+%
+% \subsection{Definition des Seitenstils mit dem Paket \pkg{scrlayer-scrpage}}
+%
+% Ein zentraler Bestandteil von \TUDScript ist der Seitenkopf des \CDs. Dieser
+% wird ab der Version~v2.02 mit Hilfe des Paketes \pkg{scrlayer-scrpage}
+% erzeugt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von
+% verschiedenen Befehlen wie beispielsweise von\cs{maketitle} oder \cs{part}
+% bzw. \cs{addpart} genutzt werden. Zum anderen kann der Anwender selbst diese
+% entweder direkt über die Wahl des Seitenstils oder aber mit der
+% \env{tudpage}-Umgebung nutzen.
+%
+% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv,
+% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das
+% Laden von \pkg{scrlayer-scrpage} verhindert.
+% \begin{macrocode}
+\if@tud@x@standalone@crop
+ \PreventPackageFromLoading{scrlayer-scrpage}%
+\else
+ \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}%
+\fi
+% \end{macrocode}
+% Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage}
+% genutzt. Mit diesem können verschiedene Ebenen erstellt werden, aus welchen
+% anschließend der eigentliche Seitenstil zusammengesetzt wird. Dabei werden
+% verschiedene, sogenannte Layers respektive Ebenen für die einzelnen Elemente
+% auf einer Seite erstellt.
+% \begin{macrocode}
+\AfterPackage{scrlayer-scrpage}{%
+% \end{macrocode}
+% \begin{layerpagestyle}{tudheadings}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{layerpagestyle}{plain.tudheadings}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{layerpagestyle}{empty.tudheadings}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Es wird ein neuer Seitenstil kreiert, der das \CD der \TnUD mit der
+% prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein,
+% wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket
+% \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD
+% vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum
+% Textblock gesetzt.
+% \begin{layer}{tudheadings.head.content}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD und das
+% Zweitlogo. Diese werden seit der Version~v2.04 nicht mehr in zwei getrennten
+% sondern in einer gemeinsamen Ebene gesetzt.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,headsep,%
+ addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,%
+ addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,%
+ voffset=\tud@len@logoy,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+% \end{macrocode}
+% Vor der Ausgabe der Logoboxen werden diese im Bedarfsfall neu gesetzt.
+% \begin{macrocode}
+ \tud@mainlogo@set%
+ \tud@headlogo@option@set%
+ \tud@mainlogo@use\hfill\tud@headlogo@use%
+ },%
+ ]{tudheadings.head.content}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.head.content
+% \begin{layer}{tudheadings.head.back}
+% \changes{v2.03}{2015/02/14}{neu}^^A
+% \begin{layer}{tudheadings.head.bar}
+% \changes{v2.03}{2015/02/14}{neu}^^A
+% \changes{v2.05}{2015/07/14}{Bugfix verschobener Balken}^^A
+% Außerdem gibt es eine Variante ohne Querbalken-Outline. Stattdessen werden
+% der Querbalken und der darüberliegende Kopf farbig abgesetzt.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,%
+ addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,%
+ contents={%
+ \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color
+ \color{HKS41}%
+ \rule{\layerwidth}{\layerheight}%
+ \fi%
+ },%
+ ]{tudheadings.head.back}%
+ \DeclareNewLayer[%
+ background,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ height=\tud@len@barheight,%
+ voffset=\tud@len@topmargin,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+ \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color
+ \color{HKS41!60}%
+ \setlength\@tempdima{\dimexpr\ht\strutbox-\tud@len@barheight\relax}%
+ \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi%
+ \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}%
+ \fi%
+ },%
+ ]{tudheadings.head.bar}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.head.bar
+% \end{layer}^^A tudheadings.head.back
+% \begin{layer}{tudheadings.head.text}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Fakultät, Einrichtung, Institut und Lehrstuhl als Inhalt des Querbalkens.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,headsep,%
+ voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+ \tud@head@font@set%
+ \tud@head@text@set%
+ \tud@head@text@box%
+ },%
+ ]{tudheadings.head.text}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.head.text
+% \begin{layer}{tudheadings.head.upline}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{layer}{tudheadings.head.lowline}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{layer}{tudheadings.head.uplinewide}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{layer}{tudheadings.head.lowlinewide}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Die Ebenen für obere und untere Linie des Querbalkens sowohl in der normalen
+% Version, welche den Textbereich überspannt als auch in der Variante über die
+% komplette Seitenbreite. Dabei muss für beide Varianten der entsprechenden
+% horizontale Versatz beachtet werden. Dafür wird ggf. der Parameter \val{head}
+% von \pkg{scrlayer-scrpage} verwendet.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,headsep,%
+ voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi%
+ \fi%
+ },%
+ ]{tudheadings.head.upline}%
+ \DeclareNewLayer[%
+ background,headsep,%
+ voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ -.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi%
+ \fi%
+ },%
+ ]{tudheadings.head.lowline}%
+ \DeclareNewLayer[%
+ background,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi%
+ \fi%
+ },%
+ ]{tudheadings.head.uplinewide}%
+ \DeclareNewLayer[%
+ background,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight%
+ -.5\tud@len@line\relax,%
+ addvoffset=\tud@len@layoutvoffset,%
+ contents={%
+ \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
+ \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi%
+ \fi%
+ },%
+ ]{tudheadings.head.lowlinewide}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.head.lowlinewide
+% \end{layer}^^A tudheadings.head.uplinewide
+% \end{layer}^^A tudheadings.head.lowline
+% \end{layer}^^A tudheadings.head.upline
+% \begin{layer}{tudheadings.head.date}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% Optionales Datum rechts oberhalb des Textbereiches.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ foreground,headsep,%
+ addvoffset=.5\tud@len@headsep,%
+ height=\baselineskip,%
+ contents={\if@tud@head@date\hfill\tud@date@print\fi},%
+ ]{tudheadings.head.date}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.head.date
+% \begin{layer}{tudheadings.foot.back}
+% \changes{v2.03}{2015/02/15}{neu}^^A
+% \begin{layer}{tudheadings.foot.logo}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \changes{v2.03}{2015/02/15}{überarbeitetet}^^A
+% \begin{layer}{tudheadings.foot.content}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \changes{v2.05}{2015/07/06}{Bugfix für Kompatibilitätsmodus}^^A
+% Die folgenden Ebenen dienen für die Ausgabe des Fußbereiches. Dieser kann mit
+% einem farbigen Hintergrund und zusätzlichen Logos (\cs{footlogo}) sowie frei
+% wählbare Inhalte ein- oder zweispaltig mit \cs{footcontent} erstellt werden.
+% Dabei werden die Ebenen in Abhängigkeit vom gewählten Kompatibilitätsmodus
+% unterschiedlich definiert. Die erste Ebene bestimmt die Hintergrundgestaltung
+% des Fußbereiches.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,foot,%
+ width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
+ hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
+ height=\dimexpr\tud@len@layoutheight-\layeryoffset%
+ +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,%
+ addvoffset=-\dp\strutbox,%
+ contents={%
+ \if@tud@foot@colored%
+ \let\@tempc\relax%
+ \ifdefvoid{\tud@pagecolor}{%
+ \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor
+ \def\@tempc{\color{HKS41!60}}%
+ \or% cdhead=barcolor
+ \def\@tempc{\color{HKS41!60}}%
+ \or% cdhead=color
+ \def\@tempc{\color{HKS41}}%
+ \fi%
+ }{%
+ \def\@tempc{\color{HKS41}}%
+ \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}%
+ }%
+ \ifx\@tempc\relax\else%
+ \@tempc\rule{\layerwidth}{\layerheight}%
+ \fi%
+ \fi%
+ },%
+ ]{tudheadings.foot.back}%
+% \end{macrocode}
+% Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel
+% geändert. Hier wird dem Rechnung getragen, indem der farbige Hintergrund im
+% Zweifelsfall vergrößert wird.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \ModifyLayer[%
+ addvoffset=-\tud@len@ddcdiff+\ht\strutbox,%
+ contents={%
+ \if@tud@foot@colored%
+ \let\@tempc\relax%
+ \ifdefvoid{\tud@pagecolor}{%
+ \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor
+ \def\@tempc{\color{HKS41!60}}%
+ \or% cdhead=color
+ \def\@tempc{\color{HKS41}}%
+ \fi%
+ }{%
+ \def\@tempc{\color{HKS41}}%
+ \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}%
+ }%
+ \ifx\@tempc\relax\else%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax% \tud@ddc@foot@num=false
+ \vbox to \layerheight{%
+ \vfil\@tempc%
+ \rule{\layerwidth}{%
+ \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax%
+ }%
+ }%
+ \else% \tud@ddc@foot@num!=false
+ \@tempc\rule{\layerwidth}{\layerheight}%
+ \fi%
+ \fi%
+ \fi%
+ },%
+ ]{tudheadings.foot.back}%
+ }{}%
+% \end{macrocode}
+% Die zweite Ebene wird für die Ausgabe von Drittlogos und des \DDC-Logos sowie
+% freien Inhalten im Seitenfuß erstellt. Ab Version~v2.03 wird der Satzspiegel
+% so gewählt, dass das \DDC-Logo und andere Inhalten in den normalen Seitenfuß
+% passen.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,foot,%
+ height=\dimexpr\tud@len@layoutheight-\layeryoffset%
+ +\tud@len@layoutvoffset\relax,%
+ contents={%
+% \end{macrocode}
+% Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden,
+% werden passende Standardwerte gesetzt. Außerdem wird die genutzte Höhe des
+% Layers nicht vollständig genutzt, um bei einem farbigen Fußbereich einen
+% gewissen Abstand vom Inhalt zur Kante zu erhalten.
+% \begin{macrocode}
+ \TUD@deprecated@lengthcs[%
+ \global\@tud@footlogo@option@settrue%
+ ]{footlogoheight}%
+ \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}%
+% \end{macrocode}
+% Im Bedarfsfall werden die Boxen vor der Ausgabe durch die einzelnen
+% \cs{\dots{}@use}-Befehle neu gesetzt. Danach erfolgt die Ausgabe, wobei die
+% Boxen übereinander gelegt werden.
+% \begin{macrocode}
+ \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}%
+ \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}%
+ \tud@footcontent@use{\@tempdima}{\layerwidth}%
+ },%
+ ]{tudheadings.foot.content}%
+% \end{macrocode}
+% Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel
+% geändert. Hier wird dem Rechnung getragen.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \ModifyLayer[%
+ addvoffset=-\tud@len@ddcdiff+\ht\strutbox,%
+ contents={%
+ \TUD@deprecated@lengthcs[%
+ \global\@tud@footlogo@option@settrue%
+ ]{footlogoheight}%
+ \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax% \tud@ddc@foot@num=false
+ \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}%
+ \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax%
+ \fi%
+ \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}%
+ \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}%
+ \tud@footcontent@use{\@tempdima}{\layerwidth}%
+ },%
+ ]{tudheadings.foot.content}%
+ }{}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.foot.content
+% \end{layer}^^A tudheadings.foot.logo
+% \end{layer}^^A tudheadings.foot.back
+% \begin{layer}{tudheadings.last}
+% \changes{v2.04}{2015/04/02}{neu}^^A
+% Die letzte Ebene dient nicht der Ausgabe eines bestimmten Inhaltes sondern
+% wird für evtl. notwendige Aufräumarbeiten etc. bereitgehalten.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,%
+% \end{macrocode}
+% Falls ein Kapitel ohne die Option \opt{chapterpage} gesetzt wird und dennoch
+% die Gestalt des Kopfes des \pgs{tudheadings}-Seitenstils sich vom restlichen
+% Dokument unterscheiden soll (\opt{cd} bzw. \opt{cdchapter}), so dient das
+% Makro \cs{tud@head@bar@restore} zum Zurücksetzen auf das normale Verhalten.
+% Siehe \cs{tud@chapter@app}.
+% \begin{macrocode}
+%<book|report> contents=\tud@head@bar@restore,%
+ ]{tudheadings.last}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.last
+% Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile
+% zusammengesetzt. Als erstes wird der \pgs{headings}-Seitenstil definiert.
+% Dieser verwendet den TUD-Kopf und die Fußzeilenebenen des Seitenstils
+% \pgs{scrheadings}, welche zur Definition des Seitenstils verwendet werden.
+% Beim Aktivieren des Seitenstils wird außerdem \cs{tud@ps@init} ausgeführt.
+% Damit die Benutzerschnittstelle von \pkg{scrlayer-scrpage} für die Fußzeile
+% weiterhin durch den Anwender verwendet werden kann, werden wie erwähnt die
+% entsprechenden \pgs{scrheadings}-Ebenen verwendet.
+% \begin{macrocode}
+ \DeclareNewPageStyleByLayers[%
+ onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground%
+ ]{tudheadings}{%
+ tudheadings.head.back,%
+ tudheadings.head.content,%
+ tudheadings.head.bar,%
+ tudheadings.head.text,%
+ tudheadings.head.upline,%
+ tudheadings.head.lowline,%
+ tudheadings.head.uplinewide,%
+ tudheadings.head.lowlinewide,%
+ tudheadings.head.date,%
+ tudheadings.foot.back,%
+ tudheadings.foot.content,%
+ tudheadings.last,%
+ scrheadings.foot.odd,%
+ scrheadings.foot.even,%
+ scrheadings.foot.oneside,%
+ scrheadings.foot.above.line,%
+ scrheadings.foot.below.line%
+ }%
+% \end{macrocode}
+% Zuletzt werden Aliasnamen für den Seitenstil definiert.
+% \begin{macrocode}
+ \DeclareNewPageStyleAlias{tud}{tudheadings}%
+ \DeclareNewPageStyleAlias{tudscr}{tudheadings}%
+ \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}%
+% \end{macrocode}
+% Für den \pgs{plain}-Seitenstil wird ebenso verfahren. Hier werden für die
+% Fußzeilenebenen des Seitenstils \pgs{plain.scrheadings} hinzugefügt.
+% \begin{macrocode}
+ \DeclareNewPageStyleByLayers[%
+ onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground%
+ ]{plain.tudheadings}{%
+ tudheadings.head.back,%
+ tudheadings.head.content,%
+ tudheadings.head.bar,%
+ tudheadings.head.text,%
+ tudheadings.head.upline,%
+ tudheadings.head.lowline,%
+ tudheadings.head.uplinewide,%
+ tudheadings.head.lowlinewide,%
+ tudheadings.head.date,%
+ tudheadings.foot.back,%
+ tudheadings.foot.content,%
+ tudheadings.last,%
+ plain.scrheadings.foot.odd,%
+ plain.scrheadings.foot.even,%
+ plain.scrheadings.foot.oneside,%
+ plain.scrheadings.foot.above.line,%
+ plain.scrheadings.foot.below.line%
+ }%
+ \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}%
+ \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}%
+ \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}%
+ \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}%
+ \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}%
+% \end{macrocode}
+% Des Weiteren gibt es einen selbstständigen \enquote{leeren} Seitenstil, der
+% lediglich aus dem Kopf besteht und einen lerren Seitenfuß hat.
+% \begin{macrocode}
+ \DeclareNewPageStyleByLayers[%
+ onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground%
+ ]{empty.tudheadings}{%
+ tudheadings.head.back,%
+ tudheadings.head.content,%
+ tudheadings.head.bar,%
+ tudheadings.head.text,%
+ tudheadings.head.upline,%
+ tudheadings.head.lowline,%
+ tudheadings.head.uplinewide,%
+ tudheadings.head.lowlinewide,%
+ tudheadings.head.date,%
+ tudheadings.foot.back,%
+ tudheadings.foot.content,%
+ tudheadings.last%
+ }%
+ \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}%
+ \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}%
+ \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}%
+ \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}%
+ \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}%
+% \end{macrocode}
+% \begin{layer}{tudheadings.pagecolor}
+% \changes{v2.03}{2015/01/09}{neu}^^A
+% Um farbige Titel- Teil- und Kapitelseiten \emph{unabhängig} vom aktuell
+% verwendeten Seitenstil erstellen zu können, wird die zusätzliche Ebene
+% \val{tudheadings.pagecolor} definiert, die \emph{allen} Seitenstilen
+% hinzugefügt wird. Dabei dient das Makros \cs{tud@pagecolor} zum Umschalten
+% der Hintergrundfarben.
+% \begin{macrocode}
+ \DeclareNewLayer[%
+ background,%
+ area=%
+ {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}%
+ {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}%
+ {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}%
+ {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}%
+ ,%
+ contents={%
+ \ifdefvoid{\tud@pagecolor}{}{%
+ \color{\tud@pagecolor}%
+ \rule{\layerwidth}{\layerheight}%
+ }%
+ },%
+ ]{tudheadings.pagecolor}%
+ \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}%
+% \end{macrocode}
+% \end{layer}^^A tudheadings.pagecolor
+% Damit wurden alle Ebenen und die darauf aufbauenden Seitenstile deklariert.
+% \end{layerpagestyle}^^A empty.tudheadings
+% \end{layerpagestyle}^^A plain.tudheadings
+% \end{layerpagestyle}^^A tudheadings
+% Damit ist die Deklaration der Seitenstile mit \pkg{scrlayer-scrpage} beendet.
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+% \subsubsection{Erweitertung der Seitenstilauswahl}
+%
+% Da sich die zuvor definierten Seitenstile von den Standardseitenstilen stark
+% unterscheiden und auch einen separaten Satzspiegel benötigen, sind einige
+% Makros zur Kontrollstrukturierung notwendig.
+%
+% \begin{macro}{\tud@if@tudheadings}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\tud@ps@list}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Mit dem Befehl \cs{tud@if@tudheadings} kann geprüft werden, ob der im ersten
+% Argument gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein
+% kann, welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den
+% aktuellen Seitenstil beinhaltet~-- einem aus der Liste \cs{tud@ps@list}
+% entspricht. Ist dies der Fall, wird das zweite Argument ausgeführt,
+% anderfalls das dritte. In die Liste \cs{tud@ps@list} werden die drei zuvor
+% definierten Seitenstile eingetragen.
+% \begin{macrocode}
+\newcommand*\tud@ps@list{}
+\listadd\tud@ps@list{tudheadings}
+\listadd\tud@ps@list{plain.tudheadings}
+\listadd\tud@ps@list{empty.tudheadings}
+\newcommand*\tud@if@tudheadings[3]{%
+ \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ps@list
+% \end{macro}^^A \tud@if@tudheadings
+% \begin{macro}{\thispagestyle}
+% \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}^^A
+% Wird der Befehl \cs{thispagestyle} verwendet, muss dafür Sorge getragen
+% werden, dass kein Alias-Seitenstil expandiert wird.
+% \begin{macrocode}
+\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{%
+ \xdef\@specialstyle{\GetRealPageStyle{#1}}%
+}{}{\tud@patch@wrn{thispagestyle}}
+% \end{macrocode}
+% \end{macro}^^A \thispagestyle
+% \begin{macro}{\pagestyle}
+% \changes{v2.04}{2015/06/18}{Aktivierung der Seitenstile \pgs{tudheadings} vor
+% \pkg{scrlayer-scrpage} möglich}^^A
+% \begin{macro}{\tud@pagestyle}
+% \changes{v2.04}{2015/06/18}{neu}
+% Für den Fall, dass das Paket \pkg{scrlayer-scrpage} nicht geladen wird und
+% dennoch das Makro \cs{currentpagestyle} wie erwartet definiert ist, wird der
+% originale Befehl etwas angepasst.
+% \begin{macrocode}
+\newcommand*\tud@pagestyle{}
+\let\tud@pagestyle\pagestyle
+\newcommand*\currentpagestyle{plain}
+\pretocmd{\tud@pagestyle}{%
+ \tud@BeforeSelectAnyPageStyle{#1}%
+ \edef\currentpagestyle{#1}%
+}{}{\tud@patch@wrn{pagestyle}}
+% \end{macrocode}
+% Damit die neuen Seitenstile auch vor dem Laden von \pkg{scrlayer-scrpage}
+% bereits durch den Anwender ausgewählt werden können, wird \cs{pagestyle}
+% temporär zurechtgebogen. Die Definition des Makros wird gesichert und direkt
+% vor dem Laden des Paketes wiederhergestellt. Damit werden die Seitenstile
+% erst aktiviert, nachdem diese auch tatsächlich erstellt wurden.
+% \begin{macrocode}
+\tud@cs@store{pagestyle}
+\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}}
+\BeforePackage{scrlayer-scrpage}{%
+ \tud@cs@restore{pagestyle}%
+ \undef\tud@pagestyle%
+ \undef\currentpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@pagestyle
+% \end{macro}^^A \pagestyle
+% Die Seitenstile und Satzspiegel korrelieren sehr stark, weshalb das Paket
+% \pkg{scrlayer-scrpage} geladen sein muss und auch alle darauf aufbauenden
+% Einstellungen abgeschlossen sein müssen, um die Satzspiegel zu definieren.
+% \ToDo{Abhängigkeiten Satzspiegel<>Seitenstil beseitigen}[v2.07]
+% \begin{macrocode}
+\AfterPackage!{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}}
+% \end{macrocode}
+% \begin{macro}{\ps@tudheadings}
+% \begin{macro}{\ps@plain.tudheadings}
+% \begin{macro}{\ps@empty.tudheadings}
+% \begin{macro}{\currentpagestyle}
+% \begin{macro}{\BeforeSelectAnyPageStyle}
+% \begin{macro}{\GetRealPageStyle}
+% Um die rudimentäre Verwendung der Klassen auch zu ermöglichen, wenn das Laden
+% des Paketes \pkg{scrlayer-scrpage} verhindert wurde, werden für diesen Fall
+% einige notwendige Makros definiert.
+% \begin{macrocode}
+\TUD@UnwindPackage{scrlayer-scrpage}{%
+ \ifcsundef{if@chapter}{%
+ \newif\if@chapter%
+ \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}%
+ }{}%
+ \cslet{ps@tudheadings}{\ps@headings}%
+ \cslet{ps@plain.tudheadings}{\ps@plain}%
+ \cslet{ps@empty.tudheadings}{\ps@empty}%
+ \providecommand*\currentpagestyle{plain}%
+ \providecommand*\BeforeSelectAnyPageStyle[1]{}%
+ \providecommand*\GetRealPageStyle[1]{#1}%
+% \end{macrocode}
+% Außerdem wird die angepasste Definition von \cs{pagestyle} verwendet.
+% \begin{macrocode}
+ \let\pagestyle\tud@pagestyle%
+ \undef\tud@pagestyle%
+% \end{macrocode}
+% Das Erstellen des Satzsiegels erfolgt normalerweise nach dem Paket.
+% \begin{macrocode}
+ \tud@cdgeometry@init%
+}
+% \end{macrocode}
+% \end{macro}^^A \GetRealPageStyle
+% \end{macro}^^A \BeforeSelectAnyPageStyle
+% \end{macro}^^A \currentpagestyle
+% \end{macro}^^A \ps@empty.tudheadings
+% \end{macro}^^A \ps@plain.tudheadings
+% \end{macro}^^A \ps@tudheadings
+% \begin{macro}{\tud@ps@onselect}
+% \changes{v2.03}{2015/01/09}{neu}^^A
+% Der Befehl wird bei der Initialisierung der Seitenstile aufgerufen.
+% \begin{macrocode}
+\newcommand*\tud@ps@onselect{%
+% \end{macrocode}
+% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf
+% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten
+% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für
+% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt.
+% Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile,
+% weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll
+% dennoch ermöglicht werden.
+% \begin{macrocode}
+ \DeclarePageStyleAlias{plain}{plain.tudheadings}%
+ \DeclarePageStyleAlias{headings}{tudheadings}%
+ \def\sls@currentheadings{tudheadings}%
+ \def\sls@currentplain{plain.tudheadings}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ps@onselect
+%
+% \subsubsection{Gestaltungsvarianten für Kopf- und Fußzeile}
+%
+% \begin{macro}{\tud@ps@onbackground}
+% \changes{v2.03}{2015/02/14}{neu}^^A
+% \changes{v2.04}{2015/04/21}{Kopf- und Fußeinstellungen abhängig von der Farbe
+% des Seitenhintergrunds}^^A
+% \begin{macro}{\tud@head@logocolor}
+% \begin{macro}{\tud@head@fontcolor}
+% \changes{v2.04}{2015/05/18}{neu}^^A
+% \begin{macro}{\tud@foot@logocolor}
+% \changes{v2.03}{2015/02/15}{neu}^^A
+% \begin{macro}{\tud@foot@fontcolor}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% Das Makro \cs{tud@head@logocolor} enthält die Farbe des Kopfes. Die Gestalt
+% des Querbalkens kann über die Option \opt{cdhead} geändert werden. Für Titel,
+% Teil und Kapitel gibt es speziell dazugehörige Optionen, womit das Aussehen
+% des Kopfes ggf. angepasst werden kann. Mit \cs{tud@foot@logocolor} kann
+% die Farbe eines etwaigen \DDC-Logo gleichermaßen festgelegt werden, in
+% \cs{tud@foot@fontcolor} wird ggf. die Schriftfarbe für den Fuß gespeichert.
+% Um die Optionen innerhalb des Dokumentes ändern zu können, werden die
+% Anpassungen bei jeder Ausgabe eines Seitenstiles mit \cs{tud@ps@onbackground}
+% ausgeführt.
+% \begin{macrocode}
+\newcommand*\tud@head@logocolor{black}
+\newcommand*\tud@head@fontcolor{}
+\newcommand*\tud@foot@logocolor{black}
+\newcommand*\tud@foot@fontcolor{}
+\newcommand*\tud@ps@onbackground{%
+% \end{macrocode}
+% Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe für den
+% Kopf\dots
+% \begin{macrocode}
+ \ifdefvoid{\tud@pagecolor}{%
+ \ifcase\tud@head@bar@num\relax% cdhead=nocolor
+ \renewcommand*\tud@head@logocolor{black}%
+ \renewcommand*\tud@head@fontcolor{}%
+ \or% cdhead=litecolor
+ \renewcommand*\tud@head@logocolor{HKS41}%
+ \renewcommand*\tud@head@fontcolor{HKS41}%
+ \or% cdhead=barcolor
+ \renewcommand*\tud@head@logocolor{HKS41}%
+ \renewcommand*\tud@head@fontcolor{white}%
+ \or% cdhead=color
+ \renewcommand*\tud@head@logocolor{white}%
+ \renewcommand*\tud@head@fontcolor{white}%
+ \fi%
+% \end{macrocode}
+% \dots und den Fuß.
+% \begin{macrocode}
+ \ifcase\tud@head@bar@num\relax% cdhead=nocolor
+ \renewcommand*\tud@foot@logocolor{black}%
+ \renewcommand*\tud@foot@fontcolor{}%
+ \if@tud@foot@colored%
+ \ClassWarning{\TUD@Class@Name}{%
+ It isn't possible to use a colored foot together\MessageBreak%
+ with a non-colored head (`cdhead=nocolor')%
+ }%
+ \fi%
+ \else% cdhead=*color
+ \if@tud@foot@colored%
+ \renewcommand*\tud@foot@logocolor{white}%
+ \renewcommand*\tud@foot@fontcolor{white}%
+ \else%
+ \renewcommand*\tud@foot@logocolor{HKS41}%
+ \renewcommand*\tud@foot@fontcolor{HKS41}%
+ \fi%
+ \fi%
+ }{%
+% \end{macrocode}
+% Die Einstellungen für Seiten mit Hintergrundfarbe variieren davon. Zuerst die
+% für farbige Titel- und Teileseiten\dots
+% \begin{macrocode}
+ \tud@locked@bool@preset{@tud@head@widebar}{true}%
+ \ifstr{\tud@pagecolor}{HKS41}{%
+ \renewcommand*\tud@head@logocolor{white}%
+ \renewcommand*\tud@head@fontcolor{white}%
+ \renewcommand*\tud@foot@logocolor{white}%
+% \end{macrocode}
+% Die Farbe für die Schrift im Fuß wird für Poster immer weiß gesetzt, falls
+% über die Option \opt{backcolor} für den Seitenhintergrund die primäre
+% Hausfarbe genutzt wird.
+% \begin{macrocode}
+%<*book|report|article>
+ \if@tud@foot@colored%
+%</book|report|article>
+ \renewcommand*\tud@foot@fontcolor{white}%
+%<*book|report|article>
+ \else%
+ \renewcommand*\tud@foot@fontcolor{HKS41!30}%
+ \fi%
+%</book|report|article>
+% \end{macrocode}
+% \dots sowie die für die farbigen Kapitelseiten.
+% \begin{macrocode}
+ }{%
+ \renewcommand*\tud@head@logocolor{HKS41}%
+ \renewcommand*\tud@head@fontcolor{HKS41}%
+ \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color
+ \renewcommand*\tud@head@logocolor{white}%
+ \renewcommand*\tud@head@fontcolor{white}%
+ \fi%
+ \if@tud@foot@colored%
+ \renewcommand*\tud@foot@logocolor{white}%
+ \renewcommand*\tud@foot@fontcolor{white}%
+ \else%
+ \renewcommand*\tud@foot@logocolor{HKS41}%
+ \renewcommand*\tud@foot@fontcolor{HKS41}%
+ \fi%
+ }%
+ }%
+% \end{macrocode}
+% Abhängig von der eingestzten Schriftfarbe des Kopfes wird die Linienstärke
+% des Querbalkens gesetzt, die Schriftfarbe des Fußes wird global geändert,
+% damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden.
+% \begin{macrocode}
+ \let\tud@len@line\tud@len@thinline%
+ \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}%
+ \global\let\tud@foot@fontcolor\tud@foot@fontcolor%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@foot@fontcolor
+% \end{macro}^^A \tud@foot@logocolor
+% \end{macro}^^A \tud@head@fontcolor
+% \end{macro}^^A \tud@head@logocolor
+% \end{macro}^^A \tud@ps@onbackground
+%
+% \subsubsection{Inhalt des Querbalkens in der Kopfzeile}
+%
+% Mit dem Makro \cs{tud@head@font@set} wird die zu verwendende Schrift für den
+% Querbalken definiert. Hier wird der zu verwendende Inhalt formatiert.
+%
+% \begin{macro}{\tud@head@text@line}
+% \begin{macro}{\tud@head@text@list}
+% \changes{v2.05}{2015/11/26}{neu}^^A
+% \begin{macro}{\tud@head@text@delimiter}
+% \begin{macro}{\tud@head@text@buffer}
+% Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und
+% unterhalb des Querbalkens des TUD-Kopfes dienen.
+% \begin{macrocode}
+\newcommand*\tud@head@text@line{}
+\newcommand*\tud@head@text@list{}
+\newcommand*\tud@head@text@delimiter{}
+\newcommand*\tud@head@text@buffer{}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@buffer
+% \end{macro}^^A \tud@head@text@delimiter
+% \end{macro}^^A \tud@head@text@list
+% \end{macro}^^A \tud@head@text@line
+% \begin{macro}{\tud@head@text@add}
+% \changes{v2.04}{2015/04/08}{Verwendung von \cs{protected@edef}}^^A
+% \changes{v2.05}{2015/11/26}{Redesign}^^A
+% Dieser Befehl dient zum Füllen einer Liste für die spätere Ausgabe der
+% Kopfzeilenfelder. Es werden sequentiellalle potenziellen Felder hinzugefügt.
+% Sollte das hinzuzufügende Feld dazu führen, dass der Text der Kopfzeile über
+% den Seitenrand hinausragen würde, so wird eine weitere Zeile begonnen. Das
+% Trennzeichen zwischen einzelnen Feldern muss gepuffert werden, da dieses nur
+% gesetzt werden soll, wenn ein weiteres Feld nachfolgt.
+% \begin{macrocode}
+\newcommand*\tud@head@text@add[3][{, }]{%
+ \ifxblank{#3}{}{%
+ \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}%
+ \def\tud@head@text@buffer{#1}%
+ \edef\@tempa{%
+ \expandonce\tud@head@text@line%
+ \expandonce\tud@head@text@delimiter%
+ \etex@unexpanded{#2#3}%
+ }%
+% \end{macrocode}
+% Sollte das hinzuzufügende Feld die aktuelle Kopfzeile \cs{tud@head@text@line}
+% über die Textbreite hinaus erweitern, wird der bisherige Inhalt in die Liste
+% \cs{tud@head@text@list} gespeichert und eine neue mit dem aktuellen Inhalt
+% begonnen. Andernfalls wird der aktuelle Inhalt dem bestehenden hinzugefügt.
+% \begin{macrocode}
+ \settowidth\@tempdima{\@tempa}%
+ \ifdim\@tempdima>\textwidth\relax%
+ \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}%
+ \protected@edef\tud@head@text@line{#2#3}%
+ \else%
+ \edef\tud@head@text@line{\expandonce\@tempa}%
+ \fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@add
+% \begin{macro}{\tud@head@text@set}
+% \changes{v2.05}{2015/11/28}{neu}^^A
+% \begin{macro}{\tud@head@text@wrn}
+% \begin{macro}{\if@tud@head@text@set}
+% \changes{v2.05}{2015/11/28}{neu}^^A
+% Für die Felder im Kopf wird bei einer Änderung dieser die Warnung bezüglich
+% der zu großen Breite der Kopfinformationen, was bei kleinen Papierformaten
+% geschehen kann, (re-)definiert.
+% \begin{macrocode}
+\newif\if@tud@head@text@set
+\newcommand*\tud@head@text@wrn[1]{}
+\newcommand*\tud@head@text@set{%
+ \if@tud@head@text@set%
+% \end{macrocode}
+% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben.
+% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine weitere
+% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der
+% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der einzelnen
+% Textzeilen im Kopf, die in \cs{tud@head@text@list} gesichert werden, erfolgt
+% mit \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Die
+% dafür benötigten Hilfsmakros werden vor der Verwendung initialisiert.
+% \begin{macrocode}
+ \let\tud@head@text@line\@empty%
+ \let\tud@head@text@list\@empty%
+ \let\tud@head@text@buffer\@empty%
+ \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}%
+ \tud@head@text@add{\tud@head@font@light}{\@department}%
+ \tud@head@text@add{\tud@head@font@light}{\@institute}%
+ \tud@head@text@add{\tud@head@font@light}{\@chair}%
+% \end{macrocode}
+% Ganz zum Schluss wird der Rest aus \cs{tud@head@text@line} ebenso wie ggf.
+% die zusätzliche Zeile in die Liste expandiert.
+% \begin{macrocode}
+ \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}%
+ \ifxblank{\@extraheadline}{}{%
+ \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}%
+ }%
+ \gdef\tud@head@text@wrn##1{%
+ \ClassWarning{\TUD@Class@Name}{%
+ The given entries for the headline\MessageBreak%
+ (faculty, institute etc.) are ##1\MessageBreak%
+ too wide for the textwidth%
+ }%
+ }%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@head@text@set
+% \end{macro}^^A \tud@head@text@wrn
+% \end{macro}^^A \tud@head@text@set
+% \begin{macro}{\tud@head@text@box}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.03}{2015/01/09}{Zweite Zeile wird auch leer gesetzt.}^^A
+% Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile.
+% \begin{macrocode}
+\newcommand*\tud@head@text@box{%
+% \end{macrocode}
+% Die Ausgabe der Textzeile(n) mit Fakultät etc. im Kopfbereiche erfolgt über
+% das Makro \cs{tud@head@text@write}. Hierbei ist zu beachten, dass für die
+% erste Zeile bei einem zweifarbigem Kopf eine andere Textfarbe als für die
+% restlichen benötigt wird. Außerdem ist für diese aufgrund der Linien im
+% Querbalken ein etwas größerer Abstand zur zweiten Zeile notwendig, weshalb
+% die temporären Makros \cs{@tempb} und \cs{@tempc} einmalig genutzt werden.
+% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes.
+% \begin{macrocode}
+ \def\@tempb{\tud@color{\tud@head@fontcolor}}%
+ \def\@tempc{\depth+\tud@len@heavyline}%
+% \end{macrocode}
+% Das Makro \cs{@tempa} wird zur Ababreitung der Liste \cs{tud@head@text@list}
+% definiert.
+% \begin{macrocode}
+ \def\@tempa##1{%
+ \settowidth\@tempdima{##1}%
+% \end{macrocode}
+% Sollte eine der Textzeilen zu lang sein, was insbesondere bei kleineren
+% Papierformaten vorkommen kann, dann wird eine Warnung ausgegeben.
+% \begin{macrocode}
+ \ifdim\@tempdima>\textwidth\relax%
+ \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}%
+ \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax%
+ \hfuzz=\dimexpr\@tempdima-\textwidth\relax%
+ \fi%
+ \fi%
+ \@tempb%
+ \tud@head@text@write[\@tempc]{##1}%
+ \def\@tempb{\newline}%
+ \def\@tempc{\z@}%
+% \end{macrocode}
+% Die weiteren Zeilen sind bei zweifarbigen Kopf normalerweise blau, nur für
+% einen dunklen Seitenhintergrund weiß.
+% \begin{macrocode}
+ \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color
+ \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{%
+ \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}%
+ }%
+ \fi%
+ }%
+% \end{macrocode}
+% Dies ist nun die eigentliche Ausgabe, welche in einer vertikalen Box erfolgt.
+% \begin{macrocode}
+ \vbox{%
+% \end{macrocode}
+% Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um
+% den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu
+% lassen, wird dies hier temporär unterdrückt.
+% \begin{macrocode}
+ \let\@raggedtwoe@everyselectfont\relax%
+ \setlength\spaceskip{\z@}%
+ \selectfont%
+ \offinterlineskip%
+ \forlistloop\@tempa{\tud@head@text@list}%
+ }%
+ \global\let\tud@head@text@wrn\@gobble%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@box
+% \begin{macro}{\tud@head@text@write}
+% \changes{v2.02}{2014/06/23}{Vertikaler Freiraum für Ober- und Unterlängen
+% mit \cs{vphantom} eingefügt}^^A
+% \changes{v2.02}{2014/12/04}{Zentrierung des Zeilentextes}^^A
+% Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf
+% \begin{macrocode}
+\newcommand*\tud@head@text@write[2][\z@]{%
+ \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[%
+ \dimexpr\tud@len@barheight-\depth\relax%
+ ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@text@write
+% \begin{macro}{\tud@head@rule}
+% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}^^A
+% Der Querbalken des Kopfes läuft je nach Parameterwahl \cs{tud@head@bar@num}
+% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite.
+% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und
+% über \cs{tud@len@line} definierter Dicke.
+% \begin{macrocode}
+\newcommand*\tud@head@rule[1]{%
+ \tud@color{\tud@head@fontcolor}%
+ \rule[\ht\strutbox]{#1}{\tud@len@line}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@head@rule
+%
+% \subsubsection{Boxen für Layerinhalte}
+%
+% \begin{macro}{\tud@newlayerbox}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@savelayerbox}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@uselayerbox}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Die Inhalte für Kopf und Fuß der \pgs{tudheadings}-Seitenstile~-- sprich das
+% Logo der \TnUD, die \DDC-Logos, ein mögliches Zweilogo sowie die Logos und
+% Inhalte im Fuß werden in Boxen gesetzt, um die Anzahl der benötigten Aufrufe
+% von \cs{includegraphics} möglichst gering zu halten.
+% \begin{macrocode}
+\newcommand*\tud@newlayerbox[1]{%
+ \expandafter\newsavebox\csname tud@layer@#1\endcsname%
+}
+\newcommand*\tud@savelayerbox[1]{%
+ \global\expandafter\sbox\csname tud@layer@#1\endcsname%
+}
+\newcommand*\tud@uselayerbox[1]{%
+ \expandafter\usebox\csname tud@layer@#1\endcsname%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@uselayerbox
+% \end{macro}^^A \tud@savelayerbox
+% \end{macro}^^A \tud@newlayerbox
+% \begin{macro}{\tud@vlayerbox}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Für die Ausgabe der Logos und Inhalte wird dieser Befehl definiert. Dieser
+% setzt die im zweiten Argument angegebenen Inhalte in eine vertikale Box,
+% deren gewünschte Höhe im ersten Argument angegeben wird. Für den Fall, dass
+% die gewünschten Inhalte die maximale Höhe überschreiten, wird eine Warnung
+% erzeugt. Der Inhalt dieser Warnung wird im dritten Argument angegeben. Damit
+% soll dem Anwender geholfen werden, in diesem Fall die richtigen Maßnahmen zu
+% ergreifen und nicht lediglich eine Meldung einer zu übervollen \cs{vbox} zu
+% erhalten.
+% \begin{macrocode}
+\newcommand*\tud@vlayerbox[3]{%
+ \begingroup%
+ \setbox\z@\vbox{#2}%
+ \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}%
+ \ifdim\@tempdima>\z@\relax%
+ \ClassWarning{\TUD@Class@Name}{%
+ #3\MessageBreak%
+ The maximum height is exceeded by \the\@tempdima\MessageBreak%
+ }%
+ \fi%
+ \endgroup%
+ \vbox to #1{#2}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@vlayerbox
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \subsection{Der Kopfbereich der Seitenstile}
+%
+% Es folgen Option und Befehle zur Gestaltung des Kopfbereichs mit Hauptlogo,
+% Querbalken und ggf. Zweitlogo.
+%
+% \begin{option}{cdhead}
+% \changes{v2.03}{2015/01/29}{neu}^^A
+% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
+% \begin{macro}{\tud@head@font@num}
+% \changes{v2.03}{2015/02/04}{neu}^^A
+% \begin{macro}{\if@tud@head@font@num@locked}
+% \changes{v2.03}{2015/02/04}{neu}^^A
+% \begin{macro}{\tud@head@bar@num}
+% \changes{v2.03}{2015/02/04}{neu}^^A
+% \begin{macro}{\if@tud@head@bar@num@locked}
+% \changes{v2.04}{2015/04/01}{neu}^^A
+% \begin{macro}{\if@tud@head@widebar}
+% \changes{v2.03}{2015/02/14}{neu}^^A
+% \begin{macro}{\if@tud@head@widebar@locked}
+% \changes{v2.03}{2015/02/14}{neu}^^A
+% \begin{macro}{\if@tud@head@font@set}
+% \begin{macro}{\if@tud@head@date}
+% \changes{v2.05}{2016/05/27}{neu}^^A
+% Mit dieser Option wird die zentrale Benutzerschnittstelle für Einstellungen
+% des typischen Querbalkens für den TUD-Kopf geschaffen. Durch sie können
+% sowohl die verwendete Schrift als auch die Stärke für den Balkentext
+% (Institut, Fakultät etc.) geändert werden. Zusätzlich ist die Laufweite des
+% Querbalkens bzw. die Farbe einstellbar.
+% \begin{macrocode}
+\tud@locked@newnum{tud@head@font@num}{0}
+\tud@locked@newnum{tud@head@bar@num}{0}
+\tud@locked@newbool{@tud@head@widebar}
+\newif\if@tud@head@font@set
+\newif\if@tud@head@date
+\TUD@key{cdhead}[true]{%
+ \TUD@set@numkey{cdhead}{@tempa}{%
+ \TUD@bool@numkey,%
+ {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},%
+ {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},%
+ {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},%
+ {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},%
+ {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},%
+ {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},%
+ {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},%
+ {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},%
+ {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},%
+ {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},%
+ {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},%
+ {color}{6},{colour}{6},%
+ {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},%
+ {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},%
+ {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},%
+ {paperwidth}{8},{wide}{8},{widehead}{8},%
+ {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},%
+ {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% false
+ \tud@locked@num@set{tud@head@font@num}{0}%
+ \or% true
+ \tud@locked@num@set{tud@head@font@num}{1}%
+ \or% heavy
+ \tud@locked@num@set{tud@head@font@num}{2}%
+ \or% nocolor
+ \tud@locked@num@set{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% color
+ \tud@locked@num@set{tud@head@bar@num}{3}%
+ \or% textwidth
+ \tud@locked@bool@set{@tud@head@widebar}{false}%
+ \or% paperwidth
+ \tud@locked@bool@set{@tud@head@widebar}{true}%
+ \or% date
+ \@tud@head@datetrue%
+ \or% nodate
+ \@tud@head@datefalse%
+ \fi%
+ \ifnum\@tempa<\thr@@\relax%
+ \global\@tud@head@font@settrue%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@head@date
+% \end{macro}^^A \if@tud@head@font@set
+% \end{macro}^^A \if@tud@head@widebar@locked
+% \end{macro}^^A \if@tud@head@widebar
+% \end{macro}^^A \if@tud@head@bar@num@locked
+% \end{macro}^^A \tud@head@bar@num
+% \end{macro}^^A \if@tud@head@font@num@locked
+% \end{macro}^^A \tud@head@font@num
+% \end{option}^^A cdhead
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@layer@main@black}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@layer@main@HKS41}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@layer@main@white}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Diese drei Boxen werden für das Logo der \TnUD reserviert. Abhängig von der
+% gewählten Option des Layouts und der Seitenfarbe wird eine der Logos in der
+% notwendigen Farbe ausgewählt.
+% \begin{macrocode}
+\tud@newlayerbox{main@black}
+\tud@newlayerbox{main@HKS41}
+\tud@newlayerbox{main@white}
+% \end{macrocode}
+% \end{macro}^^A \tud@layer@main@white
+% \end{macro}^^A \tud@layer@main@HKS41
+% \end{macro}^^A \tud@layer@main@black
+%
+% \subsubsection{Das Hauptlogo der \TnUD}
+%
+% \begin{macro}{\tud@mainlogo@set}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\if@tud@mainlogo@wrn}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{length}{\tud@len@mainlogoheight}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@mainlogo@wrn}
+% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}^^A
+% Das Makro \cs{tud@mainlogo@set} setzt sowohl das Logo der \TnUD als auch~--
+% durch den Aufruf der entsprechenden Befehle zum Schluss~-- alle weiteren
+% Logos und Inhalte im Kopf und Fuß. Dies geschieht nach jeder Änderung des
+% Satzspiegels beim Ausführen der einzelnen Seitenstil-Layer. Dafür wird der
+% Schalter \cs{if@tud@mainlogo@set} im Hook \cs{tud@AfterChangingArea} gesetzt.
+% \begin{macrocode}
+\newlength\tud@len@mainlogoheight
+\newcommand*\tud@mainlogo@wrn[1]{}
+\newif\if@tud@mainlogo@set
+\newcommand*\tud@mainlogo@set{%
+ \if@tud@mainlogo@set%
+ \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}%
+ \tud@savelayerbox{main@black}{\@tempa{TUD-black}}%
+ \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}%
+ \tud@savelayerbox{main@white}{\@tempa{TUD-white}}%
+ \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}%
+ \global\tud@len@mainlogoheight=\tud@len@mainlogoheight%
+% \end{macrocode}
+% Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea}
+% über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb
+% des Druckrandes liegt. Dies kann beispielsweise bei kleinen Papierformaten,
+% zweiseitigem Satz und/oder einem zu großen \opt{DIV}-Wertes passieren. Es
+% wird in diesem Fall eine Warnung ausgegeben, damit das Problem durch den
+% Anwender behoben werden kann.
+% \begin{macrocode}
+ \gdef\tud@mainlogo@wrn##1{%
+ \ifdim##1<\ta@bcor\relax%
+ \ClassWarning{\TUD@Class@Name}{%
+ The selected page layout means that the\MessageBreak%
+ logo of TUD extends beyond the printing area. \MessageBreak%
+ The inner margin is smaller than BCOR\MessageBreak%
+ (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak%
+ Maybe you should decrease the current value\MessageBreak%
+ of DIV (`DIV=\the\ta@div')%
+ }%
+ \global\let\tud@mainlogo@wrn\@gobble%
+ \fi%
+ }%
+% \end{macrocode}
+% Hier werden die beiden Makros aufgerufen, um die Inhalte von Kopf und Fuß in
+% den Boxen in der richtigen Größe neu zu setzen.
+% \begin{macrocode}
+ \tud@headlogo@set%
+ \@tud@footlogo@option@settrue%
+ \tud@footlogo@option@set%
+ \global\@tud@mainlogo@setfalse%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@mainlogo@wrn
+% \end{length}^^A \tud@len@mainlogoheight
+% \end{macro}^^A \if@tud@mainlogo@set
+% \end{macro}^^A \tud@mainlogo@set
+% \begin{macro}{\tud@mainlogo@use}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Hiermit erfolgt die Ausgabe der gespeicherten Boxen für das Logo der \TnUD,
+% wobei \cs{tud@head@logocolor} die Farbe festlegt.
+% \begin{macrocode}
+\newcommand*\tud@mainlogo@use{%
+ \tud@mainlogo@wrn{%
+ \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax%
+ }%
+ \tud@uselayerbox{main@\tud@head@logocolor}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@mainlogo@use
+%
+% \subsubsection{Optionales Zweit- oder \DDC-Logo}
+%
+% \begin{macro}{\tud@layer@head@black}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@layer@head@HKS41}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@layer@head@white}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@layer@head@option}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Diese Boxen werden für das \DDC-Logo und das Zweitlogo im Kopf definiert. Der
+% Box \cs{tud@layer@head@option} fäält dabei die Rolle zu, entweder ein~-- per
+% Option gewähltes~-- \DDC-Logo oder aber das mit \cs{headlogo} angegebene
+% Zweitlogo zusichern und auszugeben. Die anderen drei Boxen speichern das Logo
+% von \DDC in den drei für die unterschiedlichen Layoutausprägung benötigten
+% Varianten.
+% \begin{macrocode}
+\tud@newlayerbox{head@black}
+\tud@newlayerbox{head@HKS41}
+\tud@newlayerbox{head@white}
+\tud@newlayerbox{head@option}
+% \end{macrocode}
+% \end{macro}^^A \tud@layer@head@option
+% \end{macro}^^A \tud@layer@head@white
+% \end{macro}^^A \tud@layer@head@HKS41
+% \end{macro}^^A \tud@layer@head@black
+% \begin{macro}{\headlogo}
+% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}^^A
+% \begin{macro}{\tud@headlogo@filename}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\tud@headlogo@fileoptions}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\tud@headlogo@wrn}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Diese Befehle dienen zum Einbinden eines möglichen Zweitlogos im Kopf bündig
+% zum rechten Seitenrand. Mit \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname}
+% werden der Dateiname und das optionale Argument in \cs{tud@headlogo@filename}
+% bzw. \cs{tud@headlogo@fileoptions} gespeichert, damit diese später bei der
+% tatsächlichen Verwendung des Logos mit dem Makro \cs{tud@headlogo@set} an den
+% Befehl \cs{includegraphics} weitergereicht werden können.
+% \begin{macrocode}
+\newcommand*\tud@headlogo@filename{}
+\newcommand*\tud@headlogo@fileoptions{}
+\newcommand*\tud@headlogo@wrn{}
+\newcommand*\headlogo[2][]{%
+ \tud@comp@clearpage%
+ \renewcommand*\tud@headlogo@filename{#2}%
+ \renewcommand*\tud@headlogo@fileoptions{#1}%
+% \end{macrocode}
+% Nach dem Setzen des Zweitlogos müssen die Boxen mit den Logos von \DDC neu
+% gesetzt werden. Weil dieses dabei vom Kopf in den Fuß oder umgekehrt wandern
+% könnte, werden beide relevanten Makros ausgeführt.
+% \begin{macrocode}
+ \global\@tud@headlogo@option@settrue%
+ \global\@tud@footlogo@option@settrue%
+ \gdef\tud@headlogo@wrn{%
+ \ClassWarning{\TUD@Class@Name}{%
+ Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak%
+ is overwritten with DDC logo. Maybe you should\MessageBreak%
+ use `ddcfoot' or better `ddc' instead of `ddchead'%
+ }%
+ \global\let\tud@headlogo@wrn\relax%
+ }%
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@headlogo@wrn
+% \end{macro}^^A \tud@headlogo@fileoptions
+% \end{macro}^^A \tud@headlogo@filename
+% \end{macro}^^A \headlogo
+% \begin{macro}{\tud@headlogo@set}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@headlogo@option@set}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \changes{v2.05}{2015/07/27}{Bugfix für Dateien in Unterordnern}^^A
+% Äquivalent zum Logo der \TnUD werden auch für das Logo von \DDC drei
+% Farbvarianten erstellt.
+% \begin{macrocode}
+\newcommand*\tud@headlogo@set{%
+ \def\@tempa{%
+ \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]%
+ }%
+ \tud@savelayerbox{head@black}{\@tempa{DDC-24}}%
+ \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}%
+ \tud@savelayerbox{head@white}{\@tempa{DDC-30}}%
+ \tud@headlogo@option@set%
+}
+% \end{macrocode}
+% Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddchead} abgearbeitet
+% sowie ein ggf. gegebenes Zweitlogo gespeichert. Dies geschieht beim Aufruf
+% des passenden Layers, falls der Schalter \cs{if@tud@headlogo@option@set}
+% gesetzt wurde.
+% \begin{macrocode}
+\newcommand*\tud@headlogo@option@set{%
+ \if@tud@headlogo@option@set%
+ \def\@tempc##1##2{%
+ \tud@savelayerbox{head@option}{%
+ \includegraphics[%
+ keepaspectratio,totalheight=\tud@len@mainlogoheight,##2%
+ ]{##1}%
+ }%
+ }%
+ \tud@savelayerbox{head@option}{}%
+ \tud@ddc@check%
+ \ifcase\@tempa\relax% \tud@ddc@head@num=false
+ \ifdefvoid{\tud@headlogo@filename}{}{%
+ \protected@edef\tud@headlogo@filename{%
+ \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}%
+ }%
+ \protected@edef\@tempb{%
+ \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}%
+ }%
+ \@tempb%
+ }%
+ \or\or% \tud@ddc@head@num=color
+ \@tempc{DDC-03}{}%
+ \or% \tud@ddc@head@num=colorblack
+ \@tempc{DDC-09}{}%
+ \or% \tud@ddc@head@num=gray
+ \@tempc{DDC-21}{}%
+ \or% \tud@ddc@head@num=black
+ \@tempc{DDC-24}{}%
+ \or% \tud@ddc@head@num=blue
+ \@tempc{DDC-27}{}%
+ \or% \tud@ddc@head@num=white
+ \@tempc{DDC-30}{}%
+ \fi%
+ \global\@tud@headlogo@option@setfalse%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@headlogo@option@set
+% \end{macro}^^A \tud@headlogo@set
+% \begin{macro}{\tud@headlogo@use}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Die Ausgabe von \DDC- oder Zweitlogo im Kopf erfolgt mit diesem Makro. Dabei
+% werden diese in einer Box vertikal zentriert.
+% \begin{macrocode}
+\newcommand*\tud@headlogo@use{%
+ \tud@vlayerbox{\tud@len@mainlogoheight}{%
+ \vss%
+ \hbox{%
+ \tud@ddc@check%
+ \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true
+ \tud@uselayerbox{head@\tud@head@logocolor}%
+ \else%
+ \tud@uselayerbox{head@option}%
+ \fi%
+ }%
+ \vss%
+ }{%
+ The given `\string\headlogo{\tud@headlogo@filename}' is too large.%
+ }%
+ \ifdefvoid{\tud@headlogo@filename}{}{%
+ \tud@ddc@check%
+ \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi%
+ }%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@headlogo@use
+%
+% \iffalse
+%</class&body>
+%<*class&option>
+% \fi
+%
+% \subsection{Der Fußbereich der Seitenstile}
+%
+% Es folgen Option und Befehle zur Gestaltung des Fußbereichs mit optionalem
+% Inhalt im Fuß, Drittlogos und \DDC-Logo.
+%
+% \begin{option}{cdfoot}
+% \changes{v2.03}{2015/02/02}{Bei Längenangabe wird \opt{extrabottommargin}
+% indirekt genutzt}^^A
+% \changes{v2.04}{2015/06/18}{bedingtes Setzen der Option \opt{automark}}^^A
+% \begin{macro}{\if@tud@foot@colored}
+% \changes{v2.03}{2015/02/15}{neu}^^A
+% \begin{macro}{\if@tud@foot@colored@locked}
+% \changes{v2.05}{2015/07/14}{neu}^^A
+% \begin{macro}{\tud@ps@store}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\tud@ps@@store}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\tud@ps@restore}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\tud@ps@@restore}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Dieser Seitenstil mit dem Kolumnentitel im Fuß wurde bereits für die alte
+% \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten
+% werden. Zusätzlich kann mit dieser Option ggf. ein farbiger Hintergrund in
+% der Fußzeile aktiviert werden.
+%
+% Einige Einstellungen sind abhängig vom Paket \pkg{scrlayer-scrpage}, welches
+% unter Umständen nicht geladen wird. Mit \cs{TUD@AfterPackage@do} kann
+% Quelltext nur dann ausgeführt werden, wenn ein Paket auch tatsächlich geladen
+% wurde. Hierfür ist die Initialisierung mit \cs{TUD@AfterPackage@set} nötig.
+% \begin{macrocode}
+\TUD@AfterPackage@set{scrlayer-scrpage}
+\tud@locked@newbool{@tud@foot@colored}
+\TUD@key{cdfoot}[true]{%
+ \TUD@set@numkey{cdfoot}{@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}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% false
+% \end{macrocode}
+% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore}
+% wiederhergestellt. Dies wird allerdings frühestens nach dem Laden von
+% \pkg{scrlayer-scrpage} durchgeführt.
+% \begin{macrocode}
+ \TUD@AfterPackage@do{scrlayer-scrpage}{%
+ \tud@ps@restore{scrheadings}%
+ \tud@ps@restore{plain.scrheadings}%
+ \tud@komafont@unset{pageheadfoot}%
+ }%
+% \end{macrocode}
+% Die ursprünglichen Kopf- und Fußzeilen werden mit dem Makro \cs{tud@ps@store}
+% gesichert, um gegebenenfalls zurückschalten zu können. Anschließend werden
+% diese mit dem neuen Stil überschrieben. Dies wird allerdings frühestens nach
+% dem Laden von \pkg{scrlayer-scrpage} durchgeführt.
+% \begin{macrocode}
+ \or% true
+ \TUD@AfterPackage@do{scrlayer-scrpage}{%
+ \tud@ps@store{scrheadings}%
+ \tud@ps@store{plain.scrheadings}%
+ \tud@komafont@set{pageheadfoot}{\upshape}%
+ \clearpairofpagestyles%
+ \ofoot[\pagemark]{%
+ \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi%
+ {\footnotesize\headmark}%
+ \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi%
+ }%
+ \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi%
+ }%
+% \end{macrocode}
+% Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden.
+% \begin{macrocode}
+ \or% nocolor
+ \tud@locked@bool@set{@tud@foot@colored}{false}%
+ \or% color
+ \tud@locked@bool@set{@tud@foot@colored}{true}%
+ \fi%
+% \end{macrocode}
+% Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden.
+% \begin{macrocode}
+ \else%
+ \tud@lowerstring\tud@res@a{#1}%
+ \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}%
+ \fi%
+}
+% \end{macrocode}
+% Die nächsten beiden Befehle dienen zum Sichern der Kopf- und Fußzeilen\dots
+% \begin{macrocode}
+\newcommand*\tud@ps@store[1]{%
+ \tud@ps@@store{#1}{odd}{left}{head}%
+ \tud@ps@@store{#1}{odd}{right}{head}%
+ \tud@ps@@store{#1}{odd}{middle}{head}%
+ \tud@ps@@store{#1}{even}{left}{head}%
+ \tud@ps@@store{#1}{even}{right}{head}%
+ \tud@ps@@store{#1}{even}{middle}{head}%
+ \tud@ps@@store{#1}{odd}{left}{foot}%
+ \tud@ps@@store{#1}{odd}{right}{foot}%
+ \tud@ps@@store{#1}{odd}{middle}{foot}%
+ \tud@ps@@store{#1}{even}{left}{foot}%
+ \tud@ps@@store{#1}{even}{right}{foot}%
+ \tud@ps@@store{#1}{even}{middle}{foot}%
+}
+% \end{macrocode}
+% \dots, wobei hierfür auf die internen Befehle von \pkg{scrlayer-scrpage}
+% zurückgegriffen werden muss.
+% \begin{macrocode}
+\newcommand*\tud@ps@@store[4]{%
+ \ifcsundef{@@tud@ps@#1@#2@#3@#4}{%
+ \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}%
+ }{}%
+}
+\newcommand*\tud@ps@restore[1]{%
+ \tud@ps@@restore{#1}{odd}{left}{head}%
+ \tud@ps@@restore{#1}{odd}{right}{head}%
+ \tud@ps@@restore{#1}{odd}{middle}{head}%
+ \tud@ps@@restore{#1}{even}{left}{head}%
+ \tud@ps@@restore{#1}{even}{right}{head}%
+ \tud@ps@@restore{#1}{even}{middle}{head}%
+ \tud@ps@@restore{#1}{odd}{left}{foot}%
+ \tud@ps@@restore{#1}{odd}{right}{foot}%
+ \tud@ps@@restore{#1}{odd}{middle}{foot}%
+ \tud@ps@@restore{#1}{even}{left}{foot}%
+ \tud@ps@@restore{#1}{even}{right}{foot}%
+ \tud@ps@@restore{#1}{even}{middle}{foot}%
+}
+\newcommand*\tud@ps@@restore[4]{%
+ \ifcsdef{@@tud@ps@#1@#2@#3@#4}{%
+ \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}%
+ \csundef{@@tud@ps@#1@#2@#3@#4}%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ps@@restore
+% \end{macro}^^A \tud@ps@restore
+% \end{macro}^^A \tud@ps@@store
+% \end{macro}^^A \tud@ps@store
+% \end{macro}^^A \if@tud@foot@colored@locked
+% \end{macro}^^A \if@tud@foot@colored
+% \end{option}^^A cdfoot
+%
+% \iffalse
+%</class&option>
+%<*class>
+% \fi
+%
+% \subsubsection{Optionales \DDC-Logo oder Drittlogos}
+%
+% \begin{option}{footlogoheight}
+% \changes{v2.05}{2016/06/16}{neu}^^A
+% \begin{macro}{\tud@dim@footlogoheight}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Für den Anwender besteht mit der Option \opt{footlogoheight} die Möglichkeit,
+% die Höhe aller Logos im Fußbereich~-- also eventuell das \DDC-Logo sowie
+% vom Anwender mit dem Befehl \cs{footlogo} angegebene Logos~-- zentral
+% festzulegen. Dabei wird der gewünschte Wert in \cs{tud@dim@footlogoheight}
+% abgelegt.
+% \begin{macrocode}
+%<*option>
+\newcommand*\tud@dim@footlogoheight{}
+\let\tud@dim@footlogoheight\relax
+\TUD@key{footlogoheight}{%
+ \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax%
+ \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}%
+ \@tempa#1\@nil%
+ \fi%
+ \global\@tud@footlogo@option@settrue%
+ \fi%
+}
+%</option>
+% \end{macrocode}
+% Da sich mit der Version~v2.03 die Standardhöhe des \DDC-Logos im Fußbereich
+% geändert hat, wird dieser Wert abhängig von der Einstellung für die Option
+% \opt{tudscrver} nach der Abarbeitung der Optionen am Ende der Klasse gesetzt.
+% \begin{macrocode}
+%<*body>
+\AtEndOfClass{%
+ \ifdefvoid{\tud@dim@footlogoheight}{%
+ \tud@if@v@lower{2.03}{%
+ \def\tud@dim@footlogoheight{.6\tud@len@topmargin}%
+ }{%
+ \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}%
+ }%
+ }{}%
+}
+%</body>
+% \end{macrocode}
+% \end{macro}^^A \tud@dim@footlogoheight
+% \end{option}^^A footlogoheight
+%
+% \iffalse
+%</class>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@layer@foot@black}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@layer@foot@HKS41}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@layer@foot@white}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@layer@foot@option}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Im Fußbereich kann das \DDC-Logo rechtsbündig ausgegeben. Hierfür werden die
+% entsprechenden Boxen für alle Farbvarianten definiert. Diese werden genutzt,
+% wenn entweder die Option \opt{ddcfoot} oder aber \opt{ddc} in Verbindung mit
+% einem Zweitlogo (\cs{headlogo}) genutzt wird.
+% \begin{macrocode}
+\tud@newlayerbox{foot@black}
+\tud@newlayerbox{foot@HKS41}
+\tud@newlayerbox{foot@white}
+\tud@newlayerbox{foot@option}
+% \end{macrocode}
+% \end{macro}^^A \tud@layer@foot@option
+% \end{macro}^^A \tud@layer@foot@white
+% \end{macro}^^A \tud@layer@foot@HKS41
+% \end{macro}^^A \tud@layer@foot@black
+% \begin{macro}{\tud@footlogo@ddc@set}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@footlogo@option@set}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Auch im Fuß werden für das \DDC-Logo verschiedene Boxen für die Farbvarianten
+% \val{black}, \val{HKS41} und \val{white} sowie eine für die gezielte Auswahl
+% über die Optionen \opt{ddc} bzw. \opt{ddcfoot} erstellt. Dafür wird zunächst
+% das Makro \cs{tud@footlogo@ddc@set} definiert.
+% \begin{macrocode}
+\newcommand*\tud@footlogo@ddc@set[2]{%
+ \tud@savelayerbox{foot@#1}{%
+ \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}%
+ }%
+}
+% \end{macrocode}
+% Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddcfoot} abgearbeitet.
+% Dies geschieht, falls hierfür der Schalter \cs{if@tud@footlogo@option@set}
+% gesetzt wurde, bei der Ausgabe des dazugehörigen Layers.
+% \begin{macrocode}
+\newcommand*\tud@footlogo@option@set{%
+ \if@tud@footlogo@option@set%
+ \tud@footlogo@ddc@set{black}{DDC-22}%
+ \tud@footlogo@ddc@set{HKS41}{DDC-25}%
+ \tud@footlogo@ddc@set{white}{DDC-28}%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color
+ \tud@footlogo@ddc@set{option}{DDC-01}%
+ \or% \tud@ddc@foot@num=colorblack
+ \tud@footlogo@ddc@set{option}{DDC-07}%
+ \or% \tud@ddc@foot@num=gray
+ \tud@footlogo@ddc@set{option}{DDC-19}%
+ \or% \tud@ddc@foot@num=black
+ \tud@footlogo@ddc@set{option}{DDC-22}%
+ \or% \tud@ddc@foot@num=blue
+ \tud@footlogo@ddc@set{option}{DDC-25}%
+ \or% \tud@ddc@foot@num=white
+ \tud@footlogo@ddc@set{option}{DDC-28}%
+ \fi%
+ \global\@tud@footlogo@option@setfalse%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@footlogo@option@set
+% \end{macro}^^A \tud@footlogo@ddc@set
+% \begin{macro}{\tud@footlogo@ddc@use}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Die Ausgabe des \DDC-Logos im Fuß erfolgt mit diesem Makro. Dabei wird dieses
+% in einer Box optisch~-- leicht nach oben verschoben~-- vertikal zentriert.
+% \begin{macrocode}
+\newcommand*\tud@footlogo@ddc@use[2]{%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false
+ \tud@footlogo@option@set%
+ \setbox\z@\hbox{%
+ \tud@vlayerbox{#1}{%
+ \vss%
+ \hbox to #2{%
+ \hss%
+ \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true
+ \tud@uselayerbox{foot@\tud@foot@logocolor}%
+ \else%
+ \tud@uselayerbox{foot@option}%
+ \fi%
+ }%
+ \vss\vss%
+ }{%
+ You should reduce `footlogoheight', because it is\MessageBreak%
+ too high (\the\dimexpr\tud@dim@footlogoheight\relax).%
+ \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside
+ \MessageBreak%
+ Alternatively you can enlarge the bottom margin\MessageBreak%
+ by using option `extrabottommargin'.%
+ \fi%
+ }%
+ }%
+% \end{macrocode}
+% Nach der Ausgabe wird ein begativer horizontaler Abstand in der Boxbreite
+% eingefügt, damit nachfolgende Boxen überlagert werden können.
+% \begin{macrocode}
+ \usebox\z@\hspace*{-\wd\z@}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@footlogo@ddc@use
+% \begin{macro}{\tud@layer@foot@cmd}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Für das Setzen von benutzerdefinierten Logos im Fußbereich wird diese Box
+% verwendet.
+% \begin{macrocode}
+\tud@newlayerbox{foot@cmd}
+% \end{macrocode}
+% \end{macro}^^A \tud@layer@foot@cmd
+% \begin{macro}{\footlogo}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \begin{macro}{\tud@footlogo@filenames}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \begin{macro}{\tud@footlogo@fileoptions}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \begin{macro}{\footlogosep}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \begin{macro}{\tud@footlogo@cmd@set}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@footlogo@cmd@@set}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien
+% individuell nutzbar}^^A
+% \begin{macro}{\if@tud@footlogo@cmd@set}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Mit dem Befehl \cs{footlogo} kann eine kommasparierte Liste für Logos im
+% Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden.
+% \begin{macrocode}
+\newcommand*\footlogosep{\hfill}
+\newcommand*\tud@footlogo@filenames{}
+\newcommand*\tud@footlogo@fileoptions{}
+\newcommand*\footlogo[2][]{%
+ \tud@comp@clearpage%
+ \renewcommand*\tud@footlogo@filenames{#2}%
+ \renewcommand*\tud@footlogo@fileoptions{#1}%
+ \global\@tud@footlogo@cmd@settrue%
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% Die mit \cs{footlogo} angegeben Logos und die dazugehörigen Einstellungen,
+% welche entweder allgemein über das optionale Argument oder aber individuell
+% durch \val{:} an den Dateinamen angehängt übergeben wurden, werden hier in
+% der Box \cs{tud@layer@foot@cmd} gespeichert.
+% \begin{macrocode}
+\newif\if@tud@footlogo@cmd@set
+\newcommand*\tud@footlogo@cmd@set[2]{%
+ \if@tud@footlogo@cmd@set%
+ \tud@savelayerbox{foot@cmd}{%
+ \hbox to #2{%
+% \end{macrocode}
+% Hier erfolgt die eigentliche Abarbeitung der mit \cs{footlogo} angegeben
+% Liste der benutzerdefinierten Logos. In \cs{@tempa} wird nach dem ersten
+% Durchlauf der Schleife der Inhalt von \cs{footlogosep} gespeichert und nach
+% dem ersten Logo vor jedem weiteren eingefügt. Um versehentlich angegebene
+% Leerzeichen zu entfernen, werden diese mit \cs{trim@spaces} entfernt.
+% \begin{macrocode}
+ \let\@tempa\relax%
+ \@for\@tempb:=\tud@footlogo@filenames\do{%
+ \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}%
+ \@tempa%
+ \ifx\@tempb\@empty\else%
+ \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}%
+ \fi%
+ \let\@tempa\footlogosep%
+ }%
+ \hss%
+ }%
+ }%
+ \global\@tud@footlogo@cmd@setfalse%
+ \fi%
+}
+% \end{macrocode}
+% Der Befehl \cs{tud@footlogo@cmd@set} wird genutzt, um die einzelnen Logos für
+% den Fuß nacheinander in der Box \cs{tud@layer@foot@cmd} zu setzen.
+% \begin{macrocode}
+\newcommand*\tud@footlogo@cmd@@set[2]{%
+ \begingroup%
+% \end{macrocode}
+% Dabei soll es möglich sein, optionale Parameter an \cs{includegraphics} zu
+% übergeben. Dies soll zum einen global für alle Dateien als auch individuell
+% für einzelne Logos möglich sein. Zu diesem Zweck wird die Schnittstelle für
+% den Anwender so gestaltet, dass individuelle Parameter mit einem Doppelpunkt
+% direkt an den Dateinamen angehangen werden können.
+% \begin{macrocode}
+ \let\@tempa\@empty%
+ \let\@tempb\@empty%
+ \@tempswatrue%
+ \def\do##1{%
+ \if@tempswa%
+ \def\@tempa{##1}%
+ \@tempswafalse%
+ \else%
+ \l@addto@macro\@tempb{,##1}%
+ \fi%
+ }%
+ \let\@tempc\relax%
+ \DeclareListParser{\@tempc}{:}%
+ \@tempc{#1}%
+% \end{macrocode}
+% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt.
+% \begin{macrocode}
+ \preto\tud@footlogo@fileoptions{%
+ keepaspectratio,totalheight=\tud@dim@footlogoheight,%
+ }%
+% \end{macrocode}
+% Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als
+% letztes ausgeführt, um vorige Einstellungen überschreiben zu können.
+% \begin{macrocode}
+ \eappto\tud@footlogo@fileoptions{\expandonce\@tempb}%
+ \protected@edef\@tempc{%
+ \noexpand\includegraphics[\expandonce\tud@footlogo@fileoptions]{\@tempa}%
+ }%
+% \end{macrocode}
+% Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch
+% vertikal zentriert.
+% \begin{macrocode}
+ \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{%
+ The given `\string\footlogo{\@tempa}' is too large.%
+ }%
+ \endgroup%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@footlogo@cmd@set
+% \end{macro}^^A \tud@footlogo@cmd@@set
+% \end{macro}^^A \tud@footlogo@cmd@set
+% \end{macro}^^A \footlogosep
+% \end{macro}^^A \tud@footlogo@fileoptions
+% \end{macro}^^A \tud@footlogo@filenames
+% \end{macro}^^A \footlogo
+% \begin{macro}{\tud@footlogo@cmd@use}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Der Befehl \cs{tud@footlogo@cmd@use} wird genutzt, um die einzelnen Logos für
+% den Fuß innerhalb der Ebene \val{tudheadings.foot.content} auszugeben.
+% \begin{macrocode}
+\newcommand*\tud@footlogo@cmd@use[2]{%
+ \tud@footlogo@option@set%
+ \tud@footlogo@cmd@set{#1}{#2}%
+ \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}%
+ \usebox\z@\hspace*{-\wd\z@}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@footlogo@cmd@use
+%
+% \subsubsection{Optionaler Inhalt im Fußbereich}
+%
+% \begin{macro}{\footcontent}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \begin{KOMAfont}{tudheadings}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \begin{macro}{\tud@footcontent@do}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \begin{macro}{\tud@footcontent@@do}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \changes{v2.05}{2016/04/17}{Stern im Argument erhält aktuellen Inhalt}^^A
+% \begin{macro}{\tud@footcontent@usefont}
+% \changes{v2.06}{2018/08/01}{neu}^^A
+% \begin{macro}{\tud@footcontent@fontsize}
+% \changes{v2.06}{2018/08/01}{neu}^^A
+% \begin{macro}{\tud@footcontent@fontface}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \changes{v2.05}{2015/07/21}{Bugfix für die Schriftgröße und den Durchschuss
+% bei einer entsprechenden Anpassung der Schriftart \val{tudheadings}}^^A
+% \begin{macro}{\tud@footcontent@left}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@footcontent@right}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Mit dem Befehl \cs{footcontent} kann der Inhalt für den Fußbereich der
+% Seiten im Stil \pgs{tudheadings} festgelegt werden. Dieser wird mit passenden
+% Schrifteinstellungen entweder einspaltig oder zweispaltig gesetzt. Die
+% Sternversion des Befehls nimmt keinerlei Einstellungen für die Schrift vor.
+% \begin{macrocode}
+\newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}}
+% \end{macrocode}
+% Dieser Befehl wird zur Formatierung der Schrift im Fußbereich definiert.
+% \begin{macrocode}
+\newcommand*\tud@footcontent@usefont[1]{%
+ \usekomafont{tudheadings}{%
+ \tud@footcontent@fontsize%
+ \tud@footcontent@fontface%
+ \selectfont%
+ #1%
+ }%
+}
+% \end{macrocode}
+% Die mit \cs{footcontent} angegebenen Einstellungen und Inhalte werden in
+% diesen Makros gesichert, weshalb diese vorher alloziert werden. Anschließend
+% erfolgt die Definition des Befehls.
+% \begin{macrocode}
+\newcommand*\tud@footcontent@fontsize{}
+\newcommand*\tud@footcontent@fontface{}
+\newcommand*\tud@footcontent@left{}
+\newcommand*\tud@footcontent@right{\@nil}
+% \end{macrocode}
+% Die Sternversion ändert die Schriftgröße vom Inhalt nicht. Die Normalversion
+% nutzt die Schriftgröße der Kopfzeile mit einem passenden Durchschuss.
+% \begin{macrocode}
+\newcommand*\footcontent{%
+ \kernel@ifstar{%
+ \renewcommand*\tud@footcontent@fontsize{}%
+ \tud@footcontent@do%
+ }{%
+ \renewcommand*\tud@footcontent@fontsize{%
+ \setlength\@tempdima{\tud@head@fontsize\p@}%
+ \fontsize{\@tempdima}{1.25\@tempdima}%
+ }%
+ \tud@footcontent@do%
+ }%
+}
+% \end{macrocode}
+% Normalerweise wird der Inhalt vollständig über die verfügbare Seitenfußbreite
+% gesetzt. Wird das optionale Argument \emph{nach} dem obligatorischen genutzt,
+% so erfolgt die Ausgabe zweispaltig. Das optionale Argument kann für
+% zusätzliche Formatierungsbefehle genutzt werden.
+% \begin{macrocode}
+\newcommand*\tud@footcontent@do[2][]{%
+ \kernel@ifnextchar[%]
+ {\tud@footcontent@@do{#1}{#2}}%
+ {\tud@footcontent@@do{#1}{#2}[\@nil]}%
+}
+\newcommand*\tud@footcontent@@do{}
+\def\tud@footcontent@@do#1#2[#3]{%
+% \end{macrocode}
+% Wurde im optionalen Argument für zusätzliche Schrifteinstellungen ein Stern
+% verwendet, bleibt die bisherige Definition bestehen.
+% \begin{macrocode}
+ \if\detokenize{*#1}\relax\else%
+ \renewcommand*\tud@footcontent@fontface{#1}%
+ \fi%
+% \end{macrocode}
+% Wurde in einem der Argumente für den linken und/oder rechten Inhalt ein Stern
+% verwendet, bleibt die bisherige Definition bestehen.
+% \begin{macrocode}
+ \if\detokenize{*#2}\relax\else%
+ \renewcommand*\tud@footcontent@left{#2}%
+ \fi%
+ \if\detokenize{*#3}\relax\else%
+ \renewcommand*\tud@footcontent@right{#3}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@footcontent@right
+% \end{macro}^^A \tud@footcontent@left
+% \end{macro}^^A \tud@footcontent@fontface
+% \end{macro}^^A \tud@footcontent@fontsize
+% \end{macro}^^A \tud@footcontent@usefont
+% \end{macro}^^A \tud@footcontent@@do
+% \end{macro}^^A \tud@footcontent@do
+% \end{KOMAfont}^^A tudheadings
+% \end{macro}^^A \footcontent
+%
+% \iffalse
+%<*class&poster>
+% \fi
+%
+% \begin{macro}{\tud@footcontent@@left}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \changes{v2.05}{2016/04/17}{Überschrift optional}^^A
+% \begin{macro}{\tud@footcontent@@right}
+% \changes{v2.05}{2015/07/06}{neu}^^A
+% \changes{v2.05}{2016/04/17}{Überschrift optional}^^A
+% \begin{macro}{\tud@newline@poster}
+% Mit diesen beiden Hilfsmakros werden die linke und die rechte Spalte des
+% Standard-Seitenfußes eines Posters festgelegt. In der linken Spalte werden
+% dabei Fakultät, Einrichtung, Institut und Lehrstuhl sowie der Professor
+% ausgegeben, wobei die Angaben über das optionale Argument der entsprechenden
+% Feldbefehle, die in den Klassen normalerweise nur für den Seitenkopf genutzt
+% werden, variiert werden können.
+% \begin{macrocode}
+\newcommand*\tud@newline@poster{}
+\newcommand*\tud@footcontent@@left[1]{%
+ \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}%
+ Technische Universit\"at Dresden%
+ \tud@foot@line@write{faculty}%
+ \tud@foot@line@write{department}%
+ \tud@foot@line@write{institute}%
+ \tud@foot@line@write{chair}%
+ \tud@foot@line@write{professor}%
+}
+% \end{macrocode}
+% In der rechten Spalte werden der Autor oder die Autoren (\cs{author}) und
+% die Kontaktperson(en) (\cs{contactperson}) ausgegeben. Zu jeder Person können
+% individuelle Angaben bzgl. Büro, Telefonnummer und E"~Mail-Adresse gemacht
+% werden.
+% \begin{macrocode}
+\newcommand*\tud@footcontent@@right[2]{%
+ \def\tud@newline@poster{%
+ \ifx\@authormore\@empty\else\newline\@authormore\fi%
+ \ifx\@course\@empty%
+ \ifx\@discipline\@empty\else\newline\@discipline\fi%
+ \else%
+ \newline\@course%
+ \ifx\@discipline\@empty\else%
+ \nobreakspace(\@discipline)%
+ \fi%
+ \fi%
+ \ifx\@office\@empty\else\newline\@office\fi%
+ \ifx\@telephone\@empty\else\newline\@telephone\fi%
+ \ifx\@telefax\@empty\else\newline\@telefax\fi%
+ \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
+ }%
+% \end{macrocode}
+% Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte
+% Warnung bei der Verwendung des Feldes \cs{@author} unterdrückt.
+% \begin{macrocode}
+ \ifpatchable{\@author}{\@latex@warning@no@line}{%
+ \let\@tempa\@empty%
+ }{%
+ \let\@tempa\@author%
+ }%
+ \ifx\@tempa\@empty\else%
+ \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}%
+% \end{macrocode}
+% Das Makro zum Aufteilen der Autorenangaben wird für die hier benötigte Form
+% definiert. Die Ausgabe aller nicht \emph{lokal} angegebenen Felder wird
+% unterdrückt, indem das Makro \cs{tud@multiple@fields@preset} im zweiten
+% Argument mit einem \val{*} aufgerufen wird.
+% \begin{macrocode}
+ \renewcommand*\tud@split@author@do[2]{%
+ \tud@multiple@fields@store{@author}{##1}%
+ \tud@multiple@fields@preset{@author}{*}{##1}%
+ \ignorespaces##1\tud@newline@poster%
+ \tud@multiple@fields@restore{@author}%
+ \tud@multiple@@@split{##2}{\newline}%
+ }%
+ \noindent\tud@multiple@split{@author}%
+ \tud@multiple@fields@restore{@author}%
+% \end{macrocode}
+% Wurde gültige Felder außerhalb von \cs{@author} global angegeben, so werden
+% diese \emph{nach} allen Autoren ausgegeben.
+% \begin{macrocode}
+ \tud@newline@poster%
+% \end{macrocode}
+% Werden Autor und Kontaktperson ausgegeben, ist eine Leerzeile einzufügen.
+% \begin{macrocode}
+ \ifx\@contactperson\@empty\else\newline\fi%
+ \fi%
+% \end{macrocode}
+% Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe.
+% \begin{macrocode}
+ \def\tud@newline@poster{%
+ \ifx\@office\@empty\else\newline\@office\fi%
+ \ifx\@telephone\@empty\else\newline\@telephone\fi%
+ \ifx\@telefax\@empty\else\newline\@telefax\fi%
+ \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
+ }%
+ \ifx\@contactperson\@empty\else%
+ \ifxblank{#2}{}{{\tud@head@font@@bold#2\newline}}%
+ \renewcommand*\tud@split@contactperson@do[2]{%
+ \tud@multiple@fields@store{@contactperson}{##1}%
+ \tud@multiple@fields@preset{@contactperson}{*}{##1}%
+ \ignorespaces##1\tud@newline@poster%
+ \tud@multiple@fields@restore{@contactperson}%
+ \tud@multiple@@@split{##2}{\newline}%
+ }%
+ \noindent\tud@multiple@split{@contactperson}%
+ \tud@multiple@fields@restore{@contactperson}%
+ \tud@newline@poster%
+ \fi%
+% \end{macrocode}
+% Zu guter letzt noch eine mögliche Homepage.
+% \begin{macrocode}
+ \ifx\@webpage\@empty\else\newline\@webpage\fi%
+}
+\footcontent{%
+ \tud@footcontent@@left{\contactname}%
+}[%
+ \tud@footcontent@@right{\authorname}{\contactpersonname}%
+]
+% \end{macrocode}
+% \end{macro}^^A \tud@newline@poster
+% \end{macro}^^A \tud@footcontent@@right
+% \end{macro}^^A \tud@footcontent@@left
+%
+% \iffalse
+%</class&poster>
+% \fi
+%
+% \begin{macro}{\tud@footcontent@use}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Mit \cs{tud@footcontent@use} erfolgt die Ausgabe der mit \cs{footcontent}
+% definierten Inhalte. Dabei wird darauf geachtet, ob ein \DDC-Logo im Fuß
+% verwendet wird. Die Ausgabe erfolgt jedoch nur, falls tatsächlich etwas
+% definiert wurde. Andernfalls wird lediglich eine leere Box der geforderten
+% Breite ausgegeben. Dies ist notwendig, da nachgelagerte Funktionen diese Box
+% fester Breite erwarten.
+% \begin{macrocode}
+\newcommand*\tud@footcontent@use[2]{%
+ \@tempswafalse%
+ \ifx\tud@footcontent@left\@empty\relax%
+ \def\@tempa{\@nil}%
+ \ifx\@tempa\tud@footcontent@right\relax\else%
+ \ifx\tud@footcontent@right\@empty\relax\else%
+ \@tempswatrue%
+ \fi%
+ \fi%
+ \else%
+ \@tempswatrue%
+ \fi%
+ \if@tempswa%
+ \tud@ddc@check%
+ \ifcase\@tempb\relax%
+ \setlength\@tempdimc{\z@}%
+ \else%
+ \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}%
+ \addtolength\@tempdimc{\columnsep}%
+ \fi%
+% \end{macrocode}
+% Äquivalent zu den Logos wird auch der durch den Anwender frei definierbare
+% Inhalt des Fußes in einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im
+% Bedarfsfall der Freiraum für das \DDC-Logo bereitgestellt.
+% \begin{macrocode}
+ \tud@vlayerbox{#1}{%
+ \linespread{1}%
+ \vss%
+ \hbox to #2{%
+ \tud@footcontent@usefont{%
+% \end{macrocode}
+% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird
+% der Inhalt über die komplette Breite des Textbereiches ausgegeben.
+% \begin{macrocode}
+ \def\@tempa{\@nil}%
+ \ifx\@tempa\tud@footcontent@right\relax%
+ \vtop{%
+ \hsize=\dimexpr#2-\@tempdimc\relax%
+ \strut\ignorespaces\tud@footcontent@left\strut%
+ }%
+% \end{macrocode}
+% Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen
+% der Abstand \cs{columnsep} eingefügt wird.
+% \begin{macrocode}
+ \else%
+ \vtop{%
+ \hsize=\dimexpr(#2-\columnsep)/2\relax%
+ \strut\ignorespaces\tud@footcontent@left\strut%
+ }%
+ \hspace{\columnsep}%
+ \vtop{%
+ \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax%
+ \strut\ignorespaces\tud@footcontent@right\strut%
+ }%
+ \fi%
+ \hss%
+ }%
+ }%
+ \vss\vss%
+% \end{macrocode}
+% Sollte der Inhalt für den Fußbereich zu groß sein, wird eine Warnung erzeugt.
+% \begin{macrocode}
+ }{%
+ The content for the footer (`\string\footcontent')\MessageBreak%
+ is too high. You should either reduce the content\MessageBreak%
+ or lower the fontsize via the optional argument.%
+ \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside
+ \MessageBreak%
+ Alternatively you can enlarge the bottom margin\MessageBreak%
+ by using option `extrabottommargin'.%
+ \fi%
+ }%
+ \else%
+ \hbox to #2{}%
+ \fi%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@footcontent@use
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \subsection{Optionen für das \DDC-Logo}
+%
+% \begin{macro}{\tud@comp@clearpage}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@comp@resetpagestyle}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\if@tud@ddc@internal}
+% \changes{v2.02}{2014/07/08}{neu}^^A
+% Bis zur Version~v2.02 wurden unterschiedliche Satzsiegel für den Seitenfuß
+% mit und ohne \DDC-Logo verwendet. Damit dieser im Zweifelsfall umgestellt
+% werden kann, wurde vor dem Ausführen der entsprechenden Optionen ein
+% Seitenumbruch erzwungen und nach dem Verarbeiten der Optionen der aktuelle
+% Seitenstil erneut aufgerufen. Die beiden folgenden Makros werden für dieses
+% Unterfangen definiert, jedoch bei der Abarbeitung der Optionen nur noch im
+% Kompatibilitätmodus ausgeführt. Der Schalter \cs{if@tud@ddc@internal} wird
+% intern von den Optionen \opt{ddc}, \opt{ddchead} und \opt{ddcfoot} verwendet,
+% um rekursive Aufrufe der Optionen zu verhindern.
+% \begin{macrocode}
+%<*class&option>
+\newif\if@tud@ddc@internal
+\newcommand*\tud@comp@clearpage{}%
+\newcommand*\tud@comp@resetpagestyle{}%
+%</class&option>
+%<*class&body>
+\tud@if@v@lower{2.04}{%
+ \renewcommand*\tud@comp@clearpage{%
+ \if@tud@ddc@internal\else%
+ \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}%
+ \fi%
+ }%
+ \renewcommand*\tud@comp@resetpagestyle{%
+ \if@tud@ddc@internal\else%
+ \tud@if@tudheadings{\currentpagestyle}{%
+ \expandafter\pagestyle\expandafter{\currentpagestyle}%
+ }{}%
+ \fi%
+ }%
+}{}%
+%</class&body>
+% \end{macrocode}
+% \end{macro}^^A \if@tud@ddc@internal
+% \end{macro}^^A \tud@comp@clearpage
+% \end{macro}^^A \tud@comp@resetpagestyle
+%
+% \iffalse
+%<*class&option>
+% \fi
+%
+% \begin{option}{ddc}
+% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A
+% \begin{option}{ddchead}
+% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
+% \begin{option}{ddcfoot}
+% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
+% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil
+% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den
+% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls
+% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß.
+% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein
+% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen
+% im Fuß ausgegeben.
+% \begin{macro}{\tud@ddc@switch}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Das Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc},
+% \opt{ddchead} sowie \opt{ddcfoot}.
+% \begin{macrocode}
+\newcommand*\tud@ddc@switch{}
+\edef\tud@ddc@switch{%
+ \TUD@bool@numkey,%
+ {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},%
+ {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},%
+ {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},%
+ {black}{5},{cdblack}{5},%
+ {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},%
+ {white}{7},{cdwhite}{7}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@switch
+% \begin{macro}{\tud@ddc@auto@num}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\if@tud@ddc@auto}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\if@tud@headlogo@option@set}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\if@tud@footlogo@option@set}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Die Option \opt{ddc}.
+% \begin{macrocode}
+\newif\if@tud@headlogo@option@set
+\newif\if@tud@footlogo@option@set
+\newif\if@tud@ddc@auto
+\newcommand*\tud@ddc@auto@num{0}
+\TUD@key{ddc}[true]{%
+% \end{macrocode}
+% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird
+% die Option abgearbeitet.
+% \begin{macrocode}
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+% \end{macrocode}
+% Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot}
+% aufgerufen, wird die automatische Auswahl des \DDC-Logos deaktiviert.
+% \begin{macrocode}
+ \if@tud@ddc@internal%
+ \@tud@ddc@autofalse%
+ \else%
+% \end{macrocode}
+% Andernfalls wird die automatische Auswahl aktiviert und die beiden Optionen
+% \opt{ddchead} sowie \opt{ddcfoot} intern zurückgesetzt.
+% \begin{macrocode}
+ \@tud@ddc@autotrue%
+ \@tud@ddc@internaltrue%
+ \TUDoptions{ddchead=false}%
+ \TUDoptions{ddcfoot=false}%
+ \@tud@ddc@internalfalse%
+ \fi%
+% \end{macrocode}
+% Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden
+% in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter
+% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der
+% Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}.
+% \begin{macrocode}
+ \global\@tud@headlogo@option@settrue%
+ \global\@tud@footlogo@option@settrue%
+ \fi%
+% \end{macrocode}
+% Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen,
+% um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden.
+% \begin{macrocode}
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@footlogo@option@set
+% \end{macro}^^A \if@tud@headlogo@option@set
+% \end{macro}^^A \if@tud@ddc@auto
+% \end{macro}^^A \tud@ddc@auto@num
+% \begin{macro}{\tud@ddc@head@num}
+% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
+% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf
+% der Seiten im Stil von \pgs{tudheadings}.
+% \begin{macrocode}
+\newcommand*\tud@ddc@head@num{0}
+\TUD@key{ddchead}[true]{%
+% \end{macrocode}
+% Der Seitenumbruch im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}%
+% \end{macrocode}
+% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
+% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
+% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten
+% setzen der Logoboxen.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tud@ddc@internal\else%
+ \@tud@ddc@internaltrue%
+ \TUDoptions{ddcfoot=false}%
+ \TUDoptions{ddc=false}%
+ \@tud@ddc@internalfalse%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Das Setzen des Seitenstils im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@head@num
+% \begin{macro}{\tud@ddc@foot@num}
+% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
+% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß
+% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des
+% Schlüssels ist äquivalent zur Option \opt{ddchead}
+% \begin{macrocode}
+\newcommand*\tud@ddc@foot@num{0}
+\TUD@key{ddcfoot}[true]{%
+% \end{macrocode}
+% Der Seitenumbruch im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}%
+% \end{macrocode}
+% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
+% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
+% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten
+% setzen der Logoboxen.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tud@ddc@internal\else%
+ \@tud@ddc@internaltrue%
+ \TUDoptions{ddchead=false}%
+ \TUDoptions{ddc=false}%
+ \@tud@ddc@internalfalse%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Das Setzen des Seitenstils im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@foot@num
+% \end{option}^^A ddcfoot
+% \end{option}^^A ddchead
+% \end{option}^^A ddc
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@ddc@check}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen
+% für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen.
+% Über den Schalter \cs{if@tud@ddc@auto} wird festgelegt, ob die Auswahl des
+% \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet.
+% Ist dies der Fall, wird das Logo standardmäßig im Kopf gesetzt. Ist jedoch
+% durch den Befehl \cs{headlogo} ein Zweitlogo angegeben worde, wird dieses in
+% der Fußzeile ausgegeben. Die Verwendung einer der Optionen \opt{ddchead} bzw.
+% \opt{ddcfoot} forciert die Ausgabe des \DDC-Logos an der gewünschten Stelle.
+% Die jeweils gültige Auswahl für Kopf bzw. Fuß wird in den Makros \cs{@tempa}
+% bzw. \cs{@tempb} geschrieben und kann anschließend ausgewertet werden.
+% \begin{macrocode}
+\newcommand*\tud@ddc@check{%
+ \let\@tempa\tud@ddc@head@num%
+ \let\@tempb\tud@ddc@foot@num%
+ \if@tud@ddc@auto%
+ \ifdefvoid{\tud@headlogo@filename}{%
+ \let\@tempa\tud@ddc@auto@num%
+ \let\@tempb\z@%
+ }{%
+ \let\@tempa\z@%
+ \let\@tempb\tud@ddc@auto@num%
+ }%
+ \fi%
+% \end{macrocode}
+% Für die Satzspiegelvergrößerung wird beim Vorhandensein eines oder mehrerer
+% Logos im Fuß die Variable \cs{@tempb} auf einen negativen Wert gesetzt, um
+% auch ohne die Ausgabe eines \DDC-Logos den Fußbereich zu vergrößern.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \ifnum\@tempb=\z@\relax%
+ \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}%
+ \fi%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@check
+%
+% \subsection{Umgebungsparameter für die neuen Seitenstile}
+%
+% \begin{macro}{\if@tud@parameter@ps@font@set}
+% \changes{v2.05m}{2017/05/30}{neu}^^A
+% Der Schalter wird verwendet, um das explizite Setzen der Schrifteinstellungen
+% über die Seitenstilparameter zu detektieren.
+% \begin{macrocode}
+\newif\if@tud@parameter@ps@font@set
+% \end{macrocode}
+% \end{macro}^^A \if@tud@parameter@ps@font@set
+% \begin{macro}{\TUD@parameter@ps@def}
+% Im Folgenden werden die einzelnen Parameter für die \env{tudpage}-Umgebung
+% definiert. Die Parameter für Kopf- und Fußzeile werden nicht nur für die
+% \env{tudpage}-Umgebung sondern auch noch für Titel und Umschlagseite
+% verwendet, weshalb deren Definitionen zur einfacheren Wiederverwendung in das
+% Makro \cs{TUD@parameter@ps@def} ausgelagert werden.
+% \begin{macrocode}
+\newcommand*\TUD@parameter@ps@def[1]{%
+% \end{macrocode}
+% \begin{parameter}{cdfont}
+% Die Option \opt{cdfont} bestimmt, ob die Schriften des \CDs oder aber die
+% standardmäßigen Serifenlosen für die Auszeichnugen in der Kopfzeile und
+% Serifen im Inhalt verwendet werden.
+% \begin{macrocode}
+ \TUD@parameter@def{cdfont}[true]{%
+ \TUDoption{cdfont}{#1}%
+ \@tud@parameter@ps@font@settrue%
+ }%
+% \end{macrocode}
+% \end{parameter}^^A cdfont
+% \begin{parameter}{cdhead}
+% \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}^^A
+% Mit dem Parameter \val{cdhead} kann die Verwendung der Schriften des \CDs
+% aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. Die
+% Breite des Querbalkens kann über diesen Parameter ebenfalls geändert werden.
+% \begin{macrocode}
+ \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A cdhead
+% \begin{parameter}{cdfoot}
+% \changes{v2.03}{2015/01/30}{neu}^^A
+% Über \val{cdfoot} kann gg. die Hintergrundfarbe sowie die Standardfußzeile
+% des \CDs aktiviert werden.
+% \begin{macrocode}
+ \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A cdfoot
+% \begin{parameter}{headlogo}
+% \changes{v2.03}{2015/01/28}{neu}^^A
+% \begin{parameter}{footlogo}
+% \changes{v2.03}{2015/01/28}{neu}^^A
+% Das Zweit- und die Drittlogos können ebenfalls lokal geändert werden.
+% \begin{macrocode}
+ \TUD@parameter@def{headlogo}{\headlogo{#1}}%
+ \TUD@parameter@def{footlogo}{\footlogo{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A footlogo
+% \end{parameter}^^A headlogo
+% \begin{parameter}{ddc}
+% \changes{v2.02}{2014/08/16}{neu}^^A
+% \begin{parameter}{ddchead}
+% \begin{parameter}{ddcfoot}
+% Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden.
+% \begin{macrocode}
+ \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}%
+ \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}%
+ \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}%
+% \end{macrocode}
+% \end{parameter}^^A ddcfoot
+% \end{parameter}^^A ddchead
+% \end{parameter}^^A ddc
+% \begin{parameter}{cdfonts}
+% \begin{parameter}{tudfonts}
+% \begin{parameter}{barfont}
+% \begin{parameter}{widehead}
+% \begin{parameter}{tudfoot}
+% \begin{parameter}{logo}
+% Für die Kompatibilität werden auch veraltete Parameter bereitgestellt.
+% \begin{macrocode}
+ \TUD@parameter@def{cdfonts}[true]{%
+ \TUDoption{cdfonts}{#1}%
+ \@tud@parameter@ps@font@settrue%
+ }%
+ \TUD@parameter@def{tudfonts}[true]{%
+ \TUDoption{tudfonts}{#1}%
+ \@tud@parameter@ps@font@settrue%
+ }%
+ \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}%
+ \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}%
+ \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}%
+ \TUD@parameter@let{logo}{headlogo}%
+% \end{macrocode}
+% \end{parameter}^^A logo
+% \end{parameter}^^A tudfoot
+% \end{parameter}^^A widehead
+% \end{parameter}^^A barfont
+% \end{parameter}^^A tudfonts
+% \end{parameter}^^A cdfonts
+% Damit sind alle notwendigen Parameter für die Kopf- und Fußzeile der Seiten
+% im Stil \pgs{tudheadings} definiert.
+% \begin{macrocode}
+}
+% \end{macrocode}
+% \end{macro}^^A \TUD@parameter@ps@def
+%
+% \iffalse
+%<*book|report|article>
+% \fi
+%
+% \begin{environment}{tudpage}
+% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}^^A
+% \begin{parameter}{language}
+% \begin{parameter}{columns}
+% \begin{parameter}{pagestyle}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.03}{2015/01/28}{\cs{tud@if@tudheadings} verwendet}^^A
+% \begin{macro}{\tud@envir@ps}
+% \begin{macro}{\tud@envir@selectps}
+% \changes{v2.02}{2014/07/19}{neu}^^A
+% \begin{macro}{\tud@currentpagestyle@set}
+% \changes{v2.02}{2014/07/18}{neu}^^A
+% \begin{macro}{\tud@currentpagestyle@reset}
+% \changes{v2.02}{2014/07/18}{neu}^^A
+% \changes{v2.03}{2015/01/09}{Bugfix}^^A
+% \begin{macro}{\tud@currentpagestyle@value}
+% Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout
+% temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern.
+% Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}.
+% Dabei wird mit \cs{loadgeometry} ein Seitenumbruch erzwungen und der
+% benötigte Satzspiegel geladen.
+%
+% Die Befehle \cs{tud@currentpagestyle@set} und \cs{tud@currentpagestyle@reset}
+% sind für die Sicherung und Wiederherstellung des vor der Umgebung geladenen
+% Seitenstils verantwortlich.
+%
+% Zu Beginn der Umgebung werden die weiter unten beschriebenen Optionen für
+% diese Umgebung mit \cs{TUD@parameter@set} ausgeführt. Nach dem Beenden der
+% Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout
+% wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner
+% Wert ohne Schlüssel angegben werden.
+% \begin{macrocode}
+\newcommand*\tud@envir@ps{tudheadings}
+\newcommand*\tud@envir@selectps{%
+ \expandafter\pagestyle\expandafter{\tud@envir@ps}%
+ \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{%
+ \renewcommand*\titlepagestyle{empty}%
+%<*book|report>
+ \renewcommand*\partpagestyle{empty}%
+ \renewcommand*\chapterpagestyle{empty}%
+%</book|report>
+ \renewcommand*\indexpagestyle{empty}%
+ }{}%
+ \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{%
+ \renewcommand*\titlepagestyle{empty.tudheadings}%
+%<*book|report>
+ \renewcommand*\partpagestyle{empty.tudheadings}%
+ \renewcommand*\chapterpagestyle{empty.tudheadings}%
+%</book|report>
+ \renewcommand*\indexpagestyle{empty.tudheadings}%
+ }{}%
+}
+\newcommand*\tud@currentpagestyle@value{}
+\newcommand*\tud@currentpagestyle@set{%
+ \ifdefvoid{\tud@currentpagestyle@value}{%
+ \xdef\tud@currentpagestyle@value{\currentpagestyle}%
+ }{}%
+}
+\newcommand*\tud@currentpagestyle@reset{%
+ \ifdefvoid{\tud@currentpagestyle@value}{}{%
+ \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}%
+ \let\tud@currentpagestyle@value\relax%
+ }%
+}
+\NewEnviron{tudpage}[1][]{%
+% \end{macrocode}
+% Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird
+% dieser im Hilfsmakro \cs{tud@currentpagestyle@value} gespeichert.
+% \begin{macrocode}
+ \tud@currentpagestyle@set%
+ \clearpage%
+ \def\tud@envir@ps{tudheadings}%
+ \TUD@parameter@set{tudpage}{#1}%
+ \tud@envir@selectps%
+% \end{macrocode}
+% Falls das \pkg{multicol}-Paket geladen ist und eine Spaltenanzahl angegeben
+% ist, wird die entsprechende Umgebung gesartet, mit \cs{BODY} der Inhalt der
+% \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die
+% \env{multicols}-Umgebung beendet.
+% \begin{macrocode}
+ \tud@x@multicol@check%
+ \ifnum\tud@x@multicol@num>\@ne\relax%
+ \begin{multicols}{\tud@x@multicol@num}%
+ \fi%
+ \BODY%
+ \ifnum\tud@x@multicol@num>\@ne\relax%
+ \end{multicols}%
+ \fi%
+% \end{macrocode}
+% Am Ende der Umgebung wird der vorhergehende Seitenstil zurückgesetzt und der
+% dazugehörige Satzspiegel geladen. Dazu wird die Ausführung das Hilfsmakro
+% \cs{@tempa} auf das Beenden der Umgebung mit \cs{aftergroup} verzögert.
+% \begin{macrocode}
+}[%
+ \aftergroup\tud@currentpagestyle@reset%
+ \clearpage%
+]
+% \end{macrocode}
+% Mit \cs{TUD@parameter@family}\marg{Family}\marg{\dots} wird die Familie der
+% Parameter festgelegt und anschließend die Definitionen getätigt.
+% \begin{macrocode}
+\TUD@parameter@family{tudpage}{%
+% \end{macrocode}
+% Mit dem Parameter \prm{language} kann die in der Umgebung verwendete Sprache
+% umgeschaltet werden. Die Sprache kann auch ohne den entsprechenden Schlüssel
+% direkt als Parameter angegeben werden.
+% \begin{macrocode}
+ \TUD@parameter@def{language}{\selectlanguage{#1}}%
+% \end{macrocode}
+% Mit \prm{columns} kann die Anzahl der Spalten für die Umgebung angegeben
+% werden. Für mehr als zwei Spalten muss das Paket \pkg{multicol} geladen
+% werden. Die Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt
+% Parameter angegeben werden.
+% \begin{macrocode}
+ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}%
+% \end{macrocode}
+% Mit dem Parameter \prm{pagestyle} kann der verwendete Seitenstil eingestellt
+% werden, wobei einer der \pgs{tudheadings}-Seitenstile verwendet wird.
+% \begin{macrocode}
+ \TUD@parameter@def{pagestyle}{%
+ \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{%
+ \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{%
+ \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{%
+ \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{%
+ \TUD@parameter@error{pagestyle}{%
+ headings, plain, empty or any tudheadings page style type%
+ }%
+ }}}%
+ }%
+ }%
+% \end{macrocode}
+% Hier werden die Parameter für Kopf- und Fußzeile tatsächlich definiert.
+% \begin{macrocode}
+ \TUD@parameter@ps@def{#1}%
+% \end{macrocode}
+% Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben
+% wird, erfolgt eine Sonderbehandlung durch \cs{TUD@parameter@handler@default},
+% bei dererst auf eine Zahl geprüft wird und anschießend versucht wird, das
+% Argument als Sprache zu setzen. Nach der Definition aller Parameter wird der
+% Befehl \cs{TUD@parameter@family} und damit auch die aktuelle Parameterfamilie
+% beendet.
+% \begin{macrocode}
+ \TUD@parameter@handler@default{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@currentpagestyle@value
+% \end{macro}^^A \tud@currentpagestyle@reset
+% \end{macro}^^A \tud@currentpagestyle@set
+% \end{macro}^^A \tud@envir@selectps
+% \end{macro}^^A \tud@envir@ps
+% \end{parameter}^^A pagestyle
+% \end{parameter}^^A columns
+% \end{parameter}^^A language
+% \end{environment}^^A tudpage
+%
+% \iffalse
+%</book|report|article>
+% \fi
+%
+% Mit der Nutzung von \pkg{scrlayer-scrpage} ist die parallele Verwendung des
+% Paketes \pkg{fancyhdr} nicht möglich.
+% \begin{macrocode}
+\PreventPackageFromLoading[%
+ \ClassWarning{\TUD@Class@Name}{%
+ The package `fancyhdr' must not be used with a\MessageBreak%
+ TUD-Script class. You should make use of the\MessageBreak%
+ capabilities of package `scrlayer-scrpage' instead%
+ }%
+]{fancyhdr}
+% \end{macrocode}
+%
+% \iffalse
+%</class&body>
+% \fi
+%
+% \Finale
+%
+\endinput