% \iffalse meta-comment %/GitFileInfo=tudscr-pagestyle.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % % Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % % This work may be distributed and/or modified under the conditions of the % LaTeX Project Public License, either version 1.3c of this license or % any later version. 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 2008-05-04 or later. % % This work has the LPPL maintenance status "maintained". % % The current maintainer and author of this work is Falk Hanisch. % % ---------------------------------------------------------------------------- % % \fi % % \iffalse ins:batch + dtx:driver %<*ins> \ifx\documentclass\undefined \input docstrip.tex \ifToplevel{\batchinput{tudscr.ins}} \else \let\endbatchfile\relax \fi \endbatchfile % %<*dtx> \ProvidesFile{tudscr-pagestyle.dtx}[2022/08/09] \RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} \else \usepackage[T1]{fontenc} \usepackage[ngerman=ngerman-x-latest]{hyphsubst} \fi \usepackage{babel} \usepackage{tudscrfonts} \usepackage[babel]{microtype} \GitHubBase{\TUDScriptRepository} \begin{document} \author{Falk Hanisch\TUDScriptContactTitle} \maketitle \tableofcontents \DocInput{\filename} \end{document} % % \fi % % \selectlanguage{ngerman} % % \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A % \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A % \changes{v2.05}{2015/07/06}{Seitenstil für Poster}^^A % % % % \section{Der Seitenstil des \CDs} % % 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] % % \iffalse %<*class&body> % \fi % % \subsection{Definition des Seitenstils mit dem Paket \pkg{scrlayer-scrpage}} % % Ein zentraler Bestandteil von \TUDScript ist der Seitenkopf des \CDs. Dieser % wird ab der Version~v2.02 mit Hilfe des Paketes \pkg{scrlayer-scrpage} % erzeugt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von % verschiedenen Befehlen wie beispielsweise von\cs{maketitle} oder \cs{part} % bzw. \cs{addpart} genutzt werden. Zum anderen kann der Anwender selbst diese % entweder direkt über die Wahl des Seitenstils oder aber mit der % \env{tudpage}-Umgebung nutzen. % % 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}[% %!TUD@KOMAVersion ]}% \fi % \end{macrocode} % Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage} % genutzt. Mit diesem können verschiedene Ebenen erstellt werden, aus welchen % anschließend der eigentliche Seitenstil zusammengesetzt wird. Dabei werden % verschiedene, sogenannte Layers respektive Ebenen für die einzelnen Elemente % auf einer Seite erstellt. % \begin{macrocode} \AfterPackage{scrlayer-scrpage}{% % \end{macrocode} % \begin{layerpagestyle}{tudheadings} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layerpagestyle}{plain.tudheadings} % \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 \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 % Zweitlogo. Diese werden seit der Version~v2.04 nicht mehr in zwei getrennten % sondern in einer gemeinsamen Ebene gesetzt. % \begin{macrocode} \DeclareNewLayer[% background,headsep,% 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. % \begin{macrocode} \tud@mainlogo@set% \tud@headlogo@option@set% \tud@mainlogo@use\hfill\tud@headlogo@use% },% ]{tudheadings.head.content}% % \end{macrocode} % \end{layer}^^A tudheadings.head.content % \begin{layer}{tudheadings.head.back} % \changes{v2.03}{2015/02/14}{neu}^^A % \begin{layer}{tudheadings.head.bar} % \changes{v2.03}{2015/02/14}{neu}^^A % \changes{v2.05}{2015/07/14}{Bugfix verschobener Balken}^^A % Außerdem gibt es eine Variante ohne Querbalken-Outline. Stattdessen werden % der Querbalken und der darüberliegende Kopf farbig abgesetzt. % \begin{macrocode} \DeclareNewLayer[% background,% width=\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}% \rule{\layerwidth}{\layerheight}% \fi% },% ]{tudheadings.head.back}% \DeclareNewLayer[% background,% 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}% \tud@setdim\@tempdima{\ht\strutbox-\tud@dim@barheight}% \ifdim\@tempdima<\z@\relax\tud@setdim\@tempdima{\z@}\fi% \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% \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=\tud@dim@topmargin+\tud@dim@line,% addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@head@font@set% \tud@head@text@set% \tud@head@text@box% },% ]{tudheadings.head.text}% % \end{macrocode} % \end{layer}^^A tudheadings.head.text % \begin{layer}{tudheadings.head.upline} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.lowline} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.uplinewide} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.lowlinewide} % \changes{v2.02}{2014/06/23}{neu}^^A % Die Ebenen für obere und untere Linie des Querbalkens sowohl in der normalen % Version, welche den Textbereich überspannt als auch in der Variante über die % komplette Seitenbreite. Dabei muss für beide Varianten der entsprechenden % horizontale Versatz beachtet werden. Dafür wird ggf. der Parameter \val{head} % von \pkg{scrlayer-scrpage} verwendet. % \begin{macrocode} \DeclareNewLayer[% background,headsep,% voffset=\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% \fi% },% ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% 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% \fi% },% ]{tudheadings.head.lowline}% \DeclareNewLayer[% background,% 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% \fi% },% ]{tudheadings.head.uplinewide}% \DeclareNewLayer[% background,% 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% \fi% },% ]{tudheadings.head.lowlinewide}% % \end{macrocode} % \end{layer}^^A tudheadings.head.lowlinewide % \end{layer}^^A tudheadings.head.uplinewide % \end{layer}^^A tudheadings.head.lowline % \end{layer}^^A tudheadings.head.upline % \begin{layer}{tudheadings.head.date} % \changes{v2.05}{2016/05/27}{neu}^^A % Optionales Datum rechts oberhalb des Textbereiches. % \begin{macrocode} \DeclareNewLayer[% foreground,headsep,% addvoffset=\tud@dim@headsep/2,% height=1\baselineskip,% contents={\if@tud@head@date\hfill\tud@date@print\fi},% ]{tudheadings.head.date}% % \end{macrocode} % \end{layer}^^A tudheadings.head.date % \begin{layer}{tudheadings.foot.back} % \changes{v2.03}{2015/02/15}{neu}^^A % \begin{layer}{tudheadings.foot.logo} % \changes{v2.02}{2014/06/23}{neu}^^A % \changes{v2.04}{2015/05/31}{neu}^^A % \changes{v2.03}{2015/02/15}{überarbeitetet}^^A % \begin{layer}{tudheadings.foot.content} % \changes{v2.04}{2015/04/21}{neu}^^A % \changes{v2.05}{2015/07/06}{Bugfix für Kompatibilitätsmodus}^^A % Die folgenden Ebenen dienen für die Ausgabe des Fußbereiches. Dieser kann mit % einem farbigen Hintergrund und zusätzlichen Logos (\cs{footlogo}) sowie frei % wählbare Inhalte ein- oder zweispaltig mit \cs{footcontent} erstellt werden. % Dabei werden die Ebenen in Abhängigkeit vom gewählten Kompatibilitätsmodus % unterschiedlich definiert. Die erste Ebene bestimmt die Hintergrundgestaltung % des Fußbereiches. % \begin{macrocode} \DeclareNewLayer[% background,foot,% 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% \let\@tempc\relax% \ifdefvoid{\tud@pagecolor}{% \ifcase\tud@head@bar@num\relax\or% cdhead=litecolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=barcolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=color \def\@tempc{\color{HKS41}}% \fi% }{% \def\@tempc{\color{HKS41}}% \tud@if@strequal{\tud@pagecolor}{HKS41}% {\def\@tempc{\color{HKS41!60}}}% {}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% \fi% \fi% },% ]{tudheadings.foot.back}% % \end{macrocode} % Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel % geändert. Hier wird dem Rechnung getragen, indem der farbige Hintergrund im % Zweifelsfall vergrößert wird. % \begin{macrocode} \tud@if@v@lower{2.03}{% \ModifyLayer[% addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% \ifdefvoid{\tud@pagecolor}{% \ifcase\tud@head@bar@num\relax\or\or% cdhead=barcolor \def\@tempc{\color{HKS41!60}}% \or% cdhead=color \def\@tempc{\color{HKS41}}% \fi% }{% \def\@tempc{\color{HKS41}}% \tud@if@strequal{\tud@pagecolor}{HKS41}% {\def\@tempc{\color{HKS41!60}}}% {}% }% \ifx\@tempc\relax\else% \tud@ddc@check% \ifcase\@tempb\relax% \tud@ddc@foot@num=false \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% }% \else% \tud@ddc@foot@num!=false \@tempc\rule{\layerwidth}{\layerheight}% \fi% \fi% \fi% },% ]{tudheadings.foot.back}% }{}% % \end{macrocode} % Die zweite Ebene wird für die Ausgabe von Drittlogos und des \DDC-Logos sowie % freien Inhalten im Seitenfuß erstellt. Ab Version~v2.03 wird der Satzspiegel % so gewählt, dass das \DDC-Logo und andere Inhalten in den normalen Seitenfuß % passen. % \begin{macrocode} \DeclareNewLayer[% background,foot,% height=\tud@dim@layoutheight-\layeryoffset+\tud@dim@layoutvoffset,% contents={% % \end{macrocode} % Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, % werden passende Standardwerte gesetzt. Außerdem wird die genutzte Höhe des % Layers nicht vollständig genutzt, um bei einem farbigen Fußbereich einen % gewissen Abstand vom Inhalt zur Kante zu erhalten. % \begin{macrocode} \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% % \end{macrocode} % Im Bedarfsfall werden die Boxen vor der Ausgabe durch die einzelnen % |\...@use|-Befehle neu gesetzt. Danach erfolgt die Ausgabe, wobei die % Boxen übereinander gelegt werden. % \begin{macrocode} \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% \tud@footcontent@use{\@tempdima}{\layerwidth}% },% ]{tudheadings.foot.content}% % \end{macrocode} % Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel % geändert. Hier wird dem Rechnung getragen. % \begin{macrocode} \tud@if@v@lower{2.03}{% \ModifyLayer[% addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \tud@ddc@check% \ifcase\@tempb\relax% \tud@ddc@foot@num=false \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}% \tud@footcontent@use{\@tempdima}{\layerwidth}% },% ]{tudheadings.foot.content}% }{}% % \end{macrocode} % \end{layer}^^A tudheadings.foot.content % \end{layer}^^A tudheadings.foot.logo % \end{layer}^^A tudheadings.foot.back % \begin{layer}{tudheadings.last} % \changes{v2.04}{2015/04/02}{neu}^^A % Die letzte Ebene dient nicht der Ausgabe eines bestimmten Inhaltes sondern % wird für evtl. notwendige Aufräumarbeiten etc. bereitgehalten. % \begin{macrocode} \DeclareNewLayer[% background,% % \end{macrocode} % Falls ein Kapitel ohne die Option \opt{chapterpage} gesetzt wird und dennoch % die Gestalt des Kopfes des \pgs{tudheadings}-Seitenstils sich vom restlichen % Dokument unterscheiden soll (\opt{cd} bzw. \opt{cdchapter}), so dient das % Makro \cs{tud@head@bar@restore} zum Zurücksetzen auf das normale Verhalten. % Siehe \cs{tud@chapter@app}. % \begin{macrocode} % contents=\tud@head@bar@restore,% ]{tudheadings.last}% % \end{macrocode} % \end{layer}^^A tudheadings.last % Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile % zusammengesetzt. Als erstes wird der \pgs{headings}-Seitenstil definiert. % Dieser verwendet den TUD-Kopf und die Fußzeilenebenen des Seitenstils % \pgs{scrheadings}, welche zur Definition des Seitenstils verwendet werden. % Beim Aktivieren des Seitenstils wird außerdem \cs{tud@ps@init} ausgeführt. % Damit die Benutzerschnittstelle von \pkg{scrlayer-scrpage} für die Fußzeile % weiterhin durch den Anwender verwendet werden kann, werden wie erwähnt die % entsprechenden \pgs{scrheadings}-Ebenen verwendet. % \begin{macrocode} \DeclareNewPageStyleByLayers[% onbackground=\tud@ps@onbackground% ]{tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% tudheadings.head.upline,% tudheadings.head.lowline,% tudheadings.head.uplinewide,% tudheadings.head.lowlinewide,% tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% scrheadings.foot.odd,% scrheadings.foot.even,% scrheadings.foot.oneside,% scrheadings.foot.above.line,% scrheadings.foot.below.line% }% % \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[% onbackground=\tud@ps@onbackground% ]{plain.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% tudheadings.head.upline,% tudheadings.head.lowline,% tudheadings.head.uplinewide,% tudheadings.head.lowlinewide,% tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last,% plain.scrheadings.foot.odd,% plain.scrheadings.foot.even,% plain.scrheadings.foot.oneside,% plain.scrheadings.foot.above.line,% plain.scrheadings.foot.below.line% }% \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[% onbackground=\tud@ps@onbackground% ]{empty.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% tudheadings.head.bar,% tudheadings.head.text,% tudheadings.head.upline,% tudheadings.head.lowline,% tudheadings.head.uplinewide,% tudheadings.head.lowlinewide,% tudheadings.head.date,% tudheadings.foot.back,% tudheadings.foot.content,% tudheadings.last% }% \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. Dabei dient das Makros \cs{tud@pagecolor} zum Umschalten % der Hintergrundfarben. % \begin{macrocode} \DeclareNewLayer[% background,% 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}% \rule{\layerwidth}{\layerheight}% }% },% ]{tudheadings.pagecolor}% \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% % \end{macrocode} % \end{layer}^^A tudheadings.pagecolor % Damit wurden alle Ebenen und die darauf aufbauenden Seitenstile deklariert. % \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} } % \end{macrocode} % % \subsubsection{Erweitertung der Seitenstilauswahl} % % Da sich die zuvor definierten Seitenstile von den Standardseitenstilen stark % unterscheiden und auch einen separaten Satzspiegel benötigen, sind einige % Makros zur Kontrollstrukturierung notwendig. % % \begin{macro}{\tud@if@tudheadings} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@ps@list} % \changes{v2.02}{2014/06/23}{neu}^^A % Mit dem Befehl \cs{tud@if@tudheadings} kann geprüft werden, ob der im ersten % Argument gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein % kann, welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den % aktuellen Seitenstil beinhaltet~-- einem aus der Liste \cs{tud@ps@list} % entspricht. Ist dies der Fall, wird das zweite Argument ausgeführt, % anderfalls das dritte. In die Liste \cs{tud@ps@list} werden die drei zuvor % definierten Seitenstile eingetragen. % \begin{macrocode} \newcommand*\tud@ps@list{} \listadd\tud@ps@list{tudheadings} \listadd\tud@ps@list{plain.tudheadings} \listadd\tud@ps@list{empty.tudheadings} \newcommand*\tud@if@tudheadings[3]{% \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% } % \end{macrocode} % \end{macro}^^A \tud@ps@list % \end{macro}^^A \tud@if@tudheadings % \begin{macro}{\thispagestyle} % \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}^^A % Wird der Befehl \cs{thispagestyle} verwendet, muss dafür Sorge getragen % werden, dass kein Alias-Seitenstil expandiert wird. % \begin{macrocode} \patchcmd\thispagestyle{% \gdef\@specialstyle{#1}% }{% \xdef\@specialstyle{\GetRealPageStyle{#1}}% }{}{\tud@patch@wrn{thispagestyle}} % \end{macrocode} % \end{macro}^^A \thispagestyle % \begin{macro}{\pagestyle} % \changes{v2.04}{2015/06/18}{Aktivierung der Seitenstile \pgs{tudheadings} vor % \pkg{scrlayer-scrpage} möglich}^^A % \begin{macro}{\tud@pagestyle} % \changes{v2.04}{2015/06/18}{neu} % Für den Fall, dass das Paket \pkg{scrlayer-scrpage} nicht geladen wird und % dennoch das Makro \cs{currentpagestyle} wie erwartet definiert ist, wird der % originale Befehl etwas angepasst. % \begin{macrocode} \newcommand*\tud@pagestyle{} \let\tud@pagestyle\pagestyle \newcommand*\currentpagestyle{plain} \pretocmd\tud@pagestyle{% \tud@BeforeSelectAnyPageStyle{#1}% \edef\currentpagestyle{#1}% }{}{\tud@patch@wrn{pagestyle}} % \end{macrocode} % Damit die neuen Seitenstile auch vor dem Laden von \pkg{scrlayer-scrpage} % bereits durch den Anwender ausgewählt werden können, wird \cs{pagestyle} % temporär zurechtgebogen. Die Definition des Makros wird gesichert und direkt % vor dem Laden des Paketes wiederhergestellt. Damit werden die Seitenstile % erst aktiviert, nachdem diese auch tatsächlich erstellt wurden. Alle zuvor % angeforderten Seitenstile werden erst nach dem Paket propagiert. % \begin{macrocode} \tud@cs@store{pagestyle} \renewcommand*\pagestyle[1]{% \csuse{ps@#1}% \AfterAtEndOfPackage*{scrlayer-scrpage}{\pagestyle{#1}}% } \BeforePackage{scrlayer-scrpage}{% \tud@cs@restore{pagestyle}% \undef\tud@pagestyle% \undef\currentpagestyle% } % \end{macrocode} % \end{macro}^^A \tud@pagestyle % \end{macro}^^A \pagestyle % Die Seitenstile und Satzspiegel korrelieren sehr stark, weshalb das Paket % \pkg{scrlayer-scrpage} geladen sein muss und auch alle darauf aufbauenden % Einstellungen abgeschlossen sein müssen, um die Satzspiegel zu definieren. % \ToDo{Abhängigkeiten Satzspiegel<>Seitenstil beseitigen}[v2.07] % \begin{macrocode} \AfterAtEndOfPackage*{scrlayer-scrpage}{\AtEndPreamble{\tud@cdgeometry@init}} % \end{macrocode} % \begin{macro}{\ps@tudheadings} % \begin{macro}{\ps@plain.tudheadings} % \begin{macro}{\ps@empty.tudheadings} % \begin{macro}{\currentpagestyle} % \begin{macro}{\BeforeSelectAnyPageStyle} % \begin{macro}{\GetRealPageStyle} % Um die rudimentäre Verwendung der Klassen auch zu ermöglichen, wenn das Laden % des Paketes \pkg{scrlayer-scrpage} verhindert wurde, werden für diesen Fall % einige notwendige Makros definiert. % \begin{macrocode} \TUD@UnwindPackage{scrlayer-scrpage}{% \ifundef{\if@chapter}{% \newif\if@chapter% \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. % \begin{macrocode} \let\pagestyle\tud@pagestyle% \undef\tud@pagestyle% % \end{macrocode} % Das Erstellen des Satzsiegels erfolgt normalerweise nach dem Paket. % \begin{macrocode} \tud@cdgeometry@init% } % \end{macrocode} % \end{macro}^^A \GetRealPageStyle % \end{macro}^^A \BeforeSelectAnyPageStyle % \end{macro}^^A \currentpagestyle % \end{macro}^^A \ps@empty.tudheadings % \end{macro}^^A \ps@plain.tudheadings % \end{macro}^^A \ps@tudheadings % % \subsubsection{Gestaltungsvarianten für Kopf- und Fußzeile} % % \begin{macro}{\tud@ps@onbackground} % \changes{v2.03}{2015/02/14}{neu}^^A % \changes{v2.04}{2015/04/21}{Kopf- und Fußeinstellungen abhängig von der Farbe % des Seitenhintergrunds}^^A % \begin{macro}{\tud@head@logocolor} % \begin{macro}{\tud@head@fontcolor} % \changes{v2.04}{2015/05/18}{neu}^^A % \begin{macro}{\tud@foot@logocolor} % \changes{v2.03}{2015/02/15}{neu}^^A % \begin{macro}{\tud@foot@fontcolor} % \changes{v2.04}{2015/04/21}{neu}^^A % Das Makro \cs{tud@head@logocolor} enthält die Farbe des Kopfes. Die Gestalt % des Querbalkens kann über die Option \opt{cdhead} geändert werden. Für Titel, % Teil und Kapitel gibt es speziell dazugehörige Optionen, womit das Aussehen % des Kopfes ggf. angepasst werden kann. Mit \cs{tud@foot@logocolor} kann % die Farbe eines etwaigen \DDC-Logo gleichermaßen festgelegt werden, in % \cs{tud@foot@fontcolor} wird ggf. die Schriftfarbe für den Fuß gespeichert. % Um die Optionen innerhalb des Dokumentes ändern zu können, werden die % Anpassungen bei jeder Ausgabe eines Seitenstiles mit \cs{tud@ps@onbackground} % ausgeführt. % \begin{macrocode} \newcommand*\tud@head@logocolor{black} \newcommand*\tud@head@fontcolor{} \newcommand*\tud@foot@logocolor{black} \newcommand*\tud@foot@fontcolor{} \newcommand*\tud@ps@onbackground{% % \end{macrocode} % Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe für den % Kopf\dots % \begin{macrocode} \ifdefvoid{\tud@pagecolor}{% \ifcase\tud@head@bar@num\relax% cdhead=nocolor \renewcommand*\tud@head@logocolor{black}% \renewcommand*\tud@head@fontcolor{}% \or% cdhead=litecolor \renewcommand*\tud@head@logocolor{HKS41}% \renewcommand*\tud@head@fontcolor{HKS41}% \or% cdhead=barcolor \renewcommand*\tud@head@logocolor{HKS41}% \renewcommand*\tud@head@fontcolor{white}% \or% cdhead=color \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \fi% % \end{macrocode} % \dots und den Fuß. % \begin{macrocode} \ifcase\tud@head@bar@num\relax% cdhead=nocolor \renewcommand*\tud@foot@logocolor{black}% \renewcommand*\tud@foot@fontcolor{}% \if@tud@foot@colored% \ClassWarning{\TUD@Class@Name}{% It isn't possible to use a colored foot together\MessageBreak% with a non-colored head (`cdhead=nocolor')% }% \fi% \else% cdhead=*color \if@tud@foot@colored% \renewcommand*\tud@foot@logocolor{white}% \renewcommand*\tud@foot@fontcolor{white}% \else% \renewcommand*\tud@foot@logocolor{HKS41}% \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% \fi% }{% % \end{macrocode} % Die Einstellungen für Seiten mit Hintergrundfarbe variieren davon. Zuerst die % für farbige Titel- und Teileseiten\dots % \begin{macrocode} \tud@locked@bool@preset{@tud@head@widebar}{true}% \tud@if@strequal{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% % \end{macrocode} % Die Farbe für die Schrift im Fuß wird für Poster immer weiß gesetzt, falls % über die Option \opt{backcolor} für den Seitenhintergrund die primäre % Hausfarbe genutzt wird. % \begin{macrocode} %<*book|report|article> \if@tud@foot@colored% % \renewcommand*\tud@foot@fontcolor{white}% %<*book|report|article> \else% \renewcommand*\tud@foot@fontcolor{HKS41!30}% \fi% % % \end{macrocode} % \dots sowie die für die farbigen Kapitelseiten. % \begin{macrocode} }{% \renewcommand*\tud@head@logocolor{HKS41}% \renewcommand*\tud@head@fontcolor{HKS41}% \ifcase\tud@head@bar@num\relax\or\or\or% cdhead=color \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \fi% \if@tud@foot@colored% \renewcommand*\tud@foot@logocolor{white}% \renewcommand*\tud@foot@fontcolor{white}% \else% \renewcommand*\tud@foot@logocolor{HKS41}% \renewcommand*\tud@foot@fontcolor{HKS41}% \fi% }% }% % \end{macrocode} % Abhängig von der eingestzten Schriftfarbe des Kopfes wird die Linienstärke % des Querbalkens gesetzt, die Schriftfarbe des Fußes wird global geändert, % damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden. % \begin{macrocode} \let\tud@dim@line\tud@dim@thinline% \tud@if@strequal{\tud@head@fontcolor}{white}% {\let\tud@dim@line\tud@dim@heavyline}% {}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } % \end{macrocode} % \end{macro}^^A \tud@foot@fontcolor % \end{macro}^^A \tud@foot@logocolor % \end{macro}^^A \tud@head@fontcolor % \end{macro}^^A \tud@head@logocolor % \end{macro}^^A \tud@ps@onbackground % % \subsubsection{Inhalt des Querbalkens in der Kopfzeile} % % Mit dem Makro \cs{tud@head@font@set} wird die zu verwendende Schrift für den % Querbalken definiert. Hier wird der zu verwendende Inhalt formatiert. % % \begin{macro}{\tud@head@text@line} % \begin{macro}{\tud@head@text@list} % \changes{v2.05}{2015/11/26}{neu}^^A % \begin{macro}{\tud@head@text@delimiter} % \begin{macro}{\tud@head@text@buffer} % Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und % unterhalb des Querbalkens des TUD-Kopfes dienen. % \begin{macrocode} \newcommand*\tud@head@text@line{} \newcommand*\tud@head@text@list{} \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} % \end{macrocode} % \end{macro}^^A \tud@head@text@buffer % \end{macro}^^A \tud@head@text@delimiter % \end{macro}^^A \tud@head@text@list % \end{macro}^^A \tud@head@text@line % \begin{macro}{\tud@head@text@add} % \changes{v2.04}{2015/04/08}{Verwendung von \cs{protected@edef}}^^A % \changes{v2.05}{2015/11/26}{Redesign}^^A % Dieser Befehl dient zum Füllen einer Liste für die spätere Ausgabe der % Kopfzeilenfelder. Es werden sequentiellalle potenziellen Felder hinzugefügt. % Sollte das hinzuzufügende Feld dazu führen, dass der Text der Kopfzeile über % den Seitenrand hinausragen würde, so wird eine weitere Zeile begonnen. Das % Trennzeichen zwischen einzelnen Feldern muss gepuffert werden, da dieses nur % gesetzt werden soll, wenn ein weiteres Feld nachfolgt. % \begin{macrocode} \newcommand*\tud@head@text@add[3][{, }]{% \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% \unexpanded{#2#3}% }% % \end{macrocode} % Sollte das hinzuzufügende Feld die aktuelle Kopfzeile \cs{tud@head@text@line} % über die Textbreite hinaus erweitern, wird der bisherige Inhalt in die Liste % \cs{tud@head@text@list} gespeichert und eine neue mit dem aktuellen Inhalt % begonnen. Andernfalls wird der aktuelle Inhalt dem bestehenden hinzugefügt. % \begin{macrocode} \settowidth\@tempdima{\@tempa}% \ifdim\@tempdima>\textwidth\relax% \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% \protected@edef\tud@head@text@line{#2#3}% \else% \edef\tud@head@text@line{\expandonce\@tempa}% \fi% }% } % \end{macrocode} % \end{macro}^^A \tud@head@text@add % \begin{macro}{\tud@head@text@set} % \changes{v2.05}{2015/11/28}{neu}^^A % \begin{macro}{\tud@head@text@wrn} % \begin{macro}{\if@tud@head@text@set} % \changes{v2.05}{2015/11/28}{neu}^^A % Für die Felder im Kopf wird bei einer Änderung dieser die Warnung bezüglich % der zu großen Breite der Kopfinformationen, was bei kleinen Papierformaten % geschehen kann, (re-)definiert. % \begin{macrocode} \tud@newif\if@tud@head@text@set \newcommand*\tud@head@text@wrn[1]{} \newcommand*\tud@head@text@set{% \if@tud@head@text@set% % \end{macrocode} % Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben. % Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine weitere % Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der % sich daraus ergebenden Breite der Textzeile. Das Erzeugen der einzelnen % Textzeilen im Kopf, die in \cs{tud@head@text@list} gesichert werden, erfolgt % mit \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Die % dafür benötigten Hilfsmakros werden vor der Verwendung initialisiert. % \begin{macrocode} \let\tud@head@text@line\@empty% \let\tud@head@text@list\@empty% \let\tud@head@text@buffer\@empty% \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% \tud@head@text@add{\tud@head@font@light}{\@department}% \tud@head@text@add{\tud@head@font@light}{\@institute}% \tud@head@text@add{\tud@head@font@light}{\@chair}% % \end{macrocode} % Ganz zum Schluss wird der Rest aus \cs{tud@head@text@line} ebenso wie ggf. % die zusätzliche Zeile in die Liste expandiert. % \begin{macrocode} \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% \tud@if@strblank{\@extraheadline}{}{% \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% }% \gdef\tud@head@text@wrn##1{% \ClassWarning{\TUD@Class@Name}{% The given entries for the headline\MessageBreak% (faculty, institute etc.) are ##1\MessageBreak% too wide for the textwidth% }% }% \fi% } % \end{macrocode} % \end{macro}^^A \if@tud@head@text@set % \end{macro}^^A \tud@head@text@wrn % \end{macro}^^A \tud@head@text@set % \begin{macro}{\tud@head@text@box} % \changes{v2.02}{2014/06/23}{neu}^^A % \changes{v2.03}{2015/01/09}{Zweite Zeile wird auch leer gesetzt.}^^A % Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile. % \begin{macrocode} \newcommand*\tud@head@text@box{% % \end{macrocode} % Die Ausgabe der Textzeile(n) mit Fakultät etc. im Kopfbereiche erfolgt über % das Makro \cs{tud@head@text@write}. Hierbei ist zu beachten, dass für die % erste Zeile bei einem zweifarbigem Kopf eine andere Textfarbe als für die % restlichen benötigt wird. Außerdem ist für diese aufgrund der Linien im % Querbalken ein etwas größerer Abstand zur zweiten Zeile notwendig, weshalb % die temporären Makros \cs{@tempb} und \cs{@tempc} einmalig genutzt werden. % Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes. % \begin{macrocode} \def\@tempb{\tud@color{\tud@head@fontcolor}}% \def\@tempc{\depth+\tud@dim@heavyline}% % \end{macrocode} % Das Makro \cs{@tempa} wird zur Ababreitung der Liste \cs{tud@head@text@list} % definiert. % \begin{macrocode} \def\@tempa##1{% \settowidth\@tempdima{##1}% % \end{macrocode} % Sollte eine der Textzeilen zu lang sein, was insbesondere bei kleineren % Papierformaten vorkommen kann, dann wird eine Warnung ausgegeben. % \begin{macrocode} \ifdim\@tempdima>\textwidth\relax% \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% \ifdim\dimexpr\@tempdima-\textwidth\relax>\hfuzz\relax% \hfuzz=\dimexpr\@tempdima-\textwidth\relax% \fi% \fi% \@tempb% \tud@head@text@write[\@tempc]{##1}% \def\@tempb{\newline}% \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}}{% \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% }% % \end{macrocode} % Dies ist nun die eigentliche Ausgabe, welche in einer vertikalen Box erfolgt. % \begin{macrocode} \vbox{% % \end{macrocode} % Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um % den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu % lassen, wird dies hier temporär unterdrückt. % \begin{macrocode} \let\@raggedtwoe@everyselectfont\relax% \tud@setdim\spaceskip{\z@}% \selectfont% \offinterlineskip% \forlistloop\@tempa{\tud@head@text@list}% }% \global\let\tud@head@text@wrn\@gobble% } % \end{macrocode} % \end{macro}^^A \tud@head@text@box % \begin{macro}{\tud@head@text@write} % \changes{v2.02}{2014/06/23}{Vertikaler Freiraum für Ober- und Unterlängen % mit \cs{vphantom} eingefügt}^^A % \changes{v2.02}{2014/12/04}{Zentrierung des Zeilentextes}^^A % Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf % \begin{macrocode} \newcommand*\tud@head@text@write[2][\z@]{% \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 % \begin{macro}{\tud@head@rule} % \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}^^A % Der Querbalken des Kopfes läuft je nach Parameterwahl \cs{tud@head@bar@num} % entweder nur über den Textbereich oder aber über die gesamte Seitenbreite. % Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und % über \cs{tud@dim@line} definierter Dicke. % \begin{macrocode} \newcommand*\tud@head@rule[1]{% \tud@color{\tud@head@fontcolor}% \rule[\ht\strutbox]{#1}{\tud@dim@line}% } % \end{macrocode} % \end{macro}^^A \tud@head@rule % % \subsubsection{Boxen für Layerinhalte} % % \begin{macro}{\tud@newlayerbox} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@savelayerbox} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@uselayerbox} % \changes{v2.04}{2015/05/31}{neu}^^A % Die Inhalte für Kopf und Fuß der \pgs{tudheadings}-Seitenstile~-- sprich das % Logo der \TnUD, die \DDC-Logos, ein mögliches Zweilogo sowie die Logos und % Inhalte im Fuß werden in Boxen gesetzt, um die Anzahl der benötigten Aufrufe % von \cs{includegraphics} möglichst gering zu halten. % \begin{macrocode} \newcommand*\tud@newlayerbox[1]{% \global\expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% \global\expandafter\sbox\csname tud@layer@#1\endcsname% } \newcommand*\tud@uselayerbox[1]{% \expandafter\usebox\csname tud@layer@#1\endcsname% } % \end{macrocode} % \end{macro}^^A \tud@uselayerbox % \end{macro}^^A \tud@savelayerbox % \end{macro}^^A \tud@newlayerbox % \begin{macro}{\tud@vlayerbox} % \changes{v2.04}{2015/05/31}{neu}^^A % \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 % die gewünschten Inhalte die maximale Höhe überschreiten, wird eine Warnung % erzeugt. Der Inhalt dieser Warnung wird im dritten Argument angegeben. Damit % soll dem Anwender geholfen werden, in diesem Fall die richtigen Maßnahmen zu % ergreifen und nicht lediglich eine Meldung einer zu übervollen \cs{vbox} zu % erhalten. % \begin{macrocode} \newcommand*\tud@vlayerbox[4][]{% \begingroup% \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 #2{#3}% } % \end{macrocode} % \end{macro}^^A \tud@vlayerbox % % \iffalse % % \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&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% }% }{}% % % \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&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&option> % \fi % % \subsection{Der Kopfbereich der Seitenstile} % % Es folgen Option und Befehle zur Gestaltung des Kopfbereichs mit Hauptlogo, % Querbalken und ggf. Zweitlogo. % % \begin{option}{cdhead} % \changes{v2.03}{2015/01/29}{neu}^^A % \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \begin{macro}{\tud@head@font@num} % \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\if@tud@head@font@num@locked} % \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\tud@head@bar@num} % \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\if@tud@head@bar@num@locked} % \changes{v2.04}{2015/04/01}{neu}^^A % \begin{macro}{\if@tud@head@widebar} % \changes{v2.03}{2015/02/14}{neu}^^A % \begin{macro}{\if@tud@head@widebar@locked} % \changes{v2.03}{2015/02/14}{neu}^^A % \begin{macro}{\if@tud@head@font@set} % \begin{macro}{\if@tud@head@date} % \changes{v2.05}{2016/05/27}{neu}^^A % Mit dieser Option wird die zentrale Benutzerschnittstelle für Einstellungen % des typischen Querbalkens für den TUD-Kopf geschaffen. Durch sie können % sowohl die verwendete Schrift als auch die Stärke für den Balkentext % (Institut, Fakultät etc.) geändert werden. Zusätzlich ist die Laufweite des % Querbalkens bzw. die Farbe einstellbar. % \begin{macrocode} \tud@locked@newnum{tud@head@font@num}{0} \tud@locked@newnum{tud@head@bar@num}{0} \tud@locked@newbool{@tud@head@widebar} \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,% {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},{bold}{2},{boldfont}{2},% {nocolor}{3},{nocolour}{3},{monochrome}{3},{monochromatic}{3},% {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},% {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},% {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},% {color}{6},{colour}{6},% {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% {narrow}{7},{narrowhead}{7},{small}{7},{smallhead}{7},% {paperwidth}{8},{wide}{8},{widehead}{8},% {date}{9},{showdate}{9},{dateon}{9},{datetrue}{9},{dateyes}{9},% {nodate}{10},{hidedate}{10},{dateoff}{10},{datefalse}{10},{dateno}{10}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false \tud@locked@num@set{tud@head@font@num}{0}% \or% true \tud@locked@num@set{tud@head@font@num}{1}% \or% heavy \tud@locked@num@set{tud@head@font@num}{2}% \or% nocolor \tud@locked@num@set{tud@head@bar@num}{0}% \or% litecolor \tud@locked@num@set{tud@head@bar@num}{1}% \or% barcolor \tud@locked@num@set{tud@head@bar@num}{2}% \or% color \tud@locked@num@set{tud@head@bar@num}{3}% \or% textwidth \tud@locked@bool@set{@tud@head@widebar}{false}% \or% paperwidth \tud@locked@bool@set{@tud@head@widebar}{true}% \or% date \@tud@head@datetrue% \or% nodate \@tud@head@datefalse% \fi% \ifnum\@tempa<\thr@@\relax% \global\@tud@head@font@settrue% \fi% \fi% } % \end{macrocode} % \end{macro}^^A \if@tud@head@date % \end{macro}^^A \if@tud@head@font@set % \end{macro}^^A \if@tud@head@widebar@locked % \end{macro}^^A \if@tud@head@widebar % \end{macro}^^A \if@tud@head@bar@num@locked % \end{macro}^^A \tud@head@bar@num % \end{macro}^^A \if@tud@head@font@num@locked % \end{macro}^^A \tud@head@font@num % \end{option}^^A cdhead % % \iffalse % %<*class&body> % \fi % % \begin{macro}{\tud@layer@main@black} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@layer@main@HKS41} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@layer@main@white} % \changes{v2.04}{2015/05/31}{neu}^^A % Diese drei Boxen werden für das Logo der \TnUD reserviert. Abhängig von der % gewählten Option des Layouts und der Seitenfarbe wird eine der Logos in der % notwendigen Farbe ausgewählt. % \begin{macrocode} \tud@newlayerbox{main@black} \tud@newlayerbox{main@HKS41} \tud@newlayerbox{main@white} % \end{macrocode} % \end{macro}^^A \tud@layer@main@white % \end{macro}^^A \tud@layer@main@HKS41 % \end{macro}^^A \tud@layer@main@black % % \subsubsection{Das Hauptlogo der \TnUD} % % \begin{macro}{\tud@mainlogo@set} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\if@tud@mainlogo@wrn} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{length}{\tud@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 % Das Makro \cs{tud@mainlogo@set} setzt sowohl das Logo der \TnUD als auch~-- % durch den Aufruf der entsprechenden Befehle zum Schluss~-- alle weiteren % Logos und Inhalte im Kopf und Fuß. Dies geschieht nach jeder Änderung des % 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} \tud@newdim\tud@dim@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} \tud@newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% \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 % des Druckrandes liegt. Dies kann beispielsweise bei kleinen Papierformaten, % zweiseitigem Satz und/oder einem zu großen \opt{DIV}-Wertes passieren. Es % wird in diesem Fall eine Warnung ausgegeben, damit das Problem durch den % Anwender behoben werden kann. % \begin{macrocode} \gdef\tud@mainlogo@wrn##1{% \ifdim##1<\ta@bcor\relax% \ClassWarning{\TUD@Class@Name}{% The selected page layout means that the\MessageBreak% logo of TUD extends beyond the printing area. \MessageBreak% The inner margin is smaller than BCOR\MessageBreak% (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% Maybe you should decrease the current value\MessageBreak% of DIV (`DIV=\the\ta@div')% }% \global\let\tud@mainlogo@wrn\@gobble% \fi% }% % \end{macrocode} % Hier werden die beiden Makros aufgerufen, um die Inhalte von Kopf und Fuß in % den Boxen in der richtigen Größe neu zu setzen. % \begin{macrocode} \tud@headlogo@set% \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@dim@mainlogoheight % \end{macro}^^A \if@tud@mainlogo@set % \end{macro}^^A \tud@mainlogo@set % \begin{macro}{\tud@mainlogo@use} % \changes{v2.04}{2015/05/31}{neu}^^A % Hiermit erfolgt die Ausgabe der gespeicherten Boxen für das Logo der \TnUD, % wobei \cs{tud@head@logocolor} die Farbe festlegt. % \begin{macrocode} \newcommand*\tud@mainlogo@use{% \tud@mainlogo@wrn{% \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% \tud@uselayerbox{main@\tud@head@logocolor}% } % \end{macrocode} % \end{macro}^^A \tud@mainlogo@use % % \subsubsection{Optionales Zweit- oder \DDC-Logo} % % \begin{macro}{\tud@layer@head@black} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@layer@head@HKS41} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@layer@head@white} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@layer@head@option} % \changes{v2.04}{2015/05/31}{neu}^^A % Diese Boxen werden für das \DDC-Logo und das Zweitlogo im Kopf definiert. Der % Box \cs{tud@layer@head@option} fäält dabei die Rolle zu, entweder ein~-- per % Option gewähltes~-- \DDC-Logo oder aber das mit \cs{headlogo} angegebene % Zweitlogo zusichern und auszugeben. Die anderen drei Boxen speichern das Logo % von \DDC in den drei für die unterschiedlichen Layoutausprägung benötigten % Varianten. % \begin{macrocode} \tud@newlayerbox{head@black} \tud@newlayerbox{head@HKS41} \tud@newlayerbox{head@white} \tud@newlayerbox{head@option} % \end{macrocode} % \end{macro}^^A \tud@layer@head@option % \end{macro}^^A \tud@layer@head@white % \end{macro}^^A \tud@layer@head@HKS41 % \end{macro}^^A \tud@layer@head@black % \begin{macro}{\headlogo} % \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}^^A % \begin{macro}{\tud@headlogo@filename} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@headlogo@fileoptions} % \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*\headlogo[2][]{% \tud@comp@clearpage% \renewcommand*\tud@headlogo@filename{#2}% \renewcommand*\tud@headlogo@fileoptions{#1}% % \end{macrocode} % Nach dem Setzen des Zweitlogos müssen die Boxen mit den Logos von \DDC neu % gesetzt werden. Weil dieses dabei vom Kopf in den Fuß oder umgekehrt wandern % könnte, werden beide relevanten Makros ausgeführt. % \begin{macrocode} \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% \tud@comp@resetpagestyle% } % \end{macrocode} % \end{macro}^^A \tud@headlogo@fileoptions % \end{macro}^^A \tud@headlogo@filename % \end{macro}^^A \headlogo % \begin{macro}{\tud@headlogo@set} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@headlogo@option@set} % \changes{v2.04}{2015/05/31}{neu}^^A % \changes{v2.05}{2015/07/27}{Bugfix für Dateien in Unterordnern}^^A % Äquivalent zum Logo der \TnUD werden auch für das Logo von \DDC drei % Farbvarianten erstellt. % \begin{macrocode} \newcommand*\tud@headlogo@set{% \def\@tempa{% \includegraphics[keepaspectratio,totalheight=\tud@dim@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% \tud@headlogo@option@set% } % \end{macrocode} % Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddchead} abgearbeitet % sowie ein ggf. gegebenes Zweitlogo gespeichert. Dies geschieht beim Aufruf % des passenden Layers, falls der Schalter \cs{if@tud@headlogo@option@set} % gesetzt wurde. % \begin{macrocode} \newcommand*\tud@headlogo@option@set{% \if@tud@headlogo@option@set% \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% \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{\tud@headlogo@filename}% \trim@spaces@in\tud@headlogo@filename% \protected@edef\@tempb{% \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% }% \@tempb% }% \or\or% \tud@ddc@head@num=color \@tempc{DDC-03}{}% \or% \tud@ddc@head@num=colorblack \@tempc{DDC-09}{}% \or% \tud@ddc@head@num=gray \@tempc{DDC-21}{}% \or% \tud@ddc@head@num=black \@tempc{DDC-24}{}% \or% \tud@ddc@head@num=blue \@tempc{DDC-27}{}% \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% } % \end{macrocode} % \end{macro}^^A \tud@headlogo@option@set % \end{macro}^^A \tud@headlogo@set % \begin{macro}{\tud@headlogo@use} % \changes{v2.04}{2015/05/31}{neu}^^A % \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[headlogo]{\tud@dim@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% \ifnum\@tempa=\@ne\relax% \tud@ddc@head@num=true \tud@uselayerbox{head@\tud@head@logocolor}% \else% \tud@uselayerbox{head@option}% \fi% }% \vss% }{% The given `\string\headlogo{\tud@headlogo@filename}' is too large.% }% } % \end{macrocode} % \end{macro}^^A \tud@layer@headlogo@wrn % \end{macro}^^A \tud@headlogo@use % % \iffalse % %<*class&option> % \fi % % \subsection{Der Fußbereich der Seitenstile} % % Es folgen Option und Befehle zur Gestaltung des Fußbereichs mit optionalem % Inhalt im Fuß, Drittlogos und \DDC-Logo. % % \begin{option}{cdfoot} % \changes{v2.03}{2015/02/02}{Bei Längenangabe wird \opt{extrabottommargin} % indirekt genutzt}^^A % \changes{v2.04}{2015/06/18}{bedingtes Setzen der Option \opt{automark}}^^A % \begin{macro}{\if@tud@foot@colored} % \changes{v2.03}{2015/02/15}{neu}^^A % \begin{macro}{\if@tud@foot@colored@locked} % \changes{v2.05}{2015/07/14}{neu}^^A % \begin{macro}{\tud@ps@store} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@ps@@store} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@ps@restore} % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@ps@@restore} % \changes{v2.02}{2014/06/23}{neu}^^A % Dieser Seitenstil mit dem Kolumnentitel im Fuß wurde bereits für die alte % \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten % werden. Zusätzlich kann mit dieser Option ggf. ein farbiger Hintergrund in % der Fußzeile aktiviert werden. % % Einige Einstellungen sind abhängig vom Paket \pkg{scrlayer-scrpage}, welches % unter Umständen nicht geladen wird. Mit \cs{TUD@AfterPackage@do} kann % Quelltext nur dann ausgeführt werden, wenn ein Paket auch tatsächlich geladen % wurde. Hierfür ist die Initialisierung mit \cs{TUD@AfterPackage@set} nötig. % \begin{macrocode} \TUD@AfterPackage@set{scrlayer-scrpage} \tud@locked@newbool{@tud@foot@colored} \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@bool@numkey,% {nocolor}{2},{nocolour}{2},{monochrome}{2},{monochromatic}{2},% {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% {color}{3},{colour}{3},% {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% false % \end{macrocode} % Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore} % wiederhergestellt. Dies wird allerdings frühestens nach dem Laden von % \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@komafont@unset{pageheadfoot}% }% % \end{macrocode} % Die ursprünglichen Kopf- und Fußzeilen werden mit dem Makro \cs{tud@ps@store} % gesichert, um gegebenenfalls zurückschalten zu können. Anschließend werden % diese mit dem neuen Stil überschrieben. Dies wird allerdings frühestens nach % dem Laden von \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} \or% true \TUD@AfterPackage@do{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% \tud@komafont@set{pageheadfoot}{\upshape}% \clearpairofpagestyles% \ofoot[\pagemark]{% \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi% {\footnotesize\headmark}% \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% }% \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% % \end{macrocode} % Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden. % \begin{macrocode} \or% nocolor \tud@locked@bool@set{@tud@foot@colored}{false}% \or% color \tud@locked@bool@set{@tud@foot@colored}{true}% \fi% % \end{macrocode} % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. % \begin{macrocode} \else% \TUD@set@dimkey{cdfoot}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \TUDoptions{extrabottommargin=#1}% \fi% \fi% } % \end{macrocode} % Die nächsten beiden Befehle dienen zum Sichern der Kopf- und Fußzeilen\dots % \begin{macrocode} \newcommand*\tud@ps@store[1]{% \tud@ps@@store{#1}{odd}{left}{head}% \tud@ps@@store{#1}{odd}{right}{head}% \tud@ps@@store{#1}{odd}{middle}{head}% \tud@ps@@store{#1}{even}{left}{head}% \tud@ps@@store{#1}{even}{right}{head}% \tud@ps@@store{#1}{even}{middle}{head}% \tud@ps@@store{#1}{odd}{left}{foot}% \tud@ps@@store{#1}{odd}{right}{foot}% \tud@ps@@store{#1}{odd}{middle}{foot}% \tud@ps@@store{#1}{even}{left}{foot}% \tud@ps@@store{#1}{even}{right}{foot}% \tud@ps@@store{#1}{even}{middle}{foot}% } % \end{macrocode} % \dots, wobei hierfür auf die internen Befehle von \pkg{scrlayer-scrpage} % zurückgegriffen werden muss. % \begin{macrocode} \newcommand*\tud@ps@@store[4]{% \ifcsundef{@@tud@ps@#1@#2@#3@#4}{% \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@#1@#2@#3@#4}% }{}% } \newcommand*\tud@ps@restore[1]{% \tud@ps@@restore{#1}{odd}{left}{head}% \tud@ps@@restore{#1}{odd}{right}{head}% \tud@ps@@restore{#1}{odd}{middle}{head}% \tud@ps@@restore{#1}{even}{left}{head}% \tud@ps@@restore{#1}{even}{right}{head}% \tud@ps@@restore{#1}{even}{middle}{head}% \tud@ps@@restore{#1}{odd}{left}{foot}% \tud@ps@@restore{#1}{odd}{right}{foot}% \tud@ps@@restore{#1}{odd}{middle}{foot}% \tud@ps@@restore{#1}{even}{left}{foot}% \tud@ps@@restore{#1}{even}{right}{foot}% \tud@ps@@restore{#1}{even}{middle}{foot}% } \newcommand*\tud@ps@@restore[4]{% \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 % \end{macro}^^A \tud@ps@restore % \end{macro}^^A \tud@ps@@store % \end{macro}^^A \tud@ps@store % \end{macro}^^A \if@tud@foot@colored@locked % \end{macro}^^A \if@tud@foot@colored % \end{option}^^A cdfoot % % \iffalse % %<*class> % \fi % % \subsubsection{Optionales \DDC-Logo oder Drittlogos} % % \begin{option}{footlogoheight} % \changes{v2.05}{2016/06/16}{neu}^^A % \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@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@footlogoheight@dim{0pt} \TUD@key{footlogoheight}{% \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \tud@length@setabsolute\tud@footlogoheight@dim% \global\@tud@footlogo@option@settrue% \fi% } % % \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} gesetzt. % \begin{macrocode} %<*body> \newcommand*\tud@footlogoheight@set{% \ifdim\dimexpr\tud@footlogoheight@dim\relax=\z@\relax% \tud@if@v@lower{2.03}{% \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}% }{% \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% \fi% } % % \end{macrocode} % \end{macro}^^A \tud@footlogoheight@set % \end{macro}^^A \tud@footlogoheight@dim % \end{option}^^A footlogoheight % % \iffalse % %<*class&body> % \fi % % \begin{macro}{\tud@layer@foot@black} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@layer@foot@HKS41} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@layer@foot@white} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@layer@foot@option} % \changes{v2.04}{2015/06/01}{neu}^^A % Im Fußbereich kann das \DDC-Logo rechtsbündig ausgegeben. Hierfür werden die % entsprechenden Boxen für alle Farbvarianten definiert. Diese werden genutzt, % wenn entweder die Option \opt{ddcfoot} oder aber \opt{ddc} in Verbindung mit % einem Zweitlogo (\cs{headlogo}) genutzt wird. % \begin{macrocode} \tud@newlayerbox{foot@black} \tud@newlayerbox{foot@HKS41} \tud@newlayerbox{foot@white} \tud@newlayerbox{foot@option} % \end{macrocode} % \end{macro}^^A \tud@layer@foot@option % \end{macro}^^A \tud@layer@foot@white % \end{macro}^^A \tud@layer@foot@HKS41 % \end{macro}^^A \tud@layer@foot@black % \begin{macro}{\tud@footlogo@ddc@set} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@footlogo@option@set} % \changes{v2.04}{2015/06/01}{neu}^^A % Auch im Fuß werden für das \DDC-Logo verschiedene Boxen für die Farbvarianten % \val{black}, \val{HKS41} und \val{white} sowie eine für die gezielte Auswahl % über die Optionen \opt{ddc} bzw. \opt{ddcfoot} erstellt. Dafür wird zunächst % das Makro \cs{tud@footlogo@ddc@set} definiert. % \begin{macrocode} \newcommand*\tud@footlogo@ddc@set[2]{% \tud@savelayerbox{#1}{% \includegraphics[% keepaspectratio,% totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax% ]{#2}% }% } % \end{macrocode} % Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddcfoot} abgearbeitet. % Dies geschieht, falls hierfür der Schalter \cs{if@tud@footlogo@option@set} % 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{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{foot@option}{DDC-01}% \or% \tud@ddc@foot@num=colorblack \tud@footlogo@ddc@set{foot@option}{DDC-07}% \or% \tud@ddc@foot@num=gray \tud@footlogo@ddc@set{foot@option}{DDC-19}% \or% \tud@ddc@foot@num=black \tud@footlogo@ddc@set{foot@option}{DDC-22}% \or% \tud@ddc@foot@num=blue \tud@footlogo@ddc@set{foot@option}{DDC-25}% \or% \tud@ddc@foot@num=white \tud@footlogo@ddc@set{foot@option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% \global\@tud@footlogo@cmd@settrue% \fi% } % \end{macrocode} % \end{macro}^^A \tud@footlogo@option@set % \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[footlogo]{#1}{% \vss% \hbox to #2{% \hss% \ifcase\@tempb\relax\or% \tud@ddc@foot@num=true \tud@uselayerbox{foot@\tud@foot@logocolor}% \else% \tud@uselayerbox{foot@option}% \fi% }% \vss\vss% }{% You should reduce `footlogoheight', because it is\noexpand\MessageBreak% too high. % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside Alternatively you could use\noexpand\MessageBreak% option `extrabottommargin='\noexpand\MessageBreak% in order to enlarge the bottom margin. % \fi% }% }% % \end{macrocode} % Nach der Ausgabe wird ein begativer horizontaler Abstand in der Boxbreite % eingefügt, damit nachfolgende Boxen überlagert werden können. % \begin{macrocode} \usebox\z@\hspace*{-\wd\z@}% \fi% } % \end{macrocode} % \end{macro}^^A \tud@layer@footlogo@wrn % \end{macro}^^A \tud@footlogo@ddc@use % \begin{macro}{\tud@layer@foot@cmd} % \changes{v2.04}{2015/06/01}{neu}^^A % Für das Setzen von benutzerdefinierten Logos im Fußbereich wird diese Box % verwendet. % \begin{macrocode} \tud@newlayerbox{foot@cmd} % \end{macrocode} % \end{macro}^^A \tud@layer@foot@cmd % \begin{macro}{\footlogo} % \changes{v2.03}{2015/01/27}{neu}^^A % \begin{macro}{\tud@footlogo@filenames} % \changes{v2.03}{2015/01/27}{neu}^^A % \begin{macro}{\tud@footlogo@fileoptions} % \changes{v2.03}{2015/01/27}{neu}^^A % \begin{macro}{\footlogosep} % \changes{v2.03}{2015/01/27}{neu}^^A % \begin{macro}{\tud@footlogo@cmd@set} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@footlogo@cmd@@set} % \changes{v2.03}{2015/01/27}{neu}^^A % \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien % individuell nutzbar}^^A % \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 % Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden. % \begin{macrocode} \newcommand*\footlogosep{\hfill} \newcommand*\tud@footlogo@filenames{} \newcommand*\tud@footlogo@fileoptions{} \newcommand*\footlogo[2][]{% \tud@comp@clearpage% \renewcommand*\tud@footlogo@filenames{#2}% \renewcommand*\tud@footlogo@fileoptions{#1}% \global\@tud@footlogo@cmd@settrue% \tud@comp@resetpagestyle% } % \end{macrocode} % Die mit \cs{footlogo} angegeben Logos und die dazugehörigen Einstellungen, % welche entweder allgemein über das optionale Argument oder aber individuell % durch \val{:} an den Dateinamen angehängt übergeben wurden, werden hier in % der Box \cs{tud@layer@foot@cmd} gespeichert. % \begin{macrocode} \tud@newif\if@tud@footlogo@cmd@set \newcommand*\tud@footlogo@cmd@set[2]{% \if@tud@footlogo@cmd@set% \tud@savelayerbox{foot@cmd}{% \hbox to #2{% % \end{macrocode} % Hier erfolgt die eigentliche Abarbeitung der mit \cs{footlogo} angegeben % Liste der benutzerdefinierten Logos. In \cs{@tempa} wird nach dem ersten % Durchlauf der Schleife der Inhalt von \cs{footlogosep} gespeichert und nach % dem ersten Logo vor jedem weiteren eingefügt. Um versehentlich angegebene % Leerzeichen zu entfernen, werden diese mit \cs{trim@spaces} entfernt. % \begin{macrocode} \let\@tempa\relax% \@for\@tempb:=\tud@footlogo@filenames\do{% \protected@edef\@tempb{\@tempb}% \trim@spaces@in{\@tempb}% \@tempa% \ifx\@tempb\@empty\else% \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% \fi% \let\@tempa\footlogosep% }% \hss% }% }% \global\@tud@footlogo@cmd@setfalse% \fi% } % \end{macrocode} % Der Befehl \cs{tud@footlogo@cmd@set} wird genutzt, um die einzelnen Logos für % den Fuß nacheinander in der Box \cs{tud@layer@foot@cmd} zu setzen. % \begin{macrocode} \newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% % \end{macrocode} % Dabei soll es möglich sein, optionale Parameter an \cs{includegraphics} zu % übergeben. Dies soll zum einen global für alle Dateien als auch individuell % für einzelne Logos möglich sein. Zu diesem Zweck wird die Schnittstelle für % den Anwender so gestaltet, dass individuelle Parameter mit einem Doppelpunkt % direkt an den Dateinamen angehangen werden können. % \ToDo{\cs{DeclareListParser} außerhalb global definieren}[v2.07] % \begin{macrocode} \let\@tempa\@empty% \let\@tempb\@empty% \@tempswatrue% \def\do##1{% \if@tempswa% \def\@tempa{##1}% \@tempswafalse% \else% \l@addto@macro\@tempb{,##1}% \fi% }% \let\@tempc\relax% \DeclareListParser{\@tempc}{:}% \@tempc{#1}% % \end{macrocode} % In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. % \begin{macrocode} \preto\tud@footlogo@fileoptions{% keepaspectratio,% totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax,% }% % \end{macrocode} % Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als % letztes ausgeführt, um vorige Einstellungen überschreiben zu können. % \begin{macrocode} \eappto\tud@footlogo@fileoptions{\expandonce\@tempb}% \protected@edef\@tempc{% \noexpand\includegraphics[{% \expandonce\tud@footlogo@fileoptions% }]{\@tempa}% }% % \end{macrocode} % Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch % vertikal zentriert. % \begin{macrocode} \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% The given `\string\footlogo{\@tempa}' is too large.% }% \endgroup% } % \end{macrocode} % \end{macro}^^A \if@tud@footlogo@cmd@set % \end{macro}^^A \tud@footlogo@cmd@@set % \end{macro}^^A \tud@footlogo@cmd@set % \end{macro}^^A \footlogosep % \end{macro}^^A \tud@footlogo@fileoptions % \end{macro}^^A \tud@footlogo@filenames % \end{macro}^^A \footlogo % \begin{macro}{\tud@footlogo@cmd@use} % \changes{v2.04}{2015/06/01}{neu}^^A % Der Befehl \cs{tud@footlogo@cmd@use} wird genutzt, um die einzelnen Logos für % den Fuß innerhalb der Ebene \val{tudheadings.foot.content} auszugeben. % \begin{macrocode} \newcommand*\tud@footlogo@cmd@use[2]{% \tud@footlogo@option@set% \tud@footlogo@cmd@set{#1}{#2}% \setbox\z@\hbox{\tud@uselayerbox{foot@cmd}}% \usebox\z@\hspace*{-\wd\z@}% } % \end{macrocode} % \end{macro}^^A \tud@footlogo@cmd@use % % \subsubsection{Optionaler Inhalt im Fußbereich} % % \begin{macro}{\footcontent} % \changes{v2.04}{2015/04/21}{neu}^^A % \begin{KOMAfont}{tudheadings} % \changes{v2.04}{2015/04/21}{neu}^^A % \begin{macro}{\tud@footcontent@do} % \changes{v2.04}{2015/04/21}{neu}^^A % \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@font@use} % \changes{v2.06}{2018/08/01}{neu}^^A % \begin{macro}{\tud@footcontent@font@size} % \changes{v2.06}{2018/08/01}{neu}^^A % \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 % \begin{macro}{\tud@footcontent@left} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@footcontent@right} % \changes{v2.04}{2015/06/01}{neu}^^A % Mit dem Befehl \cs{footcontent} kann der Inhalt für den Fußbereich der % Seiten im Stil \pgs{tudheadings} festgelegt werden. Dieser wird mit passenden % Schrifteinstellungen entweder einspaltig oder zweispaltig gesetzt. Die % Sternversion des Befehls nimmt keinerlei Einstellungen für die Schrift vor. % \begin{macrocode} \newkomafont{tudheadings}{\tud@color{\tud@foot@fontcolor}} % \end{macrocode} % Dieser Befehl wird zur Formatierung der Schrift im Fußbereich definiert. % \begin{macrocode} \newcommand*\tud@footcontent@font@use[1]{% \usekomafont{tudheadings}{% \tud@footcontent@font@size% \tud@footcontent@font@face% \selectfont% #1% }% } % \end{macrocode} % Die mit \cs{footcontent} angegebenen Einstellungen und Inhalte werden in % diesen Makros gesichert, weshalb diese vorher alloziert werden. Anschließend % erfolgt die Definition des Befehls. % \begin{macrocode} \newcommand*\tud@footcontent@font@size{} \newcommand*\tud@footcontent@font@face{} \newcommand*\tud@footcontent@left{} \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@font@size{}% \tud@footcontent@do% }{% \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% }% } % \end{macrocode} % Normalerweise wird der Inhalt vollständig über die verfügbare Seitenfußbreite % gesetzt. Wird das optionale Argument \emph{nach} dem obligatorischen genutzt, % so erfolgt die Ausgabe zweispaltig. Das optionale Argument kann für % zusätzliche Formatierungsbefehle genutzt werden. % \begin{macrocode} \newcommand*\tud@footcontent@do[2][]{% \kernel@ifnextchar[%] {\tud@footcontent@@do{#1}{#2}}% {\tud@footcontent@@do{#1}{#2}[\@nil]}% } \newcommand*\tud@footcontent@@do{} \def\tud@footcontent@@do#1#2[#3]{% % \end{macrocode} % 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@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% \renewcommand*\tud@footcontent@left{#2}% \fi% \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@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 % \end{macro}^^A \footcontent % % \iffalse %<*class&poster> % \fi % % \begin{macro}{\tud@footcontent@@left} % \changes{v2.05}{2015/07/06}{neu}^^A % \changes{v2.05}{2016/04/17}{Überschrift optional}^^A % \begin{macro}{\tud@footcontent@@right} % \changes{v2.05}{2015/07/06}{neu}^^A % \changes{v2.05}{2016/04/17}{Überschrift optional}^^A % \begin{macro}{\tud@newline@poster} % Mit diesen beiden Hilfsmakros werden die linke und die rechte Spalte des % Standard-Seitenfußes eines Posters festgelegt. In der linken Spalte werden % dabei Fakultät, Einrichtung, Institut und Lehrstuhl sowie der Professor % ausgegeben, wobei die Angaben über das optionale Argument der entsprechenden % Feldbefehle, die in den Klassen normalerweise nur für den Seitenkopf genutzt % werden, variiert werden können. % \begin{macrocode} \newcommand*\tud@newline@poster{} \newcommand*\tud@footcontent@@left[1]{% \tud@if@strblank{#1}{}{{\tud@head@font@@bold#1\newline}}% Technische Universit\"at Dresden% \tud@foot@line@write{faculty}% \tud@foot@line@write{department}% \tud@foot@line@write{institute}% \tud@foot@line@write{chair}% \tud@foot@line@write{professor}% } % \end{macrocode} % In der rechten Spalte werden der Autor oder die Autoren (\cs{author}) und % die Kontaktperson(en) (\cs{contactperson}) ausgegeben. Zu jeder Person können % individuelle Angaben bzgl. Büro, Telefonnummer und E"~Mail-Adresse gemacht % werden. % \begin{macrocode} \newcommand*\tud@footcontent@@right[2]{% \def\tud@newline@poster{% \ifx\@authormore\@empty\else\newline\@authormore\fi% \ifx\@course\@empty% \ifx\@discipline\@empty\else\newline\@discipline\fi% \else% \newline\@course% \ifx\@discipline\@empty\else% \nobreakspace(\@discipline)% \fi% \fi% \ifx\@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% }% % \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} \tud@if@field@unset{\@author}{% \let\@tempa\@empty% }{% \let\@tempa\@author% }% \ifx\@tempa\@empty\else% \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 % unterdrückt, indem das Makro \cs{tud@multiple@fields@preset} im zweiten % Argument mit einem \val{*} aufgerufen wird. % \begin{macrocode} \renewcommand*\tud@split@author@do[2]{% \tud@multiple@fields@store{@author}{##1}% \tud@multiple@fields@preset{@author}{*}{##1}% \ignorespaces##1\tud@newline@poster% \tud@multiple@fields@restore{@author}% \tud@multiple@@@split{##2}{\newline}% }% \noindent\tud@multiple@split{@author}% \tud@multiple@fields@restore{@author}% % \end{macrocode} % Wurde gültige Felder außerhalb von \cs{@author} global angegeben, so werden % diese \emph{nach} allen Autoren ausgegeben. % \begin{macrocode} \tud@newline@poster% % \end{macrocode} % Werden Autor und Kontaktperson ausgegeben, ist eine Leerzeile einzufügen. % \begin{macrocode} \ifx\@contactperson\@empty\else\newline\fi% \fi% % \end{macrocode} % Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe. % \begin{macrocode} \def\tud@newline@poster{% \ifx\@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\@contactperson\@empty\else% \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}% \ignorespaces##1\tud@newline@poster% \tud@multiple@fields@restore{@contactperson}% \tud@multiple@@@split{##2}{\newline}% }% \noindent\tud@multiple@split{@contactperson}% \tud@multiple@fields@restore{@contactperson}% \tud@newline@poster% \fi% % \end{macrocode} % Zu guter letzt noch eine mögliche Homepage. % \begin{macrocode} \ifx\@webpage\@empty\else\newline\@webpage\fi% } \footcontent{% \tud@footcontent@@left{\contactname}% }[% \tud@footcontent@@right{\authorname}{\contactpersonname}% ] % \end{macrocode} % \end{macro}^^A \tud@newline@poster % \end{macro}^^A \tud@footcontent@@right % \end{macro}^^A \tud@footcontent@@left % % \iffalse % % \fi % % \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 % definiert wurde. Andernfalls wird lediglich eine leere Box der geforderten % Breite ausgegeben. Dies ist notwendig, da nachgelagerte Funktionen diese Box % fester Breite erwarten. % \begin{macrocode} \newcommand*\tud@layer@footcontent@wrn{} \newcommand*\tud@footcontent@use[2]{% \@tempswafalse% \ifx\tud@footcontent@left\@empty% \ifx\tud@footcontent@right\@nnil\else% \ifx\tud@footcontent@right\@empty\else% \@tempswatrue% \fi% \fi% \else% \@tempswatrue% \fi% \if@tempswa% \tud@ddc@check% \ifcase\@tempb\relax% \tud@setdim\@tempdimc{\z@}% \else% \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% \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[footcontent]{#1}{% \linespread{1}% \vss% \hbox to #2{% \tud@footcontent@font@use{% \tud@setglue\tud@res@glue{#2}% \tud@footcontent@@use{\tud@res@glue}% \hss% }% }% \vss\vss% % \end{macrocode} % Sollte der Inhalt für den Fußbereich zu groß sein, wird eine Warnung erzeugt. % \begin{macrocode} }{% The content for the footer (`\string\footcontent')\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 \noexpand\MessageBreak% Alternatively you can enlarge the bottom margin\noexpand\MessageBreak% by using option `extrabottommargin'.% \fi% }% \else% \hbox to #2{}% \fi% } % \end{macrocode} % Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird % der Inhalt über die komplette Breite des Textbereiches ausgegeben. % \begin{macrocode} \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} % Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen % der Abstand \cs{columnsep} eingefügt wird. % \begin{macrocode} \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} % \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} % % \begin{macro}{\if@tud@parameter@ps@font@set} % \changes{v2.05m}{2017/05/30}{neu}^^A % Der Schalter wird verwendet, um das explizite Setzen der Schrifteinstellungen % über die Seitenstilparameter zu detektieren. % \begin{macrocode} \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} % Im Folgenden werden die einzelnen Parameter für die \env{tudpage}-Umgebung % definiert. Die Parameter für Kopf- und Fußzeile werden nicht nur für die % \env{tudpage}-Umgebung sondern auch noch für Titel und Umschlagseite % verwendet, weshalb deren Definitionen zur einfacheren Wiederverwendung in das % Makro \cs{TUD@parameter@ps@def} ausgelagert werden. % \begin{macrocode} \newcommand*\TUD@parameter@ps@def[1]{% % \end{macrocode} % \begin{parameter}{cdfont} % Die Option \opt{cdfont} bestimmt, ob die Schriften des \CDs oder aber die % standardmäßigen Serifenlosen für die Auszeichnugen in der Kopfzeile und % Serifen im Inhalt verwendet werden. % \begin{macrocode} \TUD@parameter@def{cdfont}[true]{% \TUDoption{cdfont}{#1}% \@tud@parameter@ps@font@settrue% }% % \end{macrocode} % \end{parameter}^^A cdfont % \begin{parameter}{cdhead} % \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}^^A % Mit dem Parameter \val{cdhead} kann die Verwendung der Schriften des \CDs % aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. Die % Breite des Querbalkens kann über diesen Parameter ebenfalls geändert werden. % \begin{macrocode} \TUD@parameter@def{cdhead}[true]{\TUDoption{cdhead}{#1}}% % \end{macrocode} % \end{parameter}^^A cdhead % \begin{parameter}{cdfoot} % \changes{v2.03}{2015/01/30}{neu}^^A % Über \val{cdfoot} kann gg. die Hintergrundfarbe sowie die Standardfußzeile % des \CDs aktiviert werden. % \begin{macrocode} \TUD@parameter@def{cdfoot}[true]{\TUDoption{cdfoot}{#1}}% % \end{macrocode} % \end{parameter}^^A cdfoot % \begin{parameter}{headlogo} % \changes{v2.03}{2015/01/28}{neu}^^A % \begin{parameter}{footlogo} % \changes{v2.03}{2015/01/28}{neu}^^A % Das Zweit- und die Drittlogos können ebenfalls lokal geändert werden. % \begin{macrocode} \TUD@parameter@def{headlogo}{\headlogo{#1}}% \TUD@parameter@def{footlogo}{\footlogo{#1}}% % \end{macrocode} % \end{parameter}^^A footlogo % \end{parameter}^^A headlogo % \begin{parameter}{ddc} % \changes{v2.02}{2014/08/16}{neu}^^A % \begin{parameter}{ddchead} % \begin{parameter}{ddcfoot} % Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden. % \begin{macrocode} \TUD@parameter@def{ddc}[true]{\TUDoption{ddc}{#1}}% \TUD@parameter@def{ddchead}[true]{\TUDoption{ddchead}{#1}}% \TUD@parameter@def{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% % \end{macrocode} % \end{parameter}^^A ddcfoot % \end{parameter}^^A ddchead % \end{parameter}^^A ddc % \begin{parameter}{cdfonts} % \begin{parameter}{tudfonts} % \begin{parameter}{barfont} % \begin{parameter}{widehead} % \begin{parameter}{tudfoot} % \begin{parameter}{logo} % Für die Kompatibilität werden auch veraltete Parameter bereitgestellt. % \begin{macrocode} \TUD@parameter@def{cdfonts}[true]{% \TUDoption{cdfonts}{#1}% \@tud@parameter@ps@font@settrue% }% \TUD@parameter@def{tudfonts}[true]{% \TUDoption{tudfonts}{#1}% \@tud@parameter@ps@font@settrue% }% \TUD@parameter@def{barfont}[true]{\TUDoption{barfont}{#1}}% \TUD@parameter@def{widehead}[true]{\TUDoption{widehead}{#1}}% \TUD@parameter@def{tudfoot}[true]{\TUDoption{tudfoot}{#1}}% \TUD@parameter@let{logo}{headlogo}% % \end{macrocode} % \end{parameter}^^A logo % \end{parameter}^^A tudfoot % \end{parameter}^^A widehead % \end{parameter}^^A barfont % \end{parameter}^^A tudfonts % \end{parameter}^^A cdfonts % Damit sind alle notwendigen Parameter für die Kopf- und Fußzeile der Seiten % im Stil \pgs{tudheadings} definiert. % \begin{macrocode} } % \end{macrocode} % \end{macro}^^A \TUD@parameter@ps@def % % \iffalse %<*book|report|article> % \fi % % \begin{environment}{tudpage} % \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}^^A % \begin{parameter}{language} % \begin{parameter}{columns} % \begin{parameter}{pagestyle} % \changes{v2.02}{2014/06/23}{neu}^^A % \changes{v2.03}{2015/01/28}{\cs{tud@if@tudheadings} verwendet}^^A % \begin{macro}{\tud@envir@ps} % \begin{macro}{\tud@envir@selectps} % \changes{v2.02}{2014/07/19}{neu}^^A % \begin{macro}{\tud@currentpagestyle@set} % \changes{v2.02}{2014/07/18}{neu}^^A % \begin{macro}{\tud@currentpagestyle@reset} % \changes{v2.02}{2014/07/18}{neu}^^A % \changes{v2.03}{2015/01/09}{Bugfix}^^A % \begin{macro}{\tud@currentpagestyle@value} % Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout % temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern. % Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}. % Dabei wird mit \cs{loadgeometry} ein Seitenumbruch erzwungen und der % benötigte Satzspiegel geladen. % % Die Befehle \cs{tud@currentpagestyle@set} und \cs{tud@currentpagestyle@reset} % sind für die Sicherung und Wiederherstellung des vor der Umgebung geladenen % Seitenstils verantwortlich. % % Zu Beginn der Umgebung werden die weiter unten beschriebenen Optionen für % diese Umgebung mit \cs{TUD@parameter@set} ausgeführt. Nach dem Beenden der % Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout % wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner % Wert ohne Schlüssel angegben werden. % \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}% \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% %<*book|report> \renewcommand*\partpagestyle{empty}% \renewcommand*\chapterpagestyle{empty}% % \renewcommand*\indexpagestyle{empty}% }{}% \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% %<*book|report> \renewcommand*\partpagestyle{empty.tudheadings}% \renewcommand*\chapterpagestyle{empty.tudheadings}% % \renewcommand*\indexpagestyle{empty.tudheadings}% }{}% } \newcommand*\tud@currentpagestyle@value{} \newcommand*\tud@currentpagestyle@set{% \ifdefvoid{\tud@currentpagestyle@value}{% \xdef\tud@currentpagestyle@value{\currentpagestyle}% }{}% } \newcommand*\tud@currentpagestyle@reset{% \ifdefvoid{\tud@currentpagestyle@value}{}{% \expandafter\pagestyle\expandafter{\tud@currentpagestyle@value}% \let\tud@currentpagestyle@value\relax% }% } \NewEnviron{tudpage}[1][]{% % \end{macrocode} % Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird % dieser im Hilfsmakro \cs{tud@currentpagestyle@value} gespeichert. % \ToDo{eher NewDocumentEnvironment nutzen?}[v2.07] % \begin{macrocode} \tud@currentpagestyle@set% \clearpage% \def\tud@envir@ps{tudheadings}% \TUD@parameter@set{tudpage}{#1}% \tud@envir@selectps% % \end{macrocode} % Falls das \pkg{multicol}-Paket geladen ist und eine Spaltenanzahl angegeben % ist, wird die entsprechende Umgebung gesartet, mit \cs{BODY} der Inhalt der % \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die % \env{multicols}-Umgebung beendet. % \begin{macrocode} \tud@x@multicol@check% \ifnum\tud@x@multicol@num>\@ne\relax% \begin{multicols}{\tud@x@multicol@num}% \fi% \BODY% \ifnum\tud@x@multicol@num>\@ne\relax% \end{multicols}% \fi% % \end{macrocode} % Am Ende der Umgebung wird der vorhergehende Seitenstil zurückgesetzt und der % dazugehörige Satzspiegel geladen. Dazu wird die Ausführung das Hilfsmakro % \cs{@tempa} auf das Beenden der Umgebung mit \cs{aftergroup} verzögert. % \begin{macrocode} }[% \aftergroup\tud@currentpagestyle@reset% \clearpage% ] % \end{macrocode} % Mit \cs{TUD@parameter@family}\marg{Family}\marg{\dots} wird die Familie der % Parameter festgelegt und anschließend die Definitionen getätigt. % \begin{macrocode} \TUD@parameter@family{tudpage}{% % \end{macrocode} % Mit dem Parameter \prm{language} kann die in der Umgebung verwendete Sprache % umgeschaltet werden. Die Sprache kann auch ohne den entsprechenden Schlüssel % direkt als Parameter angegeben werden. % \begin{macrocode} \TUD@parameter@def{language}{\selectlanguage{#1}}% % \end{macrocode} % Mit \prm{columns} kann die Anzahl der Spalten für die Umgebung angegeben % werden. Für mehr als zwei Spalten muss das Paket \pkg{multicol} geladen % werden. Die Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt % Parameter angegeben werden. % \begin{macrocode} \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% % \end{macrocode} % Mit dem Parameter \prm{pagestyle} kann der verwendete Seitenstil eingestellt % werden, wobei einer der \pgs{tudheadings}-Seitenstile verwendet wird. % \begin{macrocode} \TUD@parameter@def{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% }% }}}% }% }% % \end{macrocode} % Hier werden die Parameter für Kopf- und Fußzeile tatsächlich definiert. % \begin{macrocode} \TUD@parameter@ps@def{#1}% % \end{macrocode} % Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben % wird, erfolgt eine Sonderbehandlung durch \cs{TUD@parameter@handler@default}, % bei dererst auf eine Zahl geprüft wird und anschießend versucht wird, das % Argument als Sprache zu setzen. Nach der Definition aller Parameter wird der % Befehl \cs{TUD@parameter@family} und damit auch die aktuelle Parameterfamilie % beendet. % \begin{macrocode} \TUD@parameter@handler@default{}% } % \end{macrocode} % \end{macro}^^A \tud@currentpagestyle@value % \end{macro}^^A \tud@currentpagestyle@reset % \end{macro}^^A \tud@currentpagestyle@set % \end{macro}^^A \tud@envir@selectps % \end{macro}^^A \tud@envir@ps % \end{parameter}^^A pagestyle % \end{parameter}^^A columns % \end{parameter}^^A language % \end{environment}^^A tudpage % % \iffalse % % \fi % % Mit der Nutzung von \pkg{scrlayer-scrpage} ist die parallele Verwendung des % Paketes \pkg{fancyhdr} nicht möglich. % \begin{macrocode} \PreventPackageFromLoading[% \ClassWarning{\TUD@Class@Name}{% The package `fancyhdr' must not be used with a\MessageBreak% TUD-Script class. You should make use of the\MessageBreak% capabilities of package `scrlayer-scrpage' instead% }% ]{fancyhdr} % \end{macrocode} % % \iffalse % % \fi % % \PrintBackMatter % \endinput