diff options
author | Karl Berry <karl@freefriends.org> | 2015-07-02 22:12:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-07-02 22:12:17 +0000 |
commit | 586aedcf63ecf6ea7da1c1529e5ea5ba8f5cb426 (patch) | |
tree | b679941add6df7f6b1ee8c135b24181f992dcb65 /Master | |
parent | fecdcd43eaa7f73e830159293fe22a202803086b (diff) |
tudscr (2jul15)
git-svn-id: svn://tug.org/texlive/trunk@37736 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
64 files changed, 18074 insertions, 11245 deletions
diff --git a/Master/texmf-dist/doc/latex/tudscr/README b/Master/texmf-dist/doc/latex/tudscr/README index 312b2139137..9eeee933f1c 100644 --- a/Master/texmf-dist/doc/latex/tudscr/README +++ b/Master/texmf-dist/doc/latex/tudscr/README @@ -2,7 +2,7 @@ TUD-KOMA-Script =============== -TUD-KOMA-Script 2015/02/15 v2.03 +TUD-KOMA-Script 2015/07/02 v2.04 Copyright (c) Falk Hanisch <tudscr@gmail.com>, 2012-2015 This material is subject to the LaTeX Project Public License version 1.3c or @@ -53,6 +53,16 @@ Das Bundle beinhaltet: Versionen --------- + +**v2.04** (2015/07/02) + ++ Anpassungen an KOMA-Script v3.18 ++ Einfachere Verwendung von `fontspec` ++ verbesserte Installationsroutine der Schriften für portable Distributionen ++ alleinstehender farbiger Querbalken im Kopfbereich ++ freier Inhalt im Fußbereich möglich + + **v2.03a** (2015/06/11) + Anpassungen an KOMA-Script v3.17 @@ -158,6 +168,16 @@ The bundle offers: Versions -------- + +**v2.04** (2015/07/02) + ++ adjustments to KOMA-Script v3.18 ++ simpler usage of `fontspec` ++ improved installation routine for portable distributions ++ solitary colored head bar ++ customisable content in the foot possible + + **v2.03a** (2015/06/11) + adjustments to KOMA-Script v3.17 diff --git a/Master/texmf-dist/doc/latex/tudscr/tudscr.pdf b/Master/texmf-dist/doc/latex/tudscr/tudscr.pdf Binary files differindex c7ea06391a8..0bd27b7a5c9 100644 --- a/Master/texmf-dist/doc/latex/tudscr/tudscr.pdf +++ b/Master/texmf-dist/doc/latex/tudscr/tudscr.pdf diff --git a/Master/texmf-dist/doc/latex/tudscr/tudscr_print.pdf b/Master/texmf-dist/doc/latex/tudscr/tudscr_print.pdf Binary files differindex aee6da0bc33..503e66d1b25 100644 --- a/Master/texmf-dist/doc/latex/tudscr/tudscr_print.pdf +++ b/Master/texmf-dist/doc/latex/tudscr/tudscr_print.pdf diff --git a/Master/texmf-dist/doc/latex/tudscr/tudscrsource.pdf b/Master/texmf-dist/doc/latex/tudscr/tudscrsource.pdf Binary files differindex 44cf8fb0817..5cf87b80eea 100644 --- a/Master/texmf-dist/doc/latex/tudscr/tudscrsource.pdf +++ b/Master/texmf-dist/doc/latex/tudscr/tudscrsource.pdf diff --git a/Master/texmf-dist/doc/latex/tudscr/tutorials/mathswap.pdf b/Master/texmf-dist/doc/latex/tudscr/tutorials/mathswap.pdf Binary files differindex 1cad81333ec..eaff7c52c67 100644 --- a/Master/texmf-dist/doc/latex/tudscr/tutorials/mathswap.pdf +++ b/Master/texmf-dist/doc/latex/tudscr/tutorials/mathswap.pdf diff --git a/Master/texmf-dist/doc/latex/tudscr/tutorials/mathtype.pdf b/Master/texmf-dist/doc/latex/tudscr/tutorials/mathtype.pdf Binary files differindex 4d5b0c8bbc0..ad22ec85a89 100644 --- a/Master/texmf-dist/doc/latex/tudscr/tutorials/mathtype.pdf +++ b/Master/texmf-dist/doc/latex/tudscr/tutorials/mathtype.pdf diff --git a/Master/texmf-dist/doc/latex/tudscr/tutorials/treatise.pdf b/Master/texmf-dist/doc/latex/tudscr/tutorials/treatise.pdf Binary files differindex 375b8a7a815..07269332cdf 100644 --- a/Master/texmf-dist/doc/latex/tudscr/tutorials/treatise.pdf +++ b/Master/texmf-dist/doc/latex/tudscr/tutorials/treatise.pdf diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex index 9be529aea77..8751e80856e 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/dissertation.tex @@ -1,5 +1,5 @@ \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman,BCOR=6mm,geometry=no,DIV=13]{tudscrreprt} +\documentclass[english,ngerman,BCOR=6mm,cdgeometry=no,DIV=13]{tudscrreprt} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} \usepackage{babel} @@ -10,7 +10,7 @@ \department{Fachrichtung Strafrecht} \institute{Institut für Kriminologie} \chair{Lehrstuhl für Kriminalprognose} -\date{16.12.2014} +\date{18.02.2015} \author{Mickey Mouse} \title{% Entwicklung eines optimalen Verfahrens zur Eroberung des diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex index 14622b9f3c6..1ebb3290a8e 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/document.tex @@ -9,7 +9,7 @@ \department{Fachrichtung Strafrecht} \institute{Institut für Kriminologie} \chair{Lehrstuhl für Kriminalprognose} -\date{16.12.2014} +\date{18.02.2015} \author{Mickey Mouse} \title{Der Geldspeicher in Entenhausen} \maketitle diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex index 032f883eb8b..c4137a4251a 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/evaluation.tex @@ -9,7 +9,7 @@ \begin{document} \faculty{Juristische Fakultät}\department{Fachrichtung Strafrecht} \institute{Institut für Kriminologie}\chair{Lehrstuhl für Kriminalprognose} -\date{16.12.2014} +\date{18.02.2015} \author{Mickey Mouse} \title{% Entwicklung eines optimalen Verfahrens zur Eroberung des @@ -34,12 +34,12 @@ erfolgt die Zusammenfassung und der Ausblick. }{% Die dargestellten Ergebnisse der vorliegenden Arbeit genügen den in der - Aufgabenstellung formulierten Arbeitsschwerpunkten. Sowohl Form, Ausdruck und - Terminologie als auch Struktur befriedigen die Anforderungen an eine + Aufgabenstellung formulierten Arbeitsschwerpunkten. Sowohl Form, Ausdruck + und Terminologie als auch Struktur befriedigen die Anforderungen an eine wissenschaftliche Arbeit. Die einzelnen Kapitel können hinsichtlich ihrer inhaltlichen Tiefe in Relation zu dem dazu benötigten Umfang als ausgewogen - betrachtet werden. Die verwendeten Grafiken und Tabellen sind gut aufbereitet - und tragen insgesamt zum besseren Verständnis bei. Fachliche + betrachtet werden. Die verwendeten Grafiken und Tabellen sind sehr gut + aufbereitet und tragen insgesamt zum besseren Verständnis bei. Fachliche Begrifflichkeiten werden sehr sauber verwendet, orthografische Mängel sind keine zu finden. }{1,0 (sehr gut)} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex index 7b3903a841d..292e03bbdd4 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/mathtype-example.tex @@ -55,7 +55,7 @@ M_\mathrm{EM_{min}}\leq M_\mathrm{EM}\leq M_\mathrm{EM_{max}} \begin{equation*} \begin{gathered} -\M{EM} = \frac{\M{Rad}}{i_g \cdot i\_A} - \M{VM} \\ +\M{EM} = \frac{\M{Rad}}{i_g \cdot i_A} - \M{VM} \\ \textrm{für } \begin{aligned} 0\leq \M{VM}\leq \M{VM}[max] \\ diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex index d82410e5e05..c7cd3028bc4 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/notice.tex @@ -9,7 +9,7 @@ \begin{document} \faculty{Juristische Fakultät}\department{Fachrichtung Strafrecht} \institute{Institut für Kriminologie}\chair{Lehrstuhl für Kriminalprognose} -\date{16.12.2014} +\date{18.02.2015} \title{% Entwicklung eines optimalen Verfahrens zur Eroberung des Geldspeichers in Entenhausen @@ -22,8 +22,8 @@ \emailaddress{mac.moneysac@tu-dresden.de}\telephone{+49 351 463-54321} } \noticeform[Angebot für eine Studien-/Diplomarbeit,pagestyle=empty]{% - Momentan ist das besagte Thema in aller Munde. Insbesondere wird es gerade in - vielen~-- wenn nicht sogar in allen~-- Medien diskutiert. Es ist momentan + Momentan ist das besagte Thema in aller Munde. Insbesondere wird es gerade + in vielen~-- wenn nicht sogar in allen~-- Medien diskutiert. Es ist momentan nicht abzusehen, ob und wann sich diese Situation ändert. Eine kurzfristige Verlagerung aus dem Fokus der Öffentlichkeit wird nicht erwartet. @@ -32,8 +32,7 @@ sollen Methoden entwickelt werden, wie sich ein ähnlicher Vorgang zukünftig vermeiden ließe. \begin{center} - \medskip - \includegraphics[width=.7\linewidth]{DDC-21} + \medskip\includegraphics[width=.7\linewidth]{DDC-21} \renewcommand*{\figureformat}{\figurename} \captionof{figure}{Thematisch passendes Bild} \end{center} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex index 4d355893e97..d9e688ede34 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/task.tex @@ -22,8 +22,7 @@ Donald Duck\matriculationnumber{87654321} \dateofbirth{1.2.1990}\placeofbirth{Berlin} \course{Statistische Prognostik}\discipline{Makrosoziologische Prognosen} -}\matriculationyear{2010} -\issuedate{1.2.2015}\duedate{1.8.2015} +}\matriculationyear{2010}\issuedate{1.4.2015}\duedate{1.10.2015} \supervisor{Dagobert Duck \and Mac Moneysac} \professor{Prof. Dr. Kater Karlo}\chairman{Prof. Dr. Primus von Quack} \taskform[pagestyle=empty]{% diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex index cbdeac883b7..7099e9669cb 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/thesis.tex @@ -9,7 +9,7 @@ \department{Fachrichtung Strafrecht} \institute{Institut für Kriminologie} \chair{Lehrstuhl für Kriminalprognose} -\date{16.12.2014} +\date{18.02.2015} \title{% Entwicklung eines optimalen Verfahrens zur Eroberung des Geldspeichers in Entenhausen diff --git a/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex b/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex index af1f0733b44..56e18adc611 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/examples/treatise-example.tex @@ -4,7 +4,6 @@ \usepackage{selinput} \SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} -\usepackage{fixltx2e} \usepackage{scrhack} \usepackage{tudscrsupervisor} @@ -12,7 +11,7 @@ \usepackage[% automake,% % mit Tex Live einfach verwendbar -% xindy={language=german-din}, +% xindy, acronym,% Abkürzungen symbols,% Formelzeichen nomain,% kein Glossar @@ -137,8 +136,6 @@ \usepackage{tabulary} \usepackage{tabu} -\usepackage[colorlinks,linkcolor=blue]{hyperref} - \usepackage{quoting} \usepackage[babel]{microtype} @@ -153,6 +150,8 @@ \usepackage{ellipsis} \let\ellipsispunctuation\relax +\usepackage[colorlinks,linkcolor=blue]{hyperref} + \begin{document} \faculty{Juristische Fakultät} @@ -247,7 +246,7 @@ der weiteren Umgebungen und Befehle demonstriert, welche im Tutorial \newacronym{sssp}{SSSP}{Single-Source Shortest Path} In der Graphentheorie wird häufig die Lösung des Problems des kürzesten -Pfades zwischen zwei Knoten gesucht. Dieses Problem wird häugig auch +Pfades zwischen zwei Knoten gesucht. Dieses Problem wird häufig auch mit \gls{spsp} bezeichnet. Es lässt sich auf die Variationen \gls{sssp} und \gls{apsp} erweitern. Für die Lösung von \gls{spsp}, \gls{sssp} oder \gls{apsp} kommen unterschiedliche Algorithmen zum Einsatz. @@ -376,13 +375,12 @@ Blocksatz für eine um einiges bessere Demonstration einer J"~Spalte \end{table} \subsubsection{Eine gleitende tabu-Tabelle} -Eine andere Variante zum Setzen einer Tabelle mit variabler Spaltenbreite -und festgelegter Gesamtbreite ist in \autoref{tab:tabu} zu sehen. Diese -würde in der Umgebung \texttt{tabu} gesetzt. Auch für diese wird zuerst -ein neuer Spaltentyp definiert, welcher die Unzulänglichkeiten der -Umgebung reduziert. Außerdem wird \texttt{\textbackslash ttabbox} aus dem -Paket \texttt{floatrow} verwendet, um die Beschriftung auf die Breite der -Tabelle zu begrenzen. +In \autoref{tab:tabu} ist eine weitere Tabelle mit variabler Breite der +Spalten und festgelegter Gesamtbreite zu sehen, welche in der Umgebung +\texttt{tabu} gesetzt wurde. Auch für diese wird zuerst ein neuer +Spaltentyp definiert, der die Unzulänglichkeiten der Umgebung reduziert. +Mit \texttt{\textbackslash ttabbox} aus dem Paket \texttt{floatrow} wird +die Beschriftung auf die Breite der Tabelle begrenzt. \makeatletter \newcolumntype{Z}{} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex new file mode 100644 index 00000000000..7dd02ec71a3 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-additional.tex @@ -0,0 +1,43 @@ +\chapter{Identifikation von \TUDScript} +Im \TUDScript-Bundle gibt es neben den Klassen selbst auch noch zusätzliche +Pakete. Ein Teil dieser Pakete~-- genauer \Package{tudscrsupervisor} und +\Package{tudscrcomp}~-- sind ausschließlich mit den \TUDScript-Klassen nutzbar, +andere wiederum~-- die beiden Pakete für Belange des \CDs \Package{tudscrfonts} +(Schriften) und \Package{tudscrcolor} (Farben) sowie die davon vollkommen +unabhängigen Pakete \Package{mathswap} und \Package{twocolfix}~-- können mit +allen existierenden \hologo{LaTeXe}-Dokumentklassen genutzt werden. Sämtliche +Klassen und Pakete aus dem \TUDScript-Bundle enthalten Befehle, welche diese +als Bestandteil identifizieren. + +\begin{Declaration}[v2.04]{\Macro{TUDScript}} +\printdeclarationlist% +% +Diese Anweisung setzt das Logo respektive die Wortmarke \enquote{\TUDScript{}} +in serifenloser Schrift und mit leichter Sperrung des in Versalien gesetzten +Teils. Dieser Befehl wird von allen Klassen und Paketen des \TUDScript-Bundles +mit \Macro*{DeclareRobustCommand}. +\end{Declaration} + +\begin{Declaration}[v2.04]{\Macro{TUDVersion}} +\printdeclarationlist% +% +In dieser Anweisung ist die Hauptversion von \TUDScript in der Form +\begin{quoting} +\PName{Datum}~\PName{Version}~\PValue{TUD-KOMA-Script} +\end{quoting} +abgelegt. Diese Version ist im \TUDScript-Bundle für alle Klassen und Pakete +gleich und kann daher nach dem Laden einer Klasse oder eines Paketes abgefragt +werden. Diese Anleitung wurde beispielsweise mit \enquote{\TUDVersion{}} +erstellt. +\end{Declaration} + +\begin{Declaration}[v2.04]{\Macro{TUDClassName}} +\printdeclarationlist% +% +In \Macro{TUDClassName} ist der Name der aktuell verwendeten \TUDScript-Klasse +abgelegt. Will man also wissen, ob eine oder welche \TUDScript-Klasse verwendet +wird, so kann man einfach auf diese Anweisung testen. Von \KOMAScript{} werden +zusätzlich noch die Anweisungen \Macro*{KOMAClassName} und \Macro*{ClassName} +definiert, welche den Namen der zugrundeliegenden \KOMAScript-Klasse sowie die +durch diese ersetzte Standardklasse enthalten. +\end{Declaration} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex index a50c3f324ae..655c2a37c7a 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-bundle.tex @@ -6,7 +6,7 @@ } \chapter{Zusätzliche Pakete im \TUDScript-Bundle} \label{sec:bundle} -\section{Das Paket \Package{tudscrsupervisor} -- Studentische Betreuung} +\section{Das Paket \Package*{tudscrsupervisor} -- Studentische Betreuung} \begin{Declaration*}{\Package{tudscrsupervisor}} Dieses Paket stellt für das Erstellen von Aufgabenstellungen und Gutachten wissenschaftlicher Arbeiten sowie offiziellen Aushängen im \CD passende @@ -274,7 +274,7 @@ Am Ende eines Aushangs können mit \Macro{contactperson} Kontaktinformationen für eine oder mehrere Ansprechpartner angegeben werden. Soll mehr als eine Kontaktperson genannt werden, so müssen diese innerhalb des Befehls \Macro{contactperson} mit dem Befehl \Macro{and} getrennt werden. Für jede -Person kann innerhalb von \Macro{contactperson} der Dienstsitz +Person kann innerhalb des Argumentes von \Macro{contactperson} der Dienstsitz (\Macro{office}), die dienstliche Telefonnummer (\Macro{telephone}) sowie die geschäftliche E"~Mail"=Adresse (\Macro{emailaddress}) angegeben werden. Sollte das Paket \Package{hyperref} geladen werden, wird die gegebene E"~Mail"=Adresse @@ -309,7 +309,7 @@ um die Typisierung erweitert. Falls gewünscht, kann die automatisch generierte \end{Declaration} \end{Declaration} -\begin{Declaration}{\Term{authorname}} +\begin{Declaration}[v2.04]{\Term{namesname}} \begin{Declaration}{\Term{titlename}} \begin{Declaration}{\Term{coursename}} \begin{Declaration}[v2.02]{\Term{disciplinename}} @@ -319,7 +319,7 @@ Diese Bezeichner werden in der Tabelle mit den Autoreninformationen zu Beginn der Aufgabenstellung verwendet. Dabei werden \Term{coursename} und \Term{disciplinename} nur genutzt, wenn für mindestens einen Autor die Befehle \Macro{course} und/oder \Macro{discipline} verwendet wurden. -\TermTable{authorname,titlename,coursename,disciplinename} +\TermTable{namesname,titlename,coursename,disciplinename} \end{Declaration} \end{Declaration} \end{Declaration} @@ -409,7 +409,7 @@ der Bezeichner \Term{contactpersonname} verwendet. \end{Declaration*} -\section{Das Paket \Package{tudscrcolor} -- Farben im \CD}% +\section{Das Paket \Package*{tudscrcolor} -- Farben im \CD}% \begin{Declaration*}{\Package{tudscrcolor}} \index{Farben|!}% % @@ -426,8 +426,7 @@ Diese Farben dürfen sowohl in ihrer Grundform als auch in helleren Tönen mit einer Abstufung in 10\,\%"~Schritten verwendet werden. Das ohnehin verwendete Paket \Package{xcolor} stellt genau diese Funktionalität zur Verfügung. Jede der Farben kann sowohl über \Color*{HKS}\PName{Zahl} als auch über ein -Pseudonym \Color*{cd}\PName{Farbe} angesprochen werden. Diese werden in diesem -\autorefname dokumentiert und dargestellt. +Pseudonym \Color*{cd}\PName{Farbe} genutzt werden. % \begin{Example*} Die Grundfarbe \Color*{HKS44} soll in der auf 20\% reduzierten, helleren @@ -484,29 +483,26 @@ direkt an \Package{xcolor} übergeben werden% \end{tikzpicture}% } - -\subsection{Primäre Hausfarbe} +\subsection{Generelle Farbdefinitionen} +\minisec{Primäre Hausfarbe} \begin{Declaration}{\Color{HKS41}[cddarkblue]} \printdeclarationlist% \cdcolor[6]{41} \end{Declaration} - -\subsection{Sekundäre Hausfarbe (Geschäftsausstattung)} +\minisec{Sekundäre Hausfarbe (Geschäftsausstattung)} \begin{Declaration}{\Color{HKS92}[cdgray]} \printdeclarationlist% \cdcolor[4]{92} \end{Declaration} - -\subsection{Auszeichnungsfarbe 1.Kategorie} +\minisec{Auszeichnungsfarbe 1.Kategorie} \begin{Declaration}{\Color{HKS44}[cdblue]} \printdeclarationlist% \cdcolor[4]{44} \end{Declaration} - -\subsection{Auszeichnungsfarbe 2.Kategorie} +\minisec{Auszeichnungsfarbe 2.Kategorie} \begin{Declaration}{\Color{HKS36}[cdindigo]} \begin{Declaration}{\Color{HKS33}[cdpurple]} \begin{Declaration}{\Color{HKS57}[cddarkgreen]} @@ -521,8 +517,7 @@ direkt an \Package{xcolor} übergeben werden% \end{Declaration} \end{Declaration} - -\subsection{Ausnahmefarbe} +\minisec{Ausnahmefarbe} \begin{Declaration}{\Color{HKS07}[cdorange]} \printdeclarationlist% \cdcolor{07} @@ -584,12 +579,12 @@ CMYK"=Farbmodell in den RGB"=Farbraum zu wechseln. Unterstützte Werte für RGB-Werte entstammen aus dem Handbuch zum \CD und sind lediglich Näherungswerte. Abweichungen vom gedruckten \Color*{HKS}-Farbregister und selbst ermittelten Werten sind technisch nicht zu vermeiden. -} +}% \end{Declaration*} -\section{Das Paket \Package{tudscrfonts} -- Schriften im \CD} +\section{Das Paket \Package*{tudscrfonts} -- Schriften im \CD} \begin{Declaration*}[v2.02]{\Package{tudscrfonts}} \printchangedatlist % @@ -599,12 +594,12 @@ Großteil der in \fullref{sec:fonts} beschriebenen Optionen und Befehle. Die nutzbaren Paketoptionen sind für den Fließtext \Option{cdfont}~-- ohne die Einstellungsmöglichkeiten für den Querbalken des \CDs (\Option{cdhead})~-- und für die mathematischen Schriften \Option{cdmath} sowie \Option{slantedgreek}. -Da von \Package{tudscrfonts} intern das Paket \Package{tudscrbase} geladen +Da von \Package{tudscrfonts} intern das Paket \Package{tudscrbase}() geladen wird, können diese entweder als Paketoptionen im optionalen Argument von -\Macro*{usepackage}\OParameter{Paketoption}\PParameter{\Package{tudscrfonts}} -oder direkt als Klassenoption angegeben werden. Zusätzlich ist nach dem Laden -des Paketes die späte Optionenwahl mit \Macro{TUDoption} beziehungsweise -\Macro{TUDoptions} möglich. +\Macro*{usepackage}\OParameter{Paketoption}\PParameter{tudscrfonts} oder direkt +als Klassenoption angegeben werden. Zusätzlich ist nach dem Laden des Paketes +die späte Optionenwahl mit \Macro{TUDoption} beziehungsweise \Macro{TUDoptions} +möglich. Des Weiteren wird das Paket \Package{textcase} geladen, welches die Befehle \Macro{MakeTextUppercase} und \Macro{NoCaseChange} zur Verfügung stellt. Der @@ -612,19 +607,25 @@ Befehl \Macro{ifdin} wird ebenso wie die in \autoref{sec:fonts} beschriebenen Textschalter und "~kommandos sowie die Befehle für die griechischen Buchstaben bereitgestellt. -Prinzipiell kann das Paket \Package{tudscrfonts} mit jeder beliebigen -\hologo{LaTeXe}-Klasse verwendet werden. Sollen allerdings die Überschriften~-- -wie im \CD vorgesehen~-- in Majuskeln der \DIN gesetzt werden, muss der -Anwender dies für die jeweilige Klasse selbst umsetzen. Dafür sei noch einmal -auf die Textauswahlbefehle \Macro{textdbn} und \Macro{dinbn} sowie den Befehl -\Macro{MakeTextUppercase} zur automatisierten Großschreibung hingewiesen. - Das Paket \Package{tudscrfonts} ist insbesondere für die Verwendung zusammen -mit den Klassen \Class{tudbook}, \Class{tudbeamer}, \Class{tudletter}, -\Class{tudfax}, \Class{tudhaus} sowie \Class{tudform} vorgesehen. Die -Schriftinstallation für das \TUDScript-Bundle unterscheidet sich von der für -die gerade genannten Klassen sehr stark. Dabei wurde auch die Bezeichnung der -Schriftfamilien geändert. Dies hatte zwei Gründe, wobei der letztere der +mit einer der Klassen \Class{tudbook}, \Class{tudbeamer}, \Class{tudletter}, +\Class{tudfax}, \Class{tudhaus} sowie \Class{tudform} vorgesehen. Zusätzlich +werden seit der Version~v2.04 +\ChangedAt{% + v2.04!\Package{tudscrfonts}: Unterstützung von \Class{tudposter} und + \Class{tudmathposter}% +} +auch \Class{tudmathposter} und \Class{tudposter} unterstützt. Das Paket kann +prinzipiell mit jeder beliebigen \hologo{LaTeXe}-Klasse verwendet werden. Wird +keine der zuvor genannten Klassen genutzt, muss der Anwender das Setzen der +Gliederungsüberschriften in Majuskeln der \DIN~-- wie es im \CD vorgesehen +ist~-- selbst umsetzen. Dafür sei abermals auf die Textauswahlbefehle +\Macro{textdbn} und \Macro{dinbn} sowie den Befehl \Macro{MakeTextUppercase} +zur automatisierten Großschreibung hingewiesen. + +Die Schriftinstallation für das \TUDScript-Bundle unterscheidet sich von der +für die gerade genannten Klassen sehr stark. Dabei wurde auch die Bezeichnung +der Schriftfamilien geändert. Dies hatte zwei Gründe, wobei der letztere der entscheidende ist: % \begin{enumerate} @@ -636,17 +637,16 @@ entscheidende ist: Bei der Installation für das \TUDScript-Bundle werden sowohl die Metriken als auch das Kerning der Schriften für Fließtext und den Mathematikmodus angepasst, was das Ergebnis der erzeugten Ausgabe beeinflusst. Damit jedoch - Dokumente, die mit den Klassen von Klaus Bergmann erstellt wurden, weiterhin - genauso ausgegeben werden wie bisher, mussten die Schriftfamilien einen neuen - Namen erhalten. + Dokumente, die mit den zuvor genannten, älteren Klassen erstellt wurden, + weiterhin genauso ausgegeben werden wie bisher, mussten die Schriftfamilien + einen neuen Namen erhalten. \end{enumerate} % -Wird nun das Paket \Package{tudscrfonts} zusammen mit den alten Klassen von -Klaus Bergmann verwendet hat dies den Vorteil, dass auch in diesen das -angepasste Kerning der Schriften sowie der stark verbesserte Mathematiksatz zum -Tragen kommen. Außerdem kann bei der Verwendung von \Package{tudscrfonts} auf -eine Installation der Schriften des \CDs in der alten Variante verzichtet -werden. +Wird nun das Paket \Package{tudscrfonts} einer der zuvor genannten, älteren +Klassen verwendet, hat dies den Vorteil, dass auch in diesen das angepasste +Kerning der Schriften sowie der stark verbesserte Mathematiksatz zum Tragen +kommen. Außerdem kann bei der Verwendung von \Package{tudscrfonts} auf eine +Installation der Schriften des \CDs in der alten Variante verzichtet werden. \Attention{% In diesem Fall kann sich das Ausgabeergebnis im Vergleich zu der Varianten mit den alten Schriften ändern. Alternativ zur Verwendung des Paketes @@ -656,12 +656,25 @@ werden. beziehungsweise \hrfn{https://github.com/tud-cd/tudscrold/releases/download/fonts/tudfonts_install.sh}{\File{tudfonts\_install.sh}} bereitgestellt. -} +}% \end{Declaration*} +\ToDo[doc,nxt]{% + Optimale Verwendung des Paketes \Package{tudscrfonts} mit alten Klassen, + Laden des Paketes \Package{rescalefont} bei \Class{tudmathposter} unterbinden +% \RequirePackage{scrlfile}\PreventPackageFromLoading{rescalefont}% +}[v2.05] +%title: tudmathposter wird unterstützt +%\sectionfont: tudmathposter wird unterstützt +%\subsectionfont: tudmathposter wird unterstützt +%\subtitlefont: tudmathposter wird unterstützt +%\tudfont: tudmathposter wird unterstützt +\ToDo[imp,nxt]{% + Unterstützung für alle Klassen von Klaus Bergmann implementieren% +}[v2.05] -\section{Das Paket \Package{mathswap}} +\section{Das Paket \Package*{mathswap}} \begin{Declaration*}{\Package{mathswap}} \index{Trennzeichen}\index{Mathematiksatz}% \index{Trennzeichen!Dezimaltrennzeichen}% @@ -725,38 +738,47 @@ es standardmäßig aktiviert. -\section{Das Paket \Package{twocolfix}} +\section{Das Paket \Package*{twocolfix}} \begin{Declaration*}{\Package{twocolfix}} \index{Zweispaltensatz|?}% % Der \hologo{LaTeXe}-Kernel enthält einen Fehler, der Kapitelüberschriften im zweispaltigen Layout höher setzt, als im einspaltigen. Der \hrfn{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3126}{Fehler} -ist zwar schon länger bekannt, allerdings noch nicht in \Package{fixltx2e} -übernommen worden. Das Paket \Package{twocolfix} behebt das Problem. Eine -Integration dieses Bugfixes in \KOMAScript{} wurde bereits bei Markus Kohm -angefragt, jedoch von ihm bis jetzt \hrfn{http://www.komascript.de/node/1681} -{nicht weiter verfolgt}. +ist zwar schon länger bekannt, allerdings bisher noch nicht in den +\hologo{LaTeXe}-Kernel übernommen worden. Das Paket \Package{twocolfix} behebt +das Problem. Eine Integration dieses Bugfixes in \KOMAScript{} wurde bereits +bei Markus Kohm angefragt, jedoch von ihm bis jetzt +\hrfn{http://www.komascript.de/node/1681}{nicht weiter verfolgt}. \end{Declaration*} - \addsec*{Zukünftige Arbeiten} -Diese Dinge sollen langfristig in das \TUDScript-Bundle eingearbeitet werden. - +Diese Dinge sollen langfristig in das \TUDScript-Bundle eingearbeitet werden: -%\chapter[Die Briefklasse \Class*{tudscrlttr}]{Die Briefklasse} -%\begin{Declaration*}{\Class{tudscrlttr}} -\ToDo[imp,nxt]{Klasse \Class*{tudscrlttr}}[v2.x] -Es soll die Klasse \Class*{tudscrlttr} für Briefe im \CD der \TnUD entstehen. -Auch Vorlagen für Fax und Hausmitteilungen sollen dabei abfallen. +%\chapter{Das Paket \Package{tudscrletter} -- Briefe im \CD} +%\begin{Declaration*}{\Package{tudscrletter}} +\ToDo[imp,nxt]{Paket \Package*{tudscrletter} für Briefe im \CD}[v2.07] +Es soll das Paket \Package*{tudscrletter}(tudscr) für Briefe im \CD der \TnUD +entstehen. Auch Vorlagen für Fax und Hausmitteilungen sollen dabei abfallen. %\end{Declaration*} - -%\section{Das Paket \Package{tudscrposter} -- Poster im \CD}% -%\begin{Declaration*}{\Package{tudscrposter}} +% +%\chapter{Das Paket \Package{tudscrbeamer} -- Präsentationen im \CD} +%\begin{Declaration*}{\Package{tudscrbeamer}} +\ToDo[imp,nxt]{Paket \Package*{tudscrbeamer} für Präsentationen im \CD}[v2.08] +Mit \Package*{tudscrbeamer}(tudscr) soll ein Paket entwickelt werden, mit dem +sich \hologo{LaTeX}-Beamer-Präsentationen im Stil der \TnUD erstellt werden +können. +%\end{Declaration*} +% +%\chapter{Das Paket \Package{tudscrlayout} -- Seitenstil und Satzspiegel im \CD} +%\begin{Declaration*}{\Package{tudscrlayout}} \ToDo[imp,nxt]{% - Paket \Package*{tudscrposter} als Ersatz für \Class{tudmathposter}% -}[v2.04] -Die Funktionalität der Klasse \Class{tudmathposter} soll in ein eigenständiges -Paket mit dem Namen \Package*{tudscrposter}(tudscr) o.\,ä. überführt werden. + Paket \Package*{tudscrlayout} \url{https://github.com/tud-cd/tud-cd/issues/6} + % \Option{cdgeometry}[forced] für Satzspiegel +}[v2.09] +Außerdem ist ein Paket \Package*{tudscrlayout}(tudscr) vorstellbar, mit dem +entweder die \PageStyle{tudheadings}-Seitenstile in anderen Klassen genutzt +werden können oder der durch das \CD vorgegebene Satzspiegel ohne den +Seitenstil selbst verwendet wird, um vorgedrucktes Papier verwenden zu können. %\end{Declaration*} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex index 3d627e2c1f4..dc14f23cf73 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-examples.tex @@ -98,7 +98,7 @@ wissenschaftlichen Arbeit gedacht. \index{Tutorial!Mathematiksatz} Das Tutorial \Tutorial{mathtype}|!| richtet sich an alle Anwender, die in ihrem \hologo{LaTeX}"=Dokument mathematische Formeln setzen wollen. In diesem wird -ausführlich darauf eingegangen, wie mit wenigen Handgriffen ein typographisch +ausführlich darauf eingegangen, wie mit wenigen Handgriffen ein typografisch sauberer Mathematiksatz zu bewerkstelligen ist. \section{Änderung der Trennzeichen im Mathematikmodus} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex index 8115c272899..3dbae620946 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-hints.tex @@ -32,12 +32,12 @@ unter unixoiden Betriebssystemen in \Path{.config/texstudio} eingefügt werden. Möchten Sie das grafische \hologo{LaTeX}-Frontend~\Application{\hologo{LyX}} für das Erstellen eines Dokumentes mit \TUDScript nutzen, so werden dafür spezielle Layout-Dateien benötigt, um die Klassendateien verwenden zu können. -Diese sind zusammen mit einem exemplarischen \hologo{LyX}-Dokument als Archiv +Diese sind zusammen mit einem \Application{\hologo{LyX}}-Dokument als Archiv \hrfn{https://github.com/tud-cd/tudscr/releases/download/LyX/tudscr4lyx.zip}% {\File{tudscr4lyx.zip}} im \GitHubRepo* verfügbar. Die Layout-Dateien müssen dafür im \Application{\hologo{LyX}}"=Installationspfad in den passenden Unterordner kopiert werden. Dieser ist bei Windows -\Path{\%PROGRAMFILES(X86)\%\textbackslash{}LyX~2.0\textbackslash{}Resources\textbackslash{}layouts} +\Path{\%PROGRAMFILES(X86)\%\textbackslash{}LyX~2.1\textbackslash{}Resources\textbackslash{}layouts} beziehungsweise bei unixoiden Betriebssystemen \Path{/usr/share/lyx/layouts}. Anschließend muss LyX über den Menüpunkt \emph{Werkzeuge} neu konfiguriert werden. @@ -47,18 +47,17 @@ werden. \section{Literaturverwaltung in \NoCaseChange{\hologo{LaTeX}}} \ChangedAt{v2.02!\TaT: Literaturverwaltung} % -Die simpelste Variante, eine Literaturdatenbank in \hologo{LaTeX} zu verwalten, -ist dies mit dem verwendeten \hologo{LaTeX}-Editors manuell zu erledigen. Dies -ist allerdings nicht sonderlich komfortabel. Einfacher ist es, dies mit einer -darauf spezialisierten Anwendung zu bewerkstelligen. Für die Referenzverwaltung -in \hologo{LaTeX} gibt es dafür zwei sehr gute Programme +Die simpelste Variante, eine \hologo{LaTeX}-Literaturdatenbank zu verwalten, +ist dies mit dem Editor manuell zu erledigen. Wesentlich komfortabler ist es +jedoch, die Referenzverwaltung mit einer darauf spezialisierten Anwendung zu +bewerkstelligen. Dafür gibt es zwei sehr gute Programme: % \begin{itemize} \item \Application{Citavi} \item \Application{JabRef} \end{itemize} % -Das Programm \Application{Citavi} ermöglicht den Import von bibliographischen +Das Programm \Application{Citavi} ermöglicht den Import von bibliografischen Informationen aus dem Internet. Allerdings sind diese teilweise unvollständig oder mangelhaft. Mit \Application{JabRef} hingegen muss die Literaturdatenbank manuell erstellt werden. Allerdings lassen sich einzelne Einträge aus @@ -132,7 +131,7 @@ dem Paket \Package{babel} gearbeitet werden. Diese sind: \vskip\baselineskipglue\noindent \begin{tabular}{@{}ll} \textbf{Beschreibung} & \textbf{Befehl}\tabularnewline -ausschließliche Trennstellen & \PValue{\bsc-}\tabularnewline +ausschließliche Trennstellen & \PValue{\textbackslash-}\tabularnewline zusätzliche Trennstellen & \PValue{"'-}\tabularnewline Umbruch ohne Trennstrich & \PValue{"'"'}\tabularnewline Bindestrich ohne Umbruch & \PValue{"'\textasciitilde}\tabularnewline @@ -142,7 +141,7 @@ Bindestrich, der weitere Trennstellen erlaubt & \PValue{"'=}\tabularnewline \section{Lokale Änderungen von Befehlen und Einstellungen} -\index{Gruppierungen} +\index{Befehle!Geltungsbereich}\index{Befehle!Deklaration} % \ChangedAt{v2.02!\TaT: Lokale Änderungen} % @@ -177,7 +176,7 @@ werden. -\section{Bezeichnung der Gliederungsebenen durch \Package{hyperref}} +\section{Bezeichnung der Gliederungsebenen durch \Package*{hyperref}} \index{Querverweise} % \ChangedAt{v2.02!\TaT: Bezeichnungen der Gliederungsebenen} @@ -202,7 +201,7 @@ Bezeichnungen von Gliederungsebenen können folgendermaßen verändert werden. -\section{URL-Umbrüche im Literaturverzeichnis mit \Package{biblatex}} +\section{URL-Umbrüche im Literaturverzeichnis mit \Package*{biblatex}} \index{Literaturverzeichnis} % \ChangedAt{v2.02!\TaT: URL-Umbrüche im Literaturverzeichnis} @@ -226,8 +225,8 @@ worden sein, können die Abstände bei mehrzeiligen Überschriften als zu groß erscheinen. Um dies zu korrigieren kann mit dem Befehl \Macro{addtokomafont}% \PParameter{disposition}\PParameter{\Macro{setstretch}\PParameter{1}} der Zeilenabstand aller Überschriften auf einzeilig zurückgeschaltet werden. Soll -dies nur für eine bestimmte Gliederungsebene erfolgen, so ist -\PParameter{disposition} durch das entsprechende Schriftelement zu ersetzen. +dies nur für eine bestimmte Gliederungsebene erfolgen, so ist der Parameter +\PValue{disposition} durch das entsprechende Schriftelement zu ersetzen. @@ -299,7 +298,7 @@ vor der ersten und nach der letzten entfernt werden. \section{Unterdrückung des Einzuges eines Absatzes} \index{Absatzauszeichnung} -Verwendet man~-- wie es aus typographischer Sicht zumeist sinnvoll ist~-- +Verwendet man~-- wie es aus typografischer Sicht zumeist sinnvoll ist~-- Einzüge und keine vertikalen Abstände zur Auszeichnung von Absätzen im Dokument (\Option{parskip}[false]), kann es vorkommen, dass ein bestimmter Absatz~-- beispielsweise der nach einer gewissen Umgebung folgende~-- ungewollt @@ -323,7 +322,7 @@ Paket manipulieren. -\section{Setzen von Einheiten mit \Package{siunitx}} +\section{Setzen von Einheiten mit \Package*{siunitx}} \label{sec:tips:siunitx} \index{Einheiten} Wenn \Package{siunitx} in einem deutschsprachigen Dokument genutzt soll @@ -383,7 +382,7 @@ Dabei sollte der eingesetzte Wert nicht zu groß ausfallen. \section{Leer- und Satzzeichen nach \NoCaseChange{\hologo{LaTeX}}-Befehlen}% \label{sec:tips:xspace} -\index{Typographie} +\index{Typografie} % Normalerweise \enquote{schluckt} \hologo{LaTeX} die Leerzeichen nach einem Makro ohne Argumente. Dies ist jedoch nicht immer~-- genau genommen in den @@ -416,7 +415,7 @@ ignoriert wird: \section{Das Setzen von Auslassungspunkten} \manualhyperdef{sec:tips:dots} -\index{Typographie} +\index{Typografie} % \ChangedAt{v2.02!\TaT: Das Setzen von Auslassungspunkten} % @@ -470,7 +469,6 @@ Für \hologo{LaTeX} stehen jede Menge Symbole zur Verfügung, die allerdings nicht immer einfach zu finden sind. In der Zusammenfassung \hrfn{http://mirrors.ctan.org/info/symbols/comprehensive/symbols-a4.pdf}% {\File{symbols-a4.pdf}} werden viele Symbole aus mehreren Paketen aufgeführt. -Allerdings ist das Auffinden eines speziellen Symbols nicht sehr komfortabel. Alternativ kann \hrfn{http://detexify.kirelabs.org/classify.html}{Detexify} verwendet werden. Auf dieser Web-Seite wird das gesuchte Symbol einfach gezeichnet, die dazu ähnlichsten werden zurückgegeben. @@ -515,16 +513,72 @@ Mitteln von \KOMAScript{} geändert werden kann. \end{Code} \end{Example} +\ToDo[doc,nxt]{Schnittmarken mit \Package{crop} dokumentieren}[v2.05] +%\section{Schnittmarken} -\ToDo[imp,nxt]{Schnittmarken implementieren und dokumentieren}[v2.04] -%\section{Schnittmarken} +\section{Vermeiden des Skalierens einer PDF-Datei beim Druck} +% +\ChangedAt{v2.04!\TaT: Vermeiden des Skalierens einer PDF-Datei beim Druck} +% +Beim Erzeugen eines Druckauftrages einer PDF-Datei kann es unter Umständen dazu +führen, dass diese durch den verwendeten PDF-Betrachter unnötigerweise vorher +skaliert wird und dabei die Seitenränder vergrößert werden. Um dieses Verhalten +für Dokumente, die mit \hologo{pdfTeX} erzeugt werden, zu unterdrücken, gibt es +zwei Möglichkeiten: +% +\begin{enumerate} +\item Es kann \Macro*{hypersetup}\PParameter{pdfprintscaling=None} verwendet + werden, wenn im Dokument ohnehin das Paket \Package{hyperref} geladen wird. +\item Mit dem Low-Level-Befehl + \Macro*{pdfcatalog}\PParameter{/ViewerPreferences<</PrintScaling/None>>} + lässt sich auch ohne das Paket das gleiche Verhalten erreichen. +\end{enumerate} +% +Weitere Informationen dazu sind unter \url{http://www.komascript.de/node/1897} +zu finden. +\section{Warnung bei der Schriftgrößenwahl} +% +\ChangedAt{v2.04!\TaT: Warnung bei der Schriftgrößenwahl} +% +Die im Dokument verwendete Schriftgröße kann bei den \KOMAScript-Klassen sehr +einfach über die Option~\Option{fontsize} eingestellt werden, wobei diese immer +als Klassenoption angegeben werden sollte. Bei relativ großen und kleinen +Schriftgrößen kann dabei eine Warnung in der Gestalt +% +\begin{quoting} +\begin{Code}[escapechar=§] +LaTeX Font Warning: Font shape `§\dots§' in size <xx> not available +\end{Code} +\end{quoting} +% +auftreten. Dies daran, dass zum Zeitpunkt des Ladens einer Klasse immer nach +den Computer-Modern-Standardschriften gesucht wird, unabhängig davon, ob im +Nachhinein ein anderes Schriftpaket geladen wird. Diese sind de-facto nicht in +alle Größen skalierbar. Um die Warnungen zu beseitigen, sollte das Paket +\Package{fix-cm} mit \Macro*{RequirePackage} \emph{vor} der Dokumentklasse +geladen werden: +\begin{quoting}[rightmargin=0pt] +\begin{Code}[escapechar=§] +\RequirePackage{fix-cm} +\documentclass[<Optionen>]{<Klasse>} +\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\usepackage[T1]{fontenc} +§\dots§ +\begin{document} +§\dots§ +\end{document} +\end{Code} +\end{quoting} +% +Damit werden die Warnungen behoben. + \section{Platzierung von Gleitobjekten} \manualhyperdef'{sec:tips:floats}{}% -\index{Gleitobjekte|?}% +\index{Gleitobjekte|?}\index{Gleitobjekte!Platzierung}% % Mit den beiden Paketen \Package{flafter} sowie \Package{placeins} gibt es die Möglichkeit, den für \hologo{LaTeX} zur Verfügung stehenden Raum für die @@ -625,7 +679,7 @@ schreiben: -\section{Automatisiertes Einbinden von \Application{Inkscape}-Grafiken } +\section{Automatisiertes Einbinden von \Application*{Inkscape}-Grafiken } \manualhyperdef'{sec:tips:svg}% \index{Grafiken}% % @@ -636,8 +690,8 @@ verbesserter Ansatz vorgestellt. Nutzer von unixartigen Systemen können alternativ auch das Paket \Package{svg} nutzen, welches den folgend erläuterten Befehl \Macro{includesvg} definiert. -Die mit \Application{Inkscape} erstellte Grafik soll automatisch kompiliert und -eingebunden werden. Dies soll allerdings nicht bei jeder Kompilierung des +Die mit \Application{Inkscape}|?| erstellte Grafik soll automatisch kompiliert +und eingebunden werden. Dies soll allerdings nicht bei jeder Kompilierung des Hauptdokumentes erfolgen, sondern lediglich, wenn die originale Bilddatei geändert beziehungsweise aktualisiert wurde. Hierfür wird \Package{filemod} verwendet. Die automatisierte Übersetzung einer Grafik im SVG"~Format in eine @@ -664,23 +718,54 @@ in der Präambel des Dokumentes wie folgt möglich: Mit \Macro*{immediate}\Macro*{write18}\Parameter{externer Aufruf} wird das zwischenzeitliche Ausführen eines externen Programms beim Durchlauf von \hologo{pdfLaTeX}~-- in diesem Fall von \File{inkscape.exe}~-- möglich. Damit -der externe Aufruf auch tatsächlich durchgeführt wird, muss \hologo{pdfLaTeX} -mit der Option \Path{-{}-shell-escape} ausgeführt werden. Außerdem muss der -Pfad zur Datei \File{inkscape.exe} dem System bekannt sein.% +der externe Aufruf auch tatsächlich durchgeführt wird, ist die Ausführung von +\hologo{pdfLaTeX} mit der Option \Path{-{}-shell-escape} beziehungsweise bei +der Verwendung von \Distribution{\hologo{MiKTeX}} mit \Path{-{}-enable-write18} +zwingend notwendig. Außerdem muss der Pfad zur Datei \File{inkscape.exe} dem +System bekannt sein.% \footnote{% - Genauer gesagt, muss der Pfad zu \File{inkscape.exe} in der - \texttt{PATH}-Variable des Betriebssystems enthalten sein. + Der Pfad zu \File{inkscape.exe} in der Umgebungsvariable \Path{PATH} des + Betriebssystems enthalten sein. } Bei der Verwendung des Befehls \Macro{includesvg} \emph{muss} der Dateiname -ohne Endung angegeben werden. Die einzubindende SVG"~Datei sollte sich hierbei -im gleichen Pfad wie das Hauptdokument befinden. Ist die SVG"~Datei in einem -Unterordner relativ zum Pfad des Hauptdokumentes, kann dieser einfach mit +\emph{ohne Endung} angegeben werden. Die einzubindende SVG"~Datei sollte sich +hierbei im gleichen Pfad wie das Hauptdokument befinden. Ist die SVG"~Datei in +einem Unterordner relativ zum Pfad des Hauptdokumentes, kann dieser einfach mit \Macro{includesvg}\PParameter{\PName{Ordner}/\PName{Datei}} im Argument angegeben werden. -\section{Probleme bei der Verwendung von \Package{auto-pst-pdf}} +\section{Fehlermeldung: ! No room for a new \textbackslash write} +% +\ChangedAt{v2.02!\TaT: Fehler beim Schreiben von Hilfsdateien} +% +Für das Erstellen und Schreiben externer Hilfsdateien steht \hologo{LaTeXe} nur +eine begrenzte Anzahl sogenannter Ausgabe-Streams zur Verfügung. Allein für +jedes zu erstellende Verzeichnis reserviert \hologo{LaTeX} selbst jeweils einen +neuen Stream. Auch einige bereits zuvor in diesem Handbuch vorgestellte, sehr +hilfreiche Pakete~-- wie beispielsweise \Package{hyperref}, \Package{biblatex}, +\Package{glossaries}, \Package{todonotes} oder auch \Package{filecontents}~-- +benötigen eigene Hilfsdateien und öffnen für das Erstellen dieser einen +Ausgabe-Stream oder mehr. Lädt der Anwender mehrere, in eine Hilfsdatei +schreibende Pakete, kann es zur der Fehlermeldung +% +\begin{quoting} +\begin{Code} +! No room for a new \write . +\end{Code} +\end{quoting} +% +kommen. Abhilfe schafft hier das Paket \Package{scrwfile}(koma-script), welches +einige Änderungen am \hologo{LaTeX}-Kern vornimmt, um die Anzahl der benötigten +Hilfsdateien für das Schreiben aller Verzeichnisse zu reduzieren. Es muss +einfach in der Präambel eingebunden werden. Sollten mit diesem Paket +unerwarteter Weise Probleme auftreten, ist dessen Anleitung in \scrguide zu +finden. Eine weitere Möglichkeit, das beschriebene Problem der geringen Menge +an Ausgabe-Streams zu umgehen, stellt das Paket \Package{morewrites} dar. +Allerdings ist dessen Verwendung nicht in allen Fällen von Erfolg gekrönt. + +\section{Probleme bei der Verwendung von \Package*{auto-pst-pdf}} \manualhyperdef'{sec:tips:auto-pst-pdf} % \ChangedAt{v2.02!\TaT: Hinweise zu \Package{auto-pst-pdf}} @@ -744,36 +829,3 @@ ist. \fi \end{Code} \end{quoting} - - - -\section{Fehlermeldung: ! No room for a new \textbackslash write} -% -\ChangedAt{v2.02!\TaT: Fehler beim Schreiben von Hilfsdateien} -% -Für das Erstellen und Schreiben externer Hilfsdateien steht \hologo{LaTeXe} nur -eine begrenzte Anzahl sogenannter Ausgabe-Streams zur Verfügung. Allein für -jedes zu erstellende Verzeichnis reserviert \hologo{LaTeX} selbst jeweils einen -neuen Stream. Auch einige bereits zuvor in diesem Handbuch vorgestellte, sehr -hilfreiche Pakete~-- wie beispielsweise \Package{hyperref}, \Package{biblatex}, -\Package{glossaries}, \Package{todonotes} oder auch \Package{filecontents}~-- -benötigen eigene Hilfsdateien und öffnen für das Erstellen dieser einen -Ausgabe-Stream oder mehr. - -Lädt der Anwender mehrere, in eine Hilfsdatei schreibende Pakete, kann es zur -der Fehlermeldung -% -\begin{quoting} -\begin{Code} -! No room for a new \write . -\end{Code} -\end{quoting} -% -kommen. Abhilfe schafft hier das Paket \Package{scrwfile}(koma-script), welches -einige Änderungen am \hologo{LaTeX}-Kern vornimmt, um die Anzahl der benötigten -Hilfsdateien für das Schreiben aller Verzeichnisse zu reduzieren. Es muss -einfach in der Präambel eingebunden werden. Sollten mit diesem Paket -unerwarteter Weise Probleme auftreten, ist dessen Anleitung in \scrguide zu -finden. Eine weitere Möglichkeit, das beschriebene Problem der geringen Menge -an Ausgabe-Streams zu umgehen, stellt das Paket \Package{morewrites} dar. -Allerdings ist dessen Verwendung nicht in allen Fällen von Erfolg gekrönt. diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex index 233611d48f2..a375853b65a 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-index.tex @@ -19,16 +19,16 @@ \index{Aufzählungen|see{Listen}}% \index{Cover|see{Umschlagseite}}% \index{Dezimaltrennzeichen|see{Trennzeichen}}% -\index{Distribution!Mac\hologo{TeX}|see{Mac\hologoRobust{TeX}~{\idxfont(Distribution)}}} -\index{Distribution!\hologo{TeX}~Live|see{\hologoRobust{TeX}~Live~{\idxfont(Distribution)}}} -\index{Distribution!\hologo{MiKTeX}|see{\hologoRobust{MiKTeX}~{\idxfont(Distribution)}}} +\index{Distribution!\textsbn{Mac\hologo{TeX}}|see{\textsbn{Mac\hologoRobust{TeX}}~{\idxfont(Distribution)}}} +\index{Distribution!\textsbn{\hologo{TeX}~Live}|see{\textsbn{\hologoRobust{TeX}~Live}~{\idxfont(Distribution)}}} +\index{Distribution!\textsbn{\hologo{MiKTeX}}|see{\textsbn{\hologoRobust{MiKTeX}}~{\idxfont(Distribution)}}} \index{Fachreferent|see{Referent}}% -\index{Farbraum|see{Farben!Farbmodell}}% \index{Grafiken!Beschriftung|see{Gleitobjekte}} \index{Großbuchstaben|see{Schriftauszeichnung}}% \index{Klassenoptionen|see{Optionen}}% \index{Kleinbuchstaben|see{Schriftauszeichnung}}% \index{Kurzfassung|see{Zusammenfassung}}% +\index{Leerseiten|see{Vakatseiten}}% \index{Lokalisierung|see{Bezeichner}}% \index{Majuskeln|see{Schriftauszeichnung}}% \index{Mathematiksatz!Einheiten|see{Einheiten}} @@ -43,8 +43,8 @@ \index{Sprungmarken|see{Lesezeichen}} \index{Tabellen!Beschriftung|see{Gleitobjekte}} \index{Tausendertrennzeichen|see{Trennzeichen}}% +\index{Titel!Umschlagseite|see{Umschlagseite}}% \index{Trennmuster|see{Worttrennung}}% -\index{Vakatseiten|see{Leerseiten}}% \index{Vektorgrafiken|see{Grafiken}}% \setchapterpreamble{% \begin{abstract} @@ -66,12 +66,12 @@ } \addchap*{\indexname} \addxcontentsline{toc}{part}{\indexname} -%\PrintIndexPrologue{% -% Die aufgelisteten Schlagworte sollen sowohl Antworten bei generellen Fragen -% als auch Lösungen für typische Probleme beim Umgang mit \hologo{LaTeXe} -% sowie dem \TUDScript-Bundle liefern. +\PrintIndexPrologue{% + Die aufgelisteten Schlagworte sollen sowohl Antworten bei generellen Fragen + als auch Lösungen für typische Probleme beim Umgang mit \hologo{LaTeXe} + sowie dem \TUDScript-Bundle liefern. % Falls ein gesuchter Begriff hier nicht auftaucht, sollte das \Forum erster % Anlaufpunkt sein, um Fragen bei der Nutzung von \TUDScript zu beantworten. -%} +} \PrintIndex \PrintChangelog diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex index e98a23877d4..5f96164e92b 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-installation.tex @@ -156,9 +156,9 @@ die genau wissen, aus welchen Gründen dies geschehen soll. \subsection{Lokale Installation von \TUDScript unter Windows} \index{Installation!Nutzerinstallation}\index{Nutzerinstallation (lokal)} -Für eine lokale Nutzerinstallation sowohl des \TUDScript-Bundles als auch der -dazugehörigen Schriften für die Distributionen \Distribution{\hologo{TeX}~Live} -oder \Distribution{\hologo{MiKTeX}} werden neben Schriftarchiven die Dateien aus +Für eine lokale Nutzerinstallation des \TUDScript-Bundles und der dazugehörigen +Schriften für die Distributionen \Distribution{\hologo{TeX}~Live} oder +\Distribution{\hologo{MiKTeX}} werden neben den Schriftarchiven die Dateien aus \hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Windows\_full.zip}% {\File*{TUD-KOMA-Script\_\vTUDScript\_Windows\_full.zip}} benötigt. Vor der Verwendung des Skripts \File{tudscr\_\vTUDScript\_install.bat} sollte @@ -173,25 +173,26 @@ Verzeichnis befinden: \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN \item[\File{tudscrfonts.zip}]Archiv mit Metriken für die Schriftinstallation via \Package{fontinst} - \item[\File{7za.exe}]Stand-Alone-Version von 7-zip zum Entpacken der Archive% - \footnote{% - Windows stellt keine Bordmittel zum Extrahieren von Archiven auf - Kommandozeilen-/Skript-Ebene zur Verfügung.% - }% \end{description} % Beim Ausführen des Installationsskripts werden alle Schriften in das lokale Nutzerverzeichnis der jeweiligen Distribution installiert, falls kein anderes Verzeichnis explizit angegeben wird. Für Hinweise bei Problemen mit der -Schriftinstallation sei auf \autoref{sec:install:fonts:win} verwiesen. +Schriftinstallation sei auf \autoref{sec:install:win} verwiesen. +\Attention{% + Wird die \hologo{LaTeX}"=Distribution \Distribution{\hologo{MiKTeX}} genutzt, + sollte in jedem Fall vor der Ausführung der Installationsskripte ein Update + der Distribution durchgeführt werden. Andernfalls wird es unter Umständen im + Installationsprozess oder bei der Nutzung von \TUDScript zu Problemen kommen. +} \subsection{Lokale Installation von \TUDScript unter Linux und OS~X} \index{Installation!Nutzerinstallation}\index{Nutzerinstallation (lokal)} -Für eine lokale Nutzerinstallation sowohl des \TUDScript-Bundles als auch der -dazugehörigen Schriften für die Distributionen \Distribution{\hologo{TeX}~Live} -oder \Distribution{Mac\hologo{TeX}} werden neben Schriftarchiven die Dateien aus +Für eine lokale Nutzerinstallation des \TUDScript-Bundles und der dazugehörigen +Schriften für die Distributionen \Distribution{\hologo{TeX}~Live} oder +\Distribution{Mac\hologo{TeX}} werden neben den Schriftarchiven die Dateien aus \hrfn{https://github.com/tud-cd/tudscr/releases/download/\vTUDScript/TUD-KOMA-Script\_\vTUDScript\_Unix\_full.zip}% {\File*{TUD-KOMA-Script\_\vTUDScript\_Unix\_full.zip}} benötigt. Vor der Verwendung des Skripts \File{tudscr\_\vTUDScript\_install.sh} sollte @@ -211,7 +212,7 @@ Verzeichnis befinden: % Beim Ausführen des Installationsskripts werden alle Schriften in das lokale Nutzerverzeichnis der jeweiligen Distribution installiert. Für Hinweise bei -Problemen mit der Schriftinstallation sei auf \autoref{sec:install:fonts:unix} +Problemen mit der Schriftinstallation sei auf \autoref{sec:install:unix} verwiesen. @@ -254,42 +255,108 @@ empfohlen. \begin{Declaration*}{\Class{tudscrbookold}} \begin{Declaration*}{\Class{tudscrreprtold}} \begin{Declaration*}{\Class{tudscrartclold}} -\index{Update!Version v1.0}% -\index{Hauptklassen} -\index{Version!v1.0}% % -Ist \TUDScript in der veralteten und obsoleten Version~v1.0 installiert, so -wird dringend zu einer Deinstallation dieser geraten. Dafür werden die Skripte +Ist \TUDScript in der veralteten Version~v1.0 installiert, so wird dringend zu +einer Deinstallation geraten. Andernfalls wird es zu Problemen kommen. Dafür +werden die Skripte \hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr\_uninstall.bat}{\File{tudscr\_uninstall.bat}} respektive \hrfn{https://github.com/tud-cd/tudscr/releases/download/uninstall/tudscr_uninstall.sh}{\File{tudscr\_uninstall.sh}} -bereitgestellt. Andernfalls wird es zu Problemen kommen. Die aktuelle -Version~\vTUDScript{} kann nach der Deinstallation der Version~v1.0 wie unter -\autoref{sec:install} beschrieben installiert werden. +bereitgestellt. Die aktuelle Version~\vTUDScript{} kann nach der Deinstallation +wie in \autoref{sec:install} beschrieben installiert werden. Möchten Sie die obsoleten \TUDScript-Klassen in der Version~v1.0 nach einer Aktualisierung weiterhin nutzen, so müssen diese nach der Deinstallation neu -installiert werden. Dafür kann das Archiv +installiert werden. Dafür steht das Archiv \hrfn{https://github.com/tud-cd/tudscrold/releases/download/v1.0/TUD-KOMA-Script_v1.0old.zip}% -{\File*{TUD-KOMA-Script\_v1.0old.zip}} verwendet werden, welches sowohl die -genannten Skripte zur Deinstallation als auch die zur neuerlichen Installation -der veralteten Klassen benötigten \File{tudscr\_v1.0old\_install.bat} oder +{\File*{TUD-KOMA-Script\_v1.0old.zip}} bereit, welches sowohl die genannten +Skripte zur Deinstallation als auch die zur neuerlichen Installation der +veralteten Klassen benötigten \File{tudscr\_v1.0old\_install.bat} oder \File{tudscr\_v1.0old\_install.sh} enthält. Nach Abschluss des Vorgangs sind die alten Klassen der Version~v1.0 mit \Class{tudscrbookold}, -\Class{tudscrreprtold} und \Class{tudscrartclold} verwendbar und können -parallel zur aktuellen Version~\vTUDScript{} genutzt werden. +\Class{tudscrreprtold} und \Class{tudscrartclold} parallel zur aktuellen +Version~\vTUDScript{} verwendbar. Im Vergleich zur Version~v1.0 hat sich an der Benutzerschnittstelle nicht sehr viel verändert. Treten nach dem Umstieg auf die Version~\vTUDScript{} dennoch Probleme auf, sollte der Anwender als erstes in die Beschreibung des Paketes -\Package{tudscrcomp}'full' sehen,welches eine Schnittstelle bereitstellt, mit -der es möglich ist, alte und ursprünglich nicht mehr vorgesehene Befehle sowie -Optionen dennoch zu nutzen. Allerdings werden einige von diesen auch durch das -Paket \Package{tudscrcomp} nicht mehr bereitgestellt. Aufgeführt sind diese in -\autoref{sec:obsolete}. Sollten trotz aller Hinweise in besagtem -\autorefname[sec:obsolete] dennoch Fehler oder Probleme beim Umstieg auf -die neue \TUDScript-Version auftreten, ist eine Meldung im Forum die beste -Möglichkeit, um Hilfe zu erhalten. +\Package{tudscrcomp}'full'(tudscr) sehen, welches eine Schnittstelle zur +Nutzung alter und ursprünglich nicht mehr vorgesehener Befehle sowie Optionen +bereitstellt. Allerdings werden einige von diesen auch durch das Paket +\Package{tudscrcomp}(tudscr) nicht mehr bereitgestellt. Aufgeführt sind diese +in \autoref{sec:obsolete}. Sollten trotz aller Hinweise dennoch Fehler oder +Probleme beim Umstieg auf die neue \TUDScript-Version auftreten, ist eine +Meldung im \Forum die beste Möglichkeit, um Hilfe zu erhalten. \end{Declaration*} \end{Declaration*} \end{Declaration*} + + + +\section{Installationshinweise für portable Installationen} +\label{sec:install:portable} + +Prinzipiell ist die Installation der PostScript-Schriften bei der Nutzung von +\Distribution{\hologo{TeX}~Live~Portable}|?| beziehungsweise +\Distribution{\hologo{MiKTeX}~Portable}|?| äquivalent zur nicht-portablen +Variante, welche in \autoref{sec:install} beschrieben wird. Alle dort gegebenen +Hinweise sollten sorgfältig berücksichtigt werden. Darüberhinaus ist bei +\Distribution{\hologo{MiKTeX}~Portable} darauf zu achten, den Installationspfad +nicht unbedingt auf der obersten Verzeichnisebene des externen Speichermediums +zu wählen. +Zur Installation der Schriften des \CDs wird das Archiv +\hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Windows.zip}% +{\File*{TUD-KOMA-Script\_fonts\_Windows.zip}} benötigt. Dieses kann entweder +auf der lokalen Festplatte oder auf dem externen Speichermedium entpackt +werden. Danach wird folgendes Vorgehen empfohlen: + +\minisec{\NoCaseChange{\hologo{TeX}}~Live~Portable} +Das folgende Vorgehen wurde mit Windows getestet. Empfehlungen für die portable +Installation für unixoide Betriebssysteme können gerne an \Email{\tudscrmail} +gesendet werden. +\begin{enumerate} +\item Installation von \Distribution{\hologo{TeX}~Live~Portable} in den Pfad + \Path{\PName{Laufwerk}:\textbackslash texlive} +\item Die Datei \File{tl-tray-menu.exe} im Installationspfad öffnen +\item Im Infobereich der Taskleiste mit einem Rechtsklick auf das Symbol von + \Distribution{\hologo{TeX}~Live~Portable} das Kontextmenü öffnen und ein + Update entweder über die grafische Oberfläche (\emph{Package Manager}) oder + die Kommandozeile (\emph{Command Prompt}) durchführen +\item Über das Kontextmenü die Kommandozeile starten und über diese das + Installationsskript für die Schriften \File{tudscrfonts\_install.bat} + ausführen. Der voreingestellte Installationspfad kann im Normalfall so + belassen werden. Wird dieser geändert, so sollte dieser sich logischerweise + auf dem externen Speichermedium befinden. + \Attention{% + Ein Ausführen ohne die über \Distribution{\hologo{TeX}~Live~Portable} + geöffnete Kommandozeile führt zu Fehlern. + }% +\end{enumerate} + +\minisec{\NoCaseChange{\hologo{MiKTeX}}~Portable} +\begin{enumerate} +\item Installation von \Distribution{\hologo{MiKTeX}~Portable} in den Pfad + \Path{\PName{Laufwerk}:\textbackslash LaTeX\textbackslash MiKTeXportable} +\item Die Datei \File{miktex-portable.cmd} im Installationspfad öffnen +\item Im Infobereich der Taskleiste mit einem Rechtsklick auf das Symbol von + \Distribution{\hologo{MiKTeX}~Portable} das Kontextmenü öffnen und ein Update + durchführen +\item Über das Kontextmenü die Kommandozeile starten und über diese das + Installationsskript für die Schriften \File{tudscrfonts\_install.bat} + ausführen. Der voreingestellte Installationspfad kann im Normalfall so + belassen werden. Wird dieser geändert, so sollte dieser sich logischerweise + auf dem externen Speichermedium befinden. Bei diesem Schritt werden die + Pakete \Package{fontinst}, \Package{cmbright} und \Package{iwona} unter + Umständen nachinstalliert. + \Attention{% + Ein Ausführen ohne die über \Distribution{\hologo{MiKTeX}~Portable} + geöffnete Kommandozeile führt zu Fehlern. + }% +\item Bei der erstmaligen Verwendung einer der \TUDScript-Dokumentklassen + werden die Pakete \Package{tudscr}, \Package{koma-script}, + \Package{etoolbox}, \Package{textcase}, \Package{environ}, + \Package{trimspaces}, \Package{xcolor}, \Package{mptopdf}() durch + \Distribution{\hologo{MiKTeX}~Portable} nachinstalliert, falls diese nicht + schon vorhanden sind und die automatische Nachinstallation von Paketen + aktiviert ist. +\end{enumerate} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex index 006109b1fd9..edfc805f953 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-introduction.tex @@ -6,8 +6,10 @@ beiden Hausschriften des \CDs \Univers und \DIN zwingend benötigt. Außerdem müssen weitere Pakete durch die genutzte \hologo{LaTeX}"=Distribution bereitgestellt werden. -Bei den aktuellen Distributionen \Distribution{\hologo{TeX}~Live}[2014], -\Distribution{Mac\hologo{TeX}}[2014] und \Distribution{\hologo{MiKTeX}}[2.9] +Bei den aktuellen Distributionen +\Distribution{\hologo{TeX}~Live}[2015]|?|, +\Distribution{Mac\hologo{TeX}}[2015]|?| und +\Distribution{\hologo{MiKTeX}}[2.9]|?| ist das mit großer Sicherheit kein Problem. Nutzen Sie jedoch eine ältere Distribution, könnte dies zu Problemen führen. Dann sollte bestenfalls eine der aktuellen Distributionen installiert werden. Ist dies nicht möglich, müssen die @@ -44,9 +46,9 @@ beschrieben. Am Ende des Dokumentes befinden sich mehrere Indizes, die das Nachschlagen oder Auffinden von bisher unbekannten Befehlen oder Optionen erleichtern sollen. -Die folgend beschriebenen Optionen können~-- wie ein Großteil der Einstellungen -der \KOMAScript"=Klassen~-- in der Syntax des \Package{keyval}"=Paketes als -Schlüssel"=Wert"=Paare bei der Wahl der Dokumentklasse angegeben werden: +Die im Folgenden beschriebenen Optionen können~-- wie ein Großteil aller +Einstellungen für \KOMAScript~-- in der Syntax des \Package{keyval}"=Paketes +als Schlüssel"=Wert"=Paare bei der Wahl der Dokumentklasse angegeben werden: \Macro*{documentclass}\POParameter{\PName{Schlüssel}\PValue{=}\PName{Wert}}% \Parameter{Klasse}. @@ -64,22 +66,20 @@ die Befehle \Macro{TUDoptions}\Parameter{Optionenliste} und das Verhalten von Optionen im Dokument~-- innerhalb einer Gruppe auch lokal~-- geändert werden. -Die Voreinstellung einer jeden Option ist durch \PValue{preset:\,}\PName{Wert} -bei deren Beschreibung angegeben. Einige dieser Standardwerte sind nicht -immer gleich sondern werden zusätzlich in Abhängigkeit der genutzten Optionen -und Benutzereinstellungen gesetzt. Diese bedingten Voreinstellungen werden durch +Die Voreinstellung einer jeden Option wird durch \PValue{preset:\,}\PName{Wert} +bei deren Beschreibung angeführt. Einige dieser Standardwerte sind nicht immer +gleich sondern werden in Abhängigkeit der genutzten Benutzereinstellungen und +Optionen gesetzt. Diese bedingten Voreinstellungen werden durch \PValue{preset:\,}\PName{Wert}\PValue{\,|\,}\PName{Bedingung}\PValue{:\,}% -\PName{bedingter~Wert} angegeben. - -Jedem Schlüssel wird normalerweise durch den Benutzer ein gewünschter, gültiger -Wert zugewiesen. Wird ein Schlüssel jedoch ohne Wertzuweisung genutzt, so -wird~-- falls vorhanden~-- ein vordefinierter Säumniswert gesetzt, welcher in -der Beschreibung der einzelnen Optionen durch die \PValue{\emph{kursive}} -Schreibweise gekennzeichnet ist. In den allermeisten Fällen ist der Säumniswert -eines Schlüssels \PValue{true}, er entspricht folglich der Angabe -\PName{Schlüssel}\PValue{=true}. Mit der expliziten Wertzuweisung -eines Schlüssels durch den Benutzer werden immer sowohl normale als auch -bedingte Voreinstellungen überschrieben. Die neben den Optionen neu +\PName{bedingter~Wert} angegeben. Jedem Schlüssel wird normalerweise durch den +Benutzer ein gewünschter, gültiger Wert zugewiesen. Wird ein Schlüssel jedoch +ohne Wertzuweisung genutzt, so wird~-- falls vorhanden~-- ein vordefinierter +Säumniswert gesetzt, welcher in der Beschreibung der einzelnen Optionen durch +die \PValue{\emph{kursive}} Schreibweise gekennzeichnet ist. In den meisten +Fällen ist der Säumniswert eines Schlüssels \PValue{true}, er entspricht +folglich der Angabe \PName{Schlüssel}\PValue{=true}. Mit der expliziten +Wertzuweisung eines Schlüssels durch den Benutzer werden immer sowohl normale +als auch bedingte Voreinstellungen überschrieben. Die neben den Optionen neu eingeführten Befehle und Umgebungen der Klassen werden im gleichen Stil erläutert. @@ -91,7 +91,10 @@ erläutert. % \ChangedAt{% v2.01!\TUDScript-Bundle auf CTAN veröffentlicht,% - v2.02!Installationsroutine der PostScript-Schriften verbessert% + v2.02!Installationsroutine der PostScript-Schriften angepasst,% + v2.04!Installationsskripte robuster und verbessert und für die portablen + Distributionen \Distribution*{\hologo{TeX}~Live~Portable} sowie + \Distribution*{\hologo{MiKTeX}~Portable} erweitert } % Das \TUDScript-Bundle ist seit der Version~v2.01~-- aufgrund lizenzrechtlicher @@ -99,12 +102,13 @@ Bedingungen \emph{ohne} die geschützten Schriften \Univers und \DIN~-- im \foreignlanguage{english}{% \hrfn{http://www.ctan.org/}{Comprehensive TeX Archive Network (CTAN)} } zu finden und kann dadurch die aktuellen \hologo{LaTeX}"=Distributionen wie -\Distribution{\hologo{TeX}~Live}[2014], \Distribution{Mac\hologo{TeX}}[2014] -oder auch \Distribution{\hologo{MiKTeX}}[2.9] genutzt werden. Es besteht -momentan aus den drei Hauptklassen \Class{tudscrbook}, \Class{tudscrreprt} -sowie \Class{tudscrartcl}~-- dokumentiert in \autoref{sec:mainclasses}~-- und -sowohl mit den \TUDScript-Klassen assoziierten als auch eigenständigen Paketen, -welche in \autoref{sec:bundle} beschrieben sind. +\Distribution{\hologo{TeX}~Live}[2015]|?|, +\Distribution{Mac\hologo{TeX}}[2015]|?| oder auch +\Distribution{\hologo{MiKTeX}}[2.9]|?| genutzt werden. Es besteht momentan aus +den drei Hauptklassen \Class{tudscrbook}, \Class{tudscrreprt} sowie +\Class{tudscrartcl}~-- dokumentiert in \autoref{sec:mainclasses}~-- und sowohl +mit den \TUDScript-Klassen assoziierten als auch eigenständigen Paketen, welche +in \autoref{sec:bundle} beschrieben sind. Zur problemlosen Verwendung des \TUDScript-Bundles ist~-- neben \KOMAScript{} in der Version~\vKOMAScript und den in \autoref{sec:packages:needed} aufgeführten @@ -114,53 +118,137 @@ des \CDs der \TnUD notwendig. Diese müssen über das Universitätsmarketing auf {Anfrage} mit dem Hinweis auf die Verwendung von \hologo{LaTeX} bestellt werden. Sobald Sie die notwendigen Archive \File{Univers\_PS.zip} und \File{DIN\_Bd\_PS.zip} erhalten haben, können die Schriften für Windows -(\autoref{sec:install:fonts:win}) beziehungsweise unixoide Betriebssysteme -(\autoref{sec:install:fonts:unix}) installiert werden. Die benötigten Skripte +(\autoref{sec:install:win}) beziehungsweise unixoide Betriebssysteme +(\autoref{sec:install:unix}) installiert werden. Die benötigten Skripte werden als \hrfn{https://github.com/tud-cd/tudscr/releases/tag/fonts}{Release} im \GitHubRepo* bereitgestellt.% \footnote{% - Das Einbinden von installierten Systemschriften im Open-Type-Format mit dem + Die Verwendung von installierten Systemschriften im Open-Type-Format mit dem Paket \Package{fontspec} für \hologo{LuaLaTeX} oder \hologo{XeLaTeX} wird - mittlerweile zwar unterstützt, empfehlenswert ist diese Variante allerdings - nur bedingt. Genaueres dazu in \autoref{sec:fonts:fontspec}.% + mittlerweile unterstützt, mehr dazu in \autoref{sec:fonts:fontspec}.% } -Dort sind auch die Quelldateien von \TUDScript und der Installationsskripte zu -finden. \Attention{% - Wurde \TUDScript in einer früheren Ausführung als lokale Nutzerversion - installiert oder soll es in der Version \vTUDScript{} als solche genutzt - werden, so sei auf \autoref{sec:install:ext} verwiesen.% + Die Skripte erzeugen für die Schriftinstallation \textbf{temporär} einige + Verzeichnisse und Dateien, weshalb diese nur fehlerfrei auf einem Laufwerk + ausgeführt werden können, auf dem der Anwender selbst Schreibrechte besitzt. } + \minisec{Anmerkung zu Windows} Sollte Windows genutzt werden und noch keine \hologo{LaTeX}"=Distribution auf ihrem System installiert sein, so rate ich persönlich zur Verwendung von \Distribution{\hologo{TeX}~Live}|?| statt \Distribution{\hologo{MiKTeX}}|?|. -Der Vorteil ist, dass diese Distribution von mehreren Autoren gewartet wird, -Updates von Paketen und Klassen auf CTAN meist schneller verfügbar sind und -zusätzlich ein \textsc{Perl}"=Interpreter sowie \textsc{Ghostscript} -mitgeliefert werden, welche die Ad"=hoc"=Verwendung einiger -\hologo{LaTeX}"=Pakete wie beispielsweise \Package{glossaries} vereinfacht -beziehungsweise verbessert. +Der Vorteil dieser Distribution liegt zum einen in der Wartung durch mehrere +Autoren sowie der früheren Verfügbarkeit aller Updates über CTAN. Zum anderen +liefert \Distribution{\hologo{TeX}~Live}|?| zusätzlich zu \hologo{LaTeXe} einen +\textsc{Perl}"=Interpreter sowie \textsc{Ghostscript}, wodurch die +Ad"=hoc"=Verwendung einiger Pakete wie beispielsweise \Package{glossaries} +vereinfacht beziehungsweise verbessert wird. + \minisec{Anmerkung zu Linux und OS~X} -Nach dem gegebenenfalls notwendigen Entpacken eines heruntergeladenen Archivs -\emph{müssen} Installationsskripte für unixartigen Betriebssystemen über das -Terminal ausgeführt werden. Nachdem dieses geöffnet wurde, sollte in diesem zum -entsprechenden Pfad (beispielsweise \Path{cd Downloads/\PName{Unterordner}}) -navigiert werden. Danach können sämtliche Skripte direkt mit der Verwendung von -\Path{bash \PName{Skript}.sh} aus dem Terminal ausgeführt werden. +Die Installation von \Distribution{\hologo{TeX}~Live}|?| beziehungsweise +\Distribution{Mac\hologo{TeX}}|?| sollte direkt über die im Internet +angebotenen Installationspakete (\url{https://tug.org/texlive/} respektive +\url{https://tug.org/mactex/}) und nicht über \Path{apt-get install} erfolgen. +% +Die Installation der Schriften des \CDs \emph{muss zwingend} über das Terminal +ausgeführt werden. Nach dem Entpacken eines Release-Archivs sollte im passenden +Pfad (beispielsweise \Path{cd \textasciitilde/Downloads/\PName{Unterordner}}) +das Skript aus dem Terminal mit \Path{bash \PName{Skript}.sh} direkt ausgeführt +werden. Mehr dazu in \autoref{sec:install:unix}. + + +\minisec{Anmerkung zu \NoCaseChange{\hologo{MiKTeX}}} +Vor der Installation der Schriften für \TUDScript sollte unbedingt ein Update +von \Distribution{\hologo{MiKTeX}}|?| durchgeführt werden. Andernfalls wird +es mit großer Sicherheit zu Problemen kommen. Außerdem ist es sehr ratsam, die +Installation von \Distribution{\hologo{MiKTeX}}|?| in der Mehrbenutzervariante +mit Administratorrechten durchzuführen, da die Einzelbenutzervariante relativ +unregelmäßig und nicht immer nachvollziehbar zu Problemen führen kann. + +Es kann vorkommen, dass die für den Schriftinstallationsprozess notwendigen +Pakete \Package{fontinst}, \Package{fontware} sowie \Package{cmbright}, +\Package{hfbright}, \Package{cm-super}, \Package{lmodern} und \Package{iwona} +noch nicht installiert sind. Ist die automatische Nachinstallation fehlender +Pakete aktiviert, so reicht es im Normalfall das Installationsskript zu +starten. Andernfalls müssen diese Pakete manuell durch den Benutzer über den +\Distribution{\hologo{MiKTeX}}-Paketmanager hinzugefügt werden. + +Das Installationsskript scheitert außerdem bei einigen Anwendern~-- aufgrund +eingeschränkter Nutzerzugriffsrechte~-- beim Eintragen der Schriften in die +Map-Datei. Dies muss gegebenenfalls durch den Anwender über die Kommandozeile +\Path{initexmf -{}-edit-config-file updmap} erfolgen. In der sich öffnenden +Datei sollte sich der Eintrag \Path{Map tudscr.map} befinden. Ist dies nicht +der Fall, muss diese Zeile manuell eingetragen und die Datei anschließend +gespeichert werden. Danach muss der Nutzer in der Kommandozeile noch +\Path{initexmf -{}-mkmaps} ausführen. + + +\minisec{Anmerkung zu + \NoCaseChange{\hologo{TeX}}~Live und Mac\NoCaseChange{\hologo{TeX}}% +} +Für den Schriftinstallationsprozess werden die Pakete \Package{fontinst}, +\Package{fontware} sowie \Package{cmbright}, \Package{hfbright}, +\Package{cm-super}, \Package{lmodern} und \Package{iwona} benötigt. Sollte +keine Vollinstallation von \Distribution{\hologo{TeX}~Live} durchgeführt worden +sein, müssen diese Pakete sehr aller Voraussicht nach manuell durch den +Benutzer über den \Distribution{\hologo{TeX}~Live}-Paketmanager hinzugefügt +werden. + +Sollte das Installationsskript fehlerfrei durchlaufen, die Schriften dennoch +nicht verfügbar sein, so kann man mit \Path{updmap-sys -{}-syncwithtrees} +die Synchronisierung aller Schriftdateien anstoßen. Anschließend sollte man +\Path{updmap-sys -{}-enable Map=tudscr.map} und \Path{updmap-sys -{}-force} +aufrufen. Sind die Schriften danach immer noch nicht verfügbar, so wurden auf +dem System bestimmt schon andere Schriften lokal installiert. In diesem Fall +sollte der Vorgang nochmals für eine lokale Schriftinstallation mit +\Path{updmap -{}-syncwithtrees}, \Path{updmap -{}-enable Map=tudscr.map} und +\Path{updmap -{}-force} ausgeführt werden. + +Dieses Vorgehen macht den Befehl \Path{updmap-sys} allerdings von nun an +wirkungslos. Erfolgt danach eine systemweite Installation neuer Schriften~-- +beispielsweise bei der Aktualisierung der Distribution~-- müssen diese über den +manuellen Aufruf von \Path{updmap} zukünftig durch den Anwender lokal bei +\Distribution{\hologo{TeX}~Live}|?| respektive \Distribution{Mac\hologo{TeX}}|?| +registriert werden. + +\Attention{% + Für die Schriftinstallation werden die Skripte \Path{tftopl}, \Path{pltotf} + und \Path{vptovf} benötigt, welche bei \Distribution{\hologo{TeX}~Live}|?| + beziehungsweise \Distribution{Mac\hologo{TeX}}|?| über das Paket + \Package*{fontware}() aus \Package*{collection-fontutils}() + bereitgestellt werden und zwingend installiert sein müssen. +} + + +\minisec{Weiterführende Installationshinweise} +In \autoref{sec:install:ext} sind zusätzliche Varianten der Installation von +\TUDScript zu finden. Soll eine ältere lokale Nutzerinstallation entfernt +werden, um zukünftig alle Aktualisierungen direkt über die jeweils verwendete +Distribution durchzuführen, werden entsprechende Skripte zu Deinstallation in +\autoref{sec:local:uninstall} zur Verfügung gestellt. + +Will der Anwender \emph{bewusst} eine lokale Nutzerinstallation anlegen, werden +hierfür in \autoref{sec:local:install} entsprechende Skripte bereitgestellt. +Soll eine bereits vorhandene, lokale Nutzerinstallation aktualisiert werden, +finden Sie die entsprechenden Skripte in \autoref{sec:local:update}. + +Für die portablen Varianten von \Distribution{\hologo{TeX}~Live~Portable} +repsektive \Distribution{\hologo{MiKTeX}~Portable} sind zusätzliche +Installationshinweise in \autoref{sec:install:portable} zu finden. \subsection{Installation der PostScript-Schriften unter Windows} -\label{sec:install:fonts:win} +\label{sec:install:win} \index{Installation!Schriften} +% Zur Installation der Schriften des \CDs für das \TUDScript-Bundle ist das Archiv \hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Windows.zip}% {\File*{TUD-KOMA-Script\_fonts\_Windows.zip}} vorgesehen. Dieses ist sowohl für -\Distribution{\hologo{TeX}~Live} als auch \Distribution{\hologo{MiKTeX}} -nutzbar und enthält~-- bis auf die Schriftdateien selbst~-- alle benötigten +\Distribution{\hologo{TeX}~Live}|?| als auch \Distribution{\hologo{MiKTeX}}|?| +nutzbar und enthält~-- bis auf die Schriftarchive selbst~-- alle benötigten Dateien. Diese sollten nach dem Entpacken des Archivs in das gleiche Verzeichnis kopiert werden. Vor der Verwendung des Skripts \File{tudscrfonts\_install.bat} sollte sichergestellt werden, dass sich @@ -173,66 +261,25 @@ Verzeichnis kopiert werden. Vor der Verwendung des Skripts \item[\File{DIN\_Bd\_PS.zip}]Archiv mit Schriftdateien für \DIN \item[\File{tudscrfonts.zip}]Archiv mit Metriken für die Schriftinstallation via \Package{fontinst} - \item[\File{7za.exe}]Stand-Alone-Version von 7-zip zum Entpacken der Archive% - \footnote{% - Windows stellt keine Bordmittel zum Extrahieren von Archiven auf - Kommandozeilen-/Skript-Ebene zur Verfügung.% - }% \end{description} % -Beim Ausführen des Installationsskripts werden alle Schriften in das lokale -Nutzerverzeichnis der jeweiligen Distribution installiert, falls kein anderes -Verzeichnis explizit angegeben wird. - -\minisec{Anmerkung zu \ifdin{TeX~Live}{\hologo{TeX}~Live}} -Sollte das Installationsskript fehlerfrei durchlaufen, die Schriften dennoch -nicht verfügbar sein, so kann man mit \Path{updmap-sys -{}-syncwithtrees} -die Synchronisierung aller Schriftdateien anstoßen. Anschließend sollte man -noch \Path{updmap-sys -{}-force} aufrufen. Sind die Schriften danach immer noch -nicht verfügbar, so wurden auf dem System bestimmt schon andere Schriften lokal -installiert. In diesem Fall sollte man den Vorgang noch einmal für lokale -Schriften mit \Path{updmap -{}-syncwithtrees} und \Path{updmap -{}-force} -ausführen. Dies hat jedoch zur Folge, dass der Befehl \Path{updmap-sys} von nun -an wirkungslos bleibt und auch in Zukunft bei der globalen Installation neuer -Schriften diese mit \Path{updmap} lokal registriert werden müssen. - -\minisec{Anmerkung zu \ifdin{MiKTeX}{\hologo{MiKTeX}}} -Für den Fall, dass \Distribution{\hologo{MiKTeX}} verwendet wird, ist sehr -ratsam, das \TUDScript-Bundle~-- wie sämtliche manuell installierte Pakete und -Schriftarten auch~-- nicht in das Standardnutzerverzeichnis oder gar in den -Pfad der \Distribution{\hologo{MiKTeX}}"=Distribution selbst sondern in einen -separaten Ordner zu installieren und diesen bei \Distribution{\hologo{MiKTeX}} -als lokalen \Path{texmf}-Baum anzumelden. Das mitgelieferte Installationsskript -für diesen Schritt automatisiert aus. Am besten ist, den voreingestellten -Installationspfad zu verwenden. +Beim Ausführen des Installationsskripts werden alle Schriften standardmäßig in +ein lokales Nutzerverzeichnis installiert. Wird das Skript über das Kontextmenü +mit Administratorrechten ausgeführt, erfolgt die Installation in einem Pfad, +der \emph{für alle Nutzer} gültig und lesbar ist. -Es kann vorkommen, dass die für den Schriftinstallationsprozess notwendigen -Pakete \Package{fontinst}, \Package{cmbright} sowie \Package{iwona} noch nicht -installiert sind. Ist die automatische Nachinstallation fehlender Pakete -aktiviert, so reicht es im Normalfall, nach einem ersten vollständigen -Durchlauf das Skript abermals zu starten. Andernfalls müssen diese Pakete -manuell über den Paketmanager installiert werden. - -Das Installationsskript scheitert außerdem bei einigen Anwendern~-- aufgrund -eingeschränkter Nutzerzugriffsrechte~-- beim Eintragen der Schriften in die -Map-Datei. Dies muss gegebenenfalls durch den Nutzer über die Kommandozeile -\Path{initexmf -{}-edit-config-file updmap} erfolgen. In der sich öffnenden -Datei sollte sich der Eintrag \Path{Map tudscr.map} befinden. Ist dies nicht -der Fall, ist diese Zeile manuell einzutragen und die Datei zu speichern. -Danach muss in der Kommandozeile noch \Path{initexmf -{}-mkmaps} ausgeführt -werden. \subsection{Installation der PostScript-Schriften unter Linux und OS~X} -\label{sec:install:fonts:unix} +\label{sec:install:unix} \index{Installation!Schriften} Für die Erstellung des Installationsskripts für Linux und OS~X geht mein Dank -an Jons-Tobias Wamhoff, welcher sich für die erstmalige Portierung des Skripts +an Jons-Tobias Wamhoff, der sich für die erstmalige Portierung des Skripts von Windows zu unixartigen Systemen freiwillig zur Verfügung stellte. Zur Installation der Schriften des \CDs für das \TUDScript-Bundle ist das Archiv \hrfn{https://github.com/tud-cd/tudscr/releases/download/fonts/TUD-KOMA-Script_fonts_Unix.zip}% {\File*{TUD-KOMA-Script\_fonts\_Unix.zip}} vorgesehen. Dieses ist sowohl für -\Distribution{\hologo{TeX}~Live} als auch \Distribution{Mac\hologo{TeX}} +\Distribution{\hologo{TeX}~Live}|?| als auch \Distribution{Mac\hologo{TeX}}|?| nutzbar und enthält~-- bis auf die Schriftdateien selbst~-- alle benötigten Dateien. Diese sollten nach dem Entpacken des Archivs in das gleiche Verzeichnis kopiert werden. Vor der Verwendung des Skripts @@ -249,8 +296,15 @@ Verzeichnis kopiert werden. Vor der Verwendung des Skripts Schriftinstallation via \Package{fontinst} \end{description} % -Beim Ausführen des Installationsskripts werden alle Schriften in das lokale -Nutzerverzeichnis der jeweiligen Distribution installiert. +\Attention{% + Das Installationsskript \textbf{muss} mit \Path{bash \PName{Skript}.sh} im + Terminal aufgerufen werden. +} +Dabei werden alle Schriften standardmäßig in das lokale Nutzerverzeichnis +(\Path{\$TEXMFHOME}) installiert. Wird das Skript mit \Path{sudo} verwendet, +erfolgt die Installation \emph{für alle Nutzer} in den lokalen Systempfad +(\Path{\$TEXMFLOCAL}). + \subsection{Probleme bei der Installation der PostScript-Schriften} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex index cb60a9fded4..eb3ef15258c 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-mainclasses.tex @@ -37,7 +37,6 @@ beziehungsweise geänderten Befehle und Optionen werden im Folgenden erläutert. \begin{Declaration}{\Macro{TUDoption}\Parameter{Option}\Parameter{Werteliste}} \printdeclarationlist% \index{Optionen|!}% -\index{Optionenwahl|!}% % Mit diesen Befehlen hat man bei den meisten der neuen Klassenoptionen die Möglichkeit, den Wert der Optionen noch nach dem Laden der Klasse zu ändern. @@ -64,22 +63,22 @@ innerhalb dieser lokal begrenzt. \section{Die Schriften des \CDs} \label{sec:fonts} -\index{Schrift|?} +\index{Schrift|?(} % \ChangedAt*{% v2.00!Schriften~-- insbesondere für den mathematischen Satz~-- verbessert,% v2.01!Unterschneidung (Kerning) der Ziffern für \Univers verbessert% } Das \CD der \TnUD gibt die Verwendung der Schriften \Univers für den Fließtext -sowie \DIN für das Setzen von Überschriften vor. Im Standardfall wird dies so -unterstützt. Da jedoch in längeren Texten die Verwendung von Serifenschriften -zu empfehlen ist, gibt es die Möglichkeit, die ursprünglich vorgesehenen -Schriften nicht zu laden und die Standardschriften beziehungsweise ein anderes -Schriftpaket zu verwenden. Die Einstellungen und Befehle für den Fließtext sind -in \autoref{sec:text} zu finden. - -Durch das \CD werden keine Schriften für den Mathematiksatz bereitgestellt. -Dies ist insbesondere für sowohl mathematische als auch ingenieur- und +sowie \DIN für das Setzen von Überschriften vor, was durch \TUDScript in der +Standardkonfiguration auch so umgesetzt wird. Da jedoch in längeren Texten die +Verwendung von Serifenschriften zu empfehlen ist, gibt es die Möglichkeit, die +ursprünglich vorgesehenen Schriften des \CDs nicht zu laden und stattdessen die +\hologo{LaTeX}-Standardschriften beziehungsweise ein anderes Schriftpaket zu +verwenden. Die Erläuterungen dazu sind in \autoref{sec:text} zu finden. + +Durch das \CD werden keine Schriften für den Mathematiksatz festgelegt. Das ist +insbesondere für sowohl mathematische Abhandlungen als auch ingenieur- und naturwissenschaftliche Dokumente nicht tragbar. Dieser Mangel wird behoben, indem im Mathematikmodus die lateinischen Buchstaben der Hausschriften mit griechischen Lettern und mathematischen Symbolen aus anderen Paketen ergänzt @@ -88,22 +87,21 @@ werden.% \Package{iwona} für die Schrift \DIN und zusätzlich \Package{cmbright} für die \Univers"=Schriftfamilie% } -Diese Einstellungen kann natürlich ebenfalls mit der entsprechenden Option -deaktiviert werden. Dann werden die Standardschriften oder gegebenenfalls die -eines zusätzlichen Paketes für den mathematischen Satz genutzt. Alle Befehle -und Optionen für den Mathematiksatz sind in \autoref{sec:math} erläutert. In -\autoref{sec:exmpl:mathtype} sowie \autoref{sec:exmpl:mathswap} sind weitere -Hinweise zum typographisch guten Mathematiksatz zu finden. +Diese Grundeinstellung lässt sich ebenfalls deaktivieren, wodurch die +Standardschriften oder gegebenenfalls die eines zusätzlich geladenen Paketes +für den mathematischen Satz genutzt werden. Die dafür relevanten Einstellungen +werden in \autoref{sec:math} erläutert. In \autoref{sec:exmpl:mathtype} sowie +\autoref{sec:exmpl:mathswap} sind zusätzliche Hinweise zum typografisch guten +Mathematiksatz zu finden. \subsection{Schriften für den Textsatz} \begin{Declaration}[% - v2.02!Werte für Optionen \Option{cdhead} und \Option{fontspec} ergänzt% + v2.02!Werte für Option \Option{cdhead} ergänzt% ]{\Option{cdfont}[\PSet]}[true]% \printdeclarationlist% \label{sec:text}% -\index{Schrift}\index{Schrift!Fließtext} -\index{Schrift!Corporate Design}\index{Schrift!Stärke}% +\index{Schrift!Fließtext}\index{Schriftstärke}% % Mit der Option \Option{cdfont} können durch den Anwender alle zentralen Schrifteinstellungen für die \TUDScript-Klassen vorgenommen werden. Dies @@ -134,12 +132,12 @@ Querbalken der Kopfzeile lässt sich hiermit ebenfalls einstellen. Die Schriftstärke der Hausschriften wird erhöht. Die beiden untersten Gliederungsebenen werden in \textuxn{Univers~75~Black} gesetzt, der Fließtext in \texturn{Univers~55~Regular}. Ansonsten entspricht alles der Option - \Option{cdfont}[true]. Die Mathematikschriften werden durch diese - Einstellung nicht beeinflusst. Gegebenenfalls sollte mit \Macro{boldmath} auf - den fetten Schnitt umgeschaltet werden. + \Option{cdfont}[true]. Die Mathematikschriften werden nicht beeinflusst, + diese lassen sich gegebenenfalls mit \Macro{boldmath} auf den fetten Schnitt + umschalten. \item[nodin] - Für die Überschriften wird nicht \DIN verwendet. Ist \Option{cdfont}[true] - gewählt, wird \Univers genutzt. Die Schriftstärke ist dabei abhängig von der + Für die Überschriften wird \DIN nicht verwendet. Für \Option{cdfont}[true] + wird \Univers genutzt. Die Schriftstärke ist dabei abhängig von der Einstellung \Option{cdfont}[light/heavy]. Ist die Verwendung der Schriften des \CDs deaktiviert (\Option{cdfont}[false]), kommt die fette Schriftstärke der eingestellten serifenlosen Schriftfamilie zum Einsatz. @@ -157,8 +155,8 @@ Für den Text im Querbalken gibt es folgende Einstellmöglichkeiten: Hausschriften die Schrift \Univers in normaler Schriftstärke verwendet, \see*{\Option{cdhead}[true]}. \item[heavyhead/heavyfonthead] - Die im Querbalken der Kopfzeile verwendete Schrift ist in jedem Fall \Univers - in erhöhter Stärke, \see*{\Option{cdhead}[heavy]}. + Die im Querbalken verwendete Schrift ist \Univers in erhöhter Stärke, + \see*{\Option{cdhead}[heavy]}. \end{values} % Die verwendeten Mathematikschriften lassen sich mit folgenden Werte @@ -181,51 +179,24 @@ beeinflussen: kursiv, \see*{\Option{slantedgreek}[true]}. \end{values} % -\ChangedAt{v2.02} -Außerdem kann mit folgenden Werten das verwendete Schriftformat eingestellt -werden: -% -\begin{values} -\item[fontspec/lualatex/xelatex] - Es wird das Paket \Package{fontspec} geladen und die Schriften des \CDs im - OpenType"=Format verwendet. Hierfür muss entweder \hologo{LuaLaTeX} oder - \hologo{XeLaTeX} als Dokumentprozessor genutzt werden. Wird diese Einstellung - aktiviert, sind die Hinweise zur Option \Option{fontspec}'full' unbedingt - zu beachten. -\item[nofontspec/pdflatex] - Es werden die Schriften des \CDs im PostScript"=Format verwendet, wenn diese - wie unter \autoref{sec:install} beschrieben installiert wurden. Diese - Einstellung ist standardmäßig aktiviert und sollte nur in Ausnahmefällen - geändert werden. -\end{values} +\ChangedAt{v2.02,v2.04!Einfachere Verwendung von \Package{fontspec}} +Normalerweise kommen die Schriften des \CDs im PostScript"=Format zum Einsatz, +wenn diese wie unter \autoref{sec:install} beschrieben installiert wurden. +Wird entweder \hologo{LuaLaTeX} oder \hologo{XeLaTeX} als Dokumentprozessor +verwendet und das Paket \Package{fontspec} geladen, so werden die Schriften des +\CDs im OpenType"=Format verwendet. Hierfür sind die Hinweise in +\fullref{sec:fonts:fontspec} unbedingt zu beachten. \end{Declaration} + \subsubsection{Auszeichnungen in Überschriften} -\begin{Declaration}[% - v2.02!Fußnoten in Überschriften können mit Symbolen gesetzt werden% -]{\Option{footnotes}[\PSet]}[nosymbolheadings]% -\begin{Declaration}[v2.02]{\Counter{symbolheadings}}% -\printdeclarationlist% -\index{Überschriften}\index{Überschriften!Fußnoten}\index{Fußnoten}% -% -Für die Überschriften wird die \KOMAScript-Option \Option{footnotes} erweitert. -Normalerweise kann diese die Werte \PValue{multiple} und \PValue{nomultiple} -annehmen, wobei Letzteres der Standardfall ist. Die \TUDScript-Hauptklassen -erweitern die Option dahingehend, dass auf die Verwendung von Symbolen anstelle -von Zahlen innerhalb der Überschriften umgeschaltet werden kann. Hierfür wird -der Zähler \Counter{symbolheadings} definiert, der mit dem Beginn eines neuen -Kapitels zurückgesetzt wird. -% -\begin{values} -\item[nosymbolheadings/numberheadings] - Die Fußnoten der Überschriften werden fortlaufend mit denen des Fließtextes - gesetzt. -\item[symbolheadings] - Für die Überschriften werden symbolische Fußnoten mit einem eigenen Zähler - verwendet. -\end{values} -\end{Declaration} -\end{Declaration} +\index{Schriftelemente} +Für die Schriftauswahl der Überschriften aller Gliederungsebenen sind die durch +\KOMAScript{} bereitgestellten Schriftelemente verantwortlich. Mehr dazu ist in +\autoref{sec:fonts:elements} zu finden. Da die Überschriften der obersten +Gliederungsebenen bis einschließlich \Macro{subsubsection} normalerweise in +Majuskeln gesetzt werden, bestehen für den Anwender mit den folgenden Befehlen +gewisse Einflussmöglichkeiten, deren Ausprägung anzupassen. \begin{Declaration}{\Macro{ifdin}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}}% \printdeclarationlist% @@ -234,9 +205,10 @@ Kapitels zurückgesetzt wird. % Der Befehl \Macro{ifdin} prüft, ob die Schriftfamilie \DIN aktiv ist und führt in diesem Fall \Parameter{Dann-Teil} aus, andernfalls \Parameter{Sonst-Teil}. -Dies ist beispielsweise bei Überschriften sinnvoll, wenn zwischen der Ausgabe -im Fließtext und dem Eintrag für das Inhaltsverzeichnis sowie der Ausprägung -der automatischen Kolumnentitel unterschieden werden soll. +Dies ist beispielsweise bei Überschriften sinnvoll, wenn innerhalb des +obligatorischen Argumentes zwischen der Ausgabe im Dokument selber und dem +Eintrag für das Inhaltsverzeichnis sowie der Ausprägung der automatischen +Kolumnentitel unterschieden werden soll. \end{Declaration} \begin{Declaration}{\Macro{MakeTextUppercase}\Parameter{Text}}% @@ -244,11 +216,13 @@ der automatischen Kolumnentitel unterschieden werden soll. \printdeclarationlist% \index{Überschriften}\index{Schrift!Überschriften}\index{Schriftauszeichnung}% % -Diese beiden Befehle stammen aus dem Paket \Package{textcase}. Der Befehl -\Macro{MakeTextUppercase} setzt den Text seines Argumentes in Majuskeln. Die -Überschriften der Gliederungsebenen bis einschließlich \Macro{subsubsection} -werden damit in Großbuchstaben der Schrift \DIN gesetzt. Sollen bestimmte -Kleinbuchstaben erhalten bleiben, ist der Befehl \Macro{NoCaseChange} zu nutzen. +Der Befehl \Macro{MakeTextUppercase} stammt aus dem Paket \Package{textcase} +und setzt den Text seines Argumentes in Majuskeln. Die Überschriften der +Gliederungsebenen bis einschließlich \Macro{subsubsection} werden damit in +Großbuchstaben der Schrift \DIN gesetzt, wenn das Layout des \CDs nicht +deaktiviert wurde (\Option{cd}[false]). Sollen in einer Überschrift bestimmte +Kleinbuchstaben erhalten bleiben, ist der Befehl \Macro{NoCaseChange} zu +nutzen, welcher ebenfalls von besagtem Paket bereitgestellt wird. \end{Declaration} \end{Declaration} % @@ -261,24 +235,18 @@ geschrieben: \end{Example} \subsubsection{Auszeichnungen im Text} -\begin{Declaration}[v2.02]{\Font{titlepage}} -\begin{Declaration}[v2.02]{\Font{thesis}} -\begin{Declaration}[v2.02]{\Font{parttitle}} -\printdeclarationlist% -\index{Schriftelemente} +\index{Schrift!Fließtext}\index{Schriftstärke}% +\index{Schrift!Befehle}\index{Schrift!Schalter}% +% +Unabhängig davon, welche Schriftfamilie verwendet wird, können die Schriften +des \CDs jederzeit entweder mit einem der hier aufgeführten Textschalter oder +Textkommandos innerhalb des Dokumentes genutzt werden. Ein Textschalter wirkt +sich~-- wenn er nicht in einer Gruppe oder einer Umgebung verwendet und damit +lokal begrenzt wird~-- global auf das Dokument aus, wie etwa beispielsweise +\Macro*{bfseries}. Bei einem Textkommando hingegen erfolgt die Änderung der +Schriftart nur für das nachfolgend angegebene Argument, wie zum Beispiel bei +\Macro*{textbf}\Parameter{Text}. Darauf ist bei der Nutzung zu achten. % -Die \TUDScript-Klassen definieren mit \Macro{newkomafont} diese neuen -Schriftelemente. Dabei wird \Font{titlepage} auf der Titelseite für alle -Felder verwendet, welche kein spezielles Schriftelement verwenden und -\Font{thesis} für das mit \Macro{thesis} angegebene Feld, in welchem der Typ -einer Abschlussarbeit angegeben wird (\see*{\autoref{sec:title}}). Mit -\Font{parttitle} kann die Schrift für die Bezeichnung des Teils bei -aktivierter \Option{parttitle}-Option beeinflusst werden. Alle Schriften lassen -sich mit \Macro{addtokomafont}\Parameter{Schriftelement} anpassen. -\end{Declaration} -\end{Declaration} -\end{Declaration} - \begin{Declaration}{\Macro{univln}} \begin{Declaration}{\Macro{textuln}\Parameter{Text}} \begin{Declaration}{\Macro{univrn}} @@ -336,15 +304,10 @@ sich mit \Macro{addtokomafont}\Parameter{Schriftelement} anpassen. \end{tabularm}% \end{minipage}% )% -\index{Schrift!Befehle}\index{Schrift!Schalter}% -% -Unabhängig davon, welche Schriftfamilie verwendet wird, können die Schriften -des \CDs jederzeit entweder mit einem Textschalter oder mit einem Textkommando -innerhalb des Dokumentes genutzt werden. Ein Textschalter wirkt sich~-- wenn er -nicht in einer Gruppe oder einer Umgebung verwendet und damit lokal begrenzt -wird~-- global auf das Dokument aus. Bei einem Textkommando hingegen erfolgt -die Änderung der Schriftart nur für das angegebene Argument. Deshalb ist die -Verwendung der letzteren Variante vorzuziehen. +Alternativ zu den beschriebenen Textschaltern und -kommandos können seit der +Version~v2.04 auch die beiden Befehle \Macro{cdfont} und \Macro{textcdfont} +verwendet werden, welche die gleiche Funktionalität wesentlich komfortabler +bereitstellen. \end{Declaration} \end{Declaration} \end{Declaration} @@ -364,6 +327,32 @@ Verwendung der letzteren Variante vorzuziehen. \end{Declaration} \end{Declaration} +\begin{Declaration}[v2.04]{\Macro{cdfont}\Parameter{Schriftart}} +\begin{Declaration}[v2.04]{% + \Macro{textcdfont}\Parameter{Schriftart}\Parameter{Text}% +} +\printdeclarationlist +Diese beiden Befehle dienen ebenfalls zu gezielten Aktivierung einer Schriftart +des \CDs in Stärke und Schnitt. Hierbei entspricht \Macro{cdfont} einem +Textschalter und ändert die aktuell verwendete Schriftart im aktuellen +Geltungsbereich auf \PName{Schriftart}, wohingegen \Macro{textcdfont} als +Textkommando fungiert und den im zweiten Argument gegebenen \PName{Text} in +\PName{Schriftart} setzt ohne dabei die Dokumentschriftart selbst zu ändern. + +Für die Schriftauswahl muss im ersten Argument der Name der zu verwendenden +Schriftart angegeben werden. Dieser ist der obigen Tabelle zu entnehmen. Für +die Auswahl der Schriftfamilie \Univers kann der Vorsatz \PValue{Univers} im +Argument \PName{Schriftart} entfallen. Ebenso sind weder Leerzeichen noch die +passende Groß- und Kleinschreibung notwendig. Für die Wahl der Schriftstärke +ist die entsprechende Zahl \emph{oder} die Bezeichnung allein ausreichend.% +\footnote{\PValue{45/55/65/75} oder \PValue{Light/Regular/Bold/Black}} +Anstelle des Suffix' \PValue{Oblique} ist auch die Nutzung von \PValue{Italic} +oder \PValue{Slanted} als Alias für die geneigten Schriftschnitte möglich. Zur +Auswahl von \DIN ist \PValue{din} als Argument hinreichend. + +\end{Declaration} +\end{Declaration} + \subsection{Schriften für den Mathematiksatz} \begin{Declaration}[v2.03]{\Option{cdmath}[\PBoolean]}% @@ -379,7 +368,7 @@ so werden zu den Hausschriften passende im Mathematikmodus genutzt, mit Umschalten innerhalb des Dokumentes ist~-- beispielsweise für Abbildungen oder Tabellen~-- durch \Macro{TUDoptions}\PParameter{\Option{cdmath}[true/false]} möglich. Mit \Macro{boldmath} kann auf fette Mathematikschriften umgeschaltet -werden. +werden. Gültige Werte für die Option \Option{cdmath} sind: % \begin{values} \itemfalse @@ -394,13 +383,14 @@ werden. \see*{\Option{slantedgreek}[false]}. \item[slgreek/slantedgreek] Die Ausgabe der griechischen Großbuchstaben erfolgt kursiv, - \see*{\Option{slantedgreek}[true]}. + \see*{\Option{slantedgreek}[true]}. \end{values} \end{Declaration} \subsubsection{Griechischen Buchstaben} -\label{sec:greek} -\index{Griechische Buchstaben}%\index{Griechische Buchstaben!Neigung} +\vskip-\lastskip% +\label{sec:greek}% +\index{Schrift!Griechische Buchstaben}\index{Griechische Buchstaben}% % \begin{Declaration}{\Macro{varDelta}} \begin{Declaration}{\Macro{varTheta}} @@ -452,10 +442,9 @@ werden. \end{minipage}% )% % -Griechische Majuskeln werden sowohl in aufrechter als auch in geneigter Form -bereitgestellt. Unabhängig von den beiden Optionen \Option{cdmath} und -\Option{slantedgreek} können sowohl kursive als auch aufrechte griechischen -Großbuchstaben im Mathematikmodus direkt verwendet werden. Dies ist nützlich, +Unabhängig von den beiden Optionen \Option{cdmath} und \Option{slantedgreek} +können sowohl kursive als auch aufrechte griechischen Großbuchstaben im +Mathematikmodus mit diesen Befehlen direkt verwendet werden. Dies ist nützlich, um zwischen kursiven Variablen und aufrechten Konstanten zu unterscheiden. Die griechischen Minuskeln sind leider nur in der kursiven Variante verfügbar. \end{Declaration} @@ -479,18 +468,15 @@ griechischen Minuskeln sind leider nur in der kursiven Variante verfügbar. \end{Declaration} \end{Declaration} -\begin{Declaration}{\Option{slantedgreek}[\PBoolean]}% - [true][\Option{cdfont}[false]:false] +\begin{Declaration}{\Option{slantedgreek}[\PBoolean]}[false] \printdeclarationlist% -\index{Schrift!Griechische Buchstaben}\index{Griechische Buchstaben}% -\index{Griechische Buchstaben!Neigung}% % Die Option ändert die standardmäßige Neigung der griechischen Großbuchstaben im Mathematikmodus bei der Verwendung der Befehle \Macro*{Delta}, \Macro*{Theta}, \Macro*{Lambda}, \Macro*{Xi}, \Macro*{Pi}, \Macro*{Sigma}, \Macro*{Upsilon}, \Macro*{Phi}, \Macro*{Psi} und \Macro*{Omega}. Wie unabhängig von der Option \Option{slantedgreek} gezielt kursive und aufrechte Buchstaben gesetzt werden -können, ist \vpageref{sec:greek} beschrieben. +können, wird \vpageref{sec:greek} beschrieben. % \begin{values} \itemfalse @@ -501,8 +487,9 @@ können, ist \vpageref{sec:greek} beschrieben. \end{values} \end{Declaration} + \subsubsection{Zusätzliche Hinweise zum Mathematiksatz} -Weitere Hinweise zum typographisch guten Mathematiksatz sind außerdem in +Weitere Hinweise zum typografisch guten Mathematiksatz sind außerdem in \autoref{sec:exmpl:mathswap} sowie \autoref{sec:exmpl:mathtype} zu finden. @@ -510,47 +497,35 @@ Weitere Hinweise zum typographisch guten Mathematiksatz sind außerdem in \label{sec:fonts:fontspec} \index{OpenType-Schriften} % -\ChangedAt{v2.02!OpenType-Schriften mit \Option{fontspec} verwendbar} -Das \TUDScript-Bundle unterstützt die Verwendung der Schriften des \CDs sowohl -im PostScript- als auch im OpenType"=Format. Sind die OpenType"=Schriften über -das Betriebssystem installiert, können diese mit dem Paket \Package{fontspec} -eingebunden werden. Wäre dies ohne Probleme möglich, wäre die Installation der -PostScript"=Schriften mithilfe eines Skriptes damit obsolet. Allerdings sind -einerseits für die Kompilierung eines Dokumentes über den klassischen Prozess -via \Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf}~-- wie es +\ChangedAt{v2.02!OpenType-Schriften mit \Package{fontspec} verwendbar} +Das \TUDScript-Bundle unterstützt die Nutzung der Schriften des \CDs sowohl +im PostScript- als auch im OpenType"=Format. Letztere müssen ebenfalls über das +\hrfn{http://tu-dresden.de/service/publizieren/cd/1_basiselemente/03_hausschrift/schriftbestellung.html}% +{Universitätsmarketing auf Anfrage} bestellt werden. Die in den beiden Archiven +\File{Univers\_8\_TTF.zip} und \File{DIN\_TTF.zip} enthaltenen Schriften müssen +für das Betriebssystem installiert werden und lassen sich anschließend mit dem +Paket \Package{fontspec} verwenden. + +Auf die Installation der PostScript"=Schriften kann dennoch nicht ohne Weiteres +verzichtet werden. Denn einerseits sind diese für die Kompilierung eines +\hologo{LaTeX}"~Dokumentes über den klassischen Prozesspfad via +\Path{latex \textrightarrow{} dvips \textrightarrow{} ps2pdf}~-- wie es beispielsweise für die Erstellung von Grafiken mit \Package{pstricks} notwendig -ist~-- die Schriften im PostScript"=Format nötig. Andererseits liefern die -Schriftfamilien des \CDs keinerlei mathematische Glyphen, sodass diese bei der -PostScript"=Schriftinstallation aus den Schriftpaketen \Package{cmbright} und -\Package{iwona} entnommen werden müssen. +ist~-- nötig. Andererseits liefern die Schriftfamilien des \CDs keinerlei +mathematische Glyphen, sodass diese bei der PostScript"=Schriftinstallation aus +den Schriftpaketen \Package{cmbright} und \Package{iwona} entnommen werden. Bei +der Nutzung der Schriften im OpenType"=Format ist dies leider nicht so einfach +möglich, da es schlichtweg an passenden Schriftpaketen für den Mathematiksatz +im OpenType"=Format mangelt. Weiterhin kommt es auch beim Kerning der Schriften +zu Problemen. Die Verwendung der Schriften des \CDs im OpenType"=Format sollte folglich nur -genutzt werden, wenn eine Installation der PostScript"=Schriften \emph{absolut} -nicht möglich ist. Sollten die PostScript"=Schriften installiert sein, gibt es -auch beim Einsatz von \hologo{LuaLaTeX} oder \hologo{XeLaTeX} keinen triftigen -Grund, die Option \Option{fontspec} zu verwenden. +erfolgen, wenn eine Installation der PostScript"=Schriften \emph{absolut} nicht +möglich ist beziehungsweise \hologo{LuaLaTeX} oder \hologo{XeLaTeX} zwingend +genutzt werden müssen. Hierfür ist es~-- nach der systemweiten Installation der +OpenType"=Schriften~-- ausreichend, das Paket \Package{fontspec} zu laden. +\index{Schrift|?)}% -\begin{Declaration}[v2.02]{\Option{fontspec}[\PBoolean]}[false]% -\printdeclarationlist% -% -Wird die Option aktiviert, werden die OpenType"=Varianten von \Univers und \DIN -anstelle der PostScript"=Schriften verwendet. Diese sollte nur in absoluten -Ausnahmefällen genutzt werden. Hierfür müssen die OpenType"=Schriften auf dem -Betriebssystem installiert sein. -\begin{values} -\itemfalse* - Die Hausschriften im Stil des \CDs der \TnUD werden im PostScript"=Format - eingebunden. Sowohl Kerning als auch der mathematische Satz funktionieren - problemlos. -\itemtrue* - Es werden die OpenType"=Varianten der Hausschriften verwendet. Dazu wird das - Paket \Package{fontspec} geladen, welches lediglich mit \hologo{LuaLaTeX} - oder \hologo{XeLaTeX} jedoch nicht mit \hologo{pdfLaTeX} als genutzt werden - kann. Sowohl beim mathematischen Satz als auch beim Kerning der Schriften - kann es zu Problemen kommen. Die Verwendung dieser Einstellung sollte nur - erfolgen, wenn eine Installation der PostScript"=Schriften nicht möglich ist. -\end{values} -\end{Declaration} \section{Das Layout des \CDs} @@ -572,76 +547,63 @@ erscheinen auch diese in besagtem Seitenstil. \subsection{Die Gestalt von Titel, Umschlagseite, Teilen und Kapiteln} \begin{Declaration}[% - v2.03!Option für neue Gestaltungsmöglichkeiten erweitert% + v2.03!neue Farbvarianten + (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),% + v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})% ]{\Option{cd}[\PSet]}[true] \printdeclarationlist% \index{Layout}% % Mit dieser Option wird festgelegt, ob und wie das \CD der \TnUD verwendet wird. -Sie hat Einfluss auf die Ausprägung für Titel"~, Teil"~, und Kapitelseiten. +Sie hat Einfluss auf die Ausprägung von Titel"~, Teil"~, und Kapitelseiten. % \begin{values} \itemfalse Diese Einstellung erzeugt das Standard"=Verhalten der \KOMAScript"=Klassen, es wird kein \CD genutzt. -\itemtrue*[nocolor/nocolour/monochrome] +\itemtrue*[nocolor/monochrome] Das Layout für Titel"~, Teil"~ und Kapitelseiten ist im \CD, es wird - schwarze Schrift für Titel, Teil"~ und Kapitelüberschriften sowie im - Seitenkopf verwendet. + schwarze Schrift für Titel, Teil"~ und Kapitelüberschriften verwendet. Die + Ausprägung des Seitenkopfes ist abhängig von der Option \Option{cdhead}. \item[lightcolor/pale] Die Einstellung entspricht weitestgehend der Option \Option{cd}[true], allerdings wird die primäre Hausfarbe \Color{HKS41} für den Kopf des \PageStyle{tudheadings}"=Seitenstils und die Schrift genutzt. -\item[bicolor/bicolour/bichrome] +\item[barcolor] + \ChangedAt{v2.04} Zusätzlich zur vorherigen Einstellung wird außerdem der + Querbalken mit einem farbigen Hintergrund gesetzt. +\item[bicolor/bichrome] \ChangedAt{v2.03} Der Kopf wird mit einem farbigen Hintergrund in der Hausfarbe gesetzt, auch der Querbalken wird farbig hinterlegt. Die Schrift wird in der primären Hausfarbe gesetzt. -\item[color/colour] +\item[color] Der Titel sowie Teil"~ und Kapitelseiten werden allesamt farbig und im \CD gestaltet, der Seitenkopf wird in der primären Hausfarbe \Color{HKS41} gesetzt, der Querbalken erhält Linien als Begrenzung. -\item[full/fullcolor/fullcolour] +\item[full/fullcolor] \ChangedAt{v2.03} Entspricht der vorherigen Einstellung, allerdings wird der Querbalken nicht durch Linien begrenzt sondern farbig hinterlegt. \end{values} \end{Declaration} -\begin{Declaration}[v2.02]{\Length{pageheadingsvskip}} -\begin{Declaration}[v2.02]{\Length{headingsvskip}} -\printdeclarationlist% -\index{Kapitelseiten}\index{Layout!Kapitelseiten}\index{Überschriften!Position}% -% -Diese beiden Längen haben Auswirkung auf die vertikale Position verschiedener -Überschriften. Mit \Length{pageheadingsvskip} können sowohl der Titel auf der -Titelseite (\Option{titlepage}[true]) als auch die Überschriften von Teilen und -Kapiteln, welche als einzelne Kapitelseite (\Option{chapterpage}[true]) gesetzt -werden, verschoben werden. Demgegenüber erlaubt es \Length{headingsvskip}, -sowohl den Titel innerhalb eines Titelkopfes (\Option{titlepage}[false]) als -auch die Überschrift eines Kapitels bei deaktivierter Kapitelseite -(\Option{chapterpage}[false]) in ihrer vertikalen Position anzupassen. - -Die zuvor genannten Überschriften werden normalerweise im Layout relativ tief -im Textbereich gesetzt. Mit negativen Werten werden die Überschriften nach oben -verschoben, wobei darauf geachtet werden sollte, dass diese sich danach noch -innerhalb des Satzspiegels befinden. Positive Werte setzen die Überschriften -dementsprechend tiefer. -\end{Declaration} -\end{Declaration} \subsubsection{Einstellungen für Titel, Umschlagseite, Teile und Kapitel} -Das Verhalten aller Elemente% -\footnote{% - Titel (\Macro{maketitle}), Umschlagseite (\Macro{makecover}), - Teileseite (\Macro{part}, \Macro{addpart}), - Kapitelseite (\Macro{chapter}, \Macro{addchap})% -} -wird von der Option \Option{cd}[\PSet] bestimmt. Soll ein bestimmtes Element -des Layouts abweichend erscheinen, so kann eine der folgenden Optionen genutzt -werden, um dieses individuell anzupassen. Die gültigen Wertzuweisungen für die -einzelnen Elemente entsprechend dabei den möglichen Werten für die Option -\Option{cd}. +Das Verhalten aller für das Layout relevanten Elemente wird von der eben zuvor +erläuterten Option \Option{cd}[\PSet] bestimmt. Dies betrifft zum einen sowohl +den Titel~(\Macro{maketitle}) als auch die Umschlagseite~(\Macro{makecover}) +und zum anderen alle Teileseiten~(\Macro{part}, \Macro{addpart}) und +Kapitelseiten~(\Macro{chapter}, \Macro{addchap}). -\begin{Declaration}{\Option{cdtitle}[\PSet]} +Soll ein bestimmtes Element des Layouts abweichend erscheinen, so kann eine der +folgenden Optionen genutzt werden, um dieses individuell anzupassen. Die +gültigen Wertzuweisungen für die einzelnen Elemente entsprechend dabei den +möglichen Werten für die Option \Option{cd}. + +\begin{Declaration}[% + v2.03!neue Farbvarianten + (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),% + v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})% +]{\Option{cdtitle}[\PSet]} \printdeclarationlist% \index{Titel}\index{Layout!Titel}% % @@ -665,10 +627,14 @@ ist in \autoref{sec:title} nachzulesen. Unabhängig von der gewählten Variante der Titelseite wird diese immer mit \Macro{maketitle} erzeugt. \end{Declaration} -\begin{Declaration}[v2.02]{\Option{cdcover}[\PSet]} +\begin{Declaration}[% + v2.02,% + v2.03!neue Farbvarianten + (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),% + v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})% +]{\Option{cdcover}[\PSet]} \printdeclarationlist% -\index{Umschlagseite|!}% -\index{Titel!Umschlagseite}\index{Layout!Umschlagseite}% +\index{Umschlagseite|!}\index{Titel!Umschlagseite}\index{Layout!Umschlagseite}% % Die \TUDScript-Klassen führen zusätzlich den Befehl \Macro{makecover} ein, mit dem sich neben dem Titel eine separate Umschlagseite erzeugen lässt. Diese ist @@ -681,26 +647,30 @@ des Befehls \Macro{makecover} sowie die dazugehörigen Parameter werden detailliert in \autoref{sec:title} erläutert. \end{Declaration} -\begin{Declaration}{\Option{cdpart}[\PSet]} +\begin{Declaration}[% + v2.03!neue Farbvarianten + (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),% + v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})% +]{\Option{cdpart}[\PSet]} \printdeclarationlist% \index{Teileseiten}\index{Layout!Teileseiten}% % Für die Teileseiten kann der Wert des Schlüssels \Option{cd} separat -überschrieben und somit deren Layout% -\footnote{\label{fn:layout}% - \KOMAScript"=Layout beziehungsweise monochromes oder farbiges - Erscheinungsbild im \CD% -} -beeinflusst werden, welches bei der Benutzung der Befehle \Macro{part} -beziehungsweise \Macro{addpart} und deren Sternversionen genutzt wird. +überschrieben und somit deren Layout respektive Erscheinungsbild beeinflusst +werden, welches bei der Benutzung der Befehle \Macro{part} beziehungsweise +\Macro{addpart} und deren Sternversionen genutzt wird. \end{Declaration} -\begin{Declaration}{\Option{cdchapter}[\PSet]} +\begin{Declaration}[% + v2.03!neue Farbvarianten + (\protect\PValue{bicolor} und \protect\PValue{fullcolor}),% + v2.04!farbiger Querbalken möglich (\protect\PValue{barcolor})% +]{\Option{cdchapter}[\PSet]} \printdeclarationlist% \index{Kapitelseiten}\index{Layout!Kapitelseiten}% % Für Kapitelseiten kann der Schlüsselwert \Option{cd} ebenfalls angepasst und -damit das Erscheinungsbild\footref{fn:layout} geändert werden, das bei der +damit das Layout respektive Erscheinungsbild geändert werden, das bei der Verwendung von \Macro{chapter} beziehungsweise \Macro{addchap} und den dazugehörigen Sternversionen genutzt wird. \end{Declaration} @@ -713,90 +683,34 @@ Schrift gesetzt werden, so kann dies folgendermaßen erreicht werden: \end{Code} \end{Example} -\subsubsection{Vakatseiten/Leerseiten} -\index{Leerseiten}% -Automatisch erzeugte Vakatseiten~-- auch absichtliche Leerseiten genannt~-- -findet man in Dokumenten mit den aktivierten Optionen \Option{twoside} und -\Option{open}[right]\footnote{Standard bei \Class{tudscrbook}} beziehungsweise -\Option{open}[left] beim Beginn von Teilen und Kapiteln. Für diese kann der -Seitenstil mit der \KOMAScript"=Option \Option{cleardoublepage} eingestellt -werden. -\begin{Declaration}{\Option{cleardoublespecialpage}[\PSet]}[true]% +\subsubsection{Position von Überschriften} +\begin{Declaration}[v2.02]{\Length{pageheadingsvskip}} +\begin{Declaration}[v2.02]{\Length{headingsvskip}} \printdeclarationlist% -\index{Teileseiten}\index{Layout!Teileseiten}% -\index{Kapitelseiten}\index{Layout!Kapitelseiten}% -\index{Satzspiegel!doppelseitig}\index{Layout!Rückseiten}% -% -Diese Option wirkt sich lediglich bei aktiviertem doppelseitigem Satz und -ausschließlich rechts eröffnenden Seiten für Teile beziehungsweise Kapitel -aus.% -\footnote{\Option{twoside} und \Option{open}[right]} -In diesem Fall kann der Stil der darauffolgenden, linken Seite~-- sprich der -Rückseite~-- beeinflusst werden. Das Normalverhalten sieht vor, dass nach einem -Teil die Rückseite unabhängig von der Einstellung für \Option{cleardoublepage} -immer als vollständig leere Seite ohne Kopf"~ oder Fußzeilen gesetzt wird. +\index{Überschriften!Position}\index{Titel!Position}% +\index{Teileüberschriften}\index{Kapitelüberschriften}% +\index{Kapitelseiten}\index{Layout!Kapitelseiten}\index{Layout!Überschriften}% +% +Diese beiden Längen haben Auswirkung auf die vertikale Position bestimmter +Überschriften. Mit \Length{pageheadingsvskip} lassen sich sowohl der Titel auf +der Titelseite (\Option{titlepage}[true]) als auch die Überschriften von Teilen +und Kapiteln, welche als einzelne Kapitelseite (\Option{chapterpage}[true]) +gesetzt werden, verschieben. Demgegenüber erlaubt es \Length{headingsvskip}, +sowohl den Titel innerhalb eines Titelkopfes (\Option{titlepage}[false]) als +auch die Überschrift eines Kapitels bei deaktivierter Kapitelseite +(\Option{chapterpage}[false]) in ihrer vertikalen Position anzupassen. -Diese Einstellung erlaubt es, dieses Normalverhalten zu deaktivieren und für -die Seite nach der Teileseite~-- und abhängig von \Option{chapterpage} -auch nach einem Kapitelanfang auf einer separaten Seite~-- den Seitenstil der -Option \Option{cleardoublepage} zu übernehmen. Des Weiteren kann auch ein -anderer, beliebiger, bereits definierter Seitenstil gewählt werden. Außerdem -kann im farbigen Layout die Rückseite in der gleichen Farbe wie die -Vorderseite von Teil oder Kapitel gesetzt werden. \notudscrartcl -% -\begin{values} -\itemfalse - Die Rückseiten sind vollständig leere Seiten, unabhängig von Option - \Option{cleardoublepage}. -\itemtrue* - Der Seitenstil der Rückseite von Teilen und gegebenenfalls Kapiteln - entspricht der Einstellung von \Option{cleardoublepage} für Vakatseiten. -\item[current] - Es wird der aktuell definierte Seitenstil (\Macro{pagestyle}) für die - erzeugte Rückseite verwendet. -\item[color/colour] - Im farbigen Layout ist auch die Rückseite von Teilen und Kapiteln farbig, - \see*{\Option{clearcolor}}. -\makeatletter\item@values[\PName{Seitenstil}\textsl{:}]\makeatother - Mit der Angabe von \Option{cleardoublespecialpage}[\PName{Seitenstil}] - kann ein beliebiger, bereits definierter Seitenstil für die Rückseite nach - Teilen und Kapiteln verwendet werden. -\end{values} +Die zuvor genannten Überschriften werden normalerweise im Layout relativ tief +im Textbereich gesetzt. Mit negativen Werten werden die Überschriften nach oben +verschoben, wobei darauf geachtet werden sollte, dass diese sich danach noch +innerhalb des Satzspiegels befinden. Positive Werte setzen die Überschriften +dementsprechend tiefer. \end{Declaration} - -\begin{Declaration}{\Option{clearcolor}[\PBoolean]}[false]% -\printdeclarationlist% -\index{Titel}\index{Layout!Titel}% -\index{Teileseiten}\index{Layout!Teileseiten}% -\index{Kapitelseiten}\index{Layout!Kapitelseiten}% -\index{Satzspiegel!doppelseitig}\index{Leerseiten}% -% -Sollten beim farbigen Layout die Optionen \Option{twoside} sowie auch -\Option{open}[right] gesetzt sein, so werden beim Aktivieren dieser Option die -Rückseiten von Teilen~-- und je nach Einstellung von \Option{chapterpage} -gegebenenfalls auch von Kapiteln~-- farbig gesetzt.% -\footnote{% - Dies führt bei der Ausgabe zu farbigen Blättern (Vorder- und Rückseite) der - entsprechenden Elemente des Layouts. -} -Die Option wirkt sich ebenfalls auf die Rückseite des Titels aus.% -\footnote{% - \see*{\Macro{uppertitleback} und \Macro{lowertitleback}} der - \KOMAScript"=Dokumentation (\scrguide*) -} -Der Stil dieser zusätzlich eingefügten Rückseiten ist abhängig von der Option -\Option{cleardoublespecialpage}. -% -\begin{values} -\itemfalse - Es werden weiße Rückseiten bei Titel, Teilen und gegebenenfalls Kapiteln - erzeugt. -\itemtrue* - Die rückwärtigen Seiten der genannten Elemente des Layouts sind farbig. -\end{values} \end{Declaration} + + \subsection{Seiten im Stil des \CDs} \begin{Declaration}[v2.02]{\PageStyle{tudheadings}} \begin{Declaration}[v2.02]{\PageStyle{plain.tudheadings}} @@ -817,12 +731,19 @@ einer der Seitenstile geladen werden. Allen Seitenstilen gemein ist der typische Kopf mit dem charakteristischen Querbalken, dessen Gestalt für \emph{alle} Seitenstile gleichermaßen über die -Option \Option{cdhead} angepasst werden kann. Die Ausprägung des Fußes ist für -die einzelnen Seitenstile unterschiedlich. Dieser ist der Verwendung des Stils -\PageStyle{empty.tudheadings} immer leer. Die beiden Stile~-- oder vielmehr das -Seitenstil-Paar~-- \PageStyle{tudheadings} und \PageStyle{plain.tudheadings} -übernehmen die Einstellungen für die Fußzeile aus der Anwenderschnittstelle von -\Package{scrlayer-scrpage}.% +Option \Option{cdhead} angepasst werden kann. Mit dem Befehl \Macro{headlogo} +lässt sich ein zusätzliches Zweitlogo im Kopfbereich ausgegeben. +\Attention{% + Für die speziellen Layout-Elemente Titel und Umschlagseite sowie Teile- und + Kapitelseiten wird die Einstellung von \Option{cdhead} durch die Nutzung der + Option~\Option{cd} überschrieben. +} + +Die Ausprägung des Fußes unterscheidet sich bei den einzelnen Seitenstilen. +Dieser ist beim Seitenstil \PageStyle{empty.tudheadings} immer leer. Die beiden +Stile~-- oder vielmehr das Seitenstil-Paar~-- \PageStyle{tudheadings} und +\PageStyle{plain.tudheadings} übernehmen die Einstellungen für die Fußzeile aus +der Anwenderschnittstelle von \Package{scrlayer-scrpage}.% \footnote{% Es können die Befehle \Macro{lefoot}, \Macro{cefoot} und \Macro{refoot} sowie \Macro{lofoot}, \Macro{cofoot} und \Macro{rofoot} respektive \Macro{ofoot}, @@ -830,7 +751,10 @@ Seitenstil-Paar~-- \PageStyle{tudheadings} und \PageStyle{plain.tudheadings} } Wie diese zu verwenden ist, kann der \KOMAScript"=Anleitung entnommen werden. Alternativ zu einer eigenen Definition der Fußzeile lässt sich außerdem die -Option \Option{cdfoot} verwenden. +Option \Option{cdfoot} verwenden. Zusätzlich kann über \Macro{footcontent} ein +freier Inhalt für den Fußbereich definiert werden, mit \Macro{footlogo} ist die +Ausgabe von einem oder mehreren Logos in diesem möglich. Die verwendete Schrift +im Fußbereich wird durch das Schriftelement~\Font{tudheadings} festgelegt. Sobald einer der definierten Stile mit \Macro{pagestyle}\Parameter{Seitentil} aktiviert wurde, sind die beiden Seitenstile \PageStyle{tudheadings} sowie @@ -844,22 +768,41 @@ umgeschaltet wird. Der Seitenstil \PageStyle{empty} erzeugt allerdings weiterhin eine komplett leere Seite. Soll eine Seite mit der prägnanten Kopfzeile der \TnUD und leerem Seitenfuß erschienen, so muss \Macro{pagestyle}\PParameter{empty.tudheadings} -manuell aufgerufen werden. Um auf das typische Verhalten von \KOMAScript{} -zurückzuschalten und Seiten ohne den prägnanten Kopf der \TnUD zu erhalten, -muss einer der Stile \PageStyle{scrheadings} oder \PageStyle{plain.scrheadings} -aktiviert werden. +manuell aufgerufen werden. Um auf das normale Verhalten von \KOMAScript{} +zurückzuschalten, muss einer der beiden Stile \PageStyle{scrheadings} +beziehungsweise \PageStyle{plain.scrheadings} aktiviert werden. + +\Attention{% + Die beschriebenen Seitenstile werden erst \emph{nach} dem Laden des Paketes + \Package{scrlayer-scrpage} definiert. Wird dieses nicht durch den Anwender + geladen, sollte \Macro{pagestyle}\Parameter{Seitenstil} erst nach + \Macro*{begin}\PParameter{document} verwendet werden. +}% \end{Declaration} \end{Declaration} \end{Declaration} +\begin{Declaration}[v2.04]{\Font{tudheadings}} +\printdeclarationlist% +\index{Schriftelemente} +% +Im Fußbereich der Seiten im \PageStyle{tudheadings}-Seitenstil wird das +Schriftelement~\Font{tudheadings} verwendet. Dieses wirkt sich auf die +Seitenzahlen, den Kolumnentitel und die mit \Macro{footcontent} angegebenen +Inhalte aus. Hierüber wird die Wahl der richtigen Schriftfarbe in Abhängigkeit +vom Seitenhintergrund und den Einstellungen für die Optionen \Option{cdhead} +sowie \Option{cdfoot} realisiert. Wie \Font{tudheadings} angepasst werden kann, +ist in \autoref{sec:fonts:elements} zu finden. +\end{Declaration} + \begin{Declaration}{\Macro{faculty}\Parameter{Fakultät}} \begin{Declaration}{\Macro{department}\Parameter{Einrichtung}} \begin{Declaration}{\Macro{institute}\Parameter{Institut}} \begin{Declaration}{\Macro{chair}\Parameter{Lehrstuhl}} \begin{Declaration}{\Macro{extraheadline}\Parameter{Textzeile}} \printdeclarationlist% -\index{Kopfzeile}\index{Layout!Kopfzeile}\index{Kopfzeile!Felder}% -\index{Querbalken}\index{Layout!Querbalken}\index{Querbalken!Felder}% +\index{Kopfzeile}\index{Layout!Kopfzeile}% +\index{Querbalken}\index{Layout!Querbalken}% % Für den Seitenstil des \CDs der \TnUD typisch ist die Kopfzeile mit dem charakteristischen Querbalken. In dieser wird~-- falls angegeben~-- in fetter @@ -878,12 +821,14 @@ zweiten beziehungsweise dritten Zeile unterhalb der Angaben des Bereichs an der \end{Declaration} \end{Declaration} -\begin{Declaration}[v2.03]{\Option{cdhead}[\PSet]}[true][% +\begin{Declaration}[% + v2.03,% + v2.04!farbiger Querbalken möglich (\PValue{barcolor})% +]{\Option{cdhead}[\PSet]}[true][% \Option{cdfont}[false]:false% ] \printdeclarationlist% -\index{Kopfzeile!Schrift}% -\index{Layout!Kopfzeile}% +\index{Kopfzeile}\index{Layout!Kopfzeile}% \index{Querbalken}\index{Layout!Querbalken}% % Mit dieser Option lassen sich für die \PageStyle{tudheadings}"=Seitenstile @@ -899,46 +844,55 @@ der Schriftart im Balken verwendet werden: aktiviert, hat diese Einstellung keinen Einfluss. \itemtrue*[light/lightfont/noheavyfont] Im Querbalken wird für \Macro{faculty} \textubn{Univers~65~Bold} verwendet, - für die Felder \Macro{department}, \Macro{institute}, \Macro{chair} und + die Felder \Macro{department}, \Macro{institute}, \Macro{chair} und \Macro{extraheadline} kommt \textuln{Univers~45~Light} zum Einsatz. \item[heavy/heavyfont] Der Inhalt von \Macro{faculty} wird weiterhin in \textubn{Univers~65~Bold} gesetzt, für die restlichen Felder wird \texturn{Univers~55~Regular} genutzt. \end{values} % -Bei der Ausprägung des Kopfes und des Querbalkens gibt es mehrere Varianten: +Bei der Ausprägung des Kopfes und des Querbalkens gibt es mehrere Varianten. +Einerseits kann der Querbalken mit zwei Außenlinien dargestellt werden: % \begin{values} -\item[nocolor/nocolour/monochrome] +\item[nocolor/monochrome] Der Kopf und die Linien des Querbalkens erscheinen in schwarzer Farbe. \item[lightcolor/pale] Sowohl Kopf als auch Querbalken werden in der primären Hausfarbe gesetzt. -\item[bicolor/bicolour/bichrome] +\end{values} +% +Andererseits ist auch eine Darstellung mit mehr Farbeinsatz möglich, bei +welcher der Querbalken und gegebenenfalls der ganze Seitenkopf farblich +abgesetzt wird. +% +\begin{values} +\item[barcolor] + \ChangedAt{v2.04} Im Gegensatz zur vorherigen Einstellung wird der + Querbalken mit farbigem Hintergrund verwendet. +\item[bicolor/bichrome] \ChangedAt{v2.03} Die Kopfzeile wird farblich abgesetzt, wobei der Hintergrund des Logos und der Querbalken unterschiedlich ausfallen. Die Außenlinien der Querbalkens entfallen. \end{values} % -Die Außenlinien des Querbalkens laufen entweder bis zum Text"~ oder jedoch bis -zum Blattrand. Für den Fall, dass ein randloser Ausdruck technisch nicht -möglich ist, können die Varianten bei denen der Querbalken bis an den Blattrand -reicht Probleme bereiten. Deshalb kann mit der Option \Option{cdhead} dessen -Breite angepasst werden. Normalerweise wird der Querbalken lediglich im -farbigen Layout in der Blattbreite erzeugt. +Für den Fall, dass der Querbalken lediglich mit zwei Außenlinien dargestellt +wird, kann zusätzlich dessen Laufweite festgelegt werden: % \begin{values} \item[textwidth/slim] - Der Querbalken im Kopf erstreckt sich immer nur über den Textbereich. + Der Querbalken im Kopf erstreckt sich nur über den Textbereich. Diese + Einstellung ist insbesondere sinnvoll, wenn ein randloser Ausdruck technisch + nicht möglich ist. \item[paperwidth/wide] - Die horizontale Ausdehnung des Querbalkens erstreckt sich immer bis an den - Blattrand. + Die horizontale Ausdehnung des Querbalkens erstreckt sich über die komplette + Seitenbreite bis an den Blattrand. Dieses Verhalten ist standardmäßig im + farbigen Layout aktiviert. \end{values} \end{Declaration} -\ToDo[imp,nxt]{Text im Seitenfuß}[v2.04] \begin{Declaration}[% v2.03!farbiger Hintergrund der Fußzeile möglich% -]{\Option{cdfoot}[\PBoolean]}[false]% +]{\Option{cdfoot}[\PSet]}[false]% \printdeclarationlist% \index{Kolumnentitel}\index{Layout!Kolumnentitel} \index{Satzspiegel!doppelseitig}% @@ -965,9 +919,9 @@ geschehen ist. dieser sollte unbedingt das \KOMAScript"=Paket \Package{scrlayer-scrpage} verwendet werden. \itemtrue* - Die Kopf"~ und Fußzeilen des Dokumentes werden wie im Handbuch des \CDs der - \TnUD gesetzt. Im doppelseitigen Satz (\Option{twoside}[true]) wird die - Seitenzahl außen platziert. + Die Fußzeilen des Dokumentes werden wie im Handbuch des \CDs der \TnUD + mit Kolumnentitel und Seitenzahl gesetzt. Im doppelseitigen Satz + (\Option{twoside}[true]) wird die Paginierung außen platziert. \end{values} % \ChangedAt{v2.03} @@ -977,23 +931,26 @@ Kopf (\Option{cdhead}[bicolor]) oder ein farbiger Seitenhintergrund~-- genutzt, so kann auch die Fußzeile einen farbigen Hintergrund erhalten. % \begin{values} -\item[nocolor/nocolour/monochrome] +\item[nocolor/monochrome] Der Fuß wird immer ohne farbigen Hintergrund gesetzt. -\item[bicolor/bicolour/bichrome] +\item[color/bicolor/bichrome] Die Fußzeile wird farblich abgesetzt, falls entweder der zweifarbige Kopf (\Option{cdhead}[bicolor]) oder zumindest eine Seite mit einem farbigen Hintergrund in der Hausfarbe (Titel oder Kapitelseite) verwendet wurde. \end{values} +% +Wird der Option \Option{cdfoot} eine Längenmaß übergeben, entspricht dies der +Verwendung von \Option{extrabottommargin}. \end{Declaration} \begin{Declaration}{\Macro{headlogo}\LParameter\Parameter{Dateiname}} \printdeclarationlist% +\index{Kopfzeile}\index{Layout!Kopfzeile}% \index{Zweitlogo|?}\index{Layout!Zweitlogo}\index{\DDC-Logo}% -\index{Kopfzeile}\index{Kopfzeile!Logo}\index{Layout!Kopfzeile} % -Neben dem Logo der \TnUD darf zusätzlich ein Zweitlogo im Kopf verwendet werden. -Dieses lässt sich mit diesem Befehl einbinden. Normalerweise wird es auf die -Höhe der Erstlogos skaliert. Über das optionale Argument können weitere +Neben dem Logo der \TnUD darf zusätzlich ein Zweitlogo im Kopf verwendet +werden. Dieses lässt sich mit diesem Befehl einbinden. Normalerweise wird es +auf die Höhe der Erstlogos skaliert. Über das optionale Argument können weitere Formatierungsbefehle an den verwendeten Befehl \Macro{includegraphics} durchgereicht werden, um beispielsweise die Größe des Zweitlogos anzupassen. Welche Parameter angepasst werden können, ist der Dokumentation des @@ -1012,7 +969,7 @@ angegebene Zweitlogo. \begin{Declaration}[v2.03]{\Length{footlogoheight}}% \printdeclarationlist% \index{Drittlogo|?}\index{Layout!Drittlogo}\index{\DDC-Logo}% -\index{Fußzeile}\index{Fußzeile!Logo}\index{Layout!Fußzeile}% +\index{Fußzeile}\index{Layout!Fußzeile}% Laut den Richtlinien des \CDs dürfen im Fußbereich weitere Logos erscheinen, beispielsweise von kooperierenden Unternehmen oder Sponsoren. Die Dateinamen @@ -1028,24 +985,55 @@ beispielsweise ein Logo mit \Macro{footlogo}\PParameter{,\PName{Dateiname},} zentriert im Fuß setzen. Das optionale Argument von \Macro{footlogo} wird an \Macro{includegraphics} -weitergereicht. Bitte beachten Sie dabei, dass dies für alle angegeben Dateien -aus der Liste gleichermaßen geschieht. Sollen für einzelne Logos individuelle -Einstellungen vorgenommen werden, so sind die entsprechenden Parameter im -obligatorischen Argument dem jeweiligen Dateinamen mit Doppelpunkt~\PValue{:} -anzuhängen (\Macro{footlogo}\PParameter{\PName{Dateiname}:\PName{Parameter}}), -wobei diese \emph{nach} den allgemeinen Einstellungen für alle Logos angewendet -werden.Die möglichen Parameter und Werte für die optionalen Argumente sind der -Dokumentation des \Package{graphicx}-Paketes zu entnehmen. - -Ohne die Angabe eines optionalen Argumentes werden alle Logos im Fuß auf die -Höhe \Length{footlogoheight} skaliert, welche vom Anwender ebenfalls angepasst -werden kann. Sollte die Höhe des Fußbereiches nicht ausreichen um alle Logos in -der gewünschten Größe darstellen zu können, so kann diese über die Option -\Option{extrabottommargin} angepasst werden. +weitergereicht. Dies geschieht für alle angegeben Dateien aus der Liste +gleichermaßen. Sollen für einzelne Logos individuelle Einstellungen vorgenommen +werden, so sind die entsprechenden Parameter im obligatorischen Argument nach +dem jeweiligen Dateinamen mit einem Doppelpunkt~\enquote{\PValue{:}} als +Separator (\Macro{footlogo}\PParameter{\PName{Dateiname}:\PName{Parameter}}) zu +übergeben, wobei diese \emph{nach} den allgemeinen Einstellungen für alle Logos +angewendet werden. Die möglichen Parameter und Werte für die optionalen +Argumente sind der Dokumentation des \Package{graphicx}-Paketes zu entnehmen. + +Ohne die Angabe eines optionalen Argumentes für die Größe werden alle Logos im +Fuß auf die auf die Höhe des Logos der \TnUD skaliert. Der Anwender kann dies +ändern, indem der Wert der Länge \Length{footlogoheight} mit \Macro*{setlength} +auf einen von \PValue{0pt} verschiedenen gesetzt wird. Sollte die Höhe des +Fußbereiches nicht ausreichen, um alle Logos in der gewünschten Größe +darstellen zu können, kann diese über die Option \Option{extrabottommargin} +beziehungsweise \Option{cdfoot} angepasst werden. \end{Declaration} \end{Declaration} \end{Declaration} +\begin{Declaration}[v2.04]{\Macro{footcontent}% + \OParameter{Anweisungen}\Parameter{Inhalt}\OParameter{Inhalt}% +} +\begin{Declaration}[v2.04]{\Macro*{footcontent*} + \OParameter{Anweisungen}\Parameter{Inhalt}\OParameter{Inhalt}% +} +\printdeclarationlist% +\index{Fußzeile}\index{Layout!Fußzeile}% +% +Mit diesem Befehl kann beliebiger Inhalt entweder einspaltig oder zweispaltig +im Fußbereich der \PageStyle{tudheadings}"=Seitenstile gesetzt werden. In der +Form \Macro{footcontent}\Parameter{Inhalt} wird der Inhalt über die komplette +Textbreite im Fuß ausgegeben. Wird der Befehl jedoch in der zweiten Variante +\Macro{footcontent}\Parameter{linker Inhalt}\OParameter{rechter Inhalt} mit +einem optionalen \emph{nach} dem obligatorischen Argument verwendet, so +erscheint der Fußbereich zweispaltig, wobei der Inhalt aus dem ersten, +obligatorischen Argument in der linken und der Inhalt aus dem zweiten, +optionalen Argument entsprechend in der rechten Fußspalte gesetzt wird. + +Im Normalfall wird das Schriftelement \Font{tudheadings} für die Schrift im +Fußbereich verwendet. Mit dem ersten optionalen Argument können weitere +Schrifteinstellungen respektive Anweisungen vor der eigentlichen Ausgabe des +Inhaltes erfolgen. Soll die Definition des Inhalts für den Fußbereich gänzlich +ohne die automatische Schriftformatierungen erfolgen, so kann die Sternversion +\Macro{footcontent*} genutzt und gegebenenfalls die Schriftformatierung über +das optionale Argument vorgenommen werden. +\end{Declaration} +\end{Declaration} + \begin{Declaration}[% v2.02!\protect\DDC-Logo automatisch in Kopf oder Fuß% ]{\Option{ddc}[\PSet]}[false] @@ -1078,9 +1066,9 @@ Soll die Farbe des \DDC-Logos manuell erfolgen, können folgende Werte verwendet werden: % \begin{values} -\item[color/colour] +\item[color] Im Kopf oder Fuß wird die achtfarbige 4C"~Variante des \DDC-Logos genutzt. -\item[colorblack/colourblack] +\item[colorblack] Es wird das achtfarbige Logo mit schwarzem \DDC-Schriftzug anstelle des grauen verwendet. Für den Fuß wird der grüne Claim ebenfalls durch einen schwarzen ersetzt. Dies ist insbesondere für kleine Darstellungen des Logos @@ -1100,13 +1088,17 @@ Die Größe des \DDC-Logos ist vorgegeben. Es wird sowohl im Kopf als auch im Fu in der gleichen Höhe gesetzt, wie das Logo der \TnUD. Wird es im Fuß gesetzt, lässt sich die Größe allerdings über die Länge \Length{footlogoheight} ändern. Sollte nach einer Vergrößerung der Darstellung die Höhe des Fußbereiches nicht -ausreichen, so kann diese über die Option \Option{extrabottommargin} angepasst -werden. - +ausreichen, so kann diese über die Option \Option{cdfoot} beziehungsweise +\Option{extrabottommargin} angepasst werden. \end{Declaration} \end{Declaration} \end{Declaration} +\ToDo[imp,nxt]{% + Spezialseite zur freien Gestaltung mit Hintergrundebene für Bilder und Texte + (CD-Handbuch S. 80 ff.); Seitenstil: \PageStyle{special.tudheadings} +}[v2.06] + \begin{Declaration}[% v2.02!\Key{\Environment{tudpage}}{head} \emph{entfällt}, v2.02!\Key{\Environment{tudpage}}{foot} \emph{entfällt}, @@ -1143,7 +1135,6 @@ werden. \index{Layout}\index{Layout!Seitenstil}% \index{Kopfzeile}\index{Layout!Kopfzeile}% \index{Fußzeile}\index{Layout!Fußzeile}% -\index{Schrift}\index{Kopfzeile!Schrift} % Die \Environment{tudpage}"=Umgebung hat ihren Ursprung in einer früheren Version, als die \PageStyle{tudheadings}"=Seitenstile noch nicht verfügbar @@ -1176,16 +1167,11 @@ Handbuchs nachgelesen werden. \end{Declaration} \end{Declaration} -\ToDo[imp,nxt]{% - Titelseite und Cover auf freie Gestaltung mit scrlayer erweitern. -}[v2.x] \subsection{Der Titel und die Umschlagseite} \label{sec:title}%\label{sec:cover}% -\index{Titel|!(} -\index{Umschlagseite|!}% -\index{Titel!Umschlagseite}\index{Layout!Umschlagseite}% +\index{Titel|!(}\index{Umschlagseite|!}\index{Layout!Umschlagseite}% % \ChangedAt*{% v2.03!Bugfix für Umschlagseite und Titel beim Satzspiegel% @@ -1260,7 +1246,7 @@ standardmäßig in \DIN sondern in \textubn{Univers~65~Bold} ausgegeben wird. % Der Befehl \Macro{maketitle} setzt für \Option{cdtitle}[false] den normalen \KOMAScript"=Titel{}, ansonsten wird die Titelseite im \CD der \TnUD erzeugt. -Letztere Variante ist im Vergleich zum Standardtitel um eine Vielzahl von +Die letztere Variante ist im Vergleich zum Standardtitel um eine Vielzahl von Feldern erweitert worden und erlaubt insbesondere die Angabe von Daten für das Deckblatt einer akademischen Abschlussarbeit. Die einzelnen Felder werden später in diesem \autorefname erläutert. Wird das Dokument doppelseitig und mit @@ -1305,7 +1291,8 @@ Im zweispaltigen Satz (\Option{twocolumn}) wird mit \Macro{maketitle} die Titelseite selbst immer einspaltig gesetzt. Direkt nach dem Titel folgt normalerweise der zweispaltige Fließtext. Mit dem \TUDScript-Befehl \Macro{maketitleonecolumn} kann nach dem Titel zusätzlich noch weiterer -Inhalt~-- beispielsweise eine Zusammenfassung~-- einspaltig gesetzt werden. +Inhalt~-- beispielsweise eine Zusammenfassung beziehungsweise eine +Kurfassung~-- einspaltig gesetzt werden. Wird der Befehl bei einer Titelseite (\Option{titlepage}[true]) verwendet, wird der Inhalt des Argumentes (\PName{Einspaltentext}) direkt nach dieser auf einer @@ -1387,12 +1374,13 @@ diese Einstellung die Seitenränder mit den Befehlen \Macro{coverpagetopmargin}, \Macro{coverpagebottommargin} durch den Nutzer frei angepasst werden. Mehr dazu ist im \KOMAScript"=Handbuch \scrguide zu finden. -Das optionale Argument erlaubt die Änderung der Seitenzahl der Umschlagseite. -Diese wird jedoch nicht ausgegeben, sondern beeinflusst lediglich die Zählung. -Sie sollten hier unbedingt eine ungerade Zahl wählen, da sonst die gesamte -Zählung durcheinander gerät. Die weiterhin aufgeführten Parameter entsprechen -in ihrem Verhalten den gleichnamigen Optionen respektive Befehlen, wirken sich -jedoch nur lokal und einzig auf die Umschlagseite aus. +Außerdem kann mit dem optionalen Argument die Seitenzahl der Umschlagseite +geändert werden. Diese wird jedoch nicht ausgegeben, sondern beeinflusst +lediglich die Zählung. Sie sollten hier unbedingt eine ungerade Zahl wählen, da +sonst die gesamte Zählung durcheinander gerät. Die weiterhin aufgeführten +Parameter entsprechen in ihrem Verhalten beziehungsweise ihrer Funktion den +gleichnamigen Optionen respektive Befehlen, wirken sich jedoch nur lokal und +einzig auf die Umschlagseite aus. \end{Declaration} \end{Declaration} @@ -1431,10 +1419,9 @@ die individuellen Wünsche des Anwenders anpassen. % Mit dem Befehl \Macro{author} wird der Autor angegeben. Innerhalb des Argumentes können auch mehrere Autoren aufgeführt werden, wobei diese in diesem -Fall jeweils mit \Macro{and} zu trennen sind. Zu erwähnen ist, dass alle -weiteren hier vorgestellten Befehle selbst im Argument von \Macro{author} -stehen können. Damit wird es möglich, jedem Autor unterschiedliche Angaben -mitzugeben. +Fall jeweils mit \Macro{and} zu trennen sind. Alle weiteren hier vorgestellten +Befehle können selbst im Argument von \Macro{author} verwendet werden, wodurch +für jeden Autor individuelle Angaben möglich sind. Mit \Macro{authormore} wird unter dem Autor eine Zeile ausgegeben, welche durch den Anwender frei belegt werden kann. Sollte das Paket \Package{isodate} @@ -1453,6 +1440,7 @@ sich von selbst. \begin{Declaration}{\Macro{and}} \printdeclarationlist% \index{Kollaboratives Schreiben|?}\index{Titel!Kollaboratives Schreiben}% +\index{Autorenangaben!kollaborativ} % Dieser Befehl wird sowohl bei den \hologo{LaTeX}"=Standardklassen als auch bei den \KOMAScript"=Klassen lediglich auf der Titelseite dazu verwendet, mehrere @@ -1565,8 +1553,8 @@ und \Macro{subject}\Parameter{Wert} zu \Option{subjectthesis}[true]. \printdeclarationlist% % Der Befehl \Macro{thesis} dient den \TUDScript"=Hauptklassen zur Unterscheidung -zweier unterschiedlichen Ausprägungen der Titelseite und ist im speziellen für -Abschlussarbeiten gedacht. Außerdem kann bei der Verwendung spezieller Werte +zwei unterschiedlicher Ausprägungen der Titelseite und ist speziell für +Abschlussarbeiten gedacht. Außerdem kann bei der Nutzung spezieller Werte aus \autoref{tab:thesis} innerhalb des Argumentes von \Macro{subject} ebenfalls das Verhalten für Abschlussarbeiten aktiviert werden, wobei hierdurch die Einstellung \Option{subjectthesis}[true] automatisch vorgenommen wird. @@ -1643,7 +1631,7 @@ Mit \Macro{date} kann das Datum angegeben werden. Das optionale Argument erlaubt eine zusätzliche Anmerkung, welche nach dem Datum ausgegeben wird. Das Datum wird bei normalen Dokumenten direkt nach dem Autor beziehungsweise den Autoren ausgegeben. Bei Abschlussarbeiten~-- aktiviert durch die Verwendung von -\Macro{thesis} uder \Option{subjectthesis}~-- erscheint dieses am Ende der +\Macro{thesis} oder \Option{subjectthesis}~-- erscheint dieses am Ende der Titelseite als Abgabedatum. Außerdem kann in diesem Fall mit dem Befehl \Macro{defensedate} das Datum der Verteidigung angegeben werden, wie es beispielsweise bei dem Druck von Dissertationen üblich ist. @@ -1659,7 +1647,7 @@ alle Datumsfelder des Dokumentes und folglich auch für die beiden Felder \begin{Declaration}{\Macro{titlehead}\Parameter{Kopf}} \begin{Declaration}{\Macro{title}\Parameter{Titel}} \begin{Declaration}[% - v2.01a!Bugfix für Schriftstärke bei Verwendung des Untertitels% + v2.01!Bugfix für Schriftstärke bei Verwendung des Untertitels% ]{\Macro{subtitle}\Parameter{Untertitel}} \begin{Declaration}{\Macro{publishers}\Parameter{Verlag}} \begin{Declaration}{\Macro{thanks}\Parameter{Fußnote}} @@ -1703,10 +1691,12 @@ weitere Angaben nutzen. Sowohl den Titelrückseitenkopf als auch den Titelrückseitenfuß kann der Anwender mit \Macro{uppertitleback} und \Macro{lowertitleback} frei gestalten. -Mit \Macro{dedication} kann eine eigene Widmungsseite zentriert und in etwas -größerer Schrift gesetzt werden. Die Rückseite ist wie die des Schmutztitels -grundsätzlich leer. Die Widmung wird zusammen mit der restlichen Titelei durch -\Macro{maketitle} ausgegeben und muss daher vor dieser Anweisung definiert sein. +Mit \Macro{dedication} lässt eine separate Widmungsseite zentriert und in etwas +größerer Schrift setzen. Die Rückseite ist~-- wie auch die des Schmutztitels~-- +grundsätzlich leer. Die Widmung wird mit der restlichen Titelei ausgegeben und +muss daher vor der Nutzung von \Macro{maketitle} angegeben werden. +\end{Declaration} +\end{Declaration} \end{Declaration} \end{Declaration} \end{Declaration} @@ -1714,6 +1704,19 @@ grundsätzlich leer. Die Widmung wird zusammen mit der restlichen Titelei durch \end{Declaration} \end{Declaration} \end{Declaration} + +\begin{Declaration}[v2.02]{\Font{titlepage}} +\begin{Declaration}[v2.02]{\Font{thesis}} +\printdeclarationlist% +\index{Schriftelemente} +% +Die \TUDScript-Klassen definieren diese neuen Schriftelemente. Dabei wird +\Font{titlepage} auf der Titelseite für alle Felder verwendet, welche kein +spezielles Schriftelement verwenden, welches ohnehin durch \KOMAScript{} +bereitgestellt wird. Das mit \Macro{thesis} angegebene Feld, in welchem der Typ +einer Abschlussarbeit angegeben wird, nutzt das Schriftelement~\Font{thesis}. +Wie diese Elemente angepasst werden können, ist in \autoref{sec:fonts:elements} +zu finden. \end{Declaration} \end{Declaration} \index{Titel|!)} @@ -1751,6 +1754,16 @@ Layout"=Variante findet sich im Handbuch für das \CD der \TnUD. \notudscrartcl \end{values} \end{Declaration} +\begin{Declaration}[v2.02]{\Font{parttitle}} +\printdeclarationlist% +\index{Schriftelemente} +% +Mit dem Schriftelement~\Font{parttitle} lässt sich~-- bei aktivierter +\Option{parttitle}-Option~-- die Schrift für die Bezeichnung des Teils +beeinflussen. In \autoref{sec:fonts:elements} ist zu finden, wie dieses +angepasst werden kann. +\end{Declaration} + \subsection{Die Kapitelseite} \begin{Declaration}{\Option{chapterpage}[\PBoolean]}% @@ -1758,7 +1771,7 @@ Layout"=Variante findet sich im Handbuch für das \CD der \TnUD. \notudscrartcl \printdeclarationlist% \label{sec:chapter}% \index{Kapitelseiten|?}\index{Layout!Kapitelseiten|?}% -\index{Satzspiegel!doppelseitig}\index{Leerseiten}% +\index{Satzspiegel!doppelseitig}\index{Vakatseiten}% % Mit dieser Einstellung kann die Überschrift eines Kapitels separat auf einer Seite ausgegeben werden. Der nachfolgende Text wird auf der nächsten @@ -1799,6 +1812,107 @@ nachzulesen. \end{Declaration} + +\subsection{Vakatseiten} +\index{Vakatseiten}% +Automatisch erzeugte Vakatseiten~-- auch absichtliche Leerseiten genannt~-- +findet man in Dokumenten mit den aktivierten Optionen \Option{twoside} und +\Option{open}[right]\footnote{Standard bei \Class{tudscrbook}} beziehungsweise +\Option{open}[left] beim Beginn von Teilen und Kapiteln. Für diese kann der +Seitenstil mit der \KOMAScript"=Option \Option{cleardoublepage} eingestellt +werden. + +\ToDo[doc,imp,nxt]{% + Rückseite bei Kapitelseiten (auch bei Teilen?) im zweiseitigen Satz per + Option nicht als Vakatseite setzen. Implementierung von farbigen Seiten davor + (\Option*{open}[right]) sowie danach (\Option*{open}[left]). Setzen von + speziellen Inhalten auf diesen Seiten äquivalent zu \Macro*{setpartpreamble} + bzw. \Macro*{setchapterpreamble}; ggf. temporär umschalten bzw. Warnung bei + Konflikt. + \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11&t=396} +}[v2.06] +\begin{Declaration}{\Option{cleardoublespecialpage}[\PSet]}[true]% +\printdeclarationlist% +\index{Teileseiten}\index{Layout!Teileseiten}% +\index{Kapitelseiten}\index{Layout!Kapitelseiten}% +\index{Satzspiegel!doppelseitig}\index{Layout!Rückseiten}% +% +Diese Option wirkt sich lediglich bei aktiviertem doppelseitigem Satz und +ausschließlich rechts eröffnenden Seiten für Teile beziehungsweise Kapitel +aus.% +\footnote{\Option{twoside} und \Option{open}[right]} +In diesem Fall kann der Stil der darauffolgenden, linken Seite~-- sprich der +Rückseite~-- beeinflusst werden. Das Normalverhalten sieht vor, dass nach einem +Teil die Rückseite unabhängig von der Einstellung für \Option{cleardoublepage} +immer als vollständig leere Seite ohne Kopf"~ oder Fußzeilen gesetzt wird. + +Diese Einstellung erlaubt es, dieses Normalverhalten zu deaktivieren und für +die Seite nach der Teileseite~-- und abhängig von \Option{chapterpage} +auch nach einem Kapitelanfang auf einer separaten Seite~-- den Seitenstil der +Option \Option{cleardoublepage} zu übernehmen. Des Weiteren kann auch ein +anderer, beliebiger, bereits definierter Seitenstil gewählt werden. Außerdem +kann im farbigen Layout die Rückseite in der gleichen Farbe wie die +Vorderseite von Teil oder Kapitel gesetzt werden. \notudscrartcl +% +\begin{values} +\itemfalse + Die Rückseiten sind vollständig leere Seiten, unabhängig von Option + \Option{cleardoublepage}. +\itemtrue* + Der Seitenstil der Rückseite von Teilen und gegebenenfalls Kapiteln + entspricht der Einstellung von \Option{cleardoublepage} für Vakatseiten. +\item[current] + Es wird der aktuell definierte Seitenstil (\Macro{pagestyle}) für die + erzeugte Rückseite verwendet. +\itemvalues[\PName{Seitenstil}:] + Mit der Angabe von \Option{cleardoublespecialpage}[\PName{Seitenstil}] + kann ein beliebiger, bereits definierter Seitenstil für die Rückseite nach + Teilen und Kapiteln verwendet werden. +\item[color] + Im farbigen Layout ist auch die Rückseite von Teilen und Kapiteln farbig, + \see*{\Option{clearcolor}}. +\ToDo[imp,nxt]{\PValue{nocolor}}[v2.06] +\end{values} +\end{Declaration} + +\ToDo[doc,imp,nxt]{% + \Option{clearcolor} in \Option{cleardoublespecialpage}% +}[v2.06] +\begin{Declaration}{\Option{clearcolor}[\PBoolean]}[false]% +\printdeclarationlist% +\index{Titel}\index{Layout!Titel}% +\index{Teileseiten}\index{Layout!Teileseiten}% +\index{Kapitelseiten}\index{Layout!Kapitelseiten}% +\index{Satzspiegel!doppelseitig}\index{Vakatseiten}% +% +Sollten beim farbigen Layout die Optionen \Option{twoside} sowie auch +\Option{open}[right] gesetzt sein, so werden beim Aktivieren dieser Option die +Rückseiten von Teilen~-- und je nach Einstellung von \Option{chapterpage} +gegebenenfalls auch von Kapiteln~-- farbig gesetzt.% +\footnote{% + Dies führt bei der Ausgabe zu farbigen Blättern (Vorder- und Rückseite) der + entsprechenden Elemente des Layouts. +} +Die Option wirkt sich ebenfalls auf die Rückseite des Titels aus.% +\footnote{% + \see*{\Macro{uppertitleback} und \Macro{lowertitleback}} der + \KOMAScript"=Dokumentation (\scrguide*) +} +Der Stil dieser zusätzlich eingefügten Rückseiten ist abhängig von der Option +\Option{cleardoublespecialpage}. +% +\begin{values} +\itemfalse + Es werden weiße Rückseiten bei Titel, Teilen und gegebenenfalls Kapiteln + erzeugt. +\itemtrue* + Die rückwärtigen Seiten der genannten Elemente des Layouts sind farbig. +\end{values} +\end{Declaration} + + + + \subsection{Der Satzspiegel} \begin{Declaration}[v2.03]{\Option{cdgeometry}[\PSet]}[true]% \printdeclarationlist% @@ -1817,7 +1931,7 @@ Des Weiteren besteht die Möglichkeit, auf das Standardverhalten von \KOMAScript{} zurückzufallen und die Satzspiegelberechnung durch das Paket \Package{typearea} vornehmen zu lassen. Hier hat insbesondere die Klassenoption \Option{DIV}[\PSet] maßgeblichen Einfluss auf den Satzspiegel. Mehr dazu ist in -der Dokumentation von \KOMAScript zu finden. +der Dokumentation von \KOMAScript{} zu finden. % \begin{values} \itemfalse @@ -1841,7 +1955,7 @@ der Dokumentation von \KOMAScript zu finden. beachten, dass dabei das Logo der \TnUD sehr nah am inneren Seitenrand des Dokumentes gesetzt wird, folglich insbesondere auf rechten respektive ungeraden Seiten sehr weit an den Blattrand rückt. - } + }% \end{values} % Für die Festlegung der Seitenränder wird das Paket \Package{geometry} genutzt. @@ -1850,21 +1964,27 @@ durch \Package{typearea}. Die damit berechneten Werte werden anschließend an \Package{geometry} weitergereicht und durch dieses umgesetzt. \end{Declaration} -\begin{Declaration}[v2.03]{\Option{extrabottommargin}[\PName{Höhe}]}% +\begin{Declaration}[v2.03]{\Option{extrabottommargin}[\PName{Höhe}]}[0pt]% \printdeclarationlist% \index{Fußzeile|?} % Mit dieser Option kann die Größe des unteren Seitenrandes angepasst werden, wenn der Satzspiegel des \CDs (\Option{cdgeometry}[true/symmetric/balanced]) -verwendet wird. Insbesondere für den Fall, dass Drittlogos im Fußbereich der -Seiten im Stil \PageStyle{tudheadings} verwendet werden, kann dieser unter -Umständen etwas zu klein sein. Dabei wird der Fußbereich durch positive Werte -vergrößert, negative Werte verkleinern diesen entsprechend. Es spielt dabei +verwendet wird. Insbesondere für den Fall, dass im Fußbereich der Seiten im +Stil \PageStyle{tudheadings} entweder mit \Macro{footlogo} Drittlogos verwendet +werden und diese über das optionale Argument oder via \Length{footlogoheight} +über die Standardhöhe hinaus vergrößert wurden oder mit \Macro{footcontent} ein +übergroßer Inhalt angegeben wurde, kann dieser unter Umständen etwas zu klein +sein. Mit der Option \Option{extrabottommargin} wird der Fußbereich durch +positive Werte vergrößert, negative Werte verkleinern diesen entsprechend. + +Alternativ zu \Option{extrabottommargin} kann auch die Option \Option{cdfoot} +mit einer Längenangabe verwendet werden. Dabei spielt es für beide Optionen keine Rolle, ob eine \hologo{LaTeX}-Länge, ein \hologo{TeX}-Abstand oder eine \hologo{TeX}-Ausdehnung als Länge bei der Wertzuweisung verwendet wird. \end{Declaration} -\subsubsection{Kopf"~ und Fußzeile im Zusammenspiel mit dem Satzspiegel} +\minisec{Kopf"~ und Fußzeile im Zusammenspiel mit dem Satzspiegel} \index{Kopfzeile|?}\index{Layout!Kopfzeile}% \index{Fußzeile|?}\index{Layout!Fußzeile}% Da im \CD nicht festgelegt ist, wie die Gestaltung der Kopf"~ und Fußzeilen in @@ -1881,7 +2001,7 @@ beiden \KOMAScript"=Optionen \Option{headinclude}[\PBoolean] sowie Einstellung zur Satzspiegelgestaltung für die Option \Option{cdgeometry}~-- verwendet werden. -\subsubsection{Bindekorrektur} +\minisec{Bindekorrektur} \index{Bindekorrektur|!}\index{Layout!Bindekorrektur}% % Zu erwähnen im Zusammenhang mit Seitenrändern und Satzspiegel ist die durch @@ -1912,6 +2032,19 @@ Dementsprechend wäre eine Bindekorrektur von \Option{BCOR}[5mm] beziehungsweise \index{Satzspiegel|)}\index{Layout!Satzspiegel|)}% +\subsection{Verwendung von Schriftelementen} +\label{sec:fonts:elements}% +\index{Schriftelemente|!} +Von \TUDScript werden weitere Schriftelemente~-- in Ergänzung zu den bereits +durch \KOMAScript{} bereitgestellten~-- definiert. Dies sind \Font{titlepage}, +\Font{thesis}, \Font{tudheadings} sowie \Font{parttitle}. Sowohl die bereits +durch \KOMAScript{} definierten als auch alle hier genannten Schriftelemente +und später erläuterten sollten im Bedarfsfall durch den Anwender über den +Befehl \Macro{addtokomafont}\Parameter{Schriftelement}\Parameter{Einstellungen} +angepasst werden. Mehr dazu ist im \KOMAScript"=Handbuch \scrguide im +Abschnitt \emph{Textauszeichnungen} zu finden. + + \subsection{Die Farben des \CDs} \index{Farben}% % @@ -1933,11 +2066,12 @@ die \TUDScript-Klassen weitere Befehle und Umgebungen zur Verfügung, um die Anwendung insbesondere für wissenschaftliche Arbeiten zu erleichtern. -\subsection{Zusammenfassung} +\subsection{Zusammenfassung/Kurzfassung} \begin{Declaration}[% v2.02!Wert \PValue{double} mit \PValue{multi} ersetzt,% v2.02!Wert \PValue{tocleveldown} neu,% - v2.02!Wert \PValue{markboth} neu% + v2.02!Wert \PValue{markboth} neu,% + v2.04!Wert \PValue{tocmultiple} neu% ]{\Option{abstract}[\PSet]}% \printdeclarationlist% \index{Zusammenfassung|!(}% @@ -1961,7 +2095,7 @@ Durch die \TUDScript-Klassen wird die \Option{abstract}"=Option erweitert. Neben den Auswahlmöglichkeit, welche bereits \KOMAScript{} für die Klassen \Class{tudscrartcl} und \Class{tudscrreprt} anbietet, kann die Überschrift für die Zusammenfassung außerdem in Gestalt eines \sectionautorefname{}s oder für -die Klassen \Class{tudscrreprt} und \Class{tudscrbook} in der Form eines +\Class{tudscrreprt} und \Class{tudscrbook} in der Form eines \chapterautorefname{}s ausgegeben werden. % \begin{values} @@ -1971,12 +2105,14 @@ die Klassen \Class{tudscrreprt} und \Class{tudscrbook} in der Form eines Wie bei den \KOMAScript"=Klassen wird eine zentrierte Überschrift mit dem Bezeichner \Term{abstractname} vor der eigentlichen Zusammenfassung gesetzt. \item[section/addsec] - Die Überschrift verwendet den Gliederungsbefehl \Macro{section}. + Die Überschrift (\Term{abstractname}) verwendet den Gliederungsbefehl + \Macro{section}. \item[chapter/addchap][% (Säumniswert für \Class{tudscrbook}) nur für \Class{tudscrreprt} und \Class{tudscrbook} verfügbar% ] - Es wird der Befehl \Macro{chapter} für das Setzen der Überschrift genutzt. + Es wird der Befehl \Macro{chapter} für das Setzen der Überschrift + (\Term{abstractname}) genutzt. \item[heading] Es wird die höchstmögliche Gliederungsebene verwendet. Für \Class{tudscrartcl} entspricht dies \Option{abstract}[section], bei @@ -1992,6 +2128,8 @@ Das voreingestellte Verhalten für die Einträge ins Inhaltsverzeichnis kann jederzeit mit folgenden Werten durch den Anwender überschrieben werden. % \begin{values} +\item[notoc/nottotoc] + Die Zusammenfassung wird definitiv nicht ins Inhaltsverzeichnis eingetragen. \item[toc/totoc] Es wird ein nicht nummerierten Eintrag im Inhaltsverzeichnis auf der obersten Gliederungsebene der verwendeten Dokumentklasse für die Zusammenfassung @@ -2000,8 +2138,10 @@ jederzeit mit folgenden Werten durch den Anwender überschrieben werden. \ChangedAt{v2.02} Der Inhaltsverzeichniseintrag wird eine Gliederungsebene unterhalb der obersten erzeugt. -\item[notoc/nottotoc] - Die Zusammenfassung wird definitiv nicht ins Inhaltsverzeichnis eingetragen. +\item[tocmultiple/totocmultiple/tocaggregate/totocaggregate] + \ChangedAt{v2.04} + Es wird ein \emph{einziger} Inhaltsverzeichniseintrag für \emph{alle} + Zusammenfassungen erstellt. \end{values} % \ChangedAt{v2.02} @@ -2030,30 +2170,29 @@ noch eine englischsprachige Zusammenfassung zu verfassen. Mit der Einstellung \Option{abstract}[multiple] lassen sich mehrere Zusammenfassungen auf einer Seite ausgeben~-- sofern genügend Platz vorhanden ist. Außerdem kann die standardmäßige vertikale Zentrierung der \Environment{abstract}"=Umgebung -auf einer Seite unterdrückt werden. +auf einer Seite unterdrückt werden. Diese Einstellungen zur Positionierung der +Zusammenfassungen innerhalb der \Environment{abstract}"=Umgebung werden nur +wirksam, wenn eine Titelseite (\Option{titlepage}[true]) und \emph{keine} +Überschriften in Form von Kapiteln (\Option{abstract}[chapter]) verwendet +werden. % \begin{values} -\item[one/simple/single] +\item[single/one/simple] Jede Zusammenfassung wird auf einer eigenen Seite beziehungsweise im zweispaltigen Satz in einer neuen Spalte ausgegeben. -\item[multi/multiple/all] +\item[multiple/multi/all/aggregate] \ChangedAt{v2.02} Zusammenfassungen, welche mit \Macro{nextabstract} getrennt wurden, werden direkt nacheinander auf der gleichen Seite ausgegeben, wenn ausreichend Platz auf dieser vorhanden sein sollte. Ist die Option \Option{twocolumn} aktiviert, erfolgt die Ausgabe aller Zusammenfassungen ohne Spaltenumbruch. -\item[nofil/nofill/novfil/novfill] - Die Ausgabe erfolgt wie im normalen Textsatz auch. \item[fil/fill/vfil/vfill] Alle Zusammenfassungen auf einer Ausgabeseite werden vertikal zentriert. Für den zweispaltigen Satz mit \Option{twocolumn} steht diese Einstellung nicht zur Verfügung. +\item[nofil/nofill/novfil/novfill] + Die Ausgabe erfolgt wie im normalen Fließtext auch. \end{values} -% -Die zuletzt genannten Einstellungen zur Positionierung der Zusammenfassungen -innerhalb der \Environment{abstract}"=Umgebung sind nur wirksam, wenn eine -Titelseite (\Option{titlepage}[true]) und \emph{keine} Überschriften in Form -von Kapiteln (\Option{abstract}[chapter]) verwendet werden. \end{Declaration} \begin{Declaration}[% @@ -2150,6 +2289,23 @@ ist~-- \emph{immer} in Textgröße und zentriert gesetzt. \end{Declaration} \end{Declaration} \end{Declaration} + +\minisec{Umbenennung der \abstractname} +Mit dem \KOMAScript-Befehl \Macro{renewcaptionname} kann der Bezeichner~-- +sprich der Wortlaut~-- der für die \Environment{abstract}-Umgebung verwendeten +Überschrift verändert werden. Mehr dazu ist in \autoref{sec:localization} zu +finden. +% +\begin{Example} +Die Überschrift der \Environment{abstract}-Umgebung soll für die Sprache +\PValue{ngerman} von \enquote{\abstractname} in \enquote{Kurzfassung} umbenannt +werden. Der Befehl \Macro{renewcaptionname} erwartet die drei obligatorischen +Argumente \Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt}: +\begin{Code}[escapechar=§] +\renewcaptionname{ngerman}{\abstractname}{Kurzfassung} +\end{Code} +\end{Example} +% \index{Zusammenfassung|!)}% @@ -2157,7 +2313,8 @@ ist~-- \emph{immer} in Textgröße und zentriert gesetzt. \begin{Declaration}[% v2.02!Wert \PValue{double} mit \PValue{multi} ersetzt,% v2.02!Wert \PValue{tocleveldown} neu,% - v2.02!Wert \PValue{markboth} neu% + v2.02!Wert \PValue{markboth} neu,% + v2.04!Wert \PValue{tocmultiple} neu% ]{\Option{declaration}[\PSet]}[true]% \printdeclarationlist% \index{Selbstständigkeitserklärung|!}\index{Sperrvermerk|!}% @@ -2208,6 +2365,8 @@ geschieht dies standardmäßig nicht. Das voreingestellte Verhalten kann mit folgenden Werten überschrieben werden. % \begin{values} +\item[notoc/nottotoc] + Die Erklärung wird definitiv nicht ins Inhaltsverzeichnis eingetragen. \item[toc/totoc] Unabhängig von der Wahl der Überschrift erhält jede Erklärung einen nicht nummerierten Eintrag im Inhaltsverzeichnis auf der obersten Gliederungsebene @@ -2216,8 +2375,10 @@ folgenden Werten überschrieben werden. \ChangedAt{v2.02} Der Inhaltsverzeichniseintrag wird eine Gliederungsebene unterhalb der obersten erzeugt. -\item[notoc/nottotoc] - Die Erklärung wird definitiv nicht ins Inhaltsverzeichnis eingetragen. +\item[tocmultiple/totocmultiple/tocaggregate/totocaggregate] + \ChangedAt{v2.04} + Es wird ein \emph{einziger} Inhaltsverzeichniseintrag für \emph{alle} + Erklärungen erstellt. \end{values} % \ChangedAt{v2.02} @@ -2238,9 +2399,8 @@ forcieren, wobei hierfür der Titel der Überschrift genutzt wird. \end{values} % Für \Macro{declaration} respektive \Macro{confirmation} und \Macro{blocking} -sowie die \Environment{declaration}"=Umgebung kann mit dem Parameter -\Key{\Environment{declaration}}{markboth} außerdem der Kolumnentitel mit einem -beliebigen Inhalt gesetzt werden. +sowie die \Environment{declaration}"=Umgebung lässt sich mit dem Parameter +\Key{\Environment{declaration}}{markboth} ein beliebiger Kolumnentitel setzen. Die folgenden Einstellungen zur Positionierung der Erklärungen haben lediglich Auswirkungen, wenn die Überschrift der Erklärung \emph{nicht} im Form eines @@ -2248,10 +2408,10 @@ Kapitels ausgegeben und eine Titelseite (\Option{titlepage}[true]) verwendet wird. % \begin{values} -\item[one/simple/single] +\item[single/one/simple] Jede Erklärung wird auf einer separaten Seite beziehungsweise im zweispaltigen Satz in einer neuen Spalte ausgegeben. -\item[multi/multiple/all] +\item[multiple/multi/all/aggregate] \ChangedAt{v2.02} Erklärungen, welche in der \Environment{declarations}"=Umgebung mit den Befehlen \Macro{confirmation}, \Macro{blocking} und \Macro{declaration} oder @@ -2259,16 +2419,20 @@ wird. nacheinander auf der gleichen Seite ausgegeben, wenn ausreichend Platz auf dieser vorhanden sein sollte. Ist die Option \Option{twocolumn} aktiviert, erfolgt die Ausgabe aller Erklärungen ohne Spaltenumbruch. -\item[nofil/nofill/novfil/novfill] - Die Ausgabe erfolgt wie im normalen Textsatz auch. \item[fil/fill/vfil/vfill] Alle Erklärungen auf einer Ausgabeseite werden vertikal zentriert. Für den zweispaltigen Satz mit \Option{twocolumn} steht diese Einstellung nicht zur Verfügung. +\item[nofil/nofill/novfil/novfill] + Die Ausgabe erfolgt wie im normalen Fließtext auch. \end{values} \end{Declaration} -\begin{Declaration}[v2.02]{\Environment{declarations}[\LParameter]} +\begin{Declaration}[v2.02]{\Environment{declarations}[\OLParameter{Sprache}]} +\begin{Declaration}[v2.04]{% + \Macro{nextdeclaration}% + \OLParameter{Sprache}\Parameter{Überschrift}\Parameter{Erklärung} +} \begin{Declaration}{\Key{\Environment{declarations}}{language}[\PName{Sprache}]} \begin{Declaration}[v2.02]{% \Key{\Environment{declarations}}{markboth}[\PBName{Kolumnentitel}]% @@ -2300,13 +2464,20 @@ Innerhalb dieser Umgebung können Selbstständigkeitserklärung und Sperrvermerk mit dem Befehl \Macro{declaration} direkt nacheinander folgend beziehungsweise mit \Macro{confirmation} und \Macro{blocking} auch separat ausgegeben werden. Dies kann in beliebiger Reihenfolge und auch mehrmals geschehen, um diese -beispielsweise mehrsprachig zu setzen. Die im Folgenden beschriebenen Parameter -können dabei sowohl für die \Environment{declarations}"=Umgebung selbst als -auch für die zuvor genannten Befehle als optionales Argument verwendet werden. -Auch die beiden Umgebungen \Environment{abstract} und \Environment{declaration} -sind sich sehr ähnlich. Deshalb werden die Erläuterungen relativ kurz gehalten. -Ist ein Erklärung für einen Parameter etwas unverständlich, kann diese bei der -Umgebung \Environment{abstract}'full' nachgelesen werden. +beispielsweise mehrsprachig zu setzen. +\ChangedAt{v2.04} Des Weiteren gibt es mit \Macro{nextdeclaration} die +Möglichkeit, eine Erklärung völlig frei zu verfassen. Dieser Befehl kann +\emph{ausschließlich} innerhalb der \Environment{declarations}"=Umgebung +genutzt werden, wobei im ersten Argument die gewünschte Überschrift und im +zweiten der Inhalt respektive Text der Erklärung selbst angegeben werden muss. + +Die im Folgenden beschriebenen Parameter können sowohl für die Umgebung +\Environment{declarations} selbst als auch für die zuvor genannten Befehle als +optionales Argument verwendet werden. Ähnlich wie die gleichnamigen Optionen +sind auch die Umgebungen \Environment{abstract} und \Environment{declaration} +sehr ähnlich zueinander. Deshalb werden die Erläuterungen relativ kurz +gehalten. Ist ein Erklärung für einen Parameter etwas unverständlich, kann +diese bei der Umgebung \Environment{abstract}'full' nachgelesen werden. Wurde das Paket \Package{babel} geladen, kann die Sprache~-- sofern diese als Paketoption oder besser noch als Klassenoption angegeben wurde~-- mit dem @@ -2318,8 +2489,8 @@ sowie die Trennungsmuster innerhalb der Umgebung sprachspezifisch angepasst. \ChangedAt{v2.02} Die Kolumnentitel können mit \Key{\Environment{declarations}}{markboth} beeinflusst werden. Mit \Key{\Environment{abstract}}{markboth}[true] werden -für die Kolumnentitel auf linker und rechter Seite \Term{confirmationname} -respektive \Term{blockingname} verwendet. Außerdem kann der Anwender diese mit +für diese auf linker und rechter Seite \Term{confirmationname} respektive +\Term{blockingname} verwendet. Außerdem kann der Anwender selbige mit \Key{\Environment{declarations}}{markboth}[\PName{Kolumnentitel}] auch direkt festlegen. Sollte \Key{\Environment{declarations}}{markboth} verwendet werden, wird der Seitenstil automatisch auf \PageStyle{headings} gesetzt. Mit dem @@ -2342,6 +2513,7 @@ in der Dokumentation des Befehls \Macro{confirmation} zu finden, der Parameter \end{Declaration} \end{Declaration} \end{Declaration} +\end{Declaration} \begin{Declaration}{\Macro{confirmation}\OLParameter{Unterstützer}} \begin{Declaration}{\Key{\Macro{confirmation}}{supporter}[\PName{Unterstützer}]} @@ -2491,27 +2663,54 @@ alle für die \Environment{declarations}"=Umgebung beschriebenen Parameter. % Diese Makros ändern~-- im Gegensatz zu den Parametern der bereits vorgestellten Befehle \Macro{confirmation} und \Macro{blocking}~-- die entsprechenden -Feldwerte global für das gesamte Dokument. Genutzt werden kann dies -beispielsweise wenn ein Erklärungstyp in unterschiedlichen Sprachen ausgegeben -wird. Dann kann man sich mit diesen Makros die mehrfache Angabe eines -Parameters sparen. +Feldwerte für das gesamte Dokument. Genutzt werden kann dies beispielsweise +wenn ein Erklärungstyp in unterschiedlichen Sprachen ausgegeben wird. Hiermit +kann man sich die mehrfache Angabe eines Parameters sparen. \end{Declaration} \end{Declaration} \end{Declaration} \end{Declaration} +\subsection{Fußnoten in Überschriften} +\begin{Declaration}[% + v2.02!Fußnoten in Überschriften können mit Symbolen gesetzt werden% +]{\Option{footnotes}[\PSet]}[nosymbolheadings]% +\begin{Declaration}[v2.02]{\Counter{symbolheadings}}% +\printdeclarationlist% +\index{Überschriften}\index{Überschriften!Fußnoten}\index{Fußnoten}% +% +Für die Überschriften wird die \KOMAScript-Option \Option{footnotes} erweitert. +Normalerweise kann diese die Werte \PValue{multiple} und \PValue{nomultiple} +annehmen, wobei Letzteres der Standardfall ist. Die \TUDScript-Hauptklassen +erweitern die Option dahingehend, dass auf die Verwendung von Symbolen anstelle +von Zahlen innerhalb der Überschriften umgeschaltet werden kann. Hierfür wird +der Zähler \Counter{symbolheadings} definiert, der mit dem Beginn eines neuen +Kapitels zurückgesetzt wird. +% +\begin{values} +\item[nosymbolheadings/numberheadings] + Die Fußnoten der Überschriften werden fortlaufend mit denen des Fließtextes + gesetzt. +\item[symbolheadings] + Für die Überschriften werden symbolische Fußnoten mit einem eigenen Zähler + verwendet. +\end{values} +\end{Declaration} +\end{Declaration} + + \subsection{Lesezeichen} \begin{Declaration}{\Option{tudbookmarks}[\PBoolean]}[true]% \printdeclarationlist% \index{Lesezeichen}% -\index{Umschlagseite}\index{Titel}\index{Inhaltsverzeichnis}% +\index{Titel}\index{Umschlagseite}\index{Inhaltsverzeichnis}% \index{Aufgabenstellung}\index{Gutachten}\index{Aushang}% % Diese Option wird wirksam, wenn \Package{hyperref} geladen wurde. Es werden für die Umschlag- und Titelseite, das Inhaltsverzeichnis sowie~-- bei der Verwendung des Paketes \Package{tudscrsupervisor}~-- die Aufgabenstellung -jeweils Lesezeichen oder auch Outline"=Einträge im PDF-Dokument erzeugt. +Lesezeichen oder auch Outline"=Einträge im PDF-Dokument erzeugt. % \begin{values} \itemfalse @@ -2539,9 +2738,9 @@ werden, wenn die Option \Option{tudbookmarks} aktiviert ist. % Durch \KOMAScript{} werden Befehle, mit denen sprachabhängige Bezeichner erzeugt oder geändert werden können, zur Verfügung gestellt. Diese werden durch -das \TUDScript-Bundle genutzt, um lokalisierte Begriffe für die Sprachen -Englisch und Deutsch bereitzustellen. Ein Großteil davon betrifft Bezeichnungen -für Felder auf der Titelseite (\autoref{sec:title}). Hierfür wird +\TUDScript genutzt, um lokalisierte Begriffe für die Sprachen Englisch und +Deutsch bereitzustellen. Ein Großteil davon betrifft Bezeichnungen für Felder +auf der Titelseite (\autoref{sec:title}). Hierfür wird \Macro{providecaptionname}\Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt} verwendet, wobei \PName{Sprache} dem geladenen Sprachpaket~-- normalerweise das Paket \Package{babel}~-- bekannt sein muss. @@ -2550,12 +2749,9 @@ Sollte der Anwender die im Folgenden erläuterten oder auch andere Bezeichner, welche von einem beliebigen (Sprach"~)Paket bereitgestellt werden, ändern wollen, ist hierfür der Befehl \Macro{renewcaptionname}\Parameter{Sprache}\Parameter{Makro}\Parameter{Inhalt} -zu verwenden. Dabei stellt \KOMAScript{} sicher, dass die Bezeichner erst -\textbf{nach} \Macro*{begin}\PParameter{document} angepasst werden und somit -nicht durch ein später geladenes Paket abermals geändert werden können. Es -sollte natürlich dabei eine \PName{Sprache} angegeben werden, welche im -Dokument durch \Package{babel} oder ein anderes Sprachpaket verwendet wird, -beispielsweise \PValue{ngerman} oder \PValue{english}. +zu verwenden. Es sollte natürlich dabei eine \PName{Sprache} angegeben werden, +welche im Dokument durch \Package{babel} oder ein anderes Sprachpaket verwendet +wird, beispielsweise \PValue{ngerman} oder \PValue{english}. Die Makros der Bezeichner und deren Verwendung werden folgend kurz beschrieben und tabellarisch aufgeführt. Dabei wurde versucht, alle Befehle der Bezeichner @@ -2584,7 +2780,8 @@ von Betreuer (\Macro{supervisor}), Gutachter (\Macro{referee}) und Fachreferent (\Macro{advisor}). Soll innerhalb eines dieser Felder mehr als eine Person angegeben werden, so sind die Einzelpersonen jeweils mit dem Befehl \Macro{and} voneinander zu trennen. In diesem Fall werden alle nach der erstgenannten -folgenden Personen durch den Bezeichner \PValue{\bsc\dots{}othername} ergänzt. +folgenden Personen durch den Bezeichner \PValue{\textbackslash\dots{}othername} +ergänzt. \ChangedAt{v2.02} Bei der Bezeichnung des Gutachters wird unterschieden, ob einer oder mehrere @@ -2767,7 +2964,7 @@ angezeigt. \begin{Declaration}{\Term{coverpagename}} \begin{Declaration}{\Term{titlepagename}} \printdeclarationlist% -\index{Lesezeichen}\index{Umschlagseite}\index{Titel!Umschlagseite}\index{Titel} +\index{Lesezeichen}\index{Titel}\index{Umschlagseite}% % Diese beiden Bezeichner werden bei aktivierter \Option{tudbookmarks} für das Eintragen von Lesezeichen in ein PDF"=Dokument genutzt. @@ -2800,21 +2997,22 @@ dies jedoch bei einer erneuten Kompilierung unter Umständen eher unerwünscht. \printdeclarationlist% \index{Kompatibilität|!}% % -Mit der Option \Option{tudscrver} wird es möglich, auf das Verhalten einer -älteren Version von \TUDScript umzuschalten, um nach der Kompilierung das -erwartete Ergebnis zu erhalten. Neue Möglichkeiten, die sich nicht auf den -Umbruch oder das Layout auswirken, sind auch für den Fall verfügbar, dass per -Option die Kompatibilität zu einer älteren Version ausgewählt wurde. +Mit dieser Option wird es möglich, auf das (Umbruch-)Verhalten einer älteren +respektive früheren Version von \TUDScript umzuschalten, um nach der +Kompilierung das erwartete Ergebnis zu erhalten. Neue Möglichkeiten, die sich +nicht auf den Umbruch oder das Layout auswirken, sind auch für den Fall +verfügbar, dass per Option die Kompatibilität zu einer älteren Version +ausgewählt wurde. Bei der Angabe einer unbekannten Version als Wert wird eine Warnung ausgegeben und \Option{tudscrver}[first] angenommen. Mit \Option{tudscrver}[last] wird die jeweils aktuell verfügbare Version ausgewählt und folglich auf die zukünftige -Kompatibilität des Dokumentes zu der genutzten Version verzichtet. Dieses -Verhalten entspricht der Voreinstellung. Es ist zu beachten, dass die Nutzung -von \Option{tudscrver} nur als Klassenoption möglich ist. +Kompatibilität des Dokumentes zu der aktuell genutzten Version verzichtet. +Dieses Verhalten entspricht der Voreinstellung. Es ist zu beachten, dass die +Nutzung von \Option{tudscrver} nur als Klassenoption möglich ist. % \begin{values} -\item[\PValue{v2.02}\textOR\PValue{last}] +\item[\PValue{2.02}\textOR\PValue{first}] \ChangedAt{% v2.03!Satzspiegel im \CD geändert{,} das \protect\DDC-Logo im Fußbereich wird ohne vergrößerten Seitenrand verwendet @@ -2824,7 +3022,32 @@ von \Option{tudscrver} nur als Klassenoption möglich ist. untere im gleichen Maße vergrößert. Der verfügbare Textbereich ist folglich identisch. Bei der Aktivierung des \DDC-Logos im Fußbereich der Seite (\see*{\Option{ddcfoot}}) wird im Gegensatz zur Version~v2.02 der gleiche - Satzspiegel genutzt. Mit \Option{tudscrver}[v2.02] kann dieses Verhalten + Satzspiegel genutzt. Mit \Option{tudscrver}[2.02] kann dieses Verhalten deaktiviert werden. +\item[\PValue{2.03}] + \ChangedAt{% + v2.04!Werte bestimmter Längen abhängig von der verwendeten Schriftgröße% + }\index{Schriftgröße}% + Seit der Version~v2.04 werden mehrere Längen in Abhängigkeit der gewählten + Schriftgröße (Option \Option{fontsize}) definiert. Dies betrifft sowohl die + dehnbaren Längen \Length{smallskipamount}, \Length{medskipamount} und + \Length{bigskipamount}, die von den Befehlen \Macro{smallskip}, + \Macro{medskip} sowie \Macro{bigskip} für das Einfügen vertikaler Abstände + genutzt werden, als auch die beiden Längen \Length{abovecaptionskip} und + \Length{belowcaptionskip} für den Abstand zwischen einem Gleitobjekt und + dessen mit \Macro{caption} gesetzten Beschreibung sowie \Length{columnsep} + als Maß für den Abstand der einzelnen Textspalten im zwei- oder mehrspaltigen + Layout. Mit der Wahl \Option{tudscrver}[2.03] lässt sich diese Funktionalität + deaktivieren. +\item[\PValue{2.04}] + Dies ist Kompatibilitätseinstellung für \TUDScript~\vTUDScript{} und wird für + zukünftige Änderungen bereits vorgehalten. Soll ein mit der momentan + aktuellen Version erzeugtes Dokument auch mit einer späteren Version von + \TUDScript nach einem \hologo{LaTeX}-Lauf das gleiche Ausgabeergebnis + liefern, muss dies mit \Option{tudscrver}[2.04] angegeben werden. +\item[\PValue{last}] + Es werden keine Kompatibilitätseinstellungen für das Dokument vorgenommen. + Mit einer späteren Version von \TUDScript kann ein anderes Umbruchverhalten + innerhalb des Dokumentes auftreten. Dies ist die Standardeinstellung. \end{values} -\end{Declaration}
\ No newline at end of file +\end{Declaration} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex index 999bb594760..c88cd1a4f51 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-obsolete.tex @@ -12,12 +12,14 @@ darauf hingewiesen. \subsection{Änderungen für \TUDScript~v2.00} +\vskip-\lastskip +\ChangedAt*{v2.00!Änderungen gegenüber der vorhergehenden Version}% \begin{Declaration}[v2.00]{\Option*{cd}[alternative]} \begin{Declaration}[v2.00]{\Option*{cdtitle}[alternative]} \begin{Declaration}[v2.00]{\Length{titlecolwidth}} \begin{Declaration}[v2.00]{\Term{authortext}} \printdeclarationlist*[\emph{entfällt}]% -\index{Titel!alternativer}% +\index{Titel}% % Die alternative Titelseite ist komplett aus dem \TUDScript-Bundle entfernt worden. Dementsprechend entfallen auch die dazugehörigen Optionen sowie Länge @@ -278,6 +280,7 @@ Die Bezeichner wurden in Anlehnung an die dazugehörigen Befehlsnamen umbenannt. \subsection{Änderungen für \TUDScript~v2.02} \vskip-\lastskip +\ChangedAt*{v2.02!Änderungen gegenüber der vorhergehenden Version}% \Replace[macros]{v2.02}{\Length{pageheadingsvskip}}{% \Length{chapterheadingvskip}% } @@ -370,6 +373,7 @@ Alle genannten Befehle und Bezeichner wurden für den \noticename{} umbenannt. \subsection{Änderungen für \TUDScript~v2.03} \vskip-\lastskip +\ChangedAt*{v2.03!Änderungen gegenüber der vorhergehenden Version}% \Replace[options]{v2.03}{\Option{cdgeometry}}{\Option{geometry}}% \begin{Declaration}[v2.03]{\Option{geometry}[\PBoolean]} \printdeclarationlist*[\see*{\Option*{cdgeometry}'page'}]% @@ -397,20 +401,52 @@ wurden in der Option \Option*{cdhead} zusammengefasst und erweitert. \end{Declaration} \end{Declaration} - - -\section{Das Paket \Package{tudscrcomp} -- Umstieg von anderen Klassen} +\subsection{Änderungen für \TUDScript~v2.04} +\vskip-\lastskip +\ChangedAt*{v2.04!Änderungen gegenüber der vorhergehenden Version}% +\begin{Declaration}[v2.04]{\Option{fontspec}[\PBoolean]}[false]% +\printdeclarationlist*% +% +Anstatt die Option zu aktivieren, kann einfach das Paket \Package{fontspec} in +der Dokumentpräambel geladen werden. Damit lassen sich anschließend weitere +Pakete nutzen, die auf die Verwendung von \Package{fontspec} angewiesen sind. +Sollte die Option \Option{fontspec} dennoch genutzt werden, müssen alle auf das +Paket \Package{fontspec} aufbauende Einstellungen durch den Anwender mit +\Macro*{AfterPackge}\PParameter{fontspec}\PParameter{\dots} verzögert werden. +Mehr zur Verwendung ist in \fullref{sec:fonts:fontspec} nachzulesen. +\begin{values} +\itemfalse* + Die Hausschriften im Stil des \CDs der \TnUD werden im PostScript"=Format + eingebunden. Sowohl Kerning als auch der mathematische Satz funktionieren + problemlos. +\itemtrue* + Es werden die OpenType"=Varianten der Hausschriften verwendet. Dazu wird das + Paket \Package{fontspec} geladen, welches lediglich mit \hologo{LuaLaTeX} + oder \hologo{XeLaTeX} jedoch nicht mit \hologo{pdfLaTeX} als genutzt werden + kann. Sowohl beim mathematischen Satz als auch beim Kerning der Schriften + kann es zu Problemen kommen. Hierfür müssen die OpenType"=Schriften auf dem + Betriebssystem installiert sein. Die Verwendung dieser Einstellung sollte + nur für den Fall erfolgen, dass eine Installation der PostScript"=Schriften + nicht möglich ist. +\end{values} +\end{Declaration} + + +\section{Das Paket \Package*{tudscrcomp} -- Umstieg von anderen Klassen} \begin{Declaration*}{\Package{tudscrcomp}} -\index{Version!v1.0|(}% -\index{Kompatibilität!Version v1.0|(}% \index{Kompatibilität!\Class{tudbook}|(}% +%\index{Kompatibilität!\Class{tudmathposter}|(}% +\ToDo[nxt]{Unterstützung für \Class{tudmathposter}}[v2.05] +\ToDo[nxt]{Unterstützung für alle Klassen von Klaus Bergmann prüfen}[v2.05] % \noindent\Attention{% Sollten Sie eine der Klassen \Class{tudbook}, \Class{tudbeamer}, - \Class{tudletter}, \Class{tudfax}, \Class{tudhaus} sowie \Class{tudform} oder - \TUDScript in der Version~v1.0 nie genutzt haben, können Sie dieses - \autorefname ohne Weiteres überspringen. Sämtliche hier vorgestellten - Optionen und Befehle sind in der aktuellen Version von \TUDScript obsolet. + \Class{tudletter}, \Class{tudfax}, \Class{tudhaus} und \Class{tudform} %sowie +% \Class{tudmathposter} + oder \TUDScript in der Version~v1.0 nie genutzt haben, + können Sie dieses \autorefname ohne Weiteres überspringen. Sämtliche hier + vorgestellten Optionen und Befehle sind in der aktuellen Version von + \TUDScript obsolet. } \bigskip\noindent @@ -433,29 +469,10 @@ wurden und das entsprechende Verhalten nachahmen. Damit soll die Kompatibilität bei der Änderung der Dokumentklasse sichergestellt werden. Die Intention ist, alte Dokumente möglichst schnell und einfach auf die \TUDScript-Klassen portieren zu können. Des Weiteren ist beschrieben, wie sich die Funktionalität -ohne die Verwendung des Paketes mit den Mitteln von \TUDScript umsetzen lassen. -Für den Satz neuer Dokumente wird empfohlen, auf den Einsatz dieses Paketes -komplett zu verzichten und stattdessen die neuen Befehle zu nutzen. - -\begin{Declaration}{\Option{serifmath}}{% - identisch zu \Option*{cdmath}[false]% -} -\printdeclarationlist*% -% -Die Funktionalität wird durch die Option \Option*{cdmath} bereitgestellt. -\end{Declaration} - -\begin{Declaration}{\Option{colortitle}}{% - identisch zu \Option*{cdtitle}[color]% -} -\begin{Declaration}{\Option{nocolortitle}}{% - identisch zu \Option*{cdtitle}[true]% -} -\printdeclarationlist*% -% -Die Funktionalität wird durch die Option \Option*{cdtitle} bereitgestellt. -\end{Declaration} -\end{Declaration} +ohne die Verwendung des Paketes \Package{tudscrcomp} mit den Mitteln von +\TUDScript umsetzen lassen. Für den Satz neuer Dokumente wird empfohlen, auf +den Einsatz dieses Paketes komplett zu verzichten und stattdessen die neuen +Befehle zu nutzen. \begin{Declaration}{\Macro{einrichtung}\Parameter{Fakultät}}{% identisch zu \Macro*{faculty} @@ -477,6 +494,39 @@ Dies sind die deutschsprachigen Befehle für den Kopf im \CD. \end{Declaration} \end{Declaration} +\begin{Declaration}{\Option{serifmath}}{% + identisch zu \Option*{cdmath}[false]% +} +\printdeclarationlist*% +% +Die Funktionalität wird durch die Option \Option*{cdmath} bereitgestellt. +\end{Declaration} + +\begin{Declaration}{\Macro{tudfont}\Parameter{Scriftart}}{% + identisch zu \Macro*{cdfont}% +} +\printdeclarationlist*% +% +Die direkte Auswahl der Schriftart sollte mit \Macro*{cdfont} erfolgen. +Zusätzlich gibt es den Befehl \Macro*{textcdfont}, mit dem die Auszeichnung +eines bestimmten Textes in einer anderen Schriftart erfolgen kann, ohne die +Dokumentschrift umzuschalten. +\end{Declaration} +%\index{Kompatibilität!\Class{tudmathposter}|)}% + +\subsection{Optionen und Befehle aus \Class{tudbook} \& Co.} +\begin{Declaration}{\Option{colortitle}}{% + identisch zu \Option*{cdtitle}[color]% +} +\begin{Declaration}{\Option{nocolortitle}}{% + identisch zu \Option*{cdtitle}[true]% +} +\printdeclarationlist*% +% +Die Funktionalität wird durch die Option \Option*{cdtitle} bereitgestellt. +\end{Declaration} +\end{Declaration} + \begin{Declaration}{\Macro{moreauthor}\Parameter{Autorenzusatz}}{% identisch zu \Macro*{authormore}% } @@ -567,7 +617,13 @@ Stelle auf wesentlich bessere Lösungen wie beispielsweise das Paket Paket \Package{nomencl} verwiesen. \end{Declaration} \end{Declaration} -\index{Version!v1.0|)} -\index{Kompatibilität!Version v1.0|)} \index{Kompatibilität!\Class{tudbook}|)} +% +% +%\subsection{Optionen und Befehle aus \Class{tudmathposter}} +%\index{Kompatibilität!\Class{tudmathposter}|(}% +%\ToDo[imp]{interne Schalter beim Laden von tudbook bzw. tudmathposter} +%\ToDo[imp]{Optionen und Befehle für tudmathposter} +%\ToDo[doc]{Dokumentation tudmathposter} +%\index{Kompatibilität!\Class{tudmathposter}|)}% \end{Declaration*}
\ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex index 2c144219147..a5e0adf9505 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-packages.tex @@ -12,59 +12,66 @@ Vorhandensein dieser wird durch die jeweiligen Schriftinstallationsskripte oder mehrerer Pakete mit einer entsprechenden Warnung abgebrochen. % \begin{packages} -\item[fontinst] +\item[fontinst][fontware] Dieses Paket wird für die Installation der Schriften \Univers sowie \DIN - benötigt. -\item[cmbright] + benötigt. Weiterhin ist auch \Package{fontware} für die Schriftkonvertierung + notwendig. +\item[cmbright]'hfbright,cm-super' Alle mathematischen Glyphen und Symbole, die nicht in den \Univers-Schriften - enthalten sind, werden diesem Paket entnommen. + enthalten sind, werden diesem Paket entnommen. Außerdem werden für die + \PValue{T1}"~Schriftkodierung die beiden Pakete \Package{cm-super} und + \Package{hfbright} benötigt. Aus dem Paket \Package{lmodern} werden + zusätzlich die \texttt{Schreibmaschinenschriften} verwendet. \item[iwona] - Sowohl für die \Univers-Schriftfamilie als auch für \DIN werden fehlenden - Glyphen und Symbole hieraus entnommen. + Sowohl für \Univers als auch für \DIN werden fehlenden Glyphen entnommen. \end{packages} -% -Zusätzlich werden die \texttt{Schreibmaschinenschriften} aus dem Paket -\Package{lmodern} verwendet. + \subsection{Notwendige Pakete für die Verwendung der Hauptklassen} -In diesem \autorefname werden alle Pakete genannt, die von den neuen Klassen -zwingend benötigt und geladen werden, um den Anwender das mehrmalige Laden -dieser Pakete oder mögliche Konflikte mit anderen Paketen zu ersparen. +Diese Pakete werden von den neuen Klassen zwingend benötigt und automatisch +geladen. % \begin{packages} -\item[scrbase](koma-script) - Dieses Paket gehört zum \KOMAScript-Bundle und erlaubt das Definieren von - Klassenoptionen im Stil von \KOMAScript, welche auch noch nach dem Laden der - Klasse mit den Befehlen \Macro{TUDoption} und \Macro{TUDoptions} geändert - werden können. Von diesem wird das Paket \Package{keyval} geladen, welches - das Definieren von Klassen"~ und Paketoptionen sowie Parametern nach dem - Schlüssel"=Wert"=Prinzip ermöglicht. +\item[koma-script][scrlayer-scrpage,scrbase] + \ChangedAt{% + v2.02!\Package{scrlayer-scrpage}: Für Verwendung von \TUDScript notwendig% + }% + Das \KOMAScript-Bundle ist die zentrale Grundlage für \TUDScript. Neben den + Klassen \Class{scrbook}, \Class{scrreprt} und \Class{scrartcl} wird das Paket + \Package{scrbase} benötigt. Dieses erlaubt das Definieren von Klassenoptionen + im Stil von \KOMAScript, welche auch noch nach dem Laden der Klasse mit den + Befehlen \Macro{TUDoption} und \Macro{TUDoptions} geändert werden können. Für + die Bereitstellung der \PageStyle{tudheadings}-Seitenstile ist das Paket + \Package{scrlayer-scrpage} notwendig. Wenn es nicht durch den Anwender~-- mit + beliebigen Optionen~-- geladen wird, erfolgt dies am Ende der Präambel + automatisch durch \TUDScript. \item[kvsetkeys] Hiermit wird das von \Package{scrbase} geladene Paket \Package{keyval} - verbessert. Unter anderem kann das Verhalten für einen übergebenen, - unbekannten Schlüssel festgelegt werden. -\item[scrlayer-scrpage](koma-script) - \ChangedAt{v2.02!\Package{scrlayer-scrpage}: Für Verwendung notwendig} - Dieses \KOMAScript-Paket wird für die \PageStyle{tudheadings}-Seitenstile - benötigt. + verbessert, welches das Definieren von Klassen"~ und Paketoptionen sowie + Parametern nach dem Schlüssel"=Wert"=Prinzip ermöglicht. Das Verhalten für + unbekannte Schlüssel kann mit \Package{kvsetkeys} festgelegt werden. \item[etoolbox] Es werden viele Funktionen zum Testen und zur Ablaufkontrolle bereitgestellt und das einfache Manipulieren vorhandener Makros ermöglicht. \item[geometry]\index{Satzspiegel} - Das Paket ist essentiell für die \TUDScript-Klassen. Es wird zum Festlegen - der Seitenränder respektive des Satzspiegels verwendet. + Das Paket wird zum Festlegen der Seitenränder respektive des Satzspiegels + verwendet. Ein Weiterreichen zusätzlicher Optionen an das Paket wird + dringlich nicht empfohlen. \item[textcase]\index{Schriftauszeichnung} Mit \Macro{MakeTextUppercase} wird die Großschreibung der Überschriften in \DIN erzwungen. Im \emph{Ausnahmefall} kann dies mit \Macro{NoCaseChange} unterbunden werden. \item[graphicx]\index{Grafiken} Dies ist das De-facto-Standard-Paket zum Einbinden von Grafiken. Zum Setzen - des Logos der \TnUD im Kopf wird \Macro{includegraphics} genutzt. + des Logos der \TnUD im Kopf wird \Macro{includegraphics} genutzt. Es kann + auch durch den Anwender in der Präambel geladen werden. \item[xcolor]\index{Farben} Damit werden die Farben des \CDs zur Verwendung im Dokument definiert. - Genaueres ist bei der Beschreibung von \Package{tudscrcolor}'auto' zu finden. -\item[eviron]\index{Befehle!Deklaration} + Genaueres ist bei der Beschreibung von \Package{tudscrcolor}'auto' zu finden. + Ein Laden beider Pakete in der Präambel durch den Nutzer ist problemlos + möglich. +\item[environ]\index{Befehle!Deklaration} Es wird eine verbesserte Deklaration von Umgebungen ermöglicht, bei der auch beim Abschluss der Umgebung auf die übergebenen Parameter zugegriffen werden kann. Dies wird die Neugestaltung der \Environment{abstract}"=Umgebung @@ -76,8 +83,8 @@ dieser Pakete oder mögliche Konflikte mit anderen Paketen zu ersparen. % Möchten Sie eines der hier aufgezählten Pakete selber nutzen, es jedoch mit bestimmten Optionen laden, so sollten diese bereits \emph{vor} der Definition -der Dokumentklasse an das Paket weitergereicht werden. Ein manuelles Laden -dieser Pakete ist nicht notwendig. +der Dokumentklasse an das Paket weitergereicht werden, falls bei der +Beschreibung nichts anderweitiges angegeben worden ist. % \begin{Example} Das Weiterreichen von Optionen an Pakete muss folgendermaßen erfolgen: @@ -128,8 +135,6 @@ Bugfix bereitgestellt. \item[ragged2e]\index{Worttrennung} Das Paket verbessert den Flattersatz, indem für diesen die Worttrennung aktiviert wird. -\item[pdfpages] - Bugfix für die Einbindung von PDF"~Dateien ohne angegebene Seitenfarbe. \end{packages} @@ -188,7 +193,7 @@ Worttrennung das Paket \Package{hyphsubst} unbedingt zu verwenden. \Package{ngerman} anstelle von \Package{babel} wird abgeraten. Für \hologo{LuaLaTeX} und \hologo{XeLaTeX} kann das Paket \Package{polyglossia} genutzt werden. -\item[microtype]\index{Typographie} +\item[microtype]\index{Typografie} Dieses Paket kümmert sich um den optischen Randausgleich% \footnote{englisch: protrusion, margin kerning} und das Nivellieren der Wortzwischenräume% @@ -217,8 +222,8 @@ werden sondern nur, falls dies auch tatsächlich notwendig ist. Zur besseren sich keinerlei Wertung bezüglich ihrer Nützlichkeit oder meiner persönlichen Wertschätzung ableiten. -\subsubsection{Typographie und Layout} -\index{Typographie} +\subsubsection{Typografie und Layout} +\index{Typografie} % \begin{packages} \item[setspace]\index{Zeilenabstand} @@ -229,7 +234,7 @@ Wertschätzung ableiten. \itempackages schließlich auch noch zu groß gewählt. \end{enumerate} % - Die Forderung nach Erhöhung des Zeilenabstandes~-- in der Typographie als + Die Forderung nach Erhöhung des Zeilenabstandes~-- in der Typografie als Durchschuss bezeichnet~-- kommt noch aus den Zeiten der Textverarbeitung mit der Schreibmaschine. Ein einzeiliger Zeilenabstand bedeutete hier, dass die Unterlängen der oberen Zeile genau auf der Höhe der Oberlängen der folgenden @@ -240,15 +245,15 @@ Wertschätzung ableiten. verbundene schlechte Lesbarkeit etwas zu verbessern. Ist die Erhöhung des Durchschusses wirklich notwendig, sollte das Paket - \Package{setspace} verwendet werden. Dieses stellt den Befehl + \Package{setspace} genutzt werden. Dieses stellt den Befehl \Macro{setstretch}\Parameter{Faktor} zur Verfügung, mit dem der Durchschuss - beziehungsweise Zeilenabstand angepasst werden kann. Der Wert des Faktors - ist standardmäßig auf~1 gestellt und sollte maximal bis~1.25 vergrößert - werden. Der Befehl \Macro*{onehalfspacing} aus diesem Paket setzt diesen Wert - auf eben genau~1.25. Allerdings ist hier anzumerken, dass die Vergrößerung - des Zeilenabstandes~-- so wie ich es mir angelesen habe~-- aus der Sicht - eines Typographen keine Spielerei ist sondern vielmehr allein der Lesbarkeit - des Textes dient und möglichst gering ausfallen sollte. + respektive Zeilenabstand angepasst werden kann. Der Wert des Faktors ist + standardmäßig auf~1 gestellt und sollte maximal bis~1.25 vergrößert werden. + Der Befehl \Macro*{onehalfspacing} aus diesem Paket setzt diesen Wert auf + eben genau~1.25. Allerdings ist hier anzumerken, dass die Vergrößerung des + Zeilenabstandes~-- so wie ich es mir angelesen habe~-- aus der Sicht eines + Typographen keine Spielerei ist sondern vielmehr allein der Lesbarkeit des + Textes dient und möglichst gering ausfallen sollte. Ziel ist es, beim Lesen nach dem Beenden der aktuellen Zeile das Auffinden der neuen Zeile zu vereinfachen. Bei Serifen ist dies durch die Betonung der @@ -286,7 +291,7 @@ Wertschätzung ableiten. Die Funktionalität von \Package{xspace} wird um die Beachtung von Interpunktionen erweitert. \itempackages[\href{http://www.ctan.org/pkg/delig}{\Application{DeLig}}] - \index{Typographie}\index{Ligaturen} + \index{Typografie}\index{Ligaturen} Hierbei handelt es sich um ein Java-Script, welches anhand eines Wörterbuches falsche Ligaturen innerhalb eines Dokumentes automatisiert entfernt. Wird \Univers verwendet ist dies jedoch nicht notwendig, da diese keinerlei @@ -345,7 +350,7 @@ Dokumentprozessor genutzt wird. \Macro*{usepackage}\POParameter{libertine}\PParameter{newtxmath} in der Präambel eingebunden werden. Das Paket \Package{libgreek} enthält griechische Buchstaben für Linux~Libertine. -\item[mweights]\index{Schrift!Stärke} +\item[mweights]\index{Schriftstärke} In \hologo{LaTeXe} existieren die drei Schriftfamilien für Serifenschriften (\Macro{rmfamily}), serifenlose Schriften (\Macro{sffamily}) sowie die Schreibmaschinenschriften (\Macro{ttfamily}). Deren Schriftstärke wird für @@ -355,26 +360,24 @@ Dokumentprozessor genutzt wird. \Package{mweights} erlaubt die individuelle Definition der Schriftstärke für jede der drei Schriftfamilien. \item[fontspec] - \ChangedAt{v2.02!\Package{fontspec}: % - Beschreibung hinzugefügt{,} mit \Option{fontspec} nutzbar% - }% + \ChangedAt{v2.02!\Package{fontspec}: Beschreibung hinzugefügt}% Wird als Dokumentprozessor nicht \hologo{pdfLaTeX} sondern \hologo{XeLaTeX} oder \hologo{LuaLaTeX} verwendet, können mit diesem Paket Systemschriften im OpenType-Format eingebunden werden, womit sich die Auswahl der verwendbaren Schriften in einem \hologo{LaTeX}"=Dokument stark erweitert. Das Paket wird - mit der Option \Option{fontspec} durch \TUDScript unterstützt. -\item[relsize]\index{Schrift!Größe} - Mithilfe dieses Paketes kann die Größe einer Textauszeichnung relativ zur - aktuell gewählten Schriftgröße gesetzt werden. + durch \TUDScript unterstützt. +\item[relsize]\index{Schriftgröße} + Die Größe einer Textauszeichnung kann relativ zur aktuellen Schriftgröße + gesetzt werden. \item[textcomp]\index{Sonderzeichen} Es werden zusätzliche Symbole und Sonderzeichen wie beispielsweise das Promille- oder Eurozeichen sowie Pfeile für den Fließtext zur Verfügung gestellt. \end{packages} % -Auch für die Mathematikschriften gibt es einige nützliche Pakete. Werden die -Schriften des \CDs genutzt, sei auf die Option \Option{cdmath} verwiesen. -\index{Mathematiksatz!Schrift}\index{Schrift!Mathematiksatz} +Auch für (serifenlose) Mathematikschriften gibt es einige nützliche Pakete. +Werden die Schriften des \CDs genutzt, sei auf die Option \Option{cdmath} +verwiesen.\index{Mathematiksatz!Schrift}\index{Schrift!Mathematiksatz} % \begin{packages} \item[sansmathfonts] @@ -406,7 +409,7 @@ Setzen von Einheiten und Zahlen im Allgemeinen anbieten. \hrfn{http://tex.stackexchange.com/questions/3238}{Mathematiksatz}. \end{packages} % -Für das typographisch korrekte Setzen von Einheiten~-- ein halbes Leerzeichen +Für das typografisch korrekte Setzen von Einheiten~-- ein halbes Leerzeichen zwischen Zahl und \emph{aufrecht} gesetzter Einheit~-- gibt es zwei gut nutzbare Pakete. % @@ -416,7 +419,7 @@ nutzbare Pakete. Einheiten und für die meisten Anforderungen völlig ausreichend. \item[siunitx] Dieses Paket ist in seinem Umfang im Vergleich deutlich erweitert. Neben - Einheiten können zusätzlich auch Zahlen typographisch korrekt gesetzt werden. + Einheiten können zusätzlich auch Zahlen typografisch korrekt gesetzt werden. Die Ausgabe lässt sich in vielerlei Hinsicht an individuelle Bedürfnisse anpassen. Für deutschsprachige Dokumenten sollte die Lokalisierung angegeben werden. Mehr dazu in \autoref{sec:tips:siunitx}. @@ -424,15 +427,15 @@ nutzbare Pakete. % Die korrekte Formatierung von Zahlen ist häufig ein Problem bei der Verwendung von \hologo{LaTeX}. Insbesondere, wenn in einem deutschsprachigen Dokument -Daten im typischen englischsprachigen Format verwendet werden, kommt es zu -Problemen. Dafür wird im \TUDScript-Bundle das Paket \Package{mathswap} -bereitgestellt. Dennoch gibt es zu diesem auch Alternativen. +Daten im englischsprachigen Format verwendet werden, kommt es zu Problemen. +Dafür wird im \TUDScript-Bundle das Paket \Package{mathswap} bereitgestellt. +Dennoch gibt es zu diesem auch Alternativen. % \begin{packages}\index{Trennzeichen} \item[icomma] Wird im Mathematikmodus nach dem Komma ein Leerzeichen gesetzt, wird dies bei der Ausgabe beachtet. Der Verfasser muss sich demzufolge jederzeit - selbst um die typographisch korrekte Ausgabe kümmern. + selbst um die typografisch korrekte Ausgabe kümmern. \item[ziffer] Für deutschsprachige Dokumente wird das Komma als Dezimaltrennzeichen zwischen zwei Ziffern definiert. Folgt dem Komma keine Ziffer, wird @@ -444,7 +447,7 @@ bereitgestellt. Dennoch gibt es zu diesem auch Alternativen. dazu betrachtet werden. \end{packages} % -Weitere Hinweise und Anwendungsfälle zur mathematischen Typographie werden in +Weitere Hinweise und Anwendungsfälle zur mathematischen Typografie werden in \autoref{sec:exmpl:mathtype} sowie \autoref{sec:exmpl:mathswap} gegeben. \subsubsection{Verzeichnisse aller Art} @@ -460,10 +463,10 @@ sei auf das Paket \Package{listings}'full' verwiesen. \begin{packages} \item[biblatex]\index{Literaturverzeichnis} - Das Paket gibt es seit geraumer Zeit und es kann als legitimer Nachfolger zu - \hologo{BibTeX} gesehen werden. Ähnlich dazu bietet \Package{biblatex} - die Möglichkeit, Literaturdatenbanken einzubinden und verschiedene Stile der - Referenzierung und Darstellung des Literaturverzeichnisses auszuwählen. + Das Paket kann als legitimer Nachfolger zu \hologo{BibTeX} gesehen werden. + Ähnlich dazu bietet \Package{biblatex} die Möglichkeit, Literaturdatenbanken + einzubinden und verschiedene Stile der Referenzierung und Darstellung des + Literaturverzeichnisses auszuwählen. Mit \Package{biblatex} ist die Anpassung eines bestimmten Stiles wesentlich besser umsetzbar als mit \hologo{BibTeX}. Wird \Application{biber} für die @@ -597,7 +600,7 @@ deshalb Pakete vorgestellt, die zusätzlich verwendet werden können. } sehr stark ändern, weshalb es momentan mit Vorsicht zu genießen ist. Zumindest sollte sich der Anwender bewusst sein, dass er mit dieser Version gesetzte Dokumente gegebenenfalls später anpassen muss. - } + }% \end{packages} @@ -637,7 +640,7 @@ finden. \emph{alle} Gleitobjekte eines Dokumentes vorgenommen werden. So kann unter anderem die verwendete Schrift (\Macro{floatsetup}\PParameter{font=\dots}) innerhalb der Umgebungen \Environment{float} und \Environment{table} - eingestellt werden. Das typographisch richtige Setzen der Beschriftungen von + eingestellt werden. Das typografisch richtige Setzen der Beschriftungen von Abbildungen als Unterschriften (\Macro{floatsetup}\POParameter{figore}\PParameter{capposition=bottom}) sowie Tabellen als Überschriften @@ -700,9 +703,9 @@ Beispiel gegeben. dem Paket \Package{pst-pdf}. Dafür muss \hologo{pdfLaTeX} per Option mit Schreibrechten ausgeführt werden. Dazu ist der Aufruf von \Path{pdflatex} mit der Option \Path{-{}-shell-escape} beziehungsweise für Nutzer von - \hologo{MiKTeX} mit \Path{-{}-enable-write18} notwendig. Bitte beachten Sie - außerdem die Hinweise in \autoref{sec:tips:auto-pst-pdf}. Eine Alternative - dazu ist das Paket \Package{pdftricks2}. + \Distribution{\hologo{MiKTeX}} mit \Path{-{}-enable-write18} notwendig. + Bitte beachten Sie die Hinweise in \autoref{sec:tips:auto-pst-pdf}. Eine + Alternative dazu ist das Paket \Package{pdftricks2}. \end{packages} \end{packages} % @@ -753,8 +756,8 @@ anderen Ihre persönliche Präambel generisch wachsen lassen und für andere Dokumente wiederverwenden können. \subsubsection{Die kleinen und großen Helfer\dots} -Hier taucht alles auf, was sich nicht eignete, in die vorherigen Kategorien -eingeordnet zu werden. +Hier taucht alles auf, was nicht in die vorherigen Kategorien eingeordnet +werden konnte. % \begin{packages} \item[bookmark]\index{Lesezeichen}\index{Querverweise} @@ -792,6 +795,26 @@ eingeordnet zu werden. Mit \Package{todonotes} können noch offene Aufgaben in unterschiedlicher Formatierung am Blattrand oder im direkt Fließtext ausgegeben werden. Aus allen Anmerkungen lässt sich eine Liste aller offenen Punkte erzeugen. +\item[listings]\index{Quelltextdokumentation}% + Dieses Paket eignet sich hervorragend zur Quelltextdokumentation in + \hologo{LaTeX}. Es bietet die Möglichkeit, externe Quelldateien einzulesen + und darzustellen sowie die Syntax in Abhängigkeit der verwendeten + Programmiersprache hervorzuheben. Zusätzlich lässt sich ein Verzeichnis mit + allen eingebundenen sowie direkt im Dokument angegebenen Quelltextauszügen + erstellen. + \ChangedAt{v2.02!\Package{listings}: Beschreibung ergänzt} + Wird \Package{listings} in Dokumenten mit UTF"~8-Kodierung verwendet, sollte + direkt nach dem Laden des Paketes in der Präambel Folgendes hinzugefügt + werden: + \begin{Code} + \lstset{% + inputencoding=utf8,extendedchars=true, + literate=% + {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 + {~}{{\textasciitilde}}1 {ß}{{\ss}}1 + } + \end{Code}\vspace{-\baselineskip}% \item[xparse]\index{Befehle!Deklaration} Dieses mächtige Paket entstammt dem \hologo{LaTeX3}-Projekt und bietet für die Erstellung eigener Befehle und Umgebungen einen alternativen Ansatz zu @@ -820,27 +843,6 @@ eingeordnet zu werden. unterstützen, kann das Paket \Package{scrbase} genutzt werden. Soll aus einem Grund auf \KOMAScript{} gänzlich verzichtet werden, sind die beiden Pakete \Package{kvoptions} oder \Package{pgfkeys} eine Alternative. -\item[listings]\index{Quelltexte einbinden}\index{Quelltextverzeichnis}% - Dieses Paket eignet sich hervorragend zur Quelltextdokumentation in - \hologo{LaTeX}. Es bietet die Möglichkeit, externe Quelldateien einzulesen - und darzustellen sowie die Syntax in Abhängigkeit der verwendeten - Programmiersprache hervorzuheben. Zusätzlich lässt sich ein Verzeichnis mit - allen eingebundenen sowie direkt im Dokument angegebenen Quelltextauszügen - erstellen. -% - \ChangedAt{v2.02!\Package{listings}: Beschreibung ergänzt} - Wird \Package{listings} in Dokumenten mit UTF"~8-Kodierung verwendet, sollte - direkt nach dem Laden des Paketes in der Präambel Folgendes hinzugefügt - werden: - \begin{Code} - \lstset{% - inputencoding=utf8,extendedchars=true, - literate=% - {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 - {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 - {~}{{\textasciitilde}}1 {ß}{{\ss}}1 - } - \end{Code}\vspace{-\baselineskip}% \item[afterpage] Der Befehl \Macro{afterpage}\Parameter{\dots} kann genutzt werden, um den Inhalt aus dessen Argument direkt nach der Ausgabe der aktuellen Seite @@ -848,6 +850,8 @@ eingeordnet zu werden. \item[pagecolor]\index{Farben} Mit dem Paket kann die Hintergrundfarbe der Seiten im Dokument geändert werden. +\item[pdfpages] + Das Paket ermöglicht die Einbindung von einzelnen oder mehreren PDF"~Dateien. \item[mwe]\index{Minimalbeispiel|!} \ChangedAt{v2.02!\Package{mwe}: Beschreibung hinzugefügt} Mit diesem Paket lassen sich sehr einfach Minimalbeispiele erzeugen, die @@ -872,24 +876,14 @@ eingeordnet zu werden. \end{packages} \subsubsection{Bugfixes} -% \begin{packages} \item[scrhack](koma-script) Das Paket behebt Kompatibilitätsprobleme der \KOMAScript-Klassen mit den Paketen \Package{hyperref}, \Package{float}, \Package{floatrow} und \Package{listings}. Es ist durchaus empfehlenswert, jedoch sollte man unbedingt die Dokumentation beachten. -\item[fixltx2e] - Dieses Paket enthält Bugfixes für \hologo{LaTeXe}. Da diese eventuell zu - Inkompatibilitäten mit früheren Versionen führen könnten, wurden diese nicht - in den \hologo{LaTeXe}-Kernel eingepflegt. Für neu gesetzte Dokumente kann es - ohne Bedenken verwendet werden. \item[mparhack] Zur Behebung falsch gesetzter Randnotizen wird ein Bugfix für \Macro{marginpar} bereitgestellt. Alternativ dazu kann man auch \Package{marginnote} verwenden. -\item[etex] - Das Paket kann genutzt werden, falls die maximale Anzahl der normalerweise - verfügbaren \hologo{LaTeX}-Register für Längen, Zähler etc. überschritten - wurde. \end{packages} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex new file mode 100644 index 00000000000..99f39eceaca --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-poster.tex @@ -0,0 +1,62 @@ +%Poster: +%x cdstyle: neu +%x \authorname: neu +%x \contactname: neu +%x \studentname: neu, \authorname{} umbenannt +%x \webpage: neu +\chapter[Die Klasse tudscrposter]{Die Posterklasse} +\label{sec:poster} +\begin{Declaration*}{\Class{tudscrposter}} +\index{Posterklasse|!} +Ergänzend zu den Hauptklassen, welche für das Setzen von Dokumenten im \CD der +\TnUD angeboten werden, wird die Klasse \Class{tudscrposter} bereitgestellt. +Mit dieser wird das Erstellen von Postern mit \hologo{LaTeX} ermöglicht. Die +Basis hierfür ist \Class{tudscrartcl} und alle durch diese Klasse angebotenen +Befehle und Optionen können mit \Class{tudscrposter} gleichermaßen verwendet +werden. +\end{Declaration*} + +\ToDo[imp]{Klasse \Class*{tudscrposter} implementieren}[v2.05] +\ToDo[doc]{\Class*{tudscrposter} als Ersatz für \Class{tudmathposter}}[v2.05] + +\begin{Declaration}[v2.05]{\Option{cdstyle}[\PSet]}[true] +\printdeclarationlist% +\begin{values} +\itemfalse +\itemtrue*[nocolor/monochrome] +\item[lightcolor/pale] +\item[barcolor] +\item[bicolor/bichrome] +\item[color] +\item[full/fullcolor] +\end{values} +\end{Declaration} + + +% \begin{macro}{\faculty} +% \begin{macro}{\department} +% \begin{macro}{\institute} +% \begin{macro}{\chair} +% \begin{macro}{\professor} +% \begin{macro}{\contactperson} +% \begin{macro}{\office} +% \begin{macro}{\telephone} +% \begin{macro}{\emailaddress} +% \begin{macro}{\webpage} + +\begin{Declaration}[v2.05]{\Macro{webpage}\Parameter{Webseite}} +\printdeclarationlist% +\end{Declaration} + +\begin{Declaration}[v2.05]{\Term{authorname}} +\begin{Declaration}[v2.05]{\Term{contactname}} +\begin{Declaration}{\Term{contactpersonname}} +\printdeclarationlist% +\ToDo[imp]{Konflikt auflösen}[v2.05] +% +\TermTable{authorname,contactname,contactpersonname} +\end{Declaration} +\end{Declaration} +\end{Declaration} + +\ToDo[doc]{Beispiel für \Class*{tudscrposter}}[v2.05] diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex index fc539e6b2d3..5beea23d78b 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr-preface.tex @@ -12,20 +12,18 @@ hinausgehen. Zusätzlich bietet das hier dokumentierten \TUDScript-Bundle weitere, insbesondere das Dokumentlayout betreffende Auswahlmöglichkeiten. Es sei angemerkt, dass die hier beschriebenen Klassen eine Abweichung vom \CD -der \TnUD zulassen, da dieses gerade unter typographischen Gesichtspunkten -durchaus als diskussionswürdig zu erachten ist. Mit den entsprechenden -Einstellungen kann bis auf das Standardlayout der \KOMAScript"=Klassen -zurückgestellt werden. Inwieweit der Nutzer der \TUDScript"=Klassen von diesen -Möglichkeiten Gebrauch macht, bleibt ihm selbst überlassen. Ohne die gezielte -Verwendung der entsprechenden Optionen werden standardmäßig alle Vorgaben des -\CDs umgesetzt. +der \TnUD zulassen, da dieses gerade unter typografischen Gesichtspunkten +durchaus als diskussionswürdig zu erachten ist. Prinzipiell ist es mit den +entsprechenden Einstellungen möglich, auf das standardmäßige Layout der +\KOMAScript"=Klassen zurückzuschalten. Ohne die gezielte Verwendung dieser +Optionen durch den Anwender werden per Voreinstellung alle Vorgaben des \CDs +umgesetzt. -Dies ist das Anwenderhandbuch der Klassen und Pakete aus dem \TUDScript-Bundle. -Es werden Hinweise für eine einfache Installation und ein Überblick über die -zusätzlich zu den \KOMAScript"=Klassen nutzbaren Optionen und Befehle gegeben. -Dies bedeutet, dass Grundkenntnisse in der Verwendung von \hologo{LaTeXe} -vorausgesetzt werden. Sollten diese nicht vorhanden sein, wird dem Nutzer -zumindest das Lesen der Kurzbeschreibung von \hologo{LaTeXe} +In diesem Handbuch werden dem Anwender Hinweise für eine einfache Installation +der benötigten Schriften des \CDs sowie eine Beschreibung der zusätzlich zu den +\KOMAScript"=Klassen nutzbaren Optionen und Befehle gegeben. Dabei werden +Grundkenntnisse in der Verwendung von \hologo{LaTeXe} vorausgesetzt. Sollten +diese nicht vorhanden sein, wird das Lesen der \hologo{LaTeXe}-Kurzbeschreibung \hrfn{http://mirrors.ctan.org/info/lshort/german/l2kurz.pdf}{\File{l2kurz.pdf}} dringend empfohlen. Für den stärker vertieften Einstieg in \hologo{LaTeX} gibt es eine \hrfn{http://www.fadi-semmo.de/latex/workshop/}{Workshop-Reihe} von diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex b/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex index ebb5c105b30..95549db7c2a 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tudscr.tex @@ -11,8 +11,14 @@ } \begin{document} -\faculty{http://tu-dresden.de/cd} -\date{11.06.2015} +\newcommand*\cdurl{% + \begingroup% + \hypersetup{hidelinks}% + \href{http://tu-dresden.de/cd}{http://tu-dresden.de/cd}% + \endgroup% +} +\faculty{\protect\cdurl} +\date{02.07.2015} \author{Falk Hanisch\thanks{\noexpand\Email{\tudscrmail}}} \subject{\TUDScript{} \vTUDScript{} basierend auf \KOMAScript{}} \title{% @@ -60,6 +66,8 @@ }% \part{Das \TUDScript-Bundle}\label{part:main} \include{tudscr-mainclasses} +\ToDo[imp,nxt]{Implementierung und Doku für \Class{tudscrposter}}[v2.05] +%\include{tudscr-poster} \include{tudscr-bundle} @@ -94,18 +102,21 @@ \appendix \include{tudscr-installation} \include{tudscr-obsolete} +\include{tudscr-additional} \include{tudscr-index} \ListOfToDo -\ToDo[imp,nxt]{% - verzögertes Laden der Pakete \Package{fontspec}, \Package{graphicx}, - \Package{tudscrcolor}, \Package{scrlayer-scrpage} und \Package{geometry} - auflösen bzw. ggf. dokumentieren% -}[v2.04] -\ToDo[rls]{dtx-Dateien der vorherigen Version mit WinMerge sichten} +\ToDo[imp,nxt]{\Macro*{DeclareSectionCommand}}[v3.18] +\ToDo[imp,nxt]{Unterstützung für algorithm2e o.ä. (Überschriften?!)}[v3.18] + +\ToDo[rls,nxt]{KOMA-Script-Version anpassen (LoadClass)}[v3.18] +\ToDo[rls,nxt]{TeXstudio: tudscrposter.cwl erstellen}[v2.05] + +\ToDo[rls]{\emph{alle} dtx-Dateien der vorherigen Version mit WinMerge sichten} \ToDo[rls]{Layout und Umbrüche kontrollieren, insbesondere im Index} \ToDo[rls]{Datum in tudscr-version.dtx, Handbuch und README aktualisieren} -\ToDo[rls]{ggf. notwendige KOMA-Script-Version anpassen (LoadClass)} +\ToDo[rls]{TeXstudio: tudscr.cwl erneuern} +\ToDo[rls]{neuer GitHub-Release} \end{document} diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex index 7bc67f9e42a..685cc3cf1dc 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathswap.tex @@ -102,7 +102,7 @@ dies nicht mehr: \end{Trunk*} % -Mit der Verwendung der beiden Befehle \Macro*{commaswap}\PParameter{\bsc,} +Mit der Verwendung der Befehle \Macro*{commaswap}\PParameter{\textbackslash,} sowie \Macro*{dotswap}\PParameter{,} können die Substitutionen für Komma und Punkt im Mathematikmodus geändert: % diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex index 5ff00d2fa72..9221a1f0e40 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/mathtype.tex @@ -52,7 +52,7 @@ in diesem Tutorial verwendeten Mathematikumgebungen \Environment{equation}, \end{Preamble} % Ein guter Mathematiksatz ist in \hologo{LaTeX} durchaus Sisyphusarbeit. Wenn -mikrotypographisch alles richtig gemacht werden soll, gibt es einiges zu +mikrotypografisch alles richtig gemacht werden soll, gibt es einiges zu beachten. Generell gilt, dass Variablen kursiv, Bezeichnungen und Konstanten aufrecht gesetzt werden. Um beschreibende Indizes bei Formelzeichen richtig zu setzen, ist ohne weitere Maßnahmen die exzessive Nutzung der beiden Befehle @@ -152,7 +152,7 @@ Somit vereinfacht sich das zu Beginn vorgestellte Beispiel recht deutlich: \begin{Trunk*} \begin{equation*} \begin{gathered} -\M{EM} = \frac{\M{Rad}}{i_g \cdot i\_A} - \M{VM} \\ +\M{EM} = \frac{\M{Rad}}{i_g \cdot i_A} - \M{VM} \\ \textrm{für } \begin{aligned} 0\leq \M{VM}\leq \M{VM}[max] \\ diff --git a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex index 9d73bee604b..d0f259d7087 100644 --- a/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex +++ b/Master/texmf-dist/source/latex/tudscr/doc/tutorials/treatise.tex @@ -1,11 +1,13 @@ \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[% english,ngerman,% - geometry=no,DIV=12,automark,% + cdgeometry=no,DIV=12,automark,% ]{tudscrartcl} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} \usepackage{lmodern} +\usepackage{etex} +\reserveinserts{28} \usepackage{tudscrman} \lstset{% @@ -276,13 +278,6 @@ aktiviert werden sollten. \usepackage[T1]{fontenc} \end{Preamble} % -Das Paket \Package{fixltx2e} behebt einige Fehler im \hologo{LaTeXe}-Kernel. -In neuen Dokumenten kann es bedenkenlos geladen werden. -% -\begin{Preamble} -\usepackage{fixltx2e} -\end{Preamble} -% Für die \KOMAScript-Klassen wird außerdem das Paket \Package{scrhack} bereitgestellt. Dieses behebt einige Probleme bei der Kompatibilität mit anderen Paketen bezüglich des Erstellens von Verzeichnissen. Deshalb sollte @@ -298,7 +293,7 @@ aufgeführt. -\section{Makrotypographie} +\section{Makrotypografie} \subsection{Satzspiegel} Gleich zu Beginn und bevor das eigentliche Verfassen der Arbeit beginnt, sollte sich der Verfasser Gedanken über das zu nutzenden Layout und den Satzspiegel @@ -307,20 +302,20 @@ Seitenumbrüchen oder der Position von Gleitobjekten zu erleben. Zuallererst gilt zu entscheiden, ob das Dokument einseitig oder beidseitig gesetzt werden soll. Ist Letzteres der Fall, so sollte \Option{twoside} als -Klassenoption angegeben werden. Im nächsten Schritt ist der zu verwendenden +Klassenoption angegeben werden. Im nächsten Schritt ist der zu verwendende Satzspiegel festzulegen. Hierfür kann die Option \Option*{geometry} verwendet werden, welche im \TUDScript-Handbuch beschrieben wird. Normalerweise wird das Dokument im asymmetrischen Layout des \CDs gesetzt. Dieses Verhalten kann mit \Option*{geometry}[false] deaktiviert werden und der -Satzspiegel wird durch das Paket \Package{typearea} nach typographischen +Satzspiegel wird durch das Paket \Package{typearea} nach typografischen Gesichtspunkten konstruiert. Dabei ist die \KOMAScript"=Option \Option{DIV} maßgeblich für die Aufteilung des Satzspiegels verantwortlich. Des Weiteren spielt die \KOMAScript"=Option \Option{BCOR} für die Bindekorrektur eine Rolle. Diese wird in \autoref{sec:bcor} erläutert. \subsection{Änderung des Zeilenabstandes (Durchschuss)} -Auf die Änderung des standardmäßigen Zeilenabstandes sollte aus typographischer +Auf die Änderung des standardmäßigen Zeilenabstandes sollte aus typografischer Sicht bei der Verwendung einer Standardschrift im Normalfall verzichtet werden. Die Gründe hierfür werden im Handbuch von \TUDScript bei der Vorstellung des Paketes \Package*{setspace} erläutert, welches im Zweifelsfall für dieses @@ -654,7 +649,10 @@ dieser Variante das Paket \Package{nomencl} nutzen. Dieses bietet meiner Meinung nach jedoch keine großen Vorteile, stattdessen kann auch einfach eine Tabelle händisch erzeugt werden. Das Paket \Package{acro} ist sehr gut und ausführlich dokumentiert. Deshalb wird hier auf eine exemplarische Erläuterung -verzichtet und stattdessen auf dessen Dokumentationen verwiesen. +verzichtet und stattdessen auf dessen Dokumentationen verwiesen. Alternativ +kann auch das Paket \Package{acronym} verwendet werden, wobei die alphabetische +Sortierung der Abkürzungen durch den Anwender erfolgen muss, weshalb ich von +diesem eher abrate. Die andere Möglichkeit ist die Nutzung des Paketes \Package{glossaries}, das eine große Zahl an Einstellmöglichkeiten und Optionen besitzt, allerdings auch @@ -685,32 +683,39 @@ Das Programm \Application{makeindex} wird im Normalfall durch die genutzte \hologo{LaTeX}"=Distribution bereitgestellt und für das alphabetische Sortieren der erstellten Listen verwendet. Mit der Paketoption \Option{automake} erfolgt der automatische Aufruf von \Application{makeindex} mit den passenden -Einstellungen für alle Verzeichnisse. Alternativ dazu kann die Option -\Option{xindy} aktiviert werden, welche \Application{xindy} anstelle von -\Application{makeindex} für das Sortieren verwendet. Dieses Programm bietet -unter anderem eine Unterstützung von Unicode sowie die Möglichkeit, nach -sprachabhängigen Regeln zu sortieren. Allein für die deutsche Sprache gibt es -beispielsweise zwei verschiedene Varianten~-- nach DIN und nach Duden~-- zum -alphabetischen Sortieren. Ich persönlich würde~-- aufgrund der genannten -Vorteile~-- der Verwendung von \Application{xindy} immer den Vorzug geben. +Einstellungen für alle Verzeichnisse. +Alternativ dazu kann die Option \Option{xindy} aktiviert werden, welche +\Application{xindy} anstelle von \Application{makeindex} für das Sortieren +verwendet. Dieses Programm bietet unter anderem eine Unterstützung von Unicode +sowie die Möglichkeit, nach sprachabhängigen Regeln zu sortieren. Allein für +die deutsche Sprache gibt es beispielsweise zwei verschiedene Varianten~-- nach +DIN und nach Duden~-- zum alphabetischen Sortieren. Ich persönlich würde~-- +aufgrund der genannten Vorteile~-- der Verwendung von \Application{xindy} immer +den Vorzug geben. +% +\begin{Preamble} + automake,% +\end{Preamble} +% Leider wird das Programm \Application{xindy} lediglich mit den Distributionen \Distribution{\hologo{TeX}~Live} und \Distribution{Mac\hologo{TeX}} jedoch nicht mit \Distribution{\hologo{MiKTeX}} geliefert. Soll \Application{xindy} mit der letztgenannten Distribution genutzt werden, muss diese Anwendung -manuell installiert werden. +manuell installiert werden. Mit \Option{xindy}[\{language=german-din\}] kann +für \Application{xindy} du zu verwendende Spracheinstellung für die Sortierung +angegeben werden. +% +\begin{Preamble} +% mit Tex Live einfach verwendbar +% xindy, +\end{Preamble} +% Für das Erstellen der Glossare mit \Application{xindy} sollte das Perl"=Skript \Application{makeglossaries} verwendet werden, welches alle notwendigen Optionen an die Anwendung weiterleitet. Treten Probleme bei der Erzeugung der einzelnen Glossare auf, sollte die Dokumentation von \Package{glossaries} weiterhelfen können. - -% -\begin{Preamble} - automake,% -% mit Tex Live einfach verwendbar -% xindy={language=german-din}, -\end{Preamble} % Die Optionen \Option{acronym} und \Option{symbols} erzeugen die Glossare beziehungsweise die Verzeichnisse für Abkürzungen und Symbole. Die Option @@ -775,7 +780,7 @@ verwendet. % \begin{Trunk*} In der Graphentheorie wird häufig die Lösung des Problems des kürzesten -Pfades zwischen zwei Knoten gesucht. Dieses Problem wird häugig auch +Pfades zwischen zwei Knoten gesucht. Dieses Problem wird häufig auch mit \gls{spsp} bezeichnet. Es lässt sich auf die Variationen \gls{sssp} und \gls{apsp} erweitern. Für die Lösung von \gls{spsp}, \gls{sssp} oder \gls{apsp} kommen unterschiedliche Algorithmen zum Einsatz. @@ -906,7 +911,7 @@ der Tabelle den zur Verfügung stehenden Platz bis zum Zeilenende überschreiten würde, werden die \PValue{X}"~Spalten automatisch umbrochen. In umbrochenen Spalten gibt es beim Paket \Package{tabu} jedoch ein kleineres -Problem.In diesen setzt \Package{tabu} zu wenig vertikalen Freiraum am unteren +Problem. In diesen setzt \Package{tabu} zu wenig vertikalen Freiraum am unteren Ende. Um dieses Manko zu beheben, wird am Schluss jeder \PValue{X}"~Spalte mit \PValue{X<\{\Macro{strut}\}} einfach der Befehl \Macro{strut} angehängt, der vertikalen Freiraum ober- und unterhalb der aktuellen Grundlinie einfügt. In @@ -1093,7 +1098,11 @@ Das Paket \Package{tabu} definiert die \Environment{longtabu}"=Umgebung, die wiederum auf \Environment{longtable} basiert und nachfolgend verwendet wird. Damit diese linksbündig gesetzt wird, muss vor dem obligatorischen Argument mit den Spaltendefinitionen noch das optionale Argument \OParameter{l} angegeben -werden. +werden. Die im Stil verwendeten Befehle \Macro{toprule}, \Macro{midrule} sowie +\Macro{cmidrule} und \Macro{bottomrule} für unterschiedliche horizontale Linien +stammen allesamt aus dem Paket \Package{booktabs}, welches für den Satz von +hochwertigen Tabellen eine große Hilfe ist. + % \CodeHook{\let\newglossarystyle\renewglossarystyle} \begin{Preamble*} @@ -1461,7 +1470,7 @@ dies meiner Meinung nach alles andere als konsequent und sinnvoll. \label{sec:floatlayout} % Es wurde bis jetzt das prinzipielle Vorgehen bei der Nutzung von Gleitobjekten -beschrieben. Allerdings gibt es auch noch einige typographische Aspekte, welche +beschrieben. Allerdings gibt es auch noch einige typografische Aspekte, welche zu beachten sind. Zum einen sollte beachtet werden, dass die Beschriftung einer Abbildung immer unterhalb dieser erfolgen sollte, bei Tabellen hingegen eine Überschrift gesetzt wird. Hierfür muss der Anwender ohne die Verwendung eines @@ -1512,7 +1521,7 @@ mithilfe des Paketes \Package{caption} angepasst werden. % Diese stellt den Befehl \Macro{captionsetup} bereit. Mit diesem werden die Beschriftungen in Serifenlosen und das Label zur besseren Unterscheidung im -fetten Schriftschnitt gesetzt. +fetter Schriftstärke gesetzt. % \begin{Preamble*} \captionsetup{font=sf,labelfont=bf,labelsep=space} @@ -1607,8 +1616,8 @@ Klammer des zweiten Argumentes oder das Kommentarzeichen \PValue{\%} folgt. \ttabbox{\tableexample}{% \caption[Eine mit \Macro{ttabbox} gesetzte Tabelle in einer Gleitumgebung]{% Eine in einer Gleitumgebung gesetzte Tabelle in Verbindung mit dem Befehl - \Macro{ttabbox}, welcher vom Paket \texttt{floatrow} für Beschriftungen in - Objektbreite bereitgestellt wird% + \Macro{ttabbox}, der durch das Paket \texttt{floatrow} für Beschriftungen + in Objektbreite zur Verfügung gestellt wird% }\label{tab:tabularbox}% } \end{table} @@ -1621,10 +1630,10 @@ nebeneinanderliegenden Gleitobjekten sowie \enquote{Untergleitobjekten} bereit und ist insbesondere in Verbindung mit den Fähigkeiten von \Package{caption} respektive \Package{subcaption} sehr gut für dieses Unterfangen nutzbar. Dafür werden die Umgebungen \Environment{floatrow} und \Environment{subfloatrow} -angeboten, wobei letztere für ein Beispiel verwendet wird. Als erstes muss der -Typ der zu erzeugenden Labels für Abbildungen und Tabellen definiert werden. -Dies geschieht mit dem Befehl \Macro{DeclareCaptionSubType} aus dem Paket -\Package{subcaption}. +angeboten, wobei die letztere für ein Beispiel verwendet wird. Als erstes muss +der Typ der zu erzeugenden Labels für Abbildungen und Tabellen definiert +werden. Dies geschieht mit dem Befehl \Macro{DeclareCaptionSubType} aus dem +Paket \Package{subcaption}. % \begin{Preamble} \DeclareCaptionSubType[alph]{figure} @@ -1709,10 +1718,10 @@ Für alle im Folgenden vorgestellten Umgebungen zum Setzen von Tabellen gilt, dass die Inhalte zeilenweise angegeben werden, wobei die Einträge für die einzelnen Spalten mit~\PValue{\&} voneinander zu trennen sind. Das Beenden einer Tabellenzeile und der Wechsel zur nächsten erfolgt normalerweise mit -\PValue{\bsc\bsc}. Da jedoch einige \hologo{LaTeX}-Pakete diesen Befehl -innerhalb von Tabellen lokal ändern ist es zur Vermeidung unnötiger Fehler -wesentlich sicherer, das Zeilenende ausschließlich mit \Macro{tabularnewline} -zu setzen. +\PValue{\textbackslash\textbackslash}. Da jedoch einige \hologo{LaTeX}-Pakete +diesen Befehl innerhalb von Tabellen lokal ändern ist es zur Vermeidung +unnötiger Fehler wesentlich sicherer, das Zeilenende ausschließlich mit +\Macro{tabularnewline} zu setzen. Im Folgenden wird in einigen Tabellen bei der Definition der Spalten vor der ersten und nach der letzten das Konstrukt~\PValue{@\{\}} verwendet, was das @@ -1724,7 +1733,7 @@ und im Handbuch genauer erläutert wird. Normalerweise gibt es vier unterschiedliche Spaltentypen. Dabei stehen die drei Spaltentypen~\PValue{l},~\PValue{c}~und~\PValue{r} für linksbündige, zentrierte und rechtsbündige Spalten, welche allerdings keinen Zeilenumbruch erlauben. Der -Inhalt wird quasi wie in einer \Macro {mbox} gesetzt, wodurch die Spalten sehr +Inhalt wird quasi wie in einer \Macro{mbox} gesetzt, wodurch die Spalten sehr breit werden und über den Seitenrand hinausragen können. Der Spaltentyp~\PValue{p}\Parameter{Breite} hingegen legt die Spaltenbreite @@ -1996,13 +2005,12 @@ nicht vorgesehen ist. Mit ein wenig Trickserei ist das dennoch möglich: % \begin{Trunk+} \subsubsection{Eine gleitende tabu-Tabelle} -Eine andere Variante zum Setzen einer Tabelle mit variabler Spaltenbreite -und festgelegter Gesamtbreite ist in \autoref{tab:tabu} zu sehen. Diese -würde in der Umgebung \texttt{tabu} gesetzt. Auch für diese wird zuerst -ein neuer Spaltentyp definiert, welcher die Unzulänglichkeiten der -Umgebung reduziert. Außerdem wird \texttt{\textbackslash ttabbox} aus dem -Paket \texttt{floatrow} verwendet, um die Beschriftung auf die Breite der -Tabelle zu begrenzen. +In \autoref{tab:tabu} ist eine weitere Tabelle mit variabler Breite der +Spalten und festgelegter Gesamtbreite zu sehen, welche in der Umgebung +\texttt{tabu} gesetzt wurde. Auch für diese wird zuerst ein neuer +Spaltentyp definiert, der die Unzulänglichkeiten der Umgebung reduziert. +Mit \texttt{\textbackslash ttabbox} aus dem Paket \texttt{floatrow} wird +die Beschriftung auf die Breite der Tabelle begrenzt. \end{Trunk+} \CodeHook{\renewcommand*{\newcolumntype}[2]{}} @@ -2067,10 +2075,10 @@ explizit darauf hingewiesen wird, dass diese nach \Package{hyperref} zu laden sind, sollten auch danach folgen. Eines dieser wenigen Pakete ist das in diesem Tutorial verwendete \Package{glossaries}. % -\begin{Preamble} +\begin{Hint} \usepackage[colorlinks,linkcolor=blue]{hyperref} -\end{Preamble} +\end{Hint} % Um auf ein bestimmtes Objekt wie beispielsweise eine Tabelle, eine Abbildung oder einen bestimmten Anschnitt im Dokument referenzieren zu können, muss mit @@ -2206,7 +2214,7 @@ Dokumentpräambel könnte folgendermaßen aussehen: % Die Option \Option{ngerman} lädt dabei die Trennmuster für die neue deutsche Rechtschreibung, wobei der Wert \PValue{ngerman-x-latest} die neuesten aller -verfügbaren Trennmuster lädt. Für die alte Orthographie ist stattdessen +verfügbaren Trennmuster lädt. Für die alte Orthografie ist stattdessen \Option{german}[german-x-lastest] zu verwenden. @@ -2234,8 +2242,8 @@ des Paketes zu entnehmen. -\section{Mikrotypographische Feinheiten} -Unter Mikrotypographie oder Detailtypographie versteht man die Gestaltung +\section{Mikrotypografische Feinheiten} +Unter Mikrotypografie oder Detailtypografie versteht man die Gestaltung folgender Feinheiten des Schriftsatzes: \begin{itemize}[noitemsep] \item korrekte Anwendung der Satzzeichen @@ -2270,7 +2278,7 @@ Umsetzung der in den genannten Artikeln erläuterten Empfehlungen helfen. \subsection{Abkürzungen} In \cite{struckmann2007} wird gleich zu Beginn darauf hingewiesen, wie häufig verwendete Abkürzungen sehr einfach im Dokument verwendet werden können und -dabei typographisch richtig gesetzt werden. Beispielsweise gelingt dies für die +dabei typografisch richtig gesetzt werden. Beispielsweise gelingt dies für die Abkürzung \enquote{zum~Beispiel~(z.\,B.)} mit der nachfolgenden Definition: % \begin{Hint} @@ -2329,7 +2337,7 @@ Funktionalitäten ergänzt und Bugfixes bereithält. \subsection{Einheiten} Mit dem Paket \Package{siunitx} lassen sich sowohl physikalische Einheiten als -auch Zahlen typographisch korrekt setzen. Sollen die Funktionalitäten in einem +auch Zahlen typografisch korrekt setzen. Sollen die Funktionalitäten in einem deutschsprachigen Dokument problemlos nutzbar sein, so sind die Hinweise zum \manualhyperref{sec:tips:siunitx}{Setzen von Einheiten mit \Package{siunitx}} im \TUDScript-Handbuch zu beachten. Das Paket \Package{units} ist nicht ganz so @@ -2349,7 +2357,7 @@ stellt das Paket \Package{xfrac} den Befehl \Macro{sfrac} zur Verfügung. \subsection{Ligaturen} Die meisten \hologo{LaTeX}-Schriftfamilien enthalten Ligaturen, die für einen -typographisch sauberen Satz bei zusammengesetzten Wörtern, wie sie gerade im +typografisch sauberen Satz bei zusammengesetzten Wörtern, wie sie gerade im Deutschen relativ häufig vorkommen, aufgetrennt werden müssten. Mit der Anwendung \href{http://www.ctan.org/pkg/delig}{\Application{DeLig}} kann dies automatisiert geschehen. Wird \hologo{LuaLaTeX} als Dokumentprozessor genutzt, @@ -2432,7 +2440,7 @@ automatisch für alle bereitgestellten Datumsfelder verwendet. \subsection{Auslassungspunkte} -Das typographisch richtige Setzen von Auslassungspunkten mit den Befehlen +Das typografisch richtige Setzen von Auslassungspunkten mit den Befehlen \Macro{dots} repsektive \Macro{textellipsis} wird im Handbuch unter \manualhyperref{sec:tips:dots}{Das Setzen von Auslassungspunkten} genauer beschrieben, weshalb hier nur kurz darauf eingegangen wird. Es wird das Paket @@ -2544,10 +2552,10 @@ erstellt. Das Ergebnis ist in \autoref{fig:tikz} zu sehen. \begin{scope}[start chain] \begin{scope}[inner box chain below] \node(NE)[inner box]{Navigations\-ebene}; - \node(NB)[inner label]{gewählte Fahrtroute\\zeitlicher Ablauf}; + \node(NB)[inner label]{gewählte Fahrtroute\\ zeitlicher Ablauf}; \node(BE)[inner box]{{Bahnführungs\-ebene}}; \node(BS)[inner label]{% - gewählte Führungsgrößen:\\Sollspur, Sollgeschwindigkeit% + gewählte Führungsgrößen:\\ Sollspur, Sollgeschwindigkeit% }; \node(SE)[inner box]{Stabilisierungs\-ebene}; \end{scope} @@ -2556,8 +2564,8 @@ erstellt. Das Ergebnis ist in \autoref{fig:tikz} zu sehen. \node(FO)[inner box]{Fahrbahn\-oberfläche}; \end{scope} \begin{scope}[inner box chain above] - \node(FR)[inner box]{Fahrraum\\\smallskip{\scriptsize Straße - und\\\vspace{-1.5ex}Verkehrssituation}}; + \node(FR)[inner box]{Fahrraum\\ \smallskip{\scriptsize Straße + und\\ \vspace{-1.5ex}Verkehrssituation}}; \node(SN)[inner box]{Straßennetz}; \end{scope} \end{scope} @@ -2667,23 +2675,23 @@ Die innerhalb einer Gleitumgebung erzeugte \Package{pstricks}-Grafik ist in \fnodetext(0,24){BE}{Bahnführungs\-ebene} \fnodetext(0,08){SE}{Stabilisierungs\-ebene} \ncline{->}{NE}{BE} - \ncput*{\scriptbox{gewählte Fahrtroute\\zeitlicher Ablauf}} + \ncput*{\scriptbox{gewählte Fahrtroute\\ zeitlicher Ablauf}} \ncline{->}{BE}{SE} \ncput*{% - \scriptbox{gewählte Führungsgrößen:\\Sollspur,~Sollgeschwindigkeit}% + \scriptbox{gewählte Führungsgrößen:\\ Sollspur,~Sollgeschwindigkeit}% } \psframe[dimen=middle,linewidth=1.2pt,linearc=5](-12.5,0)(12.5,54) } \rput(50,10){% \rput(0,17){\textbf{Fahrzeug}} - \fnodetext(0,8){FZ}{Längs- und\\Querdynamik} + \fnodetext(0,8){FZ}{Längs- und\\ Querdynamik} \psframe[dimen=middle,linewidth=1.2pt,linearc=5](-12.5,0)(12.5,22) } \rput(85,10){% \rput(0,49){\textbf{Umwelt}} \fnodetext(0,40){SN}{Straßennetz} \fnodetext(0,24){FR}{% - Fahrraum\\\smallskip\scriptsize{Straße und Verkehrssituation}% + Fahrraum\\ \smallskip\scriptsize{Straße und Verkehrssituation}% } \fnodetext(0,08){FO}{Fahrbahn\-oberfläche} \psframe[dimen=middle,linewidth=1.2pt,linearc=5](-12.5,0)(12.5,54) @@ -2752,7 +2760,7 @@ Paket in der Präambel mitgeteilt werden: Nachdem nun die Grundeinstellungen erfolgt sind, kann ein eigener Stil für eine gewünschte Programmiersprache definiert werden. Im folgenden Beispiel wird dies für ein MATLAB"~Skript demonstriert. Als erstes wird \Macro{lstdefinestyle} ein -eigener \Package{lsitings}"~Stil erstellt: +eigener \Package{listings}"~Stil erstellt: % \begin{Hint*} \lstdefinestyle{matlab}{% @@ -2778,7 +2786,7 @@ Stil lässt sich anschließend folgendermaßen verwenden. Soll innerhalb eines Quelltextauszuges ein Teil als \hologo{LaTeX}"~Code interpretiert werden, lässt sich mit \PValue{escapechar} ein Escape-Zeichen definieren. Mit \Macro{lstnewenvironment} ist es außerdem möglich, eine eigene -\Package{lsitings}-Umgebung zu definieren. Das Einbinden externer Quelldateien +\Package{listings}-Umgebung zu definieren. Das Einbinden externer Quelldateien in das Dokument ist über \Macro{lstinputlisting}\OParameter{Schlüssel-Wert-Liste}\Parameter{Dateiname} möglich, wobei dabei im optionalen Argument ebenfalls der definierte Stil @@ -2852,6 +2860,11 @@ dazugehörigen \Forum gestellt werden. \end{Trunk+} \printbibliography[heading=bibintoc] +\begin{Preamble+} +\usepackage[colorlinks,linkcolor=blue]{hyperref} + +\end{Preamble+} + \addsec{Index} Da das Tutorial etwas umfangreicher ist, wird für alle erläuterten Optionen, Umgebungen und Befehle ein Index erstellt. diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx index 8c43c7fb9bc..2e92f50fb81 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx @@ -1,4 +1,4 @@ -% \CheckSum{291} +% \CheckSum{480} % \iffalse meta-comment % % ============================================================================ @@ -51,9 +51,9 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-base.dtx}[% - 2015/02/12 v2.03 TUD-KOMA-Script\space% + 2015/06/15 v2.04 TUD-KOMA-Script\space% %</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27] +%<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{tudscrbase}[% %<*driver|package> %!TUDVersion @@ -81,7 +81,7 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A +% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A % % \section{Grundlegende Befehle und Pakete} % @@ -141,7 +141,7 @@ % \subsubsection{Test auf booleschen Ausdruck in Form eines Strings} % % \begin{macro}{\ifstrbool} -% \changes{v2.03}{2015/01/09}{neu}%^^A +% \changes{v2.03}{2015/01/09}{neu}^^A % Dieser Befehl dient zum Testen, ob ein gegebener String als boolescher % Ausdruck interpretiert werden kann. Ist der String als \enquote{wahr} % interpretierbar, wird das zweite Argument ausgeführt. Kann der String als @@ -167,7 +167,101 @@ % \end{macrocode} % \end{macro}^^A \ifstrbool % -% \subsubsection{Schlüssel und Parameter für die Wrapper-Klassen} +% \subsubsection{Expansion geschützter Makros} +% +% Im \LaTeX-Kernel wird der Befehl \cs{@expandtwoargs} definiert, welcher zwei +% Argumente in ein angegebenes Makro vollständig expandiert. Dabei erfolgt die +% Expansion der beiden Argumente aufgrund der standardmäßigen Verwendung von +% \cs{edef} allerdings vollständig und ohne die Beachtung von \cs{protect}. +% \begin{macro}{\protected@expandtwoargs} +% \changes{v2.02}{2014/11/13}{neu}^^A +% Der Befehl \cs{protected@expandtwoargs} kann äquivalent genutzt werden, +% lässt dabei aber mit \cs{protect} geschützte Makros unberührt. +% \begin{macrocode} +\providecommand*\protected@expandtwoargs[3]{% + \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% +} +% \end{macrocode} +% \end{macro}^^A \protected@expandtwoargs +% +% \subsubsection{Division für rationale Zahlen} +% +% Mit \LaTeXe kann~-- ohne die Verwendung zusätzlicher Pakete~-- nicht ohne +% Weiteres eine Division durchgeführt werden, die als Ergenis eine rationale +% Zahl liefert. Dem wird hier Abhilfe geleistet. +% \begin{macro}{\tud@divide} +% \changes{v2.04}{2015/04/09}{neu}^^A +% \changes{v2.04}{2015/05/27}{Ausführung in Gruppe}^^A +% Der Befehl erwartet im ersten Argument das Makro, in welches das Ergebnis +% der Division expandiert werden soll, danach folgen Dividend und Divisor. Die +% Berechnung erfolgt in einer Gruppe, damit die benötigten Längenregister nach +% dieser erhalten bleiben. +% \begin{macrocode} +\newcommand*\tud@divide[3]{% + \begingroup% +% \end{macrocode} +% Die Division wird über temporäre Längenregister durchgeführt. Die zu +% teilenden Zahlen werden normiert, wodurch auch Längen mit unterschiedlichen +% Einheiten geteilt werden können. +% \begin{macrocode} + \@defaultunits\@tempdima #2pt\relax\@nnil% + \@defaultunits\@tempdimb #3pt\relax\@nnil% +% \end{macrocode} +% Danach wird mit der größeren der beiden Zahlen der größtmögliche, durch +% \val{2} teilbare Faktor zur Berechnung ermittelt. +% \begin{macrocode} + \ifdim\@tempdima>\@tempdimb\relax% + \@whiledim\@tempdimb>1pt\relax\do{% + \setlength\@tempdima{.1\@tempdima}% + \setlength\@tempdimb{.1\@tempdimb}% + }% + \setlength\@tempdimc{\@tempdima}% + \else% + \@whiledim\@tempdima>1pt\relax\do{% + \setlength\@tempdima{.1\@tempdima}% + \setlength\@tempdimb{.1\@tempdimb}% + }% + \setlength\@tempdimc{\@tempdimb}% + \fi% + \@tempcnta=1\relax% + \@whiledim\dimexpr\@tempcnta\@tempdimc\relax<.01\maxdimen\do{% + \multiply\@tempcnta by 10\relax% + }% +% \end{macrocode} +% Mit dem im temporären Zählerregister \cs{@tempcnta} gespeicherten Faktor +% wird der Dividend erweitert und der berechnete Quotient wieder gekürzt. +% \begin{macrocode} + \setlength{\@tempdimc}{% + \dimexpr(\@tempcnta\@tempdima / \@tempdimb * \p@)\relax% + }% + \setlength{\@tempdimc}{\dimexpr \@tempdimc/\@tempcnta\relax}% +% \end{macrocode} +% Das Ergebnis wird in das angegebene Makro expandiert. +% \begin{macrocode} + \edef\@tempa{\endgroup\def\noexpand#1{\strip@pt\@tempdimc}}% + \@tempa% +} +% \end{macrocode} +% \end{macro}^^A \tud@divide +% +% \subsubsection{Erzwungene Kleinschreibung von Strings} +% +% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in +% bestimmten Feldern mit Sicherheit erkennen zu können, werden diese zwingend +% in Kleinbuchstaben geschieben. +% \begin{macro}{\tud@lowerstring} +% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} benutzt. +% \begin{macrocode} +\newcommand*\tud@lowerstring[2]{% + \protected@edef#1{#2}% + \lowercase\expandafter{% + \expandafter\def\expandafter #1\expandafter{#1}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@lowerstring +% +% \subsubsection{Schlüssel und Parameter für \TUDScript} % % \begin{macro}{\TUDProcessOptions} % \begin{macro}{\TUDExecuteOptions} @@ -181,11 +275,11 @@ % \begin{macro}{\TUD@set@ifkey} % \begin{macro}{\TUD@numkey} % \begin{macro}{\TUD@numkey@bool} -% \changes{v2.03}{2015/01/09}{neu}%^^A +% \changes{v2.03}{2015/01/09}{neu}^^A % \begin{macro}{\TUD@set@numkey} -% \changes{v2.02}{2014/11/05}{neu}%^^A +% \changes{v2.02}{2014/11/05}{neu}^^A % \begin{macro}{\TUD@lengthkey} -% \changes{v2.03}{2015/01/09}{neu}%^^A +% \changes{v2.03}{2015/01/09}{neu}^^A % \begin{macro}{\TUD@set@lengthkey} % \begin{macro}{\TUD@unknown@keyval} % In Anlehnung an \KOMAScript{} werden hier Befehle zur Definition und @@ -212,9 +306,11 @@ \kernel@ifnextchar[%] {\TUD@@key[#1]{#2}}{\TUD@@@key[#1]{#2}}% } +\newcommand*\TUD@@key{} \def\TUD@@key[#1]#2[#3]#4{% \DefineFamilyKey[#1]{TUD}{#2}[{#3}]{\TUD@noworlater{#4}}% } +\newcommand*\TUD@@@key{} \def\TUD@@@key[#1]#2#3{% \DefineFamilyKey[#1]{TUD}{#2}{\TUD@noworlater{#3}}% } @@ -338,7 +434,7 @@ % bzw. \cs{TUD@std@numkey@lock} und \cs{TUD@set@numkey@lock} % \begin{macrocode} \newcommand*\cs@lock[2]{% - \csdef{#1}{#2}% + \expandafter\newcommand\expandafter*\csname#1\endcsname{#2}% \newbool{#1@locked}% } \newcommand*\cs@std@lock[2]{% @@ -381,11 +477,13 @@ % \end{macro}^^A \bool@std@lock % \end{macro}^^A \bool@lock % \begin{macro}{\tud@cmd@store} +% \begin{macro}{\tud@cmd@restore} % \begin{macro}{\tud@cmd@reset} +% \begin{macro}{\tud@cmd@update} +% \changes{v2.04}{2015/03/03}{neu}^^A % \begin{macro}{\tud@cmd@use} -% \begin{macro}{\tud@cmd@restore} % \begin{macro}{\tud@cmd@check} -% \changes{v2.03}{2015/01/09}{neu}%^^A +% \changes{v2.03}{2015/01/09}{neu}^^A % Mit diesen Befehlen wird es möglich, Originalbefehle sichern, nutzen und % wiederherstellen zu können. Dies wird benötigt, um zwischen den einzelnen % Layouts über Optionseinstellungen zu wechseln und dabei von einem definierten @@ -397,33 +495,35 @@ % Zeitpunkt auf den Orginalzustand zurücksetzen, kann hierfür jederzeit der % Befehl \cs{tud@cmd@reset}\marg{Befehlsname} verwendet werden. Durch das Makro % \cs{tud@cmd@restore}\marg{Befehlsname} wird das mit \cs{tud@cmd@store} -% erstellte Hilfsmakro zusätzlich noch gelöscht. Der Originalbefehl kann als -% solcher mit \cs{tud@cmd@use}\marg{Befehlsname} weiterhin genutzt werden. +% erstellte Hilfsmakro zusätzlich noch gelöscht. Der ursprüngliche Befehl kann +% als solcher mit \cs{tud@cmd@use}\marg{Befehlsname} weiterhin genutzt werden. +% Durch das Makro \cs{tud@cmd@update}\marg{Befehlsname} wird ein gesichter +% Befehl aktualisiert. % \begin{macrocode} \newcommand*\tud@cmd@store[1]{% - \ifcsdef{@@tud@#1}{}{% - \tud@cmd@check{#1}% - \csletcs{@@tud@#1}{#1}% - }% -} -\newcommand*\tud@cmd@reset[1]{% - \ifcsdef{@@tud@#1}{% - \tud@cmd@check{#1}% - \csletcs{#1}{@@tud@#1}% - }{}% + \tud@cmd@check{#1}% + \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}% } \newcommand*\tud@cmd@restore[1]{% + \tud@cmd@check{#1}% \ifcsdef{@@tud@#1}{% - \tud@cmd@check{#1}% \csletcs{#1}{@@tud@#1}% \csundef{@@tud@#1}% }{}% } +\newcommand*\tud@cmd@reset[1]{% + \tud@cmd@check{#1}% + \ifcsdef{@@tud@#1}{\csletcs{#1}{@@tud@#1}}{}% +} +\newcommand*\tud@cmd@update[1]{% + \tud@cmd@check{#1}% + \ifcsdef{@@tud@#1}{\csletcs{@@tud@#1}{#1}}{}% +} \newcommand*\tud@cmd@use[1]{% + \tud@cmd@check{#1}% \ifcsdef{@@tud@#1}{% \@nameuse{@@tud@#1}% }{% - \tud@cmd@check{#1}% \@nameuse{#1}% }% } @@ -439,16 +539,56 @@ }{% The command `\@backslashchar#1' was never defined.\MessageBreak% Please contact the TUD-KOMA-Script maintainer\MessageBreak% - via \tudscrmail. A bugfix is urgently required + via \tudscrmail. A bugfix is urgently required.% }% }% } % \end{macrocode} % \end{macro}^^A \tud@cmd@check -% \end{macro}^^A \tud@cmd@restore % \end{macro}^^A \tud@cmd@use +% \end{macro}^^A \tud@cmd@update % \end{macro}^^A \tud@cmd@reset +% \end{macro}^^A \tud@cmd@restore % \end{macro}^^A \tud@cmd@store +% \begin{macro}{\tud@skip@store} +% \changes{v2.04}{2015/03/02}{neu}^^A +% \begin{macro}{\tud@skip@restore} +% \changes{v2.04}{2015/03/02}{neu}^^A +% \begin{macro}{\tud@skip@set} +% \changes{v2.04}{2015/05/05}{neu}^^A +% Hiermit können~-- äquivalent zum Sichern und Wiederherstellen von Befehlen~-- +% Längenregister abgespeichert werden. +% \begin{macrocode} +\newcommand*\tud@skip@store[1]{% + \ifcsdef{@@tud@skip@#1}{}{% + \@tempswafalse% + \ifisskip{\csname #1\endcsname}{\@tempswatrue}{}% + \ifisdimen{\csname #1\endcsname}{\@tempswatrue}{}% + \if@tempswa% + \csedef{@@tud@skip@#1}{\expandafter\the\csname #1\endcsname}% + \fi% + }% +} +\newcommand*\tud@skip@restore[1]{% + \ifcsdef{@@tud@skip@#1}{% + \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% + \csundef{@@tud@skip@#1}% + }{}% +} +\newcommand*\tud@skip@set[2]{% + \ifdef{#1}{% + \@tempswafalse% + \ifisskip{#1}{\@tempswatrue}{}% + \ifisdimen{#1}{\@tempswatrue}{}% + \if@tempswa% + \setlength#1{#2}% + \fi% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@skip@set +% \end{macro}^^A \tud@skip@restore +% \end{macro}^^A \tud@skip@store % \begin{macro}{\tud@patch@wrn} % Dieses Makro wird verwendet, wenn mit den Mitteln von \pkg{etoolbox} bereits % vorhandene Befehle angepasst werden sollen (\cs{apptocmd}, \cs{pretocmd}, @@ -492,11 +632,11 @@ \newcommand*\TUD@parameter@checkfamily[1]{% \ifx\TUD@parameter@family\relax% \PackageError{tudscrbase}{% - No family for keys given. + No family for keys given% }{% You have to use \string#1\space within the\MessageBreak% second argument of \string\TUD@parameter. The first \MessageBreak% - argument of \string\TUD@parameter\space has to be a unique family name. + argument of \string\TUD@parameter\space has to be a unique family name.% }% \fi% } @@ -506,7 +646,7 @@ % \end{macro}^^A \TUD@parameter % \begin{macro}{\TUD@parameter@define} % \begin{macro}{\TUD@parameter@let} -% \changes{v2.02}{2014/07/25}{Beachtung der gegebenen Standardwerte}%^^A +% \changes{v2.02}{2014/07/25}{Beachtung der gegebenen Standardwerte}^^A % \begin{macro}{\TUD@parameter@sethandler} % \cs{TUD@parameter@define}\marg{Name}\oarg{Säumniswert}\marg{Verarbeitung} % nutzt \cs{define@key} aus dem \pkg{keyval}"=Paket, um einen Schlüssel und @@ -586,6 +726,39 @@ % \end{macrocode} % \end{macro}^^A \TUD@parameter@error % +% \subsubsection{Ausführung von paketspezifischem Quellcode} +% +% Ab und an ist es notwendig, bestimmten Quelltext erst gezielt nach einem +% Paket auszuführen. +% \begin{macro}{\TUD@AfterPackage@Set} +% \changes{v2.04}{2015/03/09}{neu}^^A +% \begin{macro}{\TUD@AfterPackage} +% \changes{v2.03}{2015/02/15}{neu}^^A +% Im ersten Argument wird das Paket angegeben, im zweiten der Quellcode. +% \begin{macrocode} +\newcommand*\TUD@AfterPackage@Set[1]{% + \newbool{@tud@#1@loaded}% + \AfterPackage!{#1}{\booltrue{@tud@#1@loaded}} +} +\newcommand*\TUD@AfterPackage[2]{% + \ifcsdef{if@tud@#1@loaded}{% + \if@atdocument% + \ifbool{@tud@#1@loaded}{#2}{}% + \else% + \AfterPackage!{#1}{#2}% + \fi% + }{% + \PackageError{tudscrbase}{\string\TUD@AfterPackage@Set{#1} missing}{% + You have to set \string\TUD@AfterPackage@Set{#1} before\MessageBreak% + the usage of \string\TUD@AfterPackage{#1}{<code>} is\MessageBreak% + possible.% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \TUD@AfterPackage +% \end{macro}^^A \TUD@AfterPackage@Set +% % \iffalse %</package> %<*load> @@ -599,49 +772,13 @@ % % \iffalse %</load> -%<*execute> -% \fi -% -% \subsection{Durchreichen von Optionen und Standardoptionen} -% -% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse bzw. an die -% genutzte \TUDScript-Elternklasse. -% \begin{macrocode} -%<*!inherit> -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\scrcls@name}} -%</!inherit> -%<*inherit> -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\tudinh@name}} -%</inherit> -% \end{macrocode} -% Es werden die Standardoptionen ausgeführt. Die Ausführung selbst wird durch -% den Befehl \cs{TUD@noworlater} innerhalb von \cs{TUD@key} auf das Ende der -% \KOMAScript-Klasse verzögert. -% \begin{macrocode} -%<*!inherit> -\TUDExecuteOptions{cd,cdfont,tudbookmarks} -%</!inherit> -\TUDProcessOptions\relax -% \end{macrocode} -% Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird -% geladen. -% \begin{macrocode} -%<*!inherit> -\LoadClass{\scrcls@name}[2013/12/19] -%</!inherit> -%<*inherit> -\LoadClass{\tudinh@name} -%</inherit> -% \end{macrocode} -% -% \iffalse -%<*!inherit> +%<*class&body> % \fi % % \subsection{Externe Pakete} % -% \changes{v2.01}{2014/04/24}{Versionsanforderungen bei benötigten Paketen}%^^A -% \changes{v2.02}{2014/07/08}{\pkg{graphics} Warnung bei Verwendung}%^^A +% \changes{v2.01}{2014/04/24}{Versionsanforderungen bei benötigten Paketen}^^A +% \changes{v2.02}{2014/07/08}{\pkg{graphics} Warnung bei Verwendung}^^A % % Für die Verwendung der hier erstellten \KOMAScript-Wrapper-Klassen werden % einige wenige Pakete eingebunden. Dabei wurde versucht, die Anzahl der @@ -667,8 +804,9 @@ % \begin{macrocode} \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\tudcls@name}{% - The package `graphics' was superseded by `graphicx'% + \ClassWarningNoLine{\TUDClassName}{% + The package `graphics' was superseded by `graphicx',\MessageBreak% + which is automatically loaded% }% }{}% }% @@ -681,9 +819,61 @@ } % \end{macrocode} % +% \subsection{Parameter für Umgebungen und mehrspaltige Texte} +% +% Diese Befehle dienen dazu, bei Umgebungen die Sprache über einen Parameter +% anzugeben sowie das Paket \pkg{multicol} verwenden zu können. +% \begin{macro}{\TUD@parameter@defaulthandler} +% Hiermit kann sowohl die zu verwendende Sprache als auch die Anzahl der +% gewünschten Spalten für bestimmte Umgebungen ohne die explizite Angabe eines +% Schlüssels festgelegt werden. Momentan betrifft das die beiden Umgebungen +% \env{abstract} und \env{tudpage}. +% \begin{macrocode} +\newcommand*\TUD@parameter@defaulthandler[2]{% + \def\@tempa{#2}% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% + \ifxnumber{\@tempb}{% + \TUD@parameter@set{#1}{columns=\@tempb}% + }{% + \TUD@parameter@set{#1}{language=\@tempb}% + }% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \TUD@parameter@defaulthandler +% \begin{macro}{\tud@multicols} +% \begin{macro}{\tud@multicols@check} +% Im Makro \cs{tud@multicols} wird die Anzahl der gewünschten Spalten in einer +% Umgebung für die Verwendung des \pkg{multicol}"=Paketes gespeichert. +% \begin{macrocode} +\cs@lock{tud@multicols}{1} +% \end{macrocode} +% Der Befehl \cs{tud@multicols@check} prüft, ob das Paket \pkg{multicol} +% geladen wurde. Falls dies nicht der Fall ist, wird eine Warnung ausgegeben +% und die Änderung des Wertes über einen Parameter der Umgebungen \env{tudpage} +% repsektive \env{abstract} sowie \env{declarations} über \cs{set@set@lock} +% verhindert. +% \begin{macrocode} +\newcommand*\tud@multicols@check{% + \ifdef{\multicols}{}{% + \ifnum\tud@multicols>\@ne\relax% + \ClassWarning{\TUDClassName}{% + The option `columns=\tud@multicols' is only supported,\MessageBreak% + when package `multicol' is loaded% + }% + \cs@set@lock{tud@multicols}{1}% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@multicols@check +% \end{macro}^^A \tud@multicols +% % \iffalse -%</!inherit> -%</execute> +%</class&body> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx index 824faf1f680..03ee0a005e8 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx @@ -1,4 +1,4 @@ -% \CheckSum{225} +% \CheckSum{221} % \iffalse meta-comment % % ============================================================================ @@ -51,9 +51,9 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-color.dtx}[% - 2015/02/12 v2.03 TUD-KOMA-Script\space% + 2015/06/02 v2.04 TUD-KOMA-Script\space% %</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27] +%<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{tudscrcolor}[% %<*driver|package> %!TUDVersion @@ -95,56 +95,22 @@ %<*package> % \fi % -% \subsection{Optionen des Paketes \pkg{tudscrcolor}} +% \subsection{Optionen und Befehle des Paketes \pkg{tudscrcolor}} % % \begin{macrocode} \DeclareOption{newcolors}{\let\setcdcolors@add\relax} \DeclareOption{reduced}{\let\setcdcolors@add\relax} \DeclareOption{oldcolors}{\let\setcdcolors@add\setcdcolors@oldcolors} \DeclareOption{full}{\let\setcdcolors@add\setcdcolors@oldcolors} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} % \end{macrocode} -% -% \begin{macro}{\nopagecolor} -% \changes{v2.03}{2015/01/09}{Befehl wird standardmäßig bereitgestellt}%^^A -% Der Befehl \cs{nopagecolor} wird lediglich durch pdf\LaTeX{} und Lua\LaTeX{} -% jedoch nicht durch Xe\LaTeX{} sowie \texttt{dvips} und \texttt{dvipdfm(x)} -% bereitgestellt. Deshalb wird er durch das Paket im Zweifelsfall definiert. +% \begin{macro}{\tud@color} +% \changes{v2.04}{2015/04/21}{neu}^^A +% Der Befehl wählt eine Farbe nur aus, wenn diese auch tatsächlich im zu +% übergebenden Makro definiert ist. % \begin{macrocode} -\providecommand*\nopagecolor{\pagecolor{white}}% +\newcommand*\tud@color[1]{\ifdefvoid{#1}{}{\color{#1}}} % \end{macrocode} -% \end{macro}^^A \nopagecolor -% -% \iffalse -%</package> -%<*class> -% \fi -% -% \subsection{Befehle für die \cls{tudscr}-Klassen} -% -% \begin{macro}{\tud@pagecolor} -% \begin{macro}{\tud@restorepagecolor} -% \changes{v2.03}{2015/01/09}{entfernt}%^^A -% Dieser Befehl dient zum Umschalten der Hintergrundfarben für Titel-, Teile- -% und Kapitelseiten. Gesetzt werden diese mit dem Paket \pkg{scrlayer} über -% eine Ebene im Pseudoseitenstil \pgs{@everystyle@}. -% \begin{macrocode} -\newcommand*\tud@pagecolor{} -% \end{macrocode} -% \end{macro}^^A \tud@restorepagecolor -% \end{macro}^^A \tud@pagecolor -% Sollte das Paket \pkg{pdfpages} geladen werden, so ist eine Definition -% der Standardseitenfarbe zum Einbinden von PDF-Dokumenten notwendig. -% Andernfalls werden bei der Verwendung von \cs{includepdf} nur leere Seiten -% erzeugt. -% \begin{macrocode} -\AfterPackage{pdfpages}{\AtEndPreamble{\nopagecolor}} -% \end{macrocode} -% -% \iffalse -%</class> -%<*package> -% \fi +% \end{macro}^^A \tud@color % % \subsection{Farbdefinitionen für das Paket \pkg{tudscrcolor}} % @@ -432,6 +398,7 @@ % Ohne die Angabe eines optionalen Argumentes an das Paket \pkg{xcolor} erfolgt % die Definition für den gewählten bzw. standardmäßig eingestellten Farbraum. % \begin{macrocode} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} \ExecuteOptions{reduced} \ProcessOptions\relax \RequirePackage{xcolor}[2007/01/21] diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx index 161f8f20132..c8cdfde8002 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx @@ -1,4 +1,4 @@ -% \CheckSum{439} +% \CheckSum{702} % \iffalse meta-comment % % ============================================================================ @@ -51,16 +51,16 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-comp.dtx}[% - 2015/02/15 v2.03 TUD-KOMA-Script\space% + 2015/06/15 v2.04 TUD-KOMA-Script\space% %</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27] -%<package>\ProvidesPackage{tudscrcomp}[% -%<*driver|package> +%<package&identify>\NeedsTeXFormat{LaTeX2e} +%<package&identify>\ProvidesPackage{tudscrcomp}[% +%<*driver|package&identify> %!TUDVersion %<package> package (compatibility for old tud(scr) classes)% ] -%</driver|package> +%</driver|package&identify> %<*driver> \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -81,288 +81,68 @@ % % \selectlanguage{ngerman} % -% \section{Kompatibilität für die \cls{tudbook}-Klasse und frühere Versionen} +% \changes{v2.02}{2014/09/30}{\pkg{tudscrfonts}: Nutzung alter tud-Klassen +% mit neuen Schriftfamilien ermöglicht}^^A +% \changes{v2.04}{2015/04/22}{\pkg{tudscrfonts}: Unterstützung veralteter +% Posterklassen}^^A % -% Diese Paket stellt für die \cls{tudscr}-Klassen eine Schnittstelle bereit, -% die es ermöglicht, die in der alten \cls{tudbook}-Klasse und dem dazugehörigen -% \pkg{tudthesis}-Paket definierten Befehle hier zu benutzen, um alte Dokumente -% mit den neuen Klassen zu setzen. +% \section{Kompatibilität zu früheren Versionen und Klassen} % -% \StopEventually{\PrintIndex\PrintChanges} -% -% \iffalse -%<*package> -% \fi -% -% \subsection{Das Paket \pkg{tudscrcomp} -- \cls{tudbook}-Kompatibilität} +% Hiermit werden sowohl veraltete Befehle und Optionen aus früheren Versionen +% von \TUDScript als auch \enquote{veraltete} Klassen und Pakete, welche das +% \CD der \TnUD mehr oder weniger gut umsetzen, unterstützt. % -% \begin{macro}{\einrichtung} -% \begin{macro}{\fachrichtung} -% \begin{macro}{\institut} -% \begin{macro}{\professur} -% \begin{macro}{\moreauthor} -% \begin{macro}{\submitdate} -% \begin{macro}{\supervisorII} -% \begin{macro}{\supervisedby} -% \begin{macro}{\supervisedIIby} -% \begin{macro}{\submittedon} -% Es werden Aliasbefehle für die Eingabefelder definiert. -% \begin{macrocode} -\newcommand*\einrichtung{} -\let\einrichtung\faculty -\newcommand*\fachrichtung{} -\let\fachrichtung\department -\newcommand*\institut{} -\let\institut\institute -\newcommand*\professur{} -\let\professur\chair -\newcommand*\moreauthor{} -\let\moreauthor\authormore -\newcommand*\submitdate{} -\let\submitdate\date -\newcommand*\supervisorII[1]{% - \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and #1}% -} -\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} -\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} -\newcommand*\submittedon[1]{\gdef\datetext{#1}} -% \end{macrocode} -% \end{macro}^^A \submittedon -% \end{macro}^^A \supervisedIIby -% \end{macro}^^A \supervisedby -% \end{macro}^^A \supervisorII -% \end{macro}^^A \submitdate -% \end{macro}^^A \moreauthor -% \end{macro}^^A \professur -% \end{macro}^^A \institut -% \end{macro}^^A \fachrichtung -% \end{macro}^^A \einrichtung} -% \begin{macro}{\dissertation} -% Bei der Definition des Typs der Abschlussarbeit mit \cs{dissertation} wird -% die Lokalisierungsvariable \cs{dissertationname} verwendet und die Feldnamen -% angepasst. -% \begin{macrocode} -\newcommand*\dissertation{% - \thesis{\dissertationname}% - \let\supervisorname\refereename% - \let\supervisorothername\refereeothername% -} -% \end{macrocode} -% \end{macro}^^A \dissertation -% \begin{option}{colortitle} -% \begin{option}{nocolortitle} -% Für farbige Einstellungen wird von \cls{tudbook} die Option \opt{color} -% definiert. Soll die Titelseite konträr dazu gesetzt werden, muss sich mit den -% Schlüsseln \opt{colortitle} und \opt{nocolortitle} beholfen werden. -% \begin{macrocode} -\TUD@key{colortitle}[true]{% - \TUD@set@ifkey{colortitle}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUDoptions{cdtitle=color}% - \else% - \TUDoptions{cdtitle=true}% - \fi% - \fi% -} -\TUD@key{nocolortitle}[true]{% - \TUD@set@ifkey{nocolortitle}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUDoptions{cdtitle=true}% - \else% - \TUDoptions{cdtitle=color}% - \fi% - \fi% -} -% \end{macrocode} -% \end{option}^^A nocolortitle -% \end{option}^^A colortitle -% \begin{option}{ddcfooter} -% Außer der Option \opt{ddc} gibt es bei der alten \cls{tudbook}-Klasse noch -% den Schlüssel \opt{ddcfooter}. Dieser wird auf die Option \opt{ddcfoot} -% gelegt. -% \begin{macrocode} -\TUD@key{ddcfooter}[true]{% - \TUD@set@ifkey{ddcfooter}{@tempswa}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tempswa% - \TUDoptions{ddcfoot=true}% - \else% - \TUDoptions{ddcfoot=false}% - \fi% - \fi% -} -% \end{macrocode} -% \end{option}^^A ddcfooter -% \begin{environment}{theglossary} -% \begin{macro}{\glossaryname} -% \begin{macro}{\glossitem} -% Eine rudimentäre Umgebung für ein Glossar. -% \begin{macrocode} -\AtBeginDocument{% - \ifdef{\theglossary}{}{% - \providecommand*{\glossaryname}{Glossar} - \newenvironment{theglossary}[1][]{% - \ClassWarning{\tudcls@name}{% - Using the environment theglossary is not\MessageBreak% - recommended. You should rather use an appropriate\MessageBreak% - package such as glossaries% - }% - \let\bibname\glossaryname% - \bib@heading% - #1% - \list{}{% - \setlength\labelsep{\z@}% - \setlength\labelwidth{\z@}% - \setlength\itemindent{-\leftmargin}% - }% - }{\endlist} - \newcommand\glossitem[1]{\item[] #1\par}% - }% -} -% \end{macrocode} -% \end{macro}^^A \glossitem -% \end{macro}^^A \glossaryname -% \end{environment}^^A theglossary -% \begin{macro}{\chapterpage} -% \begin{macro}{\if@tud@chapterpage@temp} -% \begin{macro}{\tud@chapterpage@set} -% \begin{macro}{\tud@chapterpage@unset} -% \begin{macro}{\tud@chapterpage@wrn} -% Die alte \cls{tudbook}-Klasse stellt den Befehl \cs{chapterpage} bereit. -% Mit diesem ist es möglich, das Verhalten der Kapitelseiten~-- welches durch -% die Option \opt{chapterpage} gesteuert wird~-- temporär umzuschalten, also -% statt Kapitelseiten lediglich Überschriften zu setzen und umgekehrt. Dies ist -% typographisch durchaus zu hinterfragen, allerdings sollen die neuen Klassen -% möglichst kompatibel zu der alten sein, weshalb diese Funktionalität trotzdem -% implementiert wird. Der Befehl \cs{chapterpage} setzt den globalen Schalter -% \cs{if@tud@chapterpage@temp}. Der Befehl \cs{tud@chapterpage@set} setzt für -% Kapitel das komplementäre Verhalten zur eigentlich gewählten -% \opt{chapterpage}"=Option. Nach dem Setzen der entsprechenden Überschrift -% wird \cs{tud@chapterpage@set} nochmals aufgerufen, das Verhalten auf den -% ursprünglichen Zustand geschaltet und der globale Schalter -% \cs{if@tud@chapterpage@temp} zurückgesetzt. -% \begin{macrocode} -\newif\if@tud@chapterpage@temp -\newcommand*\chapterpage{% - \global\@tud@chapterpage@temptrue% - \tud@chapterpage@wrn% -} -\newcommand*\tud@chapterpage@set[1][]{% - \if@tud@chapterpage@temp% - \if@tud@chapterpage% - \TUDoptions{chapterpage=false}% - \else% - \TUDoptions{chapterpage=true}% - \fi% - \fi% -} -\newcommand*\tud@chapterpage@unset[1][]{% - \tud@chapterpage@set% - \global\@tud@chapterpage@tempfalse% -} -% \end{macrocode} -% Da wie bereits beschrieben das Vorgehen äußerst fragwürdig ist, wird bei der -% Verwendung von \cs{chapterpage} zumindest einmalig eine Warnung ausgegeben. -% \begin{macrocode} -\newcommand*\tud@chapterpage@wrn{% - \ClassWarning{\tudcls@name}{% - The command \string\chapterpage\space is not\MessageBreak% - recommended. You should use the same style for\MessageBreak% - chapters throughout the document - }% - \global\let\tud@chapterpage@wrn\relax% -} -% \end{macrocode} -% \end{macro}^^A \tud@chapterpage@wrn -% \end{macro}^^A \tud@chapterpage@unset -% \end{macro}^^A \tud@chapterpage@set -% \end{macro}^^A \if@tud@chapterpage@temp -% \end{macro}^^A \chapterpage -% \begin{macro}{\tud@chapter} -% \begin{macro}{\tud@schapter} -% \begin{macro}{\tud@addchap} -% \begin{macro}{\tud@saddchap} -% Hier erfolgt die notwendige Anpassungen der internen Gliederungsbefehle. -% \begin{macrocode} -\AtEndPreamble{% - \pretocmd{\tud@chapter}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@nchapter}}% - \apptocmd{\tud@chapter}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@nchapter}}% - \pretocmd{\tud@schapter}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@schapter}}% - \apptocmd{\tud@schapter}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@schapter}}% - \pretocmd{\tud@addchap}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@naddchap}}% - \apptocmd{\tud@addchap}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@naddchap}}% - \pretocmd{\tud@saddchap}{\tud@chapterpage@set}% - {}{\tud@patch@wrn{tud@saddchap}}% - \apptocmd{\tud@saddchap}{\tud@chapterpage@unset}% - {}{\tud@patch@wrn{tud@saddchap}}% -} -% \end{macrocode} -% \end{macro}^^A \tud@saddchap -% \end{macro}^^A \tud@addchap -% \end{macro}^^A \tud@schapter -% \end{macro}^^A \tud@chapter -% -% \iffalse -%</package> -% \fi +% \StopEventually{\PrintIndex\PrintChanges} % % \subsection{Kompatibilität zu früheren \TUDScript-Versionen} % -% Neben den Optionen und Befehlen im Paket \pkg{tudscrcomp} gibt es weitere -% veraltete, die jedoch direkt in den Klassen vorgehalten werden. Deren Maßgabe -% ist es, die Kompatibilität zu älteren \TUDScript-Versionen zu erhalten. -% -% Mit der Version v2.02 wurde eine Menge~-- teilweise sehr tiefgreifend~-- -% geändert. Die Kompatibilität zu früheren Versionen wird nicht verfolgt. -% In Zukunft wird es wohl noch die ein oder andere Änderung geben. Hierfür soll -% jedoch allerdings sehr wohl ein Kompatibilitätsmodus zur Verfügung stehen. -% Hiermit wird alles dafür vorbereitet. +% Mit der Version v2.02 wurde eine Menge~-- teilweise sehr tiefgreifend~-- an +% der Benutzerschnittstelle in \TUDScript geändert. Dabei wird versucht, die +% Kompatibilität zu früheren Versionen so weit es geht aufrecht zu erhalten und +% veraltete Optionen und Befehle zumindest weiter bereitzustellen, wobei bei +% der Verwendung dieser der Anwender darüber informiert wird. Die Vorkehrungen +% betreffen sowohl die Klassen selber als auch die zusätzlich bereitgestellten +% Pakete. % % \iffalse -%<*class|fonts> +%<*class|(package&fonts)> % \fi % -% \begin{macro}{\tud@deprecated@key} -% \changes{v2.03}{2015/02/05}{neu}%^^A +% \begin{macro}{\TUD@deprecated@key} +% \changes{v2.03}{2015/02/05}{neu}^^A % \begin{macro}{\tud@deprecated@cmd} -% \changes{v2.03}{2015/02/05}{neu}%^^A +% \changes{v2.03}{2015/02/05}{neu}^^A % Um alte Optionen und Befehle dem Anwender bei der Verwendung kenntlich zu % machen, werden entsprechende Warnungen definiert. Für Optionen wird dabei % lediglich die empfohlene Option ausgegeben. Das Ausführen dieser wird später % definert. % \begin{macrocode} %<*option> -\newcommand*\tud@deprecated@key[2]{% +\newcommand*\TUD@deprecated@key[2]{% %<*!fonts> - \ClassWarning{\tudcls@name}% + \ClassWarning{\TUDClassName}% %</!fonts> %<*fonts> \PackageWarning{tudscrfonts}% %</fonts> {% The option key `#1' is deprecated.\MessageBreak% - It's recommended to use `#2' instead% + It's recommended to use `#2'\MessageBreak% + instead% }% + \TUDoptions{#2}% } %</option> % \end{macrocode} % Bei alten Befehlen wird nach der Warnung die Definition des neuen Befehls auf % den alten überschrieben. % \begin{macrocode} -%<*body> +%<*class&body> \newcommand*\tud@deprecated@cmd[2]{% \AtBeginDocument{% \ifcsdef{#1}{}{% \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The command `\@backslashchar#1' is deprecated.\MessageBreak% It's recommended to use `\@backslashchar#2' instead% }% @@ -372,10 +152,10 @@ }% }% } -%</body> +%</class&body> % \end{macrocode} % \end{macro}^^A \tud@deprecated@cmd -% \end{macro}^^A \tud@deprecated@key +% \end{macro}^^A \TUD@deprecated@key % % \iffalse %<*option> @@ -383,27 +163,25 @@ % % \begin{option}{cdfonts} % \begin{option}{tudfonts} -% Diese Option wird nur aus Gründen der Kompatibilität zu v1.0 definiert. +% Diese Optionen werden nur aus Gründen der Kompatibilität zu v1.0 definiert. % \begin{macrocode} \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{cdfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{tudfonts}[true]{% \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% \fi% \fi% } @@ -416,11 +194,10 @@ \TUD@key{heavyfont}[true]{% \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{heavyfont}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=heavy}% + \TUD@deprecated@key{heavyfont}{cdfont=heavy}% \else% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% \fi% \fi% } @@ -428,32 +205,43 @@ % \end{option}^^A heavyfont % \begin{option}{din} % \begin{option}{nodin} +% \begin{option}{noDIN} +% \changes{v2.04}{2015/04/22}{neu}^^A % Diese Optionen dienten zur Auswahl, ob die Schrift DIN~Bold für die % Überschriften verwendet werden soll. % \begin{macrocode} \TUD@key{din}[true]{% \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{din}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{din}{cdfont=din}% \else% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{din=#1}{cdfont=nodin}% \fi% \fi% } \TUD@key{nodin}[true]{% \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{nodin}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{nodin}{cdfont=nodin}% + \else% + \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \fi% + \fi% +} +\TUD@key{noDIN}[true]{% + \TUD@set@ifkey{noDIN}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{noDIN}{cdfont=nodin}% \else% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{noDIN=#1}{cdfont=din}% \fi% \fi% } % \end{macrocode} +% \end{option}^^A noDIN % \end{option}^^A nodin % \end{option}^^A din % \begin{option}{sansmath} @@ -467,22 +255,20 @@ \TUD@key{sansmath}[true]{% \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{sansmath}{cdmath=true}% \else% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{sansmath=#1}{cdmath=false}% \fi% \fi% } \TUD@key{serifmath}[true]{% \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{serifmath}{cdmath=false}% \else% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{serifmath=#1}{cdmath=true}% \fi% \fi% } @@ -491,22 +277,19 @@ % \end{option}^^A sansmath % % \iffalse -%<*!fonts> +%<*class> % \fi % % \begin{option}{geometry} -% \changes{v2.02}{2014/07/08}{neu}%^^A +% \changes{v2.02}{2014/07/08}{neu}^^A % Umbennennung der zu allgemein benannten Option, um zukünftigen Konflikten mit % \KOMAScript{} aus dem Weg zu gehen. % \begin{macrocode} -\TUD@key{geometry}[true]{% - \tud@deprecated@key{geometry}{cdgeometry}% - \TUDoptions{cdgeometry=#1}% -} +\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} % \end{macrocode} % \end{option}^^A geometry % \begin{option}{barfont} -% \changes{v2.02}{2014/07/08}{neu}%^^A +% \changes{v2.02}{2014/07/08}{neu}^^A % Mit dieser Option kann die Schrift des \CDs und deren Schriftstärke in der % TUD-Kopfzeile unabhängig von der gewählten Schriftart für den Fließtext % aktiviert werden. @@ -520,13 +303,12 @@ {heavy}{2},{heavyfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{barfont}{cdhead}% - \ifcase\@tempa\relax% - \TUDoptions{cdhead=false}% - \or% - \TUDoptions{cdhead=true}% - \or% - \TUDoptions{cdhead=heavy}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \or% true + \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \or% heavy + \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% \fi% \fi% } @@ -540,11 +322,10 @@ \TUD@key{widehead}[true]{% \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{widehead}{cdhead}% \if@tempswa% - \TUDoptions{cdhead=paperwidth}% + \TUD@deprecated@key{widehead}{cdhead=paperwidth}% \else% - \TUDoptions{cdhead=textwidth}% + \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% \fi% \fi% } @@ -556,11 +337,10 @@ \TUD@key{tudfoot}[true]{% \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfoot}{cdfoot}% \if@tempswa% - \TUDoptions{cdfoot=true}% + \TUD@deprecated@key{tudfoot}{cdfoot=true}% \else% - \TUDoptions{cdfoot=false}% + \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -576,27 +356,26 @@ \TUD@set@numkey{color}{@tempa}{% \TUD@numkey@bool,% {nocolor}{0},{nocolour}{0},{monochrome}{0},{monochromatic}{0},% - {lite}{1},{light}{1},{pale}{1},% - {colorlite}{1},{litecolor}{1},{colourlite}{1},{litecolour}{1},% - {colorlight}{1},{lightcolor}{1},{colourlight}{1},{lightcolour}{1},% - {colorpale}{1},{palecolor}{1},{colourpale}{1},{palecolour}{1},% - {bicolor}{2},{bicolour}{2},{twocolor}{2},{twocolour}{2},% - {bichrome}{2},{bichromatic}{2},{dichrome}{2},{dichromatic}{2},% - {color}{3},{colour}{3},% + {color}{1},{colour}{1},% + {lite}{2},{light}{2},{pale}{2},% + {colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% {full}{4},{colorfull}{4},{fullcolor}{4},{colourfull}{4},{fullcolour}{4}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{color}{cd}% - \ifcase\@tempa\relax% - \TUDoptions{cd=true}% - \or% - \TUDoptions{cd=pale}% - \or% - \TUDoptions{cd=bicolor}% - \or% - \TUDoptions{cd=color}% - \or% - \TUDoptions{cd=fullcolor}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{color=#1}{cd=true}% + \or% true + \TUD@deprecated@key{color=#1}{cd=color}% + \or% litecolor + \TUD@deprecated@key{color=#1}{cd=pale}% + \or% bicolor + \TUD@deprecated@key{color=#1}{cd=bicolor}% + \or% full + \TUD@deprecated@key{color=#1}{cd=fullcolor}% \fi% \fi% } @@ -604,19 +383,33 @@ % \end{macrocode} % \end{option}^^A colour % \end{option}^^A color +% +% \iffalse +%</class> +% \fi +% % \begin{option}{tudscrver} -% \changes{v2.02}{2014/08/22}{neu}%^^A +% \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@comp} -% \changes{v2.02}{2014/08/22}{neu}%^^A +% \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@first} -% \changes{v2.02}{2014/08/22}{neu}%^^A +% \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.02} -% \changes{v2.02}{2014/08/22}{neu}%^^A +% \changes{v2.02}{2014/08/22}{neu}^^A +% \begin{macro}{\tud@v@v2.02} +% \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.03} -% \changes{v2.03}{2015/01/13}{neu}%^^A +% \changes{v2.03}{2015/01/13}{neu}^^A +% \begin{macro}{\tud@v@v2.03} +% \changes{v2.03}{2015/01/13}{neu}^^A +% \begin{macro}{\tud@v@2.04} +% \changes{v2.04}{2015/02/18}{neu}^^A +% \begin{macro}{\tud@v@v2.04} +% \changes{v2.04}{2015/02/18}{neu}^^A % \begin{macro}{\tud@v@last} -% \changes{v2.02}{2014/08/22}{neu}%^^A -% \changes{v2.03}{2015/01/13}{angepasst}%^^A +% \changes{v2.02}{2014/08/22}{neu}^^A +% \changes{v2.03}{2015/01/13}{angepasst}^^A +% \changes{v2.04}{2015/02/18}{angepasst}^^A % In einigen Fällen sind Änderungen mit früheren Versionen nicht kompatibel % oder unerwünscht, weil diese beispielsweise das Ausgabeergebnis verändern. % Standardmäßig werden die Klassen in der aktuellen Version geladen. Mit @@ -629,14 +422,26 @@ \TUD@key{tudscrver}[last]{% \ifcsvoid{tud@v@#1}{% \def\tud@v@comp{0}% - \ClassWarningNoLine{\tudcls@name}{% +%<*class> + \ClassWarningNoLine{\TUDClassName}% +%</class> +%<*package&fonts> + \PackageWarningNoLine{tudscrfonts}% +%</package&fonts> + {% You have set option `tudscrver' to `#1', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% \FamilyKeyStateProcessed% }{% - \ClassInfoNoLine{\tudcls@name}{% +%<*class> + \ClassInfoNoLine{\TUDClassName}% +%</class> +%<*package&fonts> + \PackageInfoNoLine{tudscrfonts}% +%</package&fonts> + {% Switching compatibility level to `#1'% }% \edef\tud@v@comp{\@nameuse{tud@v@#1}}% @@ -645,58 +450,87 @@ } % \end{macrocode} % Eine zusätzliche Bedingung gibt es noch: Die Kompatibilität kann nur beim -% Laden der Klasse gesetzt werden. Danach geht dies nicht mehr. +% Laden der Klasse bzw. des Paketes gesetzt werden, danach nicht mehr. % \begin{macrocode} -\AtEndOfClass{% +%<*class> +\AtEndOfClass% +%</class> +%<*package> +\AtEndOfPackage% +%</package> +{% \TUD@key{tudscrver}[]{% - \ClassError{\tudcls@name}{Option `tudscrver' too late}{% +%<*class> + \ClassError{\TUDClassName}% +%</class> +%<*package&fonts> + \PackageError{tudscrfonts}% +%</package&fonts> + {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\tudcls@name' but you have tried to set it up later.% +%<*class> + class `\TUDClassName' +%</class> +%<*package&fonts> + package `tudscrfonts' +%</package&fonts> + but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% % \end{macrocode} -% Außerdem wird darauf geachtet, dass mindestens \KOMAScript-Version~v3.12 +% Außerdem wird darauf geachtet, dass mindestens \KOMAScript-Version~v3.17 % vorhanden ist, andernfalls wird ein Fehler erzeugt. % \begin{macrocode} - \ifcsdef{scr@v@3.12}{% +%<*class> + \ifcsdef{scr@v@3.17}{% \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% KOMA-Script compatibility level too low% }{% \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script `version=v3.12'% + KOMA-Script compatibility option `version=v3.12'.% }% \fi% }{% - \ClassError{\tudcls@name}{% - outdated version of KOMA-Script% + \ClassError{\TUDClassName}{% + KOMA-Script v3.17 is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.12 or newer% + \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% + at least. You're using \KOMAScriptVersion% }% }% +%</class> } % \end{macrocode} % Die numerischen Werte zu den einzelnen Versionen. -% \ToDo{Für jede neue Version der entsprechende Befehl}[v2.xx] +% \ToDo{Für jede neue Version der entsprechende Befehl}[Release] % \begin{macrocode} \@namedef{tud@v@first}{0} \@namedef{tud@v@2.02}{0} +\@namedef{tud@v@v2.02}{0} \@namedef{tud@v@2.03}{1} -\@namedef{tud@v@last}{1} +\@namedef{tud@v@v2.03}{1} +\@namedef{tud@v@2.04}{2} +\@namedef{tud@v@v2.04}{2} +\@namedef{tud@v@last}{2} % \end{macrocode} % \end{macro}^^A \tud@v@last +% \end{macro}^^A \tud@v@v2.04 +% \end{macro}^^A \tud@v@2.04 +% \end{macro}^^A \tud@v@v2.03 % \end{macro}^^A \tud@v@2.03 +% \end{macro}^^A \tud@v@v2.02 % \end{macro}^^A \tud@v@2.02 % \end{macro}^^A \tud@v@first % \end{macro}^^A \tud@v@comp % \end{option}^^A tudscrver -% \begin{macro}{\iftudscrverlower} -% \changes{v2.03}{2015/01/13}{neu}%^^A +% \begin{macro}{\tud@ifverlower} +% \changes{v2.03}{2015/01/13}{neu}^^A % Mit diesem Befehl können abhängig von der gegebenen Kompatibilitätsversion in % den Klassen unterschiedliche Einstellungen vorgenommen werden. % \begin{macrocode} -\newcommand*\iftudscrverlower[1]{% +\newcommand*\tud@ifverlower[1]{% \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% \expandafter\@firstoftwo% \else% @@ -704,12 +538,12 @@ \fi% } % \end{macrocode} -% \end{macro}^^A \iftudscrverlower +% \end{macro}^^A \tud@ifverlower % % \iffalse -%</!fonts> %</option> -%<*body> +%</class|(package&fonts)> +%<*class&body> % \fi % % \begin{length}{\chapterheadingvskip} @@ -729,12 +563,6 @@ \tud@deprecated@cmd{professorship}{chair} % \end{macrocode} % \end{macro}^^A \professorship -% \begin{macro}{\student} -% Der Befehl \cs{student} kann als Alias für \cs{author} genutzt werden. -% \begin{macrocode} -\tud@deprecated@cmd{student}{author} -% \end{macrocode} -% \end{macro}^^A \student % \begin{macro}{\studentid} % \begin{macro}{\matriculationid} % Zur Angabe von Matrikelnummer kann auch \cs{studentid} oder @@ -798,7 +626,7 @@ % Für das Paket \pkg{tudscrsupervisor} sind auch einige Befehle als veraltet % anzusehen. % \begin{macrocode} -\AfterPackage*{tudscrsupervisor}{% +\AfterPackage{tudscrsupervisor}{% \tud@deprecated@cmd{startdate}{issuedate}% \tud@deprecated@cmd{finaldate}{duedate}% \tud@deprecated@cmd{maturitydate}{duedate}% @@ -810,8 +638,520 @@ % % % \iffalse -%</body> -%</class|fonts> +%</class&body> +%<*package&preset> +% \fi +% +% \subsection{Das Paket \pkg{tudscrcomp} -- Kompatibilität veralteter Klassen} +% +% Neben den \TUDScript-Klassen gibt es zahlreiche andere \LaTeX-Umsetzungen des +% \CDs der \TnUD. Um eine Migration von diesen \enquote{veralteten} Klassen +% zu erleichtern, wird das Paket \pkg{tudscrcomp} bereitgestellt. Mit diesem +% können bei der Verwendung von \TUDScript die meisten Optionen und Befehle +% genutzt werden, welche durch die Klasse \cls{tudbook} und teilweise vormals +% durch die Klassen die \TUDScript-Klassen in der Version~v1.0 sowie die +% Posterklassen \cls{tudmathposter} bzw. \cls{tudposter} bereitgestellt wurden. +% +% \ToDo{% +% Optionen für \cls{tudbook} und \cls{tudmathposter}\val{=Mathematik(A0)}% +% }[v2.05] +% +% Zunächst sollten vor der Definition der Kompatibilitätseinstellungen passende +% Makros zur Fallunterscheidung definiert werden. +% +% \begin{macro}{\if@tud@oldclass} +% \changes{v2.02}{2014/08/29}{neu}^^A +% Wenn eine der alten Klassen aus den Vorlagen von Klaus Bergmann geladen +% wurde, wird dies für spätere Anpassungen registriert. Die alten Posterklassen +% werden ebenfalls unterstützt. +% \ToDo{Klasse tudbeamer und beamer-Stil tud einpflegen}[v2.xx] +% \begin{macrocode} +\newif\if@tud@oldclass +\@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudform}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudposter}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudmathposter}{\@tud@oldclasstrue}{}% +% \end{macrocode} +% \end{macro}^^A if@tud@oldclass +% \begin{macro}{\if@tud@oldscrclass} +% \changes{v2.02}{2014/08/29}{neu}^^A +% Soll das Paket \pkg{tudscrfonts} mit den \TUDScript-Klassen der Version~v1.0 +% genutzt werden, sind ebenfalls einige Anpassungen notwendig. +% \begin{macrocode} +\newif\if@tud@oldscrclass +\@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}% +\@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}% +\@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}% +% \end{macrocode} +% \end{macro}^^A if@tud@oldclass +% +% +% Jetzt folgen noch einige veraltete Befehle für die \TUDScript-Klassen. +% +% \iffalse +%</package&preset> +%<*package&option&!fonts> +% \fi +% +% +% \subsubsection{Kompatibilität zu \cls{tudbook}} +% +% Die folgenden Optionen und Befehle werden durch die Klasse \cls{tudbook} und +% teilweise durch \TUDScript~v1.0 definiert. +% +% \begin{option}{colortitle} +% \begin{option}{nocolortitle} +% Für farbige Einstellungen wird von \cls{tudbook} die Option \opt{color} +% definiert. Soll die Titelseite konträr dazu gesetzt werden, muss sich mit den +% Schlüsseln \opt{colortitle} und \opt{nocolortitle} beholfen werden. +% \begin{macrocode} +\TUD@key{colortitle}[true]{% + \TUD@set@ifkey{colortitle}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{cdtitle=color}% + \else% + \TUDoptions{cdtitle=true}% + \fi% + \fi% +} +\TUD@key{nocolortitle}[true]{% + \TUD@set@ifkey{nocolortitle}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{cdtitle=true}% + \else% + \TUDoptions{cdtitle=color}% + \fi% + \fi% +} +% \end{macrocode} +% \end{option}^^A nocolortitle +% \end{option}^^A colortitle +% \begin{option}{ddcfooter} +% Außer der Option \opt{ddc} gibt es bei der alten \cls{tudbook}-Klasse noch +% den Schlüssel \opt{ddcfooter}. Dieser wird auf die Option \opt{ddcfoot} +% gelegt. +% \begin{macrocode} +\TUD@key{ddcfooter}[true]{% + \TUD@set@ifkey{ddcfooter}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUDoptions{ddcfoot=true}% + \else% + \TUDoptions{ddcfoot=false}% + \fi% + \fi% +} +% \end{macrocode} +% \end{option}^^A ddcfooter +% +% \iffalse +%</package&option&!fonts> +%<*package&body&!fonts> +% \fi +% +% \begin{macro}{\einrichtung} +% \begin{macro}{\fachrichtung} +% \begin{macro}{\institut} +% \begin{macro}{\professur} +% \begin{macro}{\moreauthor} +% \begin{macro}{\submitdate} +% \begin{macro}{\supervisorII} +% \begin{macro}{\supervisedby} +% \begin{macro}{\supervisedIIby} +% \begin{macro}{\submittedon} +% Es werden Aliasbefehle für die Eingabefelder definiert. +% \begin{macrocode} +\newcommand*\einrichtung{\faculty} +\newcommand*\fachrichtung{\department} +\newcommand*\institut{\institute} +\newcommand*\professur{\chair} +\newcommand*\moreauthor{\authormore} +\newcommand*\submitdate{\date} +\newcommand*\supervisorII[1]{% + \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and #1}% +} +\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} +\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} +\newcommand*\submittedon[1]{\gdef\datetext{#1}} +% \end{macrocode} +% \end{macro}^^A \submittedon +% \end{macro}^^A \supervisedIIby +% \end{macro}^^A \supervisedby +% \end{macro}^^A \supervisorII +% \end{macro}^^A \submitdate +% \end{macro}^^A \moreauthor +% \end{macro}^^A \professur +% \end{macro}^^A \institut +% \end{macro}^^A \fachrichtung +% \end{macro}^^A \einrichtung} +% \begin{macro}{\dissertation} +% Bei der Definition des Typs der Abschlussarbeit mit \cs{dissertation} wird +% die Lokalisierungsvariable \cs{dissertationname} verwendet und die Feldnamen +% angepasst. +% \begin{macrocode} +\newcommand*\dissertation{% + \thesis{\dissertationname}% + \let\supervisorname\refereename% + \let\supervisorothername\refereeothername% +} +% \end{macrocode} +% \end{macro}^^A \dissertation +% \begin{environment}{theglossary} +% \begin{macro}{\glossaryname} +% \begin{macro}{\glossitem} +% Eine rudimentäre Umgebung für ein Glossar. +% \begin{macrocode} +\AtBeginDocument{% + \ifdef{\theglossary}{}{% + \providecommand*{\glossaryname}{Glossar} + \newenvironment{theglossary}[1][]{% + \PackageWarning{tudscrcomp}{% + Using the environment `theglossary' is not\MessageBreak% + recommended. You should rather use an appropriate\MessageBreak% + package such as glossaries% + }% + \let\bibname\glossaryname% + \bib@heading% + #1% + \list{}{% + \setlength\labelsep{\z@}% + \setlength\labelwidth{\z@}% + \setlength\itemindent{-\leftmargin}% + }% + }{\endlist} + \newcommand\glossitem[1]{\item[] #1\par}% + }% +} +% \end{macrocode} +% \end{macro}^^A \glossitem +% \end{macro}^^A \glossaryname +% \end{environment}^^A theglossary +% \begin{macro}{\chapterpage} +% \begin{macro}{\if@tud@chapterpage@temp} +% \begin{macro}{\tud@chapterpage@set} +% \begin{macro}{\tud@chapterpage@unset} +% \begin{macro}{\tud@chapterpage@wrn} +% Die alte \cls{tudbook}-Klasse stellt den Befehl \cs{chapterpage} bereit. +% Mit diesem ist es möglich, das Verhalten der Kapitelseiten~-- welches durch +% die Option \opt{chapterpage} gesteuert wird~-- temporär umzuschalten, also +% statt Kapitelseiten lediglich Überschriften zu setzen und umgekehrt. Dies ist +% typographisch durchaus zu hinterfragen, allerdings sollen die neuen Klassen +% möglichst kompatibel zu der alten sein, weshalb diese Funktionalität trotzdem +% implementiert wird. Der Befehl \cs{chapterpage} setzt den globalen Schalter +% \cs{if@tud@chapterpage@temp}. Der Befehl \cs{tud@chapterpage@set} setzt für +% Kapitel das komplementäre Verhalten zur eigentlich gewählten +% \opt{chapterpage}"=Option. Nach dem Setzen der entsprechenden Überschrift +% wird \cs{tud@chapterpage@set} nochmals aufgerufen, das Verhalten auf den +% ursprünglichen Zustand geschaltet und der globale Schalter +% \cs{if@tud@chapterpage@temp} zurückgesetzt. +% \begin{macrocode} +\newif\if@tud@chapterpage@temp +\newcommand*\chapterpage{% + \global\@tud@chapterpage@temptrue% + \tud@chapterpage@wrn% +} +\newcommand*\tud@chapterpage@set[1][]{% + \if@tud@chapterpage@temp% + \if@tud@chapterpage% + \TUDoptions{chapterpage=false}% + \else% + \TUDoptions{chapterpage=true}% + \fi% + \fi% +} +\newcommand*\tud@chapterpage@unset[1][]{% + \tud@chapterpage@set% + \global\@tud@chapterpage@tempfalse% +} +% \end{macrocode} +% Da wie bereits beschrieben das Vorgehen äußerst fragwürdig ist, wird bei der +% Verwendung von \cs{chapterpage} zumindest einmalig eine Warnung ausgegeben. +% \begin{macrocode} +\newcommand*\tud@chapterpage@wrn{% + \PackageWarning{tudscrcomp}{% + The command \string\chapterpage\space is not\MessageBreak% + recommended. You should use the same style for\MessageBreak% + chapters throughout the document + }% + \global\let\tud@chapterpage@wrn\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@chapterpage@wrn +% \end{macro}^^A \tud@chapterpage@unset +% \end{macro}^^A \tud@chapterpage@set +% \end{macro}^^A \if@tud@chapterpage@temp +% \end{macro}^^A \chapterpage +% \begin{macro}{\tud@chapter} +% \begin{macro}{\tud@schapter} +% \begin{macro}{\tud@addchap} +% \begin{macro}{\tud@saddchap} +% Hier erfolgt die notwendige Anpassungen der internen Gliederungsbefehle. +% \begin{macrocode} +\AtEndPreamble{% + \pretocmd{\tud@chapter}{\tud@chapterpage@set}% + {}{\tud@patch@wrn{tud@nchapter}}% + \apptocmd{\tud@chapter}{\tud@chapterpage@unset}% + {}{\tud@patch@wrn{tud@nchapter}}% + \pretocmd{\tud@schapter}{\tud@chapterpage@set}% + {}{\tud@patch@wrn{tud@schapter}}% + \apptocmd{\tud@schapter}{\tud@chapterpage@unset}% + {}{\tud@patch@wrn{tud@schapter}}% + \pretocmd{\tud@addchap}{\tud@chapterpage@set}% + {}{\tud@patch@wrn{tud@naddchap}}% + \apptocmd{\tud@addchap}{\tud@chapterpage@unset}% + {}{\tud@patch@wrn{tud@naddchap}}% + \pretocmd{\tud@saddchap}{\tud@chapterpage@set}% + {}{\tud@patch@wrn{tud@saddchap}}% + \apptocmd{\tud@saddchap}{\tud@chapterpage@unset}% + {}{\tud@patch@wrn{tud@saddchap}}% +} +% \end{macrocode} +% \end{macro}^^A \tud@saddchap +% \end{macro}^^A \tud@addchap +% \end{macro}^^A \tud@schapter +% \end{macro}^^A \tud@chapter +% +% \subsubsection{Kompatibilität zu \cls{tudmathposter}} +% +% \ToDo{% +% Folgende Befehle sollten für maximale Kompatibilität unterstützt werden: +% \begin{itemize} +% \item Umgebung \env{farbtabellen} mit \cs{grautabelle} und \cs{blautabelle} +% \item \cs{telefon}, \cs{fax}, \cs{homepage}, \cs{email} +% \item \cs{fusszeile} \cs{footcolumn} Die linke Spalte enthält Hochschule, +% Einrichtung, Fachrichtung, Institut und Professur. Die rechte Spalte ist +% frei wählbar, und kann mit den Variablen \cs{author}, \cs{telefon}, +% \cs{email} und \cs{homepage} oder mit einem frei gewählten Absatz +% (\cs{footcolumn2}) gefüllt werden. +% \item \cs{zweitlogo}, \cs{drittlogo}, \cs{institutslogo} +% \item \cs{maketitle} +% \item \cs{schnittrand} mit \pkg{crop}? +% \item Abstände der Gliederungsebenen? +% \item Umgebungen \env{tablehere} und \env{figurehere} +% \item \cs{multicolsep} +% \item Optionen \opt{Mathematik} und \opt{MathematikA0} +% \end{itemize}% +% Testen mit \texttt{beispiel-utf8-serifmath.tex} +% }[v2.05] +% +% \iffalse +%</package&body&!fonts> +%<*package&body&fonts> +% \fi +% +% \subsection{Neue Schriftfamilien für alte TUD-Klassen} +% +% Wird das Paket \pkg{tudscrfonts} mit den alten TUD-Klassen \cls{tudbook}, +% \cls{tudmathposter} etc. oder \TUDScript in der Version~v1.0 verwendet, +% müssen einige Kompatibilitätseinstellungen vorgenmommen werden. Hierfür sind +% einige Patches notwendig. Bei den alten TUD-Klassen, müssen in erster Linie +% einige Kompatibilitätseinstellungen vorgenmommen werden. Dies betrifft +% insbesondere die Mathematikschriften sowie allerhand darin definierter, fixer +% Schriften. +% \begin{macrocode} +\ifbool{@tud@oldclass}{% + \AtBeginDocument{% + \if@tud@fontspec% + \DeclareFixedFont{\univLightVII}{\encodingdefault}% + {UniversLight}{m}{n}{7}% + \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% + {UniversLightOblique}{m}{n}{7}% + \DeclareFixedFont{\univBoldVII}{\encodingdefault}% + {UniversBold}{m}{n}{7}% + \DeclareFixedFont{\univLightIX}{\encodingdefault}% + {UniversLight}{m}{n}{9}% + \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% + {UniversLightOblique}{m}{n}{9}% + \DeclareFixedFont{\univBoldIX}{\encodingdefault}% + {UniversBold}{m}{n}{9}% + \DeclareFixedFont{\univLightXI}{\encodingdefault}% + {UniversLight}{m}{n}{11}% + \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% + {UniversLightOblique}{m}{n}{11}% + \DeclareFixedFont{\univBoldXI}{\encodingdefault}% + {UniversBold}{m}{n}{11}% + \DeclareFixedFont{\univLightXV}{\encodingdefault}% + {UniversLight}{m}{n}{15}% + \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% + {UniversLightOblique}{m}{n}{15}% + \DeclareFixedFont{\univBoldXV}{\encodingdefault}% + {UniversBold}{m}{n}{15}% + \else% + \if@tud@univers% + \DeclareFixedFont{\univLightVII}{\encodingdefault}% + {\tud@univers}{l}{n}{7}% + \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% + {\tud@univers}{l}{sl}{7}% + \DeclareFixedFont{\univBoldVII}{\encodingdefault}% + {\tud@univers}{b}{n}{7}% + \DeclareFixedFont{\univLightIX}{\encodingdefault}% + {\tud@univers}{l}{n}{9}% + \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% + {\tud@univers}{l}{sl}{9}% + \DeclareFixedFont{\univBoldIX}{\encodingdefault}% + {\tud@univers}{b}{n}{9}% + \DeclareFixedFont{\univLightXI}{\encodingdefault}% + {\tud@univers}{l}{n}{11}% + \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% + {\tud@univers}{l}{sl}{11}% + \DeclareFixedFont{\univBoldXI}{\encodingdefault}% + {\tud@univers}{b}{n}{11}% + \DeclareFixedFont{\univLightXV}{\encodingdefault}% + {\tud@univers}{l}{n}{15}% + \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% + {\tud@univers}{l}{sl}{15}% + \DeclareFixedFont{\univBoldXV}{\encodingdefault}% + {\tud@univers}{b}{n}{15}% + \fi% + \fi% + \if@sansmath% + \DeclareSymbolFont{aunLetters}{OT1}{\tud@univers}{l}{sl}% + \SetSymbolFont{aunLetters}{bold}{OT1}{\tud@univers}{b}{sl}% + \DeclareSymbolFont{aunOperators}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{aunOperators}{bold}{OT1}{\tud@univers}{b}{n}% + \DeclareSymbolFont{aunUpright}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{aunUpright}{bold}{OT1}{\tud@univers}{b}{n}% + \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}% + \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}% + \DeclareMathAlphabet\mathbf{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet\mathbf{bold}{OT1}{\tud@univers}{b}{n}% + \DeclareMathAlphabet\mathit{OT1}{\tud@univers}{l}{sl}% + \SetMathAlphabet\mathit{bold}{OT1}{\tud@univers}{l}{sl}% + \@ifpackageloaded{tudfonts}{% + \let\mv@normal\mv@univers% + \let\mv@bold\mv@universbold% + }{}% + \fi% + \let\dinBold\dinbn% + \let\dinfamily\dinbn% + }% +}{} +% \end{macrocode} +% +% \subsubsection{Patches für die Klasse \cls{tudbook}} +% +% Die notwendigen Anpassungen der Klasse \cls{tudbook} betreffen die +% Schriftauswahl bei Überschriften. +% +% \begin{macro}{\@makechapterhead} +% \begin{macro}{\@makeschapterhead} +% \begin{macro}{\section} +% \begin{macro}{\showtitle} +% Die Überschriften sollen abhängig von der Option \opt{cdfont} und nicht immer +% zwingend in DIN~Bold gesetzt werden. +% \begin{macrocode} +\@ifclassloaded{tudbook}{% + \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}% + {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}% + \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}% + {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}% + \patchcmd{\section}{\dinBold\Large\bfseries}% + {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}% + \patchcmd{\showtitle}{\dinBold\Huge\bfseries}% + {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}% +}{} +% \end{macrocode} +% \end{macro}^^A \showtitle +% \end{macro}^^A \section +% \end{macro}^^A \@makeschapterhead +% \end{macro}^^A \@makechapterhead +% +% \subsubsection{Patches für \cls{tudposter} und \cls{tudmathposter}} +% +% Auch für die beiden Posterklassen \cls{tudmathposter} und \cls{tudposter} +% sowie das Paket \pkg{tudfonts} sind kleine Anpassungen notwendig. +% +% \begin{KOMAfont}{title} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% \begin{macro}{\subtitlefont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% \begin{macro}{\sectionfont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% \begin{macro}{\subsectionfont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% \begin{macro}{\if@sansmath} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% \begin{macro}{\tudfont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% Es werden einige Einstellungen für die Überschriften angepasst. +% \begin{macrocode} +\@ifclassloaded{tudmathposter}{% + \setkomafont{title}{\bfseries\tud@font@heading\Huge}% + \renewcommand*\subtitlefont{\fontseries{m}\tud@font@heading\huge}% + \if@mathevorgabe% + \renewcommand*\sectionfont{\univbn\LARGE}% + \renewcommand*\subsectionfont{\univbn\large}% + \fi% +}{} +\@ifpackageloaded{tudfonts}{% + \let\if@sansmath\if@tudfonts@sansmath% + \renewcommand*\tudfont[1]{\cdfont{#1}}% + \if@sansmath% + \if@tudfonts@eulermath% + \PackageWarningNoLine{tudscrfonts}{% + You're using non-serif fonts in math mode. It's\MessageBreak% + recommended to pass the option `noeulermath' to\MessageBreak% + package `tudfonts'% + }% + \fi% + \fi% +}{% + \newif\if@tudfonts@nodin% + \@ifundefined{if@sansmath}{\newif\if@sansmath}{}% +} +% \end{macrocode} +% \end{macro}^^A \tudfont +% \end{macro}^^A \if@sansmath +% \end{macro}^^A \subsectionfont +% \end{macro}^^A \sectionfont +% \end{macro}^^A \subtitlefont +% \end{KOMAfont}^^A title +% +% Für die Klasse \cls{tudposter} muss lediglich ein Schalter übernommen werden. +% +% \begin{macrocode} +\@ifclassloaded{tudposter}{% + \let\if@sansmath\if@tudposter@sansmath% +}{} +% \end{macrocode} +% +% \subsubsection{Patches für die \TUDScript-Klassen~v1.0} +% +% Für die Verwendung des Paketes \pkg{tudscrfonts} mit den \TUDScript-Klassen +% in der Version~v1.0 sind ebenfalls einige Anpassungen notwendig. +% +% Es muss Sorge dafür getragen werden, dass einige veraltete Befehle +% aktualisiert werden. Hierfür müssen diese \enquote{unschädlich} gemacht +% werden, noch bevor das Paket selbst in Erscheinung tritt. +% \begin{macrocode} +\ifbool{@tud@oldscrclass}{% + \AtBeginDocument{% + \DeclareSymbolFontAlphabet{\mathrm}{operators} + \if@tud@fontspec% + \DeclareFixedFont{\univLightHead}{\encodingdefault}% + {UniversLight}{m}{n}{\tud@head@fntsz}% + \DeclareFixedFont{\univBoldHead}{\encodingdefault}% + {UniversBold}{m}{n}{\tud@head@fntsz}% + \else% + \if@tud@univers% + \DeclareFixedFont{\univLightHead}{\encodingdefault}% + {\tud@univers}{l}{n}{\tud@head@fntsz}% + \DeclareFixedFont{\univBoldHead}{\encodingdefault}% + {\tud@univers}{b}{n}{\tud@head@fntsz}% + \fi% + \fi% + }% +}{} +% \end{macrocode} +% +% \iffalse +%</package&body&fonts> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx index 0c455951bd2..040d2c77f6d 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx @@ -1,4 +1,4 @@ -% \CheckSum{191} +% \CheckSum{195} % \iffalse meta-comment % % ============================================================================ @@ -51,23 +51,15 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-doc.dtx}[% - 2015/02/04 v2.03 TUD-KOMA-Script\space% -%</driver> -%<class>\NeedsTeXFormat{LaTeX2e}[2011/06/27] -%<class>\ProvidesClass{tudscrdoc}[% -%<*driver|class> -%!TUDVersion -%<class> class + 2015/06/12 v2.04 TUD-KOMA-Script\space% (source code documentation based on scrdoc)% ] -%</driver|class> -%<*driver> \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} \usepackage{babel} -\usepackage{tudscrfonts} % only load this package, if the fonts are installed{} +\usepackage{tudscrfonts} % only load this package, if the fonts are installed \KOMAoptions{parskip=half-} \CodelineIndex \RecordChanges @@ -81,7 +73,7 @@ % % \selectlanguage{ngerman} % -% \changes{v2.03}{2015/01/09}{\cls{tudscrdoc}: Indextyp Seitenstilebene}%^^A +% \changes{v2.03}{2015/01/09}{\cls{tudscrdoc}: Indextyp Seitenstilebene}^^A % % \section{Quelltextdokumentation für das \TUDScript-Bundle} % @@ -108,8 +100,9 @@ \setlength\topmargin{-1in} \setlength\headheight{0pt} \setlength\headsep{30pt} -\setlength\footskip{1.5\headsep} +\setlength\footskip{1.25\headsep} \setlength\textheight{\dimexpr\paperheight-2\headsep-\footskip\relax} +\AfterPackage{tudscrfonts}{\AtBeginDocument{\setlength\columnsep{10pt}}} \RequirePackage{dox}[2010/12/16] \def\generalname{Allgemeines} % \end{macrocode} @@ -149,11 +142,11 @@ \DeclareRobustCommand*{\env}[1]{\mbox{\texttt{#1}}} % \end{macrocode} % \begin{macro}{\ToDo} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % \begin{macro}{\@ToDo} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % \begin{macro}{\@@ToDo} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % Die Befehle für die ToDo-Notizen. Um in der gleichen Nomenklatur wie beim % Handbuch bleiben zu können, wird die Randnotizmarke als optionales Argument % hinter dem eigentlichen Text angegeben. @@ -196,13 +189,13 @@ \providecommand*\url[1]{\texttt{#1}}% \providecommand*\texorpdfstring[2]{#1}% \@ifpackageloaded{babel}{}{% - \ClassWarning{\tudcls@name}{Package `babel' not loaded}% + \ClassWarning{\TUDClassName}{Package `babel' not loaded}% \let\selectlanguage\@gobble% \let\glqq\relax% \let\grqq\relax% }% \@ifpackageloaded{csquotes}{}{% - \ClassWarning{\tudcls@name}{Package `csquotes' not loaded}% + \ClassWarning{\TUDClassName}{Package `csquotes' not loaded}% \providecommand\enquote[1]{\glqg#1\grqq{}}% }% \providecommand*\ifdin[2]{#2}% @@ -214,7 +207,7 @@ % \begin{macrocode} \AtBeginDocument{% \@ifundefined{tud@cdfont}{\def\tud@cdfont{0}}{}% - \ifnum\tud@cdfont>\z@\relax% + \ifnum\tud@cdfont>\z@\relax% true/heavy \RequirePackage{mweights}[2013/07/21]% \def\mddefault{m}% \def\mdseries@tt{m}% diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx index b2b3b3a1141..9621da464ce 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx @@ -1,4 +1,4 @@ -% \CheckSum{390} +% \CheckSum{647} % \iffalse meta-comment % % ============================================================================ @@ -51,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-fields.dtx}[% - 2015/02/12 v2.03 TUD-KOMA-Script (input fields)% + 2015/06/12 v2.04 TUD-KOMA-Script (input fields)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -72,7 +72,7 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A +% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A % % \section{Eingabefelder für den Nutzer} % @@ -90,7 +90,7 @@ % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse -%<*class> +%<*class|poster> % \fi % % \subsection{Textfelder} @@ -98,49 +98,77 @@ % Für das Setzen von Feldern werden bei einem übergebenen Argument führende und % angehängte Leerzeichen beseitigt. % \begin{macrocode} -\RequirePackage{trimspaces}[2009/09/17] +%<class>\RequirePackage{trimspaces}[2009/09/17] % \end{macrocode} % Von den Klassen benötigte Formularfelder werden definiert. % \begin{macro}{\faculty} % \begin{field}{\@faculty} -% Angabe der Fakultät für die TUD-Kopfzeile mit \cs{faculty}\marg{Fakultät}, -% wird im Makro \cs{@faculty} gespeichert. -% \begin{macrocode} -\newcommand*\@faculty{} -\newcommand*\faculty[1]{\gdef\@faculty{\trim@spaces{#1}}} -% \end{macrocode} -% \end{field}^^A \@faculty -% \end{macro}^^A \faculty +% \begin{field}{\@faculty@foot} +% \changes{v2.04}{2015/05/06}{neu}^^A % \begin{macro}{\department} % \begin{field}{\@department} -% Angabe der Einrichtung mit \cs{department}\marg{Fachrichtung} für die -% TUD-Kopfzeile, wird im Makro \cs{@department} gespeichert. -% \begin{macrocode} -\newcommand*\@department{} -\newcommand*\department[1]{\gdef\@department{\trim@spaces{#1}}} -% \end{macrocode} -% \end{field}^^A \@department -% \end{macro}^^A \department +% \begin{field}{\@department@foot} +% \changes{v2.04}{2015/05/06}{neu}^^A % \begin{macro}{\institute} % \begin{field}{\@institute} -% Angabe des Instituts für die TUD-Kopfzeile mit \cs{institute}\marg{Institut}, -% wird im Makro \cs{@institute} gespeichert. -% \begin{macrocode} -\newcommand*\@institute{} -\newcommand*\institute[1]{\gdef\@institute{\trim@spaces{#1}}} -% \end{macrocode} -% \end{field}^^A \@institute -% \end{macro}^^A \institute +% \begin{field}{\@institute@foot} +% \changes{v2.04}{2015/05/06}{neu}^^A % \begin{macro}{\chair} % \begin{field}{\@chair} -% Angabe des Lehrstuhls bzw. der Professur mit \cs{chair}\marg{Lehrstuhl} für -% die TUD-Kopfzeile, wird im Makro \cs{@chair} gespeichert. +% \begin{field}{\@chair@foot} +% \changes{v2.04}{2015/05/06}{neu}^^A +% Für die für die TUD-Kopfzeile kann mit \cs{faculty}\marg{Fakultät} die +% Fakultät angegeben werden, welche im Makro \cs{@faculty} gespeichert wird. +% Das gilt ebenso für die Angabe von Einrichtung, Institut und Lehrstuhls bzw. +% Professur. Dies erfolgt mit den Makros \cs{department}\marg{Fachrichtung}, +% \cs{institute}\marg{Institut} sowie \cs{chair}\marg{Lehrstuhl}, welche in den +% Feldern \cs{@department}, \cs{@institute} und \cs{@chair} gespeichert werden. +% +% Das optionale Argument wird zur Kompatibilität zum Paket \pkg{tudscrposter} +% vorgehalten. Wird das Paket geladen, kann mit dem optionalen Argument die +% Angabe der Struktureinheiten im Fußbereich variiert werden. Hierfür werden +% die Felder \cs{@faculty@foot}, \cs{@department@foot}, \cs{@institute@foot} +% sowie \cs{@chair@foot} definiert. % \begin{macrocode} +%<*class> +\newcommand*\@faculty{} +\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} +\newcommand*\@department{} +\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} +\newcommand*\@institute{} +\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[1]{\gdef\@chair{\trim@spaces{#1}}} -% \end{macrocode} +\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} +%</class> +%<*poster> +\newcommand*\@faculty@foot{} +\renewcommand*\faculty[2][\@empty]{\tud@foot@line@add{faculty}{#2}{#1}} +\newcommand*\@department@foot{} +\renewcommand*\department[2][\@empty]{\tud@foot@line@add{department}{#2}{#1}} +\newcommand*\@institute@foot{} +\renewcommand*\institute[2][\@empty]{\tud@foot@line@add{institute}{#2}{#1}} +\newcommand*\@chair@foot{} +\renewcommand*\chair[2][\@empty]{\tud@foot@line@add{chair}{#2}{#1}} +%</poster> +% \end{macrocode} +% \end{field}^^A \@chair@foot % \end{field}^^A \@chair % \end{macro}^^A \chair +% \end{field}^^A \@institute@foot +% \end{field}^^A \@institute +% \end{macro}^^A \institute +% \end{field}^^A \@department@foot +% \end{field}^^A \@department +% \end{macro}^^A \department +% \end{field}^^A \@faculty@foot +% \end{field}^^A \@faculty +% \end{macro}^^A \faculty +% +% \iffalse +%</class|poster> +%<*class> +% \fi +% % \begin{macro}{\extraheadline} % \begin{field}{\@extraheadline} % Für die Angabe einer freien zweiten bzw. dritten Textzeile im Kopf. Dies ist @@ -153,9 +181,9 @@ % \end{macro}^^A \extraheadline % \begin{macro}{\title} % \begin{field}{\@@title} -% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}%^^A +% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A % \begin{field}{\@@author} -% \changes{v2.02}{2014/07/25}{entfernt}%^^A +% \changes{v2.02}{2014/07/25}{entfernt}^^A % Für die spätere Verwendung im Dokument des Titels~-- beispielsweise für die % Aufgabenstellung oder die Selbstständigkeitserklärung~-- wird das Feld % \cs{@@title} definiert. In diesem wird der mit \cs{title} gesicherte Eintrag @@ -188,9 +216,9 @@ % \end{macro}^^A \authormore % \begin{macro}{\thesis} % \begin{field}{\@thesis} -% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}%^^A +% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A % \begin{field}{\@@thesis} -% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}%^^A +% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A % \begin{macro}{\subject} % \begin{field}{\@subject} % \begin{macro}{\tud@thesis} @@ -212,42 +240,41 @@ \newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} \newcommand*\tud@thanks{} \newcommand*\tud@thesis[2]{% - \AfterPreamble{% - \begingroup% + \begingroup% % \end{macrocode} % Hier das gleiche wie an anderer Stelle auch schon. Der Inhalt einer eventuell % vorhandenen Fußnote wird gesichert % \begin{macrocode} - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \setbox0\vbox{#2}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% - }% + \global\let\tud@thanks\relax% + \def\thanks##1{\gdef\tud@thanks{##1}}% + \let\footnote\thanks% + \sbox\z@{#2}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@lowerstring{\@tempa}{#2}% + \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% + \global\let\@tempa\@tempa% + \endgroup% + \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% + \@namedef{@#1}{#2}% + }}}}}}}}}}}}}% } \newcommand*\tud@@thesis[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\tudcls@name}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% \fi% \TUD@std@ifkey@lock{subjectthesis}{true}% }{% @@ -271,11 +298,11 @@ % \end{field}^^A \@thesis % \end{macro}^^A \thesis % \begin{macro}{\graduation} -% \changes{v2.02}{2014/05/16}{neu, von \cs{degree} umbenannt}%^^A +% \changes{v2.02}{2014/05/16}{neu, von \cs{degree} umbenannt}^^A % \begin{field}{\@graduation} -% \changes{v2.02}{2014/05/16}{neu, von \cs{@degree} umbenannt}%^^A +% \changes{v2.02}{2014/05/16}{neu, von \cs{@degree} umbenannt}^^A % \begin{field}{\@graduationabbr} -% \changes{v2.02}{2014/05/16}{neu, \cs{@degreeabbr} umbenannt}%^^A +% \changes{v2.02}{2014/05/16}{neu, \cs{@degreeabbr} umbenannt}^^A % Der angestrebte Abschluss bzw. der zu erwerbende akademische Grad, welcher % auf der Titelseite ausgegeben werden soll, wird im Makro \cs{@graduation} % gespeichert. Zusätzlich kann als optionales Argument die Kurzform des @@ -292,19 +319,40 @@ % \end{field}^^A \@graduationabbr % \end{field}^^A \@graduation % \end{macro}^^A \graduation +% +% \iffalse +%</class> +%<*class|poster> +% \fi +% % \begin{macro}{\professor} % \begin{field}{\@professor} +% \begin{field}{\@professor@foot} +% \changes{v2.04}{2015/05/06}{neu}^^A % Angabe des verantwortlichen Hochschullehrers für Titel und Aufgabenstellung, % wird im Makro \cs{@professor} gespeichert. % \begin{macrocode} +%<*class> \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[2][]{\gdef\@professor{#2}} +%</class> +%<*poster> +\newcommand*\@professor@foot{} +\renewcommand*\professor[2][\@empty]{\tud@foot@line@add{professor}{#2}{#1}} +%</poster> % \end{macrocode} +% \end{field}^^A \@professor@foot % \end{field}^^A \@professor % \end{macro}^^A \professor +% +% \iffalse +%</class|poster> +%<*class> +% \fi +% % \begin{macro}{\supervisor} -% \changes{v2.02}{2014/05/16}{Automatisch erzeugter Eintrag der Betreuer mit -% \cs{supervisor} für Selbstständigkeitserklärung verworfen}%^^A +% \changes{v2.02}{2014/05/16}{erzeugter Eintrag der Betreuer mit +% \cs{supervisor} für Selbstständigkeitserklärung verworfen}^^A % \begin{field}{\@supervisor} % (Erst- und Zweit"~)Betreuer bei Abschlussarbeiten, wird in \cs{@supervisor} % gespeichert. Mehrere Betreuer werden durch \cs{and} getrennt. @@ -315,8 +363,8 @@ % \end{field}^^A \@supervisor % \end{macro}^^A \supervisor % \begin{macro}{\supporter} -% \changes{v2.02}{2014/05/16}{Automatisch erzeugter Eintrag der Betreuer mit -% \cs{supervisor} für Selbstständigkeitserklärung verworfen}%^^A +% \changes{v2.02}{2014/05/16}{erzeugter Eintrag der Betreuer mit +% \cs{supervisor} für Selbstständigkeitserklärung verworfen}^^A % \begin{field}{\@supporter} % Diese Feld ist für die Hilfesteller bei der Anfertigung der Abschlussarbeit, % welche auf der Selbstständigkeitserklärung aufgeführt werden. Mehrere @@ -389,27 +437,45 @@ % \end{macro}^^A \placeofbirth % \begin{macro}{\publisher} % \begin{field}{\@publisher} -% \changes{v2.02}{2014/07/25}{entfernt}%^^A +% \changes{v2.02}{2014/07/25}{entfernt}^^A % Kleine Korrektur für \KOMAScript, der Befehl sollte im Singular stehen. % \begin{macrocode} \providecommand*\publisher[1]{\publishers{#1}} % \end{macrocode} % \end{field}^^A \@publisher % \end{macro}^^A \publisher +% \begin{length}{\tud@signatureskip} +% \changes{v2.04}{2015/05/06}{neu}^^A +% Für alle Formatvorlagen, welche eine Unterschriftenzeile bereitstellen, wird +% ein einheitlicher Abstand verwendet. +% \begin{macrocode} +\newlength\tud@signatureskip +\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} +% \end{macrocode} +% \end{length}^^A \tud@signatureskip % \begin{macro}{\confirmationclosing} % \begin{field}{\@confirmationclosing} -% \changes{v2.02}{2014/07/25}{\cs{@@date} mit \cs{@date} ersetzt}%^^A +% \changes{v2.02}{2014/07/25}{\cs{@@date} durch \cs{@date} ersetzt}^^A +% \changes{v2.04}{2015/06/10}{Nutzung von \cs{tud@split@author}}^^A % Als Abschluss der Selbstständigkeitserklärung für Ort und Unterschrift. % \begin{macrocode} \newcommand*\@confirmationclosing{% - \medskip% - \noindent\@place, \@date% - \\[20mm plus 10mm minus 10mm]% + \tud@datecheck% + \ifx\@date\@empty\else% + \medskip\noindent% + \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% + \fi% + \vskip\tud@signatureskip\noindent% \begingroup% - \let\and\hfil% \let\thanks\@gobble% \let\footnote\@gobble% - \@author% + \renewcommand*\tud@split@author[2]{% + \tud@multiple@fields@store{@author}{##1}% + \ignorespaces##1% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\hfil}% + }% + \tud@multiple@split{@author}% \hfil% \endgroup% } @@ -429,102 +495,6 @@ % \end{field}^^A \@place % \end{macro}^^A \place % -% \iffalse -%</class> -%<*supervisor> -% \fi -% -% \begin{macro}{\course} -% \begin{field}{\@course} -% Studiengang für den Kopf der Aufgabenstellung, wird im Makro \cs{@course} -% gespeichert. -% \begin{macrocode} -\newcommand*\@course{} -\newrobustcmd*\course[1]{\gdef\@course{#1}} -% \end{macrocode} -% \end{field}^^A \@course -% \end{macro}^^A \course -% \begin{macro}{\discipline} -% \changes{v2.02}{2014/05/16}{neu, von \cs{branch} umbenannt}%^^A -% \begin{field}{\@discipline} -% \changes{v2.02}{2014/05/16}{neu, von \cs{@branch} umbenannt}%^^A -% Studienrichtung bzw. Fachrichtung für den Kopf der Aufgabenstellung, wird -% im Makro \cs{@discipline} gespeichert. -% \begin{macrocode} -\newcommand*\@discipline{} -\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}} -% \end{macrocode} -% \end{field}^^A \@discipline -% \end{macro}^^A \discipline -% \begin{macro}{\chairman} -% \begin{field}{\@chairman} -% Angabe des Prüfungsausschussvorsitzenden für die Aufgabenstellung, wird im -% Makro \cs{@chairman} gespeichert. -% \begin{macrocode} -\newcommand*\@chairman{} -\newcommand*\chairman[1]{\gdef\@chairman{#1}} -% \end{macrocode} -% \end{field}^^A \@chairman -% \end{macro}^^A \chairman -% \begin{macro}{\contactperson} -% \changes{v2.02}{2014/05/16}{neu, \cs{contact} umbenannt}%^^A -% \begin{field}{\@contactperson} -% \changes{v2.02}{2014/05/16}{neu, \cs{@contact} umbenannt}%^^A -% \begin{macro}{\office} -% \begin{field}{\@office} -% \begin{macro}{\telephone} -% \changes{v2.02}{2014/05/16}{neu, \cs{phone} umbenannt}%^^A -% \begin{field}{\@telephone} -% \changes{v2.02}{2014/05/16}{neu, \cs{@phone} umbenannt}%^^A -% \begin{macro}{\emailaddress} -% \changes{v2.02}{2014/05/16}{neu, \cs{email} umbenannt}%^^A -% \begin{field}{\@emailaddress} -% \changes{v2.02}{2014/05/16}{neu, \cs{@email} umbenannt}%^^A -% Für einen Aushang kann eine oder mehrere Kontaktpersonen angegeben werden. -% Zusätzlich kann für jede einzelne Person ein Raum, eine Telefonnummer und die -% E-Mail"=Adresse hinzugefügt werden. -% \begin{macrocode} -\newcommand*\@contactperson{} -\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} -\newcommand*\@office{} -\newrobustcmd*\office[1]{\gdef\@office{#1}} -\newcommand*\@telephone{} -\newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} -\newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress[1]{\gdef\@emailaddress{#1}} -\AfterPackage*{hyperref}{% - \renewrobustcmd*\emailaddress[1]{% - \gdef\@emailaddress{\href{mailto:#1}{\nolinkurl{#1}}}% - }% -} -% \end{macrocode} -% \end{field}^^A \@emailaddress -% \end{macro}^^A \emailaddress -% \end{field}^^A \@telephone -% \end{macro}^^A \telephone -% \end{field}^^A \@office -% \end{macro}^^A \office -% \end{field}^^A \@contactperson -% \end{macro}^^A \contactperson -% \begin{macro}{\grade} -% \begin{field}{\@grade} -% \begin{field}{\@headline} -% Die Befehle dienen zum Abspeichern der entsprechenden Parameter innerhalb -% der neu definierten Umgebungen aus dem Paket \pkg{tudscrsupervisor}. -% \begin{macrocode} -\newcommand*\@grade{} -\newcommand*\grade[1]{\gdef\@grade{#1}} -\newcommand*\@headline{} -% \end{macrocode} -% \end{field}^^A \@headline -% \end{field}^^A \@grade -% \end{macro}^^A \grade -% -% \iffalse -%</supervisor> -%<*class> -% \fi -% % \subsection{Datumsfelder} % % \begin{macro}{\printdate} @@ -547,7 +517,7 @@ % Datumsfeld übergeben, als zweites Argument der gewünschte Inhalt. % \begin{macrocode} \newcommand*\tud@printdate[2]{% - \ifx\today#2% + \ifx\today#2\relax% \gdef#1{#2}% \else% \ifxblank{#2}% @@ -557,10 +527,35 @@ } % \end{macrocode} % \end{macro}^^A \tud@printdate +% \begin{macro}{\tud@datecheck} +% \changes{v2.04}{2015/05/06}{neu}^^A +% Das Makro wird vor der Nutzung des Datumfeldes genutzt um zu prüfen, ob ein +% selbiges explizit angegeben wurde. Falls dies nicht der Fall ist, wird eine +% Warnung ausgegeben. +% \begin{macrocode} +\newcommand*\tud@datecheck{% + \ifdefvoid{\@duedate}{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + Since a thesis is a self-contained work, an end\MessageBreak% + date should be specified by the author.\MessageBreak% + Nevertheless, today's date is used% + }% + }{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + It's substituted by the given due date% + }% + \global\let\@date\@duedate% + }% + \global\let\tud@datecheck\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@datecheck % \begin{macro}{\date} % \begin{field}{\@date} % \begin{field}{\@@date} -% \changes{v2.02}{2014/07/25}{entfernt}%^^A +% \changes{v2.02}{2014/07/25}{entfernt}^^A % \begin{field}{\@datemore} % Das Abgabedatum der Arbeit für den Titel, wird im originalen Makro \cs{@date} % gespeichert. Zusätzlich kann als optionales Argument eine Ergänzung angehängt @@ -571,8 +566,9 @@ % \begin{macrocode} \newcommand*\@datemore{} \renewcommand*\date[2][]{% - \gdef\@datemore{#1}% + \gdef\@datemore{\trim@spaces{#1}}% \tud@printdate{\@date}{#2}% + \global\let\tud@datecheck\relax% } % \end{macrocode} % \end{field}^^A \@datemore @@ -599,12 +595,212 @@ % \end{macrocode} % \end{field}^^A \@dateofbirth % \end{macro}^^A \dateofbirth +% \begin{macro}{\tud@multiple@split} +% \begin{macro}{\tud@multiple@@split} +% \begin{macro}{\tud@multiple@@@split} +% \begin{macro}{\tud@multiple@field} +% \changes{v2.04}{2015/05/12}{entfernt}^^A +% Für Felder, die mehrere Personen~-- getrennt durch \cs{and}~-- beinhalten +% können und für die zusätzliche Angaben durch die Verwendung weiterer Makros +% innerhalb des Feldbefehlargumentes möglich sind, werden diese Befehle zum +% Aufteilen der Angaben bereitgestellt. Mit diesen wird es möglich, die durch +% \cs{and} getrennten Teile separat auszuwerten. Für diese Unterfangen wird der +% Befehl \cs{tud@multiple@@split} definiert. Dessen obligatorisches Argument +% ist dabei das Feld mit dem auszuwertenden Inhalt. +% +% Dafür müssen für jedes so auszuwertende Feld zum einen zum Zeitpunkt der +% Ausgabe das entsprechende Makro \cs{tud@split\meta{Feld}} und zum anderen +% eine Liste der auszuwertenden lokalen Angaben \cs{tud@split\meta{Feld}@list} +% definiert sein. Momentan werden die beiden Felder \cs{@author} und~-- für die +% Pakete \pkg{tudscrsupervisor} sowie \pkg{tudscrposter}~-- \cs{@contactperson} +% zur Angabe zusätzlicher Informationen unterstützt. +% \begin{macrocode} +\newcommand*\tud@multiple@@split{}% +\newcommand*\tud@multiple@split[1]{% +% \end{macrocode} +% Sollte ein Feld verwendet werden, welches initial eine Fehlermeldung enthält, +% so die vorhandene Warnung ausgegeben und danach das Feld als leer definiert. +% \begin{macrocode} + \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% + \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + }{}% +% \end{macrocode} +% Das Makro \cs{tud@multiple@@split} wird so definiert, dass der Befehl +% \cs{and} als Separator für die einzelnen Argumente dient. Mit den beiden +% freigestellten Argumenten kann das Makro zur eigentlichen Ausgabe aufgerufen +% werden, welches aus dem obligatorischen Argument \val{\#1} konstruiert wird +% (\cs{tud@split\meta{Feld}}). An dieses wird der jeweils aktuelle Autor +% im ersten Argument und die restlichen im zweiten Argument übergeben. +% \begin{macrocode} + \def\tud@multiple@@split##1\and##2\relax{% + \expandafter\csname tud@split#1\endcsname{##1}{##2}% + }% + \begingroup% + \let\and\relax% +% \end{macrocode} +% Das Feld wird mit \cs{and} terminiert, um der Definition von +% \cs{tud@multiple@@split} in jedem Fall zu entsprechen. +% \begin{macrocode} + \edef\@tempa{\csname#1\endcsname\and}% + \expandafter\endgroup% + \expandafter\tud@multiple@@split\@tempa\relax% +} +% \end{macrocode} +% Der Befehl \cs{tud@multiple@@@split} prüft zum Schluss, ob noch weitere +% Autoren angegeben sind. Sollte dies der Fall sein, so wird der Inhalt des +% zweiten Argumentes ausgeführt und \cs{tud@multiple@@split} ein weiteres Mal +% aufgerufen, um so sequentiell alle Autoren abzuarbeiten. Dafür muss +% \cs{tud@multiple@@@split} innerhalb des verarbeitenden Makro +% (\cs{tud@split\meta{Feld}}) aufgerufen werden. +% \begin{macrocode} +\newcommand*\tud@multiple@@@split[2]{% + \ifx\relax#1\relax% + \let\@tempb\relax% + \else% + \def\@tempb{#2\tud@multiple@@split#1\relax}% + \fi% + \@tempb% +} +% \end{macrocode} +% \end{macro}^^A \tud@multiple@field +% \end{macro}^^A \tud@multiple@@@split +% \end{macro}^^A \tud@multiple@@split +% \end{macro}^^A \tud@multiple@split +% \begin{macro}{\tud@multiple@fields@store} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@multiple@fields@restore} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@multiple@setfields} +% \changes{v2.04}{2015/05/12}{entfernt}^^A +% Mit \cs{tud@multiple@fields@store} und \cs{tud@multiple@fields@restore} +% werden zwei Hilfsmakros definiert, um einzelne Feldinhalte lokal ändern und +% nach der Verarbeitung auf den ursprünglichen Wert zurücksetzen zu können. +% +% Nach der Sicherung der globalen Feldinhalte wird der übergebene Teilinhalt +% des zweiten Argumentes mit \cs{sbox}\cs{z@}\marg{\#2} in eine Box expandiert. +% Der Teilinhalt entspricht dabei dem aktuellen Teil des Feldes vor dem +% nächsten \cs{and}. Damit werden die ggf. angegebenen lokalen Felder gesetzt, +% welche in \cs{tud@split\meta{Feld}@list} aufgelistet sind ohne eine Ausgabe +% zu erzeugen. +% \begin{macrocode} +\newcommand*\tud@multiple@fields@store[2]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% + \fi% + }% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#2}% + \endgroup% +} +% \end{macrocode} +% Nach dem Verarbeiten und der Ausgabe der lokalen Felder werden die zuvor +% bestehenden Feldwerte zurückgesetzt. +% \begin{macrocode} +\newcommand*\tud@multiple@fields@restore[1]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{% + \tud@cmd@restore{@\@tempb}% + \global\csletcs{@\@tempb}{@\@tempb}% + }{}% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@multiple@setfields +% \end{macro}^^A \tud@multiple@fields@restore +% \end{macro}^^A \tud@multiple@fields@store +% Auf der Titelseite sowie für die Aufgabenstellung \pkg{tudscrsupervisor} und +% den Seitenfuß von Postern (\pkg{tudscrposter}) wird die Angabe einer +% kollaborativen Autorenschaft ermöglicht, wo für jeden einzelnen Autor weitere +% Angaben (Matrikelnummer etc.) gemacht werden können. Hierfür werden die +% folgenden Makros bereitgestellt. +% \begin{macro}{\tud@split@author} +% \changes{v2.02}{2014/07/25}{neu, aus Umbenennung \cs{tud@split@@author}}^^A +% \begin{macro}{\tud@split@author@list} +% \changes{v2.02}{2014/07/25}{neu, Umbenennung \cs{tud@split@@author@list}}^^A +% Der Befehl \cs{tud@split@author} wird hier als Dummy initialisiert und an der +% entsprechenden Stelle umdefiniert. Dies betrifft in den Klassen den Titel +% sowie die Aufgabenstellung in der Umgebung \env{task} und den Seitenfuß bei +% Postern. +% +% Innerhalb von \cs{tud@split@author@list} werden die Feldbefehle hinterlegt, +% die durch \cs{tud@multiple@fields@\dots} geprüft und ggf. initialisiert +% werden sollen. +% \begin{macrocode} +\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@list{% + authormore,matriculationyear,enrolmentyear,% + matriculationnumber,studentid,matriculationid,% + placeofbirth,birthplace,dateofbirth,birthday,% +} +% \end{macrocode} +% \end{macro}^^A \tud@split@author@list +% \end{macro}^^A \tud@split@author % % \iffalse %</class> %<*supervisor> % \fi % +% +% \subsection{Felder für \pkg{tudscrsupervisor} und \pkg{tudscrposter}} +% +% Die beiden genanntent Pakete stellen einige weitere Felder bereit bzw. +% erweitern deren Funktionalitäten. +% +% \begin{macro}{\course} +% \begin{field}{\@course} +% Studiengang für den Kopf der Aufgabenstellung, wird im Makro \cs{@course} +% gespeichert. +% \begin{macrocode} +\newcommand*\@course{} +\newrobustcmd*\course[1]{\gdef\@course{#1}} +% \end{macrocode} +% \end{field}^^A \@course +% \end{macro}^^A \course +% \begin{macro}{\discipline} +% \changes{v2.02}{2014/05/16}{neu, von \cs{branch} umbenannt}^^A +% \begin{field}{\@discipline} +% \changes{v2.02}{2014/05/16}{neu, von \cs{@branch} umbenannt}^^A +% Studienrichtung bzw. Fachrichtung für den Kopf der Aufgabenstellung, wird +% im Makro \cs{@discipline} gespeichert. +% \begin{macrocode} +\newcommand*\@discipline{} +\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}} +% \end{macrocode} +% \end{field}^^A \@discipline +% \end{macro}^^A \discipline +% \begin{macro}{\chairman} +% \begin{field}{\@chairman} +% Angabe des Prüfungsausschussvorsitzenden für die Aufgabenstellung, wird im +% Makro \cs{@chairman} gespeichert. +% \begin{macrocode} +\newcommand*\@chairman{} +\newcommand*\chairman[1]{\gdef\@chairman{#1}} +% \end{macrocode} +% \end{field}^^A \@chairman +% \end{macro}^^A \chairman +% \begin{macro}{\grade} +% \begin{field}{\@grade} +% \begin{field}{\@headline} +% Die Befehle dienen zum Abspeichern der entsprechenden Parameter innerhalb +% der neu definierten Umgebungen aus dem Paket \pkg{tudscrsupervisor}. +% \begin{macrocode} +\newcommand*\@grade{} +\newcommand*\grade[1]{\gdef\@grade{#1}} +\newcommand*\@headline{} +% \end{macrocode} +% \end{field}^^A \@headline +% \end{field}^^A \@grade +% \end{macro}^^A \grade % \begin{macro}{\issuedate} % \begin{field}{\@issuedate} % Angabe des Anfangsdatums für die Aufgabenstellung, wird im Makro @@ -630,6 +826,137 @@ % % \iffalse %</supervisor> +%<*supervisor|poster> +% \fi +% +% \begin{macrocode} +\@ifpackageloaded{% +%<supervisor> tudscrposter% +%<poster> tudscrsupervisor% +}{}{% +% \end{macrocode} +% \begin{macro}{\contactperson} +% \changes{v2.02}{2014/05/16}{neu, \cs{contact} umbenannt}^^A +% \begin{field}{\@contactperson} +% \changes{v2.02}{2014/05/16}{neu, \cs{@contact} umbenannt}^^A +% \begin{macro}{\office} +% \begin{field}{\@office} +% \begin{macro}{\telephone} +% \changes{v2.02}{2014/05/16}{neu, \cs{phone} umbenannt}^^A +% \begin{field}{\@telephone} +% \changes{v2.02}{2014/05/16}{neu, \cs{@phone} umbenannt}^^A +% \begin{macro}{\emailaddress} +% \changes{v2.02}{2014/05/16}{neu, \cs{email} umbenannt}^^A +% \begin{field}{\@emailaddress} +% \changes{v2.02}{2014/05/16}{neu, \cs{@email} umbenannt}^^A +% Für einen Aushang bzw. ein Poster kann eine oder mehrere Kontaktpersonen +% angegeben werden. Zusätzlich lassen sich für jede einzelne Person ein Raum, +% eine Telefonnummer und die E-Mail"=Adresse hinzugefügen. +% \begin{macrocode} + \newcommand*\@contactperson{} + \newcommand*\contactperson[1]{\gdef\@contactperson{#1}} + \newcommand*\@office{} + \newrobustcmd*\office[1]{\gdef\@office{#1}} + \newcommand*\@telephone{} + \newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} + \newcommand*\@emailaddress{} + \newrobustcmd*\emailaddress[2][]{\gdef\@emailaddress{#2}} + \AfterPackage*{hyperref}{% + \renewrobustcmd*\emailaddress[2][hidelinks]{% + \gdef\@emailaddress{% + \begingroup% + \hypersetup{#1}% + \href{mailto:#2}{#2}% + \endgroup% + }% + }% + }% +% \end{macrocode} +% \end{field}^^A \@emailaddress +% \end{macro}^^A \emailaddress +% \end{field}^^A \@telephone +% \end{macro}^^A \telephone +% \end{field}^^A \@office +% \end{macro}^^A \office +% \end{field}^^A \@contactperson +% \end{macro}^^A \contactperson +% \begin{macro}{\tud@multiple@fields@preset} +% \changes{v2.04}{2015/05/12}{neu}^^A +% Mit diesem Makro wird es möglich, die Inhalte bestimmter Felder aus einer +% definerten Liste \cs{tud@split\meta{Feld}@list} auf Standardwerte zu setzen. +% \begin{macrocode} + \newcommand*\tud@multiple@fields@preset[3]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \edef\@tempc{\@nameuse{\@tempb}}% + \ifstr{#2}{*}{% + \@namedef{@\@tempb}{}% + }{% + \begingroup% + \protected@expandtwoargs\in@{\@tempc}{\@nameuse{#1}}% + \ifin@% + \ifcsempty{@\@tempb}{\@tempc{#2}}{}% + \fi% + \endgroup% + }% + \fi% + }% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#3}% + \endgroup% + }% +% \end{macrocode} +% \end{macro}^^A \tud@multiple@fields@preset +% \begin{macro}{\tud@split@contactperson} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@split@contactperson@list} +% \changes{v2.04}{2015/05/12}{neu}^^A +% Mit diesen Befehlen werden für einen Aushang die Daten für einen oder mehrere +% Kontaktpersonen ausgegeben. +% \begin{macrocode} + \newcommand*\tud@split@contactperson[2]{} + \newcommand*\tud@split@contactperson@list{office,telephone,emailaddress} +% \end{macrocode} +% \end{macro}^^A \tud@split@contactperson@list +% \end{macro}^^A \tud@split@contactperson +% Damit sind alle Felder für die Pakete definiert. +% \begin{macrocode} +} +% \end{macrocode} +% +% \iffalse +%</supervisor|poster> +%<*poster> +% \fi +% +% \begin{macro}{\webpage} +% \changes{v2.04}{2015/05/13}{neu}^^A +% \begin{field}{\@webpage} +% \changes{v2.04}{2015/05/13}{neu}^^A +% Im Fußbereich eines Posters kann zusätzlich eine Web-Seite angegeben werden. +% \begin{macrocode} +\newcommand*\@webpage{} +\newcommand*\webpage[2][]{\gdef\@webpage{#2}} +\AfterPackage*{hyperref}{% + \renewcommand*\webpage[2][hidelinks]{% + \gdef\@webpage{% + \begingroup% + \hypersetup{#1}% + \href{#2}{#2}% + \endgroup% + }% + }% +}% +% \end{macrocode} +% \end{field}^^A \@webpage +% \end{macro}^^A \webpage +% +% \iffalse +%</poster> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx index d716c031a6b..7fa676b88e6 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1097} +% \CheckSum{1300} % \iffalse meta-comment % % ============================================================================ @@ -51,14 +51,18 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-fonts.dtx}[% - 2015/02/19 v2.03a TUD-KOMA-Script\space% + 2015/06/12 v2.04 TUD-KOMA-Script\space% %</driver> -%<package&identify>\NeedsTeXFormat{LaTeX2e}[2011/06/27] -%<package&identify>\ProvidesPackage{tudscrfonts}[% +%<package&identify>\NeedsTeXFormat{LaTeX2e} +%<package&identify>\ProvidesPackage{% +%<package&identify&!fontsizes> tudscrfonts% +%<package&identify&fontsizes> tudscrfontsizes% +%<package&identify>}[% %<*driver|package&identify> %!TUDVersion %<package> package - (corporate design fonts)% +%<!fontsizes> (corporate design fonts)% +%<fontsizes> (creatings fontsize files)% ] %</driver|package&identify> %<*driver> @@ -81,12 +85,12 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A -% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A -% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} entfernt}%^^A -% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}%^^A -% \changes{v2.02}{2014/09/30}{\pkg{tudscrfonts} Nutzung alter tud-Klassen -% mit neuen Schriftfamilien ermöglicht}%^^A +% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A +% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A +% \changes{v2.02}{2014/08/29}{Verwendung von \pkg{mweights} entfernt}^^A +% \changes{v2.02}{2014/08/29}{Unterstützung für \pkg{fontspec}}^^A +% \changes{v2.04}{2015/02/27}{Interaktion mit Paketen insbesondere für +% den Mathematiksatz verbessert}^^A % % \section{Schriften des \CDs} % @@ -98,17 +102,25 @@ % anstatt der einfachen Schalter wie beispielsweise \cs{univ\dots} besser die % Befehle \cs{text\dots}\marg{Auszeichnungstext} verwendet werden. % +% Die Schriften des \CDs können nicht nur mit den \TUDScript-Klassen sondern +% auch mit anderen \LaTeX-Dokumentklassen verwendet werden. Hierfür wird das +% Paket \pkg{tudscrfonts} bereitgestellt. Damit kann auf die Installtion der +% Schriftfamilien für die alten Klassen verzichtet werden. Im Vergleich zu +% dieser Installation werden dabei fehlende Glyphen ergänzt und Probleme beim +% Kerning behoben. +% % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse +%<*!fontsizes> %<*class&option> % \fi % -% \subsection{Verwendbarkeit des Paketes \pkg{tudscrfonts}} +% \subsection{Verwendbarkeit und Nutzung des Paketes \pkg{tudscrfonts}} % % \begin{macrocode} \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% @@ -120,55 +132,16 @@ %<*package&identify> % \fi % -% \subsection{Verwendung alter TUD-Klassen oder \TUDScript~v1.0} -% -% Das Paket kann genutzt werden, um alle möglichen veralteten Klassen mit den -% neuen Schriftfamilien zu verwenden. -% \begin{macro}{\if@tud@oldclass} -% \changes{v2.02}{2014/08/29}{neu}%^^A -% \begin{macro}{\if@tud@oldscrclass} -% \changes{v2.02}{2014/08/29}{neu}%^^A -% \begin{macrocode} -\newif\if@tud@oldclass -\newif\if@tud@oldscrclass -% \end{macrocode} -% Wenn eine der alten Klassen aus den Vorlagen von Klaus Bergmann geladen -% wurde, wird dies für spätere Anpassungen registriert. -% \ToDo{Klassen tudmathposter und tudposter einpflegen, -% \cs{tudfont\marg{\dots}}, besser \cs{cdfont} für Klassen und Paket}[v2.04] -% \ToDo{Klasse tudbeamer einpflegen}[v2.xx] -% \begin{macrocode} -\@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudform}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}% -\@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}% -% \end{macrocode} -% Soll das Paket \pkg{tudscrfonts} mit den \TUDScript-Klassen der Version~v1.0 -% genutzt werden, muss Sorge dafür getragen werden, dass einige veraltete -% Befehle aktualisiert werden. Hierfür müssen diese \enquote{unschädlich} -% gemacht werden, noch bevor das Paket selbst in Erscheinung tritt. -% \begin{macrocode} -\@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}% -\@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}% -\@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}% -\if@tud@oldscrclass - \let\TUDoptions\relax - \let\TUDoption\relax - \let\univln\relax - \let\univrn\relax - \let\univbn\relax - \let\univxn\relax - \let\univls\relax - \let\univrs\relax - \let\univbs\relax - \let\univxs\relax - \let\dinbn\relax +% Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket +% \pkg{scrextend} benötigt. Das Paket \pkg{trimspaces} ist für die alternative +% Schriftauswahl mit \cs{cdfont} bzw. \cs{textcdfont} notwendig. +% \begin{macrocode} +\ifcsname KOMAClassName\endcsname\else% + \RequirePackage{scrextend}[2013/12/19]% \fi +\RequirePackage{trimspaces}[2009/09/17] % \end{macrocode} -% \end{macro}^^A if@tud@oldscrclass -% \end{macro}^^A if@tud@oldclass +% % \iffalse %</package&identify> %<*(class|package)&option> @@ -186,20 +159,20 @@ % zu bevorzugen. Trotzdem werden beide Varianten, die Schriftfamilie des \CDs % für den Fließtext und die Überschriften zu verwenden, angeboten. % \begin{option}{fontspec} -% \changes{v2.02}{2014/08/29}{neu}%^^A +% \changes{v2.02}{2014/08/29}{neu}^^A % \begin{macro}{\if@tud@fontspec} -% \changes{v2.02}{2014/08/29}{neu}%^^A +% \changes{v2.02}{2014/08/29}{neu}^^A % \begin{macro}{\if@tud@univers} % \begin{macro}{\if@tud@dinbold} -% \changes{v2.02}{2014/08/29}{neu}%^^A +% \changes{v2.02}{2014/08/29}{neu}^^A % \begin{macro}{\tud@univers} % \begin{macro}{\tud@dinbold} % \begin{macro}{\tud@mathenc} -% \changes{v2.03a}{2015/02/19}{entfernt}%^^A +% \changes{v2.04}{2015/02/19}{entfernt}^^A % Mit der Option \opt{fontspec} kann die explizite Verwendung des Paketes -% \pkg{fontspec} aktiviert werden. Nur so ist eine vollständige Anpassung der -% Schriften an die Funktionalitäten des Paketes möglich. Zu Beginn werden -% Schalter und Hilfsmakros definiert. +% \pkg{fontspec} aktiviert werden. Alternativ kann das Paket auch durch den +% Nutzer selbst geladen werden. Zu Beginn werden Schalter und Hilfsmakros +% definiert. % \begin{macrocode} \newif\if@tud@univers \newif\if@tud@dinbold @@ -210,6 +183,16 @@ % \begin{macrocode} \newif\if@tud@fontspec \TUD@key{fontspec}[true]{% +%<*class> + \ClassWarning{\TUDClassName}% +%</class> +%<*package> + \PackageWarning{tudscrfonts} +%</package> + {% + The option key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% } % \end{macrocode} @@ -224,18 +207,18 @@ \AtEndOfPackage% %</package> {% - \TUD@key{fontspec}[] + \TUD@key{fontspec}[]% {% %<*class> - \ClassError{\tudcls@name} + \ClassError{\TUDClassName}% %</class> %<*package> - \PackageError{tudscrfonts} + \PackageError{tudscrfonts}% %</package> {Option `fontspec' too late}{% Option `fontspec' can only be set while loading the\MessageBreak% %<*class> - class `\tudcls@name' + class `\TUDClassName' %</class> %<*package> package `tudscrfonts' @@ -244,123 +227,246 @@ }% \FamilyKeyStateProcessed% }% -%<*package> - \@ifpackageloaded{fontspec}{% - \PackageError{tudscrfonts}{Package `fontspec' too early}{% - When using the option `fontspec' you must not load\MessageBreak% - the package `fontspec' before `tudscrfonts'.% - }% - }{} -%</package> \if@tud@fontspec% - \PreventPackageFromLoading[% -%<*class> - \ClassWarning{\tudcls@name}% -%</class> -%<*package> - \PackageWarning{tudscrfonts}% -%</package> - {% - You must not load the package `fontspec' as it is\MessageBreak% - loaded automatically at the end of the preamble.\MessageBreak% - If you want to pass options to `fontspec' use\MessageBreak% - `\string\PassOptionsToPackage{<option list>}{fontspec}' - }% - ]{fontspec} + \RequirePackage{fontspec}[2014/06/21]% \fi% } % \end{macrocode} -% Anschließend erfolgt die Verarbeitung der Option am Ende der Klasse. Zu -% allererst wird die Kodierung der Mathematikschriften für den weiteren Verlauf -% festgelegt. Da es so gut wie keine freien OpenType"=Schriften für den -% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option -% \opt{fontspec} \emph{immer} die PostScript"=Schriften verwendet, falls diese -% installiert sind. +% Sobald das Paket \opt{fontspec} manuell geladen wurde, wird auch der passende +% Schlüssel gesetzt. % \begin{macrocode} -\AtEndPreamble{% +\AfterPackage*{fontspec}{\@tud@fontspectrue} % \end{macrocode} -% Es wird überprüft, ob die PostScript"=Schriften installiert sind. Wird das -% Paket \pkg{fontspec} verwendet, werden diese nur für die Mathematikschriften -% verwendet. Sollte diese nicht vorhanden sein, wird eine Warnung ausgegeben. -% Ist die Option \opt{fontspec} nicht aktiviert, wird beim Nichtvorhandensein -% der Schriften eine Warnung ausgegeben und eine Rückfallebene definiert. -% \begin{macrocode} +% \end{macro}^^A \tud@mathenc +% \end{macro}^^A \tud@dinbold +% \end{macro}^^A \tud@univers +% \end{macro}^^A if@tud@dinbold +% \end{macro}^^A if@tud@univers +% \end{macro}^^A \if@tud@fontspec +% \end{option}^^A fontspec +% +% \iffalse +%</(class|package)&option> +%<*(class|package)&body> +% \fi +% +% \begin{macro}{\tud@font@greek@loop} +% \changes{v2.04}{2014/03/10}{neu}^^A +% Um ggf. Anpassungen an den griechischen Majuskeln vornehmenzu können, wird +% das Makro \cs{tud@font@greek@loop} definert, mit dem eine Namensliste der +% Buchstaben durchlaufen wird. +% \begin{macrocode} +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@greek@loop +% \begin{macro}{\tud@font@greek@declare} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Gamma} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Delta} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Theta} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Lambda} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Xi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Pi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Sigma} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Upsilon} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Phi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@Psi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upOmega} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upGamma} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upDelta} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upTheta} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upLambda} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upXi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upPi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upSigma} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upUpsilon} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upPhi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upPsi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@upOmega} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varGamma} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varDelta} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varTheta} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varLambda} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varXi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varPi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varSigma} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varUpsilon} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varPhi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varPsi} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@varOmega} +% \changes{v2.04}{2014/03/10}{neu}^^A +% In Anlehnung an verschiedene Pakete für Mathematikschriften werden Symbole +% für aufrechte und kursive Majuskeln der griechischen Lettern definiert. Damit +% auch bei diesen Buchstaben ein Umschalten für die unterschiedlichen Schriften +% möglich ist, wird eine interne Version definiert und im Bedarfsfall der +% dazugehörige \LaTeX-Befehl mit dieser überschrieben. +% \begin{macrocode} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +% \end{macrocode} +% \end{macro}^^A \tud@varOmega +% \end{macro}^^A \tud@varPsi +% \end{macro}^^A \tud@varPhi +% \end{macro}^^A \tud@varUpsilon +% \end{macro}^^A \tud@varSigma +% \end{macro}^^A \tud@varPi +% \end{macro}^^A \tud@varXi +% \end{macro}^^A \tud@varLambda +% \end{macro}^^A \tud@varTheta +% \end{macro}^^A \tud@varDelta +% \end{macro}^^A \tud@varGamma +% \end{macro}^^A \tud@upOmega +% \end{macro}^^A \tud@upPsi +% \end{macro}^^A \tud@upPhi +% \end{macro}^^A \tud@upUpsilon +% \end{macro}^^A \tud@upSigma +% \end{macro}^^A \tud@upPi +% \end{macro}^^A \tud@upXi +% \end{macro}^^A \tud@upLambda +% \end{macro}^^A \tud@upTheta +% \end{macro}^^A \tud@upDelta +% \end{macro}^^A \tud@upGamma +% \end{macro}^^A \tud@Omega +% \end{macro}^^A \tud@Psi +% \end{macro}^^A \tud@Phi +% \end{macro}^^A \tud@Upsilon +% \end{macro}^^A \tud@Sigma +% \end{macro}^^A \tud@Pi +% \end{macro}^^A \tud@Xi +% \end{macro}^^A \tud@Lambda +% \end{macro}^^A \tud@Theta +% \end{macro}^^A \tud@Delta +% \end{macro}^^A \tud@Gamma +% \end{macro}^^A \tud@font@greek@declare +% \begin{macro}{\tud@font@check} +% \changes{v2.04}{2014/03/10}{neu}^^A +% Mit diesem Makro wird überprüft, ob die relevanten PostScript"=Schriften +% Univers und DIN~Bold installiert sind. Beim Nichtvorhandensein der Schriften +% wird im Normalfall eine Warnung ausgegeben und eine Rückfallebene definiert. +% Wird das Paket \pkg{fontspec} verwendet, werden die Schriften nur für den +% Mathematiksatz verwendet. Sollten diese nicht vorhanden sein, wird eine +% Info in die Log-Datei geschrieben. +% \begin{macrocode} +\newcommand*\tud@font@check{% \if@tud@fontspec% \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@univers.fd}}% + \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% }% - \def\@tempb#1{% + \def\@tempc##1{% %<*class> - \ClassInfoNoLine{\tudcls@name}{% + \ClassInfoNoLine{\TUDClassName}% %</class> %<*package> - \PackageInfoNoLine{tudscrfonts}{% + \PackageInfoNoLine{tudscrfonts}% %</package> - `#1' fonts not found for math typesetting% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% }% }% \else% \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% }% - \def\@tempb#1{% + \def\@tempc##1{% + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} %<*class> - \ClassWarningNoLine{\tudcls@name}{% + \ClassWarningNoLine{\TUDClassName}% %</class> %<*package> - \PackageWarningNoLine{tudscrfonts}{% + \PackageWarningNoLine{tudscrfonts}% %</package> - `#1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - Please use on of the installation scripts out of the\MessageBreak% - tudscr-bundle, which suits to your OS or choose a\MessageBreak% - possible encoding. A fallback layout is used% + {% + `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% }% }% \fi% - \@tempa{\@tud@universtrue}{\@tempb{Univers}}% -% \end{macrocode} -% Ebenso wie bei der Univers"=Schriftfamilie wird auch bei DIN~Bold verfahren. -% \begin{macrocode} - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@dinbold.fd}}% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \fi% - \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}% -% \end{macrocode} -% Nachdem auf die Schriften geprüft wurde, kommt nun die Umsetzung der Option. -% Sollten die PostScript"=Schriften installiert sein, wird \pkg{fontspec} darin -% gehindert, die Mathematikschriften von sich aus anzupassen. -% \begin{macrocode} - \if@tud@fontspec% - \UnPreventPackageFromLoading{fontspec}% - \if@tud@univers\if@tud@dinbold% - \PassOptionsToPackage{no-math}{fontspec}% - \fi\fi% - \RequirePackage{fontspec}[2014/06/21]% - \fi% + \@tempa{\@tud@universtrue}{\@tempc{Univers}}% + \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \undef\tud@font@check% +} % \end{macrocode} -% Damit ist die Verarbeitung der Option \opt{fontspec} abgeschlossen. -% \begin{macrocode} +% \end{macro}^^A \tud@font@check +% \begin{macro}{\tud@font@init} +% \changes{v2.04}{2014/03/10}{neu}^^A +% Das Makro \cs{tud@font@init} wird für die Defintion aller Befehle zur Auswahl +% der Schriften des \CDs verwendet. Er wird als Hook genutzt und abhängig vom +% Schalter \cs{if@tud@fontspec} entweder für die Verwendung von \pkg{fontspec} +% oder des NFSS-Schemas mit \cs{preto}\cs{tud@font@init}\marg{Makro} angepasst. +% Nach der optionsabhängigen Definition der Schriftauswahlbefehle werden die +% Initialisierungsbefehle undefiniert gesetzt. +% \begin{macrocode} +\newcommand*\tud@font@init{% + \undef\tud@font@init@fontspec% + \undef\tud@font@init@nfss% + \undef\tud@font@init% } % \end{macrocode} -% \end{macro}^^A \tud@mathenc -% \end{macro}^^A \tud@dinbold -% \end{macro}^^A \tud@univers -% \end{macro}^^A if@tud@dinbold -% \end{macro}^^A if@tud@univers -% \end{macro}^^A \if@tud@fontspec -% \end{option}^^A fontspec -% -% \iffalse -%</(class|package)&option> -%<*(class|package)&body> -% \fi -% +% \end{macro}^^A \tud@font@init % \begin{macro}{\univln} % \begin{macro}{\univrn} % \begin{macro}{\univbn} @@ -369,104 +475,128 @@ % \begin{macro}{\univrs} % \begin{macro}{\univbs} % \begin{macro}{\univxs} -% Sollte die Univers installiert sein, werden mehrere Schalter zur expliziten -% Auswahl für die Schriftschnitte Univers~45~Light, Univers~55~Regular, -% Univers~65~Bold, Univers~75~Black, Univers~45~Light~Oblique, -% Univers~55~Regular~Oblique, Univers~65~Bold~Oblique sowie -% Univers~75~Black~Oblique definiert. Diese können so im Dokument unabhängig -% von der Option \opt{cdfont} genutzt werden -% \begin{macrocode} -\AtEndPreamble{% -% \end{macrocode} -% Dies geschieht abhängig von der Option \opt{fontspec}. -% \begin{macrocode} - \if@tud@fontspec% -% \end{macrocode} -% Für die ersten drei Schriften werden hierfür feste NFSS-Namen vergeben, um -% diese beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu können. -% \begin{macrocode} - \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \newcommand*\textuln[1]{{\univln#1}}% - \newcommand*\texturn[1]{{\univrn#1}}% - \newcommand*\textubn[1]{{\univbn#1}}% - \newcommand*\textuxn[1]{{\univxn#1}}% - \newcommand*\textuls[1]{{\univls#1}}% - \newcommand*\texturs[1]{{\univrs#1}}% - \newcommand*\textubs[1]{{\univbs#1}}% - \newcommand*\textuxs[1]{{\univxs#1}}% +% \begin{macro}{\textuln} +% \begin{macro}{\texturn} +% \begin{macro}{\textubn} +% \begin{macro}{\textuxn} +% \begin{macro}{\textuls} +% \begin{macro}{\texturs} +% \begin{macro}{\textubs} +% \begin{macro}{\textuxs} +% \begin{macro}{\dinbn} +% \begin{macro}{\@dinbn} +% \begin{macro}{\textdbn} +% Es werden mehrere Schalter zur expliziten Auswahl für die Schriftschnitte +% Univers~45~Light, Univers~55~Regular, Univers~65~Bold, Univers~75~Black, +% Univers~45~Light~Oblique, Univers~55~Regular~Oblique, Univers~65~Bold~Oblique +% sowie Univers~75~Black~Oblique und DIN~Bold definiert. Diese können so im +% Dokument unabhängig von der Option \opt{cdfont} genutzt werden. Bei der +% Schriftauswahl der DIN~Bold wird neben dieser noch die entsprechende +% Mathematikschrift aktiviert. +% \begin{macro}{\tud@font@init@fontspec} +% \changes{v2.04}{2014/03/10}{neu}^^A +% Zuerst wird das Makro für die Defintion nach \pkg{fontspec}-Manier definiert, +% danach . +% \begin{macrocode} +\newcommand*\tud@font@init@fontspec{% +% \end{macrocode} +% Für die Schriften werden hierfür feste NFSS-Namen vergeben, um diese unter +% anderem auch beim Setzen des Kopfes im \CD der \TnUD explizit auswählen zu +% können. +% \begin{macrocode} + \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% + \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% + \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% + \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% + \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% + \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% + \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% + \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% + \newcommand*\textuln[1]{{\univln##1}}% + \newcommand*\texturn[1]{{\univrn##1}}% + \newcommand*\textubn[1]{{\univbn##1}}% + \newcommand*\textuxn[1]{{\univxn##1}}% + \newcommand*\textuls[1]{{\univls##1}}% + \newcommand*\texturs[1]{{\univrs##1}}% + \newcommand*\textubs[1]{{\univbs##1}}% + \newcommand*\textuxs[1]{{\univxs##1}}% +% \end{macrocode} +% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. +% \begin{macrocode} + \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% + \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% + \newcommand*\textdbn[1]{{\dinbn##1}}% +} % \end{macrocode} +% \end{macro}^^A \tud@font@init@fontspec +% \begin{macro}{\tud@font@init@nfss} +% \changes{v2.04}{2014/03/10}{neu}^^A % Falls \opt{fontspec} nicht aktiv ist, werden die Schriften klassisch nach dem % NFSS definiert. % \begin{macrocode} - \else% - \if@tud@univers% - \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% +\newcommand*\tud@font@init@nfss{% + \if@tud@univers% + \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% % \end{macrocode} % Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese % einfach nichts machen. % \begin{macrocode} - \else% - \newcommand*\univln{}% - \newcommand*\univrn{}% - \newcommand*\univbn{}% - \newcommand*\univxn{}% - \newcommand*\univls{}% - \newcommand*\univrs{}% - \newcommand*\univbs{}% - \newcommand*\univxs{}% - \fi% + \else% + \newcommand*\univln{}% + \newcommand*\univrn{}% + \newcommand*\univbn{}% + \newcommand*\univxn{}% + \newcommand*\univls{}% + \newcommand*\univrs{}% + \newcommand*\univbs{}% + \newcommand*\univxs{}% + \fi% % \end{macrocode} -% \end{macro}^^A \univxs -% \end{macro}^^A \univbs -% \end{macro}^^A \univrs -% \end{macro}^^A \univls -% \end{macro}^^A \univxn -% \end{macro}^^A \univbn -% \end{macro}^^A \univrn -% \end{macro}^^A \univln -% \begin{macro}{\textuln} -% \begin{macro}{\texturn} -% \begin{macro}{\textubn} -% \begin{macro}{\textuxn} -% \begin{macro}{\textuls} -% \begin{macro}{\texturs} -% \begin{macro}{\textubs} -% \begin{macro}{\textuxs} % Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle % bereitgestellt. % \begin{macrocode} - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \DeclareTextFontCommand{\textuln}{\univln}% + \DeclareTextFontCommand{\texturn}{\univrn}% + \DeclareTextFontCommand{\textubn}{\univbn}% + \DeclareTextFontCommand{\textuxn}{\univxn}% + \DeclareTextFontCommand{\textuls}{\univls}% + \DeclareTextFontCommand{\texturs}{\univrs}% + \DeclareTextFontCommand{\textubs}{\univbs}% + \DeclareTextFontCommand{\textuxs}{\univxs}% +% \end{macrocode} +% Nach der Univers-Schriftfamilie wird für DIN~Bold äquivalent verfahren. +% \begin{macrocode} + \if@tud@dinbold% + \newcommand*\dinbn{% + \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% + \mathversion{dinbold}% + }% + \else% + \let\dinbn\sectfont% \fi% + \newcommand*\textdbn{}% + \DeclareTextFontCommand{\textdbn}{\dinbn}% +} % \end{macrocode} +% \end{macro}^^A \tud@font@init@fontspec +% \end{macro}^^A \textdbn +% \end{macro}^^A \@dinbn +% \end{macro}^^A \dinbn % \end{macro}^^A \textuxs % \end{macro}^^A \textubs % \end{macro}^^A \texturs @@ -475,156 +605,389 @@ % \end{macro}^^A \textubn % \end{macro}^^A \texturn % \end{macro}^^A \textuln -% \begin{macro}{\dinbn} -% \begin{macro}{\@dinbn} -% \begin{macro}{\textdbn} -% Schalter bzw. Befehl für die Auszeichnung in DIN~Bold. Bei der Schriftauswahl -% wird neben dieser noch die entsprechende Mathematikschrift aktiviert. Auch -% hier geschieht dies abhängig von der Option \opt{fontspec}. -% \begin{macrocode} -%<*package> - \ifdef{\sectfont}{}{\let\sectfont\relax}% -%</package> - \if@tud@fontspec% - \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% - \newcommand*\textdbn[1]{{\dinbn#1}}% - \else% - \if@tud@dinbold% - \newcommand*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% - }% - \else% - \let\dinbn\sectfont% - \fi% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% +% \end{macro}^^A \univxs +% \end{macro}^^A \univbs +% \end{macro}^^A \univrs +% \end{macro}^^A \univls +% \end{macro}^^A \univxn +% \end{macro}^^A \univbn +% \end{macro}^^A \univrn +% \end{macro}^^A \univln +% \begin{macro}{\cdfont} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\tudfont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A +% \begin{macro}{\textcdfont} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\@cdfont} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\tud@trimfontname} +% \changes{v2.04}{2015/03/04}{neu}^^A +% \begin{macro}{\tud@@trimfontname} +% \changes{v2.04}{2015/03/04}{neu}^^A +% Die Klassen \cls{tudposter} und \cls{tudmathposter} definieren den Befehl +% \cs{tudfont}, mit welchem die Schriften des \CDs der \TnUD auch mit Klarnamen +% ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont} +% definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird +% der Befehl \cs{textcdfont} bereitgestellt, der die Auswahl der Schrift als +% Textbefehl ermöglicht. +% \begin{macrocode} +\newcommand*\cdfont[1]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% \fi% +} +\providecommand*\tudfont[1]{\cdfont{#1}} +\newcommand*\textcdfont[2]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \fi% +} +\newcommand*\@cdfont[1]{% + \tud@trimfontname\@tempa{#1}% + \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% + \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% + \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% + \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% + \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% + \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \let\@tempc\relax% + \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + }}}}}}}}}}}}}}% +} +\newcommand*\tud@trimfontname[2]{% + \protected@edef\@tempa{\trim@spaces{#2}}% + \tud@lowerstring{\@tempa}{\@tempa}% + \tud@@trimfontname{ }{}% + \tud@@trimfontname{-}{}% + \tud@@trimfontname{_}{}% + \tud@@trimfontname{~}{}% + \tud@@trimfontname{ce}{}% + \tud@@trimfontname{ff}{}% + \tud@@trimfontname{univers}{}% + \tud@@trimfontname{60}{65}% + \tud@@trimfontname{light}{45}% + \tud@@trimfontname{regular}{55}% + \tud@@trimfontname{bold}{65}% + \tud@@trimfontname{black}{75}% + \tud@@trimfontname{4545}{45}% + \tud@@trimfontname{5555}{55}% + \tud@@trimfontname{6565}{65}% + \tud@@trimfontname{7575}{75}% + \tud@@trimfontname{italic}{oblique}% + \tud@@trimfontname{slanted}{oblique}% + \let#1\@tempa% +} +\newcommand*\tud@@trimfontname[2]{% + \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% + \@expandtwoargs\in@{#1}{\@tempa}% + \@whilesw\ifin@\fi{% + \expandafter\@tempb\@tempa\relax% + \@expandtwoargs\in@{#1}{\@tempa}% + }% +} % \end{macrocode} -% \end{macro}^^A \textdbn -% \end{macro}^^A \@dinbn -% \end{macro}^^A \dinbn +% \end{macro}^^A \tud@@trimfontname +% \end{macro}^^A \tud@trimfontname +% \end{macro}^^A \@cdfont +% \end{macro}^^A \textcdfont +% \end{macro}^^A \tudfont +% \end{macro}^^A \cdfont +% \begin{macro}{\tud@font@math@init} +% \changes{v2.04}{2014/03/10}{neu}^^A % \begin{macro}{\mv@univers} % \begin{macro}{\mv@universbold} -% Für die Mathematikschriften im FLießtext werden für die lateineischen Lettern +% \begin{macro}{\mv@dinbold} +% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart +% DIN~Bold verwendet}^^A +% Für die Mathematikschriften im Fließtext werden für die lateinischen Lettern % die Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die % griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus % dem \pkg{iwona}"~Paket die mathematische Symbole verwendet. Es werden zwei -% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. -% \begin{macrocode} - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% +% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. +% \begin{macrocode} +\newcommand*\mv@univers{}% +\newcommand*\mv@universbold{}% +\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@math@init{% + \if@tud@fontspec\if@tud@univers\if@tud@dinbold% + \@ifpackagewith{fontspec}{no-math}{}{% +%<*class> + \ClassWarningNoLine{\TUDClassName}% +%</class> +%<*package> + \PackageWarningNoLine{tudscrfonts}% +%</package> + {% + It's recommended to load package `fontspec' with\MessageBreak% + option `no-math'% + }% + }% + \fi\fi\fi% + \if@tud@univers% + \DeclareMathVersion{univers}% + \DeclareMathVersion{universbold}% + \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% + \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% + \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% + \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% + \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% + \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% + \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% + \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% + \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% +% \end{macrocode} +% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die +% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen. +% \begin{macrocode} + \@ifpackageloaded{amsfonts}{% + \DeclareFontFamily{U}{\tud@univers a}{}% + \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% + \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% + \DeclareFontFamily{U}{\tud@univers b}{}% + \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% + \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% + \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% + }{}% + \fi% % \end{macrocode} -% \end{macro}^^A \mv@universbold -% \end{macro}^^A \mv@univers -% \begin{macro}{\mv@dinbold} -% \changes{v2.02}{2014/06/27}{Symbole \val{symbols} werden aus Schriftart -% DIN~Bold verwendet}%^^A % Auch für die Schrift DIN~Bold werden mathematische Glyphen bereitgestellt. % Diese wurden aus dem \pkg{iwona}"=Paket entnommen. Auch die verwendeten % Symbole stammen aus diesem Paket. % \begin{macrocode} - \DeclareMathVersion{dinbold}% - \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% - \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \if@tud@dinbold% + \DeclareMathVersion{dinbold}% + \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% + \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% + \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \fi% +% \end{macrocode} +% Wird das Paket \pkg{unicode-math} verwendet, werden keine Einstellungen für +% die Mathematikschriften vorgenommen\dots +% \begin{macrocode} + \@ifpackageloaded{unicode-math}{% + \let\tud@font@math@set\relax% + \bool@set@lock{@tud@cdmath}{false}% + }{% +% \end{macrocode} +% Für die griechischen Buchstaben wird geprüft, ob durch ein Paket diese auf +% die kursive Variante gesetzt wurden. Ist dies der Fall, wird der Standardwert +% für die Option \opt{slantedgreek} auf \val{true} gesetzt. Anschließend +% erfolgt die \emph{Intialisierung} der griechischen Großbuchstaben mit dem +% Befehl \cs{tud@font@greek@init}. +% \begin{macrocode} + \let\@tempb\relax% + \let\@tempc\relax% + \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% + \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% + \@tempswafalse% + \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% + \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% + \if@tempswa% + \bool@std@lock{@tud@slantedgreek}{true}% + \fi% + \tud@font@greek@loop\tud@font@greek@init% +% \end{macrocode} +% Zum Schluss werden abhängig von der gewählten Einstellung für die Schriftart +% der Option \opt{cdfont} die benötigten Mathematikversionen geladen. +% \begin{macrocode} + \tud@font@math@set% + }% +% \end{macrocode} +% Daran anschließend werden die DIN-Bold-Schriften in einer Box verwendet, um +% das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren. +% \begin{macrocode} + \sbox\z@{\dinbn$ $}% +% \end{macrocode} +% Zuletzt wird der Befehl für die Initialisierung der Mathematikschriften +% undefiniert gesetzt. +% \begin{macrocode} + \undef\tud@font@math@init% +} % \end{macrocode} % \end{macro}^^A \mv@dinbold -% \begin{macro}{\upGamma} +% \end{macro}^^A \mv@universbold +% \end{macro}^^A \mv@univers +% \end{macro}^^A \tud@font@math@init +% Samtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige +% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt +% das Setzen der Mathematikschriften druch \cs{AtBeginDocument} innerhalb von +% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}. +% +% Für das Paket müssen zuvor einige Einstellungen angepasst werden, damit bei +% der Verwendung einer alten Klasse alles reibungslos funktioniert. +% \begin{macrocode} +%<*package> +\ifbool{@tud@oldscrclass}{% + \let\univln\relax% + \let\univrn\relax% + \let\univbn\relax% + \let\univxn\relax% + \let\univls\relax% + \let\univrs\relax% + \let\univbs\relax% + \let\univxs\relax% + \let\dinbn\relax% + \let\textuln\relax% + \let\texturn\relax% + \let\textubn\relax% + \let\textuxn\relax% + \let\textuls\relax% + \let\texturs\relax% + \let\textubs\relax% + \let\textuxs\relax% + \let\textdbn\relax% + \AtBeginDocument{% + \cmd@restore{rmdefault}% + \cmd@restore{sfdefault}% + \cmd@restore{bfdefault}% + \cmd@restore{mddefault}% + \cmd@restore{familydefault}% + \cmd@restore{seriesdefault}% + \cmd@restore{shapedefault}% + \cmd@restore{rmfamily}% + \cmd@restore{sffamily}% + \cmd@restore{ttfamily}% + }% +}{} +%</package> +% \end{macrocode} +% Jetzt kommt es zur eigentlichen Initialisierung der Schriften. +% \begin{macrocode} +%<class>\AtEndPreamble% +%<package>\AtBeginDocument% +{% + \tud@font@check% +% \end{macrocode} +% Es erfolgt das optionsabhängige Voranstellen von \cs{tud@font@init@fontspec} +% respektive \cs{tud@font@init@nfss} bei \cs{tud@font@init}. +% \begin{macrocode} + \if@tud@fontspec% + \preto\tud@font@init\tud@font@init@fontspec% + \else% + \preto\tud@font@init\tud@font@init@nfss% + \fi% +% \end{macrocode} +% Nachdem auf die Schriften geprüft wurde, erfolgt die Verarbeitung der Option +% \pkg{fontspec}. Da es so gut wie keine freien OpenType"=Schriften für den +% mathmatischen Formelsatz gibt, werden unabhängig vom Status der Option +% \emph{immer} die PostScript"=Schriften verwendet, falls diese installiert +% sind. Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen +% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten. +% \begin{macrocode} +%<*package> + \ifdef{\sectfont}{}{\let\sectfont\relax}% +%</package> + \tud@font@init% +% \end{macrocode} +% Damit die Schrift im Dokument später noch umgestellt werden kann, werden +% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird +% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal +% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie +% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu +% aktivieren. Die Einstellungen für den Mathematiksatz erfolgen erst zu Beginn +% des Dokumentes, um insbesondere auf Einstellungen des Paketes \pkg{fontspec} +% reagieren zu können. +% \begin{macrocode} + \tud@font@set[nomath]% +%<class> \AtBeginDocument{\tud@font@math@init}% +%<package> \tud@font@math@init% +} +% \end{macrocode} +% \begin{macro}{\tud@font@greek@init} +% \changes{v2.04}{2014/03/10}{neu}^^A % \begin{macro}{\upDelta} -% \begin{macro}{\upTheta} +% \begin{macro}{\upGamma} % \begin{macro}{\upLambda} -% \begin{macro}{\upXi} +% \begin{macro}{\upOmega} +% \begin{macro}{\upPhi} % \begin{macro}{\upPi} +% \begin{macro}{\upPsi} % \begin{macro}{\upSigma} +% \begin{macro}{\upTheta} % \begin{macro}{\upUpsilon} -% \begin{macro}{\upPhi} -% \begin{macro}{\upPsi} -% \begin{macro}{\upOmega} -% \begin{macro}{\varGamma} +% \begin{macro}{\upXi} % \begin{macro}{\varDelta} -% \begin{macro}{\varTheta} +% \begin{macro}{\varGamma} % \begin{macro}{\varLambda} -% \begin{macro}{\varXi} +% \begin{macro}{\varOmega} +% \begin{macro}{\varPhi} % \begin{macro}{\varPi} +% \begin{macro}{\varPsi} % \begin{macro}{\varSigma} +% \begin{macro}{\varTheta} % \begin{macro}{\varUpsilon} -% \begin{macro}{\varPhi} -% \begin{macro}{\varPsi} -% \begin{macro}{\varOmega} -% In Anlehnung an verschiedene Pakete für Mathematikschriften werden die -% Symbole für aufrechte und kursive Majuskeln der griechischen Lettern separat -% definiert. -% \begin{macrocode} - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}% - \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}% - \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}% - \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}% - \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}% - \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}% - \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}% - \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}% - \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}% - \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}% - \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}% - \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}% - \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}% - \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}% - \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}% - \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}% - \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}% +% \begin{macro}{\varXi} +% Dieses Makro sorgt dafür, dass neben den normalen Makros für die griechischen +% Majuskeln die zusätzlichen Befehle für das explizite Auswählen aufrechter und +% kursiver Buchstaben. +% \begin{macrocode} +\newcommand*\tud@font@greek@init[1]{% + \ifcsdef{up#1}{}{% + \if@tempswa% + \csletcs{up#1}{tud@up#1}% + \else% + \csletcs{up#1}{#1}% + \fi% + }% + \ifcsdef{var#1}{}{% + \if@tempswa% + \csletcs{var#1}{#1}% + \else% + \csletcs{var#1}{tud@var#1}% + \fi% + }% } % \end{macrocode} -% \end{macro}^^A \varOmega -% \end{macro}^^A \varPsi -% \end{macro}^^A \varPhi +% \end{macro}^^A \varXi % \end{macro}^^A \varUpsilon +% \end{macro}^^A \varTheta % \end{macro}^^A \varSigma +% \end{macro}^^A \varPsi % \end{macro}^^A \varPi -% \end{macro}^^A \varXi +% \end{macro}^^A \varPhi +% \end{macro}^^A \varOmega % \end{macro}^^A \varLambda -% \end{macro}^^A \varTheta -% \end{macro}^^A \varDelta % \end{macro}^^A \varGamma -% \end{macro}^^A \upOmega -% \end{macro}^^A \upPsi -% \end{macro}^^A \upPhi +% \end{macro}^^A \varDelta +% \end{macro}^^A \upXi % \end{macro}^^A \upUpsilon +% \end{macro}^^A \upTheta % \end{macro}^^A \upSigma +% \end{macro}^^A \upPsi % \end{macro}^^A \upPi -% \end{macro}^^A \upXi +% \end{macro}^^A \upPhi +% \end{macro}^^A \upOmega % \end{macro}^^A \upLambda -% \end{macro}^^A \upTheta -% \end{macro}^^A \upDelta % \end{macro}^^A \upGamma +% \end{macro}^^A \upDelta +% \end{macro}^^A \tud@font@greek@init % % \iffalse %</(class|package)&body> @@ -633,9 +996,9 @@ % % \begin{macro}{\tud@uclcnotmath} % \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im -% Argument des Befehls \cs{MakeTextUppercase}}%^^A +% Argument des Befehls \cs{MakeTextUppercase}}^^A % \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls -% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}%^^A +% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A % \begin{macro}{\@uclcnotmath} % Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit % \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase} @@ -664,8 +1027,8 @@ % \end{macrocode} % \end{macro}^^A \tud@font@heading % \begin{option}{cdfont} -% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}%^^A -% \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}%^^A +% \changes{v2.02}{2014/07/08}{Schlüsselwerte für \opt{cdhead}}^^A +% \changes{v2.02}{2014/08/29}{Schlüsselwerte für \opt{fontspec}}^^A % \begin{macro}{\tud@cdfont} % Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen % Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option @@ -719,71 +1082,94 @@ {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{pdftex}{13},{pdflatex}{13}% + {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% % \end{macrocode} % Die ersten drei Werte dienen zum Umschalten auf die Schriften des \CDs für % den Fließtext. % \begin{macrocode} - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@cdfont{0}% \if@atdocument\tud@font@set\fi% - \or% + \or% true \def\tud@cdfont{1}% \if@atdocument\tud@font@set\fi% - \or% + \or% heavy \def\tud@cdfont{2}% \if@atdocument\tud@font@set\fi% % \end{macrocode} % Hier wird die Verwendung von DIN~Bold für die Überschirften festgelegt. % \begin{macrocode} - \or% + \or% nodin \renewcommand*\tud@font@heading{\tud@RaggedRight}% - \or% - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright} + \or% din + \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% % \end{macrocode} % Die Schrift für den Querbalken. % \begin{macrocode} - \or% + \or% nohead %<*class> \TUDoptions{cdhead=false}% %</class> - \or% + \or% head %<*class> \TUDoptions{cdhead=true}% %</class> - \or% + \or% heavyhead %<*class> \TUDoptions{cdhead=heavy}% %</class> % \end{macrocode} % Die Mathematikschriften. % \begin{macrocode} - \or% + \or% nomath \TUDoptions{cdmath=false}% - \or% + \or% math \TUDoptions{cdmath=true}% % \end{macrocode} % Die Neigung der großen griechischen Buchstaben. % \begin{macrocode} - \or% + \or% upgreek \TUDoptions{slantedgreek=false}% - \or% + \or% slgreek \TUDoptions{slantedgreek=true}% % \end{macrocode} % Die Verwendung von \pkg{fontspec}. % \begin{macrocode} - \or% + \or% fontspec \TUDoptions{fontspec=true}% - \or% + \or% nofontspec \TUDoptions{fontspec=false}% \fi% +% \end{macrocode} +% Wird kein gültiger Wert für die Option angegeben, so wird davon ausgegangen, +% dass es sich bei diesem um die gewünschte Schriftgröße handelt. +% \begin{macrocode} + \else% + \KOMAoptions{fontsize=#1}% + \ifcase\tud@cdfont\relax% false to true + \def\tud@cdfont{1}% + \if@atdocument\tud@font@set\fi% + \fi% \fi% } % \end{macrocode} % \end{macro}^^A \tud@cdfont % \end{option}^^A cdfont +% \begin{option}{fontsize} +% \changes{v2.04}{2015/04/24}{Option aus \KOMAScript{} erweitert}^^A +% Mit der \KOMAScript-Option \opt{fontsize} kann die Schriftgröße eingestellt +% werden. Durch \TUDScript werden bei aktiven Schriften im \CD verschiedene +% Abstände mit \cs{tud@font@skip@set} schriftgrößenabhängig definiert. +% \begin{macrocode} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{fontsize}{% + \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \FamilyKeyStateProcessed% +} +% \end{macrocode} +% \end{option}^^A fontsize % % \iffalse %</(class|package)&option> @@ -791,15 +1177,50 @@ % \fi % % \begin{macro}{\tud@font@set} +% \changes{v2.04}{2015/03/01}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\if@tud@mweights} +% \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A +% \begin{macro}{\bfseries@rm} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\bfseries@sf} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\bfseries@tt} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mdseries@rm} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mdseries@sf} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mdseries@tt} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\rmdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\sfdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\ttdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\bfdef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A +% \begin{macro}{\mddef@ult} +% \changes{v2.04}{2015/04/24}{Unterstützung für das Paket \pkg{mweights}}^^A % Mit diesem Befehl werden entweder die normalen oder aber die Schriften des % \CDs aktiviert. Dabei wird die Option \opt{fontspec} beachtet. % \begin{macrocode} -\newcommand*\tud@font@set{% +\newif\if@tud@mweights +\AfterPackage*{mweights}{\@tud@mweightstrue} +\newcommand*\tud@font@set[1][]{% + \if@tud@mweights% + \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% + \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% + \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% + \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% + \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% + \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% + \fi% % \end{macrocode} % Werden die Schriften des \CDs deaktiviert, wird auf die zu Dokumentbeginn % gesicherten Schriften\footnote{mit und ohne Serifen} zurückgeschaltet. % \begin{macrocode} - \ifcase\tud@cdfont\relax% + \ifcase\tud@cdfont\relax% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% @@ -809,8 +1230,16 @@ \tud@cmd@restore{familydefault}% \tud@cmd@restore{seriesdefault}% \tud@cmd@restore{shapedefault}% + \if@tud@mweights% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% % \end{macrocode} -% Die Mathematikschriften werden auf ihr Stanardverhalten zurückgesetzt. +% Die Mathematikschriften werden auf ihr Standardverhalten zurückgesetzt. % \begin{macrocode} \bool@std@lock{@tud@cdmath}{false}% % \end{macrocode} @@ -824,7 +1253,7 @@ % Standardschriften vorher vorher gesichert, um diese später vollständig % wiederherstellen zu können. % \begin{macrocode} - \else% + \else% true/heavy \tud@cmd@store{rmdefault}% \tud@cmd@store{sfdefault}% \tud@cmd@store{ttdefault}% @@ -834,6 +1263,14 @@ \tud@cmd@store{familydefault}% \tud@cmd@store{seriesdefault}% \tud@cmd@store{shapedefault}% + \if@tud@mweights% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% % \end{macrocode} % Die Mathematikschriften werden bei der Verwendung der Schriften des \CDs~-- % falls nicht anders durch den Anwender definiert~-- auf Serifenlose gesetzt. @@ -850,7 +1287,7 @@ % \pkg{fontspec} oder\dots % \begin{macrocode} \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \setsansfont{Univers Light}[% BoldFont = Univers,% ItalicFont = Univers Light Oblique,% @@ -874,7 +1311,7 @@ ]% }{}% %</package> - \else% + \else% heavy \setsansfont{Univers}[% BoldFont = Univers Bold,% ItalicFont = Univers Oblique,% @@ -893,7 +1330,7 @@ \if@tud@univers% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \renewcommand*\bfdefault{m}% % \end{macrocode} % Bei den alten Klassen von Klaus Bergmann bzw. \TUDScript~v1.0 sind die fetten @@ -905,9 +1342,25 @@ }{}% %</package> \renewcommand*\mddefault{l}% - \else% + \if@tud@mweights% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy \renewcommand*\bfdefault{b}% \renewcommand*\mddefault{m}% + \if@tud@mweights% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% \fi% \fi% @@ -916,19 +1369,106 @@ \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% + \if@tud@mweights% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% % \end{macrocode} -% Zum Abschluss wird die gewählte Standardschrift aktiviert. Danach erfolgt die -% Behandlung der mathrematikschriften. Ganz zum Schluss wird das Layout erneut -% gesetzt. +% Zum Ende werden einige Abstände abhängig von der gewählten Schriftgröße +% definiert. Danach erfolgt die Behandlung der Mathematikschriften und die +% gewählte Standardschrift aktiviert. Zum Schluss wird das Layout erneuert. % \begin{macrocode} + \tud@font@skip@set% + \ifstr{#1}{nomath}{}{\tud@font@math@set}% \normalfont\selectfont% - \tud@font@math@set% %<*class> \tud@layout@process% %</class> } % \end{macrocode} +% \end{macro}^^A \mddef@ult +% \end{macro}^^A \bfdef@ult +% \end{macro}^^A \ttdef@ult +% \end{macro}^^A \sfdef@ult +% \end{macro}^^A \rmdef@ult +% \end{macro}^^A \mdseries@tt +% \end{macro}^^A \mdseries@sf +% \end{macro}^^A \mdseries@rm +% \end{macro}^^A \bfseries@tt +% \end{macro}^^A \bfseries@sf +% \end{macro}^^A \bfseries@rm +% \end{macro}^^A \if@tud@mweights % \end{macro}^^A \tud@font@set +% \begin{macro}{\tud@font@skip@set} +% \changes{v2.04}{2015/02/17}{neu}^^A +% \begin{macro}{\tud@font@skip@@set} +% \changes{v2.04}{2015/03/27}{neu}^^A +% \begin{macro}{\smallskipamount} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\medskipamount} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\bigskipamount} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\abovecaptionskip} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% \begin{macro}{\belowcaptionskip} +% \begin{macro}{\columnsep} +% \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A +% Mit diesem Befehl wird nach der Auswahl der Schriftgröße die Länge einiger +% Abstände angepasst, die bei den \KOMAScript-Klassen nicht abhängig von dieser +% sind. +% \begin{macrocode} +\newcommand*\tud@font@skip@set{% +% \end{macrocode} +% Es werden die Standardeinstellungen abhängig von \opt{cdfont} entweder +% wiederhergestellt oder gesichert und neu definiert. +% \begin{macrocode} + \tud@ifverlower{2.04}{}{% + \ifcase\tud@cdfont\relax% false + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \else% true/heavy + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \fi% + }% +} +% \end{macrocode} +% Hiermit erfolgt das eigentliche Setzen der Abstände. +% \begin{macrocode} +\newcommand*\tud@font@skip@@set{% + \setlength{\@tempdimb}{\f@baselineskip}% + \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% + {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% + \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% + {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% + \scr@setlength\bigskipamount{\@tempdimb}% + {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% + \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% + \tud@skip@set\belowcaptionskip{\z@}% + \tud@skip@set\columnsep{1.1\baselineskip}% +} +% \end{macrocode} +% \end{macro}^^A \columnsep +% \end{macro}^^A \belowcaptionskip +% \end{macro}^^A \abovecaptionskip +% \end{macro}^^A \bigskipamount +% \end{macro}^^A \medskipamount +% \end{macro}^^A \smallskipamount +% \end{macro}^^A \tud@font@skip@@set +% \end{macro}^^A \tud@font@skip@set % \begin{macro}{\tud@font@math@set} % Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen. % Die Option \opt{cdmath} wird ausgewertet, um zwischen dem Standard"~ und @@ -943,106 +1483,63 @@ \tud@cmd@store{mv@bold}% \let\mv@normal\mv@univers% \let\mv@bold\mv@universbold% + \tud@font@greek@loop\tud@font@greek@set% \else% \tud@cmd@restore{mv@normal}% \tud@cmd@restore{mv@bold}% + \tud@font@greek@loop\tud@font@greek@reset% \fi% \fi% \if@tud@slantedgreek% - \tud@font@greek@slanted% + \tud@font@greek@loop\tud@font@greek@slanted% \else% - \tud@font@greek@upright% + \tud@font@greek@loop\tud@font@greek@upright% \fi% \mathversion{normal}% } % \end{macrocode} % \end{macro}^^A \tud@font@math@set -% \begin{macro}{\tud@font@greek@upGamma} -% \begin{macro}{\tud@font@greek@offset} -% Damit innerhalb des Dokumentes problemlos zwischen aufrechten und kursiven -% griechischen Buchstaben für den Mathematiksatz gewechselt werden kann, wurden -% die folgenden beiden Befehle definiert, welche vom Prinzip aus dem Paket -% \pkg{sansmath} abgekupfert sind. Es wird der Offset der Kodierung zwischen den -% kursiven und den aufrechten Glyphen in \cs{tud@font@greek@offset} gespeichert. -% \begin{macrocode} -\newcount\tud@font@greek@upGamma -\tud@font@greek@upGamma\Gamma -\newcount\tud@font@greek@offset -\let\@tempa\relax -\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0} -\tud@font@greek@offset\@tempa -\advance\tud@font@greek@offset-\Gamma -% \end{macrocode} -% \end{macro}^^A \tud@font@greek@offset -% \end{macro}^^A \tud@font@greek@upGamma -% \begin{macro}{\tud@font@greek@slanted} -% \begin{macro}{\tud@font@greek@upright} -% Mit dem Makro \cs{tud@font@greek@slanted} wird die Kodierung der griechischen -% Majuskeln von \texttt{operator} auf \texttt{letter} geändert\dots -% \begin{macrocode} -\newcommand*\tud@font@greek@slanted{% - \ifnum\Gamma=\tud@font@greek@upGamma\relax\tud@font@greek@changeshape\fi% -} -% \end{macrocode} -% \dots und \cs{tud@font@greek@upright} macht alles wieder rückgängig. Dabei -% wird bei beiden Befehlen vor der Ausführung geprüft, ob dies überhauot -% notwendig ist. +% \begin{macro}{\tud@font@greek@set} +% \changes{v2.04}{2014/03/10}{neu}^^A +% \begin{macro}{\tud@font@greek@reset} +% \changes{v2.04}{2014/03/10}{neu}^^A +% Mit diesen beiden Befehlen kann innerhalb des Dokumentes problemlos zwischen +% griechischen Buchstaben für die CD-Schriften und den normalen gewechselt +% werden. % \begin{macrocode} -\newcommand*\tud@font@greek@upright{% - \ifnum\Gamma>\tud@font@greek@upGamma% - \tud@font@greek@offset=-\tud@font@greek@offset% - \tud@font@greek@changeshape% - \tud@font@greek@offset=-\tud@font@greek@offset% - \fi% +\newcommand*\tud@font@greek@set[1]{% + \tud@cmd@store{#1}% + \tud@cmd@store{up#1}% + \tud@cmd@store{var#1}% + \csletcs{#1}{tud@#1}% + \csletcs{up#1}{tud@up#1}% + \csletcs{var#1}{tud@var#1}% } -% \end{macrocode} -% \end{macro}^^A \tud@font@greek@upright -% \end{macro}^^A \tud@font@greek@slanted -% \begin{macro}{\tud@font@greek@def} -% \begin{macro}{\tud@font@greek@uc} -% \begin{macro}{\tud@font@greek@changeshape} -% Mit \cs{tud@font@greek@def} erfolgt die Umkodierung einer einzelnen -% griechischen Glyphe. Das Makro \cs{tud@font@greek@changeshape} arbeitet die -% Liste \cs{tud@font@greek@uc} ab. -% \begin{macrocode} -\newcommand*\tud@font@greek@def[2]{% - \expandafter\@tempcnta\csname #1\endcsname% - \advance\@tempcnta#2% - \expandafter\mathchardef\csname #1\endcsname\@tempcnta% +\newcommand*\tud@font@greek@reset[1]{% + \tud@cmd@restore{#1}% + \tud@cmd@restore{up#1}% + \tud@cmd@restore{var#1}% } % \end{macrocode} -% Die Liste enthält die Namen der Befehle für große griechische Buchstaben. -% Diese wird von \cs{tud@font@greek@changeshape} genutzt wird. +% \end{macro}^^A \tud@font@greek@reset +% \end{macro}^^A \tud@font@greek@set +% \begin{macro}{\tud@font@greek@upright} +% \begin{macro}{\tud@font@greek@slanted} +% \changes{v2.04}{2014/03/10}{neu}^^A +% Mit den beiden Befehlen kann die Definition der griechischen Buchstaben +% entweder auf aufrecht bzw. kursiv gesetzt werden. % \begin{macrocode} -\newcommand*\tud@font@greek@uc{% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% -} -\newcommand*\tud@font@greek@changeshape{% - \@for\@tempa:=\tud@font@greek@uc\do{% - \@expandtwoargs\tud@font@greek@def{\@tempa}{\tud@font@greek@offset}% - }% -} +\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} +\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} % \end{macrocode} -% \end{macro}^^A \tud@font@greek@changeshape -% \end{macro}^^A \tud@font@greek@uc -% \end{macro}^^A \tud@font@greek@def +% \end{macro}^^A \tud@font@greek@slanted +% \end{macro}^^A \tud@font@greek@upright % % \iffalse %</(class|package)&body> %<*(class|package)&option> % \fi % -% Damit die Schrift im Dokument später noch umgestellt werden kann, werden -% sämtliche Einstellungen erst zu Beginn des Dokumentes gesichert. Deshalb wird -% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal -% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie -% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu -% aktivieren. Auch die Einstellungen für den Mathematiksatz werden erstmalig -% durch \cs{tud@font@math@set} gesetzt. -% \begin{macrocode} -\AtBeginDocument{\tud@font@set}% -% \end{macrocode} -% % \subsection{Schriften für den Mathematiksatz} % % Da die Schriften des \CDs keinen Mathematiksatz beeinhalten, musste~-- @@ -1063,21 +1560,19 @@ \TUD@numkey@bool,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% - {upright}{2},{upgreek}{2},{uprightgreek}{2},{uprightGreek}{2},% - {slanted}{3},{slgreek}{3},{slantedgreek}{3},{slantedGreek}{3}% + {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% + {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \TUD@std@ifkey@lock{slantedgreek}{false}% \if@atdocument\tud@font@math@set\fi% - \or% + \or% true \bool@set@lock{@tud@cdmath}{true}% - \TUD@std@ifkey@lock{slantedgreek}{true}% \if@atdocument\tud@font@math@set\fi% - \or + \or% upgreek \TUDoptions{slantedgreek=false}% - \or + \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% @@ -1087,42 +1582,36 @@ % \end{macro}^^A \if@tud@cdmath % \end{option}^^A cdmath % \begin{option}{slantedgreek} +% \begin{option}{slantedGreek} +% \changes{v2.04}{2015/02/27}{neu}^^A % \begin{macro}{\if@tud@slantedgreek} % \begin{macro}{\if@tud@slantedgreek@locked} % Mit dieser Option kann die Neigung der griechischen Majuskeln geändert werden. % \begin{macrocode} -\newif\if@tud@slantedgreek -\TUD@key@lock{slantedgreek}[true]{% - \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}% +\bool@lock{@tud@slantedgreek} +\TUD@key{slantedgreek}[true]{% + \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \bool@set@lock{@tud@slantedgreek}{#1}% \if@atdocument\tud@font@math@set\fi% \fi% } +\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} % \end{macrocode} % \end{macro}^^A \if@tud@slantedgreek@locked % \end{macro}^^A \if@tud@slantedgreek +% \end{option}^^A slantedGreek % \end{option}^^A slantedgreek % % \iffalse %</(class|package)&option> -%<*package&execute> -% \fi -% -% Für das Paket \pkg{tudscrfonts} werden die Schriften aktiviert und die an das -% Paket übergebenen Optionen ausgeführt. -% \begin{macrocode} -\TUDoptions{cdfont=true} -\DeclareOption*{\TUDoptions{\CurrentOption}} -\TUDProcessOptions\relax -% \end{macrocode} -% -% \iffalse -%</package&execute> %<*class&body> % \fi % % \begin{macro}{\tud@head@font@set} -% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}%^^A +% \changes{v2.02}{2014/07/08}{Unterstützung für \opt{cdhead} hinzugefügt}^^A +% \changes{v2.03}{2015/01/30}{Fix für die Änderung von \cs{spaceskip} durch +% \pkg{ragged2e}}^^A % \begin{macro}{\tud@head@font@bold} % \begin{macro}{\tud@head@font@light} % Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber @@ -1135,8 +1624,6 @@ \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@set{% -% \changes{v2.03}{2015/01/30}{Fix für die Änderung von \cs{spaceskip} durch -% \pkg{ragged2e}}%^^A % \end{macrocode} % Das Paket \pkg{ragged2e} ändert im Zweifelsfall die Länge \cs{spaceskip}. Um % den Kopf unbeeinflusst davon immer in der gleichen Gestalt erscheinen zu @@ -1144,7 +1631,8 @@ % \begin{macrocode} \ifdef{\@raggedtwoe@everyselectfont}{% \let\@raggedtwoe@everyselectfont\relax% - \spaceskip\z@\selectfont% + \setlength\spaceskip{\z@}% + \selectfont% }{}% % \end{macrocode} % Zuerst die Rückfallebene für den Fall, dass keine Schriften im \CD verendet @@ -1158,21 +1646,21 @@ % Die Option \opt{cdhead} wird ausgewertet. % \begin{macrocode} \@tempswafalse% - \ifcase\tud@head@font\relax% - \ifnum\tud@cdfont>\z@\relax% - \ClassWarning{\tudcls@name}{% + \ifcase\tud@head@font\relax% false + \ifnum\tud@cdfont>\z@\relax% true/heavy + \ClassWarning{\TUDClassName}{% It isn't possible to use `cdhead=false'\MessageBreak% together with `cdfont=true'% }% \@tempswatrue% \fi% - \else% + \else% true/heavy \@tempswatrue% \fi% % \end{macrocode} % Die Schriften für den Kopf im \CD werden aktiviert. % \begin{macrocode} - \if@tempswa% + \if@tempswa% true/heavy % \end{macrocode} % Damit \cs{DeclareFixedFont} zusammen mit \pkg{fontspec} verwendet werden % kann, wurde zu Beginn der Klasse den drei benötigten Schriftschnitten der @@ -1181,10 +1669,10 @@ \if@tud@fontspec% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversLight}{m}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversRegular}{m}{n}{\tud@head@font@size}% \fi% @@ -1195,10 +1683,10 @@ \if@tud@univers% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{m}{n}{\tud@head@font@size}% \fi% @@ -1217,7 +1705,7 @@ % \fi % % \begin{macro}{\ifdin} -% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A +% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A % Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig % wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für % die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe @@ -1236,129 +1724,28 @@ } % \end{macrocode} % \end{macro}^^A \ifdin -% Wird das Paket \pkg{tudscrfonts} mit den alten TUD-Klassen oder \TUDScript in -% der Version~v1.0 verwendet, müssen einige Kompatibilitätseinstellungen -% vorgenmommen werden. Dies betrifft insbesondere allerhand darin definierter, -% fixer Schriften sowie die Mathematikschriften. -% \begin{macrocode} -%<*package> -\AtBeginDocument{% - \ifbool{@tud@oldclass}{% - \if@tud@fontspec% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {UniversLight}{m}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {UniversLightOblique}{m}{n}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {UniversBold}{m}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {UniversLight}{m}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {UniversLightOblique}{m}{n}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {UniversBold}{m}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {UniversLight}{m}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {UniversLightOblique}{m}{n}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {UniversBold}{m}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {UniversLight}{m}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {UniversLightOblique}{m}{n}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {UniversBold}{m}{n}{15}% - \else% - \if@tud@univers% - \DeclareFixedFont{\univLightVII}{\encodingdefault}% - {\tud@univers}{l}{n}{7}% - \DeclareFixedFont{\univLightObliqueVII}{\encodingdefault}% - {\tud@univers}{l}{sl}{7}% - \DeclareFixedFont{\univBoldVII}{\encodingdefault}% - {\tud@univers}{b}{n}{7}% - \DeclareFixedFont{\univLightIX}{\encodingdefault}% - {\tud@univers}{l}{n}{9}% - \DeclareFixedFont{\univLightObliqueIX}{\encodingdefault}% - {\tud@univers}{l}{sl}{9}% - \DeclareFixedFont{\univBoldIX}{\encodingdefault}% - {\tud@univers}{b}{n}{9}% - \DeclareFixedFont{\univLightXI}{\encodingdefault}% - {\tud@univers}{l}{n}{11}% - \DeclareFixedFont{\univLightObliqueXI}{\encodingdefault}% - {\tud@univers}{l}{sl}{11}% - \DeclareFixedFont{\univBoldXI}{\encodingdefault}% - {\tud@univers}{b}{n}{11}% - \DeclareFixedFont{\univLightXV}{\encodingdefault}% - {\tud@univers}{l}{n}{15}% - \DeclareFixedFont{\univLightObliqueXV}{\encodingdefault}% - {\tud@univers}{l}{sl}{15}% - \DeclareFixedFont{\univBoldXV}{\encodingdefault}% - {\tud@univers}{b}{n}{15}% - \fi% - \fi% - \if@sansmath% - \DeclareSymbolFont{aunLetters}{OT1}{\tud@univers}{l}{sl}% - \SetSymbolFont{aunLetters}{bold}{OT1}{\tud@univers}{b}{sl}% - \DeclareSymbolFont{aunOperators}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{aunOperators}{bold}{OT1}{\tud@univers}{b}{n}% - \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}% - \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}% - \DeclareMathAlphabet\mathbf{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet\mathbf{bold}{OT1}{\tud@univers}{b}{n}% - \DeclareMathAlphabet\mathit{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet\mathit{bold}{OT1}{\tud@univers}{l}{sl}% - \fi% - \let\dinBold\dinbn% - \let\dinfamily\dinbn% - }{}% - \ifbool{@tud@oldscrclass}{% - \cmd@restore{rmdefault}% - \cmd@restore{sfdefault}% - \cmd@restore{bfdefault}% - \cmd@restore{mddefault}% - \cmd@restore{familydefault}% - \cmd@restore{seriesdefault}% - \cmd@restore{shapedefault}% - \cmd@restore{rmfamily}% - \cmd@restore{sffamily}% - \cmd@restore{ttfamily}% - \DeclareSymbolFontAlphabet{\mathrm}{operators} - \if@tud@fontspec% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {UniversLight}{m}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {UniversBold}{m}{n}{\tud@head@fntsz}% - \else% - \if@tud@univers% - \DeclareFixedFont{\univLightHead}{\encodingdefault}% - {\tud@univers}{l}{n}{\tud@head@fntsz}% - \DeclareFixedFont{\univBoldHead}{\encodingdefault}% - {\tud@univers}{b}{n}{\tud@head@fntsz}% - \fi% - \fi% - }{}% -} -%</package> -% \end{macrocode} -% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die -% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen. -% \begin{macrocode} -\AfterPackage*{amsfonts}{% - \DeclareFontFamily{U}{msa}{}% - \DeclareFontShape{U}{msa}{m}{n}{% - <-9>cmbras8% - <9-10>cmbras9% - <10->cmbras10% - }{}% - \DeclareFontFamily{U}{msb}{}% - \DeclareFontShape{U}{msb}{m}{n}{% - <-9>cmbrbs8% - <9-10>cmbrbs9% - <10->cmbrbs10% - }{}% +% +% \subsection{Bedingte Majuskeln für Überschriften} +% +% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch +% tatsächlich die Schrift DIN~Bold verwendet wird. +% \begin{macro}{\tud@makeuppercase} +% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die +% richtige Schriftfamilie verwendet wird. +% \begin{macrocode} +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% +% \end{macrocode} +% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden +% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen +% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten +% verschoben. Allerdings ist das ein ziemlich übler Hack. +% \begin{macrocode} + \protect\vphantom{\"A\"O\"U}% +% \addtokomafont{section}{\strut\ignorespaces}% } % \end{macrocode} +% \end{macro}^^A \tud@makeuppercase % % \subsection{Anpassungen für das Paket \pkg{ragged2e}} % @@ -1386,36 +1773,840 @@ % \end{macro}^^A \tud@ragged2e % \end{macro}^^A \tud@raggedright % +% \subsection{Anpassungen für das Paket \pkg{siunitx}} +% +% \begin{macro}{\lseries} +% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für +% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier +% Rechnung getragen. +% \begin{macrocode} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont} +} +% \end{macrocode} +% \end{macro}^^A \lseries +% % \iffalse %</(class|package)&body> +%</!fontsizes> +% \fi +% +% \Finale +% +\endinput +% +% \iffalse +%<*fontsizes> +% \fi +% +% \subsection{Erzeugen von Schriftgrößendateien} +% +% Ab der \TUDScript-Version~v2.04 können sowohl eigene Schriftgrößendateien +% erzeugt werden als auch zusätzlich ein~-- aus \KOMAScript{} abgewandelter~-- +% Befehl zur automatischen Erzeugung dieser Dateien genutzt werden. Im Laufe +% der Weiterentwicklung von \TUDScript hat sich jedoch gezeigt, dass dies +% spätestens mit \KOMAScript~v3.17 nicht notwendig ist. Deshalb wird auf die +% Verwendung dieser Möglichkeiten vorerst verzichtet. Die Schriftgrößendateien +% und das Paket \pkg{scrfontsizes} werden momentan nicht generiert. Dennoch +% bleibt der Quelltext bis auf weiteres hier bestehen. +% +% \iffalse +%<*10pt|11pt|12pt> +% \fi +% +% Erst ein bisschen Geplänkel. +% \begin{macrocode} +\ProvidesFile{% +%<10pt> tudscrsize10pt.clo% +%<11pt> tudscrsize11pt.clo% +%<12pt> tudscrsize12pt.clo% +}[% +%!TUDVersion + font size class option +%<10pt> (10pt)% +%<11pt> (11pt)% +%<12pt> (12pt)% +] +% \end{macrocode} +% Und jetzt die Schriftgrößendefinition. +% \begin{macrocode} +\def\normalsize{% +%<*10pt> + \@setfontsize\normalsize{10}{12.5\p@}% + \abovedisplayskip 10\p@ \@plus2.5\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ +%</10pt> +%<*11pt> + \@setfontsize\normalsize{11}{13.75\p@}% + \abovedisplayskip 11\p@ \@plus2.75\p@ \@minus5.5\p@ + \abovedisplayshortskip \z@ \@plus3.3\p@ + \belowdisplayshortskip 6.6\p@ \@plus3.3\p@ \@minus3.3\p@ +%</11pt> +%<*12pt> + \@setfontsize\normalsize{12}{15\p@}% + \abovedisplayskip 12\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3.6\p@ + \belowdisplayshortskip 7.2\p@ \@plus3.6\p@ \@minus3.6\p@ +%</12pt> + \belowdisplayskip\abovedisplayskip + \let\@listi\@listI +} +\def\small{% +%<*10pt> + \@setfontsize\small{9}{11.25\p@}% + \abovedisplayskip 9\p@ \@plus2.25\p@ \@minus4.5\p@ + \abovedisplayshortskip \z@ \@plus2.7\p@ + \belowdisplayshortskip 5.4\p@ \@plus2.7\p@ \@minus2.7\p@ +%</10pt> +%<*11pt> + \@setfontsize\small{9.9}{12.375\p@}% + \abovedisplayskip 9.9\p@ \@plus2.475\p@ \@minus4.95\p@ + \abovedisplayshortskip \z@ \@plus2.97\p@ + \belowdisplayshortskip 5.94\p@ \@plus2.97\p@ \@minus2.97\p@ +%</11pt> +%<*12pt> + \@setfontsize\small{10.8}{13.5\p@}% + \abovedisplayskip 10.8\p@ \@plus2.7\p@ \@minus5.4\p@ + \abovedisplayshortskip \z@ \@plus3.24\p@ + \belowdisplayshortskip 6.48\p@ \@plus3.24\p@ \@minus3.24\p@ +%</12pt> + \def\@listi{% + \leftmargin\leftmargini +%<*10pt> + \topsep 6\p@ \@plus2\p@ \@minus3\p@ + \parsep 3\p@ \@plus1.5\p@ \@minus\p@ +%</10pt> +%<*11pt> + \topsep 6.6\p@ \@plus2.2\p@ \@minus3.3\p@ + \parsep 3.3\p@ \@plus1.65\p@ \@minus1.1\p@ +%</11pt> +%<*12pt> + \topsep 7.2\p@ \@plus2.4\p@ \@minus3.6\p@ + \parsep 3.6\p@ \@plus1.8\p@ \@minus1.2\p@ +%</12pt> + \itemsep\parsep + }% + \belowdisplayskip\abovedisplayskip +} +\def\footnotesize{% +%<*10pt> + \@setfontsize\footnotesize{8}{10\p@}% + \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2.4\p@ + \belowdisplayshortskip 4.8\p@ \@plus2.4\p@ \@minus2.4\p@ +%</10pt> +%<*11pt> + \@setfontsize\footnotesize{8.8}{11\p@}% + \abovedisplayskip 8.8\p@ \@plus2.2\p@ \@minus4.4\p@ + \abovedisplayshortskip \z@ \@plus2.64\p@ + \belowdisplayshortskip 5.28\p@ \@plus2.64\p@ \@minus2.64\p@ +%</11pt> +%<*12pt> + \@setfontsize\footnotesize{9.6}{12\p@}% + \abovedisplayskip 9.6\p@ \@plus2.4\p@ \@minus4.8\p@ + \abovedisplayshortskip \z@ \@plus2.88\p@ + \belowdisplayshortskip 5.76\p@ \@plus2.88\p@ \@minus2.88\p@ +%</12pt> + \def\@listi{% + \leftmargin\leftmargini +%<*10pt> + \topsep 4.5\p@ \@plus1.5\p@ \@minus2.25\p@ + \parsep 2.25\p@ \@plus1.125\p@ \@minus\p@ +%</10pt> +%<*11pt> + \topsep 4.95\p@ \@plus1.65\p@ \@minus2.475\p@ + \parsep 2.475\p@ \@plus1.2375\p@ \@minus\p@ +%</11pt> +%<*12pt> + \topsep 5.4\p@ \@plus1.8\p@ \@minus2.7\p@ + \parsep 2.7\p@ \@plus1.35\p@ \@minus\p@ +%</12pt> + \itemsep\parsep + }% + \belowdisplayskip\abovedisplayskip +} +%<*10pt> +\def\scriptsize{\@setfontsize\scriptsize{6.5}{8.125\p@}} +\def\tiny{\@setfontsize\tiny{5}{6.25\p@}} +\def\large{\@setfontsize\large{11}{13.75\p@}} +\def\Large{\@setfontsize\Large{13}{16.25\p@}} +\def\LARGE{\@setfontsize\LARGE{16}{20\p@}} +\def\huge{\@setfontsize\huge{19}{23.75\p@}} +\def\Huge{\@setfontsize\Huge{22}{27.5\p@}} +%</10pt> +%<*11pt> +\def\scriptsize{\@setfontsize\scriptsize{7.15}{8.9375\p@}} +\def\tiny{\@setfontsize\tiny{5.5}{6.875\p@}} +\def\large{\@setfontsize\large{12.1}{15.125\p@}} +\def\Large{\@setfontsize\Large{14.3}{17.875\p@}} +\def\LARGE{\@setfontsize\LARGE{17.6}{22\p@}} +\def\huge{\@setfontsize\huge{20.9}{26.125\p@}} +\def\Huge{\@setfontsize\Huge{24.2}{30.25\p@}} +%</11pt> +%<*12pt> +\def\scriptsize{\@setfontsize\scriptsize{7.8}{9.75\p@}} +\def\tiny{\@setfontsize\tiny{6}{7.5\p@}} +\def\large{\@setfontsize\large{13.2}{16.5\p@}} +\def\Large{\@setfontsize\Large{15.6}{19.5\p@}} +\def\LARGE{\@setfontsize\LARGE{19.2}{24\p@}} +\def\huge{\@setfontsize\huge{22.8}{28.5\p@}} +\def\Huge{\@setfontsize\Huge{26.4}{33\p@}} +%</12pt> +\normalsize +%<*10pt> +\setlength{\footnotesep}{7\p@} +\setlength{\skip\footins}{9\p@ \@plus4\p@ \@minus2\p@} +\setlength{\floatsep}{12.5\p@ \@plus2.5\p@ \@minus2.5\p@} +\setlength{\textfloatsep}{20\p@ \@plus2.5\p@ \@minus5\p@} +%</10pt> +%<*11pt> +\setlength{\footnotesep}{7.7\p@} +\setlength{\skip\footins}{9.9\p@ \@plus4.4\p@ \@minus2.2\p@} +\setlength{\floatsep}{13.75\p@ \@plus2.75\p@ \@minus2.75\p@} +\setlength{\textfloatsep}{22\p@ \@plus2.75\p@ \@minus5.5\p@} +%</11pt> +%<*12pt> +\setlength{\footnotesep}{8.4\p@} +\setlength{\skip\footins}{10.8\p@ \@plus4.8\p@ \@minus2.4\p@} +\setlength{\floatsep}{15\p@ \@plus3\p@ \@minus3\p@} +\setlength{\textfloatsep}{24\p@ \@plus3\p@ \@minus6\p@} +%</12pt> +\intextsep\floatsep +\dblfloatsep\floatsep +\dbltextfloatsep\textfloatsep +\setlength{\@fptop}{\z@ \@plus1fil} +%<10pt>\setlength{\@fpsep}{7.5\p@ \@plus2fil} +%<11pt>\setlength{\@fpsep}{8.25\p@ \@plus2fil} +%<12pt>\setlength{\@fpsep}{9\p@ \@plus2fil} +\@fpbot\@fptop +\@dblfptop\@fptop +\@dblfpsep\@fpsep +\@dblfpbot\@dblfptop +%<10pt>\setlength{\partopsep}{2.5\p@ \@plus1.25\p@ \@minus1.25\p@} +%<11pt>\setlength{\partopsep}{2.75\p@ \@plus1.375\p@ \@minus1.375\p@} +%<12pt>\setlength{\partopsep}{3\p@ \@plus1.5\p@ \@minus1.5\p@} +\def\@listi{% + \leftmargin\leftmargini +%<*10pt> + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \parsep 4\p@ \@plus2\p@ \@minus\p@ +%</10pt> +%<*11pt> + \topsep 8.8\p@ \@plus2.2\p@ \@minus4.4\p@ + \parsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@ +%</11pt> +%<*12pt> + \topsep 9.6\p@ \@plus2.4\p@ \@minus4.8\p@ + \parsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@ +%</12pt> + \itemsep\parsep +} +\let\@listI\@listi +\def\@listii{% + \leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep +%<*10pt> + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +%</10pt> +%<*11pt> + \topsep 4.4\p@ \@plus2.2\p@ \@minus1.1\p@ + \parsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@ +%</11pt> +%<*12pt> + \topsep 4.8\p@ \@plus2.4\p@ \@minus1.2\p@ + \parsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@ +%</12pt> + \itemsep\parsep +} +\def\@listiii{% + \leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep +%<*10pt> + \topsep 2\p@ \@plus\p@ \@minus\p@ +%</10pt> +%<*11pt> + \topsep 2.2\p@ \@plus1.1\p@ \@minus1.1\p@ +%</11pt> +%<*12pt> + \topsep 2.4\p@ \@plus1.2\p@ \@minus1.2\p@ +%</12pt> + \parsep\z@ + \partopsep \z@ \@minus\p@ + \itemsep\topsep +} +\def\@listiv{% + \leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep +} +\def\@listv{% + \leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep +} +\def\@listvi{% + \leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep +} +%<*10pt> +\setlength{\smallskipamount}{3.125\p@ \@plus1.25\p@ \@minus1.25\p@} +\setlength{\medskipamount}{6.25\p@ \@plus2.5\p@ \@minus2.5\p@} +\setlength{\bigskipamount}{12.5\p@ \@plus5\p@ \@minus5\p@} +%</10pt> +%<*11pt> +\setlength{\smallskipamount}{3.4375\p@ \@plus1.375\p@ \@minus1.375\p@} +\setlength{\medskipamount}{6.875\p@ \@plus2.75\p@ \@minus2.75\p@} +\setlength{\bigskipamount}{13.75\p@ \@plus5.5\p@ \@minus5.5\p@} +%</11pt> +%<*12pt> +\setlength{\smallskipamount}{3.75\p@ \@plus1.5\p@ \@minus1.5\p@} +\setlength{\medskipamount}{7.5\p@ \@plus3\p@ \@minus3\p@} +\setlength{\bigskipamount}{15\p@ \@plus6\p@ \@minus6\p@} +%</12pt> +\providecommand*\TUD@AfterKOMAClass[1]{% + \ifcsname KOMAClassName\endcsname + \if@atdocument% + #1 + \else% + \AfterClass+{\KOMAClassName}{#1}% + \fi% + \fi% +} +\TUD@AfterKOMAClass{% +%<10pt> \setlength{\abovecaptionskip}{10\p@} +%<11pt> \setlength{\abovecaptionskip}{11\p@} +%<12pt> \setlength{\abovecaptionskip}{12\p@} + \setlength{\belowcaptionskip}{\z@} +} +\@ifundefined{@list@extra}{}{% + \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi% + \l@addto@macro{\@listi}{\@list@extra}% + \let\@listI=\@listi + \l@addto@macro{\@listii}{\@list@extra}% + \l@addto@macro{\@listiii}{\@list@extra}% + \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}% + \l@addto@macro{\small}{\protect\add@extra@listi{sml}}% +} +\@listi +% \end{macrocode} +% +% \iffalse +%</10pt|11pt|12pt> %<*package&body> % \fi % -% \begin{macro}{\@makechapterhead} -% \begin{macro}{\@makeschapterhead} -% \begin{macro}{\section} -% \begin{macro}{\showtitle} -% Ganz zum Schluss merden für das Paket \pkg{tudscrfonts} noch ein paar -% Anpassungen für die \cls{tudbook}-Klasse gemacht. -% \begin{macrocode} -\@ifclassloaded{tudbook}{% - \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\section}{\dinBold\Large\bfseries}% - {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}% - \patchcmd{\showtitle}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}% -}{} +% Es wird der Inhalt des Pakets \pkg{tudscrfontsizes} definiert, welches auf +% \pkg{scrfontsizes} aufbaut. +% \begin{macro}{\changefontsizes} +% \begin{macro}{\tud@changefontsizes} +% Das Pendant zum \KOMAScript-Makro \cs{generate@fontfile} ist der hier +% definierte Befehl \cs{tud@generate@fontfile}. Mit diesem können eigenständige +% Schriftgrößendateien erstellt werden. +% \begin{macrocode} +\RequirePackage{scrfontsizes}[2015/02/07] +% \end{macrocode} +% Hiermit kann die Schriftgröße im Dokument geändert werden, falls keine +% passende Schriftgrößendatei vorhanden ist. Der Befehl lehnt sich stark am +% \KOMAScript-Befehl \cs{changefontsizes} an, ändert allerdings einige Längen +% marginal. +% \begin{macrocode} +\newcommand*{\tud@changefontsizes}[2][\dimexpr5\@tempdima/4\relax]{% +%<*class> + \ClassInfo{\TUDClassName}% +%</class> +%<*package> + \PackageInfo{tudscrfonts}% +%</package> + {Calculating font sizes for basic size `#2'}% + \@defaultunits\@tempdima#2pt\relax\@nnil% + \setlength{\@tempdimc}{\@tempdima}% + \addtolength{\@tempdimc}{-10\p@}% + \edef\@ptsize{\strip@pt\@tempdimc}% + \setlength{\@tempdimb}{#1}% + \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}% + \edef\@tempa{\strip@pt\@tempdimc}% + \@defaultunits\@tempdimb\dimexpr\@tempa\@tempdima/100\relax pt\relax\@nnil% + \setlength{\@tempdimc}{\@tempdima}% + \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}% + {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% + \scr@setlength{\abovedisplayshortskip}{\z@}% + {\dimexpr6\@tempdimb/25\relax}{\z@}% + \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}% + {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \edef\normalsize{% + \noexpand\@setfontsize\noexpand\normalsize% + {\the\@tempdima}{\the\@tempdimb}% + \abovedisplayskip \the\abovedisplayskip% + \abovedisplayshortskip \the\abovedisplayshortskip% + \belowdisplayskip \the\belowdisplayskip% + \belowdisplayshortskip \the\belowdisplayshortskip% + \let\noexpand\@listi\noexpand\@listI% + }% + \setlength{\@tempdima}{\dimexpr9\@tempdimc/10\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}% + {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% + \scr@setlength{\abovedisplayshortskip}{\z@}% + {\dimexpr6\@tempdimb/25\relax}{\z@}% + \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}% + {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \edef\small{% + \noexpand\@setfontsize\noexpand\small% + {\the\@tempdima}{\the\@tempdimb}% + \abovedisplayskip \the\abovedisplayskip% + \abovedisplayshortskip \the\abovedisplayshortskip% + \belowdisplayskip \the\belowdisplayskip% + \belowdisplayshortskip \the\belowdisplayshortskip% + \let\noexpand\@listi\noexpand\@listi@small% + }% + \setlength{\@tempdima}{\dimexpr4\@tempdimc/5\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \scr@setlength{\abovedisplayskip}{\dimexpr4\@tempdimb/5\relax}% + {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% + \scr@setlength{\abovedisplayshortskip}{\z@}% + {\dimexpr6\@tempdimb/25\relax}{\z@}% + \scr@setlength{\belowdisplayshortskip}{\dimexpr12\@tempdimb/25\relax}% + {\dimexpr6\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% + \setlength{\belowdisplayskip}{\abovedisplayskip}% + \edef\footnotesize{% + \noexpand\@setfontsize\noexpand\footnotesize% + {\the\@tempdima}{\the\@tempdimb}% + \abovedisplayskip \the\abovedisplayskip% + \abovedisplayshortskip \the\abovedisplayshortskip% + \belowdisplayskip \the\belowdisplayskip% + \belowdisplayshortskip \the\belowdisplayshortskip% + \let\noexpand\@listi\noexpand\@listi@footnotesize% + }% + \setlength{\@tempdima}{\dimexpr13\@tempdimc/20\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \edef\scriptsize{% + \noexpand\@setfontsize\noexpand\scriptsize% + {\the\@tempdima}{\the\@tempdimb}% + }% + \setlength{\@tempdima}{\dimexpr\@tempdimc/2\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \edef\tiny{% + \noexpand\@setfontsize\noexpand\tiny% + {\the\@tempdima}{\the\@tempdimb}% + }% + \setlength{\@tempdima}{\dimexpr11\@tempdimc/10\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \edef\large{% + \noexpand\@setfontsize\noexpand\large% + {\the\@tempdima}{\the\@tempdimb}% + }% + \setlength{\@tempdima}{\dimexpr13\@tempdimc/10\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \edef\Large{% + \noexpand\@setfontsize\noexpand\Large% + {\the\@tempdima}{\the\@tempdimb}% + }% + \setlength{\@tempdima}{\dimexpr16\@tempdimc/10\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \edef\LARGE{% + \noexpand\@setfontsize\noexpand\LARGE% + {\the\@tempdima}{\the\@tempdimb}% + }% + \setlength{\@tempdima}{\dimexpr19\@tempdimc/10\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \edef\huge{% + \noexpand\@setfontsize\noexpand\huge% + {\the\@tempdima}{\the\@tempdimb}% + }% + \setlength{\@tempdima}{\dimexpr22\@tempdimc/10\relax}% + \setlength{\@tempdimb}{\dimexpr\@tempa\@tempdima/100\relax}% + \edef\Huge{% + \noexpand\@setfontsize\noexpand\Huge% + {\the\@tempdima}{\the\@tempdimb}% + }% + \normalsize% + \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi% + \setlength{\@tempdimb}{\f@baselineskip}% + \scr@setlength{\topsep}{\dimexpr16\@tempdimb/25\relax}% + {\dimexpr4\@tempdimb/25\relax}{\dimexpr8\@tempdimb/25\relax}% + \scr@setlength{\parsep}{\dimexpr8\@tempdimb/25\relax}% + {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listi\endcsname% + \endgroup% + \edef\@listi{\leftmargin\leftmargini% + \topsep \the\topsep% + \parsep \the\parsep% + \itemsep \parsep% + \if@tempswa\noexpand\@list@extra\fi% + }% + \let\@listI\@listi% + \scr@setlength{\topsep}{\dimexpr12\@tempdimb/25\relax}% + {\dimexpr4\@tempdimb/25\relax}{\dimexpr6\@tempdimb/25\relax}% + \scr@setlength{\parsep}{\dimexpr6\@tempdimb/25\relax}% + {\dimexpr3\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listi\endcsname% + \endgroup% + \edef\@listi@small{\leftmargin\leftmargini% + \topsep \the\topsep% + \parsep \the\parsep% + \itemsep \parsep% + \if@tempswa\noexpand\@list@extra\fi% + }% + \scr@setlength{\topsep}{\dimexpr36\@tempdimb/100\relax}% + {\dimexpr12\@tempdimb/100\relax}{\dimexpr18\@tempdimb/100\relax}% + \scr@setlength{\parsep}{\dimexpr18\@tempdimb/100\relax}% + {\dimexpr9\@tempdimb/100\relax}{\dimexpr6\@tempdimb/100\relax}% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listi\endcsname% + \endgroup% + \edef\@listi@footnotesize{\leftmargin\leftmargini% + \topsep \the\topsep% + \parsep \the\parsep% + \itemsep \parsep% + \if@tempswa\noexpand\@list@extra\fi% + }% + \scr@setlength{\topsep}{\dimexpr8\@tempdimb/25\relax}% + {\dimexpr4\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% + \scr@setlength{\parsep}{\dimexpr4\@tempdimb/25\relax}% + {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listii\endcsname% + \endgroup% + \edef\@listii{\leftmargin\leftmarginii% + \labelwidth=\dimexpr \leftmargin-\labelsep% + \topsep \the\topsep% + \parsep \the\parsep% + \itemsep \parsep% + \if@tempswa\noexpand\@list@extra\fi% + }% + \scr@setlength{\topsep}{\dimexpr4\@tempdimb/25\relax}% + {\dimexpr2\@tempdimb/25\relax}{\dimexpr2\@tempdimb/25\relax}% + \setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listiii\endcsname% + \endgroup% + \edef\@listiii{\leftmargin\leftmarginiii% + \labelwidth=\dimexpr \leftmargin-\labelsep% + \topsep \the\topsep% + \parsep \z@% + \partopsep \the\partopsep% + \itemsep \topsep% + \if@tempswa\noexpand\@list@extra\fi% + }% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listiv\endcsname% + \endgroup% + \edef\@listiv{\leftmargin\leftmarginiv% + \labelwidth=\dimexpr \leftmargin-\labelsep\relax% + \if@tempswa\noexpand\@list@extra\fi% + }% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listv\endcsname% + \endgroup% + \edef\@listv{\leftmargin\leftmarginv% + \labelwidth=\dimexpr \leftmargin-\labelsep\relax% + \if@tempswa\noexpand\@list@extra\fi% + }% + \@tempswafalse% + \begingroup% + \def\@list@extra{\aftergroup\@tempswatrue}% + \csname @listvi\endcsname% + \endgroup% + \edef\@listvi{\leftmargin\leftmarginvi% + \labelwidth=\dimexpr \leftmargin-\labelsep\relax% + \if@tempswa\noexpand\@list@extra\fi% + }% + \@listi% + \setlength{\@tempdimb}{\f@baselineskip}% + \setlength{\footnotesep}{\dimexpr14\@tempdimb/25\relax}% + \scr@setlength{\skip\footins}{\dimexpr18\@tempdimb/25\relax}% + {\dimexpr8\@tempdimb/25\relax}{\dimexpr4\@tempdimb/25\relax}% + \scr@setlength{\floatsep}{\@tempdimb}% + {\dimexpr\@tempdimb/5\relax}{\dimexpr\@tempdimb/5\relax}% + \scr@setlength{\textfloatsep}{\dimexpr8\@tempdimb/5\relax}% + {\dimexpr\@tempdimb/5\relax}{\dimexpr2\@tempdimb/5\relax}% + \setlength{\intextsep}{\floatsep}% + \setlength{\dblfloatsep}{\floatsep}% + \setlength{\dbltextfloatsep}{\textfloatsep}% + \setlength{\@fptop}{\z@ \@plus 1fil}% + \setlength{\@fpsep}{\dimexpr3\@tempdimb/5\relax \@plus 2fil}% + \setlength{\@fpbot}{\@fptop}% + \setlength{\@dblfptop}{\@fptop}% + \setlength{\@dblfpsep}{\@fpsep}% + \setlength{\@dblfpbot}{\@fptop}% + \scr@setlength{\partopsep}{\dimexpr\@tempdimb/5\relax}% + {\dimexpr\@tempdimb/10\relax}{\dimexpr\@tempdimb/10\relax}% + \tud@font@skip@@set% +} +% \end{macrocode} +% \ToDo{Versionsdatum einfügen} +% \begin{macrocode} +\@ifundefined{tud@font@skip@@set}{\RequirePackage{tudscrfonts}[2015/03/27]}{} +\let\changefontsizes\tud@changefontsizes% +% \end{macrocode} +% \end{macro}^^A \tud@changefontsizes +% \end{macro}^^A \changefontsizes +% \begin{macro}{\generate@fontfile} +% \begin{macro}{\tud@generate@fontfile} +% \begin{macrocode} +\newcommand*{\tud@generate@fontfile}[2]{% + \def\@ind{\space\space}% + \immediate\openout\@fontfile #1#2.clo + \immediate\write\@fontfile{\@percentchar^^J% + \@percentchar\space This is file `#1#2.clo', generated with^^J% + \@percentchar\space tudscrfontsizes + \csname ver@tudscrfontsizes.sty\endcsname,^^J% + \@percentchar\space and bases on scrfontsize.sty by Markus Kohm.^^J% + \@percentchar^^J% + \string\ProvidesFile{#1#2.clo}[% + \the\year/\ifnum\month<10 0\fi\the\month/\ifnum\day<10 0\fi\the\day% + \space generated font size class option (#2)]}% + \immediate\write\@fontfile{% + \string\def\string\normalsize{\@percentchar^^J% + \@ind\string\@setfontsize\string\normalsize{\f@size}{\f@baselineskip}% + \@percentchar^^J% + \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% + \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% + \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% + \@ind\string\belowdisplayskip\string\abovedisplayskip^^J% + \@ind\string\let\string\@listi\string\@listI^^J% + }% + }% + \begingroup\small\@listi + \immediate\write\@fontfile{% + \string\def\string\small{\@percentchar^^J% + \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}% + \@percentchar^^J% + \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% + \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% + \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% + \@ind\string\def\string\@listi{\@percentchar^^J% + \@ind\@ind\string\leftmargin\string\leftmargini^^J% + \@ind\@ind\string\topsep \the\topsep^^J% + \@ind\@ind\string\parsep \the\parsep^^J% + \@ind\@ind\string\itemsep \string\parsep^^J% + \@ind}\@percentchar^^J% + \@ind\string\belowdisplayskip\string\abovedisplayskip^^J% + }% + }% + \endgroup + \begingroup\footnotesize\@listi + \immediate\write\@fontfile{% + \string\def\string\footnotesize{\@percentchar^^J% + \@ind\string\@setfontsize\string\footnotesize{\f@size}{\f@baselineskip}% + \@percentchar^^J% + \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J% + \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J% + \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J% + \@ind\string\def\string\@listi{\@percentchar^^J% + \@ind\@ind\string\leftmargin\string\leftmargini^^J% + \@ind\@ind\string\topsep \the\topsep^^J% + \@ind\@ind\string\parsep \the\parsep^^J% + \@ind\@ind\string\itemsep \string\parsep^^J% + \@ind}\@percentchar^^J% + \@ind\string\belowdisplayskip\string\abovedisplayskip^^J% + }% + }% + \endgroup + \begingroup\scriptsize + \immediate\write\@fontfile{% + \string\def\string\scriptsize{% + \string\@setfontsize\string\scriptsize{\f@size}{\f@baselineskip}% + }% + }% + \endgroup + \begingroup\tiny + \immediate\write\@fontfile{% + \string\def\string\tiny{% + \string\@setfontsize\string\tiny{\f@size}{\f@baselineskip}% + }% + }% + \endgroup + \begingroup\large + \immediate\write\@fontfile{% + \string\def\string\large{% + \string\@setfontsize\string\large{\f@size}{\f@baselineskip}% + }% + }% + \endgroup + \begingroup\Large + \immediate\write\@fontfile{% + \string\def\string\Large{% + \string\@setfontsize\string\Large{\f@size}{\f@baselineskip}% + }% + }% + \endgroup + \begingroup\LARGE + \immediate\write\@fontfile{% + \string\def\string\LARGE{% + \string\@setfontsize\string\LARGE{\f@size}{\f@baselineskip}% + }% + }% + \endgroup + \begingroup\huge + \immediate\write\@fontfile{% + \string\def\string\huge{% + \string\@setfontsize\string\huge{\f@size}{\f@baselineskip}% + }% + }% + \endgroup + \begingroup\Huge + \immediate\write\@fontfile{% + \string\def\string\Huge{% + \string\@setfontsize\string\Huge{\f@size}{\f@baselineskip}% + }% + }% + \endgroup + \immediate\write\@fontfile{\string\normalsize}% + \immediate\write\@fontfile{% + \string\setlength{\string\footnotesep}{\the\footnotesep}^^J% + \string\setlength{\string\skip\string\footins}{\the\skip\footins}^^J% + \string\setlength{\string\floatsep}{\the\floatsep}^^J% + \string\setlength{\string\textfloatsep}{\the\textfloatsep}^^J% + \string\setlength{\string\intextsep}{\the\intextsep}^^J% + \string\setlength{\string\dblfloatsep}{\the\dblfloatsep}^^J% + \string\setlength{\string\dbltextfloatsep}{\the\dbltextfloatsep}^^J% + \string\setlength{\string\@fptop}{\the\@fptop}^^J% + \string\setlength{\string\@fpsep}{\the\@fpsep}^^J% + \string\setlength{\string\@fpbot}{\the\@fpbot}^^J% + \string\setlength{\string\@dblfptop}{\the\@dblfptop}^^J% + \string\setlength{\string\@dblfpsep}{\the\@dblfpsep}^^J% + \string\setlength{\string\@dblfpbot}{\the\@dblfpbot}^^J% + \string\setlength{\string\partopsep}{\the\partopsep}% + }% + \begingroup + \@listi + \immediate\write\@fontfile{% + \string\def\string\@listi{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmargini^^J% + \@ind\string\topsep \the\topsep^^J% + \@ind\string\parsep \the\parsep^^J% + \@ind\string\itemsep \string\parsep^^J% + }% + }% + \endgroup + \immediate\write\@fontfile{% + \string\let\string\@listI\string\@listi + }% + \begingroup + \@listii + \immediate\write\@fontfile{% + \string\def\string\@listii{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginii^^J% + \@ind\string\labelwidth\string\leftmarginii^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + \@ind\string\topsep \the\topsep^^J% + \@ind\string\parsep \the\parsep^^J% + \@ind\string\itemsep \string\parsep^^J% + }% + }% + \endgroup + \begingroup + \@listiii + \immediate\write\@fontfile{% + \string\def\string\@listiii{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginiii^^J% + \@ind\string\labelwidth\string\leftmarginiii^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + \@ind\string\topsep \the\topsep^^J% + \@ind\string\parsep \the\parsep^^J% + \@ind\string\partopsep \the\partopsep^^J% + \@ind\string\itemsep \string\topsep^^J% + }% + }% + \endgroup + \begingroup + \@listiv + \immediate\write\@fontfile{% + \string\def\string\@listiv{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginiv^^J% + \@ind\string\labelwidth\string\leftmarginiv^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + }% + }% + \endgroup + \begingroup + \@listv + \immediate\write\@fontfile{% + \string\def\string\@listv{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginv^^J% + \@ind\string\labelwidth\string\leftmarginv^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + }% + }% + \endgroup + \begingroup + \@listvi + \immediate\write\@fontfile{% + \string\def\string\@listvi{\@percentchar^^J% + \@ind\string\leftmargin\string\leftmarginvi^^J% + \@ind\string\labelwidth\string\leftmarginvi^^J% + \@ind\string\advance\string\labelwidth-\string\labelsep^^J% + }% + }% + \endgroup + \immediate\write\@fontfile{% + \string\setlength{\string\smallskipamount}{\the\smallskipamount}^^J% + \string\setlength{\string\medskipamount}{\the\medskipamount}^^J% + \string\setlength{\string\bigskipamount}{\the\bigskipamount}% + }% + \immediate\write\@fontfile{% + \string\@ifundefined{TUDClassName@KOMA}{}{\@percentchar^^J% + \@ind\string\AfterClass+{\string\TUDClassName@KOMA}{\@percentchar^^J% + \@ind\@ind\string\setlength{\string\abovecaptionskip}% + {\the\abovecaptionskip}^^J% + \@ind\@ind\string\setlength{\string\belowcaptionskip}% + {\the\belowcaptionskip}^^J% + \@ind}\@percentchar^^J% + }% + }% + \immediate\write\@fontfile{% + \string\@ifundefined{@list@extra}{}{\@percentchar^^J% + \@ind\string\l@addto@macro{\string\@listi}{\string\@list@extra}% + \@percentchar^^J% + \@ind\string\let\string\@listI=\string\@listi^^J% + \@ind\string\l@addto@macro{\string\@listii}{\string\@list@extra}% + \@percentchar^^J% + \@ind\string\l@addto@macro{\string\@listiii}{\string\@list@extra}% + \@percentchar^^J% + \@ind\string\l@addto@macro{\string\footnotesize}{\string\protect + \string\add@extra@listi{ftns}}\@percentchar^^J% + \@ind\string\l@addto@macro{\string\small}{\string\protect + \string\add@extra@listi{sml}}\@percentchar^^J% + }^^J% + \string\@listi^^J% + \string\endinput^^J% + \@percentchar^^J% + \@percentchar\space End of file `#1#2.clo'.% + } + \immediate\closeout\@fontfile +} +\let\generate@fontfile\tud@generate@fontfile % \end{macrocode} -% \end{macro}^^A \showtitle -% \end{macro}^^A \section -% \end{macro}^^A \@makeschapterhead -% \end{macro}^^A \@makechapterhead +% \end{macro}^^A \tud@generate@fontfile +% \end{macro}^^A \generate@fontfile % % \iffalse %</package&body> +%</fontsizes> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx index efff55db60a..0d756b036de 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx @@ -1,4 +1,4 @@ -% \CheckSum{637} +% \CheckSum{758} % \iffalse meta-comment % % ============================================================================ @@ -51,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-frontmatter.dtx}[% - 2015/02/15 v2.03 TUD-KOMA-Script (frontmatter)% + 2015/06/12 v2.04 TUD-KOMA-Script (frontmatter)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -72,12 +72,7 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A -% -% \ToDo{% -% Gesammelten Eintrag ins Inhaltsverzeichnis für alle Abschnitte\\ -% \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11\&t=385} -% }[v2.04] +% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A % % \section{Befehle und Umgebungen für den Vorspann} % @@ -97,148 +92,293 @@ % \fi % % \begin{macro}{\tud@fm@check} -% \changes{v2.02}{2014/07/18}{neu}%^^A -% Mit diesem Befehl wird für den Fall, dass eine oder mehrerer Erklräungen auf +% \changes{v2.02}{2014/07/18}{neu}^^A +% Mit diesem Befehl wird für den Fall, dass eine oder mehrerer Erklärungen auf % einer einzelnen Seite gesetzt werden sollen geprüft, ob dies überhaupt % möglich ist. Sollte dies nicht der Fall sein, wird eine Warnung ausgegeben. % \begin{macrocode} \newcommand*\tud@fm@check[2]{% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% - \@tempswatrue% - \ifboolexpr{bool {@tud@#1@fil} and bool {@tud@#1@multi}}{% - \setbox0\vbox{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-\baselineskip}}% - \fi% - #2% - }% - \ifdim\textheight<\dimexpr\ht0+\dp0\relax% - \ClassWarning{\tudcls@name}{% +% \end{macrocode} +% Das Makro \cs{tud@fm@set} wird zur erstmaligen Verwendung in jedem Fall auf +% die Definition von \cs{tud@fm@first} gesetzt. +% \begin{macrocode} + \global\let\tud@fm@set\tud@fm@first% +% \end{macrocode} +% Danach erfolgt ggf. die Prüfung der resultierenden Seitenhöhe. +% \begin{macrocode} + \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUDClassName}{% The given content within the `#1'\MessageBreak% environment is too large, so it wasn't possible\MessageBreak% to center the body vertically. Setting the option\MessageBreak% `#1=nofill' would be a solution. You\MessageBreak% could also use multiple `#1' environments% }% - \@tempswafalse% + \boolfalse{@tud@#1@fil}% \fi% }{}% - }{}% - #2% -} -% \end{macrocode} -% \end{macro}^^A \tud@fm@check -% \begin{macro}{\tud@fm@set} -% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A -% Dies ist das zentrale Makro zur Ausgabe der einzelnen Erklärungen, welches -% alle relevanten Optionen\footnote{\opt{titlepage}, \opt{twocolumn}, -% \opt{abstract/declaration=multi}, \opt{abstract/declaration=fill} sowie die -% Gliederungsebene der Überschrift} unterscheidet und die Erklärungen diesen -% entsprechend setzt. Verwendet wird der Befehl wie folgt: -% \cs{tud@fm@set}\marg{Erklärungstyp}\marg{Überschrift}\marg{Inhalt} -% \begin{macrocode} -\newcommand*\tud@fm@set[3]{% % \end{macrocode} % Sollte die Gliederungsebene der Erklärung einem Kapitel entsprechen, wird % jede Erklärung immer auf eine neue Seite gesetzt. Die Optionen zum vertikalen % Zentrieren wird ignoriert. Auf eine Warnung für den Anwender wird verzichtet. % \begin{macrocode} + }{% chapter %<*book|report> - \ifnumless{\@nameuse{tud@#1@level}}{3}{}{% \boolfalse{@tud@#1@multi}% \boolfalse{@tud@#1@fil}% +%</book|report> }% +% \end{macrocode} +% Zum Schluss wird ggf. der gesammelte Eintrag im Inhaltsverzeichnis erstellt. +% Danach wird das übergebene Argument ausgeführt. +% \begin{macrocode} + \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% +% \end{macrocode} +% Das Makro \cs{tud@fm@set} wird~-- aufgrund der immanenten Zuweisung auf +% \cs{tud@fm@next} innerhalb von \cs{tud@fm@first}~-- abermals auf die +% Definition von \cs{tud@fm@first} gesetzt. +% \begin{macrocode} + \global\let\tud@fm@set\tud@fm@first% + #2% +} +% \end{macrocode} +% \end{macro}^^A \tud@fm@check +% \begin{macro}{\tud@fm@toc} +% \changes{v2.04}{2015/03/20}{neu}^^A +% \begin{macro}{\tud@fm@@toc} +% \changes{v2.04}{2015/03/20}{neu}^^A +% \begin{macro}{\tud@fm@@@toc} +% \changes{v2.04}{2015/03/20}{neu}^^A +% Ist die Einstellung \val{tocaggregate} aktiv, wird der gesammelte Eintrag ins +% Inhaltsverzeichnis generiert. +% \begin{macrocode} +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% +% \end{macrocode} +% Der gesammelte Eintrag aller Überschriften ins Inhaltsverzeichnis. +% \begin{macrocode} + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% +%<*book|report> + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% %</book|report> +%<*article> + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% +%</article> + }{% +%<*book|report> + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% +%</book|report> +%<*article> + \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% +%</article> + }% + }% + \@tempa% + }{% + \ClassWarning{\TUDClassName}{% + It isn't possible to use `#1=single'\MessageBreak% +%<*book|report> + or `#1=chapter' +%</book|report> + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc}{% + \the\numexpr\@nameuse{tud@#1@toc}-2\relax% + }% + }% + \@tempa% + }% +} % \end{macrocode} -% Im Zweispaltensatz wird der Inhalt der Umgebung einfach ausgegeben, eine -% vertikale Zentrierung findet nicht statt. +% \end{macro}^^A \tud@fm@@@toc +% \end{macro}^^A \tud@fm@@toc +% \end{macro}^^A \tud@fm@toc +% \begin{macro}{\tud@fm@set} +% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}^^A +% \changes{v2.04}{2015/03/20}{Reimplementierung}^^A +% \begin{macro}{\tud@fm@first} +% \changes{v2.04}{2015/03/20}{neu}^^A +% \begin{macro}{\tud@fm@next} +% \changes{v2.02}{2014/07/19}{neu}^^A +% \changes{v2.04}{2015/03/20}{Reimplementierung}^^A +% Mit diesen Makros werden bei der Ausgabe der einzelnen Erklärungen alle +% relevanten Optionen% +% \footnote{% +% \opt{titlepage}, \opt{twocolumn}, \opt{abstract/declaration=multiple}, +% \opt{abstract/declaration=fill}% +% } +% ausgewertet und die notwendigen vertikalen Abstände diesen entsprechend +% gesetzt. Dabei wird durch jede Zusammenfassung bzw. Erklärung \cs{tud@fm@set} +% über \cs{tud@fm@body@start} verwendet. Der Inhalt der beiden Umgebungen +% \env{abstract} und \env{descriptions} wird mit \cs{tud@fm@check} ausgegeben. +% Das Makro \cs{tud@fm@check} setzt die Definition von \cs{tud@fm@set} auf +% \cs{let}\cs{tud@fm@set}\cs{tud@fm@first}. Bei der erstmaligen Verwendung von +% \cs{tud@fm@first} wird diese auf \cs{let}\cs{tud@fm@set}\cs{tud@fm@next} +% geändert. % \begin{macrocode} - \if@twocolumn% - \tud@fm@body{#1}{#2}{#3}% +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \global\let\tud@fm@set\tud@fm@next% % \end{macrocode} -% Beim einspaltigen Satz wird die \opt{titlepage}-Option beachtet. +% Im Zweispaltensatz wird der Inhalt der Umgebung einfach ausgegeben, eine +% vertikale Zentrierung findet nicht statt. Beim einspaltigen Satz wird die +% \opt{titlepage}-Option beachtet. % \begin{macrocode} - \else% + \if@twocolumn\else% % \end{macrocode} % Sollte diese aktiv sein, wird jede Erklärung oder Zusammenfassung abhängig % von der Einstellung von \opt{abstract/declaration=multi} entweder auf eine % neue Seite gesetzt, oder aber auf der aktuellen ausgegeben. Dabei werden -% diese ggf. noch vertikal auf der Seite ausgerichtet. +% diese ggf. vertikal auf der Seite ausgerichtet. % \begin{macrocode} \if@titlepage% - \ifbool{@tud@#1@multi}{}{\clearpage}% \ifbool{@tud@#1@fil}{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% + \null\vfil% + \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section + \vspace{\dimexpr-\parskip-\baselineskip\relax}% + {\usekomafont{section}{\vspace{-\baselineskip}}}% \fi% - \if@tempswa\vspace*{\z@ \@plus 1fil}\fi% }{}% - \tud@fm@body{#1}{#2}{#3}% - \ifbool{@tud@#1@fil}{\vspace*{\z@ \@plus 2fil}}{}% + \fi% + \fi% +} % \end{macrocode} -% Bei deaktivierter \opt{titlepage}-Option werden die Inhalte jeder erzeugten -% Erklärung direkt nacheinander ausgegeben. Die Erklärung oder Zusammenfassung -% wird dabei wie ein Zitat ausgegeben, sollte dessen Überschrift nicht -% in Form eines Abschnitts gesetzt werden. Der Inhalt wird entweder in der -% normalen \env{quotation}-Umgebung oder aber~-- wenn entsprechend das Paket -% \pkg{quoting} geladen wurde~-- in der \env{quoting}-Umgebung gesetzt. Die -% entsprechende Umgebung wird hierfür im Makro \cs{tud@quoting} gespeichert. +% Bei der abermaligen Verwendung des Makros \cs{tud@fm@set} in der gleichen +% Umgebung wird \cs{tud@fm@next} ausgeführt, um die vertikalen Abstände +% zwischen den einzelnen Teilen einzufügen. +% \begin{macrocode} +\newcommand\tud@fm@next[1]{% +% \end{macrocode} +% Im Zweispaltensatz wird entweder ein Absatz eingefügt oder eine neue Spalte +% begonnen. +% \begin{macrocode} + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% + \else% +% \end{macrocode} +% Wird eine Titelseite verwendet, wird jede Erklärung oder Zusammenfassung +% abhängig von der Einstellung von \opt{abstract/declaration=multi} entweder +% auf eine neue Seite gesetzt, oder aber auf der aktuellen ausgegeben. Dabei +% werden diese ggf. vertikal auf der Seite ausgerichtet. +% \begin{macrocode} + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% + }% +% \end{macrocode} +% Werden weder Titelseite noch Überschriften verwendet, so führt die Auswahl +% einer Sprache mit \cs{selectlanguage} zu einem zusätzlichen vertikalen +% Abstand. Dieser wird hiermit negiert. % \begin{macrocode} \else% - \ifnum\@nameuse{tud@#1@level}<2\begin{\tud@quoting}\fi% - \tud@fm@body{#1}{#2}{#3}% - \ifnum\@nameuse{tud@#1@level}<2\end{\tud@quoting}\fi% + \ifnum\@nameuse{tud@#1@level}=\z@% + \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% + \fi% \fi% \fi% } % \end{macrocode} +% \end{macro}^^A \tud@fm@next +% \end{macro}^^A \tud@fm@first % \end{macro}^^A \tud@fm@set +% \begin{macro}{\tud@fm@body@start} +% \changes{v2.04}{2015/03/20}{neu}^^A +% \begin{macro}{\tud@fm@body@end} +% \changes{v2.04}{2015/03/20}{neu}^^A % \begin{macro}{\tud@fm@body} -% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A -% \begin{macro}{\tud@fm@vcenter} -% \changes{v2.02}{2014/07/18}{Mit \pkg{scrlayer-scrpage} entfernt}%^^A -% Dieser Befehl formatiert den im dritten Argument gespeicherten Inhalt der -% Erklärung. Sollte das Paket \pkg{multicol} Verwendung finden, wird hier die -% entsprechende Umgebung gestartet. Für das Setzen der Überschrift und der -% Kolumnentitel wird \cs{tud@fm@head} verwendet, welches abhängig von den -% gewählten Optionen die Gliederungsebene der Überschrift setzt. Die optional -% gewählte vertikale Ausrichtung des Inhaltes wird seit Version~v2.02 nicht -% mehr von \cs{tud@fm@vcenter} sondern hier direkt ausgeführt. +% \changes{v2.04}{2015/03/20}{entfernt}^^A +% \begin{length}{\multicolsep} +% Das Makro \cs{tud@fm@body@start} setzt erst alle übergebenen Parameter für +% die aktuelle Umgebung. Anschließend werden alle notwendigen vertikalen +% Abstände mit \cs{tud@fm@set} eingefügt und ggf. notwendige Umgebungen +% geöffnet. Der Gegenpart dazu ist das Makro \cs{tud@fm@body@end}. % \begin{macrocode} -\newcommand*\tud@fm@body[3]{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#2}}]% - \else% +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% % \end{macrocode} -% Für die Verwendung einer kleinen, zentrierten Überschrift wird vorher ein -% Abstand eingefügt. Dies ist jedoch nur notwendig, wenn \env{multicols} nicht -% verwendet wird. +% Bei deaktivierter \opt{titlepage}-Option werden die Inhalte jeder erzeugten +% Erklärung oder Zusammenfassung direkt nacheinander ausgegeben. Sollte die +% Überschrift \emph{nicht} als Gliederungsebene (\cs{section}, \cs{chapter}) +% gesetzt werden, wird der Inhalt entweder in der \env{quotation}-Umgebung +% oder~-- wenn entsprechend das Paket \pkg{quoting} geladen wurde~-- in der +% \env{quoting}-Umgebung gesetzt. Die entsprechende Umgebung wird hierfür im +% Makro \cs{tud@quoting} gespeichert. % \begin{macrocode} - \ifbool{@tud@#1@multi}{% - \ifcase\@nameuse{tud@#1@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% - \fi% - }{}% - \tud@fm@head{#1}{#2}% - \fi% - #3\par% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true + \fi\fi% +% \end{macrocode} +% Sollte das Paket \pkg{multicol} Verwendung finden, wird die entsprechende +% Umgebung gestartet. Für das Setzen der Überschrift und der Kolumnentitel wird +% \cs{tud@fm@head} verwendet, welches abhängig von den gewählten Optionen die +% Gliederungsebene der Überschrift und die dazugehörigen Abstände setzt. Daher +% wird die Länge \cs{multicolsep} auf Null gesetzt. +% \begin{macrocode} + \ifnum\tud@multicols>\@ne\relax% + \setlength\multicolsep{\z@}% + \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% + \else% +% \end{macrocode} +% Ansonsten wird lediglich die Überschrift der Zusammenfassung oder Erklärung +% im dritten Argument entsprechend der gewählten Option erzeugt. +% \begin{macrocode} + \tud@fm@head{#1}{#3}% + \fi% +} +% \end{macrocode} +% Nach der Ausgabe des Inhaltes werden mit \cs{tud@fm@body@end} alle ggf. +% geöffneten Umgebungen wieder geschlossen. +% \begin{macrocode} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@multicols>\@ne\relax% + \end{multicols}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true + \fi\fi% + \endgroup% } % \end{macrocode} -% \end{macro}^^A \tud@fm@vcenter +% \end{length}^^A \multicolsep % \end{macro}^^A \tud@fm@body +% \end{macro}^^A \tud@fm@body@end +% \end{macro}^^A \tud@fm@body@start % \begin{macro}{\tud@fm@head} -% \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}%^^A -% \changes{v2.02}{2014/10/09}{Bugfix für Kolumnentitel}%^^A -% \changes{v2.02}{2014/11/05}{Bugfix Kolumnentitel und Inhaltsverzeichnis}%^^A -% Dieses Makro dient zur Festlegung der Gliederungsebene der Überschrift der -% Erklärung. Die gewählte Gliederungsebene ist in \cs{tud@\meta{Typ}@level} +% \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}^^A +% \changes{v2.02}{2014/10/09}{Bugfix für Kolumnentitel}^^A +% \changes{v2.02}{2014/11/05}{Bugfix Kolumnentitel und Inhaltsverzeichnis}^^A +% \changes{v2.04}{2015/04/21}{Abstände nur, wenn keine Zitatumgebung aktiv}^^A +% Dieses Makro dient zur Ausgabe der Erklärungsüberschrift auf der gewünschten +% Gliederungsebene. Die gewählte Ebene ist in \cs{tud@\meta{Typ}@level} % gespeichert. Verwendet wird das Makro folgendermaßen: -% \cs{tud@fm@head}\marg{Erklärungstyp}\marg{Überschrift}\marg{Inhalt}. Damit +% \cs{tud@fm@head}\marg{Erklärungstyp}\marg{Überschrift}. Damit % die ggf. aktive Option \opt{abstract/declaration=toc} funktionieren kann, % wird für die Level, in denen keine Standardüberschrift verwendet wird, mit % dem Befehl \cs{phantomsection} aus dem Paket \pkg{hyperref}~-- wenn es @@ -248,29 +388,40 @@ % der für \cls{tudscrbook} und \cls{tudscrreprt} dem eines Kapitels.% % \footnote{sonst sieht das Inhaltsverzeichnis recht bescheiden aus} % Mit der Eintellung \val{tocleveldown} kann der Eintrag um eine Ebene +% reduziert werden. % \begin{macrocode} \newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% + \ifcase\@nameuse{tud@#1@level}\relax% false \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% - \or% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% \begingroup% - \centering% + \noindent\centering% \normalfont\sectfont\nobreak#2% \@endparpenalty\@M% \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\dimexpr\medskipamount-\parskip\relax% \@afterheading% - \or% + \or% section \section*{#2}% \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% %<*book|report> - \or% + \or% chapter \chapter*{#2}% \@mkdouble{\MakeMarkcase{#2}}% %</book|report> @@ -278,75 +429,43 @@ \ifbool{@tud@#1@markboth}{% \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% }{}% - \ifbool{@tud@#1@toc}{% - \ifbool{@tud@#1@toc@leveldown}{% + \ifnum\@nameuse{tud@#1@toc}>\z@\relax% + \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% + \ifnumodd{\csname tud@#1@toc\endcsname}{% %<*book|report> - \addsectiontocentry{}{#2}% + \addchaptertocentry{}{#2}% %</book|report> %<*article> - \addsubsectiontocentry{}{#2}% + \addsectiontocentry{}{#2}% %</article> - }{% + }{% %<*book|report> - \addchaptertocentry{}{#2}% + \addsectiontocentry{}{#2}% %</book|report> %<*article> - \addsectiontocentry{}{#2}% + \addsubsectiontocentry{}{#2}% %</article> - }% - }{}% -} -% \end{macrocode} -% \end{macro}^^A \tud@fm@head -% \begin{macro}{\tud@fm@next} -% \changes{v2.02}{2014/07/19}{mit \pkg{scrlayer-scrpage} eingeführt}%^^A -% Dieser Befehl sorgt für die Trennung einzelner Abschnitte innerhalb der -% Umgebungen \env{abstract} und \env{declarations}. Dabei werden bei aktiver -% vertikaler Ausrichtung die entsprchenden Abstände dazwischen eingefügt. -% \begin{macrocode} -\newcommand*\tud@fm@next[2]{% - \TUD@parameter@set{#1}{#2}% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% - \else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \vspace*{\z@ \@plus 1fil}% - \ifbool{@tud@#1@multi}{}{% - \vspace*{\z@ \@plus 1fil}% - \clearpage% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% - \fi% - \vspace*{\z@ \@plus 1fil}% - }% - }{\ifbool{@tud@#1@multi}{}{\clearpage}}% - \else% - \ifnum\@nameuse{tud@#1@level}<2% - \end{\tud@quoting}% - \begin{\tud@quoting}% - \fi% + }% \fi% \fi% } % \end{macrocode} -% \end{macro}^^A \tud@fm@next +% \end{macro}^^A \tud@fm@head % \begin{macro}{\tud@fm@pagestyle} -% \changes{v2.02}{2014/07/19}{neu}%^^A +% \changes{v2.02}{2014/07/19}{neu}^^A % Dieser Befehl sorgt für die Auswahl des Seitenstiles über die Parameter von % \env{abstract} und \env{declarations}. % \begin{macrocode} \newcommand*\tud@fm@pagestyle[2]{% \if@titlepage% \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\tudcls@name}{`#2' is no valid pagestyle}{% + \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined% + `#1' environment, but it was never defined.% }% }% \else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% %<*article> The key `pagestyle' can only be used with\MessageBreak% activated option `titlepage'% @@ -362,11 +481,11 @@ % \end{macrocode} % \end{macro}^^A \tud@fm@pagestyle % \begin{macro}{\tud@fm@level@wrn} -% \changes{v2.02}{2014/07/19}{entfernt}%^^A +% \changes{v2.02}{2014/07/19}{entfernt}^^A % \begin{macro}{\tud@fm@option@wrn} -% \changes{v2.02}{2014/07/19}{entfernt}%^^A +% \changes{v2.02}{2014/07/19}{entfernt}^^A % \begin{macro}{\tud@fm@multi@wrn} -% \changes{v2.02}{2014/07/19}{entfernt}%^^A +% \changes{v2.02}{2014/07/19}{entfernt}^^A % Die Befehle für die Warnungen an den Benutzer bei nicht beachteten oder nicht % umsetzbaren Einstellungen wurden mit der Version~v2.02 entfernt, da Sie als % wenig sinnvoll erachtet wurden. @@ -375,7 +494,7 @@ % \end{macro}^^A \tud@fm@level@wrn % \begin{macro}{\tud@quoting} % \begin{macro}{\tud@endquoting} -% \changes{v2.02}{2014/07/19}{entfernt}%^^A +% \changes{v2.02}{2014/07/19}{entfernt}^^A % Mit diesem Befehl kann das empfehlenswerte Paket \pkg{quoting} unterstützt % werden. Sollte dieses geladen werden, wird für das Setzen der Zusammenfassung % bei einem Titelkopf die \env{quoting}-Umgebung genutzt. @@ -392,7 +511,7 @@ % \fi % % \begin{macro}{\tud@fm@switch} -% \changes{v2.02}{2014/11/05}{neu}%^^A +% \changes{v2.02}{2014/11/05}{neu}^^A % Das aus \KOMAScript{} bekannte Verhalten für die Zusammenfassung wird für die % beiden Klassen \cls{tudscrartcl} und \cls{tudscrreprt} adaptiert. Dazu werden % boolesche Schlüssel bei der Definiton der beiden Optionen \opt{abstract} und @@ -416,15 +535,18 @@ {chapter}{3},{chap}{3},{addchap}{3},% {new}{3},{standard}{3},{heading}{3},% %</book|report> - {totoc}{4},{toc}{4},{totoclevelup}{4},{toclevelup}{4},{levelup}{4},% - {totocleveldown}{5},{tocleveldown}{5},{leveldown}{5},% - {nottotoc}{6},{notoc}{6},% - {markboth}{7},{mark}{7},% - {nomarkboth}{8},{nomark}{8},% - {one}{9},{simple}{9},{single}{9},% - {multi}{10},{multiple}{10},{all}{10},{two}{10},{both}{10},{double}{10},% - {nofil}{11},{nofill}{11},{novfil}{11},{novfill}{11},% - {fil}{12},{fill}{12},{vfil}{12},{vfill}{12}% + {single}{4},{one}{4},{simple}{4},% + {multiple}{5},{multi}{5},{all}{5},{aggregate}{5},% + {two}{5},{both}{5},{double}{5},% + {nofil}{6},{nofill}{6},{novfil}{6},{novfill}{6},% + {fil}{7},{fill}{7},{vfil}{7},{vfill}{7},% + {markboth}{8},{mark}{8},% + {nomarkboth}{9},{nomark}{9},% + {nottotoc}{10},{notoc}{10},% + {totoc}{11},{toc}{11},{totoclevelup}{11},{toclevelup}{11},{levelup}{11},% + {totocleveldown}{12},{tocleveldown}{12},{leveldown}{12},% + {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% + {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } % \end{macrocode} % \end{macro}^^A \tud@fm@switch @@ -435,49 +557,45 @@ % in den neuen \cls{tudscr}-Klassen die Sprache der Zusammenfassung leicht % eingestellt und auch zwei Zusammenfassungen auf eine Seite gesetzt werden. % \begin{macro}{\tud@abstract@level} -% \begin{macro}{\if@tud@abstract@toc} -% \begin{macro}{\if@tud@abstract@toc@locked} +% \begin{macro}{\tud@abstract@toc} +% \changes{v2.04}{2015/04/24}{neu}^^A +% \begin{macro}{\tud@abstract@toc@locked} +% \changes{v2.04}{2015/04/24}{neu}^^A % Der Befehl \cs{tud@abstract@level} beschreibt die Gliederungsebene der % Überschrift der Zusammenfassung numerisch und wird über die Schlüssel der % Option \opt{abstract} gesetzt. Über \opt{abstract=toc/notoc} wird festgelegt, % ob die Zusammenfassung einen eigenen Eintrag ins Inhaltsverzeichnis bekommt. -% Da unterschiedliche Gliederungsebenen der Überschriften möglich sind, wird das -% Standardverhalten in Abhängigkeit dieser gewählt. Initial erscheint für +% Da unterschiedliche Gliederungsebenen der Überschriften möglich sind, wird +% das Standardverhalten in Abhängigkeit dieser gewählt. Initial erscheint für % \cls{tudscrreprt} und \cls{tudscrartcl}~-- wie in \KOMAScript{} auch~-- keine % Überschrift und kein Eintrag im Inhaltsverzeichnis. In \cls{tudscrbook} wird % standardmäßig eine Überschrift in Form eines Kapitels mit Eintrag ins % Inhaltsverzeichnis gesetzt. +% +% Mit \cs{tud@abstract@toc} wird die Gestalt des Inhaltsverzeichniseintrag +% festgelegt. Folgende Werte sind möglich: +% \begin{description} +% \item[0] kein Eintrag ins Inhaltverzeichnis +% \item[1] Individuelle Einträge auf der obersten Gliederungsebene +% \item[2] Ein gesammelter Eintrag auf der obersten Gliederungsebene +% \item[3] Individuelle Einträge auf der zweithöchsten Gliederungsebene +% \item[4] Ein gesammelter Eintrag auf der zweithöchsten Gliederungsebene +% \end{description} +% Die oberste Gliederungsebene ist \cs{chapter} für \cls{tudscrbook} und +% \cls{tudscrreprt} sowie \cs{section} für \cls{tudscrartcl}. % \begin{macrocode} %<*report|article> \newcommand*\tud@abstract@level{0} -\bool@lock{@tud@abstract@toc} +\cs@lock{tud@abstract@toc}{0} %</report|article> %<*book> \newcommand*\tud@abstract@level{3} -\bool@lock[true]{@tud@abstract@toc} +\cs@lock{tud@abstract@toc}{1} %</book> % \end{macrocode} -% \end{macro}^^A \if@tud@abstract@toc@locked -% \end{macro}^^A \if@tud@abstract@toc +% \end{macro}^^A \tud@abstract@toc@locked +% \end{macro}^^A \tud@abstract@toc % \end{macro}^^A \tud@abstract@level -% \begin{macro}{\if@tud@abstract@toc@leveldown} -% \changes{v2.02}{2014/11/05}{neu}%^^A -% Dieser Schalter bestimmt, ob der Eintrag in das Inhaltsverzeichnis in der -% obersten Gliederungsebene~-- \cs{chapter} für die Klassen \cls{tudscrbook} -% und \cls{tudscrreprt} sowie \cs{section} für \cls{tudscrartcl}~-- oder in der -% darunterliegenden erfolgt. -% \begin{macrocode} -\newif\if@tud@abstract@toc@leveldown -% \end{macrocode} -% \end{macro}^^A \if@tud@abstract@toc@leveldown -% \begin{macro}{\if@tud@abstract@markboth} -% \changes{v2.02}{2014/11/05}{neu}%^^A -% Dieser Schalter setzt rechten und linken Kolumnentitel automatisch auf die -% verwendete Überschrift. -% \begin{macrocode} -\newif\if@tud@abstract@markboth -% \end{macrocode} -% \end{macro}^^A \if@tud@abstract@markboth % \begin{macro}{\if@tud@abstract@multi} % Is dieser Schalter aktiviert, wird eine durch \cs{nextabstract} angegebene % zweite~-- wahrscheinlich in einer Fremdsprache verfasste~-- Zusammenfassung @@ -485,6 +603,7 @@ % die Option \opt{abstract=single/multi}. % \begin{macrocode} \newif\if@tud@abstract@multi +\@tud@abstract@multitrue % \end{macrocode} % \end{macro}^^A \if@tud@abstract@multi % \begin{macro}{\if@tud@abstract@fil} @@ -496,6 +615,14 @@ \@tud@abstract@filtrue % \end{macrocode} % \end{macro}^^A \if@tud@abstract@fil +% \begin{macro}{\if@tud@abstract@markboth} +% \changes{v2.02}{2014/11/05}{neu}^^A +% Dieser Schalter setzt rechten und linken Kolumnentitel automatisch auf die +% verwendete Überschrift. +% \begin{macrocode} +\newif\if@tud@abstract@markboth +% \end{macrocode} +% \end{macro}^^A \if@tud@abstract@markboth % \begin{option}{abstract} % Alle Klassen unterstützen die Werte, welche in \cs{tud@fm@switch} definiert % wurden. Die beiden Klassen \cls{tudscrartcl} und\ cls{tudscrreprt} adaptieren @@ -517,51 +644,71 @@ % allerdings vom Anwender jederzeit überschrieben werden kann. % \begin{macrocode} \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false %<*report|article> \def\tud@abstract@level{0}% - \bool@std@lock{@tud@abstract@toc}{false}% + \cs@std@lock{tud@abstract@toc}{0}% %</report|article> - \or% + \or% true %<*report|article> \def\tud@abstract@level{1}% - \bool@std@lock{@tud@abstract@toc}{false}% + \cs@std@lock{tud@abstract@toc}{0}% %</report|article> - \or% + \or% section \def\tud@abstract@level{2}% - \bool@std@lock{@tud@abstract@toc}{true}% - \or% + \cs@std@lock{tud@abstract@toc}{1}% + \or% chapter %<*book|report> \def\tud@abstract@level{3}% - \bool@std@lock{@tud@abstract@toc}{true}% + \cs@std@lock{tud@abstract@toc}{1}% %</book|report> % \end{macrocode} % Neben den Einstellungen für die Art der Gliederungsebene der Überschrift für % die Zusammenfassung können außerdem noch die Optionen gesetzt werden, ob % versucht werden soll, eine mögliche Zusammenfassung in einer anderen Sprache -% auf die gleiche Seite wie die erste zu setzen (\opt{abstract=multi}) und ob -% die Zusammenfassung einen Eintrag ins Inhaltsverzeichnis bekommen soll. +% auf die gleiche Seite wie die erste zu setzen (\opt{abstract=multi}). % \begin{macrocode} - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@abstract@toc}{false}% - \or% - \@tud@abstract@markbothtrue% - \or% - \@tud@abstract@markbothfalse% - \or% + \or% single \@tud@abstract@multifalse% - \or% + \or% multiple \@tud@abstract@multitrue% - \or% + \or% nofil \@tud@abstract@filfalse% - \or% + \or% fil \@tud@abstract@filtrue% + \or% markboth + \@tud@abstract@markbothtrue% + \or% nomarkboth + \@tud@abstract@markbothfalse% +% \end{macrocode} +% Bei den Einstellungen für das Inhaltsverzeichnis werden die unterschiedlichen +% Möglichkeiten im Makro \cs{tud@abstract@toc} zusammengefasst. +% \begin{macrocode} + \or% nottotoc + \cs@set@lock{tud@abstract@toc}{0}% + \or% totoc + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \else% + \cs@set@lock{tud@abstract@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{2}% + \else% + \cs@set@lock{tud@abstract@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@abstract@toc=\z@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \fi% + \ifnum\tud@abstract@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@abstract@toc}{% + \the\numexpr\tud@abstract@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } @@ -574,7 +721,10 @@ % \fi % % \begin{environment}{abstract} -% \changes{v2.03}{2015/01/09}{Bugfix für Seitenstilauswahl}%^^A +% \changes{v2.03}{2015/01/09}{Bugfix für Seitenstilauswahl}^^A +% \changes{v2.04}{2015/03/20}{Reimplementierung}^^A +% \begin{macro}{\nextabstract} +% \changes{v2.02}{2014/11/05}{neu}^^A % Die \env{abstract}-Umgebung wird komplett überarbeitet. Um alle gewünschten % Optionen\footnote{\opt{titlepage}, \opt{twocolumn}, \opt{abstract@multi}, % \opt{abstract@fil} sowie Gliederungsebene der Überschrift} beachten zu @@ -595,7 +745,7 @@ % der Verwendung einer Titelseite der Seitenstil definiert werden. Dafür wird % das dafür verantwortliche Makro \cs{tud@ps} auf \cs{relax} gesetzt. % \begin{macrocode} - \ifnumless{\@nameuse{tud@abstract@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% % \end{macrocode} % Als nächstes werden die Optionen verarbeitet. Sollte nach Abarbeitung der @@ -618,25 +768,38 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{abstract}{\tud@fm@set{abstract}{\abstractname}{\BODY}}% +% \end{macrocode} +% Mit dem Befehl \cs{nextabstract} können einzelne Abschnitte innerhalb einer +% Zusammenfassung getrennt werden. +% \begin{macrocode} + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% % \end{macrocode} % Nach der Umgebung wird bei aktiver \opt{titlepage}-Option der ursprüngliche -% Seitenstil zurückgesetzt. +% Seitenstil zurückgesetzt. Zuvor wird ggf. der notwendige vertikale Leerraum +% eingefügt. % \begin{macrocode} }[% \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] % \end{macrocode} -% \end{environment}^^A abstract % \begin{parameter}{language} % \begin{parameter}{columns} % \begin{parameter}{pagestyle} -% \changes{v2.02}{2014/07/19}{neu}%^^A +% \changes{v2.02}{2014/07/19}{neu}^^A % \begin{parameter}{markboth} -% \changes{v2.02}{2014/11/05}{neu}%^^A +% \changes{v2.02}{2014/11/05}{neu}^^A % \begin{parameter}{abstract} % \begin{parameter}{option} % Als Schlüssel für die \env{abstract}-Umgebung können Sprache, Anzahl der @@ -644,7 +807,7 @@ % \begin{macrocode} \TUD@parameter{abstract}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% % \end{macrocode} % Für das Setzen von Kolumnentiteln wird der Seitenstil auf \val{headings} @@ -666,9 +829,9 @@ \TUD@parameter@let{option}{abstract}% % \end{macrocode} % Für die Optionsangabe ohne Schlüssel und Wert kann eine Anzahl an Spalten -% oder eine alternative Sprache angegeben werden. Hierfür ist der Befehl -% \cs{TUD@parameter@defaulthandler} definiert, welcher auch von der Umgebung -% \env{tudpage} verwendet wird. +% oder eine alternative Sprache angegeben werden. Für die Auswertung des +% Argumentes verantwortlich ist der Befehl \cs{TUD@parameter@defaulthandler}, +% welcher auch von der Umgebung \env{tudpage} verwendet wird. % \begin{macrocode} \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% } @@ -679,30 +842,18 @@ % \end{parameter}^^A pagestyle % \end{parameter}^^A columns % \end{parameter}^^A language -% \begin{macro}{\nextabstract} -% \changes{v2.02}{2014/11/05}{neu}%^^A -% Um einzelne Abschnitte innerhalb einer Zusammenfassung trennen zu können, ist -% dieser Befehl notwendig. +% Der Befehl \cs{nextabstract} lässt sich nur in der Umgebung \env{abstract} +% verwenden. % \begin{macrocode} \newcommand*\nextabstract[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \else% - \ifbool{@tud@abstract@multi}{% - \ifcase\@nameuse{tud@abstract@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% - \fi% - }{}% - \fi% - \tud@fm@next{abstract}{#1}% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{abstract}{\abstractname}}]% - \else% - \tud@fm@head{abstract}{\abstractname}% - \fi% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% + }% } % \end{macrocode} % \end{macro}^^A \nextabstract +% \end{environment}^^A abstract % % \iffalse %</class&body> @@ -715,37 +866,35 @@ % äquivalent zur \env{abstract}-Umgebung mit den gleichen Optionen % ausgestattet. % \begin{macro}{\tud@declaration@level} -% \begin{macro}{\if@tud@declaration@toc} -% \begin{macro}{\if@tud@declaration@toc@locked} -% \begin{macro}{\if@tud@declaration@toc@leveldown} -% \changes{v2.02}{2014/11/05}{}%^^A -% \begin{macro}{\if@tud@declaration@markboth} -% \changes{v2.02}{2014/11/05}{neu}%^^A +% \begin{macro}{\tud@declaration@toc} +% \changes{v2.04}{2015/04/24}{neu}^^A +% \begin{macro}{\tud@declaration@toc@locked} +% \changes{v2.04}{2015/04/24}{neu}^^A % \begin{macro}{\if@tud@declaration@multi} % \begin{macro}{\if@tud@declaration@fil} +% \begin{macro}{\if@tud@declaration@markboth} +% \changes{v2.02}{2014/11/05}{neu}^^A % Siehe die Option \opt{abstract}. % \begin{macrocode} %<*report|article> \newcommand*\tud@declaration@level{1} -\bool@lock{@tud@declaration@toc} +\cs@lock{tud@declaration@toc}{0} %</report|article> %<*book> \newcommand*\tud@declaration@level{3} -\bool@lock[true]{@tud@declaration@toc} +\cs@lock{tud@declaration@toc}{1} %</book> -\newif\if@tud@declaration@toc@leveldown -\newif\if@tud@declaration@markboth \newif\if@tud@declaration@multi -\newif\if@tud@declaration@fil \@tud@declaration@multitrue +\newif\if@tud@declaration@fil \@tud@declaration@filtrue +\newif\if@tud@declaration@markboth % \end{macrocode} +% \end{macro}^^A \if@tud@declaration@markboth % \end{macro}^^A \if@tud@declaration@fil % \end{macro}^^A \if@tud@declaration@multi -% \end{macro}^^A \if@tud@declaration@markboth -% \end{macro}^^A \if@tud@declaration@toc@leveldown -% \end{macro}^^A \if@tud@declaration@toc@locked -% \end{macro}^^A \if@tud@declaration@toc +% \end{macro}^^A \tud@declaration@toc@locked +% \end{macro}^^A \tud@declaration@toc % \end{macro}^^A \tud@declaration@level % \begin{option}{declaration} % Siehe die Option \opt{abstract}. @@ -759,40 +908,57 @@ \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@declaration@level{0}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% true \def\tud@declaration@level{1}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% section \def\tud@declaration@level{2}% - \bool@std@lock{@tud@declaration@toc}{true}% - \or% + \cs@std@lock{tud@declaration@toc}{1}% + \or% chapter %<*book|report> \def\tud@declaration@level{3}% - \bool@std@lock{@tud@declaration@toc}{true}% + \cs@std@lock{tud@declaration@toc}{1}% %</book|report> - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@declaration@toc}{false}% - \or% - \@tud@declaration@markbothtrue% - \or% - \@tud@declaration@markbothfalse% - \or% + \or% single \@tud@declaration@multifalse% - \or% + \or% multiple \@tud@declaration@multitrue% - \or% + \or% nofil \@tud@declaration@filfalse% - \or% + \or% fil \@tud@declaration@filtrue% + \or% markboth + \@tud@declaration@markbothtrue% + \or% nomarkboth + \@tud@declaration@markbothfalse% + \or% nottotoc + \cs@set@lock{tud@declaration@toc}{0}% + \or% totoc + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \else% + \cs@set@lock{tud@declaration@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{2}% + \else% + \cs@set@lock{tud@declaration@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@declaration@toc=\z@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \fi% + \ifnum\tud@declaration@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@declaration@toc}{% + \the\numexpr\tud@declaration@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } @@ -805,9 +971,10 @@ % \fi % % \begin{environment}{declarations} -% \changes{v2.02}{2014/11/05}{neu}%^^A -% \changes{v2.03}{2015/01/09}{Bugfix für Seitenstilauswahl}%^^A -% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A +% \changes{v2.02}{2014/11/05}{neu}^^A +% \changes{v2.03}{2015/01/09}{Bugfix für Seitenstilauswahl}^^A +% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}^^A +% \changes{v2.04}{2015/03/20}{Reimplementierung}^^A % \begin{macro}{\if@tud@declarations} % Die \env{declarations}-Umgebung wird ähnlich zur \env{abstract}-Umgebung % definiert. Prinzipiell funktioniert diese genauso, inklusive der Parameter. @@ -818,7 +985,7 @@ \newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% - \ifnumless{\@nameuse{tud@declaration@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% \TUD@parameter@set{declaration}{#1}% \tud@multicols@check% @@ -828,17 +995,18 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{declaration}{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% - \BODY% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% - }% +% \end{macrocode} +% Im Gegensatz zu \env{abstract} werden in der \env{declarations}-Umgebung alle +% Erklärungen in einer \emph{geschlossenen} Variante verwendet, um diese mit +% einzelnen nacheinander angeben zu gönnen. Jedes der möglichen Makros +% (\cs{declaration}, \cs{nextdeclaration}, \cs{blocking} und \cs{confirmation}) +% führt intern die beiden notwendigen Makros \cs{tud@fm@body@start} sowie +% \cs{tud@fm@body@end} selbstständig aus. +% \begin{macrocode} + \tud@fm@check{declaration}{\BODY}% }[% \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% @@ -848,11 +1016,11 @@ % \end{environment}^^A declarations % \begin{parameter}{language} % \begin{parameter}{columns} -% \changes{v2.02}{2014/07/19}{neu}%^^A +% \changes{v2.02}{2014/07/19}{neu}^^A % \begin{parameter}{pagestyle} -% \changes{v2.02}{2014/07/19}{neu}%^^A +% \changes{v2.02}{2014/07/19}{neu}^^A % \begin{parameter}{markboth} -% \changes{v2.02}{2014/11/05}{neu}%^^A +% \changes{v2.02}{2014/11/05}{neu}^^A % \begin{parameter}{supporter} % \begin{parameter}{place} % \begin{parameter}{closing} @@ -866,7 +1034,7 @@ % \begin{macrocode} \TUD@parameter{declaration}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% @@ -887,12 +1055,6 @@ \TUD@parameter@let{confirmationclosing}{closing}% \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}% \TUD@parameter@let{option}{declaration}% -% \end{macrocode} -% Für die Optionsangabe ohne Schlüssel und Wert kann eine Anzahl an Spalten -% oder eine alternative Sprache angegeben werden. Hierfür ist der Befehl -% \cs{TUD@parameter@defaulthandler} definiert, welcher auch von der Umgebung -% \env{tudpage} verwendet wird. -% \begin{macrocode} \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% } % \end{macrocode} @@ -907,22 +1069,20 @@ % \end{parameter}^^A columns % \end{parameter}^^A language % \begin{macro}{\declaration} -% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A -% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A +% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}^^A +% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}^^A +% \begin{macro}{\nextdeclaration} +% \changes{v2.04}{2015/03/20}{neu}^^A % Dieser Befehl dient zur Ausgabe von sowohl Selbstständigkeitserklärung als % auch Sperrvermerk. Über das optionale Argument kann ohne Schlüssel die % gewünschte Sprache eingestellt werden. Zusätzlich können Optionen als % Schlüssel-Wert-Paare angegeben werden. % \begin{macrocode} \newcommand*\declaration[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% - \tud@fm@blocking% + \tud@fm@confirmation[#1]% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -930,25 +1090,39 @@ \tud@fm@blocking% \end{declarations}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } % \end{macrocode} +% Mit \cs{nextdeclaration} kann eine freie Erklärung abgegeben werden. Dabei +% sind~-- im Gegensatz zu \cs{nextabstract}~-- sowohl Überschrift als auch der +% Inhalt als obligatorisches Argument anzugeben, da innerhalb der Umgebung +% \env{declarations} die geschlossene Angabe des Inhalts innerhalb von +% \cs{tud@fm@body@start} und \cs{tud@fm@body@end} notwendig ist. +% \begin{macrocode} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2} + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \nextdeclaration % \end{macro}^^A \declaration % \begin{macro}{\confirmation} -% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A -% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A +% \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}^^A +% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}^^A % \begin{macro}{\tud@fm@confirmation} -% \changes{v2.02}{2014/07/18}{neu}%^^A +% \changes{v2.02}{2014/07/18}{neu}^^A % Mit diesem Befehl kann die Selbstständigkeitserklärung ausgegeben werden. Das % optionale Argument bestimmt, wer als Unterstützer angegeben wird. Außerdem % sind Schlüssel-Wert-Paare als Option nutzbar. % \begin{macrocode} \newcommand*\confirmation[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% % \end{macrocode} % Damit das optionale Argument ohne Schlüssel für die Unterstützer verwendet % werden kann, wird der Handler umdefiniert. @@ -958,8 +1132,7 @@ }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% + \tud@fm@confirmation[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -972,43 +1145,34 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } % \end{macrocode} % Dies ist der eigentliche Inhalt des Befehls \cs{confirmation}. % \begin{macrocode} -\newcommand*\tud@fm@confirmation{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\confirmationname}{% - \confirmationtext\vskip\z@\@confirmationclosing% - }% - }% +\newcommand*\tud@fm@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% } % \end{macrocode} % \end{macro}^^A \tud@fm@confirmation % \end{macro}^^A \confirmation % \begin{macro}{\blocking} -% \changes{v2.02}{2014/05/16}{neu, \cs{restriction} umbenannt}%^^A -% \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}%^^A -% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A +% \changes{v2.02}{2014/05/16}{neu, \cs{restriction} umbenannt}^^A +% \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}^^A +% \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}^^A % \begin{macro}{\tud@fm@blocking} -% \changes{v2.02}{2014/07/18}{neu}%^^A +% \changes{v2.02}{2014/07/18}{neu}^^A % Für den Sperrvermerk wird äquivalent zu \cs{confirmation} verfahren. Das % optionale Argument ohne Schlüssel setzt hier die Firma für den Sperrvermerk. % \begin{macrocode} \newcommand*\blocking[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{company=##1}% }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@blocking% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -1018,17 +1182,14 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } % \end{macrocode} % Dies ist der eigentliche Inhalt des Befehls \cs{blocking}. % \begin{macrocode} -\newcommand*\tud@fm@blocking{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\blockingname}{\blockingtext}% - }% +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% } % \end{macrocode} % \end{macro}^^A \tud@fm@blocking diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx index 6f47c90f6c8..b82e58239ce 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1130} +% \CheckSum{1230} % \iffalse meta-comment % % ============================================================================ @@ -51,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-layout.dtx}[% - 2015/06/11 v2.03a TUD-KOMA-Script (layout)% + 2015/06/15 v2.04 TUD-KOMA-Script (layout)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -72,7 +72,7 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A +% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A % % \section{Das Layout des \CDs} % @@ -90,6 +90,7 @@ % \subsection{Optionen} % % \begin{option}{cd} +% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \begin{macro}{\tud@cd} % \begin{macro}{\tud@layout@cover} % \changes{v2.02}{2014/08/08}{neu}^^A @@ -135,10 +136,11 @@ {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% - {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% - {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% - {color}{4},{colour}{4},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5}% + {colorbar}{3},{barcolor}{3},{colourbar}{3},{barcolour}{3},% + {bicolor}{4},{bicolour}{4},{twocolor}{4},{twocolour}{4},% + {bichrome}{4},{bichromatic}{4},{dichrome}{4},{dichromatic}{4},% + {color}{5},{colour}{5},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } % \end{macrocode} % Es folgt die eigentliche Option. @@ -150,7 +152,7 @@ % \end{macrocode} % Layout nicht im \CD. % \begin{macrocode} - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \cs@std@lock{tud@layout@cover}{0}% \cs@std@lock{tud@layout@title}{0}% \cs@std@lock{tud@layout@part}{0}% @@ -161,7 +163,7 @@ % \end{macrocode} % Layout im \CD mit schwarzer Schrift und schwarzem Kopf. % \begin{macrocode} - \or% + \or% true \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{1}% \cs@std@lock{tud@layout@part}{1}% @@ -172,7 +174,7 @@ % \end{macrocode} % Layout im \CD mit blauer Schrift und blauem Kopf. % \begin{macrocode} - \or% + \or% litecolor % \end{macrocode} % Die Umschlagseite wird standardmäßig immer monochrom gesetzt. % \begin{macrocode} @@ -184,9 +186,9 @@ \TUD@std@ifkey@lock{chapterpage}{false}% %</book|report> % \end{macrocode} -% Layout im \CD mit blauer Schrift und zweifarbigem Kopf. +% Layout im \CD mit blauer Schrift und farbigem Querbalken. % \begin{macrocode} - \or% + \or% barcolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{3}% \cs@std@lock{tud@layout@part}{3}% @@ -195,22 +197,21 @@ \TUD@std@ifkey@lock{chapterpage}{false}% %</book|report> % \end{macrocode} -% Farbiges Layout mit farbigem Hintergrund im \CD mit weißer Schrift und -% Outline im Kopf. +% Layout im \CD mit blauer Schrift und zweifarbigem Kopf. % \begin{macrocode} - \or% + \or% bicolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{4}% \cs@std@lock{tud@layout@part}{4}% %<*book|report> \cs@std@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{true}% + \TUD@std@ifkey@lock{chapterpage}{false}% %</book|report> % \end{macrocode} % Farbiges Layout mit farbigem Hintergrund im \CD mit weißer Schrift und -% farbigem Querbalken im Kopf. +% Outline im Kopf. % \begin{macrocode} - \or% + \or% color \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{5}% \cs@std@lock{tud@layout@part}{5}% @@ -218,6 +219,18 @@ \cs@std@lock{tud@layout@chapter}{5}% \TUD@std@ifkey@lock{chapterpage}{true}% %</book|report> +% \end{macrocode} +% Farbiges Layout mit farbigem Hintergrund im \CD mit weißer Schrift und +% farbigem Querbalken im Kopf. +% \begin{macrocode} + \or% full + \cs@std@lock{tud@layout@cover}{1}% + \cs@std@lock{tud@layout@title}{6}% + \cs@std@lock{tud@layout@part}{6}% +%<*book|report> + \cs@std@lock{tud@layout@chapter}{6}% + \TUD@std@ifkey@lock{chapterpage}{true}% +%</book|report> \fi% % \end{macrocode} % Die Ausführung des Befehls \cs{tud@layout@process} sorgt dafür, dass alle @@ -234,9 +247,9 @@ % festgelegt. Dies kann vom Benutzer mit dem Setzen der Option \opt{cdgeometry} % überschrieben werden. % \begin{macrocode} - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \TUD@std@numkey@lock{cdgeometry}{false}% - \else% + \else% !false \TUD@std@numkey@lock{cdgeometry}{true}% \fi% \fi% @@ -256,24 +269,27 @@ % \end{option}^^A cd % \begin{option}{cdcover} % \changes{v2.02}{2014/08/08}{neue Option für \cs{makecover}}^^A +% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % Das durch die Option \opt{cd} insgesamt festgelegte Layout kann für die % einzelnen Elemente Umschlagseite (\opt{cdcover}),\dots % \begin{macrocode} \TUD@key{cdcover}[true]{% \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@cover}{0}% - \or% + \or% true \cs@set@lock{tud@layout@cover}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@cover}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@cover}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@cover}{4}% - \or% + \or% color \cs@set@lock{tud@layout@cover}{5}% + \or% full + \cs@set@lock{tud@layout@cover}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -281,23 +297,26 @@ % \end{macrocode} % \end{option}^^A cdcover % \begin{option}{cdtitle} +% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \dots Titel (\opt{cdtitle}),\dots % \begin{macrocode} \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@title}{0}% - \or% + \or% true \cs@set@lock{tud@layout@title}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@title}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@title}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@title}{4}% - \or% + \or% color \cs@set@lock{tud@layout@title}{5}% + \or% full + \cs@set@lock{tud@layout@title}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -305,23 +324,26 @@ % \end{macrocode} % \end{option}^^A cdtitle % \begin{option}{cdpart} +% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \dots Teile- (\opt{cdpart}) und\dots % \begin{macrocode} \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@part}{0}% - \or% + \or% true \cs@set@lock{tud@layout@part}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@part}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@part}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@part}{4}% - \or% + \or% color \cs@set@lock{tud@layout@part}{5}% + \or% full + \cs@set@lock{tud@layout@part}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -329,6 +351,7 @@ % \end{macrocode} % \end{option}^^A cdpart % \begin{option}{cdchapter} +% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \dots bei den entsprechenden Klassen (\cls{tudscrbook} und \cls{tudscrreprt}) % auch für die Kapitelseiten (\opt{cdchapter}) separat für die einzelnen % Elemente geändert bzw. überschrieben werden. @@ -337,24 +360,27 @@ \TUD@key{cdchapter}[true]{% \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@chapter}{0}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% true \cs@set@lock{tud@layout@chapter}{1}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% litecolor \cs@set@lock{tud@layout@chapter}{2}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% barcolor \cs@set@lock{tud@layout@chapter}{3}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% bicolor \cs@set@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{true}% - \or% + \TUD@std@ifkey@lock{chapterpage}{false}% + \or% color \cs@set@lock{tud@layout@chapter}{5}% \TUD@std@ifkey@lock{chapterpage}{true}% + \or% full + \cs@set@lock{tud@layout@chapter}{6}% + \TUD@std@ifkey@lock{chapterpage}{true}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -362,42 +388,6 @@ %</book|report> % \end{macrocode} % \end{option}^^A cdchapter -% \begin{option}{headings} -% \begin{macro}{\tud@font@heading@size} -% Die \KOMAScript-Option \opt{headings} setzt die Formatierung aller -% Überschriften zurück. Damit die Einstellungen für das \CD aktiv bleiben, -% werden nach der Ausführung der Option die mit \cs{tud@font@koma@set} -% definierten Makros \cs{tud@font@koma@\meta{Element}} erneut an die -% entsprechenden Schriftelemente angehängt. -% \begin{macrocode} -\newcommand*\tud@font@heading@size{} -\AtEndOfClass{\let\tud@font@heading@size\size@part} -\DefineFamilyMember{KOMA} -\DefineFamilyKey{KOMA}{headings}{% - \AtEndOfFamilyOptions{% - \let\tud@font@heading@size\size@part% - \if@atdocument% - \tud@layout@process% - \ifcase\tud@layout@part\relax\else% - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% -%<*book|report> - \fi% - \ifcase\tud@layout@chapter\relax\else% - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% -%</book|report> - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% - \tud@font@koma@reset{minisec}% - \fi% - \fi% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@font@heading@size -% \end{option}^^A headings % % \iffalse %<*book|report> @@ -436,13 +426,13 @@ % \end{option}^^A chapterpage % \begin{option}{cleardoublespecialpage} % \changes{v2.02}{2014/07/08}{Nutzung als globale Klassenoption mit Werten für -% Seitenstile aus den \KOMAScript{} bzw. \TUDScript-Klassen}%^^A +% Seitenstile aus den \KOMAScript{} bzw. \TUDScript-Klassen}^^A % \changes{v2.03}{2015/01/09}{Prüfung des Seitenstils mit \cs{AfterPreamble} -% auf Beginn des Dokumentes verzögert}%^^A +% auf Beginn des Dokumentes verzögert}^^A % \begin{macro}{\tud@cleardoublepage} % \begin{macro}{\tud@cleardoublespecialpage} -% \changes{v2.03}{2015/01/09}{Seitenhintergrund mit \pkg{scrlayer-scrpage}, -% Makro \cs{tud@restorepagecolor} überflüssig}%^^A +% \changes{v2.03}{2015/01/09}{Makro \cs{tud@restorepagecolor} ist aufgrund der +% Nutzung von \pkg{scrlayer-scrpage} für Seitenhintergrund überflüssig}^^A % Für Klassen mit separaten Teileseiten und Kapiteln wird eine zusätzliche % Option definiert, welche nur bei zweiseitigem Satz (\opt{twoside}) und % zusätzlich immer auf nur der rechten Seite öffnenden Teilen bzw. Kapiteln @@ -495,9 +485,9 @@ \ifcsdef{ps@#1}{% \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }{% - \ClassError{\tudcls@name}{`#1' is no valid pagestyle}{% + \ClassError{\TUDClassName}{`#1' is no valid pagestyle}{% You tried to use `#1' as a pagestyle for option\MessageBreak% - `cleardoublespecialpage', but it was never defined% + `cleardoublespecialpage', but it was never defined.% }% }% }% @@ -563,6 +553,86 @@ % % \iffalse %</book|report> +% \fi +% +% \begin{macro}{\tud@font@koma@set} +% \begin{macro}{\tud@font@koma@reset} +% \changes{v2.02}{2014/08/24}{neu}^^A +% \begin{macro}{\tud@font@koma@unset} +% Es wird die Möglichkeit geschaffen, bestimmten Schriftelementen weitere +% Eigenschaften mitzugeben. Damit dies optionsabhängig geschehen kann und +% \cs{addtokomafont} nur einmalig verwendete werden muss, wird im Zweifelsfall +% einem Schriftelement ein Hilfsmakro \cs{tud@font@koma@\meta{Element}} +% zugewiesen, welches intern angepasst werden kann. Mit \cs{tud@font@koma@set} +% werden dem angegebenen Element die gewünschten Schriftattribute zugeteilt. +% \begin{macrocode} +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% + \@namedef{tud@font@koma@#1}{#2\nobreak}% +} +% \end{macrocode} +% Durch die Option \opt{headings} werden die Schriftelemente zurückgesetzt. +% Mit dem hier definierten Befehl \cs{tud@font@koma@reset} kann diesen das +% Hilfsmakro abermals zugewiesen +% werden. +% \begin{macrocode} +\newcommand*\tud@font@koma@reset[1]{% + \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% +} +% \end{macrocode} +% Mit \cs{tud@font@koma@unset} kann das angegebene Element wieder zurückgesetzt +% werden. Dabei wird das zuvor hinzugefügte Makro auf \cs{relax} gesetzt. +% \begin{macrocode} +\newcommand*\tud@font@koma@unset[1]{% + \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@koma@unset +% \end{macro}^^A \tud@font@koma@reset +% \end{macro}^^A \tud@font@koma@set +% \begin{macro}{\usesizeofkomafont} +% \changes{v2.02}{2014/05/17}{entfernt}^^A +% Mit \TUDScript~v2.02 wurde die Bereitstellung dieses Befehls aufgrund der +% zwingenden Verwendung von \KOMAScript{}~v3.12 entfernt. +% \end{macro}^^A \usesizeofkomafont +% \begin{option}{headings} +% \begin{macro}{\tud@font@heading@size} +% Die \KOMAScript-Option \opt{headings} setzt die Formatierung aller +% Überschriften zurück. Damit die Einstellungen für das \CD aktiv bleiben, +% werden nach der Ausführung der Option die mit \cs{tud@font@koma@set} +% definierten Makros \cs{tud@font@koma@\meta{Element}} erneut an die +% entsprechenden Schriftelemente angehängt. +% \begin{macrocode} +\newcommand*\tud@font@heading@size{} +\AtEndOfClass{\let\tud@font@heading@size\size@part} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{headings}{% + \AtEndOfFamilyOptions{% + \let\tud@font@heading@size\size@part% + \if@atdocument% + \tud@layout@process% + \ifcase\tud@layout@part\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@reset{partnumber}% +%<*book|report> + \fi% + \ifcase\tud@layout@chapter\relax\else% !false + \tud@font@koma@reset{chapter}% + \tud@font@koma@reset{chapterprefix}% +%</book|report> + \tud@font@koma@reset{section}% + \tud@font@koma@reset{subsection}% + \tud@font@koma@reset{subsubsection}% + \tud@font@koma@reset{minisec}% + \fi% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@heading@size +% \end{option}^^A headings +% +% \iffalse %</class&option> %<*class&body> % \fi @@ -577,34 +647,36 @@ % \begin{macro}{\tud@chapter@fontcolor} % Die Makros werden für die Farbe der Überschriften verwendet. % \begin{macrocode} -\newcommand*\tud@part@fontcolor{black} +\newcommand*\tud@part@fontcolor{} %<*book|report> -\newcommand*\tud@chapter@fontcolor{black} +\newcommand*\tud@chapter@fontcolor{} %</book|report> % \end{macrocode} % \end{macro}^^A \tud@chapter@fontcolor % \end{macro}^^A \tud@part@fontcolor % \begin{KOMAfont}{tud@heading} -% \changes{v2.02}{2014/08/24}{entfernt}%^^A +% \changes{v2.02}{2014/08/24}{entfernt}^^A % \begin{KOMAfont}{parttitle} -% \changes{v2.02}{2014/08/24}{neu}%^^A +% \changes{v2.02}{2014/08/24}{neu}^^A % \begin{macro}{\tud@font@heading@numsize} -% \changes{v2.02}{2014/08/24}{entfernt}%^^A +% \changes{v2.02}{2014/08/24}{entfernt}^^A % \begin{macro}{\tud@font@part} -% \changes{v2.02}{2014/08/24}{entfernt}%^^A +% \changes{v2.02}{2014/08/24}{entfernt}^^A % \begin{macro}{\tud@font@part@number} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % \begin{macro}{\tud@font@part@title} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % \begin{macro}{\tud@font@chapter} -% \changes{v2.02}{2014/08/24}{entfernt}%^^A +% \changes{v2.02}{2014/08/24}{entfernt}^^A % Es wird das Schriftelement für die Option \opt{parttitle} erstellt. % \begin{macrocode} +%<*book|report> \newkomafont{parttitle}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% \usesizeofkomafont{section}% } +%</book|report> % \end{macrocode} % \end{macro}^^A \tud@font@chapter % \end{macro}^^A \tud@font@part@title @@ -614,9 +686,9 @@ % \end{KOMAfont}^^A parttitle % \end{KOMAfont}^^A tud@heading % \begin{length}{\pageheadingsvskip} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{length}{\headingsvskip} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Mit diesen Längen kann der Anwender die Überschriften von Titel, Teilen und % Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD % eigentlich vorgegeben ist. Die Länge \cs{pageheadingsvskip} verschiebt dabei @@ -632,30 +704,27 @@ % \end{length}^^A \headingsvskip % \end{length}^^A \pageheadingsvskip % \begin{macro}{\tud@headmidvskip} -% \changes{v2.03}{2015/01/21}{neu}%^^A +% \changes{v2.03}{2015/01/21}{neu}^^A % \begin{macro}{\tud@headmidvskip@neg} -% \changes{v2.03}{2015/01/21}{neu}%^^A +% \changes{v2.03}{2015/01/21}{neu}^^A % Mit \cs{tud@headmidvskip} wird der Abstände zwischen Nummerierung eines % Titels und der eigentlichen Bezeichnung gesetzt. Das gleiche gilt für eine % separate Kapitelnummernzeile (\opt{chapterprefix}) und dem eigentlichen % Kapiteltitel. Das Makro \cs{tud@headmidvskip@neg} wird benötigt, um ggf. % vorher um den eingefügten Abstand nach oben zu verschieben. % \begin{macrocode} -%<*article> -\newcommand*\tud@headmidvskip{\par\nobreak} -%</article> %<*book|report> \newcommand*\tud@headmidvskip{\par\nobreak\vspace{.5\baselineskip}} \newcommand*\tud@headmidvskip@neg{% - \setbox0\vbox{\tud@headmidvskip}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht0\relax}% + \setbox\z@\vbox{\tud@headmidvskip}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% } %</book|report> % \end{macrocode} % \end{macro}^^A \tud@headmidvskip@neg % \end{macro}^^A \tud@headmidvskip % \begin{macro}{\tud@layout@process} -% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A +% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A % Dieser Befehl kümmert sich darum, dass die gewählten Optionen für den % Seitenstil auch umgesetzt werden. Dabei wird insbesondere darauf Wert gelegt, % dass die Optionen auch zur Laufzeit geändert und wiederhergestellt werden @@ -666,9 +735,9 @@ % Die Einstellungen für die Umschlagseite. Je nachdem, ob das \CD verwendet % wird, wird der Satzspiegel standardmäßig umgestellt oder eben nicht. % \begin{macrocode} - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \bool@std@lock{@tud@cover@cdgeometry}{false}% - \else% + \else% !false \bool@std@lock{@tud@cover@cdgeometry}{true}% \fi% % \end{macrocode} @@ -677,7 +746,7 @@ % später gegebenenfalls mit \cs{tud@cmd@restore}\marg{Befehl} wiederhergestellt % werden können. % \begin{macrocode} - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \tud@cmd@restore{maketitle}% \tud@cmd@restore{@maketitle}% \tud@cmd@restore{titlepagestyle}% @@ -688,7 +757,7 @@ \tud@font@koma@unset{author}% \tud@font@koma@unset{date}% \tud@font@koma@unset{publishers}% - \else% + \else% !false \tud@cmd@store{maketitle}% \tud@cmd@store{@maketitle}% \tud@cmd@store{titlepagestyle}% @@ -697,18 +766,18 @@ \usekomafont{disposition}% \tud@font@heading% \tud@font@heading@size% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subtitle}{% \tud@font@heading% \usesizeofkomafont{section}% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subject}{% \fontfamily{\sfdefault}% \fontseries{\bfdefault}% \selectfont% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{author}{\usekomafont{subject}}% \tud@font@koma@set{date}{\usekomafont{titlepage}}% @@ -718,72 +787,73 @@ \fi% % \end{macrocode} % Das gleiche für die Teileseiten. +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] % \begin{macrocode} - \ifcase\tud@layout@part\relax% + \ifcase\tud@layout@part\relax% false \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadmidvskip}% %<*book|report> \tud@cmd@restore{partheadendvskip}% \tud@cmd@restore{partheademptypage}% \tud@cmd@restore{partpagestyle}% %</book|report> - \tud@cmd@restore{@part}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@startpart}% %<*book|report> - \tud@cmd@restore{@spart}% + \tud@cmd@restore{scr@@startspart}% %</book|report> + }{% + \tud@cmd@restore{@part}% +%<*book|report> + \tud@cmd@restore{@spart}% +%</book|report> + }% \tud@sectioning@reset[addpart]{part}% \tud@font@koma@unset{partnumber}% % \end{macrocode} % Es werden die Standardbefehle gesichert und für das \CD angepasst. +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] % \begin{macrocode} - \else% + \else% !false \tud@cmd@store{partheadstartvskip}% - \tud@cmd@store{partheadmidvskip}% %<*book|report> \tud@cmd@store{partheadendvskip}% \tud@cmd@store{partheademptypage}% \tud@cmd@store{partpagestyle}% %</book|report> - \tud@cmd@store{@part}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% %<*book|report> - \tud@cmd@store{@spart}% + \tud@cmd@store{scr@@startspart}% %</book|report> + }{% + \tud@cmd@store{@part}% +%<*book|report> + \tud@cmd@store{@spart}% +%</book|report> + }% % \end{macrocode} % Es wird die Schriftfarbe, "~größe und "~art angepasst, je nachdem ob der % Titel des Dokumentes auf den Teileseiten auftauchen soll oder eben nicht. +% Für die Artikel-Klasse gibt es die \opt{parttitle}-Option nicht. % \begin{macrocode} %<*book|report> \if@tud@parttitle% \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}% \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \renewcommand*\partheadmidvskip{\enskip}% \else% +%</book|report> \tud@sectioning@set[addpart]{part}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% }% \tud@font@koma@set{partnumber}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% }% - \let\partheadmidvskip\tud@headmidvskip% +%<*book|report> \fi% %</book|report> % \end{macrocode} -% Für die Artikel-Klasse gibt es die \opt{parttitle}-Option nicht. -% \begin{macrocode} -%<*article> - \tud@sectioning@set[addpart]{part}{% - \tud@font@heading% - \color{\tud@part@fontcolor}% - }% - \tud@font@koma@set{partnumber}{% - \tud@font@heading% - \color{\tud@part@fontcolor}% - }% - \let\partheadmidvskip\tud@headmidvskip% -%</article> -% \end{macrocode} % Einigen Makros werden mittels \cs{let} Definitionen von anderen Makros % zugewiesen, die sich wiederum am Original orientieren. Hintergrund ist, dass % die originalen Befehle angepasst werden sollen. Damit dies nicht bei jeder @@ -791,6 +861,7 @@ % die Originaldefinition zurückschalten zu können, wird so verfahren. Die % angepassten Befehle selbst und die dazugehörige Beschreibung sind etwas % weiter unten im Quelltext zu finden. +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] % \begin{macrocode} \let\partheadstartvskip\tud@partheadstartvskip% %<*book|report> @@ -798,10 +869,17 @@ \let\partheademptypage\relax% \renewcommand*\partpagestyle{plain.tudheadings}% %</book|report> - \let\@part\tud@@part% + \ifcsdef{scr@v@3.18}{% + \let\scr@@startpart\tud@@startpart% +%<*book|report> + \let\scr@@startspart\tud@@startspart% +%</book|report> + }{% + \let\@part\tud@@part% %<*book|report> - \let\@spart\tud@@spart% + \let\@spart\tud@@spart% %</book|report> + }% \fi% % \end{macrocode} % Die Einstellungen für die Kapitel bzw. die folgenden Gliederungsebenen. Auch @@ -810,17 +888,22 @@ % der Anteil für die Kapitel weg. Das Verhalten der nachgelagerten % Gliederungsebenen orientiert für diese Klasse an den Einstellungen für die % Teileseiten. +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] % \begin{macrocode} %<*article> - \ifcase\tud@layout@part\relax% + \ifcase\tud@layout@part\relax% false %</article> %<*book|report> - \ifcase\tud@layout@chapter\relax% + \ifcase\tud@layout@chapter\relax% false \tud@cmd@restore{chapterheadstartvskip}% \tud@cmd@restore{chapterformat}% \tud@cmd@restore{@chapter}% \tud@cmd@restore{@schapter}% - \tud@cmd@restore{@@makechapterhead}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@makechapterhead}% + }{% + \tud@cmd@restore{@@makechapterhead}% + }% \tud@sectioning@reset[addchap]{chapter}% \tud@font@koma@unset{chapterprefix}% %</book|report> @@ -831,18 +914,23 @@ % \end{macrocode} % Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der % Optionen gesichert und anschließend geändert. +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] % \begin{macrocode} - \else% + \else% !false %<*book|report> \tud@cmd@store{chapterheadstartvskip}% \tud@cmd@store{chapterformat}% \tud@cmd@store{@chapter}% \tud@cmd@store{@schapter}% - \tud@cmd@store{@@makechapterhead}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@makechapterhead}% + }{% + \tud@cmd@store{@@makechapterhead}% + }% \tud@sectioning@set[addchap]{chapter}{% \tud@font@heading% \tud@font@heading@size% - \color{\tud@chapter@fontcolor}% + \tud@color{\tud@chapter@fontcolor}% }% \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% %</book|report> @@ -855,16 +943,48 @@ % \begin{macrocode} %<*book|report> \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \let\@@makechapterhead\tud@@@makechapterhead% + \ifcsdef{scr@v@3.18}{% + \let\scr@@makechapterhead\tud@@@makechapterhead% + }{% + \let\@@makechapterhead\tud@@@makechapterhead% + }% %</book|report> \fi% } % \end{macrocode} % \end{macro}^^A \tud@layout@process +% \begin{macro}{\tud@layout@specialpage@set} +% \changes{v2.04}{2015/04/21}{neu}^^A +% \begin{macro}{\tud@layout@specialpage@unset} +% \changes{v2.04}{2015/04/21}{neu}^^A +% Diese beiden Hilfsmakros werden für Titel- Teile und separate Kapitelseite +% benötigt, um die Fußnoten auf diesen speziellen Seiten in der gleichen Farbe +% wie den Rest der verwendeten Schriften zu setzen. +% \begin{macrocode} +%<*book|report> +\newcommand*\tud@layout@specialpage@set[1]{% + \tud@font@koma@set{footnote}{% + \edef\@tempa{% + \noexpand\tud@color{% + \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% + }% + }\@tempa% + }% + \tud@cmd@store{footnoterule}% + \let\footnoterule\relax% +} +\newcommand*\tud@layout@specialpage@unset{% + \tud@font@koma@unset{footnote}% + \tud@cmd@restore{footnoterule}% +} +%</book|report> +% \end{macrocode} +% \end{macro}^^A \tud@layout@specialpage@unset +% \end{macro}^^A \tud@layout@specialpage@set % \begin{macro}{\tud@partheadstartvskip} -% \changes{v2.02}{2014/11/05}{Nutzung der Option \opt{parttitle} verbessert}%^^A +% \changes{v2.02}{2014/11/05}{Nutzung der Option \opt{parttitle} verbessert}^^A % \changes{v2.03}{2015/01/21}{Bei Verwendung der Option \opt{parttitle}: -% Abstand ist identisch zu Untertitel auf Titelseite}%^^A +% Abstand ist identisch zu Untertitel auf Titelseite}^^A % \begin{macro}{\partheadstartvskip} % Dieses Makro ersetzt den Standardbefehl \cs{partheadstartvskip} für die % CD-Teilseiten. Damit lassen sich insbesondere die Farbanpassungen für alle @@ -879,8 +999,8 @@ \newcommand*\tud@partheadstartvskip{} \let\tud@partheadstartvskip\partheadstartvskip% \pretocmd{\tud@partheadstartvskip}{% - \def\tud@part@fontcolor{black}% - \ifcase\tud@layout@part\relax\or\else% + \def\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part\relax\or\else% *color \def\tud@part@fontcolor{HKS41}% \fi% }{}{\tud@patch@wrn{tud@partheadstartvskip}} @@ -891,16 +1011,19 @@ % \begin{macrocode} %<*book|report> \newcommand*\tud@partheadstartvskip{% - \def\tud@part@fontcolor{black}% - \ifcase\tud@layout@part\relax\or\or% + \def\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part\relax\or\or% litecolor \def\tud@part@fontcolor{HKS41}% - \or% + \or% barcolor \def\tud@part@fontcolor{HKS41}% - \or% + \or% bicolor + \def\tud@part@fontcolor{HKS41}% + \or% color \def\tud@part@fontcolor{HKS41!30}% - \or% + \or% full \def\tud@part@fontcolor{HKS41!30}% \fi% + \tud@layout@specialpage@set{part}% \begingroup% \vspace*{% \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% @@ -917,8 +1040,12 @@ \begingroup% \tud@font@heading% \tud@font@heading@size% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% \ifx\@@title\@empty% + \ClassWarning{\TUDClassName}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% \tud@makeuppercase{\strut}% \else% \tud@makeuppercase{\@@title}% @@ -927,12 +1054,11 @@ % Der Titel des Teils wird auf der gleichen Höhe wie der Untertitel auf der % Titelseite ausgegeben. % \begin{macrocode} - \par\nobreak - {\usekomafont{titlepage}\vskip 2ex\@plus1ex\@minus1ex}% + \par\nobreak% + {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% \endgroup% \else% - \usekomafont{partnumber}% - \tud@headmidvskip@neg% + \usekomafont{partnumber}{\tud@headmidvskip@neg}% \fi% \endgroup% } @@ -946,7 +1072,7 @@ % \fi % % \begin{macro}{\tud@partheadendvskip} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Hiermit wird die Seitenfarbe gesetzt sowie die Schrift für Kopf und % Seitenzahl verändert. Die Änderungen sollen dabei lokal bleiben, wofür das % obligatorische Argument des Befehls \cs{tud@cleardoublespecialpage} verwendet @@ -957,49 +1083,61 @@ \newcommand*\tud@partheadendvskip{% \tud@cleardoublespecialpage{% \def\tud@pagecolor{}% - \ifcase\tud@layout@part\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \ifcase\tud@layout@part\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{white}% - \def\tud@foot@logocolor{white}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% full \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \addtokomafont{pagenumber}{\sffamily\color{\tud@part@fontcolor}}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% + \tud@layout@specialpage@unset% } % \end{macrocode} % \end{macro}^^A \tud@partheadendvskip % \begin{macro}{\tud@parttitle} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % \end{macro}^^A \tud@parttitle % % \iffalse %</book|report> % \fi % -% \begin{macro}{\tud@@part} -% \changes{v2.03}{2015/01/21}{Korrektur bei der Position der Überschrift}%^^A -% \begin{macro}{\@part} +% Für Teile ist zur Formatierung etwas Patcherei notwendig. Zuerst die Patches +% für für \KOMAScript~v3.18: +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] +% \begin{macrocode} +\@tempswafalse +\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\if@tempswa +% \end{macrocode} +% +% \begin{macro}{\tud@@startpart} +% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A +% \begin{macro}{\scr@@startpart} +% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A % Damit auch das Präfix der Teile in Majuskeln erscheint, wird dem Befehl % \cs{partformat}, welcher das Präfix enthält, für die \cls{tudscrartcl}-Klasse -% der entsprechende Befehl vorangestellt. +% der entsprechende Befehl vorangestellt. Die Patches % \begin{macrocode} %<*article> -\let\tud@@part\@part -\patchcmd{\tud@@part}% - {\size@partnumber{\partformat}}% - {\size@partnumber{\tud@makeuppercase{\partformat}}}% - {}{\tud@patch@wrn{@part}}% + \newcommand*\tud@@startpart{}% + \let\tud@@startpart\scr@@startpart% + \patchcmd{\tud@@startpart}% + {\usekomafont{#1prefix}{\@nameuse{#1format}}}% + {\usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}}% + {}{\tud@patch@wrn{scr@@startpart}}% %</article> % \end{macrocode} % Für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse ist etwas mehr Arbeit @@ -1008,17 +1146,17 @@ % Position steht. % \begin{macrocode} %<*book|report> -\let\tud@@part\@part -\ifcsdef{scr@v@3.17}{% - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% + \newcommand*\tud@@startpart{}% + \let\tud@@startpart\scr@@startpart% + \patchcmd{\tud@@startpart}{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\@nameuse{#1format}}% + \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% + \partheadmidvskip }{}% }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% \if@tud@parttitle% \enskip% \else% @@ -1026,59 +1164,116 @@ \fi% }{% \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% + \usekomafont{#1prefix}{\vphantom{\partname}}% \tud@headmidvskip% \fi% }% - }{}{\tud@patch@wrn{@part}}% -}{% + }{}{\tud@patch@wrn{scr@startpart}}% +%</book|report> +% \end{macrocode} +% \end{macro}^^A \scr@@startpart +% \end{macro}^^A \tud@@startpart +% \begin{macro}{\tud@@startspart} +% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A +% \begin{macro}{\scr@@startspart} +% \changes{v2.04}{2015/06/15}{\KOMAScript~v3.18}^^A +% Bei den Teile-Befehlen ohne Gliederungsnummerierung muss zusätzlich der +% Freiraum vorgehalten werden, damit alle Überschriften auf der gleichen +% vertikalen Position liegen. +% \begin{macrocode} +%<*book|report> + \newcommand*\tud@@startspart{}% + \let\tud@@startspart\scr@@startspart% + \patchcmd{\tud@@startspart}{% + \normalfont + \sectfont\nobreak + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip\nobreak% + \fi% + }{}{\tud@patch@wrn{scr@@startspart}}% +%</book|report> +% \end{macrocode} +% \end{macro}^^A \scr@@startspart +% \end{macro}^^A \tud@@startspart +% +% Und nun das Gleiche für \KOMAScript~v3.17: +% \begin{macrocode} +\else +% \end{macrocode} +% \begin{macro}{\tud@@part} +% \changes{v2.03}{2015/01/21}{Korrektur bei der Position der Überschrift}^^A +% \begin{macro}{\@part} +% \begin{macrocode} + \newcommand*\tud@@part{}% +%<*article> + \let\tud@@part\@part + \patchcmd{\tud@@part}% + {\size@partnumber{\partformat}}% + {\size@partnumber{\tud@makeuppercase{\partformat}}}% + {}{\tud@patch@wrn{@part}}% +%</article> +%<*book|report> + \let\tud@@part\@part \patchcmd{\tud@@part}{% \ifnumbered{part}{% \size@partnumber{\partformat}% + \setlength{\@tempskipa}{\scr@part@innerskip}% \partheadmidvskip% }{}% }{% \ifnumbered{part}{% \size@partnumber{\tud@makeuppercase{\partformat}}% - \partheadmidvskip% + \if@tud@parttitle% + \enskip% + \else% + \tud@headmidvskip% + \fi% }{% \if@tud@parttitle\else% \size@partnumber{\vphantom{\partname}}% - \partheadmidvskip% + \tud@headmidvskip% \fi% }% }{}{\tud@patch@wrn{@part}}% -} %</book|report> % \end{macrocode} % \end{macro}^^A \@part % \end{macro}^^A \tud@@part -% -% \iffalse -%<*book|report> -% \fi -% % \begin{macro}{\tud@@spart} % \begin{macro}{\@spart} -% Bei den Teile-Befehlen ohne Gliederungsnummerierung muss zusätzlich der -% Freiraum vorgehalten werden, damit alle Überschriften auf der gleichen -% vertikalen Position liegen. % \begin{macrocode} -\let\tud@@spart\@spart -\patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part -}{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \fi% - \partheadmidvskip\unskip% - \size@part% -}{}{\tud@patch@wrn{@spart}} +%<*book|report> + \newcommand*\tud@@spart{}% + \let\tud@@spart\@spart + \patchcmd{\tud@@spart}{% + \normalfont + \sectfont\nobreak\size@part + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip\nobreak% + \fi% + \size@part% + }{}{\tud@patch@wrn{@spart}} +%</book|report> % \end{macrocode} % \end{macro}^^A \@spart % \end{macro}^^A \tud@@spart +% +% Damit ist die Patcherei beendet. +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] +% \begin{macrocode} +\fi +% \end{macrocode} +% +% \iffalse +%<*book|report> +% \fi +% % \begin{macro}{\tud@partpreamble} % Um die \KOMAScript-Befehle für die Teilepräambel auch für das farbige Layout % nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln wird @@ -1088,11 +1283,11 @@ % gepatchte Version von \cs{set@@@@preamble}. % \begin{macrocode} \newcommand*\tud@partpreamble{% - \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap \KOMAoptions{titlepage=false}% - \addtokomafont{disposition}{\color{\tud@part@fontcolor}}% - \addtokomafont{dictumtext}{\color{\tud@part@fontcolor}}% - \color{\tud@part@fontcolor}% + \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% + \addtokomafont{dictumtext}{\tud@color{\tud@part@fontcolor}}% + \tud@color{\tud@part@fontcolor}% % \end{macrocode} % Hiermit wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln % ausgeglichen. @@ -1103,25 +1298,19 @@ % \end{macrocode} % \end{macro}^^A \tud@partpreamble % \begin{macro}{\tud@chapterheadstartvskip} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \cs{chapterheadstartvskip} wird für die Position der Kapitelüberschriften im % \CD angepasst. Mit der Länge \cs{headingsvskip} kann diese Position vertikal % durch den Benutzer verschoben werden. Außerdem werden die benötigten Farben % für die jeweilig gewählte Option ausgewählt. % \begin{macrocode} \newcommand*\tud@chapterheadstartvskip{% - \def\tud@chapter@fontcolor{black}% - \ifcase\tud@layout@chapter\relax\or\else% + \def\tud@chapter@fontcolor{}% + \ifcase\tud@layout@chapter\relax\or\else% *color \def\tud@chapter@fontcolor{HKS41}% \fi% - \ifcsdef{scr@v@3.15}{% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% - }% - }{% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip\relax% - }% + \vspace*{% + \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% }% \if@tud@chapterpage% \vspace*{\pageheadingsvskip}% @@ -1131,8 +1320,18 @@ }% % \end{macrocode} % \end{macro}^^A \tud@chapterheadstartvskip +% +% Für die Kapitel ist zur Formatierung ebenfalls etwas Patcherei notwendig. +% Zuerst die Patches für für \KOMAScript~v3.18: +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] +% \begin{macrocode} +\@tempswafalse +\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\if@tempswa +% \end{macrocode} +% % \begin{macro}{\tud@@@makechapterhead} -% \begin{macro}{\@@makechapterhead} +% \begin{macro}{\scr@@makechapterhead} % Für das Präfix des Kapitels bei der gegebenenfalls aktivierten Option % \opt{chapterprefix} ist einiges an Anpassungen notwendig, um die eigentliche % Überschrift auf der gewünschten Position erscheinen zu lassen. @@ -1146,63 +1345,59 @@ % Einstellmöglichkieten der \opt{parskip}-Option immer auf exakt der selben % Höhe liegen und auch die Abstände zwischen den ggf. genutzten Präfixen % identisch sind. +% \begin{macrocode} + \newcommand*\tud@@@makechapterhead{} + \let\tud@@@makechapterhead\scr@@makechapterhead + \patchcmd{\tud@@@makechapterhead}{% + \csname #1format\endcsname + \setlength{\@tempskipa}{% + \csname scr@#1@innerskip\endcsname + }% + \chapterheadmidvskip + }{% + \tud@headmidvskip@neg% + \tud@makeuppercase{\csname #1format\endcsname}% + \tud@headmidvskip% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% + \patchcmd{\tud@@@makechapterhead}{\IfUsePrefixLine{}{\raggedchapter}}{% + \IfUsePrefixLine{\IfUseNumber{\setlength\parskip{\z@}}{}}{\raggedchapter}% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% +% \end{macrocode} +% \end{macro}^^A \@@makechapterhead +% \end{macro}^^A \tud@@@makechapterhead % -% Da der Quelltext sich bei \KOMAScript~v3.15 stark geändert hat, wird der -% Befehl \cs{@@makechapterhead} versionsabhängig angepasst. +% Und nun das Gleiche für \KOMAScript~v3.17: % \begin{macrocode} -\newcommand*\tud@@@makechapterhead{} -\let\tud@@@makechapterhead\@@makechapterhead +\else % \end{macrocode} -% Die Patches für \KOMAScript~v3.15 und v3.17. +% +% \begin{macro}{\tud@@@makechapterhead} +% \begin{macro}{\@@makechapterhead} % \begin{macrocode} -\ifcsdef{scr@v@3.15}{% - \ifcsdef{scr@v@3.17}{% - \patchcmd{\tud@@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@neg% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip% - }{}{\tud@patch@wrn{@@makechapterhead}}% + \newcommand*\tud@@@makechapterhead{} + \let\tud@@@makechapterhead\@@makechapterhead + \patchcmd{\tud@@@makechapterhead}{% + \chapterformat + \setlength{\@tempskipa}{\scr@chapter@innerskip}% + \chapterheadmidvskip }{% - \patchcmd{\tud@@@makechapterhead}{\chapterformat\chapterheadmidvskip}{% - \tud@headmidvskip@neg% - \tud@makeuppercase{\chapterformat}\tud@headmidvskip - }{}{\tud@patch@wrn{@@makechapterhead}}% - }% + \tud@headmidvskip@neg% + \tud@makeuppercase{\chapterformat}% + \tud@headmidvskip% + }{}{\tud@patch@wrn{@@makechapterhead}}% \patchcmd{\tud@@@makechapterhead}{\IfUsePrefixLine{}{\raggedchapter}}{% \IfUsePrefixLine{\IfUseNumber{\setlength\parskip{\z@}}{}}{\raggedchapter}% }{}{\tud@patch@wrn{@@makechapterhead}}% % \end{macrocode} -% Die Patches für \KOMAScript~v3.14 und früher. -% \begin{macrocode} -}{% - \patchcmd{\tud@@@makechapterhead}{\chapterheadstartvskip}{% - \chapterheadstartvskip% - \ifnumbered{chapter}{% - \if@chapterprefix% - \begingroup% - \usekomafont{chapterprefix}% - \tud@headmidvskip@neg% - \endgroup% - \fi% - }{}% - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\chapterformat}{% - \tud@makeuppercase{\chapterformat}% - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\endgraf\nobreak\vskip.5\baselineskip}{% - \tud@headmidvskip - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\interlinepenalty}{% - \ifnumbered{chapter}{\setlength\parskip{\z@}}{}\interlinepenalty - }{}{\tud@patch@wrn{@@makechapterhead}} -} -% \end{macrocode} % \end{macro}^^A \@@makechapterhead % \end{macro}^^A \tud@@@makechapterhead +% +% Damit ist die Patcherei beendet. +% \ToDo{Reimplementierung mit \cs{DeclareSectionCommand}}[v2.05] +% \begin{macrocode} +\fi +% \end{macrocode} +% % \begin{macro}{\tud@chapterpreamble} % Um die \KOMAScript-Befehle für die Kapitelpräambel auch für das farbige Layout % nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln der @@ -1210,20 +1405,20 @@ % Ausführung des Befehls durch die gepatchte Version von \cs{set@@@@preamble}. % \begin{macrocode} \newcommand*\tud@chapterpreamble{% - \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap \KOMAoptions{titlepage=false}% % \end{macrocode} % Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig. % \begin{macrocode} \if@tud@chapterpage% - \ifcase\tud@cdfont\relax\or% + \ifcase\tud@cdfont\relax\or% true \TUDoptions{cdfont=true}% - \or% + \or% heavy \TUDoptions{cdfont=heavy}% \fi% - \addtokomafont{disposition}{\color{\tud@chapter@fontcolor}}% - \addtokomafont{dictumtext}{\color{\tud@chapter@fontcolor}}% - \color{\tud@chapter@fontcolor}% + \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% + \addtokomafont{dictumtext}{\tud@color{\tud@chapter@fontcolor}}% + \tud@color{\tud@chapter@fontcolor}% \fi% \@afterindentfalse\@afterheading% } @@ -1232,18 +1427,23 @@ % \begin{macro}{\set@@@@preamble} % Die beiden Befehle für Präambeln aus \KOMAScript{} ignorieren in ihrer % ursprünglichen Form die Einstellungen für \opt{parskip}. Dies wird mit diesem -% Patch beseitigt. Außerdem werden das Makro für die Layouteinstellungen für -% Teile bzw. Kapitel (\cs{tud@\dots preamble}) aufgerufen. Für die Verwendung -% der \env{abstract}-Umgebung in den Präambeln wird außerdem der Befehl -% \cs{phantomsection} auf \cs{relax} gesetzt, um mit \cs{autoref} automatisch -% generierte Querverweise aus dem Paket \pkg{hyperref} nicht zu verändern. +% Patch beseitigt. Außerdem wird das Makro für die Layouteinstellungen für +% Teile (\cs{tud@partpreamble}) respektive Kapitel (\cs{tud@chapterpreamble}) +% aufgerufen. Für die Verwendung der \env{abstract}-Umgebung in den Präambeln +% wird außerdem der Befehl \cs{phantomsection} auf \cs{relax} gesetzt, um mit +% \cs{autoref} automatisch generierte Querverweise aus dem Paket \pkg{hyperref} +% nicht zu verändern. Alternativ zu \cs{let}\cs{@parboxrestore}\cs{relax} +% müsste innerhalb des Argumentes von \cs{parbox} die \KOMAScript-Option +% \opt{parbox} neu gesetzt werden. % \begin{macrocode} \patchcmd{\set@@@@preamble}{% \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }{% - \def\@tempa####1@####2{\@nameuse{tud@####1preamble}}% + \def\@tempa####1@####2{% + \@nameuse{tud@####1preamble}% + \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% + }% \hbox to\hsize{% - \let\@parboxrestore\relax% \let\phantomsection\relax% #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% }% @@ -1252,9 +1452,14 @@ % \end{macro}^^A \set@@@@preamble % \begin{macro}{\tud@chapter@pre} % \begin{macro}{\tud@chapter@app} -% Diese beiden Makros dienen zur Behandlung der Besonderheiten von spearaten -% Kapitelseiten (Option~\opt{chapterpage}). Eingefügt werden sie für die -% die Gliederungsbefehle der Kapitel innerhalb von \cs{tud@sectioning@case}. +% \begin{macro}{\tud@head@bar@store} +% \changes{v2.04}{2015/04/01}{neu}^^A +% \begin{macro}{\tud@head@bar@restore} +% \changes{v2.04}{2015/04/01}{neu}^^A +% Diese Makros dienen zur Behandlung der Besonderheiten von Kapiteln. Dies gilt +% sowohl für normale Kapitelüberschriften als auch für separate Kapitelseiten +% (Option~\opt{chapterpage}). Eingefügt werden sie für die Gliederungsbefehle +% der Kapitel (\cs{chapter} und \cs{addchap}) durch \cs{tud@sectioning@case}. % \begin{macrocode} \newcommand*\tud@chapter@pre{% \if@tud@chapterpage% @@ -1268,10 +1473,19 @@ % \begin{macrocode} \@restonecolfalse% \if@twocolumn\@restonecoltrue\onecolumn\fi% + \tud@layout@specialpage@set{chapter}% \fi% } +% \end{macrocode} +% Unabhängig von der Verwendung einer Kapitelseite, wird die Einstellung der +% Option \opt{cdchapter} für die Gestalt des TUD-Kopfes beachtet, falls dieser +% zum Einsatz kommt. +% \begin{macrocode} +\newcommand*\tud@head@bar@store{}% +\let\tud@head@bar@store\relax% +\newcommand*\tud@head@bar@restore{}% +\let\tud@head@bar@restore\relax% \newcommand*\tud@chapter@app{% - \if@tud@chapterpage% % \end{macrocode} % Nach dem Setzen der Kapitelüberschrift selbst werden die Farbe für den % Hintergrund, die Seitenzahl und den ggf. verwendeten TUD-Kopf angewendet. @@ -1282,37 +1496,66 @@ % die Option \opt{cleardoublespecialpage} bezüglich des Seitenstils der % Rückseite beachtet. Umgesetzt wird dies mit \cs{tud@cleardoublespecialpage}. % \begin{macrocode} + \if@tud@chapterpage% \tud@cleardoublespecialpage{% \def\tud@pagecolor{}% - \ifcase\tud@layout@chapter\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \let\tud@foot@fontcolor\tud@chapter@fontcolor% + \ifcase\tud@layout@chapter\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41!10}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% fullcolor \def\tud@pagecolor{HKS41!10}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \addtokomafont{pagenumber}{\sffamily\color{\tud@chapter@fontcolor}}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% + \tud@layout@specialpage@unset% % \end{macrocode} % Außerdem wird für den Zweispaltensatz auf normales Verhalten zurückgestellt. % \begin{macrocode} \if@restonecol\twocolumn\fi% % \end{macrocode} -% Sollten keine reinen Kapitelseiten verwendet werden, muss gegebenenfalls im -% Kompatibilitätsmodus genügend Freiraum für das \DDC-Logo gelassen werden. +% Sollten keine reinen Kapitelseiten verwendet werden, wird die Einstellung für +% die Gestalt des Kopfes im restlichen Dokument (\cs{tud@head@bar}) im Makro +% \cs{tud@head@bar@store} gesichert und das Makro \cs{tud@head@bar@restore} +% definiert, welches beim Ausführen der Ebene \pgs{tudheadings.last} den +% gesicherten Wert für die darauffolgenden Seite wiederherstellt. % \begin{macrocode} \else% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% + \edef\tud@head@bar@store{\tud@head@bar}% + \edef\tud@head@bar@restore{% + \gdef\noexpand\tud@head@bar{\tud@head@bar@store}% + \global\let\noexpand\tud@head@bar@store\relax% + \global\let\noexpand\tud@head@bar@restore\relax% + }% + \ifcase\tud@layout@chapter\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color + \cs@set@lock{tud@head@bar}{1}% + \or% fullcolor + \cs@set@lock{tud@head@bar}{3}% + \fi% +% \end{macrocode} +% Im Kompatibilitätsmodus muss gegebenenfalls zusätzlich genügend Freiraum für +% das \DDC-Logo gelassen werden. +% \begin{macrocode} + \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% \fi% % \end{macrocode} % Unabhängig von der Option \opt{chapterpage} wird deim zweispaltigen Layout @@ -1323,6 +1566,8 @@ \fi% } % \end{macrocode} +% \end{macro}^^A \tud@head@bar@restore +% \end{macro}^^A \tud@head@bar@store % \end{macro}^^A \tud@chapter@pre % \end{macro}^^A \tud@chapter@app % \begin{macro}{\tud@clearcolor@wrn} @@ -1330,7 +1575,7 @@ % und \opt{twoside} verwendet wird. % \begin{macrocode} \newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Option `clearcolor' is only available together with\MessageBreak% options `twoside' and `open=right'% }% @@ -1345,37 +1590,6 @@ %</book|report> % \fi % -% \begin{macro}{\SecDef} -% \changes{v2.02}{2014/09/12}{neu}%^^A -% \begin{macro}{\scr@section@dblarg} -% \changes{v2.02}{2014/09/12}{neu}%^^A -% \begin{macro}{\scr@section@xdblarg} -% \changes{v2.02}{2014/09/12}{neu}%^^A -% Diese Befehle werden ab der \KOMAScript-Version~v3.14 eingeführt. Damit -% werden obligatorische Argumente der Gliederungsebenen besser auf das -% optionale Argument dupliziert, falls dieses nicht angegeben wurde. Damit das -% auch mit der Version~v3.12 funktioniert, werden die entsprechenden Befehle -% hier bereitgehalten. -% \begin{macrocode} -\ifcsdef{scr@v@3.14}{}{% - \providecommand*\SecDef[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}} - \providecommand\scr@section@dblarg[1]{% - \kernel@ifnextchar[%] - {#1}% - {\scr@section@xdblarg{#1}}% - } - \providecommand\scr@section@xdblarg[2]{% - \begingroup - \edef\reserved@a{% - \unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}% - {\scr@osectarg}}% - \reserved@a - } -} -% \end{macrocode} -% \end{macro}^^A \scr@section@xdblarg -% \end{macro}^^A \scr@section@dblarg -% \end{macro}^^A \SecDef % \begin{macro}{\tud@part} % \begin{macro}{\tud@spart} % \begin{macro}{\tud@addpart} @@ -1386,38 +1600,40 @@ % \begin{macro}{\tud@saddchap} % \begin{macro}{\tud@section} % \begin{macro}{\tud@ssection} +% \begin{macro}{\tud@addsec} +% \begin{macro}{\tud@saddsec} % \begin{macro}{\tud@subsection} % \begin{macro}{\tud@ssubsection} % \begin{macro}{\tud@subsubsection} % \begin{macro}{\tud@ssubsubsection} % \begin{macro}{\tud@npart} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@opart} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@naddpart} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@oaddpart} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@nchapter} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@ochapter} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@naddchap} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@oaddchap} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@nsection} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@osection} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@nsubsection} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@osubsection} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@nsubsubsection} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % \begin{macro}{\tud@osubsubsection} -% \changes{v2.02}{2014/09/12}{entfernt}%^^A +% \changes{v2.02}{2014/09/12}{entfernt}^^A % Das \CD verlangt, dass sämtliche Auszeichnungen, die in DIN~Bold gesetzt % werden, groß zu schreiben sind. Für die Klassen bedeutet dies, dass alle % Überschriften automatisch in Majuskeln und in der gewünschten Schriftart @@ -1450,6 +1666,8 @@ %</book|report> \newcommand*\tud@section{} \newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} \newcommand*\tud@subsection{} \newcommand*\tud@ssubsection{} \newcommand*\tud@subsubsection{} @@ -1473,6 +1691,8 @@ % \end{macro}^^A \tud@subsubsection % \end{macro}^^A \tud@ssubsection % \end{macro}^^A \tud@subsection +% \end{macro}^^A \tud@saddsec +% \end{macro}^^A \tud@addsec % \end{macro}^^A \tud@ssection % \end{macro}^^A \tud@section % \end{macro}^^A \tud@saddchap @@ -1484,16 +1704,12 @@ % \end{macro}^^A \tud@spart % \end{macro}^^A \tud@part % \begin{macro}{\tud@sectioning@set} -% \changes{v2.02}{2014/08/16}{Bug mit Majuskeln bei \cs{addsec} behoben}%^^A +% \changes{v2.02}{2014/08/16}{Bug mit Majuskeln bei \cs{addsec} behoben}^^A % \begin{macro}{\tud@sectioning@case} -% \changes{v2.02}{2014/09/12}{Reimplementierung mit \cs{SecDef}}%^^A +% \changes{v2.02}{2014/09/12}{Reimplementierung mit \cs{SecDef}}^^A % \begin{macro}{\tud@sectioning@reset} % \begin{macro}{\tud@sectioning@uppercase} -% \changes{v2.02}{2014/07/25}{neu}%^^A -% \begin{macro}{\tud@font@koma@set} -% \begin{macro}{\tud@font@koma@reset} -% \changes{v2.02}{2014/08/24}{neu}%^^A -% \begin{macro}{\tud@font@koma@unset} +% \changes{v2.02}{2014/07/25}{neu}^^A % Das Makro \cs{tud@sectioning@set} sichert und überschreibt die gegebenen % Befehle der einzelnen Gliederungsebenen und fügt diesen die zusätzlich % angegebene Schriftdefinition mit dem Makro \cs{tud@font@koma@set} zu. Das @@ -1629,46 +1845,10 @@ \endgroup% } % \end{macrocode} -% Es wird die Möglichkeit geschaffen, bestimmten Schriftelementen weitere -% Eigenschaften mitzugeben. Damit dies optionsabhängig geschehen kann und -% \cs{addtokomafont} nur einmalig verwendete werden muss, wird im Zweifelsfall -% einem Schriftelement ein Hilfsmakro \cs{tud@font@koma@\meta{Element}} -% zugewiesen, welches intern angepasst werden kann. Mit \cs{tud@font@koma@set} -% werden dem angegebenen Element die gewünschten Schriftattribute zugeteilt. -% \begin{macrocode} -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% -} -% \end{macrocode} -% Durch die Option \opt{headings} werden die Schriftelemente zurückgesetzt. -% Mit dem hier definierten Befehl \cs{tud@font@koma@reset} kann diesen das -% Hilfsmakro abermals zugewiesen -% werden. -% \begin{macrocode} -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% -} -% \end{macrocode} -% Mit \cs{tud@font@koma@unset} kann das angegebene Element wieder zurückgesetzt -% werden. Dabei wird das zuvor hinzugefügte Makro auf \cs{relax} gesetzt. -% \begin{macrocode} -\newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% -} -% \end{macrocode} -% \end{macro}^^A \tud@font@koma@unset -% \end{macro}^^A \tud@font@koma@reset -% \end{macro}^^A \tud@font@koma@set % \end{macro}^^A \tud@sectioning@uppercase % \end{macro}^^A \tud@sectioning@reset % \end{macro}^^A \tud@sectioning@case % \end{macro}^^A \tud@sectioning@set -% \begin{macro}{\usesizeofkomafont} -% \changes{v2.02}{2014/05/17}{entfernt}%^^A -% Mit \TUDScript~v2.02 wurde die Bereitstellung dieses Befehls aufgrund der -% zwingenden Verwendung von \KOMAScript{}~v3.12 entfernt. -% \end{macro}^^A \usesizeofkomafont % % \iffalse %</class&body> diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx index 74c1a93d1ee..569372bb34c 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx @@ -1,4 +1,4 @@ -% \CheckSum{549} +% \CheckSum{575} % \iffalse meta-comment % % ============================================================================ @@ -51,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-locale.dtx}[% - 2015/01/24 v2.03 TUD-KOMA-Script (localization)% + 2015/06/12 v2.04 TUD-KOMA-Script (localization)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -72,7 +72,7 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A +% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A % % \section{Lokalisierung} % @@ -91,18 +91,18 @@ % \fi % % \begin{locale}{\graduationtext} -% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{degreetext}}%^^A +% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{degreetext}}^^A % \begin{locale}{\supervisorname} % \begin{locale}{\supervisorothername} % \begin{locale}{\refereename} % \changes{v2.02}{2014/05/20}{Unterscheidung, ob ein oder mehrere Gutachter -% angegeben sind}%^^A +% angegeben sind}^^A % \begin{locale}{\refereeothername} % \begin{locale}{\advisorname} % \begin{locale}{\advisorothername} % \begin{locale}{\professorname} % \begin{locale}{\professorothername} -% \changes{v2.02}{2014/09/03}{neu}%^^A +% \changes{v2.02}{2014/09/03}{neu}^^A % \begin{locale}{\datetext} % \begin{locale}{\dateofbirthtext} % \begin{locale}{\placeofbirthtext} @@ -114,12 +114,12 @@ % \begin{locale}{\abstractname} % \begin{locale}{\confirmationname} % \begin{locale}{\confirmationtext} -% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}%^^A +% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A % \begin{locale}{\blockingname} -% \changes{v2.02}{2014/05/16}{neu, \cs{restrictionname} umbenannt}%^^A +% \changes{v2.02}{2014/05/16}{neu, \cs{restrictionname} umbenannt}^^A % \begin{locale}{\blockingtext} -% \changes{v2.02}{2014/05/16}{neu, \cs{restrictiontext} umbenannt}%^^A -% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}%^^A +% \changes{v2.02}{2014/05/16}{neu, \cs{restrictiontext} umbenannt}^^A +% \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A % \begin{locale}{\listingname} % \begin{locale}{\listlistingname} % \begin{locale}{\dissertationname} @@ -142,16 +142,15 @@ % \begin{macrocode} \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\tudcls@name' only supports the\MessageBreak% + Currently the class `\TUDClassName' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak% - To implement new languages, it would be nice if you could\MessageBreak% - contact the author of this class and send your definitions\MessageBreak% - to \tudscrmail% + You can send your definitions to \tudscrmail\space in\MessageBreak% + order to implement support for additional languages. }% }% } @@ -236,11 +235,12 @@ % % \begin{locale}{\taskname} % \begin{locale}{\tasktext} -% \begin{locale}{\authorname} +% \begin{locale}{\namesname} +% \changes{v2.04}{2015/05/06}{neu, \cs{authorname} umbenannt}^^A % \begin{locale}{\titlename} % \begin{locale}{\coursename} % \begin{locale}{\disciplinename} -% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{branchname}}%^^A +% \changes{v2.02}{2014/05/16}{neu, \cs{branchname} umbenannt}^^A % \begin{locale}{\issuedatetext} % \begin{locale}{\duedatetext} % \begin{locale}{\chairmanname} @@ -253,13 +253,13 @@ % \begin{locale}{\gradetext} % \begin{locale}{\noticename} % \begin{locale}{\contactpersonname} -% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{contactname}}%^^A +% \changes{v2.02}{2014/05/16}{neu, umbenannt von \cs{contactname}}^^A % Die für \pkg{tudscrsupervisor} definierten Bezeichner werden durch % \cs{tud@locale@define} mit einer Fehlermeldung initialisiert. % \begin{macrocode} \tud@locale@define{\taskname} \tud@locale@define{\tasktext} -\tud@locale@define{\authorname} +\tud@locale@define{\namesname} \tud@locale@define{\titlename} \tud@locale@define{\coursename} \tud@locale@define{\disciplinename} @@ -291,12 +291,33 @@ % \end{locale}^^A \disciplinename % \end{locale}^^A \coursename % \end{locale}^^A \titlename -% \end{locale}^^A \authorname +% \end{locale}^^A \namesname % \end{locale}^^A \tasktext % \end{locale}^^A \taskname % % \iffalse %</supervisor> +%<*poster> +% \fi +% +% \begin{locale}{\authorname} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{locale}{\contactname} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{locale}{\contactpersonname} +% Die für \pkg{tudscrsupervisor} definierten Bezeichner werden durch +% \cs{tud@locale@define} mit einer Fehlermeldung initialisiert. +% \begin{macrocode} +\tud@locale@define{\authorname} +\tud@locale@define{\contactname} +\tud@locale@define{\contactpersonname} +% \end{macrocode} +% \end{locale}^^A \contactpersonname +% \end{locale}^^A \contactname +% \end{locale}^^A \authorname +% +% \iffalse +%</poster> % \fi % % \end{macro}^^A \tud@locale@define @@ -309,7 +330,7 @@ % % \begin{macro}{\tud@locale@german} % \changes{v2.02}{2014/07/07}{als Aliasbefehl für \cs{providecaptionname} mit -% dem Argument \marg{deutsche Sprachliste}}%^^A +% dem Argument \marg{deutsche Sprachliste}}^^A % Dieser Befehl dient zur Definition der deutschsprachigen Bezeichner. Dabei % müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige % Definition angegeben werden. Intern wird dabei \cs{providecaptionname} @@ -333,7 +354,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -350,7 +371,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -398,10 +419,10 @@ Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi enth\"alt vertrauliche Informationen\ifx\@company\@empty\else - , offengelegt durch \@company{}\fi. Ver\"offentlichungen, + , offengelegt durch \emph{\@company}\fi. Ver\"offentlichungen, Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~-- sind ohne ausdr\"uckliche Genehmigung \ifx\@company\@empty\else - durch \@company{} \fi nicht gestattet, ebenso wie + durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des @@ -431,7 +452,7 @@ % \begin{macrocode} \tud@locale@german{\taskname}{Aufgabenstellung}% \tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}% -\tud@locale@german{\authorname}{Name}% +\tud@locale@german{\namesname}{Name}% \tud@locale@german{\titlename}{Titel}% \tud@locale@german{\coursename}{Studiengang}% \tud@locale@german{\disciplinename}{Studienrichtung}% @@ -453,8 +474,19 @@ % % \iffalse %</supervisor> +%<*poster> % \fi % +% Hier erfolgen für das Paket \pkg{tudscrposter} weitere Definitionen. +% \begin{macrocode} +\tud@locale@german{\authorname}{Autor}% +\tud@locale@german{\contactname}{Kontakt}% +\tud@locale@german{\contactpersonname}{Ansprechpartner}% +% \end{macrocode} +% +% \iffalse +%</poster> +% \fi % % \subsection{Englischsprachige Bezeichner} % @@ -464,7 +496,7 @@ % % \begin{macro}{\tud@locale@english} % \changes{v2.02}{2014/07/07}{Pseudonym für \cs{providecaptionname} mit -% dem Argument \marg{englische Sprachliste}}%^^A +% dem Argument \marg{englische Sprachliste}}^^A % Dieser Befehl dient zur Definition der englischsprachigen Bezeichner. Dabei % müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige % Definition angegeben werden. Intern wird dabei \cs{providecaptionname} @@ -488,7 +520,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -505,7 +537,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -553,9 +585,9 @@ This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \@company{}\fi. Publications, duplications and + , disclosed by \emph{\@company}\fi. Publications, duplications and inspections---even in part---are prohibited without explicit - permission\ifx\@company\@empty\else\space by \@company{}\fi, + permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at Technische Universit\"at Dresden, the reviewers and also the @@ -585,7 +617,7 @@ % \begin{macrocode} \tud@locale@english{\taskname}{Task}% \tud@locale@english{\tasktext}{for the preparation of a}% -\tud@locale@english{\authorname}{Name}% +\tud@locale@english{\namesname}{Name}% \tud@locale@english{\titlename}{Title}% \tud@locale@english{\coursename}{Course}% \tud@locale@english{\disciplinename}{Discipline}% @@ -607,6 +639,18 @@ % % \iffalse %</supervisor> +%<*poster> +% \fi +% +% Hier erfolgen für das Paket \pkg{tudscrposter} weitere Definitionen. +% \begin{macrocode} +\tud@locale@english{\authorname}{Author}% +\tud@locale@english{\contactname}{Contact}% +\tud@locale@english{\contactpersonname}{Contact}% +% \end{macrocode} +% +% \iffalse +%</poster> %<*class> % \fi % diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx index 2a59e7932e8..6c126c8e847 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx @@ -1,4 +1,4 @@ -% \CheckSum{2750} +% \CheckSum{2999} % \iffalse meta-comment % % ============================================================================ @@ -51,17 +51,15 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-manual.dtx}[% - 2015/02/15 v2.03 TUD-KOMA-Script\space% + 2015/07/02 v2.04 TUD-KOMA-Script\space% %</driver> -%<identify>\NeedsTeXFormat{LaTeX2e}[2011/06/27] -%<class&identify>\ProvidesClass{tudscrman}[% +%<package&identify>\NeedsTeXFormat{LaTeX2e} %<package&identify>\ProvidesPackage{tudscrman}[% -%<*driver|(class|package)&identify> +%<*driver|package&identify> %!TUDVersion -%<class> class (internal manual)% %<package> package (internal tutorials)% ] -%</driver|(class|package)&identify> +%</driver|package&identify> %<*driver> \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -82,9 +80,9 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/11/18}{\cls{tudscrman} Index für Tutorials möglich}%^^A +% \changes{v2.02}{2014/11/18}{\cls{tudscrman} Index für Tutorials möglich}^^A % \changes{v2.02}{2014/12/17}{\cls{tudscrman} xindy-Stildatei wird bei der -% Kompilierung erzeugt}%^^A +% Kompilierung erzeugt}^^A % % \section{Klasse und Paket für die Anwenderdokumentation von \TUDScript} % @@ -96,6 +94,7 @@ % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse +%<*!doc> %<*body> % \fi % @@ -116,10 +115,6 @@ % \begin{macrocode} \RequirePackage{textcomp}[2005/09/27] % \end{macrocode} -% Verbesserungen am \LaTeX-Kernel. -% \begin{macrocode} -\RequirePackage{fixltx2e}[2014/06/10] -% \end{macrocode} % Vergrößerung des Durchschusses. % \begin{macrocode} \RequirePackage{setspace}[2011/12/19] @@ -134,7 +129,13 @@ \AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} \AtBeginDocument{% \@ifpackageloaded{csquotes}{}{% - \ClassWarning{\tudcls@name}{Package `csquotes' not loaded}% +%<*class> + \ClassWarning% +%</class> +%<*package> + \PackageWarning% +%</package> + {tudscrman}{Package `csquotes' not loaded}% \providecommand\enquote[1]{\glqg#1\grqq{}}% }% } @@ -271,9 +272,9 @@ % \end{macro}^^A \@autorefname % \end{macro}^^A \autorefname % \begin{macro}{\manualhyperdef} -% \changes{v2.02}{2014/10/27}{neu}%^^A +% \changes{v2.02}{2014/10/27}{neu}^^A % \begin{macro}{\manualhyperref} -% \changes{v2.02}{2014/10/27}{neu}%^^A +% \changes{v2.02}{2014/10/27}{neu}^^A % Diese beiden Befehle dienen zum Defnieren von Textankern im Handbuch und zum % Referenzieren auf diese. Bei der Erstelung des Ankers mit \cs{manualhyperdef} % wird zusätzlich auch noch ein Label (\cs{label}) erzeugt. Die Sternversion @@ -329,11 +330,11 @@ \newcommand*\xdyopt{-M tudscrman-temp.xdy -L german-din} % \end{macrocode} % \begin{macro}{\tud@write@i} -% \changes{v2.02}{2014/10/22}{neu}%^^A +% \changes{v2.02}{2014/10/22}{neu}^^A % \begin{macro}{\tud@write@ii} -% \changes{v2.02}{2014/11/02}{neu}%^^A +% \changes{v2.02}{2014/11/02}{neu}^^A % \begin{macro}{\tud@read} -% \changes{v2.02}{2014/08/19}{neu}%^^A +% \changes{v2.02}{2014/08/19}{neu}^^A % Für die Erstellung der Indizes wird zum Sortieren das Programm \pkg{xindy} % genutzt. Für dieses wird eine eigene Stildatei verwendet, welche zur Laufzeit % erzeugt wofür zuerst ein Ausgabestream reserviert wird. @@ -366,7 +367,9 @@ % für angehängte \enquote{f.} sowie \enquote{ff.} einstellen. Diese würden % deshalb bei kursiven oder fetten Seitenzahlen trotzdem in normaler Schrift % erscheinen, weshalb auf die Auszeichnung folgender Seiten verzichtet wird. -%^^A\write\tud@write@i{(require "ff-ranges.xdy")} +% \begin{macrocode} +%\write\tud@write@i{(require "ff-ranges.xdy")} +% \end{macrocode} % % Seitenbereiche werden sofort zusammengefasst, wobei als Trennzeichen ein % Halbgeviertstrich verwendet wird. @@ -382,39 +385,47 @@ % Indexbefehlen genutzt, um die nicht beachteten RegExp-Regeln auszugleichen, % siehe den nächsten Absatz. % \begin{macrocode} -\write\tud@write@i{(merge-rule "\[(.*)\]" "" :eregexp)} +\write\tud@write@i{% +(merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% +} % \end{macrocode} % Innerhalb ausgewählter Auszeichnungs- und Textbefehle sollten die Befehle % selbst, nicht jedoch die Argumente verworfen werden. Leider werden die % manuell erstellten RegExp-Regeln durch \texttt{texindy} zu spät genutzt % (\url{http://sourceforge.net/p/xindy/bugs/22/}). -%^^A\write\tud@write@i{(merge-rule "\\hyperidx\{(.*)\}\{(.*)\}" "/2" :eregexp)} -%^^A\write\tud@write@i{(merge-rule "\\hologo\{(.*)\}" "/1" :eregexp)} -%^^A\write\tud@write@i{(merge-rule "\\texttt\{(.*)\}" "/1" :eregexp)} -%^^A\write\tud@write@i{(merge-rule "\\textsbn\{(.*)\}" "/1" :eregexp)} -%^^A\write\tud@write@i{(merge-rule "\\textsbs\{(.*)\}" "/1" :eregexp)} -% +% \begin{macrocode} +%\write\tud@write@i{(merge-rule "\\hyperidx\{(.*)\}\{(.*)\}" "/2" :eregexp)} +%\write\tud@write@i{(merge-rule "\\hologo\{(.*)\}" "/1" :eregexp)} +%\write\tud@write@i{(merge-rule "\\texttt\{(.*)\}" "/1" :eregexp)} +%\write\tud@write@i{(merge-rule "\\textsbn\{(.*)\}" "/1" :eregexp)} +%\write\tud@write@i{(merge-rule "\\textsbs\{(.*)\}" "/1" :eregexp)} +% \end{macrocode} % Es werden die Attribute \emph{declare} mit der Abkürzung \emph{!} sowie % \emph{important} mit der Abkürzung \emph{?} und \emph{default} definiert, % welche hierarchisch gleichgestellt sind. % \begin{macrocode} \write\tud@write@i{% - (define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% +(define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% } % \end{macrocode} % Eine Alternative wäre, diese in der Hierarchie zu unterscheiden, allerdings % war eine Bildung von zufriedenstellenden Seitenbereichen dabei nicht möglich % und wurde deshalb verworfen. -%^^A\write\tud@write@i{(markup-attribute-group-list :sep ", ")} -%^^A\write\tud@write@i{% -%^^A(define-attributes (("declare" "!") ("important" "?")("default")))% -%^^A} -% -% Einträge, die als wichtig deklariert wurden, können auch für normale zur -% Bereichsbildung verwendet werden. % \begin{macrocode} -\write\tud@write@i{(merge-to "important" "default")} -\write\tud@write@i{(merge-to "?" "default")} +%\write\tud@write@i{(markup-attribute-group-list :sep ", ")} +%\write\tud@write@i{% +%(define-attributes (("declare" "!") ("important" "?")("default")))% +%} +% \end{macrocode} +% Einträge, die als wichtig oder als Deklaration festgelegt wurden, könnten +% auch für normale Indexeinträge zur Bereichsbildung verwendet werden. +% Allerdings führt dies auch zur Erzeugung redundanter Einträge, falls es sich +% bei den Sondereinträgen bereits um einen Seitenbereich handelt. +% \begin{macrocode} +%\write\tud@write@i{(merge-to "declare" "default")} +%\write\tud@write@i{(merge-to "!" "default")} +%\write\tud@write@i{(merge-to "important" "default")} +%\write\tud@write@i{(merge-to "?" "default")} % \end{macrocode} % Hier erfolgt die Definition der Auszeichnugen der Attribute. Deklarationen % werden fett gedruckt, wichtige Einträge erscheinen kursiv. Außerdem wird ein @@ -422,51 +433,51 @@ % \begin{macrocode} \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "declare"^^J% \space\space :open "\string\textbf{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "declare"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "!"^^J% \space\space :open "\string\textbf{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "!"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "important"^^J% \space\space :open "\string\textsl{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "important"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "?"^^J% \space\space :open "\string\textsl{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "?"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "default"^^J% \space\space :open "\string\hyperpage{"^^J% \space\space :close "}"^^J% -\space\space :attr "default"^^J% )% } % \end{macrocode} % Für die Änderungsliste wird ein separates Attribut erstellt. Mit diesem wird % es möglich, die Seitenangabe für Optionen und Befehle zu unterdrücken, welche -% aus \TUDScript entfernt oder veraltet wurden, wenn mit \cs{Replace} eine +% aus \TUDScript entfernt wurden oder veraltet sind, wenn mit \cs{Replace} eine % Alternative eingeführt wurde. Dafür wird der Befehl \cs{deprecatedhyperpage} % verwendet, welcher im Bedarfsball auf \cs{@gobble} gesetzt wird. % \begin{macrocode} \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "deprecated"^^J% \space\space :open "\string\deprecatedhyperpage{"^^J% \space\space :close "}"^^J% -\space\space :attr "deprecated"^^J% )% } % \end{macrocode} @@ -609,11 +620,11 @@ % Hier werden die Optionen für Klasse und Paket definiert. % % \begin{option}{ToDo} -% \changes{v2.02}{2014/07/10}{neu}%^^A +% \changes{v2.02}{2014/07/10}{neu}^^A % \begin{macro}{\if@tud@todo} -% \changes{v2.02}{2014/07/10}{neu}%^^A +% \changes{v2.02}{2014/07/10}{neu}^^A % \begin{macro}{\tud@todo@type} -% \changes{v2.03}{2015/01/25}{neu}%^^A +% \changes{v2.03}{2015/01/25}{neu}^^A % Diese Option ist verantwortlich für den Schalter \cs{if@tud@todo}. Über % diesen wird gesteuert, ob ToDo-Notizen ausgegeben werden sollen. % \begin{macrocode} @@ -650,7 +661,7 @@ captions=tableheading,% numbers=noenddot,% cd=color,% -}{\tudinh@name} +}{\TUDClassName@Parent} \PassOptionsToPackage{automark}{scrlayer-scrpage} % \end{macrocode} % \begin{macro}{\tudfinalflag} @@ -689,11 +700,10 @@ % mit \pkg{auto-pst-pdf} funktioniert. % \begin{macrocode} \AfterPackage*{pstricks}{% - \ifnum\pdfshellescape=1\relax - \RequirePackage{auto-pst-pdf}[2009/04/26] - \else - \RequirePackage[off]{auto-pst-pdf}[2009/04/26] - \fi + \ifnum\pdfshellescape=\@ne\relax\else% + \PassOptionsToPackage{off}{auto-pst-pdf}% + \fi% + \RequirePackage{auto-pst-pdf}[2009/04/26]% } % \end{macrocode} % @@ -715,7 +725,7 @@ % \begin{macro}{\PName} % \begin{macro}{\PBoolean} % \begin{macro}{\PBName} -% \changes{v2.02}{2014/11/12}{neu}%^^A +% \changes{v2.02}{2014/11/12}{neu}^^A % \begin{macro}{\PSet} % \begin{macro}{\Parameter} % \begin{macro}{\OParameter} @@ -725,7 +735,7 @@ % \begin{macro}{\PParameter} % \begin{macro}{\POParameter} % \begin{macro}{\textOR} -% \changes{v2.02}{2015/01/25}{neu}%^^A +% \changes{v2.02}{2015/01/25}{neu}^^A % Diese Befehle dienen zum Auszeichnen von obligatorischen und optionalen % Parametern und Befehlen oder bestimmten Wertzuweisungen. % \begin{macrocode} @@ -760,10 +770,10 @@ % \subsubsection{Kompilieren von externen Dateien und Querverweise auf diese} % % \begin{macro}{\Tutorial} -% \changes{v2.02}{2014/08/22}{neu}%^^A -% \changes{v2.02}{2014/10/22}{Reimplementierung}%^^A +% \changes{v2.02}{2014/08/22}{neu}^^A +% \changes{v2.02}{2014/10/22}{Reimplementierung}^^A % \begin{macro}{\hypertut} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % Die gegebenenfalls notwendige Kompilierung und die Referenzierung eines % Tutorials aus dem Handbuch erfolgt mit \cs{Tutorial}. Außerdem erfolgt mit % \cs{hypertut} ein verlinkter Eintrag in den Index. @@ -773,7 +783,7 @@ \hyperref{tutorials/#1.pdf}{\jobname}{tutorials:#1}{\textsbn{#1.pdf}#2}% } \NewDocumentCommand\Tutorial{smd||}{% - \ifnum\pdfshellescape=1\relax% + \ifnum\pdfshellescape=\@ne\relax% % \end{macrocode} % Um mit den verschachtelten Aufrufen von pdf\LaTeX{} umgehen zu können, wird % das ganze Prozedere in ein Skript ausgelagert. Somit können die Aufrufe von @@ -784,9 +794,10 @@ \immediate\write\tud@write@i{% cd tutorials^^J% pdflatex -shell-escape #2^^J% + pdflatex #2^^J% biber #2^^J% + pdflatex -shell-escape #2^^J% makeglossaries #2^^J% - pdflatex #2^^J% pdflatex #2% }% \immediate\closeout\tud@write@i% @@ -832,8 +843,8 @@ % \fi % % \begin{macro}{\IncludeExample} -% \changes{v2.02}{2014/07/25}{Skalierung der eingefügten Seiten}%^^A -% \changes{v2.02}{2014/10/14}{Reimplementierung}%^^A +% \changes{v2.02}{2014/07/25}{Skalierung der eingefügten Seiten}^^A +% \changes{v2.02}{2014/10/14}{Reimplementierung}^^A % Mit diesem Befehl wird eine \LaTeX-Datei ggf. übersetzt und anschließend als % PDF"~Datei wieder eingebunden. Zuvor wird der dazugehörige Quelltext mittels % \cs{lstinputlisting} im Dokument ausgegeben. Dieser Befehl wird lediglich für @@ -845,10 +856,9 @@ % Die Beispiele werden nur erneut kompiliert, wenn sich diese geändert haben % oder noch gar kein entsprechendes PDF"~Dokument existiert. % \begin{macrocode} - \ifnum\pdfshellescape=1\relax% + \ifnum\pdfshellescape=\@ne\relax% \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{% \immediate\write18{% - pdflatex -shell-escape -output-directory examples examples/#1.tex pdflatex -output-directory examples examples/#1.tex pdflatex -output-directory examples examples/#1.tex }% @@ -878,12 +888,12 @@ % \subsubsection{ToDo-Liste} % % \begin{macro}{\ToDo} -% \changes{v2.02}{2014/07/10}{Verwendung von \pkg{todonotes}}%^^A -% \changes{v2.03}{2015/01/25}{Ausgabe auf bestimmten Typ beschränkbar}%^^A +% \changes{v2.02}{2014/07/10}{Verwendung von \pkg{todonotes}}^^A +% \changes{v2.03}{2015/01/25}{Ausgabe auf bestimmten Typ beschränkbar}^^A % \begin{macro}{\@ToDo} -% \changes{v2.02}{2014/07/10}{neu}%^^A +% \changes{v2.02}{2014/07/10}{neu}^^A % \begin{macro}{\ListOfToDo} -% \changes{v2.02}{2014/07/10}{neu}%^^A +% \changes{v2.02}{2014/07/10}{neu}^^A % Mit dem Befehl \cs{ToDo}\oarg{options}\marg{inline text}\oarg{marginnote} % kann bei aktivierter Option \opt{ToDo} eine Notiz mit einer offenen Ausgabe % erstellt werden. Das vorangestellte Argument kann Optionen beinhalten, welche @@ -935,7 +945,9 @@ % \begin{macrocode} \@tempswafalse \ifdefvoid{\tud@todo@type}{\@tempswatrue}{}% - \IfValueT{#2}{\ifstr{#2}{\tud@todo@type}{\@tempswatrue}{}}% + \IfValueT{#2}{% + \@for\@tempa:=#2\do{\ifstr{\@tempa}{\tud@todo@type}{\@tempswatrue}{}}% + }% % \end{macrocode} % Vor der Ausgabe ist eine vertikale Verschiebung um den durch \pkg{todonotes} % definierten Leerraum notwendig. @@ -973,21 +985,27 @@ % \subsubsection{Kleinkram} % % \begin{macro}{\bsc} -% \changes{v2.02}{2014/07/22}{\cs{DeclareRobustCommand} ersetzt mit -% \cs{newrobustcmd} aus \pkg{etoolbox}}%^^A +% \changes{v2.02}{2014/07/22}{\cs{newrobustcmd} aus \pkg{etoolbox} anstelle von +% \cs{DeclareRobustCommand}}^^A % Eine einfacher zu verwendende Kurzform. % \begin{macrocode} \newrobustcmd*\bsc{\@backslashchar} % \end{macrocode} % \end{macro}^^A \bsc % \begin{macro}{\tud@shellescape@wrn} -% \changes{v2.02}{2014/10/14}{neu}%^^A +% \changes{v2.02}{2014/10/14}{neu}^^A % Dieses Makro wird verwendet, wenn eine gesuchte Datei nicht gefunden wurde, % weil das Dokument noch nicht mit der Option \opt{--shell-escape} kompiliert % wurde. % \begin{macrocode} \newcommand*\tud@shellescape@wrn{% - \ClassWarning{\tudcls@name}{% +%<*class> + \ClassWarning% +%</class> +%<*package> + \PackageWarning% +%</package> + {tudscrman}{% You have to recompile this document with\MessageBreak% activated shell escape option% }% @@ -996,9 +1014,9 @@ % \end{macrocode} % \end{macro}^^A \tud@shellescape@wrn % \begin{macro}{\pdfexpandableoutline} -% \changes{v2.02}{2014/11/04}{neu}%^^A +% \changes{v2.02}{2014/11/04}{neu}^^A % \begin{macro}{\@TUDScript} -% \changes{v2.02}{2014/08/16}{neu}%^^A +% \changes{v2.02}{2014/08/16}{neu}^^A % Für die PDF-Outline-Einträge müssen einige Befehle durch eine expandierbare % Version ersetzt werden. Der Befehl \cs{pdfexpandableoutline} wird definiert, % um dies möglichst einfach zu gestalten. @@ -1040,7 +1058,7 @@ % die formatierte Ausgabe sowie evtl. eine Sternversion, die einen Querverweis % auf das Handbuch erzeugt. % \begin{macro}{\Application} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@Application} % Die Auszeichnung und der Indexeintrag einer Anwendungssoftware. % \begin{macrocode} @@ -1064,7 +1082,7 @@ % \end{macro}^^A \@Application % \end{macro}^^A \Application % \begin{macro}{\Distribution} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % Die Auszeichnung und der Indexeintrag einer \LaTeX-Distribution. % \begin{macrocode} %<*class> @@ -1085,14 +1103,14 @@ % \end{macro}^^A \Distribution % \begin{macro}{\Path} % \changes{v2.02}{2014/07/22}{\cs{DeclareRobustCommand} ersetzt durch -% \cs{newrobustcmd} aus \pkg{etoolbox}}%^^A +% \cs{newrobustcmd} aus \pkg{etoolbox}}^^A % Die Auszeichnung eines Dateipfades. % \begin{macrocode} \newrobustcmd*\Path[1]{\mbox{\texttt{#1}}} % \end{macrocode} % \end{macro}^^A \Path % \begin{macro}{\File} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % Die Auszeichnung und der Indexeintrag einer Datei. % \begin{macrocode} %<*class> @@ -1112,12 +1130,12 @@ % \end{macrocode} % \end{macro}^^A \File % \begin{macro}{\Class} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@Class} % \begin{macro}{\@TempClass} -% \changes{v2.02}{2014/10/08}{entfernt}%^^A +% \changes{v2.02}{2014/10/08}{entfernt}^^A % \begin{macro}{\DeclareClass} -% \changes{v2.02}{2014/10/09}{entfernt}%^^A +% \changes{v2.02}{2014/10/09}{entfernt}^^A % Die Auszeichnung und der Indexeintrag einer Klasse. Sollte gerade DIN~Bold % verwendet werden~-- der Befehl wird innerhalb einer Überschrift genutzt~-- % wird lediglich das Hauptargument ausgegeben. Das optionale Argument zwischen @@ -1159,12 +1177,12 @@ % \end{macro}^^A \@Class % \end{macro}^^A \Class % \begin{macro}{\Package} -% \changes{v2.02}{2014/07/10}{Ausgabe für ChangeLog hinzugefügt}%^^A -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/07/10}{Ausgabe für ChangeLog hinzugefügt}^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@Package} % \begin{macro}{\@TempPackage} % \begin{macro}{\DeclarePackage} -% \changes{v2.02}{2014/10/09}{entfernt}%^^A +% \changes{v2.02}{2014/10/09}{entfernt}^^A % Für die Auszeichnungen von Paketen gelten vorherigen Aussagen äquivalent. % Für Pakete wird ergänzend ein Hyperlink auf CTAN erzeugt, wenn für dieses % kein Label im Dokument besteht, wo dieses genauer erläutert wird. Mit dem @@ -1212,9 +1230,9 @@ % \end{macro}^^A \@Package % \end{macro}^^A \Package % \begin{macro}{\Option} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@Option} -% \changes{v2.02}{2014/11/02}{neu}%^^A +% \changes{v2.02}{2014/11/02}{neu}^^A % \begin{macro}{\@TempOption} % Im Gegensatz zu den vorherigen Befehlen gibt es ein ordinäres optionales % Argument nach dem Hauptargument. Damit kann der Option im Handbuch ein Wert @@ -1252,9 +1270,9 @@ % \end{macro}^^A \@Option % \end{macro}^^A \Option % \begin{macro}{\Environment} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@Environment} -% \changes{v2.02}{2014/11/02}{neu}%^^A +% \changes{v2.02}{2014/11/02}{neu}^^A % \begin{macro}{\@TempEnvironment} % Auch hier wird für die Änderungsliste unterschieden und für Tutorials ein % Befehl definiert, welcher auf das Handbuch referenziert. @@ -1304,9 +1322,9 @@ % \end{macro}^^A \@Environment % \end{macro}^^A \Environment % \begin{macro}{\Macro} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@Macro} -% \changes{v2.02}{2014/11/02}{neu}%^^A +% \changes{v2.02}{2014/11/02}{neu}^^A % Die Auszeichnung und der Indexeintrag eines Befehls sowie für das Paket % \pkg{tudscrman} der Hyperlink auf das Handbuch. % \begin{macrocode} @@ -1337,9 +1355,9 @@ % \end{macro}^^A \@Macro % \end{macro}^^A \Macro % \begin{macro}{\Length} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@TempLength} -% \changes{v2.02}{2014/10/08}{entfernt}%^^A +% \changes{v2.02}{2014/10/08}{entfernt}^^A % Die Auszeichnung und der Indexeintrag einer \LaTeX-Länge. % \begin{macrocode} %<*class> @@ -1378,7 +1396,7 @@ % definiert. % % \begin{macro}{\Key} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@TempKey} % Die Auszeichnung und der Indexeintrag eines Parameters für Umgebungen und % Befehle. Das erste Argument ist die Umgebung oder der Befehl, wofür der @@ -1409,7 +1427,7 @@ % \end{macro}^^A \@TempKey % \end{macro}^^A \Key % \begin{macro}{\PageStyle} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % Die Auszeichnung und der Indexeintrag eines Seitenstils. % \begin{macrocode} \NewDocumentCommand\PageStyle{smd''d||}{% @@ -1424,9 +1442,9 @@ % \end{macrocode} % \end{macro}^^A \PageStyle % \begin{macro}{\Counter} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@TempCounter} -% \changes{v2.02}{2014/10/08}{entfernt}%^^A +% \changes{v2.02}{2014/10/08}{entfernt}^^A % Die Auszeichnung und der Indexeintrag einer \LaTeX-Zählers. % \begin{macrocode} \NewDocumentCommand\Counter{smd''d||}{% @@ -1442,9 +1460,9 @@ % \end{macro}^^A \@TempCounter % \end{macro}^^A \Counter % \begin{macro}{\Term} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@TempTerm} -% \changes{v2.02}{2014/10/08}{entfernt}%^^A +% \changes{v2.02}{2014/10/08}{entfernt}^^A % Die Auszeichnung und der Indexeintrag eines sprachabhängigen Bezeichners. % \begin{macrocode} \NewDocumentCommand\Term{smd''d||}{% @@ -1506,9 +1524,9 @@ % \end{macro}^^A \@TermTable % \end{macro}^^A \TermTable % \begin{macro}{\Font} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@TempFont} -% \changes{v2.02}{2014/10/08}{entfernt}%^^A +% \changes{v2.02}{2014/10/08}{entfernt}^^A % Die Auszeichnung und der Indexeintrag eines Schriftelementes. % \begin{macrocode} \NewDocumentCommand\Font{smd''d||}{% @@ -1524,9 +1542,9 @@ % \end{macro}^^A \@TempFont % \end{macro}^^A \Font % \begin{macro}{\Color} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % \begin{macro}{\@TempColor} -% \changes{v2.02}{2014/10/08}{entfernt}%^^A +% \changes{v2.02}{2014/10/08}{entfernt}^^A % Die Auszeichnung und der Indexeintrag einer Farbe des \CDs. % \begin{macrocode} \NewDocumentCommand\Color{smod''d||}{% @@ -1559,11 +1577,11 @@ % für das Paket benötigt wird. % % \begin{macro}{\CheckIndexFormat} -% \changes{v2.02}{2014/10/08}{neu}%^^A +% \changes{v2.02}{2014/10/08}{neu}^^A % \begin{macro}{\SetIndexFormat} -% \changes{v2.02}{2014/10/08}{neu}%^^A +% \changes{v2.02}{2014/10/08}{neu}^^A % \begin{macro}{\@IndexFormat} -% \changes{v2.02}{2014/10/08}{neu}%^^A +% \changes{v2.02}{2014/10/08}{neu}^^A % Zuerst werden jedoch einige Hilfsmakros erstellt mit denen überprüft wird, ob % die Sternversion der zuvor definierten Auszeichnung"=Befehle zusammen mit % einer Indexformatierung \val{|idxformat|} genutzt wurde, was sich natürlich @@ -1574,7 +1592,7 @@ \newcommand*\CheckIndexFormat[2]{% \IfBooleanT{#1}{% \IfValueT{#2}{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% You've used the starred version so no entry for\MessageBreak% the index is created and the optional argument\MessageBreak% |#2| will be ignored% @@ -1600,7 +1618,7 @@ % \end{macro}^^A \CheckIndexFormat % \begin{macro}{\if@declare} % \begin{macro}{\if@stareddeclare} -% \changes{v2.02}{2014/10/09}{neu}%^^A +% \changes{v2.02}{2014/10/09}{neu}^^A % \begin{macro}{\if@openindex} % \begin{macro}{\if@deprecated} % Dies sin ein paar Hilfsmakros zur Steuerung des Markup sowie der Ausgabe von @@ -1624,8 +1642,8 @@ % werden als Argument der Umgebung \env{Declaration} genutzt. % % \begin{macro}{\@ProcessOutput} -% \changes{v2.02}{2014/10/08}{Markup für Index und Fließtext getrennt}%^^A -% \changes{v2.02}{2014/10/09}{Anpassung für Umgebung \env{Declaration*}}%^^A +% \changes{v2.02}{2014/10/08}{Markup für Index und Fließtext getrennt}^^A +% \changes{v2.02}{2014/10/09}{Anpassung für Umgebung \env{Declaration*}}^^A % Der Befehl \cs{@ProcessOutput} ist das Herzstück der Auszeichnungen aller % Elemente. Das erste obligatorische Argument ist der übergebene Wert, welcher % in einer bestimmten Form ausgezeichnet werden soll. Darauf folgen die ein @@ -1657,7 +1675,7 @@ \if@declare% \if@openindex% \IfValueT{#3}{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% It is not possible to use any cross-reference\MessageBreak% shorthand like '#3' within the arguments of\MessageBreak% the environment `Declaration'% @@ -1669,7 +1687,7 @@ \IfValueTF{#6}{\edef\@tempa{#5:#6:#8}}{\edef\@tempa{#5:#8}}% % \end{macrocode} % Für die Deklaration veralteter Optionen, Befehle etc. kann die Sternvariante -% des Auszeichnungsbefehle verwendet werden, um das Erzeugen eines Labels zu +% des Auszeichnungsbefehls verwendet werden, um das Erzeugen eines Labels zu % unterbinden. % \begin{macrocode} \if@deprecated% @@ -1677,29 +1695,42 @@ \manualhyperdef{\@tempa}% }% % \end{macrocode} +% Wurde die Sternversion eines Auszeichnungsbefehls innerhalb der Umgebung +% \env{Declaration} genutzt, wird lediglich ein Label aber kein Eintrag im +% Index erzeugt. +% \begin{macrocode} + \else% + \expandafter\IfBooleanTF\expandafter{\@IndexFormat}{% + \manualhyperdef{\@tempa}% +% \end{macrocode} +% Andernfalls werden Label bzw. Hyperlinkanker und ein Eintrag in den Index +% erzeugt, wobei die Formatierung dieses Eintrags fest vorgegeben ist. +% \begin{macrocode} + }{% + \ifx\@IndexFormat\@empty\else% + \ClassWarning{tudscrman}{% + It is not possible to use any indexing format\MessageBreak% + like |\@IndexFormat| within the arguments of the\MessageBreak% + environment `Declaration'% + }% + \fi% +% \end{macrocode} % Wird zur Deklaration die Umgebung \env{Declaration*} genutzt, so wird der % Hyperlink ein ganzes Stück nach oben verschoben. Hintergrund ist, dass diese -% Umgebung eigentlich nur zum Deklarieren von Klassen und Paketen gedacht ist -% und direkt nach einer Gliederungsüberschrift folgen sollte. +% Umgebung nur zum Deklarieren von Klassen und Paketen gedacht ist und direkt +% nach einer Gliederungsüberschrift folgen sollte. % \begin{macrocode} - \else% - \ifx\@IndexFormat\@empty\else% - \ClassWarning{\tudcls@name}{% - It is not possible to use any indexing format\MessageBreak% - like |\@IndexFormat| within the arguments of the\MessageBreak% - environment `Declaration'% - }% - \fi% - \if@stareddeclare% - \manualhyperdef'{\@tempa}% - \else% + \if@stareddeclare% + \manualhyperdef'{\@tempa}% % \end{macrocode} % Andernfalls wird der normale Hyperlink gesetzt. Das Label zum Prüfen wird % implizit durch \cs{manualhyperdef} gesetzt. % \begin{macrocode} - \manualhyperdef{\@tempa}% - \fi% - \@HyperIndex{#5}{#6}{#7}{#8}{#9}{(declare}% + \else% + \manualhyperdef{\@tempa}% + \fi% + \@HyperIndex{#5}{#6}{#7}{#8}{#9}{(declare}% + }% \fi% % \end{macrocode} % Die \env{Declaration*}"=Umgebung erzeugt keine direkte Ausgabe sondern nur @@ -1709,9 +1740,14 @@ \if@stareddeclare\else% #1\IfValueT{#2}{#2}% \fi% +% \end{macrocode} +% Zum Ende der \env{Declaration}"=Umgebung wird der Indexeintrag beendet. +% \begin{macrocode} \else% \if@deprecated\else% - \@HyperIndex{#5}{#6}{#7}{#8}{#9}{declare)}% + \expandafter\IfBooleanF\expandafter{\@IndexFormat}{% + \@HyperIndex{#5}{#6}{#7}{#8}{#9}{declare)}% + }% \fi% \fi% \else% @@ -1721,8 +1757,8 @@ % wurde, mit \cs{@HyperIndex} ein Eintrag im dazugehörigen Index erzeugt. % \begin{macrocode} \ifx\@IndexFormat\relax% - \ClassError{\tudcls@name}{\string\SetIndexFormat\space unused}{% - It seems you have forgotten to use \string\SetIndexFormat% + \ClassError{tudscrman}{\string\SetIndexFormat\space unused}{% + It seems you have forgotten to use \string\SetIndexFormat.% }% \else% \expandafter\IfBooleanF\expandafter{\@IndexFormat}{% @@ -1748,7 +1784,7 @@ \def\@tempc{\mbox{\hyperref{}{\jobname}{\@tempa}{#1}\IfValueT{#2}{#2}}}% \IfValueT{#3}{% \def\@tempb{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% You've used the unknown cross-reference\MessageBreak% shorthand '#3'. Only 'auto', 'page'\MessageBreak% and 'full' as well as 'none' are valid% @@ -1770,7 +1806,7 @@ % Label, wird eine Warnung ausgegeben. % \begin{macrocode} \IfValueT{#3}{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% No cross-reference created, label \@tempa\space is missing% }% }% @@ -1781,7 +1817,9 @@ % Fall aus dem ersten obligatorischen und ggf. dem ersten optionalen Argument. % \begin{macrocode} \IfValueTF{#4}{% - \href{http://www.ctan.org/pkg/#4}{\mbox{#1\IfValueT{#2}{#2}}}% + \ifstr{#4}{}{\mbox{#1\IfValueT{#2}{#2}}}{% + \href{http://www.ctan.org/pkg/#4}{\mbox{#1\IfValueT{#2}{#2}}}% + }% }{% \mbox{#1\IfValueT{#2}{#2}}% }% @@ -1795,7 +1833,7 @@ % \end{macrocode} % \end{macro}^^A \@ProcessOutput % \begin{macro}{\hyperidx} -% \changes{v2.02}{2014/08/16}{neu}%^^A +% \changes{v2.02}{2014/08/16}{neu}^^A % Aufgrund der Nichtbeachtung von RegExp"=Ausdrücken durch den Indexprozessor % \texttt{texindy} (\url{http://sourceforge.net/p/xindy/bugs/22/}) muss hierfür % etwas getrickst werden. Der Befehl \cs{hyperidx} hat ein optionales Argument, @@ -1808,7 +1846,7 @@ % \end{macrocode} % \end{macro}^^A hyperidx % \begin{macro}{\@HyperIndex} -% \changes{v2.02}{2014/10/08}{überarbeitet}%^^A +% \changes{v2.02}{2014/10/08}{überarbeitet}^^A % Dieser Befehl sorgt für die eigentlichen Indexeinträge. Dabei werden für % Einträge, welche innerhalb der \env{Declaration}-Umgebung deklariert wurden, % ein Hyperlink im Index erstellt. Das erste Argument \marg{Index} enthält den @@ -1897,8 +1935,8 @@ % \begin{macro}{\@additionallist} % \begin{macro}{\if@additionallist} % \begin{macro}{\@gobbleparameters} -% \changes{v2.02}{2014/10/09}{neu}%^^A -% \changes{v2.03}{2015/02/02}{Makro \cs{relax} mit \cs{@empty} ersetzt}%^^A +% \changes{v2.02}{2014/10/09}{neu}^^A +% \changes{v2.03}{2015/02/02}{Makro \cs{relax} mit \cs{@empty} ersetzt}^^A % Es werden einige Hilfsmakros für die Ausgabe einer Deklaration sowie der % dazugehörigen Änderungsliste initialisiert. % \begin{macrocode} @@ -1984,7 +2022,7 @@ % die Angabe obligatorischer und optionaler Parameter lokal umdefiniert. % \begin{macrocode} \ifx\@declarationlist\relax\else% - \ClassError{\tudcls@name}{\string\printdeclarationlist\space is missing}{% + \ClassError{tudscrman}{\string\printdeclarationlist\space is missing}{% \string\@declarationlist\space is not empty. Did you forget\MessageBreak% to print this list with \string\printdeclarationlist?% }% @@ -2027,7 +2065,7 @@ % \begin{macrocode} \IfValueT{#2}{% \if@additionallist% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% It is not possible to use the optional argument\MessageBreak% of \string\printdeclarationlist due to the given\MessageBreak% additional information as argument of the\MessageBreak% @@ -2078,7 +2116,7 @@ \if@presetlist% \qquad% \texttt{% - \begin{tabular}{l}% + \begin{tabular}{l@{}}% \forlistloop\@tempa{\@presetlist}% \end{tabular}% }% @@ -2127,7 +2165,7 @@ % \end{macro}^^A \printdeclarationlist % \end{environment}^^A Declaration % \begin{environment}{Declaration*} -% \changes{v2.02}{2014/10/09}{neu}%^^A +% \changes{v2.02}{2014/10/09}{neu}^^A % Die Sternversion der Umgebung \env{Declaration*} ist für die vereinfachte % Deklaration von Klassen, Paketen etc. gedacht, bei denen keine Ausgabe % sondern lediglich Hyperlink, Indexeintrag und Änderungsnotiz erzeugt werden @@ -2143,7 +2181,7 @@ \@stareddeclarefalse% }{% \ifx\@changedatdeclarelist\relax\else% - \ClassError{\tudcls@name}{\string\printchangedatlist\space is missing}{% + \ClassError{tudscrman}{\string\printchangedatlist\space is missing}{% \string\@changedatdeclarelist\space is not empty. Did you\MessageBreak% forget to print this list with \string\printchangedatlist?% }% @@ -2192,7 +2230,7 @@ % \end{environment}^^A tabularm % \begin{environment}{values} % \begin{macro}{\before@values} -% \begin{macro}{\item@values} +% \begin{macro}{\itemvalues} % \begin{macro}{\itemtrue} % \begin{macro}{\itemfalse} % \begin{macro}{\tud@item@val} @@ -2214,9 +2252,13 @@ % Zu Beginn der Umgebung wird die Definition des \cs{item}-Befehls gesichert % und anschließend geändert. % \begin{macrocode} +\newcommand*\itemvalues{} \newcommand*\before@values{% - \let\item@values\item% - \let\item\tud@item% + \ifdefvoid{\itemvalues}{% + \let\itemvalues\item% + \let\item\tud@item% + \setlength\changedatskip{-\baselineskip}% + }{}% } % \end{macrocode} % Die folgenden beiden Befehle enthalten die Standardwerte für boolsche @@ -2228,7 +2270,6 @@ % Mit der neuen Definition kann der Säumniswert mit \cs{item*} explizit in der % Liste hervorgehoben werden. % \begin{macrocode} -\newcommand*\item@values{} \newcommand*\tud@item@val{} \newcommand*\tud@item@add{} \newcommand*\tud@item@format{} @@ -2262,7 +2303,7 @@ % von \cs{item} angegeben, so wird der gesicherte Befehl ausgeführt. Ansonsten % folgt die dritte Instanz. % \begin{macrocode} - \ifstr{\@tempa}{}{\item@values}{\tud@@@item}% + \ifstr{\@tempa}{}{\itemvalues}{\tud@@@item}% } % \end{macrocode} % Der gesicherte Befehl wird mit den aufbereiteten Formatierungen genutzt. @@ -2275,7 +2316,7 @@ \appto\tud@item@add{~#1}% \fi% }% - \item@values[% + \itemvalues[% \tud@item@format{\@tempa:}% \ifx\tud@item@add\relax\else% {\normalfont\space\footnotesize\tud@item@add}% @@ -2291,7 +2332,7 @@ % \end{macro}^^A \tud@item@val % \end{macro}^^A \itemfalse % \end{macro}^^A \itemtrue -% \end{macro}^^A \item@values +% \end{macro}^^A \itemvalues % \end{macro}^^A \before@values % \end{environment}^^A values % @@ -2344,12 +2385,13 @@ % \begin{environment}{packages} % \begin{macro}{\itempackages} % \begin{macro}{\tud@item@pkg} -% \changes{v2.02}{2014/10/08}{\cs{DeclarePackage} entfernt}%^^A -% \changes{v2.02}{2014/10/09}{optionales Argument für CTAN-Link}%^^A +% \changes{v2.02}{2014/10/08}{\cs{DeclarePackage} entfernt}^^A +% \changes{v2.02}{2014/10/09}{optionales Argument für CTAN-Link}^^A +% \changes{v2.04}{2015/03/12}{optionales Argument für weitere Pakete}^^A % \begin{macro}{\before@packages} % Ähnlich wie für die Auflistung von Werten eines Schlüssels wird auch mit der % Charakterisierung von Paketen verfahren. Diese werden in der Auflistung -% speziell gekennzeichnet und mit \cs{DeclarePackage} im Index eingetragen. +% speziell gekennzeichnet. % \begin{macrocode} \newlist{packages}{description}{2} \setlist[packages]{% @@ -2361,9 +2403,10 @@ \ifdefvoid{\itempackages}{% \let\itempackages\item% \let\item\tud@item@pkg% + \setlength\changedatskip{-\baselineskip}% }{}% } -\NewDocumentCommand\tud@item@pkg{od()}{% +\NewDocumentCommand\tud@item@pkg{od()od''}{% \itempackages[{% \IfValueT{#1}{% \manualhyperdef{files:#1}% @@ -2373,6 +2416,30 @@ \def\@tempa{http://www.ctan.org/pkg/#1}% }% \href{\@tempa}{\Package{#1}'none'|!|}% + \IfValueT{#3}{% + \quad(% + \let\@tempb\relax% + \@for\@tempa:=#3\do{% + \@tempb% + \manualhyperdef{files:\@tempa}% + \expandafter\Package\expandafter{\@tempa}'none'|!|% + \def\@tempb{, }% + }% + )% + }% + \IfValueT{#4}{% + \quad(% + \let\@tempb\relax% + \@for\@tempa:=#4\do{% + \@tempb% + \manualhyperdef{files:\@tempa}% + \href{http://www.ctan.org/pkg/\@tempa}{% + \expandafter\Package\expandafter{\@tempa}'none'|!|% + }% + \def\@tempb{, }% + }% + )% + }% }% }]% } @@ -2395,12 +2462,11 @@ % }[?] % % \begin{macro}{\@changedatdeclare} -% \changes{v2.02}{2014/10/09}{neu}%^^A -% \changes{v2.03}{2015/01/31}{Ersetzungen ermöglicht}%^^A +% \changes{v2.02}{2014/10/09}{neu}^^A % \begin{macro}{\@changedatdeclaredefault} -% \changes{v2.02}{2014/10/09}{neu}%^^A +% \changes{v2.02}{2014/10/09}{neu}^^A % \begin{macro}{\@changedatdeclarelist} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % \begin{macro}{\ChangedAt@Split} % \begin{macro}{\ChangedAt@@Split} % Um für Änderungsnotizen die dazugehörige Option, Befehl etc. bei einer @@ -2457,7 +2523,7 @@ % \end{macro}^^A \@changedatdeclaredefault % \end{macro}^^A \@changedatdeclare % \begin{macro}{\printchangedatlist} -% \changes{v2.02}{2014/10/09}{neu}%^^A +% \changes{v2.02}{2014/10/09}{neu}^^A % Die Einträge in der Änderungsliste sowie die dazugehörige Randnotiz werden % mit dem Makro \cs{ChangedAt@Process} abgearbeitet, sortiert und erstellt. Bei % \cs{printchangedatlist} wird mit dem optionalen Argument der Versatz für die @@ -2481,8 +2547,10 @@ % \end{macrocode} % \end{macro}^^A \printchangedatlist % \begin{macro}{\ChangedAt} -% \changes{v2.02}{2014/07/25}{erweitert}%^^A -% \changes{v2.02}{2014/10/15}{Sternversion neu (keine Randnotiz)}%^^A +% \changes{v2.02}{2014/07/25}{erweitert}^^A +% \changes{v2.02}{2014/10/15}{Sternversion neu (keine Randnotiz)}^^A +% \begin{length}{\changedatskip} +% \changes{v2.04}{2015/06/08}{neu}^^A % An den Befehl \cs{ChangedAt} kann eine kommagetrente Liste mit verschiedenen % Versionsnummern und dazugehörigen Änderungen übergeben werden. Er wird in der % Form: \cs{ChangedAt}\verb|{|\meta{Version}\verb|!|\meta{Beschreibung}\verb|}| @@ -2493,33 +2561,36 @@ % % Alle übergegebenen Versionsnummern werden als Liste mit einmaligen Einträgen % in einer Randnotiz gesetzt. Mit dem optionalen Argument kann ein vertikaler -% dieser angegeben werden. Die Sternversion unterdrückt stattdessen die Ausgabe -% dieser Randnotiz. +% dieser angegeben werden. Die Version mit einem Apostroph verschiebt die +% Randnotiz um den Grundlinienabstand nach oben, die Sternversion unterdrückt +% stattdessen die Ausgabe dieser vollständig. % \begin{macrocode} -\NewDocumentCommand\ChangedAt{sO{\z@}mO{Allgemein}}{% +\newlength\changedatskip +\NewDocumentCommand\ChangedAt{sO{\changedatskip}mO{Allgemein}}{% \ChangedAt@Process[#1]{#2}[#4]{#3}% } % \end{macrocode} +% \end{length}^^A \changedatskip % \end{macro}^^A \ChangedAt % \begin{macro}{\ChangedAt@Process} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % \begin{macro}{\ChangedAt@@Process} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % \begin{macro}{\ChangedAt@@@Process} -% \changes{v2.02}{2014/09/02}{neu}%^^A -% \changes{v2.02}{2014/10/16}{Unterteilung Änderungsliste in Bereiche}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A +% \changes{v2.02}{2014/10/16}{Unterteilung Änderungsliste in Bereiche}^^A % \begin{macro}{\ChangedAt@Default} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % \begin{macro}{\ChangedAt@Process@Split} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % \begin{macro}{\@changedatlist} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % \begin{macro}{\@changedatversionlist} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % Mit diesen Befehlen wird die Änderungshistorie in Form eines Index erstellt. % Der Befehl \cs{ChangedAt@Process} setzt eine kommagetrennte Liste in eine -% im Format von \pkg{etoolbox} um. Anschließend wird diese für die Liste der -% Änderungen mit \cs{ChangedAt@Process@Split} aufgespalten. Die einzelnen +% im Format von \pkg{etoolbox} um. Anschließend wird diese für die +% Änderungsliste mit \cs{ChangedAt@Process@Split} aufgespalten. Die einzelnen % Einträge werden mit \cs{ChangedAt@@Process} weiter verarbeitet. % \begin{macrocode} \newcommand*\@changedatlist{} @@ -2656,8 +2727,8 @@ % \end{macro}^^A \ChangedAt@@Process % \end{macro}^^A \ChangedAt@Process % \begin{macro}{\Replace} -% \changes{v2.02}{2014/07/25}{neu}%^^A -% \changes{v2.03}{2015/02/02}{auf mehrere Einträge erweitert}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A +% \changes{v2.03}{2015/02/02}{auf mehrere Einträge erweitert}^^A % Der Befehl \cs{Replace} erzeugt einen Eintrag in der Änderungshistorie sowie % einen Eintrag im gewünschten Index mit einem Verweis auf den neuen Befehl. % \begin{macrocode} @@ -2685,8 +2756,8 @@ % \end{macrocode} % \end{macro}^^A \Replace % \begin{macro}{\@ProcessChangedAt} -% \changes{v2.02}{2014/07/25}{erweitert}%^^A -% \changes{v2.02}{2014/10/08}{Sternversion ergänzt}%^^A +% \changes{v2.02}{2014/07/25}{erweitert}^^A +% \changes{v2.02}{2014/10/08}{Sternversion ergänzt}^^A % Die Änderungsliste erhält ebenfalls einen Hyperlink zur Deklaration. Für % Umgebungs- und Befehlsparameter wird mit dem zweiten optionalen Argument ein % Untereintrag für die dazugehörige Umgebung beziehungsweise den dazugehörigen @@ -2711,13 +2782,13 @@ % \end{macrocode} % \end{macro}^^A \@ProcessChangedAt % \begin{macro}{\sortlist} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % \begin{macro}{\@sortlist} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % \begin{macro}{\@sortedlist} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % \begin{macro}{\if@listsorted} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % Der Befehl \cs{sortlist} erwartet eine \pkg{etoolbox}-Liste und sortiert diese % mit \cs{@sortlist} in alphabetischer Reihenfolge in eine kommagetrennte % Auflistung. Diese wird anschließend wieder in eine \pkg{etoolbox}-Liste @@ -2766,7 +2837,7 @@ % eine Sonderbehandlung erfolgen. Anschließend wird \cs{@listsortedtrue} % gesetzt. % \begin{macrocode} - \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<0\relax% + \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax% \ifx\@tempb\@empty% \expandafter\edef\expandafter\@tempb\expandafter{% #1,\@tempa% @@ -2844,11 +2915,11 @@ % hinzugefügt. So werden die im Dokumentes gesetzten Quelltextauszüge für ein % Copy"~\&"~Paste"~Beispiel gesammelt und mit \cs{FinishTutorial} ausgegeben. % \begin{environment}{Preamble} -% \changes{v2.02}{2014/11/02}{neu}%^^A +% \changes{v2.02}{2014/11/02}{neu}^^A % \begin{environment}{Preamble*} -% \changes{v2.02}{2014/11/03}{neu}%^^A +% \changes{v2.02}{2014/11/03}{neu}^^A % \begin{environment}{Preamble+} -% \changes{v2.02}{2014/11/03}{neu}%^^A +% \changes{v2.02}{2014/11/03}{neu}^^A % Die Umgebung \env{Preamble} dient für die Ausgabe von Quelltexten, welche in % einem \LaTeXe-Dokument in der Präambel verwendet werden müssen oder sollten. % Die in ihr gesetzten Inhalte werden für das Copy"~\&"~Paste-Beispiel vor den @@ -2889,13 +2960,13 @@ % \end{environment}^^A Preamble* % \end{environment}^^A Preamble % \begin{environment}{Trunk} -% \changes{v2.02}{2014/08/16}{neu}%^^A +% \changes{v2.02}{2014/08/16}{neu}^^A % \begin{environment}{Trunk*} -% \changes{v2.02}{2014/08/19}{neu}%^^A +% \changes{v2.02}{2014/08/19}{neu}^^A % \begin{environment}{Trunk+} -% \changes{v2.02}{2014/11/03}{neu}%^^A +% \changes{v2.02}{2014/11/03}{neu}^^A % \begin{environment}{Trunk!} -% \changes{v2.02}{2014/10/07}{neu}%^^A +% \changes{v2.02}{2014/10/07}{neu}^^A % Die Umgebung \env{Trunk} dient zur Ausgabe von exemplarischen Quelltexten, % welche in einem \LaTeXe-Dokument innerhalb der \env{document}-Umgebung % verwendet werden müssen oder sollten. Für das Copy"~\&"~Paste-Beispiel werden @@ -2956,13 +3027,13 @@ % \end{environment}^^A Trunk* % \end{environment}^^A Trunk % \begin{environment}{Hint} -% \changes{v2.02}{2014/09/16}{neu}%^^A +% \changes{v2.02}{2014/09/16}{neu}^^A % \begin{environment}{Hint*} -% \changes{v2.02}{2014/10/13}{neu}%^^A +% \changes{v2.02}{2014/10/13}{neu}^^A % \begin{environment}{Hint?} -% \changes{v2.02}{2014/12/09}{neu}%^^A +% \changes{v2.02}{2014/12/09}{neu}^^A % \begin{environment}{Hint!} -% \changes{v2.02}{2014/11/13}{neu}%^^A +% \changes{v2.02}{2014/11/13}{neu}^^A % Um Quelltextausschnitte zur weiterführenden Information anzugeben, wird die % Umgebung \env{Hint} definiert. Der Inhalt wird ausgegben und~-- falls die % Sternversion genutzt wurde~-- auch ausgeführt, allerdings nicht in das @@ -3015,7 +3086,7 @@ % \end{environment}^^A Hint* % \end{environment}^^A Hint % \begin{macro}{\@StandaloneFile} -% \changes{v2.02}{2014/08/19}{neu}%^^A +% \changes{v2.02}{2014/08/19}{neu}^^A % Die Umgebungen \env{Trunk!} und \env{Hint!} erzeugen nach der Ausgabe des % Quelltextes mit dem Makro \cs{tud@tut@pdf} eine PDF-Datei, welche mit % \cs{IncludeStandalone} in das Tutorial eingebunden werden kann. @@ -3025,9 +3096,9 @@ % \end{macrocode} % \end{macro}^^A \@StandaloneFile % \begin{macro}{\tud@tut@pre} -% \changes{v2.02}{2014/08/19}{neu}%^^A +% \changes{v2.02}{2014/08/19}{neu}^^A % \begin{macro}{\tud@tut@post} -% \changes{v2.02}{2014/08/19}{neu}%^^A +% \changes{v2.02}{2014/08/19}{neu}^^A % Dies sind die Hilfsmakros, welche zu Beginn und Ende der Quelltextumgebungen % \env{Preamble}, \env{Trunk} und \env{Hint} für das Sichern der Inhalte in % eine Hilfsdatei verantwortlich zeichnen. @@ -3044,7 +3115,7 @@ % \end{macro}^^A \tud@tut@post % \end{macro}^^A \tud@tut@pre % \begin{macro}{\tud@tut@lst} -% \changes{v2.02}{2014/10/07}{neu}%^^A +% \changes{v2.02}{2014/10/07}{neu}^^A % Damit wird der Quelltext eingezogen ausgegeben. % \begin{macrocode} \newcommand*\tud@tut@lst{% @@ -3055,15 +3126,15 @@ % \end{macrocode} % \end{macro}^^A \tud@tut@lst % \begin{macro}{\tud@tut@input} -% \changes{v2.02}{2014/10/13}{neu}%^^A +% \changes{v2.02}{2014/10/13}{neu}^^A % \begin{macro}{\CodePreamble} -% \changes{v2.02}{2014/08/20}{neu}%^^A +% \changes{v2.02}{2014/08/20}{neu}^^A % \begin{macro}{\@CodePreamble} -% \changes{v2.02}{2014/10/22}{neu}%^^A +% \changes{v2.02}{2014/10/22}{neu}^^A % \begin{macro}{\CodeHook} -% \changes{v2.02}{2014/10/11}{neu}%^^A +% \changes{v2.02}{2014/10/11}{neu}^^A % \begin{macro}{\@CodeHook} -% \changes{v2.02}{2014/10/11}{neu}%^^A +% \changes{v2.02}{2014/10/11}{neu}^^A % Bereitstellung von Hilfsmakros für die formatierte Ausgabe von Quelltexten. % \begin{macrocode} \newcommand\@CodePreamble{} @@ -3131,7 +3202,7 @@ % \end{macro}^^A \CodePreamble % \end{macro}^^A \tud@tut@input % \begin{macro}{\InputCode} -% \changes{v2.02}{2014/10/21}{neu}%^^A +% \changes{v2.02}{2014/10/21}{neu}^^A % Mit \cs{InputCode} kann der Inhalt der letzen \env{Trunk}"=Umgebung % direkt ausgeführt werden, ohne diesen zuvor mit \cs{tud@tut@input} zu prüfen % und zu formatieren. @@ -3140,7 +3211,7 @@ % \end{macrocode} % \end{macro}^^A \InputCode % \begin{macro}{\tud@tut@pdf} -% \changes{v2.02}{2014/10/22}{neu}%^^A +% \changes{v2.02}{2014/10/22}{neu}^^A % Die Umgebung \env{Trunk!} verwendet nach der Ausgabe des Quelltextes diesen % abermals, um daraus eine PDF-Datei zu erzeugen. Dafür wird mithilfe einer % \env{filecontents}"=Umgebung eine temporäre \LaTeX-Datei erzeugt. Diese @@ -3151,7 +3222,7 @@ % dieser wird über die Optionen von pdf\LaTeX{} der verwendete \cs{jobname} % angepasst (siehe \cs{tud@tut@pdf}). % \begin{macrocode} -\ifnum\pdfshellescape=1\relax% +\ifnum\pdfshellescape=\@ne\relax% \ActivateWarningFilters[Tutorial]% \begin{filecontents*}{tutorial-temp.tex} \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} @@ -3181,7 +3252,7 @@ % in \cs{\meta{Argument}-temp.pdf} umbenannt. % \begin{macrocode} \newcommand*\tud@tut@pdf{% - \ifnum\pdfshellescape=1\relax% + \ifnum\pdfshellescape=\@ne\relax% \immediate\write18{% pdflatex -jobname=\jobname-temp tutorial-temp.tex pdflatex -jobname=\jobname-temp tutorial-temp.tex @@ -3198,7 +3269,7 @@ % \end{macrocode} % \end{macro}^^A \tud@tut@pdf % \begin{macro}{\IncludeStandalone} -% \changes{v2.02}{2014/09/10}{neu}%^^A +% \changes{v2.02}{2014/09/10}{neu}^^A % Der Befehl \cs{IncludeStandalone} bindet die durch \env{Trunk!} generierten % PDF-Dateien ein. Das angehängte optionale Argument dient zur Angabe der % einzubindenden Seiten der PDF-Datei, wobei diese automatisch auf die passende @@ -3208,7 +3279,7 @@ \IfFileExists{#2-temp.pdf}{% \@tempcnta\z@% \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% - \ifnum\@tempcnta>\z@% + \ifnum\@tempcnta>\z@\relax% \setlength\@tempdima{\textwidth}% \divide\@tempdima\@tempcnta% \advance\@tempcnta\m@ne% @@ -3221,7 +3292,7 @@ \IfValueT{#1}{#1}% } \fbox{\expandafter\includegraphics\expandafter[\@tempb]{#2-temp.pdf}}% - \ifnum\@tempcnta>\z@\hfill\fi% + \ifnum\@tempcnta>\z@\relax\hfill\fi% }% \fi% }{% @@ -3231,9 +3302,9 @@ % \end{macrocode} % \end{macro}^^A \IncludeStandalone % \begin{macro}{\StartTutorial} -% \changes{v2.02}{2014/08/21}{neu}%^^A +% \changes{v2.02}{2014/08/21}{neu}^^A % \begin{macro}{\FinishTutorial} -% \changes{v2.02}{2014/08/21}{neu}%^^A +% \changes{v2.02}{2014/08/21}{neu}^^A % Mit \cs{StartTutorial} wird ein Hyperlink für den Querverweis aus dem % Handbuch definiert. Außerdem wird gleich der Titel und ein einleitender Satz % gesetzt. @@ -3280,13 +3351,13 @@ % \end{macro}^^A \FinishTutorial % \end{macro}^^A \StartTutorial % \begin{macro}{\tud@tut@readtostream} -% \changes{v2.02}{2014/12/16}{neu}%^^A +% \changes{v2.02}{2014/12/16}{neu}^^A % \begin{macro}{\tud@tut@line} -% \changes{v2.02}{2014/08/19}{neu}%^^A +% \changes{v2.02}{2014/08/19}{neu}^^A % \begin{macro}{\tud@tut@append} -% \changes{v2.02}{2014/08/19}{neu}%^^A +% \changes{v2.02}{2014/08/19}{neu}^^A % \begin{macro}{\tud@tut@collect} -% \changes{v2.02}{2014/12/16}{neu}%^^A +% \changes{v2.02}{2014/12/16}{neu}^^A % Bei den Tutorials soll zum Schluss ein komplett kompilierbares Beispiel für % Copy~\&~Paste gegeben werden. Um dieses zusammenzubauen, werden alle im % Dokument innerhalb der Varianten der \env{Trunk}"=Umgebungen gegebenen @@ -3383,15 +3454,15 @@ % \end{macro}^^A \idxfont % \begin{macro}{\PrintIndex} % \begin{macro}{\PrintIndexPrologue} -% \changes{v2.02}{2014/08/20}{neu}%^^A +% \changes{v2.02}{2014/08/20}{neu}^^A % \begin{macro}{\@printindexprologue} -% \changes{v2.02}{2014/08/20}{neu}%^^A +% \changes{v2.02}{2014/08/20}{neu}^^A % \begin{macro}{\@printindexskip} -% \changes{v2.02}{2014/09/02}{neu}%^^A +% \changes{v2.02}{2014/09/02}{neu}^^A % \begin{macro}{\Index} % \begin{macro}{\seeidx} % \begin{macro}{\@printindex} -% \changes{v2.02}{2014/07/25}{neu}%^^A +% \changes{v2.02}{2014/07/25}{neu}^^A % Der Befehl \cs{PrintIndex} ist die Zusammenfassung für die Ausgabe aller % Indexe. % \begin{macrocode} @@ -3426,7 +3497,9 @@ % Durch die Verwendung der \env{multicols}"=Umgebung werden zu große vertikale % Abstände gesetzt. Dies wird mit diesem Befehl rückgängig gemacht. % \begin{macrocode} -\newcommand*\@printindexskip{\ifnum\imki@columns>\@ne\vspace{-\multicolsep}\fi} +\newcommand*\@printindexskip{% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% +} % \end{macrocode} % Der Befehl \cs{@printindex} setzt vor jedem Unterindex ein referenzierbares % Label und gibt diesen danach aus. @@ -3486,9 +3559,9 @@ % \begin{macro}{\PrintChangelog} % \begin{macro}{\if@changelog} % \begin{macro}{\Changelog} -% \changes{v2.02}{2014/08/20}{neu}%^^A +% \changes{v2.02}{2014/08/20}{neu}^^A % \begin{macro}{\deprecatedhyperpage} -% \changes{v2.03}{2015/02/05}{neu}%^^A +% \changes{v2.03}{2015/02/05}{neu}^^A % Ähnlich wie für den Index wird auch für die Änderungsliste verfahren. Mit dem % Makro \cs{deprecatedhyperpage} wird die Ausgabe der Seitenzahlen unterdrückt, % wenn zusätzlich ein mit \cs{see} gesetzter Querverweis existiert. @@ -3523,9 +3596,9 @@ % \fi % % \begin{macro}{\see} -% \changes{v2.03}{2015/02/06}{neu}%^^A +% \changes{v2.03}{2015/02/06}{neu}^^A % \begin{macro}{\seealso} -% \changes{v2.03}{2015/02/06}{neu}%^^A +% \changes{v2.03}{2015/02/06}{neu}^^A % Diese Befehle werden zum einen so definiert, dass zwischen \cs{seename} und % dem Argument ein geschütztes Leerzeichen verwendet wird. Die Sternversion % benötigt kein zweites, leeres Argument. @@ -3549,6 +3622,159 @@ % % \iffalse %</body> +%</!doc> +%<*body|doc> +% \fi +% +% \section{Verschiedenes für die Dokumentationklassen} +% +% \begin{macro}{\vTUDScript} +% \begin{macro}{\vKOMAScript} +% \begin{macro}{\CD} +% \begin{macro}{\CDs} +% \begin{macro}{\TUD} +% \begin{macro}{\TnUD} +% \begin{macro}{\DDC} +% Diese Befehle stellen regelmäßig in der Quelltextdokumentatuion und im +% Handbuch genutzte Textbausteine bereit. Dazu wird der Befehl \cs{xspace} aus +% dem \pkg{xspace}-Paket genutzt. +% \begin{macrocode} +\RequirePackage{xspace}[2009/10/20] +\xspaceaddexceptions{"=} +% \end{macrocode} +% Der Befehl \cs{vTUDScript} enthält die aktuelle \TUDScript"=Versionsnummer. +% \begin{macrocode} +\newcommand*\vTUDScript{} +\AtBeginDocument{% + \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}% + \edef\@tempa{\TUDVersion}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% +} +\newcommand*\vKOMAScript{v3.17\xspace} +% \end{macrocode} +% Ganz zum Schluss noch Bugfixes für unterschiedliche Pakete. +% \begin{macrocode} +\RequirePackage{scrhack}[2014/02/27] +% \end{macrocode} +% \dots und der Rest. +% \begin{macrocode} +\newcommand*\CD{Corporate Design\xspace} +\newcommand*\CDs{Corporate Designs\xspace} +\newcommand*\TUD{Technische Universit\"at Dresden\xspace} +\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\DDC{% + \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em + N\kern.1em-\kern.1em concept}\xspace% +} +\AfterPackage*{babel}{% + \@expandtwoargs\in@{,english,}{,\bbl@loaded,}% + \ifin@% + \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} + \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} + \fi +} +% \end{macrocode} +% \end{macro}^^A \DDC +% \end{macro}^^A \TnUD +% \end{macro}^^A \TUD +% \end{macro}^^A \CDs +% \end{macro}^^A \CD +% \end{macro}^^A \vKOMAScript +% \end{macro}^^A \vTUDScript +% +% \iffalse +%</body|doc> +%<*body> +% \fi +% +% \begin{macro}{\Univers} +% \begin{macro}{\DIN} +% \begin{macro}{\Attention} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\Forum} +% \begin{macro}{\GitHubRepo} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\textsbn} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\sbnfont} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\textsbs} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\sbsfont} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\notudscrartcl} +% \begin{length}{\tempdim} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\hrfn} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \changes{v2.04}{2015/02/18}{Schriftgröße mit \cs{scalebox}}^^A +% \begin{macro}{\scrguide} +% \changes{v2.02}{2014/09/04}{neu}^^A +% Für die Anwenderdokumentation werden mehr Auszeichnungsbefehle vorgehalten. +% \begin{macrocode} +\newcommand*\Univers{\textubn{Univers}\xspace} +\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} +\newcommand*\textsbn{} +\newcommand*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape} +\newcommand*\textsbs{} +\newcommand*\sbsfont{\sffamily\bfseries\slshape} +\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape} +\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}} +\NewDocumentCommand\Forum{s}{% + \IfBooleanTF{#1}{% + \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + }{% + \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}% + }% + \xspace% +} +%<*class> +\NewDocumentCommand\GitHubRepo{s}{% + \def\@tempc{% + https://github.com/tud-cd/tudscr/releases% + }% + \IfBooleanTF{#1}{% + \href{\@tempc}{GitHub-Repository~\File*{tudscr}}% + }{% + \hrfn{\@tempc}{GitHub-Repository~\File*{tudscr}}% + }% + \xspace% +} +\newcommand*\notudscrartcl{% + F\"ur die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verf\"ugbar. +} +\newlength\tempdim +%</class> +\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scalebox{0.97}{\url{#1}}}} +\NewDocumentCommand\scrguide{s}{% + \def\@tempc{% + http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% + }% + \IfBooleanTF{#1}{% + \href{\@tempc}{\File{scrguide.pdf}}% + }{% + \hrfn{\@tempc}{\File{scrguide.pdf}}% + }% + \xspace% +} +% \end{macrocode} +% \end{macro}^^A \scrguide +% \end{macro}^^A \hrfn +% \end{length}^^A \tempdim +% \end{macro}^^A \notudscrartcl +% \end{macro}^^A \sbsfont +% \end{macro}^^A \textsbs +% \end{macro}^^A \sbnfont +% \end{macro}^^A \textsbn +% \end{macro}^^A \GitHubRepo +% \end{macro}^^A \Forum +% \end{macro}^^A \Attention +% \end{macro}^^A \DIN +% \end{macro}^^A \Univers +% +% \iffalse +%</body> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx index 7dbe67b0b7e..49acdd42a61 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx @@ -51,9 +51,9 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-mathswap.dtx}[% - 2015/01/24 v2.03 TUD-KOMA-Script\space% + 2015/06/02 v2.04 TUD-KOMA-Script\space% %</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27] +%<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{mathswap}[% %<*driver|package> %!TUDVersion @@ -82,7 +82,7 @@ % \selectlanguage{ngerman} % % \changes{v2.02}{2014/08/18}{\pkg{mathswap} Schalter zum Aktivieren und -% Deaktivieren der Funktionalität}%^^A +% Deaktivieren der Funktionalität}^^A % % \section{Aktive Trennzeichen im mathematischen Satz} % @@ -178,16 +178,18 @@ % \end{macro}^^A \ms@commachar % \end{macro}^^A \ms@comma % \begin{macro}{\mathswapon} -% \changes{v2.02}{2014/08/18}{neu}%^^A +% \changes{v2.02}{2014/08/18}{neu}^^A % \begin{macro}{\mathswapoff} -% \changes{v2.02}{2014/08/18}{neu}%^^A +% \changes{v2.02}{2014/08/18}{neu}^^A % \begin{macro}{\ms@commaswap} -% \changes{v2.02}{2014/08/18}{neu}%^^A +% \changes{v2.02}{2014/08/18}{neu}^^A % \begin{macro}{\ms@dotswap} -% \changes{v2.02}{2014/08/18}{neu}%^^A +% \changes{v2.02}{2014/08/18}{neu}^^A % Mit den Befehlen \cs{mathswapon} und \cs{mathswapoff} kann die Funktionalität % des Paketes innerhalb des Dokumentes aktiviert und deaktiviert werden. % \begin{macrocode} +\newcommand*\ms@commaswap{} +\newcommand*\ms@dotswap{} \newcommand*\mathswapon{% \def\ms@commaswap{\@commaswap}% \def\ms@dotswap{\@dotswap}% @@ -196,45 +198,18 @@ \def\ms@commaswap{\ms@commachar}% \def\ms@dotswap{\ms@dotchar}% } -\newcommand*\ms@commaswap{} -\newcommand*\ms@dotswap{} % \end{macrocode} % \end{macro}^^A \ms@dotswap % \end{macro}^^A \ms@commaswap % \end{macro}^^A \mathswapoff % \end{macro}^^A \mathswapon -% \begin{macro}{\ms@token} -% \begin{macro}{\ms@smartcomma} -% \begin{macro}{\ms@smartdot} -% Mit \cs{futurelet} wird dem Makro \cs{ms@token} das nachfolgende Zeichen von -% Komma bzw. Punkt zugewiesen. Anschließend wird mittels \cs{ms@smartcomma} bzw. -% \cs{ms@smartdot} geprüft, ob es sich beim Inhalt von \cs{ms@token} um eine -% Ziffer handelt. Dazu wird der Befehl \cs{ms@ifnum} verwendet. Sollte dies der -% Fall sein, so wird ein Komma innerhalb einer Zahl durch \cs{@commaswap} und -% ein Punkt entsprechend mit \cs{@dotswap} ersetzt. Sollte direkt nach dem -% Trennzeichen keine Ziffer folgen, wird für Punkt und Komma die originale -% Definition aus \cs{ms@commachar} bzw. \cs{ms@dotchar} verwendet. -% \begin{macrocode} -\newcommand*\ms@token{} -\begingroup% - \catcode`,=\active% - \gdef,{\futurelet\ms@token\ms@smartcomma}% - \catcode`.=\active% - \gdef.{\futurelet\ms@token\ms@smartdot}% -\endgroup% -\def\ms@smartcomma{\ms@ifnum{\ms@commaswap}{\ms@commachar}} -\def\ms@smartdot{\ms@ifnum{\ms@dotswap}{\ms@dotchar}} -% \end{macrocode} -% \end{macro}^^A \ms@smartdot -% \end{macro}^^A \ms@smartcomma -% \end{macro}^^A \ms@token % \begin{macro}{\ms@ifnum} % \begin{macro}{\ms@@ifnum} % Der Befehl \cs{ms@ifnum} reicht das erste Argument an \cs{ms@@ifnum} weiter, % falls der Inhalt von \cs{ms@token} zu einer Ziffer expandiert. Andernfalls % wird das zweite Argument ausgeführt. % \begin{macrocode} -\def\ms@ifnum#1#2{% +\newcommand*\ms@ifnum[2]{% \ifx\ms@token0\ms@@ifnum{#1}\else% \ifx\ms@token1\ms@@ifnum{#1}\else% \ifx\ms@token2\ms@@ifnum{#1}\else% @@ -253,16 +228,41 @@ % Komma auf die eines normalen Textzeichens gesetzt und anschließend die mit % \cs{commaswap} bzw. \cs{dotswap} angegebene Ersetzung ausgegeben. % \begin{macrocode} -\def\ms@@ifnum#1{% +\newcommand*\ms@@ifnum[1]{% \begingroup% - \mathcode\expandafter`,=\the\ms@comma% - \mathcode\expandafter`.=\the\ms@dot% - #1% + \mathcode\expandafter`,=\the\ms@comma% + \mathcode\expandafter`.=\the\ms@dot% + #1% \endgroup% } % \end{macrocode} % \end{macro}^^A \ms@@ifnum % \end{macro}^^A \ms@ifnum +% \begin{macro}{\ms@token} +% \begin{macro}{\ms@smartcomma} +% \begin{macro}{\ms@smartdot} +% Mit \cs{futurelet} wird dem Makro \cs{ms@token} das nachfolgende Zeichen von +% Komma bzw. Punkt zugewiesen. Anschließend wird mittels \cs{ms@smartcomma} bzw. +% \cs{ms@smartdot} geprüft, ob es sich beim Inhalt von \cs{ms@token} um eine +% Ziffer handelt. Dazu wird der Befehl \cs{ms@ifnum} verwendet. Sollte dies der +% Fall sein, so wird ein Komma innerhalb einer Zahl durch \cs{@commaswap} und +% ein Punkt entsprechend mit \cs{@dotswap} ersetzt. Sollte direkt nach dem +% Trennzeichen keine Ziffer folgen, wird für Punkt und Komma die originale +% Definition aus \cs{ms@commachar} bzw. \cs{ms@dotchar} verwendet. +% \begin{macrocode} +\newcommand*\ms@token{} +\begingroup% + \catcode`,=\active% + \gdef,{\futurelet\ms@token\ms@smartcomma}% + \catcode`.=\active% + \gdef.{\futurelet\ms@token\ms@smartdot}% +\endgroup% +\newcommand*\ms@smartcomma{\ms@ifnum{\ms@commaswap}{\ms@commachar}} +\newcommand*\ms@smartdot{\ms@ifnum{\ms@dotswap}{\ms@dotchar}} +% \end{macrocode} +% \end{macro}^^A \ms@smartdot +% \end{macro}^^A \ms@smartcomma +% \end{macro}^^A \ms@token % % \iffalse %</package> diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx index cdd60cf9e71..5b3f911a6e1 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx @@ -1,4 +1,4 @@ -% \CheckSum{293} +% \CheckSum{106} % \iffalse meta-comment % % ============================================================================ @@ -51,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-misc.dtx}[% - 2015/02/15 v2.03 TUD-KOMA-Script (miscellaneous)% + 2015/06/12 v2.04 TUD-KOMA-Script (miscellaneous)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -72,8 +72,8 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A -% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A +% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A +% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A % % \section{Verschiedenes für die Hauptklassen} % @@ -85,28 +85,12 @@ %<*class&option> % \fi % -% \subsection{Ausführung von paketspezifischem Quellcode} -% -% Ab und an ist es notwendig, bestimmten Quelltext erst gezielt nach einem -% Paket auszuführen. -% \begin{macro}{\TUD@parameter@defaulthandler} -% \changes{v2.03}{2015/02/15}{neu}%^^A -% Im ersten Argument wird das paket angegeben, im zweiten der Quellcode. Dabei -% ist zu beachten, dass dieser im Dokument auch ausgeführt wird, wenn das Paket -% \emph{nicht} geladen wurde. -% \begin{macrocode} -\newcommand*\TUD@AfterPackage[2]{% - \if@atdocument#2\else\AfterPackage!{#1}{#2}\fi% -} -% \end{macrocode} -% \end{macro}^^A \TUD@parameter@defaulthandler -% % \subsection{Fußnoten in Überschriften} % % \begin{option}{footnotes} -% \changes{v2.02}{2014/06/27}{neu}%^^A +% \changes{v2.02}{2014/06/27}{neu}^^A % \begin{macro}{\if@tud@symbolheadings} -% \changes{v2.02}{2014/06/27}{neu}%^^A +% \changes{v2.02}{2014/06/27}{neu}^^A % Die \KOMAScript-Option \opt{footnotes} wird um den Schlüssel % \val{symbolheadings} erweitert, mit welchem eingestellt werden kann, ob in den % Überschriften Symbole für die Fußnoten anstelle von Zahlen verwendet werden @@ -119,9 +103,9 @@ {symbolheadings}{1}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% nosymbolheadings \@tud@symbolheadingsfalse% - \or% + \or% symbolheadings \@tud@symbolheadingstrue% \fi% \fi% @@ -136,16 +120,12 @@ % \fi % % \begin{counter}{symbolheadings} -% \changes{v2.02}{2014/06/27}{neu}%^^A +% \changes{v2.02}{2014/06/27}{neu}^^A % Dieser Zähler wird bei aktivierter Option \opt{footnotes=symbolheadings} für % die Symboleauswahl von Fußnoten in Überschirften inkrementiert. % \begin{macrocode} -%<*book|report> -\newcounter{symbolheadings}[chapter] -%</book|report> -%<*article> -\newcounter{symbolheadings} -%</article> +%<book|report>\newcounter{symbolheadings}[chapter]% +%<article>\newcounter{symbolheadings}% % \end{macrocode} % \end{counter}^^A symbolheadings % @@ -176,7 +156,7 @@ % \begin{macro}{\tudbookmark} % \begin{macro}{\tud@footnote@unhyper} % \begin{macro}{\tud@footnote@rehyper} -% \changes{v2.02}{2014/11/13}{entfernt}%^^A +% \changes{v2.02}{2014/11/13}{entfernt}^^A % Die Befehle zum Eintragen der Sprungmarken. Im Dokument kann auch der Befehl % \cs{tudbookmark} vom Anwender genutzt werden, um manuell weitere Lesezeichen % zu erzeugen. @@ -236,244 +216,73 @@ % \end{macrocode} % \end{macro}^^A \tableofcontents % \end{macro}^^A \maketitle -% -% \subsection{Parameter für Umgebungen und mehrspaltige Texte} -% -% Diese Befehle dienen dazu, bei Umgebungen die Sprache über einen Parameter -% anzugeben sowie das Paket \pkg{multicol} verwenden zu können. -% \begin{macro}{\TUD@parameter@defaulthandler} -% Hiermit kann sowohl die zu verwendende Sprache als auch die Anzahl der -% gewünschten Spalten für bestimmte Umgebungen ohne die explizite Angabe eines -% Schlüssels festgelegt werden. Momentan betrifft das die beiden Umgebungen -% \env{abstract} und \env{tudpage}. +% Das Paket \pkg{tocloft} verursacht allerlei Probleme. Wird es geladen, so +% erscheint eine entsprechende Warnung. % \begin{macrocode} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% +\BeforePackage{tocloft}{% + \ClassWarning{\TUDClassName}{% + It is not recommended to use package `tocloft'.\MessageBreak% + Loading the package will certainly lead to problems\MessageBreak% + with table of contents and any list of floats. You\MessageBreak% + should use the appropriate options of KOMA-Script% }% } % \end{macrocode} -% \end{macro}^^A \TUD@parameter@defaulthandler -% \begin{macro}{\tud@multicols} -% \begin{macro}{\tud@multicols@check} -% Im Makro \cs{tud@multicols} wird die Anzahl der gewünschten Spalten in einer -% Umgebung für die Verwendung des \pkg{multicol}"=Paketes gespeichert. -% \begin{macrocode} -\newcommand*\tud@multicols{1} -% \end{macrocode} -% Der Befehl \cs{tud@multicols@check} prüft, ob das Paket \pkg{multicol} -% geladen wurde. Falls dies nicht der Fall ist, wird eine Warnung ausgegeben. -% \begin{macrocode} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>1\relax% - \ClassWarning{\tudcls@name}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \def\tud@multicols{1}% - \fi% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@multicols@check -% \end{macro}^^A \tud@multicols -% -% \subsection{Bedingte Majuskeln für Überschriften} -% -% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch -% tatsächlich die Schrift DIN~Bold verwendet wird. -% \begin{macro}{\tud@makeuppercase} -% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die -% richtige Schriftfamilie verwendet wird. -% \begin{macrocode} -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% -% \end{macrocode} -% Aufgrund eines Fehlers im \LaTeX-Kernels liegt die Grundlinie für die beiden -% Gliederungsebenen \cs{section} und \cs{subsection} zu hoch. Mit dem Einfügen -% des vertikalen Freiraums für die Umlaute wird diese automatisch nach unten -% verschoben. Allerdings ist das ein ziemlich übler Hack. -%^^A \addtokomafont{section}{\strut\ignorespaces}% -% \begin{macrocode} - \protect\vphantom{\"A\"O\"U}% -} -% \end{macrocode} -% \end{macro}^^A \tud@makeuppercase -% -% \subsection{Erzwungene Minuskeln für Strings} -% -% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in -% bestimmten Feldern mit Sicherheit erkennen zu können, werden diese zwingend -% in Kleinbuchstaben geschieben. -% \begin{macro}{\tud@lowerstring} -% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} bennutzt. -% \begin{macrocode} -\newcommand*\tud@lowerstring[2]{% - \protected@edef#1{#2}% - \lowercase\expandafter{% - \expandafter\gdef\expandafter #1\expandafter{#1}% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@lowerstring -% -% \subsection{Expansion geschützter Makros} -% -% Im \LaTeX-Kernel wird der Befehl \cs{@expandtwoargs} definiert, welcher zwei -% Argumente in ein angegebenes Makro vollständig expandiert. Dabei erfolgt die -% Expansion der beiden Argumente aufgrund der standardmäßigen Verwendung von -% \cs{edef} allerdings vollständig und ohne die Beachtung von \cs{protect}. -% \begin{macro}{\protected@expandtwoargs} -% \changes{v2.02}{2014/11/13}{neu}%^^A -% Der Befehl \cs{protected@expandtwoargs} kann äquivalent genutzt werden, -% lässt dabei aber mit \cs{protect} geschützte Makros unberührt. -% \begin{macrocode} -\providecommand*\protected@expandtwoargs[3]{% - \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% -} -% \end{macrocode} -% \end{macro}^^A \protected@expandtwoargs % % \iffalse %</class&body> -%<*manual|doc> +%<*execute> % \fi % -% \section{Verschiedenes für die Dokumentationklassen} +% \subsection{Durchreichen von Optionen und Standardoptionen} % -% \begin{macro}{\vTUDScript} -% \begin{macro}{\vKOMAScript} -% \begin{macro}{\Attention} -% \changes{v2.02}{2014/08/16}{neu}%^^A -% \begin{macro}{\Forum} -% \begin{macro}{\notudscrartcl} -% \begin{length}{\tempdim} -% \begin{macro}{\hrfn} -% \begin{macro}{\scrguide} -% \changes{v2.02}{2014/09/04}{neu}%^^A -% \begin{macro}{\CD} -% \begin{macro}{\CDs} -% \begin{macro}{\TUD} -% \begin{macro}{\TnUD} -% \begin{macro}{\DDC} -% \begin{macro}{\Univers} -% \begin{macro}{\DIN} -% Diese Befehle stellen regelmäßig in der Quelltextdokumentatuion und im -% Handbuch genutzte Textbausteine bereit. Dazu wird der Befehl \cs{xspace} aus -% dem \pkg{xspace}-Paket genutzt. +% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse bzw. an die +% genutzte \TUDScript-Elternklasse. % \begin{macrocode} -\RequirePackage{xspace}[2009/10/20] -\xspaceaddexceptions{"=} +%<*class&!inherit> +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} +%</class&!inherit> +%<*class&inherit> +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@Parent}} +%</class&inherit> +%<*package&fonts> +\DeclareOption*{\KOMAoptions{\CurrentOption}} +%</package&fonts> +%<*package&poster> +\DeclareOption*{\TUDoptions{\CurrentOption}} +%</package&poster> % \end{macrocode} -% Der Befehl \cs{vTUDScript} enthält die aktuelle \TUDScript"=Versionsnummer. +% Es werden die Standardoptionen ausgeführt. Die Ausführung selbst wird durch +% den Befehl \cs{TUD@noworlater} innerhalb von \cs{TUD@key} auf das Ende der +% \KOMAScript-Klasse verzögert. % \begin{macrocode} -\newcommand*\vTUDScript{} -\AtBeginDocument{% - \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}% - \edef\@tempa{\TUDVersion}% - \expandafter\@tempb\@tempa\relax? ? \relax\relax% -} -\newcommand*\vKOMAScript{v3.12\xspace} +%<*class&!inherit> +\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} +%</class&!inherit> % \end{macrocode} -% Ganz zum Schluss noch Bugfixes für unterschiedliche Pakete. +% Für das Paket \pkg{tudscrfonts} werden die Schriften aktiviert. % \begin{macrocode} -\RequirePackage{scrhack}[2014/02/27] +%<*package&fonts> +\TUDExecuteOptions{cdfont=true} +%</package&fonts> +%<*package&poster> +\TUDExecuteOptions{cdstyle=bicolor} +%</package&poster> +\TUDProcessOptions\relax % \end{macrocode} -% \dots und der Rest. +% Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird +% geladen. % \begin{macrocode} -%<*manual> -\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}} -\NewDocumentCommand\Forum{s}{% - \IfBooleanTF{#1}{% - \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% - }{% - \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}% - }% - \xspace% -} -\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scriptsize\url{#1}}} -\NewDocumentCommand\scrguide{s}{% - \def\@tempc{% - http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% - }% - \IfBooleanTF{#1}{% - \href{\@tempc}{\File{scrguide.pdf}}% - }{% - \hrfn{\@tempc}{\File{scrguide.pdf}}% - }% - \xspace% -} -%<*manual&class> -\NewDocumentCommand\GitHubRepo{s}{% - \def\@tempc{% - https://github.com/tud-cd/tudscr/releases% - }% - \IfBooleanTF{#1}{% - \href{\@tempc}{GitHub-Repository~\File*{tudscr}}% - }{% - \hrfn{\@tempc}{GitHub-Repository~\File*{tudscr}}% - }% - \xspace% -} -\newcommand*\notudscrartcl{% - F\"ur die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verf\"ugbar. -} -\newlength\tempdim -%</manual&class> -%</manual> -\newcommand*\CD{Corporate Design\xspace} -\newcommand*\CDs{Corporate Designs\xspace} -\newcommand*\TUD{Technische Universit\"at Dresden\xspace} -\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} -\newcommand*\DDC{% - \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em - N\kern.1em-\kern.1em concept}\xspace% -} -\AfterPackage*{babel}{% - \@expandtwoargs\in@{,english,}{,\bbl@loaded,}% - \ifin@% - \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} - \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} - \fi -} -%<*manual> -\newcommand*\Univers{\textubn{Univers}\xspace} -\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} -\newcommand*\sbnfont{\sffamily\bfseries\upshape} -\newcommand*\sbsfont{\sffamily\bfseries\slshape} -\newcommand*\textsbn{} -\newcommand*\textsbs{} -\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape} -\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape} -%</manual> +%<*class&!inherit> +\LoadClass{\TUDClassName@KOMA}[2015/04/23] +%</class&!inherit> +%<*class&inherit> +\LoadClass{\TUDClassName@Parent} +%</class&inherit> % \end{macrocode} -% \end{macro}^^A \DIN -% \end{macro}^^A \Univers -% \end{macro}^^A \DDC -% \end{macro}^^A \TnUD -% \end{macro}^^A \TUD -% \end{macro}^^A \CDs -% \end{macro}^^A \CD -% \end{macro}^^A \scrguide -% \end{macro}^^A \hrfn -% \end{length}^^A \tempdim -% \end{macro}^^A \notudscrartcl -% \end{macro}^^A \Forum -% \end{macro}^^A \Attention -% \end{macro}^^A \vKOMAScript -% \end{macro}^^A \vTUDScript % % \iffalse -%</manual|doc> +%</execute> % \fi % % \Finale diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx index 311650d066a..320b698ef83 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1954} +% \CheckSum{2473} % \iffalse meta-comment % % ============================================================================ @@ -51,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-pagestyle.dtx}[% - 2015/02/15 v2.03 TUD-KOMA-Script (pagestyle)% + 2015/06/18 v2.04 TUD-KOMA-Script (pagestyle)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -72,8 +72,8 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}%^^A -% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A +% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A +% \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}^^A % % \section{Der Seitenstil des \CDs} % @@ -116,11 +116,11 @@ % \end{length}^^A \tud@dim@slimmargin % \end{length}^^A \tud@dim@widemargin % \begin{length}{\tud@dim@top} -% \changes{v2.02}{2015/01/09}{entfernt}%^^A +% \changes{v2.02}{2015/01/09}{entfernt}^^A % \begin{length}{\tud@dim@bottom} -% \changes{v2.02}{2015/01/09}{entfernt}%^^A +% \changes{v2.02}{2015/01/09}{entfernt}^^A % \begin{length}{\tud@dim@footskip} -% \changes{v2.02}{2015/01/09}{entfernt}%^^A +% \changes{v2.02}{2015/01/09}{entfernt}^^A % Die Befehle wurden mit der \TUDScript-Version~v2.03 allesamt entfernt, da % diese redundant waren und implizit durch andere, bereits für das \CD % definierte Längen dargestellt werden können. @@ -148,7 +148,7 @@ % \begin{length}{\tud@dim@logoy} % \begin{length}{\tud@dim@logowidth} % \begin{length}{\tud@dim@logoheight} -% \changes{v2.03}{2015/01/13}{entfernt}%^^A +% \changes{v2.03}{2015/01/13}{entfernt}^^A % Außerdem müssen noch die Abmessungen und die Position des TUD-Logos definiert % werden, nämlich der horizontale (Soll"~)Abstand zwischen linkem Seitenrand % und Logo, der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo @@ -164,7 +164,7 @@ % \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 +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{length}{\tud@dim@heavyline} % \begin{length}{\tud@dim@thinline} % Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler @@ -183,7 +183,7 @@ % \end{length}^^A \tud@dim@line % \begin{length}{\tud@dim@headdiff} % \begin{length}{\tud@dim@headingsvskip} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Die Längen für den vertikalen Standardversatz der Überschriften sowie die % Differenz der Kopfhöhen von normalem Satzspiegel und dem mit dem TUD-Kopf. % \begin{macrocode} @@ -193,18 +193,18 @@ % \end{length}^^A \tud@dim@headdiff % \end{length}^^A \tud@dim@headingsvskip % \begin{length}{\tud@dim@ddcdiff} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % 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} -\iftudscrverlower{2.03}{\newlength\tud@dim@ddcdiff}{} +\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} % \end{macrocode} % \end{length}^^A \tud@dim@ddcdiff % \begin{macro}{\tud@geometry@set} % \changes{v2.03}{2015/01/23}{Längenberechnung für den Satzspiegel an -% Referenzlänge \cs{tud@dim@widemargin} gekoppelt}%^^A +% Referenzlänge \cs{tud@dim@widemargin} gekoppelt}^^A % \begin{macro}{\tud@head@font@size} % Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die % Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die @@ -268,7 +268,7 @@ % % \subsection{Unterstützung der \cls{standalone}-Klasse} % -% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}%^^A +% \changes{v2.02}{2014/07/25}{Unterstützung der \cls{standalone}-Klasse}^^A % % Mit der Klasse~\cls{standalone} können insbesondere Grafiken als separate % Dateien erzeugt und später im Dokument eingebunden werden. Diese Klasse @@ -276,15 +276,15 @@ % der Verwendung mit den \TUDScript-Klassen nicht in die Quere kommen, müssen % für einige Einstellungen unterdrückt werden. % -% \begin{macro}{\ifstandalonecrop} -% \changes{v2.02}{2014/09/08}{neu}%^^A +% \begin{macro}{\tud@ifsacrop} +% \changes{v2.02}{2014/09/08}{neu}^^A % Mit diesem Makro kann die Verwendung der Option \opt{crop} mit der Klasse % \cls{standalone} geprüft werden. Das erste Argument wird ausgeführt, wenn % die Klasse geladen und die Option aktiv ist. Das zweite Argument wird % ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die % Klasse \cls{standalone} gar nicht geladen wurde. % \begin{macrocode} -\newcommand*\ifstandalonecrop{% +\newcommand*\tud@ifsacrop{% \ifcsdef{ifsa@crop}{% \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% }{% @@ -292,33 +292,7 @@ }% } % \end{macrocode} -% \end{macro}^^A \ifstandalonecrop -% -% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv, -% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das -% Laden von \pkg{scrlayer-scrpage} verhindert. -% -% \begin{macrocode} -\AtEndPreamble{% - \ifstandalonecrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% - }{}% -} -% \end{macrocode} +% \end{macro}^^A \tud@ifsacrop % % \subsection{Definition des Seitenstils mittels \pkg{scrlayer-scrpage}} % @@ -330,12 +304,92 @@ % entweder direkt über die Wahl des Seitenstils oder aber mit der % \env{tudpage}"=Umgebung nutzen. % +% Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv, +% werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das +% Laden von \pkg{scrlayer-scrpage} verhindert. +% \begin{macrocode} +\tud@ifsacrop{% + \PreventPackageFromLoading{scrlayer-scrpage}% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% +}{% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +} +% \end{macrocode} +% \begin{macro}{\ps@tudheadings} +% \begin{macro}{\ps@plain.tudheadings} +% \begin{macro}{\ps@empty.tudheadings} +% \begin{macro}{\currentpagestyle} +% \begin{macro}{\BeforeSelectAnyPageStyle} +% \begin{macro}{\GetRealPageStyle} +% Um die rudimentäre Verwendung der Klassen auch zu ermöglichen, wenn das Paket +% \pkg{scrlayer-scrpage} nicht geladen wurde, werden einige notwendige Makros +% definiert und vor dem Laden des Paketes wieder als \cs{undefined} gesetzt. +% \begin{macrocode} +\tud@cmd@store{pagestyle} +\cslet{ps@tudheadings}{\ps@headings}% +\cslet{ps@plain.tudheadings}{\ps@plain}% +\cslet{ps@empty.tudheadings}{\ps@empty}% +\providecommand*\currentpagestyle{plain} +\providecommand*\BeforeSelectAnyPageStyle[1]{} +\providecommand*\GetRealPageStyle[1]{#1} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \csundef{ps@tudheadings}% + \csundef{ps@plain.tudheadings}% + \csundef{ps@empty.tudheadings}% + \undef\currentpagestyle% + \undef\BeforeSelectAnyPageStyle% + \undef\GetRealPageStyle% +} +% \end{macrocode} +% +% \changes{v2.03}{2015/06/18}{Auswahl der Seitenstile \pgs{tudheadings} vor +% möglich \pkg{scrlayer-scrpage}}^^A +% +% Damit die neuen Seitenstile auch vor dem Laden von \pkg{scrlayer-scrpage} +% bereits durch den Anwender ausgewählt werden können, wird \cs{pagestyle} +% temporär zurechtgebogen. Die Definition des Makros wird gesichert und direkt +% vor dem Laden des Paketes~-- oder ggf. spätestens am Ende der Präambel etwas +% angepasst~-- wiederhergestellt. Die Redefinition führt zum Ausführen des +% Seitenstils erst nachdem diese auch tatsächlich erstellt wurden. +% \begin{macrocode} +\let\tud@pagestyle\pagestyle +\apptocmd{\tud@pagestyle}{% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}}% +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} +\AtEndPreamble{% + \@ifpackageloaded{scrlayer-scrpage}{}{% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + }% +} +% \end{macrocode} +% \end{macro}^^A \GetRealPageStyle +% \end{macro}^^A \BeforeSelectAnyPageStyle +% \end{macro}^^A \currentpagestyle +% \end{macro}^^A \ps@empty.tudheadings +% \end{macro}^^A \ps@plain.tudheadings +% \end{macro}^^A \ps@tudheadings % \begin{pagestyle}{tudheadings} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{pagestyle}{plain.tudheadings} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{pagestyle}{empty.tudheadings} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Es wird ein neuer Seitenstil kreiert, der das \CD der \TnUD mit der % prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein, % wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket @@ -345,251 +399,279 @@ % % Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage} % genutzt. Mit diesem können verschiedene Ebenen erstellt werden, aus welchen -% anschließend der eigentliche Seitenstil zusammengesetzt wird. +% anschließend der eigentliche Seitenstil zusammengesetzt wird. Dabei werden +% verschiedene, sogenannte Layers respektive Ebenen für die einzelnen Elemente +% auf einer Seite erstellt. % \begin{macrocode} -\AtEndPreamble{% -% \end{macrocode} -% Damit der Anwender beliebige Optionen an \pkg{scrlayer-scrpage} übergeben -% kann, wird das Paket erst zum Ende der Präambel geladen, wenn dies nicht -% bereits vorher geschehen ist. Anschließend werden verschiedene, sogeannte -% Layers respektive Ebenen für die einzelnen Elemente auf einer Seite erstellt. -% \begin{macrocode} - \RequirePackage{scrlayer-scrpage}[2013/12/14]% - \AfterPackage*{scrlayer-scrpage}{% +\AfterPackage{scrlayer-scrpage}{% % \end{macrocode} +% \begin{layer}{tudheadings.head.content} +% \changes{v2.04}{2015/05/31}{neu}^^A % \begin{layer}{tudheadings.head.mainlogo} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A +% \changes{v2.04}{2015/05/31}{entfernt}^^A % \begin{layer}{tudheadings.head.logo} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD, \dots -% \begin{macrocode} - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% - \tud@mainlogo% - },% - ]{tudheadings.head.mainlogo}% -% \end{macrocode} -% \dots und das Zweitlogo. -% \begin{macrocode} - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={\hfill\tud@headlogo},% - ]{tudheadings.head.logo}% +% \changes{v2.02}{2014/06/23}{neu}^^A +% \changes{v2.04}{2015/05/31}{entfernt}^^A +% Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD und das +% Zweitlogo. Diese werden seit der Version~v2.04 nicht mehr in zwei getrennten +% sondern in einer gemeinsamen Ebene gesetzt. +% \begin{macrocode} + \DeclareNewLayer[% + background,headsep,% + voffset=\tud@dim@logoy,% + contents={% +% \end{macrocode} +% Vor der Ausgabe der Logoboxen werden diese im Bedarfsfall neu gesetzt. +% \begin{macrocode} + \tud@mainlogo@set% + \tud@headlogo@option@set% + \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% % \end{macrocode} % \end{layer}^^A tudheadings.head.logo % \end{layer}^^A tudheadings.head.mainlogo +% \end{layer}^^A tudheadings.head.content % \begin{layer}{tudheadings.head.back} -% \changes{v2.03}{2015/02/14}{neu}%^^A +% \changes{v2.03}{2015/02/14}{neu}^^A % \begin{layer}{tudheadings.head.bar} -% \changes{v2.03}{2015/02/14}{neu}%^^A +% \changes{v2.03}{2015/02/14}{neu}^^A % Außerdem gibt es eine Variante ohne Querbalken-Outline. Stattdessen werden % der Querbalken und der darüberliegende Kopf farbig abgesetzt. % \begin{macrocode} - \DeclareNewLayer[% - background,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% - \fi% - },% - ]{tudheadings.head.back}% - \DeclareNewLayer[% - background,% - voffset=\tud@dim@topmargin,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41!80}% - \rule{\layerwidth}{\tud@dim@barheight}% - \fi% - },% - ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,% + contents={% + \ifnum\tud@head@bar>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\tud@dim@topmargin}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + voffset=\tud@dim@topmargin,% + contents={% + \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \rule{\layerwidth}{\tud@dim@barheight}% + \fi% + },% + ]{tudheadings.head.bar}% % \end{macrocode} % \end{layer}^^A tudheadings.head.bar % \end{layer}^^A tudheadings.head.back % \begin{layer}{tudheadings.head.text} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Fakultät, Einrichtung, Institut und Lehrstuhl als Inhalt des Querbalkens. % \begin{macrocode} - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% + contents={\tud@head@text@box},% + ]{tudheadings.head.text}% % \end{macrocode} % \end{layer}^^A tudheadings.head.text % \begin{layer}{tudheadings.head.upperline} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.lowerline} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.upperwideline} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layer}{tudheadings.head.lowerwideline} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Die Ebenen für obere und untere Linie des Querbalkens sowohl in der normalen % Version, welche den Textbereich überspannt als auch in der Variante über die % komplette Seitenbreite. Dabei muss für beide Varianten der entsprechenden % horizontale Versatz beachtet werden. Dafür wird ggf. der Parameter \val{head} -% von \pkg{scrlayer-scrpage} verwendet. Darauf folgt \dots -% \begin{macrocode} - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperline}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperwideline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerwideline}% +% von \pkg{scrlayer-scrpage} verwendet. +% \begin{macrocode} + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperwideline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerwideline}% % \end{macrocode} % \end{layer}^^A tudheadings.head.lowerwideline % \end{layer}^^A tudheadings.head.upperwideline % \end{layer}^^A tudheadings.head.lowerline % \end{layer}^^A tudheadings.head.upperline -% \begin{layer}{tudheadings.foot.logo} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% \changes{v2.03}{2015/01/13}{Ebenendeklaration ist kompatibilitätsabhängig}%^^A % \begin{layer}{tudheadings.foot.back} -% \changes{v2.03}{2015/02/15}{neu}%^^A -% Außerdem wird eine weitere Ebene für Drittlogos sowie das \DDC-Logo im -% Seitenfuß erstellt. Dabei wird die Ebene in Abhängigkeit vom gewählten -% Kompatibilitätsmodus unterschiedlich definiert. -% -% Ab Version~v2.03 wird der Satzspiegel so gewählt, dass das \DDC-Logo in den -% normalen Seitenfuß passt. -% \begin{macrocode} - \DeclareNewLayer[% - background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% -% \end{macrocode} -% Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, -% werden passende Standardwerte gesetzt. -% \begin{macrocode} - \ifdim\footlogoheight>\z@\relax\else% - \settoheight\footlogoheight{\tud@mainlogo}% - \iftudscrverlower{2.03}{% - \setlength\footlogoheight{.6\tud@dim@topmargin}% - }{}% - \fi% -% \end{macrocode} -% Die gesetzt Größe der Logos im Fuß wird geprüft. Sollten diese zu groß sein, -% wird eine Warnug ausgegeben. -% \begin{macrocode} - \setlength\@tempdima{% - \dimexpr\footlogoheight-\layerheight+\dp\strutbox\relax% - }% - \ifdim\@tempdima>\vfuzz\relax% - \ClassWarning{\tudcls@name}{% - The chosen `\string\footlogoheight' - (\the\footlogoheight)\MessageBreak% - is \the\@tempdima\space higher than recommended. You\MessageBreak% - should decrease this length - \ifcase\tud@geometry\relax\else% - or alternatively\MessageBreak% - enlarge the bottom margin by using option\MessageBreak% - `extrabottommargin'% - \fi% - }% - \fi% -% \end{macrocode} -% Hier erfolgt die eigentliche Ausgabe der Logos. Dabei werden ggf. zuerst die -% mit \cs{footlogo} angegeben wurden, anschließend wird das \DDC-Logo gesetzt, -% fall dies gefordert ist. -% \begin{macrocode} - \let\@tempa\relax% - \@for\@tempb:=\tud@@footlogo\do{% - \@tempa% - \ifx\@tempb\@empty\else% - \expandafter\tud@footlogo\expandafter{\@tempb}% +% \changes{v2.03}{2015/02/15}{neu}^^A +% \begin{layer}{tudheadings.foot.logo} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \changes{v2.04}{2015/05/31}{neu}^^A +% \changes{v2.03}{2015/02/15}{überarbeitetet}^^A +% \begin{layer}{tudheadings.foot.content} +% \changes{v2.04}{2015/04/21}{neu}^^A +% Die folgenden Ebenen dienen für die Ausgabe des Fußbereiches. Dieser kann mit +% einem farbigen Hintergrund und zusätzlichen Logos (\cs{footlogo}) sowie frei +% wählbare Inhalte ein- oder zweispaltig mit \cs{footcontent} erstellt werden. +% Dabei werden die Ebenen in Abhängigkeit vom gewählten Kompatibilitätsmodus +% unterschiedlich definiert. Die erste Ebene bestimmt die Hintergrundgestaltung +% des Fußbereiches. +% \begin{macrocode} + \DeclareNewLayer[% + background,foot,% + hoffset=0pt,% + width=\paperwidth,% + addvoffset=-\dp\strutbox,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% \fi% - \let\@tempa\footlogosep% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% - \tud@ddclogo% - },% - ]{tudheadings.foot.logo}% + \ifx\@tempc\relax\else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% % \end{macrocode} % Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel -% geändert. Hier wird dem Rechnung getragen. -% \begin{macrocode} - \iftudscrverlower{2.03}{% - \ModifyLayer[% - voffset=\dimexpr\topmargin+1in+\headheight+\headsep+\textheight% - +\footskip-\footheight-\tud@dim@ddcdiff% - \ifcase\tud@geometry\relax\else+\ht\strutbox+\dp\strutbox\fi% - \relax,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% - ]{tudheadings.foot.logo}% - }{}% -% \end{macrocode} -% Diese Ebene wird als Hintergrund für den Fußbereich definiert. +% geändert. Hier wird dem Rechnung getragen, indem der farbige Hintergrund im +% Zweifelsfall vergrößert wird. % \begin{macrocode} - \DeclareNewLayer[% - background,% - hoffset=0pt,% - width=\paperwidth,% - voffset=\dimexpr\@nameuse{scr@l@tudheadings.foot.logo@y}% - -\dp\strutbox\relax,% - height=\dimexpr\paperheight-\layeryoffset\relax,% + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \if@tud@footcolor% + \if@tud@foot@colored% \let\@tempc\relax% - \ifnum\tud@head@bar>\@ne\def\@tempc{\color{HKS41}}\fi% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!80}}}{}% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% \ifx\@tempc\relax\else% - \iftudscrverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% - \vbox to \layerheight{% - \vfil\@tempc% - \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% - }% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot=false + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% - \else% - \@tempc\rule{\layerwidth}{\layerheight}% - \fi% - }{\@tempc\rule{\layerwidth}{\layerheight}}% + }% + \else% \tud@ddc@foot!=false + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% \fi% \fi% },% ]{tudheadings.foot.back}% + }{}% % \end{macrocode} -% \end{layer}^^A tudheadings.foot.back +% Die zweite Ebene wird für die Ausgabe von Drittlogos und des \DDC-Logos sowie +% freien Inhalten im Seitenfuß erstellt. Ab Version~v2.03 wird der Satzspiegel +% so gewählt, dass das \DDC-Logo und andere Inhalten in den normalen Seitenfuß +% passen. +% \begin{macrocode} + \DeclareNewLayer[% + background,foot,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% +% \end{macrocode} +% Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, +% werden passende Standardwerte gesetzt. Außerdem wird die genutzte Höhe des +% Layers nicht vollständig genutzt, um bei einem farbigen Fußbereich einen +% gewissen Abstand vom Inhalt zur Kante zu erhalten. +% \begin{macrocode} + \tud@footlogoheight@set% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% +% \end{macrocode} +% Im Bedarfsfall werden die Boxen vor der Ausgabe neu gesetzt. Danach erfolgt +% die Ausgabe, wobei die boxen übereinander gelegt werden. +% \begin{macrocode} + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + \hspace*{-\layerwidth}% + \tud@footlogo@cmd@use% + \hspace*{-\layerwidth}% + \hfill\tud@footlogo@ddc@use{\@tempdima}% + },% + ]{tudheadings.foot.content}% +% \end{macrocode} +% Bis zur Version~v2.02 wurde für die Verwendung des \DDC-Logos der Satzspiegel +% geändert. Hier wird dem Rechnung getragen. +% \begin{macrocode} + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% + height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + ]{tudheadings.foot.content}% + }{}% +% \end{macrocode} +% \end{layer}^^A tudheadings.foot.content % \end{layer}^^A tudheadings.foot.logo +% \end{layer}^^A tudheadings.foot.back +% \begin{layer}{tudheadings.last} +% \changes{v2.04}{2015/04/02}{neu}^^A +% Die letzte Ebene dient nicht der Ausgabe eines bestimmten Inhaltes sondern +% wird für evtl. notwendige Aufräumarbeiten etc. bereitgehalten. +% \begin{macrocode} + \DeclareNewLayer[% + background,% +% \end{macrocode} +% Falls ein Kapitel ohne die Option \opt{chapterpage} gesetzt wird und dennoch +% die Gestalt des Kopfes des \pgs{tudheadings}-Seitenstils sich vom restlichen +% Dokument unterscheiden soll (\opt{cd} bzw. \opt{cdchapter}), so dient das +% Makro \cs{tud@head@bar@restore} zum Zurücksetzen auf das normale Verhalten. +% Siehe \cs{tud@chapter@app}. +% \begin{macrocode} +%<book|report> contents=\tud@head@bar@restore,% + ]{tudheadings.last}% +% \end{macrocode} +% \end{layer}^^A tudheadings.last % Aus den zuvor erstellten Ebenen werden jetzt die eigentlichen Seitenstile % zusammengesetzt. Als erstes wird der \pgs{headings}-Seitenstil definiert. % Dieser verwendet den TUD-Kopf und die Fußzeilenebenen des Seitenstils @@ -599,122 +681,147 @@ % weiterhin durch den Anwender verwendet werden kann, werden wie erwähnt die % entsprechenden \pgs{scrheadings}-Ebenen verwendet. % \begin{macrocode} - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - scrheadings.foot.odd,% - scrheadings.foot.even,% - scrheadings.foot.oneside,% - scrheadings.foot.above.line,% - scrheadings.foot.below.line% - }% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% + }% + \listadd\tud@ps@list{tudheadings}% % \end{macrocode} % Zuletzt werden Aliasnamen für den Seitenstil definiert. % \begin{macrocode} - \DeclareNewPageStyleAlias{tud}{tudheadings}% - \DeclareNewPageStyleAlias{tudscr}{tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% % \end{macrocode} % Für den \pgs{plain}-Seitenstil wird ebenso verfahren. Hier werden für die % Fußzeilenebenen des Seitenstils \pgs{plain.scrheadings} hinzugefügt. % \begin{macrocode} - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{plain.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - plain.scrheadings.foot.odd,% - plain.scrheadings.foot.even,% - plain.scrheadings.foot.oneside,% - plain.scrheadings.foot.above.line,% - plain.scrheadings.foot.below.line% - }% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% + }% + \listadd\tud@ps@list{plain.tudheadings}% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% % \end{macrocode} % Des Weiteren gibt es einen selbstständigen \enquote{leeren} Seitenstil, der % lediglich aus dem Kopf besteht und einen lerren Seitenfuß hat. % \begin{macrocode} - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{empty.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - }% - \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% + }% + \listadd\tud@ps@list{empty.tudheadings}% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% % \end{macrocode} % \begin{layer}{tudheadings.pagecolor} -% \changes{v2.03}{2015/01/09}{neu}%^^A +% \changes{v2.03}{2015/01/09}{neu}^^A +% \begin{macro}{\tud@pagecolor} +% \begin{macro}{\tud@restorepagecolor} +% \changes{v2.03}{2015/01/09}{entfernt}^^A % Um farbige Titel- Teil- und Kapitelseiten \emph{unabhängig} vom aktuell % verwendeten Seitenstil erstellen zu können, wird die zusätzliche Ebene % \val{tudheadings.pagecolor} definiert, die \emph{allen} Seitenstilen -% hinzugefügt wird. -% \begin{macrocode} - \DeclareNewLayer[ - background,page,% - contents={% - \ifdefvoid{\tud@pagecolor}{}{% - \color{\tud@pagecolor}% - \rule{\layerwidth}{\layerheight}% - }% - },% - ]{tudheadings.pagecolor} - \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% +% hinzugefügt wird. Dabei dient das Makros \cs{tud@pagecolor} zum Umschalten +% der Hintergrundfarben und wird durch die Auswertung der Hilfsmakros +% \cs{tud@layout@\dots} optionsabhängig für Titel-, Teile- sowie Kapitelseiten +% gesetzt. +% \begin{macrocode} + \newcommand*\tud@pagecolor{}% + \DeclareNewLayer[% + background,page,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% % \end{macrocode} +% \end{macro}^^A \tud@restorepagecolor +% \end{macro}^^A \tud@pagecolor % \end{layer}^^A tudheadings.pagecolor -% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch -% \cs{tud@beforeselectanypagestyle} aktiviert bzw. deaktiviert wird. +% Damit wurden alle Ebenen und die darauf aufbauenden Seitenstile deklariert. +% +% Mit der Nutzung von \pkg{scrlayer-scrpage} ist die parallele Verwendung des +% Paketes \pkg{fancyhdr} nicht möglich. % \begin{macrocode} - \BeforeSelectAnyPageStyle{\tud@beforeselectanypagestyle{#1}}% - }% } +\PreventPackageFromLoading[% + \ClassWarning{\TUDClassName}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} % \end{macrocode} % \end{pagestyle}^^A empty.tudheadings % \end{pagestyle}^^A plain.tudheadings % \end{pagestyle}^^A tudheadings % \begin{macro}{\tud@ps@onselect} -% \changes{v2.03}{2015/01/09}{neu}%^^A +% \changes{v2.03}{2015/01/09}{neu}^^A % \begin{macro}{\tud@ps@onbackground} -% \changes{v2.03}{2015/02/14}{neu}%^^A +% \changes{v2.03}{2015/02/14}{neu}^^A +% \changes{v2.04}{2015/04/21}{Kopf- und Fußeinstellungen abhängig von der Farbe +% des Seitenhintergrunds}^^A % \begin{macro}{\tud@head@logocolor} +% \begin{macro}{\tud@head@fontcolor} +% \changes{v2.04}{2015/05/18}{neu}^^A % \begin{macro}{\tud@foot@logocolor} -% \changes{v2.03}{2015/02/15}{neu}%^^A +% \changes{v2.03}{2015/02/15}{neu}^^A +% \begin{macro}{\tud@foot@fontcolor} +% \changes{v2.04}{2015/04/21}{neu}^^A % Diese Befehle werden bei der Initialiserung der Seitenstile beziehungsweise % zu Beginn der Ebenenausgabe aufgerufen. % \begin{macrocode} @@ -725,7 +832,7 @@ % Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für % \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt. % Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile, -% weshalb auf die Verwendung verziichtet wird. Das automatische Umschalten soll +% weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll % dennoch ermöglicht werden. % \begin{macrocode} \DeclarePageStyleAlias{plain}{plain.tudheadings}% @@ -733,219 +840,120 @@ \def\sls@currentheadings{tudheadings}% \def\sls@currentplain{plain.tudheadings}% } +% \end{macrocode} % Das Makro \cs{tud@head@logocolor} enthält die Farbe des Kopfes. Die Gestalt % des Querbalkens kann über die Option \opt{cdhead} geändert werden. Für Titel, % Teil und Kapitel gibt es speziell dazugehörige Optionen, womit das Aussehen -% des Kopfes ggf. angepasst werden kann. Mit \cs{tud@foot@logocolor} erfolgt -% dies gleichermaßen für ein etwaiges \DDC-Logo. +% des Kopfes ggf. angepasst werden kann. Mit \cs{tud@foot@logocolor} kann +% gleichermaßen die Farbe eines etwaigen \DDC-Logo festgelegt werden, in +% \cs{tud@foot@fontcolor} wird ggf. die Schriftfarbe für den Fuß gespeichert. % \begin{macrocode} \newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} \newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} \newcommand*\tud@ps@onbackground{% - \ifcase\tud@head@bar\relax% - \def\tud@head@logocolor{black}% - \def\tud@foot@logocolor{black}% - \or% - \def\tud@head@logocolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \or% - \def\tud@head@logocolor{white}% - \if@tud@footcolor% - \def\tud@foot@logocolor{white}% - \else% +% \end{macrocode} +% Zunächst die Einstellungen für Seiten ohne spezielle Hintergrundfarbe. +% \begin{macrocode} + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax% cdhead=nocolor + \def\tud@head@logocolor{black}% + \def\tud@head@fontcolor{}% + \def\tud@foot@logocolor{black}% + \def\tud@foot@fontcolor{}% + \or% cdhead=litecolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \or% cdhead=barcolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% \fi% - \fi% + }{% % \end{macrocode} -% In Abhängigkeit von der eingestzten Hintergrundfarbe der Seite wird die -% Linienstärke des Querbalkens gesetzt. +% Die Einstellungen für Seiten mit Hintergrundfarbe variieren davon. Zuerst die +% für farbige Titel- und Teileseiten\dots +% \begin{macrocode} + \ifstr{\tud@pagecolor}{HKS41}{% + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \def\tud@foot@logocolor{white}% + \if@tud@foot@colored% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@fontcolor{HKS41!30}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% +% \end{macrocode} +% \dots sowie die für die farbigen Kapitelseiten. +% \begin{macrocode} + }{% + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar\relax\or\or\or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }% + }% +% \end{macrocode} +% Abhängig von der eingestzten Schriftfarbe des Kopfes wird die Linienstärke +% des Querbalkens gesetzt, die Schriftfarbe des Fußes wird global geändert, +% damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden. % \begin{macrocode} \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@logocolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } % \end{macrocode} +% \end{macro}^^A \tud@foot@fontcolor % \end{macro}^^A \tud@foot@logocolor +% \end{macro}^^A \tud@head@fontcolor % \end{macro}^^A \tud@head@logocolor % \end{macro}^^A \tud@ps@onbackground % \end{macro}^^A \tud@ps@onselect % \begin{macro}{\ps@tudpage@plain} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % \begin{macro}{\ps@tudpage@empty} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt. % \end{macro}^^A \ps@tudpage@empty % \end{macro}^^A \ps@tudpage@plain % \begin{macro}{\thispagestyle} -% \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}%^^A +% \changes{v2.03}{2015/01/20}{Auswahl eines Aliasseitenstils unterdrückt}^^A % \begin{macrocode} \patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% \xdef\@specialstyle{\GetRealPageStyle{#1}} }{}{\tud@patch@wrn{thispagestyle}} % \end{macrocode} -% \end{macro}^^A \tud@beforeselectanypagestyle -% \begin{macro}{\tud@beforeselectanypagestyle} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% \begin{macro}{\tud@currentgeometry} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% Mit \cs{tud@beforeselectanypagestyle} wird beim Umschalten des Seitenstils -% gegebenfalls der Satzspiegel geändert. Dabei wird der aktivierte Satzspiegel -% in dem Makro \cs{tud@currentgeometry} gesichert, um darauf zu einem späteren -% Zeitpunkt prüfen zu können. -% -% Für den Fall, dass das Dokument nicht ausschließlich mit dem Kopf im \CD -% auf jeder Seite gesetzt wird, muss der komplette vertikale Satzspiegel -% angepasst werden, sonst wäre der obere Rand optisch viel zu groß. Hierfür -% wird das Paket \pkg{geometry} genutzt. Durch \cs{tud@geometry@process} -% werden 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@beforeselectanypagestyle[1]{% -% \end{macrocode} -% Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles} -% derart definiert, dass zwischen \pgs{tudheadings} und \pgs{plain.tudheadings} -% auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain} -% umgeschaltet werden kann. Dies wird hiermit beachtet. -% \begin{macrocode} - \ifstr{#1}{\GetRealPageStyle{#1}}{% - \def\@tempa{#1}% -% \end{macrocode} -% Vor der \KOMAScript-Version~v3.15 wurden die Seitenstile \pgs{headings} und -% \pgs{plain} nicht als Alias definiert. Dieses Problem wird hiermit behoben. -% \begin{macrocode} - \ifcsdef{scr@v@3.15}{}{% - \ifstr{\sls@currentheadings}{tudheadings}{% - \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}% - \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}% - }{}% - }% -% \end{macrocode} -% Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll, muss -% der dazugehörige Satzspiegel ausgewählt werden\dots -% \begin{macrocode} - \iftudpagestyle{\@tempa}{% -% \end{macrocode} -% \dots wobei in der Version~v2.02 zwei unterschiedliche existierten, und -% abhängig von der Verwendung des \DDC-Logos im Fuß waren. -% \begin{macrocode} - \iftudscrverlower{2.03}{% -% \end{macrocode} -% In diesem Fall werden die Seitenfußeinstellungen mit \cs{tud@ddc@check} in -% \cs{@tempb} geschrieben und abhängig davon der richtige Satzspiegel geladen. -% Dabei wird zuvor mit dem Wert aus \cs{tud@currentgeometry} geprüft, ob dies -% überhaupt notwendig ist. -% \begin{macrocode} - \tud@ddc@check% -% \end{macrocode} -% Das \DDC-Logo im Fuß ist nicht aktiviert. -% \begin{macrocode} - \ifcase\@tempb\relax% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% -% \end{macrocode} -% Das \DDC-Logo im Fuß ist aktiviert. -% \begin{macrocode} - \else% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% - }% - \fi% -% \end{macrocode} -% Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten. -% \begin{macrocode} - }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - }% -% \end{macrocode} -% Die Länge \cs{tud@dim@headdiff} gibt an, wie groß die Differenz zwischen -% Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil -% ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@} -% gesetzt. -% \begin{macrocode} - \setlength\tud@dim@headdiff{\z@}% -% \end{macrocode} -% Hier ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll. -% Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} -% zurückgesetzt. -% \begin{macrocode} - }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% - }% -% \end{macrocode} -% Die Länge \cs{tud@dim@headdiff} wird auf den berechneten Wert gesetzt. Nur -% für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und dieser -% nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas angepasst -% werden. -% \begin{macrocode} - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% - \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% - }% - \fi% - \fi% - }% -% \end{macrocode} -% Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt. -% \begin{macrocode} - \global\tud@dim@headdiff=\tud@dim@headdiff% - }{}% -} -% \end{macrocode} -% \end{macro}^^A \tud@currentgeometry -% \end{macro}^^A \tud@beforeselectanypagestyle -% \begin{macro}{\cleardoubleoddpageusingstyle} -% \begin{macro}{\cleardoubleevenpageusingstyle} -% \begin{macro}{\cleardoublepageusingstyle} -% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die -% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal -% angepasst werden. -% \begin{macrocode} -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoublepageusingstyle}} -% \end{macrocode} -% \end{macro}^^A \cleardoublepageusingstyle -% \end{macro}^^A \cleardoubleevenpageusingstyle -% \end{macro}^^A \cleardoubleoddpageusingstyle -% \begin{macro}{\tud@ddc@enlargepage} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% Der Befehl wird nur für den Kompatibilitätsmodus zur Version~v2.02 benötigt -% und für die Titelkopf- und Kapitelseiten verwendet. Er verkleinert die -% entsprechenden Seiten, wenn für diese mit dem Befehl \cs{thispagestyle} einer -% der \pgs{tudheadings}"=Seitenstile gewählt wird \emph{und} das \DDC-Logo im -% Fuß gesetzt werden soll. Der entsprechende Seitenstil kann im optionalen -% Argument angegeben werden, wenn der Befehl bedingt ausgeführt werden soll. -% \begin{macrocode} -\iftudscrverlower{2.03}{% - \newcommand*\tud@ddc@enlargepage[1][]{% - \iftudpagestyle{#1}{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@ddc@check% - \ifcase\@tempb\relax\else% - \enlargethispage{-\tud@dim@ddcdiff}% - \fi% - }% - }{}% - }% -}{} -% \end{macrocode} -% \end{macro}^^A \tud@ddc@enlargepage +% \end{macro}^^A \thispagestyle % \begin{macro}{\tud@head@text} % \begin{macro}{\tud@head@text@first} % \begin{macro}{\tud@head@text@second} @@ -966,19 +974,20 @@ % \end{macro}^^A \tud@head@text@first % \end{macro}^^A \tud@head@text % \begin{macro}{\tud@head@rule} -% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}%^^A +% \changes{v2.02}{2014/06/23}{gewünschte Breite als Argument}^^A % Der Querbalken des Kopfes läuft je nach gewähltem Parameter \cs{tud@head@bar} % entweder nur über den Textbereich oder aber über die gesamte Seitenbreite. % Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und % über \cs{tud@dim@line} definierter Dicke. % \begin{macrocode} \newcommand*\tud@head@rule[1]{% - \color{\tud@head@logocolor}% + \tud@color{\tud@head@fontcolor}% \rule[\ht\strutbox]{#1}{\tud@dim@line}% } % \end{macrocode} % \end{macro}^^A \tud@head@rule % \begin{macro}{\tud@head@text@add} +% \changes{v2.04}{2015/04/08}{Verwendung von \cs{protected@edef}}^^A % Dieser Befehl dient zum Füllen eines Puffer-Strings. Es werden sequentiell % alle potentiellen Felder hinzugefügt. Sollte das zuletzt hinzugefügte Feld % dazu führen, dass der Text der Kopfzeile über den Seitenrand hinausragt, so @@ -988,7 +997,7 @@ % nachfolgt. % \begin{macrocode} \newcommand*\tud@head@text@add[3][, ]{% - \edef\tud@head@text{#3}% + \protected@edef\tud@head@text{#3}% \ifx\tud@head@text\@empty% \def\tud@head@text@delimiter{}% \else% @@ -1007,11 +1016,11 @@ \@tempswatrue% \def\tud@head@text@delimiter{}% \else% - \edef\tud@head@text@first{\@tempa}% + \protected@edef\tud@head@text@first{\@tempa}% \fi% \fi% \if@tempswa% - \edef\tud@head@text@second{% + \protected@edef\tud@head@text@second{% \tud@head@text@second% \tud@head@text@delimiter% #2% @@ -1022,18 +1031,17 @@ % \end{macrocode} % \end{macro}^^A \tud@head@text@add % \begin{macro}{\tud@head@text@box} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \changes{v2.03}{2015/01/09}{Bugfix für zweite Zeile. Diese muss in jedem Fall -% gesetzt werden, auch wenn sie leer ist.}%^^A +% gesetzt werden, auch wenn sie leer ist.}^^A % Dieser Befehl ist der Inhalt der Ebene für den Text der Kopfzeile. -% \ToDo{Zeilenabstand bei unterschiedlichen Papiergrößen prüfen}[v2.04] % \begin{macrocode} \newcommand*\tud@head@text@box{% % \end{macrocode} % Sollte keine Fakultät angegeben sein, wird eine Warnung ausgegeben. % \begin{macrocode} \ifx\@faculty\@empty% - \ClassWarningNoLine{\tudcls@name}{No `\string\faculty' given}% + \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% \faculty{}% \fi% % \end{macrocode} @@ -1075,27 +1083,27 @@ % \cs{tud@head@text@write} sowie einer möglichen Extrazeile. % \begin{macrocode} \vbox{% - \linespread{0}\selectfont% + \linespread{0}\selectfont\offinterlineskip% % \end{macrocode} -% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes\dots +% Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes. % \begin{macrocode} - \color{\tud@head@logocolor}% + \tud@color{\tud@head@fontcolor}% \tud@head@text@write{\tud@head@text@first}% % \end{macrocode} % Die zweite und dritte Zeile sind bei zweifarbigen Kopf normalerweise blau, % nur für einen dunklen Seitenhintergrund weiß. % \begin{macrocode} - \ifnum\tud@head@bar>\@ne% + \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% \ifx\tud@head@text@second\@empty% - \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}% + \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% \else% \newline\tud@head@text@write{\tud@head@text@second}% \ifx\@extraheadline\@empty\else% - \vspace{-\tud@dim@line}\newline\tud@head@font@light\@extraheadline% + \newline\vbox{\tud@head@font@light\@extraheadline}% \fi% \fi% }% @@ -1104,14 +1112,14 @@ % \end{macro}^^A \tud@head@text@box % \begin{macro}{\tud@head@text@write} % \changes{v2.02}{2014/06/23}{Vertikaler Freiraum für Ober- und Unterlängen -% mit \cs{vphantom} eingefügt}%^^A -% \changes{v2.02}{2014/12/04}{optische Zentrierung des Zeilentextes}%^^A +% mit \cs{vphantom} eingefügt}^^A +% \changes{v2.02}{2014/12/04}{Zentrierung des Zeilentextes}^^A % Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf % \begin{macrocode} \newcommand*\tud@head@text@write[1]{% \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% \dimexpr\tud@dim@barheight-\depth\relax% - ][\depth]{#1\vphantom{gjpqy\"A\"O\"U}}% + ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% } % \end{macrocode} % \end{macro}^^A \tud@head@text@write @@ -1120,7 +1128,7 @@ % Textbreite, was bei besonders kleinen Papierformaten geschehen kann. % \begin{macrocode} \newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The given entries for the headline\MessageBreak% (faculty, institute etc.) are #1\MessageBreak% too wide for the textwidth% @@ -1129,24 +1137,56 @@ } % \end{macrocode} % \end{macro}^^A \tud@head@text@wrn -% \begin{macro}{\tud@mainlogo@wrn} -% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}%^^A -% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die -% Textbreite, was bei besonders kleinen Papierformaten geschehen kann. -% \begin{macrocode} -\newcommand*\tud@mainlogo@wrn[1]{% - \ClassWarning{\tudcls@name}{% - The selected page layout means that the\MessageBreak% - logo of TUD extends beyond the printing area.\MessageBreak% - The inner margin is smaller than BCOR\MessageBreak% - (`BCOR=\the\ta@bcor', inner margin is #1)\MessageBreak% - Maybe you should decrease the current value\MessageBreak% - of DIV (`DIV=\the\ta@div')% - }% - \global\let\tud@mainlogo@wrn\@gobble% +% \begin{macro}{\tud@newlayerbox} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@savelayerbox} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@uselayerbox} +% \changes{v2.04}{2015/05/31}{neu}^^A +% Die Inhalte für Kopf und Fuß der \pgs{tudheadings}-Seitenstile~-- sprich das +% Logo der \TnUD, die \DDC-Logos, ein mögliches Zweilogo sowie die Logos und +% Inhalte im Fuß werden in Boxen gesetzt, um die Anzahl der benötigten Aufrufe +% von \cs{includegraphics} möglichst gering zu halten. +% \begin{macrocode} +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@logo@#1\endcsname% } % \end{macrocode} -% \end{macro}^^A \tud@mainlogo@wrn +% \end{macro}^^A \tud@uselayerbox +% \end{macro}^^A \tud@savelayerbox +% \end{macro}^^A \tud@newlayerbox +% \begin{macro}{\tud@vlayerbox} +% \changes{v2.04}{2015/05/31}{neu}^^A +% Für die Ausgabe der Logos und Inhalte wird dieser Befehl definiert. Dieser +% setzt die im zweiten Argument angegebenen Inhalte in eine vertikale Box, +% deren gewünschte Höhe im ersten Argument angegeben wird. Für den Fall, dass +% die gewünschten Inhalte die maximale Höhe überschreiten, wird eine Warnung +% erzeugt. Der Inhalt dieser Warnung wird im dritten Argument angegeben. Damit +% soll dem Anwender geholfen werden, in diesem Fall die richtigen Maßnahmen zu +% ergreifen und nicht lediglich eine Meldung einer zu übervollen \cs{vbox} zu +% erhalten. +% \begin{macrocode} +\newcommand*\tud@vlayerbox[3]{% + \begingroup% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUDClassName}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima% + }% + \fi% + \endgroup% + \vbox to #1{#2}% +} +% \end{macrocode} +% \end{macro}^^A \tud@vlayerbox % % \iffalse %</class&body> @@ -1155,12 +1195,31 @@ % % \subsection{Befehle, Optionen und Umsetzung der Seitenstilvarianten} % +% \begin{macro}{\tud@iftudps} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{macro}{\tud@ps@list} +% \changes{v2.02}{2014/06/23}{neu}^^A +% Mit dem Befehl \cs{tud@iftudps} wird geprüft, ob der im ersten Argument +% gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein kann, +% welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den +% aktuellen Seitenstil beinhaltet~-- einem aus der Liste \cs{tud@ps@list} +% entspricht. Ist dies der Fall, wird das zweite Argument ausgeführt, +% anderfalls das dritte. Die Liste \cs{tud@ps@list} wird bei der Definition der +% Seitenstile selbst gesetzt. +% \begin{macrocode} +\newcommand*\tud@ps@list{} +\newcommand*\tud@iftudps[3]{% + \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% +} +% \end{macrocode} +% \end{macro}^^A \tud@ps@list +% \end{macro}^^A \tud@iftudps % \begin{option}{ddc} -% \changes{v2.02}{2014/06/23}{automatische Logowahl}%^^A +% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A % \begin{option}{ddchead} -% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A +% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A % \begin{option}{ddcfoot} -% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}%^^A +% \changes{v2.02}{2014/06/23}{\DDC-Logo entweder in Kopf oder Fuß}^^A % Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil % \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den % Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls @@ -1168,9 +1227,44 @@ % Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein % Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen % im Fuß ausgegeben. +% \begin{macro}{\if@tud@ddc@internal} +% \changes{v2.02}{2014/07/08}{neu}^^A +% \begin{macro}{\tud@clearpage@iftudps} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@pagestyle@iftudps} +% \changes{v2.04}{2015/05/31}{neu}^^A +% Dieser Schalter wird intern von den Optionen \opt{ddc}, \opt{ddchead} und +% \opt{ddcfoot} verwendet, um rekursive Aufrufe der optionen zu verhindern. +% \begin{macrocode} +\newif\if@tud@ddc@internal +% \end{macrocode} +% Bis zur Version~v2.02 wurden unterschiedliche Satzsiegel für den Seitenfuß +% mit und ohne \DDC-Logo verwendet. Damit dieser im Zweifelsfall umgestellt +% werden kann, wurde vor dem Ausführen der entsprechenden Optionen ein +% Seitenumbruch erzwungen und nach dem Verarbeiten der Optionen der aktuelle +% Seitenstil erneut aufgerufen. Die beiden folgenden Makros werden für dieses +% Unterfangen definiert, jedoch beider Abarbeitung der Optionen nur noch im +% Kompatibilitätmodus ausgeführt. +% \begin{macrocode} +\newcommand*\tud@clearpage@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{\clearpage}{}% + \fi\fi% +} +\newcommand*\tud@pagestyle@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi\fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@clearpage@iftudps +% \end{macro}^^A \tud@pagestyle@iftudps +% \end{macro}^^A \if@tud@ddc@internal % \begin{macro}{\tud@ddc@switch} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% Dieser Befehl enthält die gültigen Werte für die Optionen \opt{ddc}, +% \changes{v2.02}{2014/06/23}{neu}^^A +% Dieses Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc}, % \opt{ddchead} sowie \opt{ddcfoot}. % \begin{macrocode} \newcommand*\tud@ddc@switch{} @@ -1185,148 +1279,158 @@ } % \end{macrocode} % \end{macro}^^A \tud@ddc@switch -% \begin{macro}{\tud@ddc@save} -% \changes{v2.02}{2014/07/08}{neu}%^^A -% \begin{macro}{\if@tud@ddc@save} -% \changes{v2.02}{2014/07/08}{neu}%^^A -% Diese beiden Befehle werden von den Optionen \opt{ddchead} und \opt{ddcfoot} -% benötigt, um nach dem Setzen der Option den vorherigen Wert vor dem möglichen -% Beenden einer Seite mit \cs{clearpage} wiederherstellen zu können. -% \begin{macrocode} -\newcommand*\tud@ddc@save{} -\newif\if@tud@ddc@save -\@tud@ddc@savetrue -% \end{macrocode} -% \end{macro}^^A \if@tud@ddc@save -% \end{macro}^^A \tud@ddc@save % \begin{macro}{\tud@ddc} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% \begin{macro}{\if@tud@ddc@autoset} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{macro}{\if@tud@ddc@auto} +% \changes{v2.02}{2014/06/23}{neu}^^A % Die Option \opt{ddc}. % \begin{macrocode} +\newif\if@tud@ddc@auto \newcommand*\tud@ddc{0} -\newif\if@tud@ddc@autoset \TUD@key{ddc}[true]{% % \end{macrocode} -% Sollte diese innerhalb des Dokumentes aufgerufen werden, so wird für den Fall, -% dass ein \pgs{tudheadings}-Seitenstil gewählt ist, ein \cs{clearpage} -% ausgeführt, da eventuell eine Änderung des Layers sowie des Satzspeigels -% notwendig ist. Anschließend wird der Schalter \cs{if@tud@ddc@autoset} -% entsprechend des angegebenen Wertes gesetzt. +% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird +% die Option abgearbeitet. % \begin{macrocode} + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \ifcase\tud@ddc\relax% - \@tud@ddc@autosetfalse% +% \end{macrocode} +% Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot} +% aufgerufen, wird die automatische Auswahl des \DDC-Logos deaktiviert. +% \begin{macrocode} + \if@tud@ddc@internal% + \@tud@ddc@autofalse% \else% - \@tud@ddc@autosettrue% +% \end{macrocode} +% Andernfalls wird die automatische Auswahl aktiviert und die beiden Optionen +% \opt{ddchead} sowie \opt{ddcfoot} intern zurückgesetzt. +% \begin{macrocode} + \@tud@ddc@autotrue% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddcfoot=false}% + \@tud@ddc@internalfalse% \fi% % \end{macrocode} -% Abschließend wird der aktuelle Seitenstil erneut aufgerufen, um bei einem -% geänderten Fuß den notwendigen Satzspiegel zu laden. Dies ist jedoch nur -% notwendig, wenn die Option innerhalb des Dokumentes verwendet wurde. Siehe -% \cs{tud@beforeselectanypagestyle}. +% Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden +% in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter +% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der +% Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}. % \begin{macrocode} - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \fi% +% \end{macrocode} +% Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen, +% um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden. +% \begin{macrocode} + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } % \end{macrocode} -% \end{macro}^^A \if@tud@ddc@autoset +% \end{macro}^^A \if@tud@ddc@auto % \end{macro}^^A \tud@ddc % \begin{macro}{\tud@ddc@head} -% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}%^^A +% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^A % Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf % der Seiten im Stil von \pgs{tudheadings}. % \begin{macrocode} \newcommand*\tud@ddc@head{0} \TUD@key{ddchead}[true]{% % \end{macrocode} -% Der aktuelle Zustand des Schlüssels wird gesichert. Anschließend wird der -% Schlüssel mit dem neuen Wert gesetzt. +% Der Seitenumbruch im Kompatibilitätsmodus. % \begin{macrocode} - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@head\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% % \end{macrocode} -% Sollte ein gültiger Wert für den Schlüssel übergeben worden sein, wird dieser -% lokal auf den alten Wert gesetzt, um ggf. eine neue Seite zu erzeugen. +% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. +% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden +% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten +% setzen der Logoboxen. % \begin{macrocode} \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@head\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% -% \end{macrocode} -% Danach werden die sich ausschließenden Optionen deaktiviert, ohne eine -% Sicherung der Werte vorzunehmen. -% \begin{macrocode} - \ifcase\tud@ddc@head\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddcfoot=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% +% \end{macrocode} +% Das Setzen des Seitenstils im Kompatibilitätsmodus. +% \begin{macrocode} + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } % \end{macrocode} % \end{macro}^^A \tud@ddc@head % \begin{macro}{\tud@ddc@foot} -% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}%^^A +% \changes{v2.03}{2015/01/22}{Bugfix Seitenstilauswahl bei Deaktivierung}^^A % Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß % der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des % Schlüssels ist äquivalent zur Option \opt{ddchead} % \begin{macrocode} \newcommand*\tud@ddc@foot{0} \TUD@key{ddcfoot}[true]{% - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@foot\fi% +% \end{macrocode} +% Der Seitenumbruch im Kompatibilitätsmodus. +% \begin{macrocode} + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% +% \end{macrocode} +% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. +% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden +% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten +% setzen der Logoboxen. +% \begin{macrocode} \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@foot\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% - \ifcase\tud@ddc@foot\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddchead=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% +% \end{macrocode} +% Das Setzen des Seitenstils im Kompatibilitätsmodus. +% \begin{macrocode} + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } % \end{macrocode} % \end{macro}^^A \tud@ddc@foot % \begin{macro}{\tud@ddc@check} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% Dieses Hilfsmakro wird aufgerufen, wenn geprüft werden soll, welche -% Einstellungen für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen -% kommen sollen. Dabei wird insbesondere geprüft, ob die automatischen Auswahl -% des \DDC-Logos aktiviert ist. Die jeweils gültige Auswahl für Kopf bzw. Fuß -% wird in \cs{@tempa} bzw. \cs{@tempb} geschrieben und kann anschließend -% ausgewertet werden. +% \changes{v2.02}{2014/06/23}{neu}^^A +% Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen +% für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen. +% Dabei wird über den Schalter \cs{if@tud@ddc@auto}festgelegt, ob die Auswahl +% des \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet. +% Ist dies der Fall, wird das Logo standardmäßig im Kopf gesetzt. Ist jedoch +% durch den Befehl \cs{headlogo} ein Zweitlogo angegeben worde, wird dieses in +% der Fußzeile ausgegeben. Die Verwendung einer der Optionen \opt{ddchead} bzw. +% \opt{ddcfoot} forciert die Ausgabe des \DDC-Logos an der gewünschten Stelle. +% Die jeweils gültige Auswahl für Kopf bzw. Fuß wird in den Makros \cs{@tempa} +% bzw. \cs{@tempb} geschrieben und kann anschließend ausgewertet werden. % \begin{macrocode} \newcommand*\tud@ddc@check{% \let\@tempa\tud@ddc@head% \let\@tempb\tud@ddc@foot% - \if@tud@ddc@autoset% - \ifx\tud@@headlogo\@empty% + \if@tud@ddc@auto% + \ifdefvoid{\@headlogo}{% \let\@tempa\tud@ddc% \let\@tempb\z@% - \else% + }{% \let\@tempa\z@% \let\@tempb\tud@ddc% - \fi% + }% \fi% - \iftudscrverlower{2.03}{% - \ifcase\@tempb\relax\ifx\tud@@footlogo\@empty\else\let\@tempb\m@ne\fi\fi% +% \end{macrocode} +% Für die Satzspiegelvergrößerung wird beim Vorhandensein eines oder mehrerer +% Logos im Fuß die Variable \cs{@tempb} auf einen negativen Wert gesetzt, um +% auch ohne die Ausgabe eines \DDC-Logos den Fußbereich zu vergrößern. +% \begin{macrocode} + \tud@ifverlower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% + \fi% }{}% } % \end{macrocode} @@ -1334,27 +1438,6 @@ % \end{option}^^A ddcfoot % \end{option}^^A ddchead % \end{option}^^A ddc -% \begin{macro}{\iftudpagestyle} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% \begin{macro}{\tud@ps@list} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% Mit dem Befehl \cs{iftudpagestyle} wird geprüft, ob der im ersten Argument -% gegebene Seitenstil~-- was auch das Makro \cs{currentpagestyle} sein kann, -% welches durch das Paket \pkg{scrlayer-scrpage} definiert wird und den -% aktuellen Seitenstil beinhaltet~-- einem aus der Liste \cs{tud@ps@list} -% entspricht. Ist dies der Fall, wird das zweite Argument ausgeführt, -% anderfalls das dritte. -% \begin{macrocode} -\newcommand*\iftudpagestyle[3]{% - \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% -} -\newcommand*\tud@ps@list{} -\forcsvlist{\listadd\tud@ps@list}{% - tudheadings,plain.tudheadings,empty.tudheadings% -} -% \end{macrocode} -% \end{macro}^^A \tud@ps@list -% \end{macro}^^A \iftudpagestyle % \begin{option}{extrabottommargin} % \begin{length}{\tud@dim@extrabottommargin} % Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur @@ -1377,148 +1460,508 @@ %<*class&body> % \fi % -% \begin{macro}{\tud@mainlogo} -% \changes{v2.02}{2014/08/04}{Dateinamen der TUD-Logos geändert}%^^A -% \begin{macro}{\tud@@mainlogo} -% Mit diesem Makro wird das Logo der TU~Dresden eingebunden. Bei der Verwendung -% von pdf\LaTeX{} kann wird Farbe des Logos an die Kopffarbe angepasst. Wird -% der klassische Weg über dvi gewählt, so muss abhängig von der gewählten -% Kopffarbe das entsprechend gefärbte Logo eingebunden werden. -% -% \begin{macrocode} -\newcommand*\tud@@mainlogo{} -\newcommand*\tud@mainlogo{% +% \begin{macro}{\tud@logo@main@black} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@logo@main@HKS41} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@logo@main@white} +% \changes{v2.04}{2015/05/31}{neu}^^A +% Diese drei Boxen werden für das Logo der \TnUD reserviert. Abhängig von der +% gewählten Option des Layouts und der Seitenfarbe wird eine der Logos in der +% notwendigen Farbe ausgewählt. +% \begin{macrocode} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +% \end{macrocode} +% \end{macro}^^A \tud@logo@main@white +% \end{macro}^^A \tud@logo@main@HKS41 +% \end{macro}^^A \tud@logo@main@black +% \begin{macro}{\tud@mainlogo@set} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\if@tud@mainlogo@wrn} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{length}{\tud@mainlogoheight} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@mainlogo@wrn} +% \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}^^A +% \begin{macrocode} +\newlength\tud@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +% \end{macrocode} +% Dieses Makro setzt zu einen das Logo der \TnUD als auch~-- durch den Aufruf +% der entsprechenden Befehle zum Schluss~-- alle weiteren Logos und Inhalte im +% Kopf und Fuß. Dies geschieht nach jeder Satzspiegeländerung beim Ausführen +% der einzelnen Seitenstil-Layer. Dafür wird \cs{if@tud@mainlogo@set} im Hook +% \cs{tud@AfterChangingArea} gesetzt. +% \begin{macrocode} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% + \global\tud@mainlogoheight=\tud@mainlogoheight% % \end{macrocode} % Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea} % über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb -% des Druckrandes liegt. Dies kann beispielsweise bei zweiseitigem Satz -% und/oder einem zu großen \opt{DIV}-Wertes passieren. Es wird in diesem Fall -% eine Warnung ausgegeben, damit das Problem durch den Anwender behoben werden -% kann. +% des Druckrandes liegt. Dies kann beispielsweise bei kleinen Papierformaten, +% zweiseitigem Satz und/oder einem zu großen \opt{DIV}-Wertes passieren. Es +% wird in diesem Fall eine Warnung ausgegeben, damit das Problem durch den +% Anwender behoben werden kann. +% \begin{macrocode} + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUDClassName}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% + \fi% + }% +% \end{macrocode} +% Hier werden die beiden Makros aufgerufen, um die Inhalte von Kopf und Fuß in +% den Boxen in der richtigen Größe neu zu setzen. % \begin{macrocode} - \setlength\@tempdima{% - \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% - }% - \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi% + \tud@headlogo@set% + \tud@footlogo@set% + \global\@tud@mainlogo@setfalse% + \fi% +} % \end{macrocode} -% Es wird das Standardlogo festgelegt und dieses ggf. für eine andere Kopffarbe -% geändert. +% \end{macro}^^A \tud@mainlogo@wrn +% \end{length}^^A \tud@mainlogoheight +% \end{macro}^^A \if@tud@mainlogo@set +% \end{macro}^^A \tud@mainlogo@set +% \begin{macro}{\tud@mainlogo@use} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@mainlogo} +% \changes{v2.04}{2015/05/31}{entfernt}^^A +% \begin{macro}{\tud@@mainlogo} +% \changes{v2.04}{2015/05/31}{entfernt}^^A +% Hiermit erfolgt die Ausgabe der gespeicherten Boxen für das Logo der \TnUD, +% wobei \cs{tud@head@logocolor} die Farbe festlegt. % \begin{macrocode} - \def\tud@@mainlogo{TUD-black}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@mainlogo{TUD-white}}{}% - \includegraphics[keepaspectratio,width=\tud@dim@logowidth]{\tud@@mainlogo}% +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% + }% + \tud@uselayerbox{main@\tud@head@logocolor}% } % \end{macrocode} % \end{macro}^^A \tud@@mainlogo % \end{macro}^^A \tud@mainlogo +% \end{macro}^^A \tud@mainlogo@use +% \begin{macro}{\tud@logo@head@black} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@logo@head@HKS41} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@logo@head@white} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@logo@head@option} +% \changes{v2.04}{2015/05/31}{neu}^^A +% Diese Boxen werden für das \DDC-Logo und das Zweitlogo im Kopf definiert. Der +% Box \cs{tud@logo@head@option} fäält dabei die Rolle zu, entweder ein~-- per +% Option gewähltes~-- \DDC-Logo oder aber das mit \cs{headlogo} angegebene +% Zweitlogo zusichern und auszugeben. Die anderen drei Boxen speichern das Logo +% von \DDC in den drei für die unterschiedlichen Layoutausprägung benötigten +% Varianten. +% \begin{macrocode} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +% \end{macrocode} +% \end{macro}^^A \tud@logo@head@option +% \end{macro}^^A \tud@logo@head@white +% \end{macro}^^A \tud@logo@head@HKS41 +% \end{macro}^^A \tud@logo@head@black % \begin{macro}{\headlogo} -% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}%^^A -% \begin{macro}{\tud@headlogo} -% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@logo} umbenannt}%^^A -% \changes{v2.02}{2014/06/23}{von \cs{tud@ddc@sethead} wurde die Auswahl des -% \DDC-Logos übernommen und erweitert}%^^A -% \begin{macro}{\tud@@headlogo} -% \changes{v2.02}{2014/06/23}{neu, \cs{tud@head@@logo} umbenannt}%^^A -% \begin{macro}{\tud@@@headlogo} -% \changes{v2.02}{2014/06/23}{Umbenennen des Befehls \cs{tud@head@@@logo}}%^^A +% \changes{v2.02}{2014/06/23}{Anpassung an automatische Wahl des \DDC-Logos}^^A +% \begin{macro}{\@headlogo} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{macro}{\@@headlogo} +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@headlogo@wrn} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Diese Befehle dienen zum Einbinden eines Zweitlogos im Kopf bündig zum % rechten Seitenrand. Bei der Angabe des Logos mit % \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} wird der Dateiname in -% \cs{tud@@headlogo} und das optionale Argument in \cs{tud@@@headlogo} +% \cs{@headlogo} und das optionale Argument in \cs{@@headlogo} % gespeichert, damit diese später über \cs{tud@headlogo} an den Befehl % \cs{includegraphics} weitergereicht werden können. % \begin{macrocode} +\newcommand*\@headlogo{} +\newcommand*\@@headlogo{} +\newcommand*\tud@headlogo@wrn{} \newcommand*\headlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@headlogo{#2}% - \def\tud@@@headlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@headlogo{#2}% + \def\@@headlogo{#1}% +% \end{macrocode} +% Nachdem Setzen des Zweitlogos müssen die entsprechenden Boxen mit den Logos +% von \DDC neu gesetzt werden. Weil dieses dabei vom Kopf in den Fuß oder +% umgekehrt wandern könnte, werden beide relevanten Makros ausgeführt. +% \begin{macrocode} + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUDClassName}{% + The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% + overwritten with DDC logo. Maybe you should use\MessageBreak% + `ddcfoot' or better `ddc' instead of `ddchead'% + }% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } -\newcommand*\tud@@headlogo{} -\newcommand*\tud@@@headlogo{} -\newcommand*\tud@headlogo{% - \tud@ddc@check% - \ifx\tud@@headlogo\@empty\else% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% - \fi% - \ifcase\@tempa\relax\or% - \def\tud@@headlogo{DDC-24}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@headlogo{DDC-30}}{}% - \or% - \def\tud@@headlogo{DDC-03}% - \or% - \def\tud@@headlogo{DDC-09}% - \or% - \def\tud@@headlogo{DDC-21}% - \or% - \def\tud@@headlogo{DDC-24}% - \or% - \def\tud@@headlogo{DDC-27}% - \or% - \def\tud@@headlogo{DDC-30}% +% \end{macrocode} +% \end{macro}^^A \tud@headlogo@wrn +% \end{macro}^^A \@@headlogo +% \end{macro}^^A \@headlogo +% \end{macro}^^A \headlogo +% \begin{macro}{\tud@headlogo@set} +% \changes{v2.04}{2015/05/31}{neu}^^A% \DDC-Logos übernommen und erweitert}^^A +% \begin{macro}{\tud@headlogo@option@set} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\if@tud@headlogo@option@set} +% \changes{v2.04}{2015/05/31}{neu}^^A +% Äquivalent zum Logo der \TnUD werden auch für das Logo von \DDC drei +% Farbvarianten erstellt. +% \begin{macrocode} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +% \end{macrocode} +% Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddchead} abgearbeitet +% sowie ein ggf. gegebenes Zweitlogo gespeichert. Dies geschieht beim Aufruf +% des passenden Layers, falls der Schalter \cs{if@tud@headlogo@option@set} +% gesetzt wurde. +% \begin{macrocode} +\newif\if@tud@headlogo@option@set +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@mainlogoheight,##2% + ]{\trim@spaces{##1}}% + }% + }% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head=false + \ifdefvoid{\@headlogo}{}{% + \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% + \@tempb% + }% + \or\or% \tud@ddc@head=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head=white + \@tempc{DDC-30}{}% + \fi% + \global\@tud@headlogo@option@setfalse% \fi% - \ifx\tud@@headlogo\@empty\else% - \settoheight\@tempdima{\tud@mainlogo}% - \protected@epreto\tud@@@headlogo{% - keepaspectratio,totalheight=\the\@tempdima,% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@headlogo@option@set +% \end{macro}^^A \tud@headlogo@option@set +% \end{macro}^^A \tud@headlogo@set +% \begin{macro}{\tud@headlogo@use} +% \changes{v2.04}{2015/05/31}{neu}^^A +% Die Ausgabe von \DDC- oder Zweitlogo im Kopf erfolgt mit diesem Makro. Dabei +% werden diese in einer Box vertikal zentriert. +% \begin{macrocode} +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% + }% + \vss% + }{% + The given `\string\headlogo{\@headlogo}' is too large.% + } + \ifdefvoid{\@headlogo}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@headlogo@use +% \begin{macro}{\tud@logo@foot@black} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@logo@foot@HKS41} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@logo@foot@white} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@logo@foot@option} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Im Fußbereich kann das \DDC-Logo rechtsbündig ausgegeben. Hierfür werden die +% entsprechenden Boxen für alle Farbvarianten definiert. Diese werden genutzt, +% wenn entweder die Option \opt{ddcfoot} oder aber \opt{ddc} in Verbindung mit +% einem Zweitlogo (\cs{headlogo}) genutzt wird. +% \begin{macrocode} +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} +% \end{macrocode} +% \end{macro}^^A \tud@logo@foot@option +% \end{macro}^^A \tud@logo@foot@white +% \end{macro}^^A \tud@logo@foot@HKS41 +% \end{macro}^^A \tud@logo@foot@black +% \begin{length}{\footlogoheight} +% \changes{v2.03}{2015/01/27}{neu}^^A +% \begin{length}{\tud@footlogoheight} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@footlogoheight@set} +% \changes{v2.04}{2015/04/21}{neu}^^A +% Für den Anwender besteht mit der Länge \cs{footlogoheight} die Möglichkeit, +% die Höhe aller Logos im Fußbereich~-- also \DDC-Logo sowie weitere, mit dem +% Befehl \cs{footlogo} angegebene Logos~-- zentral festzulegen. Dabei wird +% die Länge nicht direkt genutzt, sondern intern \cs{tud@footlogoheight} +% verwendet. mit \cs{tud@footlogoheight@set} wird geprüft, ob der Anwender +% \cs{footlogoheight} tatsächlich angepasst hat. Sollte dies der Fall sein, +% wird \cs{tud@footlogoheight@set} auf diesen Wert gesetzt, andernfalls werden +% die hinterlegten Standardwerte verwendet. +% \begin{macrocode} +\newlength\footlogoheight +\newlength\tud@footlogoheight +\newcommand*\tud@footlogoheight@set{% + \ifdim\footlogoheight=\z@\relax% + \tud@ifverlower{2.03}{% + \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% + }{% + \setlength\tud@footlogoheight{\tud@mainlogoheight}% }% - \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}% + \else% +% \end{macrocode} +% Der Grund für die Verwendung einer internen Länge \cs{tud@footlogoheight} +% liegt darin begründet, dass eine Änderung der Länge \cs{footlogoheight} eine +% Erneuerung der genutzten Boxen benötigt. Die Prüfung und ggf. das Setzen des +% entsprechenden Schalters geschieht hier. +% \begin{macrocode} + \ifdim\footlogoheight=\tud@footlogoheight\relax\else% + \setlength\tud@footlogoheight{\footlogoheight}% + \global\@tud@footlogo@option@settrue% + \fi% \fi% + \global\tud@footlogoheight=\tud@footlogoheight% } -\newcommand*\tud@headlogo@wrn{% - \ClassWarning{\tudcls@name}{% - The secondary logo given with `\string\headlogo' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% +% \end{macrocode} +% \end{macro}^^A \tud@footlogoheight@set +% \end{length}^^A \tud@footlogoheight +% \end{length}^^A \footlogoheight +% \begin{macro}{\tud@footlogo@set} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@footlogo@ddc@set} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@footlogo@option@set} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\if@tud@footlogo@option@set} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Auch im Fuß werden für das \DDC-Logo verschiedene Boxen für die Farbvarianten +% \val{black}, \val{HKS41} und \val{white} sowie eine für die gezielte Auswahl +% über die Optionen \opt{ddc} bzw. \opt{ddcfoot} erstellt. Dafür wird zunächst +% das Makro \cs{tud@footlogo@ddc@set} definiert. +% \begin{macrocode} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% }% - \global\let\tud@headlogo@wrn\relax% } % \end{macrocode} -% \end{macro}^^A \tud@headlogo@wrn -% \end{macro}^^A \tud@@@headlogo -% \end{macro}^^A \tud@@headlogo -% \end{macro}^^A \tud@headlogo -% \end{macro}^^A \headlogo +% anschließend erfolgt das eigentliche Setzen der Boxen. +% \begin{macrocode} +\newcommand*\tud@footlogo@set{% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@footlogo@option@set% +} +% \end{macrocode} +% Hiermit werden die \DDC-Optionen \opt{ddc} bzw. \opt{ddcfoot} abgearbeitet. +% Dies geschieht bei der Ausgabe des dazugehörigen Layers, falls hierfür der +% entsprechende Schalter \cs{if@tud@footlogo@option@set} gesetzt wurde. +% \begin{macrocode} +\newif\if@tud@footlogo@option@set +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot=white + \tud@footlogo@ddc@set{option}{DDC-28}% + \fi% + \global\@tud@footlogo@option@setfalse% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@footlogo@option@set +% \end{macro}^^A \tud@footlogo@option@set +% \end{macro}^^A \tud@footlogo@ddc@set +% \end{macro}^^A \tud@footlogo@set +% \begin{macro}{\tud@footlogo@ddc@use} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Die Ausgabe des \DDC-Logos im Fuß erfolgt mit diesem Makro. Dabei wird dieses +% in einer Box optisch~-- leicht nach oben verschoben~-- vertikal zentriert. +% \begin{macrocode} +\newcommand*\tud@footlogo@ddc@use[1]{% + \tud@vlayerbox{#1}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifcase\@tempb\relax\or% \tud@ddc@foot=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% + high. You should reduce this length.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@footlogo@ddc@use +% \begin{macro}{\tud@ddclogo} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \changes{v2.04}{2015/06/01}{entfernt}^^A +% \begin{macro}{\tud@@ddclogo} +% \changes{v2.02}{2014/06/23}{\cs{tud@foot@logo} umbenannt}^^A +% \changes{v2.03}{2015/01/13}{Größe des Logos kompatibilitätsabhängig}^^A +% \changes{v2.04}{2015/06/01}{entfernt}^^A +% \begin{macro}{\tud@ddc@sethead} +% \changes{v2.02}{2014/06/23}{entfernt}^^A +% \begin{macro}{\tud@ddc@setfoot} +% \changes{v2.02}{2014/06/23}{entfernt}^^A +% Diese Befehle wurden mit der \TUDScript-Version~v2.02 bzw. v2.04~-- bei der +% Umstellung auf die Ausgabe mit Boxen~-- entfernt. Für deren Funktionalität +% sind seitdem die Makros \cs{tud@footlogo@set} und \cs{tud@footlogo@ddc@use} +% zuständig. +% \end{macro}^^A \tud@ddc@setfoot +% \end{macro}^^A \tud@ddc@sethead +% \end{macro}^^A \tud@@ddclogo +% \end{macro}^^A \tud@ddclogo +% \begin{macro}{\tud@logo@foot@cmd} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Für das Setzen von benutzerdefinierten Logos im Fußbereich wird diese Box +% verwendet. +% \begin{macrocode} +\tud@newlayerbox{foot@cmd} +% \end{macrocode} +% \end{macro}^^A \tud@logo@foot@cmd % \begin{macro}{\footlogo} -% \changes{v2.03}{2015/01/27}{neu}%^^A +% \changes{v2.03}{2015/01/27}{neu}^^A +% \begin{macro}{\@footlogo} +% \changes{v2.03}{2015/01/27}{neu}^^A +% \begin{macro}{\@@footlogo} +% \changes{v2.03}{2015/01/27}{neu}^^A % \begin{macro}{\footlogosep} -% \changes{v2.03}{2015/01/27}{neu}%^^A -% \begin{length}{\footlogoheight} -% \changes{v2.03}{2015/01/27}{neu}%^^A -% \begin{macro}{\tud@footlogo} -% \changes{v2.03}{2015/01/27}{neu}%^^A -% \changes{v2.03}{2015/02/02}{optionale Parameter datei-individuell nutzbar}%^^A -% \begin{macro}{\tud@footlogo@parser} -% \changes{v2.03}{2015/02/02}{neu}%^^A -% \begin{macro}{\tud@@footlogo} -% \changes{v2.03}{2015/01/27}{neu}%^^A -% \begin{macro}{\tud@@@footlogo} -% \changes{v2.03}{2015/01/27}{neu}%^^A +% \changes{v2.03}{2015/01/27}{neu}^^A % Mit dem Befehl \cs{footlogo} kann eine kommasparierte Liste für Logos im % Fuß angegeben werden, die mit \cs{footlogosep} voneinander getrennt werden. % \begin{macrocode} -\newlength\footlogoheight \newcommand*\footlogosep{\hfill} +\newcommand*\@footlogo{} +\newcommand*\@@footlogo{} \newcommand*\footlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@footlogo{#2}% - \def\tud@@@footlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@footlogo{#2}% + \def\@@footlogo{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% +} +% \end{macrocode} +% \end{macro}^^A \footlogosep +% \end{macro}^^A \@@footlogo +% \end{macro}^^A \@footlogo +% \end{macro}^^A \footlogo +% \begin{macro}{\tud@footlogo@cmd@set} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@footlogo@cmd@@set} +% \changes{v2.03}{2015/01/27}{neu}^^A +% \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien +% individuell nutzbar}^^A +% Die mit \cs{footlogo} angegeben Logos und die dazugehörigen Einstellungen, +% welche entweder allgemein über das optionale Argument oder aber individuell +% durch \val{:} an den Dateinamen angehängt übergeben wurden, werden hier in +% der Box \cs{tud@logo@foot@cmd} gespeichert. +% \begin{macrocode} +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% +% \end{macrocode} +% Hier erfolgt die eigentliche Abarbeitung der mit \cs{footlogo} angegeben +% Liste der benutzerdefinierten Logos. In \cs{@tempa} wird nach dem ersten +% Durchlauf der Schleife der Inhalkt von \cs{footlogosep} gespeichert und nach +% dem ersten Logo vor jedem weiteren eingefügt. Um versehentlich angegebene +% Leerzeichen zu entfernen, werden diese mit \cs{trim@spaces} entfernt. +% \begin{macrocode} + \let\@tempa\relax% + \@for\@tempb:=\@footlogo\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% + \fi% } -\newcommand*\tud@@footlogo{} -\newcommand*\tud@@@footlogo{} % \end{macrocode} -% Der Befehl \cs{tud@footlogo} wird genutzt, um die Logos für den Fuß innerhalb -% der Ebene \val{tudheadings.foot.logo} auszugeben. +% Der Befehl \cs{tud@footlogo@cmd@set} wird genutzt, um die einzelnen Logos für +% den Fuß nacheinander in der Box \cs{tud@logo@foot@cmd} zu setzen. % \begin{macrocode} -\DeclareListParser{\tud@footlogo@parser}{:}% -\newcommand*\tud@footlogo[1]{% +\newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% % \end{macrocode} % Dabei soll es möglich sein, optionale Parameter an \cs{includegraphics} zu @@ -1538,76 +1981,179 @@ \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% \fi% }% - \tud@footlogo@parser{#1}% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% +% \end{macrocode} +% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. +% \begin{macrocode} + \preto\@@footlogo{% + keepaspectratio,totalheight=\tud@footlogoheight,% + }% % \end{macrocode} % Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als % letztes ausgeführt, um vorige Einstellungen überschreiben zu können. % \begin{macrocode} - \protected@eappto\tud@@@footlogo{\@tempb}% + \appto\@@footlogo{\@tempb}% + \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% % \end{macrocode} -% In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. +% Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch +% vertikal zentriert. % \begin{macrocode} - \protected@epreto\tud@@@footlogo{% - keepaspectratio,totalheight=\the\footlogoheight,% - }% - \protected@edef\@tempc{\noexpand\includegraphics[\tud@@@footlogo]{\@tempa}}% - \vbox to \dimexpr\layerheight-\dp\strutbox\relax{% - \vfil\hbox{\@tempc}\vfil\vfil% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% }% \endgroup% } % \end{macrocode} -% \end{macro}^^A \tud@@@footlogo -% \end{macro}^^A \tud@@footlogo -% \end{macro}^^A \tud@footlogo@parser -% \end{macro}^^A \tud@footlogo -% \end{length}^^A \footlogoheight -% \end{macro}^^A \footlogosep -% \end{macro}^^A \footlogo -% \begin{macro}{\tud@ddclogo} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% \begin{macro}{\tud@@ddclogo} -% \changes{v2.02}{2014/06/23}{neu, \cs{tud@foot@logo} umbenannt}%^^A -% \changes{v2.03}{2015/01/13}{Größe des Logos kompatibilitätsabhängig}%^^A -% Diese Befehle dienen zum Einbinden des \DDC-Logos im Fuß der Seiten im Stil -% \pgs{tudheadings}. +% \end{macro}^^A \if@tud@footlogo@cmd@set +% \end{macro}^^A \tud@footlogo@cmd@set +% \begin{macro}{\tud@footlogo@cmd@@use} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Der Befehl \cs{tud@footlogo@cmd@use} wird genutzt, um die einzelnen Logos für +% den Fuß innerhalb der Ebene \val{tudheadings.foot.content} auszugeben. +% \begin{macrocode} +\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% +% \end{macrocode} +% \end{macro}^^A \tud@footlogo@cmd@use +% \begin{KOMAfont}{tudheadings} +% \changes{v2.04}{2015/04/21}{neu}^^A +% \begin{macro}{\footcontent} +% \changes{v2.04}{2015/04/21}{neu}^^A +% \begin{macro}{\@footcontent} +% \changes{v2.04}{2015/04/21}{neu}^^A +% \begin{macro}{\@@footcontent} +% \changes{v2.04}{2015/04/21}{neu}^^A +% \begin{macro}{\footcontent@font} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\footcontent@left} +% \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\footcontent@right} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Mit dem Befehl \cs{footcontent} kann der Inhalt für den Fußbereich der +% Seiten im Stil \pgs{tudheadings} festgelegt werden. Dieser wird mit passenden +% Schrifteinstellungen entweder einspaltig oder zweispaltig gesetzt. Die +% Sternversion des Befehls nimmt keinerlei Einstellungen für die Schrift vor. +% \begin{macrocode} +\newkomafont{tudheadings}{% + \sffamily% + \tud@color{\tud@foot@fontcolor}% +} +% \end{macrocode} +% Die mit \cs{footcontent} angegebenen Inhalte werden in diesen drei Makros +% gesichert, weshalb diese vorher alloziert werden. Anschließend erfolgt die +% Definition des Befehls. +% \begin{macrocode} +\newcommand*\tud@footcontent@font{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{} +\newcommand*\footcontent{% + \@ifstar{% + \@tempswafalse% + \@footcontent% + }{% + \@tempswatrue% + \@footcontent% + }% +} +% \end{macrocode} +% Normalerweise wird der Inhalt vollständig über die verfügbare Seitenfußbreite +% gesetzt. Wird das optionale Argument \emph{nach} dem obligatorischen genutzt, +% so erfolgt die Ausgabe zweispaltig. % \begin{macrocode} -\newcommand*\tud@@ddclogo{} -\newcommand*\tud@ddclogo{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% - \def\tud@@ddclogo{DDC-22}% - \ifstr{\tud@foot@logocolor}{HKS41}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{cddarkblue}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{white}{\def\tud@@ddclogo{DDC-28}}{}% - \or% - \def\tud@@ddclogo{DDC-01}% - \or% - \def\tud@@ddclogo{DDC-07}% - \or% - \def\tud@@ddclogo{DDC-19}% - \or% - \def\tud@@ddclogo{DDC-22}% - \or% - \def\tud@@ddclogo{DDC-25}% - \or% - \def\tud@@ddclogo{DDC-28}% +\newcommand*\@footcontent[2][]{% + \kernel@ifnextchar[%] + {\@@footcontent{#1}{#2}}% + {\@@footcontent{#1}{#2}[\@nnil]}% +} +\newcommand*\@@footcontent{} +\def\@@footcontent#1#2[#3]{% + \if@tempswa% + \def\tud@footcontent@font{% + \usekomafont{tudheadings}% + \tud@divide\@tempa{\tud@head@font@size}{\f@size}% + \linespread{\@tempa}% + \selectfont% + \tud@head@font@light% + #1% + }% + \else% + \def\tud@footcontent@font{#1}% \fi% - \ifx\tud@@ddclogo\@empty\else% - \let\tud@@@footlogo\relax% - \hfill\tud@footlogo{\tud@@ddclogo}% + \def\tud@footcontent@left{#2}% + \def\tud@footcontent@right{#3}% +} +% \end{macrocode} +% \end{macro}^^A \footcontent@right +% \end{macro}^^A \footcontent@left +% \end{macro}^^A \footcontent@font +% \end{macro}^^A \@@footcontent +% \end{macro}^^A \@footcontent +% \end{macro}^^A \footcontent +% \end{KOMAfont}^^A tudheadings +% \begin{macro}{\tud@footcontent@use} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Mit \cs{tud@footcontent@use} erfolgt die Ausgabe der mit \cs{footcontent} +% definierten Inhalte. Dabei wird darauf geachtet, ob ein \DDC-Logo im Fuß +% verwendet wird. +% \begin{macrocode} +\newcommand*\tud@footcontent@use[2]{% + \tud@ddc@check% + \ifcase\@tempb% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% \fi% +% \end{macrocode} +% Äquivalent zu den Logos wird auch der frei definierbare Inhalt des Fußes mit +% einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im Bedarfsfall der +% Freiraum für das \DDC-Logo bereitgestellt. +% \begin{macrocode} + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \tud@footcontent@font% +% \end{macrocode} +% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird +% der Inhalt über die komplette Breite des Textbereiches ausgegeben. +% \begin{macrocode} + \expandafter\ifx\tud@footcontent@right\@nnil\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% +% \end{macrocode} +% Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen +% der Abstand \cs{columnsep} eingefügt wird. +% \begin{macrocode} + \else% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@right\strut% + }% + \fi% + \hss% + }% + \vss\vss% + }{% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content or\MessageBreak% + lower the fontsize via the optional argument.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% } % \end{macrocode} -% \end{macro}^^A \tud@@ddclogo -% \end{macro}^^A \tud@ddclogo -% \begin{macro}{\tud@ddc@sethead} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A -% \begin{macro}{\tud@ddc@setfoot} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A -% Diese Befehle wurden mit der \TUDScript-Version~v2.02 entfernt. -% \end{macro}^^A \tud@ddc@setfoot -% \end{macro}^^A \tud@ddc@sethead +% \end{macro}^^A \tud@footcontent@use % % \iffalse %</class&body> @@ -1615,17 +2161,20 @@ % \fi % % \begin{option}{cdhead} -% \changes{v2.03}{2015/01/29}{neu}%^^A +% \changes{v2.03}{2015/01/29}{neu}^^A +% \changes{v2.04}{2015/05/18}{Wert \val{barcolor} neu}^^A % \begin{macro}{\tud@head@font} -% \changes{v2.03}{2015/02/04}{neu}%^^A +% \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\if@tud@head@font@locked} -% \changes{v2.03}{2015/02/04}{neu}%^^A +% \changes{v2.03}{2015/02/04}{neu}^^A % \begin{macro}{\tud@head@bar} -% \changes{v2.03}{2015/02/04}{neu}%^^A +% \changes{v2.03}{2015/02/04}{neu}^^A +% \begin{macro}{\tud@head@bar@lock} +% \changes{v2.04}{2015/04/01}{neu}^^A % \begin{macro}{\if@tud@head@widebar} -% \changes{v2.03}{2015/02/14}{neu}%^^A +% \changes{v2.03}{2015/02/14}{neu}^^A % \begin{macro}{\if@tud@head@widebar@locked} -% \changes{v2.03}{2015/02/14}{neu}%^^A +% \changes{v2.03}{2015/02/14}{neu}^^A % Mit dieser Option wird die zentrale Benutzerschnittstelle für Einstellungen % des typischen Querbalkens für den TUD-Kopf geschaffen. Durch sie können % sowohl die verwendete Schrift als auch die Stärke für den Balkentext @@ -1633,7 +2182,7 @@ % Querbalkens bzw. die Farbe einstellbar. % \begin{macrocode} \cs@lock{tud@head@font}{0} -\newcommand*\tud@head@bar{0} +\cs@lock{tud@head@bar}{0} \bool@lock{@tud@head@widebar} \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% @@ -1646,29 +2195,32 @@ {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% - {bicolor}{5},{bicolour}{5},{twocolor}{5},{twocolour}{5},% - {bichrome}{5},{bichromatic}{5},{dichrome}{5},{dichromatic}{5},% - {color}{5},{colour}{5},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5},% - {textwidth}{6},{slim}{6},{slimhead}{6},{nowide}{6},{nowidehead}{6},% - {paperwidth}{7},{wide}{7},{widehead}{7}% + {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},% + {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},% + {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},% + {color}{6},{colour}{6},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% + {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@head@font}{0}% - \or% + \or% true \cs@set@lock{tud@head@font}{1}% - \or% + \or% heavy \cs@set@lock{tud@head@font}{2}% - \or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \or% nocolor + \cs@set@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% color + \cs@set@lock{tud@head@bar}{3}% + \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% - \or% + \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% \fi% \fi% @@ -1676,28 +2228,37 @@ % \end{macrocode} % \end{macro}^^A \if@tud@head@widebar@locked % \end{macro}^^A \if@tud@head@widebar +% \end{macro}^^A \tud@head@bar@lock % \end{macro}^^A \tud@head@bar % \end{macro}^^A \if@tud@head@font@locked % \end{macro}^^A \tud@head@font % \end{option}^^A cdhead % \begin{option}{cdfoot} % \changes{v2.03}{2015/02/02}{Option \opt{extrabottommargin} bei Längenangabe -% indirekt nutzbar}%^^A -% \begin{macro}{\if@tud@footcolor} +% indirekt nutzbar}^^A +% \changes{v2.04}{2015/06/18}{bedingtes Setzen der Option \opt{automark}}^^A +% \begin{macro}{\if@tud@foot@colored} +% \changes{v2.03}{2015/02/15}{neu}^^A % \begin{macro}{\tud@ps@store} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@@ps@store} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@ps@restore} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@@ps@restore} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Dieser Seitenstil mit dem Kolumnentitel im Fuß wurde bereits für die alte % \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten % werden. Zusätzlich kann mit dieser Option ggf. ein farbiger Hintergrund in % der Fußzeile aktiviert werden. +% +% Einige Einstellungen sind abhängig vom Paket \pkg{scrlayer-scrpage}, welches +% unter Umständen nicht geladen wird. Mit dem Befehl \cs{TUD@AfterPackage} kann +% Quelltext nur dann ausgeführt werden, wenn ein Paket auch tatsächlich geladen +% wurde. Hierfür ist die Initialisierung mit \cs{TUD@AfterPackage@Set} nötig. % \begin{macrocode} -\newif\if@tud@footcolor +\TUD@AfterPackage@Set{scrlayer-scrpage} +\newif\if@tud@foot@colored \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -1708,7 +2269,7 @@ {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false % \end{macrocode} % Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@restore} % wiederhergestellt. Dies wird allerdings frühestens nach dem Laden von @@ -1720,12 +2281,12 @@ \tud@font@koma@unset{pageheadfoot}% }% % \end{macrocode} -% Die ursprünglichen Kopf- und Fußzeilen werden mit \cs{tud@ps@store} +% Die ursprünglichen Kopf- und Fußzeilen werden mit dem Makro \cs{tud@ps@store} % gesichert, um gegebenenfalls zurückschalten zu können. Anschließend werden % diese mit dem neuen Stil überschrieben. Dies wird allerdings frühestens nach -% dem Laden von \pkg{scrlayer-scrpage} durchgeführt. +% dem Laden von \pkg{scrlayer-scrpage} durchgeführt. % \begin{macrocode} - \or% + \or% true \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% @@ -1736,14 +2297,15 @@ {\footnotesize\headmark}% \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% }% + \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% % \end{macrocode} % Hier kann die Hintergrundfarbe des Fußes aktiviert bzw. deaktiviert werden. % \begin{macrocode} - \or% - \@tud@footcolorfalse% - \or% - \@tud@footcolortrue% + \or% nocolor + \@tud@foot@coloredfalse% + \or% color + \@tud@foot@coloredtrue% \fi% % \end{macrocode} % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. @@ -1803,14 +2365,14 @@ % \end{macro}^^A \tud@ps@restore % \end{macro}^^A \tud@@ps@store % \end{macro}^^A \tud@ps@store -% \end{macro}^^A \if@tud@footcolor +% \end{macro}^^A \if@tud@foot@colored % \end{option}^^A cdfoot % \begin{macro}{\tud@ps@headings} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % \begin{macro}{\tud@ps@myheadings} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % \begin{macro}{\tud@ps@plain} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % Diese Befehle wurden bei der Umstellung auf das Paket~\pkg{scrlayer-scrpage} % mit der \TUDScript-Version~v2.02 allesamt entfernt. Die Funktionalität wird % seitdem durch die \pgs{tudheadings}-Seitenstile bereitgestellt. @@ -1838,8 +2400,9 @@ \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% \TUD@numkey@bool,% {typearea}{0},% - {tud}{1},{asymmetric}{1},{cd}{1},% + {cd}{1},{tud}{1},{asymmetric}{1},% {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% {twoside}{3},{balanced}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1856,88 +2419,21 @@ %<*class&body> % \fi % -% \begin{length}{\tud@ta@textheight} -% \begin{length}{\tud@ta@topmargin} -% \begin{length}{\tud@ta@headheight} -% \begin{length}{\tud@ta@headsep} -% \begin{length}{\tud@ta@footheight} -% \changes{v2.03}{2015/01/09}{neu, für entsprechende \pkg{typearea}-Option}%^^A -% \begin{length}{\tud@ta@footskip} -% Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten -% Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom -% Satzspiegel abhängigen Seitenlayouts zu erstelen. -% \begin{macrocode} -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -% \end{macrocode} -% \end{length}^^A \tud@ta@footskip -% \end{length}^^A \tud@ta@footheight -% \end{length}^^A \tud@ta@headsep -% \end{length}^^A \tud@ta@headheight -% \end{length}^^A \tud@ta@topmargin -% \end{length}^^A \tud@ta@textheight -% \begin{length}{\tud@ta@headdiff} -% \begin{length}{\tud@ta@footdiff} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A -% Eine Länge für den Ausgleich zwischen normalem und benötigtem Satzspiegel für -% das spezielle Layout des \CDs. Die Differenz zwischen den unterschiedlichen -% Kopfhöhen der Satzspiegelvarianten wird bei der Ausführung von -% \cs{tud@geometry@process} berechnet und in \cs{tud@ta@headdiff} gespeichert. -% Dabei muss unterschieden werden, ober der Satzspiegel genutzt wird, der durch -% das \CD vorgegeben ist oder der durch \pkg{typearea} berechnete. Die Länge -% \cs{tud@ta@footdiff} wurde mit der \TUDScript-Version~v2.02 entfernt. -% \begin{macrocode} -\newlength\tud@ta@headdiff -% \end{macrocode} -% \end{length}^^A \tud@ta@footdiff -% \end{length}^^A \tud@ta@headdiff -% \begin{macro}{\tud@geometry@restore} -% \changes{v2.02}{2014/06/27}{neu}%^^A -% Der Befehl \cs{AfterCalculatingTypearea} wird durch das Paket \pkg{typearea} -% bereitgestellt. Die durch \pkg{typearea} berechneten Längenwerte für den -% Satzspiegel werden zur Weiterverarbeitung gesichert. Für die Erstellung des -% Satzspiegels wird das Paket \pkg{geometry} verwendet. Bei der entsprechenden -% Option (\opt{geometry=no}) wird jedoch der von \pkg{typearea} berechnete -% Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich, -% unabhängig vom genutzten Paket\footnote{\pkg{typearea} oder \pkg{geometry}} -% zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern. -% Damit auch Änderungen an der Papiergröße möglich sind, muss ein einzelnes -% Makro (\cs{Gm@restore@org}) aus \pkg{geometry} temporär deaktiviert werden. +% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und +% der Seitenränder, wie es vom \CD der \TnUD verlangt wird. Sollte das Laden +% des Paketes verhindert werden, sind einige wenige Befehle vorzuhalten. % \begin{macrocode} -\newcommand*\tud@geometry@restore{} -\AfterCalculatingTypearea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% - }{% - \setlength\tud@ta@footheight{\ta@fh}% +\AtEndPreamble{% + \@ifpackageloaded{geometry}{}{% + \def\tud@geometry@process{\tud@geometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% }% - \setlength\tud@ta@footskip{\footskip}% - \let\tud@geometry@restore\Gm@restore@org% - \if@atdocument% - \let\Gm@restore@org\relax% - \tud@geometry@process% -% \end{macrocode} -% Damit Änderungen am Satzspiegel im Dokument sicher übernommen werden, wird -% das Setzen des Satzspiegels forciert. Dafür wird \cs{tud@currentgeometry} -% zurückgesetzt und anschließend der aktuelle Seitenstil erneut geladen, um das -% erneute und korrekte Ausführen von \cs{tud@beforeselectanypagestyle} zu -% erzwingen. -% \begin{macrocode} - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - \fi% - \let\Gm@restore@org\tud@geometry@restore% } +\tud@ifsacrop{% + \PreventPackageFromLoading{geometry}% +}{% + \RequirePackage{geometry}[2010/09/12]% % \end{macrocode} -% \end{macro}^^A \tud@geometry@restore % \begin{macro}{\tud@geometry@hmargin} % \begin{macro}{\tud@geometry@vmargin} % \begin{macro}{\tud@geometry@tudmargin} @@ -1950,40 +2446,37 @@ % Gesetzt werden diese in Abhängigkeit von der Option \opt{cdgeometry} im % Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}. % \begin{macrocode} -\newcommand*\tud@geometry@hmargin{} -\newcommand*\tud@geometry@vmargin{} -\newcommand*\tud@geometry@tudmargin{} -\iftudscrverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{} + \newcommand*\tud@geometry@hmargin{}% + \newcommand*\tud@geometry@vmargin{}% + \newcommand*\tud@geometry@tudmargin{}% + \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% % \end{macrocode} % \end{macro}^^A \tud@geometry@ddcmargin % \end{macro}^^A \tud@geometry@tudmargin % \end{macro}^^A \tud@geometry@vmargin % \end{macro}^^A \tud@geometry@hmargin -% \changes{v2.02}{2014/06/29}{\pkg{geometry} Laden verzögert}%^^A -% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und -% der Seitenränder, wie es vom \CD der TU~Dresden verlangt wird. Damit dieses -% alle Satzspiegeleinstellungen korrekt vornimmt und auch alle Klassenoptionen -% korrekt verarbeitet, wird das Laden mit \cs{AtEndPreamble} bis ans Ende der -% Präambel verzögert und vorher der Satzspiegel neu berechnet. Anschließend -% erstellt \cs{tud@geometry@process} alle benötigten Satzspiegel. Durch das -% Setzen des Seitenstils wird der richtige Satzspiegel ausgewählt. Dies -% geschieht \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option -% \opt{crop} geladen wurde, um die Seitenränder nicht zu ändern. -% \begin{macrocode} -\AtEndPreamble{% - \ifstandalonecrop{}{% - \recalctypearea% - \RequirePackage{geometry}[2010/09/12]% - \tud@geometry@process% - \expandafter\pagestyle\expandafter{\currentpagestyle}% +% \begin{macro}{\tud@newgeometry} +% \changes{v2.04}{2015/03/12}{neu}^^A +% mit diesem Befehl wird abhängig davon, ob er in der Präambel oder im Dokument +% durch \cs{tud@geometry@process} ausgeführt wird, entweder \cs{geometry} oder +% \cs{newgeometry} aufgerufen. +% \begin{macrocode} + \newcommand*\tud@newgeometry[1]{% + \if@atdocument% + \edef\@tempa{#1}% + \expandafter\newgeometry\expandafter{#1}% + \else% + \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% + \expandafter\geometry\expandafter{\@tempa}% + \fi% }% -} % \end{macrocode} +% \end{macro}^^A \tud@newgeometry % \begin{macro}{\tud@geometry@process} -% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A -% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}%^^A -% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}%^^A -% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}%^^A +% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A +% \changes{v2.03}{2015/01/09}{Satzspiegel des \CDs angepasst}^^A +% \changes{v2.03}{2015/01/09}{intiale Festlegung der Länge \cs{marginpar}}^^A +% \changes{v2.03}{2015/01/13}{Satzspiegel kompatibilitätsabhängig}^^A % \begin{macro}{\tud@geometry@@process} % Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten % Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der @@ -1997,238 +2490,284 @@ % innerhalb des Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer % sowie ggf. untere Seitenrand geändert werden. % \begin{macrocode} -\newcommand*\tud@geometry@process{% + \newcommand*\tud@geometry@process{% % \end{macrocode} % Die Maßvorgaben werden entsprechend der Seitengröße gesetzt. % \begin{macrocode} - \tud@geometry@set% + \tud@geometry@set% % \end{macrocode} % Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden % die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht. % Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros % für die Erstellung der \pkg{geometry}-Satzspiegel übergeben. % \begin{macrocode} - \ifcase\tud@geometry\relax% - \def\tud@geometry@hmargin{% - left=\dimexpr\oddsidemargin+1in\relax,% - width=\textwidth,% - marginparwidth=\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% - \if@twoside\if@reversemargin% - marginparwidth=\dimexpr\oddsidemargin+1in-\tud@ta@headsep\relax,% - \fi\fi% - marginparsep=.5\tud@ta@headsep,% - }% - \def\tud@geometry@vmargin{% - top=\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - textheight=\tud@ta@textheight,% - footskip=\tud@ta@footskip,% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,% - ignorehead,% - }% + \ifcase\tud@geometry\relax% false % \end{macrocode} -% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile +% Zu Beginn wird die Höhendifferenz zwischen TUD-Kopf und Standardkopfzeile % für den \pkg{typearea}-Satzspiegel berechnet. % \begin{macrocode} - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% + }% % \end{macrocode} % Sollte der \pkg{typearea}-Satzspiegel noch unterhalb des TUD-Kopfes liegen, % wird der Abstand zum Kopf vergrößert. % \begin{macrocode} - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% - \fi% + \ifdim\tud@ta@headdiff<\z@\relax% + \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% + \fi% % \end{macrocode} -% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen -% separaten Satzspiegel. +% Anschließend erfolgen die horizontalen und vertikalen Randeinstellungen. % \begin{macrocode} - \iftudscrverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% + \if@reversemargin% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr\oddsidemargin+1in% + -\tud@ta@headsep\relax,% + \fi% + \else% + reversemarginpar=false,% + \fi% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% }% - \def\tud@geometry@ddcmargin{% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,% + \edef\tud@geometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\tud@ta@topmargin+1in\relax,% + \else% + includehead=false,% + top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% + +1in\relax,% + \fi% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + textheight=\the\tud@ta@textheight,% + \tud@geometry@fincl,% + footskip=\the\tud@ta@footskip% + }% +% \end{macrocode} +% Für den Satzspiegel mit TUD-Kopf muss unterschieden werden, ob der Abstand +% zwischen Kopf und Textbereich vergrößert wurde. Ist dies der Fall, wird die +% Höhe des Textbereiches über \cs{@tempdima} entsprechend verkleinert. +% \begin{macrocode} + \ifdim\tud@ta@headdiff<\z@\relax% + \setlength\@tempdima{\z@}% + \else% + \setlength\@tempdima{\tud@ta@headdiff}% + \fi% + \edef\tud@geometry@tudmargin{% + 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\tud@ta@textheight-\@tempdima\relax,% + ignorehead% }% - }{}% +% \end{macrocode} +% Für den Kompatibilitätsmodus der Version~v2.02 gibt es für den \DDC-Fuß einen +% separaten Satzspiegel. +% \begin{macrocode} + \tud@ifverlower{2.03}{% + \setlength\tud@dim@ddcdiff{% + \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% + +\tud@ta@footheight-1.25\baselineskip\relax% + }% + \edef\tud@geometry@ddcmargin{% + textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% + }% + }{}% % \end{macrocode} % Sollte die Option \opt{extrabottommargin} verwendet worden sein, wird eine % Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos % ist. % \begin{macrocode} - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\tudcls@name}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% - }% - \fi% + \ifdim\tud@dim@extrabottommargin=\z@\relax\else% + \ClassWarning{\TUDClassName}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea is used (`cdgeometry=no')% + }% + \fi% % \end{macrocode} % Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische % bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz. % Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die % unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil. % \begin{macrocode} - \else% - \ifcase\tud@geometry\or% - \def\tud@geometry@hmargin{% - left=\tud@dim@widemargin,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@reversemargin% - marginparwidth=\dimexpr\tud@dim@widemargin-\tud@ta@headsep\relax,% - \else% - marginparwidth=\dimexpr\tud@dim@slimmargin-\tud@ta@headsep\relax,% - \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - \if@twoside asymmetric,\fi% - }% + \else% true/symmetric/twoside + \ifcase\tud@geometry\or% true + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\tud@dim@widemargin,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \if@twoside asymmetric,\fi% + \tud@geometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + marginparwidth=\the\dimexpr\tud@dim@widemargin% + -\tud@ta@headsep\relax,% + \else% + reversemarginpar=false,% + marginparwidth=\the\dimexpr\tud@dim@slimmargin% + -\tud@ta@headsep\relax,% + \fi% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% % \end{macrocode} % Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl % im einseitigen als auch im zweiseitgigen Satz symmetrisch. % \begin{macrocode} - \or% - \def\tud@geometry@hmargin{% - left=.5\tud@dim@both,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - }% + \or% symmetric + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr.5\tud@dim@both\relax,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% % \end{macrocode} % Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist % im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite % schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende % TUD-Logo geachtet werden muss. % \begin{macrocode} - \or% - \def\tud@geometry@hmargin{% - \if@twoside% - left=.4\tud@dim@both,% - twoside,% - \else% - left=.5\tud@dim@both,% - \fi% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside% + \or% twoside + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + \if@twoside% + left=\the\dimexpr.4\tud@dim@both\relax,% + twoside,% + \else% + left=\the\dimexpr.5\tud@dim@both\relax,% + \fi% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% \if@reversemargin% - marginparwidth=\dimexpr.4\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr.4\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% \else% - marginparwidth=\dimexpr.6\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=false,% + \if@twoside% + marginparwidth=\the\dimexpr.6\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% \fi% - \else% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - }% - \fi% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \fi% % \end{macrocode} % Für alle drei Varianten der vertikale Gleichanteil. Der Satzspiegel der % Version~v2.02 wird aus Gründen der Kompatibilität weiterhin vorgehalten. % \begin{macrocode} - \iftudscrverlower{2.03}{% - \def\tud@geometry@vmargin{% - top=.5\tud@dim@both,% - headheight=\tud@ta@headheight,% - headsep=\tud@dim@headsep,% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + \tud@ifverlower{2.03}{% + \edef\tud@geometry@vmargin{% + top=\the\dimexpr.5\tud@dim@both\relax,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% + }{% + \edef\tud@geometry@vmargin{% + top=\the\tud@dim@slimmargin,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + bottom=\the\dimexpr\tud@dim@widemargin% + +\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% }% - }{% - \def\tud@geometry@vmargin{% - top=\tud@dim@slimmargin,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - bottom=\dimexpr\tud@dim@widemargin+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + \edef\tud@geometry@tudmargin{% + 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,% + ignorehead% }% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - ignorehead,% - }% % \end{macrocode} % Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile % für den Satzspiegel des \CDs berechnet. % \begin{macrocode} - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% - }% -% \end{macrocode} -% Für die Kompatibilitätsvariante wieder mal die Extrawurst\dots -% \begin{macrocode} - \iftudscrverlower{2.03}{% \setlength\tud@ta@headdiff{% \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% + -\tud@dim@slimmargin\relax% }% % \end{macrocode} +% Für die Kompatibilitätsvariante wieder mal die Extrawurst. +% \begin{macrocode} + \tud@ifverlower{2.03}{% + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -.5\tud@dim@both\relax% + }% +% \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@dim@ddcdiff{.6\tud@dim@topmargin}% - \def\tud@geometry@ddcmargin{% - \if@fincl% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \else% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% - \fi% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% - }% - }{}% - \fi% + \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% + \edef\tud@geometry@ddcmargin{% + \if@fincl% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff\relax,% + \fi% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + }% + }{}% + \fi% % \end{macrocode} % Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile % für den Satzspiegel des \CDs berechnet. Außerdem wird die standardmäßige % vertikale Verschiebung der Überschriften festgelegt. % \begin{macrocode} - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% + \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% + \global\tud@ta@headdiff=\tud@ta@headdiff% + \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% + \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% % \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} - \iftudscrverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - }{}% + \tud@ifverlower{2.03}{% + \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + }{}% % \end{macrocode} % Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten % Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu % erstellen. % \begin{macrocode} - \tud@geometry@@process% -} + \tud@geometry@@process% + }% % \end{macrocode} % Der Befehl \cs{tud@geometry@@process} setzt mit den zuvor definierten % Hilfsmakros die \pkg{geometry}"=Optionen für sowohl die seitlichen als auch @@ -2238,81 +2777,367 @@ % \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten % Satzspiegel. % \begin{macrocode} -\newcommand*\tud@geometry@@process{% + \newcommand*\tud@geometry@@process{% % \end{macrocode} % Für den Satzspiegel der Version~v2.02 wird als erstes der Satzspiegel für den % TUD-Kopf zusammen mit dem \DDC-Fuß erstellt. Das Einbeziehen der Fußzeile in % den Satzspiegel erfolgt nicht ggf. über die Option \opt{includefoot} sondern % manuell bei der Definition von \cs{tud@geometry@ddcmargin}. % \begin{macrocode} - \iftudscrverlower{2.03}{% + \edef\Gm@restore@org{\Gm@restore}% + \tud@ifverlower{2.03}{% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin,% + \tud@geometry@tudmargin,% + \tud@geometry@ddcmargin,% + ignorehead,ignorefoot% + }% + \tud@newgeometry{\@tempa}% + \savegeometry{tudareaddc}% + }{}% +% \end{macrocode} +% Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile. +% \begin{macrocode} \edef\@tempa{% \tud@geometry@hmargin,% \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% - ignorehead,ignorefoot,% + \tud@geometry@tudmargin% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudareaddc}% - }{}% -% \end{macrocode} -% Danach folgt der Seitenstil, mit dem TUD-Kopf und der Standardfußzeile. -% \begin{macrocode} - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudarea}% + \tud@newgeometry{\@tempa}% + \savegeometry{tudarea}% % \end{macrocode} % Als letztes wird der Standardsatzspiegel erstellt. % \begin{macrocode} - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin% + }% + \tud@newgeometry{\@tempa}% + \savegeometry{typearea}% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{typearea}% -} % \end{macrocode} % \end{macro}^^A \tud@geometry@@process % \end{macro}^^A \tud@geometry@process % \begin{macro}{\tud@geometry@hincl} -% \changes{v2.02}{2014/06/23}{diverse Anpassungen an \pkg{scrlayer-scrpage}}%^^A +% \changes{v2.02}{2014/06/23}{geändert für das Paket \pkg{scrlayer-scrpage}}^^A % \begin{macro}{\tud@geometry@fincl} -% Diese beiden Hilfsmakro werten die Optionen für das Einbeziehen von Kopf- und -% Fußzeile aus. +% \begin{macro}{\tud@geometry@mpincl} +% \changes{v2.04}{2015/03/09}{neu}^^A +% Diese Hilfsmakros werten die Optionen für das Einbeziehen von Kopf- und +% Fußzeile sowie der Randnotizen aus. +% \begin{macrocode} + \newcommand*\tud@geometry@hincl{% + \if@hincl% + includehead=true% + \else% + includehead=false% + \fi% + }% + \newcommand*\tud@geometry@fincl{% + \if@fincl% + includefoot=true% + \else% + includefoot=false% + \fi% + }% + \newcommand*\tud@geometry@mpincl{% + \if@mincl% + includemp=true% + \else% + includemp=false% + \fi% + }% +% \end{macrocode} +% \end{macro}^^A \tud@geometry@mpincl +% \end{macro}^^A \tud@geometry@fincl +% \end{macro}^^A \tud@geometry@hincl +% Damit sind alle notwendigen Satzspiegel für die unterschiedlichen Seitenstile +% definiert. % \begin{macrocode} -\newcommand*\tud@geometry@hincl{% - \if@hincl% - includehead,% - \else% - ignorehead,% - \fi% } -\newcommand*\tud@geometry@fincl{% - \if@fincl% - includefoot,% - \else% - ignorefoot,% - \fi% +% \end{macrocode} +% \begin{macro}{\tud@BeforeSelectAnyPageStyle} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \changes{v2.04}{2015/04/21}{Auswahl der Schriften für Fußbereich ergänzt}^^A +% \begin{macro}{\tud@currentgeometry} +% \changes{v2.02}{2014/06/23}{neu}^^A +% Mit \cs{tud@BeforeSelectAnyPageStyle} wird beim Umschalten des Seitenstils +% gegebenfalls der Satzspiegel geändert. Dabei wird der aktivierte Satzspiegel +% in dem Makro \cs{tud@currentgeometry} gesichert, um darauf zu einem späteren +% Zeitpunkt prüfen zu können. +% +% Für den Fall, dass das Dokument nicht ausschließlich mit dem Kopf im \CD +% auf jeder Seite gesetzt wird, muss der komplette vertikale Satzspiegel +% angepasst werden, sonst wäre der obere Rand optisch viel zu groß. Hierfür +% wird das Paket \pkg{geometry} genutzt. Durch \cs{tud@geometry@process} +% werden 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@BeforeSelectAnyPageStyle[1]{% +% \end{macrocode} +% Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles} +% derart definiert, dass zwischen \pgs{tudheadings} und \pgs{plain.tudheadings} +% auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain} +% umgeschaltet werden kann. Dies wird hiermit beachtet. +% \begin{macrocode} + \ifstr{#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 +% \begin{macrocode} + \tud@iftudps{#1}{% +% \end{macrocode} +% \dots wobei in der Version~v2.02 zwei unterschiedliche existierten, und +% abhängig von der Verwendung des \DDC-Logos im Fuß waren. +% \begin{macrocode} + \tud@ifverlower{2.03}{% +% \end{macrocode} +% In diesem Fall werden die Seitenfußeinstellungen mit \cs{tud@ddc@check} in +% \cs{@tempb} geschrieben und abhängig davon der richtige Satzspiegel geladen. +% Dabei wird zuvor mit dem Wert aus \cs{tud@currentgeometry} geprüft, ob dies +% überhaupt notwendig ist. +% \begin{macrocode} + \tud@ddc@check% +% \end{macrocode} +% Das \DDC-Logo im Fuß ist nicht aktiviert. +% \begin{macrocode} + \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% +% \end{macrocode} +% Das \DDC-Logo im Fuß ist aktiviert. +% \begin{macrocode} + \else% \tud@ddc@foot!=false + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% +% \end{macrocode} +% Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten. +% \begin{macrocode} + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + }% +% \end{macrocode} +% Die Länge \cs{tud@dim@headdiff} gibt an, wie groß die Differenz zwischen +% Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil +% ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@} +% gesetzt. +% \begin{macrocode} + \setlength\tud@dim@headdiff{\z@}% +% \end{macrocode} +% Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende +% Schrift verwendet. +% \begin{macrocode} + \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% +% \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} +% zurückgesetzt. +% \begin{macrocode} + }{% + \ifstr{\tud@currentgeometry}{typearea}{}{% + \loadgeometry{typearea}% + \gdef\tud@currentgeometry{typearea}% + }% +% \end{macrocode} +% Die Länge \cs{tud@dim@headdiff} wird auf den berechneten Wert gesetzt. Nur +% für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und dieser +% nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas angepasst +% werden. +% \begin{macrocode} + \setlength\tud@dim@headdiff{\tud@ta@headdiff}% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \if@hincl% + \addtolength\tud@dim@headdiff{% + \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + }% + \fi% + \fi% +% \end{macrocode} +% Die Schriften für Seitenzahl und Kolumnentitel werden zurückgesetzt. +% \begin{macrocode} + \tud@font@koma@unset{pagefoot}% + \tud@font@koma@unset{pagenumber}% + }% +% \end{macrocode} +% Die Länge \cs{tud@dim@headdiff} wird vorsichtshalber global gesetzt. +% \begin{macrocode} + \global\tud@dim@headdiff=\tud@dim@headdiff% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@currentgeometry +% \end{macro}^^A \tud@BeforeSelectAnyPageStyle +% \begin{macro}{\cleardoubleoddpageusingstyle} +% \begin{macro}{\cleardoubleevenpageusingstyle} +% \begin{macro}{\cleardoublepageusingstyle} +% Damit die Satzspiegelumstellungen nicht durchgeführt werden, wenn durch die +% folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal +% angepasst werden. +% \begin{macrocode} +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +% \end{macrocode} +% \end{macro}^^A \cleardoublepageusingstyle +% \end{macro}^^A \cleardoubleevenpageusingstyle +% \end{macro}^^A \cleardoubleoddpageusingstyle +% \begin{macro}{\tud@ddc@enlargepage} +% \changes{v2.02}{2014/06/23}{neu}^^A +% Der Befehl wird nur für den Kompatibilitätsmodus zur Version~v2.02 benötigt +% und für die Titelkopf- und Kapitelseiten verwendet. Er verkleinert die +% entsprechenden Seiten, wenn für diese mit dem Befehl \cs{thispagestyle} einer +% der \pgs{tudheadings}"=Seitenstile gewählt wird \emph{und} das \DDC-Logo im +% Fuß gesetzt werden soll. Der entsprechende Seitenstil kann im optionalen +% Argument angegeben werden, wenn der Befehl bedingt ausgeführt werden soll. +% \begin{macrocode} +\tud@ifverlower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \tud@iftudps{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false + \enlargethispage{-\tud@dim@ddcdiff}% + \fi% + }% + }{}% + }% +}{} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@enlargepage +% \begin{length}{\tud@ta@textheight} +% \begin{length}{\tud@ta@topmargin} +% \begin{length}{\tud@ta@headheight} +% \begin{length}{\tud@ta@headsep} +% \begin{length}{\tud@ta@footheight} +% \changes{v2.03}{2015/01/09}{neu, für entsprechende \pkg{typearea}-Option}^^A +% \begin{length}{\tud@ta@footskip} +% Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten +% Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom +% Satzspiegel abhängigen Seitenlayouts zu erstelen. +% \begin{macrocode} +\newlength\tud@ta@textheight +\newlength\tud@ta@topmargin +\newlength\tud@ta@headheight +\newlength\tud@ta@headsep +\newlength\tud@ta@footheight +\newlength\tud@ta@footskip +% \end{macrocode} +% \end{length}^^A \tud@ta@footskip +% \end{length}^^A \tud@ta@footheight +% \end{length}^^A \tud@ta@headsep +% \end{length}^^A \tud@ta@headheight +% \end{length}^^A \tud@ta@topmargin +% \end{length}^^A \tud@ta@textheight +% \begin{length}{\tud@ta@headdiff} +% \begin{length}{\tud@ta@footdiff} +% \changes{v2.02}{2014/06/23}{entfernt}^^A +% Eine Länge für den Ausgleich zwischen normalem und benötigtem Satzspiegel für +% das spezielle Layout des \CDs. Die Differenz zwischen den unterschiedlichen +% Kopfhöhen der Satzspiegelvarianten wird bei der Ausführung von +% \cs{tud@geometry@process} berechnet und in \cs{tud@ta@headdiff} gespeichert. +% Dabei muss unterschieden werden, ober der Satzspiegel genutzt wird, der durch +% das \CD vorgegeben ist oder der durch \pkg{typearea} berechnete. Die Länge +% \cs{tud@ta@footdiff} wurde mit der \TUDScript-Version~v2.02 entfernt. +% \begin{macrocode} +\newlength\tud@ta@headdiff +% \end{macrocode} +% \end{length}^^A \tud@ta@footdiff +% \end{length}^^A \tud@ta@headdiff +% \begin{macro}{\tud@AfterChangingArea} +% \changes{v2.04}{2015/03/10}{neu}^^A +% Der Befehl \cs{AfterCalculatingTypearea} wird durch das Paket \pkg{typearea} +% bereitgestellt. Die durch \pkg{typearea} berechneten Längenwerte für den +% Satzspiegel werden zur Weiterverarbeitung gesichert. Für die Erstellung des +% Satzspiegels wird das Paket \pkg{geometry} verwendet. Bei der entsprechenden +% Option (\opt{geometry=no}) wird jedoch der von \pkg{typearea} berechnete +% Satzspiegel an \pkg{geometry} weitergereicht. Somit wird es möglich, +% unabhängig vom genutzten Paket\footnote{\pkg{typearea} oder \pkg{geometry}} +% zur Festlegung des Satzspiegels, diesen innerhalb des Dokumentes zu ändern. +% \begin{macrocode} +\newcommand*\tud@AfterChangingArea{% + \setlength\tud@ta@textheight{\textheight}% + \setlength\tud@ta@topmargin{\topmargin}% + \setlength\tud@ta@headheight{\headheight}% + \setlength\tud@ta@headsep{\headsep}% + \ifcsvoid{ta@fh}{% + \setlength\tud@ta@footheight{\footheight}% + }{% + \setlength\tud@ta@footheight{\ta@fh}% + }% + \setlength\tud@ta@footskip{\footskip}% + \tud@geometry@process% +% \end{macrocode} +% Nachder Änderung desSatzspiegels werden alle Logoboxen neu erstellt. +% \begin{macrocode} + \global\@tud@mainlogo@settrue% +% \end{macrocode} +% Damit Änderungen am Satzspiegel im Dokument sicher übernommen werden, wird +% das Setzen des Satzspiegels forciert. Dafür wird \cs{tud@currentgeometry} +% zurückgesetzt und anschließend der aktuelle Seitenstil erneut geladen, um das +% erneute und korrekte Ausführen von \cs{tud@BeforeSelectAnyPageStyle} zu +% erzwingen. +% \begin{macrocode} + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +% \end{macrocode} +% \end{macro}^^A \tud@AfterChangingArea +% 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. Nachfolgend erstellt +% \cs{tud@geometry@process} alle benötigten Satzspiegel. Durch das Setzen des +% Seitenstils wird der jeweils richtige bzw. benötigte Satzspiegel ausgewählt. +% Dies geschieht \emph{nicht}, wenn die \cls{standalone}-Klasse mit der Option +% \opt{crop} geladen wurde, um die Seitenränder nicht zu ändern. +% \begin{macrocode} +\AtEndPreamble{% + \tud@ifsacrop{}{% +% \end{macrocode} +% Nach einer Neuberechnung oder Änderung des Satzspiegels durch \pkg{typearea} +% werden die für die Seitenstile benötigten Satzspiegel mit \pkg{geometry} neu +% erstellt. +% \ToDo{\cs{AfterRestoreareas} einfügen}[v3.18] +% \begin{macrocode} + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% +% \AfterRestoreareas{\tud@AfterChangingArea}% +% \end{macrocode} +% Der Kopf im \CD der \TnUD erfordert einen eigenen Satzspiegel, der ggf. durch +% \cs{tud@BeforeSelectAnyPageStyle} aktiviert bzw. deaktiviert wird. +% \begin{macrocode} + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% + \recalctypearea% + }% } % \end{macrocode} -% \end{macro}^^A \tud@geometry@fincl -% \end{macro}^^A \tud@geometry@hincl % \begin{environment}{tudpage} -% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}%^^A +% \changes{v2.02}{2014/06/23}{an Paket \pkg{scrlayer-scrpage} angepasst}^^A % \begin{macro}{\tud@ps} % \begin{macro}{\tud@ps@select} -% \changes{v2.02}{2014/07/19}{neu}%^^A +% \changes{v2.02}{2014/07/19}{neu}^^A % \begin{macro}{\tud@currentpagestyle} % \begin{macro}{\tud@currentpagestyle@set} -% \changes{v2.02}{2014/07/18}{neu}%^^A +% \changes{v2.02}{2014/07/18}{neu}^^A % \begin{macro}{\tud@currentpagestyle@reset} -% \changes{v2.02}{2014/07/18}{neu}%^^A -% \changes{v2.03}{2015/01/09}{Bugfix, wenn \cs{tud@currentpagestyle} void}%^^A +% \changes{v2.02}{2014/07/18}{neu}^^A +% \changes{v2.03}{2015/01/09}{Bugfix}^^A % Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout % temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern. % Dies geschieht innerhalb dieser Umgebung reversibel mit \cs{pagestyle}. @@ -2378,11 +3203,11 @@ % \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die % \env{multicols}-Umgebung beendet. % \begin{macrocode} - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \begin{multicols}{\tud@multicols}% \fi% \BODY% - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \end{multicols}% \fi% % \end{macrocode} @@ -2419,7 +3244,7 @@ % \end{macrocode} % \end{parameter}^^A cdfont % \begin{parameter}{cdhead} -% \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}%^^A +% \changes{v2.03}{2015/01/28}{\val{barfont} und \val{widehead} überlagert}^^A % Mit dem Parameter \val{cdhead} kann die Verwendung der Schriften des \CDs % aktiviert werden, wenn diese im Fließtext nicht zum Einsatz kommen. Die % Breite des Querbalkens kann über diesen Parameter ebenfalls geändert werden. @@ -2428,7 +3253,7 @@ % \end{macrocode} % \end{parameter}^^A cdhead % \begin{parameter}{cdfoot} -% \changes{v2.03}{2015/01/30}{neu}%^^A +% \changes{v2.03}{2015/01/30}{neu}^^A % Über \val{cdfoot} kann gg. die Hintergrundfarbe sowie die Standardfußzeile % des \CDs aktiviert werden. % \begin{macrocode} @@ -2436,9 +3261,9 @@ % \end{macrocode} % \end{parameter}^^A cdfoot % \begin{parameter}{headlogo} -% \changes{v2.03}{2015/01/28}{neu}%^^A +% \changes{v2.03}{2015/01/28}{neu}^^A % \begin{parameter}{footlogo} -% \changes{v2.03}{2015/01/28}{neu}%^^A +% \changes{v2.03}{2015/01/28}{neu}^^A % Das Zweit- und die Drittlogos können ebenfalls lokal geändert werden. % \begin{macrocode} \TUD@parameter@define{headlogo}{\headlogo{#1}}% @@ -2447,7 +3272,7 @@ % \end{parameter}^^A footlogo % \end{parameter}^^A headlogo % \begin{parameter}{ddc} -% \changes{v2.02}{2014/08/16}{neu}%^^A +% \changes{v2.02}{2014/08/16}{neu}^^A % \begin{parameter}{ddchead} % \begin{parameter}{ddcfoot} % Mit diesen Parametern kann das \DDC-Logo im Kopf bzw. Fuß eingeblendet werden. @@ -2498,32 +3323,32 @@ % \begin{macrocode} \TUD@parameter@define{language}{\selectlanguage{#1}}% % \end{macrocode} -% \end{parameter} ^^A language +% \end{parameter} ^^A language % \begin{parameter}{columns} % Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für % mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die % Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter % angegeben werden. % \begin{macrocode} - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% % \end{macrocode} -% \end{parameter} ^^A columns +% \end{parameter} ^^A columns % \begin{parameter}{color} -% \changes{v2.03}{2015/01/28}{entfernt}%^^A +% \changes{v2.03}{2015/01/28}{entfernt}^^A % \begin{parameter}{colour} -% \changes{v2.03}{2015/01/28}{entfernt}%^^A +% \changes{v2.03}{2015/01/28}{entfernt}^^A % Beide Parameter wurden entfernt, da diese augenscheinlich für das \CD nicht % notwendig sind. % \end{parameter}^^A colour % \end{parameter}^^A color % \begin{parameter}{pagestyle} -% \changes{v2.02}{2014/06/23}{neu}%^^A -% \changes{v2.03}{2015/01/28}{\cs{iftudpagestyle} verwendet}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A +% \changes{v2.03}{2015/01/28}{\cs{tud@iftudps} verwendet}^^A % Mit diesem Parameter kann der verwendete Seitenstil eingestellt werden, wobei % einer der \pgs{tudheadings}-Seitenstile verwendet wird. % \begin{macrocode} \TUD@parameter@define{pagestyle}{% - \iftudpagestyle{#1}{\renewcommand*\tud@ps{#1}}{% + \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% @@ -2537,10 +3362,10 @@ % \end{parameter}^^A pagestyle % \begin{parameter}{head} % \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option -% \opt{ddchead} übernommen}%^^A +% \opt{ddchead} übernommen}^^A % \begin{parameter}{foot} -% \changes{v2.02}{2014/06/30}{entfernt, Funktinalität teilweise durch Option -% \opt{ddcfoot} übernommen}%^^A +% \changes{v2.02}{2014/06/30}{entfernt, Funktionalität teilweise durch Option +% \opt{ddcfoot} übernommen}^^A % Diese Parameter wurden entfernt. Stattdessen kann innerhalb der Umgebung % entweder der Befehl \cs{TUDoptions} mit den Schlüsseln \opt{ddchead=\dots} % und \opt{ddcfoot=\dots} bzw. für den Querbalken \opt{cdhead=\dots} sowie das diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-poster.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-poster.dtx new file mode 100644 index 00000000000..250ec9ca384 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-poster.dtx @@ -0,0 +1,311 @@ +% \CheckSum{182} +% \iffalse meta-comment +% +% ============================================================================ +% +% TUD-KOMA-Script +% Copyright (c) Falk Hanisch <tudscr@gmail.com>, 2012-2015 +% +% ============================================================================ +% +% This work may be distributed and/or modified under the conditions of the +% LaTeX Project Public License, version 1.3c of the license. The latest +% version of this license is in http://www.latex-project.org/lppl.txt and +% version 1.3c or later is part of all distributions of LaTeX 2005/12/01 +% or later and of this work. This work has the LPPL maintenance status +% "author-maintained". The current maintainer and author of this work +% is Falk Hanisch. +% +% ---------------------------------------------------------------------------- +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +% in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle +% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +% Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 +% oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +% "author-maintained", wird somit allein durch den Autor verwaltet. Der +% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% +% ============================================================================ +% +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%%% From File: tudscr-poster.dtx +%<*driver> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-poster.dtx}[% + 2015/06/02 v2.04 TUD-KOMA-Script\space% +%</driver> +%<package&identify>\NeedsTeXFormat{LaTeX2e} +%<package&identify>\ProvidesPackage{tudscrposter}[% +%<*driver|package&identify> +%!TUDVersion +%<package> package + (corporate design posters)% +] +%</driver|package&identify> +%<*driver> +\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +\documentclass[english,ngerman]{tudscrdoc} +\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-poster.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Poster} +% +% Diese Paket stellt für die \cls{tudscr}-Klassen das Layout für ein Poster im +% \CD der \TnUD zur Verfügung. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*package&option> +% \fi +% +% \subsection{Das Paket \pkg{tudscrposter}} +% +% \begin{option}{cdstyle} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{option}{style} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@cdstyle} +% \changes{v2.04}{2015/05/12}{neu}^^A +% Mit dieser Option wird festgelegt, in welcher farbigen Ausprägung das Poster +% erstellt wird. Dabei sind alle Werte gültig, die auch für die meisten anderen +% Layouteinstellungen verwendet werden können. Abhängig vom gewählten Wert, +% wird der Seitenstil, die Ausprägung der Fußzeile sowie die farbliche Gestalt +% von Kopf- und Fußzeile festgelegt. Da dabei unter anderem auch gegebenenfalls +% der Seitenstil auf einen vom Typ \pgs{tudheadings} festgelegt wird, erfolgt +% die Ausführung der Option frühestens zu Beginn des Dokumentes. +% \begin{macrocode} +\newcommand*\tud@cdstyle{0} +\TUD@key{cdstyle}[true]{% + \TUD@set@numkey{cdstyle}{tud@cdstyle}{\tud@layout@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@atdocument\tud@style@set\fi% + \fi% +} +% \end{macrocode} +% Der Schlüssel \opt{style} wird als Alias bereitgehalten. +% \begin{macrocode} +\TUD@key{style}[true]{\TUDoptions{cdstyle=#1}} +% \end{macrocode} +% \end{macro}^^A \tud@cdstyle +% \end{option}^^A style +% \end{option}^^A cdstyle +% +% \iffalse +%</package&option> +%<*package&body> +% \fi +% +% \begin{macro}{\tud@cdstyle@set} +% \changes{v2.04}{2015/05/18}{neu}^^A +% Mit diesem Makro erfolgt die Zuweisung des Seitenstils. +% \begin{macrocode} +\newcommand*\tud@cdstyle@set{% + \ifcase\tud@cdstyle\relax% false + \footcontent{}% + \else% !false + \pagestyle{empty.tudheadings}% + \footcontent{\tud@foot@poster@left}[\tud@foot@poster@right]% + \ifcase\tud@cdstyle\relax\or% true + \TUDoptions{cdhead=nocolor,cdfoot=true}% + \or% litecolor + \TUDoptions{cdhead=litecolor,cdfoot=true}% + \or% barcolor + \TUDoptions{cdhead=barcolor,cdfoot=true}% + \else% bicolor/color/full + \TUDoptions{cdhead=bicolor,cdfoot=bicolor}% + \fi% + \fi% +} +\AtBeginDocument{\tud@cdstyle@set} +% \end{macrocode} +% \end{macro}^^A \tud@cdstyle@set +% \begin{macro}{\tud@foot@line@add} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@foot@line@write} +% \changes{v2.04}{2015/05/12}{neu}^^A +% Mit \cs{tud@foot@line@add} wird der Inhalt eines Feldes in \cs{@\meta{Feld}} +% gespeichert. Der Befehl erwartet als erstes obligatorisches Argument den +% Feldnamen und als zweites den Inhalt. Entspricht das dritte obligatorische +% Argument \cs{@empty}, so wird in \cs{@\meta{Feld}@foot} ebenfalls das zweite +% Argument abgelegt, andernfalls das dritte. +% +% Damit wird es für Poster möglich, die Befehle \cs{faculty}, \cs{department}, +% \cs{institute}, \cs{chair} und \cs{professor} dahingehend zu erweitern, dass +% unterschiedliche Angaben für die Kopf- und Fußzeile gemacht werden können. +% Wird eines der zuvor genannten Makros lediglich mit einem obligatorischen +% Argument verwendet, so enthalten Kopf und Fuß den gleichen Eintrag. Wird +% jedoch zusätzlich das optionale Argument genutzt, so wird dessen Inhalt im +% Fußbereich mit \cs{tud@foot@line@write} ausgegeben. +% \begin{macrocode} +\newcommand*\tud@foot@line@add[3]{% + \csgdef{@#1}{\trim@spaces{#2}}% + \ifx#3\@empty\relax% + \global\csletcs{@#1@foot}{@#1}% + \else% + \csgdef{@#1@foot}{\trim@spaces{#3}}% + \fi% +} +\newcommand*\tud@foot@line@write[1]{% + \protected@edef\@tempa{\csuse{@#1@foot}}% + \ifx\@tempa\@empty\else\newline{\csuse{@#1@foot}}\fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@foot@line@write +% \end{macro}^^A \tud@foot@line@add +% \begin{macro}{\tud@foot@poster@left} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@foot@poster@right} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@newline} +% \begin{macro}{\tud@split@author} +% \begin{macro}{\tud@split@contactperson} +% Mit diesen beiden Hilfsmakros werden die linke und die rechte Spalte des +% Standard-Seitenfußes eines Posters festgelegt. In der linken Spalte werden +% dabei Fakultät, Einrichtung, Institut und Lehrstuhl sowie der Professor +% ausgegeben, wobei die Angaben über das optionale Argument der entsprechenden +% Feldbefehle, die in den Klassen normalerweise nur für den Seitenkopf genutzt +% werden, variiert werden können. +% \begin{macrocode} +\newcommand*\tud@foot@poster@left{% + \ifx\contactname\@empty\else{\tud@head@font@bold\contactname}\newline\fi% + Technische Universit\"at Dresden% + \tud@foot@line@write{faculty}% + \tud@foot@line@write{department}% + \tud@foot@line@write{institute}% + \tud@foot@line@write{chair}% + \tud@foot@line@write{professor}% +} +% \end{macrocode} +% In der rechten Spalte werden der Autor oder die Autoren (\cs{author}) und +% die Kontaktperson(en) (\cs{contactperson}) ausgegeben. Zu jeder Person können +% individuelle Angaben bzgl. Büro, Telefonnummer und E-Mail-Adresse gemacht +% werden. +% \begin{macrocode} +\newcommand*\tud@foot@poster@right{% + \def\tud@newline{% + \ifx\@office\@empty\else\newline\@office\fi% + \ifx\@telephone\@empty\else\newline\@telephone\fi% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% + }% +% \end{macrocode} +% Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte +% Warnung bei der Verwendung des Feldes \cs{@author} unterdrückt. +% \begin{macrocode} + \ifpatchable{\@author}{\@latex@warning@no@line}{% + \let\@tempa\@empty% + }{% + \let\@tempa\@author% + }% +% \end{macrocode} +% Der temporäre Schalter wird verwendet, um die gleichzeitige Angabe von Autor +% und Kontaktperson zu erkennen und zwischen den Angaben eine Leerzeile +% einzufügen. +% \begin{macrocode} + \@tempswafalse% + \ifx\@tempa\@empty\else% + \ifx\authorname\@empty\else% + {\tud@head@font@bold\authorname}\newline% + \fi% +% \end{macrocode} +% Das Makro zum Aufteilen der Autorenangaben wird für die hier benötigte Form +% definiert. Dabei wird die Ausgabe aller nicht \emph{lokal} angegebenen Felder +% unterdrückt, indem der Befehl \cs{tud@multiple@fields@preset} im zweiten +% Argument mit einem \val{*} aufgerufen wird. +% \begin{macrocode} + \renewcommand*\tud@split@author[2]{% + \tud@multiple@fields@store{@author}{##1}% + \tud@multiple@fields@preset{@author}{*}{##1}% + \ignorespaces##1\tud@newline% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\newline}% + }% + \noindent\tud@multiple@split{@author}% + \tud@multiple@fields@restore{@author}% +% \end{macrocode} +% Wurde gültige Felder außerhalb von \cs{@author} global angegeben, so werden +% diese \emph{nach} allen Autoren ausgegeben. +% \begin{macrocode} + \tud@newline% + \@tempswatrue% + \fi% +% \end{macrocode} +% Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe. +% \begin{macrocode} + \ifx\@contactperson\@empty\else% + \if@tempswa\newline\fi% + \ifx\contactpersonname\@empty\else% + {\tud@head@font@bold\contactpersonname}\newline% + \fi% + \renewcommand*\tud@split@contactperson[2]{% + \tud@multiple@fields@store{@contactperson}{##1}% + \tud@multiple@fields@preset{@contactperson}{*}{##1}% + \ignorespaces##1\tud@newline% + \tud@multiple@fields@restore{@contactperson}% + \tud@multiple@@@split{##2}{\newline}% + }% + \noindent\tud@multiple@split{@contactperson}% + \tud@multiple@fields@restore{@contactperson}% + \tud@newline% + \fi% +% \end{macrocode} +% Zu guter letzt noch eine mögliche Homepage. +% \begin{macrocode} + \ifx\@webpage\@empty\else\newline\@webpage\fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@split@contactperson +% \end{macro}^^A \tud@split@author +% \end{macro}^^A \tud@newline +% \end{macro}^^A \tud@foot@poster@right +% \end{macro}^^A \tud@foot@poster@left +% \begin{macro}{\tud@split@author@list} +% Der Befehl \cs{tud@split@author@list} wird um die im Paket \pkg{tudscrposter} +% zusätzlich definierten Felder erweitert. +% \begin{macrocode} +\patchcmd{\tud@split@author@list}{authormore}{% + authormore,office,telephone,emailaddress% +}{}{\tud@patch@wrn{tud@split@author@list}} +% \end{macrocode} +% \end{macro}^^A \tud@split@author@list +% +% \iffalse +%</package&body> +% \fi +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx index a06f717fd7e..235f92aeaf6 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx @@ -1,4 +1,4 @@ -% \CheckSum{583} +% \CheckSum{581} % \iffalse meta-comment % % ============================================================================ @@ -51,9 +51,9 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-supervisor.dtx}[% - 2015/01/30 v2.03 TUD-KOMA-Script\space% + 2015/06/03 v2.04 TUD-KOMA-Script\space% %</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27] +%<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{tudscrsupervisor}[% %<*driver|package> %!TUDVersion @@ -83,8 +83,9 @@ % % \section{Aufgabenstellung} % -% Diese Paket stellt für die \cls{tudscr}-Klassen eine Umgebung für die -% Aufgabenstellung einer Abschlussarbeit bereit. +% Diese Paket stellt für die \cls{tudscr}-Klassen mehrere Umgebungen und +% Befehle zur Erstellung der Aufgabenstellung einer Abschlussarbeit sowie +% eines Gutachtens und eines Aushangs bereit. % % \StopEventually{\PrintIndex\PrintChanges} % @@ -95,8 +96,8 @@ % \subsection{Das Paket \pkg{tudscrsupervisor}} % % \begin{environment}{task} -% \changes{v2.03}{2015/01/05}{Bugfix für initialen Seitenstil}%^^A -% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}%^^A +% \changes{v2.03}{2015/01/05}{Bugfix für initialen Seitenstil}^^A +% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}^^A % Die Umgebung für die Aufgabenstellung nutzt die \env{tudpage}-Umgebung. Sie % wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle % mit Informationen zum Autor gesetzt. Zum Abschluss werden Betreuer, @@ -140,7 +141,7 @@ \ifx\supervisorothername\@empty\else\supervisorothername\@titledelim\fi% & \def\and{\tabularnewline &}% }% - \vskip-\lastskip% + \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip% \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% @@ -156,7 +157,7 @@ % in einer Tabelle ausgegeben. Die \env{tudpage}-Umgebung wird beendet, und % eine neue (rechte) Seite geöffnet. % \begin{macrocode} - \vskip 15mm plus 10mm minus 10mm% + \vskip\tud@signatureskip\noindent% \ifx\@chairman\@empty\else% \begin{tabular}{@{}l@{}}% \@chairman\tabularnewline% @@ -184,7 +185,7 @@ % \begin{macrocode} \newcommand\taskform[3][]{% \begin{task}[#1] - \vskip-\lastskip% + \removelastskip% \ifxblank{#2}{}{\minisec{\objectivesname}#2}% \ifxblank{#3}{}{% \minisec{\focusname}% @@ -197,7 +198,7 @@ % \end{macrocode} % \end{macro}^^A \taskform % \begin{environment}{evaluation} -% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}%^^A +% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}^^A % Die Umgebung für das Gutachten nutzt ebenfalls die \env{tudpage}-Umgebung. Sie % wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle % mit Informationen zum Autor gesetzt. Zum Abschluss werden Ort, Datum und @@ -233,19 +234,19 @@ % \end{macrocode} % Die gegebenen Note sowie Ort und Datum werden am Ende ggf. ausgegeben. % \begin{macrocode} - \vskip-\lastskip% + \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% - \medskip% + \setlength{\@tempskipa}{\smallskipamount}% \ifx\@grade\@empty\else% - \noindent\gradetext% - \vskip\bigskipamount% + \vskip\@tempskipa\noindent% + \gradetext% + \setlength{\@tempskipa}{\bigskipamount}% \fi% \ifx\@date\@empty\else% - \noindent% - \ifx\@place\@empty\else\@place,~\fi\@date% - \vskip\bigskipamount% + \vskip\@tempskipa\noindent% + \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \bigskip\bigskip\noindent% + \vskip\tud@signatureskip\noindent% % \end{macrocode} % Der Befehl \cs{and} wird für einen möglichen Zweitgutachter angepasst. Das % Hilfsmakro \cs{@tempa} dient zur Übernahme des richtigen Bezeichners für @@ -281,7 +282,7 @@ % \begin{macrocode} \newcommand\evaluationform[5][]{% \begin{evaluation}[#1] - \vskip-\lastskip% + \removelastskip% \ifxblank{#2}{}{\minisec{\taskname}#2}% \ifxblank{#3}{}{\minisec{\contentname}#3}% \ifxblank{#4}{}{\minisec{\assessmentname}#4}% @@ -290,8 +291,14 @@ } % \end{macrocode} % \end{macro}^^A \evaluationform +% \begin{macro}{\student} +% Der Befehl \cs{student} kann als Alias für \cs{author} genutzt werden. +% \begin{macrocode} +\newcommand*\student{\author} +% \end{macrocode} +% \end{macro}^^A \student % \begin{macro}{\tud@author@table} -% \changes{v2.01b}{2014/06/04}{Probleme mit \pkg{calc} behoben}%^^A +% \changes{v2.01b}{2014/06/04}{Probleme mit \pkg{calc} behoben}^^A % \begin{length}{\tud@dim@table} % Der Befehl \cs{tud@author@table} dient zur Ausgabe einer Tabelle mit % Informationen zum Autor/zu den Autoren\footnote{Matrikelnummer, Jahrgang, @@ -299,70 +306,29 @@ % \begin{macrocode} \newlength\tud@dim@table% \newcommand*\tud@author@table{% - \tud@check@author% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% % \end{macrocode} -% Der Befehl \cs{tud@split@author} ist original aus den \cls{tudscr}-Klassen -% und dient zur formatierten Ausgabe von mehreren Autoren, welche durch -% \cs{author}\marg{Autor(en)} angegeben und mit \cs{and} getrennt wurden. -% Er wird hier auf die Ausgabe der Autoren mit den jeweils zusätzlich gegebenen -% Informationen in einer Tabelle angepasst. -% \begin{macrocode} - \renewcommand*\tud@split@author[2]{% -% \end{macrocode} -% Weil alle Autoren in einer Tabelle gesetzt werden wird geprüft, welche Felder -% individuell via \cs{author} angegeben wurden. Damit die Tabellen die gleiche -% Höhe haben, auch wenn für einen Autor ein Feld ausgelassen wurde, werden alle -% insgesamt angegebenen Felder mit via \cs{tud@multiple@setfields} mit \cs{null} -% initialisiert. Anschließend werden für den aktuellen Autor angegebenen Felder -% gesetzt. -% \begin{macrocode} - \tud@multiple@setfields{\null}{##1}% -% \end{macrocode} -% Nach viel Geplänkel kommt nun die eigentliche Tabelle mit ggf. zusätzlichen -% Informationen zum Autor. -% \begin{macrocode} - \begin{tabular}{l@{}}% - \ifx\@course\@empty\else\@course\tabularnewline\fi% - \ifx\@discipline\@empty\else\@discipline\tabularnewline\fi% - \textsf{\textbf{\ignorespaces##1}}\tabularnewline% - \ifx\@matriculationnumber\@empty\else% - \@matriculationnumber\tabularnewline% - \fi% - \ifx\@matriculationyear\@empty\else% - \@matriculationyear\tabularnewline% - \fi% - \end{tabular}% -% \end{macrocode} -% Sollte ein weiterer Autor folgen, wird \cs{tabcolsep} zusätzlich eingefügt, -% um den Standardabstand bei Tabellen zu sichern, da die Tabelle vorher ohne -% rechten \enquote{Rand} gesetzt wurde, um die letzte Tabelle ggf. genau bis -% zum rechten Rand setzen zu können. -% \begin{macrocode} - \tud@multiple@@@split{##2}{~~\hspace{\tabcolsep}} - }% -% \end{macrocode} % Zu Beginn wird eine Tabelle mit den Bezeichnern aller genutzten Feldern % ausgegeben. Danach folgen alle Autoren. Damit ein einheitliches Layout % entsteht und auch die Tabellen am Ende der Umgebung in der ersten Spalte die % gleiche Breite haben wie im oberen Teil, ist die Bestimmung einer festen % Spaltenbreite notwendig, die so breit wie der längste Bezeichner ist. % Dafür muss festgestellt werden, welche optionalen Felder denn nun überhaupt -% genutzt werden. Dafür wird \cs{tud@multiple@setfields} mit \cs{null} als +% genutzt werden. Dafür wird \cs{tud@multiple@fields@preset} mit \cs{null} als % Argument aufgerufen, um alle potentiellen Felder erkennen zu können. % \begin{macrocode} + \tud@multiple@split{@author}% + \tud@multiple@fields@preset{@author}{\null}{}% \setlength\tud@dim@table{2em}% - \gdef\tud@multiple@field{@author}% - \tud@multiple@setfields{\null}{}% % \end{macrocode} % Anschließend werden die Bezeichner sowohl der obligatorischen als auch der % genutzten, optionalen Felder expandiert. Anschließend wir mit dieser Liste % der längste bestimmt und in \cs{tud@dim@table} gespeichert. % \begin{macrocode} \edef\@tempa{% - \authorname,\titlename,\supervisorname,\supervisorothername,% + \namesname,\titlename,\supervisorname,\supervisorothername,% \issuedatetext,\duedatetext,% \expandafter\ifx\@matriculationnumber\@empty\else% \matriculationnumbername% @@ -394,7 +360,7 @@ \ifx\@discipline\@empty\else% \disciplinename\@titledelim\tabularnewline% \fi% - \authorname\@titledelim\tabularnewline% + \namesname\@titledelim\tabularnewline% \ifx\@matriculationnumber\@empty\else% \matriculationnumbername\@titledelim\tabularnewline% \fi% @@ -403,13 +369,54 @@ \fi% \end{tabular}% % \end{macrocode} -% Folgend werden die Autoren wie schon bei \cs{maketitle} mit den gleichen -% Makros gesplittet und separat ausgegeben. +% Der Befehl \cs{tud@split@author} wird innerhalb der \cls{tudscr}-Klassen zur +% formatierten Ausgabe von mehreren Autoren auf der Titelseite verwendet, +% welche durch\cs{author}\marg{Autor(en)} angegeben und mit \cs{and} getrennt +% wurden. Er wird hier auf die Ausgabe der Autoren mit den jeweils zusätzlich +% gegebenen Informationen in einer Tabelle angepasst. +% \begin{macrocode} + \renewcommand*\tud@split@author[2]{% +% \end{macrocode} +% Weil alle Autoren in einer Tabelle gesetzt werden wird geprüft, welche Felder +% individuell via \cs{author} angegeben wurden. Damit die Tabellen die gleiche +% Höhe haben, auch wenn für einen Autor ein Feld ausgelassen wurde, werden alle +% insgesamt angegebenen Felder mit via \cs{tud@multiple@fields@preset} mit +% \cs{null} initialisiert. Anschließend werden die für den aktuellen Autor +% angegebenen Felder gesetzt. +% \begin{macrocode} + \tud@multiple@fields@store{@author}{##1}% + \tud@multiple@fields@preset{@author}{\null}{##1}% +% \end{macrocode} +% Nach viel Geplänkel kommt nun die eigentliche Tabelle mit ggf. zusätzlichen +% Informationen zum Autor. +% \begin{macrocode} + \begin{tabular}{l@{}}% + \ifx\@course\@empty\else\@course\tabularnewline\fi% + \ifx\@discipline\@empty\else\@discipline\tabularnewline\fi% + \textsf{\textbf{\ignorespaces##1}}\tabularnewline% + \ifx\@matriculationnumber\@empty\else% + \@matriculationnumber\tabularnewline% + \fi% + \ifx\@matriculationyear\@empty\else% + \@matriculationyear\tabularnewline% + \fi% + \end{tabular}% +% \end{macrocode} +% Sollte ein weiterer Autor folgen, wird \cs{tabcolsep} zusätzlich eingefügt, +% um den Standardabstand bei Tabellen zu sichern, da die Tabelle vorher ohne +% rechten \enquote{Rand} gesetzt wurde, um die letzte Tabelle ggf. genau bis +% zum rechten Rand setzen zu können. +% \begin{macrocode} + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\enskip\hspace{\tabcolsep}}% + }% +% \end{macrocode} +% Hier erfolgt die eigentliche Ausgabe. % \begin{macrocode} \tud@multiple@split{@author}% % \end{macrocode} % Nach den Autoren wird der Titel über die komplette Textbreite ausgegeben. -% Danach wird der Inhalt der Aufgabenstellung ausgegeben. +% Danach wird der Inhalt der Aufgabenstellung gesetzt. % \begin{macrocode} \vskip\smallskipamount% \begin{tabular}{@{}p{\tud@dim@table}% @@ -429,12 +436,14 @@ % Der Befehl \cs{tud@split@author@list} wird um die hier im Paket zusätzlich % definierten Felder erweitert. % \begin{macrocode} -\patchcmd{\tud@split@author@list}{\authormore}% - {\authormore,\course,\discipline}{}{\tud@patch@wrn{tud@split@author@list}} +\patchcmd{\tud@split@author@list}{authormore}{% + authormore,course,discipline% +}{}{\tud@patch@wrn{tud@split@author@list}} % \end{macrocode} % \end{macro}^^A \tud@split@author@list % \begin{environment}{notice} -% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}%^^A +% \changes{v2.03}{2015/01/05}{Bugfix für Seitenstil im zweiseitigen Satz}^^A +% \begin{macro}{\tud@split@contactperson} % Die Umgebung für Aushänge nutzt ebenfalls die \env{tudpage}-Umgebung. Sie wird % auf einer neuen (rechten) Seite gesetzt. Die Überschrift wird in der % Voreinstellung auf den sprachabhängigen Bezeichner \cs{noticename} gesetzt, @@ -474,8 +483,20 @@ % \begin{macrocode} \ifx\@contactperson\@empty\let\@contactperson\@supervisor\fi% \ifx\@contactperson\@empty\else% - \vskip-\lastskip% + \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% + \renewcommand*\tud@split@contactperson[2]{% + \tud@multiple@fields@store{@contactperson}{##1}% + \tud@multiple@fields@preset{@contactperson}{}{##1}% + \begin{tabular}[t]{@{}l@{}}% + \ignorespaces##1\tabularnewline% + \ifx\@office\@empty\else\@office\tabularnewline\fi% + \ifx\@telephone\@empty\else\@telephone\tabularnewline\fi% + \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% + \end{tabular}% + \tud@multiple@fields@restore{@contactperson}% + \tud@multiple@@@split{##2}{\hfill}% + }% \subsection*{\contactpersonname}% \noindent\tud@multiple@split{@contactperson}\hfill\null% \fi% @@ -483,6 +504,7 @@ \aftergroup\cleardoublepage% } % \end{macrocode} +% \end{macro}^^A \tud@split@contactperson % \end{environment}^^A notice % \begin{macro}{\noticeform} % Dies soll die Standardform eines Aushangs für eine Abschlussarbeit sein. Im @@ -491,7 +513,7 @@ % \begin{macrocode} \newcommand\noticeform[3][]{% \begin{notice}[#1] - \vskip-\lastskip% + \removelastskip% \ifxblank{#2}{}{% \ifx\@@title\@empty\else% \minisec{\expandonce{\@@title}}% @@ -508,25 +530,6 @@ } % \end{macrocode} % \end{macro}^^A \noticeform -% \begin{macro}{\tud@split@contactperson} -% \begin{macro}{\tud@split@contactperson@list} -% Mit diesem Befehl werden für einen Aushang die Daten für einen oder mehrere -% Kontaktpersonen ausgegeben. -% \begin{macrocode} -\newcommand*\tud@split@contactperson[2]{% - \tud@multiple@setfields{\null}{#1}% - \begin{tabular}{@{}l@{}}% - \ignorespaces#1\tabularnewline% - \ifx\@office\@empty\else\@office\tabularnewline\fi% - \ifx\@telephone\@empty\else\@telephone\tabularnewline\fi% - \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% - \end{tabular}% - \tud@multiple@@@split{#2}{\hfill}% -} -\newcommand*\tud@split@contactperson@list{\office,\telephone,\emailaddress} -% \end{macrocode} -% \end{macro}^^A \tud@split@contactperson@list -% \end{macro}^^A \tud@split@contactperson % % \iffalse %</package> diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx index 89e36d4610b..002b9e59614 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1400} +% \CheckSum{1290} % \iffalse meta-comment % % ============================================================================ @@ -51,7 +51,7 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-title.dtx}[% - 2015/02/15 v2.03 TUD-KOMA-Script (title)% + 2015/06/12 v2.04 TUD-KOMA-Script (title)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} @@ -72,7 +72,7 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/24}{Unterstützung für \pkg{titlepage} entfernt}%^^A +% \changes{v2.02}{2014/06/24}{Unterstützung für \pkg{titlepage} entfernt}^^A % % \section{Titelei} % @@ -120,11 +120,11 @@ % % \begin{KOMAfont}{thesis} % \begin{KOMAfont}{titlepage} -% \changes{v2.01}{2014/04/24}{Explizite Wahl der genutzten Schriftstärke}%^^A -% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}%^^A +% \changes{v2.01}{2014/04/24}{Explizite Wahl der genutzten Schriftstärke}^^A +% \changes{v2.02}{2014/08/29}{Anpassungen für \pkg{fontspec}}^^A % Diese Font-Elemente werden auf der Titelseite verwendet. \opt{thesis}, um den % Typ der Arbeit und ggf. den zu erlangenden akademischen Grad zu setzen. -% Allerdings kommt letzteres nur zum Tragen, wenn die Option \opt{subthesis} +% Allerdings kommt Letzteres nur zum Tragen, wenn die Option \opt{subthesis} % deaktiviert ist. Es wird die gleiche Schrift wie für den Titel verwendet, % allerdings etwas kleiner. \opt{titlepage} für alle Zusatzinformationen wie % Autor, Datum etc. @@ -142,19 +142,19 @@ % \begin{macro}{\tud@title@fontcolor} % Das Makro wird für die Hintergrundfarbe der Titelseite verwendet. % \begin{macrocode} -\newcommand*\tud@title@fontcolor{black} +\newcommand*\tud@title@fontcolor{} % \end{macrocode} % \end{macro}^^A \tud@title@fontcolor % \begin{macro}{\tud@maketitle} -% \changes{v2.01a}{2014/06/03}{Fehler bei Nutzung von \cs{subtitle} behoben}%^^A +% \changes{v2.01a}{2014/06/03}{Fehler bei Nutzung von \cs{subtitle} behoben}^^A % \changes{v2.02}{2014/06/23}{\val{firstiscover} wird als Wert für die Option -% \opt{titlepage} unterstützt}%^^A +% \opt{titlepage} unterstützt}^^A % \changes{v2.02}{2014/07/19}{Im zweispaltigen Satz wird für den Titelkopf -% \cs{tud@title@twocolumn} verwendet}%^^A -% \changes{v2.02}{2014/09/05}{Neue Parameter}%^^A -% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@maketitlepage}}%^^A +% \cs{tud@title@twocolumn} verwendet}^^A +% \changes{v2.02}{2014/09/05}{Neue Parameter}^^A +% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@maketitlepage}}^^A % \begin{macro}{\tud@titlepagenumber} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD % gesetzt. Damit auf das Standardverhalten von \KOMAScript{} zurückgestellt % werden kann, wird der ursprüngliche \cs{maketitle}-Befehl bei der Abarbeitung @@ -172,10 +172,10 @@ % Das optionale Argument wird für das Setzen der Parameter verwendet. % \begin{macrocode} \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false \if@titlepage% \tud@maketitlepage% % \end{macrocode} @@ -183,8 +183,8 @@ % hierfür wird die Ausprägung festgelegt. % \begin{macrocode} \else% - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\else% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\else% *color \def\tud@title@fontcolor{HKS41}% \fi% % \end{macrocode} @@ -264,7 +264,7 @@ \robustify{\footnotemark}% % \end{macrocode} % \begin{macro}{\tud@maketitlepage} -% \changes{v2.02}{2014/09/05}{neu}%^^A +% \changes{v2.02}{2014/09/05}{neu}^^A % \begin{macro}{\tud@titleback} % Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD % gesetzt. Damit auf das Standardverhalten von \KOMAScript{} zurückgestellt @@ -285,14 +285,16 @@ % wird die entsprechende Layoutoption ausgewertet und entsprechend dieser die % Werte belegt. % \begin{macrocode} - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\or% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\or% litecolor + \def\tud@title@fontcolor{HKS41}% + \or% barcolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% bicolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% color \def\tud@title@fontcolor{HKS41!30}% - \or% + \or% full \def\tud@title@fontcolor{HKS41!30}% \fi% % \end{macrocode} @@ -301,6 +303,7 @@ % Standardtitel. % \begin{macrocode} \begin{titlepage}% + \tud@layout@specialpage@set{title}% % \end{macrocode} % Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist % ein Großteil der Einstellungen irrelevant und wird übersrpungen. @@ -337,7 +340,7 @@ % \begin{macrocode} \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -432,12 +435,12 @@ % \begin{macrocode} \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% % \end{macrocode} % Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll @@ -445,12 +448,12 @@ % \begin{macrocode} \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% % \end{macrocode} % Nachdem bereits \cs{@titlehead} und \cs{@subject} gesetzt worden, folgen nun % die weiteren Felder wie vom \CD~-- mehr oder weniger~-- vorgegeben auf der @@ -470,7 +473,7 @@ % \end{macrocode} % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. % \begin{macrocode} - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% % \end{macrocode} @@ -482,7 +485,7 @@ \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -508,7 +511,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\space\@graduationabbr\fi% + \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -538,32 +541,15 @@ % Bei einer Abschlussarbeit gehört normalerweise auch ein Abgabedatum auf den % Titel. Sollte keines angegeben sein, so erscheint eine Warnung. Es wird an % Stelle dessen das angegebene Enddatum oder aber das heutige Datum verwendet. -% \begin{macrocode} - \ifx\@thesis\@empty\else% - \ifdefstring{\@date}{\today}{% -% \end{macrocode} % Durch das Paket \pkg{tudscrtask} wird das zusätzliche Feld \cs{@duedate} % definiert, welches hier ggf. für auf ein nutzbares Datum geprüft wird. % \begin{macrocode} - \ifdefvoid{\@duedate}{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - Since a thesis is a self-contained work, an end\MessageBreak% - date should be specified by the author.\MessageBreak% - Nevertheless, today's date is used% - }% - }{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - It's substituted by the given due date% - }% - \let\@date\@duedate% - }% - }{}% + \ifx\@thesis\@empty\else% + \tud@datecheck% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% % \end{macrocode} % Zusätzlich kann noch ein Datum der mündlichen Verteidigung angegeben werden. % \begin{macrocode} @@ -615,31 +601,30 @@ % \begin{macrocode} \def\@tempa{% \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \ifcase\tud@layout@title\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{white}% - \def\tud@foot@logocolor{white}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% full \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\sffamily\color{\tud@title@fontcolor}}% - \addtokomafont{footnote}{\sffamily\color{\tud@title@fontcolor}}% + \tud@color{\tud@title@fontcolor}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% % \end{macrocode} % Im Kompatibilitätsmodus für die Version~v2.02 wird im Zweifelsfall die Seite % für den Fuß mit \DDC-Logo vergrößert. % \begin{macrocode} - \iftudscrverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% }% % \end{macrocode} % Bei der Ausgabe des Covers werden lediglich die Farb- und Schriftdefinitionen @@ -671,7 +656,6 @@ \next@tpage% \endgroup% %<*article> - \tud@restorepagecolor% \endgroup% \tud@titleback% %</article> @@ -716,7 +700,7 @@ % \begin{macrocode} \def\thanks##1{\gdef\@tempa{##1}}% \let\footnote\thanks% - \setbox0\vbox{#1}% + \sbox\z@{#1}% \let\thanks\@gobble% \let\footnote\@gobble% \tud@makeuppercase{#1}% @@ -760,12 +744,6 @@ % Der eigentliche Befehl für einen Titelkopf (\opt{titlepage=no}). % \begin{macrocode} \newcommand*\tud@@maketitle{% -% \end{macrocode} -% Ab der \KOMAScript-Version 3.11c gibt es mit \cs{@makeextratitle} einen -% neuen, separaten Befehl für das Feld \cs{@extratitle}. Falls eine frühere -% Version verwendet wird, muss der Extratitel hier mit \cs{tud@extratitle} -% gesetzt werden. -% \begin{macrocode} \global\@topnum=\z@% \vspace*{% \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% @@ -788,12 +766,12 @@ % \begin{macrocode} \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% % \end{macrocode} % Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll @@ -802,12 +780,12 @@ \TUDoptions{subjectthesis=true}% \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% @@ -818,13 +796,13 @@ % \end{macrocode} % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. % \begin{macrocode} - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% % \end{macrocode} % Ausgabe von Datum, Verlag und Danksagung wie im Original. % \begin{macrocode} - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -849,126 +827,24 @@ % Wird das \DDC-Logo im Kompatibilitätsmodus für die Version~v2.02 gesetzt, % muss dafür am unteren Rand entsprechend Platz gelassen werden. % \begin{macrocode} - \iftudscrverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% \endgroup% } % \end{macrocode} % \end{macro}^^A \tud@@maketitle -% Es wird die Angabe einer kollaborativen Autorenschaft ermöglicht, wo für -% jeden einzelnen Autor weitere Angaben (Matrikelnummer etc.) gemacht werden -% können. Hierfür ist eine spezielle Art der Eingabe im Dokument notwendig. -% \begin{macro}{\tud@multiple@split} -% \begin{macro}{\tud@multiple@@split} -% \begin{macro}{\tud@multiple@@@split} -% \begin{macro}{\tud@multiple@field} -% Mehrere Autoren werden durch \cs{and} voneinander getrennt. Damit alle -% zusätzlichen Felder für alle Autoren einzeln nutzbar sind, muss der Inhalt -% des Feldes \cs{@author} an jedem \cs{and}-Befehl getrennt und für jeden Teil -% separat ausgewertet. Dafür wird der Befehl \cs{tud@multiple@@split} definiert, -% welcher allgemein gehalten ist um diesen auch für andere Felder nutzen zu -% können. Das obligatorische Argument ist dabei das Feld mit dem auszuwertenden -% Inhalt, der jeweils an \cs{and} getrennt werden soll. Dieses wird in -% \cs{tud@multiple@field} gespeichert. -% \begin{macrocode} -\newcommand*\tud@multiple@field{} -\newcommand*\tud@multiple@split[1]{% - \gdef\tud@multiple@field{#1}% - \begingroup% - \let\and\relax% -% \end{macrocode} -% Das Feld wird mit \cs{and} terminiert, um der Definition von -% \cs{tud@multiple@@split} in jedem Fall zu entsprechen. -% \begin{macrocode} - \edef\@tempa{\csname#1\endcsname\and}% - \expandafter\endgroup% - \expandafter\tud@multiple@@split\@tempa\relax% -} -% \end{macrocode} -% Das Makro \cs{tud@multiple@@split} wird so definiert, dass der Befehl -% \cs{and} als Separator für die einzelnen Argumente dient. Mit den beiden -% freigestellten Argumenten kann das Makro zur eigentlichen Ausgabe aufgerufen -% werden, welches aus dem gegebenen Feld (\cs{tud@multiple@field}) konstruiert -% wird (\cs{tud@split\meta{Feld}}). An dieses wird der jeweils aktuelle Autor -% im ersten Argument und die restlichen im zweiten Argument übergeben. -% \begin{macrocode} -\newcommand*\tud@multiple@@split{}% -\def\tud@multiple@@split#1\and#2\relax{% - \expandafter\csname tud@split\tud@multiple@field\endcsname{#1}{#2}% -} -% \end{macrocode} -% Der Befehl \cs{tud@multiple@@@split} prüft zum Schluss, ob noch weitere -% Autoren angegeben sind. Sollte dies der Fall sein, so wird der Inhalt des -% zweiten Argumentes ausgeführt und \cs{tud@multiple@@split} ein weiteres Mal -% aufgerufen, um so sequentiell alle Autoren abzuarbeiten. Dafür muss -% \cs{tud@multiple@@@split} innerhalb des verarbeitenden Makro -% (\cs{tud@split\meta{Feld}}) aufgerufen werden. -% \begin{macrocode} -\newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% - \def\@tempb{}% - \else% - \def\@tempb{#2\tud@multiple@@split#1\relax}% - \fi% - \@tempb% -} -% \end{macrocode} -% \end{macro}^^A \tud@multiple@field -% \end{macro}^^A \tud@multiple@@@split -% \end{macro}^^A \tud@multiple@@split -% \end{macro}^^A \tud@multiple@split -% \begin{macro}{\tud@multiple@setfields} -% Der Befehl \cs{tud@multiple@setfields}\marg{Initialisierung}\marg{Teilinhalt} -% wird verwendet, um innerhalb des Feldes \cs{@tud@multiple@field} zu prüfen, ob -% sich darin bestimmte Befehle aus \cs{tud@split\\meta{Feld}@list} zum Setzen -% zusätzlicher Informationen befinden. Sollte dies der Fall sein, so werden -% diese mit \meta{Initialisierung} initialisiert. Anschließend wird der -% übergebene Teilinhalt mit \cs{setbox0}\cs{vtop}\marg{\#1} in eine Box -% expandiert. Dieser Trick führt dazu, dass die Felder bereits gesetzt werden, -% ohne eine Ausgabe zu erzeugen. -% \begin{macrocode} -\newcommand*\tud@multiple@setfields[2]{% - \letcs\@tempa{tud@split\tud@multiple@field @list}% - \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \begingroup% - \protected@expandtwoargs\in@{\@tempb}{\@nameuse{\tud@multiple@field}}% - \ifin@ \@tempb{#1}\fi% - \endgroup% - \fi% - }% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \setbox0\vtop{#2}% - \endgroup% -} -% \end{macrocode} -% \end{macro}^^A \tud@multiple@setfields -% \begin{macro}{\tud@check@author} -% \changes{v2.02}{2014/08/17}{neu}%^^A -% \begin{macro}{\tud@split@author} -% \changes{v2.02}{2014/07/25}{neu, aus Umbenennung \cs{tud@split@@author}}%^^A -% \begin{macro}{\tud@split@author@list} -% \changes{v2.02}{2014/07/25}{neu, Umbenennung \cs{tud@split@@author@list}}%^^A +% \begin{macro}{\tud@split@author@title} +% \changes{v2.04}{2015/05/12}{neu}^^A % \begin{macro}{\tud@newline} % Das Makro \cs{tud@split@author} dient der formatierten Ausgabe aller -% Informationen für mehrere Autoren auf der Titelseite. Falls das Autorenfeld -% nicht gesetzt wurde, wird mit \cs{tud@check@author} die standardmäßig -% vorhandene Warnung ausgegeben und danach das Feld als leer definiert. +% Informationen für mehrere Autoren auf der Titelseite. % \begin{macrocode} \newcommand*\tud@newline{} -\newcommand*\tud@check@author{% - \ifpatchable{\@author}{\@latex@warning@no@line}{\@author\gdef\@author{}}{}% -} -\newcommand*\tud@split@author[2]{% +\newcommand*\tud@split@author@title[2]{% % \end{macrocode} -% Zu Beginn werden alle Felder, welche innerhalb des \meta{Feld}-Argumentes -% angegeben sind, initial gelöscht (erstes Argument \cs{tud@multiple@setfields}) -% Anschließend werden die Felder des aktuellen Teils gefüllt (zweites Argument -% \cs{tud@multiple@setfields}). +% Zu Beginn werden alle Felder, welche innerhalb von \cs{@author} angegeben +% sind, gesichert. % \begin{macrocode} - \tud@multiple@setfields{}{#1}% + \tud@multiple@fields@store{@author}{#1}% % \end{macrocode} % Um die Abstände definiert zu setzen, wird \cs{tud@newline} verwendet. Sobald % auch nur eine zusätzliche Information ausgegeben werden soll, wird ein etwas @@ -998,7 +874,7 @@ \ifstr{\dateofbirthtext}{}% {}{\dateofbirthtext\@titledelim}\@dateofbirth% \ifx\@placeofbirth\@empty\else% - \space\placeofbirthtext\unskip\space\@placeofbirth% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% \fi% \else% \tud@title@wrn{dateofbirth}% @@ -1026,32 +902,22 @@ \fi% \fi% % \end{macrocode} -% Durch den Aufruf von \cs{tud@multiple@@@split} wird das übergebene \meta{Feld} -% sukzessive abgearbeitet. +% Zunächst werden die zuvor bestehenden Feldinhalte wiederhergestellt. Danach +% wird durch den Aufruf von \cs{tud@multiple@@@split} wird das übergebene +% \meta{Feld} sukzessive abgearbeitet. % \begin{macrocode} + \tud@multiple@fields@restore{@author}% \tud@multiple@@@split{#2}{\vskip 2ex}% } % \end{macrocode} -% Innerhalb von \cs{tud@split@author@list} werden die Feldbefehle hinterlegt, -% die durch \cs{tud@multiple@setfield} geprüft und ggf. initialisert werden -% sollen. -% \begin{macrocode} -\newcommand*\tud@split@author@list{% - \authormore,\matriculationyear,\enrolmentyear,% - \matriculationnumber,\studentid,\matriculationid,% - \placeofbirth,\birthplace,\dateofbirth,\birthday,% -} -% \end{macrocode} % \end{macro}^^A \tud@newline -% \end{macro}^^A \tud@split@author@list -% \end{macro}^^A \tud@split@author -% \end{macro}^^A \tud@check@author +% \end{macro}^^A \tud@split@author@title % \begin{macro}{\maketitleonecolumn} -% \changes{v2.02}{2014/08/16}{einspaltiger Text obligatorisch}%^^A +% \changes{v2.02}{2014/08/16}{einspaltiger Text obligatorisch}^^A % \begin{macro}{\@maketitleonecolumn} -% \changes{v2.02}{2014/08/12}{entfernt}%^^A +% \changes{v2.02}{2014/08/12}{entfernt}^^A % \begin{macro}{\tud@title@twocolumn} -% \changes{v2.03}{2015/01/13}{Bugfix für falsche Position des Titels}%^^A +% \changes{v2.03}{2015/01/13}{Bugfix für falsche Position des Titels}^^A % \begin{macro}{\tud@title@twocolumn@box} % Zum Setzen eines einspaltigen Titels mit einspaltiger Zusammenfassung bei % einem Titelkopf~-- dank der Hilfe von Markus Kohm.% @@ -1076,7 +942,7 @@ \tud@title@twocolumn{\maketitle[#1]{#2}}% \fi% \else% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% @@ -1113,9 +979,9 @@ % der ggf. beachtet werden muss. % \begin{macrocode} \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% \@tempswatrue% \fi% @@ -1131,7 +997,7 @@ \vsplit\tud@title@twocolumn@box to \@tempdima% \clearpage% \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{\@tempswafalse}{}% + \tud@ifverlower{2.03}{\@tempswafalse}{}% }% % \end{macrocode} % Passt der auszugebende einspaltige Teil auf eine Seite, ist eine vertikale @@ -1151,12 +1017,12 @@ % leider nicht in allen Fällen das gewollte Ergebnis, weshalb darauf verzichtet % wird. % \begin{macrocode} - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \if@tempswa% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% You are using a two-column title along with\MessageBreak% the DDC-logo. Unfortunately in this case, the\MessageBreak% - type area hast to be adjusted manually. Please\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% @@ -1176,7 +1042,7 @@ \newcommand*\tud@letsubjectthesis{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% \ifx\@subject\@empty\else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The option `subjectthesis' was activated.\MessageBreak% The field `subject' will be overwritten with the\MessageBreak% given thesis% @@ -1192,7 +1058,7 @@ % Informationen ausgegeben. Darauf wird der Anwender ggf. hingewiesen. % \begin{macrocode} \newcommand*\tud@title@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% `\@backslashchar#1' has to be used with\MessageBreak% activated titlepage option% }% @@ -1200,9 +1066,9 @@ % \end{macrocode} % \end{macro}^^A \tud@title@wrn % \begin{macro}{\next@tdpage} -% \changes{v2.02}{2014/05/17}{entfernt}%^^A +% \changes{v2.02}{2014/05/17}{entfernt}^^A % \begin{macro}{\tud@extratitle} -% \changes{v2.02}{2014/06/23}{entfernt}%^^A +% \changes{v2.02}{2014/06/23}{entfernt}^^A % Mit \TUDScript~v2.02 wurde die Bereitstellung dieser beiden Befehle aufgrund % der zwingenden Verwendung von \KOMAScript{}~v3.12 entfernt. % \end{macro}^^A \tud@extratitle @@ -1217,11 +1083,11 @@ % % \begin{macro}{\makecover} % \changes{v2.02}{2014/06/23}{Warnung für die Option \opt{titlepage} mit dem -% Wert \val{firstiscover}}%^^A -% \changes{v2.02}{2014/08/08}{\cs{makecover} jetzt auch ohne \CD verwendbar}^^A +% Wert \val{firstiscover}}^^A +% \changes{v2.02}{2014/08/08}{\cs{makecover} auch ohne \CD verwendbar}^^A % \changes{v2.02}{2014/08/12}{Satzspiegel mit \cs{coverpage\dots{}margin} -% änderbar, falls CD-Layout deaktiviert}^^A -% \changes{v2.03}{2015/01/09}{Anpassungen für neue Satzspiegelerzeugung}%^^A +% änderbar, falls CD-Layout deaktiviert}^^A +% \changes{v2.03}{2015/01/09}{Anpassungen für neue Satzspiegelerzeugung}^^A % \begin{macro}{\if@tud@cover} % Der Befehl \cs{makecover} ist für eine Umschlagseite bei einem gebundenen % Werk zu verwenden. @@ -1232,7 +1098,7 @@ % Ist die Option \opt{titlepage=firstiscover} aktiv, wird eine Warnung erzeugt. % \begin{macrocode} \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using both option `titlepage=firstiscover' and\MessageBreak% `\string\makecover' together isn't supported. The\MessageBreak% option `titlepage=firstiscover' will be ignored. If you\MessageBreak% @@ -1269,7 +1135,7 @@ \let\coverpagebottommargin\tud@dim@widemargin% \let\coverpageleftmargin\tud@dim@widemargin% \let\coverpagerightmargin\tud@dim@slimmargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagetopmargin{.5\tud@dim@both}% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% @@ -1281,7 +1147,7 @@ % anpassen zu können. Außerdem werden ein mit \cs{extatitle} gegebener % Schmutztitel ebenso ignoriert, wie Danksagung oder Einträge für die Rückseite. % \begin{macrocode} - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \KOMAoptions{titlepage=firstiscover}% \let\@extratitle\@empty% \let\@uppertitleback\@empty% @@ -1289,7 +1155,7 @@ \let\@dedication\@empty% \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false % \end{macrocode} % Der Befehl verwendet das Layout des Titels im \CD. Allerdings werden nicht % alle sondern nur für ein Cover relavante Angaben ausgegeben. Der Schalter @@ -1324,7 +1190,7 @@ \headheight=0pt% \headsep=0pt% \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% -1.25\baselineskip\relax% }{}% @@ -1350,7 +1216,7 @@ \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% \ifx\@tempa\coverpagebottommargin\relax% \let\coverpagebottommargin\tud@dim@widemargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% \fi% @@ -1395,7 +1261,7 @@ % \begin{parameter}{cd} % \changes{v2.03}{2015/01/12}{neu}^^A % \begin{parameter}{cdgeometry} -% \changes{v2.02}{2014/06/23}{neu}%^^A +% \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\if@tud@cover@cdgeometry} % \begin{macro}{\if@tud@cover@cdgeometry@locked} % \begin{parameter}{pagenumber} diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx index a9eb4529fc5..e0391e6cf37 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx @@ -1,4 +1,4 @@ -% \CheckSum{117} +% \CheckSum{124} % \iffalse meta-comment % % ============================================================================ @@ -51,9 +51,9 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-twocolfix.dtx}[% - 2015/01/24 v2.03 TUD-KOMA-Script\space% + 2015/06/02 v2.04 TUD-KOMA-Script\space% %</driver> -%<package>\NeedsTeXFormat{LaTeX2e}[2011/06/27] +%<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{twocolfix}[% %<*driver|package> %!TUDVersion @@ -85,13 +85,13 @@ % % Der \LaTeXe-Kernel enthält einen Fehler, der Kapitelüberschriften im % zweispaltigen Layout höher setzt, als im einspaltigen. Der Fehler ist zwar -% schon länger bekannt,\footnote{\url{% -% http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3126}} allerdings -% noch nicht in \pkg{ltxfix2e} übernommen worden. Das Paket \pkg{twocolfix} -% soll das Problem beheben. Eine Integration dieses Bugfixes in \KOMAScript{} -% wurde bereits bei Markus Kohm angefragt,\footnote{\url{% -% http://www.komascript.de/node/1681}} jedoch von ihm bis jetzt nicht weiter -% verfolgt. +% schon länger bekannt, +% \footnote{\url{http://latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3126}} +% allerdings noch nicht in den \LaTeXe-Kernel übernommen worden. Das Paket +% \pkg{twocolfix} soll das Problem beheben. Eine Integration dieses Bugfixes in +% \KOMAScript{} wurde bereits bei Markus Kohm angefragt,% +% \footnote{\url{http://www.komascript.de/node/1681}} jedoch von ihm bis jetzt +% nicht weiter verfolgt. % % \StopEventually{\PrintIndex\PrintChanges} % @@ -118,12 +118,13 @@ \hsize\textwidth% % \end{macrocode} % Damit der Inhalt des optionale Argumentes mit den gleichen Absatzeinstellungen -% gesetzt wird, darf der Befehl \cs{@parboxrestore} nicht aufgerufen werden. -% Alternativ müsste \KOMAScript{} eine Option bereitstellen, mit der sich die -% Einstellungen für Absätze wiederherstellen lassen. -%^^A \@parboxrestore -%^^A \KOMAoptions{parskip=last} +% gesetzt wird, werden diese nach \cs{@parboxrestore} für \KOMAScript-Klassen +% wiederhergestellt. % \begin{macrocode} + \@parboxrestore% + \ifcsname KOMAClassName\endcsname% + \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% + \fi% \col@number \@ne% \ignorespaces #1\par% \ifdim\parskip>\z@\null\fi% @@ -165,6 +166,8 @@ \fi% } % \end{macrocode} +% \begin{macro}{\@topnewpage} +% \begin{macro}{\scr@topnewpage} % Nachdem der Befehl zuerst temporär definert wurde, wird nun abhängig von der % aktiven Klasse der notwendige Befehl mit der neuen Definition überschrieben. % \begin{macrocode} @@ -172,6 +175,8 @@ {\let\@topnewpage\@tempa} {\let\scr@topnewpage\@tempa} % \end{macrocode} +% \end{macro}^^A \scr@topnewpage +% \end{macro}^^A \@topnewpage % % \iffalse %</package> diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx index be534f751b4..a58981d1d1a 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx @@ -1,4 +1,4 @@ -% \CheckSum{101} +% \CheckSum{100} % \iffalse meta-comment % % ============================================================================ @@ -58,14 +58,14 @@ % % \selectlanguage{ngerman} % -% \changes{v1.0}{2012/10/31}{\TUDScript-Bundle erstmalig veröffentlicht}%^^A +% \changes{v1.0}{2012/10/31}{\TUDScript-Bundle erstmalig veröffentlicht}^^A % \changes{v2.00}{2014/04/21}{\TUDScript-Bundle auf \pkg{docstrip} umgestellt -% und stark erweitert}%^^A +% und stark erweitert}^^A % \changes{v2.01}{2014/04/24}{Anpassungen in Dokumentation und -% Schriftinstallation, Fehlerkorrekturen}%^^A -% \changes{v2.02}{2014/05/14}{Problem globaler Längenänderungen behoben}%^^A +% Schriftinstallation, Fehlerkorrekturen}^^A +% \changes{v2.02}{2014/05/14}{Problem globaler Längenänderungen behoben}^^A % \changes{v2.02}{2014/05/16}{Umbennenung mehrerer Befehle zur Kompatibilität -% mit anderen Paketen}%^^A +% mit anderen Paketen}^^A % % \section{Version des \texorpdfstring{\TUDScript}{TUD-KOMA-Script}-Bundles} % @@ -74,18 +74,17 @@ % % \StopEventually{\PrintIndex\PrintChanges} % -% \begin{macro}{\TUDVersion} -% Dieses Makro gibt an, zu welcher \TUDScript"~Version die Datei gehört. Die -% Klassen und Pakete des Bundles verwenden dieses Makro außerdem zur eigenen -% Versionsangabe. -% \begin{macro}{\@TUDVersion} +% \begin{macro}{\TUDVersion} +% \begin{macro}{\@TUDVersion} % \changes{v2.02}{2014/07/22}{Expandieren der Versionsangabe bei der Verwendung -% von \pkg{docstrip} ermöglicht}%^^A -% Je nachdem, ob \cs{TUDVersion} bereits definiert ist oder nicht, wird die -% Definition überprüft oder eine globale Definition vorgenommen. Da das Ganze -% auch bei der Erstellung der Dokumentation geschieht, wird \cs{makeatletter} -% innerhalb einer Gruppe verwendet. -% \ToDo{Version eintragen}[v2.xx] +% von \pkg{docstrip} ermöglicht}^^A +% Das Makro \cs{TUDVersion} gibt an, zu welcher \TUDScript"~Version die Datei +% gehört. Die Klassen und Pakete des Bundles verwenden dieses Makro außerdem +% zur eigenen Versionsangabe. Je nachdem, ob \cs{TUDVersion} bereits definiert +% ist oder nicht, wird mit \cs{@TUDVersion} die Definition überprüft oder eine +% globale Definition vorgenommen. Da das Ganze auch bei der Erstellung der +% Dokumentation geschieht, wird \cs{makeatletter} innerhalb einer Gruppe +% verwendet. % \begin{macrocode} \begingroup% \catcode`\@11\relax% @@ -115,9 +114,10 @@ %<*!(package|class)> \fi% %</!(package|class)> - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% % \end{macrocode} +% \ToDo{Version eintragen}[Release] % \end{macro}^^A \@TUDVersion % \end{macro}^^A \TUDVersion % @@ -144,6 +144,7 @@ % \fi % % \begin{macro}{\tudscrmail} +% Die E-Mail-Adresse für Supportanfragen. % \begin{macrocode} \providecommand*\tudscrmail{tudscr@gmail.com} % \end{macrocode} @@ -153,63 +154,90 @@ %<*class> % \fi % -% \begin{macro}{\cls@name} -% \begin{macro}{\scrcls@name} -% \begin{macro}{\tudcls@name} -% Für die \TUDScript-Klassen werden hier einmalig die Namen der jeweiligen -% Klassen definiert. +% \begin{macro}{\TUD@ProvidesClass} +% \changes{v2.04}{2015/06/13}{neu}^^A +% \begin{macro}{\TUD@ProvidesWrapperClass} +% \changes{v2.04}{2015/06/13}{neu}^^A +% \begin{macro}{\TUDClassName} +% \changes{v2.04}{2015/06/12}{neu}^^A +% \begin{macro}{\TUDClassName@Parent} +% \changes{v2.04}{2015/06/12}{neu}^^A +% \begin{macro}{\TUDClassName@KOMA} +% \changes{v2.04}{2015/06/12}{neu}^^A +% \begin{macro}{\TUD@ClassInfo} +% \changes{v2.04}{2015/06/13}{neu}^^A +% Mit diesen Befehlen erfolgt die Versionsangabe der \TUDScript-Klassen beim +% Laden. Dabei werden hier einmalig die Namen der jeweiligen Klassen definiert. +% Hierfür werden die Befehle \cs{TUD@ProvidesClass} für die Hauptklassen und +% \cs{TUD@ProvidesWrapperClass} für auf diesen aufbauende Wrapper-Klassen +% genutzt. Das erste Argument ist die zu definierende Klasse, das zweite +% Argument entspricht der Basis-Klasse. Das dritte Argument enthält eine kurze +% Beschreibung. % \begin{macrocode} -%<*article> -\newcommand*\cls@name{article} -\newcommand*\scrcls@name{scrartcl} -\newcommand*\tudcls@name{tudscrartcl} -%</article> -%<*report> -\newcommand*\cls@name{report} -\newcommand*\scrcls@name{scrreprt} -\newcommand*\tudcls@name{tudscrreprt} -%</report> -%<*book> -\newcommand*\cls@name{book} -\newcommand*\scrcls@name{scrbook} -\newcommand*\tudcls@name{tudscrbook} -%</book> -%<*doc> -\newcommand*\cls@name{doc} -\newcommand*\scrcls@name{scrdoc} -\newcommand*\tudcls@name{tudscrdoc} -%</doc> -%<*inherit> -\newcommand*\tudinh@name{tudscrreprt} -%</inherit> -% \end{macrocode} -% \end{macro}^^A \tudcls@name -% \end{macro}^^A \scrcls@name -% \end{macro}^^A \cls@name -% Der Quelltext für das Bereitstellen der Klassen. Es wird als Basis die -% korrespondierende \KOMAScript-Klasse geladen. -% \begin{macrocode} -%<*article|book|report> -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesClass{\tudcls@name}[% +%<*book|report|article|doc> +\newcommand*\TUD@ProvidesClass[3]{% + \newcommand*\TUDClassName@KOMA{#2}% + \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% + \ProvidesClass{#1}[% +%!TUDVersion + ^^J#3 (#2)% + ]% + \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% +} +%</book|report|article|doc> +%<*poster|manual> +\newcommand*\TUD@ProvidesWrapperClass[3]{% + \newcommand*\TUDClassName@Parent{#2}% + \newcommand*\TUDClassName{#1}% + \ProvidesClass{#1}[% %!TUDVersion - document class (\cls@name)% -] + ^^J#3 (#2)% + ]% + \TUD@ClassInfo% +} +%</poster|manual> % \end{macrocode} % Beim Verwenden der Klassen wird in der log-Datei ein Vermerk mit \cs{typeout} % erstellt. % \begin{macrocode} -\typeout{The Corporate Design of Technische Universitaet Dresden} -\typeout{Class: \tudcls@name} -\typeout{Version: \TUDVersion} -\typeout{Author: Falk Hanisch (\tudscrmail)} -\typeout{http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} -%</article|book|report> +\providecommand*\TUD@ClassInfo{% + \typeout{+---------------------------------------------------------------} + \typeout{| The Corporate Design of Technische Universitaet Dresden} + \typeout{| Class: \TUDClassName} + \typeout{| Version: \TUDVersion} + \typeout{| Author: Falk Hanisch (\tudscrmail)} + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} + \typeout{+---------------------------------------------------------------} +} % \end{macrocode} +% Hier erfolgt die Indentifizierung und die Zuweisung der Klassennamen. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +%<book>\TUD@ProvidesClass{tudscrbook}{scrbook}{document class} +%<report>\TUD@ProvidesClass{tudscrreprt}{scrreprt}{document class} +%<article>\TUD@ProvidesClass{tudscrartcl}{scrartcl}{document class} +%<*doc> +\TUD@ProvidesClass{tudscrdoc}{scrdoc}{% + internal source code documentation class% +} +%</doc> +%<poster>\TUD@ProvidesWrapperClass{tudscrposter}{tudscrartcl}{poster class} +%<*manual> +\TUD@ProvidesWrapperClass{tudscrman}{tudscrreprt}{% + internal manual class% +} +%</manual> +% \end{macrocode} +% \end{macro}^^A \TUD@ClassInfo +% \end{macro}^^A \TUDClassName@KOMA +% \end{macro}^^A \TUDClassName@Parent +% \end{macro}^^A \TUDClassName +% \end{macro}^^A \TUD@ProvidesWrapperClass +% \end{macro}^^A \TUD@ProvidesClass % % \iffalse %</class> -%<*package&tudscr> +%<*package&(supervisor|comp|manual)> % \fi % % \subsection{Verwendbarkeit von \TUDScript-Paketen} @@ -217,21 +245,21 @@ % Einige Pakete sind nur mit den \TUDScript-Klassen verwendbar. Diese erzeugen % einen Fehler, wenn sie nicht mit diesen verwendet werden. % \begin{macrocode} -\@ifundefined{tudcls@name}{% +\@ifundefined{TUDClassName}{% \PackageError{% -%<comp> tudscrcomp% -%<manual> tudscrmanual% %<supervisor> tudscrsupervisor% +%<comp> tudscrcomp% +%<manual> tudscrman% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrartcl, tudscrreprt, tudscrbook)% + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).% } \endinput }{} % \end{macrocode} % % \iffalse -%</package&tudscr> +%</package&(supervisor|comp|manual)> % \fi % % \subsection{Das \TUDScript-Logo} diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr.ins b/Master/texmf-dist/source/latex/tudscr/tudscr.ins index 2f87876fcdc..8cc89fe8121 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscr.ins +++ b/Master/texmf-dist/source/latex/tudscr/tudscr.ins @@ -70,19 +70,19 @@ \from{tudscr-layout.dtx}{class,book,option}% \from{tudscr-frontmatter.dtx}{class,book,option}% \from{tudscr-title.dtx}{class,book,option}% - \from{tudscr-misc.dtx}{class,book,option}% \from{tudscr-comp.dtx}{class,book,option}% - \from{tudscr-base.dtx}{execute}% + \from{tudscr-misc.dtx}{class,book,option}% + \from{tudscr-misc.dtx}{class,execute}% + \from{tudscr-base.dtx}{class,body}% \from{tudscr-fonts.dtx}{class,body}% - \from{tudscr-color.dtx}{class,body}% \from{tudscr-fields.dtx}{class,body}% \from{tudscr-locale.dtx}{class,book,body}% \from{tudscr-pagestyle.dtx}{class,book,body}% \from{tudscr-layout.dtx}{class,book,body}% \from{tudscr-frontmatter.dtx}{class,book,body}% \from{tudscr-title.dtx}{class,book,body}% - \from{tudscr-misc.dtx}{class,book,body}% \from{tudscr-comp.dtx}{class,book,body}% + \from{tudscr-misc.dtx}{class,book,body}% } \file{tudscrreprt.cls}{% \from{tudscr-version.dtx}{class,report}% @@ -92,19 +92,19 @@ \from{tudscr-layout.dtx}{class,report,option}% \from{tudscr-frontmatter.dtx}{class,report,option}% \from{tudscr-title.dtx}{class,report,option}% - \from{tudscr-misc.dtx}{class,report,option}% \from{tudscr-comp.dtx}{class,report,option}% - \from{tudscr-base.dtx}{execute}% + \from{tudscr-misc.dtx}{class,report,option}% + \from{tudscr-misc.dtx}{class,execute}% + \from{tudscr-base.dtx}{class,body}% \from{tudscr-fonts.dtx}{class,body}% - \from{tudscr-color.dtx}{class,body}% \from{tudscr-fields.dtx}{class,body}% \from{tudscr-locale.dtx}{class,report,body}% \from{tudscr-pagestyle.dtx}{class,report,body}% \from{tudscr-layout.dtx}{class,report,body}% \from{tudscr-frontmatter.dtx}{class,report,body}% \from{tudscr-title.dtx}{class,report,body}% - \from{tudscr-misc.dtx}{class,report,body}% \from{tudscr-comp.dtx}{class,report,body}% + \from{tudscr-misc.dtx}{class,report,body}% } \file{tudscrartcl.cls}{% \from{tudscr-version.dtx}{class,article}% @@ -114,32 +114,81 @@ \from{tudscr-layout.dtx}{class,article,option}% \from{tudscr-frontmatter.dtx}{class,article,option}% \from{tudscr-title.dtx}{class,article,option}% - \from{tudscr-misc.dtx}{class,article,option}% \from{tudscr-comp.dtx}{class,article,option}% - \from{tudscr-base.dtx}{execute}% + \from{tudscr-misc.dtx}{class,article,option}% + \from{tudscr-misc.dtx}{class,execute}% + \from{tudscr-base.dtx}{class,body}% \from{tudscr-fonts.dtx}{class,body}% - \from{tudscr-color.dtx}{class,body}% \from{tudscr-fields.dtx}{class,body}% \from{tudscr-locale.dtx}{class,article,body}% \from{tudscr-pagestyle.dtx}{class,article,body}% \from{tudscr-layout.dtx}{class,article,body}% \from{tudscr-frontmatter.dtx}{class,article,body}% \from{tudscr-title.dtx}{class,article,body}% - \from{tudscr-misc.dtx}{class,article,body}% \from{tudscr-comp.dtx}{class,article,body}% + \from{tudscr-misc.dtx}{class,article,body}% + } +} +\generate{% + \usepreamble\defaultpreamble% + \file{tudscrfonts.sty}{% + \from{tudscr-version.dtx}{package}% + \from{tudscr-fonts.dtx}{package,identify}% + \from{tudscr-base.dtx}{load}% + \from{tudscr-comp.dtx}{package,preset,fonts}% + \from{tudscr-fonts.dtx}{package,option}% + \from{tudscr-comp.dtx}{package,option,fonts}% + \from{tudscr-misc.dtx}{package,execute,fonts}% + \from{tudscr-fonts.dtx}{package,body}% + \from{tudscr-comp.dtx}{package,body,fonts}% } +% \file{tudscrfontsizes.sty}{% +% \from{tudscr-version.dtx}{package}% +% \from{tudscr-fonts.dtx}{package,identify,fontsizes}% +% \from{tudscr-fonts.dtx}{package,body,fontsizes}% +% } +% \file{tudscrsize10pt.clo}{% +% \from{tudscr-version.dtx}{package}% +% \from{tudscr-fonts.dtx}{fontsizes,10pt}% +% } +% \file{tudscrsize11pt.clo}{% +% \from{tudscr-version.dtx}{package}% +% \from{tudscr-fonts.dtx}{fontsizes,11pt}% +% } +% \file{tudscrsize12pt.clo}{% +% \from{tudscr-version.dtx}{package}% +% \from{tudscr-fonts.dtx}{fontsizes,12pt}% +% } } \generate{% \usepreamble\defaultpreamble% \file{tudscrsupervisor.sty}{% - \from{tudscr-version.dtx}{package,supervisor,tudscr}% + \from{tudscr-version.dtx}{package,supervisor}% \from{tudscr-supervisor.dtx}{package}% \from{tudscr-fields.dtx}{package,supervisor}% \from{tudscr-locale.dtx}{package,supervisor}% } +} +%\generate{% +% \usepreamble\defaultpreamble% +% \file{tudscrposter.sty}{% +% \from{tudscr-version.dtx}{package,poster}% +% \from{tudscr-poster.dtx}{package,identify}% +% \from{tudscr-base.dtx}{load}% +% \from{tudscr-poster.dtx}{package,option}% +% \from{tudscr-misc.dtx}{package,execute,poster}% +% \from{tudscr-poster.dtx}{package,body}% +% \from{tudscr-fields.dtx}{package,poster}% +% \from{tudscr-locale.dtx}{package,poster}% +% } +%} +\generate{% + \usepreamble\defaultpreamble% \file{tudscrcomp.sty}{% - \from{tudscr-version.dtx}{package,comp,tudscr}% - \from{tudscr-comp.dtx}{package}% + \from{tudscr-version.dtx}{package,comp}% + \from{tudscr-comp.dtx}{package,identify}% + \from{tudscr-comp.dtx}{package,option}% + \from{tudscr-comp.dtx}{package,body}% } \file{tudscrcolor.sty}{% \from{tudscr-version.dtx}{package}% @@ -154,44 +203,29 @@ } \generate{% \usepreamble\defaultpreamble% - \file{tudscrfonts.sty}{% - \from{tudscr-version.dtx}{package}% - \from{tudscr-fonts.dtx}{package,identify}% + \file{tudscrman.cls}{% + \from{tudscr-version.dtx}{class,manual}% + \from{tudscr-manual.dtx}{class}% \from{tudscr-base.dtx}{load}% - \from{tudscr-fonts.dtx}{package,option}% - \from{tudscr-comp.dtx}{fonts,option}% - \from{tudscr-fonts.dtx}{package,execute}% - \from{tudscr-fonts.dtx}{package,body}% - } -} -\generate{% - \usepreamble\defaultpreamble% - \file{tudscrdoc.cls}{% - \from{tudscr-version.dtx}{class,doc}% - \from{tudscr-doc.dtx}{class,doc}% - \from{tudscr-misc.dtx}{class,doc}% + \from{tudscr-manual.dtx}{class,option}% + \from{tudscr-misc.dtx}{class,inherit,execute}% + \from{tudscr-manual.dtx}{class,body}% } -} -\generate{% - \usepreamble\defaultpreamble% \file{tudscrman.sty}{% - \from{tudscr-version.dtx}{package,manual,tudscr}% + \from{tudscr-version.dtx}{package,manual}% \from{tudscr-manual.dtx}{package,identify}% \from{tudscr-base.dtx}{load}% \from{tudscr-manual.dtx}{package,option}% - \from{tudscr-base.dtx}{}% + \from{tudscr-misc.dtx}{}% \from{tudscr-manual.dtx}{package,body}% - \from{tudscr-misc.dtx}{package,manual}% } +} +\generate{% \usepreamble\defaultpreamble% - \file{tudscrman.cls}{% - \from{tudscr-version.dtx}{class,inherit}% - \from{tudscr-manual.dtx}{class,identify}% - \from{tudscr-base.dtx}{load}% - \from{tudscr-manual.dtx}{class,option}% - \from{tudscr-base.dtx}{execute,inherit}% - \from{tudscr-manual.dtx}{class,body}% - \from{tudscr-misc.dtx}{class,manual}% + \file{tudscrdoc.cls}{% + \from{tudscr-version.dtx}{class,doc}% + \from{tudscr-doc.dtx}{class,doc}% + \from{tudscr-manual.dtx}{class,doc}% } } \endbatchfile diff --git a/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex b/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex index 48d31370449..8cf3fc82891 100644 --- a/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex +++ b/Master/texmf-dist/source/latex/tudscr/tudscrsource.tex @@ -52,48 +52,51 @@ sondern um den dokumentierten Quelltext der Implementierung von \TUDScript. Das Anwenderhandbuch kann über die Konsole respektive das Terminal mit dem Aufruf \texttt{texdoc tudscr} geöffnet werden. -\ToDo{% - \begin{itemize} - \item Schnittrand für Poster (Welches Paket? außen- und/oder innenliegend) - \item farbige Tabellen wie in \cls{tudmathposter}? - \item Schriftgrößendateien erstellen (\cs{@fontsizefilebase} umdefinieren) - \item evtl. \cs{changefontsizes} anpassen - \end{itemize} -}[v2.04] -\ToDo{Laden von \pkg{crop} mit Optionen verzögern?}[v2.04] -\ToDo{Schnittmarken mit \pkg{geometry} ermöglichen}[v2.04] -\ToDo{verzögertes Laden von Paketen und dergleichen mit AtEndPreamble möglichst -entfernen, bzw. mit BeforePackage und AfterPackage arbeiten, ganz zum Schluss -im Zweifelsfall selbst laden}[v2.04] - \tableofcontents \clearpage \DocInclude{tudscr-version} \DocInclude{tudscr-base} +\DocInclude{tudscr-fonts} \DocInclude{tudscr-fields} \DocInclude{tudscr-locale} -\DocInclude{tudscr-fonts} \DocInclude{tudscr-pagestyle} \DocInclude{tudscr-layout} -\DocInclude{tudscr-title} \DocInclude{tudscr-frontmatter} +\DocInclude{tudscr-title} \DocInclude{tudscr-misc} +\DocInclude{tudscr-comp} + \DocInclude{tudscr-color} \DocInclude{tudscr-supervisor} -\DocInclude{tudscr-comp} +\DocInclude{tudscr-poster} \DocInclude{tudscr-twocolfix} \DocInclude{tudscr-mathswap} -%\DocInclude{tudscr-manual} %\DocInclude{tudscr-doc} +%\DocInclude{tudscr-manual} +% %\DocInclude{install/tudscr-metrics} %\DocInclude{install/tudscr-scripts} \addpart{\appendixname} +\vspace*{-2\baselineskip} \phantomsection\addsectiontocentry{}{\indexname} -\PrintIndex +\begingroup + \makeatletter + \l@addto@macro\IndexParms{\hbadness=10000} + \makeatother + \PrintIndex +\endgroup +% \clearpage \phantomsection\addsectiontocentry{}{Change History} -\PrintChanges +\begingroup + \makeatletter + \def\@oddfoot{Change History\hfill\thepage} + \def\@evenfoot{Change History\hfill\thepage} + \makeatother + \PrintChanges + \clearpage +\endgroup \end{document} diff --git a/Master/texmf-dist/tex/latex/tudscr/mathswap.sty b/Master/texmf-dist/tex/latex/tudscr/mathswap.sty index 0ea5c29909a..292fd15c671 100644 --- a/Master/texmf-dist/tex/latex/tudscr/mathswap.sty +++ b/Master/texmf-dist/tex/latex/tudscr/mathswap.sty @@ -34,9 +34,9 @@ %% ============================================================================ %% %%% From File: tudscr-mathswap.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{mathswap}[% - 2015/06/11 v2.03a TUD-KOMA-Script + 2015/07/02 v2.04 TUD-KOMA-Script package (swap mathematical separators)% ] @@ -55,6 +55,8 @@ \mathcode\expandafter`.="8000% \mathswapon% } +\newcommand*\ms@commaswap{} +\newcommand*\ms@dotswap{} \newcommand*\mathswapon{% \def\ms@commaswap{\@commaswap}% \def\ms@dotswap{\@dotswap}% @@ -63,18 +65,7 @@ \def\ms@commaswap{\ms@commachar}% \def\ms@dotswap{\ms@dotchar}% } -\newcommand*\ms@commaswap{} -\newcommand*\ms@dotswap{} -\newcommand*\ms@token{} -\begingroup% - \catcode`,=\active% - \gdef,{\futurelet\ms@token\ms@smartcomma}% - \catcode`.=\active% - \gdef.{\futurelet\ms@token\ms@smartdot}% -\endgroup% -\def\ms@smartcomma{\ms@ifnum{\ms@commaswap}{\ms@commachar}} -\def\ms@smartdot{\ms@ifnum{\ms@dotswap}{\ms@dotchar}} -\def\ms@ifnum#1#2{% +\newcommand*\ms@ifnum[2]{% \ifx\ms@token0\ms@@ifnum{#1}\else% \ifx\ms@token1\ms@@ifnum{#1}\else% \ifx\ms@token2\ms@@ifnum{#1}\else% @@ -88,13 +79,22 @@ #2% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% } -\def\ms@@ifnum#1{% +\newcommand*\ms@@ifnum[1]{% \begingroup% - \mathcode\expandafter`,=\the\ms@comma% - \mathcode\expandafter`.=\the\ms@dot% - #1% + \mathcode\expandafter`,=\the\ms@comma% + \mathcode\expandafter`.=\the\ms@dot% + #1% \endgroup% } +\newcommand*\ms@token{} +\begingroup% + \catcode`,=\active% + \gdef,{\futurelet\ms@token\ms@smartcomma}% + \catcode`.=\active% + \gdef.{\futurelet\ms@token\ms@smartdot}% +\endgroup% +\newcommand*\ms@smartcomma{\ms@ifnum{\ms@commaswap}{\ms@commachar}} +\newcommand*\ms@smartdot{\ms@ifnum{\ms@dotswap}{\ms@dotchar}} \endinput %% %% End of file `mathswap.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls index f1811041cfa..fb8ca334a57 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrartcl.cls @@ -11,19 +11,19 @@ %% tudscr-layout.dtx (with options: `class,article,option') %% tudscr-frontmatter.dtx (with options: `class,article,option') %% tudscr-title.dtx (with options: `class,article,option') -%% tudscr-misc.dtx (with options: `class,article,option') %% tudscr-comp.dtx (with options: `class,article,option') -%% tudscr-base.dtx (with options: `execute') +%% tudscr-misc.dtx (with options: `class,article,option') +%% tudscr-misc.dtx (with options: `class,execute') +%% tudscr-base.dtx (with options: `class,body') %% tudscr-fonts.dtx (with options: `class,body') -%% tudscr-color.dtx (with options: `class,body') %% tudscr-fields.dtx (with options: `class,body') %% tudscr-locale.dtx (with options: `class,article,body') %% tudscr-pagestyle.dtx (with options: `class,article,body') %% tudscr-layout.dtx (with options: `class,article,body') %% tudscr-frontmatter.dtx (with options: `class,article,body') %% tudscr-title.dtx (with options: `class,article,body') -%% tudscr-misc.dtx (with options: `class,article,body') %% tudscr-comp.dtx (with options: `class,article,body') +%% tudscr-misc.dtx (with options: `class,article,body') %% %% ============================================================================ %% @@ -70,22 +70,29 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\newcommand*\cls@name{article} -\newcommand*\scrcls@name{scrartcl} -\newcommand*\tudcls@name{tudscrartcl} -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesClass{\tudcls@name}[% - 2015/06/11 v2.03a TUD-KOMA-Script - document class (\cls@name)% -] -\typeout{The Corporate Design of Technische Universitaet Dresden} -\typeout{Class: \tudcls@name} -\typeout{Version: \TUDVersion} -\typeout{Author: Falk Hanisch (\tudscrmail)} -\typeout{http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} +\newcommand*\TUD@ProvidesClass[3]{% + \newcommand*\TUDClassName@KOMA{#2}% + \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% + \ProvidesClass{#1}[% + 2015/07/02 v2.04 TUD-KOMA-Script + ^^J#3 (#2)% + ]% + \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% +} +\providecommand*\TUD@ClassInfo{% + \typeout{+---------------------------------------------------------------} + \typeout{| The Corporate Design of Technische Universitaet Dresden} + \typeout{| Class: \TUDClassName} + \typeout{| Version: \TUDVersion} + \typeout{| Author: Falk Hanisch (\tudscrmail)} + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} + \typeout{+---------------------------------------------------------------} +} +\NeedsTeXFormat{LaTeX2e} +\TUD@ProvidesClass{tudscrartcl}{scrartcl}{document class} \@ifundefined{TUDScript}{% \DeclareRobustCommand{\TUDScript}{% \ifdin{TUD-KOMA-SCRIPT}{% @@ -97,7 +104,7 @@ \RequirePackage{tudscrbase}[\TUDVersion] %%% From File: tudscr-fonts.dtx \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% @@ -108,74 +115,30 @@ \newcommand*\tud@dinbold{0m6} \newif\if@tud@fontspec \TUD@key{fontspec}[true]{% + \ClassWarning{\TUDClassName}% + {% + The option key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% } \AtEndOfClass% {% - \TUD@key{fontspec}[] + \TUD@key{fontspec}[]% {% - \ClassError{\tudcls@name} + \ClassError{\TUDClassName}% {Option `fontspec' too late}{% Option `fontspec' can only be set while loading the\MessageBreak% - class `\tudcls@name' + class `\TUDClassName' but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% \if@tud@fontspec% - \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}% - {% - You must not load the package `fontspec' as it is\MessageBreak% - loaded automatically at the end of the preamble.\MessageBreak% - If you want to pass options to `fontspec' use\MessageBreak% - `\string\PassOptionsToPackage{<option list>}{fontspec}' - }% - ]{fontspec} - \fi% -} -\AtEndPreamble{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@univers.fd}}% - }% - \def\@tempb#1{% - \ClassInfoNoLine{\tudcls@name}{% - `#1' fonts not found for math typesetting% - }% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \def\@tempb#1{% - \ClassWarningNoLine{\tudcls@name}{% - `#1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - Please use on of the installation scripts out of the\MessageBreak% - tudscr-bundle, which suits to your OS or choose a\MessageBreak% - possible encoding. A fallback layout is used% - }% - }% - \fi% - \@tempa{\@tud@universtrue}{\@tempb{Univers}}% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@dinbold.fd}}% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \fi% - \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}% - \if@tud@fontspec% - \UnPreventPackageFromLoading{fontspec}% - \if@tud@univers\if@tud@dinbold% - \PassOptionsToPackage{no-math}{fontspec}% - \fi\fi% \RequirePackage{fontspec}[2014/06/21]% \fi% } +\AfterPackage*{fontspec}{\@tud@fontspectrue} \RequirePackage{textcase}[2004/10/07] \newcommand*\tud@uclcnotmath{% \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% @@ -228,77 +191,104 @@ {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{pdftex}{13},{pdflatex}{13}% + {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@cdfont{0}% \if@atdocument\tud@font@set\fi% - \or% + \or% true \def\tud@cdfont{1}% \if@atdocument\tud@font@set\fi% - \or% + \or% heavy \def\tud@cdfont{2}% \if@atdocument\tud@font@set\fi% - \or% + \or% nodin \renewcommand*\tud@font@heading{\tud@RaggedRight}% - \or% - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright} - \or% + \or% din + \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \or% nohead \TUDoptions{cdhead=false}% - \or% + \or% head \TUDoptions{cdhead=true}% - \or% + \or% heavyhead \TUDoptions{cdhead=heavy}% - \or% + \or% nomath \TUDoptions{cdmath=false}% - \or% + \or% math \TUDoptions{cdmath=true}% - \or% + \or% upgreek \TUDoptions{slantedgreek=false}% - \or% + \or% slgreek \TUDoptions{slantedgreek=true}% - \or% + \or% fontspec \TUDoptions{fontspec=true}% - \or% + \or% nofontspec \TUDoptions{fontspec=false}% \fi% + \else% + \KOMAoptions{fontsize=#1}% + \ifcase\tud@cdfont\relax% false to true + \def\tud@cdfont{1}% + \if@atdocument\tud@font@set\fi% + \fi% \fi% } -\AtBeginDocument{\tud@font@set}% +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{fontsize}{% + \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \FamilyKeyStateProcessed% +} \bool@lock{@tud@cdmath} \TUD@key{cdmath}[true]{% \TUD@set@numkey{cdmath}{@tempa}{% \TUD@numkey@bool,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% - {upright}{2},{upgreek}{2},{uprightgreek}{2},{uprightGreek}{2},% - {slanted}{3},{slgreek}{3},{slantedgreek}{3},{slantedGreek}{3}% + {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% + {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \TUD@std@ifkey@lock{slantedgreek}{false}% \if@atdocument\tud@font@math@set\fi% - \or% + \or% true \bool@set@lock{@tud@cdmath}{true}% - \TUD@std@ifkey@lock{slantedgreek}{true}% \if@atdocument\tud@font@math@set\fi% - \or + \or% upgreek \TUDoptions{slantedgreek=false}% - \or + \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% } -\newif\if@tud@slantedgreek -\TUD@key@lock{slantedgreek}[true]{% - \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}% +\bool@lock{@tud@slantedgreek} +\TUD@key{slantedgreek}[true]{% + \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \bool@set@lock{@tud@slantedgreek}{#1}% \if@atdocument\tud@font@math@set\fi% \fi% } +\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} %%% From File: tudscr-pagestyle.dtx +\newcommand*\tud@ps@list{} +\newcommand*\tud@iftudps[3]{% + \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% +} +\newif\if@tud@ddc@internal +\newcommand*\tud@clearpage@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{\clearpage}{}% + \fi\fi% +} +\newcommand*\tud@pagestyle@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi\fi% +} \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% @@ -309,88 +299,72 @@ {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},% {white}{7},{cdwhite}{7}% } -\newcommand*\tud@ddc@save{} -\newif\if@tud@ddc@save -\@tud@ddc@savetrue +\newif\if@tud@ddc@auto \newcommand*\tud@ddc{0} -\newif\if@tud@ddc@autoset \TUD@key{ddc}[true]{% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \ifcase\tud@ddc\relax% - \@tud@ddc@autosetfalse% + \if@tud@ddc@internal% + \@tud@ddc@autofalse% \else% - \@tud@ddc@autosettrue% + \@tud@ddc@autotrue% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddcfoot=false}% + \@tud@ddc@internalfalse% \fi% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@head{0} \TUD@key{ddchead}[true]{% - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@head\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@head\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% - \ifcase\tud@ddc@head\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddcfoot=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@foot{0} \TUD@key{ddcfoot}[true]{% - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@foot\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@foot\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% - \ifcase\tud@ddc@foot\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddchead=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@check{% \let\@tempa\tud@ddc@head% \let\@tempb\tud@ddc@foot% - \if@tud@ddc@autoset% - \ifx\tud@@headlogo\@empty% + \if@tud@ddc@auto% + \ifdefvoid{\@headlogo}{% \let\@tempa\tud@ddc% \let\@tempb\z@% - \else% + }{% \let\@tempa\z@% \let\@tempb\tud@ddc% - \fi% + }% \fi% - \iftudscrverlower{2.03}{% - \ifcase\@tempb\relax\ifx\tud@@footlogo\@empty\else\let\@tempb\m@ne\fi\fi% + \tud@ifverlower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% + \fi% }{}% } -\newcommand*\iftudpagestyle[3]{% - \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% -} -\newcommand*\tud@ps@list{} -\forcsvlist{\listadd\tud@ps@list}{% - tudheadings,plain.tudheadings,empty.tudheadings% -} \newlength\tud@dim@extrabottommargin \TUD@key{extrabottommargin}{% \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% @@ -399,7 +373,7 @@ \fi% } \cs@lock{tud@head@font}{0} -\newcommand*\tud@head@bar{0} +\cs@lock{tud@head@bar}{0} \bool@lock{@tud@head@widebar} \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% @@ -412,34 +386,38 @@ {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% - {bicolor}{5},{bicolour}{5},{twocolor}{5},{twocolour}{5},% - {bichrome}{5},{bichromatic}{5},{dichrome}{5},{dichromatic}{5},% - {color}{5},{colour}{5},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5},% - {textwidth}{6},{slim}{6},{slimhead}{6},{nowide}{6},{nowidehead}{6},% - {paperwidth}{7},{wide}{7},{widehead}{7}% + {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},% + {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},% + {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},% + {color}{6},{colour}{6},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% + {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@head@font}{0}% - \or% + \or% true \cs@set@lock{tud@head@font}{1}% - \or% + \or% heavy \cs@set@lock{tud@head@font}{2}% - \or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \or% nocolor + \cs@set@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% color + \cs@set@lock{tud@head@bar}{3}% + \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% - \or% + \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% \fi% \fi% } -\newif\if@tud@footcolor +\TUD@AfterPackage@Set{scrlayer-scrpage} +\newif\if@tud@foot@colored \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -450,13 +428,13 @@ {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% - \or% + \or% true \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% @@ -467,11 +445,12 @@ {\footnotesize\headmark}% \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% }% + \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% - \or% - \@tud@footcolorfalse% - \or% - \@tud@footcolortrue% + \or% nocolor + \@tud@foot@coloredfalse% + \or% color + \@tud@foot@coloredtrue% \fi% \else% \TUDoptions{extrabottommargin=#1}% @@ -521,8 +500,9 @@ \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% \TUD@numkey@bool,% {typearea}{0},% - {tud}{1},{asymmetric}{1},{cd}{1},% + {cd}{1},{tud}{1},{asymmetric}{1},% {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% {twoside}{3},{balanced}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -540,46 +520,51 @@ {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% - {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% - {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% - {color}{4},{colour}{4},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5}% + {colorbar}{3},{barcolor}{3},{colourbar}{3},{barcolour}{3},% + {bicolor}{4},{bicolour}{4},{twocolor}{4},{twocolour}{4},% + {bichrome}{4},{bichromatic}{4},{dichrome}{4},{dichromatic}{4},% + {color}{5},{colour}{5},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } \newcommand*\tud@cd{0} \TUD@key{cd}[true]{% \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \cs@std@lock{tud@layout@cover}{0}% \cs@std@lock{tud@layout@title}{0}% \cs@std@lock{tud@layout@part}{0}% - \or% + \or% true \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{1}% \cs@std@lock{tud@layout@part}{1}% - \or% + \or% litecolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{2}% \cs@std@lock{tud@layout@part}{2}% - \or% + \or% barcolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{3}% \cs@std@lock{tud@layout@part}{3}% - \or% + \or% bicolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{4}% \cs@std@lock{tud@layout@part}{4}% - \or% + \or% color \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{5}% \cs@std@lock{tud@layout@part}{5}% + \or% full + \cs@std@lock{tud@layout@cover}{1}% + \cs@std@lock{tud@layout@title}{6}% + \cs@std@lock{tud@layout@part}{6}% \fi% \if@atdocument% \tud@layout@process% \else% - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \TUD@std@numkey@lock{cdgeometry}{false}% - \else% + \else% !false \TUD@std@numkey@lock{cdgeometry}{true}% \fi% \fi% @@ -588,18 +573,20 @@ \TUD@key{cdcover}[true]{% \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@cover}{0}% - \or% + \or% true \cs@set@lock{tud@layout@cover}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@cover}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@cover}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@cover}{4}% - \or% + \or% color \cs@set@lock{tud@layout@cover}{5}% + \or% full + \cs@set@lock{tud@layout@cover}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -607,18 +594,20 @@ \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@title}{0}% - \or% + \or% true \cs@set@lock{tud@layout@title}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@title}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@title}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@title}{4}% - \or% + \or% color \cs@set@lock{tud@layout@title}{5}% + \or% full + \cs@set@lock{tud@layout@title}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -626,22 +615,34 @@ \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@part}{0}% - \or% + \or% true \cs@set@lock{tud@layout@part}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@part}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@part}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@part}{4}% - \or% + \or% color \cs@set@lock{tud@layout@part}{5}% + \or% full + \cs@set@lock{tud@layout@part}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% } +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% + \@namedef{tud@font@koma@#1}{#2\nobreak}% +} +\newcommand*\tud@font@koma@reset[1]{% + \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% +} +\newcommand*\tud@font@koma@unset[1]{% + \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% +} \newcommand*\tud@font@heading@size{} \AtEndOfClass{\let\tud@font@heading@size\size@part} \DefineFamilyMember{KOMA} @@ -650,7 +651,7 @@ \let\tud@font@heading@size\size@part% \if@atdocument% \tud@layout@process% - \ifcase\tud@layout@part\relax\else% + \ifcase\tud@layout@part\relax\else% !false \tud@font@koma@reset{part}% \tud@font@koma@reset{partnumber}% \tud@font@koma@reset{section}% @@ -665,102 +666,138 @@ \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% {new}{2},{standard}{2},{heading}{2},% - {totoc}{4},{toc}{4},{totoclevelup}{4},{toclevelup}{4},{levelup}{4},% - {totocleveldown}{5},{tocleveldown}{5},{leveldown}{5},% - {nottotoc}{6},{notoc}{6},% - {markboth}{7},{mark}{7},% - {nomarkboth}{8},{nomark}{8},% - {one}{9},{simple}{9},{single}{9},% - {multi}{10},{multiple}{10},{all}{10},{two}{10},{both}{10},{double}{10},% - {nofil}{11},{nofill}{11},{novfil}{11},{novfill}{11},% - {fil}{12},{fill}{12},{vfil}{12},{vfill}{12}% + {single}{4},{one}{4},{simple}{4},% + {multiple}{5},{multi}{5},{all}{5},{aggregate}{5},% + {two}{5},{both}{5},{double}{5},% + {nofil}{6},{nofill}{6},{novfil}{6},{novfill}{6},% + {fil}{7},{fill}{7},{vfil}{7},{vfill}{7},% + {markboth}{8},{mark}{8},% + {nomarkboth}{9},{nomark}{9},% + {nottotoc}{10},{notoc}{10},% + {totoc}{11},{toc}{11},{totoclevelup}{11},{toclevelup}{11},{levelup}{11},% + {totocleveldown}{12},{tocleveldown}{12},{leveldown}{12},% + {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% + {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } \newcommand*\tud@abstract@level{0} -\bool@lock{@tud@abstract@toc} -\newif\if@tud@abstract@toc@leveldown -\newif\if@tud@abstract@markboth +\cs@lock{tud@abstract@toc}{0} \newif\if@tud@abstract@multi +\@tud@abstract@multitrue \newif\if@tud@abstract@fil \@tud@abstract@filtrue +\newif\if@tud@abstract@markboth \TUD@key{abstract}[true]{% \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@abstract@level{0}% - \bool@std@lock{@tud@abstract@toc}{false}% - \or% + \cs@std@lock{tud@abstract@toc}{0}% + \or% true \def\tud@abstract@level{1}% - \bool@std@lock{@tud@abstract@toc}{false}% - \or% + \cs@std@lock{tud@abstract@toc}{0}% + \or% section \def\tud@abstract@level{2}% - \bool@std@lock{@tud@abstract@toc}{true}% - \or% - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@abstract@toc}{false}% - \or% - \@tud@abstract@markbothtrue% - \or% - \@tud@abstract@markbothfalse% - \or% + \cs@std@lock{tud@abstract@toc}{1}% + \or% chapter + \or% single \@tud@abstract@multifalse% - \or% + \or% multiple \@tud@abstract@multitrue% - \or% + \or% nofil \@tud@abstract@filfalse% - \or% + \or% fil \@tud@abstract@filtrue% + \or% markboth + \@tud@abstract@markbothtrue% + \or% nomarkboth + \@tud@abstract@markbothfalse% + \or% nottotoc + \cs@set@lock{tud@abstract@toc}{0}% + \or% totoc + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \else% + \cs@set@lock{tud@abstract@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{2}% + \else% + \cs@set@lock{tud@abstract@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@abstract@toc=\z@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \fi% + \ifnum\tud@abstract@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@abstract@toc}{% + \the\numexpr\tud@abstract@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } \newcommand*\tud@declaration@level{1} -\bool@lock{@tud@declaration@toc} -\newif\if@tud@declaration@toc@leveldown -\newif\if@tud@declaration@markboth +\cs@lock{tud@declaration@toc}{0} \newif\if@tud@declaration@multi -\newif\if@tud@declaration@fil \@tud@declaration@multitrue +\newif\if@tud@declaration@fil \@tud@declaration@filtrue +\newif\if@tud@declaration@markboth \TUD@key{declaration}[true]{% \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@declaration@level{0}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% true \def\tud@declaration@level{1}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% section \def\tud@declaration@level{2}% - \bool@std@lock{@tud@declaration@toc}{true}% - \or% - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@declaration@toc}{false}% - \or% - \@tud@declaration@markbothtrue% - \or% - \@tud@declaration@markbothfalse% - \or% + \cs@std@lock{tud@declaration@toc}{1}% + \or% chapter + \or% single \@tud@declaration@multifalse% - \or% + \or% multiple \@tud@declaration@multitrue% - \or% + \or% nofil \@tud@declaration@filfalse% - \or% + \or% fil \@tud@declaration@filtrue% + \or% markboth + \@tud@declaration@markbothtrue% + \or% nomarkboth + \@tud@declaration@markbothfalse% + \or% nottotoc + \cs@set@lock{tud@declaration@toc}{0}% + \or% totoc + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \else% + \cs@set@lock{tud@declaration@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{2}% + \else% + \cs@set@lock{tud@declaration@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@declaration@toc=\z@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \fi% + \ifnum\tud@declaration@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@declaration@toc}{% + \the\numexpr\tud@declaration@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } @@ -769,115 +806,97 @@ \TUD@key@lock{subjectthesis}[true]{% \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% } -%%% From File: tudscr-misc.dtx -\newcommand*\TUD@AfterPackage[2]{% - \if@atdocument#2\else\AfterPackage!{#1}{#2}\fi% -} -\newif\if@tud@symbolheadings -\TUD@key{footnotes}{% - \TUD@set@numkey{footnotes}{@tempa}{% - {nosymbolheadings}{0},{numberheadings}{0},% - {symbolheadings}{1}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% - \@tud@symbolheadingsfalse% - \or% - \@tud@symbolheadingstrue% - \fi% - \fi% -} -\newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@key[2]{% - \ClassWarning{\tudcls@name}% +\newcommand*\TUD@deprecated@key[2]{% + \ClassWarning{\TUDClassName}% {% The option key `#1' is deprecated.\MessageBreak% - It's recommended to use `#2' instead% + It's recommended to use `#2'\MessageBreak% + instead% }% + \TUDoptions{#2}% } \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{cdfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{tudfonts}[true]{% \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{heavyfont}[true]{% \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{heavyfont}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=heavy}% + \TUD@deprecated@key{heavyfont}{cdfont=heavy}% \else% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% \fi% \fi% } \TUD@key{din}[true]{% \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{din}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{din}{cdfont=din}% \else% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{din=#1}{cdfont=nodin}% \fi% \fi% } \TUD@key{nodin}[true]{% \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{nodin}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{nodin}{cdfont=nodin}% \else% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \fi% + \fi% +} +\TUD@key{noDIN}[true]{% + \TUD@set@ifkey{noDIN}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \else% + \TUD@deprecated@key{noDIN=#1}{cdfont=din}% \fi% \fi% } \TUD@key{sansmath}[true]{% \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{sansmath}{cdmath=true}% \else% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{sansmath=#1}{cdmath=false}% \fi% \fi% } \TUD@key{serifmath}[true]{% \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{serifmath}{cdmath=false}% \else% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{serifmath=#1}{cdmath=true}% \fi% \fi% } -\TUD@key{geometry}[true]{% - \tud@deprecated@key{geometry}{cdgeometry}% - \TUDoptions{cdgeometry=#1}% -} +\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} \TUD@key{barfont}[true]{% \TUD@set@numkey{barfont}{@tempa}{% \TUD@numkey@bool,% @@ -887,35 +906,32 @@ {heavy}{2},{heavyfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{barfont}{cdhead}% - \ifcase\@tempa\relax% - \TUDoptions{cdhead=false}% - \or% - \TUDoptions{cdhead=true}% - \or% - \TUDoptions{cdhead=heavy}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \or% true + \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \or% heavy + \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% \fi% \fi% } \TUD@key{widehead}[true]{% \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{widehead}{cdhead}% \if@tempswa% - \TUDoptions{cdhead=paperwidth}% + \TUD@deprecated@key{widehead}{cdhead=paperwidth}% \else% - \TUDoptions{cdhead=textwidth}% + \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% \fi% \fi% } \TUD@key{tudfoot}[true]{% \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfoot}{cdfoot}% \if@tempswa% - \TUDoptions{cdfoot=true}% + \TUD@deprecated@key{tudfoot}{cdfoot=true}% \else% - \TUDoptions{cdfoot=false}% + \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -923,27 +939,26 @@ \TUD@set@numkey{color}{@tempa}{% \TUD@numkey@bool,% {nocolor}{0},{nocolour}{0},{monochrome}{0},{monochromatic}{0},% - {lite}{1},{light}{1},{pale}{1},% - {colorlite}{1},{litecolor}{1},{colourlite}{1},{litecolour}{1},% - {colorlight}{1},{lightcolor}{1},{colourlight}{1},{lightcolour}{1},% - {colorpale}{1},{palecolor}{1},{colourpale}{1},{palecolour}{1},% - {bicolor}{2},{bicolour}{2},{twocolor}{2},{twocolour}{2},% - {bichrome}{2},{bichromatic}{2},{dichrome}{2},{dichromatic}{2},% - {color}{3},{colour}{3},% + {color}{1},{colour}{1},% + {lite}{2},{light}{2},{pale}{2},% + {colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% {full}{4},{colorfull}{4},{fullcolor}{4},{colourfull}{4},{fullcolour}{4}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{color}{cd}% - \ifcase\@tempa\relax% - \TUDoptions{cd=true}% - \or% - \TUDoptions{cd=pale}% - \or% - \TUDoptions{cd=bicolor}% - \or% - \TUDoptions{cd=color}% - \or% - \TUDoptions{cd=fullcolor}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{color=#1}{cd=true}% + \or% true + \TUD@deprecated@key{color=#1}{cd=color}% + \or% litecolor + \TUD@deprecated@key{color=#1}{cd=pale}% + \or% bicolor + \TUD@deprecated@key{color=#1}{cd=bicolor}% + \or% full + \TUD@deprecated@key{color=#1}{cd=fullcolor}% \fi% \fi% } @@ -952,198 +967,445 @@ \TUD@key{tudscrver}[last]{% \ifcsvoid{tud@v@#1}{% \def\tud@v@comp{0}% - \ClassWarningNoLine{\tudcls@name}{% + \ClassWarningNoLine{\TUDClassName}% + {% You have set option `tudscrver' to `#1', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% \FamilyKeyStateProcessed% }{% - \ClassInfoNoLine{\tudcls@name}{% + \ClassInfoNoLine{\TUDClassName}% + {% Switching compatibility level to `#1'% }% \edef\tud@v@comp{\@nameuse{tud@v@#1}}% \FamilyKeyStateProcessed% }% } -\AtEndOfClass{% +\AtEndOfClass% +{% \TUD@key{tudscrver}[]{% - \ClassError{\tudcls@name}{Option `tudscrver' too late}{% + \ClassError{\TUDClassName}% + {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\tudcls@name' but you have tried to set it up later.% + class `\TUDClassName' + but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% - \ifcsdef{scr@v@3.12}{% + \ifcsdef{scr@v@3.17}{% \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% KOMA-Script compatibility level too low% }{% \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script `version=v3.12'% + KOMA-Script compatibility option `version=v3.12'.% }% \fi% }{% - \ClassError{\tudcls@name}{% - outdated version of KOMA-Script% + \ClassError{\TUDClassName}{% + KOMA-Script v3.17 is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.12 or newer% + \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% + at least. You're using \KOMAScriptVersion% }% }% } \@namedef{tud@v@first}{0} \@namedef{tud@v@2.02}{0} +\@namedef{tud@v@v2.02}{0} \@namedef{tud@v@2.03}{1} -\@namedef{tud@v@last}{1} -\newcommand*\iftudscrverlower[1]{% +\@namedef{tud@v@v2.03}{1} +\@namedef{tud@v@2.04}{2} +\@namedef{tud@v@v2.04}{2} +\@namedef{tud@v@last}{2} +\newcommand*\tud@ifverlower[1]{% \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -%%% From File: tudscr-base.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\scrcls@name}} -\TUDExecuteOptions{cd,cdfont,tudbookmarks} +%%% From File: tudscr-misc.dtx +\newif\if@tud@symbolheadings +\TUD@key{footnotes}{% + \TUD@set@numkey{footnotes}{@tempa}{% + {nosymbolheadings}{0},{numberheadings}{0},% + {symbolheadings}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% nosymbolheadings + \@tud@symbolheadingsfalse% + \or% symbolheadings + \@tud@symbolheadingstrue% + \fi% + \fi% +} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} +\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} \TUDProcessOptions\relax -\LoadClass{\scrcls@name}[2013/12/19] +\LoadClass{\TUDClassName@KOMA}[2015/04/23] +%%% From File: tudscr-base.dtx \RequirePackage{environ}[2013/04/01] \AtEndPreamble{% \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\tudcls@name}{% - The package `graphics' was superseded by `graphicx'% + \ClassWarningNoLine{\TUDClassName}{% + The package `graphics' was superseded by `graphicx',\MessageBreak% + which is automatically loaded% }% }{}% }% \RequirePackage{graphicx}[1999/02/16]% \RequirePackage{tudscrcolor}[\TUDVersion]% } +\newcommand*\TUD@parameter@defaulthandler[2]{% + \def\@tempa{#2}% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% + \ifxnumber{\@tempb}{% + \TUD@parameter@set{#1}{columns=\@tempb}% + }{% + \TUD@parameter@set{#1}{language=\@tempb}% + }% + \fi% + }% +} +\cs@lock{tud@multicols}{1} +\newcommand*\tud@multicols@check{% + \ifdef{\multicols}{}{% + \ifnum\tud@multicols>\@ne\relax% + \ClassWarning{\TUDClassName}{% + The option `columns=\tud@multicols' is only supported,\MessageBreak% + when package `multicol' is loaded% + }% + \cs@set@lock{tud@multicols}{1}% + \fi% + }% +} %%% From File: tudscr-fonts.dtx -\AtEndPreamble{% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@font@check{% \if@tud@fontspec% - \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \newcommand*\textuln[1]{{\univln#1}}% - \newcommand*\texturn[1]{{\univrn#1}}% - \newcommand*\textubn[1]{{\univbn#1}}% - \newcommand*\textuxn[1]{{\univxn#1}}% - \newcommand*\textuls[1]{{\univls#1}}% - \newcommand*\texturs[1]{{\univrs#1}}% - \newcommand*\textubs[1]{{\univbs#1}}% - \newcommand*\textuxs[1]{{\univxs#1}}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \ClassInfoNoLine{\TUDClassName}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + }% \else% - \if@tud@univers% - \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% - \else% - \newcommand*\univln{}% - \newcommand*\univrn{}% - \newcommand*\univbn{}% - \newcommand*\univxn{}% - \newcommand*\univls{}% - \newcommand*\univrs{}% - \newcommand*\univbs{}% - \newcommand*\univxs{}% - \fi% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} + \ClassWarningNoLine{\TUDClassName}% + {% + `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + }% \fi% - \if@tud@fontspec% - \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% - \newcommand*\textdbn[1]{{\dinbn#1}}% + \@tempa{\@tud@universtrue}{\@tempc{Univers}}% + \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \undef\tud@font@check% +} +\newcommand*\tud@font@init{% + \undef\tud@font@init@fontspec% + \undef\tud@font@init@nfss% + \undef\tud@font@init% +} +\newcommand*\tud@font@init@fontspec{% + \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% + \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% + \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% + \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% + \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% + \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% + \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% + \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% + \newcommand*\textuln[1]{{\univln##1}}% + \newcommand*\texturn[1]{{\univrn##1}}% + \newcommand*\textubn[1]{{\univbn##1}}% + \newcommand*\textuxn[1]{{\univxn##1}}% + \newcommand*\textuls[1]{{\univls##1}}% + \newcommand*\texturs[1]{{\univrs##1}}% + \newcommand*\textubs[1]{{\univbs##1}}% + \newcommand*\textuxs[1]{{\univxs##1}}% + \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% + \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% + \newcommand*\textdbn[1]{{\dinbn##1}}% +} +\newcommand*\tud@font@init@nfss{% + \if@tud@univers% + \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \if@tud@dinbold% - \newcommand*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% + \newcommand*\univln{}% + \newcommand*\univrn{}% + \newcommand*\univbn{}% + \newcommand*\univxn{}% + \newcommand*\univls{}% + \newcommand*\univrs{}% + \newcommand*\univbs{}% + \newcommand*\univxs{}% + \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \DeclareTextFontCommand{\textuln}{\univln}% + \DeclareTextFontCommand{\texturn}{\univrn}% + \DeclareTextFontCommand{\textubn}{\univbn}% + \DeclareTextFontCommand{\textuxn}{\univxn}% + \DeclareTextFontCommand{\textuls}{\univls}% + \DeclareTextFontCommand{\texturs}{\univrs}% + \DeclareTextFontCommand{\textubs}{\univbs}% + \DeclareTextFontCommand{\textuxs}{\univxs}% + \if@tud@dinbold% + \newcommand*\dinbn{% + \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% + \mathversion{dinbold}% + }% + \else% + \let\dinbn\sectfont% + \fi% + \newcommand*\textdbn{}% + \DeclareTextFontCommand{\textdbn}{\dinbn}% +} +\newcommand*\cdfont[1]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \fi% +} +\providecommand*\tudfont[1]{\cdfont{#1}} +\newcommand*\textcdfont[2]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \fi% +} +\newcommand*\@cdfont[1]{% + \tud@trimfontname\@tempa{#1}% + \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% + \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% + \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% + \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% + \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% + \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \let\@tempc\relax% + \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + }}}}}}}}}}}}}}% +} +\newcommand*\tud@trimfontname[2]{% + \protected@edef\@tempa{\trim@spaces{#2}}% + \tud@lowerstring{\@tempa}{\@tempa}% + \tud@@trimfontname{ }{}% + \tud@@trimfontname{-}{}% + \tud@@trimfontname{_}{}% + \tud@@trimfontname{~}{}% + \tud@@trimfontname{ce}{}% + \tud@@trimfontname{ff}{}% + \tud@@trimfontname{univers}{}% + \tud@@trimfontname{60}{65}% + \tud@@trimfontname{light}{45}% + \tud@@trimfontname{regular}{55}% + \tud@@trimfontname{bold}{65}% + \tud@@trimfontname{black}{75}% + \tud@@trimfontname{4545}{45}% + \tud@@trimfontname{5555}{55}% + \tud@@trimfontname{6565}{65}% + \tud@@trimfontname{7575}{75}% + \tud@@trimfontname{italic}{oblique}% + \tud@@trimfontname{slanted}{oblique}% + \let#1\@tempa% +} +\newcommand*\tud@@trimfontname[2]{% + \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% + \@expandtwoargs\in@{#1}{\@tempa}% + \@whilesw\ifin@\fi{% + \expandafter\@tempb\@tempa\relax% + \@expandtwoargs\in@{#1}{\@tempa}% + }% +} +\newcommand*\mv@univers{}% +\newcommand*\mv@universbold{}% +\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@math@init{% + \if@tud@fontspec\if@tud@univers\if@tud@dinbold% + \@ifpackagewith{fontspec}{no-math}{}{% + \ClassWarningNoLine{\TUDClassName}% + {% + It's recommended to load package `fontspec' with\MessageBreak% + option `no-math'% }% + }% + \fi\fi\fi% + \if@tud@univers% + \DeclareMathVersion{univers}% + \DeclareMathVersion{universbold}% + \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% + \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% + \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% + \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% + \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% + \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% + \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% + \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% + \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \@ifpackageloaded{amsfonts}{% + \DeclareFontFamily{U}{\tud@univers a}{}% + \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% + \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% + \DeclareFontFamily{U}{\tud@univers b}{}% + \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% + \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% + \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% + }{}% + \fi% + \if@tud@dinbold% + \DeclareMathVersion{dinbold}% + \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% + \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% + \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \fi% + \@ifpackageloaded{unicode-math}{% + \let\tud@font@math@set\relax% + \bool@set@lock{@tud@cdmath}{false}% + }{% + \let\@tempb\relax% + \let\@tempc\relax% + \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% + \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% + \@tempswafalse% + \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% + \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% + \if@tempswa% + \bool@std@lock{@tud@slantedgreek}{true}% + \fi% + \tud@font@greek@loop\tud@font@greek@init% + \tud@font@math@set% + }% + \sbox\z@{\dinbn$ $}% + \undef\tud@font@math@init% +} +\AtEndPreamble% +{% + \tud@font@check% + \if@tud@fontspec% + \preto\tud@font@init\tud@font@init@fontspec% + \else% + \preto\tud@font@init\tud@font@init@nfss% + \fi% + \tud@font@init% + \tud@font@set[nomath]% + \AtBeginDocument{\tud@font@math@init}% +} +\newcommand*\tud@font@greek@init[1]{% + \ifcsdef{up#1}{}{% + \if@tempswa% + \csletcs{up#1}{tud@up#1}% + \else% + \csletcs{up#1}{#1}% + \fi% + }% + \ifcsdef{var#1}{}{% + \if@tempswa% + \csletcs{var#1}{#1}% \else% - \let\dinbn\sectfont% - \fi% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% - \fi% - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% - \DeclareMathVersion{dinbold}% - \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% - \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}% - \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}% - \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}% - \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}% - \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}% - \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}% - \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}% - \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}% - \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}% - \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}% - \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}% - \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}% - \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}% - \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}% - \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}% - \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}% - \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}% -} -\newcommand*\tud@font@set{% - \ifcase\tud@cdfont\relax% + \csletcs{var#1}{tud@var#1}% + \fi% + }% +} +\newif\if@tud@mweights +\AfterPackage*{mweights}{\@tud@mweightstrue} +\newcommand*\tud@font@set[1][]{% + \if@tud@mweights% + \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% + \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% + \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% + \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% + \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% + \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% + \fi% + \ifcase\tud@cdfont\relax% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% @@ -1153,9 +1415,17 @@ \tud@cmd@restore{familydefault}% \tud@cmd@restore{seriesdefault}% \tud@cmd@restore{shapedefault}% + \if@tud@mweights% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{false}% \cs@std@lock{tud@head@font}{0}% - \else% + \else% true/heavy \tud@cmd@store{rmdefault}% \tud@cmd@store{sfdefault}% \tud@cmd@store{ttdefault}% @@ -1165,10 +1435,18 @@ \tud@cmd@store{familydefault}% \tud@cmd@store{seriesdefault}% \tud@cmd@store{shapedefault}% + \if@tud@mweights% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{true}% \cs@std@lock{tud@head@font}{\tud@cdfont}% \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \setsansfont{Univers Light}[% BoldFont = Univers,% ItalicFont = Univers Light Oblique,% @@ -1179,7 +1457,7 @@ ItalicFont = LMMonoLt10-Oblique,% BoldItalicFont = LMMonoSlant10-Regular,% ]% - \else% + \else% heavy \setsansfont{Univers}[% BoldFont = Univers Bold,% ItalicFont = Univers Oblique,% @@ -1195,12 +1473,28 @@ \if@tud@univers% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \renewcommand*\bfdefault{m}% \renewcommand*\mddefault{l}% - \else% + \if@tud@mweights% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy \renewcommand*\bfdefault{b}% \renewcommand*\mddefault{m}% + \if@tud@mweights% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% \fi% \fi% @@ -1209,10 +1503,50 @@ \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% + \if@tud@mweights% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \tud@font@skip@set% + \ifstr{#1}{nomath}{}{\tud@font@math@set}% \normalfont\selectfont% - \tud@font@math@set% \tud@layout@process% } +\newcommand*\tud@font@skip@set{% + \tud@ifverlower{2.04}{}{% + \ifcase\tud@cdfont\relax% false + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \else% true/heavy + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \fi% + }% +} +\newcommand*\tud@font@skip@@set{% + \setlength{\@tempdimb}{\f@baselineskip}% + \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% + {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% + \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% + {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% + \scr@setlength\bigskipamount{\@tempdimb}% + {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% + \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% + \tud@skip@set\belowcaptionskip{\z@}% + \tud@skip@set\columnsep{1.1\baselineskip}% +} \newcommand*\tud@font@math@set{% \if@tud@univers% \if@tud@cdmath% @@ -1220,79 +1554,67 @@ \tud@cmd@store{mv@bold}% \let\mv@normal\mv@univers% \let\mv@bold\mv@universbold% + \tud@font@greek@loop\tud@font@greek@set% \else% \tud@cmd@restore{mv@normal}% \tud@cmd@restore{mv@bold}% + \tud@font@greek@loop\tud@font@greek@reset% \fi% \fi% \if@tud@slantedgreek% - \tud@font@greek@slanted% + \tud@font@greek@loop\tud@font@greek@slanted% \else% - \tud@font@greek@upright% + \tud@font@greek@loop\tud@font@greek@upright% \fi% \mathversion{normal}% } -\newcount\tud@font@greek@upGamma -\tud@font@greek@upGamma\Gamma -\newcount\tud@font@greek@offset -\let\@tempa\relax -\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0} -\tud@font@greek@offset\@tempa -\advance\tud@font@greek@offset-\Gamma -\newcommand*\tud@font@greek@slanted{% - \ifnum\Gamma=\tud@font@greek@upGamma\relax\tud@font@greek@changeshape\fi% -} -\newcommand*\tud@font@greek@upright{% - \ifnum\Gamma>\tud@font@greek@upGamma% - \tud@font@greek@offset=-\tud@font@greek@offset% - \tud@font@greek@changeshape% - \tud@font@greek@offset=-\tud@font@greek@offset% - \fi% -} -\newcommand*\tud@font@greek@def[2]{% - \expandafter\@tempcnta\csname #1\endcsname% - \advance\@tempcnta#2% - \expandafter\mathchardef\csname #1\endcsname\@tempcnta% -} -\newcommand*\tud@font@greek@uc{% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% -} -\newcommand*\tud@font@greek@changeshape{% - \@for\@tempa:=\tud@font@greek@uc\do{% - \@expandtwoargs\tud@font@greek@def{\@tempa}{\tud@font@greek@offset}% - }% -} +\newcommand*\tud@font@greek@set[1]{% + \tud@cmd@store{#1}% + \tud@cmd@store{up#1}% + \tud@cmd@store{var#1}% + \csletcs{#1}{tud@#1}% + \csletcs{up#1}{tud@up#1}% + \csletcs{var#1}{tud@var#1}% +} +\newcommand*\tud@font@greek@reset[1]{% + \tud@cmd@restore{#1}% + \tud@cmd@restore{up#1}% + \tud@cmd@restore{var#1}% +} +\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} +\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@set{% \ifdef{\@raggedtwoe@everyselectfont}{% \let\@raggedtwoe@everyselectfont\relax% - \spaceskip\z@\selectfont% + \setlength\spaceskip{\z@}% + \selectfont% }{}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\sfdefault}{bx}{n}{\tud@head@font@size}% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% \@tempswafalse% - \ifcase\tud@head@font\relax% - \ifnum\tud@cdfont>\z@\relax% - \ClassWarning{\tudcls@name}{% + \ifcase\tud@head@font\relax% false + \ifnum\tud@cdfont>\z@\relax% true/heavy + \ClassWarning{\TUDClassName}{% It isn't possible to use `cdhead=false'\MessageBreak% together with `cdfont=true'% }% \@tempswatrue% \fi% - \else% + \else% true/heavy \@tempswatrue% \fi% - \if@tempswa% + \if@tempswa% true/heavy \if@tud@fontspec% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversLight}{m}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversRegular}{m}{n}{\tud@head@font@size}% \fi% @@ -1300,10 +1622,10 @@ \if@tud@univers% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{m}{n}{\tud@head@font@size}% \fi% @@ -1322,19 +1644,9 @@ \expandafter\@secondoftwo% \fi% } -\AfterPackage*{amsfonts}{% - \DeclareFontFamily{U}{msa}{}% - \DeclareFontShape{U}{msa}{m}{n}{% - <-9>cmbras8% - <9-10>cmbras9% - <10->cmbras10% - }{}% - \DeclareFontFamily{U}{msb}{}% - \DeclareFontShape{U}{msb}{m}{n}{% - <-9>cmbrbs8% - <9-10>cmbrbs9% - <10->cmbrbs10% - }{}% +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -1344,19 +1656,19 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -%%% From File: tudscr-color.dtx -\newcommand*\tud@pagecolor{} -\AfterPackage{pdfpages}{\AtEndPreamble{\nopagecolor}} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont} +} %%% From File: tudscr-fields.dtx \RequirePackage{trimspaces}[2009/09/17] \newcommand*\@faculty{} -\newcommand*\faculty[1]{\gdef\@faculty{\trim@spaces{#1}}} +\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} \newcommand*\@department{} -\newcommand*\department[1]{\gdef\@department{\trim@spaces{#1}}} +\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} \newcommand*\@institute{} -\newcommand*\institute[1]{\gdef\@institute{\trim@spaces{#1}}} +\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[1]{\gdef\@chair{\trim@spaces{#1}}} +\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} \newcommand*\@extraheadline{} \newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} \newcommand*\@@title{} @@ -1375,38 +1687,37 @@ \newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} \newcommand*\tud@thanks{} \newcommand*\tud@thesis[2]{% - \AfterPreamble{% - \begingroup% - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \setbox0\vbox{#2}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% - }% + \begingroup% + \global\let\tud@thanks\relax% + \def\thanks##1{\gdef\tud@thanks{##1}}% + \let\footnote\thanks% + \sbox\z@{#2}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@lowerstring{\@tempa}{#2}% + \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% + \global\let\@tempa\@tempa% + \endgroup% + \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% + \@namedef{@#1}{#2}% + }}}}}}}}}}}}}% } \newcommand*\tud@@thesis[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\tudcls@name}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% \fi% \TUD@std@ifkey@lock{subjectthesis}{true}% }{% @@ -1427,7 +1738,7 @@ \gdef\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[2][]{\gdef\@professor{#2}} \newcommand*\@supervisor{} \newcommand*\supervisor[1]{\gdef\@supervisor{#1}} \newcommand*\@supporter{} @@ -1447,15 +1758,25 @@ \newcommand*\@placeofbirth{} \newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} \providecommand*\publisher[1]{\publishers{#1}} +\newlength\tud@signatureskip +\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} \newcommand*\@confirmationclosing{% - \medskip% - \noindent\@place, \@date% - \\[20mm plus 10mm minus 10mm]% + \tud@datecheck% + \ifx\@date\@empty\else% + \medskip\noindent% + \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% + \fi% + \vskip\tud@signatureskip\noindent% \begingroup% - \let\and\hfil% \let\thanks\@gobble% \let\footnote\@gobble% - \@author% + \renewcommand*\tud@split@author[2]{% + \tud@multiple@fields@store{@author}{##1}% + \ignorespaces##1% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\hfil}% + }% + \tud@multiple@split{@author}% \hfil% \endgroup% } @@ -1465,7 +1786,7 @@ \newcommand*\printdate[1]{#1} \BeforePackage{isodate}{\undef\printdate} \newcommand*\tud@printdate[2]{% - \ifx\today#2% + \ifx\today#2\relax% \gdef#1{#2}% \else% \ifxblank{#2}% @@ -1473,28 +1794,99 @@ {\gdef#1{\printdate{#2}}}% \fi% } +\newcommand*\tud@datecheck{% + \ifdefvoid{\@duedate}{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + Since a thesis is a self-contained work, an end\MessageBreak% + date should be specified by the author.\MessageBreak% + Nevertheless, today's date is used% + }% + }{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + It's substituted by the given due date% + }% + \global\let\@date\@duedate% + }% + \global\let\tud@datecheck\relax% +} \newcommand*\@datemore{} \renewcommand*\date[2][]{% - \gdef\@datemore{#1}% + \gdef\@datemore{\trim@spaces{#1}}% \tud@printdate{\@date}{#2}% + \global\let\tud@datecheck\relax% } \newcommand*\@defensedate{} \newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} \newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} +\newcommand*\tud@multiple@@split{}% +\newcommand*\tud@multiple@split[1]{% + \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% + \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + }{}% + \def\tud@multiple@@split##1\and##2\relax{% + \expandafter\csname tud@split#1\endcsname{##1}{##2}% + }% + \begingroup% + \let\and\relax% + \edef\@tempa{\csname#1\endcsname\and}% + \expandafter\endgroup% + \expandafter\tud@multiple@@split\@tempa\relax% +} +\newcommand*\tud@multiple@@@split[2]{% + \ifx\relax#1\relax% + \let\@tempb\relax% + \else% + \def\@tempb{#2\tud@multiple@@split#1\relax}% + \fi% + \@tempb% +} +\newcommand*\tud@multiple@fields@store[2]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% + \fi% + }% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#2}% + \endgroup% +} +\newcommand*\tud@multiple@fields@restore[1]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{% + \tud@cmd@restore{@\@tempb}% + \global\csletcs{@\@tempb}{@\@tempb}% + }{}% + \fi% + }% +} +\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@list{% + authormore,matriculationyear,enrolmentyear,% + matriculationnumber,studentid,matriculationid,% + placeofbirth,birthplace,dateofbirth,birthday,% +} %%% From File: tudscr-locale.dtx \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\tudcls@name' only supports the\MessageBreak% + Currently the class `\TUDClassName' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak% - To implement new languages, it would be nice if you could\MessageBreak% - contact the author of this class and send your definitions\MessageBreak% - to \tudscrmail% + You can send your definitions to \tudscrmail\space in\MessageBreak% + order to implement support for additional languages. }% }% } @@ -1545,7 +1937,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -1562,7 +1954,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -1607,10 +1999,10 @@ Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi enth\"alt vertrauliche Informationen\ifx\@company\@empty\else - , offengelegt durch \@company{}\fi. Ver\"offentlichungen, + , offengelegt durch \emph{\@company}\fi. Ver\"offentlichungen, Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~-- sind ohne ausdr\"uckliche Genehmigung \ifx\@company\@empty\else - durch \@company{} \fi nicht gestattet, ebenso wie + durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des @@ -1642,7 +2034,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -1659,7 +2051,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -1704,9 +2096,9 @@ This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \@company{}\fi. Publications, duplications and + , disclosed by \emph{\@company}\fi. Publications, duplications and inspections---even in part---are prohibited without explicit - permission\ifx\@company\@empty\else\space by \@company{}\fi, + permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at Technische Universit\"at Dresden, the reviewers and also the @@ -1751,7 +2143,7 @@ \newlength\tud@dim@thinline \newlength\tud@dim@headdiff \newlength\tud@dim@headingsvskip -\iftudscrverlower{2.03}{\newlength\tud@dim@ddcdiff}{} +\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} \newcommand*\tud@head@font@size{} \newcommand*\tud@geometry@set{% \ifdim\paperheight<148.1mm\relax% @@ -1797,267 +2189,304 @@ \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% }% } -\newcommand*\ifstandalonecrop{% +\newcommand*\tud@ifsacrop{% \ifcsdef{ifsa@crop}{% \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% }{% \@secondoftwo% }% } +\tud@ifsacrop{% + \PreventPackageFromLoading{scrlayer-scrpage}% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% +}{% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +} +\tud@cmd@store{pagestyle} +\cslet{ps@tudheadings}{\ps@headings}% +\cslet{ps@plain.tudheadings}{\ps@plain}% +\cslet{ps@empty.tudheadings}{\ps@empty}% +\providecommand*\currentpagestyle{plain} +\providecommand*\BeforeSelectAnyPageStyle[1]{} +\providecommand*\GetRealPageStyle[1]{#1} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \csundef{ps@tudheadings}% + \csundef{ps@plain.tudheadings}% + \csundef{ps@empty.tudheadings}% + \undef\currentpagestyle% + \undef\BeforeSelectAnyPageStyle% + \undef\GetRealPageStyle% +} +\let\tud@pagestyle\pagestyle +\apptocmd{\tud@pagestyle}{% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}}% +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} \AtEndPreamble{% - \ifstandalonecrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% - }{}% + \@ifpackageloaded{scrlayer-scrpage}{}{% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + }% } -\AtEndPreamble{% - \RequirePackage{scrlayer-scrpage}[2013/12/14]% - \AfterPackage*{scrlayer-scrpage}{% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% - \tud@mainlogo% - },% - ]{tudheadings.head.mainlogo}% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={\hfill\tud@headlogo},% - ]{tudheadings.head.logo}% - \DeclareNewLayer[% - background,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% - \fi% - },% - ]{tudheadings.head.back}% - \DeclareNewLayer[% - background,% - voffset=\tud@dim@topmargin,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41!80}% - \rule{\layerwidth}{\tud@dim@barheight}% - \fi% - },% - ]{tudheadings.head.bar}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperline}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperwideline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerwideline}% - \DeclareNewLayer[% - background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \ifdim\footlogoheight>\z@\relax\else% - \settoheight\footlogoheight{\tud@mainlogo}% - \iftudscrverlower{2.03}{% - \setlength\footlogoheight{.6\tud@dim@topmargin}% - }{}% - \fi% - \setlength\@tempdima{% - \dimexpr\footlogoheight-\layerheight+\dp\strutbox\relax% - }% - \ifdim\@tempdima>\vfuzz\relax% - \ClassWarning{\tudcls@name}{% - The chosen `\string\footlogoheight' - (\the\footlogoheight)\MessageBreak% - is \the\@tempdima\space higher than recommended. You\MessageBreak% - should decrease this length - \ifcase\tud@geometry\relax\else% - or alternatively\MessageBreak% - enlarge the bottom margin by using option\MessageBreak% - `extrabottommargin'% - \fi% - }% - \fi% - \let\@tempa\relax% - \@for\@tempb:=\tud@@footlogo\do{% - \@tempa% - \ifx\@tempb\@empty\else% - \expandafter\tud@footlogo\expandafter{\@tempb}% +\AfterPackage{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,headsep,% + voffset=\tud@dim@logoy,% + contents={% + \tud@mainlogo@set% + \tud@headlogo@option@set% + \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% + \DeclareNewLayer[% + background,% + contents={% + \ifnum\tud@head@bar>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\tud@dim@topmargin}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + voffset=\tud@dim@topmargin,% + contents={% + \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \rule{\layerwidth}{\tud@dim@barheight}% + \fi% + },% + ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% + contents={\tud@head@text@box},% + ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperwideline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerwideline}% + \DeclareNewLayer[% + background,foot,% + hoffset=0pt,% + width=\paperwidth,% + addvoffset=-\dp\strutbox,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% \fi% - \let\@tempa\footlogosep% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% - \tud@ddclogo% - },% - ]{tudheadings.foot.logo}% - \iftudscrverlower{2.03}{% - \ModifyLayer[% - voffset=\dimexpr\topmargin+1in+\headheight+\headsep+\textheight% - +\footskip-\footheight-\tud@dim@ddcdiff% - \ifcase\tud@geometry\relax\else+\ht\strutbox+\dp\strutbox\fi% - \relax,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% - ]{tudheadings.foot.logo}% - }{}% - \DeclareNewLayer[% - background,% - hoffset=0pt,% - width=\paperwidth,% - voffset=\dimexpr\@nameuse{scr@l@tudheadings.foot.logo@y}% - -\dp\strutbox\relax,% - height=\dimexpr\paperheight-\layeryoffset\relax,% + \ifx\@tempc\relax\else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \if@tud@footcolor% + \if@tud@foot@colored% \let\@tempc\relax% - \ifnum\tud@head@bar>\@ne\def\@tempc{\color{HKS41}}\fi% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!80}}}{}% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% \ifx\@tempc\relax\else% - \iftudscrverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% - \vbox to \layerheight{% - \vfil\@tempc% - \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% - }% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot=false + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% - \else% - \@tempc\rule{\layerwidth}{\layerheight}% - \fi% - }{\@tempc\rule{\layerwidth}{\layerheight}}% + }% + \else% \tud@ddc@foot!=false + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% \fi% \fi% },% ]{tudheadings.foot.back}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - scrheadings.foot.odd,% - scrheadings.foot.even,% - scrheadings.foot.oneside,% - scrheadings.foot.above.line,% - scrheadings.foot.below.line% - }% - \DeclareNewPageStyleAlias{tud}{tudheadings}% - \DeclareNewPageStyleAlias{tudscr}{tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{plain.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - plain.scrheadings.foot.odd,% - plain.scrheadings.foot.even,% - plain.scrheadings.foot.oneside,% - plain.scrheadings.foot.above.line,% - plain.scrheadings.foot.below.line% - }% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{empty.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - }% - \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% - \DeclareNewLayer[ - background,page,% - contents={% - \ifdefvoid{\tud@pagecolor}{}{% - \color{\tud@pagecolor}% - \rule{\layerwidth}{\layerheight}% - }% - },% - ]{tudheadings.pagecolor} - \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% - \BeforeSelectAnyPageStyle{\tud@beforeselectanypagestyle{#1}}% + }{}% + \DeclareNewLayer[% + background,foot,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \tud@footlogoheight@set% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + \hspace*{-\layerwidth}% + \tud@footlogo@cmd@use% + \hspace*{-\layerwidth}% + \hfill\tud@footlogo@ddc@use{\@tempdima}% + },% + ]{tudheadings.foot.content}% + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% + height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + ]{tudheadings.foot.content}% + }{}% + \DeclareNewLayer[% + background,% + ]{tudheadings.last}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% + }% + \listadd\tud@ps@list{tudheadings}% + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% }% + \listadd\tud@ps@list{plain.tudheadings}% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% + }% + \listadd\tud@ps@list{empty.tudheadings}% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \newcommand*\tud@pagecolor{}% + \DeclareNewLayer[% + background,page,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% } +\PreventPackageFromLoading[% + \ClassWarning{\TUDClassName}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} \newcommand*\tud@ps@onselect{% \DeclarePageStyleAlias{plain}{plain.tudheadings}% \DeclarePageStyleAlias{headings}{tudheadings}% @@ -2065,108 +2494,88 @@ \def\sls@currentplain{plain.tudheadings}% } \newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} \newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} \newcommand*\tud@ps@onbackground{% - \ifcase\tud@head@bar\relax% - \def\tud@head@logocolor{black}% - \def\tud@foot@logocolor{black}% - \or% - \def\tud@head@logocolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \or% - \def\tud@head@logocolor{white}% - \if@tud@footcolor% - \def\tud@foot@logocolor{white}% - \else% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax% cdhead=nocolor + \def\tud@head@logocolor{black}% + \def\tud@head@fontcolor{}% + \def\tud@foot@logocolor{black}% + \def\tud@foot@fontcolor{}% + \or% cdhead=litecolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \or% cdhead=barcolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% \fi% - \fi% + }{% + \ifstr{\tud@pagecolor}{HKS41}{% + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \def\tud@foot@logocolor{white}% + \if@tud@foot@colored% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@fontcolor{HKS41!30}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }{% + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar\relax\or\or\or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }% + }% \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@logocolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } \patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% \xdef\@specialstyle{\GetRealPageStyle{#1}} }{}{\tud@patch@wrn{thispagestyle}} -\newcommand*\tud@currentgeometry{} -\newcommand*\tud@beforeselectanypagestyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% - \def\@tempa{#1}% - \ifcsdef{scr@v@3.15}{}{% - \ifstr{\sls@currentheadings}{tudheadings}{% - \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}% - \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}% - }{}% - }% - \iftudpagestyle{\@tempa}{% - \iftudscrverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - \else% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% - }% - \fi% - }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - }% - \setlength\tud@dim@headdiff{\z@}% - }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% - }% - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% - \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% - }% - \fi% - \fi% - }% - \global\tud@dim@headdiff=\tud@dim@headdiff% - }{}% -} -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoublepageusingstyle}} -\iftudscrverlower{2.03}{% - \newcommand*\tud@ddc@enlargepage[1][]{% - \iftudpagestyle{#1}{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@ddc@check% - \ifcase\@tempb\relax\else% - \enlargethispage{-\tud@dim@ddcdiff}% - \fi% - }% - }{}% - }% -}{} \newcommand*\tud@head@text{} \newcommand*\tud@head@text@first{} \newcommand*\tud@head@text@second{} \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} \newcommand*\tud@head@rule[1]{% - \color{\tud@head@logocolor}% + \tud@color{\tud@head@fontcolor}% \rule[\ht\strutbox]{#1}{\tud@dim@line}% } \newcommand*\tud@head@text@add[3][, ]{% - \edef\tud@head@text{#3}% + \protected@edef\tud@head@text{#3}% \ifx\tud@head@text\@empty% \def\tud@head@text@delimiter{}% \else% @@ -2185,11 +2594,11 @@ \@tempswatrue% \def\tud@head@text@delimiter{}% \else% - \edef\tud@head@text@first{\@tempa}% + \protected@edef\tud@head@text@first{\@tempa}% \fi% \fi% \if@tempswa% - \edef\tud@head@text@second{% + \protected@edef\tud@head@text@second{% \tud@head@text@second% \tud@head@text@delimiter% #2% @@ -2199,7 +2608,7 @@ } \newcommand*\tud@head@text@box{% \ifx\@faculty\@empty% - \ClassWarningNoLine{\tudcls@name}{No `\string\faculty' given}% + \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% \faculty{}% \fi% \tud@head@font@set% @@ -2217,20 +2626,20 @@ \hfuzz=\@tempdima% \fi% \vbox{% - \linespread{0}\selectfont% - \color{\tud@head@logocolor}% + \linespread{0}\selectfont\offinterlineskip% + \tud@color{\tud@head@fontcolor}% \tud@head@text@write{\tud@head@text@first}% - \ifnum\tud@head@bar>\@ne% + \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% \ifx\tud@head@text@second\@empty% - \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}% + \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% \else% \newline\tud@head@text@write{\tud@head@text@second}% \ifx\@extraheadline\@empty\else% - \vspace{-\tud@dim@line}\newline\tud@head@font@light\@extraheadline% + \newline\vbox{\tud@head@font@light\@extraheadline}% \fi% \fi% }% @@ -2238,98 +2647,269 @@ \newcommand*\tud@head@text@write[1]{% \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% \dimexpr\tud@dim@barheight-\depth\relax% - ][\depth]{#1\vphantom{gjpqy\"A\"O\"U}}% + ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% } \newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The given entries for the headline\MessageBreak% (faculty, institute etc.) are #1\MessageBreak% too wide for the textwidth% }% \global\let\tud@head@text@wrn\@gobble% } -\newcommand*\tud@mainlogo@wrn[1]{% - \ClassWarning{\tudcls@name}{% - The selected page layout means that the\MessageBreak% - logo of TUD extends beyond the printing area.\MessageBreak% - The inner margin is smaller than BCOR\MessageBreak% - (`BCOR=\the\ta@bcor', inner margin is #1)\MessageBreak% - Maybe you should decrease the current value\MessageBreak% - of DIV (`DIV=\the\ta@div')% - }% - \global\let\tud@mainlogo@wrn\@gobble% +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@logo@#1\endcsname% } -\newcommand*\tud@@mainlogo{} -\newcommand*\tud@mainlogo{% - \setlength\@tempdima{% +\newcommand*\tud@vlayerbox[3]{% + \begingroup% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUDClassName}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima% + }% + \fi% + \endgroup% + \vbox to #1{#2}% +} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +\newlength\tud@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% + \global\tud@mainlogoheight=\tud@mainlogoheight% + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUDClassName}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% + \fi% + }% + \tud@headlogo@set% + \tud@footlogo@set% + \global\@tud@mainlogo@setfalse% + \fi% +} +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% - \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi% - \def\tud@@mainlogo{TUD-black}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@mainlogo{TUD-white}}{}% - \includegraphics[keepaspectratio,width=\tud@dim@logowidth]{\tud@@mainlogo}% -} + \tud@uselayerbox{main@\tud@head@logocolor}% +} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +\newcommand*\@headlogo{} +\newcommand*\@@headlogo{} +\newcommand*\tud@headlogo@wrn{} \newcommand*\headlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@headlogo{#2}% - \def\tud@@@headlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% -} -\newcommand*\tud@@headlogo{} -\newcommand*\tud@@@headlogo{} -\newcommand*\tud@headlogo{% - \tud@ddc@check% - \ifx\tud@@headlogo\@empty\else% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@headlogo{#2}% + \def\@@headlogo{#1}% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUDClassName}{% + The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% + overwritten with DDC logo. Maybe you should use\MessageBreak% + `ddcfoot' or better `ddc' instead of `ddchead'% + }% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% +} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +\newif\if@tud@headlogo@option@set +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@mainlogoheight,##2% + ]{\trim@spaces{##1}}% + }% + }% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head=false + \ifdefvoid{\@headlogo}{}{% + \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% + \@tempb% + }% + \or\or% \tud@ddc@head=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head=white + \@tempc{DDC-30}{}% + \fi% + \global\@tud@headlogo@option@setfalse% \fi% - \ifcase\@tempa\relax\or% - \def\tud@@headlogo{DDC-24}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@headlogo{DDC-30}}{}% - \or% - \def\tud@@headlogo{DDC-03}% - \or% - \def\tud@@headlogo{DDC-09}% - \or% - \def\tud@@headlogo{DDC-21}% - \or% - \def\tud@@headlogo{DDC-24}% - \or% - \def\tud@@headlogo{DDC-27}% - \or% - \def\tud@@headlogo{DDC-30}% - \fi% - \ifx\tud@@headlogo\@empty\else% - \settoheight\@tempdima{\tud@mainlogo}% - \protected@epreto\tud@@@headlogo{% - keepaspectratio,totalheight=\the\@tempdima,% - }% - \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}% - \fi% -} -\newcommand*\tud@headlogo@wrn{% - \ClassWarning{\tudcls@name}{% - The secondary logo given with `\string\headlogo' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% - }% - \global\let\tud@headlogo@wrn\relax% } +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% + }% + \vss% + }{% + The given `\string\headlogo{\@headlogo}' is too large.% + } + \ifdefvoid{\@headlogo}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% + }% +} +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} \newlength\footlogoheight +\newlength\tud@footlogoheight +\newcommand*\tud@footlogoheight@set{% + \ifdim\footlogoheight=\z@\relax% + \tud@ifverlower{2.03}{% + \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% + }{% + \setlength\tud@footlogoheight{\tud@mainlogoheight}% + }% + \else% + \ifdim\footlogoheight=\tud@footlogoheight\relax\else% + \setlength\tud@footlogoheight{\footlogoheight}% + \global\@tud@footlogo@option@settrue% + \fi% + \fi% + \global\tud@footlogoheight=\tud@footlogoheight% +} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% + }% +} +\newcommand*\tud@footlogo@set{% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@footlogo@option@set% +} +\newif\if@tud@footlogo@option@set +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot=white + \tud@footlogo@ddc@set{option}{DDC-28}% + \fi% + \global\@tud@footlogo@option@setfalse% + \fi% +} +\newcommand*\tud@footlogo@ddc@use[1]{% + \tud@vlayerbox{#1}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifcase\@tempb\relax\or% \tud@ddc@foot=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% + high. You should reduce this length.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% +} +\tud@newlayerbox{foot@cmd} \newcommand*\footlogosep{\hfill} +\newcommand*\@footlogo{} +\newcommand*\@@footlogo{} \newcommand*\footlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@footlogo{#2}% - \def\tud@@@footlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% -} -\newcommand*\tud@@footlogo{} -\newcommand*\tud@@@footlogo{} -\DeclareListParser{\tud@footlogo@parser}{:}% -\newcommand*\tud@footlogo[1]{% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@footlogo{#2}% + \def\@@footlogo{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% +} +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% + \let\@tempa\relax% + \@for\@tempb:=\@footlogo\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% + \fi% +} +\newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% \def\@tempa{}% \def\@tempb{}% @@ -2342,283 +2922,467 @@ \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% \fi% }% - \tud@footlogo@parser{#1}% - \protected@eappto\tud@@@footlogo{\@tempb}% - \protected@epreto\tud@@@footlogo{% - keepaspectratio,totalheight=\the\footlogoheight,% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% + \preto\@@footlogo{% + keepaspectratio,totalheight=\tud@footlogoheight,% }% - \protected@edef\@tempc{\noexpand\includegraphics[\tud@@@footlogo]{\@tempa}}% - \vbox to \dimexpr\layerheight-\dp\strutbox\relax{% - \vfil\hbox{\@tempc}\vfil\vfil% + \appto\@@footlogo{\@tempb}% + \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% }% \endgroup% } -\newcommand*\tud@@ddclogo{} -\newcommand*\tud@ddclogo{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% - \def\tud@@ddclogo{DDC-22}% - \ifstr{\tud@foot@logocolor}{HKS41}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{cddarkblue}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{white}{\def\tud@@ddclogo{DDC-28}}{}% - \or% - \def\tud@@ddclogo{DDC-01}% - \or% - \def\tud@@ddclogo{DDC-07}% - \or% - \def\tud@@ddclogo{DDC-19}% - \or% - \def\tud@@ddclogo{DDC-22}% - \or% - \def\tud@@ddclogo{DDC-25}% - \or% - \def\tud@@ddclogo{DDC-28}% - \fi% - \ifx\tud@@ddclogo\@empty\else% - \let\tud@@@footlogo\relax% - \hfill\tud@footlogo{\tud@@ddclogo}% +\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% +\newkomafont{tudheadings}{% + \sffamily% + \tud@color{\tud@foot@fontcolor}% +} +\newcommand*\tud@footcontent@font{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{} +\newcommand*\footcontent{% + \@ifstar{% + \@tempswafalse% + \@footcontent% + }{% + \@tempswatrue% + \@footcontent% + }% +} +\newcommand*\@footcontent[2][]{% + \kernel@ifnextchar[%] + {\@@footcontent{#1}{#2}}% + {\@@footcontent{#1}{#2}[\@nnil]}% +} +\newcommand*\@@footcontent{} +\def\@@footcontent#1#2[#3]{% + \if@tempswa% + \def\tud@footcontent@font{% + \usekomafont{tudheadings}% + \tud@divide\@tempa{\tud@head@font@size}{\f@size}% + \linespread{\@tempa}% + \selectfont% + \tud@head@font@light% + #1% + }% + \else% + \def\tud@footcontent@font{#1}% \fi% + \def\tud@footcontent@left{#2}% + \def\tud@footcontent@right{#3}% } -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -\newlength\tud@ta@headdiff -\newcommand*\tud@geometry@restore{} -\AfterCalculatingTypearea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% +\newcommand*\tud@footcontent@use[2]{% + \tud@ddc@check% + \ifcase\@tempb% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \tud@footcontent@font% + \expandafter\ifx\tud@footcontent@right\@nnil\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@right\strut% + }% + \fi% + \hss% + }% + \vss\vss% }{% - \setlength\tud@ta@footheight{\ta@fh}% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content or\MessageBreak% + lower the fontsize via the optional argument.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% }% - \setlength\tud@ta@footskip{\footskip}% - \let\tud@geometry@restore\Gm@restore@org% - \if@atdocument% - \let\Gm@restore@org\relax% - \tud@geometry@process% - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - \fi% - \let\Gm@restore@org\tud@geometry@restore% -} -\newcommand*\tud@geometry@hmargin{} -\newcommand*\tud@geometry@vmargin{} -\newcommand*\tud@geometry@tudmargin{} -\iftudscrverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{} +} \AtEndPreamble{% - \ifstandalonecrop{}{% - \recalctypearea% - \RequirePackage{geometry}[2010/09/12]% - \tud@geometry@process% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }% -} -\newcommand*\tud@geometry@process{% - \tud@geometry@set% - \ifcase\tud@geometry\relax% - \def\tud@geometry@hmargin{% - left=\dimexpr\oddsidemargin+1in\relax,% - width=\textwidth,% - marginparwidth=\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% - \if@twoside\if@reversemargin% - marginparwidth=\dimexpr\oddsidemargin+1in-\tud@ta@headsep\relax,% - \fi\fi% - marginparsep=.5\tud@ta@headsep,% - }% - \def\tud@geometry@vmargin{% - top=\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - textheight=\tud@ta@textheight,% - footskip=\tud@ta@footskip,% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,% - ignorehead,% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% - \fi% - \iftudscrverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% - }% - \def\tud@geometry@ddcmargin{% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,% - }% - }{}% - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\tudcls@name}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% - }% + \@ifpackageloaded{geometry}{}{% + \def\tud@geometry@process{\tud@geometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + }% +} +\tud@ifsacrop{% + \PreventPackageFromLoading{geometry}% +}{% + \RequirePackage{geometry}[2010/09/12]% + \newcommand*\tud@geometry@hmargin{}% + \newcommand*\tud@geometry@vmargin{}% + \newcommand*\tud@geometry@tudmargin{}% + \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% + \newcommand*\tud@newgeometry[1]{% + \if@atdocument% + \edef\@tempa{#1}% + \expandafter\newgeometry\expandafter{#1}% + \else% + \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% + \expandafter\geometry\expandafter{\@tempa}% \fi% - \else% - \ifcase\tud@geometry\or% - \def\tud@geometry@hmargin{% - left=\tud@dim@widemargin,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + }% + \newcommand*\tud@geometry@process{% + \tud@geometry@set% + \ifcase\tud@geometry\relax% false + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% + }% + \ifdim\tud@ta@headdiff<\z@\relax% + \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% + \fi% + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% \if@reversemargin% - marginparwidth=\dimexpr\tud@dim@widemargin-\tud@ta@headsep\relax,% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr\oddsidemargin+1in% + -\tud@ta@headsep\relax,% + \fi% \else% - marginparwidth=\dimexpr\tud@dim@slimmargin-\tud@ta@headsep\relax,% + reversemarginpar=false,% \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - \if@twoside asymmetric,\fi% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% }% - \or% - \def\tud@geometry@hmargin{% - left=.5\tud@dim@both,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - }% - \or% - \def\tud@geometry@hmargin{% - \if@twoside% - left=.4\tud@dim@both,% - twoside,% + \edef\tud@geometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\tud@ta@topmargin+1in\relax,% \else% - left=.5\tud@dim@both,% + includehead=false,% + top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% + +1in\relax,% \fi% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + textheight=\the\tud@ta@textheight,% + \tud@geometry@fincl,% + footskip=\the\tud@ta@footskip% + }% + \ifdim\tud@ta@headdiff<\z@\relax% + \setlength\@tempdima{\z@}% + \else% + \setlength\@tempdima{\tud@ta@headdiff}% + \fi% + \edef\tud@geometry@tudmargin{% + 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\tud@ta@textheight-\@tempdima\relax,% + ignorehead% + }% + \tud@ifverlower{2.03}{% + \setlength\tud@dim@ddcdiff{% + \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% + +\tud@ta@footheight-1.25\baselineskip\relax% + }% + \edef\tud@geometry@ddcmargin{% + textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% + }% + }{}% + \ifdim\tud@dim@extrabottommargin=\z@\relax\else% + \ClassWarning{\TUDClassName}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea is used (`cdgeometry=no')% + }% + \fi% + \else% true/symmetric/twoside + \ifcase\tud@geometry\or% true + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\tud@dim@widemargin,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \if@twoside asymmetric,\fi% + \tud@geometry@mpincl,% \if@reversemargin% - marginparwidth=\dimexpr.4\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=true,% + marginparwidth=\the\dimexpr\tud@dim@widemargin% + -\tud@ta@headsep\relax,% \else% - marginparwidth=\dimexpr.6\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=false,% + marginparwidth=\the\dimexpr\tud@dim@slimmargin% + -\tud@ta@headsep\relax,% \fi% - \else% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - }% - \fi% - \iftudscrverlower{2.03}{% - \def\tud@geometry@vmargin{% - top=.5\tud@dim@both,% - headheight=\tud@ta@headheight,% - headsep=\tud@dim@headsep,% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \or% symmetric + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr.5\tud@dim@both\relax,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \or% twoside + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + \if@twoside% + left=\the\dimexpr.4\tud@dim@both\relax,% + twoside,% + \else% + left=\the\dimexpr.5\tud@dim@both\relax,% + \fi% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + \if@reversemargin% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr.4\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% + \else% + reversemarginpar=false,% + \if@twoside% + marginparwidth=\the\dimexpr.6\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% + \fi% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \fi% + \tud@ifverlower{2.03}{% + \edef\tud@geometry@vmargin{% + top=\the\dimexpr.5\tud@dim@both\relax,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% + }{% + \edef\tud@geometry@vmargin{% + top=\the\tud@dim@slimmargin,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + bottom=\the\dimexpr\tud@dim@widemargin% + +\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% }% - }{% - \def\tud@geometry@vmargin{% - top=\tud@dim@slimmargin,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - bottom=\dimexpr\tud@dim@widemargin+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + \edef\tud@geometry@tudmargin{% + 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,% + ignorehead% }% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - ignorehead,% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% - }% - \iftudscrverlower{2.03}{% \setlength\tud@ta@headdiff{% \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% + -\tud@dim@slimmargin\relax% }% - \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% - \def\tud@geometry@ddcmargin{% - \if@fincl% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \else% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% - \fi% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + \tud@ifverlower{2.03}{% + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -.5\tud@dim@both\relax% + }% + \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% + \edef\tud@geometry@ddcmargin{% + \if@fincl% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff\relax,% + \fi% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + }% + }{}% + \fi% + \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% + \global\tud@ta@headdiff=\tud@ta@headdiff% + \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% + \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% + \tud@ifverlower{2.03}{% + \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + }{}% + \tud@geometry@@process% + }% + \newcommand*\tud@geometry@@process{% + \edef\Gm@restore@org{\Gm@restore}% + \tud@ifverlower{2.03}{% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin,% + \tud@geometry@tudmargin,% + \tud@geometry@ddcmargin,% + ignorehead,ignorefoot% }% + \tud@newgeometry{\@tempa}% + \savegeometry{tudareaddc}% }{}% - \fi% - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% - \iftudscrverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - }{}% - \tud@geometry@@process% -} -\newcommand*\tud@geometry@@process{% - \iftudscrverlower{2.03}{% \edef\@tempa{% \tud@geometry@hmargin,% \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% - ignorehead,ignorefoot,% + \tud@geometry@tudmargin% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudareaddc}% + \tud@newgeometry{\@tempa}% + \savegeometry{tudarea}% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin% + }% + \tud@newgeometry{\@tempa}% + \savegeometry{typearea}% + }% + \newcommand*\tud@geometry@hincl{% + \if@hincl% + includehead=true% + \else% + includehead=false% + \fi% + }% + \newcommand*\tud@geometry@fincl{% + \if@fincl% + includefoot=true% + \else% + includefoot=false% + \fi% + }% + \newcommand*\tud@geometry@mpincl{% + \if@mincl% + includemp=true% + \else% + includemp=false% + \fi% + }% +} +\newcommand*\tud@currentgeometry{} +\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% + \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@iftudps{#1}{% + \tud@ifverlower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + \else% \tud@ddc@foot!=false + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + }% + \setlength\tud@dim@headdiff{\z@}% + \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% + }{% + \ifstr{\tud@currentgeometry}{typearea}{}{% + \loadgeometry{typearea}% + \gdef\tud@currentgeometry{typearea}% + }% + \setlength\tud@dim@headdiff{\tud@ta@headdiff}% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \if@hincl% + \addtolength\tud@dim@headdiff{% + \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + }% + \fi% + \fi% + \tud@font@koma@unset{pagefoot}% + \tud@font@koma@unset{pagenumber}% + }% + \global\tud@dim@headdiff=\tud@dim@headdiff% }{}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudarea}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{typearea}% -} -\newcommand*\tud@geometry@hincl{% - \if@hincl% - includehead,% - \else% - ignorehead,% - \fi% } -\newcommand*\tud@geometry@fincl{% - \if@fincl% - includefoot,% - \else% - ignorefoot,% - \fi% +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +\tud@ifverlower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \tud@iftudps{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false + \enlargethispage{-\tud@dim@ddcdiff}% + \fi% + }% + }{}% + }% +}{} +\newlength\tud@ta@textheight +\newlength\tud@ta@topmargin +\newlength\tud@ta@headheight +\newlength\tud@ta@headsep +\newlength\tud@ta@footheight +\newlength\tud@ta@footskip +\newlength\tud@ta@headdiff +\newcommand*\tud@AfterChangingArea{% + \setlength\tud@ta@textheight{\textheight}% + \setlength\tud@ta@topmargin{\topmargin}% + \setlength\tud@ta@headheight{\headheight}% + \setlength\tud@ta@headsep{\headsep}% + \ifcsvoid{ta@fh}{% + \setlength\tud@ta@footheight{\footheight}% + }{% + \setlength\tud@ta@footheight{\ta@fh}% + }% + \setlength\tud@ta@footskip{\footskip}% + \tud@geometry@process% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +\AtEndPreamble{% + \tud@ifsacrop{}{% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% + \recalctypearea% + }% } \newcommand*\tud@ps{tudheadings} \newcommand*\tud@ps@select{% @@ -2651,11 +3415,11 @@ \TUD@parameter@set{tudpage}{#1}% \tud@ps@select% \tud@multicols@check% - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \begin{multicols}{\tud@multicols}% \fi% \BODY% - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \end{multicols}% \fi% }[% @@ -2680,9 +3444,9 @@ } \TUD@parameter{tudpage}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{% - \iftudpagestyle{#1}{\renewcommand*\tud@ps{#1}}{% + \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% @@ -2696,22 +3460,16 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% } %%% From File: tudscr-layout.dtx -\newcommand*\tud@part@fontcolor{black} -\newkomafont{parttitle}{% - \tud@font@heading% - \color{\tud@part@fontcolor}% - \usesizeofkomafont{section}% -} +\newcommand*\tud@part@fontcolor{} \newlength\pageheadingsvskip \newlength\headingsvskip -\newcommand*\tud@headmidvskip{\par\nobreak} \newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \bool@std@lock{@tud@cover@cdgeometry}{false}% - \else% + \else% !false \bool@std@lock{@tud@cover@cdgeometry}{true}% \fi% - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \tud@cmd@restore{maketitle}% \tud@cmd@restore{@maketitle}% \tud@cmd@restore{titlepagestyle}% @@ -2722,7 +3480,7 @@ \tud@font@koma@unset{author}% \tud@font@koma@unset{date}% \tud@font@koma@unset{publishers}% - \else% + \else% !false \tud@cmd@store{maketitle}% \tud@cmd@store{@maketitle}% \tud@cmd@store{titlepagestyle}% @@ -2731,18 +3489,18 @@ \usekomafont{disposition}% \tud@font@heading% \tud@font@heading@size% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subtitle}{% \tud@font@heading% \usesizeofkomafont{section}% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subject}{% \fontfamily{\sfdefault}% \fontseries{\bfdefault}% \selectfont% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{author}{\usekomafont{subject}}% \tud@font@koma@set{date}{\usekomafont{titlepage}}% @@ -2750,34 +3508,43 @@ \let\maketitle\tud@maketitle% \renewcommand*\titlepagestyle{plain.tudheadings}% \fi% - \ifcase\tud@layout@part\relax% + \ifcase\tud@layout@part\relax% false \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadmidvskip}% - \tud@cmd@restore{@part}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@startpart}% + }{% + \tud@cmd@restore{@part}% + }% \tud@sectioning@reset[addpart]{part}% \tud@font@koma@unset{partnumber}% - \else% + \else% !false \tud@cmd@store{partheadstartvskip}% - \tud@cmd@store{partheadmidvskip}% - \tud@cmd@store{@part}% - \tud@sectioning@set[addpart]{part}{% - \tud@font@heading% - \color{\tud@part@fontcolor}% - }% - \tud@font@koma@set{partnumber}{% - \tud@font@heading% - \color{\tud@part@fontcolor}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% + }{% + \tud@cmd@store{@part}% }% - \let\partheadmidvskip\tud@headmidvskip% + \tud@sectioning@set[addpart]{part}{% + \tud@font@heading% + \tud@color{\tud@part@fontcolor}% + }% + \tud@font@koma@set{partnumber}{% + \tud@font@heading% + \tud@color{\tud@part@fontcolor}% + }% \let\partheadstartvskip\tud@partheadstartvskip% - \let\@part\tud@@part% + \ifcsdef{scr@v@3.18}{% + \let\scr@@startpart\tud@@startpart% + }{% + \let\@part\tud@@part% + }% \fi% - \ifcase\tud@layout@part\relax% + \ifcase\tud@layout@part\relax% false \tud@sectioning@reset[addsec]{section}% \tud@sectioning@reset{subsection}% \tud@sectioning@reset{subsubsection}% \tud@sectioning@reset{minisec}% - \else% + \else% !false \tud@sectioning@set[addsec]{section}{\tud@font@heading}% \tud@sectioning@set{subsection}{\tud@font@heading}% \tud@sectioning@set{subsubsection}{\tud@font@heading}% @@ -2787,37 +3554,36 @@ \newcommand*\tud@partheadstartvskip{} \let\tud@partheadstartvskip\partheadstartvskip% \pretocmd{\tud@partheadstartvskip}{% - \def\tud@part@fontcolor{black}% - \ifcase\tud@layout@part\relax\or\else% + \def\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part\relax\or\else% *color \def\tud@part@fontcolor{HKS41}% \fi% }{}{\tud@patch@wrn{tud@partheadstartvskip}} -\let\tud@@part\@part -\patchcmd{\tud@@part}% - {\size@partnumber{\partformat}}% - {\size@partnumber{\tud@makeuppercase{\partformat}}}% - {}{\tud@patch@wrn{@part}}% -\ifcsdef{scr@v@3.14}{}{% - \providecommand*\SecDef[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}} - \providecommand\scr@section@dblarg[1]{% - \kernel@ifnextchar[%] - {#1}% - {\scr@section@xdblarg{#1}}% - } - \providecommand\scr@section@xdblarg[2]{% - \begingroup - \edef\reserved@a{% - \unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}% - {\scr@osectarg}}% - \reserved@a - } -} +\@tempswafalse +\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\if@tempswa + \newcommand*\tud@@startpart{}% + \let\tud@@startpart\scr@@startpart% + \patchcmd{\tud@@startpart}% + {\usekomafont{#1prefix}{\@nameuse{#1format}}}% + {\usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}}% + {}{\tud@patch@wrn{scr@@startpart}}% +\else + \newcommand*\tud@@part{}% + \let\tud@@part\@part + \patchcmd{\tud@@part}% + {\size@partnumber{\partformat}}% + {\size@partnumber{\tud@makeuppercase{\partformat}}}% + {}{\tud@patch@wrn{@part}}% +\fi \newcommand*\tud@part{} \newcommand*\tud@spart{} \newcommand*\tud@addpart{} \newcommand*\tud@saddpart{} \newcommand*\tud@section{} \newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} \newcommand*\tud@subsection{} \newcommand*\tud@ssubsection{} \newcommand*\tud@subsubsection{} @@ -2877,148 +3643,179 @@ \tud@makeuppercase{#1}% \endgroup% } -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% -} -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% -} -\newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% -} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@check[2]{% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% - \@tempswatrue% - \ifboolexpr{bool {@tud@#1@fil} and bool {@tud@#1@multi}}{% - \setbox0\vbox{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-\baselineskip}}% - \fi% - #2% - }% - \ifdim\textheight<\dimexpr\ht0+\dp0\relax% - \ClassWarning{\tudcls@name}{% + \global\let\tud@fm@set\tud@fm@first% + \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUDClassName}{% The given content within the `#1'\MessageBreak% environment is too large, so it wasn't possible\MessageBreak% to center the body vertically. Setting the option\MessageBreak% `#1=nofill' would be a solution. You\MessageBreak% could also use multiple `#1' environments% }% - \@tempswafalse% + \boolfalse{@tud@#1@fil}% \fi% }{}% - }{}% + }{% chapter + }% + \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% + \global\let\tud@fm@set\tud@fm@first% #2% } -\newcommand*\tud@fm@set[3]{% - \if@twocolumn% - \tud@fm@body{#1}{#2}{#3}% - \else% +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + }{% + \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% + }% + }% + \@tempa% + }{% + \ClassWarning{\TUDClassName}{% + It isn't possible to use `#1=single'\MessageBreak% + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc}{% + \the\numexpr\@nameuse{tud@#1@toc}-2\relax% + }% + }% + \@tempa% + }% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \global\let\tud@fm@set\tud@fm@next% + \if@twocolumn\else% \if@titlepage% - \ifbool{@tud@#1@multi}{}{\clearpage}% \ifbool{@tud@#1@fil}{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% + \null\vfil% + \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section + \vspace{\dimexpr-\parskip-\baselineskip\relax}% + {\usekomafont{section}{\vspace{-\baselineskip}}}% \fi% - \if@tempswa\vspace*{\z@ \@plus 1fil}\fi% }{}% - \tud@fm@body{#1}{#2}{#3}% - \ifbool{@tud@#1@fil}{\vspace*{\z@ \@plus 2fil}}{}% - \else% - \ifnum\@nameuse{tud@#1@level}<2\begin{\tud@quoting}\fi% - \tud@fm@body{#1}{#2}{#3}% - \ifnum\@nameuse{tud@#1@level}<2\end{\tud@quoting}\fi% \fi% \fi% } -\newcommand*\tud@fm@body[3]{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#2}}]% +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% \else% - \ifbool{@tud@#1@multi}{% - \ifcase\@nameuse{tud@#1@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% + }% + \else% + \ifnum\@nameuse{tud@#1@level}=\z@% + \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% \fi% - }{}% - \tud@fm@head{#1}{#2}% - \fi% - #3\par% - \ifnum\tud@multicols>1\relax% - \end{multicols}% + \fi% \fi% } +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true + \fi\fi% + \ifnum\tud@multicols>\@ne\relax% + \setlength\multicolsep{\z@}% + \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@multicols>\@ne\relax% + \end{multicols}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true + \fi\fi% + \endgroup% +} \newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% + \ifcase\@nameuse{tud@#1@level}\relax% false \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% - \or% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% \begingroup% - \centering% + \noindent\centering% \normalfont\sectfont\nobreak#2% \@endparpenalty\@M% \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\dimexpr\medskipamount-\parskip\relax% \@afterheading% - \or% + \or% section \section*{#2}% \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% \fi% \ifbool{@tud@#1@markboth}{% \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% }{}% - \ifbool{@tud@#1@toc}{% - \ifbool{@tud@#1@toc@leveldown}{% - \addsubsectiontocentry{}{#2}% - }{% - \addsectiontocentry{}{#2}% - }% - }{}% -} -\newcommand*\tud@fm@next[2]{% - \TUD@parameter@set{#1}{#2}% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% - \else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \vspace*{\z@ \@plus 1fil}% - \ifbool{@tud@#1@multi}{}{% - \vspace*{\z@ \@plus 1fil}% - \clearpage% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% - \fi% - \vspace*{\z@ \@plus 1fil}% - }% - }{\ifbool{@tud@#1@multi}{}{\clearpage}}% - \else% - \ifnum\@nameuse{tud@#1@level}<2% - \end{\tud@quoting}% - \begin{\tud@quoting}% - \fi% + \ifnum\@nameuse{tud@#1@toc}>\z@\relax% + \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% + \ifnumodd{\csname tud@#1@toc\endcsname}{% + \addsectiontocentry{}{#2}% + }{% + \addsubsectiontocentry{}{#2}% + }% \fi% \fi% } \newcommand*\tud@fm@pagestyle[2]{% \if@titlepage% \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\tudcls@name}{`#2' is no valid pagestyle}{% + \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined% + `#1' environment, but it was never defined.% }% }% \else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The key `pagestyle' can only be used with\MessageBreak% activated option `titlepage'% }% @@ -3029,7 +3826,7 @@ \csundef{abstract} \csundef{endabstract} \NewEnviron{abstract}[1][]{% - \ifnumless{\@nameuse{tud@abstract@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% \TUD@parameter@set{abstract}{#1}% \tud@multicols@check% @@ -3039,16 +3836,25 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{abstract}{\tud@fm@set{abstract}{\abstractname}{\BODY}}% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% }[% \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] \TUD@parameter{abstract}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% @@ -3067,26 +3873,15 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% } \newcommand*\nextabstract[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \else% - \ifbool{@tud@abstract@multi}{% - \ifcase\@nameuse{tud@abstract@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% - \fi% - }{}% - \fi% - \tud@fm@next{abstract}{#1}% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{abstract}{\abstractname}}]% - \else% - \tud@fm@head{abstract}{\abstractname}% - \fi% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% + }% } \newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% - \ifnumless{\@nameuse{tud@declaration@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% \TUD@parameter@set{declaration}{#1}% \tud@multicols@check% @@ -3096,24 +3891,17 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{declaration}{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% - \BODY% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% - }% + \tud@fm@check{declaration}{\BODY}% }[% \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] \TUD@parameter{declaration}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% @@ -3137,14 +3925,10 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% } \newcommand*\declaration[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% - \tud@fm@blocking% + \tud@fm@confirmation[#1]% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3152,21 +3936,26 @@ \tud@fm@blocking% \end{declarations}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% +} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2} + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% + }% + }% } \newcommand*\confirmation[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{supporter=##1}% }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% + \tud@fm@confirmation[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3176,28 +3965,19 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } -\newcommand*\tud@fm@confirmation{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\confirmationname}{% - \confirmationtext\vskip\z@\@confirmationclosing% - }% - }% +\newcommand*\tud@fm@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% } \newcommand*\blocking[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{company=##1}% }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@blocking% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3207,14 +3987,11 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } -\newcommand*\tud@fm@blocking{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\blockingname}{\blockingtext}% - }% +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% } %%% From File: tudscr-title.dtx \newkomafont{thesis}{\usekomafont{title}\LARGE} @@ -3224,21 +4001,21 @@ \selectfont% \large% } -\newcommand*\tud@title@fontcolor{black} +\newcommand*\tud@title@fontcolor{} \newcommand*\tud@titlepagenumber{}% \let\tud@titlepagenumber\relax% \newcommand*\tud@maketitle[1][]{% \begingroup% \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false \if@titlepage% \tud@maketitlepage% \else% - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\else% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\else% *color \def\tud@title@fontcolor{HKS41}% \fi% \let\@maketitle\tud@@maketitle% @@ -3263,17 +4040,20 @@ \robustify{\footnotemark}% \newcommand*\tud@titleback{}% \newcommand*\tud@maketitlepage{% - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\or% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\or% litecolor + \def\tud@title@fontcolor{HKS41}% + \or% barcolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% bicolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% color \def\tud@title@fontcolor{HKS41!30}% - \or% + \or% full \def\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% + \tud@layout@specialpage@set{title}% \ifx\tud@titlepagenumber\relax\else% \setcounter{page}{\tud@titlepagenumber}% \fi% @@ -3287,7 +4067,7 @@ \tud@footnote@unhyper% \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -3345,21 +4125,21 @@ \usekomafont{titlepage}% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% @@ -3367,14 +4147,14 @@ \vskip 2ex\@plus1ex\@minus1ex% \fi% \vskip 2\bigskipamount% - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -3388,7 +4168,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\space\@graduationabbr\fi% + \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -3408,26 +4188,11 @@ \tud@title@names{advisor}% \tud@title@names{professor}% \ifx\@thesis\@empty\else% - \ifdefstring{\@date}{\today}{% - \ifdefvoid{\@duedate}{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - Since a thesis is a self-contained work, an end\MessageBreak% - date should be specified by the author.\MessageBreak% - Nevertheless, today's date is used% - }% - }{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - It's substituted by the given due date% - }% - \let\@date\@duedate% - }% - }{}% + \tud@datecheck% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \ifx\@defensedate\@empty\else% \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% {\usekomafont{date}{\@defensedate\par}}% @@ -3463,27 +4228,26 @@ \fi% \def\@tempa{% \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \ifcase\tud@layout@title\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{white}% - \def\tud@foot@logocolor{white}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% full \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\sffamily\color{\tud@title@fontcolor}}% - \addtokomafont{footnote}{\sffamily\color{\tud@title@fontcolor}}% + \tud@color{\tud@title@fontcolor}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% }% \if@tud@cover% \begingroup% @@ -3497,7 +4261,6 @@ \let\thispagestyle\@gobble% \next@tpage% \endgroup% - \tud@restorepagecolor% \endgroup% \tud@titleback% \ifx\@dedication\@empty\else% @@ -3519,7 +4282,7 @@ \begingroup% \def\thanks##1{\gdef\@tempa{##1}}% \let\footnote\thanks% - \setbox0\vbox{#1}% + \sbox\z@{#1}% \let\thanks\@gobble% \let\footnote\@gobble% \tud@makeuppercase{#1}% @@ -3556,22 +4319,22 @@ \tud@footnote@unhyper% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \TUDoptions{subjectthesis=true}% \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% @@ -3579,10 +4342,10 @@ \vskip 2ex\@plus1ex\@minus1ex% \fi% \vskip 2\bigskipamount% - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -3596,53 +4359,12 @@ \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% \vskip 2\bigskipamount% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% -} -\newcommand*\tud@multiple@field{} -\newcommand*\tud@multiple@split[1]{% - \gdef\tud@multiple@field{#1}% - \begingroup% - \let\and\relax% - \edef\@tempa{\csname#1\endcsname\and}% - \expandafter\endgroup% - \expandafter\tud@multiple@@split\@tempa\relax% -} -\newcommand*\tud@multiple@@split{}% -\def\tud@multiple@@split#1\and#2\relax{% - \expandafter\csname tud@split\tud@multiple@field\endcsname{#1}{#2}% -} -\newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% - \def\@tempb{}% - \else% - \def\@tempb{#2\tud@multiple@@split#1\relax}% - \fi% - \@tempb% -} -\newcommand*\tud@multiple@setfields[2]{% - \letcs\@tempa{tud@split\tud@multiple@field @list}% - \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \begingroup% - \protected@expandtwoargs\in@{\@tempb}{\@nameuse{\tud@multiple@field}}% - \ifin@ \@tempb{#1}\fi% - \endgroup% - \fi% - }% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \setbox0\vtop{#2}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% \endgroup% } \newcommand*\tud@newline{} -\newcommand*\tud@check@author{% - \ifpatchable{\@author}{\@latex@warning@no@line}{\@author\gdef\@author{}}{}% -} -\newcommand*\tud@split@author[2]{% - \tud@multiple@setfields{}{#1}% +\newcommand*\tud@split@author@title[2]{% + \tud@multiple@fields@store{@author}{#1}% \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% {\usekomafont{author}{\ignorespaces#1}}% \if@tud@cover\else% @@ -3656,7 +4378,7 @@ \ifstr{\dateofbirthtext}{}% {}{\dateofbirthtext\@titledelim}\@dateofbirth% \ifx\@placeofbirth\@empty\else% - \space\placeofbirthtext\unskip\space\@placeofbirth% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% \fi% \else% \tud@title@wrn{dateofbirth}% @@ -3683,13 +4405,9 @@ \fi% \fi% \fi% + \tud@multiple@fields@restore{@author}% \tud@multiple@@@split{#2}{\vskip 2ex}% } -\newcommand*\tud@split@author@list{% - \authormore,\matriculationyear,\enrolmentyear,% - \matriculationnumber,\studentid,\matriculationid,% - \placeofbirth,\birthplace,\dateofbirth,\birthday,% -} \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% @@ -3699,7 +4417,7 @@ \tud@title@twocolumn{\maketitle[#1]{#2}}% \fi% \else% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% @@ -3715,9 +4433,9 @@ }% \endgroup% \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% \@tempswatrue% \fi% @@ -3729,18 +4447,18 @@ \vsplit\tud@title@twocolumn@box to \@tempdima% \clearpage% \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{\@tempswafalse}{}% + \tud@ifverlower{2.03}{\@tempswafalse}{}% }% \else% \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% \fi% \twocolumn[\unvbox\tud@title@twocolumn@box]% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \if@tempswa% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% You are using a two-column title along with\MessageBreak% the DDC-logo. Unfortunately in this case, the\MessageBreak% - type area hast to be adjusted manually. Please\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% @@ -3750,7 +4468,7 @@ \newcommand*\tud@letsubjectthesis{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% \ifx\@subject\@empty\else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The option `subjectthesis' was activated.\MessageBreak% The field `subject' will be overwritten with the\MessageBreak% given thesis% @@ -3760,7 +4478,7 @@ \fi\fi% } \newcommand*\tud@title@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% `\@backslashchar#1' has to be used with\MessageBreak% activated titlepage option% }% @@ -3768,7 +4486,7 @@ \newif\if@tud@cover \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using both option `titlepage=firstiscover' and\MessageBreak% `\string\makecover' together isn't supported. The\MessageBreak% option `titlepage=firstiscover' will be ignored. If you\MessageBreak% @@ -3790,12 +4508,12 @@ \let\coverpagebottommargin\tud@dim@widemargin% \let\coverpageleftmargin\tud@dim@widemargin% \let\coverpagerightmargin\tud@dim@slimmargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagetopmargin{.5\tud@dim@both}% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% \fi% - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \KOMAoptions{titlepage=firstiscover}% \let\@extratitle\@empty% \let\@uppertitleback\@empty% @@ -3803,7 +4521,7 @@ \let\@dedication\@empty% \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false \@tud@covertrue% \@titlepagetrue% \edef\titlepage@restore{% @@ -3821,7 +4539,7 @@ \headheight=0pt% \headsep=0pt% \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% -1.25\baselineskip\relax% }{}% @@ -3836,7 +4554,7 @@ \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% \ifx\@tempa\coverpagebottommargin\relax% \let\coverpagebottommargin\tud@dim@widemargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% \fi% @@ -3881,8 +4599,39 @@ }% }% } +%%% From File: tudscr-comp.dtx +\newcommand*\tud@deprecated@cmd[2]{% + \AtBeginDocument{% + \ifcsdef{#1}{}{% + \expandafter\newrobustcmd\csname #1\endcsname{% + \ClassWarning{\TUDClassName}{% + The command `\@backslashchar#1' is deprecated.\MessageBreak% + It's recommended to use `\@backslashchar#2' instead% + }% + \csletcs{#1}{#2}% + \@nameuse{#2}% + }% + }% + }% +} +\tud@deprecated@cmd{professorship}{chair} +\tud@deprecated@cmd{studentid}{matriculationnumber} +\tud@deprecated@cmd{matriculationid}{matriculationnumber} +\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% +\tud@deprecated@cmd{birthplace}{placeofbirth} +\tud@deprecated@cmd{location}{place} +\tud@deprecated@cmd{submissiondate}{date} +\tud@deprecated@cmd{oralexaminationdate}{defensedate}% +\tud@deprecated@cmd{birthday}{dateofbirth} +\tud@deprecated@cmd{logofile}{headlogo} +\tud@deprecated@cmd{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \tud@deprecated@cmd{startdate}{issuedate}% + \tud@deprecated@cmd{finaldate}{duedate}% + \tud@deprecated@cmd{maturitydate}{duedate}% +} %%% From File: tudscr-misc.dtx -\newcounter{symbolheadings} +\newcounter{symbolheadings}% \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@footnote@unhyper{} \AfterPackage{hyperref}{% @@ -3913,76 +4662,14 @@ \fi% \tudbookmark[1]{\contentsname}{toc}% }{}{\tud@patch@wrn{tableofcontents}} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% +\BeforePackage{tocloft}{% + \ClassWarning{\TUDClassName}{% + It is not recommended to use package `tocloft'.\MessageBreak% + Loading the package will certainly lead to problems\MessageBreak% + with table of contents and any list of floats. You\MessageBreak% + should use the appropriate options of KOMA-Script% }% } -\newcommand*\tud@multicols{1} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>1\relax% - \ClassWarning{\tudcls@name}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \def\tud@multicols{1}% - \fi% - }% -} -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% -} -\newcommand*\tud@lowerstring[2]{% - \protected@edef#1{#2}% - \lowercase\expandafter{% - \expandafter\gdef\expandafter #1\expandafter{#1}% - }% -} -\providecommand*\protected@expandtwoargs[3]{% - \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% -} -%%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@cmd[2]{% - \AtBeginDocument{% - \ifcsdef{#1}{}{% - \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\tudcls@name}{% - The command `\@backslashchar#1' is deprecated.\MessageBreak% - It's recommended to use `\@backslashchar#2' instead% - }% - \csletcs{#1}{#2}% - \@nameuse{#2}% - }% - }% - }% -} -\tud@deprecated@cmd{professorship}{chair} -\tud@deprecated@cmd{student}{author} -\tud@deprecated@cmd{studentid}{matriculationnumber} -\tud@deprecated@cmd{matriculationid}{matriculationnumber} -\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% -\tud@deprecated@cmd{birthplace}{placeofbirth} -\tud@deprecated@cmd{location}{place} -\tud@deprecated@cmd{submissiondate}{date} -\tud@deprecated@cmd{oralexaminationdate}{defensedate}% -\tud@deprecated@cmd{birthday}{dateofbirth} -\tud@deprecated@cmd{logofile}{headlogo} -\tud@deprecated@cmd{logofilename}{headlogo} -\AfterPackage*{tudscrsupervisor}{% - \tud@deprecated@cmd{startdate}{issuedate}% - \tud@deprecated@cmd{finaldate}{duedate}% - \tud@deprecated@cmd{maturitydate}{duedate}% -} \endinput %% %% End of file `tudscrartcl.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty index 7f759137ad7..53be98263f4 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbase.sty @@ -52,7 +52,7 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} \@ifundefined{TUDScript}{% @@ -63,9 +63,9 @@ }% }{} %%% From File: tudscr-base.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrbase}[% - 2015/06/11 v2.03a TUD-KOMA-Script + 2015/07/02 v2.04 TUD-KOMA-Script package (basics for the bundle)% ] @@ -95,6 +95,43 @@ }% }% } +\providecommand*\protected@expandtwoargs[3]{% + \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% +} +\newcommand*\tud@divide[3]{% + \begingroup% + \@defaultunits\@tempdima #2pt\relax\@nnil% + \@defaultunits\@tempdimb #3pt\relax\@nnil% + \ifdim\@tempdima>\@tempdimb\relax% + \@whiledim\@tempdimb>1pt\relax\do{% + \setlength\@tempdima{.1\@tempdima}% + \setlength\@tempdimb{.1\@tempdimb}% + }% + \setlength\@tempdimc{\@tempdima}% + \else% + \@whiledim\@tempdima>1pt\relax\do{% + \setlength\@tempdima{.1\@tempdima}% + \setlength\@tempdimb{.1\@tempdimb}% + }% + \setlength\@tempdimc{\@tempdimb}% + \fi% + \@tempcnta=1\relax% + \@whiledim\dimexpr\@tempcnta\@tempdimc\relax<.01\maxdimen\do{% + \multiply\@tempcnta by 10\relax% + }% + \setlength{\@tempdimc}{% + \dimexpr(\@tempcnta\@tempdima / \@tempdimb * \p@)\relax% + }% + \setlength{\@tempdimc}{\dimexpr \@tempdimc/\@tempcnta\relax}% + \edef\@tempa{\endgroup\def\noexpand#1{\strip@pt\@tempdimc}}% + \@tempa% +} +\newcommand*\tud@lowerstring[2]{% + \protected@edef#1{#2}% + \lowercase\expandafter{% + \expandafter\def\expandafter #1\expandafter{#1}% + }% +} \DefineFamily{TUD} \newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}} \newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}} @@ -107,9 +144,11 @@ \kernel@ifnextchar[%] {\TUD@@key[#1]{#2}}{\TUD@@@key[#1]{#2}}% } +\newcommand*\TUD@@key{} \def\TUD@@key[#1]#2[#3]#4{% \DefineFamilyKey[#1]{TUD}{#2}[{#3}]{\TUD@noworlater{#4}}% } +\newcommand*\TUD@@@key{} \def\TUD@@@key[#1]#2#3{% \DefineFamilyKey[#1]{TUD}{#2}{\TUD@noworlater{#3}}% } @@ -152,7 +191,7 @@ \TUD@set@numkey{#1}% } \newcommand*\cs@lock[2]{% - \csdef{#1}{#2}% + \expandafter\newcommand\expandafter*\csname#1\endcsname{#2}% \newbool{#1@locked}% } \newcommand*\cs@std@lock[2]{% @@ -181,29 +220,29 @@ \booltrue{#1@locked}% } \newcommand*\tud@cmd@store[1]{% - \ifcsdef{@@tud@#1}{}{% - \tud@cmd@check{#1}% - \csletcs{@@tud@#1}{#1}% - }% -} -\newcommand*\tud@cmd@reset[1]{% - \ifcsdef{@@tud@#1}{% - \tud@cmd@check{#1}% - \csletcs{#1}{@@tud@#1}% - }{}% + \tud@cmd@check{#1}% + \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}% } \newcommand*\tud@cmd@restore[1]{% + \tud@cmd@check{#1}% \ifcsdef{@@tud@#1}{% - \tud@cmd@check{#1}% \csletcs{#1}{@@tud@#1}% \csundef{@@tud@#1}% }{}% } +\newcommand*\tud@cmd@reset[1]{% + \tud@cmd@check{#1}% + \ifcsdef{@@tud@#1}{\csletcs{#1}{@@tud@#1}}{}% +} +\newcommand*\tud@cmd@update[1]{% + \tud@cmd@check{#1}% + \ifcsdef{@@tud@#1}{\csletcs{@@tud@#1}{#1}}{}% +} \newcommand*\tud@cmd@use[1]{% + \tud@cmd@check{#1}% \ifcsdef{@@tud@#1}{% \@nameuse{@@tud@#1}% }{% - \tud@cmd@check{#1}% \@nameuse{#1}% }% } @@ -214,10 +253,36 @@ }{% The command `\@backslashchar#1' was never defined.\MessageBreak% Please contact the TUD-KOMA-Script maintainer\MessageBreak% - via \tudscrmail. A bugfix is urgently required + via \tudscrmail. A bugfix is urgently required.% }% }% } +\newcommand*\tud@skip@store[1]{% + \ifcsdef{@@tud@skip@#1}{}{% + \@tempswafalse% + \ifisskip{\csname #1\endcsname}{\@tempswatrue}{}% + \ifisdimen{\csname #1\endcsname}{\@tempswatrue}{}% + \if@tempswa% + \csedef{@@tud@skip@#1}{\expandafter\the\csname #1\endcsname}% + \fi% + }% +} +\newcommand*\tud@skip@restore[1]{% + \ifcsdef{@@tud@skip@#1}{% + \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% + \csundef{@@tud@skip@#1}% + }{}% +} +\newcommand*\tud@skip@set[2]{% + \ifdef{#1}{% + \@tempswafalse% + \ifisskip{#1}{\@tempswatrue}{}% + \ifisdimen{#1}{\@tempswatrue}{}% + \if@tempswa% + \setlength#1{#2}% + \fi% + }{}% +} \newcommand*\tud@patch@wrn[1]{% \PackageWarning{tudscrbase}{% It wasn't possible to patch `\@backslashchar#1'.\MessageBreak% @@ -236,11 +301,11 @@ \newcommand*\TUD@parameter@checkfamily[1]{% \ifx\TUD@parameter@family\relax% \PackageError{tudscrbase}{% - No family for keys given. + No family for keys given% }{% You have to use \string#1\space within the\MessageBreak% second argument of \string\TUD@parameter. The first \MessageBreak% - argument of \string\TUD@parameter\space has to be a unique family name. + argument of \string\TUD@parameter\space has to be a unique family name.% }% \fi% } @@ -284,6 +349,25 @@ `#1' can only be used with values:\MessageBreak#2% }% } +\newcommand*\TUD@AfterPackage@Set[1]{% + \newbool{@tud@#1@loaded}% + \AfterPackage!{#1}{\booltrue{@tud@#1@loaded}} +} +\newcommand*\TUD@AfterPackage[2]{% + \ifcsdef{if@tud@#1@loaded}{% + \if@atdocument% + \ifbool{@tud@#1@loaded}{#2}{}% + \else% + \AfterPackage!{#1}{#2}% + \fi% + }{% + \PackageError{tudscrbase}{\string\TUD@AfterPackage@Set{#1} missing}{% + You have to set \string\TUD@AfterPackage@Set{#1} before\MessageBreak% + the usage of \string\TUD@AfterPackage{#1}{<code>} is\MessageBreak% + possible.% + }% + }% +} \endinput %% %% End of file `tudscrbase.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls index 8a119fa94be..368005bcefe 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrbook.cls @@ -11,19 +11,19 @@ %% tudscr-layout.dtx (with options: `class,book,option') %% tudscr-frontmatter.dtx (with options: `class,book,option') %% tudscr-title.dtx (with options: `class,book,option') -%% tudscr-misc.dtx (with options: `class,book,option') %% tudscr-comp.dtx (with options: `class,book,option') -%% tudscr-base.dtx (with options: `execute') +%% tudscr-misc.dtx (with options: `class,book,option') +%% tudscr-misc.dtx (with options: `class,execute') +%% tudscr-base.dtx (with options: `class,body') %% tudscr-fonts.dtx (with options: `class,body') -%% tudscr-color.dtx (with options: `class,body') %% tudscr-fields.dtx (with options: `class,body') %% tudscr-locale.dtx (with options: `class,book,body') %% tudscr-pagestyle.dtx (with options: `class,book,body') %% tudscr-layout.dtx (with options: `class,book,body') %% tudscr-frontmatter.dtx (with options: `class,book,body') %% tudscr-title.dtx (with options: `class,book,body') -%% tudscr-misc.dtx (with options: `class,book,body') %% tudscr-comp.dtx (with options: `class,book,body') +%% tudscr-misc.dtx (with options: `class,book,body') %% %% ============================================================================ %% @@ -70,22 +70,29 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\newcommand*\cls@name{book} -\newcommand*\scrcls@name{scrbook} -\newcommand*\tudcls@name{tudscrbook} -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesClass{\tudcls@name}[% - 2015/06/11 v2.03a TUD-KOMA-Script - document class (\cls@name)% -] -\typeout{The Corporate Design of Technische Universitaet Dresden} -\typeout{Class: \tudcls@name} -\typeout{Version: \TUDVersion} -\typeout{Author: Falk Hanisch (\tudscrmail)} -\typeout{http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} +\newcommand*\TUD@ProvidesClass[3]{% + \newcommand*\TUDClassName@KOMA{#2}% + \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% + \ProvidesClass{#1}[% + 2015/07/02 v2.04 TUD-KOMA-Script + ^^J#3 (#2)% + ]% + \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% +} +\providecommand*\TUD@ClassInfo{% + \typeout{+---------------------------------------------------------------} + \typeout{| The Corporate Design of Technische Universitaet Dresden} + \typeout{| Class: \TUDClassName} + \typeout{| Version: \TUDVersion} + \typeout{| Author: Falk Hanisch (\tudscrmail)} + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} + \typeout{+---------------------------------------------------------------} +} +\NeedsTeXFormat{LaTeX2e} +\TUD@ProvidesClass{tudscrbook}{scrbook}{document class} \@ifundefined{TUDScript}{% \DeclareRobustCommand{\TUDScript}{% \ifdin{TUD-KOMA-SCRIPT}{% @@ -97,7 +104,7 @@ \RequirePackage{tudscrbase}[\TUDVersion] %%% From File: tudscr-fonts.dtx \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% @@ -108,74 +115,30 @@ \newcommand*\tud@dinbold{0m6} \newif\if@tud@fontspec \TUD@key{fontspec}[true]{% + \ClassWarning{\TUDClassName}% + {% + The option key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% } \AtEndOfClass% {% - \TUD@key{fontspec}[] + \TUD@key{fontspec}[]% {% - \ClassError{\tudcls@name} + \ClassError{\TUDClassName}% {Option `fontspec' too late}{% Option `fontspec' can only be set while loading the\MessageBreak% - class `\tudcls@name' + class `\TUDClassName' but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% \if@tud@fontspec% - \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}% - {% - You must not load the package `fontspec' as it is\MessageBreak% - loaded automatically at the end of the preamble.\MessageBreak% - If you want to pass options to `fontspec' use\MessageBreak% - `\string\PassOptionsToPackage{<option list>}{fontspec}' - }% - ]{fontspec} - \fi% -} -\AtEndPreamble{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@univers.fd}}% - }% - \def\@tempb#1{% - \ClassInfoNoLine{\tudcls@name}{% - `#1' fonts not found for math typesetting% - }% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \def\@tempb#1{% - \ClassWarningNoLine{\tudcls@name}{% - `#1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - Please use on of the installation scripts out of the\MessageBreak% - tudscr-bundle, which suits to your OS or choose a\MessageBreak% - possible encoding. A fallback layout is used% - }% - }% - \fi% - \@tempa{\@tud@universtrue}{\@tempb{Univers}}% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@dinbold.fd}}% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \fi% - \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}% - \if@tud@fontspec% - \UnPreventPackageFromLoading{fontspec}% - \if@tud@univers\if@tud@dinbold% - \PassOptionsToPackage{no-math}{fontspec}% - \fi\fi% \RequirePackage{fontspec}[2014/06/21]% \fi% } +\AfterPackage*{fontspec}{\@tud@fontspectrue} \RequirePackage{textcase}[2004/10/07] \newcommand*\tud@uclcnotmath{% \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% @@ -228,77 +191,104 @@ {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{pdftex}{13},{pdflatex}{13}% + {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@cdfont{0}% \if@atdocument\tud@font@set\fi% - \or% + \or% true \def\tud@cdfont{1}% \if@atdocument\tud@font@set\fi% - \or% + \or% heavy \def\tud@cdfont{2}% \if@atdocument\tud@font@set\fi% - \or% + \or% nodin \renewcommand*\tud@font@heading{\tud@RaggedRight}% - \or% - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright} - \or% + \or% din + \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \or% nohead \TUDoptions{cdhead=false}% - \or% + \or% head \TUDoptions{cdhead=true}% - \or% + \or% heavyhead \TUDoptions{cdhead=heavy}% - \or% + \or% nomath \TUDoptions{cdmath=false}% - \or% + \or% math \TUDoptions{cdmath=true}% - \or% + \or% upgreek \TUDoptions{slantedgreek=false}% - \or% + \or% slgreek \TUDoptions{slantedgreek=true}% - \or% + \or% fontspec \TUDoptions{fontspec=true}% - \or% + \or% nofontspec \TUDoptions{fontspec=false}% \fi% + \else% + \KOMAoptions{fontsize=#1}% + \ifcase\tud@cdfont\relax% false to true + \def\tud@cdfont{1}% + \if@atdocument\tud@font@set\fi% + \fi% \fi% } -\AtBeginDocument{\tud@font@set}% +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{fontsize}{% + \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \FamilyKeyStateProcessed% +} \bool@lock{@tud@cdmath} \TUD@key{cdmath}[true]{% \TUD@set@numkey{cdmath}{@tempa}{% \TUD@numkey@bool,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% - {upright}{2},{upgreek}{2},{uprightgreek}{2},{uprightGreek}{2},% - {slanted}{3},{slgreek}{3},{slantedgreek}{3},{slantedGreek}{3}% + {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% + {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \TUD@std@ifkey@lock{slantedgreek}{false}% \if@atdocument\tud@font@math@set\fi% - \or% + \or% true \bool@set@lock{@tud@cdmath}{true}% - \TUD@std@ifkey@lock{slantedgreek}{true}% \if@atdocument\tud@font@math@set\fi% - \or + \or% upgreek \TUDoptions{slantedgreek=false}% - \or + \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% } -\newif\if@tud@slantedgreek -\TUD@key@lock{slantedgreek}[true]{% - \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}% +\bool@lock{@tud@slantedgreek} +\TUD@key{slantedgreek}[true]{% + \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \bool@set@lock{@tud@slantedgreek}{#1}% \if@atdocument\tud@font@math@set\fi% \fi% } +\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} %%% From File: tudscr-pagestyle.dtx +\newcommand*\tud@ps@list{} +\newcommand*\tud@iftudps[3]{% + \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% +} +\newif\if@tud@ddc@internal +\newcommand*\tud@clearpage@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{\clearpage}{}% + \fi\fi% +} +\newcommand*\tud@pagestyle@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi\fi% +} \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% @@ -309,88 +299,72 @@ {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},% {white}{7},{cdwhite}{7}% } -\newcommand*\tud@ddc@save{} -\newif\if@tud@ddc@save -\@tud@ddc@savetrue +\newif\if@tud@ddc@auto \newcommand*\tud@ddc{0} -\newif\if@tud@ddc@autoset \TUD@key{ddc}[true]{% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \ifcase\tud@ddc\relax% - \@tud@ddc@autosetfalse% + \if@tud@ddc@internal% + \@tud@ddc@autofalse% \else% - \@tud@ddc@autosettrue% + \@tud@ddc@autotrue% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddcfoot=false}% + \@tud@ddc@internalfalse% \fi% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@head{0} \TUD@key{ddchead}[true]{% - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@head\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@head\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% - \ifcase\tud@ddc@head\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddcfoot=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@foot{0} \TUD@key{ddcfoot}[true]{% - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@foot\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@foot\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% - \ifcase\tud@ddc@foot\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddchead=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@check{% \let\@tempa\tud@ddc@head% \let\@tempb\tud@ddc@foot% - \if@tud@ddc@autoset% - \ifx\tud@@headlogo\@empty% + \if@tud@ddc@auto% + \ifdefvoid{\@headlogo}{% \let\@tempa\tud@ddc% \let\@tempb\z@% - \else% + }{% \let\@tempa\z@% \let\@tempb\tud@ddc% - \fi% + }% \fi% - \iftudscrverlower{2.03}{% - \ifcase\@tempb\relax\ifx\tud@@footlogo\@empty\else\let\@tempb\m@ne\fi\fi% + \tud@ifverlower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% + \fi% }{}% } -\newcommand*\iftudpagestyle[3]{% - \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% -} -\newcommand*\tud@ps@list{} -\forcsvlist{\listadd\tud@ps@list}{% - tudheadings,plain.tudheadings,empty.tudheadings% -} \newlength\tud@dim@extrabottommargin \TUD@key{extrabottommargin}{% \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% @@ -399,7 +373,7 @@ \fi% } \cs@lock{tud@head@font}{0} -\newcommand*\tud@head@bar{0} +\cs@lock{tud@head@bar}{0} \bool@lock{@tud@head@widebar} \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% @@ -412,34 +386,38 @@ {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% - {bicolor}{5},{bicolour}{5},{twocolor}{5},{twocolour}{5},% - {bichrome}{5},{bichromatic}{5},{dichrome}{5},{dichromatic}{5},% - {color}{5},{colour}{5},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5},% - {textwidth}{6},{slim}{6},{slimhead}{6},{nowide}{6},{nowidehead}{6},% - {paperwidth}{7},{wide}{7},{widehead}{7}% + {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},% + {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},% + {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},% + {color}{6},{colour}{6},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% + {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@head@font}{0}% - \or% + \or% true \cs@set@lock{tud@head@font}{1}% - \or% + \or% heavy \cs@set@lock{tud@head@font}{2}% - \or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \or% nocolor + \cs@set@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% color + \cs@set@lock{tud@head@bar}{3}% + \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% - \or% + \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% \fi% \fi% } -\newif\if@tud@footcolor +\TUD@AfterPackage@Set{scrlayer-scrpage} +\newif\if@tud@foot@colored \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -450,13 +428,13 @@ {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% - \or% + \or% true \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% @@ -467,11 +445,12 @@ {\footnotesize\headmark}% \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% }% + \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% - \or% - \@tud@footcolorfalse% - \or% - \@tud@footcolortrue% + \or% nocolor + \@tud@foot@coloredfalse% + \or% color + \@tud@foot@coloredtrue% \fi% \else% \TUDoptions{extrabottommargin=#1}% @@ -521,8 +500,9 @@ \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% \TUD@numkey@bool,% {typearea}{0},% - {tud}{1},{asymmetric}{1},{cd}{1},% + {cd}{1},{tud}{1},{asymmetric}{1},% {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% {twoside}{3},{balanced}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -541,58 +521,65 @@ {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% - {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% - {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% - {color}{4},{colour}{4},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5}% + {colorbar}{3},{barcolor}{3},{colourbar}{3},{barcolour}{3},% + {bicolor}{4},{bicolour}{4},{twocolor}{4},{twocolour}{4},% + {bichrome}{4},{bichromatic}{4},{dichrome}{4},{dichromatic}{4},% + {color}{5},{colour}{5},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } \newcommand*\tud@cd{0} \TUD@key{cd}[true]{% \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \cs@std@lock{tud@layout@cover}{0}% \cs@std@lock{tud@layout@title}{0}% \cs@std@lock{tud@layout@part}{0}% \cs@std@lock{tud@layout@chapter}{0}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% true \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{1}% \cs@std@lock{tud@layout@part}{1}% \cs@std@lock{tud@layout@chapter}{1}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% litecolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{2}% \cs@std@lock{tud@layout@part}{2}% \cs@std@lock{tud@layout@chapter}{2}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% barcolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{3}% \cs@std@lock{tud@layout@part}{3}% \cs@std@lock{tud@layout@chapter}{3}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% bicolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{4}% \cs@std@lock{tud@layout@part}{4}% \cs@std@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{true}% - \or% + \TUD@std@ifkey@lock{chapterpage}{false}% + \or% color \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{5}% \cs@std@lock{tud@layout@part}{5}% \cs@std@lock{tud@layout@chapter}{5}% \TUD@std@ifkey@lock{chapterpage}{true}% + \or% full + \cs@std@lock{tud@layout@cover}{1}% + \cs@std@lock{tud@layout@title}{6}% + \cs@std@lock{tud@layout@part}{6}% + \cs@std@lock{tud@layout@chapter}{6}% + \TUD@std@ifkey@lock{chapterpage}{true}% \fi% \if@atdocument% \tud@layout@process% \else% - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \TUD@std@numkey@lock{cdgeometry}{false}% - \else% + \else% !false \TUD@std@numkey@lock{cdgeometry}{true}% \fi% \fi% @@ -601,18 +588,20 @@ \TUD@key{cdcover}[true]{% \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@cover}{0}% - \or% + \or% true \cs@set@lock{tud@layout@cover}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@cover}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@cover}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@cover}{4}% - \or% + \or% color \cs@set@lock{tud@layout@cover}{5}% + \or% full + \cs@set@lock{tud@layout@cover}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -620,18 +609,20 @@ \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@title}{0}% - \or% + \or% true \cs@set@lock{tud@layout@title}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@title}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@title}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@title}{4}% - \or% + \or% color \cs@set@lock{tud@layout@title}{5}% + \or% full + \cs@set@lock{tud@layout@title}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -639,18 +630,20 @@ \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@part}{0}% - \or% + \or% true \cs@set@lock{tud@layout@part}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@part}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@part}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@part}{4}% - \or% + \or% color \cs@set@lock{tud@layout@part}{5}% + \or% full + \cs@set@lock{tud@layout@part}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -658,51 +651,31 @@ \TUD@key{cdchapter}[true]{% \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@chapter}{0}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% true \cs@set@lock{tud@layout@chapter}{1}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% litecolor \cs@set@lock{tud@layout@chapter}{2}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% barcolor \cs@set@lock{tud@layout@chapter}{3}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% bicolor \cs@set@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{true}% - \or% + \TUD@std@ifkey@lock{chapterpage}{false}% + \or% color \cs@set@lock{tud@layout@chapter}{5}% \TUD@std@ifkey@lock{chapterpage}{true}% + \or% full + \cs@set@lock{tud@layout@chapter}{6}% + \TUD@std@ifkey@lock{chapterpage}{true}% \fi% \if@atdocument\tud@layout@process\fi% \fi% } -\newcommand*\tud@font@heading@size{} -\AtEndOfClass{\let\tud@font@heading@size\size@part} -\DefineFamilyMember{KOMA} -\DefineFamilyKey{KOMA}{headings}{% - \AtEndOfFamilyOptions{% - \let\tud@font@heading@size\size@part% - \if@atdocument% - \tud@layout@process% - \ifcase\tud@layout@part\relax\else% - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% - \fi% - \ifcase\tud@layout@chapter\relax\else% - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% - \tud@font@koma@reset{minisec}% - \fi% - \fi% - }% -} \newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% @@ -734,9 +707,9 @@ \ifcsdef{ps@#1}{% \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }{% - \ClassError{\tudcls@name}{`#1' is no valid pagestyle}{% + \ClassError{\TUDClassName}{`#1' is no valid pagestyle}{% You tried to use `#1' as a pagestyle for option\MessageBreak% - `cleardoublespecialpage', but it was never defined% + `cleardoublespecialpage', but it was never defined.% }% }% }% @@ -774,107 +747,176 @@ \newif\if@tud@clearcolor \TUD@ifkey{clearcolor}{@tud@clearcolor} \TUD@ifkey{clearcolour}{@tud@clearcolor} +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% + \@namedef{tud@font@koma@#1}{#2\nobreak}% +} +\newcommand*\tud@font@koma@reset[1]{% + \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% +} +\newcommand*\tud@font@koma@unset[1]{% + \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% +} +\newcommand*\tud@font@heading@size{} +\AtEndOfClass{\let\tud@font@heading@size\size@part} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{headings}{% + \AtEndOfFamilyOptions{% + \let\tud@font@heading@size\size@part% + \if@atdocument% + \tud@layout@process% + \ifcase\tud@layout@part\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@reset{partnumber}% + \fi% + \ifcase\tud@layout@chapter\relax\else% !false + \tud@font@koma@reset{chapter}% + \tud@font@koma@reset{chapterprefix}% + \tud@font@koma@reset{section}% + \tud@font@koma@reset{subsection}% + \tud@font@koma@reset{subsubsection}% + \tud@font@koma@reset{minisec}% + \fi% + \fi% + }% +} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% {chapter}{3},{chap}{3},{addchap}{3},% {new}{3},{standard}{3},{heading}{3},% - {totoc}{4},{toc}{4},{totoclevelup}{4},{toclevelup}{4},{levelup}{4},% - {totocleveldown}{5},{tocleveldown}{5},{leveldown}{5},% - {nottotoc}{6},{notoc}{6},% - {markboth}{7},{mark}{7},% - {nomarkboth}{8},{nomark}{8},% - {one}{9},{simple}{9},{single}{9},% - {multi}{10},{multiple}{10},{all}{10},{two}{10},{both}{10},{double}{10},% - {nofil}{11},{nofill}{11},{novfil}{11},{novfill}{11},% - {fil}{12},{fill}{12},{vfil}{12},{vfill}{12}% + {single}{4},{one}{4},{simple}{4},% + {multiple}{5},{multi}{5},{all}{5},{aggregate}{5},% + {two}{5},{both}{5},{double}{5},% + {nofil}{6},{nofill}{6},{novfil}{6},{novfill}{6},% + {fil}{7},{fill}{7},{vfil}{7},{vfill}{7},% + {markboth}{8},{mark}{8},% + {nomarkboth}{9},{nomark}{9},% + {nottotoc}{10},{notoc}{10},% + {totoc}{11},{toc}{11},{totoclevelup}{11},{toclevelup}{11},{levelup}{11},% + {totocleveldown}{12},{tocleveldown}{12},{leveldown}{12},% + {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% + {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } \newcommand*\tud@abstract@level{3} -\bool@lock[true]{@tud@abstract@toc} -\newif\if@tud@abstract@toc@leveldown -\newif\if@tud@abstract@markboth +\cs@lock{tud@abstract@toc}{1} \newif\if@tud@abstract@multi +\@tud@abstract@multitrue \newif\if@tud@abstract@fil \@tud@abstract@filtrue +\newif\if@tud@abstract@markboth \TUD@key{abstract}[chapter]{% \edef\@tempb{\tud@fm@switch}% \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% - \or% - \or% + \ifcase\@tempa\relax% false + \or% true + \or% section \def\tud@abstract@level{2}% - \bool@std@lock{@tud@abstract@toc}{true}% - \or% + \cs@std@lock{tud@abstract@toc}{1}% + \or% chapter \def\tud@abstract@level{3}% - \bool@std@lock{@tud@abstract@toc}{true}% - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@abstract@toc}{false}% - \or% - \@tud@abstract@markbothtrue% - \or% - \@tud@abstract@markbothfalse% - \or% + \cs@std@lock{tud@abstract@toc}{1}% + \or% single \@tud@abstract@multifalse% - \or% + \or% multiple \@tud@abstract@multitrue% - \or% + \or% nofil \@tud@abstract@filfalse% - \or% + \or% fil \@tud@abstract@filtrue% + \or% markboth + \@tud@abstract@markbothtrue% + \or% nomarkboth + \@tud@abstract@markbothfalse% + \or% nottotoc + \cs@set@lock{tud@abstract@toc}{0}% + \or% totoc + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \else% + \cs@set@lock{tud@abstract@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{2}% + \else% + \cs@set@lock{tud@abstract@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@abstract@toc=\z@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \fi% + \ifnum\tud@abstract@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@abstract@toc}{% + \the\numexpr\tud@abstract@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } \newcommand*\tud@declaration@level{3} -\bool@lock[true]{@tud@declaration@toc} -\newif\if@tud@declaration@toc@leveldown -\newif\if@tud@declaration@markboth +\cs@lock{tud@declaration@toc}{1} \newif\if@tud@declaration@multi -\newif\if@tud@declaration@fil \@tud@declaration@multitrue +\newif\if@tud@declaration@fil \@tud@declaration@filtrue +\newif\if@tud@declaration@markboth \TUD@key{declaration}[chapter]{% \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@declaration@level{0}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% true \def\tud@declaration@level{1}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% section \def\tud@declaration@level{2}% - \bool@std@lock{@tud@declaration@toc}{true}% - \or% + \cs@std@lock{tud@declaration@toc}{1}% + \or% chapter \def\tud@declaration@level{3}% - \bool@std@lock{@tud@declaration@toc}{true}% - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@declaration@toc}{false}% - \or% - \@tud@declaration@markbothtrue% - \or% - \@tud@declaration@markbothfalse% - \or% + \cs@std@lock{tud@declaration@toc}{1}% + \or% single \@tud@declaration@multifalse% - \or% + \or% multiple \@tud@declaration@multitrue% - \or% + \or% nofil \@tud@declaration@filfalse% - \or% + \or% fil \@tud@declaration@filtrue% + \or% markboth + \@tud@declaration@markbothtrue% + \or% nomarkboth + \@tud@declaration@markbothfalse% + \or% nottotoc + \cs@set@lock{tud@declaration@toc}{0}% + \or% totoc + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \else% + \cs@set@lock{tud@declaration@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{2}% + \else% + \cs@set@lock{tud@declaration@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@declaration@toc=\z@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \fi% + \ifnum\tud@declaration@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@declaration@toc}{% + \the\numexpr\tud@declaration@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } @@ -883,115 +925,97 @@ \TUD@key@lock{subjectthesis}[true]{% \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% } -%%% From File: tudscr-misc.dtx -\newcommand*\TUD@AfterPackage[2]{% - \if@atdocument#2\else\AfterPackage!{#1}{#2}\fi% -} -\newif\if@tud@symbolheadings -\TUD@key{footnotes}{% - \TUD@set@numkey{footnotes}{@tempa}{% - {nosymbolheadings}{0},{numberheadings}{0},% - {symbolheadings}{1}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% - \@tud@symbolheadingsfalse% - \or% - \@tud@symbolheadingstrue% - \fi% - \fi% -} -\newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@key[2]{% - \ClassWarning{\tudcls@name}% +\newcommand*\TUD@deprecated@key[2]{% + \ClassWarning{\TUDClassName}% {% The option key `#1' is deprecated.\MessageBreak% - It's recommended to use `#2' instead% + It's recommended to use `#2'\MessageBreak% + instead% }% + \TUDoptions{#2}% } \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{cdfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{tudfonts}[true]{% \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{heavyfont}[true]{% \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{heavyfont}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=heavy}% + \TUD@deprecated@key{heavyfont}{cdfont=heavy}% \else% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% \fi% \fi% } \TUD@key{din}[true]{% \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{din}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{din}{cdfont=din}% \else% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{din=#1}{cdfont=nodin}% \fi% \fi% } \TUD@key{nodin}[true]{% \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{nodin}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{nodin}{cdfont=nodin}% \else% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \fi% + \fi% +} +\TUD@key{noDIN}[true]{% + \TUD@set@ifkey{noDIN}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \else% + \TUD@deprecated@key{noDIN=#1}{cdfont=din}% \fi% \fi% } \TUD@key{sansmath}[true]{% \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{sansmath}{cdmath=true}% \else% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{sansmath=#1}{cdmath=false}% \fi% \fi% } \TUD@key{serifmath}[true]{% \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{serifmath}{cdmath=false}% \else% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{serifmath=#1}{cdmath=true}% \fi% \fi% } -\TUD@key{geometry}[true]{% - \tud@deprecated@key{geometry}{cdgeometry}% - \TUDoptions{cdgeometry=#1}% -} +\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} \TUD@key{barfont}[true]{% \TUD@set@numkey{barfont}{@tempa}{% \TUD@numkey@bool,% @@ -1001,35 +1025,32 @@ {heavy}{2},{heavyfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{barfont}{cdhead}% - \ifcase\@tempa\relax% - \TUDoptions{cdhead=false}% - \or% - \TUDoptions{cdhead=true}% - \or% - \TUDoptions{cdhead=heavy}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \or% true + \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \or% heavy + \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% \fi% \fi% } \TUD@key{widehead}[true]{% \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{widehead}{cdhead}% \if@tempswa% - \TUDoptions{cdhead=paperwidth}% + \TUD@deprecated@key{widehead}{cdhead=paperwidth}% \else% - \TUDoptions{cdhead=textwidth}% + \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% \fi% \fi% } \TUD@key{tudfoot}[true]{% \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfoot}{cdfoot}% \if@tempswa% - \TUDoptions{cdfoot=true}% + \TUD@deprecated@key{tudfoot}{cdfoot=true}% \else% - \TUDoptions{cdfoot=false}% + \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -1037,27 +1058,26 @@ \TUD@set@numkey{color}{@tempa}{% \TUD@numkey@bool,% {nocolor}{0},{nocolour}{0},{monochrome}{0},{monochromatic}{0},% - {lite}{1},{light}{1},{pale}{1},% - {colorlite}{1},{litecolor}{1},{colourlite}{1},{litecolour}{1},% - {colorlight}{1},{lightcolor}{1},{colourlight}{1},{lightcolour}{1},% - {colorpale}{1},{palecolor}{1},{colourpale}{1},{palecolour}{1},% - {bicolor}{2},{bicolour}{2},{twocolor}{2},{twocolour}{2},% - {bichrome}{2},{bichromatic}{2},{dichrome}{2},{dichromatic}{2},% - {color}{3},{colour}{3},% + {color}{1},{colour}{1},% + {lite}{2},{light}{2},{pale}{2},% + {colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% {full}{4},{colorfull}{4},{fullcolor}{4},{colourfull}{4},{fullcolour}{4}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{color}{cd}% - \ifcase\@tempa\relax% - \TUDoptions{cd=true}% - \or% - \TUDoptions{cd=pale}% - \or% - \TUDoptions{cd=bicolor}% - \or% - \TUDoptions{cd=color}% - \or% - \TUDoptions{cd=fullcolor}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{color=#1}{cd=true}% + \or% true + \TUD@deprecated@key{color=#1}{cd=color}% + \or% litecolor + \TUD@deprecated@key{color=#1}{cd=pale}% + \or% bicolor + \TUD@deprecated@key{color=#1}{cd=bicolor}% + \or% full + \TUD@deprecated@key{color=#1}{cd=fullcolor}% \fi% \fi% } @@ -1066,198 +1086,445 @@ \TUD@key{tudscrver}[last]{% \ifcsvoid{tud@v@#1}{% \def\tud@v@comp{0}% - \ClassWarningNoLine{\tudcls@name}{% + \ClassWarningNoLine{\TUDClassName}% + {% You have set option `tudscrver' to `#1', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% \FamilyKeyStateProcessed% }{% - \ClassInfoNoLine{\tudcls@name}{% + \ClassInfoNoLine{\TUDClassName}% + {% Switching compatibility level to `#1'% }% \edef\tud@v@comp{\@nameuse{tud@v@#1}}% \FamilyKeyStateProcessed% }% } -\AtEndOfClass{% +\AtEndOfClass% +{% \TUD@key{tudscrver}[]{% - \ClassError{\tudcls@name}{Option `tudscrver' too late}{% + \ClassError{\TUDClassName}% + {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\tudcls@name' but you have tried to set it up later.% + class `\TUDClassName' + but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% - \ifcsdef{scr@v@3.12}{% + \ifcsdef{scr@v@3.17}{% \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% KOMA-Script compatibility level too low% }{% \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script `version=v3.12'% + KOMA-Script compatibility option `version=v3.12'.% }% \fi% }{% - \ClassError{\tudcls@name}{% - outdated version of KOMA-Script% + \ClassError{\TUDClassName}{% + KOMA-Script v3.17 is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.12 or newer% + \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% + at least. You're using \KOMAScriptVersion% }% }% } \@namedef{tud@v@first}{0} \@namedef{tud@v@2.02}{0} +\@namedef{tud@v@v2.02}{0} \@namedef{tud@v@2.03}{1} -\@namedef{tud@v@last}{1} -\newcommand*\iftudscrverlower[1]{% +\@namedef{tud@v@v2.03}{1} +\@namedef{tud@v@2.04}{2} +\@namedef{tud@v@v2.04}{2} +\@namedef{tud@v@last}{2} +\newcommand*\tud@ifverlower[1]{% \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -%%% From File: tudscr-base.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\scrcls@name}} -\TUDExecuteOptions{cd,cdfont,tudbookmarks} +%%% From File: tudscr-misc.dtx +\newif\if@tud@symbolheadings +\TUD@key{footnotes}{% + \TUD@set@numkey{footnotes}{@tempa}{% + {nosymbolheadings}{0},{numberheadings}{0},% + {symbolheadings}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% nosymbolheadings + \@tud@symbolheadingsfalse% + \or% symbolheadings + \@tud@symbolheadingstrue% + \fi% + \fi% +} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} +\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} \TUDProcessOptions\relax -\LoadClass{\scrcls@name}[2013/12/19] +\LoadClass{\TUDClassName@KOMA}[2015/04/23] +%%% From File: tudscr-base.dtx \RequirePackage{environ}[2013/04/01] \AtEndPreamble{% \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\tudcls@name}{% - The package `graphics' was superseded by `graphicx'% + \ClassWarningNoLine{\TUDClassName}{% + The package `graphics' was superseded by `graphicx',\MessageBreak% + which is automatically loaded% }% }{}% }% \RequirePackage{graphicx}[1999/02/16]% \RequirePackage{tudscrcolor}[\TUDVersion]% } +\newcommand*\TUD@parameter@defaulthandler[2]{% + \def\@tempa{#2}% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% + \ifxnumber{\@tempb}{% + \TUD@parameter@set{#1}{columns=\@tempb}% + }{% + \TUD@parameter@set{#1}{language=\@tempb}% + }% + \fi% + }% +} +\cs@lock{tud@multicols}{1} +\newcommand*\tud@multicols@check{% + \ifdef{\multicols}{}{% + \ifnum\tud@multicols>\@ne\relax% + \ClassWarning{\TUDClassName}{% + The option `columns=\tud@multicols' is only supported,\MessageBreak% + when package `multicol' is loaded% + }% + \cs@set@lock{tud@multicols}{1}% + \fi% + }% +} %%% From File: tudscr-fonts.dtx -\AtEndPreamble{% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@font@check{% \if@tud@fontspec% - \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \newcommand*\textuln[1]{{\univln#1}}% - \newcommand*\texturn[1]{{\univrn#1}}% - \newcommand*\textubn[1]{{\univbn#1}}% - \newcommand*\textuxn[1]{{\univxn#1}}% - \newcommand*\textuls[1]{{\univls#1}}% - \newcommand*\texturs[1]{{\univrs#1}}% - \newcommand*\textubs[1]{{\univbs#1}}% - \newcommand*\textuxs[1]{{\univxs#1}}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \ClassInfoNoLine{\TUDClassName}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + }% \else% - \if@tud@univers% - \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% - \else% - \newcommand*\univln{}% - \newcommand*\univrn{}% - \newcommand*\univbn{}% - \newcommand*\univxn{}% - \newcommand*\univls{}% - \newcommand*\univrs{}% - \newcommand*\univbs{}% - \newcommand*\univxs{}% - \fi% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} + \ClassWarningNoLine{\TUDClassName}% + {% + `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + }% \fi% - \if@tud@fontspec% - \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% - \newcommand*\textdbn[1]{{\dinbn#1}}% + \@tempa{\@tud@universtrue}{\@tempc{Univers}}% + \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \undef\tud@font@check% +} +\newcommand*\tud@font@init{% + \undef\tud@font@init@fontspec% + \undef\tud@font@init@nfss% + \undef\tud@font@init% +} +\newcommand*\tud@font@init@fontspec{% + \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% + \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% + \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% + \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% + \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% + \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% + \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% + \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% + \newcommand*\textuln[1]{{\univln##1}}% + \newcommand*\texturn[1]{{\univrn##1}}% + \newcommand*\textubn[1]{{\univbn##1}}% + \newcommand*\textuxn[1]{{\univxn##1}}% + \newcommand*\textuls[1]{{\univls##1}}% + \newcommand*\texturs[1]{{\univrs##1}}% + \newcommand*\textubs[1]{{\univbs##1}}% + \newcommand*\textuxs[1]{{\univxs##1}}% + \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% + \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% + \newcommand*\textdbn[1]{{\dinbn##1}}% +} +\newcommand*\tud@font@init@nfss{% + \if@tud@univers% + \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \if@tud@dinbold% - \newcommand*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% + \newcommand*\univln{}% + \newcommand*\univrn{}% + \newcommand*\univbn{}% + \newcommand*\univxn{}% + \newcommand*\univls{}% + \newcommand*\univrs{}% + \newcommand*\univbs{}% + \newcommand*\univxs{}% + \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \DeclareTextFontCommand{\textuln}{\univln}% + \DeclareTextFontCommand{\texturn}{\univrn}% + \DeclareTextFontCommand{\textubn}{\univbn}% + \DeclareTextFontCommand{\textuxn}{\univxn}% + \DeclareTextFontCommand{\textuls}{\univls}% + \DeclareTextFontCommand{\texturs}{\univrs}% + \DeclareTextFontCommand{\textubs}{\univbs}% + \DeclareTextFontCommand{\textuxs}{\univxs}% + \if@tud@dinbold% + \newcommand*\dinbn{% + \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% + \mathversion{dinbold}% + }% + \else% + \let\dinbn\sectfont% + \fi% + \newcommand*\textdbn{}% + \DeclareTextFontCommand{\textdbn}{\dinbn}% +} +\newcommand*\cdfont[1]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \fi% +} +\providecommand*\tudfont[1]{\cdfont{#1}} +\newcommand*\textcdfont[2]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \fi% +} +\newcommand*\@cdfont[1]{% + \tud@trimfontname\@tempa{#1}% + \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% + \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% + \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% + \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% + \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% + \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \let\@tempc\relax% + \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + }}}}}}}}}}}}}}% +} +\newcommand*\tud@trimfontname[2]{% + \protected@edef\@tempa{\trim@spaces{#2}}% + \tud@lowerstring{\@tempa}{\@tempa}% + \tud@@trimfontname{ }{}% + \tud@@trimfontname{-}{}% + \tud@@trimfontname{_}{}% + \tud@@trimfontname{~}{}% + \tud@@trimfontname{ce}{}% + \tud@@trimfontname{ff}{}% + \tud@@trimfontname{univers}{}% + \tud@@trimfontname{60}{65}% + \tud@@trimfontname{light}{45}% + \tud@@trimfontname{regular}{55}% + \tud@@trimfontname{bold}{65}% + \tud@@trimfontname{black}{75}% + \tud@@trimfontname{4545}{45}% + \tud@@trimfontname{5555}{55}% + \tud@@trimfontname{6565}{65}% + \tud@@trimfontname{7575}{75}% + \tud@@trimfontname{italic}{oblique}% + \tud@@trimfontname{slanted}{oblique}% + \let#1\@tempa% +} +\newcommand*\tud@@trimfontname[2]{% + \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% + \@expandtwoargs\in@{#1}{\@tempa}% + \@whilesw\ifin@\fi{% + \expandafter\@tempb\@tempa\relax% + \@expandtwoargs\in@{#1}{\@tempa}% + }% +} +\newcommand*\mv@univers{}% +\newcommand*\mv@universbold{}% +\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@math@init{% + \if@tud@fontspec\if@tud@univers\if@tud@dinbold% + \@ifpackagewith{fontspec}{no-math}{}{% + \ClassWarningNoLine{\TUDClassName}% + {% + It's recommended to load package `fontspec' with\MessageBreak% + option `no-math'% }% + }% + \fi\fi\fi% + \if@tud@univers% + \DeclareMathVersion{univers}% + \DeclareMathVersion{universbold}% + \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% + \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% + \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% + \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% + \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% + \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% + \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% + \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% + \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \@ifpackageloaded{amsfonts}{% + \DeclareFontFamily{U}{\tud@univers a}{}% + \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% + \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% + \DeclareFontFamily{U}{\tud@univers b}{}% + \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% + \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% + \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% + }{}% + \fi% + \if@tud@dinbold% + \DeclareMathVersion{dinbold}% + \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% + \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% + \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \fi% + \@ifpackageloaded{unicode-math}{% + \let\tud@font@math@set\relax% + \bool@set@lock{@tud@cdmath}{false}% + }{% + \let\@tempb\relax% + \let\@tempc\relax% + \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% + \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% + \@tempswafalse% + \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% + \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% + \if@tempswa% + \bool@std@lock{@tud@slantedgreek}{true}% + \fi% + \tud@font@greek@loop\tud@font@greek@init% + \tud@font@math@set% + }% + \sbox\z@{\dinbn$ $}% + \undef\tud@font@math@init% +} +\AtEndPreamble% +{% + \tud@font@check% + \if@tud@fontspec% + \preto\tud@font@init\tud@font@init@fontspec% + \else% + \preto\tud@font@init\tud@font@init@nfss% + \fi% + \tud@font@init% + \tud@font@set[nomath]% + \AtBeginDocument{\tud@font@math@init}% +} +\newcommand*\tud@font@greek@init[1]{% + \ifcsdef{up#1}{}{% + \if@tempswa% + \csletcs{up#1}{tud@up#1}% \else% - \let\dinbn\sectfont% + \csletcs{up#1}{#1}% \fi% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% + }% + \ifcsdef{var#1}{}{% + \if@tempswa% + \csletcs{var#1}{#1}% + \else% + \csletcs{var#1}{tud@var#1}% + \fi% + }% +} +\newif\if@tud@mweights +\AfterPackage*{mweights}{\@tud@mweightstrue} +\newcommand*\tud@font@set[1][]{% + \if@tud@mweights% + \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% + \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% + \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% + \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% + \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% + \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% \fi% - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% - \DeclareMathVersion{dinbold}% - \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% - \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}% - \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}% - \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}% - \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}% - \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}% - \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}% - \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}% - \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}% - \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}% - \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}% - \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}% - \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}% - \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}% - \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}% - \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}% - \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}% - \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}% -} -\newcommand*\tud@font@set{% - \ifcase\tud@cdfont\relax% + \ifcase\tud@cdfont\relax% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% @@ -1267,9 +1534,17 @@ \tud@cmd@restore{familydefault}% \tud@cmd@restore{seriesdefault}% \tud@cmd@restore{shapedefault}% + \if@tud@mweights% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{false}% \cs@std@lock{tud@head@font}{0}% - \else% + \else% true/heavy \tud@cmd@store{rmdefault}% \tud@cmd@store{sfdefault}% \tud@cmd@store{ttdefault}% @@ -1279,10 +1554,18 @@ \tud@cmd@store{familydefault}% \tud@cmd@store{seriesdefault}% \tud@cmd@store{shapedefault}% + \if@tud@mweights% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{true}% \cs@std@lock{tud@head@font}{\tud@cdfont}% \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \setsansfont{Univers Light}[% BoldFont = Univers,% ItalicFont = Univers Light Oblique,% @@ -1293,7 +1576,7 @@ ItalicFont = LMMonoLt10-Oblique,% BoldItalicFont = LMMonoSlant10-Regular,% ]% - \else% + \else% heavy \setsansfont{Univers}[% BoldFont = Univers Bold,% ItalicFont = Univers Oblique,% @@ -1309,12 +1592,28 @@ \if@tud@univers% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \renewcommand*\bfdefault{m}% \renewcommand*\mddefault{l}% - \else% + \if@tud@mweights% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy \renewcommand*\bfdefault{b}% \renewcommand*\mddefault{m}% + \if@tud@mweights% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% \fi% \fi% @@ -1323,10 +1622,50 @@ \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% + \if@tud@mweights% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \tud@font@skip@set% + \ifstr{#1}{nomath}{}{\tud@font@math@set}% \normalfont\selectfont% - \tud@font@math@set% \tud@layout@process% } +\newcommand*\tud@font@skip@set{% + \tud@ifverlower{2.04}{}{% + \ifcase\tud@cdfont\relax% false + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \else% true/heavy + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \fi% + }% +} +\newcommand*\tud@font@skip@@set{% + \setlength{\@tempdimb}{\f@baselineskip}% + \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% + {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% + \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% + {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% + \scr@setlength\bigskipamount{\@tempdimb}% + {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% + \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% + \tud@skip@set\belowcaptionskip{\z@}% + \tud@skip@set\columnsep{1.1\baselineskip}% +} \newcommand*\tud@font@math@set{% \if@tud@univers% \if@tud@cdmath% @@ -1334,79 +1673,67 @@ \tud@cmd@store{mv@bold}% \let\mv@normal\mv@univers% \let\mv@bold\mv@universbold% + \tud@font@greek@loop\tud@font@greek@set% \else% \tud@cmd@restore{mv@normal}% \tud@cmd@restore{mv@bold}% + \tud@font@greek@loop\tud@font@greek@reset% \fi% \fi% \if@tud@slantedgreek% - \tud@font@greek@slanted% + \tud@font@greek@loop\tud@font@greek@slanted% \else% - \tud@font@greek@upright% + \tud@font@greek@loop\tud@font@greek@upright% \fi% \mathversion{normal}% } -\newcount\tud@font@greek@upGamma -\tud@font@greek@upGamma\Gamma -\newcount\tud@font@greek@offset -\let\@tempa\relax -\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0} -\tud@font@greek@offset\@tempa -\advance\tud@font@greek@offset-\Gamma -\newcommand*\tud@font@greek@slanted{% - \ifnum\Gamma=\tud@font@greek@upGamma\relax\tud@font@greek@changeshape\fi% -} -\newcommand*\tud@font@greek@upright{% - \ifnum\Gamma>\tud@font@greek@upGamma% - \tud@font@greek@offset=-\tud@font@greek@offset% - \tud@font@greek@changeshape% - \tud@font@greek@offset=-\tud@font@greek@offset% - \fi% -} -\newcommand*\tud@font@greek@def[2]{% - \expandafter\@tempcnta\csname #1\endcsname% - \advance\@tempcnta#2% - \expandafter\mathchardef\csname #1\endcsname\@tempcnta% -} -\newcommand*\tud@font@greek@uc{% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% -} -\newcommand*\tud@font@greek@changeshape{% - \@for\@tempa:=\tud@font@greek@uc\do{% - \@expandtwoargs\tud@font@greek@def{\@tempa}{\tud@font@greek@offset}% - }% -} +\newcommand*\tud@font@greek@set[1]{% + \tud@cmd@store{#1}% + \tud@cmd@store{up#1}% + \tud@cmd@store{var#1}% + \csletcs{#1}{tud@#1}% + \csletcs{up#1}{tud@up#1}% + \csletcs{var#1}{tud@var#1}% +} +\newcommand*\tud@font@greek@reset[1]{% + \tud@cmd@restore{#1}% + \tud@cmd@restore{up#1}% + \tud@cmd@restore{var#1}% +} +\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} +\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@set{% \ifdef{\@raggedtwoe@everyselectfont}{% \let\@raggedtwoe@everyselectfont\relax% - \spaceskip\z@\selectfont% + \setlength\spaceskip{\z@}% + \selectfont% }{}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\sfdefault}{bx}{n}{\tud@head@font@size}% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% \@tempswafalse% - \ifcase\tud@head@font\relax% - \ifnum\tud@cdfont>\z@\relax% - \ClassWarning{\tudcls@name}{% + \ifcase\tud@head@font\relax% false + \ifnum\tud@cdfont>\z@\relax% true/heavy + \ClassWarning{\TUDClassName}{% It isn't possible to use `cdhead=false'\MessageBreak% together with `cdfont=true'% }% \@tempswatrue% \fi% - \else% + \else% true/heavy \@tempswatrue% \fi% - \if@tempswa% + \if@tempswa% true/heavy \if@tud@fontspec% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversLight}{m}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversRegular}{m}{n}{\tud@head@font@size}% \fi% @@ -1414,10 +1741,10 @@ \if@tud@univers% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{m}{n}{\tud@head@font@size}% \fi% @@ -1436,19 +1763,9 @@ \expandafter\@secondoftwo% \fi% } -\AfterPackage*{amsfonts}{% - \DeclareFontFamily{U}{msa}{}% - \DeclareFontShape{U}{msa}{m}{n}{% - <-9>cmbras8% - <9-10>cmbras9% - <10->cmbras10% - }{}% - \DeclareFontFamily{U}{msb}{}% - \DeclareFontShape{U}{msb}{m}{n}{% - <-9>cmbrbs8% - <9-10>cmbrbs9% - <10->cmbrbs10% - }{}% +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -1458,19 +1775,19 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -%%% From File: tudscr-color.dtx -\newcommand*\tud@pagecolor{} -\AfterPackage{pdfpages}{\AtEndPreamble{\nopagecolor}} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont} +} %%% From File: tudscr-fields.dtx \RequirePackage{trimspaces}[2009/09/17] \newcommand*\@faculty{} -\newcommand*\faculty[1]{\gdef\@faculty{\trim@spaces{#1}}} +\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} \newcommand*\@department{} -\newcommand*\department[1]{\gdef\@department{\trim@spaces{#1}}} +\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} \newcommand*\@institute{} -\newcommand*\institute[1]{\gdef\@institute{\trim@spaces{#1}}} +\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[1]{\gdef\@chair{\trim@spaces{#1}}} +\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} \newcommand*\@extraheadline{} \newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} \newcommand*\@@title{} @@ -1489,38 +1806,37 @@ \newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} \newcommand*\tud@thanks{} \newcommand*\tud@thesis[2]{% - \AfterPreamble{% - \begingroup% - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \setbox0\vbox{#2}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% - }% + \begingroup% + \global\let\tud@thanks\relax% + \def\thanks##1{\gdef\tud@thanks{##1}}% + \let\footnote\thanks% + \sbox\z@{#2}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@lowerstring{\@tempa}{#2}% + \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% + \global\let\@tempa\@tempa% + \endgroup% + \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% + \@namedef{@#1}{#2}% + }}}}}}}}}}}}}% } \newcommand*\tud@@thesis[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\tudcls@name}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% \fi% \TUD@std@ifkey@lock{subjectthesis}{true}% }{% @@ -1541,7 +1857,7 @@ \gdef\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[2][]{\gdef\@professor{#2}} \newcommand*\@supervisor{} \newcommand*\supervisor[1]{\gdef\@supervisor{#1}} \newcommand*\@supporter{} @@ -1561,15 +1877,25 @@ \newcommand*\@placeofbirth{} \newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} \providecommand*\publisher[1]{\publishers{#1}} +\newlength\tud@signatureskip +\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} \newcommand*\@confirmationclosing{% - \medskip% - \noindent\@place, \@date% - \\[20mm plus 10mm minus 10mm]% + \tud@datecheck% + \ifx\@date\@empty\else% + \medskip\noindent% + \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% + \fi% + \vskip\tud@signatureskip\noindent% \begingroup% - \let\and\hfil% \let\thanks\@gobble% \let\footnote\@gobble% - \@author% + \renewcommand*\tud@split@author[2]{% + \tud@multiple@fields@store{@author}{##1}% + \ignorespaces##1% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\hfil}% + }% + \tud@multiple@split{@author}% \hfil% \endgroup% } @@ -1579,7 +1905,7 @@ \newcommand*\printdate[1]{#1} \BeforePackage{isodate}{\undef\printdate} \newcommand*\tud@printdate[2]{% - \ifx\today#2% + \ifx\today#2\relax% \gdef#1{#2}% \else% \ifxblank{#2}% @@ -1587,28 +1913,99 @@ {\gdef#1{\printdate{#2}}}% \fi% } +\newcommand*\tud@datecheck{% + \ifdefvoid{\@duedate}{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + Since a thesis is a self-contained work, an end\MessageBreak% + date should be specified by the author.\MessageBreak% + Nevertheless, today's date is used% + }% + }{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + It's substituted by the given due date% + }% + \global\let\@date\@duedate% + }% + \global\let\tud@datecheck\relax% +} \newcommand*\@datemore{} \renewcommand*\date[2][]{% - \gdef\@datemore{#1}% + \gdef\@datemore{\trim@spaces{#1}}% \tud@printdate{\@date}{#2}% + \global\let\tud@datecheck\relax% } \newcommand*\@defensedate{} \newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} \newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} +\newcommand*\tud@multiple@@split{}% +\newcommand*\tud@multiple@split[1]{% + \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% + \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + }{}% + \def\tud@multiple@@split##1\and##2\relax{% + \expandafter\csname tud@split#1\endcsname{##1}{##2}% + }% + \begingroup% + \let\and\relax% + \edef\@tempa{\csname#1\endcsname\and}% + \expandafter\endgroup% + \expandafter\tud@multiple@@split\@tempa\relax% +} +\newcommand*\tud@multiple@@@split[2]{% + \ifx\relax#1\relax% + \let\@tempb\relax% + \else% + \def\@tempb{#2\tud@multiple@@split#1\relax}% + \fi% + \@tempb% +} +\newcommand*\tud@multiple@fields@store[2]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% + \fi% + }% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#2}% + \endgroup% +} +\newcommand*\tud@multiple@fields@restore[1]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{% + \tud@cmd@restore{@\@tempb}% + \global\csletcs{@\@tempb}{@\@tempb}% + }{}% + \fi% + }% +} +\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@list{% + authormore,matriculationyear,enrolmentyear,% + matriculationnumber,studentid,matriculationid,% + placeofbirth,birthplace,dateofbirth,birthday,% +} %%% From File: tudscr-locale.dtx \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\tudcls@name' only supports the\MessageBreak% + Currently the class `\TUDClassName' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak% - To implement new languages, it would be nice if you could\MessageBreak% - contact the author of this class and send your definitions\MessageBreak% - to \tudscrmail% + You can send your definitions to \tudscrmail\space in\MessageBreak% + order to implement support for additional languages. }% }% } @@ -1660,7 +2057,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -1677,7 +2074,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -1723,10 +2120,10 @@ Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi enth\"alt vertrauliche Informationen\ifx\@company\@empty\else - , offengelegt durch \@company{}\fi. Ver\"offentlichungen, + , offengelegt durch \emph{\@company}\fi. Ver\"offentlichungen, Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~-- sind ohne ausdr\"uckliche Genehmigung \ifx\@company\@empty\else - durch \@company{} \fi nicht gestattet, ebenso wie + durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des @@ -1758,7 +2155,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -1775,7 +2172,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -1821,9 +2218,9 @@ This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \@company{}\fi. Publications, duplications and + , disclosed by \emph{\@company}\fi. Publications, duplications and inspections---even in part---are prohibited without explicit - permission\ifx\@company\@empty\else\space by \@company{}\fi, + permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at Technische Universit\"at Dresden, the reviewers and also the @@ -1868,7 +2265,7 @@ \newlength\tud@dim@thinline \newlength\tud@dim@headdiff \newlength\tud@dim@headingsvskip -\iftudscrverlower{2.03}{\newlength\tud@dim@ddcdiff}{} +\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} \newcommand*\tud@head@font@size{} \newcommand*\tud@geometry@set{% \ifdim\paperheight<148.1mm\relax% @@ -1914,267 +2311,305 @@ \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% }% } -\newcommand*\ifstandalonecrop{% +\newcommand*\tud@ifsacrop{% \ifcsdef{ifsa@crop}{% \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% }{% \@secondoftwo% }% } +\tud@ifsacrop{% + \PreventPackageFromLoading{scrlayer-scrpage}% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% +}{% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +} +\tud@cmd@store{pagestyle} +\cslet{ps@tudheadings}{\ps@headings}% +\cslet{ps@plain.tudheadings}{\ps@plain}% +\cslet{ps@empty.tudheadings}{\ps@empty}% +\providecommand*\currentpagestyle{plain} +\providecommand*\BeforeSelectAnyPageStyle[1]{} +\providecommand*\GetRealPageStyle[1]{#1} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \csundef{ps@tudheadings}% + \csundef{ps@plain.tudheadings}% + \csundef{ps@empty.tudheadings}% + \undef\currentpagestyle% + \undef\BeforeSelectAnyPageStyle% + \undef\GetRealPageStyle% +} +\let\tud@pagestyle\pagestyle +\apptocmd{\tud@pagestyle}{% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}}% +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} \AtEndPreamble{% - \ifstandalonecrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% - }{}% + \@ifpackageloaded{scrlayer-scrpage}{}{% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + }% } -\AtEndPreamble{% - \RequirePackage{scrlayer-scrpage}[2013/12/14]% - \AfterPackage*{scrlayer-scrpage}{% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% - \tud@mainlogo% - },% - ]{tudheadings.head.mainlogo}% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={\hfill\tud@headlogo},% - ]{tudheadings.head.logo}% - \DeclareNewLayer[% - background,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% - \fi% - },% - ]{tudheadings.head.back}% - \DeclareNewLayer[% - background,% - voffset=\tud@dim@topmargin,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41!80}% - \rule{\layerwidth}{\tud@dim@barheight}% - \fi% - },% - ]{tudheadings.head.bar}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperline}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperwideline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerwideline}% - \DeclareNewLayer[% - background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \ifdim\footlogoheight>\z@\relax\else% - \settoheight\footlogoheight{\tud@mainlogo}% - \iftudscrverlower{2.03}{% - \setlength\footlogoheight{.6\tud@dim@topmargin}% - }{}% - \fi% - \setlength\@tempdima{% - \dimexpr\footlogoheight-\layerheight+\dp\strutbox\relax% - }% - \ifdim\@tempdima>\vfuzz\relax% - \ClassWarning{\tudcls@name}{% - The chosen `\string\footlogoheight' - (\the\footlogoheight)\MessageBreak% - is \the\@tempdima\space higher than recommended. You\MessageBreak% - should decrease this length - \ifcase\tud@geometry\relax\else% - or alternatively\MessageBreak% - enlarge the bottom margin by using option\MessageBreak% - `extrabottommargin'% - \fi% - }% - \fi% - \let\@tempa\relax% - \@for\@tempb:=\tud@@footlogo\do{% - \@tempa% - \ifx\@tempb\@empty\else% - \expandafter\tud@footlogo\expandafter{\@tempb}% +\AfterPackage{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,headsep,% + voffset=\tud@dim@logoy,% + contents={% + \tud@mainlogo@set% + \tud@headlogo@option@set% + \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% + \DeclareNewLayer[% + background,% + contents={% + \ifnum\tud@head@bar>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\tud@dim@topmargin}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + voffset=\tud@dim@topmargin,% + contents={% + \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \rule{\layerwidth}{\tud@dim@barheight}% + \fi% + },% + ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% + contents={\tud@head@text@box},% + ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperwideline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerwideline}% + \DeclareNewLayer[% + background,foot,% + hoffset=0pt,% + width=\paperwidth,% + addvoffset=-\dp\strutbox,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% \fi% - \let\@tempa\footlogosep% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% - \tud@ddclogo% - },% - ]{tudheadings.foot.logo}% - \iftudscrverlower{2.03}{% - \ModifyLayer[% - voffset=\dimexpr\topmargin+1in+\headheight+\headsep+\textheight% - +\footskip-\footheight-\tud@dim@ddcdiff% - \ifcase\tud@geometry\relax\else+\ht\strutbox+\dp\strutbox\fi% - \relax,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% - ]{tudheadings.foot.logo}% - }{}% - \DeclareNewLayer[% - background,% - hoffset=0pt,% - width=\paperwidth,% - voffset=\dimexpr\@nameuse{scr@l@tudheadings.foot.logo@y}% - -\dp\strutbox\relax,% - height=\dimexpr\paperheight-\layeryoffset\relax,% + \ifx\@tempc\relax\else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \if@tud@footcolor% + \if@tud@foot@colored% \let\@tempc\relax% - \ifnum\tud@head@bar>\@ne\def\@tempc{\color{HKS41}}\fi% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!80}}}{}% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% \ifx\@tempc\relax\else% - \iftudscrverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% - \vbox to \layerheight{% - \vfil\@tempc% - \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% - }% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot=false + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% - \else% - \@tempc\rule{\layerwidth}{\layerheight}% - \fi% - }{\@tempc\rule{\layerwidth}{\layerheight}}% + }% + \else% \tud@ddc@foot!=false + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% \fi% \fi% },% ]{tudheadings.foot.back}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - scrheadings.foot.odd,% - scrheadings.foot.even,% - scrheadings.foot.oneside,% - scrheadings.foot.above.line,% - scrheadings.foot.below.line% - }% - \DeclareNewPageStyleAlias{tud}{tudheadings}% - \DeclareNewPageStyleAlias{tudscr}{tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{plain.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - plain.scrheadings.foot.odd,% - plain.scrheadings.foot.even,% - plain.scrheadings.foot.oneside,% - plain.scrheadings.foot.above.line,% - plain.scrheadings.foot.below.line% - }% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{empty.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - }% - \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% - \DeclareNewLayer[ - background,page,% - contents={% - \ifdefvoid{\tud@pagecolor}{}{% - \color{\tud@pagecolor}% - \rule{\layerwidth}{\layerheight}% - }% - },% - ]{tudheadings.pagecolor} - \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% - \BeforeSelectAnyPageStyle{\tud@beforeselectanypagestyle{#1}}% + }{}% + \DeclareNewLayer[% + background,foot,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \tud@footlogoheight@set% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + \hspace*{-\layerwidth}% + \tud@footlogo@cmd@use% + \hspace*{-\layerwidth}% + \hfill\tud@footlogo@ddc@use{\@tempdima}% + },% + ]{tudheadings.foot.content}% + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% + height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + ]{tudheadings.foot.content}% + }{}% + \DeclareNewLayer[% + background,% + contents=\tud@head@bar@restore,% + ]{tudheadings.last}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% + }% + \listadd\tud@ps@list{tudheadings}% + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% + }% + \listadd\tud@ps@list{plain.tudheadings}% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% }% + \listadd\tud@ps@list{empty.tudheadings}% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \newcommand*\tud@pagecolor{}% + \DeclareNewLayer[% + background,page,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% } +\PreventPackageFromLoading[% + \ClassWarning{\TUDClassName}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} \newcommand*\tud@ps@onselect{% \DeclarePageStyleAlias{plain}{plain.tudheadings}% \DeclarePageStyleAlias{headings}{tudheadings}% @@ -2182,108 +2617,88 @@ \def\sls@currentplain{plain.tudheadings}% } \newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} \newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} \newcommand*\tud@ps@onbackground{% - \ifcase\tud@head@bar\relax% - \def\tud@head@logocolor{black}% - \def\tud@foot@logocolor{black}% - \or% - \def\tud@head@logocolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \or% - \def\tud@head@logocolor{white}% - \if@tud@footcolor% - \def\tud@foot@logocolor{white}% - \else% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax% cdhead=nocolor + \def\tud@head@logocolor{black}% + \def\tud@head@fontcolor{}% + \def\tud@foot@logocolor{black}% + \def\tud@foot@fontcolor{}% + \or% cdhead=litecolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \or% cdhead=barcolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% \fi% - \fi% + }{% + \ifstr{\tud@pagecolor}{HKS41}{% + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \def\tud@foot@logocolor{white}% + \if@tud@foot@colored% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@fontcolor{HKS41!30}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }{% + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar\relax\or\or\or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }% + }% \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@logocolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } \patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% \xdef\@specialstyle{\GetRealPageStyle{#1}} }{}{\tud@patch@wrn{thispagestyle}} -\newcommand*\tud@currentgeometry{} -\newcommand*\tud@beforeselectanypagestyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% - \def\@tempa{#1}% - \ifcsdef{scr@v@3.15}{}{% - \ifstr{\sls@currentheadings}{tudheadings}{% - \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}% - \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}% - }{}% - }% - \iftudpagestyle{\@tempa}{% - \iftudscrverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - \else% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% - }% - \fi% - }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - }% - \setlength\tud@dim@headdiff{\z@}% - }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% - }% - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% - \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% - }% - \fi% - \fi% - }% - \global\tud@dim@headdiff=\tud@dim@headdiff% - }{}% -} -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoublepageusingstyle}} -\iftudscrverlower{2.03}{% - \newcommand*\tud@ddc@enlargepage[1][]{% - \iftudpagestyle{#1}{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@ddc@check% - \ifcase\@tempb\relax\else% - \enlargethispage{-\tud@dim@ddcdiff}% - \fi% - }% - }{}% - }% -}{} \newcommand*\tud@head@text{} \newcommand*\tud@head@text@first{} \newcommand*\tud@head@text@second{} \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} \newcommand*\tud@head@rule[1]{% - \color{\tud@head@logocolor}% + \tud@color{\tud@head@fontcolor}% \rule[\ht\strutbox]{#1}{\tud@dim@line}% } \newcommand*\tud@head@text@add[3][, ]{% - \edef\tud@head@text{#3}% + \protected@edef\tud@head@text{#3}% \ifx\tud@head@text\@empty% \def\tud@head@text@delimiter{}% \else% @@ -2302,11 +2717,11 @@ \@tempswatrue% \def\tud@head@text@delimiter{}% \else% - \edef\tud@head@text@first{\@tempa}% + \protected@edef\tud@head@text@first{\@tempa}% \fi% \fi% \if@tempswa% - \edef\tud@head@text@second{% + \protected@edef\tud@head@text@second{% \tud@head@text@second% \tud@head@text@delimiter% #2% @@ -2316,7 +2731,7 @@ } \newcommand*\tud@head@text@box{% \ifx\@faculty\@empty% - \ClassWarningNoLine{\tudcls@name}{No `\string\faculty' given}% + \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% \faculty{}% \fi% \tud@head@font@set% @@ -2334,20 +2749,20 @@ \hfuzz=\@tempdima% \fi% \vbox{% - \linespread{0}\selectfont% - \color{\tud@head@logocolor}% + \linespread{0}\selectfont\offinterlineskip% + \tud@color{\tud@head@fontcolor}% \tud@head@text@write{\tud@head@text@first}% - \ifnum\tud@head@bar>\@ne% + \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% \ifx\tud@head@text@second\@empty% - \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}% + \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% \else% \newline\tud@head@text@write{\tud@head@text@second}% \ifx\@extraheadline\@empty\else% - \vspace{-\tud@dim@line}\newline\tud@head@font@light\@extraheadline% + \newline\vbox{\tud@head@font@light\@extraheadline}% \fi% \fi% }% @@ -2355,98 +2770,269 @@ \newcommand*\tud@head@text@write[1]{% \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% \dimexpr\tud@dim@barheight-\depth\relax% - ][\depth]{#1\vphantom{gjpqy\"A\"O\"U}}% + ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% } \newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The given entries for the headline\MessageBreak% (faculty, institute etc.) are #1\MessageBreak% too wide for the textwidth% }% \global\let\tud@head@text@wrn\@gobble% } -\newcommand*\tud@mainlogo@wrn[1]{% - \ClassWarning{\tudcls@name}{% - The selected page layout means that the\MessageBreak% - logo of TUD extends beyond the printing area.\MessageBreak% - The inner margin is smaller than BCOR\MessageBreak% - (`BCOR=\the\ta@bcor', inner margin is #1)\MessageBreak% - Maybe you should decrease the current value\MessageBreak% - of DIV (`DIV=\the\ta@div')% - }% - \global\let\tud@mainlogo@wrn\@gobble% +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@vlayerbox[3]{% + \begingroup% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUDClassName}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima% + }% + \fi% + \endgroup% + \vbox to #1{#2}% +} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +\newlength\tud@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% + \global\tud@mainlogoheight=\tud@mainlogoheight% + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUDClassName}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% + \fi% + }% + \tud@headlogo@set% + \tud@footlogo@set% + \global\@tud@mainlogo@setfalse% + \fi% } -\newcommand*\tud@@mainlogo{} -\newcommand*\tud@mainlogo{% - \setlength\@tempdima{% +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% - \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi% - \def\tud@@mainlogo{TUD-black}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@mainlogo{TUD-white}}{}% - \includegraphics[keepaspectratio,width=\tud@dim@logowidth]{\tud@@mainlogo}% -} + \tud@uselayerbox{main@\tud@head@logocolor}% +} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +\newcommand*\@headlogo{} +\newcommand*\@@headlogo{} +\newcommand*\tud@headlogo@wrn{} \newcommand*\headlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@headlogo{#2}% - \def\tud@@@headlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% -} -\newcommand*\tud@@headlogo{} -\newcommand*\tud@@@headlogo{} -\newcommand*\tud@headlogo{% - \tud@ddc@check% - \ifx\tud@@headlogo\@empty\else% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% - \fi% - \ifcase\@tempa\relax\or% - \def\tud@@headlogo{DDC-24}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@headlogo{DDC-30}}{}% - \or% - \def\tud@@headlogo{DDC-03}% - \or% - \def\tud@@headlogo{DDC-09}% - \or% - \def\tud@@headlogo{DDC-21}% - \or% - \def\tud@@headlogo{DDC-24}% - \or% - \def\tud@@headlogo{DDC-27}% - \or% - \def\tud@@headlogo{DDC-30}% - \fi% - \ifx\tud@@headlogo\@empty\else% - \settoheight\@tempdima{\tud@mainlogo}% - \protected@epreto\tud@@@headlogo{% - keepaspectratio,totalheight=\the\@tempdima,% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@headlogo{#2}% + \def\@@headlogo{#1}% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUDClassName}{% + The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% + overwritten with DDC logo. Maybe you should use\MessageBreak% + `ddcfoot' or better `ddc' instead of `ddchead'% + }% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% +} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +\newif\if@tud@headlogo@option@set +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@mainlogoheight,##2% + ]{\trim@spaces{##1}}% + }% }% - \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head=false + \ifdefvoid{\@headlogo}{}{% + \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% + \@tempb% + }% + \or\or% \tud@ddc@head=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head=white + \@tempc{DDC-30}{}% + \fi% + \global\@tud@headlogo@option@setfalse% \fi% } -\newcommand*\tud@headlogo@wrn{% - \ClassWarning{\tudcls@name}{% - The secondary logo given with `\string\headlogo' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% + }% + \vss% + }{% + The given `\string\headlogo{\@headlogo}' is too large.% + } + \ifdefvoid{\@headlogo}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% }% - \global\let\tud@headlogo@wrn\relax% } +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} \newlength\footlogoheight +\newlength\tud@footlogoheight +\newcommand*\tud@footlogoheight@set{% + \ifdim\footlogoheight=\z@\relax% + \tud@ifverlower{2.03}{% + \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% + }{% + \setlength\tud@footlogoheight{\tud@mainlogoheight}% + }% + \else% + \ifdim\footlogoheight=\tud@footlogoheight\relax\else% + \setlength\tud@footlogoheight{\footlogoheight}% + \global\@tud@footlogo@option@settrue% + \fi% + \fi% + \global\tud@footlogoheight=\tud@footlogoheight% +} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% + }% +} +\newcommand*\tud@footlogo@set{% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@footlogo@option@set% +} +\newif\if@tud@footlogo@option@set +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot=white + \tud@footlogo@ddc@set{option}{DDC-28}% + \fi% + \global\@tud@footlogo@option@setfalse% + \fi% +} +\newcommand*\tud@footlogo@ddc@use[1]{% + \tud@vlayerbox{#1}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifcase\@tempb\relax\or% \tud@ddc@foot=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% + high. You should reduce this length.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% +} +\tud@newlayerbox{foot@cmd} \newcommand*\footlogosep{\hfill} +\newcommand*\@footlogo{} +\newcommand*\@@footlogo{} \newcommand*\footlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@footlogo{#2}% - \def\tud@@@footlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% -} -\newcommand*\tud@@footlogo{} -\newcommand*\tud@@@footlogo{} -\DeclareListParser{\tud@footlogo@parser}{:}% -\newcommand*\tud@footlogo[1]{% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@footlogo{#2}% + \def\@@footlogo{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% +} +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% + \let\@tempa\relax% + \@for\@tempb:=\@footlogo\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% + \fi% +} +\newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% \def\@tempa{}% \def\@tempb{}% @@ -2459,283 +3045,467 @@ \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% \fi% }% - \tud@footlogo@parser{#1}% - \protected@eappto\tud@@@footlogo{\@tempb}% - \protected@epreto\tud@@@footlogo{% - keepaspectratio,totalheight=\the\footlogoheight,% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% + \preto\@@footlogo{% + keepaspectratio,totalheight=\tud@footlogoheight,% }% - \protected@edef\@tempc{\noexpand\includegraphics[\tud@@@footlogo]{\@tempa}}% - \vbox to \dimexpr\layerheight-\dp\strutbox\relax{% - \vfil\hbox{\@tempc}\vfil\vfil% + \appto\@@footlogo{\@tempb}% + \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% }% \endgroup% } -\newcommand*\tud@@ddclogo{} -\newcommand*\tud@ddclogo{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% - \def\tud@@ddclogo{DDC-22}% - \ifstr{\tud@foot@logocolor}{HKS41}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{cddarkblue}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{white}{\def\tud@@ddclogo{DDC-28}}{}% - \or% - \def\tud@@ddclogo{DDC-01}% - \or% - \def\tud@@ddclogo{DDC-07}% - \or% - \def\tud@@ddclogo{DDC-19}% - \or% - \def\tud@@ddclogo{DDC-22}% - \or% - \def\tud@@ddclogo{DDC-25}% - \or% - \def\tud@@ddclogo{DDC-28}% - \fi% - \ifx\tud@@ddclogo\@empty\else% - \let\tud@@@footlogo\relax% - \hfill\tud@footlogo{\tud@@ddclogo}% +\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% +\newkomafont{tudheadings}{% + \sffamily% + \tud@color{\tud@foot@fontcolor}% +} +\newcommand*\tud@footcontent@font{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{} +\newcommand*\footcontent{% + \@ifstar{% + \@tempswafalse% + \@footcontent% + }{% + \@tempswatrue% + \@footcontent% + }% +} +\newcommand*\@footcontent[2][]{% + \kernel@ifnextchar[%] + {\@@footcontent{#1}{#2}}% + {\@@footcontent{#1}{#2}[\@nnil]}% +} +\newcommand*\@@footcontent{} +\def\@@footcontent#1#2[#3]{% + \if@tempswa% + \def\tud@footcontent@font{% + \usekomafont{tudheadings}% + \tud@divide\@tempa{\tud@head@font@size}{\f@size}% + \linespread{\@tempa}% + \selectfont% + \tud@head@font@light% + #1% + }% + \else% + \def\tud@footcontent@font{#1}% \fi% + \def\tud@footcontent@left{#2}% + \def\tud@footcontent@right{#3}% } -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -\newlength\tud@ta@headdiff -\newcommand*\tud@geometry@restore{} -\AfterCalculatingTypearea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% +\newcommand*\tud@footcontent@use[2]{% + \tud@ddc@check% + \ifcase\@tempb% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \tud@footcontent@font% + \expandafter\ifx\tud@footcontent@right\@nnil\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@right\strut% + }% + \fi% + \hss% + }% + \vss\vss% }{% - \setlength\tud@ta@footheight{\ta@fh}% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content or\MessageBreak% + lower the fontsize via the optional argument.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% }% - \setlength\tud@ta@footskip{\footskip}% - \let\tud@geometry@restore\Gm@restore@org% - \if@atdocument% - \let\Gm@restore@org\relax% - \tud@geometry@process% - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - \fi% - \let\Gm@restore@org\tud@geometry@restore% } -\newcommand*\tud@geometry@hmargin{} -\newcommand*\tud@geometry@vmargin{} -\newcommand*\tud@geometry@tudmargin{} -\iftudscrverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{} \AtEndPreamble{% - \ifstandalonecrop{}{% - \recalctypearea% - \RequirePackage{geometry}[2010/09/12]% - \tud@geometry@process% - \expandafter\pagestyle\expandafter{\currentpagestyle}% + \@ifpackageloaded{geometry}{}{% + \def\tud@geometry@process{\tud@geometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% }% } -\newcommand*\tud@geometry@process{% - \tud@geometry@set% - \ifcase\tud@geometry\relax% - \def\tud@geometry@hmargin{% - left=\dimexpr\oddsidemargin+1in\relax,% - width=\textwidth,% - marginparwidth=\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% - \if@twoside\if@reversemargin% - marginparwidth=\dimexpr\oddsidemargin+1in-\tud@ta@headsep\relax,% - \fi\fi% - marginparsep=.5\tud@ta@headsep,% - }% - \def\tud@geometry@vmargin{% - top=\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - textheight=\tud@ta@textheight,% - footskip=\tud@ta@footskip,% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,% - ignorehead,% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% +\tud@ifsacrop{% + \PreventPackageFromLoading{geometry}% +}{% + \RequirePackage{geometry}[2010/09/12]% + \newcommand*\tud@geometry@hmargin{}% + \newcommand*\tud@geometry@vmargin{}% + \newcommand*\tud@geometry@tudmargin{}% + \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% + \newcommand*\tud@newgeometry[1]{% + \if@atdocument% + \edef\@tempa{#1}% + \expandafter\newgeometry\expandafter{#1}% + \else% + \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% + \expandafter\geometry\expandafter{\@tempa}% \fi% - \iftudscrverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% - }% - \def\tud@geometry@ddcmargin{% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,% - }% - }{}% - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\tudcls@name}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% + }% + \newcommand*\tud@geometry@process{% + \tud@geometry@set% + \ifcase\tud@geometry\relax% false + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% }% - \fi% - \else% - \ifcase\tud@geometry\or% - \def\tud@geometry@hmargin{% - left=\tud@dim@widemargin,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \ifdim\tud@ta@headdiff<\z@\relax% + \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% + \fi% + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% \if@reversemargin% - marginparwidth=\dimexpr\tud@dim@widemargin-\tud@ta@headsep\relax,% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr\oddsidemargin+1in% + -\tud@ta@headsep\relax,% + \fi% \else% - marginparwidth=\dimexpr\tud@dim@slimmargin-\tud@ta@headsep\relax,% + reversemarginpar=false,% \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - \if@twoside asymmetric,\fi% - }% - \or% - \def\tud@geometry@hmargin{% - left=.5\tud@dim@both,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% }% - \or% - \def\tud@geometry@hmargin{% - \if@twoside% - left=.4\tud@dim@both,% - twoside,% + \edef\tud@geometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\tud@ta@topmargin+1in\relax,% \else% - left=.5\tud@dim@both,% + includehead=false,% + top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% + +1in\relax,% \fi% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + textheight=\the\tud@ta@textheight,% + \tud@geometry@fincl,% + footskip=\the\tud@ta@footskip% + }% + \ifdim\tud@ta@headdiff<\z@\relax% + \setlength\@tempdima{\z@}% + \else% + \setlength\@tempdima{\tud@ta@headdiff}% + \fi% + \edef\tud@geometry@tudmargin{% + 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\tud@ta@textheight-\@tempdima\relax,% + ignorehead% + }% + \tud@ifverlower{2.03}{% + \setlength\tud@dim@ddcdiff{% + \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% + +\tud@ta@footheight-1.25\baselineskip\relax% + }% + \edef\tud@geometry@ddcmargin{% + textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% + }% + }{}% + \ifdim\tud@dim@extrabottommargin=\z@\relax\else% + \ClassWarning{\TUDClassName}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea is used (`cdgeometry=no')% + }% + \fi% + \else% true/symmetric/twoside + \ifcase\tud@geometry\or% true + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\tud@dim@widemargin,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \if@twoside asymmetric,\fi% + \tud@geometry@mpincl,% \if@reversemargin% - marginparwidth=\dimexpr.4\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=true,% + marginparwidth=\the\dimexpr\tud@dim@widemargin% + -\tud@ta@headsep\relax,% \else% - marginparwidth=\dimexpr.6\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=false,% + marginparwidth=\the\dimexpr\tud@dim@slimmargin% + -\tud@ta@headsep\relax,% \fi% - \else% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - }% - \fi% - \iftudscrverlower{2.03}{% - \def\tud@geometry@vmargin{% - top=.5\tud@dim@both,% - headheight=\tud@ta@headheight,% - headsep=\tud@dim@headsep,% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \or% symmetric + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr.5\tud@dim@both\relax,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \or% twoside + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + \if@twoside% + left=\the\dimexpr.4\tud@dim@both\relax,% + twoside,% + \else% + left=\the\dimexpr.5\tud@dim@both\relax,% + \fi% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + \if@reversemargin% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr.4\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% + \else% + reversemarginpar=false,% + \if@twoside% + marginparwidth=\the\dimexpr.6\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% + \fi% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \fi% + \tud@ifverlower{2.03}{% + \edef\tud@geometry@vmargin{% + top=\the\dimexpr.5\tud@dim@both\relax,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% + }{% + \edef\tud@geometry@vmargin{% + top=\the\tud@dim@slimmargin,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + bottom=\the\dimexpr\tud@dim@widemargin% + +\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% }% - }{% - \def\tud@geometry@vmargin{% - top=\tud@dim@slimmargin,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - bottom=\dimexpr\tud@dim@widemargin+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + \edef\tud@geometry@tudmargin{% + 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,% + ignorehead% }% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - ignorehead,% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% - }% - \iftudscrverlower{2.03}{% \setlength\tud@ta@headdiff{% \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% + -\tud@dim@slimmargin\relax% }% - \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% - \def\tud@geometry@ddcmargin{% - \if@fincl% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \else% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% - \fi% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + \tud@ifverlower{2.03}{% + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -.5\tud@dim@both\relax% + }% + \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% + \edef\tud@geometry@ddcmargin{% + \if@fincl% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff\relax,% + \fi% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + }% + }{}% + \fi% + \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% + \global\tud@ta@headdiff=\tud@ta@headdiff% + \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% + \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% + \tud@ifverlower{2.03}{% + \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + }{}% + \tud@geometry@@process% + }% + \newcommand*\tud@geometry@@process{% + \edef\Gm@restore@org{\Gm@restore}% + \tud@ifverlower{2.03}{% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin,% + \tud@geometry@tudmargin,% + \tud@geometry@ddcmargin,% + ignorehead,ignorefoot% }% + \tud@newgeometry{\@tempa}% + \savegeometry{tudareaddc}% }{}% - \fi% - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% - \iftudscrverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - }{}% - \tud@geometry@@process% -} -\newcommand*\tud@geometry@@process{% - \iftudscrverlower{2.03}{% \edef\@tempa{% \tud@geometry@hmargin,% \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% - ignorehead,ignorefoot,% + \tud@geometry@tudmargin% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudareaddc}% - }{}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% + \tud@newgeometry{\@tempa}% + \savegeometry{tudarea}% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin% + }% + \tud@newgeometry{\@tempa}% + \savegeometry{typearea}% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudarea}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% + \newcommand*\tud@geometry@hincl{% + \if@hincl% + includehead=true% + \else% + includehead=false% + \fi% + }% + \newcommand*\tud@geometry@fincl{% + \if@fincl% + includefoot=true% + \else% + includefoot=false% + \fi% + }% + \newcommand*\tud@geometry@mpincl{% + \if@mincl% + includemp=true% + \else% + includemp=false% + \fi% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{typearea}% } -\newcommand*\tud@geometry@hincl{% - \if@hincl% - includehead,% - \else% - ignorehead,% - \fi% +\newcommand*\tud@currentgeometry{} +\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% + \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@iftudps{#1}{% + \tud@ifverlower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + \else% \tud@ddc@foot!=false + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + }% + \setlength\tud@dim@headdiff{\z@}% + \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% + }{% + \ifstr{\tud@currentgeometry}{typearea}{}{% + \loadgeometry{typearea}% + \gdef\tud@currentgeometry{typearea}% + }% + \setlength\tud@dim@headdiff{\tud@ta@headdiff}% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \if@hincl% + \addtolength\tud@dim@headdiff{% + \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + }% + \fi% + \fi% + \tud@font@koma@unset{pagefoot}% + \tud@font@koma@unset{pagenumber}% + }% + \global\tud@dim@headdiff=\tud@dim@headdiff% + }{}% } -\newcommand*\tud@geometry@fincl{% - \if@fincl% - includefoot,% - \else% - ignorefoot,% - \fi% +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +\tud@ifverlower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \tud@iftudps{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false + \enlargethispage{-\tud@dim@ddcdiff}% + \fi% + }% + }{}% + }% +}{} +\newlength\tud@ta@textheight +\newlength\tud@ta@topmargin +\newlength\tud@ta@headheight +\newlength\tud@ta@headsep +\newlength\tud@ta@footheight +\newlength\tud@ta@footskip +\newlength\tud@ta@headdiff +\newcommand*\tud@AfterChangingArea{% + \setlength\tud@ta@textheight{\textheight}% + \setlength\tud@ta@topmargin{\topmargin}% + \setlength\tud@ta@headheight{\headheight}% + \setlength\tud@ta@headsep{\headsep}% + \ifcsvoid{ta@fh}{% + \setlength\tud@ta@footheight{\footheight}% + }{% + \setlength\tud@ta@footheight{\ta@fh}% + }% + \setlength\tud@ta@footskip{\footskip}% + \tud@geometry@process% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +\AtEndPreamble{% + \tud@ifsacrop{}{% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% + \recalctypearea% + }% } \newcommand*\tud@ps{tudheadings} \newcommand*\tud@ps@select{% @@ -2772,11 +3542,11 @@ \TUD@parameter@set{tudpage}{#1}% \tud@ps@select% \tud@multicols@check% - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \begin{multicols}{\tud@multicols}% \fi% \BODY% - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \end{multicols}% \fi% }[% @@ -2801,9 +3571,9 @@ } \TUD@parameter{tudpage}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{% - \iftudpagestyle{#1}{\renewcommand*\tud@ps{#1}}{% + \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% @@ -2817,27 +3587,27 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% } %%% From File: tudscr-layout.dtx -\newcommand*\tud@part@fontcolor{black} -\newcommand*\tud@chapter@fontcolor{black} +\newcommand*\tud@part@fontcolor{} +\newcommand*\tud@chapter@fontcolor{} \newkomafont{parttitle}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% \usesizeofkomafont{section}% } \newlength\pageheadingsvskip \newlength\headingsvskip \newcommand*\tud@headmidvskip{\par\nobreak\vspace{.5\baselineskip}} \newcommand*\tud@headmidvskip@neg{% - \setbox0\vbox{\tud@headmidvskip}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht0\relax}% + \setbox\z@\vbox{\tud@headmidvskip}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% } \newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \bool@std@lock{@tud@cover@cdgeometry}{false}% - \else% + \else% !false \bool@std@lock{@tud@cover@cdgeometry}{true}% \fi% - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \tud@cmd@restore{maketitle}% \tud@cmd@restore{@maketitle}% \tud@cmd@restore{titlepagestyle}% @@ -2848,7 +3618,7 @@ \tud@font@koma@unset{author}% \tud@font@koma@unset{date}% \tud@font@koma@unset{publishers}% - \else% + \else% !false \tud@cmd@store{maketitle}% \tud@cmd@store{@maketitle}% \tud@cmd@store{titlepagestyle}% @@ -2857,18 +3627,18 @@ \usekomafont{disposition}% \tud@font@heading% \tud@font@heading@size% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subtitle}{% \tud@font@heading% \usesizeofkomafont{section}% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subject}{% \fontfamily{\sfdefault}% \fontseries{\bfdefault}% \selectfont% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{author}{\usekomafont{subject}}% \tud@font@koma@set{date}{\usekomafont{titlepage}}% @@ -2876,68 +3646,87 @@ \let\maketitle\tud@maketitle% \renewcommand*\titlepagestyle{plain.tudheadings}% \fi% - \ifcase\tud@layout@part\relax% + \ifcase\tud@layout@part\relax% false \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadmidvskip}% \tud@cmd@restore{partheadendvskip}% \tud@cmd@restore{partheademptypage}% \tud@cmd@restore{partpagestyle}% - \tud@cmd@restore{@part}% - \tud@cmd@restore{@spart}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@startpart}% + \tud@cmd@restore{scr@@startspart}% + }{% + \tud@cmd@restore{@part}% + \tud@cmd@restore{@spart}% + }% \tud@sectioning@reset[addpart]{part}% \tud@font@koma@unset{partnumber}% - \else% + \else% !false \tud@cmd@store{partheadstartvskip}% - \tud@cmd@store{partheadmidvskip}% \tud@cmd@store{partheadendvskip}% \tud@cmd@store{partheademptypage}% \tud@cmd@store{partpagestyle}% - \tud@cmd@store{@part}% - \tud@cmd@store{@spart}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% + \tud@cmd@store{scr@@startspart}% + }{% + \tud@cmd@store{@part}% + \tud@cmd@store{@spart}% + }% \if@tud@parttitle% \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}% \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \renewcommand*\partheadmidvskip{\enskip}% \else% \tud@sectioning@set[addpart]{part}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% }% \tud@font@koma@set{partnumber}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% }% - \let\partheadmidvskip\tud@headmidvskip% \fi% \let\partheadstartvskip\tud@partheadstartvskip% \let\partheadendvskip\tud@partheadendvskip% \let\partheademptypage\relax% \renewcommand*\partpagestyle{plain.tudheadings}% - \let\@part\tud@@part% - \let\@spart\tud@@spart% + \ifcsdef{scr@v@3.18}{% + \let\scr@@startpart\tud@@startpart% + \let\scr@@startspart\tud@@startspart% + }{% + \let\@part\tud@@part% + \let\@spart\tud@@spart% + }% \fi% - \ifcase\tud@layout@chapter\relax% + \ifcase\tud@layout@chapter\relax% false \tud@cmd@restore{chapterheadstartvskip}% \tud@cmd@restore{chapterformat}% \tud@cmd@restore{@chapter}% \tud@cmd@restore{@schapter}% - \tud@cmd@restore{@@makechapterhead}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@makechapterhead}% + }{% + \tud@cmd@restore{@@makechapterhead}% + }% \tud@sectioning@reset[addchap]{chapter}% \tud@font@koma@unset{chapterprefix}% \tud@sectioning@reset[addsec]{section}% \tud@sectioning@reset{subsection}% \tud@sectioning@reset{subsubsection}% \tud@sectioning@reset{minisec}% - \else% + \else% !false \tud@cmd@store{chapterheadstartvskip}% \tud@cmd@store{chapterformat}% \tud@cmd@store{@chapter}% \tud@cmd@store{@schapter}% - \tud@cmd@store{@@makechapterhead}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@makechapterhead}% + }{% + \tud@cmd@store{@@makechapterhead}% + }% \tud@sectioning@set[addchap]{chapter}{% \tud@font@heading% \tud@font@heading@size% - \color{\tud@chapter@fontcolor}% + \tud@color{\tud@chapter@fontcolor}% }% \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% \tud@sectioning@set[addsec]{section}{\tud@font@heading}% @@ -2945,20 +3734,42 @@ \tud@sectioning@set{subsubsection}{\tud@font@heading}% \tud@sectioning@set{minisec}{\tud@font@heading}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \let\@@makechapterhead\tud@@@makechapterhead% + \ifcsdef{scr@v@3.18}{% + \let\scr@@makechapterhead\tud@@@makechapterhead% + }{% + \let\@@makechapterhead\tud@@@makechapterhead% + }% \fi% } +\newcommand*\tud@layout@specialpage@set[1]{% + \tud@font@koma@set{footnote}{% + \edef\@tempa{% + \noexpand\tud@color{% + \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% + }% + }\@tempa% + }% + \tud@cmd@store{footnoterule}% + \let\footnoterule\relax% +} +\newcommand*\tud@layout@specialpage@unset{% + \tud@font@koma@unset{footnote}% + \tud@cmd@restore{footnoterule}% +} \newcommand*\tud@partheadstartvskip{% - \def\tud@part@fontcolor{black}% - \ifcase\tud@layout@part\relax\or\or% + \def\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part\relax\or\or% litecolor + \def\tud@part@fontcolor{HKS41}% + \or% barcolor \def\tud@part@fontcolor{HKS41}% - \or% + \or% bicolor \def\tud@part@fontcolor{HKS41}% - \or% + \or% color \def\tud@part@fontcolor{HKS41!30}% - \or% + \or% full \def\tud@part@fontcolor{HKS41!30}% \fi% + \tud@layout@specialpage@set{part}% \begingroup% \vspace*{% \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% @@ -2970,55 +3781,62 @@ \begingroup% \tud@font@heading% \tud@font@heading@size% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% \ifx\@@title\@empty% + \ClassWarning{\TUDClassName}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% \tud@makeuppercase{\strut}% \else% \tud@makeuppercase{\@@title}% \fi% - \par\nobreak - {\usekomafont{titlepage}\vskip 2ex\@plus1ex\@minus1ex}% + \par\nobreak% + {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% \endgroup% \else% - \usekomafont{partnumber}% - \tud@headmidvskip@neg% + \usekomafont{partnumber}{\tud@headmidvskip@neg}% \fi% \endgroup% } \newcommand*\tud@partheadendvskip{% \tud@cleardoublespecialpage{% \def\tud@pagecolor{}% - \ifcase\tud@layout@part\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \ifcase\tud@layout@part\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{white}% - \def\tud@foot@logocolor{white}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% full \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \addtokomafont{pagenumber}{\sffamily\color{\tud@part@fontcolor}}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% -} -\let\tud@@part\@part -\ifcsdef{scr@v@3.17}{% - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% + \tud@layout@specialpage@unset% +} +\@tempswafalse +\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\if@tempswa + \newcommand*\tud@@startpart{}% + \let\tud@@startpart\scr@@startpart% + \patchcmd{\tud@@startpart}{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\@nameuse{#1format}}% + \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% + \partheadmidvskip }{}% }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% \if@tud@parttitle% \enskip% \else% @@ -3026,63 +3844,77 @@ \fi% }{% \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% + \usekomafont{#1prefix}{\vphantom{\partname}}% \tud@headmidvskip% \fi% }% - }{}{\tud@patch@wrn{@part}}% -}{% + }{}{\tud@patch@wrn{scr@startpart}}% + \newcommand*\tud@@startspart{}% + \let\tud@@startspart\scr@@startspart% + \patchcmd{\tud@@startspart}{% + \normalfont + \sectfont\nobreak + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip\nobreak% + \fi% + }{}{\tud@patch@wrn{scr@@startspart}}% +\else + \newcommand*\tud@@part{}% + \let\tud@@part\@part \patchcmd{\tud@@part}{% \ifnumbered{part}{% \size@partnumber{\partformat}% + \setlength{\@tempskipa}{\scr@part@innerskip}% \partheadmidvskip% }{}% }{% \ifnumbered{part}{% \size@partnumber{\tud@makeuppercase{\partformat}}% - \partheadmidvskip% + \if@tud@parttitle% + \enskip% + \else% + \tud@headmidvskip% + \fi% }{% \if@tud@parttitle\else% \size@partnumber{\vphantom{\partname}}% - \partheadmidvskip% + \tud@headmidvskip% \fi% }% }{}{\tud@patch@wrn{@part}}% -} -\let\tud@@spart\@spart -\patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part -}{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \fi% - \partheadmidvskip\unskip% - \size@part% -}{}{\tud@patch@wrn{@spart}} + \newcommand*\tud@@spart{}% + \let\tud@@spart\@spart + \patchcmd{\tud@@spart}{% + \normalfont + \sectfont\nobreak\size@part + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip\nobreak% + \fi% + \size@part% + }{}{\tud@patch@wrn{@spart}} +\fi \newcommand*\tud@partpreamble{% - \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap \KOMAoptions{titlepage=false}% - \addtokomafont{disposition}{\color{\tud@part@fontcolor}}% - \addtokomafont{dictumtext}{\color{\tud@part@fontcolor}}% - \color{\tud@part@fontcolor}% + \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% + \addtokomafont{dictumtext}{\tud@color{\tud@part@fontcolor}}% + \tud@color{\tud@part@fontcolor}% \vskip\dimexpr\topskip+.9\baselineskip\relax% \@afterindentfalse\@afterheading% } \newcommand*\tud@chapterheadstartvskip{% - \def\tud@chapter@fontcolor{black}% - \ifcase\tud@layout@chapter\relax\or\else% + \def\tud@chapter@fontcolor{}% + \ifcase\tud@layout@chapter\relax\or\else% *color \def\tud@chapter@fontcolor{HKS41}% \fi% - \ifcsdef{scr@v@3.15}{% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% - }% - }{% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip\relax% - }% + \vspace*{% + \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% }% \if@tud@chapterpage% \vspace*{\pageheadingsvskip}% @@ -3090,71 +3922,64 @@ \vspace*{\headingsvskip}% \fi% }% -\newcommand*\tud@@@makechapterhead{} -\let\tud@@@makechapterhead\@@makechapterhead -\ifcsdef{scr@v@3.15}{% - \ifcsdef{scr@v@3.17}{% - \patchcmd{\tud@@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@neg% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip% - }{}{\tud@patch@wrn{@@makechapterhead}}% +\@tempswafalse +\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\if@tempswa + \newcommand*\tud@@@makechapterhead{} + \let\tud@@@makechapterhead\scr@@makechapterhead + \patchcmd{\tud@@@makechapterhead}{% + \csname #1format\endcsname + \setlength{\@tempskipa}{% + \csname scr@#1@innerskip\endcsname + }% + \chapterheadmidvskip }{% - \patchcmd{\tud@@@makechapterhead}{\chapterformat\chapterheadmidvskip}{% - \tud@headmidvskip@neg% - \tud@makeuppercase{\chapterformat}\tud@headmidvskip - }{}{\tud@patch@wrn{@@makechapterhead}}% - }% + \tud@headmidvskip@neg% + \tud@makeuppercase{\csname #1format\endcsname}% + \tud@headmidvskip% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% \patchcmd{\tud@@@makechapterhead}{\IfUsePrefixLine{}{\raggedchapter}}{% \IfUsePrefixLine{\IfUseNumber{\setlength\parskip{\z@}}{}}{\raggedchapter}% - }{}{\tud@patch@wrn{@@makechapterhead}}% -}{% - \patchcmd{\tud@@@makechapterhead}{\chapterheadstartvskip}{% - \chapterheadstartvskip% - \ifnumbered{chapter}{% - \if@chapterprefix% - \begingroup% - \usekomafont{chapterprefix}% - \tud@headmidvskip@neg% - \endgroup% - \fi% - }{}% - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\chapterformat}{% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% +\else + \newcommand*\tud@@@makechapterhead{} + \let\tud@@@makechapterhead\@@makechapterhead + \patchcmd{\tud@@@makechapterhead}{% + \chapterformat + \setlength{\@tempskipa}{\scr@chapter@innerskip}% + \chapterheadmidvskip + }{% + \tud@headmidvskip@neg% \tud@makeuppercase{\chapterformat}% - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\endgraf\nobreak\vskip.5\baselineskip}{% - \tud@headmidvskip - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\interlinepenalty}{% - \ifnumbered{chapter}{\setlength\parskip{\z@}}{}\interlinepenalty - }{}{\tud@patch@wrn{@@makechapterhead}} -} + \tud@headmidvskip% + }{}{\tud@patch@wrn{@@makechapterhead}}% + \patchcmd{\tud@@@makechapterhead}{\IfUsePrefixLine{}{\raggedchapter}}{% + \IfUsePrefixLine{\IfUseNumber{\setlength\parskip{\z@}}{}}{\raggedchapter}% + }{}{\tud@patch@wrn{@@makechapterhead}}% +\fi \newcommand*\tud@chapterpreamble{% - \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap \KOMAoptions{titlepage=false}% \if@tud@chapterpage% - \ifcase\tud@cdfont\relax\or% + \ifcase\tud@cdfont\relax\or% true \TUDoptions{cdfont=true}% - \or% + \or% heavy \TUDoptions{cdfont=heavy}% \fi% - \addtokomafont{disposition}{\color{\tud@chapter@fontcolor}}% - \addtokomafont{dictumtext}{\color{\tud@chapter@fontcolor}}% - \color{\tud@chapter@fontcolor}% + \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% + \addtokomafont{dictumtext}{\tud@color{\tud@chapter@fontcolor}}% + \tud@color{\tud@chapter@fontcolor}% \fi% \@afterindentfalse\@afterheading% } \patchcmd{\set@@@@preamble}{% \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }{% - \def\@tempa####1@####2{\@nameuse{tud@####1preamble}}% + \def\@tempa####1@####2{% + \@nameuse{tud@####1preamble}% + \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% + }% \hbox to\hsize{% - \let\@parboxrestore\relax% \let\phantomsection\relax% #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% }% @@ -3163,61 +3988,72 @@ \if@tud@chapterpage% \@restonecolfalse% \if@twocolumn\@restonecoltrue\onecolumn\fi% + \tud@layout@specialpage@set{chapter}% \fi% } +\newcommand*\tud@head@bar@store{}% +\let\tud@head@bar@store\relax% +\newcommand*\tud@head@bar@restore{}% +\let\tud@head@bar@restore\relax% \newcommand*\tud@chapter@app{% \if@tud@chapterpage% \tud@cleardoublespecialpage{% \def\tud@pagecolor{}% - \ifcase\tud@layout@chapter\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \let\tud@foot@fontcolor\tud@chapter@fontcolor% + \ifcase\tud@layout@chapter\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41!10}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% fullcolor \def\tud@pagecolor{HKS41!10}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \addtokomafont{pagenumber}{\sffamily\color{\tud@chapter@fontcolor}}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% + \tud@layout@specialpage@unset% \if@restonecol\twocolumn\fi% \else% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% + \edef\tud@head@bar@store{\tud@head@bar}% + \edef\tud@head@bar@restore{% + \gdef\noexpand\tud@head@bar{\tud@head@bar@store}% + \global\let\noexpand\tud@head@bar@store\relax% + \global\let\noexpand\tud@head@bar@restore\relax% + }% + \ifcase\tud@layout@chapter\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color + \cs@set@lock{tud@head@bar}{1}% + \or% fullcolor + \cs@set@lock{tud@head@bar}{3}% + \fi% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% \fi% \if@twocolumn% \@afterindentfalse\@afterheading% \fi% } \newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Option `clearcolor' is only available together with\MessageBreak% options `twoside' and `open=right'% }% \global\let\tud@clearcolor@wrn\relax% } -\ifcsdef{scr@v@3.14}{}{% - \providecommand*\SecDef[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}} - \providecommand\scr@section@dblarg[1]{% - \kernel@ifnextchar[%] - {#1}% - {\scr@section@xdblarg{#1}}% - } - \providecommand\scr@section@xdblarg[2]{% - \begingroup - \edef\reserved@a{% - \unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}% - {\scr@osectarg}}% - \reserved@a - } -} \newcommand*\tud@part{} \newcommand*\tud@spart{} \newcommand*\tud@addpart{} @@ -3228,6 +4064,8 @@ \newcommand*\tud@saddchap{} \newcommand*\tud@section{} \newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} \newcommand*\tud@subsection{} \newcommand*\tud@ssubsection{} \newcommand*\tud@subsubsection{} @@ -3301,155 +4139,185 @@ \tud@makeuppercase{#1}% \endgroup% } -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% -} -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% -} -\newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% -} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@check[2]{% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% - \@tempswatrue% - \ifboolexpr{bool {@tud@#1@fil} and bool {@tud@#1@multi}}{% - \setbox0\vbox{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-\baselineskip}}% - \fi% - #2% - }% - \ifdim\textheight<\dimexpr\ht0+\dp0\relax% - \ClassWarning{\tudcls@name}{% + \global\let\tud@fm@set\tud@fm@first% + \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUDClassName}{% The given content within the `#1'\MessageBreak% environment is too large, so it wasn't possible\MessageBreak% to center the body vertically. Setting the option\MessageBreak% `#1=nofill' would be a solution. You\MessageBreak% could also use multiple `#1' environments% }% - \@tempswafalse% + \boolfalse{@tud@#1@fil}% \fi% }{}% - }{}% - #2% -} -\newcommand*\tud@fm@set[3]{% - \ifnumless{\@nameuse{tud@#1@level}}{3}{}{% + }{% chapter \boolfalse{@tud@#1@multi}% \boolfalse{@tud@#1@fil}% }% - \if@twocolumn% - \tud@fm@body{#1}{#2}{#3}% - \else% + \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% + \global\let\tud@fm@set\tud@fm@first% + #2% +} +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% + }{% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + }% + }% + \@tempa% + }{% + \ClassWarning{\TUDClassName}{% + It isn't possible to use `#1=single'\MessageBreak% + or `#1=chapter' + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc}{% + \the\numexpr\@nameuse{tud@#1@toc}-2\relax% + }% + }% + \@tempa% + }% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \global\let\tud@fm@set\tud@fm@next% + \if@twocolumn\else% \if@titlepage% - \ifbool{@tud@#1@multi}{}{\clearpage}% \ifbool{@tud@#1@fil}{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% + \null\vfil% + \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section + \vspace{\dimexpr-\parskip-\baselineskip\relax}% + {\usekomafont{section}{\vspace{-\baselineskip}}}% \fi% - \if@tempswa\vspace*{\z@ \@plus 1fil}\fi% }{}% - \tud@fm@body{#1}{#2}{#3}% - \ifbool{@tud@#1@fil}{\vspace*{\z@ \@plus 2fil}}{}% - \else% - \ifnum\@nameuse{tud@#1@level}<2\begin{\tud@quoting}\fi% - \tud@fm@body{#1}{#2}{#3}% - \ifnum\@nameuse{tud@#1@level}<2\end{\tud@quoting}\fi% \fi% \fi% } -\newcommand*\tud@fm@body[3]{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#2}}]% +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% \else% - \ifbool{@tud@#1@multi}{% - \ifcase\@nameuse{tud@#1@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% + }% + \else% + \ifnum\@nameuse{tud@#1@level}=\z@% + \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% \fi% - }{}% - \tud@fm@head{#1}{#2}% - \fi% - #3\par% - \ifnum\tud@multicols>1\relax% - \end{multicols}% + \fi% \fi% } +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true + \fi\fi% + \ifnum\tud@multicols>\@ne\relax% + \setlength\multicolsep{\z@}% + \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@multicols>\@ne\relax% + \end{multicols}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true + \fi\fi% + \endgroup% +} \newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% + \ifcase\@nameuse{tud@#1@level}\relax% false \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% - \or% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% \begingroup% - \centering% + \noindent\centering% \normalfont\sectfont\nobreak#2% \@endparpenalty\@M% \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\dimexpr\medskipamount-\parskip\relax% \@afterheading% - \or% + \or% section \section*{#2}% \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% - \or% + \or% chapter \chapter*{#2}% \@mkdouble{\MakeMarkcase{#2}}% \fi% \ifbool{@tud@#1@markboth}{% \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% }{}% - \ifbool{@tud@#1@toc}{% - \ifbool{@tud@#1@toc@leveldown}{% - \addsectiontocentry{}{#2}% - }{% - \addchaptertocentry{}{#2}% - }% - }{}% -} -\newcommand*\tud@fm@next[2]{% - \TUD@parameter@set{#1}{#2}% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% - \else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \vspace*{\z@ \@plus 1fil}% - \ifbool{@tud@#1@multi}{}{% - \vspace*{\z@ \@plus 1fil}% - \clearpage% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% - \fi% - \vspace*{\z@ \@plus 1fil}% - }% - }{\ifbool{@tud@#1@multi}{}{\clearpage}}% - \else% - \ifnum\@nameuse{tud@#1@level}<2% - \end{\tud@quoting}% - \begin{\tud@quoting}% - \fi% + \ifnum\@nameuse{tud@#1@toc}>\z@\relax% + \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% + \ifnumodd{\csname tud@#1@toc\endcsname}{% + \addchaptertocentry{}{#2}% + }{% + \addsectiontocentry{}{#2}% + }% \fi% \fi% } \newcommand*\tud@fm@pagestyle[2]{% \if@titlepage% \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\tudcls@name}{`#2' is no valid pagestyle}{% + \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined% + `#1' environment, but it was never defined.% }% }% \else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The key `pagestyle' can only be used either with\MessageBreak% activated option `titlepage' or with chapter\MessageBreak% headings (`#1=chapter')% @@ -3459,7 +4327,7 @@ \newcommand*\tud@quoting{quotation} \AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} \NewEnviron{abstract}[1][]{% - \ifnumless{\@nameuse{tud@abstract@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% \TUD@parameter@set{abstract}{#1}% \tud@multicols@check% @@ -3469,16 +4337,25 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{abstract}{\tud@fm@set{abstract}{\abstractname}{\BODY}}% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% }[% \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] \TUD@parameter{abstract}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% @@ -3497,26 +4374,15 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% } \newcommand*\nextabstract[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \else% - \ifbool{@tud@abstract@multi}{% - \ifcase\@nameuse{tud@abstract@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% - \fi% - }{}% - \fi% - \tud@fm@next{abstract}{#1}% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{abstract}{\abstractname}}]% - \else% - \tud@fm@head{abstract}{\abstractname}% - \fi% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% + }% } \newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% - \ifnumless{\@nameuse{tud@declaration@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% \TUD@parameter@set{declaration}{#1}% \tud@multicols@check% @@ -3526,24 +4392,17 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{declaration}{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% - \BODY% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% - }% + \tud@fm@check{declaration}{\BODY}% }[% \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] \TUD@parameter{declaration}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% @@ -3567,14 +4426,10 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% } \newcommand*\declaration[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% - \tud@fm@blocking% + \tud@fm@confirmation[#1]% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3582,21 +4437,26 @@ \tud@fm@blocking% \end{declarations}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% +} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2} + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% + }% + }% } \newcommand*\confirmation[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{supporter=##1}% }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% + \tud@fm@confirmation[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3606,28 +4466,19 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } -\newcommand*\tud@fm@confirmation{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\confirmationname}{% - \confirmationtext\vskip\z@\@confirmationclosing% - }% - }% +\newcommand*\tud@fm@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% } \newcommand*\blocking[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{company=##1}% }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@blocking% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3637,14 +4488,11 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } -\newcommand*\tud@fm@blocking{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\blockingname}{\blockingtext}% - }% +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% } %%% From File: tudscr-title.dtx \newkomafont{thesis}{\usekomafont{title}\LARGE} @@ -3654,21 +4502,21 @@ \selectfont% \large% } -\newcommand*\tud@title@fontcolor{black} +\newcommand*\tud@title@fontcolor{} \newcommand*\tud@titlepagenumber{}% \let\tud@titlepagenumber\relax% \newcommand*\tud@maketitle[1][]{% \begingroup% \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false \if@titlepage% \tud@maketitlepage% \else% - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\else% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\else% *color \def\tud@title@fontcolor{HKS41}% \fi% \let\@maketitle\tud@@maketitle% @@ -3693,17 +4541,20 @@ \robustify{\footnotemark}% \newcommand*\tud@titleback{}% \newcommand*\tud@maketitlepage{% - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\or% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\or% litecolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% barcolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% bicolor + \def\tud@title@fontcolor{HKS41}% + \or% color \def\tud@title@fontcolor{HKS41!30}% - \or% + \or% full \def\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% + \tud@layout@specialpage@set{title}% \ifx\tud@titlepagenumber\relax\else% \setcounter{page}{\tud@titlepagenumber}% \fi% @@ -3717,7 +4568,7 @@ \tud@footnote@unhyper% \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -3775,21 +4626,21 @@ \usekomafont{titlepage}% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% @@ -3797,14 +4648,14 @@ \vskip 2ex\@plus1ex\@minus1ex% \fi% \vskip 2\bigskipamount% - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -3818,7 +4669,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\space\@graduationabbr\fi% + \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -3838,26 +4689,11 @@ \tud@title@names{advisor}% \tud@title@names{professor}% \ifx\@thesis\@empty\else% - \ifdefstring{\@date}{\today}{% - \ifdefvoid{\@duedate}{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - Since a thesis is a self-contained work, an end\MessageBreak% - date should be specified by the author.\MessageBreak% - Nevertheless, today's date is used% - }% - }{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - It's substituted by the given due date% - }% - \let\@date\@duedate% - }% - }{}% + \tud@datecheck% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \ifx\@defensedate\@empty\else% \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% {\usekomafont{date}{\@defensedate\par}}% @@ -3893,27 +4729,26 @@ \fi% \def\@tempa{% \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \ifcase\tud@layout@title\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{white}% - \def\tud@foot@logocolor{white}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% full \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\sffamily\color{\tud@title@fontcolor}}% - \addtokomafont{footnote}{\sffamily\color{\tud@title@fontcolor}}% + \tud@color{\tud@title@fontcolor}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% }% \if@tud@cover% \begingroup% @@ -3947,7 +4782,7 @@ \begingroup% \def\thanks##1{\gdef\@tempa{##1}}% \let\footnote\thanks% - \setbox0\vbox{#1}% + \sbox\z@{#1}% \let\thanks\@gobble% \let\footnote\@gobble% \tud@makeuppercase{#1}% @@ -3984,22 +4819,22 @@ \tud@footnote@unhyper% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \TUDoptions{subjectthesis=true}% \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% @@ -4007,10 +4842,10 @@ \vskip 2ex\@plus1ex\@minus1ex% \fi% \vskip 2\bigskipamount% - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -4024,53 +4859,12 @@ \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% \vskip 2\bigskipamount% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% -} -\newcommand*\tud@multiple@field{} -\newcommand*\tud@multiple@split[1]{% - \gdef\tud@multiple@field{#1}% - \begingroup% - \let\and\relax% - \edef\@tempa{\csname#1\endcsname\and}% - \expandafter\endgroup% - \expandafter\tud@multiple@@split\@tempa\relax% -} -\newcommand*\tud@multiple@@split{}% -\def\tud@multiple@@split#1\and#2\relax{% - \expandafter\csname tud@split\tud@multiple@field\endcsname{#1}{#2}% -} -\newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% - \def\@tempb{}% - \else% - \def\@tempb{#2\tud@multiple@@split#1\relax}% - \fi% - \@tempb% -} -\newcommand*\tud@multiple@setfields[2]{% - \letcs\@tempa{tud@split\tud@multiple@field @list}% - \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \begingroup% - \protected@expandtwoargs\in@{\@tempb}{\@nameuse{\tud@multiple@field}}% - \ifin@ \@tempb{#1}\fi% - \endgroup% - \fi% - }% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \setbox0\vtop{#2}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% \endgroup% } \newcommand*\tud@newline{} -\newcommand*\tud@check@author{% - \ifpatchable{\@author}{\@latex@warning@no@line}{\@author\gdef\@author{}}{}% -} -\newcommand*\tud@split@author[2]{% - \tud@multiple@setfields{}{#1}% +\newcommand*\tud@split@author@title[2]{% + \tud@multiple@fields@store{@author}{#1}% \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% {\usekomafont{author}{\ignorespaces#1}}% \if@tud@cover\else% @@ -4084,7 +4878,7 @@ \ifstr{\dateofbirthtext}{}% {}{\dateofbirthtext\@titledelim}\@dateofbirth% \ifx\@placeofbirth\@empty\else% - \space\placeofbirthtext\unskip\space\@placeofbirth% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% \fi% \else% \tud@title@wrn{dateofbirth}% @@ -4111,13 +4905,9 @@ \fi% \fi% \fi% + \tud@multiple@fields@restore{@author}% \tud@multiple@@@split{#2}{\vskip 2ex}% } -\newcommand*\tud@split@author@list{% - \authormore,\matriculationyear,\enrolmentyear,% - \matriculationnumber,\studentid,\matriculationid,% - \placeofbirth,\birthplace,\dateofbirth,\birthday,% -} \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% @@ -4127,7 +4917,7 @@ \tud@title@twocolumn{\maketitle[#1]{#2}}% \fi% \else% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% @@ -4143,9 +4933,9 @@ }% \endgroup% \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% \@tempswatrue% \fi% @@ -4157,18 +4947,18 @@ \vsplit\tud@title@twocolumn@box to \@tempdima% \clearpage% \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{\@tempswafalse}{}% + \tud@ifverlower{2.03}{\@tempswafalse}{}% }% \else% \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% \fi% \twocolumn[\unvbox\tud@title@twocolumn@box]% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \if@tempswa% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% You are using a two-column title along with\MessageBreak% the DDC-logo. Unfortunately in this case, the\MessageBreak% - type area hast to be adjusted manually. Please\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% @@ -4178,7 +4968,7 @@ \newcommand*\tud@letsubjectthesis{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% \ifx\@subject\@empty\else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The option `subjectthesis' was activated.\MessageBreak% The field `subject' will be overwritten with the\MessageBreak% given thesis% @@ -4188,7 +4978,7 @@ \fi\fi% } \newcommand*\tud@title@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% `\@backslashchar#1' has to be used with\MessageBreak% activated titlepage option% }% @@ -4196,7 +4986,7 @@ \newif\if@tud@cover \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using both option `titlepage=firstiscover' and\MessageBreak% `\string\makecover' together isn't supported. The\MessageBreak% option `titlepage=firstiscover' will be ignored. If you\MessageBreak% @@ -4218,12 +5008,12 @@ \let\coverpagebottommargin\tud@dim@widemargin% \let\coverpageleftmargin\tud@dim@widemargin% \let\coverpagerightmargin\tud@dim@slimmargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagetopmargin{.5\tud@dim@both}% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% \fi% - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \KOMAoptions{titlepage=firstiscover}% \let\@extratitle\@empty% \let\@uppertitleback\@empty% @@ -4231,7 +5021,7 @@ \let\@dedication\@empty% \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false \@tud@covertrue% \@titlepagetrue% \edef\titlepage@restore{% @@ -4249,7 +5039,7 @@ \headheight=0pt% \headsep=0pt% \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% -1.25\baselineskip\relax% }{}% @@ -4264,7 +5054,7 @@ \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% \ifx\@tempa\coverpagebottommargin\relax% \let\coverpagebottommargin\tud@dim@widemargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% \fi% @@ -4309,8 +5099,41 @@ }% }% } +%%% From File: tudscr-comp.dtx +\newcommand*\tud@deprecated@cmd[2]{% + \AtBeginDocument{% + \ifcsdef{#1}{}{% + \expandafter\newrobustcmd\csname #1\endcsname{% + \ClassWarning{\TUDClassName}{% + The command `\@backslashchar#1' is deprecated.\MessageBreak% + It's recommended to use `\@backslashchar#2' instead% + }% + \csletcs{#1}{#2}% + \@nameuse{#2}% + }% + }% + }% +} +\newlength\chapterheadingvskip +\let\chapterheadingvskip\headingsvskip +\tud@deprecated@cmd{professorship}{chair} +\tud@deprecated@cmd{studentid}{matriculationnumber} +\tud@deprecated@cmd{matriculationid}{matriculationnumber} +\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% +\tud@deprecated@cmd{birthplace}{placeofbirth} +\tud@deprecated@cmd{location}{place} +\tud@deprecated@cmd{submissiondate}{date} +\tud@deprecated@cmd{oralexaminationdate}{defensedate}% +\tud@deprecated@cmd{birthday}{dateofbirth} +\tud@deprecated@cmd{logofile}{headlogo} +\tud@deprecated@cmd{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \tud@deprecated@cmd{startdate}{issuedate}% + \tud@deprecated@cmd{finaldate}{duedate}% + \tud@deprecated@cmd{maturitydate}{duedate}% +} %%% From File: tudscr-misc.dtx -\newcounter{symbolheadings}[chapter] +\newcounter{symbolheadings}[chapter]% \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@footnote@unhyper{} \AfterPackage{hyperref}{% @@ -4341,78 +5164,14 @@ \fi% \tudbookmark[0]{\contentsname}{toc}% }{}{\tud@patch@wrn{tableofcontents}} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% - }% -} -\newcommand*\tud@multicols{1} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>1\relax% - \ClassWarning{\tudcls@name}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \def\tud@multicols{1}% - \fi% - }% -} -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% -} -\newcommand*\tud@lowerstring[2]{% - \protected@edef#1{#2}% - \lowercase\expandafter{% - \expandafter\gdef\expandafter #1\expandafter{#1}% - }% -} -\providecommand*\protected@expandtwoargs[3]{% - \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% -} -%%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@cmd[2]{% - \AtBeginDocument{% - \ifcsdef{#1}{}{% - \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\tudcls@name}{% - The command `\@backslashchar#1' is deprecated.\MessageBreak% - It's recommended to use `\@backslashchar#2' instead% - }% - \csletcs{#1}{#2}% - \@nameuse{#2}% - }% - }% +\BeforePackage{tocloft}{% + \ClassWarning{\TUDClassName}{% + It is not recommended to use package `tocloft'.\MessageBreak% + Loading the package will certainly lead to problems\MessageBreak% + with table of contents and any list of floats. You\MessageBreak% + should use the appropriate options of KOMA-Script% }% } -\newlength\chapterheadingvskip -\let\chapterheadingvskip\headingsvskip -\tud@deprecated@cmd{professorship}{chair} -\tud@deprecated@cmd{student}{author} -\tud@deprecated@cmd{studentid}{matriculationnumber} -\tud@deprecated@cmd{matriculationid}{matriculationnumber} -\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% -\tud@deprecated@cmd{birthplace}{placeofbirth} -\tud@deprecated@cmd{location}{place} -\tud@deprecated@cmd{submissiondate}{date} -\tud@deprecated@cmd{oralexaminationdate}{defensedate}% -\tud@deprecated@cmd{birthday}{dateofbirth} -\tud@deprecated@cmd{logofile}{headlogo} -\tud@deprecated@cmd{logofilename}{headlogo} -\AfterPackage*{tudscrsupervisor}{% - \tud@deprecated@cmd{startdate}{issuedate}% - \tud@deprecated@cmd{finaldate}{duedate}% - \tud@deprecated@cmd{maturitydate}{duedate}% -} \endinput %% %% End of file `tudscrbook.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty index c2ab1173471..33cfc8ad959 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcolor.sty @@ -52,7 +52,7 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} \@ifundefined{TUDScript}{% @@ -63,9 +63,9 @@ }% }{} %%% From File: tudscr-color.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrcolor}[% - 2015/06/11 v2.03a TUD-KOMA-Script + 2015/07/02 v2.04 TUD-KOMA-Script package (corporate design colors)% ] @@ -73,8 +73,7 @@ \DeclareOption{reduced}{\let\setcdcolors@add\relax} \DeclareOption{oldcolors}{\let\setcdcolors@add\setcdcolors@oldcolors} \DeclareOption{full}{\let\setcdcolors@add\setcdcolors@oldcolors} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} -\providecommand*\nopagecolor{\pagecolor{white}}% +\newcommand*\tud@color[1]{\ifdefvoid{#1}{}{\color{#1}}} \newcommand*\setcdcolors@add{} \newcommand*\setcdcolors[1]{% \def\@tempa{#1}\ifx\@tempa\@empty\else% @@ -277,6 +276,7 @@ \colorlet{HKS07-90}{HKS07!90} \colorlet{HKS07-100}{HKS07!100} } +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} \ExecuteOptions{reduced} \ProcessOptions\relax \RequirePackage{xcolor}[2007/01/21] diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty index a23e5c561e5..34040687d31 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrcomp.sty @@ -4,8 +4,10 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,comp,tudscr') -%% tudscr-comp.dtx (with options: `package') +%% tudscr-version.dtx (with options: `package,comp') +%% tudscr-comp.dtx (with options: `package,identify') +%% tudscr-comp.dtx (with options: `package,option') +%% tudscr-comp.dtx (with options: `package,body') %% %% ============================================================================ %% @@ -52,15 +54,15 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\@ifundefined{tudcls@name}{% +\@ifundefined{TUDClassName}{% \PackageError{% tudscrcomp% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrartcl, tudscrreprt, tudscrbook)% + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).% } \endinput }{} @@ -72,35 +74,13 @@ }% }{} %%% From File: tudscr-comp.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrcomp}[% - 2015/06/11 v2.03a TUD-KOMA-Script + 2015/07/02 v2.04 TUD-KOMA-Script package (compatibility for old tud(scr) classes)% ] -\newcommand*\einrichtung{} -\let\einrichtung\faculty -\newcommand*\fachrichtung{} -\let\fachrichtung\department -\newcommand*\institut{} -\let\institut\institute -\newcommand*\professur{} -\let\professur\chair -\newcommand*\moreauthor{} -\let\moreauthor\authormore -\newcommand*\submitdate{} -\let\submitdate\date -\newcommand*\supervisorII[1]{% - \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and #1}% -} -\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} -\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} -\newcommand*\submittedon[1]{\gdef\datetext{#1}} -\newcommand*\dissertation{% - \thesis{\dissertationname}% - \let\supervisorname\refereename% - \let\supervisorothername\refereeothername% -} +%%% From File: tudscr-comp.dtx \TUD@key{colortitle}[true]{% \TUD@set@ifkey{colortitle}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -131,12 +111,30 @@ \fi% \fi% } +%%% From File: tudscr-comp.dtx +\newcommand*\einrichtung{\faculty} +\newcommand*\fachrichtung{\department} +\newcommand*\institut{\institute} +\newcommand*\professur{\chair} +\newcommand*\moreauthor{\authormore} +\newcommand*\submitdate{\date} +\newcommand*\supervisorII[1]{% + \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and #1}% +} +\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} +\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} +\newcommand*\submittedon[1]{\gdef\datetext{#1}} +\newcommand*\dissertation{% + \thesis{\dissertationname}% + \let\supervisorname\refereename% + \let\supervisorothername\refereeothername% +} \AtBeginDocument{% \ifdef{\theglossary}{}{% \providecommand*{\glossaryname}{Glossar} \newenvironment{theglossary}[1][]{% - \ClassWarning{\tudcls@name}{% - Using the environment theglossary is not\MessageBreak% + \PackageWarning{tudscrcomp}{% + Using the environment `theglossary' is not\MessageBreak% recommended. You should rather use an appropriate\MessageBreak% package such as glossaries% }% @@ -171,7 +169,7 @@ \global\@tud@chapterpage@tempfalse% } \newcommand*\tud@chapterpage@wrn{% - \ClassWarning{\tudcls@name}{% + \PackageWarning{tudscrcomp}{% The command \string\chapterpage\space is not\MessageBreak% recommended. You should use the same style for\MessageBreak% chapters throughout the document diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls index a05ef97aae8..319684680ee 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrdoc.cls @@ -6,7 +6,7 @@ %% %% tudscr-version.dtx (with options: `class,doc') %% tudscr-doc.dtx (with options: `class,doc') -%% tudscr-misc.dtx (with options: `class,doc') +%% tudscr-manual.dtx (with options: `class,doc') %% %% ============================================================================ %% @@ -53,12 +53,31 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\newcommand*\cls@name{doc} -\newcommand*\scrcls@name{scrdoc} -\newcommand*\tudcls@name{tudscrdoc} +\newcommand*\TUD@ProvidesClass[3]{% + \newcommand*\TUDClassName@KOMA{#2}% + \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% + \ProvidesClass{#1}[% + 2015/07/02 v2.04 TUD-KOMA-Script + ^^J#3 (#2)% + ]% + \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% +} +\providecommand*\TUD@ClassInfo{% + \typeout{+---------------------------------------------------------------} + \typeout{| The Corporate Design of Technische Universitaet Dresden} + \typeout{| Class: \TUDClassName} + \typeout{| Version: \TUDVersion} + \typeout{| Author: Falk Hanisch (\tudscrmail)} + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} + \typeout{+---------------------------------------------------------------} +} +\NeedsTeXFormat{LaTeX2e} +\TUD@ProvidesClass{tudscrdoc}{scrdoc}{% + internal source code documentation class% +} \@ifundefined{TUDScript}{% \DeclareRobustCommand{\TUDScript}{% \ifdin{TUD-KOMA-SCRIPT}{% @@ -67,12 +86,6 @@ }% }{} %%% From File: tudscr-doc.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesClass{tudscrdoc}[% - 2015/06/11 v2.03a TUD-KOMA-Script - class - (source code documentation based on scrdoc)% -] \LoadClassWithOptions{scrdoc} \setlength\marginparwidth{140pt} \setlength\marginparsep{8pt} @@ -83,8 +96,9 @@ \setlength\topmargin{-1in} \setlength\headheight{0pt} \setlength\headsep{30pt} -\setlength\footskip{1.5\headsep} +\setlength\footskip{1.25\headsep} \setlength\textheight{\dimexpr\paperheight-2\headsep-\footskip\relax} +\AfterPackage{tudscrfonts}{\AtBeginDocument{\setlength\columnsep{10pt}}} \RequirePackage{dox}[2010/12/16] \def\generalname{Allgemeines} \title{% @@ -138,20 +152,20 @@ \providecommand*\url[1]{\texttt{#1}}% \providecommand*\texorpdfstring[2]{#1}% \@ifpackageloaded{babel}{}{% - \ClassWarning{\tudcls@name}{Package `babel' not loaded}% + \ClassWarning{\TUDClassName}{Package `babel' not loaded}% \let\selectlanguage\@gobble% \let\glqq\relax% \let\grqq\relax% }% \@ifpackageloaded{csquotes}{}{% - \ClassWarning{\tudcls@name}{Package `csquotes' not loaded}% + \ClassWarning{\TUDClassName}{Package `csquotes' not loaded}% \providecommand\enquote[1]{\glqg#1\grqq{}}% }% \providecommand*\ifdin[2]{#2}% } \AtBeginDocument{% \@ifundefined{tud@cdfont}{\def\tud@cdfont{0}}{}% - \ifnum\tud@cdfont>\z@\relax% + \ifnum\tud@cdfont>\z@\relax% true/heavy \RequirePackage{mweights}[2013/07/21]% \def\mddefault{m}% \def\mdseries@tt{m}% @@ -160,7 +174,7 @@ \RequirePackage{lmodern}[2009/10/30]% \fi% }% -%%% From File: tudscr-misc.dtx +%%% From File: tudscr-manual.dtx \RequirePackage{xspace}[2009/10/20] \xspaceaddexceptions{"=} \newcommand*\vTUDScript{} @@ -169,7 +183,7 @@ \edef\@tempa{\TUDVersion}% \expandafter\@tempb\@tempa\relax? ? \relax\relax% } -\newcommand*\vKOMAScript{v3.12\xspace} +\newcommand*\vKOMAScript{v3.17\xspace} \RequirePackage{scrhack}[2014/02/27] \newcommand*\CD{Corporate Design\xspace} \newcommand*\CDs{Corporate Designs\xspace} diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty index 4a4d7182b54..14982cc2df7 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrfonts.sty @@ -7,10 +7,12 @@ %% tudscr-version.dtx (with options: `package') %% tudscr-fonts.dtx (with options: `package,identify') %% tudscr-base.dtx (with options: `load') +%% tudscr-comp.dtx (with options: `package,preset,fonts') %% tudscr-fonts.dtx (with options: `package,option') -%% tudscr-comp.dtx (with options: `fonts,option') -%% tudscr-fonts.dtx (with options: `package,execute') +%% tudscr-comp.dtx (with options: `package,option,fonts') +%% tudscr-misc.dtx (with options: `package,execute,fonts') %% tudscr-fonts.dtx (with options: `package,body') +%% tudscr-comp.dtx (with options: `package,body,fonts') %% %% ============================================================================ %% @@ -57,7 +59,7 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} \@ifundefined{TUDScript}{% @@ -68,38 +70,34 @@ }% }{} %%% From File: tudscr-fonts.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesPackage{tudscrfonts}[% - 2015/06/11 v2.03a TUD-KOMA-Script +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{% + tudscrfonts% +}[% + 2015/07/02 v2.04 TUD-KOMA-Script package (corporate design fonts)% ] +\ifcsname KOMAClassName\endcsname\else% + \RequirePackage{scrextend}[2013/12/19]% +\fi +\RequirePackage{trimspaces}[2009/09/17] +%%% From File: tudscr-base.dtx +\RequirePackage{tudscrbase}[\TUDVersion] +%%% From File: tudscr-comp.dtx \newif\if@tud@oldclass -\newif\if@tud@oldscrclass \@ifclassloaded{tudbook}{\@tud@oldclasstrue}{}% \@ifclassloaded{tudbeamer}{\@tud@oldclasstrue}{}% \@ifclassloaded{tudfax}{\@tud@oldclasstrue}{}% \@ifclassloaded{tudform}{\@tud@oldclasstrue}{}% \@ifclassloaded{tudhaus}{\@tud@oldclasstrue}{}% \@ifclassloaded{tudletter}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudposter}{\@tud@oldclasstrue}{}% +\@ifclassloaded{tudmathposter}{\@tud@oldclasstrue}{}% +\newif\if@tud@oldscrclass \@ifclassloaded{tudscrbookold}{\@tud@oldscrclasstrue}{}% \@ifclassloaded{tudscrreprtold}{\@tud@oldscrclasstrue}{}% \@ifclassloaded{tudscrartclold}{\@tud@oldscrclasstrue}{}% -\if@tud@oldscrclass - \let\TUDoptions\relax - \let\TUDoption\relax - \let\univln\relax - \let\univrn\relax - \let\univbn\relax - \let\univxn\relax - \let\univls\relax - \let\univrs\relax - \let\univbs\relax - \let\univxs\relax - \let\dinbn\relax -\fi -%%% From File: tudscr-base.dtx -\RequirePackage{tudscrbase}[\TUDVersion] %%% From File: tudscr-fonts.dtx \newif\if@tud@univers \newif\if@tud@dinbold @@ -107,13 +105,18 @@ \newcommand*\tud@dinbold{0m6} \newif\if@tud@fontspec \TUD@key{fontspec}[true]{% + \PackageWarning{tudscrfonts} + {% + The option key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% } \AtEndOfPackage% {% - \TUD@key{fontspec}[] + \TUD@key{fontspec}[]% {% - \PackageError{tudscrfonts} + \PackageError{tudscrfonts}% {Option `fontspec' too late}{% Option `fontspec' can only be set while loading the\MessageBreak% package `tudscrfonts' @@ -121,66 +124,11 @@ }% \FamilyKeyStateProcessed% }% - \@ifpackageloaded{fontspec}{% - \PackageError{tudscrfonts}{Package `fontspec' too early}{% - When using the option `fontspec' you must not load\MessageBreak% - the package `fontspec' before `tudscrfonts'.% - }% - }{} - \if@tud@fontspec% - \PreventPackageFromLoading[% - \PackageWarning{tudscrfonts}% - {% - You must not load the package `fontspec' as it is\MessageBreak% - loaded automatically at the end of the preamble.\MessageBreak% - If you want to pass options to `fontspec' use\MessageBreak% - `\string\PassOptionsToPackage{<option list>}{fontspec}' - }% - ]{fontspec} - \fi% -} -\AtEndPreamble{% \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@univers.fd}}% - }% - \def\@tempb#1{% - \PackageInfoNoLine{tudscrfonts}{% - `#1' fonts not found for math typesetting% - }% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \def\@tempb#1{% - \PackageWarningNoLine{tudscrfonts}{% - `#1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - Please use on of the installation scripts out of the\MessageBreak% - tudscr-bundle, which suits to your OS or choose a\MessageBreak% - possible encoding. A fallback layout is used% - }% - }% - \fi% - \@tempa{\@tud@universtrue}{\@tempb{Univers}}% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@dinbold.fd}}% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \fi% - \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}% - \if@tud@fontspec% - \UnPreventPackageFromLoading{fontspec}% - \if@tud@univers\if@tud@dinbold% - \PassOptionsToPackage{no-math}{fontspec}% - \fi\fi% \RequirePackage{fontspec}[2014/06/21]% \fi% } +\AfterPackage*{fontspec}{\@tud@fontspectrue} \RequirePackage{textcase}[2004/10/07] \newcommand*\tud@uclcnotmath{% \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% @@ -205,288 +153,575 @@ {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{pdftex}{13},{pdflatex}{13}% + {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@cdfont{0}% \if@atdocument\tud@font@set\fi% - \or% + \or% true \def\tud@cdfont{1}% \if@atdocument\tud@font@set\fi% - \or% + \or% heavy \def\tud@cdfont{2}% \if@atdocument\tud@font@set\fi% - \or% + \or% nodin \renewcommand*\tud@font@heading{\tud@RaggedRight}% - \or% - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright} - \or% - \or% - \or% - \or% + \or% din + \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \or% nohead + \or% head + \or% heavyhead + \or% nomath \TUDoptions{cdmath=false}% - \or% + \or% math \TUDoptions{cdmath=true}% - \or% + \or% upgreek \TUDoptions{slantedgreek=false}% - \or% + \or% slgreek \TUDoptions{slantedgreek=true}% - \or% + \or% fontspec \TUDoptions{fontspec=true}% - \or% + \or% nofontspec \TUDoptions{fontspec=false}% \fi% + \else% + \KOMAoptions{fontsize=#1}% + \ifcase\tud@cdfont\relax% false to true + \def\tud@cdfont{1}% + \if@atdocument\tud@font@set\fi% + \fi% \fi% } -\AtBeginDocument{\tud@font@set}% +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{fontsize}{% + \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \FamilyKeyStateProcessed% +} \bool@lock{@tud@cdmath} \TUD@key{cdmath}[true]{% \TUD@set@numkey{cdmath}{@tempa}{% \TUD@numkey@bool,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% - {upright}{2},{upgreek}{2},{uprightgreek}{2},{uprightGreek}{2},% - {slanted}{3},{slgreek}{3},{slantedgreek}{3},{slantedGreek}{3}% + {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% + {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \TUD@std@ifkey@lock{slantedgreek}{false}% \if@atdocument\tud@font@math@set\fi% - \or% + \or% true \bool@set@lock{@tud@cdmath}{true}% - \TUD@std@ifkey@lock{slantedgreek}{true}% \if@atdocument\tud@font@math@set\fi% - \or + \or% upgreek \TUDoptions{slantedgreek=false}% - \or + \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% } -\newif\if@tud@slantedgreek -\TUD@key@lock{slantedgreek}[true]{% - \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}% +\bool@lock{@tud@slantedgreek} +\TUD@key{slantedgreek}[true]{% + \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \bool@set@lock{@tud@slantedgreek}{#1}% \if@atdocument\tud@font@math@set\fi% \fi% } +\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@key[2]{% +\newcommand*\TUD@deprecated@key[2]{% \PackageWarning{tudscrfonts}% {% The option key `#1' is deprecated.\MessageBreak% - It's recommended to use `#2' instead% + It's recommended to use `#2'\MessageBreak% + instead% }% + \TUDoptions{#2}% } \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{cdfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{tudfonts}[true]{% \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{heavyfont}[true]{% \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{heavyfont}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=heavy}% + \TUD@deprecated@key{heavyfont}{cdfont=heavy}% \else% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% \fi% \fi% } \TUD@key{din}[true]{% \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{din}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{din}{cdfont=din}% \else% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{din=#1}{cdfont=nodin}% \fi% \fi% } \TUD@key{nodin}[true]{% \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{nodin}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{nodin}{cdfont=nodin}% \else% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \fi% + \fi% +} +\TUD@key{noDIN}[true]{% + \TUD@set@ifkey{noDIN}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \else% + \TUD@deprecated@key{noDIN=#1}{cdfont=din}% \fi% \fi% } \TUD@key{sansmath}[true]{% \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{sansmath}{cdmath=true}% \else% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{sansmath=#1}{cdmath=false}% \fi% \fi% } \TUD@key{serifmath}[true]{% \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{serifmath}{cdmath=false}% \else% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{serifmath=#1}{cdmath=true}% \fi% \fi% } -%%% From File: tudscr-fonts.dtx -\TUDoptions{cdfont=true} -\DeclareOption*{\TUDoptions{\CurrentOption}} +\newcommand*\tud@v@comp{\tud@v@last} +\TUD@key{tudscrver}[last]{% + \ifcsvoid{tud@v@#1}{% + \def\tud@v@comp{0}% + \PackageWarningNoLine{tudscrfonts}% + {% + You have set option `tudscrver' to `#1', but\MessageBreak% + this value is not supported. Because of this, the\MessageBreak% + value for `tudscrver' was set to `first'% + }% + \FamilyKeyStateProcessed% + }{% + \PackageInfoNoLine{tudscrfonts}% + {% + Switching compatibility level to `#1'% + }% + \edef\tud@v@comp{\@nameuse{tud@v@#1}}% + \FamilyKeyStateProcessed% + }% +} +\AtEndOfPackage% +{% + \TUD@key{tudscrver}[]{% + \PackageError{tudscrfonts}% + {Option `tudscrver' too late}{% + Option `tudscrver' can only be set while loading the\MessageBreak% + package `tudscrfonts' + but you have tried to set it up later.% + }% + \FamilyKeyStateProcessed% + }% +} +\@namedef{tud@v@first}{0} +\@namedef{tud@v@2.02}{0} +\@namedef{tud@v@v2.02}{0} +\@namedef{tud@v@2.03}{1} +\@namedef{tud@v@v2.03}{1} +\@namedef{tud@v@2.04}{2} +\@namedef{tud@v@v2.04}{2} +\@namedef{tud@v@last}{2} +\newcommand*\tud@ifverlower[1]{% + \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\KOMAoptions{\CurrentOption}} +\TUDExecuteOptions{cdfont=true} \TUDProcessOptions\relax %%% From File: tudscr-fonts.dtx -\AtEndPreamble{% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@font@check{% \if@tud@fontspec% - \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \newcommand*\textuln[1]{{\univln#1}}% - \newcommand*\texturn[1]{{\univrn#1}}% - \newcommand*\textubn[1]{{\univbn#1}}% - \newcommand*\textuxn[1]{{\univxn#1}}% - \newcommand*\textuls[1]{{\univls#1}}% - \newcommand*\texturs[1]{{\univrs#1}}% - \newcommand*\textubs[1]{{\univbs#1}}% - \newcommand*\textuxs[1]{{\univxs#1}}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \PackageInfoNoLine{tudscrfonts}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + }% \else% - \if@tud@univers% - \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% - \else% - \newcommand*\univln{}% - \newcommand*\univrn{}% - \newcommand*\univbn{}% - \newcommand*\univxn{}% - \newcommand*\univls{}% - \newcommand*\univrs{}% - \newcommand*\univbs{}% - \newcommand*\univxs{}% - \fi% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} + \PackageWarningNoLine{tudscrfonts}% + {% + `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + }% \fi% - \ifdef{\sectfont}{}{\let\sectfont\relax}% - \if@tud@fontspec% - \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% - \newcommand*\textdbn[1]{{\dinbn#1}}% + \@tempa{\@tud@universtrue}{\@tempc{Univers}}% + \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \undef\tud@font@check% +} +\newcommand*\tud@font@init{% + \undef\tud@font@init@fontspec% + \undef\tud@font@init@nfss% + \undef\tud@font@init% +} +\newcommand*\tud@font@init@fontspec{% + \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% + \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% + \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% + \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% + \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% + \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% + \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% + \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% + \newcommand*\textuln[1]{{\univln##1}}% + \newcommand*\texturn[1]{{\univrn##1}}% + \newcommand*\textubn[1]{{\univbn##1}}% + \newcommand*\textuxn[1]{{\univxn##1}}% + \newcommand*\textuls[1]{{\univls##1}}% + \newcommand*\texturs[1]{{\univrs##1}}% + \newcommand*\textubs[1]{{\univbs##1}}% + \newcommand*\textuxs[1]{{\univxs##1}}% + \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% + \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% + \newcommand*\textdbn[1]{{\dinbn##1}}% +} +\newcommand*\tud@font@init@nfss{% + \if@tud@univers% + \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \if@tud@dinbold% - \newcommand*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% + \newcommand*\univln{}% + \newcommand*\univrn{}% + \newcommand*\univbn{}% + \newcommand*\univxn{}% + \newcommand*\univls{}% + \newcommand*\univrs{}% + \newcommand*\univbs{}% + \newcommand*\univxs{}% + \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \DeclareTextFontCommand{\textuln}{\univln}% + \DeclareTextFontCommand{\texturn}{\univrn}% + \DeclareTextFontCommand{\textubn}{\univbn}% + \DeclareTextFontCommand{\textuxn}{\univxn}% + \DeclareTextFontCommand{\textuls}{\univls}% + \DeclareTextFontCommand{\texturs}{\univrs}% + \DeclareTextFontCommand{\textubs}{\univbs}% + \DeclareTextFontCommand{\textuxs}{\univxs}% + \if@tud@dinbold% + \newcommand*\dinbn{% + \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% + \mathversion{dinbold}% + }% + \else% + \let\dinbn\sectfont% + \fi% + \newcommand*\textdbn{}% + \DeclareTextFontCommand{\textdbn}{\dinbn}% +} +\newcommand*\cdfont[1]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \fi% +} +\providecommand*\tudfont[1]{\cdfont{#1}} +\newcommand*\textcdfont[2]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \fi% +} +\newcommand*\@cdfont[1]{% + \tud@trimfontname\@tempa{#1}% + \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% + \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% + \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% + \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% + \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% + \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \let\@tempc\relax% + \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + }}}}}}}}}}}}}}% +} +\newcommand*\tud@trimfontname[2]{% + \protected@edef\@tempa{\trim@spaces{#2}}% + \tud@lowerstring{\@tempa}{\@tempa}% + \tud@@trimfontname{ }{}% + \tud@@trimfontname{-}{}% + \tud@@trimfontname{_}{}% + \tud@@trimfontname{~}{}% + \tud@@trimfontname{ce}{}% + \tud@@trimfontname{ff}{}% + \tud@@trimfontname{univers}{}% + \tud@@trimfontname{60}{65}% + \tud@@trimfontname{light}{45}% + \tud@@trimfontname{regular}{55}% + \tud@@trimfontname{bold}{65}% + \tud@@trimfontname{black}{75}% + \tud@@trimfontname{4545}{45}% + \tud@@trimfontname{5555}{55}% + \tud@@trimfontname{6565}{65}% + \tud@@trimfontname{7575}{75}% + \tud@@trimfontname{italic}{oblique}% + \tud@@trimfontname{slanted}{oblique}% + \let#1\@tempa% +} +\newcommand*\tud@@trimfontname[2]{% + \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% + \@expandtwoargs\in@{#1}{\@tempa}% + \@whilesw\ifin@\fi{% + \expandafter\@tempb\@tempa\relax% + \@expandtwoargs\in@{#1}{\@tempa}% + }% +} +\newcommand*\mv@univers{}% +\newcommand*\mv@universbold{}% +\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@math@init{% + \if@tud@fontspec\if@tud@univers\if@tud@dinbold% + \@ifpackagewith{fontspec}{no-math}{}{% + \PackageWarningNoLine{tudscrfonts}% + {% + It's recommended to load package `fontspec' with\MessageBreak% + option `no-math'% }% + }% + \fi\fi\fi% + \if@tud@univers% + \DeclareMathVersion{univers}% + \DeclareMathVersion{universbold}% + \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% + \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% + \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% + \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% + \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% + \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% + \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% + \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% + \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \@ifpackageloaded{amsfonts}{% + \DeclareFontFamily{U}{\tud@univers a}{}% + \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% + \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% + \DeclareFontFamily{U}{\tud@univers b}{}% + \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% + \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% + \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% + }{}% + \fi% + \if@tud@dinbold% + \DeclareMathVersion{dinbold}% + \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% + \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% + \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \fi% + \@ifpackageloaded{unicode-math}{% + \let\tud@font@math@set\relax% + \bool@set@lock{@tud@cdmath}{false}% + }{% + \let\@tempb\relax% + \let\@tempc\relax% + \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% + \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% + \@tempswafalse% + \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% + \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% + \if@tempswa% + \bool@std@lock{@tud@slantedgreek}{true}% + \fi% + \tud@font@greek@loop\tud@font@greek@init% + \tud@font@math@set% + }% + \sbox\z@{\dinbn$ $}% + \undef\tud@font@math@init% +} +\ifbool{@tud@oldscrclass}{% + \let\univln\relax% + \let\univrn\relax% + \let\univbn\relax% + \let\univxn\relax% + \let\univls\relax% + \let\univrs\relax% + \let\univbs\relax% + \let\univxs\relax% + \let\dinbn\relax% + \let\textuln\relax% + \let\texturn\relax% + \let\textubn\relax% + \let\textuxn\relax% + \let\textuls\relax% + \let\texturs\relax% + \let\textubs\relax% + \let\textuxs\relax% + \let\textdbn\relax% + \AtBeginDocument{% + \cmd@restore{rmdefault}% + \cmd@restore{sfdefault}% + \cmd@restore{bfdefault}% + \cmd@restore{mddefault}% + \cmd@restore{familydefault}% + \cmd@restore{seriesdefault}% + \cmd@restore{shapedefault}% + \cmd@restore{rmfamily}% + \cmd@restore{sffamily}% + \cmd@restore{ttfamily}% + }% +}{} +\AtBeginDocument% +{% + \tud@font@check% + \if@tud@fontspec% + \preto\tud@font@init\tud@font@init@fontspec% + \else% + \preto\tud@font@init\tud@font@init@nfss% + \fi% + \ifdef{\sectfont}{}{\let\sectfont\relax}% + \tud@font@init% + \tud@font@set[nomath]% + \tud@font@math@init% +} +\newcommand*\tud@font@greek@init[1]{% + \ifcsdef{up#1}{}{% + \if@tempswa% + \csletcs{up#1}{tud@up#1}% \else% - \let\dinbn\sectfont% + \csletcs{up#1}{#1}% \fi% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% + }% + \ifcsdef{var#1}{}{% + \if@tempswa% + \csletcs{var#1}{#1}% + \else% + \csletcs{var#1}{tud@var#1}% + \fi% + }% +} +\newif\if@tud@mweights +\AfterPackage*{mweights}{\@tud@mweightstrue} +\newcommand*\tud@font@set[1][]{% + \if@tud@mweights% + \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% + \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% + \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% + \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% + \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% + \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% \fi% - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% - \DeclareMathVersion{dinbold}% - \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% - \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}% - \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}% - \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}% - \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}% - \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}% - \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}% - \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}% - \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}% - \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}% - \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}% - \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}% - \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}% - \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}% - \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}% - \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}% - \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}% - \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}% -} -\newcommand*\tud@font@set{% - \ifcase\tud@cdfont\relax% + \ifcase\tud@cdfont\relax% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% @@ -496,8 +731,16 @@ \tud@cmd@restore{familydefault}% \tud@cmd@restore{seriesdefault}% \tud@cmd@restore{shapedefault}% + \if@tud@mweights% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{false}% - \else% + \else% true/heavy \tud@cmd@store{rmdefault}% \tud@cmd@store{sfdefault}% \tud@cmd@store{ttdefault}% @@ -507,9 +750,17 @@ \tud@cmd@store{familydefault}% \tud@cmd@store{seriesdefault}% \tud@cmd@store{shapedefault}% + \if@tud@mweights% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{true}% \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \setsansfont{Univers Light}[% BoldFont = Univers,% ItalicFont = Univers Light Oblique,% @@ -527,7 +778,7 @@ BoldItalicFont = Univers Bold Oblique,% ]% }{}% - \else% + \else% heavy \setsansfont{Univers}[% BoldFont = Univers Bold,% ItalicFont = Univers Oblique,% @@ -543,15 +794,31 @@ \if@tud@univers% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \renewcommand*\bfdefault{m}% \ifboolexpr{bool {@tud@oldclass} or bool {@tud@oldscrclass}}{% \renewcommand*\bfdefault{b}% }{}% \renewcommand*\mddefault{l}% - \else% + \if@tud@mweights% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy \renewcommand*\bfdefault{b}% \renewcommand*\mddefault{m}% + \if@tud@mweights% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% \fi% \fi% @@ -560,8 +827,48 @@ \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% + \if@tud@mweights% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \tud@font@skip@set% + \ifstr{#1}{nomath}{}{\tud@font@math@set}% \normalfont\selectfont% - \tud@font@math@set% +} +\newcommand*\tud@font@skip@set{% + \tud@ifverlower{2.04}{}{% + \ifcase\tud@cdfont\relax% false + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \else% true/heavy + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \fi% + }% +} +\newcommand*\tud@font@skip@@set{% + \setlength{\@tempdimb}{\f@baselineskip}% + \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% + {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% + \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% + {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% + \scr@setlength\bigskipamount{\@tempdimb}% + {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% + \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% + \tud@skip@set\belowcaptionskip{\z@}% + \tud@skip@set\columnsep{1.1\baselineskip}% } \newcommand*\tud@font@math@set{% \if@tud@univers% @@ -570,48 +877,35 @@ \tud@cmd@store{mv@bold}% \let\mv@normal\mv@univers% \let\mv@bold\mv@universbold% + \tud@font@greek@loop\tud@font@greek@set% \else% \tud@cmd@restore{mv@normal}% \tud@cmd@restore{mv@bold}% + \tud@font@greek@loop\tud@font@greek@reset% \fi% \fi% \if@tud@slantedgreek% - \tud@font@greek@slanted% + \tud@font@greek@loop\tud@font@greek@slanted% \else% - \tud@font@greek@upright% + \tud@font@greek@loop\tud@font@greek@upright% \fi% \mathversion{normal}% } -\newcount\tud@font@greek@upGamma -\tud@font@greek@upGamma\Gamma -\newcount\tud@font@greek@offset -\let\@tempa\relax -\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0} -\tud@font@greek@offset\@tempa -\advance\tud@font@greek@offset-\Gamma -\newcommand*\tud@font@greek@slanted{% - \ifnum\Gamma=\tud@font@greek@upGamma\relax\tud@font@greek@changeshape\fi% -} -\newcommand*\tud@font@greek@upright{% - \ifnum\Gamma>\tud@font@greek@upGamma% - \tud@font@greek@offset=-\tud@font@greek@offset% - \tud@font@greek@changeshape% - \tud@font@greek@offset=-\tud@font@greek@offset% - \fi% +\newcommand*\tud@font@greek@set[1]{% + \tud@cmd@store{#1}% + \tud@cmd@store{up#1}% + \tud@cmd@store{var#1}% + \csletcs{#1}{tud@#1}% + \csletcs{up#1}{tud@up#1}% + \csletcs{var#1}{tud@var#1}% } -\newcommand*\tud@font@greek@def[2]{% - \expandafter\@tempcnta\csname #1\endcsname% - \advance\@tempcnta#2% - \expandafter\mathchardef\csname #1\endcsname\@tempcnta% -} -\newcommand*\tud@font@greek@uc{% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% -} -\newcommand*\tud@font@greek@changeshape{% - \@for\@tempa:=\tud@font@greek@uc\do{% - \@expandtwoargs\tud@font@greek@def{\@tempa}{\tud@font@greek@offset}% - }% +\newcommand*\tud@font@greek@reset[1]{% + \tud@cmd@restore{#1}% + \tud@cmd@restore{up#1}% + \tud@cmd@restore{var#1}% } +\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} +\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} \newrobustcmd*\ifdin{% \@tempswafalse% \@expandtwoargs\in@{DINBold}{\f@family}% @@ -623,8 +917,24 @@ \expandafter\@secondoftwo% \fi% } -\AtBeginDocument{% - \ifbool{@tud@oldclass}{% +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% +} +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifdef{\LaTeXraggedright}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }{}% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont} +} +%%% From File: tudscr-comp.dtx +\ifbool{@tud@oldclass}{% + \AtBeginDocument{% \if@tud@fontspec% \DeclareFixedFont{\univLightVII}{\encodingdefault}% {UniversLight}{m}{n}{7}% @@ -683,27 +993,62 @@ \SetSymbolFont{aunLetters}{bold}{OT1}{\tud@univers}{b}{sl}% \DeclareSymbolFont{aunOperators}{OT1}{\tud@univers}{l}{n}% \SetSymbolFont{aunOperators}{bold}{OT1}{\tud@univers}{b}{n}% + \DeclareSymbolFont{aunUpright}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{aunUpright}{bold}{OT1}{\tud@univers}{b}{n}% \DeclareSymbolFontAlphabet{\mathsf}{aunOperators}% \DeclareSymbolFontAlphabet{\mathnormal}{aunLetters}% \DeclareMathAlphabet\mathbf{OT1}{\tud@univers}{b}{n}% \SetMathAlphabet\mathbf{bold}{OT1}{\tud@univers}{b}{n}% \DeclareMathAlphabet\mathit{OT1}{\tud@univers}{l}{sl}% \SetMathAlphabet\mathit{bold}{OT1}{\tud@univers}{l}{sl}% + \@ifpackageloaded{tudfonts}{% + \let\mv@normal\mv@univers% + \let\mv@bold\mv@universbold% + }{}% \fi% \let\dinBold\dinbn% \let\dinfamily\dinbn% - }{}% - \ifbool{@tud@oldscrclass}{% - \cmd@restore{rmdefault}% - \cmd@restore{sfdefault}% - \cmd@restore{bfdefault}% - \cmd@restore{mddefault}% - \cmd@restore{familydefault}% - \cmd@restore{seriesdefault}% - \cmd@restore{shapedefault}% - \cmd@restore{rmfamily}% - \cmd@restore{sffamily}% - \cmd@restore{ttfamily}% + }% +}{} +\@ifclassloaded{tudbook}{% + \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}% + {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}% + \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}% + {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}% + \patchcmd{\section}{\dinBold\Large\bfseries}% + {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}% + \patchcmd{\showtitle}{\dinBold\Huge\bfseries}% + {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}% +}{} +\@ifclassloaded{tudmathposter}{% + \setkomafont{title}{\bfseries\tud@font@heading\Huge}% + \renewcommand*\subtitlefont{\fontseries{m}\tud@font@heading\huge}% + \if@mathevorgabe% + \renewcommand*\sectionfont{\univbn\LARGE}% + \renewcommand*\subsectionfont{\univbn\large}% + \fi% +}{} +\@ifpackageloaded{tudfonts}{% + \let\if@sansmath\if@tudfonts@sansmath% + \renewcommand*\tudfont[1]{\cdfont{#1}}% + \if@sansmath% + \if@tudfonts@eulermath% + \PackageWarningNoLine{tudscrfonts}{% + You're using non-serif fonts in math mode. It's\MessageBreak% + recommended to pass the option `noeulermath' to\MessageBreak% + package `tudfonts'% + }% + \fi% + \fi% +}{% + \newif\if@tudfonts@nodin% + \@ifundefined{if@sansmath}{\newif\if@sansmath}{}% +} +\@ifclassloaded{tudposter}{% + \let\if@sansmath\if@tudposter@sansmath% +}{} +\ifbool{@tud@oldscrclass}{% + \AtBeginDocument{% \DeclareSymbolFontAlphabet{\mathrm}{operators} \if@tud@fontspec% \DeclareFixedFont{\univLightHead}{\encodingdefault}% @@ -718,39 +1063,7 @@ {\tud@univers}{b}{n}{\tud@head@fntsz}% \fi% \fi% - }{}% -} -\AfterPackage*{amsfonts}{% - \DeclareFontFamily{U}{msa}{}% - \DeclareFontShape{U}{msa}{m}{n}{% - <-9>cmbras8% - <9-10>cmbras9% - <10->cmbras10% - }{}% - \DeclareFontFamily{U}{msb}{}% - \DeclareFontShape{U}{msb}{m}{n}{% - <-9>cmbrbs8% - <9-10>cmbrbs9% - <10->cmbrbs10% - }{}% -} -\newcommand*\tud@raggedright{\raggedright} -\newcommand*\tud@RaggedRight{\raggedright} -\AfterPackage*{ragged2e}{% - \ifdef{\LaTeXraggedright}{% - \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }{}% - \renewcommand*\tud@RaggedRight{\RaggedRight}% -} -\@ifclassloaded{tudbook}{% - \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\section}{\dinBold\Large\bfseries}% - {\bfseries\tud@font@heading\Large}{}{\tud@patch@wrn{section}}% - \patchcmd{\showtitle}{\dinBold\Huge\bfseries}% - {\bfseries\tud@font@heading\Huge}{}{\tud@patch@wrn{showtitle}}% + }% }{} \endinput %% diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrman.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrman.cls index d1094d7e3d0..21698058b0c 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrman.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrman.cls @@ -4,13 +4,12 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `class,inherit') -%% tudscr-manual.dtx (with options: `class,identify') +%% tudscr-version.dtx (with options: `class,manual') +%% tudscr-manual.dtx (with options: `class') %% tudscr-base.dtx (with options: `load') %% tudscr-manual.dtx (with options: `class,option') -%% tudscr-base.dtx (with options: `execute,inherit') +%% tudscr-misc.dtx (with options: `class,inherit,execute') %% tudscr-manual.dtx (with options: `class,body') -%% tudscr-misc.dtx (with options: `class,manual') %% %% ============================================================================ %% @@ -57,10 +56,31 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\newcommand*\tudinh@name{tudscrreprt} +\newcommand*\TUD@ProvidesWrapperClass[3]{% + \newcommand*\TUDClassName@Parent{#2}% + \newcommand*\TUDClassName{#1}% + \ProvidesClass{#1}[% + 2015/07/02 v2.04 TUD-KOMA-Script + ^^J#3 (#2)% + ]% + \TUD@ClassInfo% +} +\providecommand*\TUD@ClassInfo{% + \typeout{+---------------------------------------------------------------} + \typeout{| The Corporate Design of Technische Universitaet Dresden} + \typeout{| Class: \TUDClassName} + \typeout{| Version: \TUDVersion} + \typeout{| Author: Falk Hanisch (\tudscrmail)} + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} + \typeout{+---------------------------------------------------------------} +} +\NeedsTeXFormat{LaTeX2e} +\TUD@ProvidesWrapperClass{tudscrman}{tudscrreprt}{% + internal manual class% +} \@ifundefined{TUDScript}{% \DeclareRobustCommand{\TUDScript}{% \ifdin{TUD-KOMA-SCRIPT}{% @@ -69,11 +89,6 @@ }% }{} %%% From File: tudscr-manual.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesClass{tudscrman}[% - 2015/06/11 v2.03a TUD-KOMA-Script - class (internal manual)% -] %%% From File: tudscr-base.dtx \RequirePackage{tudscrbase}[\TUDVersion] %%% From File: tudscr-manual.dtx @@ -98,7 +113,7 @@ captions=tableheading,% numbers=noenddot,% cd=color,% -}{\tudinh@name} +}{\TUDClassName@Parent} \PassOptionsToPackage{automark}{scrlayer-scrpage} \DeclareOption{final}{\let\tudfinalflag\relax} \DeclareOption{print}{\let\tudprintflag\relax} @@ -109,21 +124,21 @@ \PassOptionsToPackage{hidelinks}{hyperref}% }{}% } -%%% From File: tudscr-base.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\tudinh@name}} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@Parent}} \TUDProcessOptions\relax -\LoadClass{\tudinh@name} +\LoadClass{\TUDClassName@Parent} %%% From File: tudscr-manual.dtx \RequirePackage{xparse}[2013/12/31] \RequirePackage{textcomp}[2005/09/27] -\RequirePackage{fixltx2e}[2014/06/10] \RequirePackage{setspace}[2011/12/19] \setstretch{1.1}\recalctypearea \RequirePackage{babel}[2014/03/24] \AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} \AtBeginDocument{% \@ifpackageloaded{csquotes}{}{% - \ClassWarning{\tudcls@name}{Package `csquotes' not loaded}% + \ClassWarning% + {tudscrman}{Package `csquotes' not loaded}% \providecommand\enquote[1]{\glqg#1\grqq{}}% }% } @@ -218,52 +233,52 @@ )% } \write\tud@write@i{(markup-range :sep "--")} -\write\tud@write@i{(merge-rule "\[(.*)\]" "" :eregexp)} \write\tud@write@i{% - (define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% +(merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% +} +\write\tud@write@i{% +(define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% } -\write\tud@write@i{(merge-to "important" "default")} -\write\tud@write@i{(merge-to "?" "default")} \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "declare"^^J% \space\space :open "\string\textbf{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "declare"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "!"^^J% \space\space :open "\string\textbf{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "!"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "important"^^J% \space\space :open "\string\textsl{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "important"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "?"^^J% \space\space :open "\string\textsl{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "?"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "default"^^J% \space\space :open "\string\hyperpage{"^^J% \space\space :close "}"^^J% -\space\space :attr "default"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "deprecated"^^J% \space\space :open "\string\deprecatedhyperpage{"^^J% \space\space :close "}"^^J% -\space\space :attr "deprecated"^^J% )% } \write\tud@write@i{% @@ -322,15 +337,16 @@ \hyperref{tutorials/#1.pdf}{\jobname}{tutorials:#1}{\textsbn{#1.pdf}#2}% } \NewDocumentCommand\Tutorial{smd||}{% - \ifnum\pdfshellescape=1\relax% + \ifnum\pdfshellescape=\@ne\relax% \filemodCmp{tutorials/#2.pdf}{tutorials/#2.tex}{}{% \immediate\openout\tud@write@i=tutorials.sh% \immediate\write\tud@write@i{% cd tutorials^^J% pdflatex -shell-escape #2^^J% + pdflatex #2^^J% biber #2^^J% + pdflatex -shell-escape #2^^J% makeglossaries #2^^J% - pdflatex #2^^J% pdflatex #2% }% \immediate\closeout\tud@write@i% @@ -356,10 +372,9 @@ } \newcommand*\IncludeExample[1]{% \lstinputlisting[style=tudscr]{examples/#1}% - \ifnum\pdfshellescape=1\relax% + \ifnum\pdfshellescape=\@ne\relax% \filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{% \immediate\write18{% - pdflatex -shell-escape -output-directory examples examples/#1.tex pdflatex -output-directory examples examples/#1.tex pdflatex -output-directory examples examples/#1.tex }% @@ -401,7 +416,9 @@ }% \@tempswafalse \ifdefvoid{\tud@todo@type}{\@tempswatrue}{}% - \IfValueT{#2}{\ifstr{#2}{\tud@todo@type}{\@tempswatrue}{}}% + \IfValueT{#2}{% + \@for\@tempa:=#2\do{\ifstr{\@tempa}{\tud@todo@type}{\@tempswatrue}{}}% + }% \if@tempswa% \vskip.8ex% \IfValueT{#4}{% @@ -423,7 +440,8 @@ \reversemarginpar \newrobustcmd*\bsc{\@backslashchar} \newcommand*\tud@shellescape@wrn{% - \ClassWarning{\tudcls@name}{% + \ClassWarning% + {tudscrman}{% You have to recompile this document with\MessageBreak% activated shell escape option% }% @@ -641,7 +659,7 @@ \newcommand*\CheckIndexFormat[2]{% \IfBooleanT{#1}{% \IfValueT{#2}{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% You've used the starred version so no entry for\MessageBreak% the index is created and the optional argument\MessageBreak% |#2| will be ignored% @@ -665,7 +683,7 @@ \if@declare% \if@openindex% \IfValueT{#3}{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% It is not possible to use any cross-reference\MessageBreak% shorthand like '#3' within the arguments of\MessageBreak% the environment `Declaration'% @@ -677,32 +695,38 @@ \manualhyperdef{\@tempa}% }% \else% - \ifx\@IndexFormat\@empty\else% - \ClassWarning{\tudcls@name}{% - It is not possible to use any indexing format\MessageBreak% - like |\@IndexFormat| within the arguments of the\MessageBreak% - environment `Declaration'% - }% - \fi% - \if@stareddeclare% - \manualhyperdef'{\@tempa}% - \else% + \expandafter\IfBooleanTF\expandafter{\@IndexFormat}{% \manualhyperdef{\@tempa}% - \fi% - \@HyperIndex{#5}{#6}{#7}{#8}{#9}{(declare}% + }{% + \ifx\@IndexFormat\@empty\else% + \ClassWarning{tudscrman}{% + It is not possible to use any indexing format\MessageBreak% + like |\@IndexFormat| within the arguments of the\MessageBreak% + environment `Declaration'% + }% + \fi% + \if@stareddeclare% + \manualhyperdef'{\@tempa}% + \else% + \manualhyperdef{\@tempa}% + \fi% + \@HyperIndex{#5}{#6}{#7}{#8}{#9}{(declare}% + }% \fi% \if@stareddeclare\else% #1\IfValueT{#2}{#2}% \fi% \else% \if@deprecated\else% - \@HyperIndex{#5}{#6}{#7}{#8}{#9}{declare)}% + \expandafter\IfBooleanF\expandafter{\@IndexFormat}{% + \@HyperIndex{#5}{#6}{#7}{#8}{#9}{declare)}% + }% \fi% \fi% \else% \ifx\@IndexFormat\relax% - \ClassError{\tudcls@name}{\string\SetIndexFormat\space unused}{% - It seems you have forgotten to use \string\SetIndexFormat% + \ClassError{tudscrman}{\string\SetIndexFormat\space unused}{% + It seems you have forgotten to use \string\SetIndexFormat.% }% \else% \expandafter\IfBooleanF\expandafter{\@IndexFormat}{% @@ -715,7 +739,7 @@ \def\@tempc{\mbox{\hyperref{}{\jobname}{\@tempa}{#1}\IfValueT{#2}{#2}}}% \IfValueT{#3}{% \def\@tempb{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% You've used the unknown cross-reference\MessageBreak% shorthand '#3'. Only 'auto', 'page'\MessageBreak% and 'full' as well as 'none' are valid% @@ -733,12 +757,14 @@ \@tempc\@tempb% }{% \IfValueT{#3}{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% No cross-reference created, label \@tempa\space is missing% }% }% \IfValueTF{#4}{% - \href{http://www.ctan.org/pkg/#4}{\mbox{#1\IfValueT{#2}{#2}}}% + \ifstr{#4}{}{\mbox{#1\IfValueT{#2}{#2}}}{% + \href{http://www.ctan.org/pkg/#4}{\mbox{#1\IfValueT{#2}{#2}}}% + }% }{% \mbox{#1\IfValueT{#2}{#2}}% }% @@ -841,7 +867,7 @@ }% }{% \ifx\@declarationlist\relax\else% - \ClassError{\tudcls@name}{\string\printdeclarationlist\space is missing}{% + \ClassError{tudscrman}{\string\printdeclarationlist\space is missing}{% \string\@declarationlist\space is not empty. Did you forget\MessageBreak% to print this list with \string\printdeclarationlist?% }% @@ -864,7 +890,7 @@ }% \IfValueT{#2}{% \if@additionallist% - \ClassWarning{\tudcls@name}{% + \ClassWarning{tudscrman}{% It is not possible to use the optional argument\MessageBreak% of \string\printdeclarationlist due to the given\MessageBreak% additional information as argument of the\MessageBreak% @@ -897,7 +923,7 @@ \if@presetlist% \qquad% \texttt{% - \begin{tabular}{l}% + \begin{tabular}{l@{}}% \forlistloop\@tempa{\@presetlist}% \end{tabular}% }% @@ -930,7 +956,7 @@ \@stareddeclarefalse% }{% \ifx\@changedatdeclarelist\relax\else% - \ClassError{\tudcls@name}{\string\printchangedatlist\space is missing}{% + \ClassError{tudscrman}{\string\printchangedatlist\space is missing}{% \string\@changedatdeclarelist\space is not empty. Did you\MessageBreak% forget to print this list with \string\printchangedatlist?% }% @@ -960,13 +986,16 @@ topsep=.5\baselineskipglue,labelwidth=\columnwidth,labelsep=0pt,% font=\normalfont\ttfamily,before*=\before@values% } +\newcommand*\itemvalues{} \newcommand*\before@values{% - \let\item@values\item% - \let\item\tud@item% + \ifdefvoid{\itemvalues}{% + \let\itemvalues\item% + \let\item\tud@item% + \setlength\changedatskip{-\baselineskip}% + }{}% } \newcommand*\itemfalse{\def\tud@item@val{false/off/no}\item} \newcommand*\itemtrue{\def\tud@item@val{true/on/yes}\item} -\newcommand*\item@values{} \newcommand*\tud@item@val{} \newcommand*\tud@item@add{} \newcommand*\tud@item@format{} @@ -989,7 +1018,7 @@ {\edef\@tempa{\tud@item@val/#1}}% }% \def\tud@item@val{}% - \ifstr{\@tempa}{}{\item@values}{\tud@@@item}% + \ifstr{\@tempa}{}{\itemvalues}{\tud@@@item}% } \newcommand*\tud@@@item[1][]{% \ifblank{#1}{}{% @@ -999,7 +1028,7 @@ \appto\tud@item@add{~#1}% \fi% }% - \item@values[% + \itemvalues[% \tud@item@format{\@tempa:}% \ifx\tud@item@add\relax\else% {\normalfont\space\footnotesize\tud@item@add}% @@ -1030,9 +1059,10 @@ \ifdefvoid{\itempackages}{% \let\itempackages\item% \let\item\tud@item@pkg% + \setlength\changedatskip{-\baselineskip}% }{}% } -\NewDocumentCommand\tud@item@pkg{od()}{% +\NewDocumentCommand\tud@item@pkg{od()od''}{% \itempackages[{% \IfValueT{#1}{% \manualhyperdef{files:#1}% @@ -1042,6 +1072,30 @@ \def\@tempa{http://www.ctan.org/pkg/#1}% }% \href{\@tempa}{\Package{#1}'none'|!|}% + \IfValueT{#3}{% + \quad(% + \let\@tempb\relax% + \@for\@tempa:=#3\do{% + \@tempb% + \manualhyperdef{files:\@tempa}% + \expandafter\Package\expandafter{\@tempa}'none'|!|% + \def\@tempb{, }% + }% + )% + }% + \IfValueT{#4}{% + \quad(% + \let\@tempb\relax% + \@for\@tempa:=#4\do{% + \@tempb% + \manualhyperdef{files:\@tempa}% + \href{http://www.ctan.org/pkg/\@tempa}{% + \expandafter\Package\expandafter{\@tempa}'none'|!|% + }% + \def\@tempb{, }% + }% + )% + }% }% }]% } @@ -1085,7 +1139,8 @@ }% \fi% } -\NewDocumentCommand\ChangedAt{sO{\z@}mO{Allgemein}}{% +\newlength\changedatskip +\NewDocumentCommand\ChangedAt{sO{\changedatskip}mO{Allgemein}}{% \ChangedAt@Process[#1]{#2}[#4]{#3}% } \newcommand*\@changedatlist{} @@ -1203,7 +1258,7 @@ \if@listsorted% \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% \else% - \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<0\relax% + \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax% \ifx\@tempb\@empty% \expandafter\edef\expandafter\@tempb\expandafter{% #1,\@tempa% @@ -1250,7 +1305,9 @@ } \newcommand*\PrintIndexPrologue[1]{\long\gdef\@printindexprologue{#1}} \newcommand*\@printindexprologue{} -\newcommand*\@printindexskip{\ifnum\imki@columns>\@ne\vspace{-\multicolsep}\fi} +\newcommand*\@printindexskip{% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% +} \newcommand*\@printindex[1][]{% \pagebreak[3]% \ifblank{#1}{% @@ -1302,7 +1359,6 @@ \renewrobustcmd*\seealso[2]{% \ifstr{#1}{*}{\emph{\alsoname}~#2}{\emph{\alsoname}~#1}% } -%%% From File: tudscr-misc.dtx \RequirePackage{xspace}[2009/10/20] \xspaceaddexceptions{"=} \newcommand*\vTUDScript{} @@ -1311,8 +1367,31 @@ \edef\@tempa{\TUDVersion}% \expandafter\@tempb\@tempa\relax? ? \relax\relax% } -\newcommand*\vKOMAScript{v3.12\xspace} +\newcommand*\vKOMAScript{v3.17\xspace} \RequirePackage{scrhack}[2014/02/27] +\newcommand*\CD{Corporate Design\xspace} +\newcommand*\CDs{Corporate Designs\xspace} +\newcommand*\TUD{Technische Universit\"at Dresden\xspace} +\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\DDC{% + \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em + N\kern.1em-\kern.1em concept}\xspace% +} +\AfterPackage*{babel}{% + \@expandtwoargs\in@{,english,}{,\bbl@loaded,}% + \ifin@% + \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} + \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} + \fi +} +\newcommand*\Univers{\textubn{Univers}\xspace} +\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} +\newcommand*\textsbn{} +\newcommand*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape} +\newcommand*\textsbs{} +\newcommand*\sbsfont{\sffamily\bfseries\slshape} +\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape} \newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}} \NewDocumentCommand\Forum{s}{% \IfBooleanTF{#1}{% @@ -1322,18 +1401,6 @@ }% \xspace% } -\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scriptsize\url{#1}}} -\NewDocumentCommand\scrguide{s}{% - \def\@tempc{% - http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% - }% - \IfBooleanTF{#1}{% - \href{\@tempc}{\File{scrguide.pdf}}% - }{% - \hrfn{\@tempc}{\File{scrguide.pdf}}% - }% - \xspace% -} \NewDocumentCommand\GitHubRepo{s}{% \def\@tempc{% https://github.com/tud-cd/tudscr/releases% @@ -1349,29 +1416,18 @@ F\"ur die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verf\"ugbar. } \newlength\tempdim -\newcommand*\CD{Corporate Design\xspace} -\newcommand*\CDs{Corporate Designs\xspace} -\newcommand*\TUD{Technische Universit\"at Dresden\xspace} -\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} -\newcommand*\DDC{% - \mbox{D\kern.05em R\kern.05em E\kern.05em S\kern.05em D\kern.05em E\kern.05em - N\kern.1em-\kern.1em concept}\xspace% -} -\AfterPackage*{babel}{% - \@expandtwoargs\in@{,english,}{,\bbl@loaded,}% - \ifin@% - \renewcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} - \renewcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} - \fi +\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scalebox{0.97}{\url{#1}}}} +\NewDocumentCommand\scrguide{s}{% + \def\@tempc{% + http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% + }% + \IfBooleanTF{#1}{% + \href{\@tempc}{\File{scrguide.pdf}}% + }{% + \hrfn{\@tempc}{\File{scrguide.pdf}}% + }% + \xspace% } -\newcommand*\Univers{\textubn{Univers}\xspace} -\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} -\newcommand*\sbnfont{\sffamily\bfseries\upshape} -\newcommand*\sbsfont{\sffamily\bfseries\slshape} -\newcommand*\textsbn{} -\newcommand*\textsbs{} -\DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape} -\DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape} \endinput %% %% End of file `tudscrman.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrman.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrman.sty index c57ab622c9e..41c74f9a63d 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrman.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrman.sty @@ -4,13 +4,12 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,manual,tudscr') +%% tudscr-version.dtx (with options: `package,manual') %% tudscr-manual.dtx (with options: `package,identify') %% tudscr-base.dtx (with options: `load') %% tudscr-manual.dtx (with options: `package,option') -%% tudscr-base.dtx +%% tudscr-misc.dtx %% tudscr-manual.dtx (with options: `package,body') -%% tudscr-misc.dtx (with options: `package,manual') %% %% ============================================================================ %% @@ -57,15 +56,15 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\@ifundefined{tudcls@name}{% +\@ifundefined{TUDClassName}{% \PackageError{% - tudscrmanual% + tudscrman% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrartcl, tudscrreprt, tudscrbook)% + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).% } \endinput }{} @@ -77,9 +76,9 @@ }% }{} %%% From File: tudscr-manual.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrman}[% - 2015/06/11 v2.03a TUD-KOMA-Script + 2015/07/02 v2.04 TUD-KOMA-Script package (internal tutorials)% ] %%% From File: tudscr-base.dtx @@ -101,24 +100,23 @@ \KOMAoptions{headings=small} \TUDoptions{cd=true,cdfoot=true} \AfterPackage*{pstricks}{% - \ifnum\pdfshellescape=1\relax - \RequirePackage{auto-pst-pdf}[2009/04/26] - \else - \RequirePackage[off]{auto-pst-pdf}[2009/04/26] - \fi + \ifnum\pdfshellescape=\@ne\relax\else% + \PassOptionsToPackage{off}{auto-pst-pdf}% + \fi% + \RequirePackage{auto-pst-pdf}[2009/04/26]% } -%%% From File: tudscr-base.dtx +%%% From File: tudscr-misc.dtx %%% From File: tudscr-manual.dtx \RequirePackage{xparse}[2013/12/31] \RequirePackage{textcomp}[2005/09/27] -\RequirePackage{fixltx2e}[2014/06/10] \RequirePackage{setspace}[2011/12/19] \setstretch{1.1}\recalctypearea \RequirePackage{babel}[2014/03/24] \AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]} \AtBeginDocument{% \@ifpackageloaded{csquotes}{}{% - \ClassWarning{\tudcls@name}{Package `csquotes' not loaded}% + \PackageWarning% + {tudscrman}{Package `csquotes' not loaded}% \providecommand\enquote[1]{\glqg#1\grqq{}}% }% } @@ -206,52 +204,52 @@ )% } \write\tud@write@i{(markup-range :sep "--")} -\write\tud@write@i{(merge-rule "\[(.*)\]" "" :eregexp)} \write\tud@write@i{% - (define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% +(merge-rule "\@backslashchar[(.*)\@backslashchar]" "" :eregexp)% +} +\write\tud@write@i{% +(define-attributes (("declare" "!" "important" "?" "deprecated" "default")))% } -\write\tud@write@i{(merge-to "important" "default")} -\write\tud@write@i{(merge-to "?" "default")} \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "declare"^^J% \space\space :open "\string\textbf{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "declare"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "!"^^J% \space\space :open "\string\textbf{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "!"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "important"^^J% \space\space :open "\string\textsl{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "important"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "?"^^J% \space\space :open "\string\textsl{\string\hyperpage{"^^J% \space\space :close "}}"^^J% -\space\space :attr "?"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "default"^^J% \space\space :open "\string\hyperpage{"^^J% \space\space :close "}"^^J% -\space\space :attr "default"^^J% )% } \write\tud@write@i{% (markup-locref^^J% +\space\space :attr "deprecated"^^J% \space\space :open "\string\deprecatedhyperpage{"^^J% \space\space :close "}"^^J% -\space\space :attr "deprecated"^^J% )% } \write\tud@write@i{% @@ -314,7 +312,9 @@ }% \@tempswafalse \ifdefvoid{\tud@todo@type}{\@tempswatrue}{}% - \IfValueT{#2}{\ifstr{#2}{\tud@todo@type}{\@tempswatrue}{}}% + \IfValueT{#2}{% + \@for\@tempa:=#2\do{\ifstr{\@tempa}{\tud@todo@type}{\@tempswatrue}{}}% + }% \if@tempswa% \vskip.8ex% \IfValueT{#4}{% @@ -336,7 +336,8 @@ \reversemarginpar \newrobustcmd*\bsc{\@backslashchar} \newcommand*\tud@shellescape@wrn{% - \ClassWarning{\tudcls@name}{% + \PackageWarning% + {tudscrman}{% You have to recompile this document with\MessageBreak% activated shell escape option% }% @@ -576,7 +577,7 @@ \noindent\ignorespaces% } \newcommand*\InputCode{\input{\jobname-temp.tex}} -\ifnum\pdfshellescape=1\relax% +\ifnum\pdfshellescape=\@ne\relax% \ActivateWarningFilters[Tutorial]% \begin{filecontents*}{tutorial-temp.tex} \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} @@ -595,7 +596,7 @@ \DeactivateWarningFilters[Tutorial]% \fi \newcommand*\tud@tut@pdf{% - \ifnum\pdfshellescape=1\relax% + \ifnum\pdfshellescape=\@ne\relax% \immediate\write18{% pdflatex -jobname=\jobname-temp tutorial-temp.tex pdflatex -jobname=\jobname-temp tutorial-temp.tex @@ -613,7 +614,7 @@ \IfFileExists{#2-temp.pdf}{% \@tempcnta\z@% \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% - \ifnum\@tempcnta>\z@% + \ifnum\@tempcnta>\z@\relax% \setlength\@tempdima{\textwidth}% \divide\@tempdima\@tempcnta% \advance\@tempcnta\m@ne% @@ -626,7 +627,7 @@ \IfValueT{#1}{#1}% } \fbox{\expandafter\includegraphics\expandafter[\@tempb]{#2-temp.pdf}}% - \ifnum\@tempcnta>\z@\hfill\fi% + \ifnum\@tempcnta>\z@\relax\hfill\fi% }% \fi% }{% @@ -705,7 +706,9 @@ \@printindex[files]% \endgroup% } -\newcommand*\@printindexskip{\ifnum\imki@columns>\@ne\vspace{-\multicolsep}\fi} +\newcommand*\@printindexskip{% + \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% +} \newcommand*\@printindex[1][]{% \pagebreak[3]% \indexprologue[\@printindexskip]{}% @@ -717,7 +720,6 @@ \renewrobustcmd*\seealso[2]{% \ifstr{#1}{*}{\emph{\alsoname}~#2}{\emph{\alsoname}~#1}% } -%%% From File: tudscr-misc.dtx \RequirePackage{xspace}[2009/10/20] \xspaceaddexceptions{"=} \newcommand*\vTUDScript{} @@ -726,29 +728,8 @@ \edef\@tempa{\TUDVersion}% \expandafter\@tempb\@tempa\relax? ? \relax\relax% } -\newcommand*\vKOMAScript{v3.12\xspace} +\newcommand*\vKOMAScript{v3.17\xspace} \RequirePackage{scrhack}[2014/02/27] -\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}} -\NewDocumentCommand\Forum{s}{% - \IfBooleanTF{#1}{% - \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% - }{% - \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}% - }% - \xspace% -} -\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scriptsize\url{#1}}} -\NewDocumentCommand\scrguide{s}{% - \def\@tempc{% - http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% - }% - \IfBooleanTF{#1}{% - \href{\@tempc}{\File{scrguide.pdf}}% - }{% - \hrfn{\@tempc}{\File{scrguide.pdf}}% - }% - \xspace% -} \newcommand*\CD{Corporate Design\xspace} \newcommand*\CDs{Corporate Designs\xspace} \newcommand*\TUD{Technische Universit\"at Dresden\xspace} @@ -766,12 +747,33 @@ } \newcommand*\Univers{\textubn{Univers}\xspace} \newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} -\newcommand*\sbnfont{\sffamily\bfseries\upshape} -\newcommand*\sbsfont{\sffamily\bfseries\slshape} \newcommand*\textsbn{} -\newcommand*\textsbs{} +\newcommand*\sbnfont{\sffamily\bfseries\upshape} \DeclareTextFontCommand\textsbn{\sffamily\bfseries\upshape} +\newcommand*\textsbs{} +\newcommand*\sbsfont{\sffamily\bfseries\slshape} \DeclareTextFontCommand\textsbs{\sffamily\bfseries\slshape} +\newcommand*\Attention[1]{\marginnote{\fbox{Achtung!}}\emph{#1}} +\NewDocumentCommand\Forum{s}{% + \IfBooleanTF{#1}{% + \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + }{% + \hrfn{http://latex.wcms-file3.tu-dresden.de/phpBB3/}{TUD-\LaTeX-Forum}% + }% + \xspace% +} +\newcommand*\hrfn[2]{\href{#1}{#2}\footnote{\scalebox{0.97}{\url{#1}}}} +\NewDocumentCommand\scrguide{s}{% + \def\@tempc{% + http://mirrors.ctan.org/macros/latex/contrib/koma-script/doc/scrguide.pdf% + }% + \IfBooleanTF{#1}{% + \href{\@tempc}{\File{scrguide.pdf}}% + }{% + \hrfn{\@tempc}{\File{scrguide.pdf}}% + }% + \xspace% +} \endinput %% %% End of file `tudscrman.sty'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls b/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls index b56c900ad86..a78a7e48c8d 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrreprt.cls @@ -11,19 +11,19 @@ %% tudscr-layout.dtx (with options: `class,report,option') %% tudscr-frontmatter.dtx (with options: `class,report,option') %% tudscr-title.dtx (with options: `class,report,option') -%% tudscr-misc.dtx (with options: `class,report,option') %% tudscr-comp.dtx (with options: `class,report,option') -%% tudscr-base.dtx (with options: `execute') +%% tudscr-misc.dtx (with options: `class,report,option') +%% tudscr-misc.dtx (with options: `class,execute') +%% tudscr-base.dtx (with options: `class,body') %% tudscr-fonts.dtx (with options: `class,body') -%% tudscr-color.dtx (with options: `class,body') %% tudscr-fields.dtx (with options: `class,body') %% tudscr-locale.dtx (with options: `class,report,body') %% tudscr-pagestyle.dtx (with options: `class,report,body') %% tudscr-layout.dtx (with options: `class,report,body') %% tudscr-frontmatter.dtx (with options: `class,report,body') %% tudscr-title.dtx (with options: `class,report,body') -%% tudscr-misc.dtx (with options: `class,report,body') %% tudscr-comp.dtx (with options: `class,report,body') +%% tudscr-misc.dtx (with options: `class,report,body') %% %% ============================================================================ %% @@ -70,22 +70,29 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\newcommand*\cls@name{report} -\newcommand*\scrcls@name{scrreprt} -\newcommand*\tudcls@name{tudscrreprt} -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesClass{\tudcls@name}[% - 2015/06/11 v2.03a TUD-KOMA-Script - document class (\cls@name)% -] -\typeout{The Corporate Design of Technische Universitaet Dresden} -\typeout{Class: \tudcls@name} -\typeout{Version: \TUDVersion} -\typeout{Author: Falk Hanisch (\tudscrmail)} -\typeout{http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} +\newcommand*\TUD@ProvidesClass[3]{% + \newcommand*\TUDClassName@KOMA{#2}% + \@ifundefined{TUDClassName@Parent}{\newcommand*\TUDClassName{#1}}{}% + \ProvidesClass{#1}[% + 2015/07/02 v2.04 TUD-KOMA-Script + ^^J#3 (#2)% + ]% + \@ifundefined{TUDClassName@Parent}{\TUD@ClassInfo}{}% +} +\providecommand*\TUD@ClassInfo{% + \typeout{+---------------------------------------------------------------} + \typeout{| The Corporate Design of Technische Universitaet Dresden} + \typeout{| Class: \TUDClassName} + \typeout{| Version: \TUDVersion} + \typeout{| Author: Falk Hanisch (\tudscrmail)} + \typeout{| Forum: http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} + \typeout{+---------------------------------------------------------------} +} +\NeedsTeXFormat{LaTeX2e} +\TUD@ProvidesClass{tudscrreprt}{scrreprt}{document class} \@ifundefined{TUDScript}{% \DeclareRobustCommand{\TUDScript}{% \ifdin{TUD-KOMA-SCRIPT}{% @@ -97,7 +104,7 @@ \RequirePackage{tudscrbase}[\TUDVersion] %%% From File: tudscr-fonts.dtx \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The package `tudscrfonts' must not be used with\MessageBreak% a TUD-KOMA-Script class% }% @@ -108,74 +115,30 @@ \newcommand*\tud@dinbold{0m6} \newif\if@tud@fontspec \TUD@key{fontspec}[true]{% + \ClassWarning{\TUDClassName}% + {% + The option key `fontspec' is deprecated.\MessageBreak% + You should load the package `fontspec' manually% + }% \TUD@set@ifkey{fontspec}{@tud@fontspec}{#1}% } \AtEndOfClass% {% - \TUD@key{fontspec}[] + \TUD@key{fontspec}[]% {% - \ClassError{\tudcls@name} + \ClassError{\TUDClassName}% {Option `fontspec' too late}{% Option `fontspec' can only be set while loading the\MessageBreak% - class `\tudcls@name' + class `\TUDClassName' but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% \if@tud@fontspec% - \PreventPackageFromLoading[% - \ClassWarning{\tudcls@name}% - {% - You must not load the package `fontspec' as it is\MessageBreak% - loaded automatically at the end of the preamble.\MessageBreak% - If you want to pass options to `fontspec' use\MessageBreak% - `\string\PassOptionsToPackage{<option list>}{fontspec}' - }% - ]{fontspec} - \fi% -} -\AtEndPreamble{% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@univers.fd}}% - }% - \def\@tempb#1{% - \ClassInfoNoLine{\tudcls@name}{% - `#1' fonts not found for math typesetting% - }% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}% - }% - \def\@tempb#1{% - \ClassWarningNoLine{\tudcls@name}{% - `#1' fonts not found for encoding `\encodingdefault'.\MessageBreak% - Please use on of the installation scripts out of the\MessageBreak% - tudscr-bundle, which suits to your OS or choose a\MessageBreak% - possible encoding. A fallback layout is used% - }% - }% - \fi% - \@tempa{\@tud@universtrue}{\@tempb{Univers}}% - \if@tud@fontspec% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{OT1\tud@dinbold.fd}}% - }% - \else% - \edef\@tempa{% - \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}% - }% - \fi% - \@tempa{\@tud@dinboldtrue}{\@tempb{DIN Bold}}% - \if@tud@fontspec% - \UnPreventPackageFromLoading{fontspec}% - \if@tud@univers\if@tud@dinbold% - \PassOptionsToPackage{no-math}{fontspec}% - \fi\fi% \RequirePackage{fontspec}[2014/06/21]% \fi% } +\AfterPackage*{fontspec}{\@tud@fontspectrue} \RequirePackage{textcase}[2004/10/07] \newcommand*\tud@uclcnotmath{% \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% @@ -228,77 +191,104 @@ {upgreek}{10},{upright}{10},{uprightgreek}{10},{uprightGreek}{10},% {slgreek}{11},{slanted}{11},{slantedgreek}{11},{slantedGreek}{11},% {fontspec}{12},{luatex}{12},{lualatex}{12}{xetex}{12},{xelatex}{12},% - {nofontspec}{13},{pdftex}{13},{pdflatex}{13}% + {nofontspec}{13},{nfss}{13},{pdftex}{13},{pdflatex}{13}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@cdfont{0}% \if@atdocument\tud@font@set\fi% - \or% + \or% true \def\tud@cdfont{1}% \if@atdocument\tud@font@set\fi% - \or% + \or% heavy \def\tud@cdfont{2}% \if@atdocument\tud@font@set\fi% - \or% + \or% nodin \renewcommand*\tud@font@heading{\tud@RaggedRight}% - \or% - \renewcommand*\tud@font@heading{\dinbn\tud@raggedright} - \or% + \or% din + \renewcommand*\tud@font@heading{\dinbn\tud@raggedright}% + \or% nohead \TUDoptions{cdhead=false}% - \or% + \or% head \TUDoptions{cdhead=true}% - \or% + \or% heavyhead \TUDoptions{cdhead=heavy}% - \or% + \or% nomath \TUDoptions{cdmath=false}% - \or% + \or% math \TUDoptions{cdmath=true}% - \or% + \or% upgreek \TUDoptions{slantedgreek=false}% - \or% + \or% slgreek \TUDoptions{slantedgreek=true}% - \or% + \or% fontspec \TUDoptions{fontspec=true}% - \or% + \or% nofontspec \TUDoptions{fontspec=false}% \fi% + \else% + \KOMAoptions{fontsize=#1}% + \ifcase\tud@cdfont\relax% false to true + \def\tud@cdfont{1}% + \if@atdocument\tud@font@set\fi% + \fi% \fi% } -\AtBeginDocument{\tud@font@set}% +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{fontsize}{% + \AtEndOfFamilyOptions{\if@atdocument\tud@font@skip@set\fi}% + \FamilyKeyStateProcessed% +} \bool@lock{@tud@cdmath} \TUD@key{cdmath}[true]{% \TUD@set@numkey{cdmath}{@tempa}{% \TUD@numkey@bool,% {serifmath}{0},{serif}{0},{nosansmath}{0},{nosans}{0},% {sansmath}{1},{sans}{1},% - {upright}{2},{upgreek}{2},{uprightgreek}{2},{uprightGreek}{2},% - {slanted}{3},{slgreek}{3},{slantedgreek}{3},{slantedGreek}{3}% + {upgreek}{2},{upright}{2},{uprightgreek}{2},{uprightGreek}{2},% + {slgreek}{3},{slanted}{3},{slantedgreek}{3},{slantedGreek}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \bool@set@lock{@tud@cdmath}{false}% - \TUD@std@ifkey@lock{slantedgreek}{false}% \if@atdocument\tud@font@math@set\fi% - \or% + \or% true \bool@set@lock{@tud@cdmath}{true}% - \TUD@std@ifkey@lock{slantedgreek}{true}% \if@atdocument\tud@font@math@set\fi% - \or + \or% upgreek \TUDoptions{slantedgreek=false}% - \or + \or% slgreek \TUDoptions{slantedgreek=true}% \fi% \fi% } -\newif\if@tud@slantedgreek -\TUD@key@lock{slantedgreek}[true]{% - \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}% +\bool@lock{@tud@slantedgreek} +\TUD@key{slantedgreek}[true]{% + \TUD@set@ifkey{slantedgreek}{@tud@slantedgreek}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \bool@set@lock{@tud@slantedgreek}{#1}% \if@atdocument\tud@font@math@set\fi% \fi% } +\TUD@key{slantedGreek}[true]{\TUDoptions{slantedgreek=#1}} %%% From File: tudscr-pagestyle.dtx +\newcommand*\tud@ps@list{} +\newcommand*\tud@iftudps[3]{% + \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% +} +\newif\if@tud@ddc@internal +\newcommand*\tud@clearpage@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{\clearpage}{}% + \fi\fi% +} +\newcommand*\tud@pagestyle@iftudps{% + \if@tud@ddc@internal\else\if@atdocument% + \tud@iftudps{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi\fi% +} \newcommand*\tud@ddc@switch{} \edef\tud@ddc@switch{% \TUD@numkey@bool,% @@ -309,88 +299,72 @@ {blue}{6},{HKS41}{6},{cdblue}{6},{cddarkblue}{6},% {white}{7},{cdwhite}{7}% } -\newcommand*\tud@ddc@save{} -\newif\if@tud@ddc@save -\@tud@ddc@savetrue +\newif\if@tud@ddc@auto \newcommand*\tud@ddc{0} -\newif\if@tud@ddc@autoset \TUD@key{ddc}[true]{% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddc}{tud@ddc}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \ifcase\tud@ddc\relax% - \@tud@ddc@autosetfalse% + \if@tud@ddc@internal% + \@tud@ddc@autofalse% \else% - \@tud@ddc@autosettrue% + \@tud@ddc@autotrue% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddcfoot=false}% + \@tud@ddc@internalfalse% \fi% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@head{0} \TUD@key{ddchead}[true]{% - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@head\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddchead}{tud@ddc@head}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@head\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% - \ifcase\tud@ddc@head\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddcfoot=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@foot{0} \TUD@key{ddcfoot}[true]{% - \if@tud@ddc@save\let\tud@ddc@save\tud@ddc@foot\fi% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% \TUD@set@numkey{ddcfoot}{tud@ddc@foot}{\tud@ddc@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@save% - \begingroup% - \let\tud@ddc@foot\tud@ddc@save% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \endgroup% - \fi% - \ifcase\tud@ddc@foot\relax% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% - \else% - \@tud@ddc@savefalse% - \TUDoptions{ddc=false}% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% \TUDoptions{ddchead=false}% - \@tud@ddc@savetrue% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% \fi% \fi% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% } \newcommand*\tud@ddc@check{% \let\@tempa\tud@ddc@head% \let\@tempb\tud@ddc@foot% - \if@tud@ddc@autoset% - \ifx\tud@@headlogo\@empty% + \if@tud@ddc@auto% + \ifdefvoid{\@headlogo}{% \let\@tempa\tud@ddc% \let\@tempb\z@% - \else% + }{% \let\@tempa\z@% \let\@tempb\tud@ddc% - \fi% + }% \fi% - \iftudscrverlower{2.03}{% - \ifcase\@tempb\relax\ifx\tud@@footlogo\@empty\else\let\@tempb\m@ne\fi\fi% + \tud@ifverlower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\@footlogo}{}{\let\@tempb\m@ne}% + \fi% }{}% } -\newcommand*\iftudpagestyle[3]{% - \xifinlist{\GetRealPageStyle{#1}}{\tud@ps@list}{#2}{#3}% -} -\newcommand*\tud@ps@list{} -\forcsvlist{\listadd\tud@ps@list}{% - tudheadings,plain.tudheadings,empty.tudheadings% -} \newlength\tud@dim@extrabottommargin \TUD@key{extrabottommargin}{% \TUD@set@lengthkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% @@ -399,7 +373,7 @@ \fi% } \cs@lock{tud@head@font}{0} -\newcommand*\tud@head@bar{0} +\cs@lock{tud@head@bar}{0} \bool@lock{@tud@head@widebar} \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% @@ -412,34 +386,38 @@ {colorlite}{4},{litecolor}{4},{colourlite}{4},{litecolour}{4},% {colorlight}{4},{lightcolor}{4},{colourlight}{4},{lightcolour}{4},% {pale}{4},{colorpale}{4},{palecolor}{4},{colourpale}{4},{palecolour}{4},% - {bicolor}{5},{bicolour}{5},{twocolor}{5},{twocolour}{5},% - {bichrome}{5},{bichromatic}{5},{dichrome}{5},{dichromatic}{5},% - {color}{5},{colour}{5},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5},% - {textwidth}{6},{slim}{6},{slimhead}{6},{nowide}{6},{nowidehead}{6},% - {paperwidth}{7},{wide}{7},{widehead}{7}% + {colorbar}{5},{barcolor}{5},{colourbar}{5},{barcolour}{5},% + {bicolor}{6},{bicolour}{6},{twocolor}{6},{twocolour}{6},% + {bichrome}{6},{bichromatic}{6},{dichrome}{6},{dichromatic}{6},% + {color}{6},{colour}{6},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6},% + {textwidth}{7},{slim}{7},{slimhead}{7},{nowide}{7},{nowidehead}{7},% + {paperwidth}{8},{wide}{8},{widehead}{8}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@head@font}{0}% - \or% + \or% true \cs@set@lock{tud@head@font}{1}% - \or% + \or% heavy \cs@set@lock{tud@head@font}{2}% - \or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \or% nocolor + \cs@set@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% color + \cs@set@lock{tud@head@bar}{3}% + \or% textwidth \bool@set@lock{@tud@head@widebar}{false}% - \or% + \or% paperwidth \bool@set@lock{@tud@head@widebar}{true}% \fi% \fi% } -\newif\if@tud@footcolor +\TUD@AfterPackage@Set{scrlayer-scrpage} +\newif\if@tud@foot@colored \TUD@key{cdfoot}[true]{% \TUD@set@numkey{cdfoot}{@tempa}{% \TUD@numkey@bool,% @@ -450,13 +428,13 @@ {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@restore{scrheadings}% \tud@ps@restore{plain.scrheadings}% \tud@font@koma@unset{pageheadfoot}% }% - \or% + \or% true \TUD@AfterPackage{scrlayer-scrpage}{% \tud@ps@store{scrheadings}% \tud@ps@store{plain.scrheadings}% @@ -467,11 +445,12 @@ {\footnotesize\headmark}% \if@twoside\ifodd\value{page}\quad\pagemark\fi\else\quad\pagemark\fi% }% + \ifx\@mkdouble\@gobble\else\KOMAoptions{automark}\fi% }% - \or% - \@tud@footcolorfalse% - \or% - \@tud@footcolortrue% + \or% nocolor + \@tud@foot@coloredfalse% + \or% color + \@tud@foot@coloredtrue% \fi% \else% \TUDoptions{extrabottommargin=#1}% @@ -521,8 +500,9 @@ \TUD@set@numkey@lock{cdgeometry}{tud@geometry}{% \TUD@numkey@bool,% {typearea}{0},% - {tud}{1},{asymmetric}{1},{cd}{1},% + {cd}{1},{tud}{1},{asymmetric}{1},% {symmetric}{2},{centred}{2},{centered}{2},% + {normal}{2},{standard}{2},{std}{2},% {twoside}{3},{balanced}{3}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -541,58 +521,65 @@ {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% - {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% - {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% - {color}{4},{colour}{4},% - {full}{5},{colorfull}{5},{fullcolor}{5},{colourfull}{5},{fullcolour}{5}% + {colorbar}{3},{barcolor}{3},{colourbar}{3},{barcolour}{3},% + {bicolor}{4},{bicolour}{4},{twocolor}{4},{twocolour}{4},% + {bichrome}{4},{bichromatic}{4},{dichrome}{4},{dichromatic}{4},% + {color}{5},{colour}{5},% + {full}{6},{colorfull}{6},{fullcolor}{6},{colourfull}{6},{fullcolour}{6}% } \newcommand*\tud@cd{0} \TUD@key{cd}[true]{% \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \cs@std@lock{tud@layout@cover}{0}% \cs@std@lock{tud@layout@title}{0}% \cs@std@lock{tud@layout@part}{0}% \cs@std@lock{tud@layout@chapter}{0}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% true \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{1}% \cs@std@lock{tud@layout@part}{1}% \cs@std@lock{tud@layout@chapter}{1}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% litecolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{2}% \cs@std@lock{tud@layout@part}{2}% \cs@std@lock{tud@layout@chapter}{2}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% barcolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{3}% \cs@std@lock{tud@layout@part}{3}% \cs@std@lock{tud@layout@chapter}{3}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% bicolor \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{4}% \cs@std@lock{tud@layout@part}{4}% \cs@std@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{true}% - \or% + \TUD@std@ifkey@lock{chapterpage}{false}% + \or% color \cs@std@lock{tud@layout@cover}{1}% \cs@std@lock{tud@layout@title}{5}% \cs@std@lock{tud@layout@part}{5}% \cs@std@lock{tud@layout@chapter}{5}% \TUD@std@ifkey@lock{chapterpage}{true}% + \or% full + \cs@std@lock{tud@layout@cover}{1}% + \cs@std@lock{tud@layout@title}{6}% + \cs@std@lock{tud@layout@part}{6}% + \cs@std@lock{tud@layout@chapter}{6}% + \TUD@std@ifkey@lock{chapterpage}{true}% \fi% \if@atdocument% \tud@layout@process% \else% - \ifcase\tud@cd\relax% + \ifcase\tud@cd\relax% false \TUD@std@numkey@lock{cdgeometry}{false}% - \else% + \else% !false \TUD@std@numkey@lock{cdgeometry}{true}% \fi% \fi% @@ -601,18 +588,20 @@ \TUD@key{cdcover}[true]{% \TUD@set@numkey{cdcover}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@cover}{0}% - \or% + \or% true \cs@set@lock{tud@layout@cover}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@cover}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@cover}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@cover}{4}% - \or% + \or% color \cs@set@lock{tud@layout@cover}{5}% + \or% full + \cs@set@lock{tud@layout@cover}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -620,18 +609,20 @@ \TUD@key{cdtitle}[true]{% \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@title}{0}% - \or% + \or% true \cs@set@lock{tud@layout@title}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@title}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@title}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@title}{4}% - \or% + \or% color \cs@set@lock{tud@layout@title}{5}% + \or% full + \cs@set@lock{tud@layout@title}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -639,18 +630,20 @@ \TUD@key{cdpart}[true]{% \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@part}{0}% - \or% + \or% true \cs@set@lock{tud@layout@part}{1}% - \or% + \or% litecolor \cs@set@lock{tud@layout@part}{2}% - \or% + \or% barcolor \cs@set@lock{tud@layout@part}{3}% - \or% + \or% bicolor \cs@set@lock{tud@layout@part}{4}% - \or% + \or% color \cs@set@lock{tud@layout@part}{5}% + \or% full + \cs@set@lock{tud@layout@part}{6}% \fi% \if@atdocument\tud@layout@process\fi% \fi% @@ -658,51 +651,31 @@ \TUD@key{cdchapter}[true]{% \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \cs@set@lock{tud@layout@chapter}{0}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% true \cs@set@lock{tud@layout@chapter}{1}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% litecolor \cs@set@lock{tud@layout@chapter}{2}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% barcolor \cs@set@lock{tud@layout@chapter}{3}% \TUD@std@ifkey@lock{chapterpage}{false}% - \or% + \or% bicolor \cs@set@lock{tud@layout@chapter}{4}% - \TUD@std@ifkey@lock{chapterpage}{true}% - \or% + \TUD@std@ifkey@lock{chapterpage}{false}% + \or% color \cs@set@lock{tud@layout@chapter}{5}% \TUD@std@ifkey@lock{chapterpage}{true}% + \or% full + \cs@set@lock{tud@layout@chapter}{6}% + \TUD@std@ifkey@lock{chapterpage}{true}% \fi% \if@atdocument\tud@layout@process\fi% \fi% } -\newcommand*\tud@font@heading@size{} -\AtEndOfClass{\let\tud@font@heading@size\size@part} -\DefineFamilyMember{KOMA} -\DefineFamilyKey{KOMA}{headings}{% - \AtEndOfFamilyOptions{% - \let\tud@font@heading@size\size@part% - \if@atdocument% - \tud@layout@process% - \ifcase\tud@layout@part\relax\else% - \tud@font@koma@reset{part}% - \tud@font@koma@reset{partnumber}% - \fi% - \ifcase\tud@layout@chapter\relax\else% - \tud@font@koma@reset{chapter}% - \tud@font@koma@reset{chapterprefix}% - \tud@font@koma@reset{section}% - \tud@font@koma@reset{subsection}% - \tud@font@koma@reset{subsubsection}% - \tud@font@koma@reset{minisec}% - \fi% - \fi% - }% -} \newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% @@ -734,9 +707,9 @@ \ifcsdef{ps@#1}{% \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% }{% - \ClassError{\tudcls@name}{`#1' is no valid pagestyle}{% + \ClassError{\TUDClassName}{`#1' is no valid pagestyle}{% You tried to use `#1' as a pagestyle for option\MessageBreak% - `cleardoublespecialpage', but it was never defined% + `cleardoublespecialpage', but it was never defined.% }% }% }% @@ -774,111 +747,180 @@ \newif\if@tud@clearcolor \TUD@ifkey{clearcolor}{@tud@clearcolor} \TUD@ifkey{clearcolour}{@tud@clearcolor} +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% + \@namedef{tud@font@koma@#1}{#2\nobreak}% +} +\newcommand*\tud@font@koma@reset[1]{% + \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% +} +\newcommand*\tud@font@koma@unset[1]{% + \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% +} +\newcommand*\tud@font@heading@size{} +\AtEndOfClass{\let\tud@font@heading@size\size@part} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{headings}{% + \AtEndOfFamilyOptions{% + \let\tud@font@heading@size\size@part% + \if@atdocument% + \tud@layout@process% + \ifcase\tud@layout@part\relax\else% !false + \tud@font@koma@reset{part}% + \tud@font@koma@reset{partnumber}% + \fi% + \ifcase\tud@layout@chapter\relax\else% !false + \tud@font@koma@reset{chapter}% + \tud@font@koma@reset{chapterprefix}% + \tud@font@koma@reset{section}% + \tud@font@koma@reset{subsection}% + \tud@font@koma@reset{subsubsection}% + \tud@font@koma@reset{minisec}% + \fi% + \fi% + }% +} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% {chapter}{3},{chap}{3},{addchap}{3},% {new}{3},{standard}{3},{heading}{3},% - {totoc}{4},{toc}{4},{totoclevelup}{4},{toclevelup}{4},{levelup}{4},% - {totocleveldown}{5},{tocleveldown}{5},{leveldown}{5},% - {nottotoc}{6},{notoc}{6},% - {markboth}{7},{mark}{7},% - {nomarkboth}{8},{nomark}{8},% - {one}{9},{simple}{9},{single}{9},% - {multi}{10},{multiple}{10},{all}{10},{two}{10},{both}{10},{double}{10},% - {nofil}{11},{nofill}{11},{novfil}{11},{novfill}{11},% - {fil}{12},{fill}{12},{vfil}{12},{vfill}{12}% + {single}{4},{one}{4},{simple}{4},% + {multiple}{5},{multi}{5},{all}{5},{aggregate}{5},% + {two}{5},{both}{5},{double}{5},% + {nofil}{6},{nofill}{6},{novfil}{6},{novfill}{6},% + {fil}{7},{fill}{7},{vfil}{7},{vfill}{7},% + {markboth}{8},{mark}{8},% + {nomarkboth}{9},{nomark}{9},% + {nottotoc}{10},{notoc}{10},% + {totoc}{11},{toc}{11},{totoclevelup}{11},{toclevelup}{11},{levelup}{11},% + {totocleveldown}{12},{tocleveldown}{12},{leveldown}{12},% + {tocmultiple}{13},{tocmulti}{13},{tocall}{13},{tocaggregate}{13},% + {totocmultiple}{13},{totocmulti}{13},{totocall}{13},{totocaggregate}{13}% } \newcommand*\tud@abstract@level{0} -\bool@lock{@tud@abstract@toc} -\newif\if@tud@abstract@toc@leveldown -\newif\if@tud@abstract@markboth +\cs@lock{tud@abstract@toc}{0} \newif\if@tud@abstract@multi +\@tud@abstract@multitrue \newif\if@tud@abstract@fil \@tud@abstract@filtrue +\newif\if@tud@abstract@markboth \TUD@key{abstract}[true]{% \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@abstract@level{0}% - \bool@std@lock{@tud@abstract@toc}{false}% - \or% + \cs@std@lock{tud@abstract@toc}{0}% + \or% true \def\tud@abstract@level{1}% - \bool@std@lock{@tud@abstract@toc}{false}% - \or% + \cs@std@lock{tud@abstract@toc}{0}% + \or% section \def\tud@abstract@level{2}% - \bool@std@lock{@tud@abstract@toc}{true}% - \or% + \cs@std@lock{tud@abstract@toc}{1}% + \or% chapter \def\tud@abstract@level{3}% - \bool@std@lock{@tud@abstract@toc}{true}% - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@abstract@toc}{true}% - \@tud@abstract@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@abstract@toc}{false}% - \or% - \@tud@abstract@markbothtrue% - \or% - \@tud@abstract@markbothfalse% - \or% + \cs@std@lock{tud@abstract@toc}{1}% + \or% single \@tud@abstract@multifalse% - \or% + \or% multiple \@tud@abstract@multitrue% - \or% + \or% nofil \@tud@abstract@filfalse% - \or% + \or% fil \@tud@abstract@filtrue% + \or% markboth + \@tud@abstract@markbothtrue% + \or% nomarkboth + \@tud@abstract@markbothfalse% + \or% nottotoc + \cs@set@lock{tud@abstract@toc}{0}% + \or% totoc + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \else% + \cs@set@lock{tud@abstract@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@abstract@toc<\thr@@\relax% + \cs@set@lock{tud@abstract@toc}{2}% + \else% + \cs@set@lock{tud@abstract@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@abstract@toc=\z@\relax% + \cs@set@lock{tud@abstract@toc}{1}% + \fi% + \ifnum\tud@abstract@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@abstract@toc}{% + \the\numexpr\tud@abstract@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } \newcommand*\tud@declaration@level{1} -\bool@lock{@tud@declaration@toc} -\newif\if@tud@declaration@toc@leveldown -\newif\if@tud@declaration@markboth +\cs@lock{tud@declaration@toc}{0} \newif\if@tud@declaration@multi -\newif\if@tud@declaration@fil \@tud@declaration@multitrue +\newif\if@tud@declaration@fil \@tud@declaration@filtrue +\newif\if@tud@declaration@markboth \TUD@key{declaration}[true]{% \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% + \ifcase\@tempa\relax% false \def\tud@declaration@level{0}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% true \def\tud@declaration@level{1}% - \bool@std@lock{@tud@declaration@toc}{false}% - \or% + \cs@std@lock{tud@declaration@toc}{0}% + \or% section \def\tud@declaration@level{2}% - \bool@std@lock{@tud@declaration@toc}{true}% - \or% + \cs@std@lock{tud@declaration@toc}{1}% + \or% chapter \def\tud@declaration@level{3}% - \bool@std@lock{@tud@declaration@toc}{true}% - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldownfalse% - \or% - \bool@set@lock{@tud@declaration@toc}{true}% - \@tud@declaration@toc@leveldowntrue% - \or% - \bool@set@lock{@tud@declaration@toc}{false}% - \or% - \@tud@declaration@markbothtrue% - \or% - \@tud@declaration@markbothfalse% - \or% + \cs@std@lock{tud@declaration@toc}{1}% + \or% single \@tud@declaration@multifalse% - \or% + \or% multiple \@tud@declaration@multitrue% - \or% + \or% nofil \@tud@declaration@filfalse% - \or% + \or% fil \@tud@declaration@filtrue% + \or% markboth + \@tud@declaration@markbothtrue% + \or% nomarkboth + \@tud@declaration@markbothfalse% + \or% nottotoc + \cs@set@lock{tud@declaration@toc}{0}% + \or% totoc + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \else% + \cs@set@lock{tud@declaration@toc}{3}% + \fi% + \or% totocleveldown + \ifnum\tud@declaration@toc<\thr@@\relax% + \cs@set@lock{tud@declaration@toc}{2}% + \else% + \cs@set@lock{tud@declaration@toc}{4}% + \fi% + \or% totocmutliple + \ifnum\tud@declaration@toc=\z@\relax% + \cs@set@lock{tud@declaration@toc}{1}% + \fi% + \ifnum\tud@declaration@toc<\thr@@\relax% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@declaration@toc}{% + \the\numexpr\tud@declaration@toc+2\relax% + }% + }\@tempa% + \fi% \fi% \fi% } @@ -887,115 +929,97 @@ \TUD@key@lock{subjectthesis}[true]{% \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% } -%%% From File: tudscr-misc.dtx -\newcommand*\TUD@AfterPackage[2]{% - \if@atdocument#2\else\AfterPackage!{#1}{#2}\fi% -} -\newif\if@tud@symbolheadings -\TUD@key{footnotes}{% - \TUD@set@numkey{footnotes}{@tempa}{% - {nosymbolheadings}{0},{numberheadings}{0},% - {symbolheadings}{1}% - }{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifcase\@tempa\relax% - \@tud@symbolheadingsfalse% - \or% - \@tud@symbolheadingstrue% - \fi% - \fi% -} -\newif\if@tud@bookmarks -\TUD@ifkey{tudbookmarks}{@tud@bookmarks} %%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@key[2]{% - \ClassWarning{\tudcls@name}% +\newcommand*\TUD@deprecated@key[2]{% + \ClassWarning{\TUDClassName}% {% The option key `#1' is deprecated.\MessageBreak% - It's recommended to use `#2' instead% + It's recommended to use `#2'\MessageBreak% + instead% }% + \TUDoptions{#2}% } \TUD@key{cdfonts}[true]{% \TUD@set@ifkey{cdfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{cdfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{cdfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{tudfonts}[true]{% \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfonts}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=true}% \else% - \TUDoptions{cdfont=false}% + \TUD@deprecated@key{tudfonts=#1}{cdfont=false}% \fi% \fi% } \TUD@key{heavyfont}[true]{% \TUD@set@ifkey{heavyfont}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{heavyfont}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=heavy}% + \TUD@deprecated@key{heavyfont}{cdfont=heavy}% \else% - \TUDoptions{cdfont=true}% + \TUD@deprecated@key{heavyfont=#1}{cdfont=true}% \fi% \fi% } \TUD@key{din}[true]{% \TUD@set@ifkey{din}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{din}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{din}{cdfont=din}% \else% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{din=#1}{cdfont=nodin}% \fi% \fi% } \TUD@key{nodin}[true]{% \TUD@set@ifkey{nodin}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{nodin}{cdfont}% \if@tempswa% - \TUDoptions{cdfont=nodin}% + \TUD@deprecated@key{nodin}{cdfont=nodin}% \else% - \TUDoptions{cdfont=din}% + \TUD@deprecated@key{nodin=#1}{cdfont=din}% + \fi% + \fi% +} +\TUD@key{noDIN}[true]{% + \TUD@set@ifkey{noDIN}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa% + \TUD@deprecated@key{noDIN}{cdfont=nodin}% + \else% + \TUD@deprecated@key{noDIN=#1}{cdfont=din}% \fi% \fi% } \TUD@key{sansmath}[true]{% \TUD@set@ifkey{sansmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{sansmath}{cdmath=true}% \else% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{sansmath=#1}{cdmath=false}% \fi% \fi% } \TUD@key{serifmath}[true]{% \TUD@set@ifkey{serifmath}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{sansmath}{cdmath}% \if@tempswa% - \TUDoptions{cdmath=false}% + \TUD@deprecated@key{serifmath}{cdmath=false}% \else% - \TUDoptions{cdmath=true}% + \TUD@deprecated@key{serifmath=#1}{cdmath=true}% \fi% \fi% } -\TUD@key{geometry}[true]{% - \tud@deprecated@key{geometry}{cdgeometry}% - \TUDoptions{cdgeometry=#1}% -} +\TUD@key{geometry}[true]{\TUD@deprecated@key{geometry=#1}{cdgeometry=#1}} \TUD@key{barfont}[true]{% \TUD@set@numkey{barfont}{@tempa}{% \TUD@numkey@bool,% @@ -1005,35 +1029,32 @@ {heavy}{2},{heavyfont}{2}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{barfont}{cdhead}% - \ifcase\@tempa\relax% - \TUDoptions{cdhead=false}% - \or% - \TUDoptions{cdhead=true}% - \or% - \TUDoptions{cdhead=heavy}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{barfont=#1}{cdhead=false}% + \or% true + \TUD@deprecated@key{barfont=#1}{cdhead=true}% + \or% heavy + \TUD@deprecated@key{barfont=#1}{cdhead=heavy}% \fi% \fi% } \TUD@key{widehead}[true]{% \TUD@set@ifkey{widehead}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{widehead}{cdhead}% \if@tempswa% - \TUDoptions{cdhead=paperwidth}% + \TUD@deprecated@key{widehead}{cdhead=paperwidth}% \else% - \TUDoptions{cdhead=textwidth}% + \TUD@deprecated@key{widehead=#1}{cdhead=textwidth}% \fi% \fi% } \TUD@key{tudfoot}[true]{% \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{tudfoot}{cdfoot}% \if@tempswa% - \TUDoptions{cdfoot=true}% + \TUD@deprecated@key{tudfoot}{cdfoot=true}% \else% - \TUDoptions{cdfoot=false}% + \TUD@deprecated@key{tudfoot=#1}{cdfoot=false}% \fi% \fi% } @@ -1041,27 +1062,26 @@ \TUD@set@numkey{color}{@tempa}{% \TUD@numkey@bool,% {nocolor}{0},{nocolour}{0},{monochrome}{0},{monochromatic}{0},% - {lite}{1},{light}{1},{pale}{1},% - {colorlite}{1},{litecolor}{1},{colourlite}{1},{litecolour}{1},% - {colorlight}{1},{lightcolor}{1},{colourlight}{1},{lightcolour}{1},% - {colorpale}{1},{palecolor}{1},{colourpale}{1},{palecolour}{1},% - {bicolor}{2},{bicolour}{2},{twocolor}{2},{twocolour}{2},% - {bichrome}{2},{bichromatic}{2},{dichrome}{2},{dichromatic}{2},% - {color}{3},{colour}{3},% + {color}{1},{colour}{1},% + {lite}{2},{light}{2},{pale}{2},% + {colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {bicolor}{3},{bicolour}{3},{twocolor}{3},{twocolour}{3},% + {bichrome}{3},{bichromatic}{3},{dichrome}{3},{dichromatic}{3},% {full}{4},{colorfull}{4},{fullcolor}{4},{colourfull}{4},{fullcolour}{4}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \tud@deprecated@key{color}{cd}% - \ifcase\@tempa\relax% - \TUDoptions{cd=true}% - \or% - \TUDoptions{cd=pale}% - \or% - \TUDoptions{cd=bicolor}% - \or% - \TUDoptions{cd=color}% - \or% - \TUDoptions{cd=fullcolor}% + \ifcase\@tempa\relax% false + \TUD@deprecated@key{color=#1}{cd=true}% + \or% true + \TUD@deprecated@key{color=#1}{cd=color}% + \or% litecolor + \TUD@deprecated@key{color=#1}{cd=pale}% + \or% bicolor + \TUD@deprecated@key{color=#1}{cd=bicolor}% + \or% full + \TUD@deprecated@key{color=#1}{cd=fullcolor}% \fi% \fi% } @@ -1070,198 +1090,445 @@ \TUD@key{tudscrver}[last]{% \ifcsvoid{tud@v@#1}{% \def\tud@v@comp{0}% - \ClassWarningNoLine{\tudcls@name}{% + \ClassWarningNoLine{\TUDClassName}% + {% You have set option `tudscrver' to `#1', but\MessageBreak% this value is not supported. Because of this, the\MessageBreak% value for `tudscrver' was set to `first'% }% \FamilyKeyStateProcessed% }{% - \ClassInfoNoLine{\tudcls@name}{% + \ClassInfoNoLine{\TUDClassName}% + {% Switching compatibility level to `#1'% }% \edef\tud@v@comp{\@nameuse{tud@v@#1}}% \FamilyKeyStateProcessed% }% } -\AtEndOfClass{% +\AtEndOfClass% +{% \TUD@key{tudscrver}[]{% - \ClassError{\tudcls@name}{Option `tudscrver' too late}{% + \ClassError{\TUDClassName}% + {Option `tudscrver' too late}{% Option `tudscrver' can only be set while loading the\MessageBreak% - class `\tudcls@name' but you have tried to set it up later.% + class `\TUDClassName' + but you have tried to set it up later.% }% \FamilyKeyStateProcessed% }% - \ifcsdef{scr@v@3.12}{% + \ifcsdef{scr@v@3.17}{% \ifnum\scr@compatibility<\@nameuse{scr@v@3.12}\relax% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% KOMA-Script compatibility level too low% }{% \TUDVersion\space has to be used at least with\MessageBreak% - KOMA-Script `version=v3.12'% + KOMA-Script compatibility option `version=v3.12'.% }% \fi% }{% - \ClassError{\tudcls@name}{% - outdated version of KOMA-Script% + \ClassError{\TUDClassName}{% + KOMA-Script v3.17 is required% }{% - \TUDVersion\space has to be used with KOMA-Script v3.12 or newer% + \TUDVersion\space has to be used with KOMA-Script v3.17\MessageBreak% + at least. You're using \KOMAScriptVersion% }% }% } \@namedef{tud@v@first}{0} \@namedef{tud@v@2.02}{0} +\@namedef{tud@v@v2.02}{0} \@namedef{tud@v@2.03}{1} -\@namedef{tud@v@last}{1} -\newcommand*\iftudscrverlower[1]{% +\@namedef{tud@v@v2.03}{1} +\@namedef{tud@v@2.04}{2} +\@namedef{tud@v@v2.04}{2} +\@namedef{tud@v@last}{2} +\newcommand*\tud@ifverlower[1]{% \ifnum\tud@v@comp<\@nameuse{tud@v@#1}\relax% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% } -%%% From File: tudscr-base.dtx -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\scrcls@name}} -\TUDExecuteOptions{cd,cdfont,tudbookmarks} +%%% From File: tudscr-misc.dtx +\newif\if@tud@symbolheadings +\TUD@key{footnotes}{% + \TUD@set@numkey{footnotes}{@tempa}{% + {nosymbolheadings}{0},{numberheadings}{0},% + {symbolheadings}{1}% + }{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% nosymbolheadings + \@tud@symbolheadingsfalse% + \or% symbolheadings + \@tud@symbolheadingstrue% + \fi% + \fi% +} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +%%% From File: tudscr-misc.dtx +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\TUDClassName@KOMA}} +\TUDExecuteOptions{cd=true,cdfont=true,tudbookmarks=true} \TUDProcessOptions\relax -\LoadClass{\scrcls@name}[2013/12/19] +\LoadClass{\TUDClassName@KOMA}[2015/04/23] +%%% From File: tudscr-base.dtx \RequirePackage{environ}[2013/04/01] \AtEndPreamble{% \@ifpackageloaded{graphicx}{}{% \@ifpackageloaded{graphics}{% - \ClassWarningNoLine{\tudcls@name}{% - The package `graphics' was superseded by `graphicx'% + \ClassWarningNoLine{\TUDClassName}{% + The package `graphics' was superseded by `graphicx',\MessageBreak% + which is automatically loaded% }% }{}% }% \RequirePackage{graphicx}[1999/02/16]% \RequirePackage{tudscrcolor}[\TUDVersion]% } +\newcommand*\TUD@parameter@defaulthandler[2]{% + \def\@tempa{#2}% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% + \ifxnumber{\@tempb}{% + \TUD@parameter@set{#1}{columns=\@tempb}% + }{% + \TUD@parameter@set{#1}{language=\@tempb}% + }% + \fi% + }% +} +\cs@lock{tud@multicols}{1} +\newcommand*\tud@multicols@check{% + \ifdef{\multicols}{}{% + \ifnum\tud@multicols>\@ne\relax% + \ClassWarning{\TUDClassName}{% + The option `columns=\tud@multicols' is only supported,\MessageBreak% + when package `multicol' is loaded% + }% + \cs@set@lock{tud@multicols}{1}% + \fi% + }% +} %%% From File: tudscr-fonts.dtx -\AtEndPreamble{% +\newcommand*\tud@font@greek@loop[1]{% + \@for\@tempa:={% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% + }\do{#1{\@tempa}}% +} +\newcommand*\tud@font@greek@declare[1]{% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@up#1\endcsname}% + {\noexpand\mathalpha}{operators}{\the\@tempcnta}% + }\@tempb% + \edef\@tempb{% + \noexpand\DeclareMathSymbol{\csname tud@var#1\endcsname}% + {\noexpand\mathalpha}{letters}{\the\@tempcnta}% + }\@tempb% + \csletcs{tud@#1}{tud@up#1}% + \advance \@tempcnta by 1% +} +\@tempcnta=\z@\relax +\tud@font@greek@loop\tud@font@greek@declare +\newcommand*\tud@font@check{% \if@tud@fontspec% - \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% - \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% - \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% - \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% - \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% - \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% - \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% - \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% - \newcommand*\textuln[1]{{\univln#1}}% - \newcommand*\texturn[1]{{\univrn#1}}% - \newcommand*\textubn[1]{{\univbn#1}}% - \newcommand*\textuxn[1]{{\univxn#1}}% - \newcommand*\textuls[1]{{\univls#1}}% - \newcommand*\texturs[1]{{\univrs#1}}% - \newcommand*\textubs[1]{{\univbs#1}}% - \newcommand*\textuxs[1]{{\univxs#1}}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{OT1\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{OT1\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \ClassInfoNoLine{\TUDClassName}% + {% + `##1' fonts for math typesetting not found\MessageBreak% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual% + }% + }% \else% - \if@tud@univers% - \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% - \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% - \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% - \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% - \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% - \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% - \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% - \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% - \else% - \newcommand*\univln{}% - \newcommand*\univrn{}% - \newcommand*\univbn{}% - \newcommand*\univxn{}% - \newcommand*\univls{}% - \newcommand*\univrs{}% - \newcommand*\univbs{}% - \newcommand*\univxs{}% - \fi% - \newcommand*\textuln{}% - \newcommand*\texturn{}% - \newcommand*\textubn{}% - \newcommand*\textuxn{}% - \newcommand*\textuls{}% - \newcommand*\texturs{}% - \newcommand*\textubs{}% - \newcommand*\textuxs{}% - \DeclareTextFontCommand{\textuln}{\univln}% - \DeclareTextFontCommand{\texturn}{\univrn}% - \DeclareTextFontCommand{\textubn}{\univbn}% - \DeclareTextFontCommand{\textuxn}{\univxn}% - \DeclareTextFontCommand{\textuls}{\univls}% - \DeclareTextFontCommand{\texturs}{\univrs}% - \DeclareTextFontCommand{\textubs}{\univbs}% - \DeclareTextFontCommand{\textuxs}{\univxs}% + \edef\@tempa{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@univers.fd}}% + }% + \edef\@tempb{% + \lowercase{\noexpand\IfFileExists{\encodingdefault\tud@dinbold.fd}}% + }% + \def\@tempc##1{% + \@tempswafalse% + \ifstr{OT1}{\encodingdefault}{\@tempswatrue}{} + \ifstr{T1}{\encodingdefault}{\@tempswatrue}{} + \ClassWarningNoLine{\TUDClassName}% + {% + `##1' fonts not found for encoding `\encodingdefault'.\MessageBreak% + \if@tempswa% + Please use one of the installation scripts for the\MessageBreak% + tudscr-bundle mentioned in the manual.\MessageBreak% + \else% + Please choose a possible encoding (`OT1' or `T1').\MessageBreak% + \fi% + A fallback layout is used% + }% + }% \fi% - \if@tud@fontspec% - \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% - \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% - \newcommand*\textdbn[1]{{\dinbn#1}}% + \@tempa{\@tud@universtrue}{\@tempc{Univers}}% + \@tempb{\@tud@dinboldtrue}{\@tempc{DIN Bold}}% + \undef\tud@font@check% +} +\newcommand*\tud@font@init{% + \undef\tud@font@init@fontspec% + \undef\tud@font@init@nfss% + \undef\tud@font@init% +} +\newcommand*\tud@font@init@fontspec{% + \newfontface\univln{Univers Light}[NFSSFamily=UniversLight]% + \newfontface\univrn{Univers}[NFSSFamily=UniversRegular]% + \newfontface\univbn{Univers Bold}[NFSSFamily=UniversBold]% + \newfontface\univxn{Univers Black}[NFSSFamily=UniversBlack]% + \newfontface\univls{Univers Light Oblique}[NFSSFamily=UniversLightOblique]% + \newfontface\univrs{Univers Oblique}[NFSSFamily=UniversRegularOblique]% + \newfontface\univbs{Univers Bold Oblique}[NFSSFamily=UniversBoldOblique]% + \newfontface\univxs{Univers Black Oblique}[NFSSFamily=UniversBlackOblique]% + \newcommand*\textuln[1]{{\univln##1}}% + \newcommand*\texturn[1]{{\univrn##1}}% + \newcommand*\textubn[1]{{\univbn##1}}% + \newcommand*\textuxn[1]{{\univxn##1}}% + \newcommand*\textuls[1]{{\univls##1}}% + \newcommand*\texturs[1]{{\univrs##1}}% + \newcommand*\textubs[1]{{\univbs##1}}% + \newcommand*\textuxs[1]{{\univxs##1}}% + \newfontface\@dinbn{DIN Bold}[NFSSFamily=DINBold,BoldFont = DIN Bold]% + \newcommand*\dinbn{\@dinbn\if@tud@dinbold\mathversion{dinbold}\fi}% + \newcommand*\textdbn[1]{{\dinbn##1}}% +} +\newcommand*\tud@font@init@nfss{% + \if@tud@univers% + \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% \else% - \if@tud@dinbold% - \newcommand*\dinbn{% - \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% - \mathversion{dinbold}% + \newcommand*\univln{}% + \newcommand*\univrn{}% + \newcommand*\univbn{}% + \newcommand*\univxn{}% + \newcommand*\univls{}% + \newcommand*\univrs{}% + \newcommand*\univbs{}% + \newcommand*\univxs{}% + \fi% + \newcommand*\textuln{}% + \newcommand*\texturn{}% + \newcommand*\textubn{}% + \newcommand*\textuxn{}% + \newcommand*\textuls{}% + \newcommand*\texturs{}% + \newcommand*\textubs{}% + \newcommand*\textuxs{}% + \DeclareTextFontCommand{\textuln}{\univln}% + \DeclareTextFontCommand{\texturn}{\univrn}% + \DeclareTextFontCommand{\textubn}{\univbn}% + \DeclareTextFontCommand{\textuxn}{\univxn}% + \DeclareTextFontCommand{\textuls}{\univls}% + \DeclareTextFontCommand{\texturs}{\univrs}% + \DeclareTextFontCommand{\textubs}{\univbs}% + \DeclareTextFontCommand{\textuxs}{\univxs}% + \if@tud@dinbold% + \newcommand*\dinbn{% + \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% + \mathversion{dinbold}% + }% + \else% + \let\dinbn\sectfont% + \fi% + \newcommand*\textdbn{}% + \DeclareTextFontCommand{\textdbn}{\dinbn}% +} +\newcommand*\cdfont[1]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\dinbn}{\@nameuse{univ\@tempc}}% + \fi% +} +\providecommand*\tudfont[1]{\cdfont{#1}} +\newcommand*\textcdfont[2]{% + \@cdfont{#1}% + \ifx\@tempc\relax\else% + \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\@nameuse{textu\@tempc}{#2}}% + \fi% +} +\newcommand*\@cdfont[1]{% + \tud@trimfontname\@tempa{#1}% + \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% + \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% + \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% + \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% + \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% + \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \let\@tempc\relax% + \PackageWarning{tudscrfonts}{The font `#1' is unknown}% + }}}}}}}}}}}}}}% +} +\newcommand*\tud@trimfontname[2]{% + \protected@edef\@tempa{\trim@spaces{#2}}% + \tud@lowerstring{\@tempa}{\@tempa}% + \tud@@trimfontname{ }{}% + \tud@@trimfontname{-}{}% + \tud@@trimfontname{_}{}% + \tud@@trimfontname{~}{}% + \tud@@trimfontname{ce}{}% + \tud@@trimfontname{ff}{}% + \tud@@trimfontname{univers}{}% + \tud@@trimfontname{60}{65}% + \tud@@trimfontname{light}{45}% + \tud@@trimfontname{regular}{55}% + \tud@@trimfontname{bold}{65}% + \tud@@trimfontname{black}{75}% + \tud@@trimfontname{4545}{45}% + \tud@@trimfontname{5555}{55}% + \tud@@trimfontname{6565}{65}% + \tud@@trimfontname{7575}{75}% + \tud@@trimfontname{italic}{oblique}% + \tud@@trimfontname{slanted}{oblique}% + \let#1\@tempa% +} +\newcommand*\tud@@trimfontname[2]{% + \def\@tempb##1#1##2\relax{\def\@tempa{##1#2##2}}% + \@expandtwoargs\in@{#1}{\@tempa}% + \@whilesw\ifin@\fi{% + \expandafter\@tempb\@tempa\relax% + \@expandtwoargs\in@{#1}{\@tempa}% + }% +} +\newcommand*\mv@univers{}% +\newcommand*\mv@universbold{}% +\newcommand*\mv@dinbold{}% +\newcommand*\tud@font@math@init{% + \if@tud@fontspec\if@tud@univers\if@tud@dinbold% + \@ifpackagewith{fontspec}{no-math}{}{% + \ClassWarningNoLine{\TUDClassName}% + {% + It's recommended to load package `fontspec' with\MessageBreak% + option `no-math'% }% + }% + \fi\fi\fi% + \if@tud@univers% + \DeclareMathVersion{univers}% + \DeclareMathVersion{universbold}% + \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% + \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% + \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% + \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% + \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% + \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% + \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% + \SetMathAlphabet{\mathcal}{univers}{OMS}{lmsy}{m}{n}% + \SetMathAlphabet{\mathcal}{universbold}{OMS}{lmsy}{b}{n}% + \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% + \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% + \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% + \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% + \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% + \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% + \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% + \@ifpackageloaded{amsfonts}{% + \DeclareFontFamily{U}{\tud@univers a}{}% + \DeclareFontShape{U}{\tud@univers a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{univers}{U}{\tud@univers a}{m}{n}% + \SetSymbolFont{AMSa}{universbold}{U}{\tud@univers a}{m}{n}% + \DeclareFontFamily{U}{\tud@univers b}{}% + \DeclareFontShape{U}{\tud@univers b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{univers}{U}{\tud@univers b}{m}{n}% + \SetSymbolFont{AMSb}{universbold}{U}{\tud@univers b}{m}{n}% + \SetMathAlphabet{\mathfrak}{univers}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{universbold}{U}{euf}{b}{n}% + }{}% + \fi% + \if@tud@dinbold% + \DeclareMathVersion{dinbold}% + \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% + \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% + \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% + \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% + \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% + \fi% + \@ifpackageloaded{unicode-math}{% + \let\tud@font@math@set\relax% + \bool@set@lock{@tud@cdmath}{false}% + }{% + \let\@tempb\relax% + \let\@tempc\relax% + \DeclareMathSymbol{\@tempb}{\mathalpha}{letters}{0}% + \DeclareMathSymbol{\@tempc}{\mathord}{letters}{0}% + \@tempswafalse% + \ifnum\Gamma=\@tempb\relax\@tempswatrue\fi% + \ifnum\Gamma=\@tempc\relax\@tempswatrue\fi% + \if@tempswa% + \bool@std@lock{@tud@slantedgreek}{true}% + \fi% + \tud@font@greek@loop\tud@font@greek@init% + \tud@font@math@set% + }% + \sbox\z@{\dinbn$ $}% + \undef\tud@font@math@init% +} +\AtEndPreamble% +{% + \tud@font@check% + \if@tud@fontspec% + \preto\tud@font@init\tud@font@init@fontspec% + \else% + \preto\tud@font@init\tud@font@init@nfss% + \fi% + \tud@font@init% + \tud@font@set[nomath]% + \AtBeginDocument{\tud@font@math@init}% +} +\newcommand*\tud@font@greek@init[1]{% + \ifcsdef{up#1}{}{% + \if@tempswa% + \csletcs{up#1}{tud@up#1}% \else% - \let\dinbn\sectfont% + \csletcs{up#1}{#1}% \fi% - \newcommand*\textdbn{}% - \DeclareTextFontCommand{\textdbn}{\dinbn}% + }% + \ifcsdef{var#1}{}{% + \if@tempswa% + \csletcs{var#1}{#1}% + \else% + \csletcs{var#1}{tud@var#1}% + \fi% + }% +} +\newif\if@tud@mweights +\AfterPackage*{mweights}{\@tud@mweightstrue} +\newcommand*\tud@font@set[1][]{% + \if@tud@mweights% + \ifdef{\bfseries@rm}{}{\edef\bfseries@rm{\bfdefault}}% + \ifdef{\bfseries@sf}{}{\edef\bfseries@sf{\bfdefault}}% + \ifdef{\bfseries@tt}{}{\edef\bfseries@tt{\bfdefault}}% + \ifdef{\mdseries@rm}{}{\edef\mdseries@rm{\mddefault}}% + \ifdef{\mdseries@sf}{}{\edef\mdseries@sf{\mddefault}}% + \ifdef{\mdseries@tt}{}{\edef\mdseries@tt{\mddefault}}% \fi% - \DeclareMathVersion{univers}% - \DeclareMathVersion{universbold}% - \SetSymbolFont{operators}{univers}{OT1}{\tud@univers}{l}{n}% - \SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl}% - \SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n}% - \SetSymbolFont{largesymbols}{univers}{OMX}{iwona}{m}{n}% - \SetSymbolFont{operators}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl}% - \SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n}% - \SetSymbolFont{largesymbols}{universbold}{OMX}{iwona}{b}{n}% - \SetMathAlphabet{\mathbf}{univers}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathsf}{univers}{OT1}{\tud@univers}{l}{n}% - \SetMathAlphabet{\mathit}{univers}{OT1}{\tud@univers}{l}{sl}% - \SetMathAlphabet{\mathtt}{univers}{OT1}{\tud@univers t}{l}{n}% - \SetMathAlphabet{\mathbf}{universbold}{OT1}{\tud@univers}{eb}{n}% - \SetMathAlphabet{\mathsf}{universbold}{OT1}{\tud@univers}{b}{n}% - \SetMathAlphabet{\mathit}{universbold}{OT1}{\tud@univers}{b}{sl}% - \SetMathAlphabet{\mathtt}{universbold}{OT1}{\tud@univers t}{b}{n}% - \DeclareMathVersion{dinbold}% - \SetSymbolFont{operators}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl}% - \SetSymbolFont{symbols}{dinbold}{OMS}{\tud@dinbold}{b}{n}% - \SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathbf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathsf}{dinbold}{OT1}{\tud@dinbold}{b}{n}% - \SetMathAlphabet{\mathit}{dinbold}{OT1}{\tud@dinbold}{b}{sl}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0}% - \DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1}% - \DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2}% - \DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3}% - \DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4}% - \DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5}% - \DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6}% - \DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7}% - \DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8}% - \DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9}% - \DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10}% - \DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0}% - \DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1}% - \DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2}% - \DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3}% - \DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4}% - \DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5}% - \DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6}% - \DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7}% - \DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8}% - \DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9}% - \DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10}% -} -\newcommand*\tud@font@set{% - \ifcase\tud@cdfont\relax% + \ifcase\tud@cdfont\relax% false \tud@cmd@restore{rmdefault}% \tud@cmd@restore{sfdefault}% \tud@cmd@restore{ttdefault}% @@ -1271,9 +1538,17 @@ \tud@cmd@restore{familydefault}% \tud@cmd@restore{seriesdefault}% \tud@cmd@restore{shapedefault}% + \if@tud@mweights% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{bfseries@tt}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{false}% \cs@std@lock{tud@head@font}{0}% - \else% + \else% true/heavy \tud@cmd@store{rmdefault}% \tud@cmd@store{sfdefault}% \tud@cmd@store{ttdefault}% @@ -1283,10 +1558,18 @@ \tud@cmd@store{familydefault}% \tud@cmd@store{seriesdefault}% \tud@cmd@store{shapedefault}% + \if@tud@mweights% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{bfseries@tt}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{mdseries@tt}% + \fi% \bool@std@lock{@tud@cdmath}{true}% \cs@std@lock{tud@head@font}{\tud@cdfont}% \if@tud@fontspec% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \setsansfont{Univers Light}[% BoldFont = Univers,% ItalicFont = Univers Light Oblique,% @@ -1297,7 +1580,7 @@ ItalicFont = LMMonoLt10-Oblique,% BoldItalicFont = LMMonoSlant10-Regular,% ]% - \else% + \else% heavy \setsansfont{Univers}[% BoldFont = Univers Bold,% ItalicFont = Univers Oblique,% @@ -1313,12 +1596,28 @@ \if@tud@univers% \renewcommand*\sfdefault{\tud@univers}% \renewcommand*\ttdefault{\tud@univers t}% - \ifnum\tud@cdfont=\@ne\relax% + \ifnum\tud@cdfont=\@ne\relax% true \renewcommand*\bfdefault{m}% \renewcommand*\mddefault{l}% - \else% + \if@tud@mweights% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\bfseries@tt{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \def\mdseries@tt{l}% + \fi% + \else% heavy \renewcommand*\bfdefault{b}% \renewcommand*\mddefault{m}% + \if@tud@mweights% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\bfseries@tt{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \def\mdseries@tt{m}% + \fi% \fi% \fi% \fi% @@ -1327,10 +1626,50 @@ \renewcommand*\seriesdefault{\mddefault}% \renewcommand*\shapedefault{\updefault}% \fi% + \if@tud@mweights% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \fi% + \tud@font@skip@set% + \ifstr{#1}{nomath}{}{\tud@font@math@set}% \normalfont\selectfont% - \tud@font@math@set% \tud@layout@process% } +\newcommand*\tud@font@skip@set{% + \tud@ifverlower{2.04}{}{% + \ifcase\tud@cdfont\relax% false + \tud@skip@restore{smallskipamount}% + \tud@skip@restore{medskipamount}% + \tud@skip@restore{bigskipamount}% + \tud@skip@restore{abovecaptionskip}% + \tud@skip@restore{belowcaptionskip}% + \tud@skip@restore{columnsep}% + \else% true/heavy + \tud@skip@store{smallskipamount}% + \tud@skip@store{medskipamount}% + \tud@skip@store{bigskipamount}% + \tud@skip@store{abovecaptionskip}% + \tud@skip@store{belowcaptionskip}% + \tud@skip@store{columnsep}% + \tud@font@skip@@set% + \fi% + }% +} +\newcommand*\tud@font@skip@@set{% + \setlength{\@tempdimb}{\f@baselineskip}% + \scr@setlength\smallskipamount{\dimexpr\@tempdimb/4\relax}% + {\dimexpr\@tempdimb/12\relax}{\dimexpr\@tempdimb/12\relax}% + \scr@setlength\medskipamount{\dimexpr\@tempdimb/2\relax}% + {\dimexpr\@tempdimb/6\relax}{\dimexpr\@tempdimb/6\relax}% + \scr@setlength\bigskipamount{\@tempdimb}% + {\dimexpr\@tempdimb/3\relax}{\dimexpr\@tempdimb/3\relax}% + \tud@skip@set\abovecaptionskip{\dimexpr4\@tempdimb/5\relax}% + \tud@skip@set\belowcaptionskip{\z@}% + \tud@skip@set\columnsep{1.1\baselineskip}% +} \newcommand*\tud@font@math@set{% \if@tud@univers% \if@tud@cdmath% @@ -1338,79 +1677,67 @@ \tud@cmd@store{mv@bold}% \let\mv@normal\mv@univers% \let\mv@bold\mv@universbold% + \tud@font@greek@loop\tud@font@greek@set% \else% \tud@cmd@restore{mv@normal}% \tud@cmd@restore{mv@bold}% + \tud@font@greek@loop\tud@font@greek@reset% \fi% \fi% \if@tud@slantedgreek% - \tud@font@greek@slanted% + \tud@font@greek@loop\tud@font@greek@slanted% \else% - \tud@font@greek@upright% + \tud@font@greek@loop\tud@font@greek@upright% \fi% \mathversion{normal}% } -\newcount\tud@font@greek@upGamma -\tud@font@greek@upGamma\Gamma -\newcount\tud@font@greek@offset -\let\@tempa\relax -\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0} -\tud@font@greek@offset\@tempa -\advance\tud@font@greek@offset-\Gamma -\newcommand*\tud@font@greek@slanted{% - \ifnum\Gamma=\tud@font@greek@upGamma\relax\tud@font@greek@changeshape\fi% -} -\newcommand*\tud@font@greek@upright{% - \ifnum\Gamma>\tud@font@greek@upGamma% - \tud@font@greek@offset=-\tud@font@greek@offset% - \tud@font@greek@changeshape% - \tud@font@greek@offset=-\tud@font@greek@offset% - \fi% -} -\newcommand*\tud@font@greek@def[2]{% - \expandafter\@tempcnta\csname #1\endcsname% - \advance\@tempcnta#2% - \expandafter\mathchardef\csname #1\endcsname\@tempcnta% -} -\newcommand*\tud@font@greek@uc{% - Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% -} -\newcommand*\tud@font@greek@changeshape{% - \@for\@tempa:=\tud@font@greek@uc\do{% - \@expandtwoargs\tud@font@greek@def{\@tempa}{\tud@font@greek@offset}% - }% -} +\newcommand*\tud@font@greek@set[1]{% + \tud@cmd@store{#1}% + \tud@cmd@store{up#1}% + \tud@cmd@store{var#1}% + \csletcs{#1}{tud@#1}% + \csletcs{up#1}{tud@up#1}% + \csletcs{var#1}{tud@var#1}% +} +\newcommand*\tud@font@greek@reset[1]{% + \tud@cmd@restore{#1}% + \tud@cmd@restore{up#1}% + \tud@cmd@restore{var#1}% +} +\newcommand*\tud@font@greek@upright[1]{\csletcs{#1}{up#1}} +\newcommand*\tud@font@greek@slanted[1]{\csletcs{#1}{var#1}} \newcommand*\tud@head@font@bold{} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@set{% \ifdef{\@raggedtwoe@everyselectfont}{% \let\@raggedtwoe@everyselectfont\relax% - \spaceskip\z@\selectfont% + \setlength\spaceskip{\z@}% + \selectfont% }{}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\sfdefault}{bx}{n}{\tud@head@font@size}% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\sfdefault}{\mddefault}{n}{\tud@head@font@size}% \@tempswafalse% - \ifcase\tud@head@font\relax% - \ifnum\tud@cdfont>\z@\relax% - \ClassWarning{\tudcls@name}{% + \ifcase\tud@head@font\relax% false + \ifnum\tud@cdfont>\z@\relax% true/heavy + \ClassWarning{\TUDClassName}{% It isn't possible to use `cdhead=false'\MessageBreak% together with `cdfont=true'% }% \@tempswatrue% \fi% - \else% + \else% true/heavy \@tempswatrue% \fi% - \if@tempswa% + \if@tempswa% true/heavy \if@tud@fontspec% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {UniversBold}{m}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversLight}{m}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {UniversRegular}{m}{n}{\tud@head@font@size}% \fi% @@ -1418,10 +1745,10 @@ \if@tud@univers% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% {\tud@univers}{b}{n}{\tud@head@font@size}% - \ifcase\tud@head@font\relax\or% + \ifcase\tud@head@font\relax\or% true \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{l}{n}{\tud@head@font@size}% - \or% + \or% heavy \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% {\tud@univers}{m}{n}{\tud@head@font@size}% \fi% @@ -1440,19 +1767,9 @@ \expandafter\@secondoftwo% \fi% } -\AfterPackage*{amsfonts}{% - \DeclareFontFamily{U}{msa}{}% - \DeclareFontShape{U}{msa}{m}{n}{% - <-9>cmbras8% - <9-10>cmbras9% - <10->cmbras10% - }{}% - \DeclareFontFamily{U}{msb}{}% - \DeclareFontShape{U}{msb}{m}{n}{% - <-9>cmbrbs8% - <9-10>cmbrbs9% - <10->cmbrbs10% - }{}% +\newcommand*\tud@makeuppercase[1]{% + \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% + \protect\vphantom{\"A\"O\"U}% } \newcommand*\tud@raggedright{\raggedright} \newcommand*\tud@RaggedRight{\raggedright} @@ -1462,19 +1779,19 @@ }{}% \renewcommand*\tud@RaggedRight{\RaggedRight}% } -%%% From File: tudscr-color.dtx -\newcommand*\tud@pagecolor{} -\AfterPackage{pdfpages}{\AtEndPreamble{\nopagecolor}} +\AfterPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont} +} %%% From File: tudscr-fields.dtx \RequirePackage{trimspaces}[2009/09/17] \newcommand*\@faculty{} -\newcommand*\faculty[1]{\gdef\@faculty{\trim@spaces{#1}}} +\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}} \newcommand*\@department{} -\newcommand*\department[1]{\gdef\@department{\trim@spaces{#1}}} +\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}} \newcommand*\@institute{} -\newcommand*\institute[1]{\gdef\@institute{\trim@spaces{#1}}} +\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}} \newcommand*\@chair{} -\newcommand*\chair[1]{\gdef\@chair{\trim@spaces{#1}}} +\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}} \newcommand*\@extraheadline{} \newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} \newcommand*\@@title{} @@ -1493,38 +1810,37 @@ \newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} \newcommand*\tud@thanks{} \newcommand*\tud@thesis[2]{% - \AfterPreamble{% - \begingroup% - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \setbox0\vbox{#2}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \endgroup% - \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% - \@namedef{@#1}{#2}% - }}}}}}}}}}}}}% - }% + \begingroup% + \global\let\tud@thanks\relax% + \def\thanks##1{\gdef\tud@thanks{##1}}% + \let\footnote\thanks% + \sbox\z@{#2}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@lowerstring{\@tempa}{#2}% + \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% + \global\let\@tempa\@tempa% + \endgroup% + \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% + \@namedef{@#1}{#2}% + }}}}}}}}}}}}}% } \newcommand*\tud@@thesis[2]{% \ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% - \ClassWarning{\tudcls@name}{Field `thesis' is overwritten by `subject'}% + \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}% \fi% \TUD@std@ifkey@lock{subjectthesis}{true}% }{% @@ -1545,7 +1861,7 @@ \gdef\@graduation{#2}% } \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[2][]{\gdef\@professor{#2}} \newcommand*\@supervisor{} \newcommand*\supervisor[1]{\gdef\@supervisor{#1}} \newcommand*\@supporter{} @@ -1565,15 +1881,25 @@ \newcommand*\@placeofbirth{} \newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} \providecommand*\publisher[1]{\publishers{#1}} +\newlength\tud@signatureskip +\setlength\tud@signatureskip{15mm plus 10mm minus 10mm} \newcommand*\@confirmationclosing{% - \medskip% - \noindent\@place, \@date% - \\[20mm plus 10mm minus 10mm]% + \tud@datecheck% + \ifx\@date\@empty\else% + \medskip\noindent% + \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% + \fi% + \vskip\tud@signatureskip\noindent% \begingroup% - \let\and\hfil% \let\thanks\@gobble% \let\footnote\@gobble% - \@author% + \renewcommand*\tud@split@author[2]{% + \tud@multiple@fields@store{@author}{##1}% + \ignorespaces##1% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\hfil}% + }% + \tud@multiple@split{@author}% \hfil% \endgroup% } @@ -1583,7 +1909,7 @@ \newcommand*\printdate[1]{#1} \BeforePackage{isodate}{\undef\printdate} \newcommand*\tud@printdate[2]{% - \ifx\today#2% + \ifx\today#2\relax% \gdef#1{#2}% \else% \ifxblank{#2}% @@ -1591,28 +1917,99 @@ {\gdef#1{\printdate{#2}}}% \fi% } +\newcommand*\tud@datecheck{% + \ifdefvoid{\@duedate}{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + Since a thesis is a self-contained work, an end\MessageBreak% + date should be specified by the author.\MessageBreak% + Nevertheless, today's date is used% + }% + }{% + \ClassWarning{\TUDClassName}{% + `\string\date' was not given.\MessageBreak% + It's substituted by the given due date% + }% + \global\let\@date\@duedate% + }% + \global\let\tud@datecheck\relax% +} \newcommand*\@datemore{} \renewcommand*\date[2][]{% - \gdef\@datemore{#1}% + \gdef\@datemore{\trim@spaces{#1}}% \tud@printdate{\@date}{#2}% + \global\let\tud@datecheck\relax% } \newcommand*\@defensedate{} \newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} \newcommand*\@dateofbirth{} \newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} +\newcommand*\tud@multiple@@split{}% +\newcommand*\tud@multiple@split[1]{% + \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% + \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}% + }{}% + \def\tud@multiple@@split##1\and##2\relax{% + \expandafter\csname tud@split#1\endcsname{##1}{##2}% + }% + \begingroup% + \let\and\relax% + \edef\@tempa{\csname#1\endcsname\and}% + \expandafter\endgroup% + \expandafter\tud@multiple@@split\@tempa\relax% +} +\newcommand*\tud@multiple@@@split[2]{% + \ifx\relax#1\relax% + \let\@tempb\relax% + \else% + \def\@tempb{#2\tud@multiple@@split#1\relax}% + \fi% + \@tempb% +} +\newcommand*\tud@multiple@fields@store[2]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}% + \fi% + }% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#2}% + \endgroup% +} +\newcommand*\tud@multiple@fields@restore[1]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifcsdef{@\@tempb}{% + \tud@cmd@restore{@\@tempb}% + \global\csletcs{@\@tempb}{@\@tempb}% + }{}% + \fi% + }% +} +\newcommand*\tud@split@author[2]{} +\newcommand*\tud@split@author@list{% + authormore,matriculationyear,enrolmentyear,% + matriculationnumber,studentid,matriculationid,% + placeofbirth,birthplace,dateofbirth,birthday,% +} %%% From File: tudscr-locale.dtx \newcommand*\tud@locale@define[1]{% \providecommand*#1{% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string#1' not defined for language `\languagename'% }{% - Currently the class `\tudcls@name' only supports the\MessageBreak% + Currently the class `\TUDClassName' only supports the\MessageBreak% languages german and english an its dialects. You must\MessageBreak% define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{<text>}'\MessageBreak% - To implement new languages, it would be nice if you could\MessageBreak% - contact the author of this class and send your definitions\MessageBreak% - to \tudscrmail% + You can send your definitions to \tudscrmail\space in\MessageBreak% + order to implement support for additional languages. }% }% } @@ -1663,7 +2060,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -1680,7 +2077,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -1725,10 +2122,10 @@ Diese \ifx\@@thesis\@empty Arbeit \else\@@thesis{} \fi \ifx\@@title\@empty\else mit dem Titel \emph{\@@title} \fi enth\"alt vertrauliche Informationen\ifx\@company\@empty\else - , offengelegt durch \@company{}\fi. Ver\"offentlichungen, + , offengelegt durch \emph{\@company}\fi. Ver\"offentlichungen, Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~-- sind ohne ausdr\"uckliche Genehmigung \ifx\@company\@empty\else - durch \@company{} \fi nicht gestattet, ebenso wie + durch \emph{\@company} \fi nicht gestattet, ebenso wie Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die vorliegende Arbeit ist nur dem Betreuer an der Technischen Universit\"at Dresden, den Gutachtern sowie den Mitgliedern des @@ -1760,7 +2157,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@referee}% + \sbox\z@{\@referee}% }% \endgroup% \if@tempswa% @@ -1777,7 +2174,7 @@ \protecting{% \global\@tempswafalse% \def\and{\global\@tempswatrue}% - \savebox0{\@professor}% + \sbox\z@{\@professor}% }% \endgroup% \if@tempswa% @@ -1822,9 +2219,9 @@ This \ifx\@@thesis\@empty thesis \else\@@thesis{} \fi \ifx\@@title\@empty\else entitled \emph{\@@title} \fi contains confidential data\ifx\@company\@empty\else - , disclosed by \@company{}\fi. Publications, duplications and + , disclosed by \emph{\@company}\fi. Publications, duplications and inspections---even in part---are prohibited without explicit - permission\ifx\@company\@empty\else\space by \@company{}\fi, + permission\ifx\@company\@empty\else\space by \emph{\@company}\fi, as well as publications about the content of this thesis. This thesis may only be made accessible to the supervisor at Technische Universit\"at Dresden, the reviewers and also the @@ -1869,7 +2266,7 @@ \newlength\tud@dim@thinline \newlength\tud@dim@headdiff \newlength\tud@dim@headingsvskip -\iftudscrverlower{2.03}{\newlength\tud@dim@ddcdiff}{} +\tud@ifverlower{2.03}{\newlength\tud@dim@ddcdiff}{} \newcommand*\tud@head@font@size{} \newcommand*\tud@geometry@set{% \ifdim\paperheight<148.1mm\relax% @@ -1915,267 +2312,305 @@ \dimexpr\tud@dim@widemargin-.6\tud@dim@topmargin\relax% }% } -\newcommand*\ifstandalonecrop{% +\newcommand*\tud@ifsacrop{% \ifcsdef{ifsa@crop}{% \ifbool{sa@crop}{\@firstoftwo}{\@secondoftwo}% }{% \@secondoftwo% }% } +\tud@ifsacrop{% + \PreventPackageFromLoading{scrlayer-scrpage}% + \pagestyle{empty}% + \hoffset=-72.27pt% + \voffset=-72.27pt% + \topmargin=0pt% + \headheight=0pt% + \headsep=0pt% + \marginparsep=0pt% + \marginparwidth=0pt% + \footskip=0pt% + \marginparpush=0pt% + \oddsidemargin=0pt% + \evensidemargin=0pt% + \topskip=0pt% + \textheight=\maxdimen% +}{% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2013/12/14]}% +} +\tud@cmd@store{pagestyle} +\cslet{ps@tudheadings}{\ps@headings}% +\cslet{ps@plain.tudheadings}{\ps@plain}% +\cslet{ps@empty.tudheadings}{\ps@empty}% +\providecommand*\currentpagestyle{plain} +\providecommand*\BeforeSelectAnyPageStyle[1]{} +\providecommand*\GetRealPageStyle[1]{#1} +\BeforePackage{scrlayer-scrpage}{% + \tud@cmd@restore{pagestyle}% + \csundef{ps@tudheadings}% + \csundef{ps@plain.tudheadings}% + \csundef{ps@empty.tudheadings}% + \undef\currentpagestyle% + \undef\BeforeSelectAnyPageStyle% + \undef\GetRealPageStyle% +} +\let\tud@pagestyle\pagestyle +\apptocmd{\tud@pagestyle}{% + \edef\currentpagestyle{#1}% +}{}{\tud@patch@wrn{pagestyle}}% +\renewcommand*\pagestyle[1]{\AfterPackage!{scrlayer-scrpage}{\pagestyle{#1}}} \AtEndPreamble{% - \ifstandalonecrop{% - \PreventPackageFromLoading{scrlayer-scrpage}% - \pagestyle{empty}% - \hoffset=-72.27pt% - \voffset=-72.27pt% - \topmargin=0pt% - \headheight=0pt% - \headsep=0pt% - \marginparsep=0pt% - \marginparwidth=0pt% - \footskip=0pt% - \marginparpush=0pt% - \oddsidemargin=0pt% - \evensidemargin=0pt% - \topskip=0pt% - \textheight=\maxdimen% - }{}% + \@ifpackageloaded{scrlayer-scrpage}{}{% + \let\pagestyle\tud@pagestyle% + \undef\tud@pagestyle% + }% } -\AtEndPreamble{% - \RequirePackage{scrlayer-scrpage}[2013/12/14]% - \AfterPackage*{scrlayer-scrpage}{% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={% - \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% - \tud@mainlogo% - },% - ]{tudheadings.head.mainlogo}% - \DeclareNewLayer[% - background,headsep,% - voffset=\tud@dim@logoy,% - contents={\hfill\tud@headlogo},% - ]{tudheadings.head.logo}% - \DeclareNewLayer[% - background,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41}% - \rule{\layerwidth}{\tud@dim@topmargin}% - \fi% - },% - ]{tudheadings.head.back}% - \DeclareNewLayer[% - background,% - voffset=\tud@dim@topmargin,% - contents={% - \ifnum\tud@head@bar>\@ne\relax% - \color{HKS41!80}% - \rule{\layerwidth}{\tud@dim@barheight}% - \fi% - },% - ]{tudheadings.head.bar}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% - contents={\tud@head@text@box},% - ]{tudheadings.head.text}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperline}% - \DeclareNewLayer[% - background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar\else% - \tud@head@rule{\textwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.upperwideline}% - \DeclareNewLayer[% - background,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -.5\tud@dim@line\relax,% - contents={% - \ifnum\tud@head@bar<\tw@\relax\if@tud@head@widebar% - \tud@head@rule{\paperwidth}% - \fi\fi% - },% - ]{tudheadings.head.lowerwideline}% - \DeclareNewLayer[% - background,foot,% - height=\dimexpr\paperheight-\layeryoffset\relax,% - contents={% - \ifdim\footlogoheight>\z@\relax\else% - \settoheight\footlogoheight{\tud@mainlogo}% - \iftudscrverlower{2.03}{% - \setlength\footlogoheight{.6\tud@dim@topmargin}% - }{}% - \fi% - \setlength\@tempdima{% - \dimexpr\footlogoheight-\layerheight+\dp\strutbox\relax% - }% - \ifdim\@tempdima>\vfuzz\relax% - \ClassWarning{\tudcls@name}{% - The chosen `\string\footlogoheight' - (\the\footlogoheight)\MessageBreak% - is \the\@tempdima\space higher than recommended. You\MessageBreak% - should decrease this length - \ifcase\tud@geometry\relax\else% - or alternatively\MessageBreak% - enlarge the bottom margin by using option\MessageBreak% - `extrabottommargin'% - \fi% - }% - \fi% - \let\@tempa\relax% - \@for\@tempb:=\tud@@footlogo\do{% - \@tempa% - \ifx\@tempb\@empty\else% - \expandafter\tud@footlogo\expandafter{\@tempb}% +\AfterPackage{scrlayer-scrpage}{% + \DeclareNewLayer[% + background,headsep,% + voffset=\tud@dim@logoy,% + contents={% + \tud@mainlogo@set% + \tud@headlogo@option@set% + \hspace*{\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax}% + \tud@mainlogo@use\hfill\tud@headlogo@use% + },% + ]{tudheadings.head.content}% + \DeclareNewLayer[% + background,% + contents={% + \ifnum\tud@head@bar>\tw@\relax% cdhead=color + \color{HKS41}% + \rule{\layerwidth}{\tud@dim@topmargin}% + \fi% + },% + ]{tudheadings.head.back}% + \DeclareNewLayer[% + background,% + voffset=\tud@dim@topmargin,% + contents={% + \ifnum\tud@head@bar>\@ne\relax% cdhead=barcolor/color + \color{HKS41!60}% + \rule{\layerwidth}{\tud@dim@barheight}% + \fi% + },% + ]{tudheadings.head.bar}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% + contents={\tud@head@text@box},% + ]{tudheadings.head.text}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperline}% + \DeclareNewLayer[% + background,headsep,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\else\tud@head@rule{\textwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.upperwideline}% + \DeclareNewLayer[% + background,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -.5\tud@dim@line\relax,% + contents={% + \ifnum\tud@head@bar<\tw@\relax% cdhead=nocolor/litecolor + \if@tud@head@widebar\tud@head@rule{\paperwidth}\fi% + \fi% + },% + ]{tudheadings.head.lowerwideline}% + \DeclareNewLayer[% + background,foot,% + hoffset=0pt,% + width=\paperwidth,% + addvoffset=-\dp\strutbox,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \if@tud@foot@colored% + \let\@tempc\relax% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% \fi% - \let\@tempa\footlogosep% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% - \tud@ddclogo% - },% - ]{tudheadings.foot.logo}% - \iftudscrverlower{2.03}{% - \ModifyLayer[% - voffset=\dimexpr\topmargin+1in+\headheight+\headsep+\textheight% - +\footskip-\footheight-\tud@dim@ddcdiff% - \ifcase\tud@geometry\relax\else+\ht\strutbox+\dp\strutbox\fi% - \relax,% - height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% - ]{tudheadings.foot.logo}% - }{}% - \DeclareNewLayer[% - background,% - hoffset=0pt,% - width=\paperwidth,% - voffset=\dimexpr\@nameuse{scr@l@tudheadings.foot.logo@y}% - -\dp\strutbox\relax,% - height=\dimexpr\paperheight-\layeryoffset\relax,% + \ifx\@tempc\relax\else% + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% + \fi% + },% + ]{tudheadings.foot.back}% + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \if@tud@footcolor% + \if@tud@foot@colored% \let\@tempc\relax% - \ifnum\tud@head@bar>\@ne\def\@tempc{\color{HKS41}}\fi% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!80}}}{}% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax\or\or% cdhead=barcolor + \def\@tempc{\color{HKS41!60}}% + \or% cdhead=color + \def\@tempc{\color{HKS41}}% + \fi% + }{% + \def\@tempc{\color{HKS41}}% + \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + }% \ifx\@tempc\relax\else% - \iftudscrverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% - \vbox to \layerheight{% - \vfil\@tempc% - \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% - }% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot=false + \vbox to \layerheight{% + \vfil\@tempc% + \rule{\layerwidth}{% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% - \else% - \@tempc\rule{\layerwidth}{\layerheight}% - \fi% - }{\@tempc\rule{\layerwidth}{\layerheight}}% + }% + \else% \tud@ddc@foot!=false + \@tempc\rule{\layerwidth}{\layerheight}% + \fi% \fi% \fi% },% ]{tudheadings.foot.back}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - scrheadings.foot.odd,% - scrheadings.foot.even,% - scrheadings.foot.oneside,% - scrheadings.foot.above.line,% - scrheadings.foot.below.line% - }% - \DeclareNewPageStyleAlias{tud}{tudheadings}% - \DeclareNewPageStyleAlias{tudscr}{tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{plain.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - plain.scrheadings.foot.odd,% - plain.scrheadings.foot.even,% - plain.scrheadings.foot.oneside,% - plain.scrheadings.foot.above.line,% - plain.scrheadings.foot.below.line% - }% - \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% - \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% - ]{empty.tudheadings}{% - tudheadings.head.back,% - tudheadings.head.mainlogo,% - tudheadings.head.logo,% - tudheadings.head.bar,% - tudheadings.head.text,% - tudheadings.head.upperline,% - tudheadings.head.lowerline,% - tudheadings.head.upperwideline,% - tudheadings.head.lowerwideline,% - tudheadings.foot.back,% - tudheadings.foot.logo,% - }% - \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% - \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% - \DeclareNewLayer[ - background,page,% - contents={% - \ifdefvoid{\tud@pagecolor}{}{% - \color{\tud@pagecolor}% - \rule{\layerwidth}{\layerheight}% - }% - },% - ]{tudheadings.pagecolor} - \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% - \BeforeSelectAnyPageStyle{\tud@beforeselectanypagestyle{#1}}% + }{}% + \DeclareNewLayer[% + background,foot,% + height=\dimexpr\paperheight-\layeryoffset\relax,% + contents={% + \tud@footlogoheight@set% + \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@footlogo@option@set% + \tud@footlogo@cmd@set{\@tempdima}{\layerwidth}% + \tud@footcontent@use{\@tempdima}{\layerwidth}% + \hspace*{-\layerwidth}% + \tud@footlogo@cmd@use% + \hspace*{-\layerwidth}% + \hfill\tud@footlogo@ddc@use{\@tempdima}% + },% + ]{tudheadings.foot.content}% + \tud@ifverlower{2.03}{% + \ModifyLayer[% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% + height=\dimexpr.6\tud@dim@topmargin+\dp\strutbox\relax,% + ]{tudheadings.foot.content}% + }{}% + \DeclareNewLayer[% + background,% + contents=\tud@head@bar@restore,% + ]{tudheadings.last}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + scrheadings.foot.odd,% + scrheadings.foot.even,% + scrheadings.foot.oneside,% + scrheadings.foot.above.line,% + scrheadings.foot.below.line% + }% + \listadd\tud@ps@list{tudheadings}% + \DeclareNewPageStyleAlias{tud}{tudheadings}% + \DeclareNewPageStyleAlias{tudscr}{tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadings}{tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{plain.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last,% + plain.scrheadings.foot.odd,% + plain.scrheadings.foot.even,% + plain.scrheadings.foot.oneside,% + plain.scrheadings.foot.above.line,% + plain.scrheadings.foot.below.line% + }% + \listadd\tud@ps@list{plain.tudheadings}% + \DeclareNewPageStyleAlias{plain.tudscrheadings}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsplain}{plain.tudheadings}% + \DeclareNewPageStyleByLayers[% + onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + ]{empty.tudheadings}{% + tudheadings.head.back,% + tudheadings.head.content,% + tudheadings.head.bar,% + tudheadings.head.text,% + tudheadings.head.upperline,% + tudheadings.head.lowerline,% + tudheadings.head.upperwideline,% + tudheadings.head.lowerwideline,% + tudheadings.foot.back,% + tudheadings.foot.content,% + tudheadings.last% }% + \listadd\tud@ps@list{empty.tudheadings}% + \DeclareNewPageStyleAlias{empty.tudscrheadings}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudheadingsempty}{empty.tudheadings}% + \DeclareNewPageStyleAlias{tudscrheadingsempty}{empty.tudheadings}% + \newcommand*\tud@pagecolor{}% + \DeclareNewLayer[% + background,page,% + contents={% + \ifdefvoid{\tud@pagecolor}{}{% + \color{\tud@pagecolor}% + \rule{\layerwidth}{\layerheight}% + }% + },% + ]{tudheadings.pagecolor}% + \AddLayersToPageStyle{@everystyle@}{tudheadings.pagecolor}% } +\PreventPackageFromLoading[% + \ClassWarning{\TUDClassName}{% + The package `fancyhdr' must not be used with a\MessageBreak% + TUD-KOMA-Script class. You should make use of the\MessageBreak% + capabilities of package `scrlayer-scrpage' instead% + }% +]{fancyhdr} \newcommand*\tud@ps@onselect{% \DeclarePageStyleAlias{plain}{plain.tudheadings}% \DeclarePageStyleAlias{headings}{tudheadings}% @@ -2183,108 +2618,88 @@ \def\sls@currentplain{plain.tudheadings}% } \newcommand*\tud@head@logocolor{black} +\newcommand*\tud@head@fontcolor{} \newcommand*\tud@foot@logocolor{black} +\newcommand*\tud@foot@fontcolor{} \newcommand*\tud@ps@onbackground{% - \ifcase\tud@head@bar\relax% - \def\tud@head@logocolor{black}% - \def\tud@foot@logocolor{black}% - \or% - \def\tud@head@logocolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \or% - \def\tud@head@logocolor{white}% - \if@tud@footcolor% - \def\tud@foot@logocolor{white}% - \else% + \ifdefvoid{\tud@pagecolor}{% + \ifcase\tud@head@bar\relax% cdhead=nocolor + \def\tud@head@logocolor{black}% + \def\tud@head@fontcolor{}% + \def\tud@foot@logocolor{black}% + \def\tud@foot@fontcolor{}% + \or% cdhead=litecolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \or% cdhead=barcolor + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% \fi% - \fi% + }{% + \ifstr{\tud@pagecolor}{HKS41}{% + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \def\tud@foot@logocolor{white}% + \if@tud@foot@colored% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@fontcolor{HKS41!30}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }{% + \def\tud@head@logocolor{HKS41}% + \def\tud@head@fontcolor{HKS41}% + \ifcase\tud@head@bar\relax\or\or\or% cdhead=color + \def\tud@head@logocolor{white}% + \def\tud@head@fontcolor{white}% + \fi% + \if@tud@foot@colored% + \def\tud@foot@logocolor{white}% + \def\tud@foot@fontcolor{white}% + \else% + \def\tud@foot@logocolor{HKS41}% + \def\tud@foot@fontcolor{HKS41}% + \fi% + \bool@std@lock{@tud@head@widebar}{true}% + }% + }% \let\tud@dim@line\tud@dim@thinline% - \ifstr{\tud@head@logocolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } \patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% \xdef\@specialstyle{\GetRealPageStyle{#1}} }{}{\tud@patch@wrn{thispagestyle}} -\newcommand*\tud@currentgeometry{} -\newcommand*\tud@beforeselectanypagestyle[1]{% - \ifstr{#1}{\GetRealPageStyle{#1}}{% - \def\@tempa{#1}% - \ifcsdef{scr@v@3.15}{}{% - \ifstr{\sls@currentheadings}{tudheadings}{% - \ifstr{#1}{headings}{\def\@tempa{tudheadings}}{}% - \ifstr{#1}{plain}{\def\@tempa{plain.tudheadings}}{}% - }{}% - }% - \iftudpagestyle{\@tempa}{% - \iftudscrverlower{2.03}{% - \tud@ddc@check% - \ifcase\@tempb\relax% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - \else% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \loadgeometry{tudareaddc}% - \gdef\tud@currentgeometry{tudareaddc}% - }% - \fi% - }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% - \loadgeometry{tudarea}% - \gdef\tud@currentgeometry{tudarea}% - }% - }% - \setlength\tud@dim@headdiff{\z@}% - }{% - \ifstr{\tud@currentgeometry}{typearea}{}{% - \loadgeometry{typearea}% - \gdef\tud@currentgeometry{typearea}% - }% - \setlength\tud@dim@headdiff{\tud@ta@headdiff}% - \ifcase\tud@geometry\relax\else% - \if@hincl% - \addtolength\tud@dim@headdiff{% - \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% - }% - \fi% - \fi% - }% - \global\tud@dim@headdiff=\tud@dim@headdiff% - }{}% -} -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@beforeselectanypagestyle\@gobble\pagestyle% -}{}{\tud@patch@wrn{cleardoublepageusingstyle}} -\iftudscrverlower{2.03}{% - \newcommand*\tud@ddc@enlargepage[1][]{% - \iftudpagestyle{#1}{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% - \tud@ddc@check% - \ifcase\@tempb\relax\else% - \enlargethispage{-\tud@dim@ddcdiff}% - \fi% - }% - }{}% - }% -}{} \newcommand*\tud@head@text{} \newcommand*\tud@head@text@first{} \newcommand*\tud@head@text@second{} \newcommand*\tud@head@text@delimiter{} \newcommand*\tud@head@text@buffer{} \newcommand*\tud@head@rule[1]{% - \color{\tud@head@logocolor}% + \tud@color{\tud@head@fontcolor}% \rule[\ht\strutbox]{#1}{\tud@dim@line}% } \newcommand*\tud@head@text@add[3][, ]{% - \edef\tud@head@text{#3}% + \protected@edef\tud@head@text{#3}% \ifx\tud@head@text\@empty% \def\tud@head@text@delimiter{}% \else% @@ -2303,11 +2718,11 @@ \@tempswatrue% \def\tud@head@text@delimiter{}% \else% - \edef\tud@head@text@first{\@tempa}% + \protected@edef\tud@head@text@first{\@tempa}% \fi% \fi% \if@tempswa% - \edef\tud@head@text@second{% + \protected@edef\tud@head@text@second{% \tud@head@text@second% \tud@head@text@delimiter% #2% @@ -2317,7 +2732,7 @@ } \newcommand*\tud@head@text@box{% \ifx\@faculty\@empty% - \ClassWarningNoLine{\tudcls@name}{No `\string\faculty' given}% + \ClassWarningNoLine{\TUDClassName}{No `\string\faculty' given}% \faculty{}% \fi% \tud@head@font@set% @@ -2335,20 +2750,20 @@ \hfuzz=\@tempdima% \fi% \vbox{% - \linespread{0}\selectfont% - \color{\tud@head@logocolor}% + \linespread{0}\selectfont\offinterlineskip% + \tud@color{\tud@head@fontcolor}% \tud@head@text@write{\tud@head@text@first}% - \ifnum\tud@head@bar>\@ne% + \ifnum\tud@head@bar>\@ne% cdhead=barcolor/color \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% \ifx\tud@head@text@second\@empty% - \newline\tud@head@font@light\tud@head@text@write{\@extraheadline}% + \newline\tud@head@text@write{\tud@head@font@light\@extraheadline}% \else% \newline\tud@head@text@write{\tud@head@text@second}% \ifx\@extraheadline\@empty\else% - \vspace{-\tud@dim@line}\newline\tud@head@font@light\@extraheadline% + \newline\vbox{\tud@head@font@light\@extraheadline}% \fi% \fi% }% @@ -2356,98 +2771,269 @@ \newcommand*\tud@head@text@write[1]{% \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% \dimexpr\tud@dim@barheight-\depth\relax% - ][\depth]{#1\vphantom{gjpqy\"A\"O\"U}}% + ][\dimexpr\depth+\tud@dim@heavyline\relax]{#1\vphantom{gjpqy\"A\"O\"U}}% } \newcommand\tud@head@text@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The given entries for the headline\MessageBreak% (faculty, institute etc.) are #1\MessageBreak% too wide for the textwidth% }% \global\let\tud@head@text@wrn\@gobble% } -\newcommand*\tud@mainlogo@wrn[1]{% - \ClassWarning{\tudcls@name}{% - The selected page layout means that the\MessageBreak% - logo of TUD extends beyond the printing area.\MessageBreak% - The inner margin is smaller than BCOR\MessageBreak% - (`BCOR=\the\ta@bcor', inner margin is #1)\MessageBreak% - Maybe you should decrease the current value\MessageBreak% - of DIV (`DIV=\the\ta@div')% - }% - \global\let\tud@mainlogo@wrn\@gobble% +\newcommand*\tud@newlayerbox[1]{% + \expandafter\newsavebox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@savelayerbox[1]{% + \global\expandafter\sbox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@uselayerbox[1]{% + \expandafter\usebox\csname tud@logo@#1\endcsname% +} +\newcommand*\tud@vlayerbox[3]{% + \begingroup% + \setbox\z@\vbox{#2}% + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \ifdim\@tempdima>\z@\relax% + \ClassWarning{\TUDClassName}{% + #3\MessageBreak% + The maximum height is exceeded by \the\@tempdima% + }% + \fi% + \endgroup% + \vbox to #1{#2}% +} +\tud@newlayerbox{main@black} +\tud@newlayerbox{main@HKS41} +\tud@newlayerbox{main@white} +\newlength\tud@mainlogoheight +\newcommand*\tud@mainlogo@wrn[1]{} +\newif\if@tud@mainlogo@set +\newcommand*\tud@mainlogo@set{% + \if@tud@mainlogo@set% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% + \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% + \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% + \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% + \setlength\tud@mainlogoheight{\ht\tud@logo@main@black}% + \global\tud@mainlogoheight=\tud@mainlogoheight% + \gdef\tud@mainlogo@wrn##1{% + \ifdim##1<\ta@bcor\relax% + \ClassWarning{\TUDClassName}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (`BCOR=\the\ta@bcor', inner margin is \the##1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (`DIV=\the\ta@div')% + }% + \global\let\tud@mainlogo@wrn\@gobble% + \fi% + }% + \tud@headlogo@set% + \tud@footlogo@set% + \global\@tud@mainlogo@setfalse% + \fi% } -\newcommand*\tud@@mainlogo{} -\newcommand*\tud@mainlogo{% - \setlength\@tempdima{% +\newcommand*\tud@mainlogo@use{% + \tud@mainlogo@wrn{% \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% - \ifdim\@tempdima<\ta@bcor\relax\tud@mainlogo@wrn{\the\@tempdima}\fi% - \def\tud@@mainlogo{TUD-black}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@mainlogo{TUD-blue}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@mainlogo{TUD-white}}{}% - \includegraphics[keepaspectratio,width=\tud@dim@logowidth]{\tud@@mainlogo}% -} + \tud@uselayerbox{main@\tud@head@logocolor}% +} +\tud@newlayerbox{head@black} +\tud@newlayerbox{head@HKS41} +\tud@newlayerbox{head@white} +\tud@newlayerbox{head@option} +\newcommand*\@headlogo{} +\newcommand*\@@headlogo{} +\newcommand*\tud@headlogo@wrn{} \newcommand*\headlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@headlogo{#2}% - \def\tud@@@headlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% -} -\newcommand*\tud@@headlogo{} -\newcommand*\tud@@@headlogo{} -\newcommand*\tud@headlogo{% - \tud@ddc@check% - \ifx\tud@@headlogo\@empty\else% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% - \fi% - \ifcase\@tempa\relax\or% - \def\tud@@headlogo{DDC-24}% - \ifstr{\tud@head@logocolor}{HKS41}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{cddarkblue}{\def\tud@@headlogo{DDC-27}}{}% - \ifstr{\tud@head@logocolor}{white}{\def\tud@@headlogo{DDC-30}}{}% - \or% - \def\tud@@headlogo{DDC-03}% - \or% - \def\tud@@headlogo{DDC-09}% - \or% - \def\tud@@headlogo{DDC-21}% - \or% - \def\tud@@headlogo{DDC-24}% - \or% - \def\tud@@headlogo{DDC-27}% - \or% - \def\tud@@headlogo{DDC-30}% - \fi% - \ifx\tud@@headlogo\@empty\else% - \settoheight\@tempdima{\tud@mainlogo}% - \protected@epreto\tud@@@headlogo{% - keepaspectratio,totalheight=\the\@tempdima,% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@headlogo{#2}% + \def\@@headlogo{#1}% + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \gdef\tud@headlogo@wrn{% + \ClassWarning{\TUDClassName}{% + The secondary logo `\string\headlogo{\@headlogo}' is\MessageBreak% + overwritten with DDC logo. Maybe you should use\MessageBreak% + `ddcfoot' or better `ddc' instead of `ddchead'% + }% + \global\let\tud@headlogo@wrn\relax% + }% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% +} +\newcommand*\tud@headlogo@set{% + \def\@tempa{% + \includegraphics[keepaspectratio,totalheight=\tud@mainlogoheight]% + }% + \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% + \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% + \tud@savelayerbox{head@white}{\@tempa{DDC-30}}% + \tud@headlogo@option@set% +} +\newif\if@tud@headlogo@option@set +\newcommand*\tud@headlogo@option@set{% + \if@tud@headlogo@option@set% + \def\@tempc##1##2{% + \tud@savelayerbox{head@option}{% + \includegraphics[% + keepaspectratio,totalheight=\tud@mainlogoheight,##2% + ]{\trim@spaces{##1}}% + }% }% - \expandafter\includegraphics\expandafter[\tud@@@headlogo]{\tud@@headlogo}% + \tud@savelayerbox{head@option}{}% + \tud@ddc@check% + \ifcase\@tempa\relax% \tud@ddc@head=false + \ifdefvoid{\@headlogo}{}{% + \protected@edef\@tempb{\noexpand\@tempc{\@headlogo}{\@@headlogo}}% + \@tempb% + }% + \or\or% \tud@ddc@head=color + \@tempc{DDC-03}{}% + \or% \tud@ddc@head=colorblack + \@tempc{DDC-09}{}% + \or% \tud@ddc@head=gray + \@tempc{DDC-21}{}% + \or% \tud@ddc@head=black + \@tempc{DDC-24}{}% + \or% \tud@ddc@head=blue + \@tempc{DDC-27}{}% + \or% \tud@ddc@head=white + \@tempc{DDC-30}{}% + \fi% + \global\@tud@headlogo@option@setfalse% \fi% } -\newcommand*\tud@headlogo@wrn{% - \ClassWarning{\tudcls@name}{% - The secondary logo given with `\string\headlogo' is\MessageBreak% - overwritten with DDC logo. Maybe you should use\MessageBreak% - `ddcfoot' or better `ddc' instead of `ddchead'% +\newcommand*\tud@headlogo@use{% + \tud@vlayerbox{\tud@mainlogoheight}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifnum\@tempa=\@ne\relax% \tud@ddc@head=true + \tud@uselayerbox{head@\tud@head@logocolor}% + \else% + \tud@uselayerbox{head@option}% + \fi% + }% + \vss% + }{% + The given `\string\headlogo{\@headlogo}' is too large.% + } + \ifdefvoid{\@headlogo}{}{% + \tud@ddc@check% + \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% }% - \global\let\tud@headlogo@wrn\relax% } +\tud@newlayerbox{foot@black} +\tud@newlayerbox{foot@HKS41} +\tud@newlayerbox{foot@white} +\tud@newlayerbox{foot@option} \newlength\footlogoheight +\newlength\tud@footlogoheight +\newcommand*\tud@footlogoheight@set{% + \ifdim\footlogoheight=\z@\relax% + \tud@ifverlower{2.03}{% + \setlength\tud@footlogoheight{.6\tud@dim@topmargin}% + }{% + \setlength\tud@footlogoheight{\tud@mainlogoheight}% + }% + \else% + \ifdim\footlogoheight=\tud@footlogoheight\relax\else% + \setlength\tud@footlogoheight{\footlogoheight}% + \global\@tud@footlogo@option@settrue% + \fi% + \fi% + \global\tud@footlogoheight=\tud@footlogoheight% +} +\newcommand*\tud@footlogo@ddc@set[2]{% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@#1}{% + \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight]{#2}% + }% +} +\newcommand*\tud@footlogo@set{% + \tud@footlogo@ddc@set{black}{DDC-22}% + \tud@footlogo@ddc@set{HKS41}{DDC-25}% + \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@footlogo@option@set% +} +\newif\if@tud@footlogo@option@set +\newcommand*\tud@footlogo@option@set{% + \if@tud@footlogo@option@set% + \tud@ddc@check% + \ifcase\@tempb\relax\or\or% \tud@ddc@foot=color + \tud@footlogo@ddc@set{option}{DDC-01}% + \or% \tud@ddc@foot=colorblack + \tud@footlogo@ddc@set{option}{DDC-07}% + \or% \tud@ddc@foot=gray + \tud@footlogo@ddc@set{option}{DDC-19}% + \or% \tud@ddc@foot=black + \tud@footlogo@ddc@set{option}{DDC-22}% + \or% \tud@ddc@foot=blue + \tud@footlogo@ddc@set{option}{DDC-25}% + \or% \tud@ddc@foot=white + \tud@footlogo@ddc@set{option}{DDC-28}% + \fi% + \global\@tud@footlogo@option@setfalse% + \fi% +} +\newcommand*\tud@footlogo@ddc@use[1]{% + \tud@vlayerbox{#1}{% + \vss% + \hbox{% + \tud@ddc@check% + \ifcase\@tempb\relax\or% \tud@ddc@foot=true + \tud@uselayerbox{foot@\tud@foot@logocolor}% + \else% + \tud@uselayerbox{foot@option}% + \fi% + }% + \vss\vss% + }{% + The `\string\footlogoheight' (\the\footlogoheight) is too\MessageBreak% + high. You should reduce this length.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% + }% +} +\tud@newlayerbox{foot@cmd} \newcommand*\footlogosep{\hfill} +\newcommand*\@footlogo{} +\newcommand*\@@footlogo{} \newcommand*\footlogo[2][]{% - \if@atdocument\iftudpagestyle{\currentpagestyle}{\clearpage}{}\fi% - \def\tud@@footlogo{#2}% - \def\tud@@@footlogo{#1}% - \if@atdocument\expandafter\pagestyle\expandafter{\currentpagestyle}\fi% -} -\newcommand*\tud@@footlogo{} -\newcommand*\tud@@@footlogo{} -\DeclareListParser{\tud@footlogo@parser}{:}% -\newcommand*\tud@footlogo[1]{% + \tud@ifverlower{2.04}{\tud@clearpage@iftudps}{}% + \def\@footlogo{#2}% + \def\@@footlogo{#1}% + \global\@tud@footlogo@cmd@settrue% + \tud@ifverlower{2.04}{\tud@pagestyle@iftudps}{}% +} +\newif\if@tud@footlogo@cmd@set +\newcommand*\tud@footlogo@cmd@set[2]{% + \if@tud@footlogo@cmd@set% + \tud@footlogoheight@set% + \tud@savelayerbox{foot@cmd}{% + \hbox to #2{% + \let\@tempa\relax% + \@for\@tempb:=\@footlogo\do{% + \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \@tempa% + \ifx\@tempb\@empty\else% + \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% + \fi% + \let\@tempa\footlogosep% + }% + \hss% + }% + }% + \global\@tud@footlogo@cmd@setfalse% + \fi% +} +\newcommand*\tud@footlogo@cmd@@set[2]{% \begingroup% \def\@tempa{}% \def\@tempb{}% @@ -2460,283 +3046,467 @@ \expandafter\def\expandafter\@tempb\expandafter{\@tempb,##1}% \fi% }% - \tud@footlogo@parser{#1}% - \protected@eappto\tud@@@footlogo{\@tempb}% - \protected@epreto\tud@@@footlogo{% - keepaspectratio,totalheight=\the\footlogoheight,% + \let\@tempc\relax% + \DeclareListParser{\@tempc}{:}% + \@tempc{#1}% + \preto\@@footlogo{% + keepaspectratio,totalheight=\tud@footlogoheight,% }% - \protected@edef\@tempc{\noexpand\includegraphics[\tud@@@footlogo]{\@tempa}}% - \vbox to \dimexpr\layerheight-\dp\strutbox\relax{% - \vfil\hbox{\@tempc}\vfil\vfil% + \appto\@@footlogo{\@tempb}% + \protected@edef\@tempc{\noexpand\includegraphics[\@@footlogo]{\@tempa}}% + \tud@vlayerbox{#2}{\vss\hbox{\@tempc}\vss\vss}{% + The given `\string\footlogo{\@tempa}' is too large.% }% \endgroup% } -\newcommand*\tud@@ddclogo{} -\newcommand*\tud@ddclogo{% - \tud@ddc@check% - \ifcase\@tempb\relax\or% - \def\tud@@ddclogo{DDC-22}% - \ifstr{\tud@foot@logocolor}{HKS41}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{cddarkblue}{\def\tud@@ddclogo{DDC-25}}{}% - \ifstr{\tud@foot@logocolor}{white}{\def\tud@@ddclogo{DDC-28}}{}% - \or% - \def\tud@@ddclogo{DDC-01}% - \or% - \def\tud@@ddclogo{DDC-07}% - \or% - \def\tud@@ddclogo{DDC-19}% - \or% - \def\tud@@ddclogo{DDC-22}% - \or% - \def\tud@@ddclogo{DDC-25}% - \or% - \def\tud@@ddclogo{DDC-28}% - \fi% - \ifx\tud@@ddclogo\@empty\else% - \let\tud@@@footlogo\relax% - \hfill\tud@footlogo{\tud@@ddclogo}% +\newcommand*\tud@footlogo@cmd@use{\tud@uselayerbox{foot@cmd}}% +\newkomafont{tudheadings}{% + \sffamily% + \tud@color{\tud@foot@fontcolor}% +} +\newcommand*\tud@footcontent@font{} +\newcommand*\tud@footcontent@left{} +\newcommand*\tud@footcontent@right{} +\newcommand*\footcontent{% + \@ifstar{% + \@tempswafalse% + \@footcontent% + }{% + \@tempswatrue% + \@footcontent% + }% +} +\newcommand*\@footcontent[2][]{% + \kernel@ifnextchar[%] + {\@@footcontent{#1}{#2}}% + {\@@footcontent{#1}{#2}[\@nnil]}% +} +\newcommand*\@@footcontent{} +\def\@@footcontent#1#2[#3]{% + \if@tempswa% + \def\tud@footcontent@font{% + \usekomafont{tudheadings}% + \tud@divide\@tempa{\tud@head@font@size}{\f@size}% + \linespread{\@tempa}% + \selectfont% + \tud@head@font@light% + #1% + }% + \else% + \def\tud@footcontent@font{#1}% \fi% + \def\tud@footcontent@left{#2}% + \def\tud@footcontent@right{#3}% } -\newlength\tud@ta@textheight -\newlength\tud@ta@topmargin -\newlength\tud@ta@headheight -\newlength\tud@ta@headsep -\newlength\tud@ta@footheight -\newlength\tud@ta@footskip -\newlength\tud@ta@headdiff -\newcommand*\tud@geometry@restore{} -\AfterCalculatingTypearea{% - \setlength\tud@ta@textheight{\textheight}% - \setlength\tud@ta@topmargin{\topmargin}% - \setlength\tud@ta@headheight{\headheight}% - \setlength\tud@ta@headsep{\headsep}% - \ifcsvoid{ta@fh}{% - \setlength\tud@ta@footheight{\footheight}% +\newcommand*\tud@footcontent@use[2]{% + \tud@ddc@check% + \ifcase\@tempb% + \setlength\@tempdimc{\z@}% + \else% + \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% + \addtolength\@tempdimc{\columnsep}% + \fi% + \tud@vlayerbox{#1}{% + \vss% + \hbox to #2{% + \tud@footcontent@font% + \expandafter\ifx\tud@footcontent@right\@nnil\relax% + \vtop{% + \hsize=\dimexpr#2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \else% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \strut\ignorespaces\tud@footcontent@right\strut% + }% + \fi% + \hss% + }% + \vss\vss% }{% - \setlength\tud@ta@footheight{\ta@fh}% + The content for the footer (`\string\footcontent')\MessageBreak% + is too high. You should either reduce the content or\MessageBreak% + lower the fontsize via the optional argument.% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \MessageBreak% + Alternatively you can enlarge the bottom margin\MessageBreak% + by using option `extrabottommargin'.% + \fi% }% - \setlength\tud@ta@footskip{\footskip}% - \let\tud@geometry@restore\Gm@restore@org% - \if@atdocument% - \let\Gm@restore@org\relax% - \tud@geometry@process% - \gdef\tud@currentgeometry{}% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - \fi% - \let\Gm@restore@org\tud@geometry@restore% } -\newcommand*\tud@geometry@hmargin{} -\newcommand*\tud@geometry@vmargin{} -\newcommand*\tud@geometry@tudmargin{} -\iftudscrverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{} \AtEndPreamble{% - \ifstandalonecrop{}{% - \recalctypearea% - \RequirePackage{geometry}[2010/09/12]% - \tud@geometry@process% - \expandafter\pagestyle\expandafter{\currentpagestyle}% + \@ifpackageloaded{geometry}{}{% + \def\tud@geometry@process{\tud@geometry@set}% + \let\tud@BeforeSelectAnyPageStyle\@gobble% }% } -\newcommand*\tud@geometry@process{% - \tud@geometry@set% - \ifcase\tud@geometry\relax% - \def\tud@geometry@hmargin{% - left=\dimexpr\oddsidemargin+1in\relax,% - width=\textwidth,% - marginparwidth=\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% - \if@twoside\if@reversemargin% - marginparwidth=\dimexpr\oddsidemargin+1in-\tud@ta@headsep\relax,% - \fi\fi% - marginparsep=.5\tud@ta@headsep,% - }% - \def\tud@geometry@vmargin{% - top=\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% - +1in\relax,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - textheight=\tud@ta@textheight,% - footskip=\tud@ta@footskip,% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff\relax,% - ignorehead,% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% - }% - \ifdim\tud@ta@headdiff<\z@\relax% - \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% +\tud@ifsacrop{% + \PreventPackageFromLoading{geometry}% +}{% + \RequirePackage{geometry}[2010/09/12]% + \newcommand*\tud@geometry@hmargin{}% + \newcommand*\tud@geometry@vmargin{}% + \newcommand*\tud@geometry@tudmargin{}% + \tud@ifverlower{2.03}{\newcommand*\tud@geometry@ddcmargin{}}{}% + \newcommand*\tud@newgeometry[1]{% + \if@atdocument% + \edef\@tempa{#1}% + \expandafter\newgeometry\expandafter{#1}% + \else% + \edef\@tempa{paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1}% + \expandafter\geometry\expandafter{\@tempa}% \fi% - \iftudscrverlower{2.03}{% - \setlength\tud@dim@ddcdiff{% - \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% - +\tud@ta@footheight-1.25\baselineskip\relax% - }% - \def\tud@geometry@ddcmargin{% - textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff% - -\tud@dim@ddcdiff\relax,% - footskip=\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax,% - }% - }{}% - \ifdim\tud@dim@extrabottommargin=\z@\relax\else% - \ClassWarning{\tudcls@name}{% - Option `extrabottommargin' is ineffective when\MessageBreak% - package typearea is used (`cdgeometry=no')% + }% + \newcommand*\tud@geometry@process{% + \tud@geometry@set% + \ifcase\tud@geometry\relax% false + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in\relax% }% - \fi% - \else% - \ifcase\tud@geometry\or% - \def\tud@geometry@hmargin{% - left=\tud@dim@widemargin,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \ifdim\tud@ta@headdiff<\z@\relax% + \addtolength\tud@dim@headsep{-\tud@ta@headdiff}% + \fi% + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + textwidth=\the\textwidth,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr\evensidemargin+1in-\tud@ta@headsep\relax,% \if@reversemargin% - marginparwidth=\dimexpr\tud@dim@widemargin-\tud@ta@headsep\relax,% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr\oddsidemargin+1in% + -\tud@ta@headsep\relax,% + \fi% \else% - marginparwidth=\dimexpr\tud@dim@slimmargin-\tud@ta@headsep\relax,% + reversemarginpar=false,% \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - \if@twoside asymmetric,\fi% - }% - \or% - \def\tud@geometry@hmargin{% - left=.5\tud@dim@both,% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% }% - \or% - \def\tud@geometry@hmargin{% - \if@twoside% - left=.4\tud@dim@both,% - twoside,% + \edef\tud@geometry@vmargin{% + \if@hincl% + includehead=true,% + top=\the\dimexpr\tud@ta@topmargin+1in\relax,% \else% - left=.5\tud@dim@both,% + includehead=false,% + top=\the\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep% + +1in\relax,% \fi% - textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% - \if@twoside% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + textheight=\the\tud@ta@textheight,% + \tud@geometry@fincl,% + footskip=\the\tud@ta@footskip% + }% + \ifdim\tud@ta@headdiff<\z@\relax% + \setlength\@tempdima{\z@}% + \else% + \setlength\@tempdima{\tud@ta@headdiff}% + \fi% + \edef\tud@geometry@tudmargin{% + 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\tud@ta@textheight-\@tempdima\relax,% + ignorehead% + }% + \tud@ifverlower{2.03}{% + \setlength\tud@dim@ddcdiff{% + \dimexpr.6\tud@dim@topmargin-\tud@ta@footskip+\tud@dim@headsep% + +\tud@ta@footheight-1.25\baselineskip\relax% + }% + \edef\tud@geometry@ddcmargin{% + textheight=\the\dimexpr\tud@ta@textheight-\tud@ta@headdiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\tud@ta@footskip+\tud@dim@ddcdiff\relax% + }% + }{}% + \ifdim\tud@dim@extrabottommargin=\z@\relax\else% + \ClassWarning{\TUDClassName}{% + Option `extrabottommargin' is ineffective when\MessageBreak% + package typearea is used (`cdgeometry=no')% + }% + \fi% + \else% true/symmetric/twoside + \ifcase\tud@geometry\or% true + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\tud@dim@widemargin,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \if@twoside asymmetric,\fi% + \tud@geometry@mpincl,% \if@reversemargin% - marginparwidth=\dimexpr.4\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=true,% + marginparwidth=\the\dimexpr\tud@dim@widemargin% + -\tud@ta@headsep\relax,% \else% - marginparwidth=\dimexpr.6\tud@dim@both-\tud@ta@headsep\relax,% + reversemarginpar=false,% + marginparwidth=\the\dimexpr\tud@dim@slimmargin% + -\tud@ta@headsep\relax,% \fi% - \else% - marginparwidth=\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% - \fi% - marginparsep=.5\tud@ta@headsep,% - bindingoffset=\ta@bcor,% - }% - \fi% - \iftudscrverlower{2.03}{% - \def\tud@geometry@vmargin{% - top=.5\tud@dim@both,% - headheight=\tud@ta@headheight,% - headsep=\tud@dim@headsep,% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \or% symmetric + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + left=\the\dimexpr.5\tud@dim@both\relax,% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + \if@reversemargin% + reversemarginpar=true,% + \else% + reversemarginpar=false,% + \fi% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \or% twoside + \edef\tud@geometry@hmargin{% + bindingoffset=\the\ta@bcor,% + \if@twoside% + left=\the\dimexpr.4\tud@dim@both\relax,% + twoside,% + \else% + left=\the\dimexpr.5\tud@dim@both\relax,% + \fi% + textwidth=\the\dimexpr\paperwidth-\tud@dim@both-\ta@bcor\relax,% + \tud@geometry@mpincl,% + marginparwidth=\the\dimexpr.5\tud@dim@both-\tud@ta@headsep\relax,% + \if@reversemargin% + reversemarginpar=true,% + \if@twoside% + marginparwidth=\the\dimexpr.4\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% + \else% + reversemarginpar=false,% + \if@twoside% + marginparwidth=\the\dimexpr.6\tud@dim@both% + -\tud@ta@headsep\relax,% + \fi% + \fi% + marginparsep=\the\dimexpr.5\tud@ta@headsep\relax% + }% + \fi% + \tud@ifverlower{2.03}{% + \edef\tud@geometry@vmargin{% + top=\the\dimexpr.5\tud@dim@both\relax,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% + }{% + \edef\tud@geometry@vmargin{% + top=\the\tud@dim@slimmargin,% + headheight=\the\tud@ta@headheight,% + headsep=\the\tud@ta@headsep,% + bottom=\the\dimexpr\tud@dim@widemargin% + +\tud@dim@extrabottommargin\relax,% + footskip=\the\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% + \tud@geometry@hincl,% + \tud@geometry@fincl% + }% }% - }{% - \def\tud@geometry@vmargin{% - top=\tud@dim@slimmargin,% - headheight=\tud@ta@headheight,% - headsep=\tud@ta@headsep,% - bottom=\dimexpr\tud@dim@widemargin+\tud@dim@extrabottommargin\relax,% - footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax,% - \tud@geometry@hincl,% - \tud@geometry@fincl,% + \edef\tud@geometry@tudmargin{% + 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,% + ignorehead% }% - }% - \def\tud@geometry@tudmargin{% - top=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax,% - headheight=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@logoy\relax,% - headsep=\tud@dim@headsep,% - ignorehead,% - }% - \setlength\tud@ta@headdiff{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -\tud@dim@slimmargin\relax% - }% - \iftudscrverlower{2.03}{% \setlength\tud@ta@headdiff{% \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% - -.5\tud@dim@both\relax% + -\tud@dim@slimmargin\relax% }% - \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% - \def\tud@geometry@ddcmargin{% - \if@fincl% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip\relax,% - \else% - bottom=\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% - +\tud@dim@ddcdiff\relax,% - \fi% - footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% - -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + \tud@ifverlower{2.03}{% + \setlength\tud@ta@headdiff{% + \dimexpr\tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -.5\tud@dim@both\relax% + }% + \setlength\tud@dim@ddcdiff{.6\tud@dim@topmargin}% + \edef\tud@geometry@ddcmargin{% + \if@fincl% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff+\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip\relax,% + \else% + bottom=\the\dimexpr.5\tud@dim@both+\tud@dim@extrabottommargin% + +\tud@dim@ddcdiff\relax,% + \fi% + footskip=\the\dimexpr\tud@dim@headsep+\tud@ta@footheight% + -1.25\baselineskip+\tud@dim@ddcdiff\relax,% + }% + }{}% + \fi% + \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% + \global\tud@ta@headdiff=\tud@ta@headdiff% + \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% + \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% + \tud@ifverlower{2.03}{% + \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% + }{}% + \tud@geometry@@process% + }% + \newcommand*\tud@geometry@@process{% + \edef\Gm@restore@org{\Gm@restore}% + \tud@ifverlower{2.03}{% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin,% + \tud@geometry@tudmargin,% + \tud@geometry@ddcmargin,% + ignorehead,ignorefoot% }% + \tud@newgeometry{\@tempa}% + \savegeometry{tudareaddc}% }{}% - \fi% - \ifdim\tud@ta@headdiff<\z@\relax\setlength\tud@ta@headdiff{\z@}\fi% - \global\tud@ta@headdiff=\tud@ta@headdiff% - \setlength\tud@dim@headingsvskip{.6\tud@dim@topmargin}% - \global\tud@dim@headingsvskip=\tud@dim@headingsvskip% - \iftudscrverlower{2.03}{% - \ifdim\tud@dim@ddcdiff<\z@\relax\setlength\tud@dim@ddcdiff{\z@}\fi% - \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% - }{}% - \tud@geometry@@process% -} -\newcommand*\tud@geometry@@process{% - \iftudscrverlower{2.03}{% \edef\@tempa{% \tud@geometry@hmargin,% \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% - \tud@geometry@ddcmargin,% - ignorehead,ignorefoot,% + \tud@geometry@tudmargin% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudareaddc}% - }{}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% - \tud@geometry@tudmargin,% + \tud@newgeometry{\@tempa}% + \savegeometry{tudarea}% + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin% + }% + \tud@newgeometry{\@tempa}% + \savegeometry{typearea}% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{tudarea}% - \edef\@tempa{% - \tud@geometry@hmargin,% - \tud@geometry@vmargin,% + \newcommand*\tud@geometry@hincl{% + \if@hincl% + includehead=true% + \else% + includehead=false% + \fi% + }% + \newcommand*\tud@geometry@fincl{% + \if@fincl% + includefoot=true% + \else% + includefoot=false% + \fi% + }% + \newcommand*\tud@geometry@mpincl{% + \if@mincl% + includemp=true% + \else% + includemp=false% + \fi% }% - \expandafter\newgeometry\expandafter{\@tempa}% - \savegeometry{typearea}% } -\newcommand*\tud@geometry@hincl{% - \if@hincl% - includehead,% - \else% - ignorehead,% - \fi% +\newcommand*\tud@currentgeometry{} +\newcommand*\tud@BeforeSelectAnyPageStyle[1]{% + \ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@iftudps{#1}{% + \tud@ifverlower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax% \tud@ddc@foot=false + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + \else% \tud@ddc@foot!=false + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \loadgeometry{tudareaddc}% + \gdef\tud@currentgeometry{tudareaddc}% + }% + \fi% + }{% + \ifstr{\tud@currentgeometry}{tudarea}{}{% + \loadgeometry{tudarea}% + \gdef\tud@currentgeometry{tudarea}% + }% + }% + \setlength\tud@dim@headdiff{\z@}% + \tud@font@koma@set{pagefoot}{\usekomafont{tudheadings}}% + \tud@font@koma@set{pagenumber}{\usekomafont{tudheadings}}% + }{% + \ifstr{\tud@currentgeometry}{typearea}{}{% + \loadgeometry{typearea}% + \gdef\tud@currentgeometry{typearea}% + }% + \setlength\tud@dim@headdiff{\tud@ta@headdiff}% + \ifcase\tud@geometry\relax\else% true/symmetric/twoside + \if@hincl% + \addtolength\tud@dim@headdiff{% + \dimexpr-\tud@ta@headheight-\tud@dim@headsep\relax% + }% + \fi% + \fi% + \tud@font@koma@unset{pagefoot}% + \tud@font@koma@unset{pagenumber}% + }% + \global\tud@dim@headdiff=\tud@dim@headdiff% + }{}% } -\newcommand*\tud@geometry@fincl{% - \if@fincl% - includefoot,% - \else% - ignorefoot,% - \fi% +\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} +\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} +\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +}{}{\tud@patch@wrn{cleardoublepageusingstyle}} +\tud@ifverlower{2.03}{% + \newcommand*\tud@ddc@enlargepage[1][]{% + \tud@iftudps{#1}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false + \enlargethispage{-\tud@dim@ddcdiff}% + \fi% + }% + }{}% + }% +}{} +\newlength\tud@ta@textheight +\newlength\tud@ta@topmargin +\newlength\tud@ta@headheight +\newlength\tud@ta@headsep +\newlength\tud@ta@footheight +\newlength\tud@ta@footskip +\newlength\tud@ta@headdiff +\newcommand*\tud@AfterChangingArea{% + \setlength\tud@ta@textheight{\textheight}% + \setlength\tud@ta@topmargin{\topmargin}% + \setlength\tud@ta@headheight{\headheight}% + \setlength\tud@ta@headsep{\headsep}% + \ifcsvoid{ta@fh}{% + \setlength\tud@ta@footheight{\footheight}% + }{% + \setlength\tud@ta@footheight{\ta@fh}% + }% + \setlength\tud@ta@footskip{\footskip}% + \tud@geometry@process% + \global\@tud@mainlogo@settrue% + \gdef\tud@currentgeometry{}% + \expandafter\pagestyle\expandafter{\currentpagestyle}% +} +\AtEndPreamble{% + \tud@ifsacrop{}{% + \AfterCalculatingTypearea{\tud@AfterChangingArea}% + \AfterSettingArea{\tud@AfterChangingArea}% + \BeforeSelectAnyPageStyle{\tud@BeforeSelectAnyPageStyle{#1}}% + \recalctypearea% + }% } \newcommand*\tud@ps{tudheadings} \newcommand*\tud@ps@select{% @@ -2773,11 +3543,11 @@ \TUD@parameter@set{tudpage}{#1}% \tud@ps@select% \tud@multicols@check% - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \begin{multicols}{\tud@multicols}% \fi% \BODY% - \ifnum\tud@multicols>1\relax% + \ifnum\tud@multicols>\@ne\relax% \end{multicols}% \fi% }[% @@ -2802,9 +3572,9 @@ } \TUD@parameter{tudpage}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{% - \iftudpagestyle{#1}{\renewcommand*\tud@ps{#1}}{% + \tud@iftudps{#1}{\renewcommand*\tud@ps{#1}}{% \ifstr{#1}{empty}{\renewcommand*\tud@ps{empty.tudheadings}}{% \ifstr{#1}{plain}{\renewcommand*\tud@ps{plain.tudheadings}}{% \ifstr{#1}{headings}{\renewcommand*\tud@ps{tudheadings}}{% @@ -2818,27 +3588,27 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{tudpage}{#1}}% } %%% From File: tudscr-layout.dtx -\newcommand*\tud@part@fontcolor{black} -\newcommand*\tud@chapter@fontcolor{black} +\newcommand*\tud@part@fontcolor{} +\newcommand*\tud@chapter@fontcolor{} \newkomafont{parttitle}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% \usesizeofkomafont{section}% } \newlength\pageheadingsvskip \newlength\headingsvskip \newcommand*\tud@headmidvskip{\par\nobreak\vspace{.5\baselineskip}} \newcommand*\tud@headmidvskip@neg{% - \setbox0\vbox{\tud@headmidvskip}% - \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht0\relax}% + \setbox\z@\vbox{\tud@headmidvskip}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-\ht\z@\relax}% } \newcommand*\tud@layout@process{% - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \bool@std@lock{@tud@cover@cdgeometry}{false}% - \else% + \else% !false \bool@std@lock{@tud@cover@cdgeometry}{true}% \fi% - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \tud@cmd@restore{maketitle}% \tud@cmd@restore{@maketitle}% \tud@cmd@restore{titlepagestyle}% @@ -2849,7 +3619,7 @@ \tud@font@koma@unset{author}% \tud@font@koma@unset{date}% \tud@font@koma@unset{publishers}% - \else% + \else% !false \tud@cmd@store{maketitle}% \tud@cmd@store{@maketitle}% \tud@cmd@store{titlepagestyle}% @@ -2858,18 +3628,18 @@ \usekomafont{disposition}% \tud@font@heading% \tud@font@heading@size% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subtitle}{% \tud@font@heading% \usesizeofkomafont{section}% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{subject}{% \fontfamily{\sfdefault}% \fontseries{\bfdefault}% \selectfont% - \color{\tud@title@fontcolor}% + \tud@color{\tud@title@fontcolor}% }% \tud@font@koma@set{author}{\usekomafont{subject}}% \tud@font@koma@set{date}{\usekomafont{titlepage}}% @@ -2877,68 +3647,87 @@ \let\maketitle\tud@maketitle% \renewcommand*\titlepagestyle{plain.tudheadings}% \fi% - \ifcase\tud@layout@part\relax% + \ifcase\tud@layout@part\relax% false \tud@cmd@restore{partheadstartvskip}% - \tud@cmd@restore{partheadmidvskip}% \tud@cmd@restore{partheadendvskip}% \tud@cmd@restore{partheademptypage}% \tud@cmd@restore{partpagestyle}% - \tud@cmd@restore{@part}% - \tud@cmd@restore{@spart}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@startpart}% + \tud@cmd@restore{scr@@startspart}% + }{% + \tud@cmd@restore{@part}% + \tud@cmd@restore{@spart}% + }% \tud@sectioning@reset[addpart]{part}% \tud@font@koma@unset{partnumber}% - \else% + \else% !false \tud@cmd@store{partheadstartvskip}% - \tud@cmd@store{partheadmidvskip}% \tud@cmd@store{partheadendvskip}% \tud@cmd@store{partheademptypage}% \tud@cmd@store{partpagestyle}% - \tud@cmd@store{@part}% - \tud@cmd@store{@spart}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@startpart}% + \tud@cmd@store{scr@@startspart}% + }{% + \tud@cmd@store{@part}% + \tud@cmd@store{@spart}% + }% \if@tud@parttitle% \tud@sectioning@set[addpart]{part}{\usekomafont{parttitle}}% \tud@font@koma@set{partnumber}{\usekomafont{parttitle}}% - \renewcommand*\partheadmidvskip{\enskip}% \else% \tud@sectioning@set[addpart]{part}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% }% \tud@font@koma@set{partnumber}{% \tud@font@heading% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% }% - \let\partheadmidvskip\tud@headmidvskip% \fi% \let\partheadstartvskip\tud@partheadstartvskip% \let\partheadendvskip\tud@partheadendvskip% \let\partheademptypage\relax% \renewcommand*\partpagestyle{plain.tudheadings}% - \let\@part\tud@@part% - \let\@spart\tud@@spart% + \ifcsdef{scr@v@3.18}{% + \let\scr@@startpart\tud@@startpart% + \let\scr@@startspart\tud@@startspart% + }{% + \let\@part\tud@@part% + \let\@spart\tud@@spart% + }% \fi% - \ifcase\tud@layout@chapter\relax% + \ifcase\tud@layout@chapter\relax% false \tud@cmd@restore{chapterheadstartvskip}% \tud@cmd@restore{chapterformat}% \tud@cmd@restore{@chapter}% \tud@cmd@restore{@schapter}% - \tud@cmd@restore{@@makechapterhead}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@restore{scr@@makechapterhead}% + }{% + \tud@cmd@restore{@@makechapterhead}% + }% \tud@sectioning@reset[addchap]{chapter}% \tud@font@koma@unset{chapterprefix}% \tud@sectioning@reset[addsec]{section}% \tud@sectioning@reset{subsection}% \tud@sectioning@reset{subsubsection}% \tud@sectioning@reset{minisec}% - \else% + \else% !false \tud@cmd@store{chapterheadstartvskip}% \tud@cmd@store{chapterformat}% \tud@cmd@store{@chapter}% \tud@cmd@store{@schapter}% - \tud@cmd@store{@@makechapterhead}% + \ifcsdef{scr@v@3.18}{% + \tud@cmd@store{scr@@makechapterhead}% + }{% + \tud@cmd@store{@@makechapterhead}% + }% \tud@sectioning@set[addchap]{chapter}{% \tud@font@heading% \tud@font@heading@size% - \color{\tud@chapter@fontcolor}% + \tud@color{\tud@chapter@fontcolor}% }% \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% \tud@sectioning@set[addsec]{section}{\tud@font@heading}% @@ -2946,20 +3735,42 @@ \tud@sectioning@set{subsubsection}{\tud@font@heading}% \tud@sectioning@set{minisec}{\tud@font@heading}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \let\@@makechapterhead\tud@@@makechapterhead% + \ifcsdef{scr@v@3.18}{% + \let\scr@@makechapterhead\tud@@@makechapterhead% + }{% + \let\@@makechapterhead\tud@@@makechapterhead% + }% \fi% } +\newcommand*\tud@layout@specialpage@set[1]{% + \tud@font@koma@set{footnote}{% + \edef\@tempa{% + \noexpand\tud@color{% + \expandafter\noexpand\csname tud@#1@fontcolor\endcsname% + }% + }\@tempa% + }% + \tud@cmd@store{footnoterule}% + \let\footnoterule\relax% +} +\newcommand*\tud@layout@specialpage@unset{% + \tud@font@koma@unset{footnote}% + \tud@cmd@restore{footnoterule}% +} \newcommand*\tud@partheadstartvskip{% - \def\tud@part@fontcolor{black}% - \ifcase\tud@layout@part\relax\or\or% + \def\tud@part@fontcolor{}% false/true + \ifcase\tud@layout@part\relax\or\or% litecolor + \def\tud@part@fontcolor{HKS41}% + \or% barcolor \def\tud@part@fontcolor{HKS41}% - \or% + \or% bicolor \def\tud@part@fontcolor{HKS41}% - \or% + \or% color \def\tud@part@fontcolor{HKS41!30}% - \or% + \or% full \def\tud@part@fontcolor{HKS41!30}% \fi% + \tud@layout@specialpage@set{part}% \begingroup% \vspace*{% \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% @@ -2971,55 +3782,62 @@ \begingroup% \tud@font@heading% \tud@font@heading@size% - \color{\tud@part@fontcolor}% + \tud@color{\tud@part@fontcolor}% \ifx\@@title\@empty% + \ClassWarning{\TUDClassName}{% + You activated the option `parttitle' but\MessageBreak% + no title was given% + }% \tud@makeuppercase{\strut}% \else% \tud@makeuppercase{\@@title}% \fi% - \par\nobreak - {\usekomafont{titlepage}\vskip 2ex\@plus1ex\@minus1ex}% + \par\nobreak% + {\usekomafont{titlepage}{\vskip 2ex\@plus1ex\@minus1ex}}% \endgroup% \else% - \usekomafont{partnumber}% - \tud@headmidvskip@neg% + \usekomafont{partnumber}{\tud@headmidvskip@neg}% \fi% \endgroup% } \newcommand*\tud@partheadendvskip{% \tud@cleardoublespecialpage{% \def\tud@pagecolor{}% - \ifcase\tud@layout@part\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \ifcase\tud@layout@part\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{white}% - \def\tud@foot@logocolor{white}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% full \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \addtokomafont{pagenumber}{\sffamily\color{\tud@part@fontcolor}}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% -} -\let\tud@@part\@part -\ifcsdef{scr@v@3.17}{% - \patchcmd{\tud@@part}{% - \ifnumbered{part}{% - \size@partnumber{\partformat}% - \setlength{\@tempskipa}{\scr@part@innerskip}% - \partheadmidvskip% + \tud@layout@specialpage@unset% +} +\@tempswafalse +\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\if@tempswa + \newcommand*\tud@@startpart{}% + \let\tud@@startpart\scr@@startpart% + \patchcmd{\tud@@startpart}{% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\@nameuse{#1format}}% + \setlength{\@tempskipa}{\@nameuse{scr@#1@innerskip}}% + \partheadmidvskip }{}% }{% - \ifnumbered{part}{% - \size@partnumber{\tud@makeuppercase{\partformat}}% + \ifnumbered{#1}{% + \usekomafont{#1prefix}{\tud@makeuppercase{\@nameuse{#1format}}}% \if@tud@parttitle% \enskip% \else% @@ -3027,63 +3845,77 @@ \fi% }{% \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% + \usekomafont{#1prefix}{\vphantom{\partname}}% \tud@headmidvskip% \fi% }% - }{}{\tud@patch@wrn{@part}}% -}{% + }{}{\tud@patch@wrn{scr@startpart}}% + \newcommand*\tud@@startspart{}% + \let\tud@@startspart\scr@@startspart% + \patchcmd{\tud@@startspart}{% + \normalfont + \sectfont\nobreak + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip\nobreak% + \fi% + }{}{\tud@patch@wrn{scr@@startspart}}% +\else + \newcommand*\tud@@part{}% + \let\tud@@part\@part \patchcmd{\tud@@part}{% \ifnumbered{part}{% \size@partnumber{\partformat}% + \setlength{\@tempskipa}{\scr@part@innerskip}% \partheadmidvskip% }{}% }{% \ifnumbered{part}{% \size@partnumber{\tud@makeuppercase{\partformat}}% - \partheadmidvskip% + \if@tud@parttitle% + \enskip% + \else% + \tud@headmidvskip% + \fi% }{% \if@tud@parttitle\else% \size@partnumber{\vphantom{\partname}}% - \partheadmidvskip% + \tud@headmidvskip% \fi% }% }{}{\tud@patch@wrn{@part}}% -} -\let\tud@@spart\@spart -\patchcmd{\tud@@spart}{% - \normalfont - \sectfont\nobreak\size@part -}{% - \normalfont\sectfont\nobreak% - \if@tud@parttitle\else% - \size@partnumber{\vphantom{\partname}}% - \fi% - \partheadmidvskip\unskip% - \size@part% -}{}{\tud@patch@wrn{@spart}} + \newcommand*\tud@@spart{}% + \let\tud@@spart\@spart + \patchcmd{\tud@@spart}{% + \normalfont + \sectfont\nobreak\size@part + }{% + \normalfont\sectfont\nobreak% + \if@tud@parttitle\else% + \size@partnumber{\vphantom{\partname}}% + \tud@headmidvskip\nobreak% + \fi% + \size@part% + }{}{\tud@patch@wrn{@spart}} +\fi \newcommand*\tud@partpreamble{% - \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap \KOMAoptions{titlepage=false}% - \addtokomafont{disposition}{\color{\tud@part@fontcolor}}% - \addtokomafont{dictumtext}{\color{\tud@part@fontcolor}}% - \color{\tud@part@fontcolor}% + \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% + \addtokomafont{dictumtext}{\tud@color{\tud@part@fontcolor}}% + \tud@color{\tud@part@fontcolor}% \vskip\dimexpr\topskip+.9\baselineskip\relax% \@afterindentfalse\@afterheading% } \newcommand*\tud@chapterheadstartvskip{% - \def\tud@chapter@fontcolor{black}% - \ifcase\tud@layout@chapter\relax\or\else% + \def\tud@chapter@fontcolor{}% + \ifcase\tud@layout@chapter\relax\or\else% *color \def\tud@chapter@fontcolor{HKS41}% \fi% - \ifcsdef{scr@v@3.15}{% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% - }% - }{% - \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip\relax% - }% + \vspace*{% + \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip+\parskip\relax% }% \if@tud@chapterpage% \vspace*{\pageheadingsvskip}% @@ -3091,71 +3923,64 @@ \vspace*{\headingsvskip}% \fi% }% -\newcommand*\tud@@@makechapterhead{} -\let\tud@@@makechapterhead\@@makechapterhead -\ifcsdef{scr@v@3.15}{% - \ifcsdef{scr@v@3.17}{% - \patchcmd{\tud@@@makechapterhead}{% - \chapterformat - \setlength{\@tempskipa}{\scr@chapter@innerskip}% - \chapterheadmidvskip - }{% - \tud@headmidvskip@neg% - \tud@makeuppercase{\chapterformat}% - \tud@headmidvskip% - }{}{\tud@patch@wrn{@@makechapterhead}}% +\@tempswafalse +\ifcsdef{scr@v@3.18}{\@tempswatrue}{}% +\if@tempswa + \newcommand*\tud@@@makechapterhead{} + \let\tud@@@makechapterhead\scr@@makechapterhead + \patchcmd{\tud@@@makechapterhead}{% + \csname #1format\endcsname + \setlength{\@tempskipa}{% + \csname scr@#1@innerskip\endcsname + }% + \chapterheadmidvskip }{% - \patchcmd{\tud@@@makechapterhead}{\chapterformat\chapterheadmidvskip}{% - \tud@headmidvskip@neg% - \tud@makeuppercase{\chapterformat}\tud@headmidvskip - }{}{\tud@patch@wrn{@@makechapterhead}}% - }% + \tud@headmidvskip@neg% + \tud@makeuppercase{\csname #1format\endcsname}% + \tud@headmidvskip% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% \patchcmd{\tud@@@makechapterhead}{\IfUsePrefixLine{}{\raggedchapter}}{% \IfUsePrefixLine{\IfUseNumber{\setlength\parskip{\z@}}{}}{\raggedchapter}% - }{}{\tud@patch@wrn{@@makechapterhead}}% -}{% - \patchcmd{\tud@@@makechapterhead}{\chapterheadstartvskip}{% - \chapterheadstartvskip% - \ifnumbered{chapter}{% - \if@chapterprefix% - \begingroup% - \usekomafont{chapterprefix}% - \tud@headmidvskip@neg% - \endgroup% - \fi% - }{}% - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\chapterformat}{% + }{}{\tud@patch@wrn{scr@@makechapterhead}}% +\else + \newcommand*\tud@@@makechapterhead{} + \let\tud@@@makechapterhead\@@makechapterhead + \patchcmd{\tud@@@makechapterhead}{% + \chapterformat + \setlength{\@tempskipa}{\scr@chapter@innerskip}% + \chapterheadmidvskip + }{% + \tud@headmidvskip@neg% \tud@makeuppercase{\chapterformat}% - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\endgraf\nobreak\vskip.5\baselineskip}{% - \tud@headmidvskip - }{}{\tud@patch@wrn{@@makechapterhead}} - \patchcmd{\tud@@@makechapterhead}{\interlinepenalty}{% - \ifnumbered{chapter}{\setlength\parskip{\z@}}{}\interlinepenalty - }{}{\tud@patch@wrn{@@makechapterhead}} -} + \tud@headmidvskip% + }{}{\tud@patch@wrn{@@makechapterhead}}% + \patchcmd{\tud@@@makechapterhead}{\IfUsePrefixLine{}{\raggedchapter}}{% + \IfUsePrefixLine{\IfUseNumber{\setlength\parskip{\z@}}{}}{\raggedchapter}% + }{}{\tud@patch@wrn{@@makechapterhead}}% +\fi \newcommand*\tud@chapterpreamble{% - \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \ifnum\tud@abstract@level>\@ne\relax\def\tud@abstract@level{1}\fi% sec/chap \KOMAoptions{titlepage=false}% \if@tud@chapterpage% - \ifcase\tud@cdfont\relax\or% + \ifcase\tud@cdfont\relax\or% true \TUDoptions{cdfont=true}% - \or% + \or% heavy \TUDoptions{cdfont=heavy}% \fi% - \addtokomafont{disposition}{\color{\tud@chapter@fontcolor}}% - \addtokomafont{dictumtext}{\color{\tud@chapter@fontcolor}}% - \color{\tud@chapter@fontcolor}% + \addtokomafont{disposition}{\tud@color{\tud@chapter@fontcolor}}% + \addtokomafont{dictumtext}{\tud@color{\tud@chapter@fontcolor}}% + \tud@color{\tud@chapter@fontcolor}% \fi% \@afterindentfalse\@afterheading% } \patchcmd{\set@@@@preamble}{% \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }{% - \def\@tempa####1@####2{\@nameuse{tud@####1preamble}}% + \def\@tempa####1@####2{% + \@nameuse{tud@####1preamble}% + \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% + }% \hbox to\hsize{% - \let\@parboxrestore\relax% \let\phantomsection\relax% #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% }% @@ -3164,61 +3989,72 @@ \if@tud@chapterpage% \@restonecolfalse% \if@twocolumn\@restonecoltrue\onecolumn\fi% + \tud@layout@specialpage@set{chapter}% \fi% } +\newcommand*\tud@head@bar@store{}% +\let\tud@head@bar@store\relax% +\newcommand*\tud@head@bar@restore{}% +\let\tud@head@bar@restore\relax% \newcommand*\tud@chapter@app{% \if@tud@chapterpage% \tud@cleardoublespecialpage{% \def\tud@pagecolor{}% - \ifcase\tud@layout@chapter\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \let\tud@foot@fontcolor\tud@chapter@fontcolor% + \ifcase\tud@layout@chapter\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41!10}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{HKS41}% - \def\tud@foot@logocolor{HKS41}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% fullcolor \def\tud@pagecolor{HKS41!10}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \addtokomafont{pagenumber}{\sffamily\color{\tud@chapter@fontcolor}}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \clearpage% }% + \tud@layout@specialpage@unset% \if@restonecol\twocolumn\fi% \else% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% + \edef\tud@head@bar@store{\tud@head@bar}% + \edef\tud@head@bar@restore{% + \gdef\noexpand\tud@head@bar{\tud@head@bar@store}% + \global\let\noexpand\tud@head@bar@store\relax% + \global\let\noexpand\tud@head@bar@restore\relax% + }% + \ifcase\tud@layout@chapter\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color + \cs@set@lock{tud@head@bar}{1}% + \or% fullcolor + \cs@set@lock{tud@head@bar}{3}% + \fi% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\chapterpagestyle]}{}% \fi% \if@twocolumn% \@afterindentfalse\@afterheading% \fi% } \newcommand*\tud@clearcolor@wrn{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Option `clearcolor' is only available together with\MessageBreak% options `twoside' and `open=right'% }% \global\let\tud@clearcolor@wrn\relax% } -\ifcsdef{scr@v@3.14}{}{% - \providecommand*\SecDef[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}} - \providecommand\scr@section@dblarg[1]{% - \kernel@ifnextchar[%] - {#1}% - {\scr@section@xdblarg{#1}}% - } - \providecommand\scr@section@xdblarg[2]{% - \begingroup - \edef\reserved@a{% - \unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}% - {\scr@osectarg}}% - \reserved@a - } -} \newcommand*\tud@part{} \newcommand*\tud@spart{} \newcommand*\tud@addpart{} @@ -3229,6 +4065,8 @@ \newcommand*\tud@saddchap{} \newcommand*\tud@section{} \newcommand*\tud@ssection{} +\newcommand*\tud@addsec{} +\newcommand*\tud@saddsec{} \newcommand*\tud@subsection{} \newcommand*\tud@ssubsection{} \newcommand*\tud@subsubsection{} @@ -3302,155 +4140,185 @@ \tud@makeuppercase{#1}% \endgroup% } -\newcommand*\tud@font@koma@set[2]{% - \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% - \@namedef{tud@font@koma@#1}{#2\nobreak}% -} -\newcommand*\tud@font@koma@reset[1]{% - \addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}% -} -\newcommand*\tud@font@koma@unset[1]{% - \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% -} %%% From File: tudscr-frontmatter.dtx \newcommand*\tud@fm@check[2]{% - \ifnumless{\@nameuse{tud@#1@level}}{3}{% - \@tempswatrue% - \ifboolexpr{bool {@tud@#1@fil} and bool {@tud@#1@multi}}{% - \setbox0\vbox{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-\baselineskip}}% - \fi% - #2% - }% - \ifdim\textheight<\dimexpr\ht0+\dp0\relax% - \ClassWarning{\tudcls@name}{% + \global\let\tud@fm@set\tud@fm@first% + \ifnumless{\@nameuse{tud@#1@level}}{3}{% false/true/section + \ifboolexpr{% + bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% + }{% + \sbox\z@{\vbox{#2}}% + \ifdim\textheight<\dimexpr\ht\z@+\dp\z@\relax% + \ClassWarning{\TUDClassName}{% The given content within the `#1'\MessageBreak% environment is too large, so it wasn't possible\MessageBreak% to center the body vertically. Setting the option\MessageBreak% `#1=nofill' would be a solution. You\MessageBreak% could also use multiple `#1' environments% }% - \@tempswafalse% + \boolfalse{@tud@#1@fil}% \fi% }{}% - }{}% - #2% -} -\newcommand*\tud@fm@set[3]{% - \ifnumless{\@nameuse{tud@#1@level}}{3}{}{% + }{% chapter \boolfalse{@tud@#1@multi}% \boolfalse{@tud@#1@fil}% }% - \if@twocolumn% - \tud@fm@body{#1}{#2}{#3}% - \else% + \ifnum\@nameuse{tud@#1@toc}>\tw@\relax% + \tud@fm@toc{#1}{#2}% + \fi% + \global\let\tud@fm@set\tud@fm@first% + #2% +} +\newcommand*\tud@fm@@toc{} +\newcommand*\tud@fm@@@toc{} +\newcommand*\tud@fm@toc[2]{% + \ifbool{@tud@#1@multi}{% + \begingroup% + \let\tud@fm@@@toc\@empty% + \renewcommand*\tud@fm@head[2]{% + \protected@edef\@tempa{##2}% + \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% + \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + }% + \let\clearpage\relax% + \sbox\z@{\vbox{#2}}% + \protected@edef\@tempa{% + \noexpand\endgroup% + \noexpand\ifnumodd{\csname tud@#1@toc\endcsname}{% + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% + }{% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + }% + }% + \@tempa% + }{% + \ClassWarning{\TUDClassName}{% + It isn't possible to use `#1=single'\MessageBreak% + or `#1=chapter' + with `#1=tocmultiple'% + }% + \edef\@tempa{% + \noexpand\cs@set@lock{tud@#1@toc}{% + \the\numexpr\@nameuse{tud@#1@toc}-2\relax% + }% + }% + \@tempa% + }% +} +\newcommand\tud@fm@set[1]{} +\newcommand\tud@fm@first[1]{% + \global\let\tud@fm@set\tud@fm@next% + \if@twocolumn\else% \if@titlepage% - \ifbool{@tud@#1@multi}{}{\clearpage}% \ifbool{@tud@#1@fil}{% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% + \null\vfil% + \ifnum\@nameuse{tud@#1@level}=\tw@\relax% section + \vspace{\dimexpr-\parskip-\baselineskip\relax}% + {\usekomafont{section}{\vspace{-\baselineskip}}}% \fi% - \if@tempswa\vspace*{\z@ \@plus 1fil}\fi% }{}% - \tud@fm@body{#1}{#2}{#3}% - \ifbool{@tud@#1@fil}{\vspace*{\z@ \@plus 2fil}}{}% - \else% - \ifnum\@nameuse{tud@#1@level}<2\begin{\tud@quoting}\fi% - \tud@fm@body{#1}{#2}{#3}% - \ifnum\@nameuse{tud@#1@level}<2\end{\tud@quoting}\fi% \fi% \fi% } -\newcommand*\tud@fm@body[3]{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#2}}]% +\newcommand\tud@fm@next[1]{% + \if@twocolumn% + \ifbool{@tud@#1@multi}{\par}{\newpage}% \else% - \ifbool{@tud@#1@multi}{% - \ifcase\@nameuse{tud@#1@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% + \if@titlepage% + \ifbool{@tud@#1@multi}{% + \ifbool{@tud@#1@fil}{\vfil}{}% + }{% + \ifbool{@tud@#1@fil}{\null\clearpage\null\vfil}{\clearpage}% + }% + \else% + \ifnum\@nameuse{tud@#1@level}=\z@% + \ifdef{\main@language}{\vspace*{-\baselineskip}}{}% \fi% - }{}% - \tud@fm@head{#1}{#2}% - \fi% - #3\par% - \ifnum\tud@multicols>1\relax% - \end{multicols}% + \fi% \fi% } +\newcommand*\tud@fm@body@start[3]{% + \begingroup% + \TUD@parameter@set{#1}{#2}% + \tud@fm@set{#1}% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\begin{\tud@quoting}\fi% false/true + \fi\fi% + \ifnum\tud@multicols>\@ne\relax% + \setlength\multicolsep{\z@}% + \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#3}}]% + \else% + \tud@fm@head{#1}{#3}% + \fi% +} +\newcommand*\tud@fm@body@end[1]{% + \ifnum\tud@multicols>\@ne\relax% + \end{multicols}% + \else% + \par% + \fi% + \if@twocolumn\else\if@titlepage\else\relax% + \ifnum\@nameuse{tud@#1@level}<\tw@\end{\tud@quoting}\par\fi% false/true + \fi\fi% + \endgroup% +} \newcommand*\tud@fm@head[2]{% - \ifcase\@nameuse{tud@#1@level}\relax% + \ifcase\@nameuse{tud@#1@level}\relax% false \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% - \or% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \if@twocolumn% + \vskip\dimexpr\smallskipamount-\parskip\relax% + \else% + \vskip\dimexpr\bigskipamount-\parskip\relax% + \fi% + }% + \or% true \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% \@afterindentfalse% + \ifstr{\@currenvir}{\tud@quoting}{}{% + \vskip\dimexpr\bigskipamount-\parskip\relax% + }% \begingroup% - \centering% + \noindent\centering% \normalfont\sectfont\nobreak#2% \@endparpenalty\@M% \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\dimexpr\medskipamount-\parskip\relax% \@afterheading% - \or% + \or% section \section*{#2}% \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% - \or% + \or% chapter \chapter*{#2}% \@mkdouble{\MakeMarkcase{#2}}% \fi% \ifbool{@tud@#1@markboth}{% \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% }{}% - \ifbool{@tud@#1@toc}{% - \ifbool{@tud@#1@toc@leveldown}{% - \addsectiontocentry{}{#2}% - }{% - \addchaptertocentry{}{#2}% - }% - }{}% -} -\newcommand*\tud@fm@next[2]{% - \TUD@parameter@set{#1}{#2}% - \if@twocolumn% - \ifbool{@tud@#1@multi}{\par}{\newpage}% - \else% - \if@titlepage% - \ifbool{@tud@#1@fil}{% - \vspace*{\z@ \@plus 1fil}% - \ifbool{@tud@#1@multi}{}{% - \vspace*{\z@ \@plus 1fil}% - \clearpage% - \ifcase\@nameuse{tud@#1@level}\relax\or\or% - \vspace*{-\parskip}% - {\usekomafont{section}\vspace*{-2\baselineskip}}% - \fi% - \vspace*{\z@ \@plus 1fil}% - }% - }{\ifbool{@tud@#1@multi}{}{\clearpage}}% - \else% - \ifnum\@nameuse{tud@#1@level}<2% - \end{\tud@quoting}% - \begin{\tud@quoting}% - \fi% + \ifnum\@nameuse{tud@#1@toc}>\z@\relax% + \ifnum\@nameuse{tud@#1@toc}<\thr@@\relax% + \ifnumodd{\csname tud@#1@toc\endcsname}{% + \addchaptertocentry{}{#2}% + }{% + \addsectiontocentry{}{#2}% + }% \fi% \fi% } \newcommand*\tud@fm@pagestyle[2]{% \if@titlepage% \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% - \ClassError{\tudcls@name}{`#2' is no valid pagestyle}{% + \ClassError{\TUDClassName}{`#2' is no valid pagestyle}{% You tried to use `#2' as a pagestyle for the\MessageBreak% - `#1' environment, but it was never defined% + `#1' environment, but it was never defined.% }% }% \else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The key `pagestyle' can only be used either with\MessageBreak% activated option `titlepage' or with chapter\MessageBreak% headings (`#1=chapter')% @@ -3462,7 +4330,7 @@ \csundef{abstract} \csundef{endabstract} \NewEnviron{abstract}[1][]{% - \ifnumless{\@nameuse{tud@abstract@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@abstract@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% \TUD@parameter@set{abstract}{#1}% \tud@multicols@check% @@ -3472,16 +4340,25 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{abstract}{\tud@fm@set{abstract}{\abstractname}{\BODY}}% + \renewcommand*\nextabstract[1][]{% + \tud@fm@body@end{abstract}% + \tud@fm@body@start{abstract}{##1}{\abstractname}% + }% + \tud@fm@check{abstract}{% + \tud@fm@body@start{abstract}{#1}{\abstractname}% + \BODY% + \tud@fm@body@end{abstract}% + }% }[% \if@titlepage% + \if@tud@abstract@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] \TUD@parameter{abstract}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% @@ -3500,26 +4377,15 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% } \newcommand*\nextabstract[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \else% - \ifbool{@tud@abstract@multi}{% - \ifcase\@nameuse{tud@abstract@level}\relax\or% - \vspace{\dimexpr\bigskipamount-\parskip\relax}% - \fi% - }{}% - \fi% - \tud@fm@next{abstract}{#1}% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}[{\tud@fm@head{abstract}{\abstractname}}]% - \else% - \tud@fm@head{abstract}{\abstractname}% - \fi% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextabstract'}{% + The command `\string\nextabstract' can only be used within\MessageBreak% + the environment `abstract'.% + }% } \newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% - \ifnumless{\@nameuse{tud@declaration@level}}{3}{}{\@titlepagetrue}% + \ifnum\@nameuse{tud@declaration@level}>\tw@\relax\@titlepagetrue\fi% chapter \let\tud@ps\relax% \TUD@parameter@set{declaration}{#1}% \tud@multicols@check% @@ -3529,24 +4395,17 @@ \clearpage% \tud@ps@select% \fi% - \tud@fm@check{declaration}{% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% - \BODY% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% - }% + \tud@fm@check{declaration}{\BODY}% }[% \if@titlepage% + \if@tud@declaration@fil\vfil\null\fi% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] \TUD@parameter{declaration}{% \TUD@parameter@define{language}{\selectlanguage{#1}}% - \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{columns}{\cs@std@lock{tud@multicols}{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% @@ -3570,14 +4429,10 @@ \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{declaration}{#1}}% } \newcommand*\declaration[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% - \tud@fm@blocking% + \tud@fm@confirmation[#1]% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3585,21 +4440,26 @@ \tud@fm@blocking% \end{declarations}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% +} +\newcommand*\nextdeclaration[3][]{% + \ifbool{@tud@declarations}{% + \tud@fm@body@start{declaration}{#1}{#2} + #3% + \tud@fm@body@end{declaration}% + }{% + \ClassError{\TUDClassName}{Incorrect usage of `\string\nextdeclaration'}{% + The command `\string\nextdeclaration' can only be used\MessageBreak% + within the environment `declarations'.% + }% + }% } \newcommand*\confirmation[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{supporter=##1}% }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@confirmation% + \tud@fm@confirmation[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3609,28 +4469,19 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } -\newcommand*\tud@fm@confirmation{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\confirmationname}{% - \confirmationtext\vskip\z@\@confirmationclosing% - }% - }% +\newcommand*\tud@fm@confirmation[1][]{% + \tud@fm@body@start{declaration}{#1}{\confirmationname}% + \confirmationtext\vskip\z@\@confirmationclosing% + \tud@fm@body@end{declaration}% } \newcommand*\blocking[1][]{% - \ifnum\tud@multicols>1\relax% - \end{multicols}% - \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{company=##1}% }% \ifbool{@tud@declarations}{% \begingroup% - \TUD@parameter@set{declaration}{#1}% - \tud@fm@blocking% + \tud@fm@blocking[#1]% \endgroup% }{% \begin{declarations}[#1]% @@ -3640,14 +4491,11 @@ \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% - \ifnum\tud@multicols>1\relax% - \begin{multicols}{\tud@multicols}% - \fi% } -\newcommand*\tud@fm@blocking{% - \tud@fm@check{declaration}{% - \tud@fm@set{declaration}{\blockingname}{\blockingtext}% - }% +\newcommand*\tud@fm@blocking[1][]{% + \tud@fm@body@start{declaration}{#1}{\blockingname}% + \blockingtext% + \tud@fm@body@end{declaration}% } %%% From File: tudscr-title.dtx \newkomafont{thesis}{\usekomafont{title}\LARGE} @@ -3657,21 +4505,21 @@ \selectfont% \large% } -\newcommand*\tud@title@fontcolor{black} +\newcommand*\tud@title@fontcolor{} \newcommand*\tud@titlepagenumber{}% \let\tud@titlepagenumber\relax% \newcommand*\tud@maketitle[1][]{% \begingroup% \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% + \ifcase\tud@layout@title\relax% false \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false \if@titlepage% \tud@maketitlepage% \else% - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\else% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\else% *color \def\tud@title@fontcolor{HKS41}% \fi% \let\@maketitle\tud@@maketitle% @@ -3696,17 +4544,20 @@ \robustify{\footnotemark}% \newcommand*\tud@titleback{}% \newcommand*\tud@maketitlepage{% - \def\tud@title@fontcolor{black}% - \ifcase\tud@layout@title\relax\or\or% + \def\tud@title@fontcolor{}% + \ifcase\tud@layout@title\relax\or\or% litecolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% barcolor \def\tud@title@fontcolor{HKS41}% - \or% + \or% bicolor + \def\tud@title@fontcolor{HKS41}% + \or% color \def\tud@title@fontcolor{HKS41!30}% - \or% + \or% full \def\tud@title@fontcolor{HKS41!30}% \fi% \begin{titlepage}% + \tud@layout@specialpage@set{title}% \ifx\tud@titlepagenumber\relax\else% \setcounter{page}{\tud@titlepagenumber}% \fi% @@ -3720,7 +4571,7 @@ \tud@footnote@unhyper% \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -3778,21 +4629,21 @@ \usekomafont{titlepage}% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% @@ -3800,14 +4651,14 @@ \vskip 2ex\@plus1ex\@minus1ex% \fi% \vskip 2\bigskipamount% - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@thesis\@empty% \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -3821,7 +4672,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\space\@graduationabbr\fi% + \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -3841,26 +4692,11 @@ \tud@title@names{advisor}% \tud@title@names{professor}% \ifx\@thesis\@empty\else% - \ifdefstring{\@date}{\today}{% - \ifdefvoid{\@duedate}{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - Since a thesis is a self-contained work, an end\MessageBreak% - date should be specified by the author.\MessageBreak% - Nevertheless, today's date is used% - }% - }{% - \ClassWarning{\tudcls@name}{% - `\string\date' was not given.\MessageBreak% - It's substituted by the given due date% - }% - \let\@date\@duedate% - }% - }{}% + \tud@datecheck% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \ifx\@defensedate\@empty\else% \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% {\usekomafont{date}{\@defensedate\par}}% @@ -3896,27 +4732,26 @@ \fi% \def\@tempa{% \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% - \def\tud@head@bar{0}% - \or% - \def\tud@head@bar{1}% - \or% - \def\tud@head@bar{2}% - \or% + \ifcase\tud@layout@title\relax\or% true + \cs@std@lock{tud@head@bar}{0}% + \or% litecolor + \cs@set@lock{tud@head@bar}{1}% + \or% barcolor + \cs@set@lock{tud@head@bar}{2}% + \or% bicolor + \cs@set@lock{tud@head@bar}{3}% + \or% color \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{-1}% - \def\tud@head@logocolor{white}% - \def\tud@foot@logocolor{white}% - \bool@std@lock{@tud@head@widebar}{true}% - \or% + \cs@set@lock{tud@head@bar}{1}% + \or% full \def\tud@pagecolor{HKS41}% - \def\tud@head@bar{2}% + \cs@set@lock{tud@head@bar}{3}% \fi% - \color{\tud@title@fontcolor}% - \addtokomafont{pagenumber}{\sffamily\color{\tud@title@fontcolor}}% - \addtokomafont{footnote}{\sffamily\color{\tud@title@fontcolor}}% + \tud@color{\tud@title@fontcolor}% + \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% + \addtokomafont{pagefoot}{\usekomafont{tudheadings}}% \thispagestyle{empty.tudheadings}% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% }% \if@tud@cover% \begingroup% @@ -3950,7 +4785,7 @@ \begingroup% \def\thanks##1{\gdef\@tempa{##1}}% \let\footnote\thanks% - \setbox0\vbox{#1}% + \sbox\z@{#1}% \let\thanks\@gobble% \let\footnote\@gobble% \tud@makeuppercase{#1}% @@ -3987,22 +4822,22 @@ \tud@footnote@unhyper% \setlength\@tempdima{\z@}% \ifx\@titlehead\@empty\else% - \setbox0\vbox{% + \sbox\z@{\vbox{% \begin{minipage}[t]{\textwidth}% {\usekomafont{titlehead}{\@titlehead\par\null}}% \end{minipage}\newline\null% - }% - \addtolength\@tempdima{\dimexpr\ht0+\dp0\relax}% + }}% + \addtolength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% \fi% \TUDoptions{subjectthesis=true}% \tud@letsubjectthesis% \ifx\@subject\@empty\else% - \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% - \addtolength\@tempdima{\dimexpr\ht1+\dp1+1pt\relax}% + \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% + \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% \vspace*{-\@tempdima}% - \ifx\@titlehead\@empty\else\usebox0\par\fi% - \ifx\@subject\@empty\else\usebox1\par\fi% + \ifx\@titlehead\@empty\else\usebox\z@\par\fi% + \ifx\@subject\@empty\else\usebox\@ne\par\fi% {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% \vskip 2ex\@plus1ex\@minus1ex% \ifx\@subtitle\@empty\else% @@ -4010,10 +4845,10 @@ \vskip 2ex\@plus1ex\@minus1ex% \fi% \vskip 2\bigskipamount% - \tud@check@author% + \let\tud@split@author\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% - {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -4027,53 +4862,12 @@ \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% \vskip 2\bigskipamount% - \iftudscrverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% - \endgroup% -} -\newcommand*\tud@multiple@field{} -\newcommand*\tud@multiple@split[1]{% - \gdef\tud@multiple@field{#1}% - \begingroup% - \let\and\relax% - \edef\@tempa{\csname#1\endcsname\and}% - \expandafter\endgroup% - \expandafter\tud@multiple@@split\@tempa\relax% -} -\newcommand*\tud@multiple@@split{}% -\def\tud@multiple@@split#1\and#2\relax{% - \expandafter\csname tud@split\tud@multiple@field\endcsname{#1}{#2}% -} -\newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% - \def\@tempb{}% - \else% - \def\@tempb{#2\tud@multiple@@split#1\relax}% - \fi% - \@tempb% -} -\newcommand*\tud@multiple@setfields[2]{% - \letcs\@tempa{tud@split\tud@multiple@field @list}% - \let\and\relax% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \begingroup% - \protected@expandtwoargs\in@{\@tempb}{\@nameuse{\tud@multiple@field}}% - \ifin@ \@tempb{#1}\fi% - \endgroup% - \fi% - }% - \begingroup% - \let\thanks\@gobble% - \let\footnote\@gobble% - \setbox0\vtop{#2}% + \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% \endgroup% } \newcommand*\tud@newline{} -\newcommand*\tud@check@author{% - \ifpatchable{\@author}{\@latex@warning@no@line}{\@author\gdef\@author{}}{}% -} -\newcommand*\tud@split@author[2]{% - \tud@multiple@setfields{}{#1}% +\newcommand*\tud@split@author@title[2]{% + \tud@multiple@fields@store{@author}{#1}% \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% {\usekomafont{author}{\ignorespaces#1}}% \if@tud@cover\else% @@ -4087,7 +4881,7 @@ \ifstr{\dateofbirthtext}{}% {}{\dateofbirthtext\@titledelim}\@dateofbirth% \ifx\@placeofbirth\@empty\else% - \space\placeofbirthtext\unskip\space\@placeofbirth% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% \fi% \else% \tud@title@wrn{dateofbirth}% @@ -4114,13 +4908,9 @@ \fi% \fi% \fi% + \tud@multiple@fields@restore{@author}% \tud@multiple@@@split{#2}{\vskip 2ex}% } -\newcommand*\tud@split@author@list{% - \authormore,\matriculationyear,\enrolmentyear,% - \matriculationnumber,\studentid,\matriculationid,% - \placeofbirth,\birthplace,\dateofbirth,\birthday,% -} \newcommand\maketitleonecolumn[2][]{% \if@twocolumn% \if@titlepage% @@ -4130,7 +4920,7 @@ \tud@title@twocolumn{\maketitle[#1]{#2}}% \fi% \else% - \ClassError{\tudcls@name}{% + \ClassError{\TUDClassName}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% @@ -4146,9 +4936,9 @@ }% \endgroup% \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% + \ifcase\@tempb\relax\else% \tud@ddc@foot!=false \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% \@tempswatrue% \fi% @@ -4160,18 +4950,18 @@ \vsplit\tud@title@twocolumn@box to \@tempdima% \clearpage% \setlength\@tempdima{\textheight}% - \iftudscrverlower{2.03}{\@tempswafalse}{}% + \tud@ifverlower{2.03}{\@tempswafalse}{}% }% \else% \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% \fi% \twocolumn[\unvbox\tud@title@twocolumn@box]% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \if@tempswa% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% You are using a two-column title along with\MessageBreak% the DDC-logo. Unfortunately in this case, the\MessageBreak% - type area hast to be adjusted manually. Please\MessageBreak% + type area has to be adjusted manually. Please\MessageBreak% use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% @@ -4181,7 +4971,7 @@ \newcommand*\tud@letsubjectthesis{% \if@tud@subjectthesis\ifx\@thesis\@empty\else% \ifx\@subject\@empty\else% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% The option `subjectthesis' was activated.\MessageBreak% The field `subject' will be overwritten with the\MessageBreak% given thesis% @@ -4191,7 +4981,7 @@ \fi\fi% } \newcommand*\tud@title@wrn[1]{% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% `\@backslashchar#1' has to be used with\MessageBreak% activated titlepage option% }% @@ -4199,7 +4989,7 @@ \newif\if@tud@cover \newcommand*\makecover[1][]{% \if@titlepageiscoverpage% - \ClassWarning{\tudcls@name}{% + \ClassWarning{\TUDClassName}{% Using both option `titlepage=firstiscover' and\MessageBreak% `\string\makecover' together isn't supported. The\MessageBreak% option `titlepage=firstiscover' will be ignored. If you\MessageBreak% @@ -4221,12 +5011,12 @@ \let\coverpagebottommargin\tud@dim@widemargin% \let\coverpageleftmargin\tud@dim@widemargin% \let\coverpagerightmargin\tud@dim@slimmargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagetopmargin{.5\tud@dim@both}% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% \fi% - \ifcase\tud@layout@cover\relax% + \ifcase\tud@layout@cover\relax% false \KOMAoptions{titlepage=firstiscover}% \let\@extratitle\@empty% \let\@uppertitleback\@empty% @@ -4234,7 +5024,7 @@ \let\@dedication\@empty% \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% + \else% !false \@tud@covertrue% \@titlepagetrue% \edef\titlepage@restore{% @@ -4252,7 +5042,7 @@ \headheight=0pt% \headsep=0pt% \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% -1.25\baselineskip\relax% }{}% @@ -4267,7 +5057,7 @@ \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% \ifx\@tempa\coverpagebottommargin\relax% \let\coverpagebottommargin\tud@dim@widemargin% - \iftudscrverlower{2.03}{% + \tud@ifverlower{2.03}{% \def\coverpagebottommargin{.5\tud@dim@both}% }{}% \fi% @@ -4312,8 +5102,41 @@ }% }% } +%%% From File: tudscr-comp.dtx +\newcommand*\tud@deprecated@cmd[2]{% + \AtBeginDocument{% + \ifcsdef{#1}{}{% + \expandafter\newrobustcmd\csname #1\endcsname{% + \ClassWarning{\TUDClassName}{% + The command `\@backslashchar#1' is deprecated.\MessageBreak% + It's recommended to use `\@backslashchar#2' instead% + }% + \csletcs{#1}{#2}% + \@nameuse{#2}% + }% + }% + }% +} +\newlength\chapterheadingvskip +\let\chapterheadingvskip\headingsvskip +\tud@deprecated@cmd{professorship}{chair} +\tud@deprecated@cmd{studentid}{matriculationnumber} +\tud@deprecated@cmd{matriculationid}{matriculationnumber} +\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% +\tud@deprecated@cmd{birthplace}{placeofbirth} +\tud@deprecated@cmd{location}{place} +\tud@deprecated@cmd{submissiondate}{date} +\tud@deprecated@cmd{oralexaminationdate}{defensedate}% +\tud@deprecated@cmd{birthday}{dateofbirth} +\tud@deprecated@cmd{logofile}{headlogo} +\tud@deprecated@cmd{logofilename}{headlogo} +\AfterPackage{tudscrsupervisor}{% + \tud@deprecated@cmd{startdate}{issuedate}% + \tud@deprecated@cmd{finaldate}{duedate}% + \tud@deprecated@cmd{maturitydate}{duedate}% +} %%% From File: tudscr-misc.dtx -\newcounter{symbolheadings}[chapter] +\newcounter{symbolheadings}[chapter]% \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@footnote@unhyper{} \AfterPackage{hyperref}{% @@ -4344,78 +5167,14 @@ \fi% \tudbookmark[0]{\contentsname}{toc}% }{}{\tud@patch@wrn{tableofcontents}} -\newcommand*\TUD@parameter@defaulthandler[2]{% - \def\@tempa{#2}% - \@for\@tempb:=\@tempa\do{% - \ifx\@tempb\@empty\else% - \ifstr{\@tempb}{twocolumn}{\def\@tempb{2}}{}% - \ifxnumber{\@tempb}{% - \TUD@parameter@set{#1}{columns=\@tempb}% - }{% - \TUD@parameter@set{#1}{language=\@tempb}% - }% - \fi% - }% -} -\newcommand*\tud@multicols{1} -\newcommand*\tud@multicols@check{% - \ifdef{\multicols}{}{% - \ifnum\tud@multicols>1\relax% - \ClassWarning{\tudcls@name}{% - The option `columns=\tud@multicols' is only supported,\MessageBreak% - when package `multicol' is loaded% - }% - \def\tud@multicols{1}% - \fi% - }% -} -\newcommand*\tud@makeuppercase[1]{% - \ifdin{\begingroup\MakeTextUppercase{#1}\endgroup}{#1}% - \protect\vphantom{\"A\"O\"U}% -} -\newcommand*\tud@lowerstring[2]{% - \protected@edef#1{#2}% - \lowercase\expandafter{% - \expandafter\gdef\expandafter #1\expandafter{#1}% - }% -} -\providecommand*\protected@expandtwoargs[3]{% - \protected@edef\reserved@a{\noexpand#1{#2}{#3}}\reserved@a% -} -%%% From File: tudscr-comp.dtx -\newcommand*\tud@deprecated@cmd[2]{% - \AtBeginDocument{% - \ifcsdef{#1}{}{% - \expandafter\newrobustcmd\csname #1\endcsname{% - \ClassWarning{\tudcls@name}{% - The command `\@backslashchar#1' is deprecated.\MessageBreak% - It's recommended to use `\@backslashchar#2' instead% - }% - \csletcs{#1}{#2}% - \@nameuse{#2}% - }% - }% +\BeforePackage{tocloft}{% + \ClassWarning{\TUDClassName}{% + It is not recommended to use package `tocloft'.\MessageBreak% + Loading the package will certainly lead to problems\MessageBreak% + with table of contents and any list of floats. You\MessageBreak% + should use the appropriate options of KOMA-Script% }% } -\newlength\chapterheadingvskip -\let\chapterheadingvskip\headingsvskip -\tud@deprecated@cmd{professorship}{chair} -\tud@deprecated@cmd{student}{author} -\tud@deprecated@cmd{studentid}{matriculationnumber} -\tud@deprecated@cmd{matriculationid}{matriculationnumber} -\tud@deprecated@cmd{enrolmentyear}{matriculationyear}% -\tud@deprecated@cmd{birthplace}{placeofbirth} -\tud@deprecated@cmd{location}{place} -\tud@deprecated@cmd{submissiondate}{date} -\tud@deprecated@cmd{oralexaminationdate}{defensedate}% -\tud@deprecated@cmd{birthday}{dateofbirth} -\tud@deprecated@cmd{logofile}{headlogo} -\tud@deprecated@cmd{logofilename}{headlogo} -\AfterPackage*{tudscrsupervisor}{% - \tud@deprecated@cmd{startdate}{issuedate}% - \tud@deprecated@cmd{finaldate}{duedate}% - \tud@deprecated@cmd{maturitydate}{duedate}% -} \endinput %% %% End of file `tudscrreprt.cls'. diff --git a/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty b/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty index 3e1dcd4b761..eaf2f6b57e9 100644 --- a/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty +++ b/Master/texmf-dist/tex/latex/tudscr/tudscrsupervisor.sty @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% tudscr-version.dtx (with options: `package,supervisor,tudscr') +%% tudscr-version.dtx (with options: `package,supervisor') %% tudscr-supervisor.dtx (with options: `package') %% tudscr-fields.dtx (with options: `package,supervisor') %% tudscr-locale.dtx (with options: `package,supervisor') @@ -54,15 +54,15 @@ \fi% }% \fi% - \@TUDVersion{2015/06/11 v2.03a TUD-KOMA-Script}% + \@TUDVersion{2015/07/02 v2.04 TUD-KOMA-Script}% \endgroup% \providecommand*\tudscrmail{tudscr@gmail.com} -\@ifundefined{tudcls@name}{% +\@ifundefined{TUDClassName}{% \PackageError{% tudscrsupervisor% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrartcl, tudscrreprt, tudscrbook)% + tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl).% } \endinput }{} @@ -74,9 +74,9 @@ }% }{} %%% From File: tudscr-supervisor.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{tudscrsupervisor}[% - 2015/06/11 v2.03a TUD-KOMA-Script + 2015/07/02 v2.04 TUD-KOMA-Script package (commands for supervisors)% ] @@ -105,7 +105,7 @@ \ifx\supervisorothername\@empty\else\supervisorothername\@titledelim\fi% & \def\and{\tabularnewline &}% }% - \vskip-\lastskip% + \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip% \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% @@ -115,7 +115,7 @@ \issuedatetext\@titledelim & \@issuedate\tabularnewline% \duedatetext\@titledelim & \@duedate\tabularnewline% \end{tabular}% - \vskip 15mm plus 10mm minus 10mm% + \vskip\tud@signatureskip\noindent% \ifx\@chairman\@empty\else% \begin{tabular}{@{}l@{}}% \@chairman\tabularnewline% @@ -136,7 +136,7 @@ } \newcommand\taskform[3][]{% \begin{task}[#1] - \vskip-\lastskip% + \removelastskip% \ifxblank{#2}{}{\minisec{\objectivesname}#2}% \ifxblank{#3}{}{% \minisec{\focusname}% @@ -167,19 +167,19 @@ }% \tud@author@table% }{% - \vskip-\lastskip% + \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% - \medskip% + \setlength{\@tempskipa}{\smallskipamount}% \ifx\@grade\@empty\else% - \noindent\gradetext% - \vskip\bigskipamount% + \vskip\@tempskipa\noindent% + \gradetext% + \setlength{\@tempskipa}{\bigskipamount}% \fi% \ifx\@date\@empty\else% - \noindent% - \ifx\@place\@empty\else\@place,~\fi\@date% - \vskip\bigskipamount% + \vskip\@tempskipa\noindent% + \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \bigskip\bigskip\noindent% + \vskip\tud@signatureskip\noindent% \ifx\@referee\@empty\let\@referee\@supervisor\fi% \let\@tempa\refereename% \def\and{% @@ -201,39 +201,24 @@ } \newcommand\evaluationform[5][]{% \begin{evaluation}[#1] - \vskip-\lastskip% + \removelastskip% \ifxblank{#2}{}{\minisec{\taskname}#2}% \ifxblank{#3}{}{\minisec{\contentname}#3}% \ifxblank{#4}{}{\minisec{\assessmentname}#4}% \ifxblank{#5}{}{\def\@grade{#5}}% \end{evaluation}% } +\newcommand*\student{\author} \newlength\tud@dim@table% \newcommand*\tud@author@table{% - \tud@check@author% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% - \renewcommand*\tud@split@author[2]{% - \tud@multiple@setfields{\null}{##1}% - \begin{tabular}{l@{}}% - \ifx\@course\@empty\else\@course\tabularnewline\fi% - \ifx\@discipline\@empty\else\@discipline\tabularnewline\fi% - \textsf{\textbf{\ignorespaces##1}}\tabularnewline% - \ifx\@matriculationnumber\@empty\else% - \@matriculationnumber\tabularnewline% - \fi% - \ifx\@matriculationyear\@empty\else% - \@matriculationyear\tabularnewline% - \fi% - \end{tabular}% - \tud@multiple@@@split{##2}{~~\hspace{\tabcolsep}} - }% + \tud@multiple@split{@author}% + \tud@multiple@fields@preset{@author}{\null}{}% \setlength\tud@dim@table{2em}% - \gdef\tud@multiple@field{@author}% - \tud@multiple@setfields{\null}{}% \edef\@tempa{% - \authorname,\titlename,\supervisorname,\supervisorothername,% + \namesname,\titlename,\supervisorname,\supervisorothername,% \issuedatetext,\duedatetext,% \expandafter\ifx\@matriculationnumber\@empty\else% \matriculationnumbername% @@ -260,7 +245,7 @@ \ifx\@discipline\@empty\else% \disciplinename\@titledelim\tabularnewline% \fi% - \authorname\@titledelim\tabularnewline% + \namesname\@titledelim\tabularnewline% \ifx\@matriculationnumber\@empty\else% \matriculationnumbername\@titledelim\tabularnewline% \fi% @@ -268,6 +253,23 @@ \matriculationyearname\@titledelim\tabularnewline% \fi% \end{tabular}% + \renewcommand*\tud@split@author[2]{% + \tud@multiple@fields@store{@author}{##1}% + \tud@multiple@fields@preset{@author}{\null}{##1}% + \begin{tabular}{l@{}}% + \ifx\@course\@empty\else\@course\tabularnewline\fi% + \ifx\@discipline\@empty\else\@discipline\tabularnewline\fi% + \textsf{\textbf{\ignorespaces##1}}\tabularnewline% + \ifx\@matriculationnumber\@empty\else% + \@matriculationnumber\tabularnewline% + \fi% + \ifx\@matriculationyear\@empty\else% + \@matriculationyear\tabularnewline% + \fi% + \end{tabular}% + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{##2}{\enskip\hspace{\tabcolsep}}% + }% \tud@multiple@split{@author}% \vskip\smallskipamount% \begin{tabular}{@{}p{\tud@dim@table}% @@ -280,8 +282,9 @@ \endgroup% \noindent\ignorespaces% } -\patchcmd{\tud@split@author@list}{\authormore}% - {\authormore,\course,\discipline}{}{\tud@patch@wrn{tud@split@author@list}} +\patchcmd{\tud@split@author@list}{authormore}{% + authormore,course,discipline% +}{}{\tud@patch@wrn{tud@split@author@list}} \newenvironment{notice}[1][]{% \cleardoubleoddpage% \def\@headline{\noticename}% @@ -307,8 +310,20 @@ }{% \ifx\@contactperson\@empty\let\@contactperson\@supervisor\fi% \ifx\@contactperson\@empty\else% - \vskip-\lastskip% + \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% + \renewcommand*\tud@split@contactperson[2]{% + \tud@multiple@fields@store{@contactperson}{##1}% + \tud@multiple@fields@preset{@contactperson}{}{##1}% + \begin{tabular}[t]{@{}l@{}}% + \ignorespaces##1\tabularnewline% + \ifx\@office\@empty\else\@office\tabularnewline\fi% + \ifx\@telephone\@empty\else\@telephone\tabularnewline\fi% + \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% + \end{tabular}% + \tud@multiple@fields@restore{@contactperson}% + \tud@multiple@@@split{##2}{\hfill}% + }% \subsection*{\contactpersonname}% \noindent\tud@multiple@split{@contactperson}\hfill\null% \fi% @@ -317,7 +332,7 @@ } \newcommand\noticeform[3][]{% \begin{notice}[#1] - \vskip-\lastskip% + \removelastskip% \ifxblank{#2}{}{% \ifx\@@title\@empty\else% \minisec{\expandonce{\@@title}}% @@ -332,17 +347,6 @@ }% \end{notice}% } -\newcommand*\tud@split@contactperson[2]{% - \tud@multiple@setfields{\null}{#1}% - \begin{tabular}{@{}l@{}}% - \ignorespaces#1\tabularnewline% - \ifx\@office\@empty\else\@office\tabularnewline\fi% - \ifx\@telephone\@empty\else\@telephone\tabularnewline\fi% - \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% - \end{tabular}% - \tud@multiple@@@split{#2}{\hfill}% -} -\newcommand*\tud@split@contactperson@list{\office,\telephone,\emailaddress} %%% From File: tudscr-fields.dtx \newcommand*\@course{} \newrobustcmd*\course[1]{\gdef\@course{#1}} @@ -350,19 +354,6 @@ \newrobustcmd*\discipline[1]{\gdef\@discipline{#1}} \newcommand*\@chairman{} \newcommand*\chairman[1]{\gdef\@chairman{#1}} -\newcommand*\@contactperson{} -\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} -\newcommand*\@office{} -\newrobustcmd*\office[1]{\gdef\@office{#1}} -\newcommand*\@telephone{} -\newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} -\newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress[1]{\gdef\@emailaddress{#1}} -\AfterPackage*{hyperref}{% - \renewrobustcmd*\emailaddress[1]{% - \gdef\@emailaddress{\href{mailto:#1}{\nolinkurl{#1}}}% - }% -} \newcommand*\@grade{} \newcommand*\grade[1]{\gdef\@grade{#1}} \newcommand*\@headline{} @@ -372,10 +363,58 @@ \newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} \newcommand*\finaldate{} \newcommand*\maturitydate{} +\@ifpackageloaded{% + tudscrposter% +}{}{% + \newcommand*\@contactperson{} + \newcommand*\contactperson[1]{\gdef\@contactperson{#1}} + \newcommand*\@office{} + \newrobustcmd*\office[1]{\gdef\@office{#1}} + \newcommand*\@telephone{} + \newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} + \newcommand*\@emailaddress{} + \newrobustcmd*\emailaddress[2][]{\gdef\@emailaddress{#2}} + \AfterPackage*{hyperref}{% + \renewrobustcmd*\emailaddress[2][hidelinks]{% + \gdef\@emailaddress{% + \begingroup% + \hypersetup{#1}% + \href{mailto:#2}{#2}% + \endgroup% + }% + }% + }% + \newcommand*\tud@multiple@fields@preset[3]{% + \letcs\@tempa{tud@split#1@list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \edef\@tempc{\@nameuse{\@tempb}}% + \ifstr{#2}{*}{% + \@namedef{@\@tempb}{}% + }{% + \begingroup% + \protected@expandtwoargs\in@{\@tempc}{\@nameuse{#1}}% + \ifin@% + \ifcsempty{@\@tempb}{\@tempc{#2}}{}% + \fi% + \endgroup% + }% + \fi% + }% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \sbox\z@{#3}% + \endgroup% + }% + \newcommand*\tud@split@contactperson[2]{} + \newcommand*\tud@split@contactperson@list{office,telephone,emailaddress} +} %%% From File: tudscr-locale.dtx \tud@locale@define{\taskname} \tud@locale@define{\tasktext} -\tud@locale@define{\authorname} +\tud@locale@define{\namesname} \tud@locale@define{\titlename} \tud@locale@define{\coursename} \tud@locale@define{\disciplinename} @@ -393,7 +432,7 @@ \tud@locale@define{\contactpersonname} \tud@locale@german{\taskname}{Aufgabenstellung}% \tud@locale@german{\tasktext}{f\"ur die Anfertigung einer}% -\tud@locale@german{\authorname}{Name}% +\tud@locale@german{\namesname}{Name}% \tud@locale@german{\titlename}{Titel}% \tud@locale@german{\coursename}{Studiengang}% \tud@locale@german{\disciplinename}{Studienrichtung}% @@ -413,7 +452,7 @@ \tud@locale@german{\contactpersonname}{Ansprechpartner}% \tud@locale@english{\taskname}{Task}% \tud@locale@english{\tasktext}{for the preparation of a}% -\tud@locale@english{\authorname}{Name}% +\tud@locale@english{\namesname}{Name}% \tud@locale@english{\titlename}{Title}% \tud@locale@english{\coursename}{Course}% \tud@locale@english{\disciplinename}{Discipline}% diff --git a/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty b/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty index b867e5bdd79..2a73477fe98 100644 --- a/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty +++ b/Master/texmf-dist/tex/latex/tudscr/twocolfix.sty @@ -34,9 +34,9 @@ %% ============================================================================ %% %%% From File: tudscr-twocolfix.dtx -\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{twocolfix}[% - 2015/06/11 v2.03a TUD-KOMA-Script + 2015/07/02 v2.04 TUD-KOMA-Script package (twocolumn layout bugfix)% ] @@ -50,6 +50,10 @@ \begingroup% \normalcolor% \hsize\textwidth% + \@parboxrestore% + \ifcsname KOMAClassName\endcsname% + \KOMAoptionOf[\KOMAoption{parskip}]{\KOMAClassFileName}{parskip}% + \fi% \col@number \@ne% \ignorespaces #1\par% \ifdim\parskip>\z@\null\fi% |