diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx | 1360 |
1 files changed, 1360 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx new file mode 100644 index 00000000000..f2461fd028a --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx @@ -0,0 +1,1360 @@ +% \CheckSum{1375} +% \iffalse meta-comment +% ====================================================================== +% +% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen +% +% ====================================================================== +% 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 +% version 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, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (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 +%<*driver> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{tudscr-title.dtx}[% + 2014/11/13 v2.02 TUD-KOMA-Script (title)% +] +\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +\documentclass[english,ngerman]{tudscrdoc} +\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\usepackage[T1]{fontenc} +\usepackage{babel} +\usepackage{tudscrfonts} % only load this package, if the fonts are installed +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-title.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.02}{2014/06/24}{Unterstützung für \pkg{titlepage} entfernt}%^^A +% +% \section{Titelei} +% +% Die Titelseite wird für die \TUDScript-Klassen bereitgestellt. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&body> +% \fi +% +% \subsection{Titelseite und Titelkopf} +% +% Für alle Klassen im \CD der Technischen Universität Dresden wird eine neue +% Titelseite und ein neuer Titelkopf bereitgestellt. Es werden eine monochrome +% Version, eine Version mit leichtem Farbeinsatz und eine durchweg farbige +% Version bereitgestellt Außerdem wird hier das Aussehen und die Position des +% Titels analog zu den Überschriften auf Teile- und Kapitelseiten festgelegt. +% +% \iffalse +%</class&body> +%<*class&option> +% \fi +% +% \begin{option}{subjectthesis} +% \begin{macro}{\if@tud@subjectthesis} +% \begin{macro}{\if@tud@subjectthesis@locked} +% 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@lock{subjectthesis}[true]{% + \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@subjectthesis@locked +% \end{macro}^^A \if@tud@subjectthesis +% \end{option}^^A subjectthesis +% +% \iffalse +%</class&option> +%<*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{subthesis} +% deaktiviert ist. Es wird die gleiche Schrift wie für den Titel verwendet, +% allerdings etwas kleiner. \opt{titlepage} für alle Zusatzinformationen wie +% Autor, Datum etc. +% \begin{macrocode} +\newkomafont{thesis}{\usekomafont{title}\LARGE} +\newkomafont{titlepage}{% + \usekomafont{subject}% + \fontseries{\mddefault}% + \selectfont% + \large% +} +% \end{macrocode} +% \end{KOMAfont}^^A titlepage +% \end{KOMAfont}^^A thesis +% \begin{macro}{\tud@color@titlefont} +% \begin{macro}{\tud@color@titlepage} +% \begin{macro}{\tud@color@titlehead} +% Die Makros werden für die Hintergrundfarbe der Titelseite sowie die Farbe der +% Schriften verwendet. +% \begin{macrocode} +\newcommand*\tud@color@titlefont{black} +\newcommand*\tud@color@titlepage{white} +\newcommand*\tud@color@titlehead{black} +% \end{macrocode} +% \end{macro}^^A \tud@color@titlehead +% \end{macro}^^A \tud@color@titlepage +% \end{macro}^^A \tud@color@titlefont +% \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}{Neue Parameter}%^^A +% \changes{v2.02}{2014/09/05}{Titelseite mit \cs{tud@maketitlepage}}%^^A +% \begin{macro}{\tud@titlepagenumber} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% 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 +% 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@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 + \ifx\tud@titlepagenumber\relax\gdef\tud@titlepagenumber{1}\fi% + \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \else% + \if@titlepage% + \tud@maketitlepage% +% \end{macrocode} +% Neben einer kompletten Titelseite gibt es auch noch einen Titelkopf. Auch +% hierfür wird die Ausprägung festgelegt. +% \begin{macrocode} + \else% + \ifcase \tud@layout@title\relax\or\else% + \def\tud@color@titlefont{HKS41}% + \def\tud@color@titlehead{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% +% \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. +% \begin{macrocode} + \if@twocolumn% + \tud@title@twocolumn[{\tud@cmd@use{maketitle}[\tud@titlepagenumber]}]% + \else% + \tud@cmd@use{maketitle}[\tud@titlepagenumber]% + \fi% + \fi% + \fi% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@titlepagenumber +% \end{macro}^^A \tud@maketitle +% \begin{parameter}{pagenumber} +% \changes{v2.02}{2014/09/05}{neu}^^A +% \begin{parameter}{cdfont} +% \changes{v2.02}{2014/09/05}{neu}^^A +% Die einzelnen Parameter dienen zur Einstellung der Titelseite und entsprechen +% in ihrem Verhalten den gleichnamigen Klassenoptionen. +% \begin{macrocode} +\TUD@parameter{title}{% + \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% + \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@sethandler{\TUD@parameter@set[title]{pagenumber=#1}}% +}% +% \end{macrocode} +% \end{parameter}^^A cdfont +% \end{parameter}^^A pagenumber +% 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} +% \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@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. +% \begin{macrocode} +\newcommand*\tud@titleback{}% +\newcommand*\tud@maketitlepage{% +% \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} + \ifcase \tud@layout@title\relax\or\or% + \def\tud@color@titlefont{HKS41}% + \def\tud@color@titlehead{HKS41}% + \or% + \def\tud@color@titlepage{HKS41}% + \def\tud@color@titlefont{HKS41!30}% + \def\tud@color@titlehead{white}% + \fi% +% \end{macrocode} +% Die Titelseite. Es existieren die Optionen \opt{full} für eine vollständig +% farbige Seite sowie \opt{lite} für farbige Schriften und \opt{on} für den +% Standardtitel. +% \begin{macrocode} + \begin{titlepage}% +% \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@titlepagenumber\relax\else% + \setcounter{page}{\tud@titlepagenumber}% + \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@cover\else% + \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} definert 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@footnote@unhyper% +% \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 +% ist der Befehl \cs{makecover} mit den dazugehörigen Parametern zu nutzen. +% \begin{macrocode} + \ifx\@extratitle\@empty% + \if@titlepageiscoverpage% + \ClassWarning{\tudcls@name}{% + Using option `titlepage=firstiscover' is only\MessageBreak% + possible with an extra title. Alternatively you can\MessageBreak% + create a cover with `\string\makecover'% + }% + \fi% + \else% +% \end{macrocode} +% Der Teil ist aus den \KOMAScript-Klassen kopiert\dots +% \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% + \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% + \else% + \let\titlepage@restore\relax% + \fi% + \noindent\@extratitle\next@tdpage% + \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}% +%</book|report> +%<*article> + \tudbookmark[1]{\coverpagename}{cover}% +%</article> + \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% + \else% +%<*book|report> + \tudbookmark[0]{\titlepagename}{title}% +%</book|report> +%<*article> + \tudbookmark[1]{\titlepagename}{title}% +%</article> + \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% + }% + \vspace*{\pageheadingsvskip}% + \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 (\cs{begingroup}) gesetzt. +% \begin{macrocode} + \begingroup% + \usekomafont{titlepage}% +% \end{macrocode} +% Da die Überschrift auf einer festen Position liegen soll, muss 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 werden zwei temporäre +% Standardboxen verwendet. In diesen wird der gewünschte 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 \textbf{insgesamt} notwendige vertikaler Freiraum vor dem +% eigentlichen Titel für \cs{@titlehead} \textbf{und} \cs{@subject} abgezogen +% werden. Anschließend werden die beiden Boxen ausgegeben und der Aufbau der +% Titelseite kann beginnen. +% \begin{macrocode} + \setlength{\@tempdima}{\z@}% + \ifx\@titlehead\@empty\else% + \setbox0\vbox{% + \begin{minipage}[t]{\textwidth}% + {\usekomafont{titlehead}{\@titlehead\par\null}}% + \end{minipage}\newline\null% + }% + \addtolength{\@tempdima}{\dimexpr\ht0+\dp0\relax}% + \fi% +% \end{macrocode} +% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll +% und kann. +% \begin{macrocode} + \tud@letsubjectthesis% + \ifx\@subject\@empty\else% + \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% + \addtolength{\@tempdima}{\dimexpr\ht1+\dp1+1pt\relax}% + \fi% + \vspace*{-\@tempdima}% + \ifx\@titlehead\@empty\else\usebox0\par\fi% + \ifx\@subject\@empty\else\usebox1\par\fi% +% \end{macrocode} +% Nachdem bereits \cs{@titlehead} und \cs{@subject} gesetzt worden, folgen nun +% die weiteren Felder wie vom \CD~-- mehr oder weniger~-- vorgegeben auf der +% 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% + {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% + \vskip 2ex\@plus1ex\@minus1ex% + \fi% + \vskip 2\bigskipamount% +% \end{macrocode} +% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. +% \begin{macrocode} + \tud@check@author% + \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@cover\else% + \ifx\@date\@empty\else% + \vskip 2ex\@plus.1fill% + {\usekomafont{date}{\@date\space\ignorespaces\@datemore\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@uppercase{\@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@cover\else% + \ifx\@graduation\@empty\else% + \def\@tempc{% + \@graduation% + \ifx\@graduationabbr\@empty\else\space\@graduationabbr\fi% + }% + {\usekomafont{titlepage}{\graduationtext\par}}% + \vskip 2ex\@plus1ex\@minus1ex% + \if@tud@subjectthesis% + {\usekomafont{subject}{\@tempc\par}}% + \else% + {\usekomafont{thesis}{\tud@title@uppercase{\@tempc}\par}}% + \fi% + \vskip 3ex\@plus1ex\@minus1ex% + \fi% + \fi% + \vskip 2ex\@plus.5fill% + \fi% +% \end{macrocode} +% Wenn Betreuer angegeben wurden, dann werden diese auf dem Titel ausgeben. Um +% die Vorlage 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@cover\else% + \tud@title@names{supervisor}% + \tud@title@names{referee}% + \tud@title@names{advisor}% + \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. +% \begin{macrocode} + \ifx\@thesis\@empty\else% + \ifdefstring{\@date}{\today}{% +% \end{macrocode} +% Durch das Paket \pkg{tudscrtask} wird das zusätzliche Feld \cs{@duedate} +% definiert, welches hier ggf. für auf ein nutzbares Datum geprüft wird. +% \begin{macrocode} + \ifdefvoid{\@duedate}{% + \ClassWarning{\tudcls@name}{% + `\string\submissiondate' or `\string\date' was not given.% + \MessageBreak% + Since a thesis is a self-contained work, an end\MessageBreak% + date should be specified by the author.\MessageBreak% + Nevertheless, today's date is used% + }% + }{% + \ClassWarning{\tudcls@name}{% + `\string\submissiondate' or `\string\date' was not given.% + \MessageBreak It's substituted by the given due date% + }% + \let\@date\@duedate% + }% + }{}% + \ifx\@date\@empty\else% + \vskip 2ex\@plus1ex\@minus1ex% + \ifstr{\datetext}{}{}{\datetext\@titledelim}% + {\usekomafont{date}{\@date\space\ignorespaces\@datemore\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}% + {\usekomafont{date}{\@defensedate\par}}% + \fi% + \fi% + \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% + \endgroup% +% \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, abhängig \opt{heavyfont} 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{% + \tud@pagecolor{\tud@color@titlepage}% + \def\tud@head@color{\tud@color@titlehead}% + \color{\tud@color@titlefont}% + \addtokomafont{pagenumber}{\sffamily\color{\tud@color@titlefont}}% + \addtokomafont{footnote}{\sffamily\color{\tud@color@titlefont}}% + \thispagestyle{empty.tudheadings}% + \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@cover% + \begingroup% + \@tempa% + \cleardoubleemptypage% + \tud@restorepagecolor% + \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=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]{% +%</book|report> +%<*article> + \begingroup% +%</article> + \@tempa% + \begingroup% + \let\thispagestyle\@gobble% + \next@tpage% + \endgroup% +%<*article> + \tud@restorepagecolor% + \endgroup% + \tud@titleback% +%</article> +%<*book|report> + }% +%</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}% + \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% + \setbox0\vbox{#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 +% \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}{\@nameuse{#1othername}\par}}% + }% + \let\and\par% + }% + \vskip 1ex\@plus.5ex\@minus.5ex% + {\usekomafont{titlepage}{\@nameuse{#1name}\par}}% + {\usekomafont{author}{\@nameuse{@#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. +% \begin{macrocode} +\newcommand*\@titledelim{:\nobreakspace} +\newcommand*\titledelimiter[1]{\gdef\@titledelim{#1}} +% \end{macrocode} +% \end{macro}^^A \@titledelim +% \end{macro}^^A \titledelimiter +% \begin{macro}{\tud@@maketitle} +% Der eigentliche Befehl für einen Titelkopf (\opt{titlepage=no}). +% \begin{macrocode} +\newcommand*\tud@@maketitle{% +% \end{macrocode} +% Ab der \KOMAScript-Version 3.11c gibt es mit \cs{@makeextratitle} einen +% neuen, separaten Befehl für das Feld \cs{@extratitle}. Falls eine frühere +% Version verwendet wird, muss der Extratitel hier mit \cs{tud@extratitle} +% gesetzt werden. +% \begin{macrocode} + \global\@topnum=\z@% + \vspace*{\dimexpr% + \tud@dim@headdiff+\tud@dim@headingsvskip-\baselineskip+\parskip\relax% + }% + \vspace*{\headingsvskip}% + \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 (\cs{begingroup}) gesetzt. Außerdem werden +% wie auch für die Titelseite die Hyperlinks der Fußnoten deaktiviert. +% \begin{macrocode} + \begingroup% + \usekomafont{titlepage}% + \tud@footnote@unhyper% +% \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} + \setlength{\@tempdima}{\z@}% + \ifx\@titlehead\@empty\else% + \setbox0\vbox{% + \begin{minipage}[t]{\textwidth}% + {\usekomafont{titlehead}{\@titlehead\par\null}}% + \end{minipage}\newline\null% + }% + \addtolength{\@tempdima}{\dimexpr\ht0+\dp0\relax}% + \fi% +% \end{macrocode} +% Erkennen, ob in der Betreffzeile eine Abschlussarbeit ausgegeben werden soll +% und kann. Bei einem Titelkopf ist nur diese Variante möglich. +% \begin{macrocode} + \TUDoptions{subjectthesis=true}% + \tud@letsubjectthesis% + \ifx\@subject\@empty\else% + \setbox1\vbox{{\usekomafont{subject}{\@subject\par\null}}}% + \addtolength{\@tempdima}{\dimexpr\ht1+\dp1+1pt\relax}% + \fi% + \vspace*{-\@tempdima}% + \ifx\@titlehead\@empty\else\usebox0\par\fi% + \ifx\@subject\@empty\else\usebox1\par\fi% + {\usekomafont{title}{\tud@title@uppercase{\@title}\par}}% + \vskip 2ex\@plus1ex\@minus1ex% + \ifx\@subtitle\@empty\else% + {\usekomafont{subtitle}{\tud@title@uppercase{\@subtitle}\par}}% + \vskip 2ex\@plus1ex\@minus1ex% + \fi% + \vskip 2\bigskipamount% +% \end{macrocode} +% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. +% \begin{macrocode} + \tud@check@author% + \tud@multiple@split{@author}\par% + \vskip 2ex\@plus1ex\@minus1ex% +% \end{macrocode} +% Ausgabe von Datum, Verlag und Danksagung wie im Original. +% \begin{macrocode} + {\usekomafont{date}{\@date\space\ignorespaces\@datemore\par}}% + \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\@supervisor\@empty\else\tud@title@wrn{supervisor}\fi% + \ifx\@referee\@empty\else\tud@title@wrn{referee}\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% +% \end{macrocode} +% Wird das \DDC-Logo gesetzt, muss dafür am unteren Rand entsprechend Platz +% gelassen werden. +% \begin{macrocode} + \tud@ifinpslist{\titlepagestyle}{\tud@ddc@enlargepage}{}% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@@maketitle +% Es wird die Angabe einer kollaborativen Autorenschaft ermöglicht, wo für +% jeden einzelnen Autor weitere Angaben (Matrikelnummer etc.) gemacht werden +% können. Hierfür ist eine spezielle Art der Eingabe im Dokument notwendig. +% \begin{macro}{\tud@multiple@split} +% \begin{macro}{\tud@multiple@@split} +% \begin{macro}{\tud@multiple@@@split} +% \begin{macro}{\tud@multiple@field} +% Mehrere Autoren werden durch \cs{and} voneinander getrennt. Damit alle +% zusätzlichen Felder für alle Autoren einzeln nutzbar sind, muss der Inhalt +% des Feldes \cs{@author} an jedem \cs{and}-Befehl getrennt und für jeden Teil +% separat ausgewertet. Dafür wird der Befehl \cs{tud@multiple@@split} definiert, +% welcher allgemein gehalten ist um diesen auch für andere Felder nutzen zu +% können. Das obligatorische Argument ist dabei das Feld mit dem auszuwertenden +% Inhalt, der jeweils an \cs{and} getrennt werden soll. Dieses wird in +% \cs{tud@multiple@field} gespeichert. +% \begin{macrocode} +\newcommand*\tud@multiple@field{} +\newcommand*\tud@multiple@split[1]{% + \gdef\tud@multiple@field{#1}% + \begingroup% + \let\and\relax% +% \end{macrocode} +% Das Feld wird mit \cs{and} terminiert, um der Definition von +% \cs{tud@multiple@@split} in jedem Fall zu entsprechen. +% \begin{macrocode} + \edef\@tempa{\csname#1\endcsname\and}% + \expandafter\endgroup% + \expandafter\tud@multiple@@split\@tempa\relax% +} +% \end{macrocode} +% Das Makro \cs{tud@multiple@@split} wird so definiert, dass der Befehl +% \cs{and} als Separator für die einzelnen Argumente dient. Mit den beiden +% freigestellten Argumenten kann das Makro zur eigentlichen Ausgabe aufgerufen +% werden, welches aus dem gegebenen Feld (\cs{tud@multiple@field}) konstruiert +% wird (\cs{tud@split\meta{Feld}}). An dieses wird der jeweils aktuelle Autor +% im ersten Argument und die restlichen im zweiten Argument übergeben. +% \begin{macrocode} +\newcommand*\tud@multiple@@split{}% +\def\tud@multiple@@split#1\and#2\relax{% + \expandafter\csname tud@split\tud@multiple@field\endcsname{#1}{#2}% +} +% \end{macrocode} +% Der Befehl \cs{tud@multiple@@@split} prüft zum Schluss, ob noch weitere +% Autoren angegeben sind. Sollte dies der Fall sein, so wird der Inhalt des +% zweiten Argumentes ausgeführt und \cs{tud@multiple@@split} ein weiteres Mal +% aufgerufen, um so sequentiell alle Autoren abzuarbeiten. Dafür muss +% \cs{tud@multiple@@@split} innerhalb des verarbeitenden Makro +% (\cs{tud@split\meta{Feld}}) aufgerufen werden. +% \begin{macrocode} +\newcommand*\tud@multiple@@@split[2]{% + \ifx\relax#1\relax% + \def\@tempb{}% + \else% + \def\@tempb{#2\tud@multiple@@split#1\relax}% + \fi% + \@tempb% +} +% \end{macrocode} +% \end{macro}^^A \tud@multiple@field +% \end{macro}^^A \tud@multiple@@@split +% \end{macro}^^A \tud@multiple@@split +% \end{macro}^^A \tud@multiple@split +% \begin{macro}{\tud@multiple@setfields} +% Der Befehl \cs{tud@multiple@setfields}\marg{Initialisierung}\marg{Teilinhalt} +% wird verwendet, um innerhalb des Feldes \cs{@tud@multiple@field} zu prüfen, ob +% sich darin bestimmte Befehle aus \cs{tud@split\\meta{Feld}@list} zum Setzen +% zusätzlicher Informationen befinden. Sollte dies der Fall sein, so werden +% diese mit \meta{Initialisierung} initialisiert. Anschließend wird der +% übergebene Teilinhalt mit \cs{setbox0}\cs{vtop}\marg{\#1} in eine Box +% expandiert. Dieser Trick führt dazu, dass die Felder bereits gesetzt werden, +% ohne eine Ausgabe zu erzeugen. +% \begin{macrocode} +\newcommand*\tud@multiple@setfields[2]{% + \letcs\@tempa{tud@split\tud@multiple@field @list}% + \let\and\relax% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \begingroup% + \protected@expandtwoargs\in@{\@tempb}{\@nameuse{\tud@multiple@field}}% + \ifin@ \@tempb{#1}\fi% + \endgroup% + \fi% + }% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \setbox0\vtop{#2}% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@multiple@setfields +% \begin{macro}{\tud@check@author} +% \changes{v2.02}{2014/08/17}{neu}%^^A +% \begin{macro}{\tud@split@author} +% \changes{v2.02}{2014/07/25}{neu, aus Umbenennung \cs{tud@split@@author}}%^^A +% \begin{macro}{\tud@split@author@list} +% \changes{v2.02}{2014/07/25}{neu, Umbenennung \cs{tud@split@@author@list}}%^^A +% \begin{macro}{\tud@newline} +% Das Makro \cs{tud@split@author} dient der formatierten Ausgabe aller +% Informationen für mehrere Autoren auf der Titelseite. Falls das Autorenfeld +% nicht gesetzt wurde, wird mit \cs{tud@check@author} die standardmäßig +% vorhandene Warnung ausgegeben und danach das Feld als leer definiert. +% \begin{macrocode} +\newcommand*\tud@newline{} +\newcommand*\tud@check@author{% + \ifpatchable{\@author}{\@latex@warning@no@line}{\@author\gdef\@author{}}{}% +} +\newcommand*\tud@split@author[2]{% +% Zu Beginn werden alle Felder, welche innerhalb des \meta{Feld}-Argumentes +% angegeben sind, initial gelöscht (erstes Argument \cs{tud@multiple@setfields}) +% Anschließend werden die Felder des aktuellen Teils gefüllt (zweites Argument +% \cs{tud@multiple@setfields}). +% \begin{macrocode} + \tud@multiple@setfields{}{#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% + \space\placeofbirthtext\unskip\space\@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} +% Durch den Aufruf von \cs{tud@multiple@@@split} wird das übergebene \meta{Feld} +% sukzessive abgearbeitet. +% \begin{macrocode} + \tud@multiple@@@split{#2}{\vskip 2ex}% +} +% \end{macrocode} +% Innerhalb von \cs{tud@split@author@list} werden die Feldbefehle hinterlegt, +% die durch \cs{tud@multiple@setfield} geprüft und ggf. initialisert werden +% sollen. +% \begin{macrocode} +\newcommand*\tud@split@author@list{% + \authormore,\matriculationyear,\enrolmentyear,% + \matriculationnumber,\studentid,\matriculationid,% + \placeofbirth,\birthplace,\dateofbirth,\birthday,% +} +% \end{macrocode} +% \end{macro}^^A \tud@newline +% \end{macro}^^A \tud@split@author@list +% \end{macro}^^A \tud@split@author +% \end{macro}^^A \tud@check@author +% \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} +% \begin{macro}{\tud@title@twocolumn@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}} +% +% 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. +% \begin{macrocode} +\RequirePackage{afterpage}[1995/10/27] +\newcommand\maketitleonecolumn[2][]{% +% \end{macrocode} +% Hier erfolgt die Unterscheidung der Ausgabe, abhängig von der Option +% \opt{titlepage}. +% \begin{macrocode} + \if@twocolumn% + \if@titlepage% + \maketitle[#1]% + \onecolumn{#2}\twocolumn% + \else% + \tud@title@twocolumn[{\vspace*{.9\baselineskip}\maketitle[#1]{#2}}]% + \fi% + \else% + \ClassError{\tudcls@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@twocolumn@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% + \global\setbox\tud@title@twocolumn@box\vbox{#1\bigskip}% + \endgroup% +% \end{macrocode} +% Für den speziellen Satzspiegel mit dem \DDC-Logo im Fuß ist im Zweifelsfall +% etwas Anpassungarbeit von Nöten. Sollte dieser für die Titelseite benötigt +% werden, der entsprechende Seitenstil ist aber nicht geladen, so wird für die +% folgende Ausgaberoutine im ersten Durchlauf der Platz auf der Titelseite +% reduziert. +% \begin{macrocode} + \setlength{\@tempdimc}{\textheight}% + \tud@ifinpslist{\titlepagestyle}{% + \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@ddc@check% + \ifcase \@tempb\relax\else% + \setlength{\@tempdimc}{\dimexpr\textheight-\tud@dim@ddcdiff}% + \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. Dabei +% sollen für das seitenweise Zerteilen des Inhaltes innerhalb der Box dieselben +% Rahmenbedingungen für den Seitenaufbau gelten, wie auch im normalen Dokument. +% Nach der Ausgabe der ersten vollständigen Seite wird der verfügbare Platz auf +% das normale Maß zurückgesetzt. +% \begin{macrocode} + \@whiledim\@tempdimc<\ht\tud@title@twocolumn@box\do{% + \splittopskip\topskip% + \splitmaxdepth\maxdepth% + \vsplit\tud@title@twocolumn@box to \@tempdimc% + \clearpage% + \setlength{\@tempdimc}{\textheight}% + }% +% \end{macrocode} +% Der Rest wir einfach als optionales Argument von \cs{twocolumn} ausgegeben. +% \begin{macrocode} + \twocolumn[\unvbox\tud@title@twocolumn@box]% +% \end{macrocode} +% Sollte der einspaltige Teil bereits auf der Titelseite selbst beendet worden +% sein, so muss im zweispaltigen Satz für beide Spalten der Platz eingeschränkt +% werden. Leider ist das Vergrößern zweier Spalten in \LaTeXe nicht trivial +% möglich, weshalb hierfür wird das Paket \pkg{afterpage} benötigt wird. Es +% wird die aktuelle und mit \cs{afterpage} die nächstfolgende Spalte verkürzt. +% \begin{macrocode} + \ifdim\@tempdimc<\textheight\relax% + \enlargethispage{-\tud@dim@ddcdiff}% + \afterpage{\enlargethispage{-\tud@dim@ddcdiff}}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@title@twocolumn@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{\tudcls@name}{% + 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{\tudcls@name}{% + `\@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 +% +% \subsection{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}{\cs{makecover} jetzt auch ohne \CD verwendbar}^^A +% \begin{macro}{\if@tud@cover} +% \begin{macro}{\tud@coverpagetopmargin} +% \changes{v2.02}{2014/08/12}{neu}^^A +% Der Befehl ist für ein Cover bei einem gebundenen Werk zu verwenden. +% \begin{macrocode} +\newif\if@tud@cover +\newcommand*\tud@coverpagetopmargin{} +\let\tud@coverpagetopmargin\coverpagetopmargin +\newcommand*\makecover[1][]{% +% \changes{v2.02}{2014/08/12}{Satzspiegel bei \opt{cdlayout=false} +% anpassbar}%^^A +% \end{macrocode} +% Ist die Option \opt{titlepage=firstiscover} aktiv, wird eine Warnung erzeugt. +% \begin{macrocode} + \if@titlepageiscoverpage% + \ClassWarning{\tudcls@name}{% + Using both option `titlepage=firstiscover' and\MessageBreak% + `\string\makecover' together isn't supported. The\MessageBreak% + option `titlepage=firstiscover' will be ignorded. 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@layout@title\tud@layout@cover% + \tud@layout@process% +% \end{macrocode} +% Wird der Parameter \opt{cdlayout} 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. Der mit \cs{coverpagetopmargin} +% zusätzlich eingefügte, obere Seitenrand wird bei aktiviertem Parameter +% \opt{cdlayout} im Normalfall~-- sprich ohne eine Änderung des Befehls +% \cs{coverpagetopmargin}~-- durch \cs{tud@coverpagetopmargin} ausgeglichen, um +% den Titel auf der Umschlagseite in der richtigen vertikalen Position +% erscheinen zu lassen. +% \begin{macrocode} + \if@tud@cover@cdlayout% + \ifcase \tud@layout@cover\relax% + \let\coverpagetopmargin\tud@dim@top% + \else% + \def\coverpagetopmargin{% + \dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep\relax% + }% + \fi% + \let\coverpagebottommargin\tud@dim@bottom% + \let\coverpageleftmargin\tud@dim@left% + \let\coverpagerightmargin\tud@dim@right% + \else% + \ifcase \tud@layout@cover\relax\else% + \expandafter\def\expandafter\coverpagetopmargin\expandafter{% + \coverpagetopmargin-\tud@coverpagetopmargin% + }% + \fi% + \fi% +% \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 dabei +% die Option \opt{titlepage=firstiscover} verwendet, um die Seitenränder +% 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% + \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]% + \else% +% \end{macrocode} +% Der Befehl verwendet das Layout des Titels im \CD. Allerdings werden nicht +% alle sondern nur für ein Cover relavante Angaben ausgegeben. Der Schalter +% \cs{if@tud@cover} wird innerhalb des Befehles \cs{tud@maketitle} genutzt, um +% die Unterscheidung zu machen, ob es sich bei der aktuellen Ausgabe um das +% Cover oder aber die Titelseite handelt. +% \begin{macrocode} + \@tud@covertrue% + \@titlepagetrue% +% \end{macrocode} +% Der Satzspiegel wird hierfür äquivalent zu den \KOMAScript-Klassen gesetzt, +% wenn die Option \opt{titlepage=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\let\noexpand\titlepage@restore\noexpand\relax% + }% + \begingroup% + \topmargin=\dimexpr \coverpagetopmargin-1in\relax% + \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax% + \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax% + \textwidth=\dimexpr% + \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax% +% \end{macrocode} +% Bei der Höhe des Textbereiches und der Kopfzeile muss unterschieden werden, +% ob der Satzspiegel im \CD oder aber im Buchblock erfolgen soll. +% \begin{macrocode} + \if@tud@cover@cdlayout% + \textheight=\dimexpr% + \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax% + \headheight=0pt% + \headsep=0pt% + \else% + \textheight=\dimexpr\paperheight-\coverpagebottommargin% + -\tud@dim@headheight-\tud@dim@barheight% + -\tud@dim@headsep-\tud@dim@bottom\relax% + \headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight\relax% + \headsep=\tud@dim@headsep% + \fi% + \footskip=\tud@dim@footskip% + \@colht=\textheight% + \@colroom=\textheight% + \vsize=\textheight% + \columnwidth=\textwidth% + \hsize=\columnwidth% + \linewidth=\hsize% + \tud@dim@headdiff=\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}}{}% +% \end{macrocode} +% Die Ausgabe des Covers und ggf. das Wiederherstellen des Satzspiegels. +% \begin{macrocode} + \tud@maketitle% + \clearpage% + \csname titlepage@restore\endcsname% + \fi% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@coverpagetopmargin +% \end{macro}^^A \if@tud@cover +% \end{macro}^^A \makecover +% \begin{parameter}{pagenumber} +% \begin{parameter}{cdfont} +% \begin{parameter}{cdfonts} +% \changes{v2.02}{2014/08/08}{entfernt}^^A +% \begin{parameter}{tudfonts} +% \changes{v2.02}{2014/08/08}{entfernt}^^A +% \begin{parameter}{cdlayout} +% \changes{v2.02}{2014/06/23}{neu}%^^A +% \begin{macro}{\if@tud@cover@cdlayout} +% Die einzelnen Parameter dienen zur Einstellung der Umschlagseite und +% entsprechen in ihrem Verhalten den gleichnamigen Klassenoptionen~-- +% \opt{cdlayout} ausgenommen. +% \begin{macrocode} +\newbool@lock{@tud@cover@cdlayout} +\TUD@parameter{cover}{% + \TUD@parameter@define{pagenumber}{\def\tud@titlepagenumber{#1}}% + \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@define{cdlayout}[true]{% + \ifstr{#1}{true}{\setbool@lock{@tud@cover@cdlayout}{true}}{% + \ifstr{#1}{on}{\setbool@lock{@tud@cover@cdlayout}{true}}{% + \ifstr{#1}{yes}{\setbool@lock{@tud@cover@cdlayout}{true}}{% + \ifstr{#1}{false}{\setbool@lock{@tud@cover@cdlayout}{false}}{% + \ifstr{#1}{no}{\setbool@lock{@tud@cover@cdlayout}{false}}{% + \ifstr{#1}{off}{\setbool@lock{@tud@cover@cdlayout}{false}}{% + \TUD@parameter@wrn{cdlayout}{true,false}% + }}}}}}% + }% + \TUD@parameter@sethandler{% + \ifxnumber{#1}{% + \TUD@parameter@set[cover]{pagenumber=#1}% + }{% + \TUD@parameter@set[cover]{cdlayout=#1}% + }% + }% +}% +% \end{macrocode} +% \end{macro}^^A \if@tud@cover@cdlayout +% \end{parameter}^^A cdlayout +% \end{parameter}^^A tudfonts +% \end{parameter}^^A cdfonts +% \end{parameter}^^A cdfont +% \end{parameter}^^A pagenumber +% +% \iffalse +%</class&body> +% \fi +% +% \Finale +% +\endinput |