summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tudscr/source/tudscr-layout.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-layout.dtx')
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-layout.dtx708
1 files changed, 405 insertions, 303 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-layout.dtx b/macros/latex/contrib/tudscr/source/tudscr-layout.dtx
index f44b8687d0..289b3db725 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-layout.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-layout.dtx
@@ -1,10 +1,10 @@
-% \CheckSum{1215}
% \iffalse meta-comment
+%/GitFileInfo=tudscr-layout.dtx
%
% TUD-Script -- Corporate Design of Technische Universität Dresden
% ----------------------------------------------------------------------------
%
-% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021
+% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2022
%
% ----------------------------------------------------------------------------
%
@@ -23,33 +23,19 @@
%
% \fi
%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \iffalse
-%%% From File: tudscr-layout.dtx
+% \iffalse ins:batch + dtx:driver
+%<*ins>
+\ifx\documentclass\undefined
+ \input docstrip.tex
+ \ifToplevel{\batchinput{tudscr.ins}}
+\else
+ \let\endbatchfile\relax
+\fi
+\endbatchfile
+%</ins>
%<*dtx>
-% \fi
-%
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\ProvidesFile{tudscr-layout.dtx}[2019/07/19 v2.06c TUD-Script\space%
- (layout)%
-]
-%
-% \iffalse
+\ProvidesFile{tudscr-layout.dtx}[2022/08/09]
+\RequirePackage{tudscr-gitinfo}
\documentclass[english,ngerman,xindy]{tudscrdoc}
\iftutex
\usepackage{fontspec}
@@ -59,18 +45,11 @@
\fi
\usepackage{babel}
\usepackage{tudscrfonts}
-\KOMAoptions{parskip=half-}
-\usepackage{bookmark}
\usepackage[babel]{microtype}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{tudscr-layout.dtx}
-\title{\file{\filename}}
-\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}}
-\date{\fileversion\nobreakspace(\filedate)}
-
+\GitHubBase{\TUDScriptRepository}
\begin{document}
+ \author{Falk Hanisch\TUDScriptContactTitle}
\maketitle
\tableofcontents
\DocInput{\filename}
@@ -82,6 +61,10 @@
%
% \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A
% \changes{v2.05}{2015/07/06}{Layout für Poster}^^A
+% \changes{v2.06o}{2022/08/02}{\opt{cdfont=false} und \opt{cd=true} setzt
+% Überschriften im \CD}^^A
+%
+%
%
% \section{Das Layout des \CDs}
%
@@ -95,8 +78,6 @@
% eine durchweg farbige Version bereitgestellt. Außerdem wird hier das Aussehen
% und die Position der Überschriften festgelegt.
%
-% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
-%
% \iffalse
%<*class&option>
% \fi
@@ -140,7 +121,7 @@
% im \pgs{tudheadings}-Stil ist schwarz und wird für die farbigen Layouts auf
% dunkelblau gesetzt. Abhängig von der gewählten Option~-- der nummerische Wert
% ist über \cs{tud@cd@switch} festgelegt~-- werden die sog. Layoutschlüssel
-% (\cs{tud@cd@\meta{Typ}@num}) auf einen Wert gesetzt (0\dots 6), welcher
+% (|\tud@cd@|\meta{Typ}|@num|) auf einen Wert gesetzt (0\dots 6), welcher
% später ausgewertet werden kann. Der Schalter für Kapitel wird lediglich für
% die Klassen \cls{tudscrbook} und \cls{tudscrreprt} definiert und genutzt.
% Damit werden alle Komponenten mit einer zentralen Option festgelegt, können
@@ -195,13 +176,13 @@
% festgelegt. Dies kann vom Benutzer mit dem Setzen der Option \opt{cdgeometry}
% überschrieben werden.
% \begin{macrocode}
- \if@atdocument\else%
+ \tud@if@preamble{%
\ifcase\tud@cd@num\relax% false
\tud@locked@num@preset{tud@cdgeometry@num}{0}%
\else% !false
\tud@locked@num@preset{tud@cdgeometry@num}{2}%
\fi%
- \fi%
+ }{}%
\fi%
}
% \end{macrocode}
@@ -311,7 +292,7 @@
% 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@newif\if@tud@parttitle
\TUD@key{parttitle}[true]{%
\TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}%
}
@@ -323,7 +304,7 @@
% Mit dieser Option können Kapitelüberschriften alleine auf einer Seite stehen.
% Es werden separate Kapitelseiten erzeugt.
% \begin{macrocode}
-\newif\if@tud@chapterpage
+\tud@newif\if@tud@chapterpage
\TUD@key{chapterpage}[true]{%
\TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}%
}
@@ -333,7 +314,7 @@
% \begin{option}{cleardoublespecialpage}
% \changes{v2.02}{2014/07/08}{Werte für Seitenstil aus den \TUDScript- bzw.
% \KOMAScript-Klassen möglich}^^A
-% \changes{v2.03}{2015/01/09}{Prüfung des Seitenstils mit \cs{AfterPreamble}
+% \changes{v2.03}{2015/01/09}{Prüfung des Seitenstils mit \cs{AfterEndPreamble}
% auf Beginn des Dokumentes verzögert}^^A
% \changes{v2.06}{2018/08/21}{Farbeinstellungen integriert}^^A
% \begin{macro}{\tud@cleardoublepage}
@@ -356,7 +337,7 @@
% Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden
% Doppelseite.
% \begin{macrocode}
-\newif\if@tud@clearcolor
+\tud@newif\if@tud@clearcolor
\newcommand*\tud@cleardoublepage{\cleardoubleoddpage}
% \end{macrocode}
% Mit der Option \opt{cleardoublespecialpage} kann dieser festgelegt werden.
@@ -397,10 +378,10 @@
% Beim Laden der Klasse selbst sind die speziellen Seitenstile der \KOMAScript-
% bzw. \TUDScript-Klassen noch nicht definiert. Diese sollen als Werte jedoch
% trotzdem erlaubt sein. Deshalb wird für diesen Fall das Überprüfen mit
-% \cs{AfterPreamble} auf den Beginn des Dokumentes verzögert.
+% \cs{AfterEndPreamble} auf den Beginn des Dokumentes verzögert.
% \begin{macrocode}
\else%
- \AfterPreamble{%
+ \AfterEndPreamble{%
\ifcsundef{ps@#1}{%
\ClassError{\TUD@Class@Name}{`#1' is no valid pagestyle}{%
You tried to use `#1' as a pagestyle for option\MessageBreak%
@@ -483,20 +464,33 @@
% Damit endet der Abschnitt für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse.
%
% \begin{macro}{\tud@pagecolor}
+% \begin{macro}{\normalcolor}
% Der Befehl \cs{tud@pagecolor} dient für die Hauptklassen als Hilfsmakro, um
% je nach gewählter Ausprägung des Layouts die farblichen Seitenhintergründe zu
% aktivieren. Für die Klasse \cls{tudscrposter} wird der Befehl zusätzlich für
% das benutzerdefinierte Festlegen einer standardmäßigen Hintergrundfarbe mit
% der Option \opt{backcolor} genutzt.
+%
+% Für das Aktivieren der Farbe \val{HKS41} wird \cs{normalcolor} erweitert, um
+% hier in jedem Fall als Schriftfarbe \emph{weiß} zu verwenden.
% \begin{macrocode}
\newcommand*\tud@pagecolor{}%
+\AfterPackage{xcolor}{%
+ \apptocmd\normalcolor{%
+ \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{}%
+ }{}{\tud@patch@wrn{normalcolor}}%
+ \AtBeginDocument{%
+ \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}%
+ \normalcolor%
+ }%
+}
% \end{macrocode}
+% \end{macro}^^A \normalcolor
% \end{macro}^^A \tud@pagecolor
% \begin{option}{backcolor}
% \changes{v2.05}{2016/04/15}{neu}^^A
% \begin{option}{backgroundcolor}
% \begin{option}{bgcolor}
-% \begin{macro}{\normalcolor}
% Mit dieser Option kann die standardmäßige Hintergrundfarbe für Poster gesetzt
% werden.
% \begin{macrocode}
@@ -521,41 +515,27 @@
% Wird die Option innerhalb des Dokumentes verwendet, wird mit einer Box erst
% die gewählte Farbe verifiziert und anschließend auf die am Dokumentbeginn
% definierte Textfarbe umgestellt.
+% \ToDo{angucken, was soll das genau?}[v2.07]
% \begin{macrocode}
- \if@atdocument%
+ \tud@if@preamble{}{%
\ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}%
\normalcolor%
- \fi%
+ }%
}
\TUD@key{backgroundcolor}[true]{\TUDoptions{backcolor=#1}}
\TUD@key{bgcolor}[true]{\TUDoptions{backcolor=#1}}
-% \end{macrocode}
-% Für das Aktivieren der Farbe \val{HKS41} wird \cs{normalcolor} erweitert, um
-% hier in jedem Fall als Schriftfarbe \emph{weiß} zu verwenden.
-% \begin{macrocode}
-\AfterPackage{xcolor}{%
- \CheckCommand*\normalcolor{\let\current@color\default@color\set@color}%
- \apptocmd{\normalcolor}{%
- \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}%
- }{}{\tud@patch@wrn{normalcolor}}%
- \AtBeginDocument{%
- \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}%
- \normalcolor%
- }%
-}
%</poster>
% \end{macrocode}
-% \end{macro}^^A \normalcolor
% \end{option}^^A bgcolor
% \end{option}^^A backgroundcolor
% \end{option}^^A backcolor
% \begin{option}{pageheadingsvskip}
% \changes{v2.05}{2016/06/20}{neu}^^A
-% \begin{macro}{\tud@dim@pageheadingsvskip}
+% \begin{macro}{\tud@pageheadingsvskip@dim}
% \changes{v2.05}{2016/06/20}{neu}^^A
% \begin{option}{headingsvskip}
% \changes{v2.05}{2016/06/20}{neu}^^A
-% \begin{macro}{\tud@dim@headingsvskip}
+% \begin{macro}{\tud@headingsvskip@dim}
% \changes{v2.05}{2016/06/20}{neu}^^A
% Mit diesen Optionen kann der Anwender die Überschriften von Titel, Teilen und
% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD
@@ -567,19 +547,19 @@
% die des Titelkopfes (\opt{titlepage}|=|\val{false}) verschoben.
% \begin{macrocode}
%<*book|report|article>
-\newcommand*\tud@dim@pageheadingsvskip{0pt}
-\TUD@key{pageheadingsvskip}{%
- \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}%
-}
-\newcommand*\tud@dim@headingsvskip{0pt}
+\newcommand*\tud@headingsvskip@dim{0pt}
\TUD@key{headingsvskip}{%
- \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}%
+ \TUD@set@dimkey{headingsvskip}{\tud@headingsvskip@dim}{#1}%
+}
+\newcommand*\tud@pageheadingsvskip@dim{\tud@headingsvskip@dim}
+\TUD@key{pageheadingsvskip}{%
+ \TUD@set@dimkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}%
}
%</book|report|article>
% \end{macrocode}
-% \end{macro}^^A \tud@dim@headingsvskip
+% \end{macro}^^A \tud@headingsvskip@dim
% \end{option}^^A headingsvskip
-% \end{macro}^^A \tud@dim@pageheadingsvskip
+% \end{macro}^^A \tud@pageheadingsvskip@dim
% \end{option}^^A pageheadingsvskip
%
% \iffalse
@@ -596,12 +576,16 @@
% \changes{v2.06}{2018/08/20}{neu}^^A
% Die Option wird dahingehend erweitert, dass die Überschriften auch im
% extra-fetten Schnitt gesetzt werden können.
+% \ToDo{%
+% Klassenoptionen paper=A4 und headings=optiontoheadandtoc durchreichen,
+% wenn mit \cs{PassOptionsToClass} genutzt.
+% }[v2.07]
% \begin{macrocode}
-\newif\if@tud@heavyheadings
+\tud@newif\if@tud@heavyheadings
\TUD@key{headings}{%
\TUD@set@numkey{headings}{@tempa}{%
{light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},%
- {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},%
+ {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},%
{heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},%
{ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},%
{extendedbold}{1},{boldextended}{1}%
@@ -630,7 +614,7 @@
% Die \KOMAScript-Option \opt{headings} setzt für alle Überschriften die
% Formatierung zurück. Um die Einstellungen für das \CD aktiv zu halten, werden
% nach der Ausführung der Option durch \cs{tud@x@scr@headings@reset} die mit
-% \cs{tud@komafont@set} definierten Makros \cs{tud@komafont@\meta{Element}}
+% \cs{tud@komafont@set} definierten Makros |\tud@komafont@|\meta{Element}
% erneut an die entsprechenden Schriftelemente angehängt. Bei der Verwendung
% der \KOMAScript-Option \opt{headings}|=|\val{standardclasses} werden außerdem
% noch die Optionen \opt{open} und \opt{chapterprefix} ausgeführt, weshalb auch
@@ -638,17 +622,17 @@
% \begin{macrocode}
\DefineFamilyMember{KOMA}
\DefineFamilyKey{KOMA}{headings}{%
+ \FamilyKeyStateUnknownValue%
\TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
- \FamilyKeyStateProcessed%
}
%<*book|report>
\DefineFamilyKey{KOMA}{open}{%
+ \FamilyKeyStateUnknownValue%
\TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
- \FamilyKeyStateProcessed%
}
\DefineFamilyKey{KOMA}{chapterprefix}{%
+ \FamilyKeyStateUnknownValue%
\TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}%
- \FamilyKeyStateProcessed%
}
%</book|report>
% \end{macrocode}
@@ -663,76 +647,88 @@
%
% \begin{macro}{\tud@x@scr@headings@set}
% \changes{v2.05}{2015/11/24}{neu}^^A
-% \begin{macro}{\tud@x@scr@headings@current}
+% \begin{macro}{\tud@subtitle@fontsizecmd}
% \changes{v2.05}{2015/11/24}{neu}^^A
-% \begin{macro}{\tud@sec@fontsize}
-% \changes{v2.05}{2015/11/24}{neu}^^A
-% \begin{macro}{\tud@thesis@fontsize}
+% \begin{macro}{\tud@prefix@fontsizecmd}
+% \changes{v2.06o}{2022/08/02}{neu}^^A
+% \begin{macro}{\tud@sec@fontsizecmd}
% \changes{v2.05}{2015/11/24}{neu}^^A
+% \begin{macro}{\tud@sec@baselineskip@@dim}
+% \changes{v2.06o}{2022/08/02}{neu}^^A
+% \begin{macro}{\tud@sec@baselineskip@set}
+% \changes{v2.06o}{2022/08/02}{neu}^^A
% Als erstes werden die Optionen verarbeitet, welche einen Einfluss auf die
-% Formatierung respektive die Schriftgröße der Überschriften haben. Wird über
-% die Option \opt{headings} eine andere Überschriftengröße gewählt, werden mit
-% dem Makro \cs{tud@x@scr@headings@set} die passenden Schriftgrößen sowohl für
-% die Überschriften (\cs{tud@sec@fontsize}) als auch die Titelseite
-% (\cs{tud@thesis@fontsize}) gesetzt. Dafür wird gewählte Schriftgröße
-% der Überschriften\footnote{\ignorespaces%
-% Option \opt{headings}|=|\val{standardclasses/big/normal/small}\ignorespaces%
-% } im Hilfsmakro \cs{tud@x@scr@headings@current} gesichert.
-% \begin{macrocode}
-\newcommand*\tud@x@scr@headings@current{}
-\newcommand*\tud@sec@fontsize{}
-\newcommand*\tud@thesis@fontsize{}
-\newcommand*\tud@x@scr@headings@set[1][]{%
- \def\@tempa##1##2##3{%
- \ifstr{##1}{\tud@x@scr@headings@current}{}{%
- \renewcommand*\tud@x@scr@headings@current{##1}%
- \renewcommand*\tud@sec@fontsize{##2}%
- \renewcommand*\tud@thesis@fontsize{##3}%
- #1%
+% Formatierung respektive die Schriftgröße der Überschriften haben. Wird die
+% Option \opt{headings} verwendet, werden mit \cs{tud@x@scr@headings@set} die
+% Schriftgrößen für Überschriften sowie Präfix und Untertitel sowohl für die
+% Gliederungsebenen als auch den Titel gesetzt. Der Grundzeilenabstand in
+% Überschriften wird in \cs{tud@sec@baselineskip@@dim} abgelegt, dieser ist
+% für die Abstände innerhalb von Überschriften notwendig.
+% \begin{macrocode}
+\newcommand*\tud@subtitle@fontsizecmd{\LARGE}
+\newcommand*\tud@prefix@fontsizecmd{\huge}
+\newcommand*\tud@sec@fontsizecmd{\Huge}
+\newcommand*\tud@sec@baselineskip@@dim{}
+\newcommand*\tud@sec@baselineskip@set{%
+ \begingroup%
+ \tud@sec@fontsizecmd%
+ \edef\tud@res@a{%
+ \endgroup%
+ \unexpanded{\def\tud@sec@baselineskip@@dim}{%
+ \the\dimexpr\glueexpr\f@baselineskip\relax\relax%
+ }%
}%
- }%
+ \tud@res@a%
+}
+\tud@sec@baselineskip@set
% \end{macrocode}
% Wird \cs{tud@x@scr@headings@set} aufgerufen, so werden mit \cs{KOMAoptionOf}
% die aktuellen Werte der Option \opt{headings} ausgelesen, welche in einer
% Liste ausgegeben werden. Diese wird durchlaufen und dabei auf die relevanten
% Werte reagiert.
% \begin{macrocode}
- \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}%
- \@for\@tempc:=\@tempb\do{%
- \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{%
- \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{%
- \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{%
- \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\large}}{}}}}%
+\newcommand*\tud@x@scr@headings@set[1][]{%
+ \def\@tempb##1##2##3{%
+ \renewcommand*\tud@sec@fontsizecmd{##1}%
+ \renewcommand*\tud@prefix@fontsizecmd{##2}%
+ \renewcommand*\tud@subtitle@fontsizecmd{##3}%
+ \tud@sec@baselineskip@set%
+ #1%
+ }%
+ \KOMAoptionOf[\def\@tempc]{\KOMAClassFileName}{headings}%
+ \@for\@tempc:=\@tempc\do{%
+ \TUD@set@numkey{headings}{@tempa}{%
+ {standardclasses}{0},{big}{1},{normal}{2},{small}{3}%
+ }{\@tempc}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempa\relax% standardclasses
+ \@tempb{\Huge} {\LARGE}{\Large}%
+ \or% big
+ \@tempb{\Huge} {\huge} {\LARGE}%
+ \or% normal
+ \@tempb{\huge} {\LARGE}{\Large}%
+ \or% small
+ \@tempb{\LARGE}{\Large}{\large}%
+ \fi%
+ \fi%
}%
-% \end{macrocode}
-% Der Abstand nach Teil- und Kapitelüberschriften wird ebenso in Abhängigkeit
-% der gewählten Einstellung für \opt{headings} definiert.
-% \begin{macrocode}
- \begingroup
- \tud@sec@fontsize%
- \@tempskipa=\glueexpr%
- .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip%
- \relax\relax%
- \edef\tud@res@a{%
- \endgroup%
- \def\noexpand\tud@cd@afterskip{\the\@tempskipa}%
- }%
- \tud@res@a%
}
% \end{macrocode}
% Damit die Einstellungen für die Größe wirksam werden, wird das Makro einmalig
% zu Beginn des Dokumentes ausgeführt.
% \begin{macrocode}
-\AtEndPreamble{\tud@x@scr@headings@set}
+\AfterEndPreamble{\tud@x@scr@headings@set}
% \end{macrocode}
-% \end{macro}^^A \tud@thesis@fontsize
-% \end{macro}^^A \tud@sec@fontsize
-% \end{macro}^^A \tud@x@scr@headings@current
+% \end{macro}^^A \tud@sec@baselineskip@set
+% \end{macro}^^A \tud@sec@baselineskip@@dim
+% \end{macro}^^A \tud@sec@fontsizecmd
+% \end{macro}^^A \tud@prefix@fontsizecmd
+% \end{macro}^^A \tud@subtitle@fontsizecmd
% \end{macro}^^A \tud@x@scr@headings@set
% \begin{macro}{\tud@x@scr@headings@reset}
% \changes{v2.05}{2015/11/24}{neu}^^A
-% Hiermit wird nach dem Ausführen der Option \opt{headings} im Zweifelsfall die
-% Größe und Formatierung der Überschriften neu gesetzt.
+% Hiermit wird nach dem Ausführen der Option \opt{headings} die Größe und
+% Formatierung der Überschriften neu gesetzt.
% \begin{macrocode}
\newcommand*\tud@x@scr@headings@reset{%
\tud@cd@process%
@@ -768,27 +764,43 @@
% \begin{macro}{\tud@sec@fontface}
% \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A
% \changes{v2.06}{2018/08/20}{extra-fette Überschriften möglich}^^A
+% \changes{v2.06o}{2022/08/02}{Überschrifen im \CD ohne aktive
+% Fließtextschriften möglich}^^A
% \begin{macro}{\tud@sec@@fontface}
% \begin{macro}{\tud@sec@format}
+% \changes{v2.06o}{2022/08/02}{Sternversion für Leerraum ohne \cs{strut}}^^A
+% \begin{macro}{\tud@sec@@format}
+% \begin{macro}{\tud@sec@@@format}
% \begin{macro}{\tud@sec@uppercase}
-% \begin{macro}{\tud@sec@strut}
-% \changes{v2.06}{2018/07/24}{neu}^^A
+% \begin{macro}{\if@tud@sec}
+% \changes{v2.06o}{2022/08/02}{neu}^^A
% Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im
% Layout des \CDs definiert.
+% \ToDo{Auf neues NFSS anpassen, \cs{fontseriesforce} überprüfen}[v2.07]
% \begin{macrocode}
%<package&fixfonts>\AfterPackage{tudscrfonts}{%
\newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}%
\newcommand*\tud@sec@@fontface[1]{%
\sectfont#1%
- \if@tud@cdfont@active\if@tud@heavyheadings%
- \if@tud@x@mweights@enabled%
- \edef\bfseries@rm{\tud@cdfont@ebf}%
- \edef\bfseries@sf{\tud@cdfont@ebf}%
- \edef\bfseries@tt{\tud@ttfont@ebf}%
+ \if@tud@cdfont@active%
+ \if@tud@heavyheadings%
+ \if@tud@x@mweights@enabled%
+ \edef\bfseries@rm{\tud@cdfont@ebf}%
+ \edef\bfseries@sf{\tud@cdfont@ebf}%
+ \edef\bfseries@tt{\tud@ttfont@ebf}%
+ \fi%
+ \let\bfdefault\tud@cdfont@ebf%
+ \fontseriesforce{\tud@cdfont@ebf}%
+ \fi%
+ \else%
+ \fontfamily{\tud@cdfont@fam}%
+ \if@tud@heavyheadings%
+ \let\bfdefault\tud@cdfont@ebf%
+ \else%
+ \let\bfdefault\tud@cdfont@bf%
\fi%
- \let\bfdefault\tud@cdfont@ebf%
- \fontseries{\tud@cdfont@ebf}%
- \fi\fi%
+ \fontseriesforce{\bfdefault}%
+ \fi%
\selectfont%
}
% \end{macrocode}
@@ -806,84 +818,67 @@
}%
\fi
% \end{macrocode}
-% Der Befehl \cs{tud@sec@format} dient zur Formatierung von Überschriften.
-% Dabei wird dieser mit der von \KOMAScript{} bereitgestellten Schnittstelle für
-% Teile\footnote{\cs{partlineswithprefixformat}},
-% Kapitel\footnote{\cs{chapterlineswithprefixformat}, \cs{chapterlinesformat}}
-% und
+% Mit \cs{tud@sec@format} erfolgt die Formatierung von Überschriften, wobei die
+% \KOMAScript-Schnittstelle für Teile\footnote{\cs{partlineswithprefixformat}},
+% Kapitel\footnote{\cs{chapterlineswithprefixformat}, \cs{chapterlinesformat}},
% Abschnitte\footnote{\cs{sectionlinesformat}, \cs{sectioncatchphraseformat}}
-% verwendet. Dadurch wird eine Anpassung der Gliederungsbefehle~-- wie es
-% einschließlich Version~v2.05 für die erzwungene Großschreibung umgesetzt
-% wurde~-- vermieden. Für die \OpenSans führt das Makro \cs{tud@sec@format}
-% lediglich \cs{tud@sec@strut} aus.
-% \begin{macrocode}
-\newcommand*\tud@sec@format[2][]{%
- \IfArgIsEmpty{#1}{%
- \tud@sec@strut%
- }{%
- \begingroup%
- \usefontofkomafont{#1}%
- \tud@sec@strut%
- \endgroup%
- }%
- #2%
+% sowie zusätzlich einfache Layoutelemente verwendet werden. Dadurch wird eine
+% Anpassung der Gliederungsbefehle~-- wie es einschließlich Version~v2.05 für
+% die erzwungene Großschreibung umgesetzt wurde~-- vermieden.
+%
+% Um für Teile und Kapitel ein einheitliches Erscheinungsbild zu erhalten, wird
+% für diese zum einen \cs{strut}~-- in der Schriftgröße des Kontexts oder aber
+% für das im optionalen Argument gegebene Schriftelement~-- und zum anderen
+% ausreichend vertikaler Leerraum für Umlaute eingefügt. Letzteres erfolgt auch
+% für Abschnitte (Sternversion). Dies liegt darin begründet, dass auf einer
+% neuen Seite die erste Grundlinie höher liegt, als für Umlautmajuskeln in der
+% Schrift für \cs{section} etc. notwendig ist. Deshalb wird die Grundlinie
+% \enquote{notfallmäßig} mit \cs{vphantom} so weit nach unten verschoben, wie
+% für die höchste Letter benötigt wird, unabhängig vom tatsächlichen Inhalt.
+%
+% Für Markup oder andere Inhalte, die lediglich im Fließtext jedoch nicht in
+% Überschriften ausgegeben werden, wird der Schalter \cs{if@tud@sec} definiert.
+% Das Setzen des Schalters wird in \cs{tud@sec@format} vorgenommen.
+% \begin{macrocode}
+\tud@newif\if@tud@sec
+\newrobustcmd*\tud@sec@format{%
+ \@tud@sectrue%
+ \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}%
+}
+\newcommand*\tud@sec@@format[1]{%
+ \kernel@ifnextchar[%]
+ {\tud@sec@@@format{#1}}%
+ {\tud@sec@@@format{#1}[]}%
}
+\newcommand*\tud@sec@@@format{}
+\def\tud@sec@@@format#1[#2]#3{%
+ \begingroup%
+ \IfArgIsEmpty{#2}%
+ {\let\tud@res@a\@firstofone}%
+ {\def\tud@res@a{\usekomafont{#2}}}%
+ \tud@res@a{%
+ \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}%
+ }%
+ \endgroup%
+ \tud@sec@@@@format{#3}%
+}
+\newcommand*\tud@sec@@@@format[1]{#1}
% \end{macrocode}
% Für die alten Schriften hat der Befehl eine erweiterte Funktionalität, wenn
% die Schriftfamilie \DIN aktiv ist, welche für Überschriften einzusetzen ist.
-% Das \CD verlangt dabei, dass zwingend Majuskeln\footnote{Großbuchstaben} zu
-% verwenden sind. Hierfür wird der Befehl \cs{MakeTextUppercase} aus dem Paket
-% \pkg{textcase} genutzt, welcher den internen \LaTeX-Befehl \cs{MakeUppercase}
-% verbessert. Das optionale Argument kann genutzt werden, falls nicht die
-% aktuelle Schrift sondern ein durch \KOMAScript{} definiertes Schriftelement
-% ausgewertet werden soll.
+% Das \CD verlangt dabei, dass zwingend Majuskeln zu verwenden sind. Hierfür
+% wird der Befehl \cs{MakeTextUppercase} aus dem Paket \pkg{textcase} genutzt,
+% der den internen \LaTeX"~Befehl \cs{MakeUppercase} verbessert.
% \begin{macrocode}
\if@tud@cdoldfont@active
- \newcommand*\tud@sec@uppercase{\MakeUppercase}%
- \AfterPackage*{textcase}{%
- \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}%
- }%
- \renewcommand*\tud@sec@format[2][]{%
- \@tud@res@swafalse%
- \IfArgIsEmpty{#1}{%
- \tud@sec@strut%
- \tud@ifdin{\@tud@res@swatrue}{}%
- }{%
- \begingroup%
- \usefontofkomafont{#1}%
- \tud@sec@strut%
- \tud@ifdin{\aftergroup\@tud@res@swatrue}{}%
- \endgroup%
- }%
- \if@tud@res@swa%
- \tud@sec@uppercase{#2}%
- \else%
- #2%
- \fi%
- }%
+ \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}%
\fi
-% \end{macrocode}
-% Für Abschnitte etc. liegt auf einer neuen Seite dier erste Grundlinie höher,
-% als für Großbuchstaben in der größeren Schrift für \cs{section} etc. benötigt
-% wird. Deshalb wird die Grundlinie \enquote{notfallmäßig} so weit nach unten
-% verschoben, wie für den höchsten Buchstabe benötigt wird. Mit dem Befehl
-% \cs{tud@sec@strut} wird für alle Überschriften dafür gesorgt, dass immer der
-% gleiche Freiraum bereitgehalten wird, unabhängig vom Inhalt der spezifischen
-% Überschrift. Hierfür wird \cs{strutbox} aus dem \LaTeXe"~Kernel~-- nachdem
-% \cs{strut} zuvor bereits einmal ausgeführt wird, um die Standardgröße der Box
-% zu verwenden~-- temporär umdefiniert.
-% \begin{macrocode}
-\newrobustcmd*\tud@sec@strut{%
-%<*class>
- \begingroup%
- \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut%
- \endgroup%
-%</class>
-}
%<package&fixfonts>}
% \end{macrocode}
-% \end{macro}^^A \tud@sec@strut
+% \end{macro}^^A \if@tud@sec
% \end{macro}^^A \tud@sec@uppercase
+% \end{macro}^^A \tud@sec@@@format
+% \end{macro}^^A \tud@sec@@format
% \end{macro}^^A \tud@sec@format
% \end{macro}^^A \tud@sec@@fontface
% \end{macro}^^A \tud@sec@fontface
@@ -894,6 +889,21 @@
%<*class&body>
% \fi
%
+% \begin{macro}{\tud@part@hook}
+% \changes{v2.06o}{2022/08/02}{neu}^^A
+% \KOMAScript{} ignoriert für Teile standardmäßig alle Einstellungen für die
+% Option \opt{parskip}. Da diese jedoch für Kapitel Beachtung finden und mit
+% \TUDScript das Erscheinungsbild~-- insbesondere die vertikale Platzierung von
+% Überschriften~-- für diese beiden Elemente einheitlich sein soll, wird über
+% diesen Haken dafür gesorgt, dass \opt{parskip} auch für Teile genutzt wird.
+% \begin{macrocode}
+%<*book|report>
+\newcommand*\tud@part@hook{}
+\let\tud@part@hook\relax
+\AddtoDoHook{heading/begingroup/part}{\tud@part@hook}
+%</book|report>
+% \end{macrocode}
+% \end{macro}^^A \tud@part@hook
% \begin{macro}{\tud@title@fontcolor}
% \begin{macro}{\tud@part@fontcolor}
% \begin{macro}{\tud@chapter@fontcolor}
@@ -929,7 +939,8 @@
% dass die Optionen auch im Dokument geändert und wiederhergestellt werden
% können.
% \ToDo{\cs{...pagecolor} und {\cs{...fontcolor} (part/chapter/title)}}[v2.07]
-% \ToDo{Schriftfarbauswahl in \cs{tud@cd@process}}[v2.07]
+% \ToDo{Farbauswahl in \cs{tud@cd@process} bzw. \KOMAScript{} do-hooks}[v2.07]
+% \ToDo{Überschriften paragraph und subparagraph in Open Sans}[v2.07]
% \begin{macrocode}
\newcommand*\tud@cd@process{%
% \end{macrocode}
@@ -966,16 +977,17 @@
\usekomafont{disposition}%
\raggedtitle%
\tud@sec@fontface%
- \tud@sec@fontsize%
+ \tud@sec@fontsizecmd%
\tud@color{\tud@title@fontcolor}%
}%
\tud@komafont@set{subtitle}{%
- \tud@thesis@fontsize%
- \fontseries{\tud@cdfont@bf}\selectfont%
+ \tud@subtitle@fontsizecmd%
+ \fontseriesforce{\tud@cdfont@bf}\selectfont%
}%
\tud@komafont@set{subject}{%
- \sffamily%
\usesizeofkomafont{section}%
+ \sffamily%
+ \fontseriesforce{\tud@cdfont@bf}\selectfont%
\tud@color{\tud@title@fontcolor}%
}%
%<*book|report|article>
@@ -988,6 +1000,7 @@
% Das gleiche für die Teileseiten.
% \begin{macrocode}
\ifcase\tud@cd@part@num\relax% false
+ \tud@cs@restore{partlineswithprefixformat}%
\tud@cs@restore{scr@part@beforeskip}%
%<*book|report>
\tud@cs@restore{scr@part@innerskip}%
@@ -998,8 +1011,8 @@
\tud@cs@restore{partheadendvskip}%
\tud@cs@restore{partheademptypage}%
\tud@cs@restore{partpagestyle}%
+ \let\tud@part@hook\relax%
%</book|report>
- \tud@cs@restore{partlineswithprefixformat}%
\tud@komafont@unset{part}%
\tud@komafont@unset{partnumber}%
\tud@cs@restore{raggedpart}%
@@ -1014,19 +1027,23 @@
% weiter unten im Quelltext zu finden.
% \begin{macrocode}
\else% !false
+ \tud@cs@store{partlineswithprefixformat}%
+ \let\partlineswithprefixformat\tud@partlineswithprefixformat%
\tud@cs@store{scr@part@beforeskip}%
%<*book|report>
- \renewcommand*\scr@part@beforeskip{\tud@cd@beforeskip}%
+ \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@@dim}%
%</book|report>
%<*article|poster>
- \renewcommand*\scr@part@beforeskip{\tud@cd@afterskip+\baselineskip}%
+ \renewcommand*\scr@part@beforeskip{%
+ \glueexpr\tud@cd@aftervskip@@glue+\baselineskip\relax%
+ }%
%</article|poster>
%<*book|report>
\tud@cs@store{scr@part@innerskip}%
- \renewcommand*\scr@part@innerskip{\tud@cd@innerskip}%
+ \renewcommand*\scr@part@innerskip{\tud@cd@innervskip@@dim}%
%</book|report>
\tud@cs@store{scr@part@afterskip}%
- \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}%
+ \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@@glue}%
\tud@cs@store{partheadstartvskip}%
\let\partheadstartvskip\tud@partheadstartvskip%
%<*book|report>
@@ -1036,9 +1053,14 @@
\let\partheademptypage\tud@partheademptypage%
\tud@cs@store{partpagestyle}%
\renewcommand*\partpagestyle{plain.tudheadings}%
+% \end{macrocode}
+% Mit |\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative| werden
+% normalerweise direkt nach dem Haken |heading/begingroup/part| durch
+% \KOMAScript{} die Einstellungen für die Option \opt{parskip} deaktiviert. Ist
+% das Layout des \CDs aktiv, wird dies unterbunden.
+% \begin{macrocode}
+ \def\tud@part@hook{\let\setparsizes\@gobblefour}%
%</book|report>
- \tud@cs@store{partlineswithprefixformat}%
- \let\partlineswithprefixformat\tud@partlineswithprefixformat%
% \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.
@@ -1049,6 +1071,7 @@
}%
\tud@komafont@set{partnumber}{%
\tud@sec@fontface%
+ \tud@prefix@fontsizecmd%
\tud@color{\tud@part@fontcolor}%
}%
\tud@cs@store{raggedpart}%
@@ -1061,12 +1084,12 @@
% \begin{macrocode}
%<*book|report>
\ifcase\tud@cd@chapter@num\relax% false
+ \tud@cs@restore{chapterlineswithprefixformat}%
+ \tud@cs@restore{chapterlinesformat}%
\tud@cs@restore{scr@chapter@beforeskip}%
\tud@cs@restore{scr@chapter@innerskip}%
\tud@cs@restore{scr@chapter@afterskip}%
\tud@cs@restore{chapterheadstartvskip}%
- \tud@cs@restore{chapterlineswithprefixformat}%
- \tud@cs@restore{chapterlinesformat}%
\tud@cs@restore{tud@chapter@before@hook}%
\tud@cs@restore{tud@chapter@after@hook}%
\tud@komafont@unset{chapter}%
@@ -1078,25 +1101,25 @@
% angepassten Befehle abermals über \cs{let}.
% \begin{macrocode}
\else% !false
+ \tud@cs@store{chapterlineswithprefixformat}%
+ \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat%
+ \tud@cs@store{chapterlinesformat}%
+ \let\chapterlinesformat\tud@chapterlinesformat%
\tud@cs@store{scr@chapter@beforeskip}%
- \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforeskip}%
+ \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@@dim}%
\tud@cs@store{scr@chapter@innerskip}%
- \renewcommand*\scr@chapter@innerskip{\tud@cd@innerskip}%
+ \renewcommand*\scr@chapter@innerskip{\tud@cd@innervskip@@dim}%
\tud@cs@store{scr@chapter@afterskip}%
- \renewcommand*\scr@chapter@afterskip{\tud@cd@afterskip}%
+ \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@@glue}%
\tud@cs@store{chapterheadstartvskip}%
\let\chapterheadstartvskip\tud@chapterheadstartvskip%
- \tud@cs@store{chapterlineswithprefixformat}%
- \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat%
- \tud@cs@store{chapterlinesformat}%
- \let\chapterlinesformat\tud@chapterlinesformat%
\tud@cs@store{tud@chapter@before@hook}%
\renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}%
\tud@cs@store{tud@chapter@after@hook}%
\renewcommand*\tud@chapter@after@hook{\tud@chapter@app}%
\tud@komafont@set{chapter}{%
\tud@sec@fontface%
- \tud@sec@fontsize%
+ \tud@sec@fontsizecmd%
\tud@color{\tud@chapter@fontcolor}%
}%
\tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}%
@@ -1146,12 +1169,12 @@
\renewcommand*\raggedsection{\tud@raggedright}%
\tud@cs@store{minisec}%
\renewcommand\minisec[1]{%
- \tud@cs@use{minisec}{\tud@sec@format{##1}}%
+ \tud@cs@use{minisec}{\tud@sec@format*{##1}}%
}%
\tud@komafont@set{minisec}{%
\tud@sec@fontface%
\ifcase\tud@cd@section@num\relax\or\else% *color
- \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}%
+ \tud@if@strequal{\tud@pagecolor}{HKS41}{}{\color{HKS41}}%
\fi%
}%
\fi%
@@ -1218,15 +1241,16 @@
% \end{macrocode}
% \end{macro}^^A \tud@cd@specialpage@unset
% \end{macro}^^A \tud@cd@specialpage@set
-% \begin{macro}{\tud@cd@headstartvskip}
+% \begin{macro}{\tud@cd@headstart@vskip}
% \changes{v2.06}{2018/08/01}{neu}^^A
+% \changes{v2.06o}{2022/08/02}{Bugfix für vertikale Unterschiede}^^A
% \begin{macro}{\tud@cd@vphantom}
% \changes{v2.06}{2018/08/01}{neu}^^A
-% \begin{macro}{\tud@cd@beforeskip}
+% \begin{macro}{\tud@cd@beforevskip@@dim}
% \changes{v2.06}{2018/08/01}{neu}^^A
-% \begin{macro}{\tud@cd@innerskip}
+% \begin{macro}{\tud@cd@innervskip@@dim}
% \changes{v2.06}{2018/08/01}{neu}^^A
-% \begin{macro}{\tud@cd@afterskip}
+% \begin{macro}{\tud@cd@aftervskip@@glue}
% \changes{v2.06}{2018/08/01}{neu}^^A
% Im \TUDCD werden sowohl Titel als auch Teil- und Kapitelüberschriften auf der
% gleichen Grundlinienhöhe gesetzt. Hierfür sind Anpassungen der entsprechenden
@@ -1235,26 +1259,40 @@
% \cs{chapterheadstartvskip} gesetzt. Um das Layout des \CDs umzusetzen, werden
% diese beiden Makros als Haken genutzt.
%
-% Das Makro \cs{tud@cd@beforeskip} enthält den Abstand vor einer Überschrift,
-% welcher über \cs{tud@cd@headstartvskip} gesetzt wird. Der Abstand zwischen
+% Das Makro \cs{tud@cd@beforevskip@@dim} ist der Abstand vor einer Überschrift,
+% welcher über \cs{tud@cd@headstart@vskip} gesetzt wird. Der Abstand zwischen
% der Nummerierung eines Teils und der eigentlichen Bezeichnung wird mit
-% \cs{tud@cd@innerskip} definiert und durch \KOMAScript{} eingefügt. Gleiches
-% gilt für eine separate Kapitelnummernzeile (\opt{chapterprefix}) und dem
-% eigentlichen Kapiteltitel. Durch \cs{tud@cd@afterskip} wird der Abstand
-% zwischen Titel und Fließtext respektive der unteren Prääambel definiert.
-% Dieser Abstand ist abhängig von der gewählten Einstellung für \opt{headings}.
-% \begin{macrocode}
-\newcommand*\tud@cd@beforeskip{%
- \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax%
+% \cs{tud@cd@innervskip@@dim} definiert und durch \KOMAScript{} eingefügt.
+% Gleiches gilt für eine separate Kapitelnummernzeile (\opt{chapterprefix}) und
+% dem eigentlichen Kapiteltitel. Durch \cs{tud@cd@aftervskip@@glue} wird der
+% Abstand zwischen Titel und Fließtext respektive der unteren Prääambel
+% definiert. Dieser Abstand ist abhängig von der gewählten Einstellung für die
+% Option \opt{headings}.
+% \begin{macrocode}
+\newcommand*\tud@cd@beforevskip@@dim{%
+ \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax%
}
-\newcommand*\tud@cd@innerskip{.25\baselineskip}%
-\newcommand*\tud@cd@afterskip{%
- .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip%
+\newcommand*\tud@cd@innervskip@@dim{%
+ \dimexpr(\tud@sec@baselineskip@@dim)/5\relax%
+}%
+\newcommand*\tud@cd@aftervskip@@glue{%
+ \glueexpr
+ \dimexpr(\tud@sec@baselineskip@@dim)*4/5\relax
+ \@plus\dimexpr(\tud@sec@baselineskip@@dim)/20\relax
+ \@minus\dimexpr(\tud@sec@baselineskip@@dim)/10\relax
+ \relax
}
-\newcommand*\tud@cd@headstartvskip{%
- \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax%
- \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi%
- \null\vskip-\baselineskip\vskip\@tempskipa%
+% \end{macrocode}
+% Dieses Konstrukt ist mehr oder weniger durch Ausprobieren entstanden, da für
+% die unterschiedlichen Einstellungsmöglichkeiten der Option \opt{headings} je
+% nach gewählter Größe der Überschriften leichte Verschiebungen und Sprünge für
+% die unterschiedlichen Varianten\footnote{Prefix, Untertitel, Absatzabstände}
+% aufgetreten sind.
+% \begin{macrocode}
+\newcommand*\tud@cd@headstart@vskip{%
+ \tud@setdim\@tempdima{\tud@cd@beforevskip@@dim}%
+ \tud@length@setabsolute\@tempdima%
+ \null\vskip\dimexpr\glueexpr\@tempdima-\f@baselineskip-\parskip\relax\relax%
}
% \end{macrocode}
% Sollte keine Präfixzeile für Teile oder Kapitel verwendet werden, muss für
@@ -1263,17 +1301,17 @@
% \begin{macrocode}
\newcommand*\tud@cd@vphantom{%
\begingroup%
- \usekomafont{partnumber}{\nobreak\tud@sec@strut}%
- \setlength\@tempskipa{\tud@cd@innerskip}%
- \par\nobreak\vskip\@tempskipa%
+ \usekomafont{partnumber}{%
+ \tud@sec@format{\vskip\tud@cd@innervskip@@dim}%
+ }%
\endgroup%
}
% \end{macrocode}
-% \end{macro}^^A \tud@cd@afterskip
-% \end{macro}^^A \tud@cd@innerskip
-% \end{macro}^^A \tud@cd@beforeskip
+% \end{macro}^^A \tud@cd@aftervskip@@glue
+% \end{macro}^^A \tud@cd@innervskip@@dim
+% \end{macro}^^A \tud@cd@beforevskip@@dim
% \end{macro}^^A \tud@cd@vphantom
-% \end{macro}^^A \tud@cd@headstartvskip
+% \end{macro}^^A \tud@cd@headstart@vskip
%
% \iffalse
%<*book|report>
@@ -1282,6 +1320,41 @@
% \subsection{Positionierung und Formatierung von Überschriften}
% \subsubsection{Präambeln für Teile und Kapitel}
%
+% \begin{macro}{\scr@startpart}
+% Für die Präambel von Teilen muss ebenfalls etwas gebastelt werden, um das
+% Erscheinungsbild an das von Teilen anzupassen, falls das Layout des \CDs
+% aktiv ist.
+% \begin{macrocode}
+\patchcmd\scr@startpart{%
+ \partheadstartvskip
+ \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}%
+ \vskip-\baselineskip\nobreak
+}{%
+ \ifcase\tud@cd@part@num\relax% false
+ \partheadstartvskip%
+ \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}%
+ \vskip-\baselineskip\nobreak%
+ \else%
+% \end{macrocode}
+% Im Gegensatz zur ursprünglichen Definition wird die Präambel vor der
+% vertikalen Formatierung des Teils ausgegeben und an die Kapitelpräambel
+% angeglichen.
+% \begin{macrocode}
+ {%
+ \setbox\z@\vbox{%
+ \vskip\dimexpr%
+ \tud@cd@innervskip@@dim-\tud@sec@baselineskip@@dim-\baselineskip%
+ \relax%
+ \use@preamble{#1@o}\strut\par%
+ }%
+ \vbox to \z@{\box\z@\vss}%
+ \vskip\dimexpr\parskip-\baselineskip\relax%
+ }%
+ \partheadstartvskip%
+ \fi%
+}{}{\tud@patch@wrn{scr@startpart}}
+% \end{macrocode}
+% \end{macro}^^A \scr@startpart
% \begin{macro}{\tud@preamble@fontcolor}
% \changes{v2.06}{2018/08/08}{neu}^^A
% Der Befehl wird innerhalb von \cs{set@@@@preamble} genutzt, um die notwendige
@@ -1303,8 +1376,8 @@
% Zunächst wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln
% ausgeglichen.
% \begin{macrocode}
- \@tempskipa=\glueexpr\tud@cd@afterskip\relax%
- \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi%
+ \tud@setglue\@tempskipa{\tud@cd@aftervskip@@glue}%
+ \tud@length@setabsolute\@tempskipa%
\vskip\@tempskipa%
% \end{macrocode}
% Anschließend folgen die Anpassungen für die Teilpräambel.
@@ -1313,7 +1386,7 @@
\renewcommand*\tud@abstract@level@num{1}%
\fi%
\KOMAoptions{titlepage=false}%
- \null\vskip-\baselineskip%
+ \null\vskip-1\baselineskip%
\addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}%
\addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}%
\let\tud@preamble@fontcolor\tud@part@fontcolor%
@@ -1332,7 +1405,7 @@
\renewcommand*\tud@abstract@level@num{1}%
\fi%
\KOMAoptions{titlepage=false}%
- \null\vskip-\baselineskip%
+ \null\vskip-1\baselineskip%
% \end{macrocode}
% Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig.
% \begin{macrocode}
@@ -1362,7 +1435,7 @@
\hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
}%
}
-\patchcmd{\set@@@@preamble}{%
+\patchcmd\set@@@@preamble{%
\hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}%
}{%
\def\@tempa####1@####2{%
@@ -1402,8 +1475,8 @@
% Die Schriftelement für die Untertitel von Teilen.
% \begin{macrocode}
\newkomafont{partsubtitle}{%
- \tud@thesis@fontsize%
- \fontseries{\tud@cdfont@bf}\selectfont%
+ \tud@subtitle@fontsizecmd%
+ \fontseriesforce{\tud@cdfont@bf}\selectfont%
\tud@color{\tud@part@fontcolor}%
}
\aliaskomafont{parttitle}{partsubtitle}
@@ -1427,8 +1500,8 @@
% Die Schriftelement für die Untertitel von Kapiteln.
% \begin{macrocode}
\newkomafont{chaptersubtitle}{%
- \tud@thesis@fontsize%
- \fontseries{\tud@cdfont@bf}\selectfont%
+ \tud@subtitle@fontsizecmd%
+ \fontseriesforce{\tud@cdfont@bf}\selectfont%
\tud@color{\tud@chapter@fontcolor}%
}
%</book|report>
@@ -1442,7 +1515,10 @@
% \begin{macrocode}
\newcommand*\tud@sec@subtitle[1]{%
\ifcsvoid{tud@#1@subtitle}{}{%
- {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par%
+ {\usekomafont{#1subtitle}{%
+ \vskip-1\parskip%
+ \tud@sec@format{\csuse{tud@#1@subtitle}}%
+ }}\par%
\global\cslet{tud@#1@subtitle}{\@empty}%
}%
}
@@ -1461,11 +1537,12 @@
%
% Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand
% beibehalten und lediglich die Farbanpassung hinzugefügt.
+% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
% \begin{macrocode}
%<*article|poster>
\newcommand*\tud@partheadstartvskip{}
\let\tud@partheadstartvskip\partheadstartvskip
-\pretocmd{\tud@partheadstartvskip}{%
+\pretocmd\tud@partheadstartvskip{%
\renewcommand*\tud@part@fontcolor{}% false/true
\ifcase\tud@cd@part@num\relax\or\else% *color
\renewcommand*\tud@part@fontcolor{HKS41}%
@@ -1477,6 +1554,9 @@
% und die vertikalen Abstände neu definiert.
% \begin{macrocode}
%<*book|report>
+\AddtoDoHook{heading/preinit/part}{
+ \TUD@deprecated@length\pageheadingsvskip%
+}
\newcommand*\tud@partheadstartvskip{%
\renewcommand*\tud@part@fontcolor{}% false/true
\ifcase\tud@cd@part@num\relax\or\or% litecolor
@@ -1491,9 +1571,8 @@
\renewcommand*\tud@part@fontcolor{HKS41!30}%
\fi%
\tud@cd@specialpage@set{part}%
- \tud@cd@headstartvskip%
- \TUD@deprecated@lengthcs{pageheadingsvskip}%
- \vspace*{\tud@dim@pageheadingsvskip}%
+ \tud@cd@headstart@vskip%
+ \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}%
}
%</book|report>
% \end{macrocode}
@@ -1537,11 +1616,13 @@
% \changes{v2.06}{2018/08/01}{neu}^^A
% \begin{macro}{\tud@partformat}
% \changes{v2.06}{2018/08/01}{neu}^^A
+% \changes{v2.06o}{2022/08/02}{Bugfix für Option \opt{parttitle}}^^A
% Die Formatierungsbefehle für die Überschriften von Teilen.
% \begin{macrocode}
\newcommand*\tud@partformat{}%
\newcommand*\tud@partlineswithprefixformat[3]{%
%<*book|report>
+ \vskip-2\parskip%
\if@tud@parttitle%
\ifx\@@title\@empty%
\ClassWarning{\TUD@Class@Name}{%
@@ -1550,25 +1631,44 @@
}%
\fi%
\tud@cd@vphantom%
- \tud@sec@format[#1]{%
- \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}%
+ \usekomafont{#1}{%
+ \tud@sec@format{\nobreak\interlinepenalty\@M\@@title\strut\@@par}%
}%
- \setpartsubtitle{%
- \setkomafont{part}{}%
- \tud@sec@format[partnumber]{\IfUseNumber{\partformat\enskip}{}#3}%
+% \end{macrocode}
+% Hier wird etwas hemdsärmlich der eigentliche Titel aus |#3| extrahiert.
+% \begin{macrocode}
+ \def\tud@partformat##1\nobreak\interlinepenalty\@M##2\strut\@@par##3\@nil{%
+ \def\tud@partformat{\IfUseNumber{\partformat\enskip}{}##2}%
}%
+ \expandafter\expandafter\expandafter\tud@partformat%
+ \expandafter\@firstofone\@gobbletwo#3\@nil%
+ \expandafter\setpartsubtitle\expandafter{\tud@partformat}%
\else%
%</book|report>
\edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}%
\let\partformat\tud@partformat%
\IfUseNumber{}{\tud@cd@vphantom}%
- #2\tud@sec@format[#1]{#3}%
+ #2\tud@sec@format[{#1}]{#3}%
%<*book|report>
\fi%
%</book|report>
\tud@sec@subtitle{#1}%
}
% \end{macrocode}
+% Beim Aufruf von \cs{partlineswithprefixformat} nutzt \KOMAScript im dritten
+% Argument intern \cs{usekomafont}|{part}|. Für die Verwendung von \DIN in der
+% Überschrift wird das besagte Argument allerdings via \cs{tud@sec@format} mit
+% \cs{MakeUppercase} ummantelt. Der daraus letztendlich resultierende Aufruf
+% |\MakeUppercase{\usekomafont{part}{...#3...}}| führt zu einem Fehler. Der
+% nachfolgende Patch behebt das Problem.
+% \begin{macrocode}
+\if@tud@cdoldfont@active
+ \patchcmd\tud@partlineswithprefixformat
+ {#2\tud@sec@format[{#1}]{#3}}
+ {#2\tud@sec@format[{#1}]{}\addtokomafont{#1}{\tud@sec@format}#3}
+ {}{\tud@patch@wrn{tud@partlineswithprefixformat}}
+\fi
+% \end{macrocode}
% \end{macro}^^A \tud@partformat
% \end{macro}^^A \tud@partlineswithprefixformat
%
@@ -1584,19 +1684,25 @@
% \CD angepasst. Mit der Option \opt{headingsvskip} kann diese vertikal durch
% den Benutzer verschoben werden. Außerdem werden die benötigten Farben für die
% jeweils gewählte Option ausgewählt.
+% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
% \begin{macrocode}
+\AddtoDoHook{heading/preinit/chapter}{
+ \if@tud@chapterpage%
+ \TUD@deprecated@length\pageheadingsvskip%
+ \else%
+ \TUD@deprecated@length\headingsvskip%
+ \fi%
+}
\newcommand*\tud@chapterheadstartvskip{%
\renewcommand*\tud@chapter@fontcolor{}%
\ifcase\tud@cd@chapter@num\relax\or\else% *color
\renewcommand*\tud@chapter@fontcolor{HKS41}%
\fi%
- \tud@cd@headstartvskip%
+ \tud@cd@headstart@vskip%
\if@tud@chapterpage%
- \TUD@deprecated@lengthcs{pageheadingsvskip}%
- \vspace*{\tud@dim@pageheadingsvskip}%
+ \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}%
\else%
- \TUD@deprecated@lengthcs{headingsvskip}%
- \vspace*{\tud@dim@headingsvskip}%
+ \vspace*{\dimexpr\tud@headingsvskip@dim\relax}%
\fi%
}
% \end{macrocode}
@@ -1611,17 +1717,15 @@
% \begin{macrocode}
\newcommand*\tud@chapterformat{}%
\newcommand*\tud@chapterlineswithprefixformat[3]{%
- \edef\tud@chapterformat{%
- \noexpand\tud@sec@format{\expandonce\chapterformat}%
- }%
+ \edef\tud@chapterformat{\noexpand\tud@sec@format{\expandonce\chapterformat}}%
\let\chapterformat\tud@chapterformat%
\IfUseNumber{}{\tud@cd@vphantom}%
- #2\tud@sec@format[#1]{#3}%
+ #2\tud@sec@format[{#1}]{#3}%
\tud@sec@subtitle{#1}%
}
\newcommand*\tud@chapterlinesformat[3]{%
\tud@cd@vphantom%
- \@hangfrom{#2}{\tud@sec@format[#1]{#3}}%
+ \@hangfrom{#2}{\tud@sec@format[{#1}]{#3}}%
\tud@sec@subtitle{#1}%
}
% \end{macrocode}
@@ -1638,6 +1742,7 @@
% der Kapitel durch die beiden Haken \cs{tud@chapter@before@hook} sowie
% \cs{tud@chapter@after@hook}, den Start und das Ende der Gliederungsbefehle
% für Kapitel definieren.
+% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
% \begin{macrocode}
\newcommand*\tud@chapter@pre{%
\if@tud@chapterpage%
@@ -1751,16 +1856,17 @@
% Die beiden Haken \cs{tud@chapter@before@hook} und \cs{tud@chapter@after@hook}
% werden den \KOMAScript-Befehlen hinzugefügt, welche den Start und das Ende
% der Gliederungsbefehle für Kapitel definieren.
+% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07]
% \begin{macrocode}
\newcommand*\tud@chapter@before@hook{}
\newcommand*\tud@chapter@after@hook{}
-\pretocmd{\scr@startchapter}{%
+\pretocmd\scr@startchapter{%
\tud@chapter@before@hook%
}{}{\tud@patch@wrn{scr@startchapter}}
-\apptocmd{\scr@@startchapter}{%
+\apptocmd\scr@@startchapter{%
\tud@chapter@after@hook%
}{}{\tud@patch@wrn{scr@@startchapter}}
-\apptocmd{\scr@@startschapter}{%
+\apptocmd\scr@@startschapter{%
\tud@chapter@after@hook%
}{}{\tud@patch@wrn{scr@@startschapter}}
% \end{macrocode}
@@ -1778,11 +1884,12 @@
%
% Die Farbwahl wird einfach in dem von \KOMAScript{} bereitgestellten Haken
% zu Beginn einer Abschnittsüberschrift ausgeführt.
+% \ToDo{use AddtoDoHook{heading/postinit}}[v2.07]
% \begin{macrocode}
\At@startsection{%
\renewcommand*\tud@section@fontcolor{}%
\ifcase\tud@cd@section@num\relax\or\else% *color
- \ifstr{\tud@pagecolor}{HKS41}{}{%
+ \tud@if@strequal{\tud@pagecolor}{HKS41}{}{%
\renewcommand*\tud@section@fontcolor{HKS41}%
}%
\fi%
@@ -1795,14 +1902,10 @@
% Die Formatierungsbefehle für die Überschriften von Abschnitten etc.
% \begin{macrocode}
\newcommand*\tud@sectionlinesformat[4]{%
- \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}%
+ \@hangfrom{\hskip #2#3}{\tud@sec@format*[{#1}]{#4}}%
}
-% \end{macrocode}
-% Für Überschriften mit Einzug wird \cs{tud@sec@strut} wirkungslos definiert.
-% \begin{macrocode}
\newcommand*\tud@sectioncatchphraseformat[4]{%
- \let\tud@sec@strut\relax%
- \hskip #2#3\tud@sec@format[#1]{#4}%
+ \hskip #2#3\tud@sec@format*[{#1}]{#4}%
}
% \end{macrocode}
% \end{macro}^^A \tud@sectioncatchphraseformat
@@ -1812,7 +1915,6 @@
%</class&body>
% \fi
%
-%
-% \Finale
+% \PrintBackMatter
%
\endinput