summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tudscr/source/tudscr-area.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-area.dtx')
-rw-r--r--macros/latex/contrib/tudscr/source/tudscr-area.dtx907
1 files changed, 452 insertions, 455 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-area.dtx b/macros/latex/contrib/tudscr/source/tudscr-area.dtx
index 52414b66a7..3dad8f1d9c 100644
--- a/macros/latex/contrib/tudscr/source/tudscr-area.dtx
+++ b/macros/latex/contrib/tudscr/source/tudscr-area.dtx
@@ -1,10 +1,10 @@
-% \CheckSum{2307}
% \iffalse meta-comment
+%/GitFileInfo=tudscr-area.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-area.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-area.dtx}[2020/06/18 v2.06g TUD-Script\space%
- (type or page area)%
-]
-%
-% \iffalse
+\ProvidesFile{tudscr-area.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-area.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}
@@ -86,6 +65,8 @@
% \changes{v2.05}{2016/04/03}{Unterstützung von Schnittmarken mit den Paketen
% \pkg{geometry} und \pkg{crop}}^^A
%
+%
+%
% \section{Der Satzspiegel für \TUDScript}
%
% Das \CD verlangt (eigentlich) einen fest vorgegebenen Satzspiegel. Für das
@@ -93,15 +74,13 @@
% andere als glücklich gewählt. Insbesondere für den doppelseitigen Satz ist
% das Standardlayout nicht gut nutzbar. Für die \TUDScript-Klassen wird
% deshalb die Abweichung vom sonst fest vorgegebenen Satzspiegel ermöglicht.
-% \ToDo{%
+% \ToDo{
% Unterstützung von PDF-Boxen für die Druckausgabe
%^^A\url{https://groups.google.com/forum/#!topic/de.comp.text.tex/1gouJ0Zov6o}
-%^^A\url{http://tex.stackexchange.com/questions/248902/}
+%^^A\url{http://tex.stackexchange.com/q/248902}
%^^A\url{https://wiki.scribus.net/canvas/PDF_Boxes_:_mediabox,_cropbox,_bleedbox,_trimbox,_artbox}
%^^A\url{http://www.prepressure.com/pdf/basics/page-boxes}
-% }[v2.07]
-%
-% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
+% }[v2.08]
%
% \iffalse
%<*class&body>
@@ -123,7 +102,7 @@
% zu zentrieren. Diese Einstellung geht beim Laden eines neuen Satzspiegels mit
% \cs{loadgeometry} verloren. Hiermit wird das Problem behoben.
% \begin{macrocode}
-\newif\if@tud@x@crop@center
+\tud@newif\if@tud@x@crop@center
\AfterPackage{crop}{%
\CheckCommand*\CROP@center{%
\voffset\stockheight
@@ -133,7 +112,7 @@
\advance\hoffset-\paperwidth
\hoffset.5\hoffset
}%
- \pretocmd{\CROP@center}{%
+ \pretocmd\CROP@center{%
\@tud@x@crop@centertrue%
}{}{\tud@patch@wrn{CROP@center}}%
}
@@ -159,12 +138,12 @@
% ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die
% Klasse \cls{standalone} gar nicht geladen wurde.
% \begin{macrocode}
-\newif\if@tud@x@standalone@crop
+\tud@newif\if@tud@x@standalone@crop
\AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop}
% \end{macrocode}
% \end{macro}^^A \if@tud@x@standalone@crop
%
-% \subsection{Definition der Größen und Maße in abhängig vom Papierformat}
+% \subsection{Definition der Größen und Maße abhängig vom Papierformat}
%
% Die \TUDScript-Klassen sollen neben den vom \CD vorgegebenen Seitenrändern
% weitere Satzspiegel ermöglichen und u.\,a. auch die Nutzung des Paketes
@@ -174,101 +153,101 @@
% Seitenränder direkt gewählt oder aber die mit \pkg{typearea} berechneten Maße
% an \pkg{geometry} durchgereicht.
%
-% \begin{length}{\tud@len@widemargin}
-% \begin{length}{\tud@len@slimmargin}
-% \begin{length}{\tud@len@both}
+% \begin{length}{\tud@dim@widemargin}
+% \begin{length}{\tud@dim@slimmargin}
+% \begin{length}{\tud@dim@bothmargin}
% Die Seitenränder für links und rechts sowie deren Summe, welche später für
% weitere Satzspiegeleinstelungen dazu verwendet wird, diese anteilig zu
% verteilen.
% \begin{macrocode}
-\newlength\tud@len@widemargin
-\newlength\tud@len@slimmargin
-\newlength\tud@len@both
-% \end{macrocode}
-% \end{length}^^A \tud@len@both
-% \end{length}^^A \tud@len@slimmargin
-% \end{length}^^A \tud@len@widemargin
-% \begin{length}{\tud@len@topmargin}
-% \begin{length}{\tud@len@barheight}
-% \begin{length}{\tud@len@headsep}
-% \begin{length}{\tud@len@footsep}
+\tud@newdim\tud@dim@widemargin
+\tud@newdim\tud@dim@slimmargin
+\tud@newdim\tud@dim@bothmargin
+% \end{macrocode}
+% \end{length}^^A \tud@dim@bothmargin
+% \end{length}^^A \tud@dim@slimmargin
+% \end{length}^^A \tud@dim@widemargin
+% \begin{length}{\tud@dim@topmargin}
+% \begin{length}{\tud@dim@barheight}
+% \begin{length}{\tud@dim@headsep}
+% \begin{length}{\tud@dim@footsep}
% Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe
% oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale
% (Mindest"~)Abstand zwischen Querbalken und Textkörper sowie der Fußzeile.
% \begin{macrocode}
-\newlength\tud@len@topmargin
-\newlength\tud@len@barheight
-\newlength\tud@len@headsep
-\newlength\tud@len@footsep
-% \end{macrocode}
-% \end{length}^^A \tud@len@footsep
-% \end{length}^^A \tud@len@headsep
-% \end{length}^^A \tud@len@barheight
-% \end{length}^^A \tud@len@topmargin
-% \begin{length}{\tud@len@logox}
-% \begin{length}{\tud@len@logoy}
-% \begin{length}{\tud@len@logowidth}
+\tud@newdim\tud@dim@topmargin
+\tud@newdim\tud@dim@barheight
+\tud@newdim\tud@dim@headsep
+\tud@newdim\tud@dim@footsep
+% \end{macrocode}
+% \end{length}^^A \tud@dim@footsep
+% \end{length}^^A \tud@dim@headsep
+% \end{length}^^A \tud@dim@barheight
+% \end{length}^^A \tud@dim@topmargin
+% \begin{length}{\tud@dim@logox}
+% \begin{length}{\tud@dim@logoy}
+% \begin{length}{\tud@dim@logowidth}
% Außerdem müssen Abmessungen und Position des TUD-Logos definiert werden,
% genauer der horizontale (Soll"~)Abstand zwischen linkem Seitenrand und Logo,
% der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo sowie die
% Breite und Höhe\footnote{Proportionen sind durch die Grafik vorgegeben} des
% Logos.
% \begin{macrocode}
-\newlength\tud@len@logox
-\newlength\tud@len@logoy
-\newlength\tud@len@logowidth
+\tud@newdim\tud@dim@logox
+\tud@newdim\tud@dim@logoy
+\tud@newdim\tud@dim@logowidth
% \end{macrocode}
-% \end{length}^^A \tud@len@logowidth
-% \end{length}^^A \tud@len@logoy
-% \end{length}^^A \tud@len@logox
-% \begin{length}{\tud@len@line}
+% \end{length}^^A \tud@dim@logowidth
+% \end{length}^^A \tud@dim@logoy
+% \end{length}^^A \tud@dim@logox
+% \begin{length}{\tud@dim@line}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{length}{\tud@len@heavyline}
-% \begin{length}{\tud@len@thinline}
+% \begin{length}{\tud@dim@heavyline}
+% \begin{length}{\tud@dim@thinline}
% Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler
% als im Layout mit farbigem Hintergrund.\footnote{monochrom
-% \cs{tud@len@thinline}, koloriert \cs{tud@len@heavyline}} Da im Dokument beide
-% Varianten vorkommen können, wird die Breite \cs{tud@len@line} durch den
-% Seitenstil situativ entweder auf den Wert von \cs{tud@len@thinline} oder aber
-% \cs{tud@len@heavyline} gesetzt.
-% \begin{macrocode}
-\newlength\tud@len@line
-\newlength\tud@len@heavyline
-\newlength\tud@len@thinline
-% \end{macrocode}
-% \end{length}^^A \tud@len@thinline
-% \end{length}^^A \tud@len@heavyline
-% \end{length}^^A \tud@len@line
-% \begin{length}{\tud@len@areaheadvskip}
+% \cs{tud@dim@thinline}, koloriert \cs{tud@dim@heavyline}} Da im Dokument beide
+% Varianten vorkommen können, wird die Breite \cs{tud@dim@line} durch den
+% Seitenstil situativ entweder auf den Wert von \cs{tud@dim@thinline} oder aber
+% \cs{tud@dim@heavyline} gesetzt.
+% \begin{macrocode}
+\tud@newdim\tud@dim@line
+\tud@newdim\tud@dim@heavyline
+\tud@newdim\tud@dim@thinline
+% \end{macrocode}
+% \end{length}^^A \tud@dim@thinline
+% \end{length}^^A \tud@dim@heavyline
+% \end{length}^^A \tud@dim@line
+% \begin{length}{\tud@dim@areaheadvskip}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% \begin{length}{\tud@len@areadiff}
-% \begin{length}{\tud@len@areavskip}
+% \begin{length}{\tud@dim@areadiff}
+% \begin{length}{\tud@dim@areavskip}
% Die Längen für den vertikalen Standardversatz der Überschriften sowie die
% Differenz der Kopfhöhen von normalem und TUD-Kopf-Satzspiegel. Die Differenz
% zwischen den unterschiedlichen Kopfhöhen der Satzspiegelvarianten wird durch
-% \cs{tud@cdgeometry@@process} berechnet und dabei in \cs{tud@len@areadiff}
+% \cs{tud@cdgeometry@@process} berechnet und dabei in \cs{tud@dim@areadiff}
% gespeichert. Dabei muss unterschieden werden, ober der Satzspiegel des \CDs
% oder der durch \pkg{typearea} berechnete respektive durch den Anwender mit
% \pkg{geometry} vorgegebene genutzt wird. Davon abhängig wird zum Ausgleich
-% die Länge \cs{tud@len@areavskip} definiert.
+% die Länge \cs{tud@dim@areavskip} definiert.
% \begin{macrocode}
-\newlength\tud@len@areaheadvskip
-\newlength\tud@len@areadiff
-\newlength\tud@len@areavskip
+\tud@newdim\tud@dim@areaheadvskip
+\tud@newdim\tud@dim@areadiff
+\tud@newdim\tud@dim@areavskip
% \end{macrocode}
-% \end{length}^^A \tud@len@areavskip
-% \end{length}^^A \tud@len@areadiff
-% \end{length}^^A \tud@len@areaheadvskip
-% \begin{length}{\tud@len@ddcdiff}
+% \end{length}^^A \tud@dim@areavskip
+% \end{length}^^A \tud@dim@areadiff
+% \end{length}^^A \tud@dim@areaheadvskip
+% \begin{length}{\tud@dim@ddcdiff}
% \changes{v2.02}{2014/06/23}{neu}^^A
-% Zu guter Letzt noch die Länge \cs{tud@len@ddcdiff} für den Höhenausgleich des
+% Zu guter Letzt noch die Länge \cs{tud@dim@ddcdiff} für den Höhenausgleich des
% Seitenfußes, welcher bei der Verwendung des \DDC-Logos in der Fußzeile bei
% Version~v2.02 für den Satzspiegel notwendig war. Dieser etwas verschrobene
% Satzspiegel wird im Kompatibilitätsmodus weiterhin angeboten.
% \begin{macrocode}
-\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{}
+\tud@if@v@lower{2.03}{\tud@newdim\tud@dim@ddcdiff}{}
% \end{macrocode}
-% \end{length}^^A \tud@len@ddcdiff
+% \end{length}^^A \tud@dim@ddcdiff
% \begin{macro}{\tud@head@fontsize}
% Für den Querbalken wird außerdem die zu verwendende Schriftgröße definiert.
% \begin{macrocode}
@@ -277,7 +256,7 @@
% \end{macro}^^A \tud@head@fontsize
% \begin{macro}{\tud@cdgeometry@set}
% \changes{v2.03}{2015/01/23}{Längenberechnung für den Satzspiegel an
-% Referenzlänge \cs{tud@len@widemargin} gekoppelt}^^A
+% Referenzlänge \cs{tud@dim@widemargin} gekoppelt}^^A
% \changes{v2.05}{2015/07/15}{Fallunterscheidung an DIN-B-Reihe angepasst}^^A
% \changes{v2.05}{2016/04/03}{Option \opt{layout} von \pkg{geometry} möglich}^^A
% \begin{macro}{\if@tud@cdgeometry@adjust}
@@ -290,18 +269,18 @@
% \changes{v2.06g}{2020/06/18}{neu}^^A
% \begin{macro}{\tud@cdgeometry@papersize@last}
% \changes{v2.06g}{2020/06/18}{neu}^^A
-% \begin{length}{\tud@len@layoutwidth}
+% \begin{length}{\tud@dim@layoutwidth}
% \changes{v2.05}{2016/04/03}{neu}^^A
-% \begin{length}{\tud@len@layoutheight}
+% \begin{length}{\tud@dim@layoutheight}
% \changes{v2.05}{2016/04/03}{neu}^^A
-% \begin{length}{\tud@len@layouthoffset}
+% \begin{length}{\tud@dim@layouthoffset}
% \changes{v2.05}{2016/04/03}{neu}^^A
-% \begin{length}{\tud@len@layoutvoffset}
+% \begin{length}{\tud@dim@layoutvoffset}
% \changes{v2.05}{2016/04/03}{neu}^^A
% Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die
% Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die
% Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch
-% \cs{tud@cdgeometry@@process}. Dabei fungiert \cs{tud@len@widemargin} als
+% \cs{tud@cdgeometry@@process}. Dabei fungiert \cs{tud@dim@widemargin} als
% Bezugslänge. Die maßgebliche Papiergröße ist DIN~A4 bzw. DIN~B4. Die Längen
% für alle anderen Papiermaße unterscheiden sich um den Faktor~$\sqrt{2}$,
% wobei das Format DIN~A5 nach den Vorgaben des \CDs übersprungen wird.
@@ -311,49 +290,49 @@
% Mit der Einstellung \opt{cdgeometry}|=|\val{adapted} wird auch das Format
% DIN~A5 mit den skalierten Seitenrändern erstellt.
% \begin{macrocode}
-\newif\if@tud@cdgeometry@adjust
-\newlength\tud@len@layoutwidth
-\newlength\tud@len@layoutheight
-\newlength\tud@len@layouthoffset
-\newlength\tud@len@layoutvoffset
+\tud@newif\if@tud@cdgeometry@adjust
+\tud@newdim\tud@dim@layoutwidth
+\tud@newdim\tud@dim@layoutheight
+\tud@newdim\tud@dim@layouthoffset
+\tud@newdim\tud@dim@layoutvoffset
\newcommand*\tud@cdgeometry@set{%
\tud@cdgeometry@assignlayout%
\tud@if@v@lower{2.05}{%
- \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax%
+ \ifdim\tud@dim@layoutheight<\dimexpr105mm+1.5mm\relax%
\def\@tempa{0}%
- \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr148mm+1.5mm\relax%
\def\@tempa{1}%
- \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr229mm+2mm\relax%
\def\@tempa{2}%
- \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr297mm+2mm\relax%
\def\@tempa{3}%
- \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr420mm+2mm\relax%
\def\@tempa{4}%
- \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr594mm+2mm\relax%
\def\@tempa{5}%
- \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr841mm+3mm\relax%
\def\@tempa{6}%
- \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr1189mm+3mm\relax%
\def\@tempa{7}%
\else%
\def\@tempa{8}%
\fi\fi\fi\fi\fi\fi\fi\fi%
}{%
- \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax%
+ \ifdim\tud@dim@layoutheight<\dimexpr125mm+1.5mm\relax%
\def\@tempa{0}%
- \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr176mm+2mm\relax%
\def\@tempa{1}%
- \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr250mm+2mm\relax%
\def\@tempa{2}%
- \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr353mm+2mm\relax%
\def\@tempa{3}%
- \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr500mm+2mm\relax%
\def\@tempa{4}%
- \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr707mm+3mm\relax%
\def\@tempa{5}%
- \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr1000mm+3mm\relax%
\def\@tempa{6}%
- \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax%
+ \else\ifdim\tud@dim@layoutheight<\dimexpr1414mm+3mm\relax%
\def\@tempa{7}%
\else%
\def\@tempa{8}%
@@ -390,20 +369,20 @@
calculate a proper type area%
}%
\fi%
- \tud@divide\@tempa{\tud@len@layoutheight}{148mm}%
- \setlength\tud@len@widemargin{15mm}%
- \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}%
- \setlength\tud@len@heavyline{0.5pt}%
- \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}%
- \setlength\tud@len@thinline{0.25pt}%
- \setlength\tud@len@thinline{\@tempa\tud@len@thinline}%
- \setlength\@tempdima{4.5pt}%
- \setlength\@tempdima{\@tempa\@tempdima}%
+ \tud@divide\@tempa{\tud@dim@layoutheight}{148mm}%
+ \tud@setdim\tud@dim@widemargin{15mm}%
+ \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}%
+ \tud@setdim\tud@dim@heavyline{0.5pt}%
+ \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}%
+ \tud@setdim\tud@dim@thinline{0.25pt}%
+ \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}%
+ \tud@setdim\@tempdima{4.5pt}%
+ \tud@setdim\@tempdima{\@tempa\@tempdima}%
\edef\tud@head@fontsize{\strip@pt\@tempdima}%
\or% <=A6/B6
- \setlength\tud@len@widemargin{15mm}%
- \setlength\tud@len@heavyline{0.5pt}%
- \setlength\tud@len@thinline{0.25pt}%
+ \tud@setdim\tud@dim@widemargin{15mm}%
+ \tud@setdim\tud@dim@heavyline{0.5pt}%
+ \tud@setdim\tud@dim@thinline{0.25pt}%
\renewcommand*\tud@head@fontsize{4.5}%
% \end{macrocode}
% Für Formate der Klasse~5 gibt es zwei Varianten. Entweder, es wird sich an
@@ -415,40 +394,40 @@
\or% <=A5/B5
\ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted
\@tud@cdgeometry@adjusttrue%
- \setlength\tud@len@widemargin{30mm}%
- \setlength\tud@len@heavyline{1pt}%
- \setlength\tud@len@thinline{0.5pt}%
+ \tud@setdim\tud@dim@widemargin{30mm}%
+ \tud@setdim\tud@dim@heavyline{1pt}%
+ \tud@setdim\tud@dim@thinline{0.5pt}%
\renewcommand*\tud@head@fontsize{9}%
\else%
- \setlength\tud@len@widemargin{21.213203mm}%
- \setlength\tud@len@heavyline{0.707107pt}%
- \setlength\tud@len@thinline{0.353553pt}%
+ \tud@setdim\tud@dim@widemargin{21.213203mm}%
+ \tud@setdim\tud@dim@heavyline{0.707107pt}%
+ \tud@setdim\tud@dim@thinline{0.353553pt}%
\renewcommand*\tud@head@fontsize{6.363961}%
\fi%
\or% <=A4/B4
- \setlength\tud@len@widemargin{30mm}%
- \setlength\tud@len@heavyline{1pt}%
- \setlength\tud@len@thinline{0.5pt}%
+ \tud@setdim\tud@dim@widemargin{30mm}%
+ \tud@setdim\tud@dim@heavyline{1pt}%
+ \tud@setdim\tud@dim@thinline{0.5pt}%
\renewcommand*\tud@head@fontsize{9}%
\or% <=A3/B3
- \setlength\tud@len@widemargin{42.426407mm}%
- \setlength\tud@len@heavyline{1.414214pt}%
- \setlength\tud@len@thinline{0.707107pt}%
+ \tud@setdim\tud@dim@widemargin{42.426407mm}%
+ \tud@setdim\tud@dim@heavyline{1.414214pt}%
+ \tud@setdim\tud@dim@thinline{0.707107pt}%
\renewcommand*\tud@head@fontsize{12.727922}%
\or% <=A2/B2
- \setlength\tud@len@widemargin{60mm}%
- \setlength\tud@len@heavyline{2pt}%
- \setlength\tud@len@thinline{1pt}%
+ \tud@setdim\tud@dim@widemargin{60mm}%
+ \tud@setdim\tud@dim@heavyline{2pt}%
+ \tud@setdim\tud@dim@thinline{1pt}%
\renewcommand*\tud@head@fontsize{18}%
\or% <=A1/B1
- \setlength\tud@len@widemargin{84.852814mm}%
- \setlength\tud@len@heavyline{2.828427pt}%
- \setlength\tud@len@thinline{1.414214pt}%
+ \tud@setdim\tud@dim@widemargin{84.852814mm}%
+ \tud@setdim\tud@dim@heavyline{2.828427pt}%
+ \tud@setdim\tud@dim@thinline{1.414214pt}%
\renewcommand*\tud@head@fontsize{25.455844}%
\or% <=A0/B0
- \setlength\tud@len@widemargin{120mm}%
- \setlength\tud@len@heavyline{4pt}%
- \setlength\tud@len@thinline{2pt}%
+ \tud@setdim\tud@dim@widemargin{120mm}%
+ \tud@setdim\tud@dim@heavyline{4pt}%
+ \tud@setdim\tud@dim@thinline{2pt}%
\renewcommand*\tud@head@fontsize{36}%
\else% >A0/B0
% \end{macrocode}
@@ -464,15 +443,15 @@
calculate a proper type area%
}%
\fi%
- \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}%
- \setlength\tud@len@widemargin{120mm}%
- \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}%
- \setlength\tud@len@heavyline{4pt}%
- \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}%
- \setlength\tud@len@thinline{2pt}%
- \setlength\tud@len@thinline{\@tempa\tud@len@thinline}%
- \setlength\@tempdima{36pt}%
- \setlength\@tempdima{\@tempa\@tempdima}%
+ \tud@divide\@tempa{\tud@dim@layoutheight}{1189mm}%
+ \tud@setdim\tud@dim@widemargin{120mm}%
+ \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}%
+ \tud@setdim\tud@dim@heavyline{4pt}%
+ \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}%
+ \tud@setdim\tud@dim@thinline{2pt}%
+ \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}%
+ \tud@setdim\@tempdima{36pt}%
+ \tud@setdim\@tempdima{\@tempa\@tempdima}%
\edef\tud@head@fontsize{\strip@pt\@tempdima}%
\fi%
% \end{macrocode}
@@ -480,12 +459,12 @@
% Format DIN~A4.
% \begin{macrocode}
\ifnum\tud@cdgeometry@calc@num=\tw@\relax%
- \tud@divide\@tempa{\tud@len@layoutheight}{297mm}%
- \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}%
- \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}%
- \setlength\tud@len@thinline{\@tempa\tud@len@thinline}%
- \setlength\@tempdima{\tud@head@fontsize pt}%
- \setlength\@tempdima{\@tempa\@tempdima}%
+ \tud@divide\@tempa{\tud@dim@layoutheight}{297mm}%
+ \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}%
+ \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}%
+ \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}%
+ \tud@setdim\@tempdima{\tud@head@fontsize pt}%
+ \tud@setdim\@tempdima{\@tempa\@tempdima}%
\edef\tud@head@fontsize{\strip@pt\@tempdima}%
\fi%
% \end{macrocode}
@@ -494,24 +473,22 @@
% forciert.
% \begin{macrocode}
\global\@tud@head@font@settrue%
- \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}%
- \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}%
- \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}%
- \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}%
- \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}%
- \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}%
- \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}%
- \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}%
- \setlength\tud@len@footsep{%
- \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax%
- }%
+ \tud@setdim\tud@dim@slimmargin{\tud@dim@widemargin*2/3}%
+ \tud@setdim\tud@dim@bothmargin{\tud@dim@widemargin*5/3}%
+ \tud@setdim\tud@dim@topmargin{\tud@dim@widemargin*7/6}%
+ \tud@setdim\tud@dim@barheight{\tud@dim@widemargin/6}%
+ \tud@setdim\tud@dim@headsep{\tud@dim@widemargin*2/5}%
+ \tud@setdim\tud@dim@logox{\tud@dim@widemargin*11/30}%
+ \tud@setdim\tud@dim@logoy{\tud@dim@widemargin*9/20}%
+ \tud@setdim\tud@dim@logowidth{\tud@dim@widemargin*19/10}%
+ \tud@setdim\tud@dim@footsep{\tud@dim@widemargin-\tud@dim@topmargin*3/5}%
% \end{macrocode}
% Wird die Gestaltungshöhe DIN~A5 im Raster verwendet, werden die Abstände
% zwischen Kopf- unf Fußzeile angepasst.
% \begin{macrocode}
\if@tud@cdgeometry@adjust%
- \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}%
- \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}%
+ \tud@setdim\tud@dim@headsep{.707107\tud@dim@headsep}%
+ \tud@setdim\tud@dim@footsep{.707107\tud@dim@footsep}%
\fi%
\tud@cdgeometry@papersize@store%
}
@@ -520,11 +497,11 @@
% dem Paket \pkg{geometry} angegeben wurde, entsprechend gesetzt.
% \begin{macrocode}
\newcommand*\tud@cdgeometry@assignlayout{%
- \ifdim\tud@len@layoutwidth<\p@\relax%
- \setlength\tud@len@layoutwidth{\paperwidth}%
+ \ifdim\tud@dim@layoutwidth<\p@\relax%
+ \tud@setdim\tud@dim@layoutwidth{\paperwidth}%
\fi%
- \ifdim\tud@len@layoutheight<\p@\relax%
- \setlength\tud@len@layoutheight{\paperheight}%
+ \ifdim\tud@dim@layoutheight<\p@\relax%
+ \tud@setdim\tud@dim@layoutheight{\paperheight}%
\fi%
}
% \end{macrocode}
@@ -549,18 +526,18 @@
}%
\ifx\tud@res@a\tud@cdgeometry@papersize@last\else%
\appto\tud@res@b{%
- \setlength\tud@len@layoutwidth{\z@}%
- \setlength\tud@len@layoutheight{\z@}%
+ \tud@setdim\tud@dim@layoutwidth{\z@}%
+ \tud@setdim\tud@dim@layoutheight{\z@}%
\tud@x@geometry@fixmargins%
}%
\fi%
\tud@res@b%
}
% \end{macrocode}
-% \end{length}^^A \tud@len@layoutvoffset
-% \end{length}^^A \tud@len@layouthoffset
-% \end{length}^^A \tud@len@layoutheight
-% \end{length}^^A \tud@len@layoutwidth
+% \end{length}^^A \tud@dim@layoutvoffset
+% \end{length}^^A \tud@dim@layouthoffset
+% \end{length}^^A \tud@dim@layoutheight
+% \end{length}^^A \tud@dim@layoutwidth
% \end{macro}^^A \tud@cdgeometry@papersize@last
% \end{macro}^^A \tud@cdgeometry@papersize@store
% \end{macro}^^A \tud@cdgeometry@resetlayout
@@ -581,7 +558,7 @@
% Option \opt{cdgeometry} temporär deaktiviert. Dies geschieht, um lediglich
% die im Hintergrund verwendeten Makros neu zu setzen.
% \begin{macrocode}
-\newif\if@tud@cdgeometry@reset
+\tud@newif\if@tud@cdgeometry@reset
\newcommand*\tud@cdgeometry@reset[1]{%
\@tud@cdgeometry@resettrue%
\TUDoptions{cdgeometry=#1}%
@@ -661,7 +638,7 @@
% definierte Satzspiegel geladen werden. Falls jedoch eine Neuberechnung
% erfolgte, wird auf das Laden verzichtet (\cs{if@tud@cdgeometry@reset}).
% \begin{macrocode}
- \if@atdocument%
+ \tud@if@preamble{}{%
\if@tud@cdgeometry@reset\else% false
\ifcase\tud@cdgeometry@num\relax%
\tud@loadgeometry{current@typearea}%
@@ -672,7 +649,7 @@
\fi%
\TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
\fi%
- \fi%
+ }%
\fi%
}
% \end{macrocode}
@@ -681,49 +658,50 @@
% \end{macro}^^A \tud@cdgeometry@num
% \end{option}^^A cdgeometry
% \begin{option}{extrabottommargin}
-% \begin{macro}{\tud@dim@extrabottommargin}
+% \begin{macro}{\tud@extrabottommargin@dim}
% Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur
% möglich, wenn der Satzspiegel des \CDs verwendet wird. Kommt \pkg{typearea}
% zum Einsatz, ist die Option wirkungslos. Da für die Länge ggf. auch Werte
% angegeben werden können, die abhängig von der Schriftgröße sind, wird die
% Ausführung dieser Option verzögert.
% \begin{macrocode}
-\newcommand*\tud@dim@extrabottommargin{\z@}
+\newcommand*\tud@extrabottommargin@dim{0pt}
\TUD@key{extrabottommargin}{%
- \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}%
+ \TUD@set@dimkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
\TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@dim@extrabottommargin
+% \end{macro}^^A \tud@extrabottommargin@dim
% \begin{option}{bleedmargin}
% \changes{v2.05}{2016/06/14}{neu}^^A
-% \begin{macro}{\tud@dim@bleedmargin}
+% \begin{macro}{\tud@bleedmargin@dim}
% \changes{v2.05}{2016/04/03}{neu}^^A
% Wird entweder das Paket \pkg{crop} oder aber die Option \opt{layout} des
% Paketes \pkg{geometry} für Schnittmarken verwendet, werden alle farbigen
% Elemente des Layouts dahingehend vergrößert, dass beim Zuschneiden des
% Papierbogens \emph{in die Farbe} geschnitten wird. Verantwortlich hierfür ist
-% das Makro \cs{tud@dim@bleedmargin}, welches natürlich auch vom Anwender mit
+% das Makro \cs{tud@bleedmargin@dim}, welches natürlich auch vom Anwender mit
% der Option \opt{bleedmargin} beliebig gesetzt werden kann. Als Standardwert
% werden 5\% der größten Randbreite gesetzt.
+% \ToDo{^^A%
+% Was genau ist der Unterschied zwischen cropmargin und bleedmargin?
+% Wo kommt der Standardwert her? Sinnvoll für Standardklassen?
+% }[v2.07]^^A
% \begin{macrocode}
-\newcommand*\tud@dim@bleedmargin{.2in}
+\newcommand*\tud@bleedmargin@dim{.2in}
\TUD@key{bleedmargin}{%
- \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}%
+ \TUD@set@dimkey{bleedmargin}{\tud@bleedmargin@dim}{#1}%
% \end{macrocode}
% Negative Werte sind nicht möglich, diese werden automatisch korrigiert.
% \begin{macrocode}
\ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax%
- \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}%
- \@tempa#1\@nil%
- \fi%
+ \tud@length@setabsolute\tud@bleedmargin@dim%
\fi%
}
% \end{macrocode}
-% \end{macro}^^A \tud@dim@bleedmargin
+% \end{macro}^^A \tud@bleedmargin@dim
% \end{option}^^A bleedmargin
% \end{option}^^A extrabottommargin
% \begin{option}{twoside}
@@ -733,12 +711,12 @@
% \begin{macrocode}
\DefineFamilyMember{KOMA}
\DefineFamilyKey{KOMA}{twoside}{%
+ \FamilyKeyStateUnknownValue%
\TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
- \FamilyKeyStateProcessed%
}
\DefineFamilyKey{KOMA}{twocolumn}{%
+ \FamilyKeyStateUnknownValue%
\TUD@SpecialOptionAtDocument{tud@cdgeometry@process}%
- \FamilyKeyStateProcessed%
}
% \end{macrocode}
% \end{option}^^A twocolumn
@@ -751,9 +729,9 @@
%
% \subsection{Realisierung der Satzspiegeleinstellungen}
% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und
-% der Seitenränder, wie es vom \CD der \TnUD verlangt wird.
-% \ToDo{Satzspiegel ohne \pkg{geometry}; besser über \cs{storeareas}?!}[v2.07]%
-% \ToDo{Benutzerschnittstelle äquivalent zu \pkg{geometry}}[v2.07]%
+% der Seitenränder, wie es vom \TUDCD verlangt wird.
+% \ToDo{Satzspiegel ohne \pkg{geometry}; besser über \cs{storeareas}?!}[v2.07]
+% \ToDo{Benutzerschnittstelle äquivalent zu \pkg{geometry}}[v2.07]
% \begin{macro}{\tud@cdgeometry@process}
% \changes{v2.05}{2015/11/29}{neu}^^A
% Mit \cs{tud@cdgeometry@process} bzw. \cs{tud@cdgeometry@@process} erfolgt die
@@ -786,11 +764,11 @@
% sämtliche Einstellungen für den Satzspiegel unterdrückt.
% \begin{macrocode}
\if@tud@x@standalone@crop
- \PreventPackageFromLoading{geometry}%
- \let\tud@cdgeometry@process\relax%
+ \PreventPackageFromLoading{geometry}
+ \let\tud@cdgeometry@process\relax
\else
- \RequirePackage{geometry}[2010/09/12]%
-\fi%
+ \RequirePackage{geometry}
+\fi
\AfterPackage*{geometry}{%
\CheckCommand*\Gm@initnewgm{%
\Gm@passfalse
@@ -947,7 +925,7 @@
% und \cs{newgeometry} angepasst, weshalb diese vorher gesichert werden.
% \ToDo{erweiterte Möglichkeiten von \cs{newgeometry} dokumentieren}[v2.07]
% \begin{macrocode}
- \newif\if@tud@x@geometry@enabled%
+ \tud@newif\if@tud@x@geometry@enabled%
\@tud@x@geometry@enabledtrue%
\tud@cs@store{geometry}%
\tud@cs@store{newgeometry}%
@@ -967,7 +945,7 @@
% \begin{macrocode}
\renewcommand*\restoregeometry[1][custom]{%
\tud@cdgeometry@reset{#1}%
- \if@atdocument%
+ \tud@if@preamble{}{%
\ifcase\tud@cdgeometry@num\relax% false
\tud@loadgeometry{init@typearea}%
\@tud@x@geometry@fixmarginstrue%
@@ -976,7 +954,7 @@
\@tud@x@geometry@fixmarginstrue%
\fi%
\tud@cdgeometry@process%
- \fi%
+ }%
}%
% \end{macrocode}
% Sollte im Dokument durch den Anwender der Satzspiegel manuell geändert
@@ -984,9 +962,9 @@
% angepasst werden. Hierfür wird am Ende von \cs{Gm@changelayout} ein Patch
% eingehängt.
% \begin{macrocode}
- \apptocmd{\Gm@changelayout}{%
+ \apptocmd\Gm@changelayout{%
\if@tud@x@geometry@enabled%
- \if@atdocument%
+ \tud@if@preamble{}{%
\@tud@x@geometry@fixmarginstrue%
\ifcase\tud@cdgeometry@num\relax% false
\tud@cdgeometry@reset{typearea}%
@@ -994,7 +972,7 @@
\tud@cdgeometry@reset{custom}%
\fi%
\tud@cdgeometry@process%
- \fi%
+ }%
\fi%
}{}{\tud@patch@wrn{Gm@changelayout}}%
% \end{macrocode}
@@ -1005,12 +983,12 @@
% mehrmals wiederverwendet werden, müssen diese u.U. korrigert bzw. auf ihren
% ursprünglichen Wert zurückgesetzt werden.
% \begin{macrocode}
- \newif\if@tud@x@geometry@fixmargins%
+ \tud@newif\if@tud@x@geometry@fixmargins%
\newcommand*\tud@x@geometry@fixmargins{%
\ifGm@pass\else%
- \addtolength\oddsidemargin{-\tud@len@layouthoffset}%
- \addtolength\evensidemargin{-\tud@len@layouthoffset}%
- \addtolength\topmargin{-\tud@len@layoutvoffset}%
+ \tud@addtodim\oddsidemargin{-\tud@dim@layouthoffset}%
+ \tud@addtodim\evensidemargin{-\tud@dim@layouthoffset}%
+ \tud@addtodim\topmargin{-\tud@dim@layoutvoffset}%
\@tud@x@geometry@fixmarginsfalse%
\fi%
}%
@@ -1072,16 +1050,19 @@
\tud@cdgeometry@assignlayout%
\edef\tud@res@a{%
\endgroup%
- \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}%
- \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}%
+ \unexpanded{\tud@setdim\tud@dim@layoutwidth}{\the\paperwidth}%
+ \unexpanded{\tud@setdim\tud@dim@layoutheight}{\the\paperheight}%
}%
\tud@res@a%
\fi%
- \ifstr{#2}{newgeometry}{%
- \eappto\Gm@restore@org{%
+ \tud@if@strequal{#2}{newgeometry}{%
+ \edef\@tempb{%
\noexpand\paperwidth=\the\paperwidth\relax%
\noexpand\paperheight=\the\paperheight\relax%
}%
+ \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{%
+ \@tempb%
+ }{}{\tud@patch@wrn{Gm@restore@org}}%
% \end{macrocode}
% Wird der Befehl verwendet, wenn eigentlich \pkg{typearea} aktiv ist, so
% werden lediglich die Einstellungen zu \prm{paper} und \prm{layout} beachtet.
@@ -1115,7 +1096,7 @@
% Das folgende Konstrukt ist aus der Idee entstanden, die Parameter \val{paper}
% sowie \val{layout} des Paketes \pkg{geometry} auf die passenden Optionen von
% \KOMAScript{} abbilden zu können und insbesondere Schnittmarken für alle
-% Seitenstile bereitzustellen.%
+% Seitenstile bereitzustellen.
% \ToDo{%
% Leider ist aus der dem Versuch, eine halbwegs einheitliche Schnittstelle
% zwischen den Paketen \pkg{typearea} und \pkg{geometry} zu schaffen, ein
@@ -1144,11 +1125,11 @@
\tud@x@geometry@area@def{paper}{\paperwidth:#1}%
}%
\TUD@parameter@def{layout}{%
- \ifstr{#1}{false}{%
- \setlength\tud@len@layoutwidth{\z@}%
- \setlength\tud@len@layoutheight{\z@}%
- \setlength\tud@len@layouthoffset{\z@}%
- \setlength\tud@len@layoutvoffset{\z@}%
+ \tud@if@strequal{#1}{false}{%
+ \tud@setdim\tud@dim@layoutwidth{\z@}%
+ \tud@setdim\tud@dim@layoutheight{\z@}%
+ \tud@setdim\tud@dim@layouthoffset{\z@}%
+ \tud@setdim\tud@dim@layoutvoffset{\z@}%
}{%
\tud@x@geometry@area@def{layout}{#1}%
}%
@@ -1165,25 +1146,25 @@
\@tempa#1,,\@nil%
}%
\TUD@parameter@def{layoutwidth}{%
- \tud@x@geometry@area@def{layout}{#1:\tud@len@layoutheight}%
+ \tud@x@geometry@area@def{layout}{#1:\tud@dim@layoutheight}%
}%
\TUD@parameter@def{layoutheight}{%
- \tud@x@geometry@area@def{layout}{\tud@len@layoutwidth:#1}%
+ \tud@x@geometry@area@def{layout}{\tud@dim@layoutwidth:#1}%
}%
\TUD@parameter@def{layoutoffset}{%
\def\@tempa##1,##2,##3\@nil{%
\IfArgIsEmpty{##2}{%
- \setlength\tud@len@layouthoffset{##1}%
- \setlength\tud@len@layoutvoffset{##1}%
+ \tud@setdim\tud@dim@layouthoffset{##1}%
+ \tud@setdim\tud@dim@layoutvoffset{##1}%
}{%
- \setlength\tud@len@layouthoffset{##1}%
- \setlength\tud@len@layoutvoffset{##2}%
+ \tud@setdim\tud@dim@layouthoffset{##1}%
+ \tud@setdim\tud@dim@layoutvoffset{##2}%
}%
}%
\@tempa#1,,\@nil%
}%
- \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}%
- \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}%
+ \TUD@parameter@def{layouthoffset}{\tud@setdim\tud@dim@layouthoffset{#1}}%
+ \TUD@parameter@def{layoutvoffset}{\tud@setdim\tud@dim@layoutvoffset{#1}}%
\TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}%
\TUD@parameter@handler@macro{%
\eappto\tud@x@geometry@parameter{%
@@ -1198,24 +1179,28 @@
% Werte für \val{paper} und \val{layout} werden abgefangen und für die beiden
% Befehle \cs{geometry} und \cs{newgeometry} aufgearbeitet. Alle anderen werden
% einfach an \pkg{geometry} durchgereicht. Dies geschieht über die jeweiligen
-% Hilfsmakros \cs{tud@x@geometry@\dots} für \val{paper}, \val{layout} sowie
+% Hilfsmakros |\tud@x@geometry@...| für \val{paper}, \val{layout} sowie
% \val{parameter} für alles Übrige.
% \begin{macrocode}
\newcommand*\tud@x@geometry@area@def[2]{%
- \tud@lowerstring{\@tempa}{#2}%
+ \tud@strlowercase\@tempa{#2}%
\def\@tempb##1paper##2\@nil{%
- \ifstr{##2}{paper}{\def\@tempa{##1}}{}%
+ \tud@if@strequal{##2}{paper}{\def\@tempa{##1}}{}%
}%
\expandafter\@tempb\@tempa paper\@nil%
\@tempswafalse%
- \ifstr{\@tempa}{seascape}{\@tempswatrue}{}%
- \ifstr{\@tempa}{landscape}{\@tempswatrue}{}%
- \ifstr{\@tempa}{portrait}{\@tempswatrue}{}%
- \ifstr{\@tempa}{letter}{\@tempswatrue}{}%
- \ifstr{\@tempa}{executive}{\@tempswatrue}{}%
- \ifstr{\@tempa}{legal}{\@tempswatrue}{}%
+ \TUD@set@numkey{paper}{@tempc}{%
+ {seascape}{0},{landscape}{0},{portrait}{0},%
+ {letter}{0},{executive}{0},{legal}{0}%
+ }{\@tempa}%
+ \@tempswafalse%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \ifcase\@tempc\relax%
+ \@tempswatrue%
+ \fi%
+ \fi%
\if@tempswa\else%
- \ifx\@tempa\@empty\relax\else%
+ \ifx\@tempa\@empty\else%
\def\@tempb##1##2\@nil{%
\if ##1a\@tempswatrue%
\else\if ##1b\@tempswatrue%
@@ -1224,7 +1209,7 @@
\fi\fi\fi\fi%
\if@tempswa%
\@tempswafalse%
- \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}%
+ \IfArgIsEmpty{##2}{}{\Ifnumber{##2}{\@tempswatrue}{}}%
\fi%
}%
\expandafter\@tempb\@tempa\@nil%
@@ -1240,7 +1225,7 @@
\if@tempswa\else%
\def\tud@reserved##1:##2:##3:##4\@nil{%
\if@tempswa\else%
- \ifstr{\@tempa}{##1}{%
+ \tud@if@strequal{\@tempa}{##1}{%
\@tempswatrue%
\def\@tempa{##2##4:##3##4}%
}{}%
@@ -1287,7 +1272,7 @@
% \emph{Dies geschieht hier direkt und nicht in einer Gruppe,} weil der Aufruf
% von \cs{tud@x@geometry@area@set}|{layout}| lokal erfolgt.
% \begin{macrocode}
- \ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}%
+ \tud@if@strequal{#1}{layout}{\let\scr@setpaperorientation\relax}{}%
\KOMAoption{paper}{##1:##2}%
}%
}%
@@ -1334,16 +1319,16 @@
% \begin{macrocode}
\tud@cdgeometry@assignlayout%
\@tud@res@swafalse%
- \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi%
- \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi%
+ \ifdim\tud@dim@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi%
+ \ifdim\tud@dim@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi%
\edef\tud@res@a{%
\endgroup%
- \etex@unexpanded{\def#1}{%
+ \unexpanded{\def#1}{%
layoutoffset={%
- \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset%
+ \the\tud@dim@layouthoffset,\the\tud@dim@layoutvoffset%
}%
\if@tud@res@swa%
- ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}%
+ ,layoutsize={\the\tud@dim@layoutwidth,\the\tud@dim@layoutheight}%
\fi%
}%
}%
@@ -1367,33 +1352,34 @@
% \begin{macrocode}
\newcommand*\tud@x@geometry@set[1]{%
\@tud@x@geometry@enabledfalse%
+ \tud@if@preamble{%
+% \end{macrocode}
+% In der Präambel werden mit \cs{Gm@initnewgm} vor jedem Satzspiegel die zuvor
+% gemachten Einstellungen zurückgesetzt.
+% \begin{macrocode}
+ \Gm@initnewgm%
+ \edef\@tempa{papersize={\the\paperwidth,\the\paperheight},#1}%
+ \def\@tempc{\tud@cs@use{geometry}}%
+ \expandafter\@tempc\expandafter{\@tempa,driver=none}%
+ }{%
% \end{macrocode}
% Um etwaige Änderungen am Papierformat innerhalb des Dokumentes beachten zu
% können, werden die aktuellen Maße für das Papierformat an \cs{Gm@restore@org}
% angehangen.
% \begin{macrocode}
- \if@atdocument%
\edef\@tempa{#1}%
\tud@cs@store{Gm@restore@org}%
- \eappto\Gm@restore@org{%
+ \edef\@tempb{%
\noexpand\paperwidth=\the\paperwidth\relax%
\noexpand\paperheight=\the\paperheight\relax%
}%
+ \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{%
+ \@tempb%
+ }{}{\tud@patch@wrn{Gm@restore@org}}%
\def\@tempc{\tud@cs@use{newgeometry}}%
\expandafter\@tempc\expandafter{\@tempa}%
\tud@cs@restore{Gm@restore@org}%
- \else%
-% \end{macrocode}
-% Zu Beginn des Dokumentes werden mit \cs{Gm@initnewgm} vor jedem Satzspiegel
-% die zuvor gemachten Einstellungen zurückgesetzt.
-% \begin{macrocode}
- \Gm@initnewgm%
- \edef\@tempa{%
- paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1%
- }%
- \def\@tempc{\tud@cs@use{geometry}}%
- \expandafter\@tempc\expandafter{\@tempa,driver=none}%
- \fi%
+ }%
\@tud@x@geometry@enabledtrue%
}%
% \end{macrocode}
@@ -1505,7 +1491,7 @@
% \begin{macrocode}
\ifcase\tud@cdgeometry@num\relax%
\edef\tud@cdgeometry@hmargin{%
- left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,%
+ left=\the\dimexpr\glueexpr\oddsidemargin+1in-\ta@bcor\relax\relax,%
textwidth=\the\textwidth,%
\tud@cdgeometry@mpincl,%
marginparwidth=\the\marginparwidth,%
@@ -1523,8 +1509,7 @@
top=\the\dimexpr\topmargin+1in\relax,%
\else%
includehead=false,%
- top=\the\dimexpr\topmargin%
- +\headheight+\headsep+1in\relax,%
+ top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,%
\fi%
headheight=\the\headheight,%
headsep=\the\headsep,%
@@ -1534,11 +1519,13 @@
}%
% \end{macrocode}
% Und nun für den benutzerdefinierten Satzspiegel.
+% \ToDo{Angabe von BCOR zerschießt den gewünschten Satzspiegel}[v2.07]
% \begin{macrocode}
\else% custom
\ifGm@pass\else%
\edef\tud@cdgeometry@hmargin{%
- left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,%
+ left=\the\dimexpr\glueexpr\oddsidemargin+1in%
+ -\Gm@bindingoffset\relax\relax,%
textwidth=\the\textwidth,%
\ifGm@includemp%
includemp=true,%
@@ -1560,8 +1547,7 @@
top=\the\dimexpr\topmargin+1in\relax,%
\else%
includehead=false,%
- top=\the\dimexpr\topmargin%
- +\headheight+\headsep+1in\relax,%
+ top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,%
\fi%
headheight=\the\headheight,%
headsep=\the\headsep,%
@@ -1576,6 +1562,15 @@
\fi%
\fi%
% \end{macrocode}
+% Die Einstellungen für zweiseitigen respektive zweispaltigen Satz.
+% \begin{macrocode}
+ \if@twoside%
+ \appto\tud@cdgeometry@hmargin{,twoside}%
+ \fi%
+ \if@twocolumn%
+ \appto\tud@cdgeometry@hmargin{,twocolumn}%
+ \fi%
+% \end{macrocode}
% Es wird die Höhendifferenz zwischen TUD-Kopf und Standardkopfzeile für den
% benutzerdefnierten bzw. \pkg{typearea}-Satzspiegel berechnet. Für den
% Satzspiegel mit TUD-Kopf muss unterschieden werden, ob der Abstand zwischen
@@ -1584,23 +1579,23 @@
% benutzerdefinierten bzw. \pkg{typearea}-Satzspiegel noch unterhalb des
% TUD-Kopfes liegen, wird der Abstand zum Kopf vergrößert.
% \begin{macrocode}
- \setlength\tud@len@areadiff{%
- \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep%
- -\topmargin-\headheight-\headsep-1in\relax%
+ \tud@setdim\tud@dim@areadiff{%
+ \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
+ -\topmargin-\headheight-\headsep-1in%
}%
- \ifdim\tud@len@areadiff<\z@\relax%
- \addtolength\tud@len@headsep{-\tud@len@areadiff}%
- \setlength\@tempdima{\z@}%
+ \ifdim\tud@dim@areadiff<\z@\relax%
+ \tud@addtodim\tud@dim@headsep{-\tud@dim@areadiff}%
+ \tud@setdim\@tempdima{\z@}%
\else%
- \setlength\@tempdima{\tud@len@areadiff}%
+ \tud@setdim\@tempdima{\tud@dim@areadiff}%
\fi%
\edef\tud@cdgeometry@tudmargin{%
ignorehead=true,%
- top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
- +\tud@len@headsep\relax,%
- headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
- -\tud@len@logoy\relax,%
- headsep=\the\tud@len@headsep,%
+ top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+ +\tud@dim@headsep\relax,%
+ headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+ -\tud@dim@logoy\relax,%
+ headsep=\the\tud@dim@headsep,%
textheight=\the\dimexpr\textheight-\@tempdima\relax%
}%
% \end{macrocode}
@@ -1608,14 +1603,14 @@
% separaten Satzspiegel.
% \begin{macrocode}
\tud@if@v@lower{2.03}{%
- \setlength\tud@len@ddcdiff{%
- \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep%
- +\footheight-1.25\baselineskip\relax%
+ \tud@setdim\tud@dim@ddcdiff{%
+ \tud@dim@topmargin*3/5-\footskip+\tud@dim@headsep%
+ +\footheight-1\baselineskip*5/4%
}%
\edef\tud@cdgeometry@ddcmargin{%
- textheight=\the\dimexpr\textheight-\tud@len@areadiff%
- -\tud@len@ddcdiff\relax,%
- footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax%
+ textheight=\the\dimexpr\textheight-\tud@dim@areadiff%
+ -\tud@dim@ddcdiff\relax,%
+ footskip=\the\dimexpr\footskip+\tud@dim@ddcdiff\relax%
}%
}{}%
% \end{macrocode}
@@ -1623,7 +1618,7 @@
% Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos
% ist.
% \begin{macrocode}
- \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else%
+ \ifdim\dimexpr\tud@extrabottommargin@dim\relax=\z@\relax\else%
\begingroup%
\edef\tud@res@a{%
The key `extrabottommargin' is ineffective\MessageBreak%
@@ -1650,21 +1645,21 @@
% Seitenrand (\cs{@tempdima}), die Textbreite (\cs{@tempdimb}) sowie die Breite
% der Randnotizen (\cs{@tempdimc}). Danach kommt der Gleichanteil.
% \begin{macrocode}
- \else% true/symmetric/twoside
- \ifcase\tud@cdgeometry@num\relax\or\or% true
- \setlength\@tempdima{\tud@len@widemargin}%
+ \else% true/symmetric/twoside
+ \ifcase\tud@cdgeometry@num\relax\or\or% true
+ \tud@setdim\@tempdima{\tud@dim@widemargin}%
\if@reversemargin%
- \setlength\@tempdimc{\tud@len@widemargin}%
+ \tud@setdim\@tempdimc{\tud@dim@widemargin}%
\else%
- \setlength\@tempdimc{\tud@len@slimmargin}%
+ \tud@setdim\@tempdimc{\tud@dim@slimmargin}%
\fi%
% \end{macrocode}
% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl
% im einseitigen als auch im zweiseitgigen Satz symmetrisch.
% \begin{macrocode}
\or% symmetric
- \setlength\@tempdima{.5\tud@len@both}%
- \setlength\@tempdimc{.5\tud@len@both}%
+ \tud@setdim\@tempdima{\tud@dim@bothmargin/2}%
+ \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}%
% \end{macrocode}
% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist
% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite
@@ -1673,16 +1668,16 @@
% \begin{macrocode}
\or% twoside
\if@twoside%
- \setlength\@tempdima{.4\tud@len@both}%
+ \tud@setdim\@tempdima{\tud@dim@bothmargin*2/5}%
\else%
- \setlength\@tempdima{.5\tud@len@both}%
+ \tud@setdim\@tempdima{\tud@dim@bothmargin/2}%
\fi%
- \setlength\@tempdimc{.5\tud@len@both}%
+ \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}%
\if@twoside%
\if@reversemargin%
- \setlength\@tempdimc{.4\tud@len@both}%
+ \tud@setdim\@tempdimc{\tud@dim@bothmargin*2/5}%
\else%
- \setlength\@tempdimc{.6\tud@len@both}%
+ \tud@setdim\@tempdimc{\tud@dim@bothmargin*3/5}%
\fi%
\fi%
\fi%
@@ -1690,19 +1685,17 @@
% Die \emph{Berechnung} der Textbreite ist für alle Varainten identisch. Danach
% erfolgt die Zuweisung zum Makro.
% \begin{macrocode}
- \addtolength\@tempdimc{-\headsep}%
- \setlength\@tempdimb{%
- \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax%
- }%
+ \tud@addtodim\@tempdimc{-\headsep}%
+ \tud@setdim\@tempdimb{\tud@dim@layoutwidth-\tud@dim@bothmargin-\ta@bcor}%
\if@mincl%
- \addtolength\@tempdimb{-\@tempdimc}%
+ \tud@addtodim\@tempdimb{-\@tempdimc}%
\fi%
\edef\tud@cdgeometry@hmargin{%
left=\the\@tempdima,%
textwidth=\the\@tempdimb,%
\tud@cdgeometry@mpincl,%
marginparwidth=\the\@tempdimc,%
- marginparsep=\the\dimexpr.5\headsep\relax,%
+ marginparsep=\the\dimexpr\headsep/2\relax,%
\if@reversemargin%
reversemarginpar=true,%
\else%
@@ -1727,66 +1720,67 @@
\tud@if@v@lower{2.03}{%
\edef\tud@cdgeometry@vmargin{%
\tud@cdgeometry@hincl,%
- top=\the\dimexpr.5\tud@len@both\relax,%
+ top=\the\dimexpr\tud@dim@bothmargin/2\relax,%
headheight=\the\headheight,%
- headsep=\the\tud@len@headsep,%
- bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,%
+ headsep=\the\tud@dim@headsep,%
+ bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2%
+ +\tud@extrabottommargin@dim\relax\relax,%
\tud@cdgeometry@fincl,%
- footskip=\the\dimexpr\tud@len@headsep+\footheight%
- -1.25\baselineskip\relax%
+ footskip=\the\dimexpr\tud@dim@headsep+\footheight%
+ -1\baselineskip*5/4\relax%
}%
}{%
\edef\tud@cdgeometry@vmargin{%
\tud@cdgeometry@hincl,%
- top=\the\tud@len@slimmargin,%
+ top=\the\tud@dim@slimmargin,%
headheight=\the\headheight,%
headsep=\the\headsep,%
- bottom=\the\dimexpr\tud@len@widemargin%
- +\tud@dim@extrabottommargin\relax,%
+ bottom=\the\dimexpr\glueexpr\tud@dim@widemargin%
+ +\tud@extrabottommargin@dim\relax\relax,%
\tud@cdgeometry@fincl,%
- footskip=\the\dimexpr\tud@len@footsep+\footheight\relax%
+ footskip=\the\dimexpr\tud@dim@footsep+\footheight\relax%
}%
}%
\edef\tud@cdgeometry@tudmargin{%
ignorehead=true,%
- top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
- +\tud@len@headsep\relax,%
- headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight%
- -\tud@len@logoy\relax,%
- headsep=\the\tud@len@headsep%
+ top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+ +\tud@dim@headsep\relax,%
+ headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight%
+ -\tud@dim@logoy\relax,%
+ headsep=\the\tud@dim@headsep%
}%
% \end{macrocode}
% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile
% für den Satzspiegel des \CDs berechnet.
% \begin{macrocode}
- \setlength\tud@len@areadiff{%
- \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep%
- -\tud@len@slimmargin\relax%
+ \tud@setdim\tud@dim@areadiff{%
+ \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
+ -\tud@dim@slimmargin%
}%
% \end{macrocode}
% Für die Kompatibilitätsvariante wieder mal die Extrawurst.
% \begin{macrocode}
\tud@if@v@lower{2.03}{%
- \setlength\tud@len@areadiff{%
- \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep%
- -.5\tud@len@both\relax%
+ \tud@setdim\tud@dim@areadiff{%
+ \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep%
+ -\tud@dim@bothmargin/2%
}%
% \end{macrocode}
% Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß
% etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt.
% \begin{macrocode}
- \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}%
+ \tud@setdim\tud@dim@ddcdiff{\tud@dim@topmargin*3/5}%
\edef\tud@cdgeometry@ddcmargin{%
\if@fincl%
- bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin%
- +\tud@len@ddcdiff+\tud@len@headsep+\footheight%
- -1.25\baselineskip\relax,%
+ bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2%
+ +\tud@extrabottommargin@dim+\tud@dim@ddcdiff+\tud@dim@headsep%
+ +\footheight-1\baselineskip*5/4\relax\relax,%
\else%
- bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin%
- +\tud@len@ddcdiff\relax,%
+ bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2%
+ +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax\relax,%
\fi%
- footskip=\the\dimexpr\tud@len@headsep+\footheight%
- -1.25\baselineskip+\tud@len@ddcdiff\relax,%
+ footskip=\the\dimexpr\tud@dim@headsep+\footheight%
+ -1\baselineskip*5/4+\tud@dim@ddcdiff\relax,%
}%
}{}%
\fi%
@@ -1796,22 +1790,22 @@
% vertikale Verschiebung der Überschriften festgelegt, wobei hier insbesondere
% auf die Gestaltungshöhe DIN~A5 geachtet werden muss.
% \begin{macrocode}
- \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi%
- \global\tud@len@areadiff=\tud@len@areadiff%
+ \ifdim\tud@dim@areadiff<\z@\relax\tud@setdim\tud@dim@areadiff{\z@}\fi%
+ \global\tud@dim@areadiff=\tud@dim@areadiff%
%<*book|report|article>
- \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}%
+ \tud@setdim\tud@dim@areaheadvskip{\tud@dim@topmargin*11/50}%
\if@tud@cdgeometry@adjust%
- \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}%
+ \tud@setdim\tud@dim@areaheadvskip{\tud@dim@areaheadvskip/2}%
\fi%
- \global\tud@len@areaheadvskip=\tud@len@areaheadvskip%
+ \global\tud@dim@areaheadvskip=\tud@dim@areaheadvskip%
%</book|report|article>
% \end{macrocode}
% Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren
% Seitenfuß gesetzt.
% \begin{macrocode}
\tud@if@v@lower{2.03}{%
- \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi%
- \global\tud@len@ddcdiff=\tud@len@ddcdiff%
+ \ifdim\tud@dim@ddcdiff<\z@\relax\tud@setdim\tud@dim@ddcdiff{\z@}\fi%
+ \global\tud@dim@ddcdiff=\tud@dim@ddcdiff%
}{}%
% \end{macrocode}
% Es wird \cs{tud@cdgeometry@@@process} aufgerufen, was die zuvor definierten
@@ -1880,11 +1874,11 @@
% Falls die (abermalige) Erstellung der Satzspiegel im Dokument erfolgt, sollte
% anschließend auch der richtige Satzspiegel wieder ausgewählt werden.
% \begin{macrocode}
- \if@atdocument%
- \ifstr{\tud@currentgeometry}{stdarea}{}{%
+ \tud@if@preamble{}{%
+ \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{%
\expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}%
}%
- \fi%
+ }%
}%
% \end{macrocode}
% \end{macro}^^A \tud@cdgeometry@ddcmargin
@@ -1929,11 +1923,12 @@
% \end{macro}^^A \tud@cdgeometry@hincl
% \begin{macro}{\tud@cdgeometry@@init}
% \changes{v2.04}{2015/03/10}{neu}^^A
-% Damit alle Satzspiegeleinstellungen korrekt vorgenommen und auch alle
-% Klassenoptionen korrekt verarbeitet werden, wird die Berechnung erstmalig mit
-% \cs{AtEndPreamble} am Ende der Präambel ausgeführt. Dabei werden sowohl der
-% benutzerdefinierte Satzspiegel als auch die durch \pkg{typearea} berechneten
-% Einstellungen gesichert.
+% Damit alle Satzspiegeleinstellungen vollständig vorgenommen und auch alle
+% Klassenoptionen korrekt verarbeitet werden, wird die Berechnung erstmalig
+% am Ende der Präambel mit \cs{AtEndPreamble}|{|\cs{tud@cdgeometry@init}|}|
+% ausgeführt, nachdem der Ladezustandes des Paketes \pkg{scrlayer-scrpage}
+% geprüft wurde. Dabei werden sowohl der benutzerdefinierte Satzspiegel als
+% auch die durch \pkg{typearea} berechneten Einstellungen gesichert.
% \begin{macrocode}
\newcommand*\tud@cdgeometry@@init{%
\csuse{@ta@usegeometryfalse}%
@@ -1943,8 +1938,8 @@
% Bei der Initialisierung der zusätzlichen Satzspiegel soll keine Warnung
% bezüglich der Angabe eines vergrößerten Fußbereichs erscheinen.
% \begin{macrocode}
- \tud@cs@store{tud@dim@extrabottommargin}%
- \def\tud@dim@extrabottommargin{\z@}%
+ \tud@cs@store{tud@extrabottommargin@dim}%
+ \def\tud@extrabottommargin@dim{0pt}%
% \end{macrocode}
% Zunächst werden die benutzerdefinierten Einstellungen für den Satzspiegel
% gesichert.
@@ -1952,7 +1947,7 @@
\tud@cdgeometry@reset{custom}%
\begingroup%
\epreto\tud@x@geometry@init{%
- paperwidth=\the\paperwidth,paperheight=\the\paperheight,%
+ papersize={\the\paperwidth,\the\paperheight},%
\tud@cdgeometry@layout,%
\tud@cdgeometry@mpincl,%
\if@reversemargin%
@@ -1988,19 +1983,19 @@
% Alle gesammelten Warnungen von \pkg{typearea} werden dem initialisierten
% Satzspiegel hinzugefügt.
% \begin{macrocode}
- \def\tud@res@b##1{%
- \eappto\Gm@restore@@init@typearea{%
- \noexpand\PackageWarningNoLine{typearea}{##1}%
- }%
+ \def\do##1{%
+ \apptocmd\Gm@restore@@init@typearea{%
+ ##1%
+ }{}{\tud@patch@wrn{Gm@restore@@init@typearea}}%
}%
- \forlistloop\tud@res@b{\tud@res@a}%
+ \dolistloop{\tud@res@a}%
% \end{macrocode}
% Hier werden die temporär geäanderten Einstellungen zurückgesetzt.
% \begin{macrocode}
\tud@cs@restore{tud@cdgeometry@num}%
- \tud@cs@restore{tud@dim@extrabottommargin}%
+ \tud@cs@restore{tud@extrabottommargin@dim}%
% \end{macrocode}
-% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch
+% Der Kopf im \TUDCD erfordert einen eigenen Satzspiegel, der ggf. durch
% \cs{tud@BeforeSelectAnyPageStyle} aktiviert bzw. deaktiviert wird.
% \begin{macrocode}
\BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{##1}}%
@@ -2036,7 +2031,7 @@
% werden zwei~-- für die KOmpatibilitätsvariante drei~-- Layouts erstellt.
% Diese können mit \cs{loadgeometry}\marg{Stil} geladen werden.
% \begin{macrocode}
- \newcommand*\tud@currentgeometry{}
+ \newcommand*\tud@currentgeometry{}%
\newcommand*\tud@BeforeSelectAnyPageStyle[1]{%
% \end{macrocode}
% Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles}
@@ -2044,7 +2039,7 @@
% auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain}
% umgeschaltet werden kann. Dies wird hiermit beachtet.
% \begin{macrocode}
- \ifstr{#1}{\GetRealPageStyle{#1}}{%
+ \tud@if@strequal{#1}{\GetRealPageStyle{#1}}{%
% \end{macrocode}
% Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll, muss
% der dazugehörige Satzspiegel ausgewählt werden\dots
@@ -2066,7 +2061,7 @@
% Das \DDC-Logo im Fuß ist nicht aktiviert.
% \begin{macrocode}
\ifcase\@tempb\relax% \tud@ddc@foot@num=false
- \ifstr{\tud@currentgeometry}{tudarea}{}{%
+ \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{%
\tud@loadgeometry{tudarea}%
\gdef\tud@currentgeometry{tudarea}%
}%
@@ -2074,7 +2069,7 @@
% Das \DDC-Logo im Fuß ist aktiviert.
% \begin{macrocode}
\else% \tud@ddc@foot@num!=false
- \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+ \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{%
\tud@loadgeometry{tudareaddc}%
\gdef\tud@currentgeometry{tudareaddc}%
}%
@@ -2083,60 +2078,47 @@
% Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten.
% \begin{macrocode}
}{%
- \ifstr{\tud@currentgeometry}{tudarea}{}{%
+ \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{%
\tud@loadgeometry{tudarea}%
\gdef\tud@currentgeometry{tudarea}%
}%
}%
% \end{macrocode}
-% Die Länge \cs{tud@len@areavskip} gibt an, wie groß die Differenz zwischen
+% Die Länge \cs{tud@dim@areavskip} gibt an, wie groß die Differenz zwischen
% Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil
% ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@}
% gesetzt.
% \begin{macrocode}
- \setlength\tud@len@areavskip{\z@}%
-% \end{macrocode}
-% Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende
-% Schrift verwendet.
-% \begin{macrocode}
- \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}%
- \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}%
+ \tud@setdim\tud@dim@areavskip{\z@}%
% \end{macrocode}
-% Dies ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll.
-% Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty}
+% Das ist der Zweig, wenn kein \pgs{tudheadings}-Seitenstil geladen werden
+% soll. Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty}
% zurückgesetzt.
% \begin{macrocode}
}{%
- \ifstr{\tud@currentgeometry}{stdarea}{}{%
+ \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{%
\tud@loadgeometry{stdarea}%
\gdef\tud@currentgeometry{stdarea}%
}%
% \end{macrocode}
-% Die Länge \cs{tud@len@areavskip} wird auf den berechneten Wert gesetzt.
+% Die Länge \cs{tud@dim@areavskip} wird auf den berechneten Wert gesetzt.
% Nur für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und
% dieser nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas
% angepasst werden.
% \begin{macrocode}
- \setlength\tud@len@areavskip{\tud@len@areadiff}%
+ \tud@setdim\tud@dim@areavskip{\tud@dim@areadiff}%
\ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside
\if@hincl%
- \addtolength\tud@len@areavskip{%
- \dimexpr-\headheight-\tud@len@headsep\relax%
- }%
+ \tud@addtodim\tud@dim@areavskip{-\headheight-\tud@dim@headsep}%
\fi%
\fi%
-% \end{macrocode}
-% Die Schriften für Seitenzahl und Kolumnentitel werden zurückgesetzt.
-% \begin{macrocode}
- \tud@komafont@unset{pagenumber}%
- \tud@komafont@unset{pagefoot}%
}%
% \end{macrocode}
-% Die Länge \cs{tud@len@areavskip} wird vorsichtshalber global gesetzt.
+% Die Länge \cs{tud@dim@areavskip} wird vorsichtshalber global gesetzt.
% \begin{macrocode}
- \global\tud@len@areavskip=\tud@len@areavskip%
+ \global\tud@dim@areavskip=\tud@dim@areavskip%
}{}%
- }
+ }%
% \end{macrocode}
% \end{macro}^^A \tud@currentgeometry
% \end{macro}^^A \tud@BeforeSelectAnyPageStyle
@@ -2165,26 +2147,26 @@
% \begin{macrocode}
\newcommand*\tud@x@typearea@before{%
\tud@cdgeometry@resetlayout%
- \tud@skip@store{paperheight}%
- \tud@skip@store{paperwidth}%
+ \tud@cslength@store{paperheight}%
+ \tud@cslength@store{paperwidth}%
\begingroup%
\tud@cdgeometry@assignlayout%
\edef\tud@res@a{%
\endgroup%
- \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}%
- \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}%
+ \unexpanded{\tud@setdim\paperheight}{\the\tud@dim@layoutheight}%
+ \unexpanded{\tud@setdim\paperwidth}{\the\tud@dim@layoutwidth}%
}%
\tud@res@a%
}
\newcommand*\tud@x@typearea@after{%
- \tud@skip@restore{paperheight}%
- \tud@skip@restore{paperwidth}%
- \if@atdocument%
+ \tud@cslength@restore{paperheight}%
+ \tud@cslength@restore{paperwidth}%
+ \tud@if@preamble{%
+ \TUD@key@preset{cdgeometry}{false}%
+ }{%
\tud@cdgeometry@reset{typearea}%
\tud@cdgeometry@process%
- \else%
- \TUD@key@preset{cdgeometry}{false}%
- \fi%
+ }%
}
\newcommand*\tud@x@typearea@init{\recalctypearea}%
% \end{macrocode}
@@ -2192,18 +2174,18 @@
% \begin{macrocode}
\xpretocmd{\typearea}{%
\tud@x@typearea@before%
- \def\tud@x@typearea@init{\typearea[#1]{#2}}%
+ \def\tud@x@typearea@init{\typearea[{#1}]{#2}}%
}{}{\tud@patch@wrn{typearea}}
\xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}}
\xpretocmd{\areaset}{%
\tud@x@typearea@before%
\begingroup%
- \setlength\@tempdima{#2}%
- \setlength\@tempdimb{#3}%
+ \tud@setdim\@tempdima{#2}%
+ \tud@setdim\@tempdimb{#3}%
\edef\tud@res@a{%
\endgroup%
- \noexpand\def\noexpand\tud@x@typearea@init{%
- \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}%
+ \def\noexpand\tud@x@typearea@init{%
+ \unexpanded{\areaset[{#1}]}{\the\@tempdima}{\the\@tempdimb}%
}%
}%
\tud@res@a%
@@ -2216,17 +2198,17 @@
% \begin{macrocode}
\tud@cs@store{storeareas}
\renewcommand*\storeareas[1]{%
- \begingroup
+ \begingroup%
\tud@x@geometry@fixmargins%
\tud@cs@use{storeareas}{#1}%
- \def\tud@res@b##1{\unexpanded{\setlength##1}{\the##1}}%
+ \def\tud@res@b##1{\unexpanded{\tud@setdim##1}{\the##1}}%
\edef\tud@res@a{%
\endgroup%
- \etex@unexpanded{\def#1}{%
- \tud@res@b{\tud@len@layoutwidth}%
- \tud@res@b{\tud@len@layoutheight}%
- \tud@res@b{\tud@len@layouthoffset}%
- \tud@res@b{\tud@len@layoutvoffset}%
+ \unexpanded{\def#1}{%
+ \tud@res@b{\tud@dim@layoutwidth}%
+ \tud@res@b{\tud@dim@layoutheight}%
+ \tud@res@b{\tud@dim@layouthoffset}%
+ \tud@res@b{\tud@dim@layoutvoffset}%
\expandonce#1%
\def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}%
}%
@@ -2269,17 +2251,23 @@
\tud@cs@store{PackageWarningNoLine}%
\renewcommand*\PackageWarningNoLine[2]{%
\@tud@res@swatrue%
- \ifstr{##1}{typearea}{%
- \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}%
- \ifstrstart{##2}{%
+ \tud@if@strequal{##1}{typearea}{%
+ \tud@if@strstart{##2}{%
+ Bad type area settings!%
+ }{\@tud@res@swafalse}{}%
+ \tud@if@strstart{##2}{%
Maybe no optimal type area settings!%
}{\@tud@res@swafalse}{}%
- \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}%
+ \tud@if@strstart{##2}{%
+ Very low DIV value!%
+ }{\@tud@res@swafalse}{}%
}{}%
\if@tud@res@swa%
- \tud@cs@use{PackageWarning}{##1}{##2}%
+ \tud@cs@use{PackageWarningNoLine}{##1}{##2}%
\else%
- \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}%
+ \IfArgIsEmpty{#1}{}{%
+ \listeadd#1{\noexpand\tud@cs@use{PackageWarningNoLine}{##1}{##2}}%
+ }%
\fi%
}%
}
@@ -2315,8 +2303,8 @@
\let\tud@cdgeometry@@init\relax%
}%
\newcommand*\tud@cdgeometry@@process{%
- \setlength\tud@len@layoutwidth{\paperwidth}%
- \setlength\tud@len@layoutheight{\paperheight}%
+ \tud@setdim\tud@dim@layoutwidth{\paperwidth}%
+ \tud@setdim\tud@dim@layoutheight{\paperheight}%
\tud@cdgeometry@set%
}%
\newcommand*\tud@x@geometry@fixmargins{}%
@@ -2347,14 +2335,23 @@
% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal
% angepasst werden.
% \begin{macrocode}
-\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{%
- \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+\patchcmd\cleardoubleoddpageusingstyle{%
+ \pagestyle%
+}{%
+ \let\tud@BeforeSelectAnyPageStyle\@gobble%
+ \pagestyle%
}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}}
-\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{%
- \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+\patchcmd\cleardoubleevenpageusingstyle{%
+ \pagestyle%
+}{%
+ \let\tud@BeforeSelectAnyPageStyle\@gobble%
+ \pagestyle%
}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}}
-\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{%
- \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle%
+\patchcmd\cleardoublepageusingstyle{%
+ \pagestyle%
+}{%
+ \let\tud@BeforeSelectAnyPageStyle\@gobble%
+ \pagestyle%
}{}{\tud@patch@wrn{cleardoublepageusingstyle}}
% \end{macrocode}
% \end{macro}^^A \cleardoublepageusingstyle
@@ -2372,10 +2369,10 @@
\tud@if@v@lower{2.03}{%
\newcommand*\tud@ddc@enlargepage[1][]{%
\tud@if@tudheadings{#1}{%
- \ifstr{\tud@currentgeometry}{tudareaddc}{}{%
+ \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{%
\tud@ddc@check%
\ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false
- \enlargethispage{-\tud@len@ddcdiff}%
+ \enlargethispage{-\tud@dim@ddcdiff}%
\fi%
}%
}{}%
@@ -2388,6 +2385,6 @@
%</class&body>
% \fi
%
-% \Finale
+% \PrintBackMatter
%
\endinput