diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx | 1345 |
1 files changed, 1345 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx new file mode 100644 index 00000000000..8a1ea390fac --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx @@ -0,0 +1,1345 @@ +% \CheckSum{901} +% \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-layout.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-layout.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (layout)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-layout.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Das Layout des \CDs} +% +% Für das \CD werden sowohl Teile- als auch die Kapitelseiten neu gestaltet. +% Es werden eine monochrome Version, eine Version mit leichtem Farbeinsatz und +% eine durchweg farbige Version bereitgestellt. Außerdem wird hier das Aussehen +% und die Position der Überschriften festgelegt. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&option> +% \fi +% +% \subsection{Optionen} +% +% \begin{macro}{\tud@head@color} +% Dieses Makro definiert die Farbe des Kopfes. Diese kann durch die +% entsprechende Option der \env{tudpage}"=Umgebung geändert werden. Außerdem +% gibt es für Titel, Teil und Kapitel speziell dazugehörige Farben, so dass +% das Aussehen des Kopfes ggf. angepasst wird. +% \begin{macrocode} +\newcommand*\tud@head@color{black} +% \end{macrocode} +% \end{macro}^^A \tud@head@color +% \begin{option}{cd} +% \begin{macro}{\tud@cd} +% \begin{macro}{\tud@layout@title} +% \begin{macro}{\tud@layout@part} +% \begin{macro}{\tud@layout@chapter} +% Ein zentraler Teil der Wrapper-Klassen ist die Auswahl der Darstellung des +% \CDs. Dabei kann gewählt werden, ob es einfarbig, mit leichtem oder aber mit +% starkem Farbeinsatz genutzt werden soll. Diese Option dient zur globalen +% Einstellung für Titel-, Teil- und Kapitelseiten. Mit dem Schalter werden die +% gleichen Einstellungen für alle drei Komponenten gesetzt. Die Standardfarbe +% des Kopfes der \env{tudpage}"=Seite ist schwarz und wird für die farbigen +% Layouts auf dunkelblau gesetzt. Abhängig von der gewählten Option, die über +% \cs{tud@layout@switch} festgelegt ist, werden die sogenannten Layoutschlüssel +% (\cs{tud@layout@\dots}) auf einen Wert gesetzt (0\dots 3), welcher im +% weiteren Verlauf ausgewertet werden kann. Der Schalter für Kapitel wird +% lediglich für \cls{tudscrbook}- und \cls{tudscrreprt} jedoch nicht für die +% \cls{tudscrartcl}-Klasse definiert und genutzt. Eigentlich werden alle +% Komponenten mit einer zentralen Option festgelegt, können aber auch +% durch den Nutzer explizit überschrieben werden. +% \begin{macrocode} +\newcommand*\tud@cd{0} +\csdef@lock{tud@layout@title}{0} +\csdef@lock{tud@layout@part}{0} +%<*book|report> +\csdef@lock{tud@layout@chapter}{0} +%</book|report> +\TUD@key{cd}[true]{% + \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% + \def\tud@head@color{black}% + \ifcase \tud@cd\relax% + \csstd@lock{tud@layout@title}{0}% + \csstd@lock{tud@layout@part}{0}% +%<*book|report> + \csstd@lock{tud@layout@chapter}{0}% +%</book|report> + \or% + \csstd@lock{tud@layout@title}{1}% + \csstd@lock{tud@layout@part}{1}% +%<*book|report> + \csstd@lock{tud@layout@chapter}{1}% +%</book|report> + \or% + \def\tud@head@color{HKS41}% + \csstd@lock{tud@layout@title}{2}% + \csstd@lock{tud@layout@part}{2}% +%<*book|report> + \csstd@lock{tud@layout@chapter}{2}% +%</book|report> + \or% + \def\tud@head@color{HKS41}% + \csstd@lock{tud@layout@title}{3}% +% \end{macrocode} +% Ein komplett farbiges Layout ist bloß für die Klassen mit Teil- und +% Kapitelseiten (\cls{tudscrbook} und \cls{tudscrreprt}) möglich. Ansonsten +% werden lediglich die Überschriften, jedoch nicht der Seitenhintergrund +% farbig gestaltet. +% \begin{macrocode} +%<*article> + \csstd@lock{tud@layout@part}{2}% +%</article> +%<*book|report> + \csstd@lock{tud@layout@part}{3}% + \csstd@lock{tud@layout@chapter}{3}% +%</book|report> +% \end{macrocode} +% Die Klassenoptionen \opt{chapterpage} und \opt{widehead} werden für den +% Fall der komplett farbigen Darstellung standardmäßig aktiviert +% können allerdings vom Anwender überschrieben werden. +% \begin{macrocode} +%<*book|report> + \TUD@std@ifkey@lock{chapterpage}{true}% + \TUD@std@ifkey@lock{widehead}{true}% +%</book|report> + \fi% +% \end{macrocode} +% Die Ausführung des Befehls \cs{tud@layout@process} sorgt dafür, dass alle +% Optionen auch verarbeitet und wirksam werden. Dieser wird standardmäßig nach +% der Abarbeitung aller Optionen innerhalb der Präambel einmalig ausgeführt. +% Deshalb wird er hier nur innerhalb des Dokumentes genutzt. Dies gilt auch für +% die folgenden Optionen. +% \begin{macrocode} + \if@atdocument% + \tud@layout@process% + \else% +% \end{macrocode} +% Innerhalb der Präambel wird der Satzspiegel abhängig vom gewünschten Layout +% festgelegt. Dies kann vom Benutzer mit dem Setzen der Option \opt{geometry} +% überschrieben werden. +% \begin{macrocode} + \ifcase \tud@cd\relax% + \TUD@std@numkey@lock{geometry}{false}% + \else% + \TUD@std@numkey@lock{geometry}{true}% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@layout@chapter +% \end{macro}^^A \tud@layout@part +% \end{macro}^^A \tud@layout@title +% \end{macro}^^A \if@tud@cd +% \end{option}^^A cd +% \begin{option}{cdtitle} +% Das durch die Option \opt{cd} insgesamt festgelegte Layout kann für die +% einzelnen Elemente Titel (\opt{cdtitle}),\dots +% \begin{macrocode} +\TUD@key{cdtitle}[true]{% + \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% + \ifcase \@tempa\relax% + \csset@lock{tud@layout@title}{0}% + \or% + \csset@lock{tud@layout@title}{1}% + \or% + \csset@lock{tud@layout@title}{2}% + \or% + \csset@lock{tud@layout@title}{3}% + \fi% + \if@atdocument\tud@layout@process\fi% +} +% \end{macrocode} +% \end{option}^^A cdtitle +% \begin{option}{cdpart} +% \dots Teile- (\opt{cdpart}) und\dots +% \begin{macrocode} +\TUD@key{cdpart}[true]{% + \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% + \ifcase \@tempa\relax% + \csset@lock{tud@layout@part}{0}% + \or% + \csset@lock{tud@layout@part}{1}% + \or% + \csset@lock{tud@layout@part}{2}% + \or% +%<*article> + \csset@lock{tud@layout@part}{2}% +%</article> +%<*book|report> + \csset@lock{tud@layout@part}{3}% +%</book|report> + \fi% + \if@atdocument\tud@layout@process\fi% +} +% \end{macrocode} +% \end{option}^^A cdpart +% \begin{option}{cdchapter} +% \dots bei den entsprechenden Klassen (\cls{tudscrbook} und \cls{tudscrreprt}) +% auch für die Kapitelseiten (\opt{cdchapter}) separat für die einzelnen +% Elemente geändert bzw. überschrieben werden. +% \begin{macrocode} +%<*book|report> +\TUD@key{cdchapter}[true]{% + \TUD@std@ifkey@lock{chapterpage}{false}% + \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% + \ifcase \@tempa\relax% + \csset@lock{tud@layout@chapter}{0}% + \or% + \csset@lock{tud@layout@chapter}{1}% + \or% + \csset@lock{tud@layout@chapter}{2}% + \or% + \csset@lock{tud@layout@chapter}{3}% + \TUD@std@ifkey@lock{chapterpage}{true}% + \fi% + \if@atdocument\tud@layout@process\fi% +} +%</book|report> +% \end{macrocode} +% \end{option}^^A cdchapter +% \todo[v3.12]{% +% zusätzl. Schalter, um Layout für part und chapter einzustellen +% (tudpage=on/off) nach Umstellung auf (scrlayer) +% } +% \begin{macro}{\tud@layout@switch} +% Dies sind die Standardoptionen für alle einzelnen Einstellungen des Layouts. +% Es gibt die Varianten monochrom~(1), leichter~(2) und voller Farbeinsatz~(3) +% sowie die Möglichkeit, das \CD vollständig zu deaktivieren (0). +% \begin{macrocode} +\newcommand*\tud@layout@switch{% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {simple}{1},{std}{1},{standard}{1},{mono}{1},{monochrom}{1},% + {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3},% + {color}{3},{colour}{3}% +} +% \end{macrocode} +% \end{macro}^^A \tud@layout@switch +% \begin{option}{color} +% \begin{option}{colour} +% Die alte \cls{tudbook}-Klasse hat die Option \opt{color} definiert, mit +% welcher ein Umschalten auf farbige Titel- und Kapitelseiten möglich ist. Aus +% Kompatibilitätsgründen wird diese hier ebenfalls vorgehalten. +% \begin{macrocode} +\TUD@key{color}[true]{% + \TUD@set@ifkey{color}{@tempswa}{#1}% + \TUD@set@numkey{color}{@tempa}{% + {false}{0},{off}{0},{no}{0},% + {simple}{0},{std}{0},{standard}{0},{mono}{0},{monochrom}{0},% + {true}{1},{on}{1},{yes}{1},{color}{1},{colour}{1},% + {full}{1},{colorfull}{1},{fullcolor}{1},{colourfull}{1},{fullcolour}{1},% + {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {light}{2},{colorlight}{2},{lightcolor}{2},{colorpale}{2},{palecolor}{2},% + {pale}{2},{colourlight}{2},{lightcolour}{2},{colourpale}{2},{palecolour}{2}% + }{#1}% + \ifcase \@tempa\relax% + \TUDoptions{cd}% + \or% + \TUDoptions{cd=color}% + \else% + \TUDoptions{cd=lite}% + \fi% +} +\TUD@key{colour}[true]{\TUDoptions{color=#1}} +% \end{macrocode} +% \end{option}^^A colour +% \end{option}^^A color +% +% \iffalse +%<*book|report> +% \fi +% +% Die nun folgenden Optionen und Befehle werden nur für die \cls{tudscrbook}- +% und \cls{tudscrreprt}-Klasse definiert. +% \begin{option}{parttitle} +% \begin{macro}{\if@tud@parttitle} +% \begin{macro}{\if@tud@parttitle@locked} +% Der Schalter dient zur Steuerung, ob der Titel des Dokumentes wie im Handbuch +% des \CDs auf den Teileseiten stehen soll. +% \begin{macrocode} +\newif\if@tud@parttitle +\TUD@key@lock{parttitle}[true]{% + \TUD@set@ifkey@lock{parttitle}{@tud@parttitle}{#1}% + \if@atdocument\tud@layout@process\fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@parttitle@locked +% \end{macro}^^A \if@tud@parttitle +% \end{option}^^A parttitle +% \begin{option}{chapterpage} +% \begin{macro}{\if@tud@chapterpage} +% \begin{macro}{\if@tud@chapterpage@locked} +% Mit dieser Option können Kapitelüberschriften alleine auf einer Seite stehen. +% Es werden separate Kapitelseiten erzeugt. +% \begin{macrocode} +\newif\if@tud@chapterpage +\TUD@key@lock{chapterpage}[true]{% + \TUD@set@ifkey@lock{chapterpage}{@tud@chapterpage}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@chapterpage@locked +% \end{macro}^^A \if@tud@chapterpage +% \end{option}^^A chapterpage +% \todo[v3.12]{\cs{FamilyElseValue} funktioniert nicht} +% \begin{option}{cleardoublespecialpage} +% \begin{macro}{\tud@cleardoublepage} +% \begin{macro}{\tud@cleardoublespecialpage} +% Für Klassen mit separaten Teileseiten und Kapiteln wird eine zusätzliche +% Option definiert, welche nur bei zweiseitigem Satz (\opt{twoside}) und +% zusätzlich immer auf nur der rechten Seite öffnenden Teilen bzw. Kapiteln +% (\opt{open=right}) zum Tragen kommen. +% +% Diese Option steuert, ob die Rückseite von Titel, Teilen und ggf. auch bei +% separaten Kapitelseiten\footnote{bei aktivierter \opt{chapterpage}"=Option} +% entweder zwingend als leere Seite oder aber ~-- abhängig von der +% \KOMAScript-Option \opt{cleardoublepage}~-- als Vakatseite ausgegeben werden. +% Auch die Festlegung eines bestimmten Seitenstiles ist möglich. +% +% Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden +% Doppelseite. +% \begin{macrocode} +\newcommand*\tud@cleardoublepage{\cleardoubleoddpage} +% \end{macrocode} +% Mit der Option \opt{cleardoublespecialpage} kann dieser festgelegt werden. +% \begin{macrocode} +\TUD@key{cleardoublespecialpage}[true]{% + \tud@lowerstring{\@tempa}{#1}% + \ifstr{\@tempa}{color}{\TUDoptions{clearcolor}}{% + \ifstr{\@tempa}{colour}{\TUDoptions{clearcolor}}{% + \ifstr{\@tempa}{current}{% + \def\tud@cleardoublepage{\cleardoubleoddstandardpage}% + }{% + \ifcsdef{ps@#1}{% + \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% + }{% + \def\FamilyElseValue{% + , 'color', 'current' or any defined pagestyle e.g. 'empty','plain'% + }% + \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}% + \if@tempswa% + \def\tud@cleardoublepage{\cleardoubleoddpage}% + \else% + \def\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% + \fi% + }% + }}}% +} +% \end{macrocode} +% Der Befehl \cs{tud@cleardoublespecialpage} dient zur eigentlichen Umsetzung. +% Das obligatorische Argument enthält alles, was innerhalb der Gruppe an +% lokalen Einstellungen vorgenommen werden soll. Das optionale Argument wird ggf. +% genutzt, um einen Inhalt auf der Rückseite auszugeben. +% \begin{macrocode} +\newcommand*\tud@cleardoublespecialpage[2][]{% + \begingroup% + #2 + \ifboolexpr{bool {@twoside} and bool {@openright}}{% + \if@tud@clearcolor% + \def\@tempa{% + #1% + \tud@cleardoublepage% + \tud@restorepagecolor% + \endgroup% + }% + \else% + \def\@tempa{% + \endgroup% + \tud@restorepagecolor% + #1% + \tud@cleardoublepage% + }% + \fi% + }{% + \if@tud@clearcolor\tud@clearcolor@wrn\fi% + \def\@tempa{% + \tud@restorepagecolor% + \endgroup% + #1% + }% + }% + \@tempa% + \@afterindentfalse\@afterheading% +} +% \end{macrocode} +% \end{macro}^^A \tud@cleardoublespecialpage +% \end{macro}^^A \tud@cleardoublepage +% \end{option}^^A cleardoublespecialpage +% \begin{option}{clearcolor} +% \begin{option}{clearcolour} +% \begin{macro}{\if@tud@clearcolor} +% Bei starkem Farbeinsatz im Stil des \CDs auf Titel- Teil- oder Kapitelseiten +% (\opt{cd\dots=color}) wird die entsprechende Rückseite in der gleichen +% Farbe wie die dazugehörige Vorderseite gestaltet. Für Teile- bzw. +% Kapitelseiten muss die entsprechende Option aktiviert sein.% +% \footnote{\opt{cleardoublespecialpage}} +% \begin{macrocode} +\newif\if@tud@clearcolor +\TUD@ifkey{clearcolor}{@tud@clearcolor} +\TUD@ifkey{clearcolour}{@tud@clearcolor} +% \end{macrocode} +% \end{macro}^^A \if@tud@clearcolor +% \end{option}^^A clearcolour +% \end{option}^^A clearcolor +% Damit endet der exklusive Abschnitt für \cls{tudscrbook}- und +% \cls{tudscrreprt}-Klasse. +% +% \iffalse +%</book|report> +%</class&option> +%<*class&!option> +% \fi +% +% \subsection{Umsetzung des Layouts} +% +% Unter Layout wird die Wahl von Schriftart und "~größe, die Positionierung +% verschiedener Textelemente sowie die farbliche Gestaltung verstanden. Für das +% \CD gibt es dabei drei Ausprägungen, die für die verschiedenen Elemente +% auch unabhängig gewählt werden können. +% \begin{macro}{\tud@color@partfont} +% \begin{macro}{\tud@color@partpage} +% \begin{macro}{\tud@color@parthead} +% \begin{macro}{\tud@color@chapterfont} +% \begin{macro}{\tud@color@chapterpage} +% Die Makros werden für die Hintergrundfarbe der Seiten und die Farbe der +% Überschriften verwendet. +% \begin{macrocode} +\newcommand*\tud@color@partfont{black} +%<*book|report> +\newcommand*\tud@color@partpage{white} +\newcommand*\tud@color@parthead{black} +\newcommand*\tud@color@chapterfont{black} +\newcommand*\tud@color@chapterpage{white} +%</book|report> +% \end{macrocode} +% \end{macro}^^A \tud@color@chapterpage +% \end{macro}^^A \tud@color@chapterfont +% \end{macro}^^A \tud@color@parthead +% \end{macro}^^A \tud@color@partpage +% \end{macro}^^A \tud@color@partfont +% \todo[v3.12]{auf \cs{usesizeofkomafont} umstellen, allerdings schwierig wegen +% des Rumgemoschel mit Kapitelüberschriften (scrlayer)} +% \begin{macro}{\tud@font@heading} +% \begin{macro}{\tud@font@heading@size} +% \begin{macro}{\tud@font@heading@numsize} +% \begin{macro}{\tud@font@part} +% \begin{macro}{\tud@font@part@number} +% \begin{macro}{\tud@font@part@title} +% \begin{macro}{\tud@font@chapter} +% Es werden die zu Beginn der Klasse Größen der notwendigen Schriftelemente, +% welche anhand der gewählten Dokumentschriftgröße definiert wurden, für die +% weitere Verwendung gesichert. Außerdem wird in \cs{tud@font@heading} die +% Schriftart für die Überschriften definiert. Falls die Schriftarten des \CDs +% installiert wurden, wird DIN-Bold verwendet, sonst die Standardüberschriften. +% \begin{macrocode} +\newcommand*\tud@font@heading{\if@tud@din\dinbn\fi\tud@raggedright} +\newcommand*\tud@font@heading@size{} +\newcommand*\tud@font@heading@numsize{} +\let\tud@font@heading@size\size@part% +\let\tud@font@heading@numsize\size@partnumber% +% \end{macrocode} +% Anschließend werden später benötigte Schriftformatierungen erstellt. +% \begin{macrocode} +\newkomafont{tud@heading}{\tud@font@heading\tud@font@heading@size}% +\newcommand*\tud@font@part{\usekomafont{tud@heading}\color{\tud@color@partfont}} +\newcommand*\tud@font@part@number{\tud@font@part\tud@font@heading@numsize} +%<*book|report> +\newcommand*\tud@font@part@title{\tud@font@part\usesizeofkomafont{section}} +\newcommand*\tud@font@chapter{% + \usekomafont{tud@heading}% + \color{\tud@color@chapterfont}% +} +%</book|report> +% \end{macrocode} +% \end{macro}^^A \tud@font@chapter +% \end{macro}^^A \tud@font@part@title +% \end{macro}^^A \tud@font@part@number +% \end{macro}^^A \tud@font@part +% \end{macro}^^A \tud@font@heading@numsize +% \end{macro}^^A \tud@font@heading@size +% \end{macro}^^A \tud@font@heading +% \begin{length}{\chapterheadingvskip} +% \begin{length}{\headingsvskip} +% Mit dieser Länge kann der Anwender die Überschriften von Titel, Teilen und +% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD +% eigentlich vorgegeben ist. Um die zuvor genannten Überschriften überhaupt auf +% dieser Position zu setzen, ist die Länge \cs{tud@dim@headingsvskip} bereits +% auf 30\,mm gesetzt, mit \cs{chapterheadingvskip} kann dies korrigiert werden. +% Die Länge \cs{headingsvskip} existiert nur, um zur Version v1.0 kompatibel +% zu sein. +% \begin{macrocode} +\newlength{\chapterheadingvskip} +\newlength{\headingsvskip} +\let\headingsvskip\chapterheadingvskip +% \end{macrocode} +% \end{length}^^A \headingsvskip +% \end{length}^^A \chapterheadingvskip +% \todo[v3.12]{% +% Einbinden Schriften von titlehead, author, date, publishers und dedication +% } +% \begin{macro}{\tud@layout@process} +% Dieser Befehl kümmert sich darum, dass die gewählten Optionen für den +% Seitenstil auch umgesetzt werden. Dabei wird insbesondere darauf Wert gelegt, +% dass die Optionen auch zur Laufzeit geändert und wiederhergestellt werden +% können. +% \begin{macrocode} +\newcommand*\tud@layout@process{% +% \end{macrocode} +% Die Einstellungen für den Titel. Vor dessen Umstellung werden die relevanten +% Originalbefehle mit \cs{tud@cmd@store}\marg{Befehl} gesichert, damit diese +% später gegebenenfalls mit \cs{tud@cmd@restore}\marg{Befehl} wiederhergestellt +% werden können. +% \begin{macrocode} + \ifcase \tud@layout@title\relax% + \tud@cmd@restore{maketitle}% + \tud@cmd@restore{@maketitle}% + \tud@font@koma@reset{title}% + \tud@font@koma@reset{subtitle}% + \tud@font@koma@reset{subject}% + \else% + \tud@cmd@store{maketitle}% + \tud@cmd@store{@maketitle}% + \tud@font@koma@set{title}{% + \usekomafont{tud@heading}% + \color{\tud@color@titlefont}% + }% + \tud@font@koma@set{subtitle}{% + \tud@font@heading% + \usesizeofkomafont{section}% + \color{\tud@color@titlefont}% + }% + \tud@font@koma@set{subject}{\color{\tud@color@titlefont}\sffamily}% + \let\maketitle\tud@maketitle% + \fi% +% \end{macrocode} +% Das gleiche für die Teileseiten. +% \begin{macrocode} + \ifcase \tud@layout@part\relax% + \tud@cmd@restore{partheadstartvskip}% + \tud@cmd@restore{partheadmidvskip}% +%<*book|report> + \tud@cmd@restore{partheadendvskip}% + \tud@cmd@restore{partheademptypage}% + \tud@cmd@restore{partpagestyle}% +%</book|report> + \tud@cmd@restore{@part}% +%<*book|report> + \tud@cmd@restore{@spart}% +%</book|report> + \tud@sectioning@reset[addpart]{part}% + \tud@font@koma@reset{partnumber}% +% \end{macrocode} +% Es werden die Standardbefehle gesichert und für das \CD angepasst. +% \begin{macrocode} + \else% + \tud@cmd@store{partheadstartvskip}% + \tud@cmd@store{partheadmidvskip}% +%<*book|report> + \tud@cmd@store{partheadendvskip}% + \tud@cmd@store{partheademptypage}% + \tud@cmd@store{partpagestyle}% +%</book|report> + \tud@cmd@store{@part}% +%<*book|report> + \tud@cmd@store{@spart}% +%</book|report> +% \end{macrocode} +% Es wird die Schriftfarbe, "~größe und "~art angepasst, je nachdem ob der +% Titel des Dokumentes auf den Teileseiten auftauchen soll oder eben nicht. +% \begin{macrocode} +%<*book|report> + \if@tud@parttitle% + \tud@sectioning@set[addpart]{part}{\tud@font@part@title}% + \tud@font@koma@set{partnumber}{\tud@font@part@title}% + \renewcommand*\partheadmidvskip{\enskip}% + \else% + \tud@sectioning@set[addpart]{part}{\tud@font@part}% + \tud@font@koma@set{partnumber}{\tud@font@part@number}% + \renewcommand*\partheadmidvskip{% + \par\nobreak\vspace{.5\baselineskip}% + }% + \fi% +%</book|report> +% \end{macrocode} +% Für die Artikel-Klasse gibt es die \opt{parttitle}-Option nicht. +% \begin{macrocode} +%<*article> + \tud@sectioning@set[addpart]{part}{\tud@font@part}% + \tud@font@koma@set{partnumber}{\tud@font@part@number}% + \renewcommand*\partheadmidvskip{\vskip.3\baselineskip}% +%</article> +% \end{macrocode} +% Einigen Makros werden mittels \cs{let} Definitionen von anderen Makros +% zugewiesen, die sich wiederum am Original orientieren. Hintergrund ist, dass +% die originalen Befehle angepasst werden sollen. Damit dies nicht bei jeder +% Optionswahl sondern nur einmalig geschehen muss und um möglichst einfach auf +% die Originaldefinition zurückschalten zu können, wird so verfahren. Die +% angepassten Befehle selbst und die dazugehörige Beschreibung sind etwas +% weiter unten im Quelltext zu finden. +% \begin{macrocode} + \let\partheadstartvskip\tud@partheadstartvskip% + \let\@part\tud@@part% +%<*book|report> + \let\@spart\tud@@spart% +%</book|report> +% \end{macrocode} +% Nachdem die Schriften in Gestalt und Position angepasst wurden, wird jetzt +% das Layout für die Teileseiten festgelegt. Es wird der Satzspiegel und der +% Seitenstil angepasst, die Seitenfarbe gesetzt sowie die Schrift für Kopf und +% Seitenzahl verändert. Die Änderungen sollen dabei lokal bleiben, wofür das +% obligatorische Argument des Befehls \cs{tud@cleardoublespecialpage} verwendet +% wird. Damit wird abhängig von den Einstellungen für \opt{clearcolor} und +% \opt{cleardoublespecialpage} die Rückseite farbig und in einem bestimmten +% Seitenstil gesetzt. +% \todo[v3.12]{partpagestyle und scrlayer, siehe \cs{tud@layout@switch}} +% \begin{macrocode} +%<*book|report> + \renewcommand*\partheadendvskip{% + \tud@cleardoublespecialpage{% + \tud@pagecolor{\tud@color@partpage}% + \def\tud@head@color{\tud@color@parthead}% + \addtokomafont{pagenumber}{\sffamily\color{\tud@color@partfont}}% + \begingroup% + \let\ps@empty\ps@tudpage@empty% + \let\ps@plain\ps@tudpage@plain% + \clearpage% + \endgroup% + } + \loadgeometry{tudarea}% + }% + \renewcommand*\partheademptypage{}% +%</book|report> + \fi% +% \end{macrocode} +% Die Einstellungen für die Kapitel bzw. die folgenden Gliederungsebenen. Auch +% hier werden alle relevanten Befehle gesichert, damit diese wiederhergestellt +% werden können. Verständlicherweise fällt für die \cls{tudscrartcl}-Klasse +% der Anteil für die Kapitel weg. Das Verhalten der nachgelagerten +% Gliederungsebenen orientiert für diese Klasse an den Einstellungen für die +% Teileseiten. +% \begin{macrocode} +%<*article> + \ifcase \tud@layout@part\relax% +%</article> +%<*book|report> + \ifcase \tud@layout@chapter\relax% + \tud@cmd@restore{chapterheadstartvskip}% + \tud@cmd@restore{chapterformat}% + \tud@cmd@restore{@chapter}% + \tud@cmd@restore{@schapter}% + \tud@cmd@restore{@@makechapterhead}% + \tud@cmd@restore{set@@@@preamble}% + \tud@sectioning@reset[addchap]{chapter}% + \tud@font@koma@reset{chapterprefix}% +%</book|report> + \tud@sectioning@reset[addsec]{section}% + \tud@sectioning@reset{subsection}% + \tud@sectioning@reset{subsubsection}% + \tud@sectioning@reset{minisec}% +% \end{macrocode} +% Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der +% Optionen gesichert und anschließend geändert. +% \begin{macrocode} + \else% +%<*book|report> + \tud@cmd@store{chapterheadstartvskip}% + \tud@cmd@store{chapterformat}% + \tud@cmd@store{@chapter}% + \tud@cmd@store{@schapter}% + \tud@cmd@store{@@makechapterhead}% + \tud@cmd@store{set@@@@preamble}% + \tud@sectioning@set[addchap]{chapter}{\tud@font@chapter}% + \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% +%</book|report> + \tud@sectioning@set[addsec]{section}{\tud@font@heading}% + \tud@sectioning@set{subsection}{\tud@font@heading}% + \tud@sectioning@set{subsubsection}{\tud@font@heading}% + \tud@sectioning@set{minisec}{\tud@font@heading}% +% \end{macrocode} +% \cs{chapterheadstartvskip} wird für die Position der Kapitelüberschriften im +% \CD angepasst. Mit der Länge \cs{chapterheadingvskip} kann diese Position +% vertikal durch den Benutzer verschoben werden. Außerdem werden die benötigten +% Farben für die jeweilig gewählte Option ausgewählt. +% \begin{macrocode} +%<*book|report> + \renewcommand*\chapterheadstartvskip{% + \def\tud@color@chapterpage{white}% + \def\tud@color@chapterfont{black}% + \ifcase \tud@layout@chapter\relax\or\or% + \def\tud@color@chapterpage{white}% + \def\tud@color@chapterfont{HKS41}% + \or% + \def\tud@color@chapterpage{HKS41!10}% + \def\tud@color@chapterfont{HKS41}% + \fi% + \vspace*{\dimexpr\tud@ta@headdiff+\tud@dim@headingsvskip}% + \if@tud@chapterpage\else\vspace*{\chapterheadingvskip}\fi% + }% +% \end{macrocode} +% Und wieder erfolgt die Zuweisung der angepassten Befehle über \cs{let}. +% \begin{macrocode} + \let\@@makechapterhead\tud@@@makechapterhead% + \let\set@@@@preamble\tud@set@@@@preamble% +%</book|report> + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@layout@process +% \begin{macro}{\tud@partheadstartvskip} +% Dieses Makro ersetzt den Standardbefehl \cs{partheadstartvskip} für die +% CD-Teilseiten. Damit lassen sich insbesondere die Farbanpassungen für alle +% Klassen sowie die Option \opt{parttitle} für \cls{tudscrreprt}- und +% \cls{tudscrbook}-Klasse einfach realisieren und gleichzeitig das +% Zurückschalten auf das Standardverhalten gewährleisten. +% +% Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand +% beibehalten und lediglich die Farbanpassung hinzugefügt. +% \begin{macrocode} +%<*article> +\newcommand*\tud@partheadstartvskip{} +\let\tud@partheadstartvskip\partheadstartvskip% +\pretocmd{\tud@partheadstartvskip}{% + \def\tud@color@partfont{black}% + \ifcase \tud@layout@part\relax\or\or% + \def\tud@color@partfont{HKS41}% + \fi% +}{}{\tud@patch@wrn{tud@partheadstartvskip}} +%</article> +% \end{macrocode} +% Für \cls{tudscrreprt}- und \cls{tudscrbook}-Klasse werden die Farben gesetzt +% und die vertikalen Abstände neu definiert. +% \todo[v3.12]{% +% für part und chapter mehrere layer für ddc definieren, Satzspiegel abhängig +% von \cs{tud@ddc@foot} entweder tudpage oder tudddc +% } +% \begin{macrocode} +%<*book|report> +\newcommand*\tud@partheadstartvskip{% + \def\tud@color@partfont{black}% + \def\tud@color@partpage{white}% + \def\tud@color@parthead{black}% + \ifcase \tud@layout@part\relax\or\or% + \def\tud@color@partfont{HKS41}% + \def\tud@color@partpage{white}% + \def\tud@color@parthead{HKS41}% + \or% + \def\tud@color@partpage{HKS41}% + \def\tud@color@partfont{HKS41!30}% + \def\tud@color@parthead{white}% + \fi% + \loadgeometry{tudpage}% + \begingroup% + \vspace*{\dimexpr\tud@dim@headingsvskip+\parskip}% + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% +% \end{macrocode} +% Sollte die \opt{parttitle}-Option aktiviert sein, so wird der Titel des +% Dokumentes statt des Teiletitels mit \cs{tud@parttitle} auf die Seite +% gesetzt. +% \begin{macrocode} + \if@tud@parttitle% + \tud@parttitle% + \else% + \usesizeofkomafont{partnumber}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-.5\baselineskip}% + \fi% + \endgroup% +} +%</book|report> +% \end{macrocode} +% \end{macro}^^A \tud@partheadstartvskip +% +% \iffalse +%<*book|report> +% \fi +% +% \begin{macro}{\tud@parttitle} +% Der Befehl \cs{tud@parttitle} wird für die Option \opt{parttitle} +% definiert. Dieser setzt den Titel in Majuskeln auf jeder Teilseite. +% \begin{macrocode} +\newcommand*\tud@parttitle{% + \begingroup% + \usekomafont{tud@heading}% + \color{\tud@color@partfont}% + \tud@makeuppercase{\expandonce{\@@title}}% + \par\nobreak\vskip .5\baselineskip% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@parttitle +% +% \iffalse +%</book|report> +% \fi +% +% \begin{macro}{\tud@@part} +% Damit auch das Präfix der Teile in Majuskeln erscheint, wird dem Befehl +% \cs{partformat}, welcher das Präfix enthält, für die \cls{tudscrartcl}-Klasse +% der entsprechende Befehl vorangestellt. +% \begin{macrocode} +%<*article> +\let\tud@@part\@part +\patchcmd{\tud@@part}% + {\size@partnumber{\partformat}}% + {\size@partnumber{\tud@makeuppercase\partformat}}% + {}{\tud@patch@wrn{@part}}% +%</article> +% \end{macrocode} +% Für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse ist etwas mehr Arbeit +% nötig. Für separate Teileseiten muss dafür Sorge getragen werden, dass die +% Überschrift unabhängig von der Tiefe der Nummerierung immer an der gleichen +% Position steht. +% \begin{macrocode} +%<*book|report> +\let\tud@@part\@part +\ifnum\scr@compatibility>\@nameuse{scr@v@3.11b}\relax + \patchcmd{\tud@@part}{% + \ifnumbered{part}{% + \size@partnumber{\partformat}% + \partheadmidvskip + }{}% + }{% + \ifnumbered{part}{% + \size@partnumber{\tud@makeuppercase\partformat}% + }{% + \size@partnumber{\strut}% + }% + \unskip\partheadmidvskip% + }{}{\tud@patch@wrn{@part}}% +\else + \patchcmd{\tud@@part}{% + \ifnum \c@secnumdepth >-2\relax + \size@partnumber{\partformat}% + \partheadmidvskip + \fi + }{% + \ifnum \c@secnumdepth >-2\relax% + \size@partnumber{\tud@makeuppercase\partformat}% + \else% + \size@partnumber{\strut}% + \fi% + \unskip\partheadmidvskip% + }{}{\tud@patch@wrn{@part}}% +\fi +%</book|report> +% \end{macrocode} +% \end{macro}^^A \tud@@part +% +% \iffalse +%<*book|report> +% \fi +% +% \begin{macro}{\tud@@spart} +% Bei den Teile-Befehlen ohne Gliederungsnummerierung muss zusätzlich der +% Freiraum vorgehalten werden, damit alle Überschriften auf der gleichen +% vertikalen Position liegen. +% \begin{macrocode} +\let\tud@@spart\@spart +\patchcmd{\tud@@spart}{% + \normalfont + \sectfont\nobreak\size@part +}{% + \normalfont\sectfont\nobreak% + \size@partnumber{\strut}% + \partheadmidvskip\unskip% + \size@part% +}{}{\tud@patch@wrn{@spart}} +% \end{macrocode} +% \end{macro}^^A \tud@@spart +% \begin{macro}{\tud@partpreamble} +% Um die \KOMAScript-Befehle für die Teilepräambel auch für das farbige Layout +% nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln wird +% die Überschrift einer Zusammenfassung ausschließlich zentriert und relativ +% klein gesetzt. Außerdem wird für eine mögliche Zusammenfassung die +% \opt{titlepage}-Option deaktiviert. Aufgerufen wird der Befehl durch die +% gepatchte Version von \cs{set@@@@preamble}. +% \begin{macrocode} +\newcommand*\tud@partpreamble{% + \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \KOMAoptions{titlepage=false}% + \addtokomafont{disposition}{\color{\tud@color@partfont}}% + \addtokomafont{dictumtext}{\color{\tud@color@partfont}}% + \color{\tud@color@partfont}% +% \end{macrocode} +% Hiermit wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln +% ausgeglichen. +% \begin{macrocode} + \vskip\dimexpr\topskip+.9\baselineskip% + \@afterindentfalse\@afterheading% +} +% \end{macrocode} +% \end{macro}^^A \tud@partpreamble +% \begin{macro}{\tud@@@makechapterhead} +% Damit das Präfix des Kapitels bei der gegebenenfalls aktivierten Option +% \opt{chapterprefix} in Majuskeln erscheint, wird dem Befehl +% \cs{chapterformat}, welcher das Präfix enthält, der entsprechende Befehl +% vorangestellt. Außerdem muss die Überschrift bei aktivierter +% \opt{chapterprefix}-Option um die Höhe des Präfixes nach oben verschoben +% werden, damit die Überschrift selbst auf der richtigen Höhe liegt. +% \begin{macrocode} +\newcommand*\tud@@@makechapterhead{} +\let\tud@@@makechapterhead\@@makechapterhead +\patchcmd{\tud@@@makechapterhead}{\chapterformat}{% + \if@chapterprefix% + \usesizeofkomafont{chapterprefix}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-.5\baselineskip}% + \fi% + \tud@makeuppercase{\chapterformat}% +}{}{\tud@patch@wrn{@@makechapterhead}} +% \end{macrocode} +% Weiterhin müssen alle vertikalen Abstände gelöscht werden, damit die +% Überschriften für alle Einstellungen der \opt{parskip}-Option immer auf +% exakt der selben Höhe liegen und auch die Abstände zwischen den ggf. +% genutzten Präfixen identisch sind. +% \begin{macrocode} +\patchcmd{\tud@@@makechapterhead}{\size@chapter{#1}}{% + \setlength{\parskip}{\z@}% + \size@chapter{#1}% +}{}{\tud@patch@wrn{@@makechapterhead}} +% \end{macrocode} +% \end{macro}^^A \tud@@@makechapterhead +% \begin{macro}{\tud@chapterpreamble} +% Um die \KOMAScript-Befehle für die Kapitelpräambel auch für das farbige Layout +% nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln der +% Kapitel gilt das gleiche wie für die der Teileseiten. Auch hier erfolgt die +% Ausführung des Befehls durch die gepatchte Version von \cs{set@@@@preamble}. +% \begin{macrocode} +\newcommand*\tud@chapterpreamble{% + \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \KOMAoptions{titlepage=false}% +% \end{macrocode} +% Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig. +% \begin{macrocode} + \if@tud@chapterpage% + \if@tud@cdfonts% + \if@tud@heavyfont% + \TUDoptions{cdfont=heavy}% + \else% + \TUDoptions{cdfont}% + \fi% + \fi% + \addtokomafont{disposition}{\color{\tud@color@chapterfont}}% + \addtokomafont{dictumtext}{\color{\tud@color@chapterfont}}% + \color{\tud@color@chapterfont}% + \fi% + \@afterindentfalse\@afterheading% +} +% \end{macrocode} +% \end{macro}^^A \tud@chapterpreamble +% \begin{macro}{\tud@chapter@pre} +% \begin{macro}{\tud@chapter@app} +% Diese beiden Makros dienen zur Behandlung der Besonderheiten von spearaten +% Kapitelseiten (Option~\opt{chapterpage}). +% \begin{macrocode} +\newcommand*\tud@chapter@pre{% + \if@tud@chapterpage% +% \end{macrocode} +% Der Seitenstil wird aus Gründen der Konsistenz auf den Stil von Teilseiten +% gesetzt. Vorher wird dieser gesichert. +% \begin{macrocode} + \tud@cmd@store{chapterpagestyle}% + \renewcommand*\chapterpagestyle{\partpagestyle}% +% \end{macrocode} +% Für den zweispaltigen Satz und aktivierter \opt{chapterpage}-Option muss +% für die Kapitelseiten temporär auf einseitigen Satz umgestellt werden, damit +% alle Befehle und Einstellungen beim Erzeugen des jeweiligen Kapitels zum +% Tragen kommen. Soll der Fehler behoben werden, dass bei Kapitelüberschriften +% im zweispaltigen Satz der Abstand zwischen Überschrift und Textkörper nicht +% stimmt, sei außerdem das Paket \pkg{twocolfix} empfohlen. +% \begin{macrocode} + \@restonecolfalse% + \if@twocolumn\@restonecoltrue\onecolumn\fi% + \fi% +} +\newcommand*\tud@chapter@app{% + \if@tud@chapterpage% +% \end{macrocode} +% Nach dem Setzen der Kapitelüberschrift selbst werden die Farbe für den +% Hintergrund, die Seitenzahl und den ggf. verwendeten TUD-Kopf angewendet. +% Danach wird die Seite beendet. Sollte zweiseitiger Satz, immer rechts öffnende +% Kapitel und die Option \opt{chapterpage} gewählt sein, so wird für ein +% konsistentes Layout für Überschriften auf Einzelseiten die Rückseite abhängig +% von der Option \opt{clearcolor} gegebenenfalls farbig gesetzt und die Option +% \opt{cleardoublespecialpage} bezüglich des Seitenstils der Rückseite beachtet. +% Umgesetzt wird das Ganze mit dem Befehl \cs{tud@cleardoublespecialpage}. +% \begin{macrocode} + \tud@cleardoublespecialpage{% + \tud@pagecolor{\tud@color@chapterpage}% + \def\tud@head@color{\tud@color@chapterfont}% + \addtokomafont{pagenumber}{\sffamily\color{\tud@color@chapterfont}}% + \clearpage% + }% +% \end{macrocode} +% Außerdem wird der Seitenstil der Kapitel wiederhergestellt und für den +% Zweispaltensatz auf normales Verhalten zurückgestellt. +% \begin{macrocode} + \tud@cmd@restore{chapterpagestyle}% + \if@restonecol\twocolumn\fi% + \fi% +% \end{macrocode} +% Unabhängig von der Option \opt{chapterpage} wird deim zweispaltigen Layout der +% Einzug des ersten Absatzes verhindert. +% \begin{macrocode} + \if@twocolumn% + \@afterindentfalse\@afterheading% + \fi% +} +% \end{macrocode} +% Die Änderungen sollen bei der Erzeugung eines Kapitels greifen. Damit die +% originalen Befehle nicht beeinflusst werden, erfolgt die Manipulation der +% bereits adaptierten Befehle für Kapitel. +% \begin{macrocode} +\AtEndPreamble{% + \pretocmd{\tud@nchapter}{\tud@chapter@pre}{}{} + \apptocmd{\tud@nchapter}{\tud@chapter@app}{}{} + \pretocmd{\tud@schapter}{\tud@chapter@pre}{}{} + \apptocmd{\tud@schapter}{\tud@chapter@app}{}{} + \pretocmd{\tud@ochapter}{\tud@chapter@pre}{}{} + \apptocmd{\tud@ochapter}{\tud@chapter@app}{}{} + \pretocmd{\tud@naddchap}{\tud@chapter@pre}{}{} + \apptocmd{\tud@naddchap}{\tud@chapter@app}{}{} + \pretocmd{\tud@saddchap}{\tud@chapter@pre}{}{} + \apptocmd{\tud@saddchap}{\tud@chapter@app}{}{} + \pretocmd{\tud@oaddchap}{\tud@chapter@pre}{}{} + \apptocmd{\tud@oaddchap}{\tud@chapter@app}{}{} +} +% \end{macrocode} +% \end{macro}^^A \tud@chapter@pre +% \end{macro}^^A \tud@chapter@app +% \begin{macro}{\tud@clearcolor@wrn} +% Warnung für den Fall, dass die Option \opt{clearcolor} ohne \opt{open=right} +% und \opt{twoside} verwendet wird. +% \begin{macrocode} +\newcommand*\tud@clearcolor@wrn{% + \ClassWarning{\tudcls@name}{% + Option 'clearcolor' is only available together with\MessageBreak% + options 'twoside' and 'open=right'% + }% + \global\let\tud@clearcolor@wrn\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@clearcolor@wrn +% \begin{macro}{\tud@set@@@@preamble} +% Die beiden Befehle für Präambeln aus \KOMAScript{} ignorieren in ihrer +% ursprünglichen Form die Einstellungen für \opt{parskip}. Dies wird mit diesem +% Patch beseitigt. Außerdem werden das Makro für die Layouteinstellungen für +% Teile bzw. Kapitel (\cs{tud@\dots preamble}) aufgerufen. +% \begin{macrocode} +\newcommand*\tud@set@@@@preamble{} +\let\tud@set@@@@preamble\set@@@@preamble +\patchcmd{\tud@set@@@@preamble}{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% +}{% + \def\@tempa####1@####2{\@nameuse{tud@####1preamble}}% + \hbox to\hsize{% + \let\@parboxrestore\relax% + #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + }% +}{}{\tud@patch@wrn{set@@@@preamble}} +% \end{macrocode} +% \end{macro}^^A \tud@set@@@@preamble +% Damit ist das Intermezzo für die beiden Klassen \cls{tudscrbook} und +% \cls{tudscrreprt} beendet. +% +% \iffalse +%</book|report> +% \fi +% +% \begin{macro}{\tud@part} +% \begin{macro}{\tud@spart} +% \begin{macro}{\tud@addpart} +% \begin{macro}{\tud@saddpart} +% \begin{macro}{\tud@chapter} +% \begin{macro}{\tud@schapter} +% \begin{macro}{\tud@addchap} +% \begin{macro}{\tud@saddchap} +% \begin{macro}{\tud@section} +% \begin{macro}{\tud@ssection} +% \begin{macro}{\tud@subsection} +% \begin{macro}{\tud@ssubsection} +% \begin{macro}{\tud@subsubsection} +% \begin{macro}{\tud@ssubsubsection} +% Das \CD verlangt, dass sämtliche Auszeichnungen, die in DIN~Bold gesetzt +% werden, groß zu schreiben sind. Für die Klassen bedeutet dies, dass alle +% Überschriften automatisch in Majuskeln und in der gewünschten Schriftart +% erscheinen müssen. Dies erfordert eine Anpassung der Gliederungsbefehle, ohne +% deren normales Verhalten zu beeinflussen. +% +% Dazu werden die benötigten Hilfsmakros initialisiert. Die Gliederungsbefehle +% selbst werden innerhalb des Befehles \cs{tud@sectioning@set} durch +% \cs{tud@cmd@store} gesichert und anschließend mit \cs{tud@sectioning@case} +% neu definiert. Dabei wird in der ersten Stufe unterschieden, ob die +% Sternversion des Gliederungsbefehls durch den Anwender verwendet wird und +% ggf. das Hilfsmakro \cs{tud@s\meta{Gliederungsbefehl}} aufgerufen. +% Andernfalls wird \cs{tud@\meta{Gliederungsbefehl}} verwendet. +% \begin{macrocode} +\newcommand*\tud@part{} +\newcommand*\tud@spart{} +\newcommand*\tud@addpart{} +\newcommand*\tud@saddpart{} +%<*book|report> +\newcommand*\tud@chapter{} +\newcommand*\tud@schapter{} +\newcommand*\tud@addchap{} +\newcommand*\tud@saddchap{} +%</book|report> +\newcommand*\tud@section{} +\newcommand*\tud@ssection{} +\newcommand*\tud@subsection{} +\newcommand*\tud@ssubsection{} +\newcommand*\tud@subsubsection{} +\newcommand*\tud@ssubsubsection{} +% \end{macrocode} +% \end{macro}^^A \tud@ssubsubsection +% \end{macro}^^A \tud@subsubsection +% \end{macro}^^A \tud@ssubsection +% \end{macro}^^A \tud@subsection +% \end{macro}^^A \tud@ssection +% \end{macro}^^A \tud@section +% \end{macro}^^A \tud@saddchap +% \end{macro}^^A \tud@addchap +% \end{macro}^^A \tud@schapter +% \end{macro}^^A \tud@chapter +% \end{macro}^^A \tud@saddpart +% \end{macro}^^A \tud@addpart +% \end{macro}^^A \tud@spart +% \end{macro}^^A \tud@part +% \begin{macro}{\tud@npart} +% \begin{macro}{\tud@opart} +% \begin{macro}{\tud@naddpart} +% \begin{macro}{\tud@oaddpart} +% \begin{macro}{\tud@nchapter} +% \begin{macro}{\tud@ochapter} +% \begin{macro}{\tud@naddchap} +% \begin{macro}{\tud@oaddchap} +% \begin{macro}{\tud@nsection} +% \begin{macro}{\tud@osection} +% \begin{macro}{\tud@nsubsection} +% \begin{macro}{\tud@osubsection} +% \begin{macro}{\tud@nsubsubsection} +% \begin{macro}{\tud@osubsubsection} +% Wird keine Sternversion verwendet, sind zwei weitere Hilfsmakros nötig, um +% zwischen den Varianten mit und ohne optionales Argument zu entscheiden. +% \begin{macrocode} +\newcommand*\tud@npart{} +\newcommand*\tud@opart{} +\newcommand*\tud@naddpart{} +\newcommand*\tud@oaddpart{} +%<*book|report> +\newcommand*\tud@nchapter{} +\newcommand*\tud@ochapter{} +\newcommand*\tud@naddchap{} +\newcommand*\tud@oaddchap{} +%</book|report> +\newcommand*\tud@nsection{} +\newcommand*\tud@osection{} +\newcommand*\tud@nsubsection{} +\newcommand*\tud@osubsection{} +\newcommand*\tud@nsubsubsection{} +\newcommand*\tud@osubsubsection{} +% \end{macrocode} +% \end{macro}^^A \tud@osubsubsection +% \end{macro}^^A \tud@nsubsubsection +% \end{macro}^^A \tud@osubsection +% \end{macro}^^A \tud@nsubsection +% \end{macro}^^A \tud@osection +% \end{macro}^^A \tud@nsection +% \end{macro}^^A \tud@oaddchap +% \end{macro}^^A \tud@naddchap +% \end{macro}^^A \tud@ochapter +% \end{macro}^^A \tud@nchapter +% \end{macro}^^A \tud@oaddpart +% \end{macro}^^A \tud@naddpart +% \end{macro}^^A \tud@opart +% \end{macro}^^A \tud@npart +% \begin{macro}{\tud@sectioning@set} +% \begin{macro}{\tud@sectioning@case} +% \begin{macro}{\tud@sectioning@reset} +% \begin{macro}{\tud@font@koma@set} +% \begin{macro}{\tud@font@koma@reset} +% Der Befehl\cs{tud@sectioning@set} sichert und überschreibt die gegebenen +% Gliederungsbefehle und fügt diesen die zusätzlich angegebene Schriftdefinition +% mit dem Makro \cs{tud@font@koma@set} zu. Das optionale Argument ermöglicht die +% Anpassung des angegebenen Gliederungsbefehls ohne zusätzliche Definition der +% Schrift. Dies ist für die von \KOMAScript{} zusätzlich bereitgestellten +% Gliederungsbefehle (\cs{add\dots}) notwendig. +% \begin{macrocode} +\newcommand*\tud@sectioning@set[3][]{% + \tud@cmd@store{#2}% +% \end{macrocode} +% Für die Überschriften, welche mit \cs{minisec} gesetzt werden, genügt jedoch +% ein vereinfachtes Vorgehen. +% \begin{macrocode} + \ifstr{#2}{minisec}{% + \renewcommand\minisec[1]{% + \tud@cmd@use{minisec}{\tud@makeuppercase{##1}}% + }% +% \end{macrocode} +% Hier erfolgt die Anpassung und Formatierung aller anderen Gliederungsbefehle. +% \begin{macrocode} + }{% + \tud@sectioning@case{#2}% + \ifstrempty{#1}{}{% + \tud@cmd@store{#1}% + \tud@sectioning@case{#1}% + }% + }% + \tud@font@koma@set{#2}{#3}% +} +% \end{macrocode} +% Da die Großschreibung der Überschriften nur beim Setzen der Überschrift +% selbst, nicht aber beispielsweise im Inhaltsverzeichnis oder aber in der +% Kopfzeile unerwünscht erfolgen soll, werden die Gliederungsbefehle angepasst. +% Dabei müssen alle Varianten, also auch die mit Stern und optionalen Argument +% beachtet werden. +% \begin{macrocode} +\newcommand*\tud@sectioning@case[1]{% +% \end{macrocode} +% Als erstes wird unterschieden, ob die normale oder aber die nicht-nummerierte +% sprich die Sternversion gefordert ist. Für die Teileebene werden also +% beispielsweise \cs{tud@part} und \cs{tud@spart} aufgerufen. +% \begin{macrocode} + \@namedef{#1}{\@ifstar{\@nameuse{tud@s#1}}{\@nameuse{tud@#1}}}% +% \end{macrocode} +% Für die normale Version wird geprüft, ob ein optionales Argument angegeben +% wurde. Am Beispiel nachvollzogen bedeutet dies, dass bei einem gegebenen +% optionalen Argument der Befehl \cs{tud@opart} aufgerufen wird, sonst +% \cs{tud@npart}. +% \begin{macrocode} + \@namedef{tud@#1}{\@ifnextchar[%] + {\@nameuse{tud@o#1}}{\@nameuse{tud@n#1}}% + }% +% \end{macrocode} +% Für die normale Version wird der in \cs{@@tud@\meta{Gliederungsbefehl}} +% gesicherte Originalbefehl mit dem gewünschten Eintrag als optionales Argument +% aufgerufen und nur das obligatorische Argument mit \cs{tud@makeuppercase} +% behandelt. +% \begin{macrocode} + \@namedef{tud@n#1}##1{\@nameuse{@@tud@#1}[##1]{\tud@makeuppercase{##1}}}% +% \end{macrocode} +% Für die Version mit optionalen Argument wird dieses einfach an den originalen +% Befehl durchgereicht. Das obligatorische Argument wird wie immer mit +% \cs{tud@makeuppercase} behandelt. +% \begin{macrocode} + \@namedef{tud@o#1}[##1]##2{\@nameuse{@@tud@#1}[##1]{\tud@makeuppercase{##2}}}% +% \end{macrocode} +% Für die Version mit Stern gibt es kein optionales Argument. Dementsprechend +% wird hier lediglich das obligatorische Argument in Großbuchstaben gesetzt. +% \begin{macrocode} + \@namedef{tud@s#1}##1{\@nameuse{@@tud@#1}*{\tud@makeuppercase{##1}}}% +} +% \end{macrocode} +% Mit dem Makro \cs{tud@sectioning@reset} können die manipulierten +%Gliederungsbefehle +% wieder auf ihr ursprüngliches Verhalten zurückgesetzt werden. +% \begin{macrocode} +\newcommand*\tud@sectioning@reset[2][]{% + \tud@cmd@restore{#2}% + \ifstrempty{#1}{}{\tud@cmd@restore{#1}}% + \tud@font@koma@reset{#2}% +} +% \end{macrocode} +% Es wird die Möglichkeit geschaffen, bestimmten Schriftelementen weitere +% Eigenschaften mitzugeben. Damit dies optionsabhängig geschehen kann und +% \cs{addtokomafont} nur einmalig verwendete werden muss, wird im Zweifelsfall +% einem Schriftelement ein Hilfsmakro zugewiesen, welches per Option angepasst +% werden kann. Mit \cs{tud@font@koma@set} werden dem angegebenen Element die +% gewünschten Schriftattribute zugeteilt. Dabei wird der entsprechenden Schrift +% ein Makro zugewiesen, welches beliebig angepasst werden kann. +% \begin{macrocode} +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% + \@namedef{tud@font@koma@#1}{#2}% +} +% \end{macrocode} +% Mit \cs{tud@font@koma@reset} kann das angegebene Element wieder zurückgesetzt +% werden. Dabei wird das zuvor hinzugefügte Makro auf \cs{relax} gesetzt. +% \begin{macrocode} +\newcommand*\tud@font@koma@reset[1]{% + \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@koma@reset +% \end{macro}^^A \tud@font@koma@set +% \end{macro}^^A \tud@sectioning@reset +% \end{macro}^^A \tud@sectioning@case +% \end{macro}^^A \tud@sectioning@set +% Dieser Befehl extrahiert aus einer verwendeten Schrift nur die dazugehörige +% Schriftgröße. +% \todo[v3.12]{\cs{usesizeofkomafont} raus} +% \begin{macrocode} +\providecommand*\usesizeofkomafont[1]{% + \begingroup% + \usekomafont{#1}% + \edef\reserved@a{\noexpand\endgroup% + \noexpand\fontsize{\f@size}{\f@baselineskip}}% + \reserved@a\selectfont% +} +% \end{macrocode} +% +% \iffalse +%</class&!option> +% \fi +% +% \Finale +% +\endinput
\ No newline at end of file |