From 586aedcf63ecf6ea7da1c1529e5ea5ba8f5cb426 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 2 Jul 2015 22:12:17 +0000
Subject: tudscr (2jul15)

git-svn-id: svn://tug.org/texlive/trunk@37736 c570f23f-e606-0410-a88d-b1316a301751
---
 .../source/latex/tudscr/tudscr-pagestyle.dtx       | 3549 ++++++++++++--------
 1 file changed, 2187 insertions(+), 1362 deletions(-)

(limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx')

diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx
index 311650d066a..320b698ef83 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{1954}
+% \CheckSum{2473}
 % \iffalse meta-comment
 % 
 % ============================================================================
@@ -51,7 +51,7 @@
 %<*driver>
 \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
 \ProvidesFile{tudscr-pagestyle.dtx}[%
-  2015/02/15 v2.03 TUD-KOMA-Script (pagestyle)%
+  2015/06/18 v2.04 TUD-KOMA-Script (pagestyle)%
 ]
 \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
 \documentclass[english,ngerman]{tudscrdoc}
@@ -72,8 +72,8 @@
 %
 % \selectlanguage{ngerman}
 %
-% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A
-% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A
+% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
+% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A
 %
 % \section{Der Seitenstil des \CDs}
 %
@@ -116,11 +116,11 @@
 % \end{length}^^A \tud@dim@slimmargin
 % \end{length}^^A \tud@dim@widemargin
 % \begin{length}{\tud@dim@top}
-% \changes{v2.02}{2015/01/09}{entfernt}%^^A
+% \changes{v2.02}{2015/01/09}{entfernt}^^A
 % \begin{length}{\tud@dim@bottom}
-% \changes{v2.02}{2015/01/09}{entfernt}%^^A
+% \changes{v2.02}{2015/01/09}{entfernt}^^A
 % \begin{length}{\tud@dim@footskip}
-% \changes{v2.02}{2015/01/09}{entfernt}%^^A
+% \changes{v2.02}{2015/01/09}{entfernt}^^A
 % Die Befehle wurden mit der \TUDScript-Version~v2.03 allesamt entfernt, da 
 % diese redundant waren und implizit durch andere, bereits für das \CD 
 % definierte Längen dargestellt werden können.
@@ -148,7 +148,7 @@
 % \begin{length}{\tud@dim@logoy}
 % \begin{length}{\tud@dim@logowidth}
 % \begin{length}{\tud@dim@logoheight}
-% \changes{v2.03}{2015/01/13}{entfernt}%^^A
+% \changes{v2.03}{2015/01/13}{entfernt}^^A
 % Außerdem müssen noch die Abmessungen und die Position des TUD-Logos definiert
 % werden, nämlich der horizontale (Soll"~)Abstand zwischen linkem Seitenrand
 % und Logo, der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo
@@ -164,7 +164,7 @@
 % \end{length}^^A \tud@dim@logoy
 % \end{length}^^A \tud@dim@logox
 % \begin{length}{\tud@dim@line}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{length}{\tud@dim@heavyline}
 % \begin{length}{\tud@dim@thinline}
 % Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler
@@ -183,7 +183,7 @@
 % \end{length}^^A \tud@dim@line
 % \begin{length}{\tud@dim@headdiff}
 % \begin{length}{\tud@dim@headingsvskip}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % Die Längen für den vertikalen Standardversatz der Überschriften sowie die 
 % Differenz der Kopfhöhen von normalem Satzspiegel und dem mit dem TUD-Kopf.
 %    \begin{macrocode}
@@ -193,18 +193,18 @@
 % \end{length}^^A \tud@dim@headdiff
 % \end{length}^^A \tud@dim@headingsvskip
 % \begin{length}{\tud@dim@ddcdiff}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % Zu guter Letzt noch die Länge \cs{tud@dim@ddcdiff} für den Höhenausgleich des 
 % Seitenfußes, welcher bei der Verwendung des \DDC-Logos in der Fußzeile bei 
 % Version~v2.02 für den Satzspiegel notwendig war. Dieser etwas verschrobene
 % Satzspiegel wird im Kompatibilitätsmodus weiterhin angeboten.
 %    \begin{macrocode}
-\iftudscrverlower{2.03}{\newlength\tud@dim@ddcdiff}{}
+\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{}
 %    \end{macrocode}
 % \end{length}^^A \tud@dim@ddcdiff
 % \begin{macro}{\tud@geometry@set}
 % \changes{v2.03}{2015/01/23}{Längenberechnung für den Satzspiegel an 
-%   Referenzlänge \cs{tud@dim@widemargin} gekoppelt}%^^A
+%   Referenzlänge \cs{tud@dim@widemargin} gekoppelt}^^A
 % \begin{macro}{\tud@head@font@size}
 % Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die
 % Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die
@@ -268,7 +268,7 @@
 %
 % \subsection{Unterstützung der \cls{standalone}-Klasse}
 %
-% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}%^^A
+% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}^^A
 %
 % Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate 
 % Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse 
@@ -276,15 +276,15 @@
 % der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen 
 % für einige Einstellungen unterdrückt werden.
 %
-% \begin{macro}{\ifstandalonecrop}
-% \changes{v2.02}{2014/09/08}{neu}%^^A
+% \begin{macro}{\tud@ifsacrop}
+% \changes{v2.02}{2014/09/08}{neu}^^A
 % Mit diesem Makro kann die Verwendung der Option \opt{crop} mit der Klasse 
 % \cls{standalone} geprüft werden. Das erste Argument wird ausgeführt, wenn 
 % die Klasse geladen und die Option aktiv ist. Das zweite Argument wird 
 % ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die 
 % Klasse \cls{standalone} gar nicht geladen wurde.
 %    \begin{macrocode}
-\newcommand*\ifstandalonecrop{%
+\newcommand*\tud@ifsacrop{%
   \ifcsdef{ifsa@crop}{%
     \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}%
   }{%
@@ -292,33 +292,7 @@
   }%
 }
 %    \end{macrocode}
-% \end{macro}^^A \ifstandalonecrop
-%
-% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv,
-% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das
-% Laden von \pkg{scrlayer-scrpage} verhindert.
-%
-%    \begin{macrocode}
-\AtEndPreamble{%
-  \ifstandalonecrop{%
-    \PreventPackageFromLoading{scrlayer-scrpage}%
-    \pagestyle{empty}%
-    \hoffset=-72.27pt%
-    \voffset=-72.27pt%
-    \topmargin=0pt%
-    \headheight=0pt%
-    \headsep=0pt%
-    \marginparsep=0pt%
-    \marginparwidth=0pt%
-    \footskip=0pt%
-    \marginparpush=0pt%
-    \oddsidemargin=0pt%
-    \evensidemargin=0pt%
-    \topskip=0pt%
-    \textheight=\maxdimen%
-  }{}%
-}
-%    \end{macrocode}
+% \end{macro}^^A \tud@ifsacrop
 %
 % \subsection{Definition des Seitenstils mittels \pkg{scrlayer-scrpage}}
 %
@@ -330,12 +304,92 @@
 % 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}
+\tud@ifsacrop{%
+  \PreventPackageFromLoading{scrlayer-scrpage}%
+  \pagestyle{empty}%
+  \hoffset=-72.27pt%
+  \voffset=-72.27pt%
+  \topmargin=0pt%
+  \headheight=0pt%
+  \headsep=0pt%
+  \marginparsep=0pt%
+  \marginparwidth=0pt%
+  \footskip=0pt%
+  \marginparpush=0pt%
+  \oddsidemargin=0pt%
+  \evensidemargin=0pt%
+  \topskip=0pt%
+  \textheight=\maxdimen%
+}{%
+  \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}%
+}
+%    \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 Paket 
+% \pkg{scrlayer-scrpage} nicht geladen wurde, werden einige notwendige Makros 
+% definiert und vor dem Laden des Paketes wieder als \cs{undefined} gesetzt.
+%    \begin{macrocode}
+\tud@cmd@store{pagestyle}
+\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}
+\BeforePackage{scrlayer-scrpage}{%
+  \tud@cmd@restore{pagestyle}%
+  \csundef{ps@tudheadings}%
+  \csundef{ps@plain.tudheadings}%
+  \csundef{ps@empty.tudheadings}%
+  \undef\currentpagestyle%
+  \undef\BeforeSelectAnyPageStyle%
+  \undef\GetRealPageStyle%
+}
+%    \end{macrocode}
+%
+% \changes{v2.03}{2015/06/18}{Auswahl der Seitenstile \pgs{tudheadings} vor
+%   möglich \pkg{scrlayer-scrpage}}^^A
+%
+% 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~-- oder ggf. spätestens am Ende der Präambel etwas 
+% angepasst~--  wiederhergestellt. Die Redefinition führt zum Ausführen des
+% Seitenstils erst nachdem diese auch tatsächlich erstellt wurden.
+%    \begin{macrocode}
+\let\tud@pagestyle\pagestyle
+\apptocmd{\tud@pagestyle}{%
+  \edef\currentpagestyle{#1}%
+}{}{\tud@patch@wrn{pagestyle}}%
+\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}}
+\AtEndPreamble{%
+  \@ifpackageloaded{scrlayer-scrpage}{}{%
+    \let\pagestyle\tud@pagestyle%
+    \undef\tud@pagestyle%
+  }%
+}
+%    \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{pagestyle}{tudheadings}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{pagestyle}{plain.tudheadings}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{pagestyle}{empty.tudheadings}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \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
@@ -345,251 +399,279 @@
 %
 % 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.
+% 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}
-\AtEndPreamble{%
-%    \end{macrocode}
-% Damit der Anwender beliebige Optionen an \pkg{scrlayer-scrpage} übergeben 
-% kann, wird das Paket erst zum Ende der Präambel geladen, wenn dies nicht 
-% bereits vorher geschehen ist. Anschließend werden verschiedene, sogeannte 
-% Layers respektive Ebenen für die einzelnen Elemente auf einer Seite erstellt.
-%    \begin{macrocode}
-  \RequirePackage{scrlayer-scrpage}[2013/12/14]%
-  \AfterPackage*{scrlayer-scrpage}{%
+\AfterPackage{scrlayer-scrpage}{%
 %    \end{macrocode}
+% \begin{layer}{tudheadings.head.content}
+% \changes{v2.04}{2015/05/31}{neu}^^A
 % \begin{layer}{tudheadings.head.mainlogo}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.04}{2015/05/31}{entfernt}^^A
 % \begin{layer}{tudheadings.head.logo}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD, \dots
-%    \begin{macrocode}
-    \DeclareNewLayer[%
-      background,headsep,%
-      voffset=\tud@dim@logoy,%
-      contents={%
-        \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}%
-        \tud@mainlogo%
-      },%
-    ]{tudheadings.head.mainlogo}%
-%    \end{macrocode}
-% \dots und das Zweitlogo.
-%    \begin{macrocode}
-    \DeclareNewLayer[%
-      background,headsep,%
-      voffset=\tud@dim@logoy,%
-      contents={\hfill\tud@headlogo},%
-    ]{tudheadings.head.logo}%
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.04}{2015/05/31}{entfernt}^^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,%
+    voffset=\tud@dim@logoy,%
+    contents={%
+%    \end{macrocode}
+% Vor der Ausgabe der Logoboxen werden diese im Bedarfsfall neu gesetzt.
+%    \begin{macrocode}
+      \tud@mainlogo@set%
+      \tud@headlogo@option@set%
+      \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}%
+      \tud@mainlogo@use\hfill\tud@headlogo@use%
+    },%
+  ]{tudheadings.head.content}%
 %    \end{macrocode}
 % \end{layer}^^A tudheadings.head.logo
 % \end{layer}^^A tudheadings.head.mainlogo
+% \end{layer}^^A tudheadings.head.content
 % \begin{layer}{tudheadings.head.back}
-% \changes{v2.03}{2015/02/14}{neu}%^^A
+% \changes{v2.03}{2015/02/14}{neu}^^A
 % \begin{layer}{tudheadings.head.bar}
-% \changes{v2.03}{2015/02/14}{neu}%^^A
+% \changes{v2.03}{2015/02/14}{neu}^^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,%
-      contents={%
-        \ifnum\tud@head@bar>\@ne\relax%
-          \color{HKS41}%
-          \rule{\layerwidth}{\tud@dim@topmargin}%
-        \fi%
-      },%
-    ]{tudheadings.head.back}%
-    \DeclareNewLayer[%
-      background,%
-      voffset=\tud@dim@topmargin,%
-      contents={%
-        \ifnum\tud@head@bar>\@ne\relax%
-          \color{HKS41!80}%
-          \rule{\layerwidth}{\tud@dim@barheight}%
-        \fi%
-      },%
-    ]{tudheadings.head.bar}%
+  \DeclareNewLayer[%
+    background,%
+    contents={%
+      \ifnum\tud@head@bar>\tw@\relax% cdhead=color
+        \color{HKS41}%
+        \rule{\layerwidth}{\tud@dim@topmargin}%
+      \fi%
+    },%
+  ]{tudheadings.head.back}%
+  \DeclareNewLayer[%
+    background,%
+    voffset=\tud@dim@topmargin,%
+    contents={%
+      \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color
+        \color{HKS41!60}%
+        \rule{\layerwidth}{\tud@dim@barheight}%
+      \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
+% \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@dim@topmargin+\tud@dim@line\relax,%
-      contents={\tud@head@text@box},%
-    ]{tudheadings.head.text}%
+  \DeclareNewLayer[%
+    background,headsep,%
+    voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,%
+    contents={\tud@head@text@box},%
+  ]{tudheadings.head.text}%
 %    \end{macrocode}
 % \end{layer}^^A tudheadings.head.text
 % \begin{layer}{tudheadings.head.upperline}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{layer}{tudheadings.head.lowerline}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{layer}{tudheadings.head.upperwideline}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{layer}{tudheadings.head.lowerwideline}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \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. Darauf folgt \dots
-%    \begin{macrocode}
-    \DeclareNewLayer[%
-      background,headsep,%
-      voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,%
-      contents={%
-        \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else%
-          \tud@head@rule{\textwidth}%
-        \fi\fi%
-      },%
-    ]{tudheadings.head.upperline}%
-    \DeclareNewLayer[%
-      background,headsep,%
-      voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
-        -.5\tud@dim@line\relax,%
-      contents={%
-        \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else%
-          \tud@head@rule{\textwidth}%
-        \fi\fi%
-      },%
-    ]{tudheadings.head.lowerline}%
-    \DeclareNewLayer[%
-      background,%
-      voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,%
-      contents={%
-        \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar%
-          \tud@head@rule{\paperwidth}%
-        \fi\fi%
-      },%
-    ]{tudheadings.head.upperwideline}%
-    \DeclareNewLayer[%
-      background,%
-      voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
-        -.5\tud@dim@line\relax,%
-      contents={%
-        \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar%
-          \tud@head@rule{\paperwidth}%
-        \fi\fi%
-      },%
-    ]{tudheadings.head.lowerwideline}%
+% von \pkg{scrlayer-scrpage} verwendet. 
+%    \begin{macrocode}
+  \DeclareNewLayer[%
+    background,headsep,%
+    voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,%
+    contents={%
+      \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
+        \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi%
+      \fi%
+    },%
+  ]{tudheadings.head.upperline}%
+  \DeclareNewLayer[%
+    background,headsep,%
+    voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+      -.5\tud@dim@line\relax,%
+    contents={%
+      \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
+        \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi%
+      \fi%
+    },%
+  ]{tudheadings.head.lowerline}%
+  \DeclareNewLayer[%
+    background,%
+    voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,%
+    contents={%
+      \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
+        \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi%
+      \fi%
+    },%
+  ]{tudheadings.head.upperwideline}%
+  \DeclareNewLayer[%
+    background,%
+    voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+      -.5\tud@dim@line\relax,%
+    contents={%
+      \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor
+        \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi%
+      \fi%
+    },%
+  ]{tudheadings.head.lowerwideline}%
 %    \end{macrocode}
 % \end{layer}^^A tudheadings.head.lowerwideline
 % \end{layer}^^A tudheadings.head.upperwideline
 % \end{layer}^^A tudheadings.head.lowerline
 % \end{layer}^^A tudheadings.head.upperline
-% \begin{layer}{tudheadings.foot.logo}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% \changes{v2.03}{2015/01/13}{Ebenendeklaration ist kompatibilitätsabhängig}%^^A
 % \begin{layer}{tudheadings.foot.back}
-% \changes{v2.03}{2015/02/15}{neu}%^^A
-% Außerdem wird eine weitere Ebene für Drittlogos sowie das \DDC-Logo im
-% Seitenfuß erstellt. Dabei wird die Ebene in Abhängigkeit vom gewählten 
-% Kompatibilitätsmodus unterschiedlich definiert. 
-% 
-% Ab Version~v2.03 wird der Satzspiegel so gewählt, dass das \DDC-Logo in den 
-% normalen Seitenfuß passt.
-%    \begin{macrocode}
-    \DeclareNewLayer[%
-      background,foot,%
-      height=\dimexpr\paperheight-\layeryoffset\relax,%
-      contents={%
-%    \end{macrocode}
-% Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, 
-% werden passende Standardwerte gesetzt.
-%    \begin{macrocode}
-        \ifdim\footlogoheight>\z@\relax\else%
-          \settoheight\footlogoheight{\tud@mainlogo}%
-          \iftudscrverlower{2.03}{%
-            \setlength\footlogoheight{.6\tud@dim@topmargin}%
-          }{}%
-        \fi%
-%    \end{macrocode}
-% Die gesetzt Größe der Logos im Fuß wird geprüft. Sollten diese zu groß sein, 
-% wird eine Warnug ausgegeben.
-%    \begin{macrocode}
-        \setlength\@tempdima{%
-          \dimexpr\footlogoheight-\layerheight+\dp\strutbox\relax%
-        }%
-        \ifdim\@tempdima>\vfuzz\relax%
-          \ClassWarning{\tudcls@name}{%
-            The chosen `\string\footlogoheight' 
-            (\the\footlogoheight)\MessageBreak%
-            is \the\@tempdima\space higher than recommended. You\MessageBreak%
-            should decrease this length
-            \ifcase\tud@geometry\relax\else%
-              or alternatively\MessageBreak%
-              enlarge the bottom margin by using option\MessageBreak%
-              `extrabottommargin'%
-            \fi%
-          }%
-        \fi%
-%    \end{macrocode}
-% Hier erfolgt die eigentliche Ausgabe der Logos. Dabei werden ggf. zuerst die 
-% mit \cs{footlogo} angegeben wurden, anschließend wird das \DDC-Logo gesetzt, 
-% fall dies gefordert ist.
-%    \begin{macrocode}
-        \let\@tempa\relax%
-        \@for\@tempb:=\tud@@footlogo\do{%
-          \@tempa%
-          \ifx\@tempb\@empty\else%
-            \expandafter\tud@footlogo\expandafter{\@tempb}%
+% \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
+% 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,%
+    hoffset=0pt,%
+    width=\paperwidth,%
+    addvoffset=-\dp\strutbox,%
+    height=\dimexpr\paperheight-\layeryoffset\relax,%
+    contents={%
+      \if@tud@foot@colored%
+        \let\@tempc\relax%
+        \ifdefvoid{\tud@pagecolor}{%
+          \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor
+            \def\@tempc{\color{HKS41!60}}%
+          \or% cdhead=color
+            \def\@tempc{\color{HKS41}}%
           \fi%
-          \let\@tempa\footlogosep%
+        }{%
+          \def\@tempc{\color{HKS41}}%
+          \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}%
         }%
-        \tud@ddclogo%
-      },%
-    ]{tudheadings.foot.logo}%
+        \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.
-%    \begin{macrocode}
-    \iftudscrverlower{2.03}{%
-      \ModifyLayer[%
-        voffset=\dimexpr\topmargin+1in+\headheight+\headsep+\textheight%
-          +\footskip-\footheight-\tud@dim@ddcdiff%
-          \ifcase\tud@geometry\relax\else+\ht\strutbox+\dp\strutbox\fi%
-          \relax,%
-        height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,%
-      ]{tudheadings.foot.logo}%
-    }{}%
-%    \end{macrocode}
-% Diese Ebene wird als Hintergrund für den Fußbereich definiert.
+% geändert. Hier wird dem Rechnung getragen, indem der farbige Hintergrund im 
+% Zweifelsfall vergrößert wird.
 %    \begin{macrocode}
-    \DeclareNewLayer[%
-      background,%
-      hoffset=0pt,%
-      width=\paperwidth,%
-      voffset=\dimexpr\@nameuse{scr@l@tudheadings.foot.logo@y}%
-        -\dp\strutbox\relax,%
-      height=\dimexpr\paperheight-\layeryoffset\relax,%
+  \tud@ifverlower{2.03}{%
+    \ModifyLayer[%
+      addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,%
       contents={%
-        \if@tud@footcolor%
+        \if@tud@foot@colored%
           \let\@tempc\relax%
-          \ifnum\tud@head@bar>\@ne\def\@tempc{\color{HKS41}}\fi%
-          \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!80}}}{}%
+          \ifdefvoid{\tud@pagecolor}{%
+            \ifcase\tud@head@bar\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%
-            \iftudscrverlower{2.03}{%
-              \tud@ddc@check%
-              \ifcase\@tempb\relax%
-                \vbox to \layerheight{%
-                  \vfil\@tempc%
-                  \rule{\layerwidth}{%
-                    \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax%
-                  }%
+            \tud@ddc@check%
+            \ifcase\@tempb\relax% \tud@ddc@foot=false
+              \vbox to \layerheight{%
+                \vfil\@tempc%
+                \rule{\layerwidth}{%
+                  \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax%
                 }%
-              \else%
-                \@tempc\rule{\layerwidth}{\layerheight}%
-              \fi%
-            }{\@tempc\rule{\layerwidth}{\layerheight}}%
+              }%
+            \else% \tud@ddc@foot!=false
+              \@tempc\rule{\layerwidth}{\layerheight}%
+            \fi%
           \fi%
         \fi%
       },%
     ]{tudheadings.foot.back}%
+  }{}%
 %    \end{macrocode}
-% \end{layer}^^A tudheadings.foot.back
+% 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\paperheight-\layeryoffset\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@footlogoheight@set%
+      \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}%
+%    \end{macrocode}
+% Im Bedarfsfall werden die Boxen vor der Ausgabe neu gesetzt. Danach erfolgt 
+% die Ausgabe, wobei die boxen übereinander gelegt werden.
+%    \begin{macrocode}
+      \tud@footlogo@option@set%
+      \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}%
+      \tud@footcontent@use{\@tempdima}{\layerwidth}%
+      \hspace*{-\layerwidth}%
+      \tud@footlogo@cmd@use%
+      \hspace*{-\layerwidth}%
+      \hfill\tud@footlogo@ddc@use{\@tempdima}%
+    },%
+  ]{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@ifverlower{2.03}{%
+    \ModifyLayer[%
+      addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,%
+      height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,%
+    ]{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
@@ -599,122 +681,147 @@
 % 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.mainlogo,%
-      tudheadings.head.logo,%
-      tudheadings.head.bar,%
-      tudheadings.head.text,%
-      tudheadings.head.upperline,%
-      tudheadings.head.lowerline,%
-      tudheadings.head.upperwideline,%
-      tudheadings.head.lowerwideline,%
-      tudheadings.foot.back,%
-      tudheadings.foot.logo,%
-      scrheadings.foot.odd,%
-      scrheadings.foot.even,%
-      scrheadings.foot.oneside,%
-      scrheadings.foot.above.line,%
-      scrheadings.foot.below.line%
-    }%
+  \DeclareNewPageStyleByLayers[%
+    onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground%
+  ]{tudheadings}{%
+    tudheadings.head.back,%
+    tudheadings.head.content,%
+    tudheadings.head.bar,%
+    tudheadings.head.text,%
+    tudheadings.head.upperline,%
+    tudheadings.head.lowerline,%
+    tudheadings.head.upperwideline,%
+    tudheadings.head.lowerwideline,%
+    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%
+  }%
+  \listadd\tud@ps@list{tudheadings}%
 %    \end{macrocode}
 % Zuletzt werden Aliasnamen für den Seitenstil definiert.
 %    \begin{macrocode}
-    \DeclareNewPageStyleAlias{tud}{tudheadings}%
-    \DeclareNewPageStyleAlias{tudscr}{tudheadings}%
-    \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}%
+  \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.mainlogo,%
-      tudheadings.head.logo,%
-      tudheadings.head.bar,%
-      tudheadings.head.text,%
-      tudheadings.head.upperline,%
-      tudheadings.head.lowerline,%
-      tudheadings.head.upperwideline,%
-      tudheadings.head.lowerwideline,%
-      tudheadings.foot.back,%
-      tudheadings.foot.logo,%
-      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}%
+  \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.upperline,%
+    tudheadings.head.lowerline,%
+    tudheadings.head.upperwideline,%
+    tudheadings.head.lowerwideline,%
+    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%
+  }%
+  \listadd\tud@ps@list{plain.tudheadings}%
+  \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.mainlogo,%
-      tudheadings.head.logo,%
-      tudheadings.head.bar,%
-      tudheadings.head.text,%
-      tudheadings.head.upperline,%
-      tudheadings.head.lowerline,%
-      tudheadings.head.upperwideline,%
-      tudheadings.head.lowerwideline,%
-      tudheadings.foot.back,%
-      tudheadings.foot.logo,%
-    }%
-    \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}%
-    \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}%
-    \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}%
-    \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}%
-    \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}%
+  \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.upperline,%
+    tudheadings.head.lowerline,%
+    tudheadings.head.upperwideline,%
+    tudheadings.head.lowerwideline,%
+    tudheadings.foot.back,%
+    tudheadings.foot.content,%
+    tudheadings.last%
+  }%
+  \listadd\tud@ps@list{empty.tudheadings}%
+  \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
+% \changes{v2.03}{2015/01/09}{neu}^^A
+% \begin{macro}{\tud@pagecolor}
+% \begin{macro}{\tud@restorepagecolor}
+% \changes{v2.03}{2015/01/09}{entfernt}^^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.
-%    \begin{macrocode}
-    \DeclareNewLayer[
-      background,page,%
-      contents={%
-        \ifdefvoid{\tud@pagecolor}{}{%
-          \color{\tud@pagecolor}%
-          \rule{\layerwidth}{\layerheight}%
-        }%
-      },%
-    ]{tudheadings.pagecolor}
-    \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}%
+% hinzugefügt wird. Dabei dient das Makros \cs{tud@pagecolor} zum Umschalten
+% der Hintergrundfarben und wird durch die Auswertung der Hilfsmakros 
+% \cs{tud@layout@\dots} optionsabhängig für Titel-, Teile- sowie Kapitelseiten 
+% gesetzt. 
+%    \begin{macrocode}
+  \newcommand*\tud@pagecolor{}%
+  \DeclareNewLayer[%
+    background,page,%
+    contents={%
+      \ifdefvoid{\tud@pagecolor}{}{%
+        \color{\tud@pagecolor}%
+        \rule{\layerwidth}{\layerheight}%
+      }%
+    },%
+  ]{tudheadings.pagecolor}%
+  \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}%
 %    \end{macrocode}
+% \end{macro}^^A \tud@restorepagecolor
+% \end{macro}^^A \tud@pagecolor
 % \end{layer}^^A tudheadings.pagecolor
-% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch 
-% \cs{tud@beforeselectanypagestyle} aktiviert bzw. deaktiviert wird.
+% Damit wurden alle Ebenen und die darauf aufbauenden Seitenstile deklariert. 
+%
+% Mit der Nutzung von \pkg{scrlayer-scrpage} ist die parallele Verwendung des 
+% Paketes \pkg{fancyhdr} nicht möglich.
 %    \begin{macrocode}
-    \BeforeSelectAnyPageStyle{\tud@beforeselectanypagestyle{#1}}%
-  }%
 }
+\PreventPackageFromLoading[%
+  \ClassWarning{\TUDClassName}{%
+    The package `fancyhdr' must not be used with a\MessageBreak%
+    TUD-KOMA-Script class. You should make use of the\MessageBreak%
+    capabilities of package `scrlayer-scrpage' instead%
+  }%
+]{fancyhdr}
 %    \end{macrocode}
 % \end{pagestyle}^^A empty.tudheadings
 % \end{pagestyle}^^A plain.tudheadings
 % \end{pagestyle}^^A tudheadings
 % \begin{macro}{\tud@ps@onselect}
-% \changes{v2.03}{2015/01/09}{neu}%^^A
+% \changes{v2.03}{2015/01/09}{neu}^^A
 % \begin{macro}{\tud@ps@onbackground}
-% \changes{v2.03}{2015/02/14}{neu}%^^A
+% \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
+% \changes{v2.03}{2015/02/15}{neu}^^A
+% \begin{macro}{\tud@foot@fontcolor}
+% \changes{v2.04}{2015/04/21}{neu}^^A
 % Diese Befehle werden bei der Initialiserung der Seitenstile beziehungsweise
 % zu Beginn der Ebenenausgabe aufgerufen.
 %    \begin{macrocode}
@@ -725,7 +832,7 @@
 % 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 verziichtet wird. Das automatische Umschalten soll 
+% weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll 
 % dennoch ermöglicht werden.
 %    \begin{macrocode}
   \DeclarePageStyleAlias{plain}{plain.tudheadings}%
@@ -733,325 +840,226 @@
   \def\sls@currentheadings{tudheadings}%
   \def\sls@currentplain{plain.tudheadings}%
 }
+%    \end{macrocode}
 % 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} erfolgt 
-% dies gleichermaßen für ein etwaiges \DDC-Logo.
+% des Kopfes ggf. angepasst werden kann. Mit \cs{tud@foot@logocolor} kann
+% gleichermaßen die Farbe eines etwaigen \DDC-Logo festgelegt werden, in 
+% \cs{tud@foot@fontcolor} wird ggf. die Schriftfarbe für den Fuß gespeichert.
 %    \begin{macrocode}
 \newcommand*\tud@head@logocolor{black}
+\newcommand*\tud@head@fontcolor{}
 \newcommand*\tud@foot@logocolor{black}
+\newcommand*\tud@foot@fontcolor{}
 \newcommand*\tud@ps@onbackground{%
-  \ifcase\tud@head@bar\relax%
-    \def\tud@head@logocolor{black}%
-    \def\tud@foot@logocolor{black}%
-  \or%
-    \def\tud@head@logocolor{HKS41}%
-    \def\tud@foot@logocolor{HKS41}%
-  \or%
-    \def\tud@head@logocolor{white}%
-    \if@tud@footcolor%
-      \def\tud@foot@logocolor{white}%
-    \else%
+%    \end{macrocode}
+% Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe.
+%    \begin{macrocode}
+  \ifdefvoid{\tud@pagecolor}{%
+    \ifcase\tud@head@bar\relax% cdhead=nocolor
+      \def\tud@head@logocolor{black}%
+      \def\tud@head@fontcolor{}%
+      \def\tud@foot@logocolor{black}%
+      \def\tud@foot@fontcolor{}%
+    \or% cdhead=litecolor
+      \def\tud@head@logocolor{HKS41}%
+      \def\tud@head@fontcolor{HKS41}%
       \def\tud@foot@logocolor{HKS41}%
+      \def\tud@foot@fontcolor{HKS41}%
+    \or% cdhead=barcolor
+      \def\tud@head@logocolor{HKS41}%
+      \def\tud@head@fontcolor{white}%
+      \if@tud@foot@colored%
+        \def\tud@foot@logocolor{white}%
+        \def\tud@foot@fontcolor{white}%
+      \else%
+        \def\tud@foot@logocolor{HKS41}%
+        \def\tud@foot@fontcolor{HKS41}%
+      \fi%
+    \or% cdhead=color
+      \def\tud@head@logocolor{white}%
+      \def\tud@head@fontcolor{white}%
+      \if@tud@foot@colored%
+        \def\tud@foot@logocolor{white}%
+        \def\tud@foot@fontcolor{white}%
+      \else%
+        \def\tud@foot@logocolor{HKS41}%
+        \def\tud@foot@fontcolor{HKS41}%
+      \fi%
     \fi%
-  \fi%
+  }{%
+%    \end{macrocode}
+% Die Einstellungen für Seiten mit Hintergrundfarbe variieren davon. Zuerst die 
+% für farbige Titel- und Teileseiten\dots
+%    \begin{macrocode}
+    \ifstr{\tud@pagecolor}{HKS41}{%
+      \def\tud@head@logocolor{white}%
+      \def\tud@head@fontcolor{white}%
+      \def\tud@foot@logocolor{white}%
+      \if@tud@foot@colored%
+        \def\tud@foot@fontcolor{white}%
+      \else%
+        \def\tud@foot@fontcolor{HKS41!30}%
+      \fi%
+      \bool@std@lock{@tud@head@widebar}{true}%
+%    \end{macrocode}
+% \dots sowie die für die farbigen Kapitelseiten.
+%    \begin{macrocode}
+    }{%
+      \def\tud@head@logocolor{HKS41}%
+      \def\tud@head@fontcolor{HKS41}%
+      \ifcase\tud@head@bar\relax\or\or\or% cdhead=color
+        \def\tud@head@logocolor{white}%
+        \def\tud@head@fontcolor{white}%
+      \fi%
+      \if@tud@foot@colored%
+        \def\tud@foot@logocolor{white}%
+        \def\tud@foot@fontcolor{white}%
+      \else%
+        \def\tud@foot@logocolor{HKS41}%
+        \def\tud@foot@fontcolor{HKS41}%
+      \fi%
+      \bool@std@lock{@tud@head@widebar}{true}%
+    }%
+  }%
 %    \end{macrocode}
-% In Abhängigkeit von der eingestzten Hintergrundfarbe der Seite wird die 
-% Linienstärke des Querbalkens gesetzt.
+% 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@dim@line\tud@dim@thinline%
-  \ifstr{\tud@head@logocolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}%
+  \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@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
 % \end{macro}^^A \tud@ps@onselect
 % \begin{macro}{\ps@tudpage@plain}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
 % \begin{macro}{\ps@tudpage@empty}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
 % Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt.
 % \end{macro}^^A \ps@tudpage@empty
 % \end{macro}^^A \ps@tudpage@plain
 % \begin{macro}{\thispagestyle}
-% \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}%^^A
+% \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}^^A
 %    \begin{macrocode}
 \patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{%
   \xdef\@specialstyle{\GetRealPageStyle{#1}}
 }{}{\tud@patch@wrn{thispagestyle}}
 %    \end{macrocode}
-% \end{macro}^^A \tud@beforeselectanypagestyle
-% \begin{macro}{\tud@beforeselectanypagestyle}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% \begin{macro}{\tud@currentgeometry}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% Mit \cs{tud@beforeselectanypagestyle} wird beim Umschalten des Seitenstils
-% gegebenfalls der Satzspiegel geändert. Dabei wird der aktivierte Satzspiegel
-% in dem Makro \cs{tud@currentgeometry} gesichert, um darauf zu einem späteren
-% Zeitpunkt prüfen zu können.
-%
-% Für den Fall, dass das Dokument nicht ausschließlich mit dem Kopf im \CD
-% auf jeder Seite gesetzt wird, muss der komplette vertikale Satzspiegel
-% angepasst werden, sonst wäre der obere Rand optisch viel zu groß. Hierfür
-% wird das Paket \pkg{geometry} genutzt. Durch \cs{tud@geometry@process} 
-% werden zwei~-- für die KOmpatibilitätsvariante drei~-- Layouts erstellt.
-% Diese können mit \cs{loadgeometry}\marg{Stil} geladen werden.
+% \end{macro}^^A \thispagestyle
+% \begin{macro}{\tud@head@text}
+% \begin{macro}{\tud@head@text@first}
+% \begin{macro}{\tud@head@text@second}
+% \begin{macro}{\tud@head@text@delimiter}
+% \begin{macro}{\tud@head@text@buffer}
+% Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und
+% unterhalb des Querbalkens des TUD-Kopfes dienen.
 %    \begin{macrocode}
-\newcommand*\tud@currentgeometry{}
-\newcommand*\tud@beforeselectanypagestyle[1]{%
+\newcommand*\tud@head@text{}
+\newcommand*\tud@head@text@first{}
+\newcommand*\tud@head@text@second{}
+\newcommand*\tud@head@text@delimiter{}
+\newcommand*\tud@head@text@buffer{}
 %    \end{macrocode}
-% Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles}
-% derart definiert, dass zwischen \pgs{tudheadings} und \pgs{plain.tudheadings}
-% auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain} 
-% umgeschaltet werden kann. Dies wird hiermit beachtet.
+% \end{macro}^^A \tud@head@text@buffer
+% \end{macro}^^A \tud@head@text@delimiter
+% \end{macro}^^A \tud@head@text@second
+% \end{macro}^^A \tud@head@text@first
+% \end{macro}^^A \tud@head@text
+% \begin{macro}{\tud@head@rule}
+% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}^^A
+% Der Querbalken des Kopfes läuft je nach gewähltem Parameter \cs{tud@head@bar}
+% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite.
+% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und 
+% über \cs{tud@dim@line} definierter Dicke.
 %    \begin{macrocode}
-  \ifstr{#1}{\GetRealPageStyle{#1}}{%
-    \def\@tempa{#1}%
+\newcommand*\tud@head@rule[1]{%
+  \tud@color{\tud@head@fontcolor}%
+  \rule[\ht\strutbox]{#1}{\tud@dim@line}%
+}
 %    \end{macrocode}
-% Vor der \KOMAScript-Version~v3.15 wurden die Seitenstile \pgs{headings} und 
-% \pgs{plain} nicht als Alias definiert. Dieses Problem wird hiermit behoben.
+% \end{macro}^^A \tud@head@rule
+% \begin{macro}{\tud@head@text@add}
+% \changes{v2.04}{2015/04/08}{Verwendung von \cs{protected@edef}}^^A
+% Dieser Befehl dient zum Füllen eines Puffer-Strings. Es werden sequentiell
+% alle potentiellen Felder hinzugefügt. Sollte das zuletzt hinzugefügte Feld
+% dazu führen, dass der Text der Kopfzeile über den Seitenrand hinausragt, so
+% wird eine zweite Zeile begonnen. In diesem Fall wird der temporäre Schalter
+% \cs{@tempswa} aktiviert. Auch das Trennzeichen zwischen einzelnen Feldern
+% muss gepuffert werden, da dieses nur gesetzt wird, wenn ein weiteres Feld
+% nachfolgt.
 %    \begin{macrocode}
-    \ifcsdef{scr@v@3.15}{}{%
-      \ifstr{\sls@currentheadings}{tudheadings}{%
-        \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}%
-        \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}%
-      }{}%
+\newcommand*\tud@head@text@add[3][, ]{%
+  \protected@edef\tud@head@text{#3}%
+  \ifx\tud@head@text\@empty%
+    \def\tud@head@text@delimiter{}%
+  \else%
+    \edef\tud@head@text@delimiter{\tud@head@text@buffer}%
+    \def\tud@head@text@buffer{#1}%
+  \fi%
+  \if@tempswa\else%
+    \def\@tempa{%
+      \tud@head@text@first%
+      \tud@head@text@delimiter%
+      #2%
+      \tud@head@text%
+    }%
+    \settowidth\@tempdima{\@tempa}%
+    \ifdim\@tempdima>\textwidth\relax%
+      \@tempswatrue%
+      \def\tud@head@text@delimiter{}%
+    \else%
+      \protected@edef\tud@head@text@first{\@tempa}%
+    \fi%
+  \fi%
+  \if@tempswa%
+    \protected@edef\tud@head@text@second{%
+      \tud@head@text@second%
+      \tud@head@text@delimiter%
+      #2%
+      \tud@head@text%
     }%
+  \fi%
+}
 %    \end{macrocode}
-% Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll, muss 
-% der dazugehörige Satzspiegel ausgewählt werden\dots
+% \end{macro}^^A \tud@head@text@add
+% \begin{macro}{\tud@head@text@box}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.03}{2015/01/09}{Bugfix für zweite Zeile. Diese muss in jedem Fall 
+%   gesetzt werden, auch wenn sie leer ist.}^^A
+% Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile.
 %    \begin{macrocode}
-    \iftudpagestyle{\@tempa}{%
+\newcommand*\tud@head@text@box{%
 %    \end{macrocode}
-% \dots wobei in der Version~v2.02 zwei unterschiedliche existierten, und 
-% abhängig von der Verwendung des \DDC-Logos im Fuß waren.
+% Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben.
 %    \begin{macrocode}
-      \iftudscrverlower{2.03}{%
+  \ifx\@faculty\@empty%
+    \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}%
+    \faculty{}%
+  \fi%
 %    \end{macrocode}
-% In diesem Fall werden die Seitenfußeinstellungen mit \cs{tud@ddc@check} in
-% \cs{@tempb} geschrieben und abhängig davon der richtige Satzspiegel geladen. 
-% Dabei wird zuvor mit dem Wert aus \cs{tud@currentgeometry} geprüft, ob dies 
-% überhaupt notwendig ist.
+% Abhängig vom Wert \cs{tud@cdfont}~-- gesetzt entweder von der globalen
+% Klassenoption oder vom lokalen Parameter \opt{cdfont}~-- werden entweder die
+% Schriften des \CDs oder aber die serifenlose Standardschrift für die Kopfzeile
+% verwendet.
 %    \begin{macrocode}
-        \tud@ddc@check%
+  \tud@head@font@set%
 %    \end{macrocode}
-% Das \DDC-Logo im Fuß ist nicht aktiviert.
-%    \begin{macrocode}
-        \ifcase\@tempb\relax%
-          \ifstr{\tud@currentgeometry}{tudarea}{}{%
-            \loadgeometry{tudarea}%
-            \gdef\tud@currentgeometry{tudarea}%
-          }%
-%    \end{macrocode}
-% Das \DDC-Logo im Fuß ist aktiviert.
-%    \begin{macrocode}
-        \else%
-          \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
-            \loadgeometry{tudareaddc}%
-            \gdef\tud@currentgeometry{tudareaddc}%
-          }%
-        \fi%
-%    \end{macrocode}
-% Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten.
-%    \begin{macrocode}
-      }{%
-        \ifstr{\tud@currentgeometry}{tudarea}{}{%
-          \loadgeometry{tudarea}%
-          \gdef\tud@currentgeometry{tudarea}%
-        }%
-      }%
-%    \end{macrocode}
-% Die Länge \cs{tud@dim@headdiff} gibt an, wie groß die Differenz zwischen 
-% Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil 
-% ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@} 
-% gesetzt.
-%    \begin{macrocode}
-      \setlength\tud@dim@headdiff{\z@}%
-%    \end{macrocode}
-% Hier ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll.
-% Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} 
-% zurückgesetzt.
-%    \begin{macrocode}
-    }{%
-      \ifstr{\tud@currentgeometry}{typearea}{}{%
-        \loadgeometry{typearea}%
-        \gdef\tud@currentgeometry{typearea}%
-      }%
-%    \end{macrocode}
-% Die Länge \cs{tud@dim@headdiff} wird auf den berechneten Wert gesetzt. Nur 
-% für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und dieser
-% nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas angepasst 
-% werden.
-%    \begin{macrocode}
-      \setlength\tud@dim@headdiff{\tud@ta@headdiff}%
-      \ifcase\tud@geometry\relax\else%
-        \if@hincl%
-          \addtolength\tud@dim@headdiff{%
-            \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax%
-          }%
-        \fi%
-      \fi%
-    }%
-%    \end{macrocode}
-% Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt.
-%    \begin{macrocode}
-    \global\tud@dim@headdiff=\tud@dim@headdiff%
-  }{}%
-}
-%    \end{macrocode}
-% \end{macro}^^A \tud@currentgeometry
-% \end{macro}^^A \tud@beforeselectanypagestyle
-% \begin{macro}{\cleardoubleoddpageusingstyle}
-% \begin{macro}{\cleardoubleevenpageusingstyle}
-% \begin{macro}{\cleardoublepageusingstyle}
-% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die 
-% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal
-% angepasst werden.
-%    \begin{macrocode}
-\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{%
-  \let\tud@beforeselectanypagestyle\@gobble\pagestyle%
-}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}}
-\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{%
-  \let\tud@beforeselectanypagestyle\@gobble\pagestyle%
-}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}}
-\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{%
-  \let\tud@beforeselectanypagestyle\@gobble\pagestyle%
-}{}{\tud@patch@wrn{cleardoublepageusingstyle}}
-%    \end{macrocode}
-% \end{macro}^^A \cleardoublepageusingstyle
-% \end{macro}^^A \cleardoubleevenpageusingstyle
-% \end{macro}^^A \cleardoubleoddpageusingstyle
-% \begin{macro}{\tud@ddc@enlargepage}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% Der Befehl wird nur für den Kompatibilitätsmodus zur Version~v2.02 benötigt 
-% und für die Titelkopf- und Kapitelseiten verwendet. Er verkleinert die
-% entsprechenden Seiten, wenn für diese mit dem Befehl \cs{thispagestyle} einer
-% der \pgs{tudheadings}"=Seitenstile gewählt wird \emph{und} das \DDC-Logo im
-% Fuß gesetzt werden soll. Der entsprechende Seitenstil kann im optionalen
-% Argument angegeben werden, wenn der Befehl bedingt ausgeführt werden soll.
-%    \begin{macrocode}
-\iftudscrverlower{2.03}{%
-  \newcommand*\tud@ddc@enlargepage[1][]{%
-    \iftudpagestyle{#1}{%
-      \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
-        \tud@ddc@check%
-        \ifcase\@tempb\relax\else%
-          \enlargethispage{-\tud@dim@ddcdiff}%
-        \fi%
-      }%
-    }{}%
-  }%
-}{}
-%    \end{macrocode}
-% \end{macro}^^A \tud@ddc@enlargepage
-% \begin{macro}{\tud@head@text}
-% \begin{macro}{\tud@head@text@first}
-% \begin{macro}{\tud@head@text@second}
-% \begin{macro}{\tud@head@text@delimiter}
-% \begin{macro}{\tud@head@text@buffer}
-% Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und
-% unterhalb des Querbalkens des TUD-Kopfes dienen.
-%    \begin{macrocode}
-\newcommand*\tud@head@text{}
-\newcommand*\tud@head@text@first{}
-\newcommand*\tud@head@text@second{}
-\newcommand*\tud@head@text@delimiter{}
-\newcommand*\tud@head@text@buffer{}
-%    \end{macrocode}
-% \end{macro}^^A \tud@head@text@buffer
-% \end{macro}^^A \tud@head@text@delimiter
-% \end{macro}^^A \tud@head@text@second
-% \end{macro}^^A \tud@head@text@first
-% \end{macro}^^A \tud@head@text
-% \begin{macro}{\tud@head@rule}
-% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}%^^A
-% Der Querbalken des Kopfes läuft je nach gewähltem Parameter \cs{tud@head@bar}
-% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite.
-% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und 
-% über \cs{tud@dim@line} definierter Dicke.
-%    \begin{macrocode}
-\newcommand*\tud@head@rule[1]{%
-  \color{\tud@head@logocolor}%
-  \rule[\ht\strutbox]{#1}{\tud@dim@line}%
-}
-%    \end{macrocode}
-% \end{macro}^^A \tud@head@rule
-% \begin{macro}{\tud@head@text@add}
-% Dieser Befehl dient zum Füllen eines Puffer-Strings. Es werden sequentiell
-% alle potentiellen Felder hinzugefügt. Sollte das zuletzt hinzugefügte Feld
-% dazu führen, dass der Text der Kopfzeile über den Seitenrand hinausragt, so
-% wird eine zweite Zeile begonnen. In diesem Fall wird der temporäre Schalter
-% \cs{@tempswa} aktiviert. Auch das Trennzeichen zwischen einzelnen Feldern
-% muss gepuffert werden, da dieses nur gesetzt wird, wenn ein weiteres Feld
-% nachfolgt.
-%    \begin{macrocode}
-\newcommand*\tud@head@text@add[3][, ]{%
-  \edef\tud@head@text{#3}%
-  \ifx\tud@head@text\@empty%
-    \def\tud@head@text@delimiter{}%
-  \else%
-    \edef\tud@head@text@delimiter{\tud@head@text@buffer}%
-    \def\tud@head@text@buffer{#1}%
-  \fi%
-  \if@tempswa\else%
-    \def\@tempa{%
-      \tud@head@text@first%
-      \tud@head@text@delimiter%
-      #2%
-      \tud@head@text%
-    }%
-    \settowidth\@tempdima{\@tempa}%
-    \ifdim\@tempdima>\textwidth\relax%
-      \@tempswatrue%
-      \def\tud@head@text@delimiter{}%
-    \else%
-      \edef\tud@head@text@first{\@tempa}%
-    \fi%
-  \fi%
-  \if@tempswa%
-    \edef\tud@head@text@second{%
-      \tud@head@text@second%
-      \tud@head@text@delimiter%
-      #2%
-      \tud@head@text%
-    }%
-  \fi%
-}
-%    \end{macrocode}
-% \end{macro}^^A \tud@head@text@add
-% \begin{macro}{\tud@head@text@box}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% \changes{v2.03}{2015/01/09}{Bugfix für zweite Zeile. Diese muss in jedem Fall 
-%   gesetzt werden, auch wenn sie leer ist.}%^^A
-% Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile.
-% \ToDo{Zeilenabstand bei unterschiedlichen Papiergrößen prüfen}[v2.04]
-%    \begin{macrocode}
-\newcommand*\tud@head@text@box{%
-%    \end{macrocode}
-% Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben.
-%    \begin{macrocode}
-  \ifx\@faculty\@empty%
-    \ClassWarningNoLine{\tudcls@name}{No `\string\faculty' given}%
-    \faculty{}%
-  \fi%
-%    \end{macrocode}
-% Abhängig vom Wert \cs{tud@cdfont}~-- gesetzt entweder von der globalen
-% Klassenoption oder vom lokalen Parameter \opt{cdfont}~-- werden entweder die
-% Schriften des \CDs oder aber die serifenlose Standardschrift für die Kopfzeile
-% verwendet.
-%    \begin{macrocode}
-  \tud@head@font@set%
-%    \end{macrocode}
-% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben.
-% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine zweite
-% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der
-% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der ersten und
-% gegebenenfalls der zweiten Textzeile im Kopf erfolgt durch das Makro
-% \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Der dafür
-% verwendete Schalter \cs{@tempswa} und die benötigten Hilfsmakros werden
-% vor der Verwendung initialisiert.
+% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben.
+% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine zweite
+% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der
+% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der ersten und
+% gegebenenfalls der zweiten Textzeile im Kopf erfolgt durch das Makro
+% \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Der dafür
+% verwendete Schalter \cs{@tempswa} und die benötigten Hilfsmakros werden
+% vor der Verwendung initialisiert.
 %    \begin{macrocode}
   \@tempswafalse%
   \def\tud@head@text@first{}%
@@ -1075,27 +1083,27 @@
 % \cs{tud@head@text@write} sowie einer möglichen Extrazeile.
 %    \begin{macrocode}
   \vbox{%
-    \linespread{0}\selectfont%
+    \linespread{0}\selectfont\offinterlineskip%
 %    \end{macrocode}
-% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes\dots
+% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes.
 %    \begin{macrocode}
-    \color{\tud@head@logocolor}%
+    \tud@color{\tud@head@fontcolor}%
     \tud@head@text@write{\tud@head@text@first}%
 %    \end{macrocode}
 % Die zweite und dritte Zeile sind bei zweifarbigen Kopf normalerweise blau, 
 % nur für einen dunklen Seitenhintergrund weiß.
 %    \begin{macrocode}
-    \ifnum\tud@head@bar>\@ne%
+    \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color
       \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{%
         \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}%
       }%
     \fi%
     \ifx\tud@head@text@second\@empty%
-      \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}%
+      \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}%
     \else%
       \newline\tud@head@text@write{\tud@head@text@second}%
       \ifx\@extraheadline\@empty\else%
-        \vspace{-\tud@dim@line}\newline\tud@head@font@light\@extraheadline%
+        \newline\vbox{\tud@head@font@light\@extraheadline}%
       \fi%
     \fi%
   }%
@@ -1104,14 +1112,14 @@
 % \end{macro}^^A \tud@head@text@box
 % \begin{macro}{\tud@head@text@write}
 % \changes{v2.02}{2014/06/23}{Vertikaler Freiraum für Ober- und Unterlängen 
-%   mit \cs{vphantom} eingefügt}%^^A
-% \changes{v2.02}{2014/12/04}{optische Zentrierung des Zeilentextes}%^^A
+%   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[1]{%
   \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[%
     \dimexpr\tud@dim@barheight-\depth\relax%
-  ][\depth]{#1\vphantom{gjpqy\"A\"O\"U}}%
+  ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}%
 }
 %    \end{macrocode}
 % \end{macro}^^A \tud@head@text@write
@@ -1120,7 +1128,7 @@
 % Textbreite, was bei besonders kleinen Papierformaten geschehen kann.
 %    \begin{macrocode}
 \newcommand\tud@head@text@wrn[1]{%
-  \ClassWarning{\tudcls@name}{%
+  \ClassWarning{\TUDClassName}{%
     The given entries for the headline\MessageBreak%
     (faculty, institute etc.) are #1\MessageBreak%
     too wide for the textwidth%
@@ -1129,24 +1137,56 @@
 }
 %    \end{macrocode}
 % \end{macro}^^A \tud@head@text@wrn
-% \begin{macro}{\tud@mainlogo@wrn}
-% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}%^^A
-% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die
-% Textbreite, was bei besonders kleinen Papierformaten geschehen kann.
-%    \begin{macrocode}
-\newcommand*\tud@mainlogo@wrn[1]{%
-  \ClassWarning{\tudcls@name}{%
-    The selected page layout means that the\MessageBreak%
-    logo of TUD extends beyond the printing area.\MessageBreak%
-    The inner margin is smaller than BCOR\MessageBreak%
-    (`BCOR=\the\ta@bcor', inner margin is #1)\MessageBreak%
-    Maybe you should decrease the current value\MessageBreak%
-    of DIV (`DIV=\the\ta@div')%
-  }%
-  \global\let\tud@mainlogo@wrn\@gobble%
+% \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@logo@#1\endcsname%
+}
+\newcommand*\tud@savelayerbox[1]{%
+  \global\expandafter\sbox\csname tud@logo@#1\endcsname%
+}
+\newcommand*\tud@uselayerbox[1]{%
+  \expandafter\usebox\csname tud@logo@#1\endcsname%
 }
 %    \end{macrocode}
-% \end{macro}^^A \tud@mainlogo@wrn
+% \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{\TUDClassName}{%
+        #3\MessageBreak%
+        The maximum height is exceeded by \the\@tempdima%
+      }%
+    \fi%
+  \endgroup%
+  \vbox to #1{#2}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \tud@vlayerbox
 %
 % \iffalse
 %</class&body>
@@ -1155,12 +1195,31 @@
 %
 % \subsection{Befehle, Optionen und Umsetzung der Seitenstilvarianten}
 %
+% \begin{macro}{\tud@iftudps}
+% \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@iftudps} wird geprüft, 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. Die Liste \cs{tud@ps@list} wird bei der Definition der 
+% Seitenstile selbst gesetzt.
+%    \begin{macrocode}
+\newcommand*\tud@ps@list{}
+\newcommand*\tud@iftudps[3]{%
+  \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \tud@ps@list
+% \end{macro}^^A \tud@iftudps
 % \begin{option}{ddc}
-% \changes{v2.02}{2014/06/23}{automatische Logowahl}%^^A
+% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A
 % \begin{option}{ddchead}
-% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A
+% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A
 % \begin{option}{ddcfoot}
-% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A
+% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A
 % Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil 
 % \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den
 % Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls 
@@ -1168,9 +1227,44 @@
 % 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}{\if@tud@ddc@internal}
+% \changes{v2.02}{2014/07/08}{neu}^^A
+% \begin{macro}{\tud@clearpage@iftudps}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@pagestyle@iftudps}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% Dieser Schalter wird intern von den Optionen \opt{ddc}, \opt{ddchead} und 
+% \opt{ddcfoot} verwendet, um rekursive Aufrufe der optionen zu verhindern.
+%    \begin{macrocode}
+\newif\if@tud@ddc@internal
+%    \end{macrocode}
+% 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 beider Abarbeitung der Optionen nur noch im 
+% Kompatibilitätmodus ausgeführt.
+%    \begin{macrocode}
+\newcommand*\tud@clearpage@iftudps{%
+  \if@tud@ddc@internal\else\if@atdocument%
+    \tud@iftudps{\currentpagestyle}{\clearpage}{}%
+  \fi\fi%
+}
+\newcommand*\tud@pagestyle@iftudps{%
+  \if@tud@ddc@internal\else\if@atdocument%
+    \tud@iftudps{\currentpagestyle}{%
+      \expandafter\pagestyle\expandafter{\currentpagestyle}%
+    }{}%
+  \fi\fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \tud@clearpage@iftudps
+% \end{macro}^^A \tud@pagestyle@iftudps
+% \end{macro}^^A \if@tud@ddc@internal
 % \begin{macro}{\tud@ddc@switch}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% Dieser Befehl enthält die gültigen Werte für die Optionen \opt{ddc}, 
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Dieses Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc}, 
 % \opt{ddchead} sowie \opt{ddcfoot}.
 %    \begin{macrocode}
 \newcommand*\tud@ddc@switch{}
@@ -1185,148 +1279,158 @@
 }
 %    \end{macrocode}
 % \end{macro}^^A \tud@ddc@switch
-% \begin{macro}{\tud@ddc@save}
-% \changes{v2.02}{2014/07/08}{neu}%^^A
-% \begin{macro}{\if@tud@ddc@save}
-% \changes{v2.02}{2014/07/08}{neu}%^^A
-% Diese beiden Befehle werden von den Optionen \opt{ddchead} und \opt{ddcfoot} 
-% benötigt, um nach dem Setzen der Option den vorherigen Wert vor dem möglichen 
-% Beenden einer Seite mit \cs{clearpage} wiederherstellen zu können.
-%    \begin{macrocode}
-\newcommand*\tud@ddc@save{}
-\newif\if@tud@ddc@save
-\@tud@ddc@savetrue
-%    \end{macrocode}
-% \end{macro}^^A \if@tud@ddc@save
-% \end{macro}^^A \tud@ddc@save
 % \begin{macro}{\tud@ddc}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% \begin{macro}{\if@tud@ddc@autoset}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\if@tud@ddc@auto}
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % Die Option \opt{ddc}.
 %    \begin{macrocode}
+\newif\if@tud@ddc@auto
 \newcommand*\tud@ddc{0}
-\newif\if@tud@ddc@autoset
 \TUD@key{ddc}[true]{%
 %    \end{macrocode}
-% Sollte diese innerhalb des Dokumentes aufgerufen werden, so wird für den Fall,
-% dass ein \pgs{tudheadings}-Seitenstil gewählt ist, ein \cs{clearpage} 
-% ausgeführt, da eventuell eine Änderung des Layers sowie des Satzspeigels 
-% notwendig ist. Anschließend wird der Schalter \cs{if@tud@ddc@autoset}
-% entsprechend des angegebenen Wertes gesetzt.
+% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird 
+% die Option abgearbeitet.
 %    \begin{macrocode}
+  \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
   \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi%
-    \ifcase\tud@ddc\relax%
-      \@tud@ddc@autosetfalse%
+%    \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%
-      \@tud@ddc@autosettrue%
+%    \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}
-% Abschließend wird der aktuelle Seitenstil erneut aufgerufen, um bei einem
-% geänderten Fuß den notwendigen Satzspiegel zu laden. Dies ist jedoch nur 
-% notwendig, wenn die Option innerhalb des Dokumentes verwendet wurde. Siehe
-% \cs{tud@beforeselectanypagestyle}.
+% 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}
-    \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi%
+    \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@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
 }
 %    \end{macrocode}
-% \end{macro}^^A \if@tud@ddc@autoset
+% \end{macro}^^A \if@tud@ddc@auto
 % \end{macro}^^A \tud@ddc
 % \begin{macro}{\tud@ddc@head}
-% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}%^^A
+% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^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{0}
 \TUD@key{ddchead}[true]{%
 %    \end{macrocode}
-% Der aktuelle Zustand des Schlüssels wird gesichert. Anschließend wird der 
-% Schlüssel mit dem neuen Wert gesetzt.
+% Der Seitenumbruch im Kompatibilitätsmodus.
 %    \begin{macrocode}
-  \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@head\fi%
+  \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
   \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}%
 %    \end{macrocode}
-% Sollte ein gültiger Wert für den Schlüssel übergeben worden sein, wird dieser
-% lokal auf den alten Wert gesetzt, um ggf. eine neue Seite zu erzeugen.
+% 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@save%
-      \begingroup%
-        \let\tud@ddc@head\tud@ddc@save%
-        \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi%
-      \endgroup%
-    \fi%
-%    \end{macrocode}
-% Danach werden die sich ausschließenden Optionen deaktiviert, ohne eine 
-% Sicherung der Werte vorzunehmen.
-%    \begin{macrocode}
-    \ifcase\tud@ddc@head\relax%
-      \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi%
-    \else%
-      \@tud@ddc@savefalse%
-      \TUDoptions{ddc=false}%
+    \if@tud@ddc@internal\else%
+      \@tud@ddc@internaltrue%
       \TUDoptions{ddcfoot=false}%
-      \@tud@ddc@savetrue%
+      \TUDoptions{ddc=false}%
+      \@tud@ddc@internalfalse%
     \fi%
   \fi%
+%    \end{macrocode}
+% Das Setzen des Seitenstils im Kompatibilitätsmodus.
+%    \begin{macrocode}
+  \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
 }
 %    \end{macrocode}
 % \end{macro}^^A \tud@ddc@head
 % \begin{macro}{\tud@ddc@foot}
-% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}%^^A
+% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^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{0}
 \TUD@key{ddcfoot}[true]{%
-  \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@foot\fi%
+%    \end{macrocode}
+% Der Seitenumbruch im Kompatibilitätsmodus.
+%    \begin{macrocode}
+  \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
   \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\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@save%
-      \begingroup%
-        \let\tud@ddc@foot\tud@ddc@save%
-        \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi%
-      \endgroup%
-    \fi%
-    \ifcase\tud@ddc@foot\relax%
-      \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi%
-    \else%
-      \@tud@ddc@savefalse%
-      \TUDoptions{ddc=false}%
+    \if@tud@ddc@internal\else%
+      \@tud@ddc@internaltrue%
       \TUDoptions{ddchead=false}%
-      \@tud@ddc@savetrue%
+      \TUDoptions{ddc=false}%
+      \@tud@ddc@internalfalse%
     \fi%
   \fi%
+%    \end{macrocode}
+% Das Setzen des Seitenstils im Kompatibilitätsmodus.
+%    \begin{macrocode}
+  \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
 }
 %    \end{macrocode}
 % \end{macro}^^A \tud@ddc@foot
 % \begin{macro}{\tud@ddc@check}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% Dieses Hilfsmakro wird aufgerufen, wenn geprüft werden soll, welche 
-% Einstellungen für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen 
-% kommen sollen. Dabei wird insbesondere geprüft, ob die automatischen Auswahl 
-% des \DDC-Logos aktiviert ist. Die jeweils gültige Auswahl für Kopf bzw. Fuß 
-% wird in \cs{@tempa} bzw. \cs{@tempb} geschrieben und kann anschließend 
-% ausgewertet werden.
+% \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.
+% Dabei wird über den Schalter \cs{if@tud@ddc@auto}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%
   \let\@tempb\tud@ddc@foot%
-  \if@tud@ddc@autoset%
-    \ifx\tud@@headlogo\@empty%
+  \if@tud@ddc@auto%
+    \ifdefvoid{\@headlogo}{%
       \let\@tempa\tud@ddc%
       \let\@tempb\z@%
-    \else%
+    }{%
       \let\@tempa\z@%
       \let\@tempb\tud@ddc%
-    \fi%
+    }%
   \fi%
-  \iftudscrverlower{2.03}{%
-    \ifcase\@tempb\relax\ifx\tud@@footlogo\@empty\else\let\@tempb\m@ne\fi\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@ifverlower{2.03}{%
+    \ifnum\@tempb=\z@\relax%
+      \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}%
+    \fi%
   }{}%
 }
 %    \end{macrocode}
@@ -1334,27 +1438,6 @@
 % \end{option}^^A ddcfoot
 % \end{option}^^A ddchead
 % \end{option}^^A ddc
-% \begin{macro}{\iftudpagestyle}
-% \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{iftudpagestyle} wird geprüft, 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.
-%    \begin{macrocode}
-\newcommand*\iftudpagestyle[3]{%
-  \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}%
-}
-\newcommand*\tud@ps@list{}
-\forcsvlist{\listadd\tud@ps@list}{%
-  tudheadings,plain.tudheadings,empty.tudheadings%
-}
-%    \end{macrocode}
-% \end{macro}^^A \tud@ps@list
-% \end{macro}^^A \iftudpagestyle
 % \begin{option}{extrabottommargin}
 % \begin{length}{\tud@dim@extrabottommargin}
 % Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur 
@@ -1377,148 +1460,508 @@
 %<*class&body>
 % \fi
 %
-% \begin{macro}{\tud@mainlogo}
-% \changes{v2.02}{2014/08/04}{Dateinamen der TUD-Logos geändert}%^^A
-% \begin{macro}{\tud@@mainlogo}
-% Mit diesem Makro wird das Logo der TU~Dresden eingebunden. Bei der Verwendung
-% von pdf\LaTeX{} kann wird Farbe des Logos an die Kopffarbe angepasst. Wird
-% der klassische Weg über dvi gewählt, so muss abhängig von der gewählten
-% Kopffarbe das entsprechend gefärbte Logo eingebunden werden.
-%
-%    \begin{macrocode}
-\newcommand*\tud@@mainlogo{}
-\newcommand*\tud@mainlogo{%
+% \begin{macro}{\tud@logo@main@black}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@logo@main@HKS41}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@logo@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@logo@main@white
+% \end{macro}^^A \tud@logo@main@HKS41
+% \end{macro}^^A \tud@logo@main@black
+% \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@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
+%    \begin{macrocode}
+\newlength\tud@mainlogoheight
+\newcommand*\tud@mainlogo@wrn[1]{}
+%    \end{macrocode}
+% Dieses Makro setzt zu einen 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 Satzspiegeländerung beim Ausführen 
+% der einzelnen Seitenstil-Layer. Dafür wird \cs{if@tud@mainlogo@set} im Hook 
+% \cs{tud@AfterChangingArea} gesetzt.
+%    \begin{macrocode}
+\newif\if@tud@mainlogo@set
+\newcommand*\tud@mainlogo@set{%
+  \if@tud@mainlogo@set%
+    \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}%
+    \tud@savelayerbox{main@black}{\@tempa{TUD-black}}%
+    \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}%
+    \tud@savelayerbox{main@white}{\@tempa{TUD-white}}%
+    \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}%
+    \global\tud@mainlogoheight=\tud@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 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.
+% 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{\TUDClassName}{%
+          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}
-  \setlength\@tempdima{%
-    \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax%
-  }%
-  \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi%
+    \tud@headlogo@set%
+    \tud@footlogo@set%
+    \global\@tud@mainlogo@setfalse%
+  \fi%
+}
 %    \end{macrocode}
-% Es wird das Standardlogo festgelegt und dieses ggf. für eine andere Kopffarbe 
-% geändert.
+% \end{macro}^^A \tud@mainlogo@wrn
+% \end{length}^^A \tud@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
+% \begin{macro}{\tud@mainlogo}
+% \changes{v2.04}{2015/05/31}{entfernt}^^A
+% \begin{macro}{\tud@@mainlogo}
+% \changes{v2.04}{2015/05/31}{entfernt}^^A
+% Hiermit erfolgt die Ausgabe der gespeicherten Boxen für das Logo der \TnUD, 
+% wobei \cs{tud@head@logocolor} die Farbe festlegt.
 %    \begin{macrocode}
-  \def\tud@@mainlogo{TUD-black}%
-  \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}%
-  \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}%
-  \ifstr{\tud@head@logocolor}{white}{\def\tud@@mainlogo{TUD-white}}{}%
-  \includegraphics[keepaspectratio,width=\tud@dim@logowidth]{\tud@@mainlogo}%
+\newcommand*\tud@mainlogo@use{%
+  \tud@mainlogo@wrn{%
+    \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax%
+  }%
+  \tud@uselayerbox{main@\tud@head@logocolor}%
 }
 %    \end{macrocode}
 % \end{macro}^^A \tud@@mainlogo
 % \end{macro}^^A \tud@mainlogo
+% \end{macro}^^A \tud@mainlogo@use
+% \begin{macro}{\tud@logo@head@black}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@logo@head@HKS41}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@logo@head@white}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@logo@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@logo@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@logo@head@option
+% \end{macro}^^A \tud@logo@head@white
+% \end{macro}^^A \tud@logo@head@HKS41
+% \end{macro}^^A \tud@logo@head@black
 % \begin{macro}{\headlogo}
-% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}%^^A
-% \begin{macro}{\tud@headlogo}
-% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@logo} umbenannt}%^^A
-% \changes{v2.02}{2014/06/23}{von \cs{tud@ddc@sethead} wurde die Auswahl des 
-%   \DDC-Logos übernommen und erweitert}%^^A
-% \begin{macro}{\tud@@headlogo}
-% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@@logo} umbenannt}%^^A
-% \begin{macro}{\tud@@@headlogo}
-% \changes{v2.02}{2014/06/23}{Umbenennen des Befehls \cs{tud@head@@@logo}}%^^A
+% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}^^A
+% \begin{macro}{\@headlogo}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\@@headlogo}
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{macro}{\tud@headlogo@wrn}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % Diese Befehle dienen zum Einbinden eines Zweitlogos im Kopf bündig zum
 % rechten Seitenrand. Bei der Angabe des Logos mit
 % \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} wird der Dateiname in
-% \cs{tud@@headlogo} und das optionale Argument in \cs{tud@@@headlogo}
+% \cs{@headlogo} und das optionale Argument in \cs{@@headlogo}
 % gespeichert, damit diese später über \cs{tud@headlogo} an den Befehl
 % \cs{includegraphics} weitergereicht werden können.
 %    \begin{macrocode}
+\newcommand*\@headlogo{}
+\newcommand*\@@headlogo{}
+\newcommand*\tud@headlogo@wrn{}
 \newcommand*\headlogo[2][]{%
-  \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi%
-  \def\tud@@headlogo{#2}%
-  \def\tud@@@headlogo{#1}%
-  \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi%
+  \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
+  \def\@headlogo{#2}%
+  \def\@@headlogo{#1}%
+%    \end{macrocode}
+% Nachdem Setzen des Zweitlogos müssen die entsprechenden 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{\TUDClassName}{%
+      The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak%
+      overwritten with DDC logo. Maybe you should use\MessageBreak%
+      `ddcfoot' or better `ddc' instead of `ddchead'%
+    }%
+    \global\let\tud@headlogo@wrn\relax%
+  }%
+  \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
 }
-\newcommand*\tud@@headlogo{}
-\newcommand*\tud@@@headlogo{}
-\newcommand*\tud@headlogo{%
-  \tud@ddc@check%
-  \ifx\tud@@headlogo\@empty\else%
-    \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi%
-  \fi%
-  \ifcase\@tempa\relax\or%
-    \def\tud@@headlogo{DDC-24}%
-    \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@headlogo{DDC-27}}{}%
-    \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}%
-    \ifstr{\tud@head@logocolor}{white}{\def\tud@@headlogo{DDC-30}}{}%
-  \or%
-    \def\tud@@headlogo{DDC-03}%
-  \or%
-    \def\tud@@headlogo{DDC-09}%
-  \or%
-    \def\tud@@headlogo{DDC-21}%
-  \or%
-    \def\tud@@headlogo{DDC-24}%
-  \or%
-    \def\tud@@headlogo{DDC-27}%
-  \or%
-    \def\tud@@headlogo{DDC-30}%
+%    \end{macrocode}
+% \end{macro}^^A \tud@headlogo@wrn
+% \end{macro}^^A \@@headlogo
+% \end{macro}^^A \@headlogo
+% \end{macro}^^A \headlogo
+% \begin{macro}{\tud@headlogo@set}
+% \changes{v2.04}{2015/05/31}{neu}^^A%   \DDC-Logos übernommen und erweitert}^^A
+% \begin{macro}{\tud@headlogo@option@set}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\if@tud@headlogo@option@set}
+% \changes{v2.04}{2015/05/31}{neu}^^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@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}
+\newif\if@tud@headlogo@option@set
+\newcommand*\tud@headlogo@option@set{%
+  \if@tud@headlogo@option@set%
+    \def\@tempc##1##2{%
+      \tud@savelayerbox{head@option}{%
+        \includegraphics[%
+          keepaspectratio,totalheight=\tud@mainlogoheight,##2%
+        ]{\trim@spaces{##1}}%
+      }%
+    }%
+    \tud@savelayerbox{head@option}{}%
+    \tud@ddc@check%
+    \ifcase\@tempa\relax% \tud@ddc@head=false
+      \ifdefvoid{\@headlogo}{}{%
+        \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}%
+        \@tempb%
+      }%
+    \or\or% \tud@ddc@head=color
+      \@tempc{DDC-03}{}%
+    \or% \tud@ddc@head=colorblack
+      \@tempc{DDC-09}{}%
+    \or% \tud@ddc@head=gray
+      \@tempc{DDC-21}{}%
+    \or% \tud@ddc@head=black
+      \@tempc{DDC-24}{}%
+    \or% \tud@ddc@head=blue
+      \@tempc{DDC-27}{}%
+    \or% \tud@ddc@head=white
+      \@tempc{DDC-30}{}%
+    \fi%
+    \global\@tud@headlogo@option@setfalse%
   \fi%
-  \ifx\tud@@headlogo\@empty\else%
-    \settoheight\@tempdima{\tud@mainlogo}%
-    \protected@epreto\tud@@@headlogo{%
-      keepaspectratio,totalheight=\the\@tempdima,%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if@tud@headlogo@option@set
+% \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@mainlogoheight}{%
+    \vss%
+    \hbox{%
+      \tud@ddc@check%
+      \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true
+        \tud@uselayerbox{head@\tud@head@logocolor}%
+      \else%
+        \tud@uselayerbox{head@option}%
+      \fi%
+    }%
+    \vss%
+  }{%
+    The given `\string\headlogo{\@headlogo}' is too large.%
+  }
+  \ifdefvoid{\@headlogo}{}{%
+    \tud@ddc@check%
+    \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}^^A \tud@headlogo@use
+% \begin{macro}{\tud@logo@foot@black}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@logo@foot@HKS41}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@logo@foot@white}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@logo@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@logo@foot@option
+% \end{macro}^^A \tud@logo@foot@white
+% \end{macro}^^A \tud@logo@foot@HKS41
+% \end{macro}^^A \tud@logo@foot@black
+% \begin{length}{\footlogoheight}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \begin{length}{\tud@footlogoheight}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@footlogoheight@set}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% Für den Anwender besteht mit der Länge \cs{footlogoheight} die Möglichkeit, 
+% die Höhe aller Logos im Fußbereich~-- also \DDC-Logo sowie weitere, mit dem 
+% Befehl \cs{footlogo} angegebene Logos~-- zentral festzulegen. Dabei wird 
+% die Länge nicht direkt genutzt, sondern intern \cs{tud@footlogoheight} 
+% verwendet. mit \cs{tud@footlogoheight@set} wird geprüft, ob der Anwender 
+% \cs{footlogoheight} tatsächlich angepasst hat. Sollte dies der Fall sein, 
+% wird \cs{tud@footlogoheight@set} auf diesen Wert gesetzt, andernfalls werden 
+% die hinterlegten Standardwerte verwendet.
+%    \begin{macrocode}
+\newlength\footlogoheight
+\newlength\tud@footlogoheight
+\newcommand*\tud@footlogoheight@set{%
+  \ifdim\footlogoheight=\z@\relax%
+    \tud@ifverlower{2.03}{%
+      \setlength\tud@footlogoheight{.6\tud@dim@topmargin}%
+    }{%
+      \setlength\tud@footlogoheight{\tud@mainlogoheight}%
     }%
-    \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}%
+  \else%
+%    \end{macrocode}
+% Der Grund für die Verwendung einer internen Länge \cs{tud@footlogoheight} 
+% liegt darin begründet, dass eine Änderung der Länge \cs{footlogoheight} eine 
+% Erneuerung der genutzten Boxen benötigt. Die Prüfung und ggf. das Setzen des 
+% entsprechenden Schalters geschieht hier.
+%    \begin{macrocode}
+    \ifdim\footlogoheight=\tud@footlogoheight\relax\else%
+      \setlength\tud@footlogoheight{\footlogoheight}%
+      \global\@tud@footlogo@option@settrue% 
+    \fi%
   \fi%
+  \global\tud@footlogoheight=\tud@footlogoheight%
 }
-\newcommand*\tud@headlogo@wrn{%
-  \ClassWarning{\tudcls@name}{%
-    The secondary logo given with `\string\headlogo' is\MessageBreak%
-    overwritten with DDC logo. Maybe you should use\MessageBreak%
-    `ddcfoot' or better `ddc' instead of `ddchead'%
+%    \end{macrocode}
+% \end{macro}^^A \tud@footlogoheight@set
+% \end{length}^^A \tud@footlogoheight
+% \end{length}^^A \footlogoheight
+% \begin{macro}{\tud@footlogo@set}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \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
+% \begin{macro}{\if@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@footlogoheight@set%
+  \tud@savelayerbox{foot@#1}{%
+    \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}%
   }%
-  \global\let\tud@headlogo@wrn\relax%
 }
 %    \end{macrocode}
-% \end{macro}^^A \tud@headlogo@wrn
-% \end{macro}^^A \tud@@@headlogo
-% \end{macro}^^A \tud@@headlogo
-% \end{macro}^^A \tud@headlogo
-% \end{macro}^^A \headlogo
+% anschließend erfolgt das eigentliche Setzen der Boxen.
+%    \begin{macrocode}
+\newcommand*\tud@footlogo@set{%
+  \tud@footlogo@ddc@set{black}{DDC-22}%
+  \tud@footlogo@ddc@set{HKS41}{DDC-25}%
+  \tud@footlogo@ddc@set{white}{DDC-28}%
+  \tud@footlogo@option@set%
+}
+%    \end{macrocode}
+% Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddcfoot} abgearbeitet. 
+% Dies geschieht bei der Ausgabe des dazugehörigen Layers, falls hierfür der
+% entsprechende Schalter \cs{if@tud@footlogo@option@set} gesetzt wurde.
+%    \begin{macrocode}
+\newif\if@tud@footlogo@option@set
+\newcommand*\tud@footlogo@option@set{%
+  \if@tud@footlogo@option@set%
+    \tud@ddc@check%
+    \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color
+      \tud@footlogo@ddc@set{option}{DDC-01}%
+    \or% \tud@ddc@foot=colorblack
+      \tud@footlogo@ddc@set{option}{DDC-07}%
+    \or% \tud@ddc@foot=gray
+      \tud@footlogo@ddc@set{option}{DDC-19}%
+    \or% \tud@ddc@foot=black
+      \tud@footlogo@ddc@set{option}{DDC-22}%
+    \or% \tud@ddc@foot=blue
+      \tud@footlogo@ddc@set{option}{DDC-25}%
+    \or% \tud@ddc@foot=white
+      \tud@footlogo@ddc@set{option}{DDC-28}%
+    \fi%
+    \global\@tud@footlogo@option@setfalse%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if@tud@footlogo@option@set
+% \end{macro}^^A \tud@footlogo@option@set
+% \end{macro}^^A \tud@footlogo@ddc@set
+% \end{macro}^^A \tud@footlogo@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[1]{%
+  \tud@vlayerbox{#1}{%
+    \vss%
+    \hbox{%
+      \tud@ddc@check%
+      \ifcase\@tempb\relax\or% \tud@ddc@foot=true
+        \tud@uselayerbox{foot@\tud@foot@logocolor}%
+      \else%
+        \tud@uselayerbox{foot@option}%
+      \fi%
+    }%
+    \vss\vss%
+  }{%
+    The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak%
+    high. You should reduce this length.%
+    \ifcase\tud@geometry\relax\else% true/symmetric/twoside
+      \MessageBreak%
+      Alternatively you can enlarge the bottom margin\MessageBreak%
+      by using option `extrabottommargin'.%
+    \fi%
+  }%
+}
+%    \end{macrocode}
+% \end{macro}^^A \tud@footlogo@ddc@use
+% \begin{macro}{\tud@ddclogo}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.04}{2015/06/01}{entfernt}^^A
+% \begin{macro}{\tud@@ddclogo}
+% \changes{v2.02}{2014/06/23}{\cs{tud@foot@logo} umbenannt}^^A
+% \changes{v2.03}{2015/01/13}{Größe des Logos kompatibilitätsabhängig}^^A
+% \changes{v2.04}{2015/06/01}{entfernt}^^A
+% \begin{macro}{\tud@ddc@sethead}
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
+% \begin{macro}{\tud@ddc@setfoot}
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
+% Diese Befehle wurden mit der \TUDScript-Version~v2.02 bzw. v2.04~-- bei der 
+% Umstellung auf die Ausgabe mit Boxen~-- entfernt. Für deren Funktionalität
+% sind seitdem die Makros \cs{tud@footlogo@set} und \cs{tud@footlogo@ddc@use} 
+% zuständig.
+% \end{macro}^^A \tud@ddc@setfoot
+% \end{macro}^^A \tud@ddc@sethead
+% \end{macro}^^A \tud@@ddclogo
+% \end{macro}^^A \tud@ddclogo
+% \begin{macro}{\tud@logo@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@logo@foot@cmd
 % \begin{macro}{\footlogo}
-% \changes{v2.03}{2015/01/27}{neu}%^^A
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \begin{macro}{\@footlogo}
+% \changes{v2.03}{2015/01/27}{neu}^^A
+% \begin{macro}{\@@footlogo}
+% \changes{v2.03}{2015/01/27}{neu}^^A
 % \begin{macro}{\footlogosep}
-% \changes{v2.03}{2015/01/27}{neu}%^^A
-% \begin{length}{\footlogoheight}
-% \changes{v2.03}{2015/01/27}{neu}%^^A
-% \begin{macro}{\tud@footlogo}
-% \changes{v2.03}{2015/01/27}{neu}%^^A
-% \changes{v2.03}{2015/02/02}{optionale Parameter datei-individuell nutzbar}%^^A
-% \begin{macro}{\tud@footlogo@parser}
-% \changes{v2.03}{2015/02/02}{neu}%^^A
-% \begin{macro}{\tud@@footlogo}
-% \changes{v2.03}{2015/01/27}{neu}%^^A
-% \begin{macro}{\tud@@@footlogo}
-% \changes{v2.03}{2015/01/27}{neu}%^^A
+% \changes{v2.03}{2015/01/27}{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}
-\newlength\footlogoheight
 \newcommand*\footlogosep{\hfill}
+\newcommand*\@footlogo{}
+\newcommand*\@@footlogo{}
 \newcommand*\footlogo[2][]{%
-  \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi%
-  \def\tud@@footlogo{#2}%
-  \def\tud@@@footlogo{#1}%
-  \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi%
+  \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}%
+  \def\@footlogo{#2}%
+  \def\@@footlogo{#1}%
+  \global\@tud@footlogo@cmd@settrue%
+  \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}%
 }
-\newcommand*\tud@@footlogo{}
-\newcommand*\tud@@@footlogo{}
 %    \end{macrocode}
-% Der Befehl \cs{tud@footlogo} wird genutzt, um die Logos für den Fuß innerhalb 
-% der Ebene \val{tudheadings.foot.logo} auszugeben.
+% \end{macro}^^A \footlogosep
+% \end{macro}^^A \@@footlogo
+% \end{macro}^^A \@footlogo
+% \end{macro}^^A \footlogo
+% \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
+% 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@logo@foot@cmd} gespeichert.
+%    \begin{macrocode}
+\newif\if@tud@footlogo@cmd@set
+\newcommand*\tud@footlogo@cmd@set[2]{%
+  \if@tud@footlogo@cmd@set%
+    \tud@footlogoheight@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 Inhalkt 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}
-\DeclareListParser{\tud@footlogo@parser}{:}%
-\newcommand*\tud@footlogo[1]{%
+        \let\@tempa\relax%
+        \@for\@tempb:=\@footlogo\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@logo@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 
@@ -1538,76 +1981,179 @@
         \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}%
       \fi%
     }%
-    \tud@footlogo@parser{#1}%
+    \let\@tempc\relax%
+    \DeclareListParser{\@tempc}{:}%
+    \@tempc{#1}%
+%    \end{macrocode}
+% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt.
+%    \begin{macrocode}
+    \preto\@@footlogo{%
+      keepaspectratio,totalheight=\tud@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}
-    \protected@eappto\tud@@@footlogo{\@tempb}%
+    \appto\@@footlogo{\@tempb}%
+    \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}%
 %    \end{macrocode}
-% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt.
+% Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch
+% vertikal zentriert.
 %    \begin{macrocode}
-    \protected@epreto\tud@@@footlogo{%
-      keepaspectratio,totalheight=\the\footlogoheight,%
-    }%
-    \protected@edef\@tempc{\noexpand\includegraphics[\tud@@@footlogo]{\@tempa}}%
-    \vbox to \dimexpr\layerheight-\dp\strutbox\relax{%
-      \vfil\hbox{\@tempc}\vfil\vfil%
+    \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{%
+      The given `\string\footlogo{\@tempa}' is too large.%
     }%
   \endgroup%
 }
 %    \end{macrocode}
-% \end{macro}^^A \tud@@@footlogo
-% \end{macro}^^A \tud@@footlogo
-% \end{macro}^^A \tud@footlogo@parser
-% \end{macro}^^A \tud@footlogo
-% \end{length}^^A \footlogoheight
-% \end{macro}^^A \footlogosep
-% \end{macro}^^A \footlogo
-% \begin{macro}{\tud@ddclogo}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% \begin{macro}{\tud@@ddclogo}
-% \changes{v2.02}{2014/06/23}{neu, \cs{tud@foot@logo} umbenannt}%^^A
-% \changes{v2.03}{2015/01/13}{Größe des Logos kompatibilitätsabhängig}%^^A
-% Diese Befehle dienen zum Einbinden des \DDC-Logos im Fuß der Seiten im Stil 
-% \pgs{tudheadings}.
+% \end{macro}^^A \if@tud@footlogo@cmd@set
+% \end{macro}^^A \tud@footlogo@cmd@set
+% \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{\tud@uselayerbox{foot@cmd}}%
+%    \end{macrocode}
+% \end{macro}^^A \tud@footlogo@cmd@use
+% \begin{KOMAfont}{tudheadings}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \begin{macro}{\footcontent}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \begin{macro}{\@footcontent}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \begin{macro}{\@@footcontent}
+% \changes{v2.04}{2015/04/21}{neu}^^A
+% \begin{macro}{\footcontent@font}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\footcontent@left}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\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}{%
+  \sffamily%
+  \tud@color{\tud@foot@fontcolor}%
+}
+%    \end{macrocode}
+% Die mit \cs{footcontent} angegebenen Inhalte werden in diesen drei Makros 
+% gesichert, weshalb diese vorher alloziert werden. Anschließend erfolgt die  
+% Definition des Befehls.
+%    \begin{macrocode}
+\newcommand*\tud@footcontent@font{}
+\newcommand*\tud@footcontent@left{}
+\newcommand*\tud@footcontent@right{}
+\newcommand*\footcontent{%
+  \@ifstar{%
+    \@tempswafalse%
+    \@footcontent%
+  }{%
+    \@tempswatrue%
+    \@footcontent%
+  }%
+}
+%    \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.
 %    \begin{macrocode}
-\newcommand*\tud@@ddclogo{}
-\newcommand*\tud@ddclogo{%
-  \tud@ddc@check%
-  \ifcase\@tempb\relax\or%
-    \def\tud@@ddclogo{DDC-22}%
-    \ifstr{\tud@foot@logocolor}{HKS41}{\def\tud@@ddclogo{DDC-25}}{}%
-    \ifstr{\tud@foot@logocolor}{cddarkblue}{\def\tud@@ddclogo{DDC-25}}{}%
-    \ifstr{\tud@foot@logocolor}{white}{\def\tud@@ddclogo{DDC-28}}{}%
-  \or%
-    \def\tud@@ddclogo{DDC-01}%
-  \or%
-    \def\tud@@ddclogo{DDC-07}%
-  \or%
-    \def\tud@@ddclogo{DDC-19}%
-  \or%
-    \def\tud@@ddclogo{DDC-22}%
-  \or%
-    \def\tud@@ddclogo{DDC-25}%
-  \or%
-    \def\tud@@ddclogo{DDC-28}%
+\newcommand*\@footcontent[2][]{%
+  \kernel@ifnextchar[%]
+    {\@@footcontent{#1}{#2}}%
+    {\@@footcontent{#1}{#2}[\@nnil]}%
+}
+\newcommand*\@@footcontent{}
+\def\@@footcontent#1#2[#3]{%
+  \if@tempswa%
+    \def\tud@footcontent@font{%
+      \usekomafont{tudheadings}%
+      \tud@divide\@tempa{\tud@head@font@size}{\f@size}%
+      \linespread{\@tempa}%
+      \selectfont%
+      \tud@head@font@light%
+      #1%
+    }%
+  \else%
+    \def\tud@footcontent@font{#1}%
   \fi%
-  \ifx\tud@@ddclogo\@empty\else%
-    \let\tud@@@footlogo\relax%
-    \hfill\tud@footlogo{\tud@@ddclogo}%
+  \def\tud@footcontent@left{#2}%
+  \def\tud@footcontent@right{#3}%
+}
+%    \end{macrocode}
+% \end{macro}^^A \footcontent@right
+% \end{macro}^^A \footcontent@left
+% \end{macro}^^A \footcontent@font
+% \end{macro}^^A \@@footcontent
+% \end{macro}^^A \@footcontent
+% \end{macro}^^A \footcontent
+% \end{KOMAfont}^^A tudheadings
+% \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.
+%    \begin{macrocode}
+\newcommand*\tud@footcontent@use[2]{%
+  \tud@ddc@check%
+  \ifcase\@tempb%
+    \setlength\@tempdimc{\z@}%
+  \else%
+    \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}%
+    \addtolength\@tempdimc{\columnsep}%
   \fi%
+%    \end{macrocode}
+% Äquivalent zu den Logos wird auch der frei definierbare Inhalt des Fußes mit 
+% einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im Bedarfsfall der 
+% Freiraum für das \DDC-Logo bereitgestellt.
+%    \begin{macrocode}
+  \tud@vlayerbox{#1}{%
+    \vss%
+    \hbox to #2{%
+      \tud@footcontent@font%
+%    \end{macrocode}
+% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird 
+% der Inhalt über die komplette Breite des Textbereiches ausgegeben.
+%    \begin{macrocode}
+      \expandafter\ifx\tud@footcontent@right\@nnil\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%
+  }{%
+    The content for the footer (`\string\footcontent')\MessageBreak%
+    is too high. You should either reduce the content or\MessageBreak%
+    lower the fontsize via the optional argument.%
+    \ifcase\tud@geometry\relax\else% true/symmetric/twoside
+      \MessageBreak%
+      Alternatively you can enlarge the bottom margin\MessageBreak%
+      by using option `extrabottommargin'.%
+    \fi%
+  }%
 }
 %    \end{macrocode}
-% \end{macro}^^A \tud@@ddclogo
-% \end{macro}^^A \tud@ddclogo
-% \begin{macro}{\tud@ddc@sethead}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
-% \begin{macro}{\tud@ddc@setfoot}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
-% Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt.
-% \end{macro}^^A \tud@ddc@setfoot
-% \end{macro}^^A \tud@ddc@sethead
+% \end{macro}^^A \tud@footcontent@use
 %
 % \iffalse
 %</class&body>
@@ -1615,17 +2161,20 @@
 % \fi
 %
 % \begin{option}{cdhead}
-% \changes{v2.03}{2015/01/29}{neu}%^^A
+% \changes{v2.03}{2015/01/29}{neu}^^A
+% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A
 % \begin{macro}{\tud@head@font}
-% \changes{v2.03}{2015/02/04}{neu}%^^A
+% \changes{v2.03}{2015/02/04}{neu}^^A
 % \begin{macro}{\if@tud@head@font@locked}
-% \changes{v2.03}{2015/02/04}{neu}%^^A
+% \changes{v2.03}{2015/02/04}{neu}^^A
 % \begin{macro}{\tud@head@bar}
-% \changes{v2.03}{2015/02/04}{neu}%^^A
+% \changes{v2.03}{2015/02/04}{neu}^^A
+% \begin{macro}{\tud@head@bar@lock}
+% \changes{v2.04}{2015/04/01}{neu}^^A
 % \begin{macro}{\if@tud@head@widebar}
-% \changes{v2.03}{2015/02/14}{neu}%^^A
+% \changes{v2.03}{2015/02/14}{neu}^^A
 % \begin{macro}{\if@tud@head@widebar@locked}
-% \changes{v2.03}{2015/02/14}{neu}%^^A
+% \changes{v2.03}{2015/02/14}{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
@@ -1633,7 +2182,7 @@
 % Querbalkens bzw. die Farbe einstellbar.
 %    \begin{macrocode}
 \cs@lock{tud@head@font}{0}
-\newcommand*\tud@head@bar{0}
+\cs@lock{tud@head@bar}{0}
 \bool@lock{@tud@head@widebar}
 \TUD@key{cdhead}[true]{%
   \TUD@set@numkey{cdhead}{@tempa}{%
@@ -1646,29 +2195,32 @@
     {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},%
-    {bicolor}{5},{bicolour}{5},{twocolor}{5},{twocolour}{5},%
-    {bichrome}{5},{bichromatic}{5},{dichrome}{5},{dichromatic}{5},%
-    {color}{5},{colour}{5},%
-    {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5},%
-    {textwidth}{6},{slim}{6},{slimhead}{6},{nowide}{6},{nowidehead}{6},%
-    {paperwidth}{7},{wide}{7},{widehead}{7}%
+    {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},%
+    {paperwidth}{8},{wide}{8},{widehead}{8}%
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \ifcase\@tempa\relax%
+    \ifcase\@tempa\relax% false
       \cs@set@lock{tud@head@font}{0}%
-    \or%
+    \or% true
       \cs@set@lock{tud@head@font}{1}%
-    \or%
+    \or% heavy
       \cs@set@lock{tud@head@font}{2}%
-    \or%
-      \def\tud@head@bar{0}%
-    \or%
-      \def\tud@head@bar{1}%
-    \or%
-      \def\tud@head@bar{2}%
-    \or%
+    \or% nocolor
+      \cs@set@lock{tud@head@bar}{0}%
+    \or% litecolor
+      \cs@set@lock{tud@head@bar}{1}%
+    \or% barcolor
+      \cs@set@lock{tud@head@bar}{2}%
+    \or% color
+      \cs@set@lock{tud@head@bar}{3}%
+    \or% textwidth
       \bool@set@lock{@tud@head@widebar}{false}%
-    \or%
+    \or% paperwidth
       \bool@set@lock{@tud@head@widebar}{true}%
     \fi%
   \fi%
@@ -1676,28 +2228,37 @@
 %    \end{macrocode}
 % \end{macro}^^A \if@tud@head@widebar@locked
 % \end{macro}^^A \if@tud@head@widebar
+% \end{macro}^^A \tud@head@bar@lock
 % \end{macro}^^A \tud@head@bar
 % \end{macro}^^A \if@tud@head@font@locked
 % \end{macro}^^A \tud@head@font
 % \end{option}^^A cdhead
 % \begin{option}{cdfoot}
 % \changes{v2.03}{2015/02/02}{Option \opt{extrabottommargin} bei Längenangabe 
-%   indirekt nutzbar}%^^A
-% \begin{macro}{\if@tud@footcolor}
+%   indirekt nutzbar}^^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}{\tud@ps@store}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{macro}{\tud@@ps@store}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{macro}{\tud@ps@restore}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
 % \begin{macro}{\tud@@ps@restore}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
+% \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 dem Befehl \cs{TUD@AfterPackage} 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}
-\newif\if@tud@footcolor
+\TUD@AfterPackage@Set{scrlayer-scrpage}
+\newif\if@tud@foot@colored
 \TUD@key{cdfoot}[true]{%
   \TUD@set@numkey{cdfoot}{@tempa}{%
     \TUD@numkey@bool,%
@@ -1708,7 +2269,7 @@
     {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}%
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \ifcase\@tempa\relax%
+    \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 
@@ -1720,12 +2281,12 @@
         \tud@font@koma@unset{pageheadfoot}%
       }%
 %    \end{macrocode}
-% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@store} 
+% 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.
+% dem Laden von \pkg{scrlayer-scrpage} durchgeführt. 
 %    \begin{macrocode}
-    \or%
+    \or% true
       \TUD@AfterPackage{scrlayer-scrpage}{%
         \tud@ps@store{scrheadings}%
         \tud@ps@store{plain.scrheadings}%
@@ -1736,14 +2297,15 @@
           {\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%
-      \@tud@footcolorfalse%
-    \or%
-      \@tud@footcolortrue%
+    \or% nocolor
+      \@tud@foot@coloredfalse%
+    \or% color
+      \@tud@foot@coloredtrue%
     \fi%
 %    \end{macrocode}
 % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden.
@@ -1803,14 +2365,14 @@
 % \end{macro}^^A \tud@ps@restore
 % \end{macro}^^A \tud@@ps@store
 % \end{macro}^^A \tud@ps@store
-% \end{macro}^^A \if@tud@footcolor
+% \end{macro}^^A \if@tud@foot@colored
 % \end{option}^^A cdfoot
 % \begin{macro}{\tud@ps@headings}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
 % \begin{macro}{\tud@ps@myheadings}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
 % \begin{macro}{\tud@ps@plain}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
 % Diese Befehle wurden bei der Umstellung auf das Paket~\pkg{scrlayer-scrpage}
 % mit der \TUDScript-Version~v2.02 allesamt entfernt. Die Funktionalität wird
 % seitdem durch die \pgs{tudheadings}-Seitenstile bereitgestellt.
@@ -1833,35 +2395,638 @@
 % (\opt{geomery=no}). Mit \cs{tud@geometry@process} werden alle getroffenen
 % Satzspiegeloptionen umgesetzt und nachfolgend definiert.
 %    \begin{macrocode}
-\newcommand*\tud@geometry{0}
-\TUD@key@lock{cdgeometry}[true]{%
-  \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{%
-    \TUD@numkey@bool,%
-    {typearea}{0},%
-    {tud}{1},{asymmetric}{1},{cd}{1},%
-    {symmetric}{2},{centred}{2},{centered}{2},%
-    {twoside}{3},{balanced}{3}%
-  }{#1}%
-  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-    \if@atdocument\recalctypearea\fi%
-  \fi%
+\newcommand*\tud@geometry{0}
+\TUD@key@lock{cdgeometry}[true]{%
+  \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{%
+    \TUD@numkey@bool,%
+    {typearea}{0},%
+    {cd}{1},{tud}{1},{asymmetric}{1},%
+    {symmetric}{2},{centred}{2},{centered}{2},%
+    {normal}{2},{standard}{2},{std}{2},%
+    {twoside}{3},{balanced}{3}%
+  }{#1}%
+  \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+    \if@atdocument\recalctypearea\fi%
+  \fi%
+}
+%    \end{macrocode}
+% \end{macro}^^A \if@tud@geometry@locked
+% \end{macro}^^A \tud@geometry
+% \end{option}^^A cdgeometry
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und
+% der Seitenränder, wie es vom \CD der \TnUD verlangt wird. Sollte das Laden 
+% des Paketes verhindert werden, sind einige wenige Befehle vorzuhalten.
+%    \begin{macrocode}
+\AtEndPreamble{%
+  \@ifpackageloaded{geometry}{}{%
+    \def\tud@geometry@process{\tud@geometry@set}%
+    \let\tud@BeforeSelectAnyPageStyle\@gobble%
+  }%
+}
+\tud@ifsacrop{%
+  \PreventPackageFromLoading{geometry}%
+}{%
+  \RequirePackage{geometry}[2010/09/12]%
+%    \end{macrocode}
+% \begin{macro}{\tud@geometry@hmargin}
+% \begin{macro}{\tud@geometry@vmargin}
+% \begin{macro}{\tud@geometry@tudmargin}
+% \begin{macro}{\tud@geometry@ddcmargin}
+% Dies sind Hilfsmakros für die Definition der unterschiedichen Seitenlayouts
+% (horizontale und vertikale Ränder). Es handelt sich dabei um die Seitenränder 
+% für den normalen Textbereich sowie die angepassten vertikalen Einstellungen
+% für die Seitenstilvarianten mit TUD-Kopf. Im Kompatibilitätsmodus für die 
+% Version~v2.02 gibt es außerdem einen separaten Satzspiegel für den \DDC-Fuß.
+% Gesetzt werden diese in Abhängigkeit von der Option \opt{cdgeometry} im
+% Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}.
+%    \begin{macrocode}
+  \newcommand*\tud@geometry@hmargin{}%
+  \newcommand*\tud@geometry@vmargin{}%
+  \newcommand*\tud@geometry@tudmargin{}%
+  \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}%
+%    \end{macrocode}
+% \end{macro}^^A \tud@geometry@ddcmargin
+% \end{macro}^^A \tud@geometry@tudmargin
+% \end{macro}^^A \tud@geometry@vmargin
+% \end{macro}^^A \tud@geometry@hmargin
+% \begin{macro}{\tud@newgeometry}
+% \changes{v2.04}{2015/03/12}{neu}^^A
+% mit diesem Befehl wird abhängig davon, ob er in der Präambel oder im Dokument 
+% durch \cs{tud@geometry@process} ausgeführt wird, entweder \cs{geometry} oder 
+% \cs{newgeometry} aufgerufen.
+%    \begin{macrocode}
+  \newcommand*\tud@newgeometry[1]{%
+    \if@atdocument%
+      \edef\@tempa{#1}%
+      \expandafter\newgeometry\expandafter{#1}%
+    \else%
+      \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}%
+      \expandafter\geometry\expandafter{\@tempa}%
+    \fi%
+  }%
+%    \end{macrocode}
+% \end{macro}^^A \tud@newgeometry
+% \begin{macro}{\tud@geometry@process}
+% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A
+% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}^^A
+% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}^^A
+% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}^^A
+% \begin{macro}{\tud@geometry@@process}
+% Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten
+% Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der
+% Kopf- und/oder Fußzeile. Um mehrere Satzspiegel verwenden zu können~-- was
+% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das
+% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung
+% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry}
+% weitergereicht.
+% Es werden drei Layouts erstellt: normaler Satzspiegel, nur TUD-Kopf sowie
+% TUD-Kopf und "~Fuß und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann
+% innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer
+% sowie ggf. untere Seitenrand geändert werden.
+%    \begin{macrocode}
+  \newcommand*\tud@geometry@process{%
+%    \end{macrocode}
+% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt.
+%    \begin{macrocode}
+    \tud@geometry@set%
+%    \end{macrocode}
+% Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden
+% die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht.
+% Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros
+% für die Erstellung der \pkg{geometry}-Satzspiegel übergeben.
+%    \begin{macrocode}
+    \ifcase\tud@geometry\relax% false
+%    \end{macrocode}
+% Zu Beginn wird die Höhendifferenz zwischen TUD-Kopf und Standardkopfzeile
+% für den \pkg{typearea}-Satzspiegel berechnet.
+%    \begin{macrocode}
+      \setlength\tud@ta@headdiff{%
+        \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
+          -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax%
+      }%
+%    \end{macrocode}
+% Sollte der \pkg{typearea}-Satzspiegel noch unterhalb des TUD-Kopfes liegen, 
+% wird der Abstand zum Kopf vergrößert.
+%    \begin{macrocode}
+      \ifdim\tud@ta@headdiff<\z@\relax%
+        \addtolength\tud@dim@headsep{-\tud@ta@headdiff}%
+      \fi%
+%    \end{macrocode}
+% Anschließend erfolgen die horizontalen und vertikalen Randeinstellungen.
+%    \begin{macrocode}
+      \edef\tud@geometry@hmargin{%
+        bindingoffset=\the\ta@bcor,%
+        left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,%
+        textwidth=\the\textwidth,%
+        \tud@geometry@mpincl,%
+        marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,%
+        \if@reversemargin%
+          reversemarginpar=true,%
+          \if@twoside%
+            marginparwidth=\the\dimexpr\oddsidemargin+1in%
+              -\tud@ta@headsep\relax,%
+          \fi%
+        \else%
+          reversemarginpar=false,%
+        \fi%
+        marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
+      }%
+      \edef\tud@geometry@vmargin{%
+        \if@hincl%
+          includehead=true,%
+          top=\the\dimexpr\tud@ta@topmargin+1in\relax,%
+        \else%
+          includehead=false,%
+          top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep%
+            +1in\relax,%
+        \fi%
+        headheight=\the\tud@ta@headheight,%
+        headsep=\the\tud@ta@headsep,%
+        textheight=\the\tud@ta@textheight,%
+        \tud@geometry@fincl,%
+        footskip=\the\tud@ta@footskip%
+      }%
+%    \end{macrocode}
+% Für den Satzspiegel mit TUD-Kopf muss unterschieden werden, ob der Abstand 
+% zwischen Kopf und Textbereich vergrößert wurde. Ist dies der Fall, wird die 
+% Höhe des Textbereiches über \cs{@tempdima} entsprechend verkleinert.
+%    \begin{macrocode}
+      \ifdim\tud@ta@headdiff<\z@\relax%
+        \setlength\@tempdima{\z@}%
+      \else%
+        \setlength\@tempdima{\tud@ta@headdiff}%
+      \fi%
+      \edef\tud@geometry@tudmargin{%
+        top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+          +\tud@dim@headsep\relax,%
+        headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+          -\tud@dim@logoy\relax,%
+        headsep=\the\tud@dim@headsep,%
+        textheight=\the\dimexpr\tud@ta@textheight-\@tempdima\relax,%
+        ignorehead%
+      }%
+%    \end{macrocode}
+% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen 
+% separaten Satzspiegel.
+%    \begin{macrocode}
+      \tud@ifverlower{2.03}{%
+        \setlength\tud@dim@ddcdiff{%
+          \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep%
+            +\tud@ta@footheight-1.25\baselineskip\relax%
+        }%
+        \edef\tud@geometry@ddcmargin{%
+          textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff%
+            -\tud@dim@ddcdiff\relax,%
+          footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax%
+        }%
+      }{}%
+%    \end{macrocode}
+% Sollte die Option \opt{extrabottommargin} verwendet worden sein, wird eine 
+% Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos
+% ist.
+%    \begin{macrocode}
+      \ifdim\tud@dim@extrabottommargin=\z@\relax\else%
+        \ClassWarning{\TUDClassName}{%
+          Option `extrabottommargin' is ineffective when\MessageBreak%
+          package typearea is used (`cdgeometry=no')%
+        }%
+      \fi%
+%    \end{macrocode}
+% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische
+% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz.
+% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die
+% unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil.
+%    \begin{macrocode}
+    \else%  true/symmetric/twoside
+      \ifcase\tud@geometry\or%  true
+        \edef\tud@geometry@hmargin{%
+          bindingoffset=\the\ta@bcor,%
+          left=\the\tud@dim@widemargin,%
+          textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
+          \if@twoside asymmetric,\fi%
+          \tud@geometry@mpincl,%
+          \if@reversemargin%
+            reversemarginpar=true,%
+            marginparwidth=\the\dimexpr\tud@dim@widemargin%
+              -\tud@ta@headsep\relax,%
+          \else%
+            reversemarginpar=false,%
+            marginparwidth=\the\dimexpr\tud@dim@slimmargin%
+              -\tud@ta@headsep\relax,%
+          \fi%
+          marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
+        }%
+%    \end{macrocode}
+% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl
+% im einseitigen als auch im zweiseitgigen Satz symmetrisch.
+%    \begin{macrocode}
+      \or% symmetric
+        \edef\tud@geometry@hmargin{%
+          bindingoffset=\the\ta@bcor,%
+          left=\the\dimexpr.5\tud@dim@both\relax,%
+          textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
+          \tud@geometry@mpincl,%
+          \if@reversemargin%
+            reversemarginpar=true,%
+          \else%
+            reversemarginpar=false,%
+          \fi%
+          marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,%
+          marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
+        }%
+%    \end{macrocode}
+% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist
+% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite
+% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende
+% TUD-Logo geachtet werden muss.
+%    \begin{macrocode}
+      \or% twoside
+        \edef\tud@geometry@hmargin{%
+          bindingoffset=\the\ta@bcor,%
+          \if@twoside%
+            left=\the\dimexpr.4\tud@dim@both\relax,%
+            twoside,%
+          \else%
+            left=\the\dimexpr.5\tud@dim@both\relax,%
+          \fi%
+          textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
+          \tud@geometry@mpincl,%
+          marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,%
+          \if@reversemargin%
+            reversemarginpar=true,%
+            \if@twoside%
+              marginparwidth=\the\dimexpr.4\tud@dim@both%
+                -\tud@ta@headsep\relax,%
+            \fi%
+          \else%
+            reversemarginpar=false,%
+            \if@twoside%
+              marginparwidth=\the\dimexpr.6\tud@dim@both%
+                -\tud@ta@headsep\relax,%
+            \fi%
+          \fi%
+          marginparsep=\the\dimexpr.5\tud@ta@headsep\relax%
+        }%
+      \fi%
+%    \end{macrocode}
+% Für alle drei Varianten der vertikale Gleichanteil. Der Satzspiegel der 
+% Version~v2.02 wird aus Gründen der Kompatibilität weiterhin vorgehalten.
+%    \begin{macrocode}
+      \tud@ifverlower{2.03}{%
+        \edef\tud@geometry@vmargin{%
+          top=\the\dimexpr.5\tud@dim@both\relax,%
+          headheight=\the\tud@ta@headheight,%
+          headsep=\the\tud@dim@headsep,%
+          bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,%
+          footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight%
+            -1.25\baselineskip\relax,%
+          \tud@geometry@hincl,%
+          \tud@geometry@fincl%
+        }%
+      }{%
+        \edef\tud@geometry@vmargin{%
+          top=\the\tud@dim@slimmargin,%
+          headheight=\the\tud@ta@headheight,%
+          headsep=\the\tud@ta@headsep,%
+          bottom=\the\dimexpr\tud@dim@widemargin%
+            +\tud@dim@extrabottommargin\relax,%
+          footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,%
+          \tud@geometry@hincl,%
+          \tud@geometry@fincl%
+        }%
+      }%
+      \edef\tud@geometry@tudmargin{%
+        top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+          +\tud@dim@headsep\relax,%
+        headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+          -\tud@dim@logoy\relax,%
+        headsep=\the\tud@dim@headsep,%
+        ignorehead%
+      }%
+%    \end{macrocode}
+% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
+% für den Satzspiegel des \CDs berechnet.
+%    \begin{macrocode}
+      \setlength\tud@ta@headdiff{%
+        \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
+          -\tud@dim@slimmargin\relax%
+      }%
+%    \end{macrocode}
+% Für die Kompatibilitätsvariante wieder mal die Extrawurst.
+%    \begin{macrocode}
+      \tud@ifverlower{2.03}{%
+        \setlength\tud@ta@headdiff{%
+          \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
+            -.5\tud@dim@both\relax%
+        }%
+%    \end{macrocode}
+% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß 
+% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt.
+%    \begin{macrocode}
+        \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}%
+        \edef\tud@geometry@ddcmargin{%
+          \if@fincl%
+            bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin%
+              +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight%
+              -1.25\baselineskip\relax,%
+          \else%
+            bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin%
+              +\tud@dim@ddcdiff\relax,%
+          \fi%
+          footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight%
+            -1.25\baselineskip+\tud@dim@ddcdiff\relax,%
+        }%
+      }{}%
+    \fi%
+%    \end{macrocode}
+% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
+% für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige
+% vertikale Verschiebung der Überschriften festgelegt.
+%    \begin{macrocode}
+    \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi%
+    \global\tud@ta@headdiff=\tud@ta@headdiff%
+    \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}%
+    \global\tud@dim@headingsvskip=\tud@dim@headingsvskip%
+%    \end{macrocode}
+% Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren 
+% Seitenfuß gesetzt.
+%    \begin{macrocode}
+    \tud@ifverlower{2.03}{%
+      \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi%
+      \global\tud@dim@ddcdiff=\tud@dim@ddcdiff%
+    }{}%
+%    \end{macrocode}
+% Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten
+% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu
+% erstellen.
+%    \begin{macrocode}
+    \tud@geometry@@process%
+  }%
+%    \end{macrocode}
+% Der Befehl \cs{tud@geometry@@process} setzt mit den zuvor definierten
+% Hilfsmakros die \pkg{geometry}"=Optionen für sowohl die seitlichen als auch
+% die oberen sowie unteren Seitenränder und inkludiert ggf. Kopf- und Fußzeile
+% in den Satzspiegel. Die unterschiedlichen Layouts sind dabei \opt{tudddc} für
+% TUD-Kopf und \DDC-Fuß, \opt{tudpage} für den alleinigen TUD-Kopf sowie
+% \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten
+% Satzspiegel.
+%    \begin{macrocode}
+  \newcommand*\tud@geometry@@process{%
+%    \end{macrocode}
+% Für den Satzspiegel der Version~v2.02 wird als erstes der Satzspiegel für den
+% TUD-Kopf zusammen mit dem \DDC-Fuß erstellt. Das Einbeziehen der Fußzeile in
+% den Satzspiegel erfolgt nicht ggf. über die Option \opt{includefoot} sondern 
+% manuell bei der Definition von \cs{tud@geometry@ddcmargin}.
+%    \begin{macrocode}
+    \edef\Gm@restore@org{\Gm@restore}%
+    \tud@ifverlower{2.03}{%
+      \edef\@tempa{%
+        \tud@geometry@hmargin,%
+        \tud@geometry@vmargin,%
+        \tud@geometry@tudmargin,%
+        \tud@geometry@ddcmargin,%
+        ignorehead,ignorefoot%
+      }%
+      \tud@newgeometry{\@tempa}%
+      \savegeometry{tudareaddc}%
+    }{}%
+%    \end{macrocode}
+% Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile.
+%    \begin{macrocode}
+    \edef\@tempa{%
+      \tud@geometry@hmargin,%
+      \tud@geometry@vmargin,%
+      \tud@geometry@tudmargin%
+    }%
+    \tud@newgeometry{\@tempa}%
+    \savegeometry{tudarea}%
+%    \end{macrocode}
+% Als letztes wird der Standardsatzspiegel erstellt.
+%    \begin{macrocode}
+    \edef\@tempa{%
+      \tud@geometry@hmargin,%
+      \tud@geometry@vmargin%
+    }%
+    \tud@newgeometry{\@tempa}%
+    \savegeometry{typearea}%
+  }%
+%    \end{macrocode}
+% \end{macro}^^A \tud@geometry@@process
+% \end{macro}^^A \tud@geometry@process
+% \begin{macro}{\tud@geometry@hincl}
+% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A
+% \begin{macro}{\tud@geometry@fincl}
+% \begin{macro}{\tud@geometry@mpincl}
+% \changes{v2.04}{2015/03/09}{neu}^^A
+% Diese Hilfsmakros werten die Optionen für das Einbeziehen von Kopf- und
+% Fußzeile sowie der Randnotizen aus.
+%    \begin{macrocode}
+  \newcommand*\tud@geometry@hincl{%
+    \if@hincl%
+      includehead=true%
+    \else%
+      includehead=false%
+    \fi%
+  }%
+  \newcommand*\tud@geometry@fincl{%
+    \if@fincl%
+      includefoot=true%
+    \else%
+      includefoot=false%
+    \fi%
+  }%
+  \newcommand*\tud@geometry@mpincl{%
+    \if@mincl%
+      includemp=true%
+    \else%
+      includemp=false%
+    \fi%
+  }%
+%    \end{macrocode}
+% \end{macro}^^A \tud@geometry@mpincl
+% \end{macro}^^A \tud@geometry@fincl
+% \end{macro}^^A \tud@geometry@hincl
+% Damit sind alle notwendigen Satzspiegel für die unterschiedlichen Seitenstile 
+% definiert.
+%    \begin{macrocode}
+}
+%    \end{macrocode}
+% \begin{macro}{\tud@BeforeSelectAnyPageStyle}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.04}{2015/04/21}{Auswahl der Schriften für Fußbereich ergänzt}^^A
+% \begin{macro}{\tud@currentgeometry}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Mit \cs{tud@BeforeSelectAnyPageStyle} wird beim Umschalten des Seitenstils
+% gegebenfalls der Satzspiegel geändert. Dabei wird der aktivierte Satzspiegel
+% in dem Makro \cs{tud@currentgeometry} gesichert, um darauf zu einem späteren
+% Zeitpunkt prüfen zu können.
+%
+% Für den Fall, dass das Dokument nicht ausschließlich mit dem Kopf im \CD
+% auf jeder Seite gesetzt wird, muss der komplette vertikale Satzspiegel
+% angepasst werden, sonst wäre der obere Rand optisch viel zu groß. Hierfür
+% wird das Paket \pkg{geometry} genutzt. Durch \cs{tud@geometry@process} 
+% werden zwei~-- für die KOmpatibilitätsvariante drei~-- Layouts erstellt.
+% Diese können mit \cs{loadgeometry}\marg{Stil} geladen werden.
+%    \begin{macrocode}
+\newcommand*\tud@currentgeometry{}
+\newcommand*\tud@BeforeSelectAnyPageStyle[1]{%
+%    \end{macrocode}
+% Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles}
+% derart definiert, dass zwischen \pgs{tudheadings} und \pgs{plain.tudheadings}
+% auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain} 
+% umgeschaltet werden kann. Dies wird hiermit beachtet.
+%    \begin{macrocode}
+  \ifstr{#1}{\GetRealPageStyle{#1}}{%
+%    \end{macrocode}
+% Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll, muss 
+% der dazugehörige Satzspiegel ausgewählt werden\dots
+%    \begin{macrocode}
+    \tud@iftudps{#1}{%
+%    \end{macrocode}
+% \dots wobei in der Version~v2.02 zwei unterschiedliche existierten, und 
+% abhängig von der Verwendung des \DDC-Logos im Fuß waren.
+%    \begin{macrocode}
+      \tud@ifverlower{2.03}{%
+%    \end{macrocode}
+% In diesem Fall werden die Seitenfußeinstellungen mit \cs{tud@ddc@check} in
+% \cs{@tempb} geschrieben und abhängig davon der richtige Satzspiegel geladen. 
+% Dabei wird zuvor mit dem Wert aus \cs{tud@currentgeometry} geprüft, ob dies 
+% überhaupt notwendig ist.
+%    \begin{macrocode}
+        \tud@ddc@check%
+%    \end{macrocode}
+% Das \DDC-Logo im Fuß ist nicht aktiviert.
+%    \begin{macrocode}
+        \ifcase\@tempb\relax% \tud@ddc@foot=false
+          \ifstr{\tud@currentgeometry}{tudarea}{}{%
+            \loadgeometry{tudarea}%
+            \gdef\tud@currentgeometry{tudarea}%
+          }%
+%    \end{macrocode}
+% Das \DDC-Logo im Fuß ist aktiviert.
+%    \begin{macrocode}
+        \else% \tud@ddc@foot!=false
+          \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+            \loadgeometry{tudareaddc}%
+            \gdef\tud@currentgeometry{tudareaddc}%
+          }%
+        \fi%
+%    \end{macrocode}
+% Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten.
+%    \begin{macrocode}
+      }{%
+        \ifstr{\tud@currentgeometry}{tudarea}{}{%
+          \loadgeometry{tudarea}%
+          \gdef\tud@currentgeometry{tudarea}%
+        }%
+      }%
+%    \end{macrocode}
+% Die Länge \cs{tud@dim@headdiff} gibt an, wie groß die Differenz zwischen 
+% Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil 
+% ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@} 
+% gesetzt.
+%    \begin{macrocode}
+      \setlength\tud@dim@headdiff{\z@}%
+%    \end{macrocode}
+% Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende 
+% Schrift verwendet.
+%    \begin{macrocode}
+      \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}%
+      \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}%
+%    \end{macrocode}
+% Dies ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll.
+% Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} 
+% zurückgesetzt.
+%    \begin{macrocode}
+    }{%
+      \ifstr{\tud@currentgeometry}{typearea}{}{%
+        \loadgeometry{typearea}%
+        \gdef\tud@currentgeometry{typearea}%
+      }%
+%    \end{macrocode}
+% Die Länge \cs{tud@dim@headdiff} wird auf den berechneten Wert gesetzt. Nur 
+% für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und dieser
+% nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas angepasst 
+% werden.
+%    \begin{macrocode}
+      \setlength\tud@dim@headdiff{\tud@ta@headdiff}%
+      \ifcase\tud@geometry\relax\else% true/symmetric/twoside
+        \if@hincl%
+          \addtolength\tud@dim@headdiff{%
+            \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax%
+          }%
+        \fi%
+      \fi%
+%    \end{macrocode}
+% Die Schriften für Seitenzahl und Kolumnentitel werden zurückgesetzt.
+%    \begin{macrocode}
+      \tud@font@koma@unset{pagefoot}%
+      \tud@font@koma@unset{pagenumber}%
+    }%
+%    \end{macrocode}
+% Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt.
+%    \begin{macrocode}
+    \global\tud@dim@headdiff=\tud@dim@headdiff%
+  }{}%
 }
 %    \end{macrocode}
-% \end{macro}^^A \if@tud@geometry@locked
-% \end{macro}^^A \tud@geometry
-% \end{option}^^A cdgeometry
-%
-% \iffalse
-%</class&option>
-%<*class&body>
-% \fi
-%
+% \end{macro}^^A \tud@currentgeometry
+% \end{macro}^^A \tud@BeforeSelectAnyPageStyle
+% \begin{macro}{\cleardoubleoddpageusingstyle}
+% \begin{macro}{\cleardoubleevenpageusingstyle}
+% \begin{macro}{\cleardoublepageusingstyle}
+% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die 
+% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal
+% angepasst werden.
+%    \begin{macrocode}
+\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{%
+  \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}}
+\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{%
+  \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}}
+\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{%
+  \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+}{}{\tud@patch@wrn{cleardoublepageusingstyle}}
+%    \end{macrocode}
+% \end{macro}^^A \cleardoublepageusingstyle
+% \end{macro}^^A \cleardoubleevenpageusingstyle
+% \end{macro}^^A \cleardoubleoddpageusingstyle
+% \begin{macro}{\tud@ddc@enlargepage}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Der Befehl wird nur für den Kompatibilitätsmodus zur Version~v2.02 benötigt 
+% und für die Titelkopf- und Kapitelseiten verwendet. Er verkleinert die
+% entsprechenden Seiten, wenn für diese mit dem Befehl \cs{thispagestyle} einer
+% der \pgs{tudheadings}"=Seitenstile gewählt wird \emph{und} das \DDC-Logo im
+% Fuß gesetzt werden soll. Der entsprechende Seitenstil kann im optionalen
+% Argument angegeben werden, wenn der Befehl bedingt ausgeführt werden soll.
+%    \begin{macrocode}
+\tud@ifverlower{2.03}{%
+  \newcommand*\tud@ddc@enlargepage[1][]{%
+    \tud@iftudps{#1}{%
+      \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+        \tud@ddc@check%
+        \ifcase\@tempb\relax\else% \tud@ddc@foot!=false
+          \enlargethispage{-\tud@dim@ddcdiff}%
+        \fi%
+      }%
+    }{}%
+  }%
+}{}
+%    \end{macrocode}
+% \end{macro}^^A \tud@ddc@enlargepage
 % \begin{length}{\tud@ta@textheight}
 % \begin{length}{\tud@ta@topmargin}
 % \begin{length}{\tud@ta@headheight}
 % \begin{length}{\tud@ta@headsep}
 % \begin{length}{\tud@ta@footheight}
-% \changes{v2.03}{2015/01/09}{neu, für entsprechende \pkg{typearea}-Option}%^^A
+% \changes{v2.03}{2015/01/09}{neu, für entsprechende \pkg{typearea}-Option}^^A
 % \begin{length}{\tud@ta@footskip}
 % Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten
 % Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom
@@ -1882,7 +3047,7 @@
 % \end{length}^^A \tud@ta@textheight
 % \begin{length}{\tud@ta@headdiff}
 % \begin{length}{\tud@ta@footdiff}
-% \changes{v2.02}{2014/06/23}{entfernt}%^^A
+% \changes{v2.02}{2014/06/23}{entfernt}^^A
 % Eine Länge für den Ausgleich zwischen normalem und benötigtem Satzspiegel für 
 % das spezielle Layout des \CDs. Die Differenz zwischen den unterschiedlichen 
 % Kopfhöhen der Satzspiegelvarianten wird bei der Ausführung von
@@ -1895,8 +3060,8 @@
 %    \end{macrocode}
 % \end{length}^^A \tud@ta@footdiff
 % \end{length}^^A \tud@ta@headdiff
-% \begin{macro}{\tud@geometry@restore}
-% \changes{v2.02}{2014/06/27}{neu}%^^A
+% \begin{macro}{\tud@AfterChangingArea}
+% \changes{v2.04}{2015/03/10}{neu}^^A
 % Der Befehl \cs{AfterCalculatingTypearea} wird durch das Paket \pkg{typearea}
 % bereitgestellt. Die durch \pkg{typearea} berechneten Längenwerte für den
 % Satzspiegel werden zur Weiterverarbeitung gesichert. Für die Erstellung des
@@ -1905,11 +3070,8 @@
 % Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich,
 % unabhängig vom genutzten Paket\footnote{\pkg{typearea} oder \pkg{geometry}}
 % zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern.
-% Damit auch Änderungen an der Papiergröße möglich sind, muss ein einzelnes
-% Makro (\cs{Gm@restore@org}) aus \pkg{geometry} temporär deaktiviert werden.
 %    \begin{macrocode}
-\newcommand*\tud@geometry@restore{}
-\AfterCalculatingTypearea{%
+\newcommand*\tud@AfterChangingArea{%
   \setlength\tud@ta@textheight{\textheight}%
   \setlength\tud@ta@topmargin{\topmargin}%
   \setlength\tud@ta@headheight{\headheight}%
@@ -1920,399 +3082,62 @@
     \setlength\tud@ta@footheight{\ta@fh}%
   }%
   \setlength\tud@ta@footskip{\footskip}%
-  \let\tud@geometry@restore\Gm@restore@org%
-  \if@atdocument%
-    \let\Gm@restore@org\relax%
-    \tud@geometry@process%
+  \tud@geometry@process%
+%    \end{macrocode}
+% Nachder Änderung desSatzspiegels werden alle Logoboxen neu erstellt.
+%    \begin{macrocode}
+  \global\@tud@mainlogo@settrue%
 %    \end{macrocode}
 % Damit Änderungen am Satzspiegel im Dokument sicher übernommen werden, wird 
 % das Setzen des Satzspiegels forciert. Dafür wird \cs{tud@currentgeometry} 
 % zurückgesetzt und anschließend der aktuelle Seitenstil erneut geladen, um das 
-% erneute und korrekte Ausführen von \cs{tud@beforeselectanypagestyle} zu 
+% erneute und korrekte Ausführen von \cs{tud@BeforeSelectAnyPageStyle} zu 
 % erzwingen.
 %    \begin{macrocode}
-    \gdef\tud@currentgeometry{}%
-    \expandafter\pagestyle\expandafter{\currentpagestyle}%
-  \fi%
-  \let\Gm@restore@org\tud@geometry@restore%
+  \gdef\tud@currentgeometry{}%
+  \expandafter\pagestyle\expandafter{\currentpagestyle}%
 }
 %    \end{macrocode}
-% \end{macro}^^A \tud@geometry@restore
-% \begin{macro}{\tud@geometry@hmargin}
-% \begin{macro}{\tud@geometry@vmargin}
-% \begin{macro}{\tud@geometry@tudmargin}
-% \begin{macro}{\tud@geometry@ddcmargin}
-% Dies sind Hilfsmakros für die Definition der unterschiedichen Seitenlayouts
-% (horizontale und vertikale Ränder). Es handelt sich dabei um die Seitenränder 
-% für den normalen Textbereich sowie die angepassten vertikalen Einstellungen
-% für die Seitenstilvarianten mit TUD-Kopf. Im Kompatibilitätsmodus für die 
-% Version~v2.02 gibt es außerdem einen separaten Satzspiegel für den \DDC-Fuß.
-% Gesetzt werden diese in Abhängigkeit von der Option \opt{cdgeometry} im
-% Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}.
-%    \begin{macrocode}
-\newcommand*\tud@geometry@hmargin{}
-\newcommand*\tud@geometry@vmargin{}
-\newcommand*\tud@geometry@tudmargin{}
-\iftudscrverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}
-%    \end{macrocode}
-% \end{macro}^^A \tud@geometry@ddcmargin
-% \end{macro}^^A \tud@geometry@tudmargin
-% \end{macro}^^A \tud@geometry@vmargin
-% \end{macro}^^A \tud@geometry@hmargin
-% \changes{v2.02}{2014/06/29}{\pkg{geometry} Laden verzögert}%^^A
-% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und
-% der Seitenränder, wie es vom \CD der TU~Dresden verlangt wird. Damit dieses
-% alle Satzspiegeleinstellungen korrekt vornimmt und auch alle Klassenoptionen 
-% korrekt verarbeitet, wird das Laden mit \cs{AtEndPreamble} bis ans Ende der
-% Präambel verzögert und vorher der Satzspiegel neu berechnet. Anschließend 
-% erstellt \cs{tud@geometry@process} alle benötigten Satzspiegel. Durch das 
-% Setzen des Seitenstils wird der richtige Satzspiegel ausgewählt. Dies 
-% geschieht \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option
+% \end{macro}^^A \tud@AfterChangingArea
+% Damit alle Satzspiegeleinstellungen korrekt vorgenommen und auch alle
+% Klassenoptionen korrekt verarbeitet werden, wird die Berechnung erstmalig mit
+% \cs{AtEndPreamble} am Ende der Präambel ausgeführt. Nachfolgend erstellt
+% \cs{tud@geometry@process} alle benötigten Satzspiegel. Durch das Setzen des
+% Seitenstils wird der jeweils richtige bzw. benötigte Satzspiegel ausgewählt.
+% Dies geschieht \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option
 % \opt{crop} geladen wurde, um die Seitenränder nicht zu ändern.
 %    \begin{macrocode}
 \AtEndPreamble{%
-  \ifstandalonecrop{}{%
-    \recalctypearea%
-    \RequirePackage{geometry}[2010/09/12]%
-    \tud@geometry@process%
-    \expandafter\pagestyle\expandafter{\currentpagestyle}%
-  }%
-}
-%    \end{macrocode}
-% \begin{macro}{\tud@geometry@process}
-% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A
-% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}%^^A
-% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}%^^A
-% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}%^^A
-% \begin{macro}{\tud@geometry@@process}
-% Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten
-% Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der
-% Kopf- und/oder Fußzeile. Um mehrere Satzspiegel verwenden zu können~-- was
-% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das
-% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung
-% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry}
-% weitergereicht.
-% Es werden drei Layouts erstellt: normaler Satzspiegel, nur TUD-Kopf sowie
-% TUD-Kopf und "~Fuß und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann
-% innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer
-% sowie ggf. untere Seitenrand geändert werden.
-%    \begin{macrocode}
-\newcommand*\tud@geometry@process{%
-%    \end{macrocode}
-% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt.
-%    \begin{macrocode}
-  \tud@geometry@set%
-%    \end{macrocode}
-% Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden
-% die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht.
-% Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros
-% für die Erstellung der \pkg{geometry}-Satzspiegel übergeben.
-%    \begin{macrocode}
-  \ifcase\tud@geometry\relax%
-    \def\tud@geometry@hmargin{%
-      left=\dimexpr\oddsidemargin+1in\relax,%
-      width=\textwidth,%
-      marginparwidth=\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,%
-      \if@twoside\if@reversemargin%
-        marginparwidth=\dimexpr\oddsidemargin+1in-\tud@ta@headsep\relax,%
-      \fi\fi%
-      marginparsep=.5\tud@ta@headsep,%
-    }%
-    \def\tud@geometry@vmargin{%
-      top=\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep%
-        +1in\relax,%
-      headheight=\tud@ta@headheight,%
-      headsep=\tud@ta@headsep,%
-      textheight=\tud@ta@textheight,%
-      footskip=\tud@ta@footskip,%
-    }%
-    \def\tud@geometry@tudmargin{%
-      top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
-        +\tud@dim@headsep\relax,%
-      headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
-        -\tud@dim@logoy\relax,%
-      headsep=\tud@dim@headsep,%
-      textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,%
-      ignorehead,%
-    }%
-%    \end{macrocode}
-% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
-% für den \pkg{typearea}-Satzspiegel berechnet.
-%    \begin{macrocode}
-    \setlength\tud@ta@headdiff{%
-      \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
-        -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax%
-    }%
-%    \end{macrocode}
-% Sollte der \pkg{typearea}-Satzspiegel noch unterhalb des TUD-Kopfes liegen, 
-% wird der Abstand zum Kopf vergrößert.
-%    \begin{macrocode}
-    \ifdim\tud@ta@headdiff<\z@\relax%
-      \addtolength\tud@dim@headsep{-\tud@ta@headdiff}%
-    \fi%
-%    \end{macrocode}
-% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen 
-% separaten Satzspiegel.
-%    \begin{macrocode}
-    \iftudscrverlower{2.03}{%
-      \setlength\tud@dim@ddcdiff{%
-        \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep%
-          +\tud@ta@footheight-1.25\baselineskip\relax%
-      }%
-      \def\tud@geometry@ddcmargin{%
-        textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff%
-          -\tud@dim@ddcdiff\relax,%
-        footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,%
-      }%
-    }{}%
-%    \end{macrocode}
-% Sollte die Option \opt{extrabottommargin} verwendet worden sein, wird eine 
-% Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos
-% ist.
-%    \begin{macrocode}
-    \ifdim\tud@dim@extrabottommargin=\z@\relax\else%
-      \ClassWarning{\tudcls@name}{%
-        Option `extrabottommargin' is ineffective when\MessageBreak%
-        package typearea is used (`cdgeometry=no')%
-      }%
-    \fi%
-%    \end{macrocode}
-% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische
-% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz.
-% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die
-% unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil.
-%    \begin{macrocode}
-  \else%
-    \ifcase\tud@geometry\or%
-      \def\tud@geometry@hmargin{%
-        left=\tud@dim@widemargin,%
-        textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
-        \if@reversemargin%
-          marginparwidth=\dimexpr\tud@dim@widemargin-\tud@ta@headsep\relax,%
-        \else%
-          marginparwidth=\dimexpr\tud@dim@slimmargin-\tud@ta@headsep\relax,%
-        \fi%
-        marginparsep=.5\tud@ta@headsep,%
-        bindingoffset=\ta@bcor,%
-        \if@twoside asymmetric,\fi%
-      }%
-%    \end{macrocode}
-% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl
-% im einseitigen als auch im zweiseitgigen Satz symmetrisch.
-%    \begin{macrocode}
-    \or%
-      \def\tud@geometry@hmargin{%
-        left=.5\tud@dim@both,%
-        textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
-        marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,%
-        marginparsep=.5\tud@ta@headsep,%
-        bindingoffset=\ta@bcor,%
-      }%
-%    \end{macrocode}
-% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist
-% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite
-% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende
-% TUD-Logo geachtet werden muss.
-%    \begin{macrocode}
-    \or%
-      \def\tud@geometry@hmargin{%
-        \if@twoside%
-          left=.4\tud@dim@both,%
-          twoside,%
-        \else%
-          left=.5\tud@dim@both,%
-        \fi%
-        textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,%
-        \if@twoside%
-          \if@reversemargin%
-            marginparwidth=\dimexpr.4\tud@dim@both-\tud@ta@headsep\relax,%
-          \else%
-            marginparwidth=\dimexpr.6\tud@dim@both-\tud@ta@headsep\relax,%
-          \fi%
-        \else%
-          marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,%
-        \fi%
-        marginparsep=.5\tud@ta@headsep,%
-        bindingoffset=\ta@bcor,%
-      }%
-    \fi%
-%    \end{macrocode}
-% Für alle drei Varianten der vertikale Gleichanteil. Der Satzspiegel der 
-% Version~v2.02 wird aus Gründen der Kompatibilität weiterhin vorgehalten.
-%    \begin{macrocode}
-    \iftudscrverlower{2.03}{%
-      \def\tud@geometry@vmargin{%
-        top=.5\tud@dim@both,%
-        headheight=\tud@ta@headheight,%
-        headsep=\tud@dim@headsep,%
-        bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,%
-        footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight%
-          -1.25\baselineskip\relax,%
-        \tud@geometry@hincl,%
-        \tud@geometry@fincl,%
-      }%
-    }{%
-      \def\tud@geometry@vmargin{%
-        top=\tud@dim@slimmargin,%
-        headheight=\tud@ta@headheight,%
-        headsep=\tud@ta@headsep,%
-        bottom=\dimexpr\tud@dim@widemargin+\tud@dim@extrabottommargin\relax,%
-        footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,%
-        \tud@geometry@hincl,%
-        \tud@geometry@fincl,%
-      }%
-    }%
-    \def\tud@geometry@tudmargin{%
-      top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
-        +\tud@dim@headsep\relax,%
-      headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
-        -\tud@dim@logoy\relax,%
-      headsep=\tud@dim@headsep,%
-      ignorehead,%
-    }%
-%    \end{macrocode}
-% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
-% für den Satzspiegel des \CDs berechnet.
-%    \begin{macrocode}
-    \setlength\tud@ta@headdiff{%
-      \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
-        -\tud@dim@slimmargin\relax%
-    }%
-%    \end{macrocode}
-% Für die Kompatibilitätsvariante wieder mal die Extrawurst\dots
-%    \begin{macrocode}
-    \iftudscrverlower{2.03}{%
-      \setlength\tud@ta@headdiff{%
-        \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
-          -.5\tud@dim@both\relax%
-      }%
-%    \end{macrocode}
-% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß 
-% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt.
-%    \begin{macrocode}
-      \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}%
-      \def\tud@geometry@ddcmargin{%
-        \if@fincl%
-          bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin%
-            +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight%
-            -1.25\baselineskip\relax,%
-        \else%
-          bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin%
-            +\tud@dim@ddcdiff\relax,%
-        \fi%
-        footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight%
-          -1.25\baselineskip+\tud@dim@ddcdiff\relax,%
-      }%
-    }{}%
-  \fi%
-%    \end{macrocode}
-% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
-% für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige
-% vertikale Verschiebung der Überschriften festgelegt.
-%    \begin{macrocode}
-  \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi%
-  \global\tud@ta@headdiff=\tud@ta@headdiff%
-  \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}%
-  \global\tud@dim@headingsvskip=\tud@dim@headingsvskip%
-%    \end{macrocode}
-% Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren 
-% Seitenfuß gesetzt.
-%    \begin{macrocode}
-  \iftudscrverlower{2.03}{%
-    \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi%
-    \global\tud@dim@ddcdiff=\tud@dim@ddcdiff%
-  }{}%
-%    \end{macrocode}
-% Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten
-% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu
-% erstellen.
-%    \begin{macrocode}
-  \tud@geometry@@process%
-}
-%    \end{macrocode}
-% Der Befehl \cs{tud@geometry@@process} setzt mit den zuvor definierten
-% Hilfsmakros die \pkg{geometry}"=Optionen für sowohl die seitlichen als auch
-% die oberen sowie unteren Seitenränder und inkludiert ggf. Kopf- und Fußzeile
-% in den Satzspiegel. Die unterschiedlichen Layouts sind dabei \opt{tudddc} für
-% TUD-Kopf und \DDC-Fuß, \opt{tudpage} für den alleinigen TUD-Kopf sowie
-% \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten
-% Satzspiegel.
-%    \begin{macrocode}
-\newcommand*\tud@geometry@@process{%
-%    \end{macrocode}
-% Für den Satzspiegel der Version~v2.02 wird als erstes der Satzspiegel für den
-% TUD-Kopf zusammen mit dem \DDC-Fuß erstellt. Das Einbeziehen der Fußzeile in
-% den Satzspiegel erfolgt nicht ggf. über die Option \opt{includefoot} sondern 
-% manuell bei der Definition von \cs{tud@geometry@ddcmargin}.
-%    \begin{macrocode}
-  \iftudscrverlower{2.03}{%
-    \edef\@tempa{%
-      \tud@geometry@hmargin,%
-      \tud@geometry@vmargin,%
-      \tud@geometry@tudmargin,%
-      \tud@geometry@ddcmargin,%
-      ignorehead,ignorefoot,%
-    }%
-    \expandafter\newgeometry\expandafter{\@tempa}%
-    \savegeometry{tudareaddc}%
-  }{}%
+  \tud@ifsacrop{}{%
 %    \end{macrocode}
-% Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile.
+% Nach einer Neuberechnung oder Änderung des Satzspiegels durch \pkg{typearea} 
+% werden die für die Seitenstile benötigten Satzspiegel mit \pkg{geometry} neu
+% erstellt.
+% \ToDo{\cs{AfterRestoreareas} einfügen}[v3.18]
 %    \begin{macrocode}
-  \edef\@tempa{%
-    \tud@geometry@hmargin,%
-    \tud@geometry@vmargin,%
-    \tud@geometry@tudmargin,%
-  }%
-  \expandafter\newgeometry\expandafter{\@tempa}%
-  \savegeometry{tudarea}%
+    \AfterCalculatingTypearea{\tud@AfterChangingArea}%
+    \AfterSettingArea{\tud@AfterChangingArea}%
+%    \AfterRestoreareas{\tud@AfterChangingArea}%
 %    \end{macrocode}
-% Als letztes wird der Standardsatzspiegel erstellt.
+% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch 
+% \cs{tud@BeforeSelectAnyPageStyle} aktiviert bzw. deaktiviert wird.
 %    \begin{macrocode}
-  \edef\@tempa{%
-    \tud@geometry@hmargin,%
-    \tud@geometry@vmargin,%
+    \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}%
+    \recalctypearea%
   }%
-  \expandafter\newgeometry\expandafter{\@tempa}%
-  \savegeometry{typearea}%
-}
-%    \end{macrocode}
-% \end{macro}^^A \tud@geometry@@process
-% \end{macro}^^A \tud@geometry@process
-% \begin{macro}{\tud@geometry@hincl}
-% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A
-% \begin{macro}{\tud@geometry@fincl}
-% Diese beiden Hilfsmakro werten die Optionen für das Einbeziehen von Kopf- und
-% Fußzeile aus.
-%    \begin{macrocode}
-\newcommand*\tud@geometry@hincl{%
-  \if@hincl%
-    includehead,%
-  \else%
-    ignorehead,%
-  \fi%
-}
-\newcommand*\tud@geometry@fincl{%
-  \if@fincl%
-    includefoot,%
-  \else%
-    ignorefoot,%
-  \fi%
 }
 %    \end{macrocode}
-% \end{macro}^^A \tud@geometry@fincl
-% \end{macro}^^A \tud@geometry@hincl
 % \begin{environment}{tudpage}
-% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}%^^A
+% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}^^A
 % \begin{macro}{\tud@ps}
 % \begin{macro}{\tud@ps@select}
-% \changes{v2.02}{2014/07/19}{neu}%^^A
+% \changes{v2.02}{2014/07/19}{neu}^^A
 % \begin{macro}{\tud@currentpagestyle}
 % \begin{macro}{\tud@currentpagestyle@set}
-% \changes{v2.02}{2014/07/18}{neu}%^^A
+% \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, wenn \cs{tud@currentpagestyle} void}%^^A
+% \changes{v2.02}{2014/07/18}{neu}^^A
+% \changes{v2.03}{2015/01/09}{Bugfix}^^A
 % Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout
 % temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern.
 % Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}.
@@ -2378,11 +3203,11 @@
 % \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die
 % \env{multicols}-Umgebung beendet.
 %    \begin{macrocode}
-  \ifnum\tud@multicols>1\relax%
+  \ifnum\tud@multicols>\@ne\relax%
     \begin{multicols}{\tud@multicols}%
   \fi%
   \BODY%
-  \ifnum\tud@multicols>1\relax%
+  \ifnum\tud@multicols>\@ne\relax%
     \end{multicols}%
   \fi%
 %    \end{macrocode}
@@ -2419,7 +3244,7 @@
 %    \end{macrocode}
 % \end{parameter}^^A cdfont
 % \begin{parameter}{cdhead}
-% \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}%^^A
+% \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.
@@ -2428,7 +3253,7 @@
 %    \end{macrocode}
 % \end{parameter}^^A cdhead
 % \begin{parameter}{cdfoot}
-% \changes{v2.03}{2015/01/30}{neu}%^^A
+% \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}
@@ -2436,9 +3261,9 @@
 %    \end{macrocode}
 % \end{parameter}^^A cdfoot
 % \begin{parameter}{headlogo}
-% \changes{v2.03}{2015/01/28}{neu}%^^A
+% \changes{v2.03}{2015/01/28}{neu}^^A
 % \begin{parameter}{footlogo}
-% \changes{v2.03}{2015/01/28}{neu}%^^A
+% \changes{v2.03}{2015/01/28}{neu}^^A
 % Das Zweit- und die Drittlogos können ebenfalls lokal geändert werden.
 %    \begin{macrocode}
   \TUD@parameter@define{headlogo}{\headlogo{#1}}%
@@ -2447,7 +3272,7 @@
 % \end{parameter}^^A footlogo
 % \end{parameter}^^A headlogo
 % \begin{parameter}{ddc}
-% \changes{v2.02}{2014/08/16}{neu}%^^A
+% \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.
@@ -2498,32 +3323,32 @@
 %    \begin{macrocode}
   \TUD@parameter@define{language}{\selectlanguage{#1}}%
 %    \end{macrocode}
-%  \end{parameter} ^^A language
+% \end{parameter} ^^A language
 % \begin{parameter}{columns}
 % Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für 
 % mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die
 % Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter
 % angegeben werden.
 %    \begin{macrocode}
-  \TUD@parameter@define{columns}{\def\tud@multicols{#1}}%
+  \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}%
 %    \end{macrocode}
-%  \end{parameter} ^^A columns
+% \end{parameter} ^^A columns
 % \begin{parameter}{color}
-% \changes{v2.03}{2015/01/28}{entfernt}%^^A
+% \changes{v2.03}{2015/01/28}{entfernt}^^A
 % \begin{parameter}{colour}
-% \changes{v2.03}{2015/01/28}{entfernt}%^^A
+% \changes{v2.03}{2015/01/28}{entfernt}^^A
 % Beide Parameter wurden entfernt, da diese augenscheinlich für das \CD nicht 
 % notwendig sind.
 % \end{parameter}^^A colour
 % \end{parameter}^^A color
 % \begin{parameter}{pagestyle}
-% \changes{v2.02}{2014/06/23}{neu}%^^A
-% \changes{v2.03}{2015/01/28}{\cs{iftudpagestyle} verwendet}%^^A
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \changes{v2.03}{2015/01/28}{\cs{tud@iftudps} verwendet}^^A
 % Mit diesem Parameter kann der verwendete Seitenstil eingestellt werden, wobei 
 % einer der \pgs{tudheadings}-Seitenstile verwendet wird.
 %    \begin{macrocode}
   \TUD@parameter@define{pagestyle}{%
-    \iftudpagestyle{#1}{\renewcommand*\tud@ps{#1}}{%
+    \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{%
       \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{%
       \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{%
       \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{%
@@ -2537,10 +3362,10 @@
 % \end{parameter}^^A pagestyle
 % \begin{parameter}{head}
 % \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option
-%   \opt{ddchead} übernommen}%^^A
+%   \opt{ddchead} übernommen}^^A
 % \begin{parameter}{foot}
-% \changes{v2.02}{2014/06/30}{entfernt, Funktinalität teilweise durch Option
-%   \opt{ddcfoot} übernommen}%^^A
+% \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option
+%   \opt{ddcfoot} übernommen}^^A
 % Diese Parameter wurden entfernt. Stattdessen kann innerhalb der Umgebung
 % entweder der Befehl \cs{TUDoptions} mit den Schlüsseln \opt{ddchead=\dots}
 % und \opt{ddcfoot=\dots} bzw. für den Querbalken \opt{cdhead=\dots} sowie das
-- 
cgit v1.2.3

