From 6b200dd5c2335baa8c78037d8f1c75d1295187f4 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 30 Jul 2016 23:12:46 +0000 Subject: tudscr (26jul16) git-svn-id: svn://tug.org/texlive/trunk@41776 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/tudscr/tudscr-title.dtx | 888 ++++++++++++--------- 1 file changed, 498 insertions(+), 390 deletions(-) (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx') diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx index 2d5fb3c5dd3..54047097e68 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{1290} +% \CheckSum{1381} % \iffalse meta-comment % % ============================================================================ @@ -18,13 +18,13 @@ % % ---------------------------------------------------------------------------- % -% 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. +% 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. % % ============================================================================ % @@ -51,15 +51,17 @@ %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-title.dtx}[% - 2015/06/12 v2.04 TUD-KOMA-Script (title)% + 2016/07/20 v2.05 TUD-KOMA-Script (title)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} -\documentclass[english,ngerman]{tudscrdoc} +\documentclass[english,ngerman,xindy]{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-} +\usepackage{microtype} +\usepackage{bookmark} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-title.dtx} @@ -72,13 +74,14 @@ % % \selectlanguage{ngerman} % -% \changes{v2.02}{2014/06/24}{Unterstützung für \pkg{titlepage} entfernt}^^A +% \changes{v2.02}{2014/06/23}{Paket \pkg{titlepage} nicht weiter unterstützt}^^A +% \changes{v2.05}{2015/07/13}{Titel für Poster}^^A % % \section{Titelei} % -% Die Titelseite wird für die \TUDScript-Klassen bereitgestellt. +% Titelseite und Titelkopf werden für die \TUDScript-Klassen bereitgestellt. % -% \StopEventually{\PrintIndex\PrintChanges} +% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % % \iffalse %<*class&body> @@ -95,6 +98,7 @@ % \iffalse % %<*class&option> +%<*book|report|article> % \fi % % \begin{option}{subjectthesis} @@ -114,6 +118,43 @@ % \end{option}^^A subjectthesis % % \iffalse +% +%<*poster> +% \fi +% +% \begin{option}{titlepage} +% \begin{macro}{\tud@titlepage@deactivate} +% Für Poster gibt es keine separate Titelseite sondern nur einen Titelkopf. +% Falls die falsche Einstellung gewählt ist, wird diese deaktiviert und eine +% Warnung ausgegeben. +% \begin{macrocode} +\DefineFamilyMember{KOMA} +\DefineFamilyKey{KOMA}{titlepage}[true]{% + \TUD@set@numkey{titlepage}{@tempa}{\TUD@numkey@bool,{firstiscover}{2}}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \AtEndOfFamilyOptions{\tud@titlepage@deactivate}% + \fi% +} +\newcommand*\tud@titlepage@deactivate{% + \if@titlepage% + \KOMAoptions{titlepage=false}% + \ClassWarning{\TUD@Class@Name}{% + The class `\TUD@Class@Name' can't be used with\MessageBreak% + activated titlepage option. It will be enforced to\MessageBreak% + `titlepage=false'% + }% + \renewcommand*\tud@titlepage@deactivate{% + \if@titlepage\KOMAoptions{titlepage=false}\fi% + }% + \fi% +} +\AtBeginDocument{\tud@titlepage@deactivate} +% \end{macrocode} +% \end{macro}^^A \tud@titlepage@deactivate +% \end{option}^^A titlepage +% +% \iffalse +% % %<*class&body> % \fi @@ -129,22 +170,180 @@ % allerdings etwas kleiner. \opt{titlepage} für alle Zusatzinformationen wie % Autor, Datum etc. % \begin{macrocode} -\newkomafont{thesis}{\usekomafont{title}\LARGE} +%<*book|report|article> +\newkomafont{thesis}{% + \usekomafont{title}% + \tud@thesis@fontsize% +} +% \newkomafont{titlepage}{% \usekomafont{subject}% - \fontseries{\mddefault}% - \selectfont% + \mdseries% \large% } % \end{macrocode} % \end{KOMAfont}^^A titlepage % \end{KOMAfont}^^A thesis -% \begin{macro}{\tud@title@fontcolor} -% Das Makro wird für die Hintergrundfarbe der Titelseite verwendet. +% Die Befehle \cs{thanks} und \cs{footnotemark} werden mit \cs{robustify} +% behandelt, um die Makros vor dem Expandieren zu schützen. Dies ist z.\,B. für +% \cs{tud@multiple@split} aber auch für weitere Felder auf dem Titel nötig. +% \begin{macrocode} +\robustify{\thanks} +\robustify{\footnotemark} +% \end{macrocode} +% \begin{macro}{\tud@title@uppercase} +% Für das Setzen einzelner Felder in Majuskeln werden diese beiden Befehle +% definiert. Bei der Verwendung des Befehls \cs{thanks} auf der Titelseite soll +% sichergestellt werden, dass der Inhalt selbst nicht in Majuskeln gesetzt wird. +% \begin{macrocode} +\newcommand*\tud@title@uppercase[1]{% + \let\@tempa\relax% + \begingroup% + \let\\\newline% +% \end{macrocode} +% Der Befehl \cs{thanks} wird so umdefiniert, dass der Inhalt in ein temporäres +% Makro gespeichert wird. Danach wird durch das Setzen einer temporären Box der +% Befehl \cs{thanks} ausgeführt und der Inhalt gesichert. Für die Ausführung von +% \cs{tud@makeuppercase} wird das Argument von \cs{thanks} ignoriert. Nachdem +% das gewünschte Feld in Majuskeln gesetzt wurde, wird die gespeicherte Fußnote +% ausgegeben. +% \begin{macrocode} + \def\thanks##1{\gdef\@tempa{##1}}% + \let\footnote\thanks% + \sbox\z@{#1}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@makeuppercase{#1}% + \endgroup% + \ifx\@tempa\relax\else\thanks\@tempa\fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@title@uppercase +% +% \iffalse +%<*book|report|article> +% \fi +% +% \begin{macro}{\titledelimiter} +% \begin{macro}{\tud@title@delimiter} +% Dieses Makro wird für das Trennzeichen auf der Titelseite genutzt. +% \begin{macrocode} +\newcommand*\tud@title@delimiter{:\nobreakspace} +\newcommand*\titledelimiter[1]{\gdef\tud@title@delimiter{#1}} +% \end{macrocode} +% \end{macro}^^A \tud@title@delimiter +% \end{macro}^^A \titledelimiter +% \begin{macro}{\tud@split@author@title} +% \changes{v2.04}{2015/05/12}{neu}^^A +% \begin{macro}{\tud@newline@title} +% Das Makro \cs{tud@split@author@title} dient der formatierten Ausgabe aller +% Informationen für mehrere Autoren auf der Titelseite. +% \begin{macrocode} +\newcommand*\tud@newline@title{} +\newcommand*\tud@split@author@title[2]{% +% \end{macrocode} +% Zu Beginn werden alle Felder, welche innerhalb von \cs{@author} angegeben +% sind, gesichert. +% \begin{macrocode} + \tud@multiple@fields@store{@author}{#1}% +% \end{macrocode} +% Um die Abstände definiert zu setzen, wird \cs{tud@newline@title} verwendet. +% Sobald auch nur eine zusätzliche Information ausgegeben werden soll, wird ein +% etwas kleiner Abstand eingefügt. Anschließend wird jede Information einfach +% in einer neuen Zeile ausgegeben. +% \begin{macrocode} + \renewcommand*\tud@newline@title{\vskip .5ex\let\tud@newline@title\newline}% +% \end{macrocode} +% Die Felder \cs{@author} und ggf. \cs{@authormore} werden sowohl auf der +% Titelseite als auch im Titelkopf jedoch nicht auf der Umschlagseite +% ausgegeben. +% \begin{macrocode} + {\usekomafont{author}{\ignorespaces#1}}% + \if@tud@cover\else% + \ifx\@authormore\@empty\else% + \tud@newline@title% + \@authormore% + \fi% +% \end{macrocode} +% Nur auf der Titelseite erfolgt die Ausgabe von Geburtsdatum, Geburtsort, +% Matrikelnummer und Immatrikulationsjahr. Sollte ein Titelkopf verwendet +% werden, so wird für jedes gesetzte Feld eine Warnung ausgegeben. +% \begin{macrocode} + \ifx\@dateofbirth\@empty\else% + \if@titlepage% + \tud@newline@title% + \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \@dateofbirth% + \ifx\@placeofbirth\@empty\else% + \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% + \fi% + \else% + \tud@title@wrn{dateofbirth}% + \fi% + \fi% + \def\@tempc##1{% + \ifstr{\csuse{@##1}}{}{}{% + \if@titlepage% + \tud@newline@title% + \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \csuse{@##1}% + \else% + \tud@title@wrn{##1}% + \fi% + }% + }% + \@tempc{course}% + \@tempc{discipline}% + \@tempc{matriculationnumber}% + \@tempc{matriculationyear}% + \fi% +% \end{macrocode} +% 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} -\newcommand*\tud@title@fontcolor{} + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\vskip 2ex}% +} % \end{macrocode} -% \end{macro}^^A \tud@title@fontcolor +% \end{macro}^^A \tud@newline@title +% \end{macro}^^A \tud@split@author@title +% \begin{macro}{\tud@title@wrn} +% Bei der Nutzung eines Titelkopfes wird bloß eine reduzierte Menge an +% Informationen ausgegeben. Darauf wird der Anwender ggf. hingewiesen. +% \begin{macrocode} +\newcommand*\tud@title@wrn[1]{% + \ClassWarning{\TUD@Class@Name}{% + `\@backslashchar#1' has to be used with\MessageBreak% + activated titlepage option% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@title@wrn +% \begin{macro}{\tud@thesis@tosubject} +% Bei der Verwendung der Option \opt{subjectthesis} wird zum einen geprüft, ob +% das Feld \cs{@thesis} gesetzt ist und zum anderen, ob das Feld \cs{@subject} +% auch leer ist. +% \begin{macrocode} +\newcommand*\tud@thesis@tosubject{% + \if@tud@subjectthesis\ifx\@thesis\@empty\else% + \ifx\@subject\@empty\else% + \ClassWarning{\TUD@Class@Name}{% + The option `subjectthesis' was activated, so\MessageBreak% + the field `subject' will be overwritten with the\MessageBreak% + given thesis% + }% + \fi% + \let\@subject\@thesis% + \fi\fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@thesis@tosubject +% +% \iffalse +% +% \fi +% % \begin{macro}{\tud@maketitle} % \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 @@ -152,64 +351,71 @@ % \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 -% \begin{macro}{\tud@titlepagenumber} +% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@make@titlepage}}^^A +% \begin{macro}{\tud@title@pagenumber} % \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 % der Layoutoptionen gesichert. (siehe \cs{tud@layout@process}) und kann ggf. % wiederhergestellt bzw. mit \cs{tud@cmd@use} verwendet werden. Ist das Layout -% des \CDs gefordert wird entweder mit \cs{tud@maketitlepage} eine Titelseite +% des \CDs gefordert wird entweder mit \cs{tud@make@titlepage} eine Titelseite % gesetzt~-- wobei sich diese in ihrer Struktur am originalen \cs{maketitle} % orientiert~-- oder das Titelkopflayout wird angepasst. % \begin{macrocode} -\newcommand*\tud@titlepagenumber{}% -\let\tud@titlepagenumber\relax% +\newcommand*\tud@title@pagenumber{} +\let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% \begingroup% % \end{macrocode} % Das optionale Argument wird für das Setzen der Parameter verwendet. % \begin{macrocode} \TUD@parameter@set{title}{#1}% - \ifcase\tud@layout@title\relax% false - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \else% !false - \if@titlepage% - \tud@maketitlepage% % \end{macrocode} -% Neben einer kompletten Titelseite gibt es auch noch einen Titelkopf. Auch -% hierfür wird die Ausprägung festgelegt. +% Ist das \CD für den Titel deaktiviert, wird mit \cs{tud@cmd@use} der +% originale \KOMAScript-Befehl \cs{maketitle} aufgerufen. % \begin{macrocode} - \else% - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\else% *color - \def\tud@title@fontcolor{HKS41}% - \fi% -% \end{macrocode} -% Um einen Titelkopf zu setzen, wird einfach der Originalbefehl verwendet und -% nur der innere Teil (\cs{@maketitle}) angepasst. -% \begin{macrocode} - \let\@maketitle\tud@@maketitle% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% + \ifcase\tud@layout@title@num\relax% false + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% + \tud@if@tudheadings{\currentpagestyle}{% + \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + }{}% % \end{macrocode} -% Um einen zweispaltigen Satz für den Titelkopf ermöglichen zu können und -% gleichzeitig dabei den TUD-Kopf zu verwenden, wird der interne Befehl -% \cs{tud@title@twocolumn} verwendet. Damit wird der Titel selber einspaltig -% gesetzt und direkt danach der zweispaltige Satz begonnen. +% Für die \TUDScript-Klassen gibt es für doe Titleseite sowie den Titelkopf +% separate Befehle. % \begin{macrocode} - \if@twocolumn% - \tud@title@twocolumn{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}% - \else% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% - \fi% + \else% !false +%<*book|report|article> + \if@titlepage% + \tud@make@titlepage% + \else% +% + \tud@make@titlehead% +%<*book|report|article> \fi% +% \fi% \endgroup% + \setcounter{footnote}{0}% + \global\let\and\relax% } % \end{macrocode} -% \end{macro}^^A \tud@titlepagenumber +% Abschließend wird dafür Sorge getragen, dass bei einem aktivierten Seitenstil +% aus der \pgs{tudheadings}-Reihe ebenfalls der Titel in diesem gesetzt wird, +% auch wenn das Layout des \CDs selber nicht aktiv ist. +% \begin{macrocode} +\patchcmd{\titlepage}{\thispagestyle{empty}}{% + \tud@if@tudheadings{\currentpagestyle}{% + \thispagestyle{empty.tudheadings}% + }{% + \thispagestyle{empty}% + }% +}{}{\tud@patch@wrn{titlepage}} +\tud@cmd@store{maketitle} +\let\maketitle\tud@maketitle +% \end{macrocode} +% \end{macro}^^A \tud@title@pagenumber % \end{macro}^^A \tud@maketitle % \begin{parameter}{cdtitle} % \changes{v2.03}{2015/01/12}{neu}^^A @@ -229,21 +435,21 @@ % Die einzelnen Parameter dienen zur Einstellung der Titelseite und entsprechen % in ihrem Verhalten den gleichnamigen Klassenoptionen. % \begin{macrocode} -\TUD@parameter{title}{% - \TUD@parameter@define{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% +\TUD@parameter@family{title}{% + \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% \TUD@parameter@let{cd}{cdtitle}% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% % \end{macrocode} -% Mit \cs{TUD@parameter@define@ps} werden alle verfügbaren Parameter für die -% Kopf- und Fußzeilen definiert. +% Mit \cs{tud@ps@parameters} werden alle verfügbaren Parameter für die Kopf- +% und Fußzeilen definiert. % \begin{macrocode} - \TUD@parameter@define@ps{#1}% + \tud@ps@parameters{#1}% % \end{macrocode} % Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation angegeben % wurde, wird versucht, das gegebene Argument als Seitenzahl zu verwenden. % \begin{macrocode} - \TUD@parameter@sethandler{\TUD@parameter@set{title}{pagenumber=#1}}% -}% + \TUD@parameter@handler@value{pagenumber}% +} % \end{macrocode} % \end{parameter}^^A ddcfoot % \end{parameter}^^A ddchead @@ -256,14 +462,12 @@ % \end{parameter}^^A pagenumber % \end{parameter}^^A cd % \end{parameter}^^A cdtitle -% Die Befehle \cs{thanks} und \cs{footnotemark} werden mit \cs{robustify} -% behandelt, um die Makros vor dem Expandieren zu schützen. Dies ist z.\,B. für -% \cs{tud@multiple@split} aber auch für weitere Felder auf dem Titel nötig. -% \begin{macrocode} -\robustify{\thanks}% -\robustify{\footnotemark}% -% \end{macrocode} -% \begin{macro}{\tud@maketitlepage} +% +% \iffalse +%<*book|report|article> +% \fi +% +% \begin{macro}{\tud@make@titlepage} % \changes{v2.02}{2014/09/05}{neu}^^A % \begin{macro}{\tud@titleback} % Bei der entsprechend gewählten Layoutoption, wird eine neue Titelseite im \CD @@ -272,12 +476,11 @@ % überschrieben (siehe \cs{tud@layout@process}) und kann ggf. wiederhergestellt % werden. Der Befehl selbst orientiert sich dabei in seiner Struktur an dem % originalen \cs{maketitle}. Für die ggf. farbige Ausgabe der Titelrückseite -% wird das Hilfmakro \cs{tud@titleback} definiert. Mit \cs{tud@titlepagenumber} -% kann eine Seitenzahl für den Titel~-- auch über den Befehl \cs{makecover}~-- -% angegeben werden. +% wird das Hilfmakro \cs{tud@titleback} definiert. Eine Seitenzahl für den +% Titel kann mit \cs{tud@title@pagenumber} angegeben werden. % \begin{macrocode} -\newcommand*\tud@titleback{}% -\newcommand*\tud@maketitlepage{% +\newcommand*\tud@titleback{} +\newcommand*\tud@make@titlepage{% % \end{macrocode} % Es wird durch die \KOMAScript-Option \opt{titlepage} unterschieden, ob eine % Titelseite oder aber ein Titelkopf gesetzt werden soll. In Abhängigkeit davon @@ -285,17 +488,17 @@ % wird die entsprechende Layoutoption ausgewertet und entsprechend dieser die % Werte belegt. % \begin{macrocode} - \def\tud@title@fontcolor{}% - \ifcase\tud@layout@title\relax\or\or% litecolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\or% litecolor + \renewcommand*\tud@title@fontcolor{HKS41}% \or% barcolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% bicolor - \def\tud@title@fontcolor{HKS41}% + \renewcommand*\tud@title@fontcolor{HKS41}% \or% color - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \or% full - \def\tud@title@fontcolor{HKS41!30}% + \renewcommand*\tud@title@fontcolor{HKS41!30}% \fi% % \end{macrocode} % Die Titelseite. Es existieren die Optionen \opt{full} für eine vollständig @@ -308,8 +511,8 @@ % Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist % ein Großteil der Einstellungen irrelevant und wird übersrpungen. % \begin{macrocode} - \ifx\tud@titlepagenumber\relax\else% - \setcounter{page}{\tud@titlepagenumber}% + \ifx\tud@title@pagenumber\relax\else% + \setcounter{page}{\tud@title@pagenumber}% \fi% % \end{macrocode} % Dieser Teil entspricht der Standarddefinition. Für das Setzen des Covers ist @@ -331,16 +534,16 @@ % Layout per später Optionswahl noch zu ändern, muss der interne Code aus % \pkg{hyperref} hier noch einmal für den TUD-Titel aufgerufen werden. % \begin{macrocode} - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% % \end{macrocode} % Im Gegensatz zu den \KOMAScript-Klassen wird für eine Umschlagseite die % Option \opt{titlepage=firstiscover} nur für den Schmutztitel \cs{extratitle} -% und nicht für die eigentlcihe Titelseite unterstützt. Für ein Cover im \CD +% und nicht für die eigentliche Titelseite unterstützt. Für ein Cover im \CD % ist der Befehl \cs{makecover} mit den dazugehörigen Parametern zu nutzen. % \begin{macrocode} \ifx\@extratitle\@empty% \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% Using option `titlepage=firstiscover' is only\MessageBreak% possible with an extra title. Alternatively you can\MessageBreak% create a cover with `\string\makecover'% @@ -363,9 +566,9 @@ \topmargin=\dimexpr\coverpagetopmargin-1in\relax% \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% -\coverpagerightmargin\relax% - \textheight=\dimexpr\paperheight-\coverpagetopmargin% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% @@ -383,37 +586,14 @@ \fi% \fi% % \end{macrocode} -% Ist die Option \opt{tudbookmarks} aktiviert, werden für Umschlag- und -% Titelseite PDF"=Lesezeichen gesetzt. -% \begin{macrocode} - \if@tud@bookmarks% - \if@tud@cover% -%<*book|report> - \tudbookmark[0]{\coverpagename}{cover}% -% -%<*article> - \tudbookmark[1]{\coverpagename}{cover}% -% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \else% -%<*book|report> - \tudbookmark[0]{\titlepagename}{title}% -% -%<*article> - \tudbookmark[1]{\titlepagename}{title}% -% - \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% - \fi% - \fi% -% \end{macrocode} % Das ganze Layout wird vertikal so verschoben, dass der Titel auf der gleichen % Höhe steht wie die Überschriften auf Teil- und Kapitelseiten. % \begin{macrocode} \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\pageheadingsvskip}% + \TUD@len@deprecated{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% % \end{macrocode} % Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser @@ -446,7 +626,7 @@ % Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll % und kann. % \begin{macrocode} - \tud@letsubjectthesis% + \tud@thesis@tosubject% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% @@ -460,20 +640,20 @@ % Titelseite in unterschiedlichen Größen und Schriftstärken. % \begin{macrocode} {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% % \end{macrocode} % Der Untertitel wird ggf. in der gleichen Schrift gesetzt wie der Titel, % allerdings etwas kleiner. % \begin{macrocode} \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% + \vskip 2ex\@plus1ex\@minus1ex% \vskip 2\bigskipamount% % \end{macrocode} % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. % \begin{macrocode} - \let\tud@split@author\tud@split@author@title% + \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% \vskip 2ex\@plus1ex\@minus1ex% % \end{macrocode} @@ -485,7 +665,7 @@ \if@tud@cover\else% \ifx\@date\@empty\else% \vskip 2ex\@plus.1fill% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + {\usekomafont{date}{\tud@date@print\par}}% \fi% \fi% \vskip 2ex\@plus.25fill% @@ -511,7 +691,7 @@ \ifx\@graduation\@empty\else% \def\@tempc{% \@graduation% - \ifx\@graduationabbr\@empty\else\nobreakspace\@graduationabbr\fi% + \ifx\@@graduation\@empty\else\nobreakspace\@@graduation\fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% \vskip 2ex\@plus1ex\@minus1ex% @@ -533,28 +713,30 @@ % Darauf folgend wird der betreuende Hochschullehrer ausgegeben. % \begin{macrocode} \if@tud@cover\else% - \tud@title@names{supervisor}% \tud@title@names{referee}% \tud@title@names{advisor}% + \tud@title@names{supervisor}% \tud@title@names{professor}% % \end{macrocode} % 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. -% Durch das Paket \pkg{tudscrtask} wird das zusätzliche Feld \cs{@duedate} +% Durch das Paket \pkg{tudscrsupervisor} wird zusätzlich das Feld \cs{@duedate} % definiert, welches hier ggf. für auf ein nutzbares Datum geprüft wird. % \begin{macrocode} \ifx\@thesis\@empty\else% - \tud@datecheck% + \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifstr{\datetext}{}{}{\datetext\@titledelim}% - {\usekomafont{date}{\@date\nobreakspace\@datemore\par}}% + \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + {\usekomafont{date}{\tud@date@print\par}}% % \end{macrocode} % Zusätzlich kann noch ein Datum der mündlichen Verteidigung angegeben werden. % \begin{macrocode} \ifx\@defensedate\@empty\else% - \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% + \ifxblank{\defensedatetext}{}{% + \defensedatetext\tud@title@delimiter% + }% {\usekomafont{date}{\@defensedate\par}}% \fi% \fi% @@ -600,21 +782,21 @@ % Einstellungen übernommen. % \begin{macrocode} \def\@tempa{% - \def\tud@pagecolor{}% - \ifcase\tud@layout@title\relax\or% true - \cs@std@lock{tud@head@bar}{0}% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@layout@title@num\relax\or% true + \cs@std@lock{tud@head@bar@num}{0}% \or% litecolor - \cs@set@lock{tud@head@bar}{1}% + \cs@set@lock{tud@head@bar@num}{1}% \or% barcolor - \cs@set@lock{tud@head@bar}{2}% + \cs@set@lock{tud@head@bar@num}{2}% \or% bicolor - \cs@set@lock{tud@head@bar}{3}% + \cs@set@lock{tud@head@bar@num}{3}% \or% color - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{1}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{1}% \or% full - \def\tud@pagecolor{HKS41}% - \cs@set@lock{tud@head@bar}{3}% + \renewcommand*\tud@pagecolor{HKS41}% + \cs@set@lock{tud@head@bar@num}{3}% \fi% \tud@color{\tud@title@fontcolor}% \addtokomafont{pagenumber}{\usekomafont{tudheadings}}% @@ -624,7 +806,7 @@ % 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} - \tud@ifverlower{2.03}{\tud@ddc@enlargepage}{}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% }% % \end{macrocode} % Bei der Ausgabe des Covers werden lediglich die Farb- und Schriftdefinitionen @@ -674,41 +856,10 @@ \fi% \fi% \end{titlepage}% - \if@tud@cover\else% - \setcounter{footnote}{0}% - \global\let\and\relax% - \fi% } % \end{macrocode} % \end{macro}^^A \tud@titleback -% \end{macro}^^A \tud@maketitlepage -% \begin{macro}{\tud@title@uppercase} -% Für das Setzen einzelner Felder in Majuskeln werden diese beiden Befehle -% definiert. Bei der Verwendung des Befehls \cs{thanks} auf der Titelseite soll -% sichergestellt werden, dass der Inhalt selbst nicht in Majuskeln gesetzt wird. -% \begin{macrocode} -\newcommand*\tud@title@uppercase[1]{% - \let\@tempa\relax% - \begingroup% -% \end{macrocode} -% Der Befehl \cs{thanks} wird so umdefiniert, dass der Inhalt in ein temporäres -% Makro gespeichert wird. Danach wird durch das Setzen einer temporären Box der -% Befehl \cs{thanks} ausgeführt und der Inhalt gesichert. Für die Ausführung von -% \cs{tud@makeuppercase} wird das Argument von \cs{thanks} ignoriert. Nachdem -% das gewünschte Feld in Majuskeln gesetzt wurde, wird die gespeicherte Fußnote -% ausgegeben. -% \begin{macrocode} - \def\thanks##1{\gdef\@tempa{##1}}% - \let\footnote\thanks% - \sbox\z@{#1}% - \let\thanks\@gobble% - \let\footnote\@gobble% - \tud@makeuppercase{#1}% - \endgroup% - \ifx\@tempa\relax\else\thanks\@tempa\fi% -} -% \end{macrocode} -% \end{macro}^^A \tud@title@uppercase +% \end{macro}^^A \tud@make@titlepage % \begin{macro}{\tud@title@names} % Dieser Befehl dient zur getrennten Ausgabe von mehreren, mit dem Makro % \cs{and} separierten Einträgen in den Feldern \cs{@supervisor}, \cs{@referee} @@ -720,36 +871,92 @@ \def\and{% \ifcsvoid{#1othername}{\par}{% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1othername}\par}}% + {\usekomafont{titlepage}{\csuse{#1othername}\par}}% }% \let\and\par% }% \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{titlepage}{\@nameuse{#1name}\par}}% - {\usekomafont{author}{\@nameuse{@#1}\par}}% + {\usekomafont{titlepage}{\csuse{#1name}\par}}% + {\usekomafont{author}{\csuse{@#1}\par}}% \fi% } % \end{macrocode} % \end{macro}^^A \tud@title@names -% \begin{macro}{\titledelimiter} -% \begin{macro}{\@titledelim} -% Dieses Makro wird für das Trennzeichen auf der Titelseite genutzt. +% +% \iffalse +% +% \fi +% +% \begin{macro}{\tud@make@titlehead} +% \changes{v2.05}{2015/07/13}{neu}^^A +% \begin{macro}{\tud@make@@titlehead} +% \changes{v2.05}{2015/07/13}{neu}^^A +% Die Befehle für einen Titelkopf (\opt{titlepage=no}). Diese sind stark an den +% orginalen \KOMAScript-Befehle orientiert. +% \begin{macrocode} +\newcommand*\tud@make@titlehead{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@layout@title@num\relax\or\else% *color + \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \fi% + \par% + \ifx\tud@title@pagenumber\relax\else% + \ifnum\tud@title@pagenumber=\@ne\relax\else% + \ClassWarning{\TUD@Class@Name}{% + Optional argument of \string\maketitle\space ignored\MessageBreak% + at notitlepage-mode% + }% + \fi% + \fi% +% \end{macrocode} +% Dieser Teil ist mehr oder weniger funktional identisch zu \KOMAScript. % \begin{macrocode} -\newcommand*\@titledelim{:\nobreakspace} -\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}} + \begingroup% + \let\titlepage@restore\relax% + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark% + \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% + \next@tdpage% +% \end{macrocode} +% Hier wird überprüft, ob das Dokument zweispaltig gesetzt wird und zusätzlich +% das Paket \pkg{multicol} geladen wurde. Ist letzteres nicht der Fall, wird +% der Titel einspaltig ausgegeben und anschließend der im Zweispaltensatz +% begonnen. +% \begin{macrocode} + \@tempswafalse% + \if@twocolumn\ifnum\col@number>\@ne\relax% + \@tempswatrue% + \fi\fi% + \if@tempswa% + \ifx\@extratitle\@empty\else% + \twocolumn[\@makeextratitle]\next@tdpage% + \fi% + \twocolumn[\tud@make@@titlehead]% + \else% + \ifx\@extratitle\@empty\else% + \@makeextratitle\next@tdpage% + \fi% + \tud@make@@titlehead% + \fi% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% + \@thanks% + \endgroup% +} % \end{macrocode} -% \end{macro}^^A \@titledelim -% \end{macro}^^A \titledelimiter -% \begin{macro}{\tud@@maketitle} -% Der eigentliche Befehl für einen Titelkopf (\opt{titlepage=no}). +% Hier erfolgt die Ausgabe des Titelkopfes. % \begin{macrocode} -\newcommand*\tud@@maketitle{% +\newcommand*\tud@make@@titlehead{% \global\@topnum=\z@% +%<*book|report|article> \vspace*{% - \dimexpr\tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip% - +\parskip\relax% + \dimexpr\tud@len@areavskip+\tud@len@areaheadvskip-\baselineskip\relax% }% - \vspace*{\headingsvskip}% + \TUD@len@deprecated{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% +% +%<*poster> + \vspace*{\dimexpr\tud@len@areavskip-\baselineskip\relax}% +% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% % \end{macrocode} % Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser @@ -758,7 +965,7 @@ % \begin{macrocode} \begingroup% \usekomafont{titlepage}% - \tud@footnote@unhyper% + \tud@x@hyperref@realfootnotes% % \end{macrocode} % Ähnlich wie bei der Titelseite wird auch beim Titelkopf die Inhalte von % \cs{@titlehead} und \cs{@subject} so nach oben verschoben, dass der Titel @@ -777,32 +984,39 @@ % Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll % und kann. Bei einem Titelkopf ist nur diese Variante möglich. % \begin{macrocode} +%<*book|report|article> \TUDoptions{subjectthesis=true}% - \tud@letsubjectthesis% + \tud@thesis@tosubject% +% \ifx\@subject\@empty\else% \sbox\@ne{\vbox{{\usekomafont{subject}{\@subject\par\null}}}}% \addtolength\@tempdima{\dimexpr\ht\@ne+\dp\@ne+\p@\relax}% \fi% +%<*book|report|article> \vspace*{-\@tempdima}% +% \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% + \vskip 1ex\@plus.5ex\@minus.5ex% {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% - \vskip 2ex\@plus1ex\@minus1ex% \fi% - \vskip 2\bigskipamount% + \vskip 2ex\@plus1ex\@minus1ex% % \end{macrocode} % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. % \begin{macrocode} - \let\tud@split@author\tud@split@author@title% +%<*book|report|article> + \vskip 2\bigskipamount% + \let\tud@split@author@do\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\nobreakspace\@datemore\par}}% + \ifx\@date\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + {\usekomafont{date}{\tud@date@print\par}}% + \fi% \ifx\@publishers\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% {\usekomafont{publishers}{\@publishers\par}}% @@ -816,109 +1030,35 @@ % Titelkopf ausgegeben werden, dann wird eine Warnung ausgegeben. % \begin{macrocode} \ifx\@graduation\@empty\else\tud@title@wrn{graduation}\fi% - \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@referee\@empty\else\tud@title@wrn{referee}\fi% + \ifx\@advisor\@empty\else\tud@title@wrn{advisor}\fi% + \ifx\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% \ifx\@professor\@empty\else\tud@title@wrn{professor}\fi% % \end{macrocode} % Am Ende wird noch etwas vertikaler Abstand eingefügt. % \begin{macrocode} \vskip 2\bigskipamount% +% + \ifnum\col@number>\@ne\relax% + \ifdefvoid{\multicolsep}{}{% + \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% + }% + \fi% % \end{macrocode} % 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} - \tud@ifverlower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% \endgroup% } % \end{macrocode} -% \end{macro}^^A \tud@@maketitle -% \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. -% \begin{macrocode} -\newcommand*\tud@newline{} -\newcommand*\tud@split@author@title[2]{% -% \end{macrocode} -% Zu Beginn werden alle Felder, welche innerhalb von \cs{@author} angegeben -% sind, gesichert. -% \begin{macrocode} - \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 -% kleiner Abstand eingefügt. Anschließend wird jede Information einfach in -% einer neuen Zeile ausgegeben. -% \begin{macrocode} - \def\tud@newline{\vskip .5ex\let\tud@newline\newline}% -% \end{macrocode} -% Die Felder \cs{@author} und ggf. \cs{@authormore} werden sowohl auf der -% Titelseite als auch im Titelkopf jedoch nicht auf der Umschlagseite -% ausgegeben. -% \begin{macrocode} - {\usekomafont{author}{\ignorespaces#1}}% - \if@tud@cover\else% - \ifx\@authormore\@empty\else% - \tud@newline% - \@authormore% - \fi% -% \end{macrocode} -% Nur auf der Titelseite erfolgt die Ausgabe von Geburtsdatum, Geburtsort, -% Matrikelnummer und Immatrikulationsjahr. Sollte ein Titelkopf verwendet -% werden, so wird für jedes gesetzte Feld eine Warnung ausgegeben. -% \begin{macrocode} - \ifx\@dateofbirth\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\dateofbirthtext}{}% - {}{\dateofbirthtext\@titledelim}\@dateofbirth% - \ifx\@placeofbirth\@empty\else% - \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% - \fi% - \else% - \tud@title@wrn{dateofbirth}% - \fi% - \fi% - \ifx\@matriculationnumber\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationnumbername}{}% - {}{\matriculationnumbername\@titledelim}% - \@matriculationnumber% - \else% - \tud@title@wrn{matriculationnumber}% - \fi% - \fi% - \ifx\@matriculationyear\@empty\else% - \if@titlepage% - \tud@newline% - \ifstr{\matriculationyearname}{}% - {}{\matriculationyearname\@titledelim}% - \@matriculationyear% - \else% - \tud@title@wrn{matriculationyear}% - \fi% - \fi% - \fi% -% \end{macrocode} -% 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} -% \end{macro}^^A \tud@newline -% \end{macro}^^A \tud@split@author@title +% \end{macro}^^A \tud@make@@titlehead +% \end{macro}^^A \tud@make@titlehead % \begin{macro}{\maketitleonecolumn} % \changes{v2.02}{2014/08/16}{einspaltiger Text obligatorisch}^^A -% \begin{macro}{\@maketitleonecolumn} -% \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 -% \begin{macro}{\tud@title@twocolumn@box} +% \begin{macro}{\tud@title@box} % Zum Setzen eines einspaltigen Titels mit einspaltiger Zusammenfassung bei % einem Titelkopf~-- dank der Hilfe von Markus Kohm.% % \footnote{\url{http://www.komascript.de/node/1699}} @@ -935,14 +1075,18 @@ % \opt{titlepage}. % \begin{macrocode} \if@twocolumn% +%<*book|report|article> \if@titlepage% - \maketitle[#1]% + \tud@maketitle[#1]% \onecolumn{#2}\twocolumn% \else% - \tud@title@twocolumn{\maketitle[#1]{#2}}% +% + \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% +%<*book|report|article> \fi% +% \else% - \ClassError{\TUDClassName}{% + \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% }{}% \fi% @@ -952,7 +1096,7 @@ % gesetzt werden soll. Damit sich dieser auch über mehrere Seiten erstrecken % kann, wird mit einer Box gearbeitet. % \begin{macrocode} -\newsavebox\tud@title@twocolumn@box +\newsavebox\tud@title@box \newcommand\tud@title@twocolumn[1]{% % \end{macrocode} % Zunächst wird auf einseitigen Satz umgeschaltet. Der zu schreibende Inhalt @@ -969,7 +1113,7 @@ % von \val{.9}\cs{baselineskip} zur korrekten Postionierung der Überschrift % eingefügt werden. % \begin{macrocode} - \global\setbox\tud@title@twocolumn@box\vbox{% + \global\setbox\tud@title@box\vbox{% \vspace*{.9\baselineskip}#1\bigskip% }% \endgroup% @@ -979,10 +1123,10 @@ % der ggf. beachtet werden muss. % \begin{macrocode} \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \tud@ddc@check% - \ifcase\@tempb\relax\else% \tud@ddc@foot!=false - \setlength\@tempdima{\dimexpr\textheight-\tud@dim@ddcdiff\relax}% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% \@tempswatrue% \fi% }{}% @@ -990,14 +1134,14 @@ % Jetzt werden der Inhalt stückweise so lange auf einzelnen Seiten ausgeben, % bis der immer kleiner werdende Rest in der Box auf eine Seite passt. % \begin{macrocode} - \ifdim\ht\tud@title@twocolumn@box>\@tempdima\relax% - \@whiledim\ht\tud@title@twocolumn@box>\@tempdima\do{% + \ifdim\ht\tud@title@box>\@tempdima\relax% + \@whiledim\ht\tud@title@box>\@tempdima\do{% \splittopskip\topskip% \splitmaxdepth\maxdepth% - \vsplit\tud@title@twocolumn@box to \@tempdima% + \vsplit\tud@title@box to \@tempdima% \clearpage% \setlength\@tempdima{\textheight}% - \tud@ifverlower{2.03}{\@tempswafalse}{}% + \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% % \end{macrocode} % Passt der auszugebende einspaltige Teil auf eine Seite, ist eine vertikale @@ -1005,74 +1149,39 @@ % die Box vor der Ausgabe einfach neu und ohne diese Länge gesetzt. % \begin{macrocode} \else% - \setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% + \setbox\tud@title@box\vbox{#1\bigskip}% \fi% % \end{macrocode} % Der Rest wir einfach als optionales Argument von \cs{twocolumn} ausgegeben. % \begin{macrocode} - \twocolumn[\unvbox\tud@title@twocolumn@box]% + \twocolumn[\unvbox\tud@title@box]% % \end{macrocode} % In der Version~v2.02 wird eine Warnung ausgegeben, damit der Anwender den % Satzspiegel manuell anpassen kann. Die Verwendung von \pkg{afterpage} liefert % leider nicht in allen Fällen das gewollte Ergebnis, weshalb darauf verzichtet % wird. % \begin{macrocode} - \tud@ifverlower{2.03}{% + \tud@if@v@lower{2.03}{% \if@tempswa% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% You are using a two-column title along with\MessageBreak% the DDC-logo. Unfortunately in this case, the\MessageBreak% type area has to be adjusted manually. Please\MessageBreak% - use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% + use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak% in both columns after the title% }% \fi% }{}% } % \end{macrocode} -% \end{macro}^^A \tud@title@twocolumn@box +% \end{macro}^^A \tud@title@box % \end{macro}^^A \tud@title@twocolumn -% \end{macro}^^A \@maketitleonecolumn % \end{macro}^^A \maketitleonecolumn -% \begin{macro}{\tud@letsubjectthesis} -% Bei der Verwendung der Option \opt{subjectthesis} wird zum einen geprüft, ob -% das Feld \cs{@thesis} gesetzt ist und zum anderen, ob das Feld \cs{@subject} -% auch leer ist. -% \begin{macrocode} -\newcommand*\tud@letsubjectthesis{% - \if@tud@subjectthesis\ifx\@thesis\@empty\else% - \ifx\@subject\@empty\else% - \ClassWarning{\TUDClassName}{% - The option `subjectthesis' was activated.\MessageBreak% - The field `subject' will be overwritten with the\MessageBreak% - given thesis% - }% - \fi% - \let\@subject\@thesis% - \fi\fi% -} -% \end{macrocode} -% \end{macro}^^A \tud@letsubjectthesis -% \begin{macro}{\tud@title@wrn} -% Bei der Nutzung eines Titelkopfes wird bloß eine reduzierte Menge an -% Informationen ausgegeben. Darauf wird der Anwender ggf. hingewiesen. -% \begin{macrocode} -\newcommand*\tud@title@wrn[1]{% - \ClassWarning{\TUDClassName}{% - `\@backslashchar#1' has to be used with\MessageBreak% - activated titlepage option% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@title@wrn -% \begin{macro}{\next@tdpage} -% \changes{v2.02}{2014/05/17}{entfernt}^^A -% \begin{macro}{\tud@extratitle} -% \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 -% \end{macro}^^A \next@tdpage +% +% +% \iffalse +%<*book|report|article> +% \fi % % \subsection{Cover} % @@ -1084,7 +1193,7 @@ % \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} auch ohne \CD verwendbar}^^A +% \changes{v2.02}{2014/08/08}{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 @@ -1098,7 +1207,7 @@ % Ist die Option \opt{titlepage=firstiscover} aktiv, wird eine Warnung erzeugt. % \begin{macrocode} \if@titlepageiscoverpage% - \ClassWarning{\TUDClassName}{% + \ClassWarning{\TUD@Class@Name}{% Using both option `titlepage=firstiscover' and\MessageBreak% `\string\makecover' together isn't supported. The\MessageBreak% option `titlepage=firstiscover' will be ignored. If you\MessageBreak% @@ -1122,7 +1231,7 @@ \let\thanks\@gobble% \let\footnote\@gobble% \TUD@parameter@set{cover}{#1}% - \let\tud@layout@title\tud@layout@cover% + \let\tud@layout@title@num\tud@layout@cover@num% \tud@layout@process% % \end{macrocode} % Wird der Parameter \opt{cdgeometry} aktiviert, werden die Seitenränder wie @@ -1130,14 +1239,14 @@ % Einstellungen des Satzspiegels und können mit \cs{coverpage\dots margin} % durch den Anwender angepasst werden. % \begin{macrocode} - \if@tud@cover@cdgeometry% - \let\coverpagetopmargin\tud@dim@slimmargin% - \let\coverpagebottommargin\tud@dim@widemargin% - \let\coverpageleftmargin\tud@dim@widemargin% - \let\coverpagerightmargin\tud@dim@slimmargin% - \tud@ifverlower{2.03}{% - \def\coverpagetopmargin{.5\tud@dim@both}% - \def\coverpagebottommargin{.5\tud@dim@both}% + \if@tud@cdgeometry@cover% + \let\coverpagetopmargin\tud@len@slimmargin% + \let\coverpagebottommargin\tud@len@widemargin% + \let\coverpageleftmargin\tud@len@widemargin% + \let\coverpagerightmargin\tud@len@slimmargin% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagebottommargin{.5\tud@len@both}% }{}% \fi% % \end{macrocode} @@ -1147,14 +1256,14 @@ % 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% false + \ifcase\tud@layout@cover@num\relax% false \KOMAoptions{titlepage=firstiscover}% \let\@extratitle\@empty% \let\@uppertitleback\@empty% \let\@lowertitleback\@empty% \let\@dedication\@empty% - \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% - \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \ifx\tud@title@pagenumber\relax\gdef\tud@title@pagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@title@pagenumber]% \else% !false % \end{macrocode} % Der Befehl verwendet das Layout des Titels im \CD. Allerdings werden nicht @@ -1185,23 +1294,23 @@ \begingroup% \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% - \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + \textwidth=\dimexpr\tud@len@layoutwidth-\coverpageleftmargin% -\coverpagerightmargin\relax% \headheight=0pt% \headsep=0pt% - \footskip=\dimexpr\tud@dim@footsep+\tud@ta@footheight\relax% - \tud@ifverlower{2.03}{% - \footskip=\dimexpr\tud@dim@headsep+\tud@ta@footheight% + \footskip=\dimexpr\tud@len@footsep+\footheight\relax% + \tud@if@v@lower{2.03}{% + \footskip=\dimexpr\tud@len@headsep+\footheight% -1.25\baselineskip\relax% }{}% % \end{macrocode} % Bei der Höhe des oberen Seitenrandes muss unterschieden werden, ob der % Satzspiegel im \CD oder aber im Buchblock erscheinen soll. % \begin{macrocode} - \if@tud@cover@cdgeometry% + \if@tud@cdgeometry@cover% \def\coverpagetopmargin{% - \dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep\relax% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% }% \else% % \end{macrocode} @@ -1211,13 +1320,13 @@ % durch den Anwender korrigiert werden. Standardmäßig wird die Höhe jedoch für % das \CD angepasst. Auch die Fußhöhe wird im Zweifelsfall gesetzt. % \begin{macrocode} - \topmargin=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - +\tud@dim@headsep-1in\relax% + \topmargin=\dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep-1in\relax% \def\@tempa{2\dimexpr\coverpagetopmargin\relax}% \ifx\@tempa\coverpagebottommargin\relax% - \let\coverpagebottommargin\tud@dim@widemargin% - \tud@ifverlower{2.03}{% - \def\coverpagebottommargin{.5\tud@dim@both}% + \let\coverpagebottommargin\tud@len@widemargin% + \tud@if@v@lower{2.03}{% + \def\coverpagebottommargin{.5\tud@len@both}% }{}% \fi% \fi% @@ -1227,7 +1336,7 @@ % Seitenrande gesetzt werden. Dies hat mit der originären Definition von % \cs{coverpagetopmargin} zu tun. % \begin{macrocode} - \textheight=\dimexpr\paperheight-\coverpagetopmargin% + \textheight=\dimexpr\tud@len@layoutheight-\coverpagetopmargin% -\coverpagebottommargin-\tud@dim@extrabottommargin\relax% \topmargin=\dimexpr\coverpagetopmargin-1in\relax% \@colht=\textheight% @@ -1236,20 +1345,20 @@ \columnwidth=\textwidth% \hsize=\columnwidth% \linewidth=\hsize% - \tud@dim@headdiff=\z@% + \tud@len@areavskip=\z@% % \end{macrocode} % Weil bereits die Titelseite normalerweise die Seitenzahl eins bekommt, kann es % bei der Verwendung des Paketes \pkg{hyperref} zu einer Warnung aufgrund der % doppelt verwendeten Seitenzahl kommen. Um dies zu verhindern, werden die % Seitenanker für das Cover deaktiviert. % \begin{macrocode} - \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}% + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% % \end{macrocode} % Die Ausgabe des Covers und ggf. das Wiederherstellen des Satzspiegels. % \begin{macrocode} \tud@maketitle% \clearpage% - \csname titlepage@restore\endcsname% + \titlepage@restore% \fi% \endgroup% } @@ -1262,8 +1371,8 @@ % \changes{v2.03}{2015/01/12}{neu}^^A % \begin{parameter}{cdgeometry} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{macro}{\if@tud@cover@cdgeometry} -% \begin{macro}{\if@tud@cover@cdgeometry@locked} +% \begin{macro}{\if@tud@cdgeometry@cover} +% \begin{macro}{\if@tud@cdgeometry@cover@locked} % \begin{parameter}{pagenumber} % \begin{parameter}{cdfont} % \begin{parameter}{cdhead} @@ -1277,37 +1386,35 @@ % entsprechen in ihrem Verhalten den gleichnamigen Klassenoptionen~-- % \opt{cdgeometry} ausgenommen. % \begin{macrocode} -\bool@lock{@tud@cover@cdgeometry} -\TUD@parameter{cover}{% - \TUD@parameter@define{cdcover}[true]{\TUDoption{cdcover}{#1}}% +\bool@lock{@tud@cdgeometry@cover} +\TUD@parameter@family{cover}{% + \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% \TUD@parameter@let{cd}{cdcover}% - \TUD@parameter@define{cdgeometry}[true]{% + \TUD@parameter@def{cdgeometry}[true]{% \ifstrbool{#1}{% - \bool@set@lock{@tud@cover@cdgeometry}{true}% + \bool@set@lock{@tud@cdgeometry@cover}{true}% }{% - \bool@set@lock{@tud@cover@cdgeometry}{false}% + \bool@set@lock{@tud@cdgeometry@cover}{false}% }{% - \TUD@parameter@error{cdgeometry}{true,false}% + \ifstr{#1}{custom}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \ifstr{#1}{user}{\bool@set@lock{@tud@cdgeometry@cover}{false}}{% + \TUD@parameter@error{cdgeometry}{true,false}% + }% + }% }% }% - \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% % \end{macrocode} -% Mit \cs{TUD@parameter@define@ps} werden alle verfügbaren Parameter für die -% Kopf- und Fußzeilen definiert. +% Mit \cs{tud@ps@parameters} werden alle verfügbaren Parameter für die Kopf- +% und Fußzeilen definiert. % \begin{macrocode} - \TUD@parameter@define@ps{#1}% + \tud@ps@parameters{#1}% % \end{macrocode} % Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation angegeben % wurde, wird versucht, das gegebene Argument entweder als booleschen Ausdruck % für das Seitenlayout oder als Seitenzahl zu interpretieren. % \begin{macrocode} - \TUD@parameter@sethandler{% - \ifxnumber{#1}{% - \TUD@parameter@set{cover}{pagenumber=#1}% - }{% - \TUD@parameter@set{cover}{cdgeometry=#1}% - }% - }% + \TUD@parameter@handler@value{pagenumber}% } % \end{macrocode} % \end{parameter}^^A ddcfoot @@ -1319,13 +1426,14 @@ % \end{parameter}^^A cdhead % \end{parameter}^^A cdfont % \end{parameter}^^A pagenumber -% \end{macro}^^A \if@tud@cover@cdgeometry@locked -% \end{macro}^^A \if@tud@cover@cdgeometry +% \end{macro}^^A \if@tud@cdgeometry@cover@locked +% \end{macro}^^A \if@tud@cdgeometry@cover % \end{parameter}^^A cdgeometry % \end{parameter}^^A cd % \end{parameter}^^A cdcover % % \iffalse +% % % \fi % -- cgit v1.2.3