diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx | 3162 |
1 files changed, 1268 insertions, 1894 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx index d15a516c473..38966c8eb42 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx @@ -1,4 +1,4 @@ -% \CheckSum{2473} +% \CheckSum{2114} % \iffalse meta-comment % % ============================================================================ @@ -18,13 +18,13 @@ % % ---------------------------------------------------------------------------- % -% 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. +% 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. % % ============================================================================ % @@ -51,15 +51,17 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-pagestyle.dtx}[% - 2015/07/24 v2.04a TUD-KOMA-Script (pagestyle)% + 2016/07/21 v2.05 TUD-KOMA-Script (pagestyle)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman]{tudscrdoc} +\documentclass[english,ngerman,xindy]{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-} +\usepackage{microtype} +\usepackage{bookmark} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-pagestyle.dtx} @@ -72,318 +74,51 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A -% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A +% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A +% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A +% \changes{v2.05}{2015/07/06}{Seitenstil für Poster}^^A % % \section{Der Seitenstil des \CDs} % -% 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. +% Es wird der Seitenstil des \CD der \TnUD mit Logo und dem charakteristischen +% Querbalken im Kopfbereich mithilfe des Paketes \pkg{scrlayer-scrpage} +% definiert. +% \ToDo{Abhängigkeiten zwischen Satzspiegel und Seitenstilen beseitigen}[v2.07] % -% Als erstes werden die Standardmaße für die Seitenränder im \CD definiert, -% danach speziell für die \env{tudpage}"=Umgebung. +% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % % \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 +% erzeugt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von % verschiedenen Befehlen wie beispielsweise von\cs{maketitle} oder \cs{part} % bzw. \cs{addpart} genutzt werden. Zum anderen kann der Anwender selbst diese % entweder direkt über die Wahl des Seitenstils oder aber mit der -% \env{tudpage}"=Umgebung nutzen. +% \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{% +\if@tud@x@standalone@crop \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% -}{% +\else \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% -} +\fi % \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. +% 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} -\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% - }% -} +\AfterPackage{scrlayer-scrpage}{% % \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} @@ -396,67 +131,63 @@ % \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,% + addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,% + addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,% + voffset=\tud@len@logoy,% + addvoffset=\tud@len@layoutvoffset,% contents={% % \end{macrocode} % Vor der Ausgabe der Logoboxen werden diese im Bedarfsfall neu gesetzt. % \begin{macrocode} \tud@mainlogo@set% \tud@headlogo@option@set% - \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 +% \changes{v2.05}{2015/07/14}{Bugfix verschobener Balken}^^A % Außerdem gibt es eine Variante ohne Querbalken-Outline. Stattdessen werden % der Querbalken und der darüberliegende Kopf farbig abgesetzt. % \begin{macrocode} \DeclareNewLayer[% background,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,% + addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,% contents={% - \ifnum\tud@head@bar>\tw@\relax% cdhead=color + \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% + \rule{\layerwidth}{\layerheight}% \fi% },% ]{tudheadings.head.back}% \DeclareNewLayer[% background,% - voffset=\tud@dim@topmargin,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\tud@len@barheight,% + voffset=\tud@len@topmargin,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color + \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color \color{HKS41!60}% - \rule{\layerwidth}{\tud@dim@barheight}% + \setlength{\@tempdima}{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% + \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% + \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% \fi% },% ]{tudheadings.head.bar}% @@ -469,18 +200,23 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% + voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% + contents={% + \tud@head@font@set% + \tud@head@text@set% + \tud@head@text@box% + },% ]{tudheadings.head.text}% % \end{macrocode} % \end{layer}^^A tudheadings.head.text -% \begin{layer}{tudheadings.head.upperline} +% \begin{layer}{tudheadings.head.upline} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{layer}{tudheadings.head.lowerline} +% \begin{layer}{tudheadings.head.lowline} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{layer}{tudheadings.head.upperwideline} +% \begin{layer}{tudheadings.head.uplinewide} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{layer}{tudheadings.head.lowerwideline} +% \begin{layer}{tudheadings.head.lowlinewide} % \changes{v2.02}{2014/06/23}{neu}^^A % Die Ebenen für obere und untere Linie des Querbalkens sowohl in der normalen % Version, welche den Textbereich überspannt als auch in der Variante über die @@ -490,47 +226,67 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.upperline}% + ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.lowerline}% + ]{tudheadings.head.lowline}% \DeclareNewLayer[% background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.upperwideline}% + ]{tudheadings.head.uplinewide}% \DeclareNewLayer[% background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% + -.5\tud@len@line\relax,% + addvoffset=\tud@len@layoutvoffset,% contents={% - \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor - \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% \fi% },% - ]{tudheadings.head.lowerwideline}% + ]{tudheadings.head.lowlinewide}% % \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 +% \end{layer}^^A tudheadings.head.lowlinewide +% \end{layer}^^A tudheadings.head.uplinewide +% \end{layer}^^A tudheadings.head.lowline +% \end{layer}^^A tudheadings.head.upline +% \begin{layer}{tudheadings.head.date} +% \changes{v2.05}{2016/05/27}{neu}^^A +% Optionales Datum rechts oberhalb des Textbereiches. +% \begin{macrocode} + \DeclareNewLayer[% + foreground,headsep,% + addvoffset=.5\tud@len@headsep,% + height=\baselineskip,% + contents={\if@tud@head@date\hfill\tud@date@print\fi},% + ]{tudheadings.head.date}% +% \end{macrocode} +% \end{layer}^^A tudheadings.head.date % \begin{layer}{tudheadings.foot.back} % \changes{v2.03}{2015/02/15}{neu}^^A % \begin{layer}{tudheadings.foot.logo} @@ -539,24 +295,28 @@ % \changes{v2.03}{2015/02/15}{überarbeitetet}^^A % \begin{layer}{tudheadings.foot.content} % \changes{v2.04}{2015/04/21}{neu}^^A +% \changes{v2.05}{2015/07/06}{Bugfix für Kompatibilitätsmodus}^^A % Die folgenden Ebenen dienen für die Ausgabe des Fußbereiches. Dieser kann mit % einem farbigen Hintergrund und zusätzlichen Logos (\cs{footlogo}) sowie frei -% wählbare Inhalte ein- oder zweispaltig mit \cs{footcontent} erstellt werden. +% 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,% + width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% + hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,% addvoffset=-\dp\strutbox,% - 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 + \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=barcolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=color \def\@tempc{\color{HKS41}}% @@ -576,14 +336,14 @@ % geändert. Hier wird dem Rechnung getragen, indem der farbige Hintergrund im % Zweifelsfall vergrößert wird. % \begin{macrocode} - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% \ifdefvoid{\tud@pagecolor}{% - \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=color \def\@tempc{\color{HKS41}}% @@ -594,14 +354,14 @@ }% \ifx\@tempc\relax\else% \tud@ddc@check% - \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifcase\@tempb\relax% \tud@ddc@foot@num=false \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% }% }% - \else% \tud@ddc@foot!=false + \else% \tud@ddc@foot@num!=false \@tempc\rule{\layerwidth}{\layerheight}% \fi% \fi% @@ -617,7 +377,8 @@ % \begin{macrocode} \DeclareNewLayer[% background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% + height=\dimexpr\tud@len@layoutheight-\layeryoffset% + +\tud@len@layoutvoffset\relax,% contents={% % \end{macrocode} % Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, @@ -625,29 +386,41 @@ % 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% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% \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. +% Im Bedarfsfall werden die Boxen vor der Ausgabe durch die einzelnen +% \cs{\dots{}@use}-Befehle neu gesetzt. Danach erfolgt die Ausgabe, wobei die +% Boxen übereinander gelegt werden. % \begin{macrocode} - \tud@footlogo@option@set% - \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@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}{% + \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + contents={% + \TUD@len@deprecated[% + \global\@tud@footlogo@option@settrue% + ]{footlogoheight}% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot@num=false + \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}% + \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax% + \fi% + \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% + \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + },% ]{tudheadings.foot.content}% }{}% % \end{macrocode} @@ -688,10 +461,11 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% @@ -701,7 +475,6 @@ 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} @@ -719,10 +492,11 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% @@ -732,7 +506,6 @@ 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}% @@ -749,15 +522,15 @@ tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% + tudheadings.head.upline,% + tudheadings.head.lowline,% + tudheadings.head.uplinewide,% + tudheadings.head.lowlinewide,% + tudheadings.head.date,% 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}% @@ -766,20 +539,22 @@ % \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. +% \cs{tud@layout@\meta{Typ}@num} optionsabhängig für Titel-, Teile- sowie +% Kapitelseiten gesetzt. % \begin{macrocode} - \newcommand*\tud@pagecolor{}% \DeclareNewLayer[% - background,page,% + background,% + area=% + {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}% + {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}% + {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}% + ,% contents={% \ifdefvoid{\tud@pagecolor}{}{% \color{\tud@pagecolor}% @@ -789,26 +564,28 @@ ]{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. -% +% Damit wurden alle Ebenen und die darauf aufbauenden Seitenstile deklariert. +% \end{pagestyle}^^A empty.tudheadings +% \end{pagestyle}^^A plain.tudheadings +% \end{pagestyle}^^A tudheadings +% \begin{macrocode} +} +\listadd\tud@ps@list{tudheadings} +\listadd\tud@ps@list{plain.tudheadings} +\listadd\tud@ps@list{empty.tudheadings} +% \end{macrocode} % Mit der Nutzung von \pkg{scrlayer-scrpage} ist die parallele Verwendung des % Paketes \pkg{fancyhdr} nicht möglich. % \begin{macrocode} -} \PreventPackageFromLoading[% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% 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} @@ -854,38 +631,42 @@ \newcommand*\tud@foot@fontcolor{} \newcommand*\tud@ps@onbackground{% % \end{macrocode} -% Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe. +% Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe für den +% Kopf\dots % \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{}% + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@head@logocolor{black}% + \renewcommand*\tud@head@fontcolor{}% \or% cdhead=litecolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% \or% cdhead=barcolor - \def\tud@head@logocolor{HKS41}% - \def\tud@head@fontcolor{white}% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{white}% + \or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \fi% +% \end{macrocode} +% \dots und den Fuß. +% \begin{macrocode} + \ifcase\tud@head@bar@num\relax% cdhead=nocolor + \renewcommand*\tud@foot@logocolor{black}% + \renewcommand*\tud@foot@fontcolor{}% \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% - \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use a colored foot together\MessageBreak% + with a non-colored head (`cdhead=nocolor')% + }% \fi% - \or% cdhead=color - \def\tud@head@logocolor{white}% - \def\tud@head@fontcolor{white}% + \else% cdhead=*color \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% \fi% }{% @@ -894,31 +675,40 @@ % 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}% + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% +% \end{macrocode} +% Die Farbe für die Schrift im Fuß wird für Poster immer weiß gesetzt, falls +% über die Option \opt{backgroundcolor} für den Seitenhintergrund die primäre +% Hausfarbe genutzt wird. +% \begin{macrocode} +%<*book|report|article> \if@tud@foot@colored% - \def\tud@foot@fontcolor{white}% +%</book|report|article> + \renewcommand*\tud@foot@fontcolor{white}% +%<*book|report|article> \else% - \def\tud@foot@fontcolor{HKS41!30}% + \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% +%</book|report|article> \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}% + \renewcommand*\tud@head@logocolor{HKS41}% + \renewcommand*\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color + \renewcommand*\tud@head@logocolor{white}% + \renewcommand*\tud@head@fontcolor{white}% \fi% \if@tud@foot@colored% - \def\tud@foot@logocolor{white}% - \def\tud@foot@fontcolor{white}% + \renewcommand*\tud@foot@logocolor{white}% + \renewcommand*\tud@foot@fontcolor{white}% \else% - \def\tud@foot@logocolor{HKS41}% - \def\tud@foot@fontcolor{HKS41}% + \renewcommand*\tud@foot@logocolor{HKS41}% + \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% \bool@std@lock{@tud@head@widebar}{true}% }% @@ -928,8 +718,8 @@ % 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}{}% + \let\tud@len@line\tud@len@thinline% + \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } % \end{macrocode} @@ -939,101 +729,271 @@ % \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}{\pagestyle} +% \changes{v2.04}{2015/06/18}{Aktivierung der Seitenstile \pgs{tudheadings} vor +% \pkg{scrlayer-scrpage} möglich}^^A +% \begin{macro}{\tud@pagestyle} +% \changes{v2.04}{2015/06/18}{neu} +% Für den Fall, dass das Paket \pkg{scrlayer-scrpage} nicht geladen wird und +% dennoch das Makro \cs{currentpagestyle} wie erwartet definiert ist, wird der +% originale Befehl etwas angepasst. +% \begin{macrocode} +\newcommand*\tud@pagestyle{} +\let\tud@pagestyle\pagestyle +\pretocmd{\tud@pagestyle}{% + \tud@BeforeSelectAnyPageStyle{#1}% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}} +% \end{macrocode} +% Damit die neuen Seitenstile auch vor dem Laden von \pkg{scrlayer-scrpage} +% bereits durch den Anwender ausgewählt werden können, wird \cs{pagestyle} +% temporär zurechtgebogen. Die Definition des Makros wird gesichert und direkt +% vor dem Laden des Paketes wiederhergestellt. Damit werden die Seitenstile +% erst aktiviert, nachdem diese auch tatsächlich erstellt wurden. +% \begin{macrocode} +\tud@cmd@store{pagestyle} +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \undef\tud@pagestyle% +} +% \end{macrocode} +% \end{macro}^^A \tud@pagestyle +% \end{macro}^^A \pagestyle +% \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 für diesen Fall einige +% notwendige Makros definiert. +% \begin{macrocode} +\TUD@UnwindPackage{scrlayer-scrpage}{% + \ifcsundef{if@chapter}{% + \newif\if@chapter% + \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% + \cslet{ps@tudheadings}{\ps@headings}% + \cslet{ps@plain.tudheadings}{\ps@plain}% + \cslet{ps@empty.tudheadings}{\ps@empty}% + \providecommand*\currentpagestyle{plain}% + \providecommand*\BeforeSelectAnyPageStyle[1]{}% + \providecommand*\GetRealPageStyle[1]{#1}% +% \end{macrocode} +% Außerdem wird die angepasste Definition von \cs{pagestyle} verwendet. +% \begin{macrocode} + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% +% \end{macrocode} +% Das erstellen des Satzsiegels erfolgt normalerweise nach dem Paket. +% \begin{macrocode} + \tud@cdgeometry@init% +} +% \end{macrocode} +% \end{macro}^^A \GetRealPageStyle +% \end{macro}^^A \BeforeSelectAnyPageStyle +% \end{macro}^^A \currentpagestyle +% \end{macro}^^A \ps@empty.tudheadings +% \end{macro}^^A \ps@plain.tudheadings +% \end{macro}^^A \ps@tudheadings % \begin{macro}{\thispagestyle} % \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}^^A +% Wird der Befehl \cs{thispagestyle} verwendet, muss dafür Sorge getragen +% werden, dass kein Alias-Seitenstil expandiert wird. % \begin{macrocode} \patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% - \xdef\@specialstyle{\GetRealPageStyle{#1}} + \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@font@set} +% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}^^A +% \changes{v2.03}{2015/01/30}{Bugfix für die Änderung von \cs{spaceskip} durch +% das Paket \pkg{ragged2e}}^^A +% \begin{macro}{\tud@head@fontsize} +% \begin{macro}{\tud@head@font@light} +% \begin{macro}{\tud@head@font@bold} +% \begin{macro}{\tud@head@font@@bold} +% \changes{v2.05}{2016/04/17}{neu}^^A +% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber +% in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten +% sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die +% Schrifthöhe ist durch das \CD unabhängig von der gewählten Schriftgröße im +% Dokument vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und +% in \cs{tud@head@fontsize} gespeichert. Das Makro \cs{tud@head@font@@bold} +% wird verwendet, um die Einstellung der fetten Schriften ohne die fixierte +% Schriftgröße nutzen zu können. +% \begin{macrocode} +\newcommand*\tud@head@fontsize{} +\newcommand*\tud@head@font@light{} +\newcommand*\tud@head@font@bold{} +\newcommand*\tud@head@font@@bold{} +\newcommand*\tud@head@font@set{% +% \end{macrocode} +% Die Option \opt{cdhead} wird ausgewertet. Sollte diese inkompatibel gesetzt +% sein, wird eine Warnung ausgegeben. +% \begin{macrocode} + \ifcase\tud@head@font@num\relax% false + \ifnum\tud@cdfont@num>\z@\relax% true/heavy + \if@tud@head@font@set% + \ClassWarning{\TUD@Class@Name}{% + It isn't possible to use `cdhead=false'\MessageBreak% + together with `cdfont=true'% + }% + \fi% + \TUDoptions{cdhead=true}% + \fi% + \fi% +% \end{macrocode} +% Die Schriften für den Kopf im \CD werden nachfolgend definiert. Abhängig von +% \cs{tud@cdfont@num} werden entweder die Schriften des \CDs oder aber die +% serifenlose Standardschrift für die Kopfzeile verwendet. Die Rückfallebene: +% \begin{macrocode} + \if@tud@head@font@set% + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}% + }% +% \end{macrocode} +% Und jetzt die eigentlichen Schriften im \CD. +% \begin{macrocode} + \ifcase\tud@head@font@num\relax\else% true/heavy + \if@tud@univers% + \ifcase\tud@head@font@num\relax\or% true + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{l}{n}{\tud@head@fontsize}% + \or% heavy + \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% + {\tud@univers}{m}{n}{\tud@head@fontsize}% + \fi% + \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% + {\tud@univers}{b}{n}{\tud@head@fontsize}% + \protected\gdef\tud@head@font@@bold{% + \usefont{\encodingdefault}{\tud@univers}{b}{n}% + }% + \fi% + \fi% + \global\@tud@head@font@setfalse% + \global\@tud@head@text@settrue% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@font@@bold +% \end{macro}^^A \tud@head@font@bold +% \end{macro}^^A \tud@head@font@light +% \end{macro}^^A \tud@head@fontsize +% \end{macro}^^A \tud@head@font@set +% \begin{macro}{\tud@head@text@line} +% \begin{macro}{\tud@head@text@list} +% \changes{v2.05}{2015/11/26}{neu}^^A % \begin{macro}{\tud@head@text@delimiter} % \begin{macro}{\tud@head@text@buffer} % Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und % unterhalb des Querbalkens des TUD-Kopfes dienen. % \begin{macrocode} -\newcommand*\tud@head@text{} -\newcommand*\tud@head@text@first{} -\newcommand*\tud@head@text@second{} +\newcommand*\tud@head@text@line{} +\newcommand*\tud@head@text@list{} \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} % \end{macrocode} % \end{macro}^^A \tud@head@text@buffer % \end{macro}^^A \tud@head@text@delimiter -% \end{macro}^^A \tud@head@text@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 +% \end{macro}^^A \tud@head@text@list +% \end{macro}^^A \tud@head@text@line % \begin{macro}{\tud@head@text@add} % \changes{v2.04}{2015/04/08}{Verwendung von \cs{protected@edef}}^^A -% 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}% +% \changes{v2.05}{2015/11/26}{Redesign}^^A +% Dieser Befehl dient zum Füllen einer Liste für die spätere Ausgabe der +% Kopfzeilenfelder. Es werden sequentiellalle potentiellen Felder hinzugefügt. +% Sollte das hinzuzufügende Feld dazu führen, dass der Text der Kopfzeile über +% den Seitenrand hinausragen würde, so wird eine weitere Zeile begonnen. Das +% Trennzeichen zwischen einzelnen Feldern muss gepuffert werden, da dieses nur +% gesetzt werden soll, wenn ein weiteres Feld nachfolgt. +% \begin{macrocode} +\newcommand*\tud@head@text@add[3][{, }]{% + \ifxblank{#3}{}{% + \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}% \def\tud@head@text@buffer{#1}% - \fi% - \if@tempswa\else% - \def\@tempa{% - \tud@head@text@first% - \tud@head@text@delimiter% - #2% - \tud@head@text% + \edef\@tempa{% + \expandonce\tud@head@text@line% + \expandonce\tud@head@text@delimiter% + \etex@unexpanded{#2#3}% }% +% \end{macrocode} +% Sollte das hinzuzufügende Feld die aktuelle Kopfzeile \cs{tud@head@text@line} +% über die Textbreite hinaus erweitern, wird der bisherige Inhalt in die Liste +% \cs{tud@head@text@list} gespeichert und eine neue mit dem aktuellen Inhalt +% begonnen. Andernfalls wird der aktuelle Inhalt dem bestehenden hinzugefügt. +% \begin{macrocode} \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% - \@tempswatrue% - \def\tud@head@text@delimiter{}% + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \protected@edef\tud@head@text@line{#2#3}% \else% - \protected@edef\tud@head@text@first{\@tempa}% + \edef\tud@head@text@line{\expandonce\@tempa}% \fi% - \fi% - \if@tempswa% - \protected@edef\tud@head@text@second{% - \tud@head@text@second% - \tud@head@text@delimiter% - #2% - \tud@head@text% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@add +% \begin{macro}{\tud@head@text@set} +% \changes{v2.05}{2015/11/28}{neu}^^A +% \begin{macro}{\tud@head@text@wrn} +% \begin{macro}{\if@tud@head@text@set} +% \changes{v2.05}{2015/11/28}{neu}^^A +% Für die Felder im Kopf wird bei einer Änderung dieser die Warnung bezüglich +% der zu großen Breite der Kopfinformationen, was bei kleinen Papierformaten +% geschehen kann, (re-)definiert. +% \begin{macrocode} +\newif\if@tud@head@text@set +\newcommand*\tud@head@text@wrn[1]{} +\newcommand*\tud@head@text@set{% + \if@tud@head@text@set% +% \end{macrocode} +% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben. +% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine weitere +% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der +% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der einzelnen +% Textzeilen im Kopf, die in \cs{tud@head@text@list} gesichert werden, erfolgt +% mit \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Die +% dafür benötigten Hilfsmakros werden vor der Verwendung initialisiert. +% \begin{macrocode} + \def\tud@head@text@line{}% + \def\tud@head@text@list{}% + \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} +% Ganz zum Schluss wird der Rest aus \cs{tud@head@text@line} ebenso wie ggf. +% die zusätzliche Zeile in die Liste expandiert. +% \begin{macrocode} + \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% + \ifxblank{\@extraheadline}{}{% + \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% + }% + \gdef\tud@head@text@wrn##1{% + \ClassWarning{\TUD@Class@Name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are ##1\MessageBreak% + too wide for the textwidth% + }% }% \fi% } % \end{macrocode} -% \end{macro}^^A \tud@head@text@add +% \end{macro}^^A \if@tud@head@text@set +% \end{macro}^^A \tud@head@text@wrn +% \end{macro}^^A \tud@head@text@set % \begin{macro}{\tud@head@text@box} % \changes{v2.02}{2014/06/23}{neu}^^A -% \changes{v2.03}{2015/01/09}{Bugfix für zweite Zeile. Diese muss in jedem Fall -% gesetzt werden, auch wenn sie leer ist.}^^A +% \changes{v2.03}{2015/01/09}{Zweite Zeile wird auch leer gesetzt.}^^A % Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile. % \begin{macrocode} \newcommand*\tud@head@text@box{% @@ -1041,72 +1001,66 @@ % Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben. % \begin{macrocode} \ifx\@faculty\@empty% - \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% + \ClassWarningNoLine{\TUD@Class@Name}{No `\string\faculty' given}% \faculty{}% \fi% % \end{macrocode} -% Abhängig vom Wert \cs{tud@cdfont}~-- gesetzt entweder von der globalen -% Klassenoption oder vom lokalen Parameter \opt{cdfont}~-- werden entweder die -% Schriften des \CDs oder aber die serifenlose Standardschrift für die Kopfzeile -% verwendet. -% \begin{macrocode} - \tud@head@font@set% -% \end{macrocode} -% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben. -% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine zweite -% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der -% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der ersten und -% gegebenenfalls der zweiten Textzeile im Kopf erfolgt durch das Makro -% \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Der dafür -% verwendete Schalter \cs{@tempswa} und die benötigten Hilfsmakros werden -% vor der Verwendung initialisiert. +% Die Ausgabe der Textzeile(n) mit Fakultät etc. im Kopfbereiche erfolgt über +% das Makro \cs{tud@head@text@write}. Hierbei ist zu beachten, dass für die +% erste Zeile bei einem zweifarbigem Kopf eine andere Textfarbe als für die +% restlichen benötigt wird. Außerdem ist für diese aufgrund der Linien im +% Querbalken ein etwas größerer Abstand zur zweiten Zeile notwendig, weshalb +% die temporären Makros \cs{@tempb} und \cs{@tempc} einmalig genutzt werden. +% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes. % \begin{macrocode} - \@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% + \def\@tempb{\tud@color{\tud@head@fontcolor}}% + \def\@tempc{\depth+\tud@len@heavyline}% % \end{macrocode} -% Es erfolgt die Ausgabe der Textzeile(n) mit Fakultät etc. über -% \cs{tud@head@text@write} sowie einer möglichen Extrazeile. +% Das Makro \cs{@tempa} wird zur Ababreitung der Liste \cs{tud@head@text@list} +% definiert. % \begin{macrocode} - \vbox{% - \linespread{0}\selectfont\offinterlineskip% + \def\@tempa##1{% + \settowidth\@tempdima{##1}% % \end{macrocode} -% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes. +% Sollte eine der Textzeilen zu lang sein, was insbesondere bei kleineren +% Papierformaten vorkommen kann, dann wird eine Warnung ausgegeben. % \begin{macrocode} - \tud@color{\tud@head@fontcolor}% - \tud@head@text@write{\tud@head@text@first}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% + \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax% + \hfuzz=\dimexpr\@tempdima-\textwidth\relax% + \fi% + \fi% + \@tempb% + \tud@head@text@write[\@tempc]{##1}% + \def\@tempb{\newline}% + \def\@tempc{\z@}% % \end{macrocode} -% Die zweite und dritte Zeile sind bei zweifarbigen Kopf normalerweise blau, -% nur für einen dunklen Seitenhintergrund weiß. +% Die weiteren Zeilen sind bei zweifarbigen Kopf normalerweise blau, nur für +% einen dunklen Seitenhintergrund weiß. % \begin{macrocode} - \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color + \ifnum\tud@head@bar@num>\@ne\relax% 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} +% Dies ist nun die eigentliche Ausgabe, welche in einer vertikalen Box erfolgt. +% \begin{macrocode} + \vbox{% +% \end{macrocode} +% Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um +% den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu +% lassen, wird dies hier temporär unterdrückt. +% \begin{macrocode} + \let\@raggedtwoe@everyselectfont\relax% + \setlength\spaceskip{\z@}% + \selectfont% + \offinterlineskip% + \forlistloop\@tempa{\tud@head@text@list}% + }% + \global\let\tud@head@text@wrn\@gobble% } % \end{macrocode} % \end{macro}^^A \tud@head@text@box @@ -1116,27 +1070,26 @@ % \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}}% +\newcommand*\tud@head@text@write[2][\z@]{% + \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[% + \dimexpr\tud@len@barheight-\depth\relax% + ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% } % \end{macrocode} % \end{macro}^^A \tud@head@text@write -% \begin{macro}{\tud@head@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% +% \begin{macro}{\tud@head@rule} +% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}^^A +% Der Querbalken des Kopfes läuft je nach Parameterwahl \cs{tud@head@bar@num} +% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite. +% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und +% über \cs{tud@len@line} definierter Dicke. +% \begin{macrocode} +\newcommand*\tud@head@rule[1]{% + \tud@color{\tud@head@fontcolor}% + \rule[\ht\strutbox]{#1}{\tud@len@line}% } % \end{macrocode} -% \end{macro}^^A \tud@head@text@wrn +% \end{macro}^^A \tud@head@rule % \begin{macro}{\tud@newlayerbox} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@savelayerbox} @@ -1149,13 +1102,13 @@ % von \cs{includegraphics} möglichst gering zu halten. % \begin{macrocode} \newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@logo@#1\endcsname% + \expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% - \global\expandafter\sbox\csname tud@logo@#1\endcsname% + \global\expandafter\sbox\csname tud@layer@#1\endcsname% } \newcommand*\tud@uselayerbox[1]{% - \expandafter\usebox\csname tud@logo@#1\endcsname% + \expandafter\usebox\csname tud@layer@#1\endcsname% } % \end{macrocode} % \end{macro}^^A \tud@uselayerbox @@ -1177,9 +1130,9 @@ \setbox\z@\vbox{#2}% \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% \ifdim\@tempdima>\z@\relax% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% #3\MessageBreak% - The maximum height is exceeded by \the\@tempdima% + The maximum height is exceeded by \the\@tempdima\MessageBreak% }% \fi% \endgroup% @@ -1195,73 +1148,95 @@ % % \subsection{Befehle, Optionen und Umsetzung der Seitenstilvarianten} % -% \begin{macro}{\tud@iftudps} +% \begin{macro}{\tud@if@tudheadings} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@ps@list} % \changes{v2.02}{2014/06/23}{neu}^^A -% Mit dem Befehl \cs{tud@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 +% Mit dem Befehl \cs{tud@if@tudheadings} kann geprüft werden, ob der im ersten +% Argument gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein +% kann, welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den % aktuellen Seitenstil beinhaltet~-- einem aus der Liste \cs{tud@ps@list} % entspricht. Ist dies der Fall, wird das zweite Argument ausgeführt, % anderfalls das dritte. Die Liste \cs{tud@ps@list} wird bei der Definition der % Seitenstile selbst gesetzt. % \begin{macrocode} \newcommand*\tud@ps@list{} -\newcommand*\tud@iftudps[3]{% +\newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } % \end{macrocode} % \end{macro}^^A \tud@ps@list -% \end{macro}^^A \tud@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. +% \end{macro}^^A \tud@if@tudheadings % \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. +% \opt{ddcfoot} verwendet, um rekursive Aufrufe der Optionen zu verhindern. % \begin{macrocode} \newif\if@tud@ddc@internal % \end{macrocode} +% \end{macro}^^A \if@tud@ddc@internal +% +% \iffalse +%</class&option> +%<*class> +% \fi +% +% \begin{macro}{\tud@comp@clearpage} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@comp@resetpagestyle} +% \changes{v2.04}{2015/05/31}{neu}^^A % 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 +% Unterfangen definiert, jedoch bei der 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% +%<*option> +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% +%</option> +%<*body> +\AtBeginDocument{% + \tud@if@v@lower{2.04}{% + \renewcommand*\tud@comp@clearpage{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% + \fi% + }% + \renewcommand*\tud@comp@resetpagestyle{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi% + }% + }{}% } +%</body> % \end{macrocode} -% \end{macro}^^A \tud@clearpage@iftudps -% \end{macro}^^A \tud@pagestyle@iftudps -% \end{macro}^^A \if@tud@ddc@internal +% \end{macro}^^A \tud@comp@clearpage +% \end{macro}^^A \tud@comp@resetpagestyle +% +% \iffalse +%</class> +%<*class&option> +% \fi +% +% \begin{option}{ddc} +% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A +% \begin{option}{ddchead} +% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A +% \begin{option}{ddcfoot} +% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A +% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil +% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den +% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls +% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß. +% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein +% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen +% im Fuß ausgegeben. % \begin{macro}{\tud@ddc@switch} % \changes{v2.02}{2014/06/23}{neu}^^A % Dieses Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc}, @@ -1279,27 +1254,27 @@ } % \end{macrocode} % \end{macro}^^A \tud@ddc@switch -% \begin{macro}{\tud@ddc} +% \begin{macro}{\tud@ddc@auto@num} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{macro}{\if@tud@ddc@auto} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\if@tud@headlogo@option@set} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\if@tud@footlogo@option@set} % \changes{v2.04}{2015/06/01}{neu}^^A -% \begin{macro}{\if@tud@ddc@auto} -% \changes{v2.02}{2014/06/23}{neu}^^A % Die Option \opt{ddc}. % \begin{macrocode} \newif\if@tud@headlogo@option@set \newif\if@tud@footlogo@option@set \newif\if@tud@ddc@auto -\newcommand*\tud@ddc{0} +\newcommand*\tud@ddc@auto@num{0} \TUD@key{ddc}[true]{% % \end{macrocode} % Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird % die Option abgearbeitet. % \begin{macrocode} - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% + \tud@comp@clearpage% + \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% % \end{macrocode} % Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot} @@ -1321,7 +1296,7 @@ % \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 +% 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% @@ -1331,25 +1306,25 @@ % 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}{}% + \tud@comp@resetpagestyle% } % \end{macrocode} % \end{macro}^^A \if@tud@footlogo@option@set % \end{macro}^^A \if@tud@headlogo@option@set % \end{macro}^^A \if@tud@ddc@auto -% \end{macro}^^A \tud@ddc -% \begin{macro}{\tud@ddc@head} -% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^A +% \end{macro}^^A \tud@ddc@auto@num +% \begin{macro}{\tud@ddc@head@num} +% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A % Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf % der Seiten im Stil von \pgs{tudheadings}. % \begin{macrocode} -\newcommand*\tud@ddc@head{0} +\newcommand*\tud@ddc@head@num{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}% + \tud@comp@clearpage% + \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% % \end{macrocode} % Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. % Wurde die Option durch den Anwender genutzt, werden die korrespondierenden @@ -1367,23 +1342,23 @@ % \end{macrocode} % Das Setzen des Seitenstils im Kompatibilitätsmodus. % \begin{macrocode} - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } % \end{macrocode} -% \end{macro}^^A \tud@ddc@head -% \begin{macro}{\tud@ddc@foot} -% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^A +% \end{macro}^^A \tud@ddc@head@num +% \begin{macro}{\tud@ddc@foot@num} +% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A % Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß % der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des % Schlüssels ist äquivalent zur Option \opt{ddchead} % \begin{macrocode} -\newcommand*\tud@ddc@foot{0} +\newcommand*\tud@ddc@foot@num{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}% + \tud@comp@clearpage% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% % \end{macrocode} % Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. % Wurde die Option durch den Anwender genutzt, werden die korrespondierenden @@ -1401,15 +1376,24 @@ % \end{macrocode} % Das Setzen des Seitenstils im Kompatibilitätsmodus. % \begin{macrocode} - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } % \end{macrocode} -% \end{macro}^^A \tud@ddc@foot +% \end{macro}^^A \tud@ddc@foot@num +% \end{option}^^A ddcfoot +% \end{option}^^A ddchead +% \end{option}^^A ddc +% +% \iffalse +%</class&option> +%<*class&body> +% \fi +% % \begin{macro}{\tud@ddc@check} % \changes{v2.02}{2014/06/23}{neu}^^A % Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen % für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen. -% Dabei wird über den Schalter \cs{if@tud@ddc@auto}festgelegt, ob die Auswahl +% 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 @@ -1419,15 +1403,15 @@ % 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% + \let\@tempa\tud@ddc@head@num% + \let\@tempb\tud@ddc@foot@num% \if@tud@ddc@auto% - \ifdefvoid{\@headlogo}{% - \let\@tempa\tud@ddc% + \ifdefvoid{\tud@headlogo@filename}{% + \let\@tempa\tud@ddc@auto@num% \let\@tempb\z@% }{% \let\@tempa\z@% - \let\@tempb\tud@ddc% + \let\@tempb\tud@ddc@auto@num% }% \fi% % \end{macrocode} @@ -1435,44 +1419,19 @@ % 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}{% + \tud@if@v@lower{2.03}{% \ifnum\@tempb=\z@\relax% - \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% + \ifdefvoid{\tud@footlogo@filenames}{}{\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&option> -%<*class&body> -% \fi -% -% \begin{macro}{\tud@logo@main@black} +% \begin{macro}{\tud@layer@main@black} % \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\tud@logo@main@HKS41} +% \begin{macro}{\tud@layer@main@HKS41} % \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\tud@logo@main@white} +% \begin{macro}{\tud@layer@main@white} % \changes{v2.04}{2015/05/31}{neu}^^A % Diese drei Boxen werden für das Logo der \TnUD reserviert. Abhängig von der % gewählten Option des Layouts und der Seitenfarbe wird eine der Logos in der @@ -1482,19 +1441,19 @@ \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 +% \end{macro}^^A \tud@layer@main@white +% \end{macro}^^A \tud@layer@main@HKS41 +% \end{macro}^^A \tud@layer@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} +% \begin{length}{\tud@len@mainlogoheight} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@mainlogo@wrn} % \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}^^A % \begin{macrocode} -\newlength\tud@mainlogoheight +\newlength\tud@len@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} % \end{macrocode} % Dieses Makro setzt zu einen das Logo der \TnUD als auch~-- durch den Aufruf @@ -1506,12 +1465,12 @@ \newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% - \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% - \global\tud@mainlogoheight=\tud@mainlogoheight% + \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% % \end{macrocode} % Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea} % über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb @@ -1522,7 +1481,7 @@ % \begin{macrocode} \gdef\tud@mainlogo@wrn##1{% \ifdim##1<\ta@bcor\relax% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% The selected page layout means that the\MessageBreak% logo of TUD extends beyond the printing area.\MessageBreak% The inner margin is smaller than BCOR\MessageBreak% @@ -1538,44 +1497,39 @@ % den Boxen in der richtigen Größe neu zu setzen. % \begin{macrocode} \tud@headlogo@set% - \tud@footlogo@set% + \@tud@footlogo@option@settrue% + \tud@footlogo@option@set% \global\@tud@mainlogo@setfalse% \fi% } % \end{macrocode} % \end{macro}^^A \tud@mainlogo@wrn -% \end{length}^^A \tud@mainlogoheight +% \end{length}^^A \tud@len@mainlogoheight % \end{macro}^^A \if@tud@mainlogo@set % \end{macro}^^A \tud@mainlogo@set % \begin{macro}{\tud@mainlogo@use} % \changes{v2.04}{2015/05/31}{neu}^^A -% \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% + \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@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} +% \begin{macro}{\tud@layer@head@black} % \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\tud@logo@head@HKS41} +% \begin{macro}{\tud@layer@head@HKS41} % \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\tud@logo@head@white} +% \begin{macro}{\tud@layer@head@white} % \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\tud@logo@head@option} +% \begin{macro}{\tud@layer@head@option} % \changes{v2.04}{2015/05/31}{neu}^^A % Diese Boxen werden für das \DDC-Logo und das Zweitlogo im Kopf definiert. Der -% Box \cs{tud@logo@head@option} fäält dabei die Rolle zu, entweder ein~-- per +% Box \cs{tud@layer@head@option} fäält dabei die Rolle zu, entweder ein~-- per % Option gewähltes~-- \DDC-Logo oder aber das mit \cs{headlogo} angegebene % Zweitlogo zusichern und auszugeben. Die anderen drei Boxen speichern das Logo % von \DDC in den drei für die unterschiedlichen Layoutausprägung benötigten @@ -1586,32 +1540,32 @@ \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 +% \end{macro}^^A \tud@layer@head@option +% \end{macro}^^A \tud@layer@head@white +% \end{macro}^^A \tud@layer@head@HKS41 +% \end{macro}^^A \tud@layer@head@black % \begin{macro}{\headlogo} % \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}^^A -% \begin{macro}{\@headlogo} +% \begin{macro}{\tud@headlogo@filename} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{macro}{\@@headlogo} +% \begin{macro}{\tud@headlogo@fileoptions} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@headlogo@wrn} % \changes{v2.02}{2014/06/23}{neu}^^A -% Diese Befehle dienen zum Einbinden eines 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{} +% Diese Befehle dienen zum Einbinden eines möglichen Zweitlogos im Kopf bündig +% zum rechten Seitenrand. Mit \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} +% werden der Dateiname und das optionale Argument in \cs{tud@headlogo@filename} +% bzw. \cs{tud@headlogo@fileoptions} gespeichert, damit diese später bei der +% tatsächlichen Verwendung des Logos mit dem Makro \cs{tud@headlogo@set} an den +% Befehl \cs{includegraphics} weitergereicht werden können. +% \begin{macrocode} +\newcommand*\tud@headlogo@filename{} +\newcommand*\tud@headlogo@fileoptions{} \newcommand*\tud@headlogo@wrn{} \newcommand*\headlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@headlogo{#2}% - \def\@@headlogo{#1}% + \tud@comp@clearpage% + \renewcommand*\tud@headlogo@filename{#2}% + \renewcommand*\tud@headlogo@fileoptions{#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 @@ -1620,30 +1574,31 @@ \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'% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% }% \global\let\tud@headlogo@wrn\relax% }% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } % \end{macrocode} % \end{macro}^^A \tud@headlogo@wrn -% \end{macro}^^A \@@headlogo -% \end{macro}^^A \@headlogo +% \end{macro}^^A \tud@headlogo@fileoptions +% \end{macro}^^A \tud@headlogo@filename % \end{macro}^^A \headlogo % \begin{macro}{\tud@headlogo@set} -% \changes{v2.04}{2015/05/31}{neu}^^A% \DDC-Logos übernommen und erweitert}^^A +% \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@headlogo@option@set} % \changes{v2.04}{2015/05/31}{neu}^^A +% \changes{v2.05}{2015/07/27}{Bugfix für Dateien in Unterordnern}^^A % Äquivalent zum Logo der \TnUD werden auch für das Logo von \DDC drei % Farbvarianten erstellt. % \begin{macrocode} \newcommand*\tud@headlogo@set{% \def\@tempa{% - \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% + \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% @@ -1661,28 +1616,33 @@ \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% \includegraphics[% - keepaspectratio,totalheight=\tud@mainlogoheight,##2% - ]{\trim@spaces{##1}}% + keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% + ]{##1}% }% }% \tud@savelayerbox{head@option}{}% \tud@ddc@check% - \ifcase\@tempa\relax% \tud@ddc@head=false - \ifdefvoid{\@headlogo}{}{% - \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% + \ifcase\@tempa\relax% \tud@ddc@head@num=false + \ifdefvoid{\tud@headlogo@filename}{}{% + \protected@edef\tud@headlogo@filename{% + \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}% + }% + \protected@edef\@tempb{% + \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% + }% \@tempb% }% - \or\or% \tud@ddc@head=color + \or\or% \tud@ddc@head@num=color \@tempc{DDC-03}{}% - \or% \tud@ddc@head=colorblack + \or% \tud@ddc@head@num=colorblack \@tempc{DDC-09}{}% - \or% \tud@ddc@head=gray + \or% \tud@ddc@head@num=gray \@tempc{DDC-21}{}% - \or% \tud@ddc@head=black + \or% \tud@ddc@head@num=black \@tempc{DDC-24}{}% - \or% \tud@ddc@head=blue + \or% \tud@ddc@head@num=blue \@tempc{DDC-27}{}% - \or% \tud@ddc@head=white + \or% \tud@ddc@head@num=white \@tempc{DDC-30}{}% \fi% \global\@tud@headlogo@option@setfalse% @@ -1697,11 +1657,11 @@ % werden diese in einer Box vertikal zentriert. % \begin{macrocode} \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@mainlogoheight}{% + \tud@vlayerbox{\tud@len@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% - \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true + \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true \tud@uselayerbox{head@\tud@head@logocolor}% \else% \tud@uselayerbox{head@option}% @@ -1709,22 +1669,22 @@ }% \vss% }{% - The given `\string\headlogo{\@headlogo}' is too large.% - } - \ifdefvoid{\@headlogo}{}{% + The given `\string\headlogo{\tud@headlogo@filename}' is too large.% + }% + \ifdefvoid{\tud@headlogo@filename}{}{% \tud@ddc@check% \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% }% } % \end{macrocode} % \end{macro}^^A \tud@headlogo@use -% \begin{macro}{\tud@logo@foot@black} +% \begin{macro}{\tud@layer@foot@black} % \changes{v2.04}{2015/06/01}{neu}^^A -% \begin{macro}{\tud@logo@foot@HKS41} +% \begin{macro}{\tud@layer@foot@HKS41} % \changes{v2.04}{2015/06/01}{neu}^^A -% \begin{macro}{\tud@logo@foot@white} +% \begin{macro}{\tud@layer@foot@white} % \changes{v2.04}{2015/06/01}{neu}^^A -% \begin{macro}{\tud@logo@foot@option} +% \begin{macro}{\tud@layer@foot@option} % \changes{v2.04}{2015/06/01}{neu}^^A % Im Fußbereich kann das \DDC-Logo rechtsbündig ausgegeben. Hierfür werden die % entsprechenden Boxen für alle Farbvarianten definiert. Diese werden genutzt, @@ -1736,54 +1696,65 @@ \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} +% \end{macro}^^A \tud@layer@foot@option +% \end{macro}^^A \tud@layer@foot@white +% \end{macro}^^A \tud@layer@foot@HKS41 +% \end{macro}^^A \tud@layer@foot@black +% +% \iffalse +%</class&body> +%<*class> +% \fi +% +% \begin{option}{footlogoheight} +% \changes{v2.05}{2016/06/16}{neu}^^A +% \begin{macro}{\tud@dim@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% +% Für den Anwender besteht mit der Option \opt{footlogoheight} die Möglichkeit, +% die Höhe aller Logos im Fußbereich~-- also eventuell das \DDC-Logo sowie +% vom Anwender mit dem Befehl \cs{footlogo} angegebene Logos~-- zentral +% festzulegen. Dabei wird der gewünschte Wert in \cs{tud@dim@footlogoheight} +% abgelegt. +% \begin{macrocode} +%<*option> +\newcommand*\tud@dim@footlogoheight{} +\let\tud@dim@footlogoheight\relax +\TUD@key{footlogoheight}{% + \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax% + \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}% + \@tempa#1\@nil% \fi% + \global\@tud@footlogo@option@settrue% \fi% - \global\tud@footlogoheight=\tud@footlogoheight% } +%</option> % \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 +% Da sich mit der Version~v2.03 die Standardhöhe des \DDC-Logos im Fußbereich +% geändert hat, wird dieser Wert abhängig von der Einstellung für die Option +% \opt{tudscrver} nach der Abarbeitung der Optionen am Ende der Klasse gesetzt. +% \begin{macrocode} +%<*body> +\AtEndOfClass{% + \ifdefvoid{\tud@dim@footlogoheight}{% + \tud@if@v@lower{2.03}{% + \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + }{% + \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% + }% + }{}% +} +%</body> +% \end{macrocode} +% \end{macro}^^A \tud@dim@footlogoheight +% \end{option}^^A footlogoheight +% +% \iffalse +%</class> +%<*class&body> +% \fi +% % \begin{macro}{\tud@footlogo@ddc@set} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@footlogo@option@set} @@ -1794,39 +1765,32 @@ % 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}% + \includegraphics[keepaspectratio,totalheight=\tud@dim@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} \newcommand*\tud@footlogo@option@set{% \if@tud@footlogo@option@set% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% \tud@ddc@check% - \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color + \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color \tud@footlogo@ddc@set{option}{DDC-01}% - \or% \tud@ddc@foot=colorblack + \or% \tud@ddc@foot@num=colorblack \tud@footlogo@ddc@set{option}{DDC-07}% - \or% \tud@ddc@foot=gray + \or% \tud@ddc@foot@num=gray \tud@footlogo@ddc@set{option}{DDC-19}% - \or% \tud@ddc@foot=black + \or% \tud@ddc@foot@num=black \tud@footlogo@ddc@set{option}{DDC-22}% - \or% \tud@ddc@foot=blue + \or% \tud@ddc@foot@num=blue \tud@footlogo@ddc@set{option}{DDC-25}% - \or% \tud@ddc@foot=white + \or% \tud@ddc@foot@num=white \tud@footlogo@ddc@set{option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% @@ -1835,68 +1799,59 @@ % \end{macrocode} % \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% +\newcommand*\tud@footlogo@ddc@use[2]{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false + \tud@footlogo@option@set% + \setbox\z@\hbox{% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \hss% + \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + You should reduce `footlogoheight', because it is\MessageBreak + too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% }% - \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} +% Nach der Ausgabe wird ein begativer horizontaler Abstand in der Boxbreite +% eingefügt, damit nachfolgende Boxen überlagert werden können. +% \begin{macrocode} + \usebox\z@\hspace*{-\wd\z@}% + \fi% } % \end{macrocode} % \end{macro}^^A \tud@footlogo@ddc@use -% \begin{macro}{\tud@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} +% \begin{macro}{\tud@layer@foot@cmd} % \changes{v2.04}{2015/06/01}{neu}^^A % Für das Setzen von benutzerdefinierten Logos im Fußbereich wird diese Box % verwendet. % \begin{macrocode} \tud@newlayerbox{foot@cmd} % \end{macrocode} -% \end{macro}^^A \tud@logo@foot@cmd +% \end{macro}^^A \tud@layer@foot@cmd % \begin{macro}{\footlogo} % \changes{v2.03}{2015/01/27}{neu}^^A -% \begin{macro}{\@footlogo} +% \begin{macro}{\tud@footlogo@filenames} % \changes{v2.03}{2015/01/27}{neu}^^A -% \begin{macro}{\@@footlogo} +% \begin{macro}{\tud@footlogo@fileoptions} % \changes{v2.03}{2015/01/27}{neu}^^A % \begin{macro}{\footlogosep} % \changes{v2.03}{2015/01/27}{neu}^^A @@ -1904,19 +1859,19 @@ % Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden. % \begin{macrocode} \newcommand*\footlogosep{\hfill} -\newcommand*\@footlogo{} -\newcommand*\@@footlogo{} +\newcommand*\tud@footlogo@filenames{} +\newcommand*\tud@footlogo@fileoptions{} \newcommand*\footlogo[2][]{% - \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% - \def\@footlogo{#2}% - \def\@@footlogo{#1}% + \tud@comp@clearpage% + \renewcommand*\tud@footlogo@filenames{#2}% + \renewcommand*\tud@footlogo@fileoptions{#1}% \global\@tud@footlogo@cmd@settrue% - \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% + \tud@comp@resetpagestyle% } % \end{macrocode} % \end{macro}^^A \footlogosep -% \end{macro}^^A \@@footlogo -% \end{macro}^^A \@footlogo +% \end{macro}^^A \tud@footlogo@fileoptions +% \end{macro}^^A \tud@footlogo@filenames % \end{macro}^^A \footlogo % \begin{macro}{\tud@footlogo@cmd@set} % \changes{v2.04}{2015/06/01}{neu}^^A @@ -1924,26 +1879,27 @@ % \changes{v2.03}{2015/01/27}{neu}^^A % \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien % individuell nutzbar}^^A +% \begin{macro}{\if@tud@footlogo@cmd@set} +% \changes{v2.04}{2015/06/01}{neu}^^A % 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. +% der Box \cs{tud@layer@foot@cmd} gespeichert. % \begin{macrocode} \newif\if@tud@footlogo@cmd@set \newcommand*\tud@footlogo@cmd@set[2]{% \if@tud@footlogo@cmd@set% - \tud@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 +% Durchlauf der Schleife der Inhalt von \cs{footlogosep} gespeichert und nach % dem ersten Logo vor jedem weiteren eingefügt. Um versehentlich angegebene % Leerzeichen zu entfernen, werden diese mit \cs{trim@spaces} entfernt. % \begin{macrocode} \let\@tempa\relax% - \@for\@tempb:=\@footlogo\do{% + \@for\@tempb:=\tud@footlogo@filenames\do{% \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% \@tempa% \ifx\@tempb\@empty\else% @@ -1959,7 +1915,7 @@ } % \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. +% den Fuß nacheinander in der Box \cs{tud@layer@foot@cmd} zu setzen. % \begin{macrocode} \newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% @@ -1987,15 +1943,17 @@ % \end{macrocode} % In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. % \begin{macrocode} - \preto\@@footlogo{% - keepaspectratio,totalheight=\tud@footlogoheight,% + \preto\tud@footlogo@fileoptions{% + keepaspectratio,totalheight=\tud@dim@footlogoheight,% }% % \end{macrocode} % Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als % letztes ausgeführt, um vorige Einstellungen überschreiben zu können. % \begin{macrocode} - \appto\@@footlogo{\@tempb}% - \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% + \appto\tud@footlogo@fileoptions{\@tempb}% + \protected@edef\@tempc{% + \noexpand\includegraphics[\tud@footlogo@fileoptions]{\@tempa}% + }% % \end{macrocode} % Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch % vertikal zentriert. @@ -2007,150 +1965,314 @@ } % \end{macrocode} % \end{macro}^^A \if@tud@footlogo@cmd@set +% \end{macro}^^A \tud@footlogo@cmd@@set % \end{macro}^^A \tud@footlogo@cmd@set -% \begin{macro}{\tud@footlogo@cmd@@use} +% \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}}% +\newcommand*\tud@footlogo@cmd@use[2]{% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{#1}{#2}% + \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}% + \usebox\z@\hspace*{-\wd\z@}% +} % \end{macrocode} % \end{macro}^^A \tud@footlogo@cmd@use % \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} +% \begin{macro}{\tud@footcontent@do} % \changes{v2.04}{2015/04/21}{neu}^^A -% \begin{macro}{\@@footcontent} +% \begin{macro}{\tud@footcontent@@do} % \changes{v2.04}{2015/04/21}{neu}^^A -% \begin{macro}{\footcontent@font} +% \changes{v2.05}{2016/04/17}{Stern im Argument erhält aktuellen Inhalt}^^A +% \begin{macro}{\tud@footcontent@fontface} % \changes{v2.04}{2015/06/01}{neu}^^A -% \begin{macro}{\footcontent@left} +% \changes{v2.05}{2015/07/21}{Bugfix für die Schriftgröße und den Durchschuss +% bei einer entsprechenden Anpassung der Schriftart \val{tudheadings}}^^A +% \begin{macro}{\tud@footcontent@left} % \changes{v2.04}{2015/06/01}{neu}^^A -% \begin{macro}{\footcontent@right} +% \begin{macro}{\tud@footcontent@right} % \changes{v2.04}{2015/06/01}{neu}^^A % Mit dem Befehl \cs{footcontent} kann der Inhalt für den Fußbereich der % Seiten im Stil \pgs{tudheadings} festgelegt werden. Dieser wird mit passenden % Schrifteinstellungen entweder einspaltig oder zweispaltig gesetzt. Die % Sternversion des Befehls nimmt keinerlei Einstellungen für die Schrift vor. % \begin{macrocode} -\newkomafont{tudheadings}{% - \sffamily% - \tud@color{\tud@foot@fontcolor}% -} +\newkomafont{tudheadings}{\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 +% gesichert, weshalb diese vorher alloziert werden. Anschließend erfolgt die % Definition des Befehls. % \begin{macrocode} -\newcommand*\tud@footcontent@font{} +\newcommand*\tud@footcontent@fontface{} \newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{} +\newcommand*\tud@footcontent@right{\@nil} +% \end{macrocode} +% Die Sternversion ändert die Schriftgröße vom Inhalt nicht. Die Normalversion +% nutzt die Schriftgröße der Kopfzeile mit einem passenden Durchschuss. +% \begin{macrocode} \newcommand*\footcontent{% - \@ifstar{% - \@tempswafalse% - \@footcontent% + \kernel@ifstar{% + \renewcommand*\tud@footcontent@fontface{\usekomafont{tudheadings}}% + \tud@footcontent@do% }{% - \@tempswatrue% - \@footcontent% + \renewcommand*\tud@footcontent@fontface{% + \usekomafont{tudheadings}% + \setlength\@tempdima{\tud@head@fontsize\p@}% + \fontsize{\tud@head@fontsize}{1.25\@tempdima}% + \selectfont% + }% + \tud@footcontent@do% }% } % \end{macrocode} % Normalerweise wird der Inhalt vollständig über die verfügbare Seitenfußbreite % gesetzt. Wird das optionale Argument \emph{nach} dem obligatorischen genutzt, -% so erfolgt die Ausgabe zweispaltig. +% so erfolgt die Ausgabe zweispaltig. Das optionale Argument kann für +% zusätzliche Formatierungsbefehle genutzt werden. % \begin{macrocode} -\newcommand*\@footcontent[2][]{% +\newcommand*\tud@footcontent@do[2][]{% \kernel@ifnextchar[%] - {\@@footcontent{#1}{#2}}% - {\@@footcontent{#1}{#2}[\@nnil]}% + {\tud@footcontent@@do{#1}{#2}}% + {\tud@footcontent@@do{#1}{#2}[\@nil]}% } -\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}% +\newcommand*\tud@footcontent@@do{} +\def\tud@footcontent@@do#1#2[#3]{% + \appto\tud@footcontent@fontface{#1\selectfont}% +% \end{macrocode} +% Wurde in einem der Argumente für den linken und/oder rechten Inhalt ein Stern +% verwendet, bleibt die bisherige Definition bestehen. +% \begin{macrocode} + \if\detokenize{*#2}\relax\else% + \renewcommand*\tud@footcontent@left{#2}% + \fi% + \if\detokenize{*#3}\relax\else% + \renewcommand*\tud@footcontent@right{#3}% \fi% - \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 \tud@footcontent@right +% \end{macro}^^A \tud@footcontent@left +% \end{macro}^^A \tud@footcontent@fontface +% \end{macro}^^A \tud@footcontent@@do +% \end{macro}^^A \tud@footcontent@do % \end{macro}^^A \footcontent % \end{KOMAfont}^^A tudheadings +% +% \iffalse +%<*class&poster> +% \fi +% +% \begin{macro}{\tud@footcontent@@left} +% \changes{v2.05}{2015/07/06}{neu}^^A +% \changes{v2.05}{2016/04/17}{Überschrift optional}^^A +% \begin{macro}{\tud@footcontent@@right} +% \changes{v2.05}{2015/07/06}{neu}^^A +% \changes{v2.05}{2016/04/17}{Überschrift optional}^^A +% \begin{macro}{\tud@newline@poster} +% Mit diesen beiden Hilfsmakros werden die linke und die rechte Spalte des +% Standard-Seitenfußes eines Posters festgelegt. In der linken Spalte werden +% dabei Fakultät, Einrichtung, Institut und Lehrstuhl sowie der Professor +% ausgegeben, wobei die Angaben über das optionale Argument der entsprechenden +% Feldbefehle, die in den Klassen normalerweise nur für den Seitenkopf genutzt +% werden, variiert werden können. +% \begin{macrocode} +\newcommand*\tud@newline@poster{} +\newcommand*\tud@footcontent@@left[1]{% + \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% + Technische Universit\"at Dresden% + \tud@foot@line@write{faculty}% + \tud@foot@line@write{department}% + \tud@foot@line@write{institute}% + \tud@foot@line@write{chair}% + \tud@foot@line@write{professor}% +} +% \end{macrocode} +% In der rechten Spalte werden der Autor oder die Autoren (\cs{author}) und +% die Kontaktperson(en) (\cs{contactperson}) ausgegeben. Zu jeder Person können +% individuelle Angaben bzgl. Büro, Telefonnummer und E"~Mail-Adresse gemacht +% werden. +% \begin{macrocode} +\newcommand*\tud@footcontent@@right[2]{% + \def\tud@newline@poster{% + \ifx\@authormore\@empty\else\newline\@authormore\fi% + \ifx\@course\@empty% + \ifx\@discipline\@empty\else\newline\@discipline\fi% + \else% + \newline\@course% + \ifx\@discipline\@empty\else% + \nobreakspace(\@discipline)% + \fi% + \fi% + \ifx\@office\@empty\else\newline\@office\fi% + \ifx\@telephone\@empty\else\newline\@telephone\fi% + \ifx\@telefax\@empty\else\newline\@telefax\fi% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% + }% +% \end{macrocode} +% Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte +% Warnung bei der Verwendung des Feldes \cs{@author} unterdrückt. +% \begin{macrocode} + \ifpatchable{\@author}{\@latex@warning@no@line}{% + \let\@tempa\@empty% + }{% + \let\@tempa\@author% + }% + \ifx\@tempa\@empty\else% + \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% +% \end{macrocode} +% Das Makro zum Aufteilen der Autorenangaben wird für die hier benötigte Form +% definiert. Dabei wird die Ausgabe aller nicht \emph{lokal} angegebenen Felder +% unterdrückt, indem der Befehl \cs{tud@multiple@fields@preset} im zweiten +% Argument mit einem \val{*} aufgerufen wird. +% \begin{macrocode} + \renewcommand*\tud@split@author@do[2]{% + \tud@multiple@fields@store{@author}{##1}% + \tud@multiple@fields@preset{@author}{*}{##1}% + \ignorespaces##1\tud@newline@poster% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\newline}% + }% + \noindent\tud@multiple@split{@author}% + \tud@multiple@fields@restore{@author}% +% \end{macrocode} +% Wurde gültige Felder außerhalb von \cs{@author} global angegeben, so werden +% diese \emph{nach} allen Autoren ausgegeben. +% \begin{macrocode} + \tud@newline@poster% +% \end{macrocode} +% Werden Autor und Kontaktperson ausgegeben, ist eine Leerzeile einzufügen. +% \begin{macrocode} + \ifx\@contactperson\@empty\else\newline\fi% + \fi% +% \end{macrocode} +% Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe. +% \begin{macrocode} + \def\tud@newline@poster{% + \ifx\@office\@empty\else\newline\@office\fi% + \ifx\@telephone\@empty\else\newline\@telephone\fi% + \ifx\@telefax\@empty\else\newline\@telefax\fi% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% + }% + \ifx\@contactperson\@empty\else% + \ifxblank{#2}{}{{\tud@head@font@@bold#2\newline}}% + \renewcommand*\tud@split@contactperson@do[2]{% + \tud@multiple@fields@store{@contactperson}{##1}% + \tud@multiple@fields@preset{@contactperson}{*}{##1}% + \ignorespaces##1\tud@newline@poster% + \tud@multiple@fields@restore{@contactperson}% + \tud@multiple@@@split{##2}{\newline}% + }% + \noindent\tud@multiple@split{@contactperson}% + \tud@multiple@fields@restore{@contactperson}% + \tud@newline@poster% + \fi% +% \end{macrocode} +% Zu guter letzt noch eine mögliche Homepage. +% \begin{macrocode} + \ifx\@webpage\@empty\else\newline\@webpage\fi% +} +\footcontent{% + \tud@footcontent@@left{\contactname}% +}[% + \tud@footcontent@@right{\authorname}{\contactpersonname}% +] +% \end{macrocode} +% \end{macro}^^A \tud@newline@poster +% \end{macro}^^A \tud@footcontent@@right +% \end{macro}^^A \tud@footcontent@@left +% +% \iffalse +%</class&poster> +% \fi +% % \begin{macro}{\tud@footcontent@use} % \changes{v2.04}{2015/06/01}{neu}^^A % Mit \cs{tud@footcontent@use} erfolgt die Ausgabe der mit \cs{footcontent} % definierten Inhalte. Dabei wird darauf geachtet, ob ein \DDC-Logo im Fuß -% verwendet wird. +% verwendet wird. Die Ausgabe erfolgt jedoch nur, falls tatsächlich etwas +% definiert wurde. Andernfalls wird lediglich eine leere Box der geforderten +% Breite ausgegeben. Dies ist notwendig, da nachgelagerte Funktionen diese Box +% fester Breite erwarten. % \begin{macrocode} \newcommand*\tud@footcontent@use[2]{% - \tud@ddc@check% - \ifcase\@tempb% - \setlength\@tempdimc{\z@}% + \@tempswafalse% + \ifx\tud@footcontent@left\@empty\relax% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax\else% + \ifx\tud@footcontent@right\@empty\relax\else% + \@tempswatrue% + \fi% + \fi% \else% - \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% + \@tempswatrue% \fi% + \if@tempswa% + \tud@ddc@check% + \ifcase\@tempb\relax% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% % \end{macrocode} -% Äquivalent zu den Logos wird auch der 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. +% Äquivalent zu den Logos wird auch der durch den Anwender frei definierbare +% Inhalt des Fußes in einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im +% Bedarfsfall der Freiraum für das \DDC-Logo bereitgestellt. % \begin{macrocode} - \tud@vlayerbox{#1}{% - \vss% - \hbox to #2{% - \tud@footcontent@font% + \tud@vlayerbox{#1}{% + \linespread{1}% + \vss% + \hbox to #2{% + \tud@footcontent@fontface% % \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% - }% + \def\@tempa{\@nil}% + \ifx\@tempa\tud@footcontent@right\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% % \end{macrocode} % Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen % der Abstand \cs{columnsep} eingefügt wird. % \begin{macrocode} - \else% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% - \strut\ignorespaces\tud@footcontent@right\strut% - }% + \else% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@right\strut% + }% + \fi% + \hss% + }% + \vss\vss% +% \end{macrocode} +% Sollte der Inhalt für den Fußbereich zu groß sein, wird eine Warnung erzeugt. +% \begin{macrocode} + }{% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content\MessageBreak% + or lower the fontsize via the optional argument.% + \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% \fi% - \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% - }% + \else% + \hbox to #2{}% + \fi% } % \end{macrocode} % \end{macro}^^A \tud@footcontent@use @@ -2163,34 +2285,39 @@ % \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} +% \begin{macro}{\tud@head@font@num} % \changes{v2.03}{2015/02/04}{neu}^^A -% \begin{macro}{\if@tud@head@font@locked} +% \begin{macro}{\if@tud@head@font@num@locked} % \changes{v2.03}{2015/02/04}{neu}^^A -% \begin{macro}{\tud@head@bar} +% \begin{macro}{\tud@head@bar@num} % \changes{v2.03}{2015/02/04}{neu}^^A -% \begin{macro}{\tud@head@bar@lock} +% \begin{macro}{\tud@head@bar@num@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 +% \begin{macro}{\if@tud@head@font@set} +% \begin{macro}{\if@tud@head@date} +% \changes{v2.05}{2016/05/27}{neu}^^A % Mit dieser Option wird die zentrale Benutzerschnittstelle für Einstellungen % des typischen Querbalkens für den TUD-Kopf geschaffen. Durch sie können % sowohl die verwendete Schrift als auch die Stärke für den Balkentext % (Institut, Fakultät etc.) geändert werden. Zusätzlich ist die Laufweite des % Querbalkens bzw. die Farbe einstellbar. % \begin{macrocode} -\cs@lock{tud@head@font}{0} -\cs@lock{tud@head@bar}{0} +\cs@lock{tud@head@font@num}{0} +\cs@lock{tud@head@bar@num}{0} \bool@lock{@tud@head@widebar} +\newif\if@tud@head@font@set +\newif\if@tud@head@date \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},% + {heavy}{2},{heavyfont}{2},{bold}{2},{boldfont}{2},% {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% @@ -2201,51 +2328,65 @@ {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}% + {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8},% + {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},% + {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false - \cs@set@lock{tud@head@font}{0}% + \cs@set@lock{tud@head@font@num}{0}% \or% true - \cs@set@lock{tud@head@font}{1}% + \cs@set@lock{tud@head@font@num}{1}% \or% heavy - \cs@set@lock{tud@head@font}{2}% + \cs@set@lock{tud@head@font@num}{2}% \or% nocolor - \cs@set@lock{tud@head@bar}{0}% + \cs@set@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% color - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% + \or% date + \@tud@head@datetrue% + \or% nodate + \@tud@head@datefalse% + \fi% + \ifnum\@tempa<\thr@@\relax% + \global\@tud@head@font@settrue% \fi% \fi% } % \end{macrocode} +% \end{macro}^^A \if@tud@head@date +% \end{macro}^^A \if@tud@head@font@set % \end{macro}^^A \if@tud@head@widebar@locked % \end{macro}^^A \if@tud@head@widebar -% \end{macro}^^A \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{macro}^^A \tud@head@bar@num@lock +% \end{macro}^^A \tud@head@bar@num +% \end{macro}^^A \if@tud@head@font@num@locked +% \end{macro}^^A \tud@head@font@num % \end{option}^^A cdhead % \begin{option}{cdfoot} -% \changes{v2.03}{2015/02/02}{Option \opt{extrabottommargin} bei Längenangabe -% indirekt nutzbar}^^A +% \changes{v2.03}{2015/02/02}{Bei Längenangabe wird \opt{extrabottommargin} +% indirekt genutzt}^^A % \changes{v2.04}{2015/06/18}{bedingtes Setzen der Option \opt{automark}}^^A % \begin{macro}{\if@tud@foot@colored} % \changes{v2.03}{2015/02/15}{neu}^^A +% \begin{macro}{\if@tud@foot@colored@locked} +% \changes{v2.05}{2015/07/14}{neu}^^A % \begin{macro}{\tud@ps@store} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{macro}{\tud@@ps@store} +% \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} +% \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 @@ -2253,12 +2394,13 @@ % 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. +% unter Umständen nicht geladen wird. Mit dem Befehl \cs{TUD@AfterPackage@do} +% kann Quelltext nur dann ausgeführt werden, wenn ein Paket auch tatsächlich +% geladen wurde. Hierfür ist die Initialisierung mit \cs{TUD@AfterPackage@set} +% nötig. % \begin{macrocode} -\TUD@AfterPackage@Set{scrlayer-scrpage} -\newif\if@tud@foot@colored +\TUD@AfterPackage@set{scrlayer-scrpage} +\bool@lock{@tud@foot@colored} \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -2275,7 +2417,7 @@ % wiederhergestellt. Dies wird allerdings frühestens nach dem Laden von % \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% @@ -2287,7 +2429,7 @@ % dem Laden von \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} \or% true - \TUD@AfterPackage{scrlayer-scrpage}{% + \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% \tud@font@koma@set{pageheadfoot}{\upshape}% @@ -2303,841 +2445,178 @@ % Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden. % \begin{macrocode} \or% nocolor - \@tud@foot@coloredfalse% + \bool@set@lock{@tud@foot@colored}{false}% \or% color - \@tud@foot@coloredtrue% + \bool@set@lock{@tud@foot@colored}{true}% \fi% % \end{macrocode} % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. % \begin{macrocode} \else% - \TUDoptions{extrabottommargin=#1}% + \ifdimen{#1}{\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}% + \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]{% +\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}% + \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]{% +\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@restore -% \end{macro}^^A \tud@@ps@store +% \end{macro}^^A \tud@ps@@store % \end{macro}^^A \tud@ps@store +% \end{macro}^^A \if@tud@foot@colored@locked % \end{macro}^^A \if@tud@foot@colored % \end{option}^^A cdfoot -% \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&option> %<*class&body> % \fi % -% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und -% der Seitenränder, wie es vom \CD der \TnUD verlangt wird. Sollte das Laden -% des Paketes verhindert werden, sind einige wenige Befehle vorzuhalten. -% \begin{macrocode} -\AtEndPreamble{% - \@ifpackageloaded{geometry}{}{% - \def\tud@geometry@process{\tud@geometry@set}% - \let\tud@BeforeSelectAnyPageStyle\@gobble% - }% -} -\tud@ifsacrop{% - \PreventPackageFromLoading{geometry}% -}{% - \RequirePackage{geometry}[2010/09/12]% -% \end{macrocode} -% \begin{macro}{\tud@geometry@hmargin} -% \begin{macro}{\tud@geometry@vmargin} -% \begin{macro}{\tud@geometry@tudmargin} -% \begin{macro}{\tud@geometry@ddcmargin} -% Dies sind Hilfsmakros für die Definition der unterschiedichen Seitenlayouts -% (horizontale und vertikale Ränder). Es handelt sich dabei um die Seitenränder -% für den normalen Textbereich sowie die angepassten vertikalen Einstellungen -% für die Seitenstilvarianten mit TUD-Kopf. Im Kompatibilitätsmodus für die -% Version~v2.02 gibt es außerdem einen separaten Satzspiegel für den \DDC-Fuß. -% Gesetzt werden diese in Abhängigkeit von der Option \opt{cdgeometry} im -% Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}. -% \begin{macrocode} - \newcommand*\tud@geometry@hmargin{}% - \newcommand*\tud@geometry@vmargin{}% - \newcommand*\tud@geometry@tudmargin{}% - \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% -% \end{macrocode} -% \end{macro}^^A \tud@geometry@ddcmargin -% \end{macro}^^A \tud@geometry@tudmargin -% \end{macro}^^A \tud@geometry@vmargin -% \end{macro}^^A \tud@geometry@hmargin -% \begin{macro}{\tud@newgeometry} -% \changes{v2.04}{2015/03/12}{neu}^^A -% mit diesem Befehl wird abhängig davon, ob er in der Präambel oder im Dokument -% durch \cs{tud@geometry@process} ausgeführt wird, entweder \cs{geometry} oder -% \cs{newgeometry} aufgerufen. -% \begin{macrocode} - \newcommand*\tud@newgeometry[1]{% - \if@atdocument% - \edef\@tempa{#1}% - \expandafter\newgeometry\expandafter{#1}% - \else% - \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% - \expandafter\geometry\expandafter{\@tempa}% - \fi% - }% -% \end{macrocode} -% \end{macro}^^A \tud@newgeometry -% \begin{macro}{\tud@geometry@process} -% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A -% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}^^A -% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}^^A -% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}^^A -% \begin{macro}{\tud@geometry@@process} -% Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten -% Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der -% Kopf- und/oder Fußzeile. Um mehrere Satzspiegel verwenden zu können~-- was -% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das -% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung -% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry} -% weitergereicht. -% Es werden drei Layouts erstellt: normaler Satzspiegel, nur TUD-Kopf sowie -% TUD-Kopf und "~Fuß und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann -% innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer -% sowie ggf. untere Seitenrand geändert werden. -% \begin{macrocode} - \newcommand*\tud@geometry@process{% -% \end{macrocode} -% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt. -% \begin{macrocode} - \tud@geometry@set% -% \end{macrocode} -% Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden -% die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht. -% Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros -% für die Erstellung der \pkg{geometry}-Satzspiegel übergeben. -% \begin{macrocode} - \ifcase\tud@geometry\relax% false -% \end{macrocode} -% Zu Beginn wird die Höhendifferenz zwischen TUD-Kopf und Standardkopfzeile -% für den \pkg{typearea}-Satzspiegel berechnet. -% \begin{macrocode} - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% -% \end{macrocode} -% Sollte der \pkg{typearea}-Satzspiegel noch unterhalb des TUD-Kopfes liegen, -% wird der Abstand zum Kopf vergrößert. -% \begin{macrocode} - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% - \fi% -% \end{macrocode} -% Anschließend erfolgen die horizontalen und vertikalen Randeinstellungen. -% \begin{macrocode} - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% - textwidth=\the\textwidth,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr\oddsidemargin+1in% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \edef\tud@geometry@vmargin{% - \if@hincl% - includehead=true,% - top=\the\dimexpr\tud@ta@topmargin+1in\relax,% - \else% - includehead=false,% - top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% - \fi% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - textheight=\the\tud@ta@textheight,% - \tud@geometry@fincl,% - footskip=\the\tud@ta@footskip% - }% -% \end{macrocode} -% Für den Satzspiegel mit TUD-Kopf muss unterschieden werden, ob der Abstand -% zwischen Kopf und Textbereich vergrößert wurde. Ist dies der Fall, wird die -% Höhe des Textbereiches über \cs{@tempdima} entsprechend verkleinert. -% \begin{macrocode} - \ifdim\tud@ta@headdiff<\z@\relax% - \setlength\@tempdima{\z@}% - \else% - \setlength\@tempdima{\tud@ta@headdiff}% - \fi% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - textheight=\the\dimexpr\tud@ta@textheight-\@tempdima\relax,% - ignorehead% - }% -% \end{macrocode} -% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen -% separaten Satzspiegel. -% \begin{macrocode} - \tud@ifverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% - }% - \edef\tud@geometry@ddcmargin{% - textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% - }% - }{}% -% \end{macrocode} -% Sollte die Option \opt{extrabottommargin} verwendet worden sein, wird eine -% Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos -% ist. -% \begin{macrocode} - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\TUDClassName}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% - }% - \fi% -% \end{macrocode} -% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische -% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz. -% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die -% unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil. -% \begin{macrocode} - \else% true/symmetric/twoside - \ifcase\tud@geometry\or% true - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\tud@dim@widemargin,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside asymmetric,\fi% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - marginparwidth=\the\dimexpr\tud@dim@widemargin% - -\tud@ta@headsep\relax,% - \else% - reversemarginpar=false,% - marginparwidth=\the\dimexpr\tud@dim@slimmargin% - -\tud@ta@headsep\relax,% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% -% \end{macrocode} -% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl -% im einseitigen als auch im zweiseitgigen Satz symmetrisch. -% \begin{macrocode} - \or% symmetric - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - left=\the\dimexpr.5\tud@dim@both\relax,% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - \if@reversemargin% - reversemarginpar=true,% - \else% - reversemarginpar=false,% - \fi% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% -% \end{macrocode} -% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist -% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite -% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende -% TUD-Logo geachtet werden muss. -% \begin{macrocode} - \or% twoside - \edef\tud@geometry@hmargin{% - bindingoffset=\the\ta@bcor,% - \if@twoside% - left=\the\dimexpr.4\tud@dim@both\relax,% - twoside,% - \else% - left=\the\dimexpr.5\tud@dim@both\relax,% - \fi% - textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \tud@geometry@mpincl,% - marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \if@reversemargin% - reversemarginpar=true,% - \if@twoside% - marginparwidth=\the\dimexpr.4\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \else% - reversemarginpar=false,% - \if@twoside% - marginparwidth=\the\dimexpr.6\tud@dim@both% - -\tud@ta@headsep\relax,% - \fi% - \fi% - marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% - }% - \fi% -% \end{macrocode} -% Für alle drei Varianten der vertikale Gleichanteil. Der Satzspiegel der -% Version~v2.02 wird aus Gründen der Kompatibilität weiterhin vorgehalten. -% \begin{macrocode} - \tud@ifverlower{2.03}{% - \edef\tud@geometry@vmargin{% - top=\the\dimexpr.5\tud@dim@both\relax,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@dim@headsep,% - bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }{% - \edef\tud@geometry@vmargin{% - top=\the\tud@dim@slimmargin,% - headheight=\the\tud@ta@headheight,% - headsep=\the\tud@ta@headsep,% - bottom=\the\dimexpr\tud@dim@widemargin% - +\tud@dim@extrabottommargin\relax,% - footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl% - }% - }% - \edef\tud@geometry@tudmargin{% - top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\the\tud@dim@headsep,% - ignorehead% - }% -% \end{macrocode} -% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile -% für den Satzspiegel des \CDs berechnet. -% \begin{macrocode} - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% - }% -% \end{macrocode} -% Für die Kompatibilitätsvariante wieder mal die Extrawurst. +% \begin{macro}{\tud@ps@parameters} +% 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@ps@parameters} ausgelagert werden. % \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% - }% +\newcommand*\tud@ps@parameters[1]{% % \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{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} - \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% + \TUD@parameter@def{cdfont}[true]{\TUDoption{cdfont}{#1}}% % \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. +% \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} - \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% + \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}% % \end{macrocode} -% Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren -% Seitenfuß gesetzt. +% \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@ifverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - }{}% + \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% % \end{macrocode} -% Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten -% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu -% erstellen. +% \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@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}% - }{}% + \TUD@parameter@def{headlogo}{\headlogo{#1}}% + \TUD@parameter@def{footlogo}{\footlogo{#1}}% % \end{macrocode} -% Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile. +% \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} - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin% - }% - \tud@newgeometry{\@tempa}% - \savegeometry{tudarea}% + \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}% + \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}% + \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% % \end{macrocode} -% Als letztes wird der Standardsatzspiegel erstellt. +% \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} - \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% - }% + \TUD@parameter@def{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@def{tudfonts}[true]{\TUDoption{tudfonts}{#1}}% + \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}% + \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% + \TUD@parameter@let{logo}{headlogo}% % \end{macrocode} -% \end{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. +% \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} -% \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. +% \end{macro}^^A \tud@ps@parameters +% +% \iffalse +%<*book|report|article> +% \fi % -% 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} +% \begin{macro}{\tud@envir@ps} +% \begin{macro}{\tud@envir@selectps} % \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 +% \begin{macro}{\tud@currentpagestyle@value} % Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout % temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern. % Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}. @@ -3154,10 +2633,10 @@ % 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}{% +\newcommand*\tud@envir@ps{tudheadings} +\newcommand*\tud@envir@selectps{% + \expandafter\pagestyle\expandafter{\tud@envir@ps}% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% %<*book|report> \renewcommand*\partpagestyle{empty}% @@ -3165,7 +2644,7 @@ %</book|report> \renewcommand*\indexpagestyle{empty}% }{}% - \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{% + \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% %<*book|report> \renewcommand*\partpagestyle{empty.tudheadings}% @@ -3174,40 +2653,40 @@ \renewcommand*\indexpagestyle{empty.tudheadings}% }{}% } -\newcommand*\tud@currentpagestyle{} +\newcommand*\tud@currentpagestyle@value{} \newcommand*\tud@currentpagestyle@set{% - \ifdefvoid{\tud@currentpagestyle}{% - \xdef\tud@currentpagestyle{\currentpagestyle}% + \ifdefvoid{\tud@currentpagestyle@value}{% + \xdef\tud@currentpagestyle@value{\currentpagestyle}% }{}% } \newcommand*\tud@currentpagestyle@reset{% - \ifdefvoid{\tud@currentpagestyle}{}{% - \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% - \let\tud@currentpagestyle\relax% + \ifdefvoid{\tud@currentpagestyle@value}{}{% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}% + \let\tud@currentpagestyle@value\relax% }% } \NewEnviron{tudpage}[1][]{% % \end{macrocode} % Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird -% dieser im Hilfsmakro \cs{tud@currentpagestyle} gespeichert. +% dieser im Hilfsmakro \cs{tud@currentpagestyle@value} gespeichert. % \begin{macrocode} \tud@currentpagestyle@set% \clearpage% - \def\tud@ps{tudheadings}% + \def\tud@envir@ps{tudheadings}% \TUD@parameter@set{tudpage}{#1}% - \tud@ps@select% - \tud@multicols@check% + \tud@envir@selectps% + \tud@x@multicol@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}% + \ifnum\tud@x@multicol@num>\@ne\relax% + \begin{multicols}{\tud@x@multicol@num}% \fi% \BODY% - \ifnum\tud@multicols>\@ne\relax% + \ifnum\tud@x@multicol@num>\@ne\relax% \end{multicols}% \fi% % \end{macrocode} @@ -3220,138 +2699,45 @@ \clearpage% ] % \end{macrocode} +% \end{macro}^^A \tud@currentpagestyle@value % \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{macro}^^A \tud@envir@selectps +% \end{macro}^^A \tud@envir@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. +% Mit \cs{TUD@parameter@family}\marg{Family}\marg{\dots} wird die Familie der +% Parameter festgelegt und anschließend die Definitionen getätigt. % \begin{macrocode} -\TUD@parameter{tudpage}{% +\TUD@parameter@family{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}}% + \TUD@parameter@def{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 +% mehr als zwei Spalten muss das Paket \pkg{multicol} geladen werden. Die % Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter % angegeben werden. % \begin{macrocode} - \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% + \TUD@parameter@def{columns}{\cs@std@lock{tud@x@multicol@num}{#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 +% \changes{v2.03}{2015/01/28}{\cs{tud@if@tudheadings} 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@def{pagestyle}{% + \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% + \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% + \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% + \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% \TUD@parameter@error{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% @@ -3360,35 +2746,23 @@ }% % \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}% + \tud@ps@parameters{#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}, +% wird, erfolgt eine Sonderbehandlung durch \cs{TUD@parameter@handler@default}, % bei dererst auf eine Zahl geprüft wird und anschießend versucht wird, das % Argument als Sprache zu setzen. Nach der Definition aller Parameter wird der -% Befehl \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie +% Befehl \cs{TUD@parameter@family} und damit auch die aktuelle Parameterfamilie % beendet. % \begin{macrocode} - \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% + \TUD@parameter@handler@default{}% } % \end{macrocode} % % \iffalse +%</book|report|article> %</class&body> % \fi % |