From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- .../latex/contrib/tudscr/source/tudscr-title.dtx | 1604 ++++++++++++++++++++ 1 file changed, 1604 insertions(+) create mode 100644 macros/latex/contrib/tudscr/source/tudscr-title.dtx (limited to 'macros/latex/contrib/tudscr/source/tudscr-title.dtx') diff --git a/macros/latex/contrib/tudscr/source/tudscr-title.dtx b/macros/latex/contrib/tudscr/source/tudscr-title.dtx new file mode 100644 index 0000000000..b6ec69ff30 --- /dev/null +++ b/macros/latex/contrib/tudscr/source/tudscr-title.dtx @@ -0,0 +1,1604 @@ +% \CheckSum{1406} +% \iffalse meta-comment +% +% TUD-Script -- Corporate Design of Technische Universität Dresden +% ---------------------------------------------------------------------------- +% +% Copyright (C) Falk Hanisch , 2012-2019 +% +% ---------------------------------------------------------------------------- +% +% 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 verändert werden. Die aktuelle +% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +% Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 +% oder später 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-title.dtx +%<*dtx> +% \fi +% +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-title.dtx}[2019/08/20 v2.06c TUD-Script\space% + (title)% +] +% +% \iffalse +\documentclass[english,ngerman,xindy]{tudscrdoc} +\ifpdftex{ + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +}{ + \usepackage{fontspec} +} +\usepackage{babel} +\usepackage{tudscrfonts} +\KOMAoptions{parskip=half-} +\usepackage{bookmark} +\usepackage[babel]{microtype} + +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-title.dtx} +\title{\file{\filename}} +\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} +\date{\fileversion\nobreakspace(\filedate)} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \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 für die \TUDScript-Klassen} +% +% Zusätzlich zu den \KOMAScript-Varianten werde für die \TUDScript-Klassen +% spezielle, im \TUDCD gehaltene Ausführungen von Titelseite und Titelkopf +% bereitgestellt. Zusätzlich gibt es auch eine Umschlagsseite (Cover), welche +% in beiden Gestaltungsvarianten genutzt werden kann. +% +% Für Titelseite und Titelkopf werden durch \TUDScript eine monochrome Version, +% eine Version mit leichtem Farbeinsatz und eine durchweg farbige Version im +% \TUDCD bereitgestellt. Dabei wird auch das Aussehen und die Position des +% Titels analog zu den Überschriften auf Teile- und Kapitelseiten festgelegt. +% +% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} +% +% \iffalse +%<*class&body> +% \fi +% +% \subsection{Optionen und Schriftelemente für die Titelei} +% +% \iffalse +% +%<*class&option> +%<*book|report|article> +% \fi +% +% \begin{option}{subjectthesis} +% \begin{macro}{\if@tud@subjectthesis} +% Die alte \cls{tudbook}-Klasse hat den Typ der Arbeit in der Betreffzeile des +% Titels gesetzt. Um dieses Verhalten nachbilden zu können, wird diese Option +% zur Verfügung gestellt. +% \begin{macrocode} +\newif\if@tud@subjectthesis +\TUD@key{subjectthesis}[true]{% + \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@subjectthesis +% \end{option}^^A subjectthesis +% \begin{option}{titlesignature} +% \changes{v2.06}{2018/08/21}{neu}^^A +% \begin{macro}{\if@tud@titlesignature} +% \changes{v2.06}{2018/08/21}{neu}^^A +% Von einigen Fakultäten wird eine Unterschrift der Autoren auf der Titelseite +% verlangt. Diese Option dient zum Aktivieren dieser Unterschriftenzeile am +% Ende der Titelseite. +% \begin{macrocode} +\newif\if@tud@titlesignature +\TUD@key{titlesignature}[true]{% + \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@titlesignature +% \end{option}^^A titlesignature +% +% \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@bool@numkey,{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 +% +% \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 +% 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{subjectthesis} +% 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. +% \begin{macrocode} +%<*book|report|article> +\newkomafont{thesis}{% + \usekomafont{title}% + \tud@thesis@fontsize% +} +% +\newkomafont{titlepage}{% + \raggedtitle% + \sffamily% + \mdseries% + \usesizeofkomafont{subsection}% + \tud@color{\tud@title@fontcolor}% +} +% \end{macrocode} +% \end{KOMAfont}^^A titlepage +% \end{KOMAfont}^^A thesis +% +% \subsection{Titelseite und Titelkopf} +% \subsubsection{Parameter für Titelseite und Titelkopf} +% +% \begin{macro}{\thanks} +% \begin{macro}{\footnotemark} +% 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} +% \end{macro}^^A \footnotemark +% \end{macro}^^A \thanks +% \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 +% \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}{Titelseite mit \cs{tud@maketitle@page}}^^A +% \changes{v2.06}{2018/08/16}{Unterstützung von \cs{frontispiece}}^^A +% \changes{v2.06}{2018/08/21}{\cs{emailaddress} für Autorangaben}^^A +% \changes{v2.06}{2018/08/21}{Unterschriftenfeld für Autoren}^^A +% \begin{macro}{\tud@title@pagenumber} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{parameter}{cdtitle} +% \changes{v2.03}{2015/01/12}{neu}^^A +% \begin{parameter}{cd} +% \changes{v2.03}{2015/01/12}{neu}^^A +% \begin{parameter}{pagenumber} +% \changes{v2.02}{2014/09/05}{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@cd@process}) und kann ggf. +% wiederhergestellt bzw. mit \cs{tud@cs@use} verwendet werden. Ist das Layout +% des \CDs gefordert wird entweder mit \cs{tud@maketitle@page} eine Titelseite +% gesetzt~-- wobei sich diese in ihrer Struktur am originalen \cs{maketitle} +% orientiert~-- oder das Titelkopflayout wird angepasst. +% \begin{macrocode} +\newcommand*\tud@title@pagenumber{} +\let\tud@title@pagenumber\relax +\newcommand*\tud@maketitle[1][]{% + \begingroup% + \cleardoublepage% +% \end{macrocode} +% Das optionale Argument wird für das Setzen der Parameter verwendet. +% \begin{macrocode} + \TUD@parameter@set{title}{#1}% +% \end{macrocode} +% Ist das \CD für den Titel deaktiviert, wird mit \cs{tud@cs@use} der originale +% \KOMAScript-Befehl \cs{maketitle} aufgerufen. Wird die erste Seite als Cover +% gesetzt, werden mit \cs{tud@cover@fixmargins} ggf. die Ränder an das gegebene +% Layout von \pkg{geometry} angepasst. +% \begin{macrocode} + \ifcase\tud@cd@title@num\relax% false + \if@titlepageiscoverpage% + \tud@cover@fixmargins% + \fi% + \ifx\tud@title@pagenumber\relax% + \tud@cs@use{maketitle}% + \else% + \tud@cs@use{maketitle}[\tud@title@pagenumber]% + \fi% + \tud@if@tudheadings{\currentpagestyle}{% + \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + }{}% +% \end{macrocode} +% Für die \TUDScript-Klassen gibt es für doe Titleseite sowie den Titelkopf +% separate Befehle. Sollte keine explizite Auswahl der Schriften erfolgt sein, +% so werden die \CD-Schriften aktiviert. +% \begin{macrocode} + \else% !false + \if@tud@parameter@ps@font@set\else% + \if@tud@cdfont@active\else% + \if@tud@cdfont@heavy% + \TUDoptions{cdfont=heavy}% + \else% + \TUDoptions{cdfont=true}% + \fi% + \fi% + \fi% +%<*book|report|article> + \if@titlepage% + \tud@maketitle@page% + \else% +% + \tud@maketitle@inpage% +%<*book|report|article> + \fi% +% + \fi% + \endgroup% + \setcounter{footnote}{0}% + \global\let\and\relax% +} +% \end{macrocode} +% Die einzelnen Parameter dienen zur Einstellung der Titelseite und entsprechen +% in ihrem Verhalten den gleichnamigen Klassenoptionen. +% \begin{macrocode} +\TUD@parameter@family{title}{% +%<*book|report|article> + \TUD@parameter@def{titlepage}[true]{\KOMAoption{titlepage}{#1}}% + \TUD@parameter@def{titlesignature}[true]{\TUDoption{titlesignature}{#1}}% +% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \TUD@parameter@def{cdtitle}[true]{\TUDoption{cdtitle}{#1}}% + \TUD@parameter@let{cd}{cdtitle}% + \TUD@parameter@def{cdgeometry}[true]{\TUDoption{cdgeometry}{#1}}% +% \end{macrocode} +% Mit \cs{TUD@parameter@ps@def} werden alle verfügbaren Parameter für +% die Kopf- und Fußzeilen definiert. +% \begin{macrocode} + \TUD@parameter@ps@def{#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@handler@value{pagenumber}% +} +% \end{macrocode} +% \end{parameter}^^A pagenumber +% \end{parameter}^^A cd +% \end{parameter}^^A cdtitle +% \end{macro}^^A \tud@title@pagenumber +% \end{macro}^^A \tud@maketitle +% \begin{macro}{\maketitle} +% \begin{environment}{titlepage} +% Der originale Befehl wird gesichert und danach überschrieben. +% \begin{macrocode} +\tud@cs@store{maketitle} +\let\maketitle\tud@maketitle +% \end{macrocode} +% Abschließend wird dafür Sorge getragen, dass bei einem aktivierten Seitenstil +% aus der \pgs{tudheadings}-Reihe der Titel ebenfalls 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}} +% \end{macrocode} +% \end{environment}^^A titlepage +% \end{macro}^^A \maketitle +% +% \iffalse +%<*book|report|article> +% \fi +% +% \subsubsection{Die Definition der Titelseite} +% +% \begin{macro}{\tud@maketitle@page} +% \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 +% werden kann, wird der standardmäßige \cs{maketitle}-Befehl nur wenn notwendig +% überschrieben (siehe \cs{tud@cd@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. Eine Seitenzahl für den +% Titel kann mit \cs{tud@title@pagenumber} angegeben werden. +% \begin{macrocode} +\newcommand*\tud@titleback{} +\newcommand*\tud@maketitle@page{% +% \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 +% werden Farben für die Schriften und den Seitenhintergrund festgelegt. Hierfür +% wird die entsprechende Layoutoption ausgewertet und entsprechend dieser die +% Werte belegt. +% \begin{macrocode} + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@cd@title@num\relax\or\or% litecolor + \renewcommand*\tud@title@fontcolor{HKS41}% + \or% barcolor + \renewcommand*\tud@title@fontcolor{HKS41}% + \or% bicolor + \renewcommand*\tud@title@fontcolor{HKS41}% + \or% color + \renewcommand*\tud@title@fontcolor{HKS41!30}% + \or% full + \renewcommand*\tud@title@fontcolor{HKS41!30}% + \fi% +% \end{macrocode} +% Die Titelseite mit unterschiedlich Varianten der farbigen Ausprägung. +% \begin{macrocode} + \begin{titlepage}% + \tud@cd@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. +% \begin{macrocode} + \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 +% ein Großteil der Einstellungen irrelevant und wird übersrpungen. +% \begin{macrocode} + \if@tud@coverpage\else% + \addtokomafont{footnote}{\sffamily}% + \let\footnotesize\small% + \let\footnoterule\relax% + \let\footnote\thanks% + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark% + \renewcommand*\@makefnmark{\rlap\@oldmakefnmark}% +% \end{macrocode} +% Das Paket \pkg{hyperref} definiert im Normalfall die Fußnoten so um, dass es +% anklickbare Links erzeugt. Damit dies auf der Titelseite zu ungewollten +% Effekten führt, werden die Hyperlinks hier deaktiviert. Leider macht dies +% \pkg{hyperref} direkt beim Laden. Da die \TUDScript-Klassen aber nun mal zwei +% unterschiedliche Titel bereitstellen und die Möglichkeit bestehen soll, dass +% 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@x@hyperref@realfootnotes% +% \end{macrocode} +% Die Option für eine Umschlagseite \opt{titlepage}|=|\val{firstiscover} wird +% im Gegensatz zu den \KOMAScript-Klassen nur für einen optionalen Schmutztitel +% \cs{extratitle} und nicht für die eigentliche Titelseite unterstützt. Für +% dieses Unterfangen ist bei \TUDScript der Befehl \cs{makecover} mit den +% dazugehörigen Parametern zu nutzen. +% \begin{macrocode} + \ifx\@extratitle\@empty% + \if@titlepageiscoverpage% + \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'% + }% + \@titlepageiscoverpagefalse% + \fi% + \ifx\@frontispiece\@empty\else% + \if@twoside\null\fi% + \fi% + \else% +% \end{macrocode} +% Der Teil ist aus den \KOMAScript-Klassen übernommen, damit werden die +% Seitenränder für ein Cover festgelegt. +% \begin{macrocode} + \if@titlepageiscoverpage% + \edef\titlepage@restore{% + \noexpand\endgroup% + \noexpand\global\noexpand\@colht\the\@colht% + \noexpand\global\noexpand\@colroom\the\@colroom% + \noexpand\global\vsize\the\vsize% + \noexpand\global\noexpand\@titlepageiscoverpagefalse% + \noexpand\let\noexpand\titlepage@restore\noexpand\relax% + }% + \begingroup% + \tud@cover@setmargins% + \else% + \let\titlepage@restore\relax% + \fi% + \noindent\@extratitle% + \fi% + \next@tpage% + \ifx\@frontispiece\@empty\else% + \noindent\@frontispiece% + \fi% + \next@tdpage% + \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} + \tud@cd@headstartvskip% + \TUD@deprecated@lengthcs{pageheadingsvskip}% + \vspace*{\tud@dim@pageheadingsvskip}% + \tud@cd@vphantom% + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% +% \end{macrocode} +% Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser +% Teil des Titels in einer Gruppe gesetzt. +% \begin{macrocode} + {\usekomafont{titlepage}{% +% \end{macrocode} +% Zunächst der Kopf des Titels. +% \begin{macrocode} + \tud@maketitle@head% +% \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 +% Titelseite in unterschiedlichen Größen und Schriftstärken. +% \begin{macrocode} + {\usekomafont{title}{\tud@title@format{\@title}\par}}% +% \end{macrocode} +% Der Untertitel wird ggf. in der gleichen Schrift gesetzt wie der Titel, +% allerdings etwas kleiner. +% \begin{macrocode} + \ifx\@subtitle\@empty\else% + {\usekomafont{partnumber}{\nobreak\tud@sec@strut}}% + {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + \fi% + \vskip 2\bigskipamount% +% \end{macrocode} +% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. +% \begin{macrocode} + \let\tud@split@author@do\tud@split@author@title% + \tud@multiple@split{@author}\par% + \vskip 2ex\@plus1ex\@minus1ex% +% \end{macrocode} +% Die Titelseite unterscheidet sich ein wenig, abhängig davon ob eine eine +% Abschlussarbeit gesetzt wird oder nicht. Falls dies nicht der Fall ist, dann +% wird das angegebene bzw. das heutige Datum und ggf. die Ergänzung ausgegeben. +% \begin{macrocode} + \ifx\@thesis\@empty% + \if@tud@coverpage\else% + \ifx\@date\@empty\else% + \vskip 2ex\@plus.1fill% + {\usekomafont{date}{\tud@date@print\par}}% + \fi% + \fi% + \vskip 2ex\@plus.25fill% +% \end{macrocode} +% Ist eine Abschlussarbeit angegeben, so wird zusätzlich unterschieden, ob +% diese bereits~-- gesteuert durch die Option \opt{subjectthesis}~-- in der +% Betreffzeile angegeben wurde oder aber separat und in deutlicherer Form auf +% dem Titelblatt ausgegeben werden soll. Sowohl Arbeitstyp als auf akademischer +% Grad werden dabei im Verhältnis 1:2 zwischen allen weiteren Angaben auf dem +% Titel vertikal ausgerichtet. +% \begin{macrocode} + \else% + \vskip 2ex\@plus.25fill% + \if@tud@subjectthesis\else% + {\usekomafont{thesis}{\tud@title@format{\@thesis}\par}}% + \vskip 2ex\@plus1ex\@minus1ex% + \fi% +% \end{macrocode} +% Ebenfalls wird in Abhängigkeit von der Option \opt{subjectthesis} der +% angestrebte akademische Grad ausgegeben. +% \begin{macrocode} + \if@tud@coverpage\else% + \ifx\@graduation\@empty\else% + \def\@tempc{% + \@graduation% + \ifx\@graduationabbreviation\@empty\else% + \nobreakspace\@graduationabbreviation% + \fi% + }% + {\usekomafont{titlepage}{\graduationtext\par}}% + \vskip 2.5ex\@plus1ex\@minus1ex% + {\usekomafont{thesis}{\tud@title@format{\@tempc}\par}}% + \vskip 3ex\@plus1ex\@minus1ex% + \fi% + \fi% + \vskip 2ex\@plus.5fill% + \fi% +% \end{macrocode} +% \ToDo{Befehl zum Angeben optionaler Inhalte, bspw. ein Bild}[v2.07] +% Wenn Betreuer angegeben wurden, dann werden diese auf dem Titel ausgeben. Um +% diese Titelseite auch für Dissertationen verwenden zu können, ist ein Feld +% für Gutachter vorgesehen. Außerdem wird für Promotionsschriften ein Feld für +% Fachreferenten bereitgehalten. Das Format der Ausgabe ist dabei identisch. +% Darauf folgend wird der betreuende Hochschullehrer ausgegeben. +% \begin{macrocode} + \if@tud@coverpage\else% + \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{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@date@check% + \ifx\@date\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + \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% + \ifxblank{\defensedatetext}{}{% + \defensedatetext\tud@title@delimiter% + }% + {\usekomafont{date}{\@defensedate\par}}% + \fi% + \fi% + \fi% +% \end{macrocode} +% Hier erfolgt die Ausgabe der Unterschriftenzeile, falls gewünscht. Ist nur +% ein Autor angegeben, wird die Box für die Unterschrift rechtsbündig erzeugt. +% \begin{macrocode} + \if@tud@titlesignature% + \let\tud@split@@author@do\tud@split@author@signature% + \vskip\tud@len@signatureskip\noindent% + \tud@ifin@and{\@@author}{}{\hfill}% + \tud@multiple@split{@@author}% + \fi% + \fi% +% \end{macrocode} +% Zu guter Letzt kann das Standard-Verlagsfeld befüllt werden. +% \begin{macrocode} + \ifx\@publishers\@empty\else% + \vskip 2ex\@plus.25fill% + {\usekomafont{publishers}{\@publishers\par}}% + \vskip\z@\@plus.25fill% + \fi% + }}% +% \end{macrocode} +% Die Rückseite des Titels wird~-- wie bei \KOMAScript~-- bloß bei zweiseitigem +% Satz ausgegeben. Für diese Klassen wird aufgrund der möglicherweise farbigen +% Rückseite das Hilfsmakro \cs{tud@titleback} benötigt. +% \begin{macrocode} + \let\tud@titleback\relax% + \if@twoside% + \@tempswatrue% + \ifx\@uppertitleback\@empty\ifx\@lowertitleback\@empty% + \@tempswafalse% + \fi\fi% + \if@tempswa% + \gdef\tud@titleback{% + \next@tpage% + \begin{minipage}[t]{\textwidth}% + \@uppertitleback% + \end{minipage}\par% + \vfill% + \begin{minipage}[b]{\textwidth}% + \@lowertitleback% + \end{minipage}\par% + \@thanks\let\@thanks\@empty% + }% + \fi% + \fi% +% \end{macrocode} +% Es werden Schriftart, die Schriftstärke, sowie die Farbe der Seite und des +% Kopfes und die Linienstärke des Querbalkens und die \DDC-Logos aus den +% Einstellungen übernommen. +% \begin{macrocode} + \def\@tempa{% + \renewcommand*\tud@pagecolor{}% + \ifcase\tud@cd@title@num\relax\or% true + \tud@locked@num@preset{tud@head@bar@num}{0}% + \or% litecolor + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% barcolor + \tud@locked@num@set{tud@head@bar@num}{2}% + \or% bicolor + \tud@locked@num@set{tud@head@bar@num}{3}% + \or% color + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{1}% + \or% full + \renewcommand*\tud@pagecolor{HKS41}% + \tud@locked@num@set{tud@head@bar@num}{3}% + \fi% + \tud@color{\tud@title@fontcolor}% + \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} + \tud@if@v@lower{2.03}{\tud@ddc@enlargepage}{}% + }% +% \end{macrocode} +% Bei der Ausgabe des Covers werden lediglich die Farb- und Schriftdefinitionen +% benötigt, die Seite kann danach beendet werden. +% \begin{macrocode} + \if@tud@coverpage% + \begingroup% + \@tempa% + \cleardoubleemptypage% + \endgroup% + \else% +% \end{macrocode} +% Beim Titel selbst muss noch ausgewertet werden, wie die Rückseite zu +% gestalten ist. Sollte als Klassenoption das strikte Beginnen aller Teile +% oder Kapitel auf einer rechten Seite aktiviert sein (\opt{open}|=|\val{right}) +% und zusätzlich bei farbigem \CD auch die Rückseiten farbig geleert werden, so +% erfolgt dies auch für die Titelseite. Die Klasse \cls{tudscrartcl} setzt +% lediglich die Titelseite farbig, die Rückseite niemals. +% \begin{macrocode} +%<*book|report> + \tud@cleardoublespecialpage[\tud@titleback]{% +% +%<*article> + \begingroup% +% + \@tempa% + \begingroup% + \let\thispagestyle\@gobble% + \next@tpage% + \endgroup% +%<*article> + \endgroup% + \tud@titleback% +% +%<*book|report> + }% +% +% \end{macrocode} +% Die Danksagung ist identisch zu \KOMAScript. +% \begin{macrocode} + \ifx\@dedication\@empty\else% + \next@tdpage\null\vfill% + {\centering\usekomafont{dedication}{\@dedication\par}}% + \vskip\z@\@plus3fill% + \@thanks\let\@thanks\@empty% + \cleardoubleemptypage% + \fi% + \fi% + \end{titlepage}% +} +% \end{macrocode} +% \end{macro}^^A \tud@titleback +% \end{macro}^^A \tud@maketitle@page +% +% \iffalse +% +% \fi +% +% \subsubsection{Die Definition des Titelkopfes} +% +% \begin{macro}{\tud@maketitle@inpage} +% \changes{v2.05}{2015/07/13}{neu}^^A +% \begin{macro}{\tud@maketitle@@inpage} +% \changes{v2.05}{2015/07/13}{neu}^^A +% Das sind die internen Makros für einen Titelkopf (\opt{titlepage}|=|\val{no}), +% welche sich stark an den orginalen \KOMAScript-Befehlen orientieren. +% \begin{macrocode} +\newcommand*\tud@maketitle@inpage{% + \renewcommand*\tud@title@fontcolor{}% + \ifcase\tud@cd@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} + \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} + \def\tud@res@a##1{##1}% + \if@twocolumn\ifnum\col@number>\@ne\relax% + \def\tud@res@a##1{\twocolumn[{##1}]}% + \fi\fi% + \ifx\@extratitle\@empty% + \ifx\@frontispiece\@empty\else% + \if@twoside\null\fi% + \fi + \else% + \tud@res@a{\@makeextratitle}% + \fi% + \next@tpage% + \ifx\@frontispiece\@empty\else% + \tud@res@a{\@makefrontispiece}% + \fi% + \next@tdpage% + \tud@res@a{\tud@maketitle@@inpage}% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi% + \@thanks% + \endgroup% +} +% \end{macrocode} +% Hier erfolgt die Ausgabe des Titelkopfes. +% \begin{macrocode} +\newcommand*\tud@maketitle@@inpage{% + \global\@topnum=\z@% + \tud@cd@headstartvskip% +%<*book|report|article> + \TUD@deprecated@lengthcs{headingsvskip}% + \vspace*{\tud@dim@headingsvskip}% + \tud@cd@vphantom% +% + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% +% \end{macrocode} +% Damit die Farbeinstellungen der Schriften lokal begrenzt bleiben, wird dieser +% Teil des Titels in einer Gruppe gesetzt. Außerdem werden +% wie auch für die Titelseite die Hyperlinks der Fußnoten deaktiviert. +% \begin{macrocode} + {\usekomafont{titlepage}{% + \tud@x@hyperref@realfootnotes% +% \end{macrocode} +% Bei einem Titelkopf ist nur die Variante möglich, dass eine Abschlussarbeit +% in der Betreffzeile angegeben wird. +% \begin{macrocode} +%<*book|report|article> + \TUDoptions{subjectthesis=true}% +% +% \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 +% selbst auf der gewünschten Höhe landet. +% \begin{macrocode} + \tud@maketitle@head% +% \end{macrocode} +% Der eigentliche Titel nach dem Titelkopf. +% \begin{macrocode} + {\usekomafont{title}{\tud@title@format{\@title}\par}}% + \ifx\@subtitle\@empty\else% + \vskip 1ex\@plus.5ex\@minus.5ex% + {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + \fi% + \vskip 2ex\@plus1ex\@minus1ex% +% \end{macrocode} +% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. +% \begin{macrocode} +%<*book|report|article> + \vskip 2\bigskipamount% + \let\tud@split@author@do\tud@split@author@title% + \tud@multiple@split{@author}\par% +% \end{macrocode} +% Ausgabe von Datum, Verlag und Danksagung wie im Original. +% \begin{macrocode} + \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}}% + \fi% + \ifx\@dedication\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + {\centering\usekomafont{dedication}{\@dedication\par}}% + \fi% +% \end{macrocode} +% Falls Felder genutzt wurden, die nur auf der Titelseite, nicht aber im +% Titelkopf ausgegeben werden, dann wird eine Warnung ausgegeben. +% \begin{macrocode} + \ifx\@graduation\@empty\else\tud@title@wrn{graduation}\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@if@v@lower{2.03}{\tud@ddc@enlargepage[\titlepagestyle]}{}% + }}% +} +% \end{macrocode} +% \end{macro}^^A \tud@maketitle@@inpage +% \end{macro}^^A \tud@maketitle@inpage +% \begin{macro}{\tud@maketitle@head} +% \changes{v2.06}{2018/08/17}{neu}^^A +% Mit diesem Makro wird dafür gesorgt, dass Titelkopf und Typisierung so +% postioniert werden, dass der Titel selbst vertikal nicht verschoben wird. +% Hierfür wird von allem, was über der Überschrift positioniert werden soll, +% die Höhe bestimmt werden, um einen entsprechenden Offset einfügen zu können. +% Dafür wird eine temporäre Standardbox verwendet. In diesen wird der Inhalt +% für die beiden Felder \cs{@titlehead} bzw. \cs{@subject} abgelegt und die +% sich daraus kumulierende Höhe in \cs{@tempdima} gespeichert. Vor dem Setzen +% der Felder kann nun der notwendige vertikale Freiraum vor dem eigentlichen +% Titel für \cs{@titlehead} und \cs{@subject} abgezogen werden. Anschließend +% wird die Box ausgegeben und der Aufbau der Titelseite kann beginnen. +% \begin{macrocode} +\newcommand*\tud@maketitle@head{% + \setbox\z@\vbox{% + \ifx\@titlehead\@empty\else% + {\usekomafont{titlehead}{% + \begin{minipage}[t]{\textwidth}% + \@titlehead\tud@sec@strut% + \end{minipage}% + }}% + \fi% +%<*book|report|article> + \tud@thesis@tosubject% +% + \ifx\@subject\@empty\else% + \par\medskip% + {\usekomafont{subject}{% + \@subject\tud@sec@strut% + }}% + \fi% + }% +% \end{macrocode} +% Der ermittelte Offset muss~-- warum auch immer~-- um \val{1pt} vergrößert +% werden. Zusätzlich wird ein mittlerer Abstand zwischen Kopf und Titel gesetzt. +% \begin{macrocode} + \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% + \ifdim\@tempdima>\z@\relax% +%<*book|report|article> + \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% +% + \usebox\z@\par\medskip% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@maketitle@inpage +% +% \subsubsection{Hilfsmakros für die Ausgabe} +% +% \begin{macro}{\tud@title@format} +% Für das Formatieren einzelner Felder auf dem Titel mit \cs{tud@sec@format} +% wird dieser Befehl 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@format[1]{% + \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@sec@format} wird das Argument von \cs{thanks} ignoriert. Nachdem das +% gewünschte Feld in Majuskeln gesetzt wurde, wird die gespeicherte Fußnote +% ausgegeben. +% \begin{macrocode} + \let\tud@thanks\relax% + \def\thanks##1{\gdef\tud@thanks{##1}}% + \let\footnote\thanks% + \sbox\z@{#1}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \tud@sec@format{#1}% + \edef\tud@res@a{% + \endgroup% + \ifx\tud@thanks\relax\else% + \noexpand\thanks{\expandonce\tud@thanks}% + \fi% + }% + \tud@res@a% +} +% \end{macrocode} +% \end{macro}^^A \tud@title@format +% +% \iffalse +%<*book|report|article> +% \fi +% +% \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 +% \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} +% und \cs{@advisor}. +% \begin{macrocode} +\newcommand*\tud@title@names[1]{% + \letcs\@tempa{@#1}% + \ifx\@tempa\@empty\else% + \def\and{% + \ifcsvoid{#1othername}{\par}{% + \vskip 1ex\@plus.5ex\@minus.5ex% + {\usekomafont{titlepage}{\csuse{#1othername}\par}}% + }% + \let\and\par% + }% + \vskip 1ex\@plus.5ex\@minus.5ex% + {\usekomafont{titlepage}{\csuse{#1name}\par}}% + {\usekomafont{author}{\csuse{@#1}\par}}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@title@names +% \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\strut% + \def\tud@newline@title{\newline\strut}% + }% +% \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. Gleiches gilt für E"~Mail-Adressen. +% \begin{macrocode} + {\usekomafont{author}{\ignorespaces#1\strut\unskip}}% + \if@tud@coverpage\else% + \ifx\@authormore\@empty\else% + \tud@newline@title% + \@authormore% + \fi% + \ifx\@emailaddress\@empty\else% + \tud@newline@title% + \@emailaddress% + \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} + \tud@multiple@fields@restore{@author}% + \tud@multiple@@@split{#2}{\vskip 1.5ex}% +} +% \end{macrocode} +% \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@split@author@signature} +% \changes{v2.06}{2018/08/21}{neu}^^A +% Das Makro \cs{tud@split@author@signature} dient zum Erstellen von Feldern für +% Unterschriften der Autoren am Ende der Titelseite. +% \begin{macrocode} +\newcommand*\tud@split@author@signature[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} +% Für jeden Autor wird in einer Box ein Unterschriftenfeld mit fester Breite +% erzeugt. Innerhalb der Box wird erst eine Linie und darunter der Name des +% Autors zentriert ausgegeben. +% \begin{macrocode} + \vbox{% + \hsize=.3\textwidth% + \centering% + \rule{.3\textwidth}{.05pt}\newline% + \ignorespaces#1\strut\unskip% + }% +% \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}{\hfill}% +} +% \end{macrocode} +% \end{macro}^^A \tud@split@author@signature +% +% \iffalse +% +% \fi +% +% \subsection{Einspaltige Titelei in zweispaltigen Dokumenten} +% +% \begin{macro}{\maketitleonecolumn} +% \changes{v2.02}{2014/08/16}{einspaltiger Text obligatorisch}^^A +% \begin{macro}{\tud@title@twocolumn} +% \changes{v2.03}{2015/01/13}{Bugfix für falsche Position des Titels}^^A +% \begin{macro}{\tud@title@box} +% Der Befehl \cs{maketitleonecolumn}\oarg{Parameter}\oarg{Inhalt} kann bei +% zweispaltigem Satz dazu genutzt werden, einen einspaltigen Titel zu bekommen. +% Beim der Verwendung einer Titelseite wird lediglich der Titel sowie +% anschließend ggf. \meta{Inhalt} einspaltig ausgegeben. Beim Satz eines +% Titelkopfes wird der Befehl \cs{tud@title@twocolumn} zur Ausgabe genutzt. +% \hrfn{http://www.komascript.de/node/1699}{Danke an Markus Kohm für die Hilfe}. +% \begin{macrocode} +\newcommand\maketitleonecolumn[2][]{% +% \end{macrocode} +% Hier erfolgt die Unterscheidung der Ausgabe, abhängig von der Option +% \opt{titlepage}. +% \begin{macrocode} + \if@twocolumn% +%<*book|report|article> + \if@titlepage% + \tud@maketitle[#1]% + \onecolumn{#2}\twocolumn% + \else% +% + \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% +%<*book|report|article> + \fi% +% + \else% + \ClassError{\TUD@Class@Name}{% + `\string\maketitleonecolumn' can only be used in twocolumn mode% + }{}% + \fi% +} +% \end{macrocode} +% Es folgt die Verarbeitung des Inhaltes des Titelkopfes, welcher einspaltig +% gesetzt werden soll. Damit sich dieser auch über mehrere Seiten erstrecken +% kann, wird mit einer Box gearbeitet. +% \begin{macrocode} +\newsavebox\tud@title@box +\newcommand\tud@title@twocolumn[1]{% +% \end{macrocode} +% Zunächst wird auf einseitigen Satz umgeschaltet. Der zu schreibende Inhalt +% wird in einer Box gespeichert. Während des Zusammenbaus der Box sind keine +% expliziten \cs{newpage}- oder \cs{clearpage}-Befehle erlaubt. +% \begin{macrocode} + \onecolumn% + \begingroup% + \let\clearpage\relax% + \let\newpage\relax% +% \end{macrocode} +% Sollte der Inhalt der Box größer als die verfügbare Texthöhe des Satzspiegels +% sein, muss aufgrund der verwendeten Box ein zusätzlicher vertikaler Abstand +% von |.9\baselineskip| zur korrekten Postionierung der Überschrift eingefügt +% werden. +% \begin{macrocode} + \global\setbox\tud@title@box\vbox{% + \vspace*{.9\baselineskip}#1\bigskip% + }% + \endgroup% +% \end{macrocode} +% Als erstes muss geprüft werden, ob der Inhalt größer als der Textbereich ist. +% Vor der Version~v2.03 gab es für das \DDC-Logo einen abweichenden Satzspiegel +% der ggf. beachtet werden muss. +% \begin{macrocode} + \setlength\@tempdima{\textheight}% + \tud@if@v@lower{2.03}{% + \tud@ddc@check% + \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false + \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% + \@tempswatrue% + \fi% + }{}% +% \end{macrocode} +% 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@box>\@tempdima\relax% + \@whiledim\ht\tud@title@box>\@tempdima\do{% + \splittopskip\topskip% + \splitmaxdepth\maxdepth% + \vsplit\tud@title@box to \@tempdima% + \clearpage% + \setlength\@tempdima{\textheight}% + \tud@if@v@lower{2.03}{\@tempswafalse}{}% + }% +% \end{macrocode} +% Passt der einspaltige Teil auf eine Seite, ist eine vertikale Korrektur von +% |.9\baselineskip| nicht notwendig. In diesem Fall wird die Box vor der +% Ausgabe einfach neu und ohne diese Länge gesetzt. +% \begin{macrocode} + \else% + \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@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@if@v@lower{2.03}{% + \if@tempswa% + \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@len@ddcdiff}'\MessageBreak% + in both columns after the title% + }% + \fi% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@title@box +% \end{macro}^^A \tud@title@twocolumn +% \end{macro}^^A \maketitleonecolumn +% +% +% \iffalse +%<*book|report|article> +% \fi +% +% \subsection{Umschlagseite (Cover)} +% +% Zusätzlich zur eigentlichen Titelseite kann für Druckerzeugnisse eine +% separate Umschlagseite erzeugt werden. Um die Gestaltung dieser anzupassen, +% wurden Einstellungsmöglichkeiten vorgesehen, die insbesondere den verwendeten +% Satzspiegel betreffen. +% +% \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}{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 +% \begin{parameter}{cdcover} +% \changes{v2.03}{2015/01/12}{neu}^^A +% \begin{parameter}{cd} +% \changes{v2.03}{2015/01/12}{neu}^^A +% \begin{parameter}{pagenumber} +% \begin{parameter}{cdgeometry} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{macro}{\if@tud@cdgeometry@cover} +% \begin{macro}{\if@tud@cdgeometry@cover@locked} +% \begin{macro}{\if@tud@coverpage} +% Der Befehl \cs{makecover} ist für eine Umschlagseite bei einem gebundenen +% Werk zu verwenden. +% \begin{macrocode} +\newif\if@tud@coverpage +\newcommand*\makecover[1][]{% +% \end{macrocode} +% Ist die Option \opt{titlepage}|=|\val{firstiscover} aktiv, wird eine Warnung +% erzeugt. +% \begin{macrocode} + \if@titlepageiscoverpage% + \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% + want to create an individual cover, you have to use\MessageBreak% + `\string\extratitle' instead of `\string\makecover'. \MessageBreak% + See also the documentation of KOMA-Script% + }% + \@titlepageiscoverpagefalse% + \fi% +% \end{macrocode} +% Die Erscheinung des Covers lässt sich durch wenige Optionen etwas anpassen. +% Standardmäßig ist das Cover farblos, die farbige Darstellung wird durch die +% Klassenoption \opt{cdcover} gewählt. Außerdem wird normalerwe ein Layout +% erzeugt, welches sich genau an die Vorgaben des \CDs hält und außerdem die +% Binderandkorrektur \emph{nicht} beachtet. Optional kann das Cover im +% Satzspiegel erstellt werden. Zuletzt ist die Verwendung der Schriften des +% \CDs deaktivierbar. +% \begin{macrocode} + \clearpage% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \TUD@parameter@set{cover}{#1}% + \let\tud@cd@title@num\tud@cd@cover@num% + \tud@cd@process% +% \end{macrocode} +% Je nachdem, ob das \CD verwendet wird, wird der Satzspiegel standardmäßig +% umgestellt oder eben nicht. Der Schalter \cs{if@tud@coverpage} wird innerhalb +% des Befehles \cs{tud@maketitle} genutzt, um die Unterscheidung zu machen, ob +% es sich bei der aktuellen Ausgabe um das Cover im \CD oder eine beliebige +% Titelseite handelt. +% \begin{macrocode} + \ifcase\tud@cd@cover@num\relax% false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{false}% + \@tud@coverpagefalse% + \else% !false + \tud@locked@bool@preset{@tud@cdgeometry@cover}{true}% + \@tud@coverpagetrue% + \fi% +% \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} + \ifundef{\hypersetup}{}{\hypersetup{pageanchor=false}}% +% \end{macrocode} +% Ein Cover wird immer als komplette Seite und nie als Kopf gesetzt. Außerdem +% werden ein mit \cs{extatitle} gegebener Schmutztitel ebenso ignoriert, wie +% die dazugehörige Rückseite, Danksagung oder Einträge für die Titelrückseite. +% \begin{macrocode} + \@titlepagetrue% + \let\@extratitle\@empty% + \let\@frontispiece\@empty% + \let\@uppertitleback\@empty% + \let\@lowertitleback\@empty% + \let\@dedication\@empty% +% \end{macrocode} +% Wird der Parameter \opt{cdgeometry} aktiviert, werden die Seitenränder wie +% durch das \CD vorgegeben eingestellt. Andernfalls entsprechen diese den +% Einstellungen des Satzspiegels und können mit \cs{coverpage\dots margin} +% durch den Anwender angepasst werden. +% \begin{macrocode} + \if@tud@cdgeometry@cover% +% \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@coverpage% + \def\coverpagetopmargin{% + \dimexpr\tud@len@topmargin+\tud@len@barheight% + +\tud@len@headsep\relax% + }% + \else% + \tud@if@v@lower{2.03}{% + \def\coverpagetopmargin{.5\tud@len@both}% + }{% + \def\coverpagetopmargin{\tud@len@slimmargin}% + }% + \fi% + \tud@if@v@lower{2.03}{% + \def\coverpagebottommargin{.5\tud@len@both}% + }{% + \def\coverpagebottommargin{\tud@len@widemargin}% + }% + \def\coverpageleftmargin{\tud@len@widemargin}% + \def\coverpagerightmargin{\tud@len@slimmargin}% + \fi% + \if@tud@coverpage% +% \end{macrocode} +% Der Satzspiegel wird hierfür äquivalent zu den \KOMAScript-Klassen gesetzt, +% wenn die Option \opt{titlepage}|=|\val{firstiscover} aktiviert ist. +% \begin{macrocode} + \edef\titlepage@restore{% + \noexpand\endgroup% + \noexpand\global\noexpand\@colht\the\@colht% + \noexpand\global\noexpand\@colroom\the\@colroom% + \noexpand\global\vsize\the\vsize% + \noexpand\global\noexpand\@titlepageiscoverpagefalse% + \noexpand\let\noexpand\titlepage@restore\noexpand\relax% + }% +% \end{macrocode} +% Linker und rechter Rand sowie die Textbreite werden identisch erzeugt. Für +% das Layout im \CD wurden die Seitenränder (\cs{coverpage\dots margin}) zuvor +% angepasst. +% \begin{macrocode} + \begingroup% + \tud@cover@setmargins% + \tud@len@areavskip=\z@% +% \end{macrocode} +% Die Ausgabe des Covers und ggf. das Wiederherstellen des Satzspiegels. +% \begin{macrocode} + \tud@maketitle% + \clearpage% + \titlepage@restore% +% \end{macrocode} +% Für den Fall, dass eine Umschlagseite gesetzt werden soll, die nicht im \CD +% erscheint, wird einfach das originale \cs{maketitle} aufgerufen und die +% Option \opt{titlepage}|=|\val{firstiscover} verwendet, um die Seitenränder +% anpassen zu können. +% \begin{macrocode} + \else% + \@titlepageiscoverpagetrue% + \tud@cover@fixmargins% + \ifx\tud@title@pagenumber\relax% + \tud@cs@use{maketitle}% + \else% + \tud@cs@use{maketitle}[\tud@title@pagenumber]% + \fi% + \fi% + \endgroup% +} +% \end{macrocode} +% Die einzelnen Parameter dienen zur Einstellung der Umschlagseite und +% entsprechen~-- \prm{cdgeometry} ausgenommen~-- in ihrem Verhalten den +% gleichnamigen Klassenoptionen. Der genannte Parameter kann eigentlich nur mit +% booleschen Werten verwenet werden. Für einen benutzerdefinierten Satzspiegel +% der Umschlagseite müssen die \KOMAScript-Makros \cs{coverpage\dots{}margin} +% angepasst werden. +% \begin{macrocode} +\tud@locked@newbool{@tud@cdgeometry@cover} +\TUD@parameter@family{cover}{% + \TUD@parameter@def{pagenumber}{\def\tud@title@pagenumber{#1}}% + \TUD@parameter@def{cdcover}[true]{\TUDoption{cdcover}{#1}}% + \TUD@parameter@let{cd}{cdcover}% + \TUD@parameter@def{cdgeometry}[true]{% + \TUDoption{cdgeometry}{#1}% + \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside + \tud@locked@bool@set{@tud@cdgeometry@cover}{true}% + \else% + \tud@locked@bool@set{@tud@cdgeometry@cover}{false}% + \fi% + }% +% \end{macrocode} +% Mit \cs{TUD@parameter@ps@def} werden alle verfügbaren Parameter für +% die Kopf- und Fußzeilen definiert. +% \begin{macrocode} + \TUD@parameter@ps@def{#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@handler@value{pagenumber}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@coverpage +% \end{macro}^^A \if@tud@cdgeometry@cover@locked +% \end{macro}^^A \if@tud@cdgeometry@cover +% \end{parameter}^^A cdgeometry +% \end{parameter}^^A pagenumber +% \end{parameter}^^A cd +% \end{parameter}^^A cdcover +% \end{macro}^^A \makecover +% \begin{macro}{\coverpagetopmargin} +% \begin{macro}{\coverpagebottommargin} +% Bei der Verwendung eines eigenen Satzspiegels kann der obere Seitenrand über +% das Makro \cs{coverpagetopmargin} geändert werden. Die \KOMAScript-Befehle +% werden so angepasst, dass die Ränder für eine Cover im des \CDs korrekt +% voreingestellt sind. Das Vermeiden einer unerwünschten Überdeckung des Kopfes +% oder ein zu kleiner Fußbereich muss durch den Anwender korrigiert werden. +% \begin{macrocode} +\renewcommand*{\coverpagetopmargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \else% + \dimexpr\topmargin+1in\relax% + \fi% +} +\renewcommand*{\coverpagebottommargin}{% + \if@tud@coverpage% + \dimexpr\tud@len@widemargin\relax% + \else% + 2\dimexpr\coverpagetopmargin\relax% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \coverpagebottommargin +% \end{macro}^^A \coverpagetopmargin +% \begin{macro}{\tud@cover@fixmargins} +% \changes{v2.06}{2018/08/16}{neu}^^A +% \begin{macro}{\tud@cover@setmargins} +% \changes{v2.06}{2018/08/16}{neu}^^A +% Diese beiden Befehle werden verwendet, um die von \KOMAScript{} zur Verfügung +% gestellten Befehle für die Definition der Cover-Seitenränder so anzupassen, +% dass diese auch mit der Option \opt{layout} aus dem Paket \pkg{geometry} +% genutzt werden können. Dafür werden die vom Anwender definierten Seitenränder +% expandiert und mit dem notwendigen Offset beaufschlagt. +% \begin{macrocode} +\newcommand*\tud@cover@fixmargins{% + \begingroup% + \tud@cdgeometry@assignlayout% + \tud@x@geometry@fixmargins% +% \end{macrocode} +% Standardmäßig ist \cs{coverbottommargin} abhängig von \cs{covertopmargin}, +% weshalb dieses Makro als erstes expandiert wird. +% \begin{macrocode} + \setlength\@tempdima{% + \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset + +\paperheight-\tud@len@layoutheight\relax% + }% + \edef\coverpagebottommargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% + }% + \edef\coverpagetopmargin{\the\@tempdima}% +% \end{macrocode} +% Selbiges gilt für \cs{coverrightmargin} und \cs{coverleftmargin}. +% \begin{macrocode} + \setlength\@tempdima{% + \dimexpr\coverpagerightmargin-\tud@len@layouthoffset + +\paperwidth-\tud@len@layoutwidth\relax% + }% + \edef\coverpagerightmargin{\the\@tempdima}% + \setlength\@tempdima{% + \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% + }% + \edef\coverpageleftmargin{\the\@tempdima}% +% \end{macrocode} +% Abschließend werden die gewünschten Längen nach der lokalen Gruppe definiert. +% \begin{macrocode} + \edef\tud@res@a{% + \endgroup% + \def\noexpand\coverpagetopmargin{\coverpagetopmargin}% + \def\noexpand\coverpagebottommargin{\coverpagebottommargin}% + \def\noexpand\coverpageleftmargin{\coverpageleftmargin}% + \def\noexpand\coverpagerightmargin{\coverpagerightmargin}% + }% + \tud@res@a% +} +\newcommand*\tud@cover@setmargins{% + \tud@cover@fixmargins% + \topmargin=\dimexpr\coverpagetopmargin-1in\relax% + \oddsidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr\coverpageleftmargin-1in\relax% + \textwidth=\dimexpr\paperwidth-\coverpageleftmargin% + -\coverpagerightmargin\relax% + \textheight=\dimexpr\paperheight-\coverpagetopmargin% + -\coverpagebottommargin\relax% + \headheight=0pt% + \headsep=0pt% + \footskip=\baselineskip% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% +} +% \end{macrocode} +% \end{macro}^^A \tud@cover@setmargins +% \end{macro}^^A \tud@cover@fixmargins +% +% \iffalse +% +% +% \fi +% +% \Finale +% +\endinput -- cgit v1.2.3