summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx')
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx1164
1 files changed, 603 insertions, 561 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx b/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
index 67b272b9cb..05e5d75bae 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-pagestyle.dtx
@@ -1,10 +1,10 @@
-% \CheckSum{2046}
% \iffalse meta-comment
+%/GitFileInfo=tudscr-pagestyle.dtx
%
% TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
-% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2022
%
% ----------------------------------------------------------------------------
%
@@ -23,33 +23,19 @@
%
% \fi
%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: tudscr-pagestyle.dtx
+% \iffalse ins:batch + dtx:driver
+%<*ins>
+\ifx\documentclass\undefined
+ \input docstrip.tex
+ \ifToplevel{\batchinput{tudscr.ins}}
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+%</ins>
%<*dtx>
-% \fi
-%
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\ProvidesFile{tudscr-pagestyle.dtx}[2021/03/30 v2.06l TUD-Script\space%
- (pagestyle)%
-]
-%
-% \iffalse
+\ProvidesFile{tudscr-pagestyle.dtx}[2022/08/09]
+\RequirePackage{tudscr-gitinfo}
\documentclass[english,ngerman,xindy]{tudscrdoc}
\iftutex
\usepackage{fontspec}
@@ -59,18 +45,11 @@
\fi
\usepackage{babel}
\usepackage{tudscrfonts}
-\KOMAoptions{parskip=half-}
-\usepackage{bookmark}
\usepackage[babel]{microtype}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{tudscr-pagestyle.dtx}
-\title{\file{\filename}}
-\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}}
-\date{\fileversion\nobreakspace(\filedate)}
-
+\GitHubBase{\TUDScriptRepository}
\begin{document}
+ \author{Falk Hanisch\TUDScriptContactTitle}
\maketitle
\tableofcontents
\DocInput{\filename}
@@ -84,15 +63,15 @@
% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
% \changes{v2.05}{2015/07/06}{Seitenstil für Poster}^^A
%
+%
+%
% \section{Der Seitenstil des \CDs}
%
-% Es wird der Seitenstil des \CD der \TnUD mit Logo und dem charakteristischen
+% Es wird der Seitenstil des \TUDCD mit Logo und dem charakteristischen
% Querbalken im Kopfbereich definiert. Hierfür kommt das \KOMAScript-Paket
% \pkg{scrlayer-scrpage} zum Einsatz.
% \ToDo{Abhängigkeiten Satzspiegel<>Seitenstil beseitigen}[v2.07]
%
-% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
-%
% \iffalse
%<*class&body>
% \fi
@@ -110,12 +89,16 @@
% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv,
% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das
% Laden von \pkg{scrlayer-scrpage} verhindert.
+% \ToDo{Setzen der Boxen mit \cs{tud@vlayerbox} komplett überarbeiten}[v2.07]
+% \ToDo{lazy init der Boxen für Grafiken?}[v2.07]
% \begin{macrocode}
\if@tud@x@standalone@crop
\PreventPackageFromLoading{scrlayer-scrpage}%
\else
\PassOptionsToPackage{automark}{scrlayer-scrpage}%
- \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2020/09/21]}%
+ \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[%
+%!TUD@KOMAVersion
+ ]}%
\fi
% \end{macrocode}
% Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage}
@@ -132,12 +115,21 @@
% \changes{v2.02}{2014/06/23}{neu}^^A
% \begin{layerpagestyle}{empty.tudheadings}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% Es wird ein neuer Seitenstil kreiert, der das \CD der \TnUD mit der
-% prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein,
-% wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket
-% \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD
-% vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum
-% Textblock gesetzt.
+% Es wird ein neuer Seitenstil kreiert, der das \TUDCD 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.
+%
+% \Attention{%
+% Um Längenangaben aus Makros sicher auf Dimensionsausdrücke zu reduzieren,
+% müssen diese in \cs{dimexpr}\cs{glueexpr}\val{\dots}\cs{relax}\cs{relax}
+% eingehüllt werden. Das Paket \pkg{scrlayer} verwendet allerdings lediglich
+% \cs{dimexpr}, weshalb hier noch zusätzlich \cs{glueexpr} genutzt wird. Dies
+% ist insbesondere für \cs{tud@bleedmargin@dim} relevant. Siehe hierzu auch
+% \GitHubRepo(latex3/latex2e)<227>.
+% }
+%
% \begin{layer}{tudheadings.head.content}
% \changes{v2.04}{2015/05/31}{neu}^^A
% Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD und das
@@ -146,10 +138,10 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,headsep,%
- addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,%
- addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,%
- voffset=\tud@len@logoy,%
- addvoffset=\tud@len@layoutvoffset,%
+ addhoffset=\tud@dim@logox-\tud@dim@widemargin,%
+ addwidth=-\tud@dim@logox+\tud@dim@widemargin,%
+ voffset=\tud@dim@logoy,%
+ addvoffset=\tud@dim@layoutvoffset,%
contents={%
% \end{macrocode}
% Vor der Ausgabe der Logoboxen werden diese im Bedarfsfall neu gesetzt.
@@ -171,10 +163,10 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,%
- width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
- addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
- height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,%
- addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,%
+ width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,%
+ addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,%
+ height=\glueexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,%
+ addvoffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,%
contents={%
\ifnum\tud@head@bar@num>\tw@\relax% cdhead=color
\color{HKS41}%
@@ -184,16 +176,16 @@
]{tudheadings.head.back}%
\DeclareNewLayer[%
background,%
- width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
- addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
- height=\tud@len@barheight,%
- voffset=\tud@len@topmargin,%
- addvoffset=\tud@len@layoutvoffset,%
+ width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,%
+ addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,%
+ height=\tud@dim@barheight,%
+ voffset=\tud@dim@topmargin,%
+ addvoffset=\tud@dim@layoutvoffset,%
contents={%
\ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color
\color{HKS41!60}%
- \setlength\@tempdima{\dimexpr\ht\strutbox-\tud@len@barheight\relax}%
- \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi%
+ \tud@setdim\@tempdima{\ht\strutbox-\tud@dim@barheight}%
+ \ifdim\@tempdima<\z@\relax\tud@setdim\@tempdima{\z@}\fi%
\raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}%
\fi%
},%
@@ -207,8 +199,8 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,headsep,%
- voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,%
- addvoffset=\tud@len@layoutvoffset,%
+ voffset=\tud@dim@topmargin+\tud@dim@line,%
+ addvoffset=\tud@dim@layoutvoffset,%
contents={%
\tud@head@font@set%
\tud@head@text@set%
@@ -233,8 +225,8 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,headsep,%
- voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,%
- addvoffset=\tud@len@layoutvoffset,%
+ voffset=\tud@dim@topmargin-\tud@dim@line/2,%
+ addvoffset=\tud@dim@layoutvoffset,%
contents={%
\ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
\if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi%
@@ -243,9 +235,8 @@
]{tudheadings.head.upline}%
\DeclareNewLayer[%
background,headsep,%
- voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight%
- -.5\tud@len@line\relax,%
- addvoffset=\tud@len@layoutvoffset,%
+ voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,%
+ addvoffset=\tud@dim@layoutvoffset,%
contents={%
\ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
\if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi%
@@ -254,10 +245,10 @@
]{tudheadings.head.lowline}%
\DeclareNewLayer[%
background,%
- width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
- addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
- voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,%
- addvoffset=\tud@len@layoutvoffset,%
+ width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,%
+ addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,%
+ voffset=\tud@dim@topmargin-\tud@dim@line/2,%
+ addvoffset=\tud@dim@layoutvoffset,%
contents={%
\ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
\if@tud@head@widebar\tud@head@rule{\layerwidth}\fi%
@@ -266,11 +257,10 @@
]{tudheadings.head.uplinewide}%
\DeclareNewLayer[%
background,%
- width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
- addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
- voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight%
- -.5\tud@len@line\relax,%
- addvoffset=\tud@len@layoutvoffset,%
+ width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,%
+ addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,%
+ voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,%
+ addvoffset=\tud@dim@layoutvoffset,%
contents={%
\ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor
\if@tud@head@widebar\tud@head@rule{\layerwidth}\fi%
@@ -288,8 +278,8 @@
% \begin{macrocode}
\DeclareNewLayer[%
foreground,headsep,%
- addvoffset=.5\tud@len@headsep,%
- height=\baselineskip,%
+ addvoffset=\tud@dim@headsep/2,%
+ height=1\baselineskip,%
contents={\if@tud@head@date\hfill\tud@date@print\fi},%
]{tudheadings.head.date}%
% \end{macrocode}
@@ -312,10 +302,10 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,foot,%
- width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,%
- hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,%
- height=\dimexpr\tud@len@layoutheight-\layeryoffset%
- +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,%
+ width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,%
+ hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,%
+ height=\glueexpr\tud@dim@layoutheight-\layeryoffset%
+ +\tud@dim@layoutvoffset+\tud@bleedmargin@dim\relax,%
addvoffset=-\dp\strutbox,%
contents={%
\if@tud@foot@colored%
@@ -330,7 +320,9 @@
\fi%
}{%
\def\@tempc{\color{HKS41}}%
- \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}%
+ \tud@if@strequal{\tud@pagecolor}{HKS41}%
+ {\def\@tempc{\color{HKS41!60}}}%
+ {}%
}%
\ifx\@tempc\relax\else%
\@tempc\rule{\layerwidth}{\layerheight}%
@@ -345,7 +337,7 @@
% \begin{macrocode}
\tud@if@v@lower{2.03}{%
\ModifyLayer[%
- addvoffset=-\tud@len@ddcdiff+\ht\strutbox,%
+ addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,%
contents={%
\if@tud@foot@colored%
\let\@tempc\relax%
@@ -357,7 +349,9 @@
\fi%
}{%
\def\@tempc{\color{HKS41}}%
- \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}%
+ \tud@if@strequal{\tud@pagecolor}{HKS41}%
+ {\def\@tempc{\color{HKS41!60}}}%
+ {}%
}%
\ifx\@tempc\relax\else%
\tud@ddc@check%
@@ -365,7 +359,7 @@
\vbox to \layerheight{%
\vfil\@tempc%
\rule{\layerwidth}{%
- \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax%
+ \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax%
}%
}%
\else% \tud@ddc@foot@num!=false
@@ -384,8 +378,7 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,foot,%
- height=\dimexpr\tud@len@layoutheight-\layeryoffset%
- +\tud@len@layoutvoffset\relax,%
+ height=\tud@dim@layoutheight-\layeryoffset+\tud@dim@layoutvoffset,%
contents={%
% \end{macrocode}
% Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden,
@@ -393,13 +386,10 @@
% Layers nicht vollständig genutzt, um bei einem farbigen Fußbereich einen
% gewissen Abstand vom Inhalt zur Kante zu erhalten.
% \begin{macrocode}
- \TUD@deprecated@lengthcs[%
- \global\@tud@footlogo@option@settrue%
- ]{footlogoheight}%
- \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}%
+ \tud@setdim\@tempdima{\layerheight-\dp\strutbox}%
% \end{macrocode}
% Im Bedarfsfall werden die Boxen vor der Ausgabe durch die einzelnen
-% \cs{\dots{}@use}-Befehle neu gesetzt. Danach erfolgt die Ausgabe, wobei die
+% |\...@use|-Befehle neu gesetzt. Danach erfolgt die Ausgabe, wobei die
% Boxen übereinander gelegt werden.
% \begin{macrocode}
\tud@footlogo@cmd@use{\@tempdima}{\layerwidth}%
@@ -413,16 +403,13 @@
% \begin{macrocode}
\tud@if@v@lower{2.03}{%
\ModifyLayer[%
- addvoffset=-\tud@len@ddcdiff+\ht\strutbox,%
+ addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,%
contents={%
- \TUD@deprecated@lengthcs[%
- \global\@tud@footlogo@option@settrue%
- ]{footlogoheight}%
- \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}%
+ \tud@setdim\@tempdima{\layerheight-\dp\strutbox}%
\tud@ddc@check%
\ifcase\@tempb\relax% \tud@ddc@foot@num=false
- \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}%
- \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax%
+ \tud@addtodim\@tempdima{\ht\strutbox-\tud@dim@ddcdiff}%
+ \vskip\dimexpr\tud@dim@ddcdiff-\ht\strutbox-1\baselineskip\relax%
\fi%
\tud@footlogo@cmd@use{\@tempdima}{\layerwidth}%
\tud@footlogo@ddc@use{\@tempdima}{\layerwidth}%
@@ -462,7 +449,7 @@
% entsprechenden \pgs{scrheadings}-Ebenen verwendet.
% \begin{macrocode}
\DeclareNewPageStyleByLayers[%
- onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground%
+ onbackground=\tud@ps@onbackground%
]{tudheadings}{%
tudheadings.head.back,%
tudheadings.head.content,%
@@ -493,7 +480,7 @@
% Fußzeilenebenen des Seitenstils \pgs{plain.scrheadings} hinzugefügt.
% \begin{macrocode}
\DeclareNewPageStyleByLayers[%
- onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground%
+ onbackground=\tud@ps@onbackground%
]{plain.tudheadings}{%
tudheadings.head.back,%
tudheadings.head.content,%
@@ -523,7 +510,7 @@
% lediglich aus dem Kopf besteht und einen lerren Seitenfuß hat.
% \begin{macrocode}
\DeclareNewPageStyleByLayers[%
- onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground%
+ onbackground=\tud@ps@onbackground%
]{empty.tudheadings}{%
tudheadings.head.back,%
tudheadings.head.content,%
@@ -554,12 +541,10 @@
% \begin{macrocode}
\DeclareNewLayer[%
background,%
- area=%
- {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}%
- {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}%
- {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}%
- {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}%
- ,%
+ hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,%
+ voffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,%
+ width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,%
+ height=\glueexpr\tud@dim@layoutheight+(\tud@bleedmargin@dim)*2\relax,%
contents={%
\ifdefvoid{\tud@pagecolor}{}{%
\color{\tud@pagecolor}%
@@ -574,6 +559,40 @@
% \end{layerpagestyle}^^A empty.tudheadings
% \end{layerpagestyle}^^A plain.tudheadings
% \end{layerpagestyle}^^A tudheadings
+% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf
+% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten
+% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für
+% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt.
+% Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile,
+% weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll
+% dennoch ermöglicht werden, weshalb hierfür der Haken \val{onselect} verwendet
+% wird, der für jeden Seitenstil bei der Initialisierung aufgerufen wird.
+% \begin{macrocode}
+ \AddToLayerPageStyleOptions{@everystyle@}{%
+ onselect={%
+ \tud@if@tudheadings{\currentpagestyle}{%
+ \DeclarePageStyleAlias{plain}{plain.tudheadings}%
+ \DeclarePageStyleAlias{headings}{tudheadings}%
+ \def\sls@currentheadings{tudheadings}%
+ \def\sls@currentplain{plain.tudheadings}%
+ \TUD@deprecated@length\footlogoheight%
+% \end{macrocode}
+% Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende
+% Schrift verwendet.
+% \begin{macrocode}
+ \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}%
+ \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}%
+ }{%
+% \end{macrocode}
+% Handelt es sich nicht um einen \pgs{tudheadings} Seitenstil, werden die
+% Schriften für Seitenzahl und Kolumnentitel zurückgesetzt.
+% \begin{macrocode}
+ \tud@komafont@unset{pagenumber}%
+ \tud@komafont@unset{pagefoot}%
+ }%
+ }%
+ }%
+% \end{macrocode}
% Damit ist die Deklaration der Seitenstile mit \pkg{scrlayer-scrpage} beendet.
% \begin{macrocode}
}
@@ -612,7 +631,9 @@
% Wird der Befehl \cs{thispagestyle} verwendet, muss dafür Sorge getragen
% werden, dass kein Alias-Seitenstil expandiert wird.
% \begin{macrocode}
-\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{%
+\patchcmd\thispagestyle{%
+ \gdef\@specialstyle{#1}%
+}{%
\xdef\@specialstyle{\GetRealPageStyle{#1}}%
}{}{\tud@patch@wrn{thispagestyle}}
% \end{macrocode}
@@ -629,7 +650,7 @@
\newcommand*\tud@pagestyle{}
\let\tud@pagestyle\pagestyle
\newcommand*\currentpagestyle{plain}
-\pretocmd{\tud@pagestyle}{%
+\pretocmd\tud@pagestyle{%
\tud@BeforeSelectAnyPageStyle{#1}%
\edef\currentpagestyle{#1}%
}{}{\tud@patch@wrn{pagestyle}}
@@ -672,15 +693,16 @@
% einige notwendige Makros definiert.
% \begin{macrocode}
\TUD@UnwindPackage{scrlayer-scrpage}{%
- \ifcsundef{if@chapter}{%
+ \ifundef{\if@chapter}{%
\newif\if@chapter%
- \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}%
+ \ifundef{\chapter}{\@chapterfalse}{\@chaptertrue}%
}{}%
\cslet{ps@tudheadings}{\ps@headings}%
\cslet{ps@plain.tudheadings}{\ps@plain}%
\cslet{ps@empty.tudheadings}{\ps@empty}%
\providecommand*\currentpagestyle{plain}%
\providecommand*\BeforeSelectAnyPageStyle[1]{}%
+ \providecommand*\tud@BeforeSelectAnyPageStyle[1]{}%
\providecommand*\GetRealPageStyle[1]{#1}%
% \end{macrocode}
% Außerdem wird die angepasste Definition von \cs{pagestyle} verwendet.
@@ -699,27 +721,6 @@
% \end{macro}^^A \ps@empty.tudheadings
% \end{macro}^^A \ps@plain.tudheadings
% \end{macro}^^A \ps@tudheadings
-% \begin{macro}{\tud@ps@onselect}
-% \changes{v2.03}{2015/01/09}{neu}^^A
-% Der Befehl wird bei der Initialisierung der Seitenstile aufgerufen.
-% \begin{macrocode}
-\newcommand*\tud@ps@onselect{%
-% \end{macrocode}
-% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf
-% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten
-% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für
-% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt.
-% Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile,
-% weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll
-% dennoch ermöglicht werden.
-% \begin{macrocode}
- \DeclarePageStyleAlias{plain}{plain.tudheadings}%
- \DeclarePageStyleAlias{headings}{tudheadings}%
- \def\sls@currentheadings{tudheadings}%
- \def\sls@currentplain{plain.tudheadings}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@ps@onselect
%
% \subsubsection{Gestaltungsvarianten für Kopf- und Fußzeile}
%
@@ -794,7 +795,7 @@
% für farbige Titel- und Teileseiten\dots
% \begin{macrocode}
\tud@locked@bool@preset{@tud@head@widebar}{true}%
- \ifstr{\tud@pagecolor}{HKS41}{%
+ \tud@if@strequal{\tud@pagecolor}{HKS41}{%
\renewcommand*\tud@head@logocolor{white}%
\renewcommand*\tud@head@fontcolor{white}%
\renewcommand*\tud@foot@logocolor{white}%
@@ -836,8 +837,10 @@
% des Querbalkens gesetzt, die Schriftfarbe des Fußes wird global geändert,
% damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden.
% \begin{macrocode}
- \let\tud@len@line\tud@len@thinline%
- \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}%
+ \let\tud@dim@line\tud@dim@thinline%
+ \tud@if@strequal{\tud@head@fontcolor}{white}%
+ {\let\tud@dim@line\tud@dim@heavyline}%
+ {}%
\global\let\tud@foot@fontcolor\tud@foot@fontcolor%
}
% \end{macrocode}
@@ -880,13 +883,13 @@
% gesetzt werden soll, wenn ein weiteres Feld nachfolgt.
% \begin{macrocode}
\newcommand*\tud@head@text@add[3][{, }]{%
- \ifxblank{#3}{}{%
+ \tud@if@strblank{#3}{}{%
\edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}%
\def\tud@head@text@buffer{#1}%
\edef\@tempa{%
\expandonce\tud@head@text@line%
\expandonce\tud@head@text@delimiter%
- \etex@unexpanded{#2#3}%
+ \unexpanded{#2#3}%
}%
% \end{macrocode}
% Sollte das hinzuzufügende Feld die aktuelle Kopfzeile \cs{tud@head@text@line}
@@ -914,7 +917,7 @@
% der zu großen Breite der Kopfinformationen, was bei kleinen Papierformaten
% geschehen kann, (re-)definiert.
% \begin{macrocode}
-\newif\if@tud@head@text@set
+\tud@newif\if@tud@head@text@set
\newcommand*\tud@head@text@wrn[1]{}
\newcommand*\tud@head@text@set{%
\if@tud@head@text@set%
@@ -939,7 +942,7 @@
% die zusätzliche Zeile in die Liste expandiert.
% \begin{macrocode}
\listeadd\tud@head@text@list{\expandonce\tud@head@text@line}%
- \ifxblank{\@extraheadline}{}{%
+ \tud@if@strblank{\@extraheadline}{}{%
\listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}%
}%
\gdef\tud@head@text@wrn##1{%
@@ -971,7 +974,7 @@
% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes.
% \begin{macrocode}
\def\@tempb{\tud@color{\tud@head@fontcolor}}%
- \def\@tempc{\depth+\tud@len@heavyline}%
+ \def\@tempc{\depth+\tud@dim@heavyline}%
% \end{macrocode}
% Das Makro \cs{@tempa} wird zur Ababreitung der Liste \cs{tud@head@text@list}
% definiert.
@@ -991,14 +994,14 @@
\@tempb%
\tud@head@text@write[\@tempc]{##1}%
\def\@tempb{\newline}%
- \def\@tempc{\z@}%
+ \let\@tempc\z@%
% \end{macrocode}
% Die weiteren Zeilen sind bei zweifarbigen Kopf normalerweise blau, nur für
% einen dunklen Seitenhintergrund weiß.
% \begin{macrocode}
\ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color
\ifdefvoid{\tud@pagecolor}{\color{HKS41}}{%
- \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}%
+ \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}%
}%
\fi%
}%
@@ -1012,7 +1015,7 @@
% lassen, wird dies hier temporär unterdrückt.
% \begin{macrocode}
\let\@raggedtwoe@everyselectfont\relax%
- \setlength\spaceskip{\z@}%
+ \tud@setdim\spaceskip{\z@}%
\selectfont%
\offinterlineskip%
\forlistloop\@tempa{\tud@head@text@list}%
@@ -1028,9 +1031,11 @@
% Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf
% \begin{macrocode}
\newcommand*\tud@head@text@write[2][\z@]{%
- \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[%
- \dimexpr\tud@len@barheight-\depth\relax%
- ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}%
+ \raisebox{%
+ \dimexpr(\tud@dim@barheight+\tud@dim@line*2-\totalheight)/2\relax%
+ }[%
+ \dimexpr\tud@dim@barheight-\depth\relax%
+ ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{\tud@font@phantomglyphs}}%
}
% \end{macrocode}
% \end{macro}^^A \tud@head@text@write
@@ -1039,11 +1044,11 @@
% Der Querbalken des Kopfes läuft je nach Parameterwahl \cs{tud@head@bar@num}
% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite.
% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und
-% über \cs{tud@len@line} definierter Dicke.
+% über \cs{tud@dim@line} definierter Dicke.
% \begin{macrocode}
\newcommand*\tud@head@rule[1]{%
\tud@color{\tud@head@fontcolor}%
- \rule[\ht\strutbox]{#1}{\tud@len@line}%
+ \rule[\ht\strutbox]{#1}{\tud@dim@line}%
}
% \end{macrocode}
% \end{macro}^^A \tud@head@rule
@@ -1062,7 +1067,7 @@
% von \cs{includegraphics} möglichst gering zu halten.
% \begin{macrocode}
\newcommand*\tud@newlayerbox[1]{%
- \expandafter\newsavebox\csname tud@layer@#1\endcsname%
+ \global\expandafter\newsavebox\csname tud@layer@#1\endcsname%
}
\newcommand*\tud@savelayerbox[1]{%
\global\expandafter\sbox\csname tud@layer@#1\endcsname%
@@ -1076,6 +1081,7 @@
% \end{macro}^^A \tud@newlayerbox
% \begin{macro}{\tud@vlayerbox}
% \changes{v2.04}{2015/05/31}{neu}^^A
+% \changes{v2.06o}{2022/08/08}{unschöner Fix für duplizierte Warnungen}^^A
% Für die Ausgabe der Logos und Inhalte wird dieser Befehl definiert. Dieser
% setzt die im zweiten Argument angegebenen Inhalte in eine vertikale Box,
% deren gewünschte Höhe im ersten Argument angegeben wird. Für den Fall, dass
@@ -1085,24 +1091,289 @@
% ergreifen und nicht lediglich eine Meldung einer zu übervollen \cs{vbox} zu
% erhalten.
% \begin{macrocode}
-\newcommand*\tud@vlayerbox[3]{%
+\newcommand*\tud@vlayerbox[4][]{%
\begingroup%
- \setbox\z@\vbox{#2}%
- \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}%
- \ifdim\@tempdima>\z@\relax%
- \ClassWarning{\TUD@Class@Name}{%
- #3\MessageBreak%
- The maximum height is exceeded by \the\@tempdima\MessageBreak%
+ \setbox\z@\vbox{#3}%
+ \tud@setdim\tud@res@glue{\dimexpr\glueexpr#2\relax\relax}%
+ \ifdim\dimexpr\ht\z@+\dp\z@-\tud@res@glue\relax>\p@\relax%
+ \edef\tud@res@a{%
+ \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{%
+ #4\noexpand\MessageBreak%
+ The total height of \the\dimexpr\ht\z@+\dp\z@\relax\space exceeds the%
+ \noexpand\MessageBreak maximum height (\the\tud@res@glue)%
+ }%
+ }%
+ \IfArgIsEmpty{#1}{\tud@res@a}{%
+ \expandafter\ifx\csname tud@layer@#1@wrn\endcsname\tud@res@a\else%
+ \tud@res@a%
+ \global\cslet{tud@layer@#1@wrn}\tud@res@a%
+ \fi%
}%
\fi%
\endgroup%
- \vbox to #1{#2}%
+ \vbox to #2{#3}%
}
% \end{macrocode}
% \end{macro}^^A \tud@vlayerbox
%
% \iffalse
%</class&body>
+% \fi
+%
+% \subsection{Optionen für das \DDC-Logo}
+%
+% \begin{macro}{\tud@comp@clearpage}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@comp@resetpagestyle}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\if@tud@ddc@internal}
+% \changes{v2.02}{2014/07/08}{neu}^^A
+% Bis zur Version~v2.02 wurden unterschiedliche Satzsiegel für den Seitenfuß
+% mit und ohne \DDC-Logo verwendet. Damit dieser im Zweifelsfall umgestellt
+% werden kann, wurde vor dem Ausführen der entsprechenden Optionen ein
+% Seitenumbruch erzwungen und nach dem Verarbeiten der Optionen der aktuelle
+% Seitenstil erneut aufgerufen. Die beiden folgenden Makros werden für dieses
+% Unterfangen definiert, jedoch bei der Abarbeitung der Optionen nur noch im
+% Kompatibilitätmodus ausgeführt. Der Schalter \cs{if@tud@ddc@internal} wird
+% intern von den Optionen \opt{ddc}, \opt{ddchead} und \opt{ddcfoot} verwendet,
+% um rekursive Aufrufe der Optionen zu verhindern.
+% \begin{macrocode}
+%<*class&option>
+\tud@newif\if@tud@ddc@internal
+\newcommand*\tud@comp@clearpage{}%
+\newcommand*\tud@comp@resetpagestyle{}%
+%</class&option>
+%<*class&body>
+\tud@if@v@lower{2.04}{%
+ \renewcommand*\tud@comp@clearpage{%
+ \if@tud@ddc@internal\else%
+ \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}%
+ \fi%
+ }%
+ \renewcommand*\tud@comp@resetpagestyle{%
+ \if@tud@ddc@internal\else%
+ \tud@if@tudheadings{\currentpagestyle}{%
+ \expandafter\pagestyle\expandafter{\currentpagestyle}%
+ }{}%
+ \fi%
+ }%
+}{}%
+%</class&body>
+% \end{macrocode}
+% \end{macro}^^A \if@tud@ddc@internal
+% \end{macro}^^A \tud@comp@clearpage
+% \end{macro}^^A \tud@comp@resetpagestyle
+%
+% \iffalse
+%<*class&option>
+% \fi
+%
+% \begin{option}{ddc}
+% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A
+% \begin{option}{ddchead}
+% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
+% \begin{option}{ddcfoot}
+% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
+% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil
+% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den
+% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls
+% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß.
+% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein
+% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen
+% im Fuß ausgegeben.
+% \begin{macro}{\tud@ddc@switch}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Das Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc},
+% \opt{ddchead} sowie \opt{ddcfoot}.
+% \begin{macrocode}
+\newcommand*\tud@ddc@switch{}
+\edef\tud@ddc@switch{%
+ \TUD@bool@numkey,%
+ {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},%
+ {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},%
+ {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},%
+ {black}{5},{cdblack}{5},%
+ {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},%
+ {white}{7},{cdwhite}{7}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@switch
+% \begin{macro}{\tud@ddc@auto@num}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\if@tud@ddc@auto}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% \begin{macro}{\if@tud@headlogo@option@set}
+% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\if@tud@footlogo@option@set}
+% \changes{v2.04}{2015/06/01}{neu}^^A
+% Die Option \opt{ddc}.
+% \begin{macrocode}
+\tud@newif\if@tud@headlogo@option@set
+\tud@newif\if@tud@footlogo@option@set
+\tud@newif\if@tud@ddc@auto
+\newcommand*\tud@ddc@auto@num{0}
+\TUD@key{ddc}[true]{%
+% \end{macrocode}
+% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird
+% die Option abgearbeitet.
+% \begin{macrocode}
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+% \end{macrocode}
+% Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot}
+% aufgerufen, wird die automatische Auswahl des \DDC-Logos deaktiviert.
+% \begin{macrocode}
+ \if@tud@ddc@internal%
+ \@tud@ddc@autofalse%
+ \else%
+% \end{macrocode}
+% Andernfalls wird die automatische Auswahl aktiviert und die beiden Optionen
+% \opt{ddchead} sowie \opt{ddcfoot} intern zurückgesetzt.
+% \begin{macrocode}
+ \@tud@ddc@autotrue%
+ \@tud@ddc@internaltrue%
+ \TUDoptions{ddchead=false}%
+ \TUDoptions{ddcfoot=false}%
+ \@tud@ddc@internalfalse%
+ \fi%
+% \end{macrocode}
+% Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden
+% in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter
+% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der
+% Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}.
+% \begin{macrocode}
+ \global\@tud@headlogo@option@settrue%
+ \global\@tud@footlogo@option@settrue%
+ \fi%
+% \end{macrocode}
+% Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen,
+% um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden.
+% \begin{macrocode}
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \if@tud@footlogo@option@set
+% \end{macro}^^A \if@tud@headlogo@option@set
+% \end{macro}^^A \if@tud@ddc@auto
+% \end{macro}^^A \tud@ddc@auto@num
+% \begin{macro}{\tud@ddc@head@num}
+% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
+% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf
+% der Seiten im Stil von \pgs{tudheadings}.
+% \begin{macrocode}
+\newcommand*\tud@ddc@head@num{0}
+\TUD@key{ddchead}[true]{%
+% \end{macrocode}
+% Der Seitenumbruch im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}%
+% \end{macrocode}
+% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
+% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
+% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten
+% setzen der Logoboxen.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tud@ddc@internal\else%
+ \@tud@ddc@internaltrue%
+ \TUDoptions{ddcfoot=false}%
+ \TUDoptions{ddc=false}%
+ \@tud@ddc@internalfalse%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Das Setzen des Seitenstils im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@head@num
+% \begin{macro}{\tud@ddc@foot@num}
+% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
+% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß
+% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des
+% Schlüssels ist äquivalent zur Option \opt{ddchead}
+% \begin{macrocode}
+\newcommand*\tud@ddc@foot@num{0}
+\TUD@key{ddcfoot}[true]{%
+% \end{macrocode}
+% Der Seitenumbruch im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@clearpage%
+ \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}%
+% \end{macrocode}
+% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
+% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
+% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten
+% setzen der Logoboxen.
+% \begin{macrocode}
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tud@ddc@internal\else%
+ \@tud@ddc@internaltrue%
+ \TUDoptions{ddchead=false}%
+ \TUDoptions{ddc=false}%
+ \@tud@ddc@internalfalse%
+ \fi%
+ \fi%
+% \end{macrocode}
+% Das Setzen des Seitenstils im Kompatibilitätsmodus.
+% \begin{macrocode}
+ \tud@comp@resetpagestyle%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@foot@num
+% \end{option}^^A ddcfoot
+% \end{option}^^A ddchead
+% \end{option}^^A ddc
+%
+% \iffalse
+%</class&option>
+%<*class&body>
+% \fi
+%
+% \begin{macro}{\tud@ddc@check}
+% \changes{v2.02}{2014/06/23}{neu}^^A
+% Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen
+% für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen.
+% Über den Schalter \cs{if@tud@ddc@auto} wird festgelegt, ob die Auswahl des
+% \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet.
+% Ist dies der Fall, wird das Logo standardmäßig im Kopf gesetzt. Ist jedoch
+% durch den Befehl \cs{headlogo} ein Zweitlogo angegeben worde, wird dieses in
+% der Fußzeile ausgegeben. Die Verwendung einer der Optionen \opt{ddchead} bzw.
+% \opt{ddcfoot} forciert die Ausgabe des \DDC-Logos an der gewünschten Stelle.
+% Die jeweils gültige Auswahl für Kopf bzw. Fuß wird in den Makros \cs{@tempa}
+% bzw. \cs{@tempb} geschrieben und kann anschließend ausgewertet werden.
+% \begin{macrocode}
+\newcommand*\tud@ddc@check{%
+ \let\@tempa\tud@ddc@head@num%
+ \let\@tempb\tud@ddc@foot@num%
+ \if@tud@ddc@auto%
+ \ifdefvoid{\tud@headlogo@filename}{%
+ \let\@tempa\tud@ddc@auto@num%
+ \let\@tempb\z@%
+ }{%
+ \let\@tempa\z@%
+ \let\@tempb\tud@ddc@auto@num%
+ }%
+ \fi%
+% \end{macrocode}
+% Für die Satzspiegelvergrößerung wird beim Vorhandensein eines oder mehrerer
+% Logos im Fuß die Variable \cs{@tempb} auf einen negativen Wert gesetzt, um
+% auch ohne die Ausgabe eines \DDC-Logos den Fußbereich zu vergrößern.
+% \begin{macrocode}
+ \tud@if@v@lower{2.03}{%
+ \ifnum\@tempb=\z@\relax%
+ \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}%
+ \fi%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@ddc@check
+%
+% \iffalse
+%</class&body>
%<*class&option>
% \fi
%
@@ -1138,8 +1409,8 @@
\tud@locked@newnum{tud@head@font@num}{0}
\tud@locked@newnum{tud@head@bar@num}{0}
\tud@locked@newbool{@tud@head@widebar}
-\newif\if@tud@head@font@set
-\newif\if@tud@head@date
+\tud@newif\if@tud@head@font@set
+\tud@newif\if@tud@head@date
\TUD@key{cdhead}[true]{%
\TUD@set@numkey{cdhead}{@tempa}{%
\TUD@bool@numkey,%
@@ -1231,7 +1502,7 @@
% \changes{v2.04}{2015/05/31}{neu}^^A
% \begin{macro}{\if@tud@mainlogo@wrn}
% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{length}{\tud@len@mainlogoheight}
+% \begin{length}{\tud@dim@mainlogoheight}
% \changes{v2.04}{2015/05/31}{neu}^^A
% \begin{macro}{\tud@mainlogo@wrn}
% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}^^A
@@ -1241,17 +1512,17 @@
% Satzspiegels beim Ausführen der einzelnen Seitenstil-Layer. Dafür wird der
% Schalter \cs{if@tud@mainlogo@set} im Hook \cs{tud@AfterChangingArea} gesetzt.
% \begin{macrocode}
-\newlength\tud@len@mainlogoheight
+\tud@newdim\tud@dim@mainlogoheight
\newcommand*\tud@mainlogo@wrn[1]{}
-\newif\if@tud@mainlogo@set
+\tud@newif\if@tud@mainlogo@set
\newcommand*\tud@mainlogo@set{%
\if@tud@mainlogo@set%
- \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}%
+ \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}%
\tud@savelayerbox{main@black}{\@tempa{TUD-black}}%
\tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}%
\tud@savelayerbox{main@white}{\@tempa{TUD-white}}%
- \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}%
- \global\tud@len@mainlogoheight=\tud@len@mainlogoheight%
+ \settoheight\tud@dim@mainlogoheight{\tud@uselayerbox{main@black}}%
+ \global\tud@dim@mainlogoheight=\tud@dim@mainlogoheight%
% \end{macrocode}
% Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea}
% über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb
@@ -1278,14 +1549,18 @@
% den Boxen in der richtigen Größe neu zu setzen.
% \begin{macrocode}
\tud@headlogo@set%
- \@tud@footlogo@option@settrue%
+ \global\@tud@footlogo@option@settrue%
\tud@footlogo@option@set%
\global\@tud@mainlogo@setfalse%
\fi%
}
+\AtBeginDocument{%
+ \@tud@mainlogo@settrue%
+ \tud@mainlogo@set%
+}
% \end{macrocode}
% \end{macro}^^A \tud@mainlogo@wrn
-% \end{length}^^A \tud@len@mainlogoheight
+% \end{length}^^A \tud@dim@mainlogoheight
% \end{macro}^^A \if@tud@mainlogo@set
% \end{macro}^^A \tud@mainlogo@set
% \begin{macro}{\tud@mainlogo@use}
@@ -1295,7 +1570,7 @@
% \begin{macrocode}
\newcommand*\tud@mainlogo@use{%
\tud@mainlogo@wrn{%
- \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax%
+ \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax%
}%
\tud@uselayerbox{main@\tud@head@logocolor}%
}
@@ -1334,18 +1609,16 @@
% \changes{v2.02}{2014/06/23}{neu}^^A
% \begin{macro}{\tud@headlogo@fileoptions}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{macro}{\tud@headlogo@wrn}
-% \changes{v2.02}{2014/06/23}{neu}^^A
% Diese Befehle dienen zum Einbinden eines möglichen Zweitlogos im Kopf bündig
% zum rechten Seitenrand. Mit \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname}
% werden der Dateiname und das optionale Argument in \cs{tud@headlogo@filename}
% bzw. \cs{tud@headlogo@fileoptions} gespeichert, damit diese später bei der
% tatsächlichen Verwendung des Logos mit dem Makro \cs{tud@headlogo@set} an den
% Befehl \cs{includegraphics} weitergereicht werden können.
+% \ToDo{angehängte Parameterliste \val{:} für tudpage unterstützen}[v2.07]
% \begin{macrocode}
\newcommand*\tud@headlogo@filename{}
\newcommand*\tud@headlogo@fileoptions{}
-\newcommand*\tud@headlogo@wrn{}
\newcommand*\headlogo[2][]{%
\tud@comp@clearpage%
\renewcommand*\tud@headlogo@filename{#2}%
@@ -1357,18 +1630,9 @@
% \begin{macrocode}
\global\@tud@headlogo@option@settrue%
\global\@tud@footlogo@option@settrue%
- \gdef\tud@headlogo@wrn{%
- \ClassWarning{\TUD@Class@Name}{%
- Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak%
- is overwritten with DDC logo. Maybe you should\MessageBreak%
- use `ddcfoot' or better `ddc' instead of `ddchead'%
- }%
- \global\let\tud@headlogo@wrn\relax%
- }%
\tud@comp@resetpagestyle%
}
% \end{macrocode}
-% \end{macro}^^A \tud@headlogo@wrn
% \end{macro}^^A \tud@headlogo@fileoptions
% \end{macro}^^A \tud@headlogo@filename
% \end{macro}^^A \headlogo
@@ -1382,7 +1646,7 @@
% \begin{macrocode}
\newcommand*\tud@headlogo@set{%
\def\@tempa{%
- \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]%
+ \includegraphics[keepaspectratio,totalheight=\tud@dim@mainlogoheight]%
}%
\tud@savelayerbox{head@black}{\@tempa{DDC-24}}%
\tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}%
@@ -1399,18 +1663,19 @@
\if@tud@headlogo@option@set%
\def\@tempc##1##2{%
\tud@savelayerbox{head@option}{%
- \includegraphics[%
- keepaspectratio,totalheight=\tud@len@mainlogoheight,##2%
- ]{##1}%
+ \includegraphics[{%
+ keepaspectratio,%
+ totalheight=\tud@dim@mainlogoheight,%
+ ##2%
+ }]{##1}%
}%
}%
\tud@savelayerbox{head@option}{}%
\tud@ddc@check%
\ifcase\@tempa\relax% \tud@ddc@head@num=false
\ifdefvoid{\tud@headlogo@filename}{}{%
- \protected@edef\tud@headlogo@filename{%
- \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}%
- }%
+ \protected@edef\tud@headlogo@filename{\tud@headlogo@filename}%
+ \trim@spaces@in\tud@headlogo@filename%
\protected@edef\@tempb{%
\noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}%
}%
@@ -1429,6 +1694,15 @@
\or% \tud@ddc@head@num=white
\@tempc{DDC-30}{}%
\fi%
+ \ifnum\@tempa>\z@\relax
+ \ifdefvoid{\tud@headlogo@filename}{}{%
+ \ClassWarning{\TUD@Class@Name}{%
+ Secondary logo `\tud@headlogo@filename'\MessageBreak%
+ is overwritten with DDC logo. Maybe you should\MessageBreak%
+ use `ddcfoot' or better `ddc' instead of `ddchead'%
+ }%
+ }%
+ \fi%
\global\@tud@headlogo@option@setfalse%
\fi%
}
@@ -1437,11 +1711,13 @@
% \end{macro}^^A \tud@headlogo@set
% \begin{macro}{\tud@headlogo@use}
% \changes{v2.04}{2015/05/31}{neu}^^A
+% \begin{macro}{\tud@layer@headlogo@wrn}
% Die Ausgabe von \DDC- oder Zweitlogo im Kopf erfolgt mit diesem Makro. Dabei
% werden diese in einer Box vertikal zentriert.
% \begin{macrocode}
+\newcommand*\tud@layer@headlogo@wrn{}
\newcommand*\tud@headlogo@use{%
- \tud@vlayerbox{\tud@len@mainlogoheight}{%
+ \tud@vlayerbox[headlogo]{\tud@dim@mainlogoheight}{%
\vss%
\hbox{%
\tud@ddc@check%
@@ -1455,12 +1731,9 @@
}{%
The given `\string\headlogo{\tud@headlogo@filename}' is too large.%
}%
- \ifdefvoid{\tud@headlogo@filename}{}{%
- \tud@ddc@check%
- \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi%
- }%
}
% \end{macrocode}
+% \end{macro}^^A \tud@layer@headlogo@wrn
% \end{macro}^^A \tud@headlogo@use
%
% \iffalse
@@ -1553,8 +1826,10 @@
% Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden.
% \begin{macrocode}
\else%
- \tud@lowerstring\tud@res@a{#1}%
- \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}%
+ \TUD@set@dimkey{cdfoot}{\@tempa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \TUDoptions{extrabottommargin=#1}%
+ \fi%
\fi%
}
% \end{macrocode}
@@ -1598,10 +1873,10 @@
\tud@ps@@restore{#1}{even}{middle}{foot}%
}
\newcommand*\tud@ps@@restore[4]{%
- \ifcsdef{@@tud@ps@#1@#2@#3@#4}{%
+ \ifcsundef{@@tud@ps@#1@#2@#3@#4}{}{%
\csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}%
\csundef{@@tud@ps@#1@#2@#3@#4}%
- }{}%
+ }%
}
% \end{macrocode}
% \end{macro}^^A \tud@ps@@restore
@@ -1621,24 +1896,22 @@
%
% \begin{option}{footlogoheight}
% \changes{v2.05}{2016/06/16}{neu}^^A
-% \begin{macro}{\tud@dim@footlogoheight}
+% \begin{macro}{\tud@footlogoheight@dim}
% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@footlogoheight@set}
% Für den Anwender besteht mit der Option \opt{footlogoheight} die Möglichkeit,
% die Höhe aller Logos im Fußbereich~-- also eventuell das \DDC-Logo sowie
% vom Anwender mit dem Befehl \cs{footlogo} angegebene Logos~-- zentral
-% festzulegen. Dabei wird der gewünschte Wert in \cs{tud@dim@footlogoheight}
-% abgelegt.
+% festzulegen. Dabei wird der gewünschte Wert in \cs{tud@footlogoheight@dim}
+% abgelegt. Ist dieser \val{0pt}, wird die Höhe des Loogs der \TnUD genutzt.
+% \ToDo{\cs{tud@footlogoheight@dim} sollte raus, ergibt keinen Sinn}[v2.07]
% \begin{macrocode}
%<*option>
-\newcommand*\tud@dim@footlogoheight{}
-\let\tud@dim@footlogoheight\relax
+\newcommand*\tud@footlogoheight@dim{0pt}
\TUD@key{footlogoheight}{%
- \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}%
+ \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax%
- \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}%
- \@tempa#1\@nil%
- \fi%
+ \tud@length@setabsolute\tud@footlogoheight@dim%
\global\@tud@footlogo@option@settrue%
\fi%
}
@@ -1646,21 +1919,22 @@
% \end{macrocode}
% Da sich mit der Version~v2.03 die Standardhöhe des \DDC-Logos im Fußbereich
% geändert hat, wird dieser Wert abhängig von der Einstellung für die Option
-% \opt{tudscrver} nach der Abarbeitung der Optionen am Ende der Klasse gesetzt.
+% \opt{tudscrver} gesetzt.
% \begin{macrocode}
%<*body>
-\AtEndOfClass{%
- \ifdefvoid{\tud@dim@footlogoheight}{%
+\newcommand*\tud@footlogoheight@set{%
+ \ifdim\dimexpr\tud@footlogoheight@dim\relax=\z@\relax%
\tud@if@v@lower{2.03}{%
- \def\tud@dim@footlogoheight{.6\tud@len@topmargin}%
+ \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}%
}{%
- \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}%
+ \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}%
}%
- }{}%
+ \fi%
}
%</body>
% \end{macrocode}
-% \end{macro}^^A \tud@dim@footlogoheight
+% \end{macro}^^A \tud@footlogoheight@set
+% \end{macro}^^A \tud@footlogoheight@dim
% \end{option}^^A footlogoheight
%
% \iffalse
@@ -1700,8 +1974,11 @@
% das Makro \cs{tud@footlogo@ddc@set} definiert.
% \begin{macrocode}
\newcommand*\tud@footlogo@ddc@set[2]{%
- \tud@savelayerbox{foot@#1}{%
- \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}%
+ \tud@savelayerbox{#1}{%
+ \includegraphics[%
+ keepaspectratio,%
+ totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax%
+ ]{#2}%
}%
}
% \end{macrocode}
@@ -1710,25 +1987,27 @@
% gesetzt wurde, bei der Ausgabe des dazugehörigen Layers.
% \begin{macrocode}
\newcommand*\tud@footlogo@option@set{%
+ \tud@footlogoheight@set%
\if@tud@footlogo@option@set%
- \tud@footlogo@ddc@set{black}{DDC-22}%
- \tud@footlogo@ddc@set{HKS41}{DDC-25}%
- \tud@footlogo@ddc@set{white}{DDC-28}%
+ \tud@footlogo@ddc@set{foot@black}{DDC-22}%
+ \tud@footlogo@ddc@set{foot@HKS41}{DDC-25}%
+ \tud@footlogo@ddc@set{foot@white}{DDC-28}%
\tud@ddc@check%
\ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color
- \tud@footlogo@ddc@set{option}{DDC-01}%
+ \tud@footlogo@ddc@set{foot@option}{DDC-01}%
\or% \tud@ddc@foot@num=colorblack
- \tud@footlogo@ddc@set{option}{DDC-07}%
+ \tud@footlogo@ddc@set{foot@option}{DDC-07}%
\or% \tud@ddc@foot@num=gray
- \tud@footlogo@ddc@set{option}{DDC-19}%
+ \tud@footlogo@ddc@set{foot@option}{DDC-19}%
\or% \tud@ddc@foot@num=black
- \tud@footlogo@ddc@set{option}{DDC-22}%
+ \tud@footlogo@ddc@set{foot@option}{DDC-22}%
\or% \tud@ddc@foot@num=blue
- \tud@footlogo@ddc@set{option}{DDC-25}%
+ \tud@footlogo@ddc@set{foot@option}{DDC-25}%
\or% \tud@ddc@foot@num=white
- \tud@footlogo@ddc@set{option}{DDC-28}%
+ \tud@footlogo@ddc@set{foot@option}{DDC-28}%
\fi%
\global\@tud@footlogo@option@setfalse%
+ \global\@tud@footlogo@cmd@settrue%
\fi%
}
% \end{macrocode}
@@ -1736,15 +2015,17 @@
% \end{macro}^^A \tud@footlogo@ddc@set
% \begin{macro}{\tud@footlogo@ddc@use}
% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@layer@footlogo@wrn}
% Die Ausgabe des \DDC-Logos im Fuß erfolgt mit diesem Makro. Dabei wird dieses
% in einer Box optisch~-- leicht nach oben verschoben~-- vertikal zentriert.
% \begin{macrocode}
+\newcommand*\tud@layer@footlogo@wrn{}
\newcommand*\tud@footlogo@ddc@use[2]{%
\tud@ddc@check%
\ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false
\tud@footlogo@option@set%
\setbox\z@\hbox{%
- \tud@vlayerbox{#1}{%
+ \tud@vlayerbox[footlogo]{#1}{%
\vss%
\hbox to #2{%
\hss%
@@ -1756,12 +2037,12 @@
}%
\vss\vss%
}{%
- You should reduce `footlogoheight', because it is\MessageBreak%
- too high (\the\dimexpr\tud@dim@footlogoheight\relax).%
+ You should reduce `footlogoheight', because it is\noexpand\MessageBreak%
+ too high. %
\ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside
- \MessageBreak%
- Alternatively you can enlarge the bottom margin\MessageBreak%
- by using option `extrabottommargin'.%
+ Alternatively you could use\noexpand\MessageBreak%
+ option `extrabottommargin=<length>'\noexpand\MessageBreak%
+ in order to enlarge the bottom margin. %
\fi%
}%
}%
@@ -1773,6 +2054,7 @@
\fi%
}
% \end{macrocode}
+% \end{macro}^^A \tud@layer@footlogo@wrn
% \end{macro}^^A \tud@footlogo@ddc@use
% \begin{macro}{\tud@layer@foot@cmd}
% \changes{v2.04}{2015/06/01}{neu}^^A
@@ -1795,7 +2077,7 @@
% \begin{macro}{\tud@footlogo@cmd@@set}
% \changes{v2.03}{2015/01/27}{neu}^^A
% \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien
-% individuell nutzbar}^^A
+% individuell nutzbar}^^A
% \begin{macro}{\if@tud@footlogo@cmd@set}
% \changes{v2.04}{2015/06/01}{neu}^^A
% Mit dem Befehl \cs{footlogo} kann eine kommasparierte Liste für Logos im
@@ -1817,7 +2099,7 @@
% durch \val{:} an den Dateinamen angehängt übergeben wurden, werden hier in
% der Box \cs{tud@layer@foot@cmd} gespeichert.
% \begin{macrocode}
-\newif\if@tud@footlogo@cmd@set
+\tud@newif\if@tud@footlogo@cmd@set
\newcommand*\tud@footlogo@cmd@set[2]{%
\if@tud@footlogo@cmd@set%
\tud@savelayerbox{foot@cmd}{%
@@ -1831,7 +2113,8 @@
% \begin{macrocode}
\let\@tempa\relax%
\@for\@tempb:=\tud@footlogo@filenames\do{%
- \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}%
+ \protected@edef\@tempb{\@tempb}%
+ \trim@spaces@in{\@tempb}%
\@tempa%
\ifx\@tempb\@empty\else%
\expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}%
@@ -1856,6 +2139,7 @@
% 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.
+% \ToDo{\cs{DeclareListParser} außerhalb global definieren}[v2.07]
% \begin{macrocode}
\let\@tempa\@empty%
\let\@tempb\@empty%
@@ -1875,7 +2159,8 @@
% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt.
% \begin{macrocode}
\preto\tud@footlogo@fileoptions{%
- keepaspectratio,totalheight=\tud@dim@footlogoheight,%
+ keepaspectratio,%
+ totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax,%
}%
% \end{macrocode}
% Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als
@@ -1883,7 +2168,9 @@
% \begin{macrocode}
\eappto\tud@footlogo@fileoptions{\expandonce\@tempb}%
\protected@edef\@tempc{%
- \noexpand\includegraphics[\expandonce\tud@footlogo@fileoptions]{\@tempa}%
+ \noexpand\includegraphics[{%
+ \expandonce\tud@footlogo@fileoptions%
+ }]{\@tempa}%
}%
% \end{macrocode}
% Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch
@@ -1927,11 +2214,11 @@
% \begin{macro}{\tud@footcontent@@do}
% \changes{v2.04}{2015/04/21}{neu}^^A
% \changes{v2.05}{2016/04/17}{Stern im Argument erhält aktuellen Inhalt}^^A
-% \begin{macro}{\tud@footcontent@usefont}
+% \begin{macro}{\tud@footcontent@font@use}
% \changes{v2.06}{2018/08/01}{neu}^^A
-% \begin{macro}{\tud@footcontent@fontsize}
+% \begin{macro}{\tud@footcontent@font@size}
% \changes{v2.06}{2018/08/01}{neu}^^A
-% \begin{macro}{\tud@footcontent@fontface}
+% \begin{macro}{\tud@footcontent@font@face}
% \changes{v2.04}{2015/06/01}{neu}^^A
% \changes{v2.05}{2015/07/21}{Bugfix für die Schriftgröße und den Durchschuss
% bei einer entsprechenden Anpassung der Schriftart \val{tudheadings}}^^A
@@ -1948,10 +2235,10 @@
% \end{macrocode}
% Dieser Befehl wird zur Formatierung der Schrift im Fußbereich definiert.
% \begin{macrocode}
-\newcommand*\tud@footcontent@usefont[1]{%
+\newcommand*\tud@footcontent@font@use[1]{%
\usekomafont{tudheadings}{%
- \tud@footcontent@fontsize%
- \tud@footcontent@fontface%
+ \tud@footcontent@font@size%
+ \tud@footcontent@font@face%
\selectfont%
#1%
}%
@@ -1961,22 +2248,23 @@
% diesen Makros gesichert, weshalb diese vorher alloziert werden. Anschließend
% erfolgt die Definition des Befehls.
% \begin{macrocode}
-\newcommand*\tud@footcontent@fontsize{}
-\newcommand*\tud@footcontent@fontface{}
+\newcommand*\tud@footcontent@font@size{}
+\newcommand*\tud@footcontent@font@face{}
\newcommand*\tud@footcontent@left{}
-\newcommand*\tud@footcontent@right{\@nil}
+\newcommand*\tud@footcontent@right{}
+\let\tud@footcontent@right\@nnil
% \end{macrocode}
% Die Sternversion ändert die Schriftgröße vom Inhalt nicht. Die Normalversion
% nutzt die Schriftgröße der Kopfzeile mit einem passenden Durchschuss.
% \begin{macrocode}
\newcommand*\footcontent{%
\kernel@ifstar{%
- \renewcommand*\tud@footcontent@fontsize{}%
+ \renewcommand*\tud@footcontent@font@size{}%
\tud@footcontent@do%
}{%
- \renewcommand*\tud@footcontent@fontsize{%
- \setlength\@tempdima{\tud@head@fontsize\p@}%
- \fontsize{\@tempdima}{1.25\@tempdima}%
+ \renewcommand*\tud@footcontent@font@size{%
+ \tud@setdim\tud@res@glue{\tud@head@fontsize\p@}%
+ \fontsize{\tud@res@glue}{\dimexpr1\tud@res@glue*5/4\relax}%
}%
\tud@footcontent@do%
}%
@@ -1998,26 +2286,26 @@
% Wurde im optionalen Argument für zusätzliche Schrifteinstellungen ein Stern
% verwendet, bleibt die bisherige Definition bestehen.
% \begin{macrocode}
- \if\detokenize{*#1}\relax\else%
- \renewcommand*\tud@footcontent@fontface{#1}%
+ \if\detokenize{#1*}\relax\else%
+ \renewcommand*\tud@footcontent@font@face{#1}%
\fi%
% \end{macrocode}
% Wurde in einem der Argumente für den linken und/oder rechten Inhalt ein Stern
% verwendet, bleibt die bisherige Definition bestehen.
% \begin{macrocode}
- \if\detokenize{*#2}\relax\else%
+ \if\detokenize{#2*}\relax\else%
\renewcommand*\tud@footcontent@left{#2}%
\fi%
- \if\detokenize{*#3}\relax\else%
+ \if\detokenize{#3*}\relax\else%
\renewcommand*\tud@footcontent@right{#3}%
\fi%
}
% \end{macrocode}
% \end{macro}^^A \tud@footcontent@right
% \end{macro}^^A \tud@footcontent@left
-% \end{macro}^^A \tud@footcontent@fontface
-% \end{macro}^^A \tud@footcontent@fontsize
-% \end{macro}^^A \tud@footcontent@usefont
+% \end{macro}^^A \tud@footcontent@font@face
+% \end{macro}^^A \tud@footcontent@font@size
+% \end{macro}^^A \tud@footcontent@font@use
% \end{macro}^^A \tud@footcontent@@do
% \end{macro}^^A \tud@footcontent@do
% \end{KOMAfont}^^A tudheadings
@@ -2043,7 +2331,7 @@
% \begin{macrocode}
\newcommand*\tud@newline@poster{}
\newcommand*\tud@footcontent@@left[1]{%
- \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}%
+ \tud@if@strblank{#1}{}{{\tud@head@font@@bold#1\newline}}%
Technische Universit\"at Dresden%
\tud@foot@line@write{faculty}%
\tud@foot@line@write{department}%
@@ -2068,22 +2356,22 @@
\nobreakspace(\@discipline)%
\fi%
\fi%
+ \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
\ifx\@office\@empty\else\newline\@office\fi%
\ifx\@telephone\@empty\else\newline\@telephone\fi%
\ifx\@telefax\@empty\else\newline\@telefax\fi%
- \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
}%
% \end{macrocode}
% Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte
% Warnung bei der Verwendung des Feldes \cs{@author} unterdrückt.
% \begin{macrocode}
- \ifpatchable{\@author}{\@latex@warning@no@line}{%
+ \tud@if@field@unset{\@author}{%
\let\@tempa\@empty%
}{%
\let\@tempa\@author%
}%
\ifx\@tempa\@empty\else%
- \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}%
+ \tud@if@strblank{#1}{}{{\tud@head@font@@bold#1\newline}}%
% \end{macrocode}
% Das Makro zum Aufteilen der Autorenangaben wird für die hier benötigte Form
% definiert. Die Ausgabe aller nicht \emph{lokal} angegebenen Felder wird
@@ -2113,13 +2401,13 @@
% Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe.
% \begin{macrocode}
\def\tud@newline@poster{%
+ \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
\ifx\@office\@empty\else\newline\@office\fi%
\ifx\@telephone\@empty\else\newline\@telephone\fi%
\ifx\@telefax\@empty\else\newline\@telefax\fi%
- \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi%
}%
\ifx\@contactperson\@empty\else%
- \ifxblank{#2}{}{{\tud@head@font@@bold#2\newline}}%
+ \tud@if@strblank{#2}{}{{\tud@head@font@@bold#2\newline}}%
\renewcommand*\tud@split@contactperson@do[2]{%
\tud@multiple@fields@store{@contactperson}{##1}%
\tud@multiple@fields@preset{@contactperson}{*}{##1}%
@@ -2152,6 +2440,8 @@
%
% \begin{macro}{\tud@footcontent@use}
% \changes{v2.04}{2015/06/01}{neu}^^A
+% \begin{macro}{\tud@footcontent@@use}
+% \begin{macro}{\tud@layer@footcontent@wrn}
% Mit \cs{tud@footcontent@use} erfolgt die Ausgabe der mit \cs{footcontent}
% definierten Inhalte. Dabei wird darauf geachtet, ob ein \DDC-Logo im Fuß
% verwendet wird. Die Ausgabe erfolgt jedoch nur, falls tatsächlich etwas
@@ -2159,12 +2449,12 @@
% Breite ausgegeben. Dies ist notwendig, da nachgelagerte Funktionen diese Box
% fester Breite erwarten.
% \begin{macrocode}
+\newcommand*\tud@layer@footcontent@wrn{}
\newcommand*\tud@footcontent@use[2]{%
\@tempswafalse%
- \ifx\tud@footcontent@left\@empty\relax%
- \def\@tempa{\@nil}%
- \ifx\@tempa\tud@footcontent@right\relax\else%
- \ifx\tud@footcontent@right\@empty\relax\else%
+ \ifx\tud@footcontent@left\@empty%
+ \ifx\tud@footcontent@right\@nnil\else%
+ \ifx\tud@footcontent@right\@empty\else%
\@tempswatrue%
\fi%
\fi%
@@ -2174,46 +2464,23 @@
\if@tempswa%
\tud@ddc@check%
\ifcase\@tempb\relax%
- \setlength\@tempdimc{\z@}%
+ \tud@setdim\@tempdimc{\z@}%
\else%
\settowidth\@tempdimc{\tud@uselayerbox{foot@black}}%
- \addtolength\@tempdimc{\columnsep}%
+ \tud@addtodim\@tempdimc{\columnsep}%
\fi%
% \end{macrocode}
% Äquivalent zu den Logos wird auch der durch den Anwender frei definierbare
% Inhalt des Fußes in einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im
% Bedarfsfall der Freiraum für das \DDC-Logo bereitgestellt.
% \begin{macrocode}
- \tud@vlayerbox{#1}{%
+ \tud@vlayerbox[footcontent]{#1}{%
\linespread{1}%
\vss%
\hbox to #2{%
- \tud@footcontent@usefont{%
-% \end{macrocode}
-% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird
-% der Inhalt über die komplette Breite des Textbereiches ausgegeben.
-% \begin{macrocode}
- \def\@tempa{\@nil}%
- \ifx\@tempa\tud@footcontent@right\relax%
- \vtop{%
- \hsize=\dimexpr#2-\@tempdimc\relax%
- \strut\ignorespaces\tud@footcontent@left\strut%
- }%
-% \end{macrocode}
-% Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen
-% der Abstand \cs{columnsep} eingefügt wird.
-% \begin{macrocode}
- \else%
- \vtop{%
- \hsize=\dimexpr(#2-\columnsep)/2\relax%
- \strut\ignorespaces\tud@footcontent@left\strut%
- }%
- \hspace{\columnsep}%
- \vtop{%
- \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax%
- \strut\ignorespaces\tud@footcontent@right\strut%
- }%
- \fi%
+ \tud@footcontent@font@use{%
+ \tud@setglue\tud@res@glue{#2}%
+ \tud@footcontent@@use{\tud@res@glue}%
\hss%
}%
}%
@@ -2222,12 +2489,12 @@
% Sollte der Inhalt für den Fußbereich zu groß sein, wird eine Warnung erzeugt.
% \begin{macrocode}
}{%
- The content for the footer (`\string\footcontent')\MessageBreak%
- is too high. You should either reduce the content\MessageBreak%
+ The content for the footer (`\string\footcontent')\noexpand\MessageBreak%
+ is too high. You should either reduce the content\noexpand\MessageBreak%
or lower the fontsize via the optional argument.%
\ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside
- \MessageBreak%
- Alternatively you can enlarge the bottom margin\MessageBreak%
+ \noexpand\MessageBreak%
+ Alternatively you can enlarge the bottom margin\noexpand\MessageBreak%
by using option `extrabottommargin'.%
\fi%
}%
@@ -2236,263 +2503,35 @@
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@footcontent@use
-%
-% \iffalse
-%</class&body>
-% \fi
-%
-% \subsection{Optionen für das \DDC-Logo}
-%
-% \begin{macro}{\tud@comp@clearpage}
-% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\tud@comp@resetpagestyle}
-% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\if@tud@ddc@internal}
-% \changes{v2.02}{2014/07/08}{neu}^^A
-% Bis zur Version~v2.02 wurden unterschiedliche Satzsiegel für den Seitenfuß
-% mit und ohne \DDC-Logo verwendet. Damit dieser im Zweifelsfall umgestellt
-% werden kann, wurde vor dem Ausführen der entsprechenden Optionen ein
-% Seitenumbruch erzwungen und nach dem Verarbeiten der Optionen der aktuelle
-% Seitenstil erneut aufgerufen. Die beiden folgenden Makros werden für dieses
-% Unterfangen definiert, jedoch bei der Abarbeitung der Optionen nur noch im
-% Kompatibilitätmodus ausgeführt. Der Schalter \cs{if@tud@ddc@internal} wird
-% intern von den Optionen \opt{ddc}, \opt{ddchead} und \opt{ddcfoot} verwendet,
-% um rekursive Aufrufe der Optionen zu verhindern.
-% \begin{macrocode}
-%<*class&option>
-\newif\if@tud@ddc@internal
-\newcommand*\tud@comp@clearpage{}%
-\newcommand*\tud@comp@resetpagestyle{}%
-%</class&option>
-%<*class&body>
-\tud@if@v@lower{2.04}{%
- \renewcommand*\tud@comp@clearpage{%
- \if@tud@ddc@internal\else%
- \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}%
- \fi%
- }%
- \renewcommand*\tud@comp@resetpagestyle{%
- \if@tud@ddc@internal\else%
- \tud@if@tudheadings{\currentpagestyle}{%
- \expandafter\pagestyle\expandafter{\currentpagestyle}%
- }{}%
- \fi%
- }%
-}{}%
-%</class&body>
-% \end{macrocode}
-% \end{macro}^^A \if@tud@ddc@internal
-% \end{macro}^^A \tud@comp@clearpage
-% \end{macro}^^A \tud@comp@resetpagestyle
-%
-% \iffalse
-%<*class&option>
-% \fi
-%
-% \begin{option}{ddc}
-% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A
-% \begin{option}{ddchead}
-% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
-% \begin{option}{ddcfoot}
-% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A
-% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil
-% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den
-% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls
-% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß.
-% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein
-% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen
-% im Fuß ausgegeben.
-% \begin{macro}{\tud@ddc@switch}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% Das Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc},
-% \opt{ddchead} sowie \opt{ddcfoot}.
-% \begin{macrocode}
-\newcommand*\tud@ddc@switch{}
-\edef\tud@ddc@switch{%
- \TUD@bool@numkey,%
- {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},%
- {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},%
- {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},%
- {black}{5},{cdblack}{5},%
- {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},%
- {white}{7},{cdwhite}{7}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@ddc@switch
-% \begin{macro}{\tud@ddc@auto@num}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{macro}{\if@tud@ddc@auto}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{macro}{\if@tud@headlogo@option@set}
-% \changes{v2.04}{2015/05/31}{neu}^^A
-% \begin{macro}{\if@tud@footlogo@option@set}
-% \changes{v2.04}{2015/06/01}{neu}^^A
-% Die Option \opt{ddc}.
-% \begin{macrocode}
-\newif\if@tud@headlogo@option@set
-\newif\if@tud@footlogo@option@set
-\newif\if@tud@ddc@auto
-\newcommand*\tud@ddc@auto@num{0}
-\TUD@key{ddc}[true]{%
-% \end{macrocode}
-% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird
-% die Option abgearbeitet.
-% \begin{macrocode}
- \tud@comp@clearpage%
- \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
-% \end{macrocode}
-% Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot}
-% aufgerufen, wird die automatische Auswahl des \DDC-Logos deaktiviert.
-% \begin{macrocode}
- \if@tud@ddc@internal%
- \@tud@ddc@autofalse%
- \else%
-% \end{macrocode}
-% Andernfalls wird die automatische Auswahl aktiviert und die beiden Optionen
-% \opt{ddchead} sowie \opt{ddcfoot} intern zurückgesetzt.
-% \begin{macrocode}
- \@tud@ddc@autotrue%
- \@tud@ddc@internaltrue%
- \TUDoptions{ddchead=false}%
- \TUDoptions{ddcfoot=false}%
- \@tud@ddc@internalfalse%
- \fi%
-% \end{macrocode}
-% Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden
-% in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter
-% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der
-% Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}.
-% \begin{macrocode}
- \global\@tud@headlogo@option@settrue%
- \global\@tud@footlogo@option@settrue%
- \fi%
-% \end{macrocode}
-% Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen,
-% um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden.
-% \begin{macrocode}
- \tud@comp@resetpagestyle%
-}
-% \end{macrocode}
-% \end{macro}^^A \if@tud@footlogo@option@set
-% \end{macro}^^A \if@tud@headlogo@option@set
-% \end{macro}^^A \if@tud@ddc@auto
-% \end{macro}^^A \tud@ddc@auto@num
-% \begin{macro}{\tud@ddc@head@num}
-% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
-% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf
-% der Seiten im Stil von \pgs{tudheadings}.
-% \begin{macrocode}
-\newcommand*\tud@ddc@head@num{0}
-\TUD@key{ddchead}[true]{%
-% \end{macrocode}
-% Der Seitenumbruch im Kompatibilitätsmodus.
-% \begin{macrocode}
- \tud@comp@clearpage%
- \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}%
-% \end{macrocode}
-% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
-% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
-% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten
-% setzen der Logoboxen.
-% \begin{macrocode}
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@tud@ddc@internal\else%
- \@tud@ddc@internaltrue%
- \TUDoptions{ddcfoot=false}%
- \TUDoptions{ddc=false}%
- \@tud@ddc@internalfalse%
- \fi%
- \fi%
-% \end{macrocode}
-% Das Setzen des Seitenstils im Kompatibilitätsmodus.
-% \begin{macrocode}
- \tud@comp@resetpagestyle%
-}
-% \end{macrocode}
-% \end{macro}^^A \tud@ddc@head@num
-% \begin{macro}{\tud@ddc@foot@num}
-% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A
-% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß
-% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des
-% Schlüssels ist äquivalent zur Option \opt{ddchead}
-% \begin{macrocode}
-\newcommand*\tud@ddc@foot@num{0}
-\TUD@key{ddcfoot}[true]{%
-% \end{macrocode}
-% Der Seitenumbruch im Kompatibilitätsmodus.
-% \begin{macrocode}
- \tud@comp@clearpage%
- \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}%
-% \end{macrocode}
-% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden.
-% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden
-% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten
-% setzen der Logoboxen.
-% \begin{macrocode}
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@tud@ddc@internal\else%
- \@tud@ddc@internaltrue%
- \TUDoptions{ddchead=false}%
- \TUDoptions{ddc=false}%
- \@tud@ddc@internalfalse%
- \fi%
- \fi%
-% \end{macrocode}
-% Das Setzen des Seitenstils im Kompatibilitätsmodus.
+% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird
+% der Inhalt über die komplette Breite des Textbereiches ausgegeben.
% \begin{macrocode}
- \tud@comp@resetpagestyle%
-}
+\newcommand*\tud@footcontent@@use[1]{%
+ \ifx\tud@footcontent@right\@nnil%
+ \vtop{%
+ \hsize=\dimexpr\glueexpr#1-\@tempdimc\relax\relax%
+ \strut\ignorespaces\tud@footcontent@left\strut%
+ }%
% \end{macrocode}
-% \end{macro}^^A \tud@ddc@foot@num
-% \end{option}^^A ddcfoot
-% \end{option}^^A ddchead
-% \end{option}^^A ddc
-%
-% \iffalse
-%</class&option>
-%<*class&body>
-% \fi
-%
-% \begin{macro}{\tud@ddc@check}
-% \changes{v2.02}{2014/06/23}{neu}^^A
-% Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen
-% für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen.
-% Über den Schalter \cs{if@tud@ddc@auto} wird festgelegt, ob die Auswahl des
-% \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet.
-% Ist dies der Fall, wird das Logo standardmäßig im Kopf gesetzt. Ist jedoch
-% durch den Befehl \cs{headlogo} ein Zweitlogo angegeben worde, wird dieses in
-% der Fußzeile ausgegeben. Die Verwendung einer der Optionen \opt{ddchead} bzw.
-% \opt{ddcfoot} forciert die Ausgabe des \DDC-Logos an der gewünschten Stelle.
-% Die jeweils gültige Auswahl für Kopf bzw. Fuß wird in den Makros \cs{@tempa}
-% bzw. \cs{@tempb} geschrieben und kann anschließend ausgewertet werden.
+% Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen
+% der Abstand \cs{columnsep} eingefügt wird.
% \begin{macrocode}
-\newcommand*\tud@ddc@check{%
- \let\@tempa\tud@ddc@head@num%
- \let\@tempb\tud@ddc@foot@num%
- \if@tud@ddc@auto%
- \ifdefvoid{\tud@headlogo@filename}{%
- \let\@tempa\tud@ddc@auto@num%
- \let\@tempb\z@%
- }{%
- \let\@tempa\z@%
- \let\@tempb\tud@ddc@auto@num%
+ \else%
+ \vtop{%
+ \hsize=\dimexpr\glueexpr(#1-\columnsep)/2\relax\relax%
+ \strut\ignorespaces\tud@footcontent@left\strut%
+ }%
+ \hspace{\columnsep}%
+ \vtop{%
+ \hsize=\dimexpr\glueexpr(#1-\columnsep)/2-\@tempdimc\relax\relax%
+ \strut\ignorespaces\tud@footcontent@right\strut%
}%
\fi%
-% \end{macrocode}
-% Für die Satzspiegelvergrößerung wird beim Vorhandensein eines oder mehrerer
-% Logos im Fuß die Variable \cs{@tempb} auf einen negativen Wert gesetzt, um
-% auch ohne die Ausgabe eines \DDC-Logos den Fußbereich zu vergrößern.
-% \begin{macrocode}
- \tud@if@v@lower{2.03}{%
- \ifnum\@tempb=\z@\relax%
- \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}%
- \fi%
- }{}%
}
% \end{macrocode}
-% \end{macro}^^A \tud@ddc@check
+% \end{macro}^^A \tud@layer@footcontent@wrn
+% \end{macro}^^A \tud@footcontent@@use
+% \end{macro}^^A \tud@footcontent@use
%
% \subsection{Umgebungsparameter für die neuen Seitenstile}
%
@@ -2501,7 +2540,7 @@
% Der Schalter wird verwendet, um das explizite Setzen der Schrifteinstellungen
% über die Seitenstilparameter zu detektieren.
% \begin{macrocode}
-\newif\if@tud@parameter@ps@font@set
+\tud@newif\if@tud@parameter@ps@font@set
% \end{macrocode}
% \end{macro}^^A \if@tud@parameter@ps@font@set
% \begin{macro}{\TUD@parameter@ps@def}
@@ -2634,11 +2673,12 @@
% Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout
% wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner
% Wert ohne Schlüssel angegben werden.
+% \ToDo{Umgebung raus? Auf alle Fälle cdgeometry=... etc. unterstützen}[v2.07]
% \begin{macrocode}
\newcommand*\tud@envir@ps{tudheadings}
\newcommand*\tud@envir@selectps{%
\expandafter\pagestyle\expandafter{\tud@envir@ps}%
- \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{%
+ \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty}{%
\renewcommand*\titlepagestyle{empty}%
%<*book|report>
\renewcommand*\partpagestyle{empty}%
@@ -2646,7 +2686,7 @@
%</book|report>
\renewcommand*\indexpagestyle{empty}%
}{}%
- \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{%
+ \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{%
\renewcommand*\titlepagestyle{empty.tudheadings}%
%<*book|report>
\renewcommand*\partpagestyle{empty.tudheadings}%
@@ -2671,6 +2711,7 @@
% \end{macrocode}
% Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird
% dieser im Hilfsmakro \cs{tud@currentpagestyle@value} gespeichert.
+% \ToDo{eher NewDocumentEnvironment nutzen?}[v2.07]
% \begin{macrocode}
\tud@currentpagestyle@set%
\clearpage%
@@ -2723,11 +2764,12 @@
% werden, wobei einer der \pgs{tudheadings}-Seitenstile verwendet wird.
% \begin{macrocode}
\TUD@parameter@def{pagestyle}{%
- \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{%
- \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{%
- \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{%
- \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{%
- \TUD@parameter@error{pagestyle}{%
+ \tud@if@tudheadings{#1}{\def\tud@envir@ps{#1}}{%
+ \def\tud@envir@ps{tudheadings}%
+ \tud@if@strequal{#1}{empty}{\def\tud@envir@ps{empty.tudheadings}}{%
+ \tud@if@strequal{#1}{plain}{\def\tud@envir@ps{plain.tudheadings}}{%
+ \tud@if@strequal{#1}{headings}{}{%
+ \TUD@parameter@err{pagestyle}{%
headings, plain, empty or any tudheadings page style type%
}%
}}}%
@@ -2778,6 +2820,6 @@
%</class&body>
% \fi
%
-% \Finale
+% \PrintBackMatter
%
\endinput