% \CheckSum{2473} % \iffalse meta-comment % % ============================================================================ % % TUD-KOMA-Script % Copyright (c) Falk Hanisch , 2012-2015 % % ============================================================================ % % This work may be distributed and/or modified under the conditions of the % LaTeX Project Public License, version 1.3c of the license. The latest % version of this license is in http://www.latex-project.org/lppl.txt and % version 1.3c or later is part of all distributions of LaTeX 2005/12/01 % or later and of this work. This work has the LPPL maintenance status % "author-maintained". The current maintainer and author of this work % is Falk Hanisch. % % ---------------------------------------------------------------------------- % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz % in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle % Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und % Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 % oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status % "author-maintained", wird somit allein durch den Autor verwaltet. Der % aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. % % ============================================================================ % % \fi % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \iffalse %%% From File: tudscr-pagestyle.dtx %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-pagestyle.dtx}[% 2015/06/18 v2.04 TUD-KOMA-Script (pagestyle)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{tudscrfonts} % only load this package, if the fonts are installed \KOMAoptions{parskip=half-} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-pagestyle.dtx} \begin{document} \maketitle \DocInput{\filename} \end{document} % % \fi % % \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 % % \section{Der Seitenstil des \CDs} % % Das \CD verlangt (eigentlich) einen fest vorgegebenen Satzspiegel. Für das % Setzen längerer wissenschaftlicher Abhandlungen ist dieser jedoch alles % andere als glücklich gewählt. Insbesondere für den doppelseitigen Satz ist % das Standardlayout nicht gut nutzbar. Für die \TUDScript"=Klassen wird % deshalb die Abweichung vom sonst fest vorgegebenen Satzspiegel ermöglicht. % % \StopEventually{\PrintIndex\PrintChanges} % % \subsection{Definition der konstanten Größen und Maße} % % Die Vorlagen sollen neben den vom \CD vorgegebenen Seitenrändern weitere % Layouts ermöglichen und u.\,a. auch die Nutzung des Paketes \pkg{typearea} % erlauben. Damit ein einheitliches Verfahren zur Wahl bzw. Umschaltung des % Satzspiegels genutzt werden kann, wird das Paket \pkg{geometry} genutzt. % Dabei werden entweder die gewünschten Maße der Seitenränder direkt gewählt % oder aber die mit \pkg{typearea} berechneten Maße an \pkg{geometry} % durchgereicht. % % Als erstes werden die Standardmaße für die Seitenränder im \CD definiert, % danach speziell für die \env{tudpage}"=Umgebung. % % \iffalse %<*class&body> % \fi % % \begin{length}{\tud@dim@widemargin} % \begin{length}{\tud@dim@slimmargin} % \begin{length}{\tud@dim@both} % Die Seitenränder für links und rechts sowie deren Summe, welche später für % weitere Layouts dazu verwendet wird, diese anteilig zu verteilen. % \begin{macrocode} \newlength\tud@dim@widemargin \newlength\tud@dim@slimmargin \newlength\tud@dim@both % \end{macrocode} % \end{length}^^A \tud@dim@both % \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 % \begin{length}{\tud@dim@bottom} % \changes{v2.02}{2015/01/09}{entfernt}^^A % \begin{length}{\tud@dim@footskip} % \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. % \end{length}^^A \tud@dim@footskip % \end{length}^^A \tud@dim@bottom % \end{length}^^A \tud@dim@top % \begin{length}{\tud@dim@topmargin} % \begin{length}{\tud@dim@barheight} % \begin{length}{\tud@dim@headsep} % \begin{length}{\tud@dim@footsep} % Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe % oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale % (Mindest"~)Abstand zwischen Querbalken und Textkörper sowie der Fußzeile. % \begin{macrocode} \newlength\tud@dim@topmargin \newlength\tud@dim@barheight \newlength\tud@dim@headsep \newlength\tud@dim@footsep % \end{macrocode} % \end{length}^^A \tud@dim@footsep % \end{length}^^A \tud@dim@headsep % \end{length}^^A \tud@dim@barheight % \end{length}^^A \tud@dim@topmargin % \begin{length}{\tud@dim@logox} % \begin{length}{\tud@dim@logoy} % \begin{length}{\tud@dim@logowidth} % \begin{length}{\tud@dim@logoheight} % \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 % sowie die Breite und Höhe\footnote{Proportionen sind durch die Grafik % vorgegeben} des Logos. % \begin{macrocode} \newlength\tud@dim@logox \newlength\tud@dim@logoy \newlength\tud@dim@logowidth % \end{macrocode} % \end{length}^^A \tud@dim@logoheight % \end{length}^^A \tud@dim@logowidth % \end{length}^^A \tud@dim@logoy % \end{length}^^A \tud@dim@logox % \begin{length}{\tud@dim@line} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{length}{\tud@dim@heavyline} % \begin{length}{\tud@dim@thinline} % Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler % als im Layout mit farbigem Hintergrund.\footnote{% % monochrom \cs{tud@dim@thinline}, koloriert \cs{tud@dim@heavyline}}% % Da im Dokument beide Varianten vorkommen können, wird die Breite % \cs{tud@dim@line} durch den Seitenstil situativ entweder auf den Wert von % \cs{tud@dim@thinline} oder aber \cs{tud@dim@heavyline} gesetzt. % \begin{macrocode} \newlength\tud@dim@line \newlength\tud@dim@heavyline \newlength\tud@dim@thinline % \end{macrocode} % \end{length}^^A \tud@dim@thinline % \end{length}^^A \tud@dim@heavyline % \end{length}^^A \tud@dim@line % \begin{length}{\tud@dim@headdiff} % \begin{length}{\tud@dim@headingsvskip} % \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} \newlength\tud@dim@headdiff \newlength\tud@dim@headingsvskip % \end{macrocode} % \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 % 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} \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 % \begin{macro}{\tud@head@font@size} % Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die % Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die % Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch % \cs{tud@geometry@process}. Dabei fungiert \cs{tud@dim@widemargin} als % Bezugslänge. Die maßgebliche Papiergröße ist DIN~A4. Die Längen für alle % anderen Papiermaße unterscheiden sich um den Faktor~$\sqrt{2}$, wobei das % Format DIN~A5 nach den Vorgaben des \CDs übersprungen wird. % \begin{macrocode} \newcommand*\tud@head@font@size{} \newcommand*\tud@geometry@set{% \ifdim\paperheight<148.1mm\relax% \setlength\tud@dim@widemargin{15mm}% \setlength\tud@dim@heavyline{0.5pt}% \setlength\tud@dim@thinline{0.25pt}% \def\tud@head@font@size{4.5}% \else\ifdim\paperheight<297.1mm\relax% \setlength\tud@dim@widemargin{30mm}% \setlength\tud@dim@heavyline{1pt}% \setlength\tud@dim@thinline{0.5pt}% \def\tud@head@font@size{9}% \else\ifdim\paperheight<420.1mm\relax% \setlength\tud@dim@widemargin{42.426407mm}% \setlength\tud@dim@heavyline{1.414214pt}% \setlength\tud@dim@thinline{0.707107pt}% \def\tud@head@font@size{12.727922}% \else\ifdim\paperheight<594.1mm\relax% \setlength\tud@dim@widemargin{60mm}% \setlength\tud@dim@heavyline{2pt}% \setlength\tud@dim@thinline{1pt}% \def\tud@head@font@size{18}% \else\ifdim\paperheight<841.1mm\relax% \setlength\tud@dim@widemargin{84.852814mm}% \setlength\tud@dim@heavyline{2.828427pt}% \setlength\tud@dim@thinline{1.414214pt}% \def\tud@head@font@size{25.455844}% \else% \setlength\tud@dim@widemargin{120mm}% \setlength\tud@dim@heavyline{4pt}% \setlength\tud@dim@thinline{2pt}% \def\tud@head@font@size{36}% \fi\fi\fi\fi\fi% % \end{macrocode} % Zum Schluss werden die restlichen Längen aus der Referenzlänge berechnet. % \begin{macrocode} \setlength\tud@dim@slimmargin{\dimexpr2\tud@dim@widemargin/3\relax}% \setlength\tud@dim@both{\dimexpr5\tud@dim@widemargin/3\relax}% \setlength\tud@dim@topmargin{\dimexpr7\tud@dim@widemargin/6\relax}% \setlength\tud@dim@barheight{\dimexpr\tud@dim@widemargin/6\relax}% \setlength\tud@dim@headsep{\dimexpr2\tud@dim@widemargin/5\relax}% \setlength\tud@dim@logox{\dimexpr1.1\tud@dim@widemargin/3\relax}% \setlength\tud@dim@logoy{\dimexpr0.45\tud@dim@widemargin\relax}% \setlength\tud@dim@logowidth{\dimexpr1.9\tud@dim@widemargin\relax}% \setlength\tud@dim@footsep{% \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% }% } % \end{macrocode} % \end{macro}^^A \tud@head@font@size % \end{macro}^^A \tud@geometry@set % % \subsection{Unterstützung der \cls{standalone}-Klasse} % % \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}^^A % % Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate % Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse % ändert allerhand an den Einstellungen der Seitenränder. Damit sich diese bei % der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen % für einige Einstellungen unterdrückt werden. % % \begin{macro}{\tud@ifsacrop} % \changes{v2.02}{2014/09/08}{neu}^^A % Mit diesem Makro kann die Verwendung der Option \opt{crop} mit der Klasse % \cls{standalone} geprüft werden. Das erste Argument wird ausgeführt, wenn % die Klasse geladen und die Option aktiv ist. Das zweite Argument wird % ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die % Klasse \cls{standalone} gar nicht geladen wurde. % \begin{macrocode} \newcommand*\tud@ifsacrop{% \ifcsdef{ifsa@crop}{% \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% }{% \@secondoftwo% }% } % \end{macrocode} % \end{macro}^^A \tud@ifsacrop % % \subsection{Definition des Seitenstils mittels \pkg{scrlayer-scrpage}} % % Ein zentraler Bestandteil der Vorlagen ist der Seitenkopf des \CDs. Dieser % wird ab der Version~v2.02 mit Hilfe des Paketes \pkg{scrlayer-scrpage} % erstellt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von % verschiedenen Befehlen wie beispielsweise von\cs{maketitle} oder \cs{part} % bzw. \cs{addpart} genutzt werden. Zum anderen kann der Anwender selbst diese % entweder direkt über die Wahl des Seitenstils oder aber mit der % \env{tudpage}"=Umgebung nutzen. % % 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 % \begin{pagestyle}{plain.tudheadings} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{pagestyle}{empty.tudheadings} % \changes{v2.02}{2014/06/23}{neu}^^A % Es wird ein neuer Seitenstil kreiert, der das \CD der \TnUD mit der % prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein, % wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket % \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD % vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum % Textblock gesetzt. % % Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage} % genutzt. Mit diesem können verschiedene Ebenen erstellt werden, aus welchen % anschließend der eigentliche Seitenstil zusammengesetzt wird. Dabei werden % verschiedene, sogenannte Layers respektive Ebenen für die einzelnen Elemente % auf einer Seite erstellt. % \begin{macrocode} \AfterPackage{scrlayer-scrpage}{% % \end{macrocode} % \begin{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.04}{2015/05/31}{entfernt}^^A % \begin{layer}{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 % \begin{layer}{tudheadings.head.bar} % \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>\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 % 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}% % \end{macrocode} % \end{layer}^^A tudheadings.head.text % \begin{layer}{tudheadings.head.upperline} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.lowerline} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.upperwideline} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.lowerwideline} % \changes{v2.02}{2014/06/23}{neu}^^A % Die Ebenen für obere und untere Linie des Querbalkens sowohl in der normalen % Version, welche den Textbereich überspannt als auch in der Variante über die % komplette Seitenbreite. Dabei muss für beide Varianten der entsprechenden % horizontale Versatz beachtet werden. Dafür wird ggf. der Parameter \val{head} % von \pkg{scrlayer-scrpage} verwendet. % \begin{macrocode} \DeclareNewLayer[% background,headsep,% voffset=\dimexpr\tud@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.back} % \changes{v2.03}{2015/02/15}{neu}^^A % \begin{layer}{tudheadings.foot.logo} % \changes{v2.02}{2014/06/23}{neu}^^A % \changes{v2.04}{2015/05/31}{neu}^^A % \changes{v2.03}{2015/02/15}{überarbeitetet}^^A % \begin{layer}{tudheadings.foot.content} % \changes{v2.04}{2015/04/21}{neu}^^A % 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% }{% \def\@tempc{\color{HKS41}}% \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% \fi% \fi% },% ]{tudheadings.foot.back}% % \end{macrocode} % Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel % geändert. Hier wird dem Rechnung getragen, indem der farbige Hintergrund im % Zweifelsfall vergrößert wird. % \begin{macrocode} \tud@ifverlower{2.03}{% \ModifyLayer[% addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% 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% }{% \def\@tempc{\color{HKS41}}% \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% \ifx\@tempc\relax\else% \tud@ddc@check% \ifcase\@tempb\relax% \tud@ddc@foot=false \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% }% \else% \tud@ddc@foot!=false \@tempc\rule{\layerwidth}{\layerheight}% \fi% \fi% \fi% },% ]{tudheadings.foot.back}% }{}% % \end{macrocode} % Die zweite Ebene wird für die Ausgabe von Drittlogos und des \DDC-Logos sowie % freien Inhalten im Seitenfuß erstellt. Ab Version~v2.03 wird der Satzspiegel % so gewählt, dass das \DDC-Logo und andere Inhalten in den normalen Seitenfuß % passen. % \begin{macrocode} \DeclareNewLayer[% background,foot,% height=\dimexpr\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} % contents=\tud@head@bar@restore,% ]{tudheadings.last}% % \end{macrocode} % \end{layer}^^A tudheadings.last % Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile % zusammengesetzt. Als erstes wird der \pgs{headings}-Seitenstil definiert. % Dieser verwendet den TUD-Kopf und die Fußzeilenebenen des Seitenstils % \pgs{scrheadings}, welche zur Definition des Seitenstils verwendet werden. % Beim Aktivieren des Seitenstils wird außerdem \cs{tud@ps@init} ausgeführt. % Damit die Benutzerschnittstelle von \pkg{scrlayer-scrpage} für die Fußzeile % weiterhin durch den Anwender verwendet werden kann, werden wie erwähnt die % entsprechenden \pgs{scrheadings}-Ebenen verwendet. % \begin{macrocode} \DeclareNewPageStyleByLayers[% onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% ]{tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% tudheadings.head.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}% % \end{macrocode} % Für den \pgs{plain}-Seitenstil wird ebenso verfahren. Hier werden für die % Fußzeilenebenen des Seitenstils \pgs{plain.scrheadings} hinzugefügt. % \begin{macrocode} \DeclareNewPageStyleByLayers[% onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% ]{plain.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% tudheadings.head.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.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 % \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. 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 % 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} } \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 % \begin{macro}{\tud@ps@onbackground} % \changes{v2.03}{2015/02/14}{neu}^^A % \changes{v2.04}{2015/04/21}{Kopf- und Fußeinstellungen abhängig von der Farbe % des Seitenhintergrunds}^^A % \begin{macro}{\tud@head@logocolor} % \begin{macro}{\tud@head@fontcolor} % \changes{v2.04}{2015/05/18}{neu}^^A % \begin{macro}{\tud@foot@logocolor} % \changes{v2.03}{2015/02/15}{neu}^^A % \begin{macro}{\tud@foot@fontcolor} % \changes{v2.04}{2015/04/21}{neu}^^A % Diese Befehle werden bei der Initialiserung der Seitenstile beziehungsweise % zu Beginn der Ebenenausgabe aufgerufen. % \begin{macrocode} \newcommand*\tud@ps@onselect{% % \end{macrocode} % Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf % einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten % Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für % \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt. % Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile, % weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll % dennoch ermöglicht werden. % \begin{macrocode} \DeclarePageStyleAlias{plain}{plain.tudheadings}% \DeclarePageStyleAlias{headings}{tudheadings}% \def\sls@currentheadings{tudheadings}% \def\sls@currentplain{plain.tudheadings}% } % \end{macrocode} % Das Makro \cs{tud@head@logocolor} enthält die Farbe des Kopfes. Die Gestalt % des Querbalkens kann über die Option \opt{cdhead} geändert werden. Für Titel, % Teil und Kapitel gibt es speziell dazugehörige Optionen, womit das Aussehen % des Kopfes ggf. angepasst werden kann. Mit \cs{tud@foot@logocolor} kann % 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{% % \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% }{% % \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} % 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@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 % \begin{macro}{\ps@tudpage@empty} % \changes{v2.02}{2014/06/23}{entfernt}^^A % Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt. % \end{macro}^^A \ps@tudpage@empty % \end{macro}^^A \ps@tudpage@plain % \begin{macro}{\thispagestyle} % \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 \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@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]{% \tud@color{\tud@head@fontcolor}% \rule[\ht\strutbox]{#1}{\tud@dim@line}% } % \end{macrocode} % \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} \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} % \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} \newcommand*\tud@head@text@box{% % \end{macrocode} % Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben. % \begin{macrocode} \ifx\@faculty\@empty% \ClassWarningNoLine{\TUDClassName}{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. % \begin{macrocode} \@tempswafalse% \def\tud@head@text@first{}% \def\tud@head@text@second{}% \def\tud@head@text@buffer{}% \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% \tud@head@text@add{\tud@head@font@light}{\@department}% \tud@head@text@add{\tud@head@font@light}{\@institute}% \tud@head@text@add{\tud@head@font@light}{\@chair}% % \end{macrocode} % Sollte die zweite Textzeile zu lang sein, was bei kleinen Papierformaten % vorkommen kann, dann wird eine Warnung ausgegeben. % \begin{macrocode} \settowidth\@tempdima{\tud@head@text@second}% \ifdim\@tempdima>\textwidth\relax% \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% \hfuzz=\@tempdima% \fi% % \end{macrocode} % Es erfolgt die Ausgabe der Textzeile(n) mit Fakultät etc. über % \cs{tud@head@text@write} sowie einer möglichen Extrazeile. % \begin{macrocode} \vbox{% \linespread{0}\selectfont\offinterlineskip% % \end{macrocode} % Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes. % \begin{macrocode} \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% 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@text@write{\tud@head@font@light\@extraheadline}% \else% \newline\tud@head@text@write{\tud@head@text@second}% \ifx\@extraheadline\@empty\else% \newline\vbox{\tud@head@font@light\@extraheadline}% \fi% \fi% }% } % \end{macrocode} % \end{macro}^^A \tud@head@text@box % \begin{macro}{\tud@head@text@write} % \changes{v2.02}{2014/06/23}{Vertikaler Freiraum für Ober- und Unterlängen % mit \cs{vphantom} eingefügt}^^A % \changes{v2.02}{2014/12/04}{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% ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% } % \end{macrocode} % \end{macro}^^A \tud@head@text@write % \begin{macro}{\tud@head@text@wrn} % Warnung für den Fall, dass die Kopfinformationen breiter werden, als die % Textbreite, was bei besonders kleinen Papierformaten geschehen kann. % \begin{macrocode} \newcommand\tud@head@text@wrn[1]{% \ClassWarning{\TUDClassName}{% The given entries for the headline\MessageBreak% (faculty, institute etc.) are #1\MessageBreak% too wide for the textwidth% }% \global\let\tud@head@text@wrn\@gobble% } % \end{macrocode} % \end{macro}^^A \tud@head@text@wrn % \begin{macro}{\tud@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@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&option> % \fi % % \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 % \begin{option}{ddchead} % \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A % \begin{option}{ddcfoot} % \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A % Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil % \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den % Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls % überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß. % Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein % Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen % im Fuß ausgegeben. % \begin{macro}{\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 % 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{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% {gray}{4},{grey}{4},{HKS92}{4},{cdgray}{4},{cdgrey}{4},% {black}{5},{cdblack}{5},% {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},% {white}{7},{cdwhite}{7}% } % \end{macrocode} % \end{macro}^^A \tud@ddc@switch % \begin{macro}{\tud@ddc} % \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} \TUD@key{ddc}[true]{% % \end{macrocode} % 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% % \end{macrocode} % Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot} % aufgerufen, wird die automatische Auswahl des \DDC-Logos deaktiviert. % \begin{macrocode} \if@tud@ddc@internal% \@tud@ddc@autofalse% \else% % \end{macrocode} % Andernfalls wird die automatische Auswahl aktiviert und die beiden Optionen % \opt{ddchead} sowie \opt{ddcfoot} intern zurückgesetzt. % \begin{macrocode} \@tud@ddc@autotrue% \@tud@ddc@internaltrue% \TUDoptions{ddchead=false}% \TUDoptions{ddcfoot=false}% \@tud@ddc@internalfalse% \fi% % \end{macrocode} % Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden % in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter % führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der % Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}. % \begin{macrocode} \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% \fi% % \end{macrocode} % Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen, % um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden. % \begin{macrocode} \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } % \end{macrocode} % \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 % 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 Seitenumbruch im Kompatibilitätsmodus. % \begin{macrocode} \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% % \end{macrocode} % Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. % Wurde die Option durch den Anwender genutzt, werden die korrespondierenden % Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten % setzen der Logoboxen. % \begin{macrocode} \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@tud@ddc@internal\else% \@tud@ddc@internaltrue% \TUDoptions{ddcfoot=false}% \TUDoptions{ddc=false}% \@tud@ddc@internalfalse% \fi% \fi% % \end{macrocode} % Das Setzen des Seitenstils im Kompatibilitätsmodus. % \begin{macrocode} \tud@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 % 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]{% % \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@internal\else% \@tud@ddc@internaltrue% \TUDoptions{ddchead=false}% \TUDoptions{ddc=false}% \@tud@ddc@internalfalse% \fi% \fi% % \end{macrocode} % Das Setzen des Seitenstils im Kompatibilitätsmodus. % \begin{macrocode} \tud@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 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@auto% \ifdefvoid{\@headlogo}{% \let\@tempa\tud@ddc% \let\@tempb\z@% }{% \let\@tempa\z@% \let\@tempb\tud@ddc% }% \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} % \end{macro}^^A \tud@ddc@check % \end{option}^^A ddcfoot % \end{option}^^A ddchead % \end{option}^^A ddc % \begin{option}{extrabottommargin} % \begin{length}{\tud@dim@extrabottommargin} % Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur % möglich, wenn der Satzspiegel des \CDs verwendet wird. Kommt \pkg{typearea} % zum Einsatz, ist die Option wirkungslos. % \begin{macrocode} \newlength\tud@dim@extrabottommargin \TUD@key{extrabottommargin}{% \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \if@atdocument\tud@geometry@process\fi% \fi% } % \end{macrocode} % \end{length}^^A \tud@dim@extrabottommargin % \end{option}^^A extrabottommargin % % \iffalse % %<*class&body> % \fi % % \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 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} \tud@headlogo@set% \tud@footlogo@set% \global\@tud@mainlogo@setfalse% \fi% } % \end{macrocode} % \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} \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}{\@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 % 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{@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][]{% \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}{}% } % \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% } % \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}% }% \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% } % \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}% }% } % \end{macrocode} % 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 % \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 % Mit dem Befehl \cs{footlogo} kann eine kommasparierte Liste für Logos im % Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden. % \begin{macrocode} \newcommand*\footlogosep{\hfill} \newcommand*\@footlogo{} \newcommand*\@@footlogo{} \newcommand*\footlogo[2][]{% \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}{}% } % \end{macrocode} % \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} \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 % übergeben. Dies soll zum einen global für alle Dateien als auch individuell % für einzelne Logos möglich sein. Zu diesem Zweck wird die Schnittstelle für % den Anwender so gestaltet, dass individuelle Parameter mit einem Doppelpunkt % direkt an den Dateinamen angehangen werden können. % \begin{macrocode} \def\@tempa{}% \def\@tempb{}% \@tempswatrue% \def\do##1{% \if@tempswa% \def\@tempa{##1}% \@tempswafalse% \else% \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% \fi% }% \let\@tempc\relax% \DeclareListParser{\@tempc}{:}% \@tempc{#1}% % \end{macrocode} % In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. % \begin{macrocode} \preto\@@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} \appto\@@footlogo{\@tempb}% \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% % \end{macrocode} % Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch % vertikal zentriert. % \begin{macrocode} \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% The given `\string\footlogo{\@tempa}' is too large.% }% \endgroup% } % \end{macrocode} % \end{macro}^^A \if@tud@footlogo@cmd@set % \end{macro}^^A \tud@footlogo@cmd@set % \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*\@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% \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@footcontent@use % % \iffalse % %<*class&option> % \fi % % \begin{option}{cdhead} % \changes{v2.03}{2015/01/29}{neu}^^A % \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \begin{macro}{\tud@head@font} % \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\if@tud@head@font@locked} % \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\tud@head@bar} % \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 % \begin{macro}{\if@tud@head@widebar@locked} % \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 % (Institut, Fakultät etc.) geändert werden. Zusätzlich ist die Laufweite des % Querbalkens bzw. die Farbe einstellbar. % \begin{macrocode} \cs@lock{tud@head@font}{0} \cs@lock{tud@head@bar}{0} \bool@lock{@tud@head@widebar} \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@numkey@bool,% {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% {heavy}{2},{heavyfont}{2},% {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},% {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},% {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},% {color}{6},{colour}{6},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% {paperwidth}{8},{wide}{8},{widehead}{8}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \cs@set@lock{tud@head@font}{0}% \or% true \cs@set@lock{tud@head@font}{1}% \or% heavy \cs@set@lock{tud@head@font}{2}% \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% paperwidth \bool@set@lock{@tud@head@widebar}{true}% \fi% \fi% } % \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 % \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 % \begin{macro}{\tud@@ps@store} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@ps@restore} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@@ps@restore} % \changes{v2.02}{2014/06/23}{neu}^^A % Dieser Seitenstil mit dem Kolumnentitel im Fuß wurde bereits für die alte % \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten % werden. Zusätzlich kann mit dieser Option ggf. ein farbiger Hintergrund in % der Fußzeile aktiviert werden. % % Einige Einstellungen sind abhängig vom Paket \pkg{scrlayer-scrpage}, welches % unter Umständen nicht geladen wird. Mit 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} \TUD@AfterPackage@Set{scrlayer-scrpage} \newif\if@tud@foot@colored \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},% {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% {color}{3},{colour}{3},% {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false % \end{macrocode} % Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore} % wiederhergestellt. Dies wird allerdings frühestens nach dem Laden von % \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% % \end{macrocode} % Die ursprünglichen Kopf- und Fußzeilen werden mit dem Makro \cs{tud@ps@store} % gesichert, um gegebenenfalls zurückschalten zu können. Anschließend werden % diese mit dem neuen Stil überschrieben. Dies wird allerdings frühestens nach % dem Laden von \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} \or% true \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% \tud@font@koma@set{pageheadfoot}{\upshape}% \clearpairofpagestyles% \ofoot[\pagemark]{% \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi% {\footnotesize\headmark}% \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% }% \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% % \end{macrocode} % Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden. % \begin{macrocode} \or% nocolor \@tud@foot@coloredfalse% \or% color \@tud@foot@coloredtrue% \fi% % \end{macrocode} % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. % \begin{macrocode} \else% \TUDoptions{extrabottommargin=#1}% \fi% } % \end{macrocode} % Die nächsten beiden Befehle dienen zum Sichern der Kopf- und Fußzeilen\dots % \begin{macrocode} \newcommand*\tud@ps@store[1]{% \tud@@ps@store{#1}{odd}{left}{head}% \tud@@ps@store{#1}{odd}{right}{head}% \tud@@ps@store{#1}{odd}{middle}{head}% \tud@@ps@store{#1}{even}{left}{head}% \tud@@ps@store{#1}{even}{right}{head}% \tud@@ps@store{#1}{even}{middle}{head}% \tud@@ps@store{#1}{odd}{left}{foot}% \tud@@ps@store{#1}{odd}{right}{foot}% \tud@@ps@store{#1}{odd}{middle}{foot}% \tud@@ps@store{#1}{even}{left}{foot}% \tud@@ps@store{#1}{even}{right}{foot}% \tud@@ps@store{#1}{even}{middle}{foot}% } % \end{macrocode} % \dots, wobei hierfür auf die internen Befehle von \pkg{scrlayer-scrpage} % zurückgegriffen werden muss. % \begin{macrocode} \newcommand*\tud@@ps@store[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}% }% } \newcommand*\tud@ps@restore[1]{% \tud@@ps@restore{#1}{odd}{left}{head}% \tud@@ps@restore{#1}{odd}{right}{head}% \tud@@ps@restore{#1}{odd}{middle}{head}% \tud@@ps@restore{#1}{even}{left}{head}% \tud@@ps@restore{#1}{even}{right}{head}% \tud@@ps@restore{#1}{even}{middle}{head}% \tud@@ps@restore{#1}{odd}{left}{foot}% \tud@@ps@restore{#1}{odd}{right}{foot}% \tud@@ps@restore{#1}{odd}{middle}{foot}% \tud@@ps@restore{#1}{even}{left}{foot}% \tud@@ps@restore{#1}{even}{right}{foot}% \tud@@ps@restore{#1}{even}{middle}{foot}% } \newcommand*\tud@@ps@restore[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% \csundef{@@tud@ps@#1@#2@#3@#4}% }{}% } % \end{macrocode} % \end{macro}^^A \tud@@ps@restore % \end{macro}^^A \tud@ps@restore % \end{macro}^^A \tud@@ps@store % \end{macro}^^A \tud@ps@store % \end{macro}^^A \if@tud@foot@colored % \end{option}^^A cdfoot % \begin{macro}{\tud@ps@headings} % \changes{v2.02}{2014/06/23}{entfernt}^^A % \begin{macro}{\tud@ps@myheadings} % \changes{v2.02}{2014/06/23}{entfernt}^^A % \begin{macro}{\tud@ps@plain} % \changes{v2.02}{2014/06/23}{entfernt}^^A % Diese Befehle wurden bei der Umstellung auf das Paket~\pkg{scrlayer-scrpage} % mit der \TUDScript-Version~v2.02 allesamt entfernt. Die Funktionalität wird % seitdem durch die \pgs{tudheadings}-Seitenstile bereitgestellt. % \end{macro}^^A \tud@ps@plain % \end{macro}^^A \tud@ps@myheadings % \end{macro}^^A \tud@ps@headings % \begin{option}{cdgeometry} % \begin{macro}{\tud@geometry} % \begin{macro}{\if@tud@geometry@locked} % Für das \CD sind standardmäßig feste Seitenränder vorgegeben. Diese sind % jedoch leider nur aus gestalterischen Motiven und ohne die Beachtung % typographischer Belange gewählt und festgelegt worden. Beispielweise ist ein % doppelseitiger Satz einer Abschlussarbeit im \CD nur mit einem grauenhaften % Satzspiegel möglich. Um dem Anwender einen gewissen Spielraum zu geben, wird % alternativ zum asymmetrischen (\opt{geomery=on}) ein symmetrischer % Satzspiegel bereitgestellt (\opt{geomery=normal}), welcher bei einseitigem % Satz zentriert ist und bei zweiseitigem Satz den inneren Rand kleiner setzt % als den äußeren. Des Weiteren kann die Satzspiegelberechnung auch direkt % durch \pkg{typearea} aus dem \KOMAScript"=Paket erfolgen % (\opt{geomery=no}). Mit \cs{tud@geometry@process} werden alle getroffenen % Satzspiegeloptionen umgesetzt und nachfolgend definiert. % \begin{macrocode} \newcommand*\tud@geometry{0} \TUD@key@lock{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&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 \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 % \begin{length}{\tud@ta@footskip} % Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten % Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom % Satzspiegel abhängigen Seitenlayouts zu erstelen. % \begin{macrocode} \newlength\tud@ta@textheight \newlength\tud@ta@topmargin \newlength\tud@ta@headheight \newlength\tud@ta@headsep \newlength\tud@ta@footheight \newlength\tud@ta@footskip % \end{macrocode} % \end{length}^^A \tud@ta@footskip % \end{length}^^A \tud@ta@footheight % \end{length}^^A \tud@ta@headsep % \end{length}^^A \tud@ta@headheight % \end{length}^^A \tud@ta@topmargin % \end{length}^^A \tud@ta@textheight % \begin{length}{\tud@ta@headdiff} % \begin{length}{\tud@ta@footdiff} % \changes{v2.02}{2014/06/23}{entfernt}^^A % Eine Länge für den Ausgleich zwischen normalem und benötigtem Satzspiegel für % das spezielle Layout des \CDs. Die Differenz zwischen den unterschiedlichen % Kopfhöhen der Satzspiegelvarianten wird bei der Ausführung von % \cs{tud@geometry@process} berechnet und in \cs{tud@ta@headdiff} gespeichert. % Dabei muss unterschieden werden, ober der Satzspiegel genutzt wird, der durch % das \CD vorgegeben ist oder der durch \pkg{typearea} berechnete. Die Länge % \cs{tud@ta@footdiff} wurde mit der \TUDScript-Version~v2.02 entfernt. % \begin{macrocode} \newlength\tud@ta@headdiff % \end{macrocode} % \end{length}^^A \tud@ta@footdiff % \end{length}^^A \tud@ta@headdiff % \begin{macro}{\tud@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 % Satzspiegels wird das Paket \pkg{geometry} verwendet. Bei der entsprechenden % Option (\opt{geometry=no}) wird jedoch der von \pkg{typearea} berechnete % Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich, % unabhängig vom genutzten Paket\footnote{\pkg{typearea} oder \pkg{geometry}} % zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern. % \begin{macrocode} \newcommand*\tud@AfterChangingArea{% \setlength\tud@ta@textheight{\textheight}% \setlength\tud@ta@topmargin{\topmargin}% \setlength\tud@ta@headheight{\headheight}% \setlength\tud@ta@headsep{\headsep}% \ifcsvoid{ta@fh}{% \setlength\tud@ta@footheight{\footheight}% }{% \setlength\tud@ta@footheight{\ta@fh}% }% \setlength\tud@ta@footskip{\footskip}% \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 % erzwingen. % \begin{macrocode} \gdef\tud@currentgeometry{}% \expandafter\pagestyle\expandafter{\currentpagestyle}% } % \end{macrocode} % \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{% \tud@ifsacrop{}{% % \end{macrocode} % 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} \AfterCalculatingTypearea{\tud@AfterChangingArea}% \AfterSettingArea{\tud@AfterChangingArea}% % \AfterRestoreareas{\tud@AfterChangingArea}% % \end{macrocode} % Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch % \cs{tud@BeforeSelectAnyPageStyle} aktiviert bzw. deaktiviert wird. % \begin{macrocode} \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% \recalctypearea% }% } % \end{macrocode} % \begin{environment}{tudpage} % \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}^^A % \begin{macro}{\tud@ps} % \begin{macro}{\tud@ps@select} % \changes{v2.02}{2014/07/19}{neu}^^A % \begin{macro}{\tud@currentpagestyle} % \begin{macro}{\tud@currentpagestyle@set} % \changes{v2.02}{2014/07/18}{neu}^^A % \begin{macro}{\tud@currentpagestyle@reset} % \changes{v2.02}{2014/07/18}{neu}^^A % \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}. % Dabei wird mit \cs{loadgeometry} ein Seitenumbruch erzwungen und der % benötigte Satzspiegel geladen. % % Die Befehle \cs{tud@currentpagestyle@set} und \cs{tud@currentpagestyle@reset} % sind für die Sicherung und Wiederherstellung des vor der Umgebung geladenen % Seitenstils verantwortlich. % % Zu Beginn der Umgebung werden die weiter unten beschriebenen Optionen für % diese Umgebung mit \cs{TUD@parameter@set} ausgeführt. Nach dem Beenden der % Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout % wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner % Wert ohne Schlüssel angegben werden. % \begin{macrocode} \newcommand*\tud@ps{tudheadings} \newcommand*\tud@ps@select{% \expandafter\pagestyle\expandafter{\tud@ps}% \ifstr{\GetRealPageStyle{\tud@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% %<*book|report> \renewcommand*\partpagestyle{empty}% \renewcommand*\chapterpagestyle{empty}% % \renewcommand*\indexpagestyle{empty}% }{}% \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% %<*book|report> \renewcommand*\partpagestyle{empty.tudheadings}% \renewcommand*\chapterpagestyle{empty.tudheadings}% % \renewcommand*\indexpagestyle{empty.tudheadings}% }{}% } \newcommand*\tud@currentpagestyle{} \newcommand*\tud@currentpagestyle@set{% \ifdefvoid{\tud@currentpagestyle}{% \xdef\tud@currentpagestyle{\currentpagestyle}% }{}% } \newcommand*\tud@currentpagestyle@reset{% \ifdefvoid{\tud@currentpagestyle}{}{% \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% \let\tud@currentpagestyle\relax% }% } \NewEnviron{tudpage}[1][]{% % \end{macrocode} % Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird % dieser im Hilfsmakro \cs{tud@currentpagestyle} gespeichert. % \begin{macrocode} \tud@currentpagestyle@set% \clearpage% \def\tud@ps{tudheadings}% \TUD@parameter@set{tudpage}{#1}% \tud@ps@select% \tud@multicols@check% % \end{macrocode} % Falls das \pkg{multicol}-Paket geladen ist und eine Spaltenanzahl angegeben % ist, wird die entsprechende Umgebung gesartet, mit \cs{BODY} der Inhalt der % \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die % \env{multicols}-Umgebung beendet. % \begin{macrocode} \ifnum\tud@multicols>\@ne\relax% \begin{multicols}{\tud@multicols}% \fi% \BODY% \ifnum\tud@multicols>\@ne\relax% \end{multicols}% \fi% % \end{macrocode} % Am Ende der Umgebung wird der vorhergehende Seitenstil zurückgesetzt und der % dazugehörige Satzspiegel geladen. Dazu wird die Ausführung das Hilfsmakro % \cs{@tempa} auf das Beenden der Umgebung mit \cs{aftergroup} verzögert. % \begin{macrocode} }[% \aftergroup\tud@currentpagestyle@reset% \clearpage% ] % \end{macrocode} % \end{macro}^^A \tud@currentpagestyle@reset % \end{macro}^^A \tud@currentpagestyle@set % \end{macro}^^A \tud@currentpagestyle % \end{macro}^^A \tud@ps@select % \end{macro}^^A \tud@ps % \end{environment}^^A tudpage % \begin{macro}{\TUD@parameter@define@ps} % Im Folgenden werden die einzelnen Parameter für die \env{tudpage}"=Umgebung % definiert. Die Parameter für Kopf- und Fußzeile werden nicht nur für die % \env{tudpage}-Umgebung sondern auch noch für Titel und Umschlagseite % verwendet, weshalb deren Definitionen zur einfacheren Wiederverwendung in das % Makro \cs{TUD@parameter@define@ps} ausgelagert werden. % \begin{macrocode} \newcommand*\TUD@parameter@define@ps[1]{% % \end{macrocode} % \begin{parameter}{cdfont} % Die Option \opt{cdfont} bestimmt, ob die Schriften des \CDs oder aber die % standardmäßigen Serifenlosen für die Auszeichnugen in der Kopfzeile und % Serifen im Inhalt verwendet werden. % \begin{macrocode} \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% % \end{macrocode} % \end{parameter}^^A cdfont % \begin{parameter}{cdhead} % \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}^^A % Mit dem Parameter \val{cdhead} kann die Verwendung der Schriften des \CDs % aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. Die % Breite des Querbalkens kann über diesen Parameter ebenfalls geändert werden. % \begin{macrocode} \TUD@parameter@define{cdhead}[true]{\TUDoption{cdhead}{#1}}% % \end{macrocode} % \end{parameter}^^A cdhead % \begin{parameter}{cdfoot} % \changes{v2.03}{2015/01/30}{neu}^^A % Über \val{cdfoot} kann gg. die Hintergrundfarbe sowie die Standardfußzeile % des \CDs aktiviert werden. % \begin{macrocode} \TUD@parameter@define{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% % \end{macrocode} % \end{parameter}^^A cdfoot % \begin{parameter}{headlogo} % \changes{v2.03}{2015/01/28}{neu}^^A % \begin{parameter}{footlogo} % \changes{v2.03}{2015/01/28}{neu}^^A % Das Zweit- und die Drittlogos können ebenfalls lokal geändert werden. % \begin{macrocode} \TUD@parameter@define{headlogo}{\headlogo{#1}}% \TUD@parameter@define{footlogo}{\footlogo{#1}}% % \end{macrocode} % \end{parameter}^^A footlogo % \end{parameter}^^A headlogo % \begin{parameter}{ddc} % \changes{v2.02}{2014/08/16}{neu}^^A % \begin{parameter}{ddchead} % \begin{parameter}{ddcfoot} % Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden. % \begin{macrocode} \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}% \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}% \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% % \end{macrocode} % \end{parameter}^^A ddcfoot % \end{parameter}^^A ddchead % \end{parameter}^^A ddc % \begin{parameter}{cdfonts} % \begin{parameter}{tudfonts} % \begin{parameter}{barfont} % \begin{parameter}{widehead} % \begin{parameter}{tudfoot} % \begin{parameter}{logo} % Für die Kompatibilität werden auch veraltete Parameter bereitgestellt. % \begin{macrocode} \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% \TUD@parameter@define{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}% \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% \TUD@parameter@define{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% \TUD@parameter@let{logo}{headlogo}% % \end{macrocode} % \end{parameter}^^A logo % \end{parameter}^^A tudfoot % \end{parameter}^^A widehead % \end{parameter}^^A barfont % \end{parameter}^^A tudfonts % \end{parameter}^^A cdfonts % Damit sind alle notwendigen Parameter für die Kopf- und Fußzeile der Seiten % im Stil \pgs{tudheadings} definiert. % \begin{macrocode} } % \end{macrocode} % \end{macro}^^A \TUD@parameter@define@ps % Mit \cs{TUD@parameter}\marg{Family}\marg{\dots} wird die Parameterfamilie % festgelegt und anschließend die Definitionen getätigt. % \begin{macrocode} \TUD@parameter{tudpage}{% % \end{macrocode} % \begin{parameter}{language} % Mit diesem Parameter kann die Sprache in der Umgebung umgeschaltet werden. Die % Sprache kann auch ohne den entsprechenden Schlüssel direkt als Parameter % angegeben werden. % \begin{macrocode} \TUD@parameter@define{language}{\selectlanguage{#1}}% % \end{macrocode} % \end{parameter} ^^A language % \begin{parameter}{columns} % Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für % mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die % Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter % angegeben werden. % \begin{macrocode} \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% % \end{macrocode} % \end{parameter} ^^A columns % \begin{parameter}{color} % \changes{v2.03}{2015/01/28}{entfernt}^^A % \begin{parameter}{colour} % \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{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}{% \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}}{% \TUD@parameter@error{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% }}}% }% }% % \end{macrocode} % \end{parameter}^^A pagestyle % \begin{parameter}{head} % \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option % \opt{ddchead} übernommen}^^A % \begin{parameter}{foot} % \changes{v2.02}{2014/06/30}{entfernt, 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 % Makro \cs{headlogo} genutzt werden oder aber die gleichnamigen Parameter der % Umgebung. % \end{parameter}^^A head % \end{parameter}^^A foot % Hier werden die Parameter für Kopf- und Fußzeile tatsächlich defniert. % \begin{macrocode} \TUD@parameter@define@ps{#1}% % \end{macrocode} % Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben % wird, erfolgt eine Sonderbehandlung durch \cs{TUD@parameter@defaulthandler}, % bei dererst auf eine Zahl geprüft wird und anschießend versucht wird, das % Argument als Sprache zu setzen. Nach der Definition aller Parameter wird der % Befehl \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie % beendet. % \begin{macrocode} \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% } % \end{macrocode} % % \iffalse % % \fi % % \Finale % \endinput