diff options
author | Karl Berry <karl@freefriends.org> | 2014-12-22 23:40:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-12-22 23:40:36 +0000 |
commit | 4f902263451a27826c05b01add75eba8ad70bcbb (patch) | |
tree | 122905b415c3dad65734d26cd0a706f6e13729b4 /Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx | |
parent | 6a25d658147c100681ee893ce36f28ef9b689995 (diff) |
tudscr has fallback for free fonts, so fine, restore
git-svn-id: svn://tug.org/texlive/trunk@35882 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx | 2005 |
1 files changed, 2005 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx new file mode 100644 index 00000000000..f3c196cde38 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx @@ -0,0 +1,2005 @@ +% \CheckSum{1513} +% \iffalse meta-comment +% ====================================================================== +% +% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen +% +% ====================================================================== +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% This work has the LPPL maintenance status "author-maintained". +% The current maintainer and author of this work is Falk Hanisch. +% ---------------------------------------------------------------------- +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% Der aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% ====================================================================== +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%%% From File: tudscr-pagestyle.dtx +%<*driver> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-pagestyle.dtx}[% + 2014/12/17 v2.02 TUD-KOMA-Script (pagestyle)% +] +\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +\documentclass[english,ngerman]{tudscrdoc} +\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-pagestyle.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A +% \changes{v2.02}{2014/07/08}{Verwendung \cs{FamilyKeyState}}%^^A +% +% \section{Der Seitenstil des \CDs} +% +% Das \CD verlangt (eigentlich) einen fest vorgegebenen Satzspiegel. Für das +% Setzen längerer wissenschaftlicher Abhandlungen ist dieser jedoch alles +% andere als glücklich gewählt. Insbesondere für den doppelseitigen Satz ist +% das Standardlayout nicht gut nutzbar. Für die \TUDScript"=Klassen wird +% deshalb die Abweichung vom sonst fest vorgegebenen Satzspiegel ermöglicht. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \subsection{Definition der konstanten Größen und Maße} +% +% Die Vorlagen sollen neben den vom \CD vorgegebenen Seitenrändern weitere +% Layouts ermöglichen und u.\,a. auch die Nutzung des Paketes \pkg{typearea} +% erlauben. Damit ein einheitliches Verfahren zur Wahl bzw. Umschaltung des +% Satzspiegels genutzt werden kann, wird das Paket \pkg{geometry} genutzt. +% Dabei werden entweder die gewünschten Maße der Seitenränder direkt gewählt +% oder aber die mit \pkg{typearea} berechneten Maße an \pkg{geometry} +% durchgereicht. +% +% Als erstes werden die Standardmaße für die Seitenränder im \CD definiert, +% danach speziell für die \env{tudpage}"=Umgebung. +% +% \iffalse +%<*class&body> +% \fi +% +% \begin{length}{\tud@dim@left} +% \begin{length}{\tud@dim@right} +% \begin{length}{\tud@dim@both} +% Die Seitenränder für links und rechts sowie deren Summe, welche später für +% weitere Layouts dazu verwendet wird, diese anteilig zu verteilen. +% \begin{macrocode} +\newlength{\tud@dim@left} +\newlength{\tud@dim@right} +\newlength{\tud@dim@both} +% \end{macrocode} +% \end{length}^^A \tud@dim@both +% \end{length}^^A \tud@dim@right +% \end{length}^^A \tud@dim@left +% \begin{length}{\tud@dim@top} +% \begin{length}{\tud@dim@bottom} +% \begin{length}{\tud@dim@footskip} +% Die Seitenränder für sowohl oben als auch unten sowie der Abstand zwischen +% Textkörper und Fußzeile. +% \begin{macrocode} +\newlength{\tud@dim@top} +\newlength{\tud@dim@bottom} +\newlength{\tud@dim@footskip} +% \end{macrocode} +% \end{length}^^A \tud@dim@footskip +% \end{length}^^A \tud@dim@bottom +% \end{length}^^A \tud@dim@top +% \begin{length}{\tud@dim@headheight} +% \begin{length}{\tud@dim@barheight} +% \begin{length}{\tud@dim@headsep} +% Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe +% oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale +% (Mindest"~)Abstand zwischen Querbalken und Textkörper. +% \begin{macrocode} +\newlength{\tud@dim@headheight} +\newlength{\tud@dim@barheight} +\newlength{\tud@dim@headsep} +% \end{macrocode} +% \end{length}^^A \tud@dim@headsep +% \end{length}^^A \tud@dim@barheight +% \end{length}^^A \tud@dim@headheight +% \begin{length}{\tud@dim@logox} +% \begin{length}{\tud@dim@logoy} +% \begin{length}{\tud@dim@logowidth} +% \begin{length}{\tud@dim@logoheight} +% Außerdem müssen noch die Abmessungen und die Position des TUD-Logos definiert +% werden, nämlich der horizontale (Soll"~)Abstand zwischen linkem Seitenrand +% und Logo, der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo +% sowie die Breite und Höhe\footnote{Proportionen sind durch die Grafik +% vorgegeben} des Logos. +% \begin{macrocode} +\newlength{\tud@dim@logox} +\newlength{\tud@dim@logoy} +\newlength{\tud@dim@logowidth} +\newlength{\tud@dim@logoheight} +% \end{macrocode} +% \end{length}^^A \tud@dim@logoheight +% \end{length}^^A \tud@dim@logowidth +% \end{length}^^A \tud@dim@logoy +% \end{length}^^A \tud@dim@logox +% \begin{length}{\tud@dim@line} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{length}{\tud@dim@thinline} +% \begin{length}{\tud@dim@heavyline} +% Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler +% als im Layout mit farbigem Hintergrund.\footnote{% +% monochrom \cs{tud@dim@thinline}, koloriert \cs{tud@dim@heavyline}}% +% Da im Dokument beide Varianten vorkommen können, wird die Breite +% \cs{tud@dim@line} durch den Seitenstil situativ entweder auf den Wert von +% \cs{tud@dim@thinline} oder aber \cs{tud@dim@heavyline} gesetzt. +% \begin{macrocode} +\newlength{\tud@dim@line} +\newlength{\tud@dim@thinline} +\newlength{\tud@dim@heavyline} +% \end{macrocode} +% \end{length}^^A \tud@dim@heavyline +% \end{length}^^A \tud@dim@thinline +% \end{length}^^A \tud@dim@line +% \begin{length}{\tud@dim@headingsvskip} +% Die Länge für den vertikalen Standardversatz der Überschriften. +% \begin{macrocode} +\newlength{\tud@dim@headingsvskip} +% \end{macrocode} +% \end{length}^^A \tud@dim@headingsvskip +% \begin{length}{\tud@dim@headdiff} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{length}{\tud@dim@ddcdiff} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{length}{\tud@dim@ddcfoot} +% \changes{v2.02}{2014/06/23}{neu, Umbenennung von \cs{tud@dim@ddcheight}}%^^A +% Zu guter Letzt noch die Höhe des \DDC-Logos in der Fußzeile. Die maximale Höhe +% der Fußzeile ist fest vorgegeben. +% \begin{macrocode} +\newlength{\tud@dim@headdiff} +\newlength{\tud@dim@ddcdiff} +\newlength{\tud@dim@ddcfoot} +% \end{macrocode} +% \end{length}^^A \tud@dim@ddcfoot +% \end{length}^^A \tud@dim@ddcdiff +% \end{length}^^A \tud@dim@headdiff +% \begin{macro}{\tud@geometry@set} +% \begin{macro}{\tud@head@font@size} +% Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die +% Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die +% Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch +% \cs{tud@geometry@process}. +% \begin{macrocode} +\newcommand*\tud@head@font@size{} +\newcommand*\tud@geometry@set{% + \ifdim\paperheight<148.1mm\relax% + \setlength{\tud@dim@headheight}{17.5mm}% + \setlength{\tud@dim@barheight}{2.5mm}% + \setlength{\tud@dim@headsep}{6mm}% + \setlength{\tud@dim@logox}{5.5mm}% + \setlength{\tud@dim@logoy}{6.5mm}% + \setlength{\tud@dim@logowidth}{28.5mm}% + \setlength{\tud@dim@left}{15mm}% + \setlength{\tud@dim@right}{10mm}% + \setlength{\tud@dim@top}{12.5mm}% + \setlength{\tud@dim@bottom}{12.5mm}% + \setlength{\tud@dim@footskip}{6mm}% + \setlength{\tud@dim@heavyline}{0.75pt}% + \setlength{\tud@dim@thinline}{0.5pt}% + \def\tud@head@font@size{4.5}% + \else\ifdim\paperheight<297.1mm\relax% + \setlength{\tud@dim@headheight}{35mm}% + \setlength{\tud@dim@barheight}{5mm}% + \setlength{\tud@dim@headsep}{12mm}% + \setlength{\tud@dim@logox}{11mm}% + \setlength{\tud@dim@logoy}{13.5mm}% + \setlength{\tud@dim@logowidth}{57mm}% + \setlength{\tud@dim@left}{30mm}% + \setlength{\tud@dim@right}{20mm}% + \setlength{\tud@dim@top}{25mm}% + \setlength{\tud@dim@bottom}{25mm}% + \setlength{\tud@dim@footskip}{12mm}% + \setlength{\tud@dim@heavyline}{1pt}% + \setlength{\tud@dim@thinline}{0.5pt}% + \def\tud@head@font@size{9}% + \else\ifdim\paperheight<420.1mm\relax% + \setlength{\tud@dim@headheight}{50mm}% + \setlength{\tud@dim@barheight}{7mm}% + \setlength{\tud@dim@headsep}{17mm}% + \setlength{\tud@dim@logox}{15.5mm}% + \setlength{\tud@dim@logoy}{19mm}% + \setlength{\tud@dim@logowidth}{80mm}% + \setlength{\tud@dim@left}{42mm}% + \setlength{\tud@dim@right}{28mm}% + \setlength{\tud@dim@top}{35mm}% + \setlength{\tud@dim@bottom}{35mm}% + \setlength{\tud@dim@footskip}{17mm}% + \setlength{\tud@dim@heavyline}{1.4pt}% + \setlength{\tud@dim@thinline}{0.7pt}% + \def\tud@head@font@size{13}% + \else\ifdim\paperheight<594.1mm\relax% + \setlength{\tud@dim@headheight}{70mm}% + \setlength{\tud@dim@barheight}{10mm}% + \setlength{\tud@dim@headsep}{24mm}% + \setlength{\tud@dim@logox}{22mm}% + \setlength{\tud@dim@logoy}{27mm}% + \setlength{\tud@dim@logowidth}{114mm}% + \setlength{\tud@dim@left}{60mm}% + \setlength{\tud@dim@right}{40mm}% + \setlength{\tud@dim@top}{50mm}% + \setlength{\tud@dim@bottom}{50mm}% + \setlength{\tud@dim@footskip}{24mm}% + \setlength{\tud@dim@heavyline}{1.7pt}% + \setlength{\tud@dim@thinline}{1pt}% + \def\tud@head@font@size{13.5}% + \else\ifdim\paperheight<841.1mm\relax% + \setlength{\tud@dim@headheight}{100mm}% + \setlength{\tud@dim@barheight}{14mm}% + \setlength{\tud@dim@headsep}{34mm}% + \setlength{\tud@dim@logox}{31mm}% + \setlength{\tud@dim@logoy}{38mm}% + \setlength{\tud@dim@logowidth}{161.5mm}% + \setlength{\tud@dim@left}{85mm}% + \setlength{\tud@dim@right}{56.5mm}% + \setlength{\tud@dim@top}{71mm}% + \setlength{\tud@dim@bottom}{71mm}% + \setlength{\tud@dim@footskip}{34mm}% + \setlength{\tud@dim@heavyline}{1.9pt}% + \setlength{\tud@dim@thinline}{1.5pt}% + \def\tud@head@font@size{14}% + \else% + \setlength{\tud@dim@headheight}{140mm}% + \setlength{\tud@dim@barheight}{20mm}% + \setlength{\tud@dim@headsep}{48mm}% + \setlength{\tud@dim@logox}{44mm}% + \setlength{\tud@dim@logoy}{54mm}% + \setlength{\tud@dim@logowidth}{228mm}% + \setlength{\tud@dim@left}{120mm}% + \setlength{\tud@dim@right}{80mm}% + \setlength{\tud@dim@top}{100mm}% + \setlength{\tud@dim@bottom}{100mm}% + \setlength{\tud@dim@footskip}{48mm}% + \setlength{\tud@dim@heavyline}{2.1pt}% + \setlength{\tud@dim@thinline}{2pt}% + \def\tud@head@font@size{20}% + \fi\fi\fi\fi\fi% + \setlength{\tud@dim@both}{\dimexpr\tud@dim@left+\tud@dim@right\relax}% +% \end{macrocode} +% Hiermit wird sichergestellt, dass bei der Verwendung des \DDC-Logos im Fuß +% ausreichend Platz zur Verfügung steht. +% \begin{macrocode} + \setlength{\tud@dim@ddcfoot}{.6\tud@dim@headheight}% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@font@size +% \end{macro}^^A \tud@geometry@set +% +% \subsection{Unterstützung der \cls{standalone}-Klasse} +% +% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}"=Klasse}%^^A +% +% Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate +% Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse +% ändert allerhand an den Einstellungen der Seitenränder. Damit sich diese bei +% der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen +% für einige Einstellungen unterdrückt werden. +% +% \begin{macro}{\tud@ifsacrop} +% \changes{v2.02}{2014/09/08}{neu}%^^A +% Mit diesem Makro kann die Verwendung der Option \opt{crop} mit der Klasse +% \cls{standalone} geprüft werden. Das erste Argument wird ausgeführt, wenn +% die Klasse geladen und die Option aktiv ist. Das zweite Argument wird +% ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die +% Klasse \cls{standalone} gar nicht geladen wurde. +% \begin{macrocode} +\newcommand*\tud@ifsacrop{% + \ifcsdef{ifsa@crop}{% + \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% + }{% + \@secondoftwo% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@ifsacrop +% +% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv, +% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das +% Laden von \pkg{scrlayer-scrpage} verhindert. +% +% \begin{macrocode} +\AtEndPreamble{% + \tud@ifsacrop{% + \PreventPackageFromLoading{scrlayer-scrpage}% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\dimexpr\maxdimen% + }{}% +} +% \end{macrocode} +% +% \subsection{Definition des Seitenstils mittels \pkg{scrlayer-scrpage}} +% +% Ein zentraler Bestandteil der Vorlagen ist der Seitenkopf des \CDs. Dieser +% wird ab der Version~v2.02 mit Hilfe des Paketes \pkg{scrlayer-scrpage} +% erstellt. Dafür werden einzelnene Seitenstile erstellt, welche zum einen von +% verschiedenen Befehlen wie beispielsweise von\cs{maketitle} oder \cs{part} +% bzw. \cs{addpart} genutzt werden. Zum anderen kann der Anwender selbst diese +% entweder direkt über die Wahl des Seitenstils oder aber mit der +% \env{tudpage}"=Umgebung nutzen. +% +% \begin{pagestyle}{tudheadings} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{pagestyle}{plain.tudheadings} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{pagestyle}{empty.tudheadings} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Es wird ein neuer Seitenstil kreiert, der das \CD der TU~Dresden mit der +% prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein, +% wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket +% \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD +% vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum +% Textblock gesetzt. Für den Fall, dass das Dokument nicht ausschließlich mit +% dem TUD-Kopf auf jeder Seite gesetzt wird, muss der komplette vertikale +% Satzspiegel angepasst werden, sonst wäre der obere Rand optisch viel zu groß. +% Hierfür wird das Paket \pkg{geometry} genutzt.Durch \cs{tud@geometry@process} +% werden drei Layouts erstellt. Diese können mit \cs{loadgeometry}\marg{Stil} +% geladen werden. +% \begin{macrocode} +\AtEndPreamble{% +% \end{macrocode} +% Damit der Anwender beliebige Optionen an \pkg{scrlayer-scrpage} übergeben +% kann, wird das Paket erst zum Ende der Präambel geladen, wenn dies nicht +% bereits vorher geschehen ist. +% \ToDo{Versionsanforderung rein, sobald aktuelle Version auf CTAN vorhanden} +% \begin{macrocode} + \RequirePackage{scrlayer-scrpage}[2013/12/14]% +% \end{macrocode} +% Anschließend werden verschiedene, sogeannte Layers für die einzelnen Elemente +% auf einer Seite erstellt. Dies sind das aus dem Satzspiegel nach links +% verschobene Logo der \TnUD sowie \dots +% \begin{macrocode} + \AfterPackage*{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,head,align=tl,% + voffset=\tud@dim@logoy,% + contents={% + \hspace*{\dimexpr\tud@dim@logox-\tud@dim@left\relax}\tud@mainlogo% + },% + ]{tudheadings.head.mainlogo}% +% \end{macrocode} +% \dots das Zweitlogo, \dots +% \begin{macrocode} + \DeclareNewLayer[% + background,head,align=tl,% + voffset=\tud@dim@logoy,% + contents={\hfill\tud@headlogo},% + ]{tudheadings.head.logo}% +% \end{macrocode} +% \dots die obere und untere Linie des Querbalkens sowohl in der normalen +% Version, welche den Textbereich überspannt als auch in der Variante über die +% komplette Seitenbreite. Dabei muss für beide Varianten der entsprechenden +% horizontale Versatz beachtet werden. Dafür wird ggf. der Parameter \val{head} +% von \pkg{scrlayer-scrpage} verwendet. Darauf folgt \dots +% \begin{macrocode} + \DeclareNewLayer[% + background,head,align=tl,% + voffset=\dimexpr\tud@dim@headheight-.5\tud@dim@line\relax,% + contents={\if@tud@widehead\else\tud@head@rule{\textwidth}\fi},% + ]{tudheadings.head.topline}% + \DeclareNewLayer[% + background,head,align=tl,% + voffset={% + \dimexpr\tud@dim@headheight+\tud@dim@barheight-.5\tud@dim@line\relax% + },% + contents={\if@tud@widehead\else\tud@head@rule{\textwidth}\fi},% + ]{tudheadings.head.bottomline}% + \DeclareNewLayer[% + background,align=tl,% + voffset=\dimexpr\tud@dim@headheight-.5\tud@dim@line\relax,% + contents={\if@tud@widehead\tud@head@rule{\paperwidth}\fi},% + ]{tudheadings.head.topwideline}% + \DeclareNewLayer[% + background,align=tl,% + voffset={% + \dimexpr\tud@dim@headheight+\tud@dim@barheight-.5\tud@dim@line\relax% + },% + contents={\if@tud@widehead\tud@head@rule{\paperwidth}\fi},% + ]{tudheadings.head.bottomwideline}% +% \end{macrocode} +% \dots der Inhalt mit Fakultät, Einrichtung, Institut und Lehrstuhl. +% \begin{macrocode} + \DeclareNewLayer[% + background,head,align=tl,% + voffset=\dimexpr\tud@dim@headheight+\tud@dim@line\relax,% + contents={\tud@head@text@box},% + ]{tudheadings.head.text}% +% \end{macrocode} +% Außerdem wird eine weitere Ebene mit dem \DDC-Logo im Seitenfuß erstellt. +% \begin{macrocode} + \DeclareNewLayer[% + background,foot,% + contents={% + \vskip\dimexpr-\tud@dim@ddcfoot-\baselineskip+\ht\strutbox% + \hfill\tud@footlogo% + },% + ]{tudheadings.foot.ddclogo}% +% \end{macrocode} +% Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile +% zusammengesetzt. Mit \cs{newpairofpagestyles} wird neben dem Seitenstil +% \pgs{tudheadings} der passende Seitenstil \pgs{plain.tudheadings} gleich mit +% deklariert. +% \begin{macrocode} + \newpairofpagestyles{tudheadings}{}% +% \end{macrocode} +% Allerdings führt der Befehl dazu, dass zunächst eine Vielzahl an Ebenen +% hinzugefügt wird, welche nicht benötigt werden. Deshalb werden diese mit +% \cs{RemoveLayersFromPageStyle} zunächst entfernt. +% \begin{macrocode} + \ForEachLayerOfPageStyle{tudheadings}{% + \RemoveLayersFromPageStyle{tudheadings}{#1}% + }% + \ForEachLayerOfPageStyle{plain.tudheadings}{% + \RemoveLayersFromPageStyle{plain.tudheadings}{#1}% + }% +% \end{macrocode} +% Nun folgt das Hinzufügen der Ebenen zu den jetzt leeren Seitenstilen. Damit +% die Benutzerschnittstelle von \pkg{scrlayer-scrpage} für die Fußzeile +% weiterhin durch den Anwender verwendet werden kann, werden die entsprechenden +% \pgs{scrheadings}-Ebenen verwendet. +% \begin{macrocode} + \AddLayersToPageStyle{tudheadings}{% + tudheadings.head.mainlogo,% + tudheadings.head.logo,% + tudheadings.head.topline,% + tudheadings.head.bottomline,% + tudheadings.head.topwideline,% + tudheadings.head.bottomwideline,% + tudheadings.head.text,% + tudheadings.foot.ddclogo,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% + }% + \AddLayersToPageStyle{plain.tudheadings}{% + tudheadings.head.mainlogo,% + tudheadings.head.logo,% + tudheadings.head.topline,% + tudheadings.head.bottomline,% + tudheadings.head.topwideline,% + tudheadings.head.bottomwideline,% + tudheadings.head.text,% + tudheadings.foot.ddclogo,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% + }% + \DeclareNewPageStyleByLayers{empty.tudheadings}{% + tudheadings.head.mainlogo,% + tudheadings.head.logo,% + tudheadings.head.topline,% + tudheadings.head.bottomline,% + tudheadings.head.topwideline,% + tudheadings.head.bottomwideline,% + tudheadings.head.text,% + tudheadings.foot.ddclogo,% + }% +% \end{macrocode} +% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf +% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten +% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Alias für +% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} definiert. Hiermit +% wird zusätzlich dafür gesorgt, das der Seitenstil \pgs{empty} ebenfalls als +% Alias für \pgs{empty.tudheadings} verwendet werden kann. +% \begin{macrocode} + \AddToLayerPageStyleOptions{tudheadings}{% + onselect={\letcs\ps@empty{ps@empty.tudheadings}}% + }% + \AddToLayerPageStyleOptions{plain.tudheadings}{% + onselect={\letcs\ps@empty{ps@empty.tudheadings}}% + }% + \AddToLayerPageStyleOptions{empty.tudheadings}{% + onselect={% + \letcs\ps@empty{ps@empty.tudheadings}% + \letcs\ps@plain{ps@plain.tudheadings}% + \letcs\ps@headings{ps@tudheadings}% + }% + }% +% \end{macrocode} +% Außerdem wird der Alias-Seitenstil \pgs{tudscrheadings} definiert. +% \begin{macrocode} + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% +% \end{macrocode} +% Der TUD-Kopf erfordert einen eigenen Satzspiegel, der ggf. durch +% \cs{tud@beforepagestyle} aktiviert bzw. deaktiviert wird. +% \begin{macrocode} + \BeforeSelectAnyPageStyle{\tud@beforepagestyle{#1}}% + }% +} +% \end{macrocode} +% \end{pagestyle}^^A empty.tudheadings +% \end{pagestyle}^^A plain.tudheadings +% \end{pagestyle}^^A tudheadings +% \begin{macro}{\ps@tudpage@plain} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \begin{macro}{\ps@tudpage@empty} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt. +% \end{macro}^^A \ps@tudpage@empty +% \end{macro}^^A \ps@tudpage@plain +% \begin{macro}{\tud@beforepagestyle} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{macro}{\tud@currentgeometry} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Mit \cs{tud@beforepagestyle} wird beim Umschalten des Seitenstils ggf. der +% Satzspiegel geändert. +% \begin{macrocode} +\newcommand*\tud@currentgeometry{} +\newcommand*\tud@beforepagestyle[1]{% +% \end{macrocode} +% Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles} +% derart definiert, dass zwischen \pgs{tudheadings}, \pgs{plain.tudheadings} +% sowie~-- durch die Anpassungen weiter oben~-- \pgs{empty.tudheadings} auch +% mit \LaTeX-Standardseitenstilen \pgs{headings}, \pgs{plain} und \pgs{empty} +% umgeschaltet werden kann. Dies wird hiermit beachtet. +% \begin{macrocode} + \def\@tempa{#1}% + \ifstr{\sls@currentheadings}{tudheadings}{% + \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}% + \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}% + \ifstr{#1}{empty}{\def\@tempa{empty.tudheadings}}{}% + }{}% +% \end{macrocode} +% Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll\dots +% \begin{macrocode} + \tud@ifinpslist{\@tempa}{% +% \end{macrocode} +% \dots werden die Einstellungen für den Seitenfuß mit \cs{tud@ddc@check} in +% \cs{@tempb} geschrieben und abhängig davon der richtige Satzspiegel geladen. +% Dabei wird zuvor mit dem Wert aus \cs{tud@currentgeometry} geprüft, ob dies +% überhaupt notwendig ist. +% \begin{macrocode} + \tud@ddc@check% +% \end{macrocode} +% Das \DDC-Logo im Fuß ist nicht aktiviert. +% \begin{macrocode} + \ifcase \@tempb\relax% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% +% \end{macrocode} +% Das \DDC-Logo im Fuß ist aktiviert. +% \begin{macrocode} + \else% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% +% \end{macrocode} +% Die Länge \cs{tud@dim@headdiff} gibt an, wie groß die Differenz zwischen +% Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil +% ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@} +% gesetzt. +% \begin{macrocode} + \setlength{\tud@dim@headdiff}{\z@}% +% \end{macrocode} +% Hier ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll. +% Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} +% zurückgesetzt. +% \begin{macrocode} + }{% + \ifstr{\tud@currentgeometry}{typearea}{}{% + \loadgeometry{typearea}% + \gdef\tud@currentgeometry{typearea}% + \RedeclarePageStyleByLayers{empty}{}% + }% +% \end{macrocode} +% Die Länge \cs{tud@dim@headdiff} wird auf den berechneten Wert gesetzt. Nur +% für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und dieser +% nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas angepasst +% werden. +% \begin{macrocode} + \setlength{\tud@dim@headdiff}{\tud@ta@headdiff}% + \ifcase \tud@geometry\relax\else% + \if@hincl% + \addtolength{\tud@dim@headdiff}{% + \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + }% + \fi% + \fi% + }% +% \end{macrocode} +% Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt. +% \begin{macrocode} + \global\tud@dim@headdiff=\tud@dim@headdiff% +} +% \end{macrocode} +% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die +% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal +% angepasst werden. +% \begin{macrocode} +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@beforepagestyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@beforepagestyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@beforepagestyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +% \end{macrocode} +% \end{macro}^^A \tud@currentgeometry +% \end{macro}^^A \tud@beforepagestyle +% \begin{macro}{\tud@ddc@enlargepage} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Der Befehl wird für die Titelkopf- und Kapitelseiten verwendet. Er +% verkleinert die entsprechenden Seiten, wenn für diese mit dem Befehl +% \cs{thispagestyle} einer der \pgs{tudheadings}"=Seitenstile gewählt wurde +% \emph{und} des \DDC-Logo im Fuß gesetzt werden soll. +% \begin{macrocode} +\newcommand*\tud@ddc@enlargepage{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase \@tempb\relax\else\enlargethispage{-\tud@dim@ddcdiff}\fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@enlargepage +% \begin{macro}{\tud@head@text} +% \begin{macro}{\tud@head@text@first} +% \begin{macro}{\tud@head@text@second} +% \begin{macro}{\tud@head@text@delimiter} +% \begin{macro}{\tud@head@text@buffer} +% \begin{macro}{\tud@head@font} +% Diese Befehle sind Hilfsmakros, die bei der Erzeugung der Textzeile inner- und +% unterhalb des Querbalkens des TUD-Kopfes dienen. +% \begin{macrocode} +\newcommand*\tud@head@text{} +\newcommand*\tud@head@text@first{} +\newcommand*\tud@head@text@second{} +\newcommand*\tud@head@text@delimiter{} +\newcommand*\tud@head@text@buffer{} +\newcommand*\tud@head@font{} +% \end{macrocode} +% \end{macro}^^A \tud@head@font +% \end{macro}^^A \tud@head@text@buffer +% \end{macro}^^A \tud@head@text@delimiter +% \end{macro}^^A \tud@head@text@second +% \end{macro}^^A \tud@head@text@first +% \end{macro}^^A \tud@head@text +% \begin{macro}{\tud@head@rule} +% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}%^^A +% Der Querbalken des Kopfes läuft je nach gewähltem Parameter \opt{widehead} +% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite. +% Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und +% über \cs{tud@dim@line} definierter Dicke. +% \begin{macrocode} +\newcommand*\tud@head@rule[1]{% + \color{\tud@head@color}% + \rule[\dimexpr\ht\strutbox\relax]{#1}{\tud@dim@line}% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@rule +% \begin{macro}{\tud@head@text@add} +% Dieser Befehl dient zum Füllen eines Puffer-Strings. Es werden sequentiell +% alle potentiellen Felder hinzugefügt. Sollte das zuletzt hinzugefügte Feld +% dazu führen, dass der Text der Kopfzeile über den Seitenrand hinausragt, so +% wird eine zweite Zeile begonnen. In diesem Fall wird der temporäre Schalter +% \cs{@tempswa} aktiviert. Auch das Trennzeichen zwischen einzelnen Feldern +% muss gepuffert werden, da dieses nur gesetzt wird, wenn ein weiteres Feld +% nachfolgt. +% \begin{macrocode} +\newcommand*\tud@head@text@add[3][, ]{% + \def\tud@head@font{#2}% + \edef\tud@head@text{#3}% + \ifx\tud@head@text\@empty% + \def\tud@head@text@delimiter{}% + \else% + \edef\tud@head@text@delimiter{\tud@head@text@buffer}% + \def\tud@head@text@buffer{#1}% + \fi% + \if@tempswa\else% + \def\@tempa{% + \tud@head@text@first% + \tud@head@text@delimiter% + \tud@head@font% + \tud@head@text% + }% + \settowidth{\@tempdima}{\@tempa}% + \ifdim\@tempdima>\textwidth\relax% + \@tempswatrue% + \def\tud@head@text@delimiter{}% + \else% + \edef\tud@head@text@first{\@tempa}% + \fi% + \fi% + \if@tempswa% + \edef\tud@head@text@second{% + \tud@head@text@second% + \tud@head@text@delimiter% + \tud@head@font% + \tud@head@text% + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@add +% \begin{macro}{\tud@head@text@box} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile. +% \begin{macrocode} +\newcommand*\tud@head@text@box{% +% \end{macrocode} +% Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben. +% \begin{macrocode} + \ifx\@faculty\@empty% + \ClassWarningNoLine{\tudcls@name}{No `\string\faculty' given}% + \faculty{}% + \fi% +% \end{macrocode} +% Die Farbe des Kopfes wird für Titel und Teileseiten durch die gewählten +% Optionen\footnote{\opt{cdtitle}, \opt{cdpart}} bestimmt.\footnote{für +% die \env{tudpage}-Umgebung kann dieser angepasst werden} +% \begin{macrocode} + \color{\tud@head@color}% +% \end{macrocode} +% Abhängig vom Schalter \cs{if@tud@cdfonts}~-- gesetzt entweder von der globalen +% Klassenoption oder vom lokalelParameter \opt{cdfont}~-- werden entweder die +% Schriften des \CDs oder aber die serifenlose Standardschrift für die Kopfzeile +% verwendet. +% \begin{macrocode} + \tud@head@font@set% +% \end{macrocode} +% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben. +% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine zweite +% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der +% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der ersten und +% gegebenenfalls der zweiten Textzeile im Kopf erfolgt durch das Makro +% \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Der dafür +% verwendete Schalter \cs{@tempswa} und die benötigten Hilfsmakros werden +% vor der Verwendung initialisiert. +% \begin{macrocode} + \@tempswafalse% + \def\tud@head@text@first{}% + \def\tud@head@text@second{}% + \def\tud@head@text@buffer{}% + \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% + \tud@head@text@add{\tud@head@font@light}{\@department}% + \tud@head@text@add{\tud@head@font@light}{\@institute}% + \tud@head@text@add{\tud@head@font@light}{\@chair}% +% \end{macrocode} +% Sollte die zweite Textzeile zu lang sein, was bei kleinen Papierformaten +% vorkommen kann, dann wird eine Warnung ausgegeben. +% \begin{macrocode} + \settowidth{\@tempdima}{\tud@head@text@second}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth\relax}% + \hfuzz=\@tempdima% + \fi% +% \end{macrocode} +% Es erfolgt die Ausgabe der Textzeile(n) mit Fakultät etc. über +% \cs{tud@head@text@write} sowie einer möglichen Extrazeile. +% \begin{macrocode} + \vbox{% + \linespread{0}\selectfont% + \tud@head@text@write{\tud@head@text@first}% + \ifx\tud@head@text@second\@empty% + \ifx\@extraheadline\@empty\else% + \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}% + \fi% + \else% + \newline\tud@head@text@write{\tud@head@text@second}% + \ifx\@extraheadline\@empty\else% + \newline\tud@head@font@light\@extraheadline% + \fi% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@box +% \begin{macro}{\tud@head@text@write} +% \changes{v2.02}{2014/06/23}{Vertikaler Freiraum für Ober- und Unterlängen +% mit \cs{vphantom} eingefügt}%^^A +% \changes{v2.02}{2014/12/04}{optische Zentrierung des Zeilentextes}%^^A +% Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf +% \begin{macrocode} +\newcommand*\tud@head@text@write[1]{% + \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% + \dimexpr\tud@dim@barheight-\depth\relax% + ][\depth]{#1\vphantom{gjpqy\"A\"O\"U}}% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@write +% \begin{macro}{\tud@head@text@wrn} +% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die +% Textbreite, was bei besonders kleinen Papierformaten geschehen kann. +% \begin{macrocode} +\newcommand\tud@head@text@wrn[1]{% + \ClassWarning{\tudcls@name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are #1\MessageBreak% + too wide for the textwidth% + }% + \global\let\tud@head@text@wrn\@gobble% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@wrn +% \begin{macro}{\tud@mainlogo@wrn} +% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}%^^A +% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die +% Textbreite, was bei besonders kleinen Papierformaten geschehen kann. +% \begin{macrocode} +\newcommand*\tud@mainlogo@wrn[1]{% + \ClassWarning{\tudcls@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 #1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% +} +% \end{macrocode} +% \end{macro}^^A \tud@mainlogo@wrn +% +% \iffalse +%</class&body> +%<*class&option> +% \fi +% +% \subsection{Befehle, Optionen und Umsetzung der Seitenstilvarianten} +% +% \begin{option}{ddc} +% \changes{v2.02}{2014/06/23}{automatische Logowahl}%^^A +% \begin{option}{ddchead} +% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A +% \begin{option}{ddcfoot} +% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A +% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil +% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den +% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls +% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß. +% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein +% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen +% im Fuß ausgegeben. +% \begin{macro}{\tud@ddc@switch} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Dieser Befehl enthält die gültigen Werte für die Optionen \opt{ddc}, +% \opt{ddchead} sowie \opt{ddcfoot}. +% \begin{macrocode} +\newcommand*\tud@ddc@switch{} +\edef\tud@ddc@switch{% + \TUD@numkey@bool,% + {color}{2},{colour}{2},% + {colorblack}{3},{colourblack}{3},% + {gray}{4},{grey}{4},{cdgray}{4},% + {black}{5},% + {blue}{6},{cddarkblue}{6},% + {white}{7}% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@switch +% \begin{macro}{\tud@ddc@save} +% \changes{v2.02}{2014/07/08}{neu}%^^A +% \begin{macro}{\if@tud@ddc@save} +% \changes{v2.02}{2014/07/08}{neu}%^^A +% Diese beiden Befehle werden von den Optionen \opt{ddchead} und \opt{ddcfoot} +% benötigt, um nach dem Setzen der Option den vorherigen Wert vor dem möglichen +% Beenden einer Seite mit \cs{clearpage} wiederherstellen zu können. +% \begin{macrocode} +\newcommand*\tud@ddc@save{} +\newif\if@tud@ddc@save +\@tud@ddc@savetrue +% \end{macrocode} +% \end{macro}^^A \if@tud@ddc@save +% \end{macro}^^A \tud@ddc@save +% \begin{macro}{\tud@ddc} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{macro}{\if@tud@ddc@autoset} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Die Option \opt{ddc}. +% \begin{macrocode} +\newcommand*\tud@ddc{0} +\newif\if@tud@ddc@autoset +\TUD@key{ddc}[true]{% +% \end{macrocode} +% Sollte diese innerhalb des Dokumentes aufgerufen werden, so wird für den Fall, +% dass ein \pgs{tudheadings}-Seitenstil gewählt ist, ein \cs{clearpage} +% ausgeführt, da eventuell eine Änderung des Layers sowie des Satzspeigels +% notwendig ist. Anschließend wird der Schalter \cs{if@tud@ddc@autoset} +% entsprechend des angegebenen Wertes gesetzt. +% \begin{macrocode} + \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% + \ifcase \tud@ddc\relax% + \@tud@ddc@autosetfalse% + \else% + \@tud@ddc@autosettrue% + \fi% +% \end{macrocode} +% Abschließend wird der aktuelle Seitenstil erneut aufgerufen, um bei einem +% geänderten Fuß den notwendigen Satzspiegel zu laden. Siehe dazu auch +% \cs{tud@beforepagestyle}. +% \begin{macrocode} + \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@ddc@autoset +% \end{macro}^^A \tud@ddc +% \begin{macro}{\tud@ddc@head} +% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf +% der Seiten im Stil von \pgs{tudheadings}. +% \begin{macrocode} +\newcommand*\tud@ddc@head{0} +\TUD@key{ddchead}[true]{% +% \end{macrocode} +% Der aktuelle Zustand des Schlüssels wird gesichert. Anschließend wird der +% Schlüssel mit dem neuen Wert gesetzt. +% \begin{macrocode} + \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@head\fi% + \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% +% \end{macrocode} +% Sollte ein gültiger Wert für den Schlüssel übergeben worden sein, wird dieser +% lokal auf den alten Wert gesetzt, um ggf. eine neue Seite zu erzeugen. +% \begin{macrocode} + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@ddc@save% + \begingroup% + \let\tud@ddc@head\tud@ddc@save% + \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% + \endgroup% + \fi% +% \end{macrocode} +% Danach werden die sich ausschließenden Optionen deaktiviert, ohne eine +% Sicherung der Werte vorzunehmen. +% \begin{macrocode} + \ifcase \tud@ddc@head\relax\else% + \@tud@ddc@savefalse% + \TUDoptions{ddc=false}% + \TUDoptions{ddcfoot=false}% + \@tud@ddc@savetrue% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@head +% \begin{macro}{\tud@ddc@foot} +% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß +% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des +% Schlüssels ist äquivalent zur Option \opt{ddchead} +% \begin{macrocode} +\newcommand*\tud@ddc@foot{0} +\TUD@key{ddcfoot}[true]{% + \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@foot\fi% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@ddc@save% + \begingroup% + \let\tud@ddc@foot\tud@ddc@save% + \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% + \endgroup% + \fi% + \ifcase \tud@ddc@foot\relax\else% + \@tud@ddc@savefalse% + \TUDoptions{ddc=false}% + \TUDoptions{ddchead=false}% + \@tud@ddc@savetrue% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@foot +% \begin{macro}{\tud@ddc@check} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Dieses Hilfsmakro wird aufgerufen, wenn geprüft werden soll, welche +% Einstellungen für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen +% kommen sollen. Dabei wird insbesondere geprüft, ob die automatischen Auswahl +% des \DDC-Logos aktiviert ist. Die jeweils gültige Auswahl für Kopf bzw. Fuß +% wird in \cs{@tempa} bzw. \cs{@tempb} geschrieben und kann anschließend +% ausgewertet werden. +% \begin{macrocode} +\newcommand*\tud@ddc@check{% + \let\@tempa\tud@ddc@head% + \let\@tempb\tud@ddc@foot% + \if@tud@ddc@autoset% + \ifx\tud@@headlogo\@empty% + \let\@tempa\tud@ddc% + \let\@tempb\z@% + \else% + \let\@tempa\z@% + \let\@tempb\tud@ddc% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@check +% \end{option}^^A ddcfoot +% \end{option}^^A ddchead +% \end{option}^^A ddc +% \begin{macro}{\tud@ifinpslist} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{macro}{\tud@pslist} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Mit dem Befehl \cs{tud@ifinpslist} wird geprüft, ob der übergebene +% Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein kann, welches +% durch das Paket \pkg{scrlayer-scrpage} definiert wird und den aktuellen +% Seitenstil beinhaltet~-- einem aus \cs{tud@pslist} entspricht. Ist dies der +% Fall, wird das zweite Argument ausgeführt, sonst das dritte. +% \begin{macrocode} +\newcommand*\tud@ifinpslist[3]{\xifinlist{#1}{\tud@pslist}{#2}{#3}} +\newcommand*\tud@pslist{} +\forcsvlist{\listadd\tud@pslist}{% + tudheadings,plain.tudheadings,empty.tudheadings% +} +% \end{macrocode} +% \end{macro}^^A \tud@pslist +% \end{macro}^^A \tud@ifinpslist +% \begin{option}{widehead} +% \begin{macro}{\if@tud@widehead} +% \begin{macro}{\if@tud@widehead@locked} +% Der Schalter dient zur Steuerung der Breite des Querbalkens im Kopf der +% \env{tudpage}-Seite. Entweder der Querbalken liegt im Satzspiegel oder +% aber über die komplette Papierbreite. +% \begin{macrocode} +\newif\if@tud@widehead +\TUD@key@lock{widehead}[true]{% + \TUD@set@ifkey@lock{widehead}{@tud@widehead}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@widehead@locked +% \end{macro}^^A \if@tud@widehead +% \end{option}^^A widehead +% +% \iffalse +%</class&option> +%<*class&body> +% \fi +% +% \begin{macro}{\tud@mainlogo} +% \changes{v2.02}{2014/08/04}{Dateinamen der TUD-Logos geändert}%^^A +% \begin{macro}{\tud@@mainlogo} +% Mit diesem Makro wird das Logo der TU~Dresden eingebunden. Bei der Verwendung +% von pdf\LaTeX{} kann wird Farbe des Logos an die Kopffarbe angepasst. Wird +% der klassische Weg über dvi gewählt, so muss abhängig von der gewählten +% Kopffarbe das entsprechend gefärbte Logo eingebunden werden. +% +% \begin{macrocode} +\newcommand*\tud@@mainlogo{} +\newcommand*\tud@mainlogo{% +% \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 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} + \setlength{\@tempdima}{% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@left\relax% + }% + \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi% +% \end{macrocode} +% Es wird das Standardlogo festgelegt und dieses ggf. für eine andere Kopffarbe +% geändert. +% \begin{macrocode} + \def\tud@@mainlogo{TUD-black}% + \ifstr{\tud@head@color}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}% + \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}% + \ifstr{\tud@head@color}{white}{\def\tud@@mainlogo{TUD-white}}{}% + \global\let\tud@dim@line\tud@dim@thinline% + \ifstr{\tud@head@color}{white}{\global\let\tud@dim@line\tud@dim@heavyline}{}% + \color{\tud@head@color}% + \includegraphics[width=\tud@dim@logowidth]{\tud@@mainlogo}% +} +% \end{macrocode} +% \end{macro}^^A \tud@@mainlogo +% \end{macro}^^A \tud@mainlogo +% \begin{macro}{\headlogo} +% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}%^^A +% \begin{macro}{\tud@headlogo} +% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@logo} umbenannt}%^^A +% \changes{v2.02}{2014/06/23}{von \cs{tud@ddc@sethead} wurde die Auswahl des +% \DDC-Logos übernommen und erweitert}%^^A +% \begin{macro}{\tud@@headlogo} +% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@@logo} umbenannt}%^^A +% \begin{macro}{\tud@@@headlogo} +% \changes{v2.02}{2014/06/23}{Umbenennen des Befehls \cs{tud@head@@@logo}}%^^A +% \begin{macro}{\tud@headlogo@wrn} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Diese Befehle dienen zum Einbinden eines Zweitlogos im Kopf bündig zum +% rechten Seitenrand. Bei der Angabe des Logos mit +% \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} wird der Dateiname in +% \cs{tud@@headlogo} und das optionale Argument in \cs{tud@@@headlogo} +% gespeichert, damit diese später über \cs{tud@headlogo} an den Befehl +% \cs{includegraphics} weitergereicht werden können. +% \begin{macrocode} +\newcommand*\headlogo[2][]{% + \tud@ifinpslist{\@nameuse{currentpagestyle}}{\clearpage}{}% + \def\tud@@headlogo{#2}% + \def\tud@@@headlogo{#1}% + \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% +} +\newcommand*\tud@@headlogo{} +\newcommand*\tud@@@headlogo{} +\newcommand*\tud@headlogo{% + \tud@ddc@check% + \ifx\tud@@headlogo\@empty\else% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + \fi% + \ifcase \@tempa\relax\or% + \def\tud@@headlogo{DDC-24}% + \ifstr{\tud@head@color}{HKS41}{\def\tud@@headlogo{DDC-27}}{}% + \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}% + \ifstr{\tud@head@color}{white}{\def\tud@@headlogo{DDC-30}}{}% + \or% + \def\tud@@headlogo{DDC-03}% + \or% + \def\tud@@headlogo{DDC-09}% + \or% + \def\tud@@headlogo{DDC-21}% + \or% + \def\tud@@headlogo{DDC-24}% + \or% + \def\tud@@headlogo{DDC-27}% + \or% + \def\tud@@headlogo{DDC-30}% + \fi% + \ifx\tud@@headlogo\@empty\else% + \settoheight{\tud@dim@logoheight}{\tud@mainlogo}% + \pretocmd{\tud@@@headlogo}{height=\tud@dim@logoheight,}% + {}{\tud@patch@wrn{tud@@@headlogo}}% + \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}% + \fi% +} +\newcommand*\tud@headlogo@wrn{% + \ClassWarning{\tudcls@name}{% + The secondary logo given with `\string\headlogo' is\MessageBreak% + overwritten with DDC logo. Maybe you should use\MessageBreak% + `ddcfoot' or better `ddc' instead of `ddchead'% + }% + \global\let\tud@headlogo@wrn\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@headlogo@wrn +% \end{macro}^^A \tud@@@headlogo +% \end{macro}^^A \tud@@headlogo +% \end{macro}^^A \tud@headlogo +% \end{macro}^^A \headlogo +% \begin{macro}{\tud@ddc@sethead} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% Dieser Befehl wurde mit der \TUDScript-Version~v2.02 entfernt. +% \end{macro}^^A \tud@ddc@sethead +% \begin{macro}{\tud@footlogo} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{macro}{\tud@@footlogo} +% \changes{v2.02}{2014/06/23}{neu, \cs{tud@foot@logo} umbenannt}%^^A +% Diese Befehle dienen zum Einbinden des \DDC-Logos im Fuß der Seiten im Stil +% \pgs{tudheadings}. +% \begin{macrocode} +\newcommand*\tud@@footlogo{} +\newcommand*\tud@footlogo{% + \tud@ddc@check% + \ifcase \@tempb\relax\or% + \def\tud@@footlogo{DDC-22}% + \ifstr{\tud@head@color}{HKS41}{\def\tud@@footlogo{DDC-25}}{}% + \ifstr{\tud@head@color}{cddarkblue}{\def\tud@@footlogo{DDC-25}}{}% + \ifstr{\tud@head@color}{white}{\def\tud@@footlogo{DDC-28}}{}% + \or% + \def\tud@@footlogo{DDC-01}% + \or% + \def\tud@@footlogo{DDC-07}% + \or% + \def\tud@@footlogo{DDC-19}% + \or% + \def\tud@@footlogo{DDC-22}% + \or% + \def\tud@@footlogo{DDC-25}% + \or% + \def\tud@@footlogo{DDC-28}% + \fi% + \ifx\tud@@footlogo\@empty\else% + \includegraphics[height=\tud@dim@ddcfoot]{\tud@@footlogo}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@@footlogo +% \end{macro}^^A \tud@footlogo +% \begin{macro}{\tud@ddc@setfoot} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% Dieser Befehl wurde mit der \TUDScript-Version~v2.02 entfernt. +% \end{macro}^^A \tud@ddc@setfoot +% +% \iffalse +%</class&body> +%<*class&option> +% \fi +% +% \begin{option}{cdfoot} +% \begin{macro}{\if@tud@cdfoot} +% \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. +% \begin{macrocode} +\newif\if@tud@cdfoot +\TUD@key{cdfoot}[true]{% + \TUD@set@ifkey{cdfoot}{@tud@cdfoot}{#1}% +% \end{macrocode} +% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@store} +% gesichert, um gegebenenfalls zurückschalten zu können. Anschließend werden +% diese mit dem neuen Stil überschrieben. +% \begin{macrocode} + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@atdocument% + \if@tud@cdfoot% + \tud@ps@store{headings}% + \tud@ps@store{plain}% + \tud@font@koma@set{pageheadfoot}{\upshape}% + \clearpairofpagestyles% + \ofoot[\pagemark]{% + \if@twoside\ifodd\value{page}\else\pagemark\quad\fi\fi% + {\footnotesize\headmark}% + \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% + }% +% \end{macrocode} +% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore} +% wiederhergestellt. +% \begin{macrocode} + \else% + \tud@ps@restore{headings}% + \tud@ps@restore{plain}% + \tud@font@koma@unset{pageheadfoot}% + \fi% + \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]{% + \ifcsdef{@@tud@ps@#1@#2@#3@#4}{}{% + \csletcs{@@tud@ps@#1@#2@#3@#4}{sls@ps@\@nameuse{sls@current#1}@#2@#3@#4}% + }% +} +\newcommand*\tud@ps@restore[1]{% + \tud@@ps@restore{#1}{odd}{left}{head}{}% + \tud@@ps@restore{#1}{odd}{right}{head}{}% + \tud@@ps@restore{#1}{odd}{middle}{head}{}% + \tud@@ps@restore{#1}{even}{left}{head}{}% + \tud@@ps@restore{#1}{even}{right}{head}{}% + \tud@@ps@restore{#1}{even}{middle}{head}{}% + \tud@@ps@restore{#1}{odd}{left}{foot}{}% + \tud@@ps@restore{#1}{odd}{right}{foot}{}% + \tud@@ps@restore{#1}{odd}{middle}{foot}{}% + \tud@@ps@restore{#1}{even}{left}{foot}{}% + \tud@@ps@restore{#1}{even}{right}{foot}{}% + \tud@@ps@restore{#1}{even}{middle}{foot}{}% +} +\newcommand*\tud@@ps@restore[4]{% + \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% + \csletcs{sls@ps@\@nameuse{sls@current#1}@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% + \csundef{@@tud@ps@#1@#2@#3@#4}% + }% +} +% \end{macrocode} +% Damit die Einstellungen aus der Präambel übernommen werden, wird die Option +% ggf. zu Beginn mit \cs{AtBeginDocument} aufgerufen. +% \begin{macrocode} +\AtBeginDocument{\if@tud@cdfoot\TUDoptions{cdfoot=true}\fi} +% \end{macrocode} +% \end{macro}^^A \tud@@ps@restore +% \end{macro}^^A \tud@ps@restore +% \end{macro}^^A \tud@@ps@store +% \end{macro}^^A \tud@ps@store +% \end{macro}^^A \if@tud@cdfoot +% \end{option}^^A cdfoot +% \begin{macro}{\tud@ps@headings} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \begin{macro}{\tud@ps@myheadings} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \begin{macro}{\tud@ps@plain} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% Diese Befehle wurden bei der Umstellung auf das Paket~\pkg{scrlayer-scrpage} +% mit der \TUDScript-Version~v2.02 allesamt entfernt. Die Funktionalität wird +% seitdem durch die \pgs{tudheadings}-Seitenstile bereitgestellt. +% \end{macro}^^A \tud@ps@plain +% \end{macro}^^A \tud@ps@myheadings +% \end{macro}^^A \tud@ps@headings +% \begin{option}{geometry} +% \begin{macro}{\tud@geometry} +% \begin{macro}{\if@tud@geometry@locked} +% Für das \CD sind standardmäßig feste Seitenränder vorgegeben. Diese sind +% jedoch leider nur aus gestalterischen Motiven und ohne die Beachtung +% typographischer Belange gewählt und festgelegt worden. Beispielweise ist ein +% doppelseitiger Satz einer Abschlussarbeit im \CD nur mit einem grauenhaften +% Satzspiegel möglich. Um dem Anwender einen gewissen Spielraum zu geben, wird +% alternativ zum asymmetrischen (\opt{geomery=on}) ein symmetrischer +% Satzspiegel bereitgestellt (\opt{geomery=normal}), welcher bei einseitigem +% Satz zentriert ist und bei zweiseitigem Satz den inneren Rand kleiner setzt +% als den äußeren. Des Weiteren kann die Satzspiegelberechnung auch direkt +% durch \pkg{typearea} aus dem \KOMAScript"=Paket erfolgen +% (\opt{geomery=no}). Mit \cs{tud@geometry@process} werden alle getroffenen +% Satzspiegeloptionen umgesetzt und nachfolgend definiert. +% \begin{macrocode} +\newcommand*\tud@geometry{0} +\TUD@key@lock{geometry}[true]{% + \TUD@set@numkey@lock{geometry}{tud@geometry}{% + \TUD@numkey@bool,% + {typearea}{0},% + {tud}{1},{asymmetric}{1},{cd}{1},% + {symmetric}{2},{centred}{2},{centered}{2},% + {twoside}{3},{balanced}{3}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@atdocument\recalctypearea\fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@geometry@locked +% \end{macro}^^A \tud@geometry +% \end{option}^^A geometry +% +% \iffalse +%</class&option> +%<*class&body> +% \fi +% +% \begin{length}{\tud@ta@textheight} +% \begin{length}{\tud@ta@topmargin} +% \begin{length}{\tud@ta@headheight} +% \begin{length}{\tud@ta@headsep} +% \begin{length}{\tud@ta@footskip} +% Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten +% Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom +% Satzspiegel abhängigen Seitenlayouts zu erstelen. +% \begin{macrocode} +\newlength{\tud@ta@textheight} +\newlength{\tud@ta@topmargin} +\newlength{\tud@ta@headheight} +\newlength{\tud@ta@headsep} +\newlength{\tud@ta@footskip} +% \end{macrocode} +% \end{length}^^A \tud@ta@footskip +% \end{length}^^A \tud@ta@headsep +% \end{length}^^A \tud@ta@headheight +% \end{length}^^A \tud@ta@topmargin +% \end{length}^^A \tud@ta@textheight +% \begin{length}{\tud@ta@headdiff} +% \begin{length}{\tud@ta@footdiff} +% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% Eine Länge für den Ausgleich zwischen normalem und benötigtem Satzspiegel für +% das spezielle Layout des \CDs. Die Differenz zwischen den unterschiedlichen +% Kopfhöhen der Satzspiegelvarianten wird bei der Ausführung von +% \cs{tud@geometry@process} berechnet und in \cs{tud@ta@headdiff} gespeichert. +% Dabei muss unterschieden werden, ober der Satzspiegel genutzt wird, der durch +% das \CD vorgegeben ist oder der durch \pkg{typearea} berechnete. Die Länge +% \cs{tud@ta@footdiff} wurde mit der \TUDScript-Version~v2.02 entfernt. +% \begin{macrocode} +\newlength{\tud@ta@headdiff} +% \end{macrocode} +% \end{length}^^A \tud@ta@footdiff +% \end{length}^^A \tud@ta@headdiff +% \begin{macro}{\tud@geometry@restore} +% \changes{v2.02}{2014/06/27}{neu}%^^A +% Der Befehl \cs{AfterCalculatingTypearea} wird durch das Paket \pkg{typearea} +% bereitgestellt. Die durch \pkg{typearea} berechneten Längenwerte für den +% Satzspiegel werden zur Weiterverarbeitung gesichert. Für die Erstellung des +% Satzspiegels wird das Paket \pkg{geometry} verwendet. Bei der entsprechenden +% Option (\opt{geometry=no}) wird jedoch der von \pkg{typearea} berechnete +% Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich, +% unabhängig vom genutzten Paket\footnote{\pkg{typearea} oder \pkg{geometry}} +% zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern. +% Damit auch Änderungen an der Papiergröße möglich sind, muss ein einzelnes +% Makro (\cs{Gm@restore@org}) aus \pkg{geometry} temporär deaktiviert werden. +% \begin{macrocode} +\newcommand*\tud@geometry@restore{} +\AfterCalculatingTypearea{% + \setlength{\tud@ta@textheight}{\textheight}% + \setlength{\tud@ta@topmargin}{\topmargin}% + \setlength{\tud@ta@headheight}{\headheight}% + \setlength{\tud@ta@headsep}{\headsep}% + \setlength{\tud@ta@footskip}{\footskip}% + \let\tud@geometry@restore\Gm@restore@org% + \if@atdocument% + \let\Gm@restore@org\relax% + \tud@geometry@process% +% \end{macrocode} +% Damit Änderungen am Satzspiegel im Dokument sicher übernommen werden, wird +% das Setzen des Satzspiegels forciert. Dafür wird \cs{tud@currentgeometry} +% zurückgesetzt und anschließend der aktuelle Seitenstil erneut geladen, um das +% erneute und korrekte Ausführen von \cs{tud@beforepagestyle} zu erzwingen. +% \begin{macrocode} + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + \fi% + \let\Gm@restore@org\tud@geometry@restore% +} +% \end{macrocode} +% \end{macro}^^A \tud@geometry@restore +% \begin{macro}{\tud@geometry@hmargin} +% \begin{macro}{\tud@geometry@vmargin} +% \begin{macro}{\tud@geometry@pmargin} +% \begin{macro}{\tud@geometry@dmargin} +% Dies sind Hilfsmakros zur Definition unterschiedicher Seitenlayouts +% (horizontale und vertikale Ränder). Es handelt sich dabei um die Definition +% der horizontalen und vertikalen Seitenränder sowie die angepassten vertikalen +% Einstellungen für die Seitenstilvarianten mit TUD-Kopf und/oder \DDC-Fuß. +% Gesetzt werden diese in Abhängigkeit von der Option \opt{geometry} im +% Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}. +% \begin{macrocode} +\newcommand*\tud@geometry@hmargin{} +\newcommand*\tud@geometry@vmargin{} +\newcommand*\tud@geometry@pmargin{} +\newcommand*\tud@geometry@dmargin{} +% \end{macrocode} +% \end{macro}^^A \tud@geometry@dmargin +% \end{macro}^^A \tud@geometry@pmargin +% \end{macro}^^A \tud@geometry@vmargin +% \end{macro}^^A \tud@geometry@hmargin +% \changes{v2.02}{2014/06/29}{Verzögertes Laden von \pkg{geometry}}%^^A +% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und +% der Seitenränder, wie es vom \CD der TU~Dresden verlangt wird. Damit dieses +% alle Satzspiegeleinstellungen korrekt vornimmt und auch alle Klassenoptionen +% korrekt verarbeitet, wird das Laden mit \cs{AtEndPreamble} bis ans Ende der +% Präambel verzögert und vorher der Satzspiegel neu berechnet. Anschließend +% erstellt \cs{tud@geometry@process} alle benötigten Satzspiegel. Durch das +% Setzen des Seitenstils wird der richtige Satzspiegel ausgewählt. Dies +% geschieht \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option +% \opt{crop} geladen wurde, um die Seitenränder nicht zu ändern. +% \begin{macrocode} +\AtEndPreamble{% + \tud@ifsacrop{}{% + \recalctypearea% + \RequirePackage{geometry}[2010/09/12]% + \tud@geometry@process% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }% +} +% \end{macrocode} +% \begin{macro}{\tud@geometry@process} +% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A +% \begin{macro}{\tud@geometry@@process} +% Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten +% Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der +% Kopf- und/oder Fußzeile. Um mehrere Satzspiegel verwenden zu können~-- was +% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das +% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung +% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry} +% weitergereicht. +% Es werden drei Layouts erstellt: normaler Satzspiegel, nur TUD-Kopf sowie +% TUD-Kopf und "~Fuß und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann +% innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer +% sowie ggf. untere Seitenrand geändert werden. +% \begin{macrocode} +\newcommand*\tud@geometry@process{% +% \end{macrocode} +% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt. +% \begin{macrocode} + \tud@geometry@set% +% \end{macrocode} +% Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden +% die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht. +% Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros +% für die Erstellung der \pkg{geometry}-Satzspiegel übergeben. +% \begin{macrocode} + \ifcase \tud@geometry\relax% + \def\tud@geometry@hmargin{% + left=\dimexpr\oddsidemargin+1in\relax,% + width=\textwidth,% + }% + \def\tud@geometry@vmargin{% + top={% + \dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep+1in\relax% + },% + headheight=\tud@ta@headheight,% + headsep=\tud@ta@headsep,% + textheight=\tud@ta@textheight,% + footskip=\tud@ta@footskip,% + }% + \def\tud@geometry@pmargin{% + top={% + \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax% + },% + headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax,% + headsep=\tud@dim@headsep,% + textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,% + footskip=\tud@ta@footskip,% + }% + \def\tud@geometry@dmargin{% + textheight={% + \dimexpr\tud@ta@textheight-\tud@ta@headdiff-\tud@dim@ddcdiff\relax% + },% + footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,% + }% +% \end{macrocode} +% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile +% für den \pkg{typearea}-Satzspiegel berechnet. +% \begin{macrocode} + \setlength{\tud@ta@headdiff}{\dimexpr% + \tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep% + -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% + }% + \setlength{\tud@dim@ddcdiff}{\dimexpr% + \tud@dim@ddcfoot-\tud@ta@footskip+\tud@dim@footskip\relax% + }% +% \end{macrocode} +% Sollte der \pkg{typearea}-Satzspiegel noch unterhalb des TUD-Kopfes liegen, +% wird der Abstand zum Kopf vergrößert. +% \begin{macrocode} + \ifdim\tud@ta@headdiff<\z@\relax% + \addtolength{\tud@dim@headsep}{-\tud@ta@headdiff}% + \fi% +% \end{macrocode} +% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische +% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz. +% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die +% unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil. +% \begin{macrocode} + \else% + \ifcase \tud@geometry\or% + \def\tud@geometry@hmargin{% + left=\tud@dim@left,% + textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + bindingoffset=\ta@bcor,% + \if@twoside asymmetric,\fi% + }% +% \end{macrocode} +% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl +% im einseitigen als auch im zweiseitgigen Satz symmetrisch. +% \begin{macrocode} + \or% + \def\tud@geometry@hmargin{% + left=.5\tud@dim@both,% + textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + bindingoffset=\ta@bcor,% + }% +% \end{macrocode} +% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist +% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite +% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende +% TUD-Logo geachtet werden muss. +% \begin{macrocode} + \or% + \def\tud@geometry@hmargin{% + \if@twoside% + left=.4\tud@dim@both,% + twoside,% + \else% + left=.5\tud@dim@both,% + \fi% + textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + bindingoffset=\ta@bcor,% + }% + \fi% +% \end{macrocode} +% Für alle drei Varianten der vertikale Gleichanteil. +% \begin{macrocode} + \def\tud@geometry@vmargin{% + top=\tud@dim@top,% + headheight=\tud@ta@headheight,% + headsep=\tud@dim@headsep,% + bottom=\tud@dim@bottom,% + footskip=\tud@dim@footskip,% + \tud@geometry@hincl,% + \tud@geometry@fincl,% + }% + \def\tud@geometry@pmargin{% + top={% + \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax% + },% + headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax,% + headsep=\tud@dim@headsep,% + bottom=\tud@dim@bottom,% + footskip=\tud@dim@footskip,% + }% +% \end{macrocode} +% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß +% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt. +% \begin{macrocode} + \def\tud@geometry@dmargin{% + \if@fincl% + bottom=\dimexpr% + \tud@dim@bottom+\tud@dim@ddcfoot+\tud@dim@footskip\relax,% + \else% + bottom=\dimexpr\tud@dim@bottom+\tud@dim@ddcfoot\relax,% + \fi% + footskip=\dimexpr\tud@dim@footskip+\tud@dim@ddcfoot\relax,% + }% +% \end{macrocode} +% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile +% für den Satzspiegel des \CDs berechnet. +% \begin{macrocode} + \setlength{\tud@ta@headdiff}{% + \dimexpr\tud@dim@headheight+\tud@dim@barheight% + +\tud@dim@headsep-\tud@dim@top\relax% + }% + \setlength{\tud@dim@ddcdiff}{\dimexpr% + \tud@dim@ddcfoot+2\tud@dim@footskip-\tud@dim@bottom\relax% + }% + \fi% +% \end{macrocode} +% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile +% für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige +% vertikale Verschiebung der Überschriften festgelegt. +% \begin{macrocode} + \ifdim\tud@ta@headdiff<\z@\relax\setlength{\tud@ta@headdiff}{\z@}\fi% + \global\tud@ta@headdiff=\tud@ta@headdiff% + \ifdim\tud@dim@ddcdiff<\z@\relax\setlength{\tud@dim@ddcdiff}{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + \setlength{\tud@dim@headingsvskip}{.6\tud@dim@headheight}% + \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% +% \end{macrocode} +% Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten +% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu +% erstellen. +% \begin{macrocode} + \tud@geometry@@process% +} +% \end{macrocode} +% Der Befehl \cs{tud@geometry@@process} setzt mit den zuvor definierten +% Hilfsmakros die \pkg{geometry}"=Optionen für sowohl die seitlichen als auch +% die oberen sowie unteren Seitenränder und inkludiert ggf. Kopf- und Fußzeile +% in den Satzspiegel. Die unterschiedlichen Layouts sind dabei \opt{tudddc} für +% TUD-Kopf und \DDC-Fuß, \opt{tudpage} für den alleinigen TUD-Kopf sowie +% \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten +% Satzspiegel. +% \begin{macrocode} +\newcommand*\tud@geometry@@process{% +% \end{macrocode} +% Als erstes wird der Satzspiegel für TUD-Kopf und \DDC-Fuß erstellt. Das +% Einbeziehen der Fußzeile in den Satzspiegel erfolgt ggf. manuell bei der +% Definition von \cs{tud@geometry@dmargin}. +% \begin{macrocode} + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@pmargin,% + \tud@geometry@dmargin,% + ignorehead,ignorefoot,% + }% + \expandafter\newgeometry\expandafter{\@tempa}% + \savegeometry{tudareaddc}% +% \end{macrocode} +% Danach folgt der Seitenstil, welcher zwar den TUD-Kopf aber lediglich die +% Standardfußzeile hat. +% \begin{macrocode} + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@pmargin,% + ignorehead,% + \tud@geometry@fincl% + }% + \expandafter\newgeometry\expandafter{\@tempa}% + \savegeometry{tudarea}% +% \end{macrocode} +% Der Standardsatzspiegel wird erstellt. +% \begin{macrocode} + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin,% + }% + \expandafter\newgeometry\expandafter{\@tempa}% + \savegeometry{typearea}% +} +% \end{macrocode} +% \end{macro}^^A \tud@geometry@@process +% \end{macro}^^A \tud@geometry@process +% \begin{macro}{\tud@geometry@hincl} +% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A +% \begin{macro}{\tud@geometry@fincl} +% Diese beiden Hilfsmakro werten die Optionen für das Einbeziehen von Kopf- und +% Fußzeile aus. +% \begin{macrocode} +\newcommand*\tud@geometry@hincl{% + \if@hincl% + includehead,% + \else% + ignorehead,% + \fi% +} +\newcommand*\tud@geometry@fincl{% + \if@fincl% + includefoot,% + \else% + ignorefoot,% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@geometry@fincl +% \end{macro}^^A \tud@geometry@hincl +% \begin{environment}{tudpage} +% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}%^^A +% \begin{macro}{\tud@ps} +% \begin{macro}{\tud@ps@select} +% \changes{v2.02}{2014/07/19}{neu}%^^A +% \begin{macro}{\tud@currentpagestyle} +% \begin{macro}{\tud@currentpagestyle@set} +% \changes{v2.02}{2014/07/18}{neu}%^^A +% \begin{macro}{\tud@currentpagestyle@reset} +% \changes{v2.02}{2014/07/18}{neu}%^^A +% Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout +% temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern. +% Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}. +% Dabei wird mit \cs{loadgeometry} ein Seitenumbruch erzwungen und der +% benötigte Satzspiegel geladen. +% +% Die Befehle \cs{tud@currentpagestyle@set} und +% \cs{tud@currentpagestyle@reset} sind für die Sicherung und Wiederherstellung +% des vor der Umgebung geladenen Seitenstils verantwortlich. +% +% Zu Beginn der Umgebung werden die weiter unten beschriebenen Optionen für +% diese Umgebung mit \cs{TUD@parameter@set} ausgeführt. Nach dem Beenden der +% Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout +% wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner +% Wert ohne Schlüssel angegben werden. +% \begin{macrocode} +\newcommand*\tud@ps{tudheadings} +\newcommand*\tud@ps@select{% + \expandafter\pagestyle\expandafter{\tud@ps}% +%<*book|report> + \ifstr{\tud@ps}{empty}{\renewcommand*\chapterpagestyle{empty}}{}% + \ifstr{\tud@ps}{empty.tudheadings}{% + \renewcommand*\chapterpagestyle{empty.tudheadings}% + }{}% +%</book|report> +} +\newcommand*\tud@currentpagestyle{} +\newcommand*\tud@currentpagestyle@set{% + \ifdefvoid{\tud@currentpagestyle}{% + \xdef\tud@currentpagestyle{\currentpagestyle}% + }{}% +} +\newcommand*\tud@currentpagestyle@reset{% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% + \let\tud@currentpagestyle\relax% +} +\NewEnviron{tudpage}[1][]{% +% \end{macrocode} +% Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird +% dieser im Hilfsmakro \cs{tud@currentpagestyle} gespeichert. +% \begin{macrocode} + \tud@currentpagestyle@set% + \clearpage\def\tud@ps{tudheadings}% + \TUD@parameter@set[tudpage]{#1}% + \tud@ps@select% + \tud@multicols@check% +% \end{macrocode} +% Falls das \pkg{multicol}-Paket geladen ist und eine Spaltenanzahl angegeben +% ist, wird die entsprechende Umgebung gesartet, mit \cs{BODY} der Inhalt der +% \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die +% \env{multicols}-Umgebung beendet. +% \begin{macrocode} + \ifnum\tud@multicols>1\relax% + \begin{multicols}{\tud@multicols}% + \fi% + \BODY% + \ifnum\tud@multicols>1\relax% + \end{multicols}% + \fi% +% \end{macrocode} +% Am Ende der Umgebung wird der vorhergehende Seitenstil zurückgesetzt und der +% dazugehörige Satzspiegel geladen. Dazu wird die Ausführung das Hilfsmakro +% \cs{@tempa} auf das Beenden der Umgebung mit \cs{aftergroup} verzögert. +% \begin{macrocode} +}[% + \aftergroup\tud@currentpagestyle@reset% + \clearpage% +] +% \end{macrocode} +% \end{macro}^^A \tud@currentpagestyle@reset +% \end{macro}^^A \tud@currentpagestyle@set +% \end{macro}^^A \tud@currentpagestyle +% \end{macro}^^A \tud@ps@select +% \end{macro}^^A \tud@ps +% \end{environment}^^A tudpage +% Im Folgenden werden die einzelnen Parameter für die \env{tudpage}"=Umgebung +% definiert. Mit \cs{TUD@parameter}\marg{Family}\marg{\dots} wird die +% Parameterfamilie festgelegt und anschließend die Definitionen getätigt. +% \begin{macrocode} +\TUD@parameter{tudpage}{% +% \end{macrocode} +% \begin{parameter}{language} +% Mit diesem Parameter kann die Sprache in der Umgebung umgeschaltet werden. Die +% Sprache kann auch ohne den entsprechenden Schlüssel direkt als Parameter +% angegeben werden. +% \begin{macrocode} + \TUD@parameter@define{language}{\selectlanguage{#1}}% +% \end{macrocode} +% \end{parameter} ^^A language +% \begin{parameter}{columns} +% Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für +% mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die +% Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter +% angegeben werden. +% \begin{macrocode} + \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% +% \end{macrocode} +% \end{parameter} ^^A columns +% \begin{parameter}{color} +% \begin{parameter}{colour} +% Die \opt{color}"=Option ändert die Farbe von Schrift, Querbalken und im +% pdf\LaTeX-Modus auch die des TUD-Logos. +% \begin{macrocode} + \TUD@parameter@define{color}[HKS41]{\def\tud@head@color{#1}}% + \TUD@parameter@let{colour}{color}% +% \end{macrocode} +% \end{parameter}^^A colour +% \end{parameter}^^A color +% \begin{parameter}{widehead} +% Die Breite des Querbalkens kann ebenfalls geändert werden. +% \begin{macrocode} + \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% +% \end{macrocode} +% \end{parameter}^^A widehead +% \begin{parameter}{ddc} +% \changes{v2.02}{2014/08/16}{neu}%^^A +% \begin{parameter}{ddchead} +% \begin{parameter}{ddcfoot} +% Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden. +% \begin{macrocode} + \TUD@parameter@define{ddc}[true]{\TUDoption{ddc}{#1}}% + \TUD@parameter@define{ddchead}[true]{\TUDoption{ddchead}{#1}}% + \TUD@parameter@define{ddcfoot}[true]{\TUDoption{ddcfoot}{#1}}% +% \end{macrocode} +% \end{parameter}^^A ddc +% \end{parameter}^^A ddchead +% \end{parameter}^^A ddcfoot +% \begin{parameter}{head} +% \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option +% \opt{ddchead} übernommen}%^^A +% \begin{parameter}{foot} +% \changes{v2.02}{2014/06/30}{entfernt, Funktinalität teilweise durch Option +% \opt{ddcfoot} übernommen}%^^A +% Diese Parameter wurden entfernt. Innerhalb der Umgebung können hierfür +% \cs{TUDoptions} mit den Schlüsseln \opt{ddchead=\dots} und \opt{ddcfoot=\dots} +% sowie \cs{headlogo} bzw. für den Querbalken \opt{widehead=true/false} genutzt +% werden. +% \end{parameter}^^A head +% \end{parameter}^^A foot +% \begin{parameter}{cdfont} +% \begin{parameter}{cdfonts} +% \changes{v2.02}{2014/08/08}{entfernt}^^A +% \begin{parameter}{tudfonts} +% \changes{v2.02}{2014/08/08}{entfernt}^^A +% Die Option \opt{cdfont} bzw. \opt{cdfonts} bestimmt, ob die Schriften des +% \CDs{} oder aber die standarmäßigen Serifenlosen für die Auszeichnugen in der +% Kopfzeile und Serifen im Inhalt verwendet werden. +% \begin{macrocode} + \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% +% \end{macrocode} +% \end{parameter}^^A tudfonts +% \end{parameter}^^A cdfonts +% \end{parameter}^^A cdfont +% \begin{parameter}{barfont} +% \changes{v2.02}{2014/07/08}{neu}%^^A +% Mit der Option \opt{headfont} kann die Verwendung der Schriften des \CDs +% aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. +% \begin{macrocode} + \TUD@parameter@define{barfont}[true]{\TUDoption{barfont}{#1}}% +% \end{macrocode} +% \end{parameter}^^A headfont +% \begin{parameter}{pagestyle} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% Mit diesem Parameter kann der verwendete Seitenstil eingestellt werden, wobei +% entweder \pgs{tudheadings} oder aber\pgs{plain.tudheadings} bzw. +% \pgs{empty.tudheadings} verwendet wird. +% \begin{macrocode} + \TUD@parameter@define{pagestyle}{% + \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% + \ifstr{#1}{empty.tudheadings}{\renewcommand*\tud@ps{empty.tudheadings}}{% + \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% + \ifstr{#1}{plain.tudheadings}{\renewcommand*\tud@ps{plain.tudheadings}}{% + \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% + \ifstr{#1}{tudheadings}{\renewcommand*\tud@ps{tudheadings}}{% + \TUD@parameter@wrn{pagestyle}{% + headings, plain, empty or any tudheadings page style type% + }% + }}}}}}% + }% +% \end{macrocode} +% \end{parameter}^^A pagestyle +% \begin{parameter}{headlogo} +% \begin{parameter}{logo} +% Das sekundäre Logo kann ebenfalls lokal geändert werden. +% \begin{macrocode} + \TUD@parameter@define{headlogo}{\headlogo{#1}}% + \TUD@parameter@let{logo}{headlogo}% +% \end{macrocode} +% \end{parameter}^^A logo +% \end{parameter}^^A headlogo +% Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben +% wird, erfolgt eine Sonderbehandlung durch \cs{tud@environmenthandler}, bei der +% erst auf eine Zahl geprüft wird und anschießend versucht wird, das Argument +% als Sprache zu setzen. Nach der Definition aller Parameter wird der Befehl +% \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie beendet. +% \begin{macrocode} + \TUD@parameter@sethandler{\tud@environmenthandler{#1}}% +} +% \end{macrocode} +% +% \iffalse +%</class&body> +% \fi +% +% \Finale +% +\endinput |