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 | 1945 |
1 files changed, 1256 insertions, 689 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx index f3c196cde38..311650d066a 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx @@ -1,29 +1,33 @@ -% \CheckSum{1513} +% \CheckSum{1954} % \iffalse meta-comment -% ====================================================================== +% +% ============================================================================ +% +% TUD-KOMA-Script +% Copyright (c) Falk Hanisch <tudscr@gmail.com>, 2012-2015 +% +% ============================================================================ +% +% This work may be distributed and/or modified under the conditions of the +% LaTeX Project Public License, version 1.3c of the license. The latest +% version of this license is in http://www.latex-project.org/lppl.txt and +% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +% or later and of this work. This work has the LPPL maintenance status +% "author-maintained". The current maintainer and author of this work +% is Falk Hanisch. +% +% ---------------------------------------------------------------------------- +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +% "author-maintained", wird somit allein durch den Autor verwaltet. Der +% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% +% ============================================================================ % -% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen -% -% ====================================================================== -% This work may be distributed and/or modified under the conditions of -% the LaTeX Project Public License, version 1.3c of the license. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of LaTeX -% version 2005/12/01 or later and of this work. -% This work has the LPPL maintenance status "author-maintained". -% The current maintainer and author of this work is Falk Hanisch. -% ---------------------------------------------------------------------- -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% Der aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. -% ====================================================================== % \fi % % \CharacterTable @@ -47,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-pagestyle.dtx}[% - 2014/12/17 v2.02 TUD-KOMA-Script (pagestyle)% + 2015/02/15 v2.03 TUD-KOMA-Script (pagestyle)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -69,7 +73,7 @@ % \selectlanguage{ngerman} % % \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A -% \changes{v2.02}{2014/07/08}{Verwendung \cs{FamilyKeyState}}%^^A +% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A % % \section{Der Seitenstil des \CDs} % @@ -98,60 +102,62 @@ %<*class&body> % \fi % -% \begin{length}{\tud@dim@left} -% \begin{length}{\tud@dim@right} +% \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@left} -\newlength{\tud@dim@right} -\newlength{\tud@dim@both} +\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@right -% \end{length}^^A \tud@dim@left +% \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} -% Die Seitenränder für sowohl oben als auch unten sowie der Abstand zwischen -% Textkörper und Fußzeile. -% \begin{macrocode} -\newlength{\tud@dim@top} -\newlength{\tud@dim@bottom} -\newlength{\tud@dim@footskip} -% \end{macrocode} +% \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@headheight} +% \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. +% (Mindest"~)Abstand zwischen Querbalken und Textkörper sowie der Fußzeile. % \begin{macrocode} -\newlength{\tud@dim@headheight} -\newlength{\tud@dim@barheight} -\newlength{\tud@dim@headsep} +\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@headheight +% \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} -\newlength{\tud@dim@logoheight} +\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 @@ -159,8 +165,8 @@ % \end{length}^^A \tud@dim@logox % \begin{length}{\tud@dim@line} % \changes{v2.02}{2014/06/23}{neu}%^^A -% \begin{length}{\tud@dim@thinline} % \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}}% @@ -168,141 +174,93 @@ % \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@thinline} -\newlength{\tud@dim@heavyline} +\newlength\tud@dim@line +\newlength\tud@dim@heavyline +\newlength\tud@dim@thinline % \end{macrocode} -% \end{length}^^A \tud@dim@heavyline % \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} -% Die Länge für den vertikalen Standardversatz der Überschriften. +% \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@headingsvskip} +\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@headdiff} -% \changes{v2.02}{2014/06/23}{neu}%^^A % \begin{length}{\tud@dim@ddcdiff} % \changes{v2.02}{2014/06/23}{neu}%^^A -% \begin{length}{\tud@dim@ddcfoot} -% \changes{v2.02}{2014/06/23}{neu, Umbenennung von \cs{tud@dim@ddcheight}}%^^A -% Zu guter Letzt noch die Höhe des \DDC-Logos in der Fußzeile. Die maximale Höhe -% der Fußzeile ist fest vorgegeben. +% 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} -\newlength{\tud@dim@headdiff} -\newlength{\tud@dim@ddcdiff} -\newlength{\tud@dim@ddcfoot} +\iftudscrverlower{2.03}{\newlength\tud@dim@ddcdiff}{} % \end{macrocode} -% \end{length}^^A \tud@dim@ddcfoot % \end{length}^^A \tud@dim@ddcdiff -% \end{length}^^A \tud@dim@headdiff % \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}. +% \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@headheight}{17.5mm}% - \setlength{\tud@dim@barheight}{2.5mm}% - \setlength{\tud@dim@headsep}{6mm}% - \setlength{\tud@dim@logox}{5.5mm}% - \setlength{\tud@dim@logoy}{6.5mm}% - \setlength{\tud@dim@logowidth}{28.5mm}% - \setlength{\tud@dim@left}{15mm}% - \setlength{\tud@dim@right}{10mm}% - \setlength{\tud@dim@top}{12.5mm}% - \setlength{\tud@dim@bottom}{12.5mm}% - \setlength{\tud@dim@footskip}{6mm}% - \setlength{\tud@dim@heavyline}{0.75pt}% - \setlength{\tud@dim@thinline}{0.5pt}% + \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@headheight}{35mm}% - \setlength{\tud@dim@barheight}{5mm}% - \setlength{\tud@dim@headsep}{12mm}% - \setlength{\tud@dim@logox}{11mm}% - \setlength{\tud@dim@logoy}{13.5mm}% - \setlength{\tud@dim@logowidth}{57mm}% - \setlength{\tud@dim@left}{30mm}% - \setlength{\tud@dim@right}{20mm}% - \setlength{\tud@dim@top}{25mm}% - \setlength{\tud@dim@bottom}{25mm}% - \setlength{\tud@dim@footskip}{12mm}% - \setlength{\tud@dim@heavyline}{1pt}% - \setlength{\tud@dim@thinline}{0.5pt}% + \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@headheight}{50mm}% - \setlength{\tud@dim@barheight}{7mm}% - \setlength{\tud@dim@headsep}{17mm}% - \setlength{\tud@dim@logox}{15.5mm}% - \setlength{\tud@dim@logoy}{19mm}% - \setlength{\tud@dim@logowidth}{80mm}% - \setlength{\tud@dim@left}{42mm}% - \setlength{\tud@dim@right}{28mm}% - \setlength{\tud@dim@top}{35mm}% - \setlength{\tud@dim@bottom}{35mm}% - \setlength{\tud@dim@footskip}{17mm}% - \setlength{\tud@dim@heavyline}{1.4pt}% - \setlength{\tud@dim@thinline}{0.7pt}% - \def\tud@head@font@size{13}% + \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@headheight}{70mm}% - \setlength{\tud@dim@barheight}{10mm}% - \setlength{\tud@dim@headsep}{24mm}% - \setlength{\tud@dim@logox}{22mm}% - \setlength{\tud@dim@logoy}{27mm}% - \setlength{\tud@dim@logowidth}{114mm}% - \setlength{\tud@dim@left}{60mm}% - \setlength{\tud@dim@right}{40mm}% - \setlength{\tud@dim@top}{50mm}% - \setlength{\tud@dim@bottom}{50mm}% - \setlength{\tud@dim@footskip}{24mm}% - \setlength{\tud@dim@heavyline}{1.7pt}% - \setlength{\tud@dim@thinline}{1pt}% - \def\tud@head@font@size{13.5}% + \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@headheight}{100mm}% - \setlength{\tud@dim@barheight}{14mm}% - \setlength{\tud@dim@headsep}{34mm}% - \setlength{\tud@dim@logox}{31mm}% - \setlength{\tud@dim@logoy}{38mm}% - \setlength{\tud@dim@logowidth}{161.5mm}% - \setlength{\tud@dim@left}{85mm}% - \setlength{\tud@dim@right}{56.5mm}% - \setlength{\tud@dim@top}{71mm}% - \setlength{\tud@dim@bottom}{71mm}% - \setlength{\tud@dim@footskip}{34mm}% - \setlength{\tud@dim@heavyline}{1.9pt}% - \setlength{\tud@dim@thinline}{1.5pt}% - \def\tud@head@font@size{14}% + \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@headheight}{140mm}% - \setlength{\tud@dim@barheight}{20mm}% - \setlength{\tud@dim@headsep}{48mm}% - \setlength{\tud@dim@logox}{44mm}% - \setlength{\tud@dim@logoy}{54mm}% - \setlength{\tud@dim@logowidth}{228mm}% - \setlength{\tud@dim@left}{120mm}% - \setlength{\tud@dim@right}{80mm}% - \setlength{\tud@dim@top}{100mm}% - \setlength{\tud@dim@bottom}{100mm}% - \setlength{\tud@dim@footskip}{48mm}% - \setlength{\tud@dim@heavyline}{2.1pt}% - \setlength{\tud@dim@thinline}{2pt}% - \def\tud@head@font@size{20}% + \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% - \setlength{\tud@dim@both}{\dimexpr\tud@dim@left+\tud@dim@right\relax}% % \end{macrocode} -% Hiermit wird sichergestellt, dass bei der Verwendung des \DDC-Logos im Fuß -% ausreichend Platz zur Verfügung steht. -% \begin{macrocode} - \setlength{\tud@dim@ddcfoot}{.6\tud@dim@headheight}% +% 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 @@ -310,7 +268,7 @@ % % \subsection{Unterstützung der \cls{standalone}-Klasse} % -% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}"=Klasse}%^^A +% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}%^^A % % Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate % Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse @@ -318,7 +276,7 @@ % der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen % für einige Einstellungen unterdrückt werden. % -% \begin{macro}{\tud@ifsacrop} +% \begin{macro}{\ifstandalonecrop} % \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 @@ -326,7 +284,7 @@ % ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die % Klasse \cls{standalone} gar nicht geladen wurde. % \begin{macrocode} -\newcommand*\tud@ifsacrop{% +\newcommand*\ifstandalonecrop{% \ifcsdef{ifsa@crop}{% \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% }{% @@ -334,7 +292,7 @@ }% } % \end{macrocode} -% \end{macro}^^A \tud@ifsacrop +% \end{macro}^^A \ifstandalonecrop % % Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv, % werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das @@ -342,7 +300,7 @@ % % \begin{macrocode} \AtEndPreamble{% - \tud@ifsacrop{% + \ifstandalonecrop{% \PreventPackageFromLoading{scrlayer-scrpage}% \pagestyle{empty}% \hoffset=-72.27pt% @@ -357,7 +315,7 @@ \oddsidemargin=0pt% \evensidemargin=0pt% \topskip=0pt% - \textheight=\dimexpr\maxdimen% + \textheight=\maxdimen% }{}% } % \end{macrocode} @@ -378,198 +336,438 @@ % \changes{v2.02}{2014/06/23}{neu}%^^A % \begin{pagestyle}{empty.tudheadings} % \changes{v2.02}{2014/06/23}{neu}%^^A -% Es wird ein neuer Seitenstil kreiert, der das \CD der TU~Dresden mit der +% Es wird ein neuer Seitenstil kreiert, der das \CD der \TnUD mit der % prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein, % wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket % \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD % vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum -% Textblock gesetzt. Für den Fall, dass das Dokument nicht ausschließlich mit -% dem TUD-Kopf 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 drei Layouts erstellt. Diese können mit \cs{loadgeometry}\marg{Stil} -% geladen werden. +% 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. % \begin{macrocode} \AtEndPreamble{% % \end{macrocode} % Damit der Anwender beliebige Optionen an \pkg{scrlayer-scrpage} übergeben % kann, wird das Paket erst zum Ende der Präambel geladen, wenn dies nicht -% bereits vorher geschehen ist. -% \ToDo{Versionsanforderung rein, sobald aktuelle Version auf CTAN vorhanden} +% bereits vorher geschehen ist. Anschließend werden verschiedene, sogeannte +% Layers respektive Ebenen für die einzelnen Elemente auf einer Seite erstellt. % \begin{macrocode} \RequirePackage{scrlayer-scrpage}[2013/12/14]% + \AfterPackage*{scrlayer-scrpage}{% % \end{macrocode} -% Anschließend werden verschiedene, sogeannte Layers für die einzelnen Elemente -% auf einer Seite erstellt. Dies sind das aus dem Satzspiegel nach links -% verschobene Logo der \TnUD sowie \dots +% \begin{layer}{tudheadings.head.mainlogo} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{layer}{tudheadings.head.logo} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD, \dots % \begin{macrocode} - \AfterPackage*{scrlayer-scrpage}{% \DeclareNewLayer[% - background,head,align=tl,% + background,headsep,% voffset=\tud@dim@logoy,% contents={% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@left\relax}\tud@mainlogo% + \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% + \tud@mainlogo% },% ]{tudheadings.head.mainlogo}% % \end{macrocode} -% \dots das Zweitlogo, \dots +% \dots und das Zweitlogo. % \begin{macrocode} \DeclareNewLayer[% - background,head,align=tl,% + background,headsep,% voffset=\tud@dim@logoy,% contents={\hfill\tud@headlogo},% ]{tudheadings.head.logo}% % \end{macrocode} -% \dots die obere und untere Linie des Querbalkens sowohl in der normalen +% \end{layer}^^A tudheadings.head.logo +% \end{layer}^^A tudheadings.head.mainlogo +% \begin{layer}{tudheadings.head.back} +% \changes{v2.03}{2015/02/14}{neu}%^^A +% \begin{layer}{tudheadings.head.bar} +% \changes{v2.03}{2015/02/14}{neu}%^^A +% Außerdem gibt es eine Variante ohne Querbalken-Outline. Stattdessen werden +% der Querbalken und der darüberliegende Kopf farbig abgesetzt. +% \begin{macrocode} + \DeclareNewLayer[% + background,% + contents={% + \ifnum\tud@head@bar>\@ne\relax% + \color{HKS41}% + \rule{\layerwidth}{\tud@dim@topmargin}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + voffset=\tud@dim@topmargin,% + contents={% + \ifnum\tud@head@bar>\@ne\relax% + \color{HKS41!80}% + \rule{\layerwidth}{\tud@dim@barheight}% + \fi% + },% + ]{tudheadings.head.bar}% +% \end{macrocode} +% \end{layer}^^A tudheadings.head.bar +% \end{layer}^^A tudheadings.head.back +% \begin{layer}{tudheadings.head.text} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Fakultät, Einrichtung, Institut und Lehrstuhl als Inhalt des Querbalkens. +% \begin{macrocode} + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% + contents={\tud@head@text@box},% + ]{tudheadings.head.text}% +% \end{macrocode} +% \end{layer}^^A tudheadings.head.text +% \begin{layer}{tudheadings.head.upperline} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{layer}{tudheadings.head.lowerline} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{layer}{tudheadings.head.upperwideline} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{layer}{tudheadings.head.lowerwideline} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Die Ebenen für obere und untere Linie des Querbalkens sowohl in der normalen % Version, welche den Textbereich überspannt als auch in der Variante über die % komplette Seitenbreite. Dabei muss für beide Varianten der entsprechenden % horizontale Versatz beachtet werden. Dafür wird ggf. der Parameter \val{head} % von \pkg{scrlayer-scrpage} verwendet. Darauf folgt \dots % \begin{macrocode} \DeclareNewLayer[% - background,head,align=tl,% - voffset=\dimexpr\tud@dim@headheight-.5\tud@dim@line\relax,% - contents={\if@tud@widehead\else\tud@head@rule{\textwidth}\fi},% - ]{tudheadings.head.topline}% - \DeclareNewLayer[% - background,head,align=tl,% - voffset={% - \dimexpr\tud@dim@headheight+\tud@dim@barheight-.5\tud@dim@line\relax% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% + \tud@head@rule{\textwidth}% + \fi\fi% },% - contents={\if@tud@widehead\else\tud@head@rule{\textwidth}\fi},% - ]{tudheadings.head.bottomline}% + ]{tudheadings.head.upperline}% \DeclareNewLayer[% - background,align=tl,% - voffset=\dimexpr\tud@dim@headheight-.5\tud@dim@line\relax,% - contents={\if@tud@widehead\tud@head@rule{\paperwidth}\fi},% - ]{tudheadings.head.topwideline}% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% + \tud@head@rule{\textwidth}% + \fi\fi% + },% + ]{tudheadings.head.lowerline}% \DeclareNewLayer[% - background,align=tl,% - voffset={% - \dimexpr\tud@dim@headheight+\tud@dim@barheight-.5\tud@dim@line\relax% + background,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% + \tud@head@rule{\paperwidth}% + \fi\fi% },% - contents={\if@tud@widehead\tud@head@rule{\paperwidth}\fi},% - ]{tudheadings.head.bottomwideline}% -% \end{macrocode} -% \dots der Inhalt mit Fakultät, Einrichtung, Institut und Lehrstuhl. -% \begin{macrocode} + ]{tudheadings.head.upperwideline}% \DeclareNewLayer[% - background,head,align=tl,% - voffset=\dimexpr\tud@dim@headheight+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% + background,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% + \tud@head@rule{\paperwidth}% + \fi\fi% + },% + ]{tudheadings.head.lowerwideline}% % \end{macrocode} -% Außerdem wird eine weitere Ebene mit dem \DDC-Logo im Seitenfuß erstellt. +% \end{layer}^^A tudheadings.head.lowerwideline +% \end{layer}^^A tudheadings.head.upperwideline +% \end{layer}^^A tudheadings.head.lowerline +% \end{layer}^^A tudheadings.head.upperline +% \begin{layer}{tudheadings.foot.logo} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.03}{2015/01/13}{Ebenendeklaration ist kompatibilitätsabhängig}%^^A +% \begin{layer}{tudheadings.foot.back} +% \changes{v2.03}{2015/02/15}{neu}%^^A +% Außerdem wird eine weitere Ebene für Drittlogos sowie das \DDC-Logo im +% Seitenfuß erstellt. Dabei wird die Ebene in Abhängigkeit vom gewählten +% Kompatibilitätsmodus unterschiedlich definiert. +% +% Ab Version~v2.03 wird der Satzspiegel so gewählt, dass das \DDC-Logo in den +% normalen Seitenfuß passt. % \begin{macrocode} \DeclareNewLayer[% background,foot,% + height=\dimexpr\paperheight-\layeryoffset\relax,% contents={% - \vskip\dimexpr-\tud@dim@ddcfoot-\baselineskip+\ht\strutbox% - \hfill\tud@footlogo% - },% - ]{tudheadings.foot.ddclogo}% % \end{macrocode} -% Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile -% zusammengesetzt. Mit \cs{newpairofpagestyles} wird neben dem Seitenstil -% \pgs{tudheadings} der passende Seitenstil \pgs{plain.tudheadings} gleich mit -% deklariert. +% Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, +% werden passende Standardwerte gesetzt. % \begin{macrocode} - \newpairofpagestyles{tudheadings}{}% + \ifdim\footlogoheight>\z@\relax\else% + \settoheight\footlogoheight{\tud@mainlogo}% + \iftudscrverlower{2.03}{% + \setlength\footlogoheight{.6\tud@dim@topmargin}% + }{}% + \fi% % \end{macrocode} -% Allerdings führt der Befehl dazu, dass zunächst eine Vielzahl an Ebenen -% hinzugefügt wird, welche nicht benötigt werden. Deshalb werden diese mit -% \cs{RemoveLayersFromPageStyle} zunächst entfernt. +% Die gesetzt Größe der Logos im Fuß wird geprüft. Sollten diese zu groß sein, +% wird eine Warnug ausgegeben. % \begin{macrocode} - \ForEachLayerOfPageStyle{tudheadings}{% - \RemoveLayersFromPageStyle{tudheadings}{#1}% - }% - \ForEachLayerOfPageStyle{plain.tudheadings}{% - \RemoveLayersFromPageStyle{plain.tudheadings}{#1}% - }% + \setlength\@tempdima{% + \dimexpr\footlogoheight-\layerheight+\dp\strutbox\relax% + }% + \ifdim\@tempdima>\vfuzz\relax% + \ClassWarning{\tudcls@name}{% + The chosen `\string\footlogoheight' + (\the\footlogoheight)\MessageBreak% + is \the\@tempdima\space higher than recommended. You\MessageBreak% + should decrease this length + \ifcase\tud@geometry\relax\else% + or alternatively\MessageBreak% + enlarge the bottom margin by using option\MessageBreak% + `extrabottommargin'% + \fi% + }% + \fi% +% \end{macrocode} +% Hier erfolgt die eigentliche Ausgabe der Logos. Dabei werden ggf. zuerst die +% mit \cs{footlogo} angegeben wurden, anschließend wird das \DDC-Logo gesetzt, +% fall dies gefordert ist. +% \begin{macrocode} + \let\@tempa\relax% + \@for\@tempb:=\tud@@footlogo\do{% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo\expandafter{\@tempb}% + \fi% + \let\@tempa\footlogosep% + }% + \tud@ddclogo% + },% + ]{tudheadings.foot.logo}% +% \end{macrocode} +% Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel +% geändert. Hier wird dem Rechnung getragen. +% \begin{macrocode} + \iftudscrverlower{2.03}{% + \ModifyLayer[% + voffset=\dimexpr\topmargin+1in+\headheight+\headsep+\textheight% + +\footskip-\footheight-\tud@dim@ddcdiff% + \ifcase\tud@geometry\relax\else+\ht\strutbox+\dp\strutbox\fi% + \relax,% + height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + ]{tudheadings.foot.logo}% + }{}% % \end{macrocode} -% Nun folgt das Hinzufügen der Ebenen zu den jetzt leeren Seitenstilen. Damit -% die Benutzerschnittstelle von \pkg{scrlayer-scrpage} für die Fußzeile -% weiterhin durch den Anwender verwendet werden kann, werden die entsprechenden -% \pgs{scrheadings}-Ebenen verwendet. +% Diese Ebene wird als Hintergrund für den Fußbereich definiert. % \begin{macrocode} - \AddLayersToPageStyle{tudheadings}{% + \DeclareNewLayer[% + background,% + hoffset=0pt,% + width=\paperwidth,% + voffset=\dimexpr\@nameuse{scr@l@tudheadings.foot.logo@y}% + -\dp\strutbox\relax,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \if@tud@footcolor% + \let\@tempc\relax% + \ifnum\tud@head@bar>\@ne\def\@tempc{\color{HKS41}}\fi% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!80}}}{}% + \ifx\@tempc\relax\else% + \iftudscrverlower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax% + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% + }% + }% + \else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + }{\@tempc\rule{\layerwidth}{\layerheight}}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% +% \end{macrocode} +% \end{layer}^^A tudheadings.foot.back +% \end{layer}^^A tudheadings.foot.logo +% Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile +% zusammengesetzt. Als erstes wird der \pgs{headings}-Seitenstil definiert. +% Dieser verwendet den TUD-Kopf und die Fußzeilenebenen des Seitenstils +% \pgs{scrheadings}, welche zur Definition des Seitenstils verwendet werden. +% Beim Aktivieren des Seitenstils wird außerdem \cs{tud@ps@init} ausgeführt. +% Damit die Benutzerschnittstelle von \pkg{scrlayer-scrpage} für die Fußzeile +% weiterhin durch den Anwender verwendet werden kann, werden wie erwähnt die +% entsprechenden \pgs{scrheadings}-Ebenen verwendet. +% \begin{macrocode} + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% tudheadings.head.mainlogo,% tudheadings.head.logo,% - tudheadings.head.topline,% - tudheadings.head.bottomline,% - tudheadings.head.topwideline,% - tudheadings.head.bottomwideline,% + tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.foot.ddclogo,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.logo,% scrheadings.foot.odd,% scrheadings.foot.even,% scrheadings.foot.oneside,% scrheadings.foot.above.line,% scrheadings.foot.below.line% }% - \AddLayersToPageStyle{plain.tudheadings}{% +% \end{macrocode} +% Zuletzt werden Aliasnamen für den Seitenstil definiert. +% \begin{macrocode} + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% +% \end{macrocode} +% Für den \pgs{plain}-Seitenstil wird ebenso verfahren. Hier werden für die +% Fußzeilenebenen des Seitenstils \pgs{plain.scrheadings} hinzugefügt. +% \begin{macrocode} + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% tudheadings.head.mainlogo,% tudheadings.head.logo,% - tudheadings.head.topline,% - tudheadings.head.bottomline,% - tudheadings.head.topwideline,% - tudheadings.head.bottomwideline,% + tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.foot.ddclogo,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.logo,% plain.scrheadings.foot.odd,% plain.scrheadings.foot.even,% plain.scrheadings.foot.oneside,% plain.scrheadings.foot.above.line,% plain.scrheadings.foot.below.line% }% - \DeclareNewPageStyleByLayers{empty.tudheadings}{% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% +% \end{macrocode} +% Des Weiteren gibt es einen selbstständigen \enquote{leeren} Seitenstil, der +% lediglich aus dem Kopf besteht und einen lerren Seitenfuß hat. +% \begin{macrocode} + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% tudheadings.head.mainlogo,% tudheadings.head.logo,% - tudheadings.head.topline,% - tudheadings.head.bottomline,% - tudheadings.head.topwideline,% - tudheadings.head.bottomwideline,% + tudheadings.head.bar,% tudheadings.head.text,% - tudheadings.foot.ddclogo,% - }% -% \end{macrocode} -% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf -% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten -% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Alias für -% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} definiert. Hiermit -% wird zusätzlich dafür gesorgt, das der Seitenstil \pgs{empty} ebenfalls als -% Alias für \pgs{empty.tudheadings} verwendet werden kann. -% \begin{macrocode} - \AddToLayerPageStyleOptions{tudheadings}{% - onselect={\letcs\ps@empty{ps@empty.tudheadings}}% - }% - \AddToLayerPageStyleOptions{plain.tudheadings}{% - onselect={\letcs\ps@empty{ps@empty.tudheadings}}% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.logo,% }% - \AddToLayerPageStyleOptions{empty.tudheadings}{% - onselect={% - \letcs\ps@empty{ps@empty.tudheadings}% - \letcs\ps@plain{ps@plain.tudheadings}% - \letcs\ps@headings{ps@tudheadings}% - }% - }% -% \end{macrocode} -% Außerdem wird der Alias-Seitenstil \pgs{tudscrheadings} definiert. -% \begin{macrocode} - \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% +% \end{macrocode} +% \begin{layer}{tudheadings.pagecolor} +% \changes{v2.03}{2015/01/09}{neu}%^^A +% Um farbige Titel- Teil- und Kapitelseiten \emph{unabhängig} vom aktuell +% verwendeten Seitenstil erstellen zu können, wird die zusätzliche Ebene +% \val{tudheadings.pagecolor} definiert, die \emph{allen} Seitenstilen +% hinzugefügt wird. +% \begin{macrocode} + \DeclareNewLayer[ + background,page,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor} + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% % \end{macrocode} -% Der TUD-Kopf erfordert einen eigenen Satzspiegel, der ggf. durch -% \cs{tud@beforepagestyle} aktiviert bzw. deaktiviert wird. +% \end{layer}^^A tudheadings.pagecolor +% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch +% \cs{tud@beforeselectanypagestyle} aktiviert bzw. deaktiviert wird. % \begin{macrocode} - \BeforeSelectAnyPageStyle{\tud@beforepagestyle{#1}}% + \BeforeSelectAnyPageStyle{\tud@beforeselectanypagestyle{#1}}% }% } % \end{macrocode} % \end{pagestyle}^^A empty.tudheadings % \end{pagestyle}^^A plain.tudheadings % \end{pagestyle}^^A tudheadings +% \begin{macro}{\tud@ps@onselect} +% \changes{v2.03}{2015/01/09}{neu}%^^A +% \begin{macro}{\tud@ps@onbackground} +% \changes{v2.03}{2015/02/14}{neu}%^^A +% \begin{macro}{\tud@head@logocolor} +% \begin{macro}{\tud@foot@logocolor} +% \changes{v2.03}{2015/02/15}{neu}%^^A +% Diese Befehle werden bei der Initialiserung der Seitenstile beziehungsweise +% zu Beginn der Ebenenausgabe aufgerufen. +% \begin{macrocode} +\newcommand*\tud@ps@onselect{% +% \end{macrocode} +% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf +% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten +% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für +% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt. +% Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile, +% weshalb auf die Verwendung verziichtet wird. Das automatische Umschalten soll +% dennoch ermöglicht werden. +% \begin{macrocode} + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% +} +% Das Makro \cs{tud@head@logocolor} enthält die Farbe des Kopfes. Die Gestalt +% des Querbalkens kann über die Option \opt{cdhead} geändert werden. Für Titel, +% Teil und Kapitel gibt es speziell dazugehörige Optionen, womit das Aussehen +% des Kopfes ggf. angepasst werden kann. Mit \cs{tud@foot@logocolor} erfolgt +% dies gleichermaßen für ein etwaiges \DDC-Logo. +% \begin{macrocode} +\newcommand*\tud@head@logocolor{black} +\newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@ps@onbackground{% + \ifcase\tud@head@bar\relax% + \def\tud@head@logocolor{black}% + \def\tud@foot@logocolor{black}% + \or% + \def\tud@head@logocolor{HKS41}% + \def\tud@foot@logocolor{HKS41}% + \or% + \def\tud@head@logocolor{white}% + \if@tud@footcolor% + \def\tud@foot@logocolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \fi% + \fi% +% \end{macrocode} +% In Abhängigkeit von der eingestzten Hintergrundfarbe der Seite wird die +% Linienstärke des Querbalkens gesetzt. +% \begin{macrocode} + \let\tud@dim@line\tud@dim@thinline% + \ifstr{\tud@head@logocolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@foot@logocolor +% \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} @@ -577,124 +775,175 @@ % Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt. % \end{macro}^^A \ps@tudpage@empty % \end{macro}^^A \ps@tudpage@plain -% \begin{macro}{\tud@beforepagestyle} +% \begin{macro}{\thispagestyle} +% \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}%^^A +% \begin{macrocode} +\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% + \xdef\@specialstyle{\GetRealPageStyle{#1}} +}{}{\tud@patch@wrn{thispagestyle}} +% \end{macrocode} +% \end{macro}^^A \tud@beforeselectanypagestyle +% \begin{macro}{\tud@beforeselectanypagestyle} % \changes{v2.02}{2014/06/23}{neu}%^^A % \begin{macro}{\tud@currentgeometry} % \changes{v2.02}{2014/06/23}{neu}%^^A -% Mit \cs{tud@beforepagestyle} wird beim Umschalten des Seitenstils ggf. der -% Satzspiegel geändert. +% Mit \cs{tud@beforeselectanypagestyle} wird beim Umschalten des Seitenstils +% gegebenfalls der Satzspiegel geändert. Dabei wird der aktivierte Satzspiegel +% in dem Makro \cs{tud@currentgeometry} gesichert, um darauf zu einem späteren +% Zeitpunkt prüfen zu können. +% +% Für den Fall, dass das Dokument nicht ausschließlich mit dem Kopf im \CD +% auf jeder Seite gesetzt wird, muss der komplette vertikale Satzspiegel +% angepasst werden, sonst wäre der obere Rand optisch viel zu groß. Hierfür +% wird das Paket \pkg{geometry} genutzt. Durch \cs{tud@geometry@process} +% werden zwei~-- für die KOmpatibilitätsvariante drei~-- Layouts erstellt. +% Diese können mit \cs{loadgeometry}\marg{Stil} geladen werden. % \begin{macrocode} \newcommand*\tud@currentgeometry{} -\newcommand*\tud@beforepagestyle[1]{% +\newcommand*\tud@beforeselectanypagestyle[1]{% % \end{macrocode} % Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles} -% derart definiert, dass zwischen \pgs{tudheadings}, \pgs{plain.tudheadings} -% sowie~-- durch die Anpassungen weiter oben~-- \pgs{empty.tudheadings} auch -% mit \LaTeX-Standardseitenstilen \pgs{headings}, \pgs{plain} und \pgs{empty} +% 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} - \def\@tempa{#1}% - \ifstr{\sls@currentheadings}{tudheadings}{% - \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}% - \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}% - \ifstr{#1}{empty}{\def\@tempa{empty.tudheadings}}{}% - }{}% + \ifstr{#1}{\GetRealPageStyle{#1}}{% + \def\@tempa{#1}% +% \end{macrocode} +% Vor der \KOMAScript-Version~v3.15 wurden die Seitenstile \pgs{headings} und +% \pgs{plain} nicht als Alias definiert. Dieses Problem wird hiermit behoben. +% \begin{macrocode} + \ifcsdef{scr@v@3.15}{}{% + \ifstr{\sls@currentheadings}{tudheadings}{% + \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}% + \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}% + }{}% + }% +% \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} + \iftudpagestyle{\@tempa}{% % \end{macrocode} -% Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll\dots +% \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@ifinpslist{\@tempa}{% + \iftudscrverlower{2.03}{% % \end{macrocode} -% \dots werden die Einstellungen für den Seitenfuß mit \cs{tud@ddc@check} in +% 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% + \tud@ddc@check% % \end{macrocode} % Das \DDC-Logo im Fuß ist nicht aktiviert. % \begin{macrocode} - \ifcase \@tempb\relax% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% + \ifcase\@tempb\relax% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% % \end{macrocode} % Das \DDC-Logo im Fuß ist aktiviert. % \begin{macrocode} - \else% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% + \else% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% +% \end{macrocode} +% Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten. +% \begin{macrocode} + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% }% - \fi% % \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@}% + \setlength\tud@dim@headdiff{\z@}% % \end{macrocode} % Hier ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll. % Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} % zurückgesetzt. % \begin{macrocode} - }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% - \RedeclarePageStyleByLayers{empty}{}% - }% + }{% + \ifstr{\tud@currentgeometry}{typearea}{}{% + \loadgeometry{typearea}% + \gdef\tud@currentgeometry{typearea}% + }% % \end{macrocode} % Die Länge \cs{tud@dim@headdiff} wird auf den berechneten Wert gesetzt. Nur % für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und dieser % nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas angepasst % werden. % \begin{macrocode} - \setlength{\tud@dim@headdiff}{\tud@ta@headdiff}% - \ifcase \tud@geometry\relax\else% - \if@hincl% - \addtolength{\tud@dim@headdiff}{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% - }% + \setlength\tud@dim@headdiff{\tud@ta@headdiff}% + \ifcase\tud@geometry\relax\else% + \if@hincl% + \addtolength\tud@dim@headdiff{% + \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + }% + \fi% \fi% - \fi% - }% + }% % \end{macrocode} % Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt. % \begin{macrocode} - \global\tud@dim@headdiff=\tud@dim@headdiff% + \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@beforepagestyle\@gobble\pagestyle% + \let\tud@beforeselectanypagestyle\@gobble\pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} \patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@beforepagestyle\@gobble\pagestyle% + \let\tud@beforeselectanypagestyle\@gobble\pagestyle% }{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} \patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@beforepagestyle\@gobble\pagestyle% + \let\tud@beforeselectanypagestyle\@gobble\pagestyle% }{}{\tud@patch@wrn{cleardoublepageusingstyle}} % \end{macrocode} -% \end{macro}^^A \tud@currentgeometry -% \end{macro}^^A \tud@beforepagestyle +% \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 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 wurde -% \emph{und} des \DDC-Logo im Fuß gesetzt werden soll. -% \begin{macrocode} -\newcommand*\tud@ddc@enlargepage{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@ddc@check% - \ifcase \@tempb\relax\else\enlargethispage{-\tud@dim@ddcdiff}\fi% +% Der Befehl wird nur für den Kompatibilitätsmodus zur Version~v2.02 benötigt +% und für die Titelkopf- und Kapitelseiten verwendet. Er verkleinert die +% entsprechenden Seiten, wenn für diese mit dem Befehl \cs{thispagestyle} einer +% der \pgs{tudheadings}"=Seitenstile gewählt wird \emph{und} das \DDC-Logo im +% Fuß gesetzt werden soll. Der entsprechende Seitenstil kann im optionalen +% Argument angegeben werden, wenn der Befehl bedingt ausgeführt werden soll. +% \begin{macrocode} +\iftudscrverlower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \iftudpagestyle{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% + \enlargethispage{-\tud@dim@ddcdiff}% + \fi% + }% + }{}% }% -} +}{} % \end{macrocode} % \end{macro}^^A \tud@ddc@enlargepage % \begin{macro}{\tud@head@text} @@ -702,7 +951,6 @@ % \begin{macro}{\tud@head@text@second} % \begin{macro}{\tud@head@text@delimiter} % \begin{macro}{\tud@head@text@buffer} -% \begin{macro}{\tud@head@font} % Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und % unterhalb des Querbalkens des TUD-Kopfes dienen. % \begin{macrocode} @@ -711,9 +959,7 @@ \newcommand*\tud@head@text@second{} \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} -\newcommand*\tud@head@font{} % \end{macrocode} -% \end{macro}^^A \tud@head@font % \end{macro}^^A \tud@head@text@buffer % \end{macro}^^A \tud@head@text@delimiter % \end{macro}^^A \tud@head@text@second @@ -721,14 +967,14 @@ % \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 \opt{widehead} +% Der Querbalken des Kopfes läuft je nach gewähltem Parameter \cs{tud@head@bar} % entweder nur über den Textbereich oder aber über die gesamte Seitenbreite. % Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und % über \cs{tud@dim@line} definierter Dicke. % \begin{macrocode} \newcommand*\tud@head@rule[1]{% - \color{\tud@head@color}% - \rule[\dimexpr\ht\strutbox\relax]{#1}{\tud@dim@line}% + \color{\tud@head@logocolor}% + \rule[\ht\strutbox]{#1}{\tud@dim@line}% } % \end{macrocode} % \end{macro}^^A \tud@head@rule @@ -742,7 +988,6 @@ % nachfolgt. % \begin{macrocode} \newcommand*\tud@head@text@add[3][, ]{% - \def\tud@head@font{#2}% \edef\tud@head@text{#3}% \ifx\tud@head@text\@empty% \def\tud@head@text@delimiter{}% @@ -754,10 +999,10 @@ \def\@tempa{% \tud@head@text@first% \tud@head@text@delimiter% - \tud@head@font% + #2% \tud@head@text% }% - \settowidth{\@tempdima}{\@tempa}% + \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% \@tempswatrue% \def\tud@head@text@delimiter{}% @@ -769,7 +1014,7 @@ \edef\tud@head@text@second{% \tud@head@text@second% \tud@head@text@delimiter% - \tud@head@font% + #2% \tud@head@text% }% \fi% @@ -778,7 +1023,10 @@ % \end{macro}^^A \tud@head@text@add % \begin{macro}{\tud@head@text@box} % \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.03}{2015/01/09}{Bugfix für zweite Zeile. Diese muss in jedem Fall +% gesetzt werden, auch wenn sie leer ist.}%^^A % Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile. +% \ToDo{Zeilenabstand bei unterschiedlichen Papiergrößen prüfen}[v2.04] % \begin{macrocode} \newcommand*\tud@head@text@box{% % \end{macrocode} @@ -789,14 +1037,8 @@ \faculty{}% \fi% % \end{macrocode} -% Die Farbe des Kopfes wird für Titel und Teileseiten durch die gewählten -% Optionen\footnote{\opt{cdtitle}, \opt{cdpart}} bestimmt.\footnote{für -% die \env{tudpage}-Umgebung kann dieser angepasst werden} -% \begin{macrocode} - \color{\tud@head@color}% -% \end{macrocode} -% Abhängig vom Schalter \cs{if@tud@cdfonts}~-- gesetzt entweder von der globalen -% Klassenoption oder vom lokalelParameter \opt{cdfont}~-- werden entweder die +% 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} @@ -823,7 +1065,7 @@ % 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}% + \settowidth\@tempdima{\tud@head@text@second}% \ifdim\@tempdima>\textwidth\relax% \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% \hfuzz=\@tempdima% @@ -834,15 +1076,26 @@ % \begin{macrocode} \vbox{% \linespread{0}\selectfont% +% \end{macrocode} +% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes\dots +% \begin{macrocode} + \color{\tud@head@logocolor}% \tud@head@text@write{\tud@head@text@first}% +% \end{macrocode} +% Die zweite und dritte Zeile sind bei zweifarbigen Kopf normalerweise blau, +% nur für einen dunklen Seitenhintergrund weiß. +% \begin{macrocode} + \ifnum\tud@head@bar>\@ne% + \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% + \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + }% + \fi% \ifx\tud@head@text@second\@empty% - \ifx\@extraheadline\@empty\else% - \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}% - \fi% + \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}% \else% \newline\tud@head@text@write{\tud@head@text@second}% \ifx\@extraheadline\@empty\else% - \newline\tud@head@font@light\@extraheadline% + \vspace{-\tud@dim@line}\newline\tud@head@font@light\@extraheadline% \fi% \fi% }% @@ -923,12 +1176,12 @@ \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% - {color}{2},{colour}{2},% - {colorblack}{3},{colourblack}{3},% - {gray}{4},{grey}{4},{cdgray}{4},% - {black}{5},% - {blue}{6},{cddarkblue}{6},% - {white}{7}% + {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% + {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% + {gray}{4},{grey}{4},{HKS92}{4},{cdgray}{4},{cdgrey}{4},% + {black}{5},{cdblack}{5},% + {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},% + {white}{7},{cdwhite}{7}% } % \end{macrocode} % \end{macro}^^A \tud@ddc@switch @@ -964,16 +1217,17 @@ % \begin{macrocode} \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% - \ifcase \tud@ddc\relax% + \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% + \ifcase\tud@ddc\relax% \@tud@ddc@autosetfalse% \else% \@tud@ddc@autosettrue% \fi% % \end{macrocode} % Abschließend wird der aktuelle Seitenstil erneut aufgerufen, um bei einem -% geänderten Fuß den notwendigen Satzspiegel zu laden. Siehe dazu auch -% \cs{tud@beforepagestyle}. +% geänderten Fuß den notwendigen Satzspiegel zu laden. Dies ist jedoch nur +% notwendig, wenn die Option innerhalb des Dokumentes verwendet wurde. Siehe +% \cs{tud@beforeselectanypagestyle}. % \begin{macrocode} \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% \fi% @@ -982,6 +1236,7 @@ % \end{macro}^^A \if@tud@ddc@autoset % \end{macro}^^A \tud@ddc % \begin{macro}{\tud@ddc@head} +% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}%^^A % Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf % der Seiten im Stil von \pgs{tudheadings}. % \begin{macrocode} @@ -1001,14 +1256,16 @@ \if@tud@ddc@save% \begingroup% \let\tud@ddc@head\tud@ddc@save% - \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% + \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% \endgroup% \fi% % \end{macrocode} % Danach werden die sich ausschließenden Optionen deaktiviert, ohne eine % Sicherung der Werte vorzunehmen. % \begin{macrocode} - \ifcase \tud@ddc@head\relax\else% + \ifcase\tud@ddc@head\relax% + \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \else% \@tud@ddc@savefalse% \TUDoptions{ddc=false}% \TUDoptions{ddcfoot=false}% @@ -1019,6 +1276,7 @@ % \end{macrocode} % \end{macro}^^A \tud@ddc@head % \begin{macro}{\tud@ddc@foot} +% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}%^^A % Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß % der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des % Schlüssels ist äquivalent zur Option \opt{ddchead} @@ -1031,10 +1289,12 @@ \if@tud@ddc@save% \begingroup% \let\tud@ddc@foot\tud@ddc@save% - \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% + \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% \endgroup% \fi% - \ifcase \tud@ddc@foot\relax\else% + \ifcase\tud@ddc@foot\relax% + \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \else% \@tud@ddc@savefalse% \TUDoptions{ddc=false}% \TUDoptions{ddchead=false}% @@ -1065,45 +1325,52 @@ \let\@tempb\tud@ddc% \fi% \fi% + \iftudscrverlower{2.03}{% + \ifcase\@tempb\relax\ifx\tud@@footlogo\@empty\else\let\@tempb\m@ne\fi\fi% + }{}% } % \end{macrocode} % \end{macro}^^A \tud@ddc@check % \end{option}^^A ddcfoot % \end{option}^^A ddchead % \end{option}^^A ddc -% \begin{macro}{\tud@ifinpslist} +% \begin{macro}{\iftudpagestyle} % \changes{v2.02}{2014/06/23}{neu}%^^A -% \begin{macro}{\tud@pslist} +% \begin{macro}{\tud@ps@list} % \changes{v2.02}{2014/06/23}{neu}%^^A -% Mit dem Befehl \cs{tud@ifinpslist} wird geprüft, ob der übergebene -% 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 \cs{tud@pslist} entspricht. Ist dies der -% Fall, wird das zweite Argument ausgeführt, sonst das dritte. -% \begin{macrocode} -\newcommand*\tud@ifinpslist[3]{\xifinlist{#1}{\tud@pslist}{#2}{#3}} -\newcommand*\tud@pslist{} -\forcsvlist{\listadd\tud@pslist}{% +% Mit dem Befehl \cs{iftudpagestyle} wird geprüft, ob der im ersten Argument +% gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein kann, +% welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den +% aktuellen Seitenstil beinhaltet~-- einem aus der Liste \cs{tud@ps@list} +% entspricht. Ist dies der Fall, wird das zweite Argument ausgeführt, +% anderfalls das dritte. +% \begin{macrocode} +\newcommand*\iftudpagestyle[3]{% + \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% +} +\newcommand*\tud@ps@list{} +\forcsvlist{\listadd\tud@ps@list}{% tudheadings,plain.tudheadings,empty.tudheadings% } % \end{macrocode} -% \end{macro}^^A \tud@pslist -% \end{macro}^^A \tud@ifinpslist -% \begin{option}{widehead} -% \begin{macro}{\if@tud@widehead} -% \begin{macro}{\if@tud@widehead@locked} -% Der Schalter dient zur Steuerung der Breite des Querbalkens im Kopf der -% \env{tudpage}-Seite. Entweder der Querbalken liegt im Satzspiegel oder -% aber über die komplette Papierbreite. -% \begin{macrocode} -\newif\if@tud@widehead -\TUD@key@lock{widehead}[true]{% - \TUD@set@ifkey@lock{widehead}{@tud@widehead}{#1}% +% \end{macro}^^A \tud@ps@list +% \end{macro}^^A \iftudpagestyle +% \begin{option}{extrabottommargin} +% \begin{length}{\tud@dim@extrabottommargin} +% Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur +% 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{macro}^^A \if@tud@widehead@locked -% \end{macro}^^A \if@tud@widehead -% \end{option}^^A widehead +% \end{length}^^A \tud@dim@extrabottommargin +% \end{option}^^A extrabottommargin % % \iffalse %</class&option> @@ -1129,8 +1396,8 @@ % eine Warnung ausgegeben, damit das Problem durch den Anwender behoben werden % kann. % \begin{macrocode} - \setlength{\@tempdima}{% - \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@left\relax% + \setlength\@tempdima{% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi% % \end{macrocode} @@ -1138,13 +1405,10 @@ % geändert. % \begin{macrocode} \def\tud@@mainlogo{TUD-black}% - \ifstr{\tud@head@color}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@color}{white}{\def\tud@@mainlogo{TUD-white}}{}% - \global\let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@color}{white}{\global\let\tud@dim@line\tud@dim@heavyline}{}% - \color{\tud@head@color}% - \includegraphics[width=\tud@dim@logowidth]{\tud@@mainlogo}% + \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}% + \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}% + \ifstr{\tud@head@logocolor}{white}{\def\tud@@mainlogo{TUD-white}}{}% + \includegraphics[keepaspectratio,width=\tud@dim@logowidth]{\tud@@mainlogo}% } % \end{macrocode} % \end{macro}^^A \tud@@mainlogo @@ -1169,7 +1433,7 @@ % \cs{includegraphics} weitergereicht werden können. % \begin{macrocode} \newcommand*\headlogo[2][]{% - \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% + \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% \def\tud@@headlogo{#2}% \def\tud@@@headlogo{#1}% \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% @@ -1181,11 +1445,11 @@ \ifx\tud@@headlogo\@empty\else% \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% \fi% - \ifcase \@tempa\relax\or% + \ifcase\@tempa\relax\or% \def\tud@@headlogo{DDC-24}% - \ifstr{\tud@head@color}{HKS41}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@color}{white}{\def\tud@@headlogo{DDC-30}}{}% + \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@headlogo{DDC-27}}{}% + \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}% + \ifstr{\tud@head@logocolor}{white}{\def\tud@@headlogo{DDC-30}}{}% \or% \def\tud@@headlogo{DDC-03}% \or% @@ -1200,9 +1464,10 @@ \def\tud@@headlogo{DDC-30}% \fi% \ifx\tud@@headlogo\@empty\else% - \settoheight{\tud@dim@logoheight}{\tud@mainlogo}% - \pretocmd{\tud@@@headlogo}{height=\tud@dim@logoheight,}% - {}{\tud@patch@wrn{tud@@@headlogo}}% + \settoheight\@tempdima{\tud@mainlogo}% + \protected@epreto\tud@@@headlogo{% + keepaspectratio,totalheight=\the\@tempdima,% + }% \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}% \fi% } @@ -1220,57 +1485,205 @@ % \end{macro}^^A \tud@@headlogo % \end{macro}^^A \tud@headlogo % \end{macro}^^A \headlogo -% \begin{macro}{\tud@ddc@sethead} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A -% Dieser Befehl wurde mit der \TUDScript-Version~v2.02 entfernt. -% \end{macro}^^A \tud@ddc@sethead +% \begin{macro}{\footlogo} +% \changes{v2.03}{2015/01/27}{neu}%^^A +% \begin{macro}{\footlogosep} +% \changes{v2.03}{2015/01/27}{neu}%^^A +% \begin{length}{\footlogoheight} +% \changes{v2.03}{2015/01/27}{neu}%^^A % \begin{macro}{\tud@footlogo} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.03}{2015/01/27}{neu}%^^A +% \changes{v2.03}{2015/02/02}{optionale Parameter datei-individuell nutzbar}%^^A +% \begin{macro}{\tud@footlogo@parser} +% \changes{v2.03}{2015/02/02}{neu}%^^A % \begin{macro}{\tud@@footlogo} +% \changes{v2.03}{2015/01/27}{neu}%^^A +% \begin{macro}{\tud@@@footlogo} +% \changes{v2.03}{2015/01/27}{neu}%^^A +% Mit dem Befehl \cs{footlogo} kann eine kommasparierte Liste für Logos im +% Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden. +% \begin{macrocode} +\newlength\footlogoheight +\newcommand*\footlogosep{\hfill} +\newcommand*\footlogo[2][]{% + \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% + \def\tud@@footlogo{#2}% + \def\tud@@@footlogo{#1}% + \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% +} +\newcommand*\tud@@footlogo{} +\newcommand*\tud@@@footlogo{} +% \end{macrocode} +% Der Befehl \cs{tud@footlogo} wird genutzt, um die Logos für den Fuß innerhalb +% der Ebene \val{tudheadings.foot.logo} auszugeben. +% \begin{macrocode} +\DeclareListParser{\tud@footlogo@parser}{:}% +\newcommand*\tud@footlogo[1]{% + \begingroup% +% \end{macrocode} +% Dabei soll es möglich sein, optionale Parameter an \cs{includegraphics} zu +% übergeben. Dies soll zum einen global für alle Dateien als auch individuell +% für einzelne Logos möglich sein. Zu diesem Zweck wird die Schnittstelle für +% den Anwender so gestaltet, dass individuelle Parameter mit einem Doppelpunkt +% direkt an den Dateinamen angehangen werden können. +% \begin{macrocode} + \def\@tempa{}% + \def\@tempb{}% + \@tempswatrue% + \def\do##1{% + \if@tempswa% + \def\@tempa{##1}% + \@tempswafalse% + \else% + \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% + \fi% + }% + \tud@footlogo@parser{#1}% +% \end{macrocode} +% Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als +% letztes ausgeführt, um vorige Einstellungen überschreiben zu können. +% \begin{macrocode} + \protected@eappto\tud@@@footlogo{\@tempb}% +% \end{macrocode} +% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. +% \begin{macrocode} + \protected@epreto\tud@@@footlogo{% + keepaspectratio,totalheight=\the\footlogoheight,% + }% + \protected@edef\@tempc{\noexpand\includegraphics[\tud@@@footlogo]{\@tempa}}% + \vbox to \dimexpr\layerheight-\dp\strutbox\relax{% + \vfil\hbox{\@tempc}\vfil\vfil% + }% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@@@footlogo +% \end{macro}^^A \tud@@footlogo +% \end{macro}^^A \tud@footlogo@parser +% \end{macro}^^A \tud@footlogo +% \end{length}^^A \footlogoheight +% \end{macro}^^A \footlogosep +% \end{macro}^^A \footlogo +% \begin{macro}{\tud@ddclogo} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{macro}{\tud@@ddclogo} % \changes{v2.02}{2014/06/23}{neu, \cs{tud@foot@logo} umbenannt}%^^A +% \changes{v2.03}{2015/01/13}{Größe des Logos kompatibilitätsabhängig}%^^A % Diese Befehle dienen zum Einbinden des \DDC-Logos im Fuß der Seiten im Stil % \pgs{tudheadings}. % \begin{macrocode} -\newcommand*\tud@@footlogo{} -\newcommand*\tud@footlogo{% +\newcommand*\tud@@ddclogo{} +\newcommand*\tud@ddclogo{% \tud@ddc@check% - \ifcase \@tempb\relax\or% - \def\tud@@footlogo{DDC-22}% - \ifstr{\tud@head@color}{HKS41}{\def\tud@@footlogo{DDC-25}}{}% - \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@footlogo{DDC-25}}{}% - \ifstr{\tud@head@color}{white}{\def\tud@@footlogo{DDC-28}}{}% + \ifcase\@tempb\relax\or% + \def\tud@@ddclogo{DDC-22}% + \ifstr{\tud@foot@logocolor}{HKS41}{\def\tud@@ddclogo{DDC-25}}{}% + \ifstr{\tud@foot@logocolor}{cddarkblue}{\def\tud@@ddclogo{DDC-25}}{}% + \ifstr{\tud@foot@logocolor}{white}{\def\tud@@ddclogo{DDC-28}}{}% \or% - \def\tud@@footlogo{DDC-01}% + \def\tud@@ddclogo{DDC-01}% \or% - \def\tud@@footlogo{DDC-07}% + \def\tud@@ddclogo{DDC-07}% \or% - \def\tud@@footlogo{DDC-19}% + \def\tud@@ddclogo{DDC-19}% \or% - \def\tud@@footlogo{DDC-22}% + \def\tud@@ddclogo{DDC-22}% \or% - \def\tud@@footlogo{DDC-25}% + \def\tud@@ddclogo{DDC-25}% \or% - \def\tud@@footlogo{DDC-28}% + \def\tud@@ddclogo{DDC-28}% \fi% - \ifx\tud@@footlogo\@empty\else% - \includegraphics[height=\tud@dim@ddcfoot]{\tud@@footlogo}% + \ifx\tud@@ddclogo\@empty\else% + \let\tud@@@footlogo\relax% + \hfill\tud@footlogo{\tud@@ddclogo}% \fi% } % \end{macrocode} -% \end{macro}^^A \tud@@footlogo -% \end{macro}^^A \tud@footlogo +% \end{macro}^^A \tud@@ddclogo +% \end{macro}^^A \tud@ddclogo +% \begin{macro}{\tud@ddc@sethead} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A % \begin{macro}{\tud@ddc@setfoot} % \changes{v2.02}{2014/06/23}{entfernt}%^^A -% Dieser Befehl wurde mit der \TUDScript-Version~v2.02 entfernt. +% Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt. % \end{macro}^^A \tud@ddc@setfoot +% \end{macro}^^A \tud@ddc@sethead % % \iffalse %</class&body> %<*class&option> % \fi % +% \begin{option}{cdhead} +% \changes{v2.03}{2015/01/29}{neu}%^^A +% \begin{macro}{\tud@head@font} +% \changes{v2.03}{2015/02/04}{neu}%^^A +% \begin{macro}{\if@tud@head@font@locked} +% \changes{v2.03}{2015/02/04}{neu}%^^A +% \begin{macro}{\tud@head@bar} +% \changes{v2.03}{2015/02/04}{neu}%^^A +% \begin{macro}{\if@tud@head@widebar} +% \changes{v2.03}{2015/02/14}{neu}%^^A +% \begin{macro}{\if@tud@head@widebar@locked} +% \changes{v2.03}{2015/02/14}{neu}%^^A +% Mit dieser Option wird die zentrale Benutzerschnittstelle für Einstellungen +% des typischen Querbalkens für den TUD-Kopf geschaffen. Durch sie können +% sowohl die verwendete Schrift als auch die Stärke für den Balkentext +% (Institut, Fakultät etc.) geändert werden. Zusätzlich ist die Laufweite des +% Querbalkens bzw. die Farbe einstellbar. +% \begin{macrocode} +\cs@lock{tud@head@font}{0} +\newcommand*\tud@head@bar{0} +\bool@lock{@tud@head@widebar} +\TUD@key{cdhead}[true]{% + \TUD@set@numkey{cdhead}{@tempa}{% + \TUD@numkey@bool,% + {nocd}{0},{nocdfont}{0},{nocdfonts}{0},{notudfonts}{0},% + {cd}{1},{cdfont}{1},{cdfonts}{1},{tudfonts}{1},% + {light}{1},{lightfont}{1},{lite}{1},{litefont}{1},{noheavyfont}{1},% + {heavy}{2},{heavyfont}{2},% + {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% + {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% + {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% + {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% + {bicolor}{5},{bicolour}{5},{twocolor}{5},{twocolour}{5},% + {bichrome}{5},{bichromatic}{5},{dichrome}{5},{dichromatic}{5},% + {color}{5},{colour}{5},% + {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5},% + {textwidth}{6},{slim}{6},{slimhead}{6},{nowide}{6},{nowidehead}{6},% + {paperwidth}{7},{wide}{7},{widehead}{7}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% + \cs@set@lock{tud@head@font}{0}% + \or% + \cs@set@lock{tud@head@font}{1}% + \or% + \cs@set@lock{tud@head@font}{2}% + \or% + \def\tud@head@bar{0}% + \or% + \def\tud@head@bar{1}% + \or% + \def\tud@head@bar{2}% + \or% + \bool@set@lock{@tud@head@widebar}{false}% + \or% + \bool@set@lock{@tud@head@widebar}{true}% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@head@widebar@locked +% \end{macro}^^A \if@tud@head@widebar +% \end{macro}^^A \tud@head@bar +% \end{macro}^^A \if@tud@head@font@locked +% \end{macro}^^A \tud@head@font +% \end{option}^^A cdhead % \begin{option}{cdfoot} -% \begin{macro}{\if@tud@cdfoot} +% \changes{v2.03}{2015/02/02}{Option \opt{extrabottommargin} bei Längenangabe +% indirekt nutzbar}%^^A +% \begin{macro}{\if@tud@footcolor} % \begin{macro}{\tud@ps@store} % \changes{v2.02}{2014/06/23}{neu}%^^A % \begin{macro}{\tud@@ps@store} @@ -1281,21 +1694,41 @@ % \changes{v2.02}{2014/06/23}{neu}%^^A % Dieser Seitenstil mit dem Kolumnentitel im Fuß wurde bereits für die alte % \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten -% werden. +% werden. Zusätzlich kann mit dieser Option ggf. ein farbiger Hintergrund in +% der Fußzeile aktiviert werden. % \begin{macrocode} -\newif\if@tud@cdfoot +\newif\if@tud@footcolor \TUD@key{cdfoot}[true]{% - \TUD@set@ifkey{cdfoot}{@tud@cdfoot}{#1}% + \TUD@set@numkey{cdfoot}{@tempa}{% + \TUD@numkey@bool,% + {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% + {color}{3},{colour}{3},% + {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% +% \end{macrocode} +% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore} +% wiederhergestellt. Dies wird allerdings frühestens nach dem Laden von +% \pkg{scrlayer-scrpage} durchgeführt. +% \begin{macrocode} + \TUD@AfterPackage{scrlayer-scrpage}{% + \tud@ps@restore{scrheadings}% + \tud@ps@restore{plain.scrheadings}% + \tud@font@koma@unset{pageheadfoot}% + }% % \end{macrocode} % Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@store} % gesichert, um gegebenenfalls zurückschalten zu können. Anschließend werden -% diese mit dem neuen Stil überschrieben. +% diese mit dem neuen Stil überschrieben. Dies wird allerdings frühestens nach +% dem Laden von \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument% - \if@tud@cdfoot% - \tud@ps@store{headings}% - \tud@ps@store{plain}% + \or% + \TUD@AfterPackage{scrlayer-scrpage}{% + \tud@ps@store{scrheadings}% + \tud@ps@store{plain.scrheadings}% \tud@font@koma@set{pageheadfoot}{\upshape}% \clearpairofpagestyles% \ofoot[\pagemark]{% @@ -1303,34 +1736,38 @@ {\footnotesize\headmark}% \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% }% + }% % \end{macrocode} -% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore} -% wiederhergestellt. +% Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden. % \begin{macrocode} - \else% - \tud@ps@restore{headings}% - \tud@ps@restore{plain}% - \tud@font@koma@unset{pageheadfoot}% - \fi% + \or% + \@tud@footcolorfalse% + \or% + \@tud@footcolortrue% \fi% +% \end{macrocode} +% Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. +% \begin{macrocode} + \else% + \TUDoptions{extrabottommargin=#1}% \fi% } % \end{macrocode} % Die nächsten beiden Befehle dienen zum Sichern der Kopf- und Fußzeilen\dots % \begin{macrocode} \newcommand*\tud@ps@store[1]{% - \tud@@ps@store{#1}{odd}{left}{head}{}% - \tud@@ps@store{#1}{odd}{right}{head}{}% - \tud@@ps@store{#1}{odd}{middle}{head}{}% - \tud@@ps@store{#1}{even}{left}{head}{}% - \tud@@ps@store{#1}{even}{right}{head}{}% - \tud@@ps@store{#1}{even}{middle}{head}{}% - \tud@@ps@store{#1}{odd}{left}{foot}{}% - \tud@@ps@store{#1}{odd}{right}{foot}{}% - \tud@@ps@store{#1}{odd}{middle}{foot}{}% - \tud@@ps@store{#1}{even}{left}{foot}{}% - \tud@@ps@store{#1}{even}{right}{foot}{}% - \tud@@ps@store{#1}{even}{middle}{foot}{}% + \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} @@ -1338,40 +1775,35 @@ % \begin{macrocode} \newcommand*\tud@@ps@store[4]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% - \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@\@nameuse{sls@current#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]{% \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% - \csletcs{sls@ps@\@nameuse{sls@current#1}@#2@#3@#4}{@@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} -% Damit die Einstellungen aus der Präambel übernommen werden, wird die Option -% ggf. zu Beginn mit \cs{AtBeginDocument} aufgerufen. -% \begin{macrocode} -\AtBeginDocument{\if@tud@cdfoot\TUDoptions{cdfoot=true}\fi} -% \end{macrocode} % \end{macro}^^A \tud@@ps@restore % \end{macro}^^A \tud@ps@restore % \end{macro}^^A \tud@@ps@store % \end{macro}^^A \tud@ps@store -% \end{macro}^^A \if@tud@cdfoot +% \end{macro}^^A \if@tud@footcolor % \end{option}^^A cdfoot % \begin{macro}{\tud@ps@headings} % \changes{v2.02}{2014/06/23}{entfernt}%^^A @@ -1385,7 +1817,7 @@ % \end{macro}^^A \tud@ps@plain % \end{macro}^^A \tud@ps@myheadings % \end{macro}^^A \tud@ps@headings -% \begin{option}{geometry} +% \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 @@ -1402,8 +1834,8 @@ % Satzspiegeloptionen umgesetzt und nachfolgend definiert. % \begin{macrocode} \newcommand*\tud@geometry{0} -\TUD@key@lock{geometry}[true]{% - \TUD@set@numkey@lock{geometry}{tud@geometry}{% +\TUD@key@lock{cdgeometry}[true]{% + \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% \TUD@numkey@bool,% {typearea}{0},% {tud}{1},{asymmetric}{1},{cd}{1},% @@ -1417,7 +1849,7 @@ % \end{macrocode} % \end{macro}^^A \if@tud@geometry@locked % \end{macro}^^A \tud@geometry -% \end{option}^^A geometry +% \end{option}^^A cdgeometry % % \iffalse %</class&option> @@ -1428,18 +1860,22 @@ % \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@footskip} +\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 @@ -1455,7 +1891,7 @@ % 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} +\newlength\tud@ta@headdiff % \end{macrocode} % \end{length}^^A \tud@ta@footdiff % \end{length}^^A \tud@ta@headdiff @@ -1474,11 +1910,16 @@ % \begin{macrocode} \newcommand*\tud@geometry@restore{} \AfterCalculatingTypearea{% - \setlength{\tud@ta@textheight}{\textheight}% - \setlength{\tud@ta@topmargin}{\topmargin}% - \setlength{\tud@ta@headheight}{\headheight}% - \setlength{\tud@ta@headsep}{\headsep}% - \setlength{\tud@ta@footskip}{\footskip}% + \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}% \let\tud@geometry@restore\Gm@restore@org% \if@atdocument% \let\Gm@restore@org\relax% @@ -1487,7 +1928,8 @@ % 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@beforepagestyle} zu erzwingen. +% erneute und korrekte Ausführen von \cs{tud@beforeselectanypagestyle} zu +% erzwingen. % \begin{macrocode} \gdef\tud@currentgeometry{}% \expandafter\pagestyle\expandafter{\currentpagestyle}% @@ -1498,25 +1940,26 @@ % \end{macro}^^A \tud@geometry@restore % \begin{macro}{\tud@geometry@hmargin} % \begin{macro}{\tud@geometry@vmargin} -% \begin{macro}{\tud@geometry@pmargin} -% \begin{macro}{\tud@geometry@dmargin} -% Dies sind Hilfsmakros zur Definition unterschiedicher Seitenlayouts -% (horizontale und vertikale Ränder). Es handelt sich dabei um die Definition -% der horizontalen und vertikalen Seitenränder sowie die angepassten vertikalen -% Einstellungen für die Seitenstilvarianten mit TUD-Kopf und/oder \DDC-Fuß. -% Gesetzt werden diese in Abhängigkeit von der Option \opt{geometry} im +% \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@pmargin{} -\newcommand*\tud@geometry@dmargin{} +\newcommand*\tud@geometry@tudmargin{} +\iftudscrverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{} % \end{macrocode} -% \end{macro}^^A \tud@geometry@dmargin -% \end{macro}^^A \tud@geometry@pmargin +% \end{macro}^^A \tud@geometry@ddcmargin +% \end{macro}^^A \tud@geometry@tudmargin % \end{macro}^^A \tud@geometry@vmargin % \end{macro}^^A \tud@geometry@hmargin -% \changes{v2.02}{2014/06/29}{Verzögertes Laden von \pkg{geometry}}%^^A +% \changes{v2.02}{2014/06/29}{\pkg{geometry} Laden verzögert}%^^A % Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und % der Seitenränder, wie es vom \CD der TU~Dresden verlangt wird. Damit dieses % alle Satzspiegeleinstellungen korrekt vornimmt und auch alle Klassenoptionen @@ -1528,7 +1971,7 @@ % \opt{crop} geladen wurde, um die Seitenränder nicht zu ändern. % \begin{macrocode} \AtEndPreamble{% - \tud@ifsacrop{}{% + \ifstandalonecrop{}{% \recalctypearea% \RequirePackage{geometry}[2010/09/12]% \tud@geometry@process% @@ -1538,6 +1981,9 @@ % \end{macrocode} % \begin{macro}{\tud@geometry@process} % \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A +% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}%^^A +% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}%^^A +% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}%^^A % \begin{macro}{\tud@geometry@@process} % Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten % Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der @@ -1562,52 +2008,73 @@ % Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros % für die Erstellung der \pkg{geometry}-Satzspiegel übergeben. % \begin{macrocode} - \ifcase \tud@geometry\relax% + \ifcase\tud@geometry\relax% \def\tud@geometry@hmargin{% left=\dimexpr\oddsidemargin+1in\relax,% width=\textwidth,% + marginparwidth=\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% + \if@twoside\if@reversemargin% + marginparwidth=\dimexpr\oddsidemargin+1in-\tud@ta@headsep\relax,% + \fi\fi% + marginparsep=.5\tud@ta@headsep,% }% \def\tud@geometry@vmargin{% - top={% - \dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep+1in\relax% - },% + top=\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% + +1in\relax,% headheight=\tud@ta@headheight,% headsep=\tud@ta@headsep,% textheight=\tud@ta@textheight,% footskip=\tud@ta@footskip,% }% - \def\tud@geometry@pmargin{% - top={% - \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax% - },% - headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax,% + \def\tud@geometry@tudmargin{% + top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + +\tud@dim@headsep\relax,% + headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -\tud@dim@logoy\relax,% headsep=\tud@dim@headsep,% textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,% - footskip=\tud@ta@footskip,% - }% - \def\tud@geometry@dmargin{% - textheight={% - \dimexpr\tud@ta@textheight-\tud@ta@headdiff-\tud@dim@ddcdiff\relax% - },% - footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,% + ignorehead,% }% % \end{macrocode} % Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile % für den \pkg{typearea}-Satzspiegel berechnet. % \begin{macrocode} - \setlength{\tud@ta@headdiff}{\dimexpr% - \tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% - \setlength{\tud@dim@ddcdiff}{\dimexpr% - \tud@dim@ddcfoot-\tud@ta@footskip+\tud@dim@footskip\relax% + \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}% + \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% + \fi% +% \end{macrocode} +% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen +% separaten Satzspiegel. +% \begin{macrocode} + \iftudscrverlower{2.03}{% + \setlength\tud@dim@ddcdiff{% + \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% + +\tud@ta@footheight-1.25\baselineskip\relax% + }% + \def\tud@geometry@ddcmargin{% + textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff% + -\tud@dim@ddcdiff\relax,% + footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,% + }% + }{}% +% \end{macrocode} +% Sollte die Option \opt{extrabottommargin} verwendet worden sein, wird eine +% Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos +% ist. +% \begin{macrocode} + \ifdim\tud@dim@extrabottommargin=\z@\relax\else% + \ClassWarning{\tudcls@name}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea is used (`cdgeometry=no')% + }% \fi% % \end{macrocode} % Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische @@ -1616,10 +2083,16 @@ % unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil. % \begin{macrocode} \else% - \ifcase \tud@geometry\or% + \ifcase\tud@geometry\or% \def\tud@geometry@hmargin{% - left=\tud@dim@left,% + left=\tud@dim@widemargin,% textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \if@reversemargin% + marginparwidth=\dimexpr\tud@dim@widemargin-\tud@ta@headsep\relax,% + \else% + marginparwidth=\dimexpr\tud@dim@slimmargin-\tud@ta@headsep\relax,% + \fi% + marginparsep=.5\tud@ta@headsep,% bindingoffset=\ta@bcor,% \if@twoside asymmetric,\fi% }% @@ -1631,6 +2104,8 @@ \def\tud@geometry@hmargin{% left=.5\tud@dim@both,% textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + marginparsep=.5\tud@ta@headsep,% bindingoffset=\ta@bcor,% }% % \end{macrocode} @@ -1648,67 +2123,106 @@ left=.5\tud@dim@both,% \fi% textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \if@twoside% + \if@reversemargin% + marginparwidth=\dimexpr.4\tud@dim@both-\tud@ta@headsep\relax,% + \else% + marginparwidth=\dimexpr.6\tud@dim@both-\tud@ta@headsep\relax,% + \fi% + \else% + marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + \fi% + marginparsep=.5\tud@ta@headsep,% bindingoffset=\ta@bcor,% }% \fi% % \end{macrocode} -% Für alle drei Varianten der vertikale Gleichanteil. -% \begin{macrocode} - \def\tud@geometry@vmargin{% - top=\tud@dim@top,% - headheight=\tud@ta@headheight,% - headsep=\tud@dim@headsep,% - bottom=\tud@dim@bottom,% - footskip=\tud@dim@footskip,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% +% Für alle drei Varianten der vertikale Gleichanteil. Der Satzspiegel der +% Version~v2.02 wird aus Gründen der Kompatibilität weiterhin vorgehalten. +% \begin{macrocode} + \iftudscrverlower{2.03}{% + \def\tud@geometry@vmargin{% + top=.5\tud@dim@both,% + headheight=\tud@ta@headheight,% + headsep=\tud@dim@headsep,% + bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% + footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl,% + }% + }{% + \def\tud@geometry@vmargin{% + top=\tud@dim@slimmargin,% + headheight=\tud@ta@headheight,% + headsep=\tud@ta@headsep,% + bottom=\dimexpr\tud@dim@widemargin+\tud@dim@extrabottommargin\relax,% + footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl,% + }% }% - \def\tud@geometry@pmargin{% - top={% - \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax% - },% - headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax,% + \def\tud@geometry@tudmargin{% + top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + +\tud@dim@headsep\relax,% + headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -\tud@dim@logoy\relax,% headsep=\tud@dim@headsep,% - bottom=\tud@dim@bottom,% - footskip=\tud@dim@footskip,% - }% -% \end{macrocode} -% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß -% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt. -% \begin{macrocode} - \def\tud@geometry@dmargin{% - \if@fincl% - bottom=\dimexpr% - \tud@dim@bottom+\tud@dim@ddcfoot+\tud@dim@footskip\relax,% - \else% - bottom=\dimexpr\tud@dim@bottom+\tud@dim@ddcfoot\relax,% - \fi% - footskip=\dimexpr\tud@dim@footskip+\tud@dim@ddcfoot\relax,% + 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@headheight+\tud@dim@barheight% - +\tud@dim@headsep-\tud@dim@top\relax% - }% - \setlength{\tud@dim@ddcdiff}{\dimexpr% - \tud@dim@ddcfoot+2\tud@dim@footskip-\tud@dim@bottom\relax% + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@slimmargin\relax% }% +% \end{macrocode} +% Für die Kompatibilitätsvariante wieder mal die Extrawurst\dots +% \begin{macrocode} + \iftudscrverlower{2.03}{% + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -.5\tud@dim@both\relax% + }% +% \end{macrocode} +% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß +% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt. +% \begin{macrocode} + \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% + \def\tud@geometry@ddcmargin{% + \if@fincl% + bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff\relax,% + \fi% + footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + }% + }{}% \fi% % \end{macrocode} % Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile % für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige % vertikale Verschiebung der Überschriften festgelegt. % \begin{macrocode} - \ifdim\tud@ta@headdiff<\z@\relax\setlength{\tud@ta@headdiff}{\z@}\fi% + \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% \global\tud@ta@headdiff=\tud@ta@headdiff% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength{\tud@dim@ddcdiff}{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - \setlength{\tud@dim@headingsvskip}{.6\tud@dim@headheight}% + \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% % \end{macrocode} +% Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren +% Seitenfuß gesetzt. +% \begin{macrocode} + \iftudscrverlower{2.03}{% + \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + }{}% +% \end{macrocode} % Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten % Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu % erstellen. @@ -1726,32 +2240,34 @@ % \begin{macrocode} \newcommand*\tud@geometry@@process{% % \end{macrocode} -% Als erstes wird der Satzspiegel für TUD-Kopf und \DDC-Fuß erstellt. Das -% Einbeziehen der Fußzeile in den Satzspiegel erfolgt ggf. manuell bei der -% Definition von \cs{tud@geometry@dmargin}. -% \begin{macrocode} - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@pmargin,% - \tud@geometry@dmargin,% - ignorehead,ignorefoot,% - }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudareaddc}% +% Für den Satzspiegel der Version~v2.02 wird als erstes der Satzspiegel für den +% TUD-Kopf zusammen mit dem \DDC-Fuß erstellt. Das Einbeziehen der Fußzeile in +% den Satzspiegel erfolgt nicht ggf. über die Option \opt{includefoot} sondern +% manuell bei der Definition von \cs{tud@geometry@ddcmargin}. +% \begin{macrocode} + \iftudscrverlower{2.03}{% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin,% + \tud@geometry@tudmargin,% + \tud@geometry@ddcmargin,% + ignorehead,ignorefoot,% + }% + \expandafter\newgeometry\expandafter{\@tempa}% + \savegeometry{tudareaddc}% + }{}% % \end{macrocode} -% Danach folgt der Seitenstil, welcher zwar den TUD-Kopf aber lediglich die -% Standardfußzeile hat. +% Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile. % \begin{macrocode} \edef\@tempa{% \tud@geometry@hmargin,% - \tud@geometry@pmargin,% - ignorehead,% - \tud@geometry@fincl% + \tud@geometry@vmargin,% + \tud@geometry@tudmargin,% }% \expandafter\newgeometry\expandafter{\@tempa}% \savegeometry{tudarea}% % \end{macrocode} -% Der Standardsatzspiegel wird erstellt. +% Als letztes wird der Standardsatzspiegel erstellt. % \begin{macrocode} \edef\@tempa{% \tud@geometry@hmargin,% @@ -1796,15 +2312,16 @@ % \changes{v2.02}{2014/07/18}{neu}%^^A % \begin{macro}{\tud@currentpagestyle@reset} % \changes{v2.02}{2014/07/18}{neu}%^^A +% \changes{v2.03}{2015/01/09}{Bugfix, wenn \cs{tud@currentpagestyle} void}%^^A % Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout % temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern. % Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}. % Dabei wird mit \cs{loadgeometry} ein Seitenumbruch erzwungen und der % benötigte Satzspiegel geladen. % -% Die Befehle \cs{tud@currentpagestyle@set} und -% \cs{tud@currentpagestyle@reset} sind für die Sicherung und Wiederherstellung -% des vor der Umgebung geladenen Seitenstils verantwortlich. +% Die Befehle \cs{tud@currentpagestyle@set} und \cs{tud@currentpagestyle@reset} +% sind für die Sicherung und Wiederherstellung des vor der Umgebung geladenen +% Seitenstils verantwortlich. % % Zu Beginn der Umgebung werden die weiter unten beschriebenen Optionen für % diese Umgebung mit \cs{TUD@parameter@set} ausgeführt. Nach dem Beenden der @@ -1815,12 +2332,22 @@ \newcommand*\tud@ps{tudheadings} \newcommand*\tud@ps@select{% \expandafter\pagestyle\expandafter{\tud@ps}% + \ifstr{\GetRealPageStyle{\tud@ps}}{empty}{% + \renewcommand*\titlepagestyle{empty}% %<*book|report> - \ifstr{\tud@ps}{empty}{\renewcommand*\chapterpagestyle{empty}}{}% - \ifstr{\tud@ps}{empty.tudheadings}{% - \renewcommand*\chapterpagestyle{empty.tudheadings}% + \renewcommand*\partpagestyle{empty}% + \renewcommand*\chapterpagestyle{empty}% +%</book|report> + \renewcommand*\indexpagestyle{empty}% }{}% + \ifstr{\GetRealPageStyle{\tud@ps}}{empty.tudheadings}{% + \renewcommand*\titlepagestyle{empty.tudheadings}% +%<*book|report> + \renewcommand*\partpagestyle{empty.tudheadings}% + \renewcommand*\chapterpagestyle{empty.tudheadings}% %</book|report> + \renewcommand*\indexpagestyle{empty.tudheadings}% + }{}% } \newcommand*\tud@currentpagestyle{} \newcommand*\tud@currentpagestyle@set{% @@ -1829,8 +2356,10 @@ }{}% } \newcommand*\tud@currentpagestyle@reset{% - \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% - \let\tud@currentpagestyle\relax% + \ifdefvoid{\tud@currentpagestyle}{}{% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% + \let\tud@currentpagestyle\relax% + }% } \NewEnviron{tudpage}[1][]{% % \end{macrocode} @@ -1838,8 +2367,9 @@ % dieser im Hilfsmakro \cs{tud@currentpagestyle} gespeichert. % \begin{macrocode} \tud@currentpagestyle@set% - \clearpage\def\tud@ps{tudheadings}% - \TUD@parameter@set[tudpage]{#1}% + \clearpage% + \def\tud@ps{tudheadings}% + \TUD@parameter@set{tudpage}{#1}% \tud@ps@select% \tud@multicols@check% % \end{macrocode} @@ -1871,45 +2401,51 @@ % \end{macro}^^A \tud@ps@select % \end{macro}^^A \tud@ps % \end{environment}^^A tudpage +% \begin{macro}{\TUD@parameter@define@ps} % Im Folgenden werden die einzelnen Parameter für die \env{tudpage}"=Umgebung -% definiert. Mit \cs{TUD@parameter}\marg{Family}\marg{\dots} wird die -% Parameterfamilie festgelegt und anschließend die Definitionen getätigt. +% 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} -\TUD@parameter{tudpage}{% +\newcommand*\TUD@parameter@define@ps[1]{% % \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{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{language}{\selectlanguage{#1}}% + \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% % \end{macrocode} -% \end{parameter} ^^A language -% \begin{parameter}{columns} -% Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für -% mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die -% Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter -% angegeben werden. +% \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{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{cdhead}[true]{\TUDoption{cdhead}{#1}}% % \end{macrocode} -% \end{parameter} ^^A columns -% \begin{parameter}{color} -% \begin{parameter}{colour} -% Die \opt{color}"=Option ändert die Farbe von Schrift, Querbalken und im -% pdf\LaTeX-Modus auch die des TUD-Logos. +% \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{color}[HKS41]{\def\tud@head@color{#1}}% - \TUD@parameter@let{colour}{color}% + \TUD@parameter@define{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% % \end{macrocode} -% \end{parameter}^^A colour -% \end{parameter}^^A color -% \begin{parameter}{widehead} -% Die Breite des Querbalkens kann ebenfalls geändert werden. +% \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{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@define{headlogo}{\headlogo{#1}}% + \TUD@parameter@define{footlogo}{\footlogo{#1}}% % \end{macrocode} -% \end{parameter}^^A widehead +% \end{parameter}^^A footlogo +% \end{parameter}^^A headlogo % \begin{parameter}{ddc} % \changes{v2.02}{2014/08/16}{neu}%^^A % \begin{parameter}{ddchead} @@ -1920,79 +2456,110 @@ \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}% \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% % \end{macrocode} -% \end{parameter}^^A ddc -% \end{parameter}^^A ddchead % \end{parameter}^^A ddcfoot -% \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, Funktinalität teilweise durch Option -% \opt{ddcfoot} übernommen}%^^A -% Diese Parameter wurden entfernt. Innerhalb der Umgebung können hierfür -% \cs{TUDoptions} mit den Schlüsseln \opt{ddchead=\dots} und \opt{ddcfoot=\dots} -% sowie \cs{headlogo} bzw. für den Querbalken \opt{widehead=true/false} genutzt -% werden. -% \end{parameter}^^A head -% \end{parameter}^^A foot -% \begin{parameter}{cdfont} +% \end{parameter}^^A ddchead +% \end{parameter}^^A ddc % \begin{parameter}{cdfonts} -% \changes{v2.02}{2014/08/08}{entfernt}^^A % \begin{parameter}{tudfonts} -% \changes{v2.02}{2014/08/08}{entfernt}^^A -% Die Option \opt{cdfont} bzw. \opt{cdfonts} bestimmt, ob die Schriften des -% \CDs{} oder aber die standarmäßigen Serifenlosen für die Auszeichnugen in der -% Kopfzeile und Serifen im Inhalt verwendet werden. +% \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{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \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 -% \end{parameter}^^A cdfont -% \begin{parameter}{barfont} -% \changes{v2.02}{2014/07/08}{neu}%^^A -% Mit der Option \opt{headfont} kann die Verwendung der Schriften des \CDs -% aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. +% Damit sind alle notwendigen Parameter für die Kopf- und Fußzeile der Seiten +% im Stil \pgs{tudheadings} definiert. % \begin{macrocode} - \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}% +} +% \end{macrocode} +% \end{macro}^^A \TUD@parameter@define@ps +% Mit \cs{TUD@parameter}\marg{Family}\marg{\dots} wird die Parameterfamilie +% festgelegt und anschließend die Definitionen getätigt. +% \begin{macrocode} +\TUD@parameter{tudpage}{% +% \end{macrocode} +% \begin{parameter}{language} +% Mit diesem Parameter kann die Sprache in der Umgebung umgeschaltet werden. Die +% Sprache kann auch ohne den entsprechenden Schlüssel direkt als Parameter +% angegeben werden. +% \begin{macrocode} + \TUD@parameter@define{language}{\selectlanguage{#1}}% +% \end{macrocode} +% \end{parameter} ^^A language +% \begin{parameter}{columns} +% Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für +% mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die +% Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter +% angegeben werden. +% \begin{macrocode} + \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% % \end{macrocode} -% \end{parameter}^^A headfont +% \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{iftudpagestyle} verwendet}%^^A % Mit diesem Parameter kann der verwendete Seitenstil eingestellt werden, wobei -% entweder \pgs{tudheadings} oder aber\pgs{plain.tudheadings} bzw. -% \pgs{empty.tudheadings} verwendet wird. +% einer der \pgs{tudheadings}-Seitenstile verwendet wird. % \begin{macrocode} \TUD@parameter@define{pagestyle}{% - \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% - \ifstr{#1}{empty.tudheadings}{\renewcommand*\tud@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% - \ifstr{#1}{plain.tudheadings}{\renewcommand*\tud@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% - \ifstr{#1}{tudheadings}{\renewcommand*\tud@ps{tudheadings}}{% - \TUD@parameter@wrn{pagestyle}{% - headings, plain, empty or any tudheadings page style type% - }% - }}}}}}% + \iftudpagestyle{#1}{\renewcommand*\tud@ps{#1}}{% + \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% + \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% + \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% + \TUD@parameter@error{pagestyle}{% + headings, plain, empty or any tudheadings page style type% + }% + }}}% + }% }% % \end{macrocode} % \end{parameter}^^A pagestyle -% \begin{parameter}{headlogo} -% \begin{parameter}{logo} -% Das sekundäre Logo kann ebenfalls lokal geändert werden. +% \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, Funktinalitä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{headlogo}{\headlogo{#1}}% - \TUD@parameter@let{logo}{headlogo}% + \TUD@parameter@define@ps{#1}% % \end{macrocode} -% \end{parameter}^^A logo -% \end{parameter}^^A headlogo % Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben -% wird, erfolgt eine Sonderbehandlung durch \cs{tud@environmenthandler}, bei der -% erst auf eine Zahl geprüft wird und anschießend versucht wird, das Argument -% als Sprache zu setzen. Nach der Definition aller Parameter wird der Befehl -% \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie beendet. +% wird, erfolgt eine Sonderbehandlung durch \cs{TUD@parameter@defaulthandler}, +% bei dererst auf eine Zahl geprüft wird und anschießend versucht wird, das +% Argument als Sprache zu setzen. Nach der Definition aller Parameter wird der +% Befehl \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie +% beendet. % \begin{macrocode} - \TUD@parameter@sethandler{\tud@environmenthandler{#1}}% + \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% } % \end{macrocode} % |