From 0f5d618956b51e00ae2e87d20aec39f7bbd6dd42 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 29 Apr 2014 22:48:53 +0000 Subject: tudscr (29apr14) git-svn-id: svn://tug.org/texlive/trunk@33755 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/tudscr/tudscr-base.dtx | 532 +++++++ .../source/latex/tudscr/tudscr-color.dtx | 448 ++++++ .../texmf-dist/source/latex/tudscr/tudscr-comp.dtx | 311 ++++ .../texmf-dist/source/latex/tudscr/tudscr-doc.dtx | 80 + .../source/latex/tudscr/tudscr-fields.dtx | 804 ++++++++++ .../source/latex/tudscr/tudscr-fonts.dtx | 924 ++++++++++++ .../source/latex/tudscr/tudscr-frontmatter.dtx | 861 +++++++++++ .../source/latex/tudscr/tudscr-layout.dtx | 1345 +++++++++++++++++ .../source/latex/tudscr/tudscr-locale.dtx | 687 +++++++++ .../source/latex/tudscr/tudscr-manual.dtx | 1276 ++++++++++++++++ .../source/latex/tudscr/tudscr-mathswap.dtx | 241 +++ .../texmf-dist/source/latex/tudscr/tudscr-misc.dtx | 385 +++++ .../source/latex/tudscr/tudscr-pagestyle.dtx | 1528 ++++++++++++++++++++ .../source/latex/tudscr/tudscr-supervisor.dtx | 555 +++++++ .../source/latex/tudscr/tudscr-title.dtx | 1350 +++++++++++++++++ .../source/latex/tudscr/tudscr-twocolfix.dtx | 176 +++ .../source/latex/tudscr/tudscr-version.dtx | 184 +++ Master/texmf-dist/source/latex/tudscr/tudscr.ins | 154 ++ 18 files changed, 11841 insertions(+) create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx create mode 100644 Master/texmf-dist/source/latex/tudscr/tudscr.ins (limited to 'Master/texmf-dist/source/latex/tudscr') diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx new file mode 100644 index 00000000000..28e7a0aac66 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-base.dtx @@ -0,0 +1,532 @@ +% \CheckSum{265} +% \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-base.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-base.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (basefile)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-base.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Grundlegende Befehle und Pakete} +% +% Für die Erstellung der Wrapper-Klassen werden die dafür benötigten Pakete +% eingebunden und Steuerungsbefehle definiert. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class> +% \fi +% +% \subsection{Laden des Pakets} +% Die Klassen benötigen das Paket und laden dieses auch. +% \begin{macrocode} +\RequirePackage{tudscrbase}[\TUDVersion] +% \end{macrocode} +% +% \iffalse +% +%<*package&header> +% \fi +% +% \subsection{Identifizierung des Pakets \pkg{tudscrbase}} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tudscrbase}[% + \TUDVersion\space package (TUD-KOMA-Script-dependent basics and keyval usage)% +] +% \end{macrocode} +% +% \iffalse +% +%<*package&body> +% \fi +% +% \subsection{Das Paket \pkg{tudscrbase}} +% +% Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt. +% \begin{macrocode} +\RequirePackage{scrbase} +% \end{macrocode} +% Das Paket \pkg{kvsetkeys} erweitert \pkg{keyval} um die Möglichkeit, das +% Verhalten bei der Angabe eines nicht definierten Schlüssels festzulegen. +% \begin{macrocode} +\RequirePackage{kvsetkeys} +% \end{macrocode} +% Das Paket \pkg{etoolbox} wird für die Manipulation bereits definierter +% Makros sowie zur erweiterten Auswertung boolescher Ausdrücke benötigt. +% \begin{macrocode} +\RequirePackage{etoolbox} +% \end{macrocode} +% +% \subsubsection{Robuster Test auf leeres Argument} +% +% \begin{macro}{\ifxblank} +% Hiermit kann ein Argument geprüft werden, ob dieses blank ist (leer oder +% Leerzeichen). In seiner Syntax ist er identisch zu \cs{ifblank}, allerdings +% expandiert er im Gegensatz zu diesem das gegebene Argument. +% \begin{macrocode} +\newcommand*\ifxblank{\expandafter\ifblank\expandafter} +% \end{macrocode} +% \end{macro}^^A \ifxblank +% +% \subsubsection{Robuster Test auf numerischen Ausdruck} +% +% \begin{macro}{\ifxnumber} +% Dieser Befehl dient zum Testen, ob ein gegebenes Argument eine Zahl ist. +% Die Syntax lautet: \cs{ifxnumber}\marg{Argument}\marg{Wahr}\marg{Falsch} +% \begin{macrocode} +\newcommand*\ifxnumber[1]{% + \if\relax\detokenize\expandafter{\romannumeral-0#1}\relax% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \ifxnumber +% +% \subsubsection{Schlüssel und Parameter für die Wrapper-Klassen} +% +% \todo[v3.12]{FamilyKeyState} +% \begin{macro}{\TUDProcessOptions} +% \begin{macro}{\TUDExecuteOptions} +% \begin{macro}{\TUDDefaultOptions} +% \begin{macro}{\TUDoptions} +% \begin{macro}{\TUDoption} +% \begin{macro}{\TUD@noworlater} +% \begin{macro}{\TUD@key} +% \begin{macro}{\TUD@@key} +% \begin{macro}{\TUD@@@key} +% \begin{macro}{\TUD@ifkey} +% \begin{macro}{\TUD@set@ifkey} +% \begin{macro}{\TUD@numkey} +% \begin{macro}{\TUD@set@numkey} +% \begin{macro}{\TUD@unknown@keyval} +% In Anlehnung an \KOMAScript{} werden hier Befehle zur Definition und +% Ausführung unterschiedlicher Klassenoptionen mithilfe der Funktionen aus +% dem \pkg{scrbase}-Paket erstellt. Klassenoptionen können entweder als +% Schalter (\cs{TUD@ifkey}) oder aber mit mehreren möglichen Werten +% (\cs{TUD@numkey}) definiert werden. Die Grundeinstellungen für alle +% \cls{tudscr}-Klassen werden in \cs{TUDDefaultOptions} hinterlegt. +% \begin{macrocode} +\DefineFamily{TUD} +\newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}} +\newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}} +\newcommand*\TUDDefaultOptions{cd,cdfont,tudbookmarks} +\newcommand*\TUDoptions{\FamilyOptions{TUD}} +\newcommand*\TUDoption{\FamilyOption{TUD}} +\newcommand*\TUD@noworlater{\AtEndOfClass} +\AtEndOfClass{\let\TUD@noworlater\@firstofone} +\newcommand*\TUD@key[2][.\@currname.\@currext]{% + \DefineFamilyMember{TUD}% + \@ifnextchar[%] + {\TUD@@key[#1]{#2}}{\TUD@@@key[#1]{#2}}% +} +\def\TUD@@key[#1]#2[#3]#4{% + \DefineFamilyKey[#1]{TUD}{#2}[{#3}]{\TUD@noworlater{#4}}% +} +\def\TUD@@@key[#1]#2#3{% + \DefineFamilyKey[#1]{TUD}{#2}{\TUD@noworlater{#3}}% +} +\newcommand*\TUD@ifkey[1][.\@currname.\@currext]{% + \DefineFamilyMember{TUD}% + \FamilyBoolKey[#1]{TUD}% +} +\newcommand*\TUD@set@ifkey{\FamilySetBool{TUD}} +\newcommand*\TUD@numkey[1][.\@currname.\@currext]{% + \DefineFamilyMember{TUD}% + \FamilyNumericalKey[#1]{TUD}% +} +\newcommand*\TUD@set@numkey{\FamilySetNumerical{TUD}} +\newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}} +% \end{macrocode} +% \end{macro}^^A \TUD@unknown@keyval +% \end{macro}^^A \TUD@set@numkey +% \end{macro}^^A \TUD@numkey +% \end{macro}^^A \TUD@set@ifkey +% \end{macro}^^A \TUD@ifkey +% \end{macro}^^A \TUD@@@key +% \end{macro}^^A \TUD@@key +% \end{macro}^^A \TUD@key +% \end{macro}^^A \TUD@noworlater +% \end{macro}^^A \TUDoption +% \end{macro}^^A \TUDoptions +% \end{macro}^^A \TUDDefaultOptions +% \end{macro}^^A \TUDExecuteOptions +% \end{macro}^^A \TUDProcessOptions +% \begin{macro}{\TUD@key@lock} +% \begin{macro}{\TUD@std@ifkey@lock} +% \begin{macro}{\TUD@std@numkey@lock} +% \begin{macro}{\TUD@set@ifkey@lock} +% \begin{macro}{\TUD@set@numkey@lock} +% Da sich die Klassenoptionen teilweise selbst gegenseitig beeinflussen oder +% aber in bestimmten Fällen eine Option in Abhängigkeit von einer anderen +% unterschiedliche Standardwerte annehmen soll, wird dafür eine Möglichkeit +% geschaffen. Dabei kann der Nutzer jederzeit einen von einer Option abhängigen +% Standardwert einer Klassenoption überschreiben. Die Klassenoptionen selber +% werden intern mit dem Befehl \cs{TUD@key@lock} definiert und die Standardwerte +% sowie deren Manipulation innerhalb der Optionen mit \cs{TUD@std@ifkey@lock} +% bzw. \cs{TUD@std@numkey@lock} gesetzt. Mit \cs{TUD@set@ifkey@lock} und +% \cs{TUD@set@numkey@lock} werden bei der expliziten Anwendung einer Option +% durch den Nutzer die entsprechenden Werte geändert und gegen ein internes +% Überschreiben gesperrt. +% \begin{macrocode} +\newcommand*\TUD@key@lock[2][.\@currname.\@currext]{% +% \end{macrocode} +% Basierend auf dem Namen des Schalters wird die notwendige, boolesche Variable +% erzeugt (\cs{if@tud@\meta{Schaltername}@lock}), welche im Falle des direkten +% Aufrufs des Schlüssels durch den Anwender, ein internes Überschreiben +% verhindert. +% \begin{macrocode} + \newbool{@tud@#2@locked}% + \TUD@key[{#1}]{#2}% +} +% \end{macrocode} +% Es kann intern über \cs{if\meta{Schaltername}@lock} geprüft werden, ob einem +% mit Schlüssel, der mit \cs{TUD@key@lock} definiert wurde, durch den Anwender +% ein explizites Verhalten zugewiesen wurde. Sollte dies nicht der Fall sein, +% kann dieser hiermit intern beliebig angepasst werden. Da es durch das Setzen +% der Option mit \cs{TUDoption} zu einer Sperrung kommt, muss diese folgend +% wieder rückgängig gemacht werden. +% \begin{macrocode} +\newcommand*\TUD@std@ifkey@lock[2]{% + \ifbool{@tud@#1@locked}{}{% + \TUDoption{#1}{#2}% + \boolfalse{@tud@#1@locked}% + }% +} +\let\TUD@std@numkey@lock\TUD@std@ifkey@lock +\newcommand*\TUD@set@ifkey@lock[1]{% + \booltrue{@tud@#1@locked}% + \TUD@set@ifkey{#1}% +} +\newcommand*\TUD@set@numkey@lock[1]{% + \booltrue{@tud@#1@locked}% + \TUD@set@numkey{#1}% +} +% \end{macrocode} +% \end{macro}^^A \TUD@set@numkey@lock +% \end{macro}^^A \TUD@set@ifkey@lock +% \end{macro}^^A \TUD@std@numkey@lock +% \end{macro}^^A \TUD@std@ifkey@lock +% \end{macro}^^A \TUD@key@lock +% \begin{macro}{\csdef@lock} +% \begin{macro}{\csstd@lock} +% \begin{macro}{\csset@lock} +% Mit \cs{csdef@lock}\marg{Name}\marg{Definition} kann ein Befehl definiert +% werden, welcher intern nur mit \cs{csstd@lock}\marg{Name}\marg{Definition} +% geschrieben wird, wenn nicht über eine entsprechende Option ein explizites +% Verhalten mit \cs{csset@lock}\marg{Name}\marg{Definition} zugewiesen wurde. +% Dies ist äquivalent zu \cs{TUD@std@ifkey@lock} und \cs{TUD@set@ifkey@lock} +% bzw. \cs{TUD@std@numkey@lock} und \cs{TUD@set@numkey@lock} +% \begin{macrocode} +\newcommand*\csdef@lock[2]{% + \csdef{#1}{#2}% + \newbool{#1@locked}% +} +\newcommand*\csstd@lock[2]{% + \ifbool{#1@locked}{}{% + \csdef{#1}{#2}% + \boolfalse{#1@locked}% + }% +} +\newcommand*\csset@lock[2]{% + \csdef{#1}{#2}% + \booltrue{#1@locked}% +} +% \end{macrocode} +% \end{macro}^^A \csset@lock +% \end{macro}^^A \csstd@lock +% \end{macro}^^A \csdef@lock +% \begin{macro}{\newbool@lock} +% \begin{macro}{\stdbool@lock} +% \begin{macro}{\setbool@lock} +% Diese Makros dienen in Anlehnung an die vorherigen zum Definieren und Setzen +% von sperrbaren booleschen Schaltern. +% \begin{macrocode} +\newcommand*\newbool@lock[2][false]{% + \newbool{#2}% + \newbool{#2@locked}% + \setbool{#2}{#1}% +} +\newcommand*\stdbool@lock[2]{% + \ifbool{#1@locked}{}{% + \setbool{#1}{#2}% + \boolfalse{#1@locked}% + }% +} +\newcommand*\setbool@lock[2]{% + \setbool{#1}{#2}% + \booltrue{#1@locked}% +} +% \end{macrocode} +% \end{macro}^^A \setbool@lock +% \end{macro}^^A \stdbool@lock +% \end{macro}^^A \newbool@lock +% \begin{macro}{\tud@cmd@store} +% \begin{macro}{\tud@cmd@reset} +% \begin{macro}{\tud@cmd@use} +% \begin{macro}{\tud@cmd@restore} +% Mit diesen beiden Befehlene wird es möglich, Originalbefehle sichern, nutzen +% und wiederherstellen zu können. Dies wird benötigt, um zwischen den einzelnen +% Layouts über Optionseinstellungen zu wechseln und dabei von einem definierten +% Anfangszustand auszugehen. Mit dem Aufruf \cs{tud@cmd@store}\marg{Befehlsname} +% wird der angegebene Befehl in einem neuen Makro \cs{@@tud@\meta{Befehlsname}} +% gespeichert. Der Originalbefehl kann als solcher weiterhin mit dem Befehl +% \cs{tud@cmd@use}\marg{Befehlsname} genutzt werden. Das Makro +% \cs{tud@cmd@reset}\marg{Befehlsname} setzt den Originalbefehl zurück. Durch +% \cs{tud@cmd@restore}\marg{Befehlsname} wird das mit \cs{tud@cmd@store} +% erstellte Hilfsmakro zusätzlich noch gelöscht. +% \begin{macrocode} +\newcommand*\tud@cmd@store[1]{% + \ifcsdef{@@tud@#1}{}{\csletcs{@@tud@#1}{#1}}% +} +\newcommand*\tud@cmd@reset[1]{% + \ifcsdef{@@tud@#1}{% + \csletcs{#1}{@@tud@#1}% + }{}% +} +\newcommand*\tud@cmd@use[1]{% + \ifcsdef{@@tud@#1}{\@nameuse{@@tud@#1}}{\@nameuse{#1}}% +} +\newcommand*\tud@cmd@restore[1]{% + \ifcsdef{@@tud@#1}{% + \csletcs{#1}{@@tud@#1}% + \csundef{@@tud@#1}% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@cmd@restore +% \end{macro}^^A \tud@cmd@use +% \end{macro}^^A \tud@cmd@reset +% \end{macro}^^A \tud@cmd@store +% \begin{macro}{\tud@patch@wrn} +% Dieses Makro wird verwendet, wenn mit den Mitteln von \pkg{etoolbox} bereits +% vorhandene Befehle angepasst werden sollen (\cs{apptocmd}, \cs{pretocmd}, +% \cs{patchcmd}) und dies nicht gelingt. +% \begin{macrocode} +\newcommand*\tud@patch@wrn[1]{% + \ClassWarning{\tudcls@name}{% + It wasn't possible to patch '#1'.\MessageBreak% + Please contact the author via \filemail.\MessageBreak% + Without a bugfix an erroneous output\MessageBreak% + may occur. + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@patch@wrn +% \begin{macro}{\TUD@parameter} +% \begin{macro}{\TUD@parameter@family} +% \begin{macro}{\TUD@parameter@checkfamily} +% Mit \cs{TUD@parameter}\marg{Familienname}\marg{Definitionen} können +% Schlüssel"=Wert"=Parameter für die optionalen Argumente von Befehle definiert +% werden. Das erste Argument definiert den Familiennamen für den jeweiligen +% Befehl, welcher eindeutig gewählt werden sollte. Dieser wird im Hilfsmakro +% \cs{TUD@parameter@family} gesichert. Dies soll im Zusammenspiel mit dem +% Makro \cs{TUD@parameter@checkfamily} dafür sorgen, dass die im Folgenden +% bereitgestellten Befehle\footnote{\cs{TUD@parameter@define}, +% \cs{TUD@parameter@let}, \cs{TUD@parameter@sethandler}, +% \cs{TUD@parameter@set}}~-- welche die eigentliche Definition der Parameter +% für den Benutzer bewerkstelligen~-- nur innerhalb des zweiten Argumentes von +% \cs{TUD@parameter} verwendet werden können. +% \begin{macrocode} +\newcommand*\TUD@parameter@family{}% +\newcommand*\TUD@parameter[2]{% + \ifxblank{#1}{}{\xdef\TUD@parameter@family{#1}}% + #2% + \global\let\TUD@parameter@family\relax% +} +\let\TUD@parameter@family\relax% +% \end{macrocode} +% Dieser Befehl prüft, ob eine Familie für den Paramter definiert wurde. +% \begin{macrocode} +\newcommand*\TUD@parameter@checkfamily[1]{% + \ifx\TUD@parameter@family\relax% + \PackageError{tudscrbase}{% + No family for keys given. + }{% + You have to use \string#1\space within the\MessageBreak% + second argument of \string\TUD@parameter. The first \MessageBreak% + argument of \string\TUD@parameter\space has to be a unique family name. + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \TUD@parameter@checkfamily +% \end{macro}^^A \TUD@parameter@family +% \end{macro}^^A \TUD@parameter +% \begin{macro}{\TUD@parameter@define} +% \begin{macro}{\TUD@parameter@let} +% \begin{macro}{\TUD@parameter@sethandler} +% \cs{TUD@parameter@define}\marg{Name}\oarg{Säumniswert}\marg{Verarbeitung} +% nutzt \cs{define@key} aus dem \pkg{keyval}"=Paket, um einen Schlüssel und +% dessen Verarbeitung zu definieren, wobei auf den zugewiesenen Wert innerhalb +% des zweiten obligatorischen Argumentes mit \texttt{\#1} zugegriffen werden +% kann. +% \begin{macrocode} +\newcommand*\TUD@parameter@define[1][]{% + \ifxblank{#1}{% + \TUD@parameter@checkfamily{\TUD@parameter@define}% + \expandafter\define@key\expandafter{\TUD@parameter@family}% + }{% + \expandafter\define@key\expandafter{#1}% + }% +} +% \end{macrocode} +% Mit \cs{TUD@parameter@let}\marg{Name}\marg{Name} kann äquivalent zur +% \mbox{\TeX-Primitive \cs{let}} die Definition der Verarbeitung eines +% Parameters auf einen weiteren übertragen werden. +% \begin{macrocode} +\newcommand*\TUD@parameter@let[3][]{% + \ifxblank{#1}{% + \TUD@parameter@checkfamily{\TUD@parameter@let}% + \@expandtwoargs{\csletcs}% + {KV@\TUD@parameter@family @#2}{KV@\TUD@parameter@family @#3}% + }{% + \@expandtwoargs{\csletcs}{KV@#1@#2}{KV@#1@#3}% + }% +} +% \end{macrocode} +% Außerdem kann durch \cs{TUD@parameter@sethandler}\marg{Verarbeitung} definiert +% werden, wie verfahren werden soll, wenn ein optionales Argument im klasischen +% \LaTeX-Stil und nicht in der Schlüssel"=Wert"=Syntax angegeben wird. Auf das +% optionale Argument wird ganz normal mit \texttt{\#1} zugegriffen. +% \begin{macrocode} +\newcommand*\TUD@parameter@sethandler[1][]{% + \ifxblank{#1}{% + \TUD@parameter@checkfamily{\TUD@parameter@sethandler}% + \expandafter\kv@set@family@handler\expandafter{\TUD@parameter@family}% + }{% + \expandafter\kv@set@family@handler\expandafter{#1}% + }% +} +% \end{macrocode} +% \end{macro}^^A \TUD@parameter@sethandler +% \end{macro}^^A \TUD@parameter@let +% \end{macro}^^A \TUD@parameter@define +% \begin{macro}{\TUD@parameter@set} +% Mit \cs{TUD@parameter@set}\oarg{Familienname}\marg{Parameterliste} wird die +% Verarbeitung aller gegebenen Parameter veranlasst. Normalerweise wird dieser +% Befehl innerhalb des zweiten Argumentes von \cs{TUD@parameter} verwendet. +% Alternativ dazu kann die gewünschte Familie im optionalen Argument angegeben +% werden. +% \begin{macrocode} +\newcommand*\TUD@parameter@set[1][]{% + \ifxblank{#1}{% + \TUD@parameter@checkfamily{\TUD@parameter@set}% + \expandafter\kvsetkeys\expandafter{\TUD@parameter@family}% + }{% + \expandafter\kvsetkeys\expandafter{#1}% + }% +} +% \end{macrocode} +% \end{macro}^^A \TUD@parameter@set +% \begin{macro}{\TUD@parameter@wrn} +% Das Makro \cs{TUD@parameter@wrn}\marg{Parameter}\marg{Werteliste} gibt für +% den Fall einer ungültigen Wertzuweisung an einen bestimmten \meta{Parameter} +% eine Warnung mit einem entsprechenden Hinweis auf gültige Werte innerhalb von +% \meta{Werteliste} aus. +% \begin{macrocode} +\newcommand*\TUD@parameter@wrn[2]{% + \ClassWarning{\tudcls@name}{% + Parameter '#1' can only be used with these values:\MessageBreak% + #2% + }% +} +% \end{macrocode} +% \end{macro}^^A \TUD@parameter@wrn +% +% \iffalse +% +%<*titlepage> +% \fi +% +% \subsubsection{Schlüssel und Befehle für das \pkg{titlepage}-Paket} +% +% Als erstes wird die Familie für das \pkg{titlepage}"=Paket definiert. +% \begin{macrocode} +\DefineFamilyMember[TU-Dresden]{title} +% \end{macrocode} +% Für den Fall, dass das \pkg{titlepage}-Paket ohne \KOMAScript-Klassen genutzt +% wird, müssen die entsprechenden Befehle trotzdem funktionieren. +% \begin{macrocode} +\providecommand*\newkomafont[2]{% + \expandafter\newcommand\expandafter*\csname @#1font\endcsname{#2}% +} +\providecommand*\usekomafont[1]{% + \scr@ifundefinedorrelax{@#1font}{}{\csname @#1font\endcsname}% +} +\providecommand*\addtokomafont[2]{% + \scr@ifundefinedorrelax{@#1font}{% + \newkomafont{#1}{#2}% + }{% + \expandafter\l@addto@macro\csname @#1font\endcsname{#2}% + }% +} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx new file mode 100644 index 00000000000..08f0f99b1bc --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-color.dtx @@ -0,0 +1,448 @@ +% \CheckSum{241} +% \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-color.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-color.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (colors)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-color.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Die Farben des \CDs} +% +% Das \CD der Technischen Universität Dresden legt nicht nur die zu nutzenden +% Schriften und das Layout sondern auch die zu verwendenden Farben fest. Diese +% werden nachfolgend für das CMYK"~ und RGB"~Farbmodel definiert. Sie können im +% Dokument mit sämtlichen Befehlen zur Farbauswahl wie \cs{color}\marg{Farbe} +% oder aber \cs{textcolor}\marg{Farbe} verwendet werden. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*package&header> +% \fi +% +% \subsection{Identifizierung des Pakets \pkg{tudscrcolor}} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tudscrcolor}[% + \TUDVersion\space package (corporate design colors)% +] +\DeclareOption{reduced}{\let\setcdcolors@add\relax} +\DeclareOption{full}{\let\setcdcolors@add\setcdcolors@full} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{xcolor}} +% \end{macrocode} +% +% \iffalse +% +%<*class|package&body> +% \fi +% +% \subsection{Befehle für die \cls{tudscr}-Klassen} +% +% \iffalse +%<*class> +% \fi +% +% \todo[v3.12]{% +% Abfrage \cs{@ifpackageloaded} durch Verzögerung des Paketes +% \pkg{pagecolor} nicht notwendig.% +% } +% \begin{macro}{\nopagecolor} +% \begin{macro}{\tud@pagecolor} +% \begin{macro}{\tud@restorepagecolor} +% Diese Befehle dienen zum Umschalten der Farben für Titel- und Kapitelseiten. +% \begin{macrocode} +\newcommand*\tud@pagecolor[1]{} +\newcommand*\tud@restorepagecolor{} +\AfterPackage{tudscrcolor}{% + \providecommand*\nopagecolor{\pagecolor{white}}% + \@ifpackageloaded{pagecolor}{}{% + \let\tud@pagecolor\pagecolor% + \let\tud@restorepagecolor\nopagecolor% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@restorepagecolor +% \end{macro}^^A \tud@pagecolor +% \end{macro}^^A \nopagecolor +% \todo[v3.12]{Verzögerung des Paketes \pkg{pagecolor} aktivieren.} +% \begin{macro}{\if@tud@pagecolor} +% Wenn die Farben für Titel- und Kapitelseiten umgeschaltet werden, geht die +% Information über die aktuelle Text- und Seitenfarbe verloren. Um dies zu +% verhindern, kann das Paket \pkg{pagecolor} geladen werden, welches mit den +% Befehlen \cs{newcolor} und \cs{restorecolor} ein Wiederherstellen ermöglicht. +% \begin{macrocode} +% \newif\if@tud@pagecolor +% \PreventPackageFromLoading[\@tud@pagecolortrue]{pagecolor} +\AfterPackage{pagecolor}{% + \let\tud@pagecolor\newpagecolor% + \let\tud@restorepagecolor\restorepagecolor% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@pagecolor +% Sollte das Paket \pkg{pdfpages} geladen werden, so ist eine Definition +% der Standardseitenfarbe zum Einbinden von PDF-Dokumenten notwendig. +% Andernfalls werden bei der Verwendung von \cs{includepdf} nur leere Seiten +% erzeugt. +% \begin{macrocode} +\AfterPackage{pdfpages}{\AtEndPreamble{\nopagecolor}} +% \end{macrocode} +% +% \iffalse +% +%<*package&body> +% \fi +% +% \subsection{Farbdefinitionen für das Paket \pkg{tudscrcolor}} +% +% \begin{macro}{\setcdcolors} +% \begin{macro}{\setcdcolors@add} +% Der Befehl \cs{setcdcolors} definiert die Farben des \CDs. Das Argument dient +% zur Auswahl des gewünschten Farbmodels. Dies kann dazu genutzt werden, +% innerhalb des Dokumentes die Definition der Farben für ein neues Farbmodell zu +% ändern. +% \begin{macrocode} +\newcommand*\setcdcolors@add{} +\newcommand*\setcdcolors[1]{% + \def\@tempa{#1}\ifx\@tempa\@empty\else% + \selectcolormodel{\@tempa} + \fi% +% \end{macrocode} +% \begin{color}{HKS41} +% Die primäre Hausfarbe (dunkles Blau) +% \begin{macrocode} + \definecolor{HKS41}{cmyk/RGB/rgb}{% + 1.00,0.70,0.10,0.50/011,042,081/0.0431372549,0.16470588235,0.31764705882% + } +% \end{macrocode} +% \end{color}^^A HKS41 +% \begin{color}{HKS92} +% Die sekundäre Hausfarbe (grau), allein und ausschließlich für die Verwendung +% in der Geschäftsausstattung und nicht für Fließtext, Grafiken etc. +% \begin{macrocode} + \definecolor{HKS92}{cmyk/RGB/rgb}{% + 0.10,0.00,0.05,0.65/080,089,085/0.31372549019,0.34901960784,0.33333333333% + } +% \end{macrocode} +% \end{color}^^A HKS92 +% \begin{color}{HKS44} +% Auszeichnungen 1. Kategorie (helles Blau) +% \begin{macrocode} + \definecolor{HKS44}{cmyk/RGB/rgb}{% + 1.00,0.50,0.00,0.00/000,089,163/0,0.34901960784,0.63921568627% + } +% \end{macrocode} +% \end{color}^^A HKS44 +% \begin{color}{HKS36} +% \begin{color}{HKS33} +% \begin{color}{HKS57} +% \begin{color}{HKS65} +% Auszeichnungen 2. Kategorie (Indigo, Purpur, dunkles Grün, helles Grün) +% \begin{macrocode} + \definecolor{HKS36}{cmyk/RGB/rgb}{% + 0.80,0.90,0.00,0.00/081,041,127/0.31764705882,0.16078431372,0.49803921568% + } + \definecolor{HKS33}{cmyk/RGB/rgb}{% + 0.50,1.00,0.00,0.00/129,026,120/0.50588235294,0.10196078431,0.47058823529% + } + \definecolor{HKS57}{cmyk/RGB/rgb}{% + 1.00,0.00,0.90,0.20/000,122,071/0,0.47843137254,0.28235294117% + } + \definecolor{HKS65}{cmyk/RGB/rgb}{% + 0.65,0.00,1.00,0.00/034,173,054/0.13333333333,0.67843137254,0.21176470588% + } +% \end{macrocode} +% \end{color}^^A HKS65 +% \end{color}^^A HKS57 +% \end{color}^^A HKS33 +% \end{color}^^A HKS36 +% \begin{color}{HKS07} +% Ausnahmefarbe (Orange) +% \begin{macrocode} + \definecolor{HKS07}{cmyk/RGB/rgb}{% + 0.00,0.60,1.00,0.00/232,123,020/0.90980392156,0.48235294117,0.07843137254% + } +% \end{macrocode} +% \end{color}^^A HKS07 +% \begin{color}{cddarkblue} +% \begin{color}{cdgray} +% \begin{color}{cdblue} +% \begin{color}{cdindigo} +% \begin{color}{cdpurple} +% \begin{color}{cddarkgreen} +% \begin{color}{cdgreen} +% \begin{color}{cdorange} +% Die definierten Grundfarben werden zur einfacheren Verwendung im Dokument noch +% einmal speziell benannt. +% \begin{macrocode} + \colorlet{cddarkblue}{HKS41} + \colorlet{cdgray}{HKS92} + \colorlet{cdblue}{HKS44} + \colorlet{cdindigo}{HKS36} + \colorlet{cdpurple}{HKS33} + \colorlet{cddarkgreen}{HKS57} + \colorlet{cdgreen}{HKS65} + \colorlet{cdorange}{HKS07} +% \end{macrocode} +% \end{color}^^A cdorange +% \end{color}^^A cdgreen +% \end{color}^^A cddarkgreen +% \end{color}^^A cdpurple +% \end{color}^^A cdindigo +% \end{color}^^A cdblue +% \end{color}^^A cdgray +% \end{color}^^A cddarkblue +% Damit enden die notwendigen Farbdefinitionen für das \pkg{tudscrcolor}-Paket. +% Abhängig von den gewählten Optionen werden mit \cs{setcdcolors@add} ggf. +% zusätzliche Farbnamen definiert. +% \begin{macrocode} + \setcdcolors@add% +} +% \end{macrocode} +% \end{macro}^^A \setcdcolors@add +% \end{macro}^^A \setcdcolors +% \begin{macro}{\setcdcolors@full} +% Die erweiterten Farbbefehle werden durch \pkg{tudscrcolor} definiert, wenn +% das Paket explizit mit der Option \opt{full} geladen wird. Damit werden +% alle gängigen Farbdefinitionen der vielen Insellösungen des \LaTeX-Universums +% an der Technischen Universität Dresden unterstützt. +% \begin{macrocode} +\newcommand*\setcdcolors@full{% + \colorlet{HKS41K100}{HKS41!100} + \colorlet{HKS41K90}{HKS41!90} + \colorlet{HKS41K80}{HKS41!80} + \colorlet{HKS41K70}{HKS41!70} + \colorlet{HKS41K60}{HKS41!60} + \colorlet{HKS41K50}{HKS41!50} + \colorlet{HKS41K40}{HKS41!40} + \colorlet{HKS41K30}{HKS41!30} + \colorlet{HKS41K20}{HKS41!20} + \colorlet{HKS41K10}{HKS41!10} + \colorlet{HKS92K100}{HKS92!100} + \colorlet{HKS92K90}{HKS92!90} + \colorlet{HKS92K80}{HKS92!80} + \colorlet{HKS92K70}{HKS92!70} + \colorlet{HKS92K60}{HKS92!60} + \colorlet{HKS92K50}{HKS92!50} + \colorlet{HKS92K40}{HKS92!40} + \colorlet{HKS92K30}{HKS92!30} + \colorlet{HKS92K20}{HKS92!20} + \colorlet{HKS92K10}{HKS92!10} + \colorlet{HKS44K100}{HKS44!100} + \colorlet{HKS44K90}{HKS44!90} + \colorlet{HKS44K80}{HKS44!80} + \colorlet{HKS44K70}{HKS44!70} + \colorlet{HKS44K60}{HKS44!60} + \colorlet{HKS44K50}{HKS44!50} + \colorlet{HKS44K40}{HKS44!40} + \colorlet{HKS44K30}{HKS44!30} + \colorlet{HKS44K20}{HKS44!20} + \colorlet{HKS44K10}{HKS44!10} + \colorlet{HKS36K10}{HKS36!10} + \colorlet{HKS36K20}{HKS36!20} + \colorlet{HKS36K30}{HKS36!30} + \colorlet{HKS36K40}{HKS36!40} + \colorlet{HKS36K50}{HKS36!50} + \colorlet{HKS36K60}{HKS36!60} + \colorlet{HKS36K70}{HKS36!70} + \colorlet{HKS36K80}{HKS36!80} + \colorlet{HKS36K90}{HKS36!90} + \colorlet{HKS36K100}{HKS36!100} + \colorlet{HKS33K10}{HKS33!10} + \colorlet{HKS33K20}{HKS33!20} + \colorlet{HKS33K30}{HKS33!30} + \colorlet{HKS33K40}{HKS33!40} + \colorlet{HKS33K50}{HKS33!50} + \colorlet{HKS33K60}{HKS33!60} + \colorlet{HKS33K70}{HKS33!70} + \colorlet{HKS33K80}{HKS33!80} + \colorlet{HKS33K90}{HKS33!90} + \colorlet{HKS33K100}{HKS33!100} + \colorlet{HKS57K10}{HKS57!10} + \colorlet{HKS57K20}{HKS57!20} + \colorlet{HKS57K30}{HKS57!30} + \colorlet{HKS57K40}{HKS57!40} + \colorlet{HKS57K50}{HKS57!50} + \colorlet{HKS57K60}{HKS57!60} + \colorlet{HKS57K70}{HKS57!70} + \colorlet{HKS57K80}{HKS57!80} + \colorlet{HKS57K90}{HKS57!90} + \colorlet{HKS57K100}{HKS57!100} + \colorlet{HKS65K10}{HKS65!10} + \colorlet{HKS65K20}{HKS65!20} + \colorlet{HKS65K30}{HKS65!30} + \colorlet{HKS65K40}{HKS65!40} + \colorlet{HKS65K50}{HKS65!50} + \colorlet{HKS65K60}{HKS65!60} + \colorlet{HKS65K70}{HKS65!70} + \colorlet{HKS65K80}{HKS65!80} + \colorlet{HKS65K90}{HKS65!90} + \colorlet{HKS65K100}{HKS65!100} + \colorlet{HKS07K10}{HKS07!10} + \colorlet{HKS07K20}{HKS07!20} + \colorlet{HKS07K30}{HKS07!30} + \colorlet{HKS07K40}{HKS07!40} + \colorlet{HKS07K50}{HKS07!50} + \colorlet{HKS07K60}{HKS07!60} + \colorlet{HKS07K70}{HKS07!70} + \colorlet{HKS07K80}{HKS07!80} + \colorlet{HKS07K90}{HKS07!90} + \colorlet{HKS07K100}{HKS07!100} + \colorlet{HKS41-100}{HKS41!100} + \colorlet{HKS41-90}{HKS41!90} + \colorlet{HKS41-80}{HKS41!80} + \colorlet{HKS41-70}{HKS41!70} + \colorlet{HKS41-60}{HKS41!60} + \colorlet{HKS41-50}{HKS41!50} + \colorlet{HKS41-40}{HKS41!40} + \colorlet{HKS41-30}{HKS41!30} + \colorlet{HKS41-20}{HKS41!20} + \colorlet{HKS41-10}{HKS41!10} + \colorlet{HKS92-100}{HKS92!100} + \colorlet{HKS92-90}{HKS92!90} + \colorlet{HKS92-80}{HKS92!80} + \colorlet{HKS92-70}{HKS92!70} + \colorlet{HKS92-60}{HKS92!60} + \colorlet{HKS92-50}{HKS92!50} + \colorlet{HKS92-40}{HKS92!40} + \colorlet{HKS92-30}{HKS92!30} + \colorlet{HKS92-20}{HKS92!20} + \colorlet{HKS92-10}{HKS92!10} + \colorlet{HKS44-100}{HKS44!100} + \colorlet{HKS44-90}{HKS44!90} + \colorlet{HKS44-80}{HKS44!80} + \colorlet{HKS44-70}{HKS44!70} + \colorlet{HKS44-60}{HKS44!60} + \colorlet{HKS44-50}{HKS44!50} + \colorlet{HKS44-40}{HKS44!40} + \colorlet{HKS44-30}{HKS44!30} + \colorlet{HKS44-20}{HKS44!20} + \colorlet{HKS44-10}{HKS44!10} + \colorlet{HKS36-10}{HKS36!10} + \colorlet{HKS36-20}{HKS36!20} + \colorlet{HKS36-30}{HKS36!30} + \colorlet{HKS36-40}{HKS36!40} + \colorlet{HKS36-50}{HKS36!50} + \colorlet{HKS36-60}{HKS36!60} + \colorlet{HKS36-70}{HKS36!70} + \colorlet{HKS36-80}{HKS36!80} + \colorlet{HKS36-90}{HKS36!90} + \colorlet{HKS36-100}{HKS36!100} + \colorlet{HKS33-10}{HKS33!10} + \colorlet{HKS33-20}{HKS33!20} + \colorlet{HKS33-30}{HKS33!30} + \colorlet{HKS33-40}{HKS33!40} + \colorlet{HKS33-50}{HKS33!50} + \colorlet{HKS33-60}{HKS33!60} + \colorlet{HKS33-70}{HKS33!70} + \colorlet{HKS33-80}{HKS33!80} + \colorlet{HKS33-90}{HKS33!90} + \colorlet{HKS33-100}{HKS33!100} + \colorlet{HKS57-10}{HKS57!10} + \colorlet{HKS57-20}{HKS57!20} + \colorlet{HKS57-30}{HKS57!30} + \colorlet{HKS57-40}{HKS57!40} + \colorlet{HKS57-50}{HKS57!50} + \colorlet{HKS57-60}{HKS57!60} + \colorlet{HKS57-70}{HKS57!70} + \colorlet{HKS57-80}{HKS57!80} + \colorlet{HKS57-90}{HKS57!90} + \colorlet{HKS57-100}{HKS57!100} + \colorlet{HKS65-10}{HKS65!10} + \colorlet{HKS65-20}{HKS65!20} + \colorlet{HKS65-30}{HKS65!30} + \colorlet{HKS65-40}{HKS65!40} + \colorlet{HKS65-50}{HKS65!50} + \colorlet{HKS65-60}{HKS65!60} + \colorlet{HKS65-70}{HKS65!70} + \colorlet{HKS65-80}{HKS65!80} + \colorlet{HKS65-90}{HKS65!90} + \colorlet{HKS65-100}{HKS65!100} + \colorlet{HKS07-10}{HKS07!10} + \colorlet{HKS07-20}{HKS07!20} + \colorlet{HKS07-30}{HKS07!30} + \colorlet{HKS07-40}{HKS07!40} + \colorlet{HKS07-50}{HKS07!50} + \colorlet{HKS07-60}{HKS07!60} + \colorlet{HKS07-70}{HKS07!70} + \colorlet{HKS07-80}{HKS07!80} + \colorlet{HKS07-90}{HKS07!90} + \colorlet{HKS07-100}{HKS07!100} +} +% \end{macrocode} +% \end{macro}^^A \setcdcolors@full +% Zum Schluss werden die Optionen ausgeführt und ggf. an \pkg{xcolor} +% weitergereicht. Anschließend werden die Farben für das Dokument definiert. +% Ohne die Angabe eines optionalen Argumentes an das Paket \pkg{xcolor} erfolgt +% die Definition für den gewählten bzw. standardmäßig eingestellten Farbraum. +% \begin{macrocode} +\ExecuteOptions{reduced} +\ProcessOptions\relax +\RequirePackage{xcolor} +\setcdcolors{} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx new file mode 100644 index 00000000000..ef1f07f19df --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-comp.dtx @@ -0,0 +1,311 @@ +% \CheckSum{199} +% \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-comp.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-comp.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (compatibility for tudbook)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-comp.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Kompatibilität für alte \cls{tudbook}-Dokumente} +% +% Diese Paket stellt für die \cls{tudscr}-Klassen eine Schnittstelle bereit, +% die es ermöglicht, die in der alten \cls{tudbook}-Klasse und dem dazugehörigen +% \pkg{tudthesis}-Paket definierten Befehle hier zu benutzen, um alte Dokumente +% mit den neuen Klassen zu setzen. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*package&header> +% \fi +% +% \subsection{Identifizierung des Pakets \pkg{tudscrcomp}} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tudscrcomp}% + [\TUDVersion\space package (compatibility for tudbook)] +\ifx\tudcls@name\undefined + \PackageError{tudscrcomp}{Unsupported class found}{% + This package can only be used with a class out of the\MessageBreak% + tudscr bundle (tudscrartcl, tudscrreprt, tudscrbook)% + } + \endinput +\fi +% \end{macrocode} +% +% \iffalse +% +%<*package&body> +% \fi +% +% \subsection{Das Paket \pkg{tudscrcomp}} +% +% \begin{macro}{\einrichtung} +% \begin{macro}{\fachrichtung} +% \begin{macro}{\institut} +% \begin{macro}{\professur} +% \begin{macro}{\moreauthor} +% \begin{macro}{\submitdate} +% \begin{macro}{\supervisorII} +% \begin{macro}{\supervisedby} +% \begin{macro}{\supervisedIIby} +% \begin{macro}{\submittedon} +% Es werden Aliasbefehle für die Eingabefelder definiert. +% \begin{macrocode} +\newcommand*\einrichtung{} +\let\einrichtung\faculty +\newcommand*\fachrichtung{} +\let\fachrichtung\department +\newcommand*\institut{} +\let\institut\institute +\newcommand*\professur{} +\let\professur\chair +\newcommand*\moreauthor{} +\let\moreauthor\authormore +\newcommand*\submitdate{} +\let\submitdate\date +\newcommand*\supervisorII[1]{% + \expandafter\gdef\expandafter\@supervisor\expandafter{\@supervisor\and#1}% +} +\newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} +\newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} +\newcommand*\submittedon[1]{\gdef\datetext{#1}} +% \end{macrocode} +% \end{macro}^^A \submittedon +% \end{macro}^^A \supervisedIIby +% \end{macro}^^A \supervisedby +% \end{macro}^^A \supervisorII +% \end{macro}^^A \submitdate +% \end{macro}^^A \moreauthor +% \end{macro}^^A \professur +% \end{macro}^^A \institut +% \end{macro}^^A \fachrichtung +% \end{macro}^^A \einrichtung} +% \begin{macro}{\dissertation} +% Bei der Definition des Typs der Abschlussarbeit mit \cs{dissertation} wird +% die Lokalisierungsvariable \cs{dissertationname} verwendet und die Feldnamen +% angepasst. +% \begin{macrocode} +\newcommand*\dissertation{% + \thesis{\dissertationname}% + \let\supervisorname\refereename% + \let\supervisorothername\refereeothername% +} +% \end{macrocode} +% \end{macro}^^A \dissertation +% \begin{option}{colortitle} +% \begin{option}{nocolortitle} +% Für farbige Einstellungen wird von \cls{tudbook} die Option \opt{color} +% definiert. Soll die Titelseite konträr dazu gesetzt werden, muss sich mit den +% Schlüsseln \opt{colortitle} und \opt{nocolortitle} beholfen werden. +% \begin{macrocode} +\TUD@key{colortitle}[true]{% + \TUD@set@ifkey{colortitle}{@tempswa}{#1}% + \if@tempswa% + \TUDoptions{cdtitle=color}% + \else% + \TUDoptions{cdtitle=true}% + \fi% +} +\TUD@key{nocolortitle}[true]{% + \TUD@set@ifkey{nocolortitle}{@tempswa}{#1}% + \if@tempswa% + \TUDoptions{cdtitle=true}% + \else% + \TUDoptions{cdtitle=color}% + \fi% +} +% \end{macrocode} +% \end{option}^^A nocolortitle +% \end{option}^^A colortitle +% \begin{option}{ddcfooter} +% Außer der Option \opt{ddc} gibt es bei der alten \cls{tudbook}-Klasse noch +% den Schlüssel \opt{ddcfooter}. Dieser wird auf die Option \opt{ddcfoot} gelegt. +% \begin{macrocode} +\TUD@key{ddcfooter}[true]{% + \TUD@set@ifkey{ddcfooter}{@tempswa}{#1}% + \if@tempswa% + \TUDoptions{ddcfoot}% + \else% + \TUDoptions{ddcfoot=false}% + \fi% +} +% \end{macrocode} +% \end{option}^^A ddcfooter +% \begin{environment}{theglossary} +% \begin{macro}{\glossaryname} +% \begin{macro}{\glossitem} +% Eine rudimentäre Umgebung für ein Glossar. +% \begin{macrocode} +\AtBeginDocument{% + \ifdef{\theglossary}{}{% + \providecommand*{\glossaryname}{Glossar} + \newenvironment{theglossary}[1][]{% + \ClassWarning{\tudcls@name}{% + Using the environment theglossary is not\MessageBreak% + recommended. You should rather use an appropriate\MessageBreak% + package such as glossaries% + }% + \let\bibname\glossaryname% + \bib@heading% + #1% + \list{}{% + \setlength{\labelsep}{\z@}% + \setlength{\labelwidth}{\z@}% + \setlength{\itemindent}{-\leftmargin}% + }% + }{\endlist} + \newcommand{\glossitem}[1]{\item[] #1\par}% + }% +} +% \end{macrocode} +% \end{macro}^^A \glossitem +% \end{macro}^^A \glossaryname +% \end{environment}^^A theglossary +% \begin{option}{serifmath} +% Die alte \cls{tudbook}-Klasse hat neben der Option \opt{sansmath} +% außerdem den zusätzlichen Schlüssel \opt{serifmath} definiert, welcher aus +% Gründen der Kompatibilität hier ebenfalls vorgehalten wird. +% \begin{macrocode} +\TUD@key{serifmath}[true]{% + \TUD@set@ifkey{serifmath}{@tempswa}{#1}% + \if@tempswa% + \TUDoptions{sansmath=false}% + \else% + \TUDoptions{sansmath}% + \fi% +} +% \end{macrocode} +% \end{option}^^A serifmath +% \begin{macro}{\chapterpage} +% \begin{macro}{\if@tud@chapterpage@temp} +% \begin{macro}{\tud@chapterpage@set} +% \begin{macro}{\tud@chapterpage@unset} +% \begin{macro}{\tud@chapterpage@wrn} +% Die alte \cls{tudbook}-Klasse stellt den Befehl \cs{chapterpage} bereit. +% Mit diesem ist es möglich, das Verhalten der Kapitelseiten~-- welches durch +% die Option \opt{chapterpage} gesteuert wird~-- temporär umzuschalten, also +% statt Kapitelseiten lediglich Überschriften zu setzen und umgekehrt. Dies ist +% typographisch durchaus zu hinterfragen, allerdings sollen die neuen Klassen +% möglichst kompatibel zu der alten sein, weshalb diese Funktionalität trotzdem +% implementiert wird. Der Befehl \cs{chapterpage} setzt den globalen Schalter +% \cs{if@tud@chapterpage@temp}. Der Befehl \cs{tud@chapterpage@set} setzt für +% Kapitel das komplementäre Verhalten zur eigentlich gewählten +% \opt{chapterpage}"=Option. Nach dem Setzen der entsprechenden Überschrift +% wird \cs{tud@chapterpage@set} nochmals aufgerufen, das Verhalten auf den +% ursprünglichen Zustand geschaltet und der globale Schalter +% \cs{if@tud@chapterpage@temp} zurückgesetzt. +% \begin{macrocode} +\newif\if@tud@chapterpage@temp +\newcommand*\chapterpage{\@tud@chapterpage@temptrue\tud@chapterpage@wrn} +\newcommand*\tud@chapterpage@set[1][]{% + \if@tud@chapterpage@temp% + \if@tud@chapterpage% + \TUDoptions{chapterpage=false}% + \else% + \TUDoptions{chapterpage}% + \fi% + \fi% +} +\newcommand*\tud@chapterpage@unset[1][]{% + \tud@chapterpage@set% + \global\@tud@chapterpage@tempfalse% +} +\AtEndPreamble{% + \pretocmd{\tud@nchapter}{\tud@chapterpage@set}{}{} + \apptocmd{\tud@nchapter}{\tud@chapterpage@unset}{}{} + \pretocmd{\tud@schapter}{\tud@chapterpage@set}{}{} + \apptocmd{\tud@schapter}{\tud@chapterpage@unset}{}{} + \pretocmd{\tud@ochapter}{\tud@chapterpage@set}{}{} + \apptocmd{\tud@ochapter}{\tud@chapterpage@unset}{}{} + \pretocmd{\tud@naddchap}{\tud@chapterpage@set}{}{} + \apptocmd{\tud@naddchap}{\tud@chapterpage@unset}{}{} + \pretocmd{\tud@saddchap}{\tud@chapterpage@set}{}{} + \apptocmd{\tud@saddchap}{\tud@chapterpage@unset}{}{} + \pretocmd{\tud@oaddchap}{\tud@chapterpage@set}{}{} + \apptocmd{\tud@oaddchap}{\tud@chapterpage@unset}{}{} +} +% \end{macrocode} +% Da wie bereits beschrieben das Vorgehen äußerst fragwürdig ist, wird bei der +% Verwendung von \cs{chapterpage} zumindest einmalig eine Warnung ausgegeben. +% \begin{macrocode} +\newcommand*\tud@chapterpage@wrn{% + \ClassWarning{\tudcls@name}{% + The command \string\chapterpage\space is not\MessageBreak% + recommended. You should use the same style for\MessageBreak% + chapters throughout the document + }% + \global\let\tud@chapterpage@wrn\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@chapterpage@wrn +% \end{macro}^^A \tud@chapterpage@unset +% \end{macro}^^A \tud@chapterpage@set +% \end{macro}^^A \if@tud@chapterpage@temp +% \end{macro}^^A \chapterpage +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx new file mode 100644 index 00000000000..7f498c96a61 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-doc.dtx @@ -0,0 +1,80 @@ +% ====================================================================== +% 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. +% ====================================================================== +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{tudscrdoc}% + [2014/04/24 v1.00 (documentation class for the tudscr-bundle based on scrdoc)] +\LoadClassWithOptions{scrdoc} +\setlength{\marginparwidth}{140pt} +\setlength{\marginparsep}{8pt} +\setlength{\oddsidemargin}{\dimexpr\marginparwidth+\marginparsep-1in} +\setlength{\textwidth}{\dimexpr\paperwidth-1in-\oddsidemargin-2\marginparsep} +\setlength{\topmargin}{-1in} +\setlength{\headheight}{0pt} +\setlength{\headsep}{30pt} +\setlength{\footskip}{\headsep} +\setlength{\textheight}{\dimexpr\paperheight-3\footskip} +\RequirePackage[latin1]{inputenc} +\RequirePackage{dox} +\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} +\RequirePackage[english,ngerman]{babel} +\RequirePackage{hologo} +\RequirePackage{xspace} +\def\filemail{tudscr@gmail.com} +\title{\texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\author{Falk Hanisch\footnote{\filemail}} +\date{\filedate} +\DoNotIndex{\",\if,\tudpage,\endtudpage,\tud@pagestyle} +\doxitem[idxtype=Option]{Option}{option}{Optionen} +\doxitem[idxtype=Parameter]{Parameter}{parameter}{Parameter} +\doxitem[macrolike,idxtype=L\"ange]{Length}{length}{L\"angen} +\doxitem[idxtype=Farbe]{Color}{color}{Farben} +\doxitem[macrolike,idxtype=Lok.]{Locale}{locale}{Lokalisierungsvariablen} +\doxitem[macrolike,idxtype=Feld]{Field}{field}{Eingabefelder} +\DeclareRobustCommand*{\cls}[1]{\mbox{\textsf{#1}}} +\DeclareRobustCommand*{\pkg}[1]{\mbox{\textsf{#1}}} +\DeclareRobustCommand*{\opt}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\env}[1]{\mbox{\texttt{#1}}} +\DeclareRobustCommand*{\cmd}[1]{\mbox{\cs{#1}}} +\DeclareRobustCommand\TUDScript{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% +} +\newif\if@tud@doc@final +\DeclareOption{final}{\@tud@doc@finaltrue} +\ProcessOptions\relax +\AtBeginDocument{ + \providecommand\todo[2][]{% + \if@tud@doc@final\else + \def\todo@mark{\ifstr{#1}{}{ToDo}{#1}}% + \endgraf% + \hfuzz0.8pt% + \leavevmode\marginpar{\raggedleft\fbox{\todo@mark\strut}}% + \fbox{\parbox{\dimexpr\textwidth-2\fboxsep}{#2\strut}}% + \fi% + } + \let\ToDo\todo + \providecommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} + \providecommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} + \providecommand*\KOMAScript{KOMA-Script\xspace} + \providecommand*\url[1]{\texttt{#1}} + \providecommand*\texorpdfstring[2]{#1} +} +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx new file mode 100644 index 00000000000..1eb2ae5a888 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fields.dtx @@ -0,0 +1,804 @@ +% \CheckSum{508} +% \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-fields.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-fields.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (input fields)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-fields.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Eingabefelder für den Nutzer} +% +% Die Vorlagen für das \CD der Technischen Universität Dresden definieren +% mehrere Felder, welche durch den Nutzer gesetzt und auf Titelseite bzw. mit +% \pkg{tudscrsupervisor} auch teilweise für die Aufgabenstellung verwendet +% werden. Ein Großteil der definierten Felder wird unter anderem für den Satz +% der Titelseite benötigt. +% +% Das Setzen einer speziellen Titelseite mit \LaTeX{} ist eines der häufigsten +% anliegen. Dafür ist von Markus Kohm\footnote{Autor von \KOMAScript} das +% \pkg{titlepage}-Paket entworfen worden. Um gleichzeitig konsistent zu diesem +% Paket, werden für die entsprechenden Felder Alias-Befehle definiert. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class|titlepage> +% \fi +% +% \subsection{Textfelder} +% +% Einige der Felder werden sowohl für die Klassen aber auch für den separaten +% \pkg{titlepage}-Stil benötigt. +% \begin{macro}{\faculty} +% \begin{field}{\@faculty} +% Angabe der Fakultät für die TUD-Kopfzeile mit \cs{faculty}\marg{Fakultät}, +% wird im Makro \cs{@faculty} gespeichert. +% \begin{macrocode} +%<*class> +\newcommand*\@faculty{} +\newcommand*\faculty[1]{\gdef\@faculty{\trim@spaces{#1}}} +% +% \end{macrocode} +% \end{field}^^A \@faculty +% \end{macro}^^A \faculty +% \begin{macro}{\department} +% \begin{field}{\@department} +% Angabe der Einrichtung mit \cs{department}\marg{Fachrichtung} für die +% TUD-Kopfzeile, wird im Makro \cs{@department} gespeichert. +% \begin{macrocode} +%<*class> +\newcommand*\@department{} +\newcommand*\department[1]{\gdef\@department{\trim@spaces{#1}}} +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{department} +% +% \end{macrocode} +% \end{field}^^A \@department +% \end{macro}^^A \department +% \begin{macro}{\institute} +% \begin{field}{\@institute} +% Angabe des Instituts für die TUD-Kopfzeile mit \cs{institute}\marg{Institut}, +% wird im Makro \cs{@institute} gespeichert. +% \begin{macrocode} +%<*class> +\newcommand*\@institute{} +\newcommand*\institute[1]{\gdef\@institute{\trim@spaces{#1}}} +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{institute} +% +% \end{macrocode} +% \end{field}^^A \@institute +% \end{macro}^^A \institute +% \begin{macro}{\chair} +% \begin{field}{\@chair} +% \begin{macro}{\professorship} +% Angabe des Lehrstuhls bzw. der Professur mit \cs{chair}\marg{Lehrstuhl} für +% die TUD-Kopfzeile, wird im Makro \cs{@chair} gespeichert; für \cs{chair} kann +% als Aliasbefehl auch \cs{professorship} genutzt werden. +% \begin{macrocode} +%<*class> +\newcommand*\@chair{} +\newcommand*\chair[1]{\gdef\@chair{\trim@spaces{#1}}} +\newcommand*\professorship{} +\let\professorship\chair +% +% \end{macrocode} +% \end{macro}^^A \professorship +% \end{field}^^A \@chair +% \end{macro}^^A \chair +% \begin{macro}{\extraheadline} +% \begin{field}{\@extraheadline} +% Für die Angabe einer freien zweiten bzw. dritten Textzeile im Kopf. Dies ist +% laut \CD nur in besonderen Ausnahmefällen gestattet. +% \begin{macrocode} +%<*class> +\newcommand*\@extraheadline{} +\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}} +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{extraheadline} +% +% \end{macrocode} +% \end{field}^^A \@extraheadline +% \end{macro}^^A \extraheadline +% \begin{macro}{\title} +% \begin{field}{\@@title} +% \begin{macro}{\author} +% \begin{field}{\@@author} +% Für die spätere Verwendung im Dokument von Titel und Autor~-- bspw. für die +% Aufgabenstellung oder die Selbstständigkeitserklärung~-- werden die Felder +% \cs{@@title} sowie \cs{@@author} definiert, wodurch die mit \cs{title} bzw. +% \cs{author} gespeicherten Einträge auch nach dem Setzen des Titels noch +% verwendet werden können, da die Standardfelder \cs{@title} und \cs{@author} +% durch \cs{maketitle} gelöscht werden. Außerdem sollen in diesen Feldern keine +% Fußnoten enthalten sein. Dafür müssen \cs{title} bzw. \cs{author} angepasst +% werden. +% \begin{macrocode} +%<*class> +\newcommand*\@@title{} +\renewcommand*\title[1]{% + \gdef\@title{#1}% + \gdef\@@title{% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + #1% + \endgroup% + }% +} +\newcommand*\@@author{} +\renewcommand*\author[1]{% + \gdef\@author{#1}% + \let\@@author\@author% +} +% +% \end{macrocode} +% \end{field}^^A \@@author +% \end{macro}^^A \author +% \end{field}^^A \@@title +% \end{macro}^^A \title +% \begin{macro}{\student} +% Der Befehl \cs{student} kann als Alias für \cs{author} genutzt werden. +% \begin{macrocode} +%<*class> +\newcommand*\student{} +\let\student\author +% +% \end{macrocode} +% \end{macro}^^A \student +% \begin{macro}{\authormore} +% \begin{field}{\@authormore} +% Ausgabe einer zusätzlichen Zeile mit \cs{authormore}\marg{Textzeile} direkt +% unterhalb der Angabe des Autors auf der Titelseite, wird im Makro +% \cs{@authormore} gespeichert. +% \begin{macrocode} +%<*class> +\newcommand*\@authormore{} +\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}} +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{authormore} +% +% \end{macrocode} +% \end{field}^^A \@authormore +% \end{macro}^^A \authormore +% \begin{macro}{\thesis} +% \begin{field}{\@thesis} +% \begin{field}{\@@thesis} +% \begin{macro}{\subject} +% \begin{field}{\@subject} +% \begin{macro}{\tud@thesis} +% \begin{macro}{\tud@@thesis} +% \begin{macro}{\tud@thanks} +% Art bzw. Typ der Abschlussarbeit kann \cs{thesis}\marg{Abschlussarbeit} +% angegeben werden und wird im Makro \cs{@thesis} gespeichert. Alternativ +% dazu kann auch der Befehl \cs{subject} verwendet werden. Mit dem Befehl +% \cs{tud@thesis} wird in den Feldern \@thesis bzw. \@subject nach bestimmten +% Schlagwörtern für Abschlussarbeiten o.\,ä. gesucht. Wird eines dieser Wörter +% gefunden, wird der entsprechende reguläre Ausdruck für dieses Feld gesetzt. +% Zusätzlich wird durch \cs{tud@@thesis} dafür gesorgt, dass gegebenenfalls der +% Inhalt von \cs{@subject} in \cs{@thesis} verschoben und die entsprechende +% Option \opt{subjectthesis} gesetzt wird. In \cs{@@thesis} wird die angegebene +% Abschlussarbeit ohne etwaige Fußnoten gespeichert. +% \begin{macrocode} +%<*class> +\newcommand*\@thesis{} +\newcommand*\@@thesis{} +\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}} +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{thesis} +\renewcommand*\thesis[1]{\tud@thesis{thesis}{#1}} +% +\newcommand*\tud@thanks{} +\newcommand*\tud@thesis[2]{% + \AfterPreamble{% + \begingroup% +% \end{macrocode} +% Hier das gleiche wie an anderer Stelle auch schon. Der Inhalt einer eventuell +% vorhandenen Fußnote wird gesichert +% \begin{macrocode} + \global\let\tud@thanks\relax% + \def\thanks##1{\gdef\tud@thanks{##1}}% + \let\footnote\thanks% + \setbox0\vbox{#2}% + \let\thanks\@gobble% + \let\footnote\@gobble% + \ifstr{#1}{thesis}{\xdef\@@thesis{#2}}{}% + \endgroup% + \tud@lowerstring{\@tempa}{#2}% + \ifstr{\@tempa}{diss}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{doctoral}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{phd}{\tud@@thesis{#1}{\dissertationname}}{% + \ifstr{\@tempa}{diploma}{\tud@@thesis{#1}{\diplomathesisname}}{% + \ifstr{\@tempa}{master}{\tud@@thesis{#1}{\masterthesisname}}{% + \ifstr{\@tempa}{bachelor}{\tud@@thesis{#1}{\bachelorthesisname}}{% + \ifstr{\@tempa}{student}{\tud@@thesis{#1}{\studentresearchname}}{% + \ifstr{\@tempa}{project}{\tud@@thesis{#1}{\projectpapername}}{% + \ifstr{\@tempa}{seminar}{\tud@@thesis{#1}{\seminarpapername}}{% + \ifstr{\@tempa}{research}{\tud@@thesis{#1}{\researchname}}{% + \ifstr{\@tempa}{log}{\tud@@thesis{#1}{\logname}}{% + \ifstr{\@tempa}{report}{\tud@@thesis{#1}{\reportname}}{% + \ifstr{\@tempa}{internship}{\tud@@thesis{#1}{\internshipname}}{% + \@namedef{@#1}{#2}% + }}}}}}}}}}}}}% + }% +} +\newcommand*\tud@@thesis[2]{% + \ifx\tud@thanks\relax% + \gdef\@thesis{#2}% + \else% + \xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% + \fi% + \gdef\@@thesis{#2}% + \ifstr{#1}{subject}{% + \ifx\@thesis\empty\else% +%<*class> + \ClassWarning{\tudcls@name}{Field 'thesis' is overwritten by 'subject'}% +% +%<*titlepage> + \PackageWarning{titlepage}{Field 'thesis' is overwritten by 'subject'}% +% + \fi% +%<*class> + \TUD@std@ifkey@lock{subjectthesis}{true}% +% +%<*titlepage> + \FamilySetBool{title}{subjectthesis}{@tud@subjectthesis}{true}% +% + }{% +%<*class> + \TUD@std@ifkey@lock{subjectthesis}{false}% +% +%<*titlepage> + \FamilySetBool{title}{subjectthesis}{@tud@subjectthesis}{false}% +% + }% +} +\renewcommand*\subject[1]{\tud@thesis{subject}{#1}} +% \end{macrocode} +% \end{macro}^^A \tud@thanks +% \end{macro}^^A \tud@@thesis +% \end{macro}^^A \tud@thesis +% \end{field}^^A \@subject +% \end{macro}^^A \subject +% \end{field}^^A \@@thesis +% \end{field}^^A \@thesis +% \end{macro}^^A \thesis +% \begin{macro}{\degree} +% \begin{field}{\@degree} +% \begin{field}{\@degreeabbr} +% Der angestrebte Abschluss bzw. der zu erwerbende akademische Grad, welcher +% auf der Titelseite ausgegeben werden soll, wird im Makro \cs{@degree} +% gespeichert. Zusätzlich kann als optionales Argument die Kurzform des +% akademischen Grades angegeben werden, wird in \cs{@degreeabbr} gespeichert. +% \begin{macrocode} +%<*class> +\newcommand*\@degree{} +% +\newcommand*\@degreeabbr{} +%<*titlepage> +\let\degree\relax +% +\newcommand*\degree[2][]{% + \ifxblank{#1}{\gdef\@degreeabbr{}}{\gdef\@degreeabbr{(#1)}}% + \gdef\@degree{#2}% +} +% \end{macrocode} +% \end{field}^^A \@degreeabbr +% \end{field}^^A \@degree +% \end{macro}^^A \degree +% +% \iffalse +%<*class> +% \fi +% +% \begin{macro}{\professor} +% \begin{field}{\@professor} +% Angabe des verantwortlichen Hochschullehrers für Titel und Aufgabenstellung, +% wird im Makro \cs{@professor} gespeichert. +% \begin{macrocode} +\newcommand*\@professor{} +\newcommand*\professor[1]{\gdef\@professor{#1}} +% \end{macrocode} +% \end{field}^^A \@professor +% \end{macro}^^A \professor +% \begin{macro}{\supervisor} +% \begin{field}{\@supervisor} +% (Erst- und Zweit"~)Betreuer bei Abschlussarbeiten, wird in \cs{@supervisor} +% gespeichert. Mehrere Betreuer werden durch \cs{and} getrennt. Für die +% Selbstständigkeitserklärung werden standardmäßig die angegebenen Betreuer +% als Personen eingetragen, welche Unterstützung geleistet haben. +% \begin{macrocode} +\newcommand*\@supervisor{} +\newcommand*\supervisor[1]{% + \gdef\@supervisor{#1}% + \ifx\@supporter\empty\gdef\@supporter{#1}\fi% +} +% \end{macrocode} +% \end{field}^^A \@supervisor +% \end{macro}^^A \supervisor +% \begin{macro}{\supporter} +% \begin{field}{\@supporter} +% Diese Feld ist für die Hilfesteller bei der Anfertigung der Abschlussarbeit, +% welche auf der Selbstständigkeitserklärung aufgeführt werden. Standardmäßig +% werden diese bei der Angabe der Betreuer gesetzt. Sollten die unterstützenden +% Personen separat angegeben werden, ist das Eintragen der Betreuer in das Feld +% \cs{@supporter} nicht mehr nötig. Mehrere Hilfesteller werden durch \cs{and} +% getrennt. +% \begin{macrocode} +\newcommand*\@supporter{} +\newcommand*\supporter[1]{% + \gdef\@supporter{#1}% + \renewcommand*\supervisor[1]{\gdef\@supervisor{##1}}% +} +% \end{macrocode} +% \end{field}^^A \@supporter +% \end{macro}^^A \supporter +% \begin{macro}{\company} +% \begin{field}{\@company} +% Angabe einer externen Firma, wird im Makro \cs{@company} gespeichert. +% \begin{macrocode} +\newcommand*\@company{} +\newcommand*\company[1]{\gdef\@company{#1}} +% \end{macrocode} +% \end{field}^^A \@company +% \end{macro}^^A \company +% \begin{macro}{\referee} +% \begin{field}{\@referee} +% Gutachter bei einer Dissertation, werden im Makro \cs{@referee} gespeichert. +% Mehrere Gutachter werden durch \cs{and} getrennt. +% \begin{macrocode} +\newcommand*\@referee{} +\newcommand*\referee[1]{\gdef\@referee{#1}} +% \end{macrocode} +% \end{field}^^A \@referee +% \end{macro}^^A \referee +% \begin{macro}{\advisor} +% \begin{field}{\@advisor} +% Fachreferenten bei einer Dissertation, werden im Makro \cs{@advisor} +% gespeichert. Mehrere Fachreferenten werden durch \cs{and} getrennt. +% \begin{macrocode} +\newcommand*\@advisor{} +\newcommand*\advisor[1]{\gdef\@advisor{#1}} +% \end{macrocode} +% \end{field}^^A \@advisor +% \end{macro}^^A \advisor +% \begin{macro}{\matriculationnumber} +% \begin{field}{\@matriculationnumber} +% \begin{macro}{\studentid} +% \begin{macro}{\matriculationid} +% Angabe der Matrikelnummer für Titelseite und Aufgabenstellung, wird in dem +% Makro \cs{@matriculationid} gespeichert, für \cs{matriculationid} kann als +% Aliasbefehl \cs{studentid} sowie \cs{matriculationnumber} genutzt werden. +% \begin{macrocode} +\newcommand*\@matriculationnumber{} +\newrobustcmd*\matriculationnumber[1]{% + \gdef\@matriculationnumber{#1}% +} +\newrobustcmd*\studentid{} +\newrobustcmd*\matriculationid{} +\let\studentid\matriculationnumber +\let\matriculationid\matriculationnumber +% \end{macrocode} +% \end{macro}^^A \matriculationid +% \end{macro}^^A \studentid +% \end{field}^^A \@matriculationnumber +% \end{macro}^^A \matriculationnumber +% +% \iffalse +% +% \fi +% +% \begin{macro}{\matriculationyear} +% \begin{field}{\@matriculationyear} +% \begin{macro}{\enrolmentyear} +% Angabe des Immatrikulationsjahr für den Titel, wird im Makro +% \cs{@matriculationyear} gespeichert, für \cs{matriculationyear} kann als +% Aliasbefehl auch \cs{enrolmentyear} genutzt werden. +% \begin{macrocode} +%<*class> +\newcommand*\@matriculationyear{} +\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}} +\newrobustcmd*\enrolmentyear{} +\let\enrolmentyear\matriculationyear +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{matriculationyear} +% +% \end{macrocode} +% \end{macro}^^A \enrolmentyear +% \end{field}^^A \@matriculationyear +% \end{macro}^^A \matriculationyear +% \begin{macro}{\placeofbirth} +% \begin{field}{\@placeofbirth} +% \begin{macro}{\birthplace} +% Angabe des Geburtsortes für den Titel, wird im Makro \cs{@placeofbirth} +% gespeichert, für \cs{placeofbirth} kann als Aliasbefehl auch \cs{birthplace} +% genutzt werden. +% \begin{macrocode} +%<*class> +\newcommand*\@placeofbirth{} +\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}} +\newrobustcmd*\birthplace{} +\let\birthplace\placeofbirth +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{placeofbirth} +% +% \end{macrocode} +% \end{macro}^^A \birthplace +% \end{field}^^A \@placeofbirth +% \end{macro}^^A \placeofbirth +% \begin{macro}{\publisher} +% \begin{field}{\@publisher} +% \begin{macro}{\publishers} +% Kleine Korrektur für \KOMAScript. Der Standardbefehl sollte im Singular +% stehen. +% \begin{macrocode} +%<*class> +\providecommand*\@publisher{} +\providecommand*\publisher[1]{\gdef\@publisher{#1}} +\let\publishers\publisher +% +%<*titlepage> +\providecommand*\publishers{\publisher} +% +% \end{macrocode} +% \end{macro}^^A \publishers +% \end{field}^^A \@publisher +% \end{macro}^^A \publisher +% \begin{macro}{\confirmationclosing} +% \begin{field}{\@confirmationclosing} +% Als Abschluss der Selbstständigkeitserklärung für Ort und Unterschrift. +% \begin{macrocode} +%<*class> +\newcommand*\@confirmationclosing{% + \medskip% + \noindent\@place, \@@date% + \\[15mm plus 10mm minus 10mm]% + \begingroup% + \let\and\hfil% + \let\thanks\@gobble% + \let\footnote\@gobble% + \@@author% + \hfil% + \endgroup% +} +\newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} +% +% \end{macrocode} +% \end{field}^^A \@confirmationclosing +% \end{macro}^^A \confirmationclosing +% \begin{macro}{\place} +% \begin{field}{\@place} +% \begin{macro}{\location} +% Angabe des Ortes für die Unterschriftzeile der Selbstständigkeitserklärung, +% wird im Makro \cs{@place} gespeichert und standardmäßig mit +% \glqq{}Dresden\grqq{} gesetzt, für \cs{place} kann als Aliasbefehl auch +% \cs{location} genutzt werden. +% \begin{macrocode} +%<*class> +\newcommand*\@place{Dresden} +\newcommand*\place[1]{\gdef\@place{#1}} +% +\newcommand*\location{} +\let\location\place +% \end{macrocode} +% \end{macro}^^A \location +% \end{field}^^A \@place +% \end{macro}^^A \place +% +% \iffalse +% +%<*supervisor> +% \fi +% +% \begin{macro}{\course} +% \begin{field}{\@course} +% \begin{macro}{\discipline} +% Studiengang für den Kopf der Aufgabenstellung, wird im Makro \cs{@course} +% gespeichert, für \cs{course} kann als Aliasbefehl auch \cs{discipline} +% genutzt werden. +% \begin{macrocode} +\newcommand*\@course{} +\newrobustcmd*\course[1]{\gdef\@course{#1}} +\newrobustcmd*\discipline{} +\let\discipline\course +% \end{macrocode} +% \end{macro}^^A \discipline +% \end{field}^^A \@course +% \end{macro}^^A \course +% \begin{macro}{\branch} +% \begin{field}{\@branch} +% Studienrichtung bzw. Fachrichtung für den Kopf der Aufgabenstellung, wird +% im Makro \cs{@branch} gespeichert. +% \begin{macrocode} +\newcommand*\@branch{} +\newrobustcmd*\branch[1]{\gdef\@branch{#1}} +% \end{macrocode} +% \end{field}^^A \@branch +% \end{macro}^^A \branch +% \begin{macro}{\chairman} +% \begin{field}{\@chairman} +% Angabe des Prüfungsausschussvorsitzenden für die Aufgabenstellung, wird im +% Makro \cs{@chairman} gespeichert. +% \begin{macrocode} +\newcommand*\@chairman{} +\newcommand*\chairman[1]{\gdef\@chairman{#1}} +% \end{macrocode} +% \end{field}^^A \@chairman +% \end{macro}^^A \chairman +% \begin{macro}{\contact} +% \begin{field}{\@contact} +% \begin{macro}{\office} +% \begin{field}{\@office} +% \begin{macro}{\phone} +% \begin{field}{\@phone} +% \begin{macro}{\email} +% \begin{field}{\@email} +% Für einen Aushang kann eine oder mehrere Kontaktpersonen angegeben werden. +% Zusätzlich kann für jede einzelne Person ein Raum, eine Telefonnummer und die +% E-Mail"=Adresse hinzugefügt werden. +% \begin{macrocode} +\newcommand*\@contact{} +\newcommand*\contact[1]{\gdef\@contact{#1}} +\newcommand*\@office{} +\newrobustcmd*\office[1]{\gdef\@office{#1}} +\newcommand*\@phone{} +\newrobustcmd*\phone[1]{\gdef\@phone{#1}} +\newcommand*\@email{} +\newrobustcmd*\email[1]{\gdef\@email{#1}} +\AfterPackage{hyperref}{% + \renewrobustcmd*\email[1]{\gdef\@email{\href{mailto:#1}{\nolinkurl{#1}}}}% +} +% \end{macrocode} +% \end{field}^^A \@email +% \end{macro}^^A \email +% \end{field}^^A \@phone +% \end{macro}^^A \phone +% \end{field}^^A \@office +% \end{macro}^^A \office +% \end{field}^^A \@contact +% \end{macro}^^A \contact +% \begin{macro}{\grade} +% \begin{field}{\@grade} +% \begin{field}{\@headline} +% Die beiden Befehle dienen zum Abspeichern der entsprechenden Parameter +% innerhalb der neu definierten Umgebungen aus dem Paket \pkg{tudscrsupervisor}. +% \begin{macrocode} +\newcommand*\@grade{} +\newcommand*\grade[1]{\gdef\@grade{#1}} +\newcommand*\@headline{} +% \end{macrocode} +% \end{field}^^A \@headline +% \end{field}^^A \@grade +% \end{macro}^^A \grade +% +% \iffalse +% +%<*class|titlepage> +%<*class> +% \fi +% +% \subsection{Datumsfelder} +% +% \begin{macro}{\printdate} +% Im Folgenden werden mehrere Datumsfelder definiert. Damit diese optional +% durch das \pkg{isodate}-Paket formatiert werden können, wird der zu +% diesem Paket gehörende Befehl \cs{printdate} in die Definition der +% eigentlichen Datumsfelder integriert. Sollte das \pkg{isodate}-Paket nicht +% geladen werden, so muss dieser Befehl trotzdem definiert sein. +% \begin{macrocode} +\newcommand*\printdate[1]{#1} +\BeforePackage{isodate}{\let\printdate\undefined} +% \end{macrocode} +% \end{macro}^^A \printdate +% \begin{macro}{\tud@printdate} +% Damit die Datumsfelder definiert werden können und das \pkg{isodate}-Paket +% unterstützen, muss beim Festlegen der Datumsfelder einiges beachtet werden. +% So müssen beispielsweise leere Argumente und Sonderfälle separat betrachtet +% werden. Damit dies einheitlich für alle Felder geschehen kann, wird dieser +% Befehl genutzt. Dabei wird als erstes Argument der Befehlsname für das +% Datumsfeld übergeben, als zweites Argument der gewünschte Inhalt. +% \begin{macrocode} +\newcommand*\tud@printdate[2]{% + \ifx\today#2% + \gdef#1{#2}% + \else% + \ifxblank{#2}% + {\gdef#1{}}% + {\gdef#1{\printdate{#2}}}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@printdate +% +% \iffalse +% +% \fi +% +% \begin{macro}{\date} +% \begin{field}{\@date} +% \begin{field}{\@@date} +% \begin{field}{\@datemore} +% \begin{macro}{\submissiondate} +% Das Abgabedatum der Arbeit für den Titel, wird im originalen Makro \cs{@date} +% gespeichert. Zusätzlich kann als optionales Argument eine Ergänzung angehängt +% werden~-- beispielsweise als Erklärung für eine verspätete Abgabe aufgrund +% einer offiziellen Verlängerung der Bearbeitungszeit~-- welche im Feld +% \cs{@datemore} gespeichert wird. Der originale Standardbefehl für das Datum +% \cs{date} wird aufgebohrt, \cs{submissiondate} kann auch als Aliasbefehl +% genutzt werden. Außerdem wird das Feld \cs{@@date} definiert, welches das +% Datum ebenfalls speichert, um es auch nach dem Setzen des Titels verwenden zu +% können. +% \begin{macrocode} +\newcommand*\@datemore{} +\newcommand*\@@date{} +\let\@@date\@date +\renewcommand*\date[2][]{% + \gdef\@datemore{#1}% +%<*titlepage> + \gdef\@date{#2}% +% +%<*class> + \tud@printdate{\@date}{#2}% + \tud@printdate{\@@date}{#2}% +% +} +%<*class> +\newcommand*\submissiondate{} +\let\submissiondate\date +% +% \end{macrocode} +% \end{macro}^^A \submissiondate +% \end{field}^^A \@datemore +% \end{field}^^A \@@date +% \end{field}^^A \@date +% \end{macro}^^A \date +% \begin{macro}{\defensedate} +% \begin{field}{\@defensedate} +% \begin{macro}{\oralexaminationdate} +% Das Verteidigungsdatum erscheint auf dem Titel und wird im Makro +% \cs{@defensedate} gespeichert, für \cs{defensedate} kann als Aliasbefehl auch +% \cs{oralexaminationdate} genutzt werden. +% \begin{macrocode} +%<*class> +\newcommand*\@defensedate{} +\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}} +\newcommand*\oralexaminationdate{} +\let\oralexaminationdate\defensedate +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{defensedate}% instead oralexaminationdate +% +% \end{macrocode} +% \end{macro}^^A \oralexaminationdate +% \end{field}^^A \@defensedate +% \end{macro}^^A \defensedate +% \begin{macro}{\dateofbirth} +% \begin{field}{\@dateofbirth} +% \begin{macro}{\birthday} +% Angabe des Geburtstages für die Titelseite, wird im Makro \cs{@dateofbirth} +% gespeichert, für \cs{dateofbirth} kann als Aliasbefehl auch \cs{birthday} +% genutzt werden. +% \begin{macrocode} +%<*class> +\newcommand*\@dateofbirth{} +\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} +\newrobustcmd*\birthday{} +\let\birthday\dateofbirth +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{dateofbirth} +% +% \end{macrocode} +% \end{macro}^^A \birthday +% \end{field}^^A \@dateofbirth +% \end{macro}^^A \dateofbirth +% +% \iffalse +% +%<*supervisor> +% \fi +% +% \begin{macro}{\issuedate} +% \begin{field}{\@issuedate} +% \begin{macro}{\startdate} +% Angabe des Anfangsdatums für die Aufgabenstellung, wird im Makro +% \cs{@issuedate} gespeichert, für \cs{issuedate} kann als Aliasbefehl auch +% \cs{startdate} genutzt werden. +% \begin{macrocode} +\newcommand*\@issuedate{} +\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}} +\let\startdate\issuedate +% \end{macrocode} +% \end{macro}^^A \startdate +% \end{field}^^A \@issuedate +% \end{macro}^^A \issuedate +% \begin{macro}{\duedate} +% \begin{field}{\@duedate} +% \begin{macro}{\finaldate} +% \begin{macro}{\maturitydate} +% Angabe des geplanten Abgabedatums für die Aufgabenstellung, wird im Makro +% \cs{@duedate} gespeichert, für \cs{duedate} kann als Aliasbefehl auch +% \cs{finaldate} oder \cs{maturitydate} genutzt werden. +% \begin{macrocode} +\newcommand*\@duedate{} +\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}} +\newcommand*\finaldate{} +\newcommand*\maturitydate{} +\let\finaldate\duedate +\let\maturitydate\duedate +% \end{macrocode} +% \end{macro}^^A \maturitydate +% \end{macro}^^A \finaldate +% \end{field}^^A \@duedate +% \end{macro}^^A \duedate +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx new file mode 100644 index 00000000000..f4586a1d7b8 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-fonts.dtx @@ -0,0 +1,924 @@ +% \CheckSum{652} +% \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-fonts.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-fonts.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (fonts)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-fonts.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Schriften des \CDs} +% +% Für das \CD der Technischen Universität Dresden werden die Schriften Univers +% und DIN"~Bold zwingend benötigt. Zur fehlerfreien Verwendung dieser Klassen +% sollten diese bitte installiert werden. Hier werden die \LaTeX-Befehle zur +% Verwendung der Schriften im Dokument definiert. Sollen nur kurze Passagen in +% einer anderen Schrift als der restliche Text gesetzt werden, so sollten +% anstatt der einfachen Schalter wie beispielsweise \cs{univ\dots} besser die +% Befehle \cs{text\dots}\marg{Auszeichnungstext} verwendet werden. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&!option> +% \fi +% +% \subsection{Schriftauswahl im New Font Selection Scheme (NFSS)} +% +% \begin{macro}{\if@tud@univers} +% \begin{macro}{\tud@univers} +% \begin{macro}{\tud@dinbold} +% Die Schriftfamilie im \CD für den Fließtext und die Überschriften. +% \begin{macrocode} +\newif\if@tud@univers +\newcommand*\tud@univers{lun} +\newcommand*\tud@dinbold{0m6} +% \end{macrocode} +% Es wird geprüft, ob die Schriftfamilie installiert ist. Sollte dies nicht der +% Fall sein, wird eine Warnung ausgegeben und ein Rückfallebene definiert. +% \begin{macrocode} +\def\@tempb#1{% + \ClassWarningNoLine{\tudcls@name}{% + #1 fonts not found. Please use on of the\MessageBreak% + installation scripts out of the tudscr-bundle,\MessageBreak% + which suits to your OS. A fallback layout is used% + }% +} +\edef\@tempa{% + \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@univers.fd}}% +} +\@tempa{\@tud@universtrue}{\@tempb{Univers}} +% \end{macrocode} +% \end{macro}^^A \tud@dinbold +% \end{macro}^^A \tud@univers +% \end{macro}^^A if@tud@univers +% \begin{macro}{\univln} +% \begin{macro}{\univrn} +% \begin{macro}{\univbn} +% \begin{macro}{\univxn} +% \begin{macro}{\univls} +% \begin{macro}{\univrs} +% \begin{macro}{\univbs} +% \begin{macro}{\univxs} +% Sollte die Univers installiert sein, werden mehrere Schalter zur expliziten +% Auswahl für die Schriftschnitte Univers~45~Light, Univers~55~Regular, +% Univers~65~Bold, Univers~75~Black, Univers~45~Light~Oblique, +% Univers~55~Regular~Oblique, Univers~65~Bold~Oblique sowie +% Univers~75~Black~Oblique definiert. +% \begin{macrocode} +\if@tud@univers% + \newcommand*\univln{\usefont{\encodingdefault}{\tud@univers}{l}{n}}% + \newcommand*\univrn{\usefont{\encodingdefault}{\tud@univers}{m}{n}}% + \newcommand*\univbn{\usefont{\encodingdefault}{\tud@univers}{b}{n}}% + \newcommand*\univxn{\usefont{\encodingdefault}{\tud@univers}{eb}{n}}% + \newcommand*\univls{\usefont{\encodingdefault}{\tud@univers}{l}{sl}}% + \newcommand*\univrs{\usefont{\encodingdefault}{\tud@univers}{m}{sl}}% + \newcommand*\univbs{\usefont{\encodingdefault}{\tud@univers}{b}{sl}}% + \newcommand*\univxs{\usefont{\encodingdefault}{\tud@univers}{eb}{sl}}% +% \end{macrocode} +% Ansonsten werden die Schalter für die Rückfallebene so definert, dass diese +% einfach nichts machen. +% \begin{macrocode} +\else + \newcommand*\univln{}% + \newcommand*\univrn{}% + \newcommand*\univbn{}% + \newcommand*\univxn{}% + \newcommand*\univls{}% + \newcommand*\univrs{}% + \newcommand*\univbs{}% + \newcommand*\univxs{}% +\fi +% \end{macrocode} +% \end{macro}^^A \univxs +% \end{macro}^^A \univbs +% \end{macro}^^A \univrs +% \end{macro}^^A \univls +% \end{macro}^^A \univxn +% \end{macro}^^A \univbn +% \end{macro}^^A \univrn +% \end{macro}^^A \univln +% \begin{macro}{\textuln} +% \begin{macro}{\texturn} +% \begin{macro}{\textubn} +% \begin{macro}{\textuxn} +% \begin{macro}{\textuls} +% \begin{macro}{\texturs} +% \begin{macro}{\textubs} +% \begin{macro}{\textuxs} +% Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle +% bereitgestellt. +% \begin{macrocode} +\DeclareTextFontCommand{\textuln}{\univln}% +\DeclareTextFontCommand{\texturn}{\univrn}% +\DeclareTextFontCommand{\textubn}{\univbn}% +\DeclareTextFontCommand{\textuxn}{\univxn}% +\DeclareTextFontCommand{\textuls}{\univls}% +\DeclareTextFontCommand{\texturs}{\univrs}% +\DeclareTextFontCommand{\textubs}{\univbs}% +\DeclareTextFontCommand{\textuxs}{\univxs}% +% \end{macrocode} +% \end{macro}^^A \textuxs +% \end{macro}^^A \textubs +% \end{macro}^^A \texturs +% \end{macro}^^A \textuls +% \end{macro}^^A \textuxn +% \end{macro}^^A \textubn +% \end{macro}^^A \texturn +% \end{macro}^^A \textuln +% \begin{macro}{\dinbn} +% \begin{macro}{\textdbn} +% Schalter bzw. Befehl für die Auszeichnung von Überschriften FF~DIN~Bold. Nur, +% falls die Schrift installiert ist, wird sie verwendet. Sonst wird eine Warnung +% erzeugt und es wird die Standardüberschrift verwendet. Bei der Auswahl der +% Schrift wird neben dieser noch die entsprechende Mathematikschrift aktiviert. +% \begin{macrocode} +\edef\@tempa{% + \lowercase{\noexpand\InputIfFileExists{\encodingdefault\tud@dinbold.fd}}% +} +\@tempa{% + \newcommand*\dinbn{% + \usefont{\encodingdefault}{\tud@dinbold}{b}{n}% + \mathversion{dinbold}% + }% +}{% + \@tempb{DIN-Bold}% + \let\dinbn\sectfont% +} +\DeclareTextFontCommand{\textdbn}{\dinbn} +% \end{macrocode} +% \end{macro}^^A \textdbn +% \end{macro}^^A \dinbn +% Die Kodierung der Mathematikschriften wird abhängig von der Eingabekodierung +% gewählt. +% \begin{macro}{\tud@mathenc} +% \begin{macrocode} +\edef\@tempa{\encodingdefault}\def\@tempb{T1} +\ifx\@tempa\@tempb + \def\tud@mathenc{T1} +\else + \def\tud@mathenc{OT1} +\fi +% \end{macrocode} +% \end{macro}^^A \tud@mathenc +% \begin{macro}{\mv@univers} +% \begin{macro}{\mv@universbold} +% Für die Mathematikschriften im FLießtext werden für die lateineischen Lettern +% die Univers"=Schriften des \CDs verwendet. Darin enthalten sind die auch die +% griechischen Buchstaben aus dem Paket \pkg{cmbright}. Zusätzlich werden aus +% dem \pkg{eulervm}"~Paket die mathematische Symbole verwendet. Es werden zwei +% Mathematikversion mit normalen sowie mit fetten Glyphen bereitgestellt. +% \begin{macrocode} +\DeclareMathVersion{univers} +\DeclareMathVersion{universbold} +\SetSymbolFont{operators}{univers}{\tud@mathenc}{\tud@univers}{l}{n} +\SetSymbolFont{letters}{univers}{OML}{\tud@univers}{l}{sl} +\SetSymbolFont{symbols}{univers}{OMS}{\tud@univers}{l}{n} +\SetSymbolFont{largesymbols}{univers}{U}{zeuex}{m}{n} +\SetSymbolFont{operators}{universbold}{\tud@mathenc}{\tud@univers}{b}{n} +\SetSymbolFont{letters}{universbold}{OML}{\tud@univers}{b}{sl} +\SetSymbolFont{symbols}{universbold}{OMS}{\tud@univers}{b}{n} +\SetMathAlphabet{\mathbf}{univers}{\tud@mathenc}{\tud@univers}{b}{n} +\SetMathAlphabet{\mathsf}{univers}{\tud@mathenc}{\tud@univers}{l}{n} +\SetMathAlphabet{\mathit}{univers}{\tud@mathenc}{\tud@univers}{l}{sl} +\SetMathAlphabet{\mathtt}{univers}{\tud@mathenc}{cmtl}{m}{n} +\SetMathAlphabet{\mathbf}{universbold}{\tud@mathenc}{\tud@univers}{eb}{n} +\SetMathAlphabet{\mathsf}{universbold}{\tud@mathenc}{\tud@univers}{b}{n} +\SetMathAlphabet{\mathit}{universbold}{\tud@mathenc}{\tud@univers}{b}{sl} +% \end{macrocode} +% \end{macro}^^A \mv@universbold +% \end{macro}^^A \mv@univers +% \begin{macro}{\mv@dinbold} +% Auch für die Schrift DIN~Bold werden mathematische Glyphen bereitgestellt. +% Diese wurden aus dem \pkg{iwona}"=Paket entnommen. Auch die verwendeten +% Symbole stammen aus diesem Paket. +% \begin{macrocode} +\DeclareMathVersion{dinbold} +\SetSymbolFont{operators}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{n} +\SetSymbolFont{letters}{dinbold}{OML}{\tud@dinbold}{b}{sl} +\SetSymbolFont{symbols}{dinbold}{OMS}{iwona}{ebc}{n} +\SetSymbolFont{largesymbols}{dinbold}{OMX}{iwona}{ebc}{n} +\SetMathAlphabet{\mathbf}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{n} +\SetMathAlphabet{\mathsf}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{n} +\SetMathAlphabet{\mathit}{dinbold}{\tud@mathenc}{\tud@dinbold}{b}{sl} +% \end{macrocode} +% \end{macro}^^A \mv@dinbold +% \begin{macro}{\tud@greek@upGamma} +% \begin{macro}{\tud@greek@offset} +% Damit innerhalb des Dokumentes problemlos zwischen aufrechten und kursiven +% griechischen Buchstaben für den Mathematiksatz gewechselt werden kann, wurden +% die folgenden beiden Befehle definiert, welche vom Prinzip aus dem Paket +% \pkg{sansmath} abgekupfert sind. Es wird der Offset der Kodierung zwischen den +% kursiven und den aufrechten Glyphen in \cs{tud@greek@offset} gespeichert. +% \begin{macrocode} +\newcount\tud@greek@upGamma +\tud@greek@upGamma\Gamma +\newcount\tud@greek@offset +\let\@tempa\relax +\DeclareMathSymbol{\@tempa}{\mathalpha}{letters}{0} +\tud@greek@offset\@tempa +\advance\tud@greek@offset-\Gamma +% \end{macrocode} +% \end{macro}^^A \tud@greek@offset +% \end{macro}^^A \tud@greek@upGamma +% \begin{macro}{\tud@greek@def} +% \begin{macro}{\tud@greek@uc} +% \begin{macro}{\tud@greek@changeshape} +% Mit \cs{tud@greek@def} erfolgt die Umkodierung einer einzelnen griechischen +% Glyphe. Das Makro \cs{tud@greek@changeshape} arbeitet die Liste +% \cs{tud@greek@uc} ab. +% \begin{macrocode} +\newcommand*\tud@greek@def[2]{% + \expandafter\@tempcnta\csname #1\endcsname% + \advance\@tempcnta#2% + \expandafter\mathchardef\csname #1\endcsname\@tempcnta% +} +% \end{macrocode} +% Die Liste enthält die Namen der Befehle für große griechische Buchstaben. +% Diese wird von \cs{tud@greek@changeshape} genutzt wird. +% \begin{macrocode} +\newcommand*\tud@greek@uc{% + Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% +} +\newcommand*\tud@greek@changeshape{% + \@for\@tempa:=\tud@greek@uc\do{% + \@expandtwoargs\tud@greek@def{\@tempa}{\tud@greek@offset}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@greek@changeshape +% \end{macro}^^A \tud@greek@uc +% \end{macro}^^A \tud@greek@def +% \begin{macro}{\tud@greek@slanted} +% \begin{macro}{\tud@greek@upright} +% Mit \cs{tud@greek@slanted} wird die Kodierung der griechischen Majuskeln von +% \texttt{operator} auf \texttt{letter} geändert\dots +% \begin{macrocode} +\newcommand*\tud@greek@slanted{% + \ifnum\Gamma=\tud@greek@upGamma\relax\tud@greek@changeshape\fi% +} +% \end{macrocode} +% \dots und \cs{tud@greek@upright} macht alles wieder rückgängig. Dabei wird bei +% beiden Befehlen vor der Ausführung geprüft, ob dies überhauot notwendig ist. +% \begin{macrocode} +\newcommand*\tud@greek@upright{% + \ifnum\Gamma>\tud@greek@upGamma% + \tud@greek@offset=-\tud@greek@offset% + \tud@greek@changeshape% + \tud@greek@offset=-\tud@greek@offset% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@greek@upright +% \end{macro}^^A \tud@greek@slanted +% \begin{macro}{\upGamma} +% \begin{macro}{\upDelta} +% \begin{macro}{\upTheta} +% \begin{macro}{\upLambda} +% \begin{macro}{\upXi} +% \begin{macro}{\upPi} +% \begin{macro}{\upSigma} +% \begin{macro}{\upUpsilon} +% \begin{macro}{\upPhi} +% \begin{macro}{\upPsi} +% \begin{macro}{\upOmega} +% \begin{macro}{\varGamma} +% \begin{macro}{\varDelta} +% \begin{macro}{\varTheta} +% \begin{macro}{\varLambda} +% \begin{macro}{\varXi} +% \begin{macro}{\varPi} +% \begin{macro}{\varSigma} +% \begin{macro}{\varUpsilon} +% \begin{macro}{\varPhi} +% \begin{macro}{\varPsi} +% \begin{macro}{\varOmega} +% In Anlehnung an verschiedene Pakete für Mathematikschriften werden die Symbole +% für aufrechte und kursive Majuskeln der griechischen Lettern separat definert. +% \begin{macrocode} +\DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1} +\DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10} +\DeclareMathSymbol{\upGamma}{\mathalpha}{operators}{0} +\DeclareMathSymbol{\upDelta}{\mathalpha}{operators}{1} +\DeclareMathSymbol{\upTheta}{\mathalpha}{operators}{2} +\DeclareMathSymbol{\upLambda}{\mathalpha}{operators}{3} +\DeclareMathSymbol{\upXi}{\mathalpha}{operators}{4} +\DeclareMathSymbol{\upPi}{\mathalpha}{operators}{5} +\DeclareMathSymbol{\upSigma}{\mathalpha}{operators}{6} +\DeclareMathSymbol{\upUpsilon}{\mathalpha}{operators}{7} +\DeclareMathSymbol{\upPhi}{\mathalpha}{operators}{8} +\DeclareMathSymbol{\upPsi}{\mathalpha}{operators}{9} +\DeclareMathSymbol{\upOmega}{\mathalpha}{operators}{10} +\DeclareMathSymbol{\varGamma}{\mathalpha}{letters}{0} +\DeclareMathSymbol{\varDelta}{\mathalpha}{letters}{1} +\DeclareMathSymbol{\varTheta}{\mathalpha}{letters}{2} +\DeclareMathSymbol{\varLambda}{\mathalpha}{letters}{3} +\DeclareMathSymbol{\varXi}{\mathalpha}{letters}{4} +\DeclareMathSymbol{\varPi}{\mathalpha}{letters}{5} +\DeclareMathSymbol{\varSigma}{\mathalpha}{letters}{6} +\DeclareMathSymbol{\varUpsilon}{\mathalpha}{letters}{7} +\DeclareMathSymbol{\varPhi}{\mathalpha}{letters}{8} +\DeclareMathSymbol{\varPsi}{\mathalpha}{letters}{9} +\DeclareMathSymbol{\varOmega}{\mathalpha}{letters}{10} +% \end{macrocode} +% \end{macro}^^A \varOmega +% \end{macro}^^A \varPsi +% \end{macro}^^A \varPhi +% \end{macro}^^A \varUpsilon +% \end{macro}^^A \varSigma +% \end{macro}^^A \varPi +% \end{macro}^^A \varXi +% \end{macro}^^A \varLambda +% \end{macro}^^A \varTheta +% \end{macro}^^A \varDelta +% \end{macro}^^A \varGamma +% \end{macro}^^A \upOmega +% \end{macro}^^A \upPsi +% \end{macro}^^A \upPhi +% \end{macro}^^A \upUpsilon +% \end{macro}^^A \upSigma +% \end{macro}^^A \upPi +% \end{macro}^^A \upXi +% \end{macro}^^A \upLambda +% \end{macro}^^A \upTheta +% \end{macro}^^A \upDelta +% \end{macro}^^A \upGamma +% \begin{macro}{\tud@sansmath} +% \begin{macro}{\tud@serifmath} +% Die Befehle werden von der Option \opt{sansmath} verwendet, um zwischen dem +% Standard"~ und neuem Mathematiksatz hin"~ und herschalten zu können. Dabei +% wird zum einen das Mapping der griechischen Glyphen geändert, zum anderen +% werden die originalen Mathematikversionen überschrieben bzw. wiederhergestellt. +% \begin{macrocode} +\newcommand*\tud@sansmath{% + \if@tud@univers% + \tud@cmd@store{mv@normal}% + \tud@cmd@store{mv@bold}% + \let\mv@normal\mv@univers% + \let\mv@bold\mv@universbold% + \mathversion{normal}% + \fi% +} +\newcommand*\tud@serifmath{% + \if@tud@univers% + \tud@cmd@restore{mv@normal}% + \tud@cmd@restore{mv@bold}% + \mathversion{normal}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@serifmath +% \end{macro}^^A \tud@sansmath +% +% \iffalse +% +%<*titlepage|class&option> +% \fi +% +% \begin{option}{cdfont} +% \begin{macro}{\tud@cdfont} +% Mit dieser Option wird die zentrale Benutzerschnittstelle für alle möglichen +% Schrifteinstellungen innerhalb Dokumentes geschaffen. Durch diese Option +% können sowohl die verwendete Schrift für den Fließtext, als auch die Stärke +% der Schrift geändert werden. Zusätzlich lässt sich die Verwendung von DIN~Bold +% für die Überschriften deaktivieren. Außerdem kann eingestellt werden, ob für +% den Mathematiksatz serifenlose Schriften zum Einsatz kommen sollen. +% \begin{macrocode} +%<*class> +\newcommand*\tud@cdfont{0} +\TUD@key{cdfont}[true]{% + \TUD@set@numkey{cdfont}{tud@cdfont}{% +% +%<*titlepage> +\newif\if@tud@cdfonts +\newcommand*\tud@cdfont{0} +\DefineFamilyMember[TU-Dresden]{title} +\DefineFamilyKey[TU-Dresden]{title}{cdfont}[true]{% + \FamilySetNumerical{title}{cdfont}{tud@cdfont}{% +% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {light}{1},{lightfont}{1},{noheavyfont}{1},% + {heavy}{2},{heavyfont}{2},% +%<*class> + {nodin}{3},% + {din}{4},% + {serifmath}{5},{serif}{5},{nosansmath}{5},{nosans}{5},% + {sansmath}{6},{sans}{6},% + {upgreek}{7},{uprightgreek}{7},{uprightGreek}{7},% + {slgreek}{8},{slantedgreek}{8},{slantedGreek}{8},% +% + }{#1}% + \ifcase \tud@cdfont\relax% +%<*class> + \TUDoptions{cdfonts=false}% + \or% + \TUDoptions{cdfonts}% + \TUDoptions{heavyfont=false}% + \or% + \TUDoptions{cdfonts}% + \TUDoptions{heavyfont}% + \or + \TUDoptions{din=false}% + \or + \TUDoptions{din}% + \or% + \TUDoptions{sansmath=false}% + \or% + \TUDoptions{sansmath}% + \or% + \TUDoptions{slantedgreek=false}% + \or% + \TUDoptions{slantedgreek}% +% +%<*titlepage> + \@tud@cdfontsfalse% + \else% + \@tud@cdfontstrue% +% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@cdfont +% \end{option}^^A cdfont +% +% \iffalse +% +%<*class&option> +% \fi +% +% \begin{option}{cdfonts} +% \begin{option}{tudfonts} +% \begin{macro}{\if@tud@cdfonts} +% Diese Option dient zum Umschalten auf die Schriften des \CDs für den Fließtext. +% \begin{macrocode} +\newif\if@tud@cdfonts +\TUD@key{cdfonts}[true]{% + \TUD@set@ifkey{cdfonts}{@tud@cdfonts}{#1}% + \if@atdocument% +% \end{macrocode} +% Wird die Option innerhalb nach der Präambel angewendet, erfolgt die Umsetzung +% sofort. Entweder es werden die Schriften des \CDs verwendet, welcher durch +% \cs{tud@font@cdfonts} aktiviert werden oder\dots +% \begin{macrocode} + \if@tud@cdfonts% + \tud@font@cdfonts% +% \end{macrocode} +% \dots es wird bei entsprechender Option auf die zu Dokumentbeginn gesicherten +% Schriften\footnote{mit und ohne Serifen} zurückgeschaltet. +% \begin{macrocode} + \else% + \tud@cmd@restore{rmdefault}% + \tud@cmd@restore{sfdefault}% + \tud@cmd@restore{ttdefault}% + \tud@cmd@restore{bfdefault}% + \tud@cmd@restore{mddefault}% + \tud@cmd@restore{itdefault}% + \tud@cmd@restore{familydefault}% + \tud@cmd@restore{seriesdefault}% + \tud@cmd@restore{shapedefault}% + \tud@cmd@restore{mdseries@rm}% + \tud@cmd@restore{bfseries@rm}% + \tud@cmd@restore{mdseries@sf}% + \tud@cmd@restore{bfseries@sf}% + \tud@cmd@restore{mdseries@tt}% + \tud@cmd@restore{bfseries@tt}% + \edef\rmdef@ult{\rmdefault} + \edef\sfdef@ult{\sfdefault} + \edef\ttdef@ult{\ttdefault} + \edef\bfdef@ult{\bfdefault} + \edef\mddef@ult{\mddefault} + \normalfont\selectfont% + \fi% +% \end{macrocode} +% Da der Befehl \cs{tud@layout@process} auf jeden Fall mit \cs{AfterEndPreamble} +% verzögert ausgeführt wird, muss dies bei der Wahl der Option nur nach der +% Präambel, also im Dokument selbst neuerlich erfolgen. +% \begin{macrocode} + \tud@layout@process% +% \end{macrocode} +% Die Einstellungen der Mathematikschriften sind~-- momentan~-- nur innerhalb +% der Präambel verfügbar. Es kann eingestellt werden, ob Serifenlose aus der +% zu Dokumentbeginn verwendeten Schrift für den Mathematiksatz genutzt werden +% sollen. Das Standardverhalten ist anhängig davon, welche Schriften für den +% Fließtext Verwendung finden. +% \begin{macrocode} + \else% +% \end{macrocode} +% Die Mathematikschriften werden bei der Verwendung der Schriften des \CDs +% ~-- falls nicht anders durch den Anwender definiert~-- auf Serifenlose +% gesetzt. Außerdem wird das \pkg{cmbright}-Paket für den Satz der griechischen +% Buchstaben genutzt. +% \begin{macrocode} + \if@tud@cdfonts% + \TUD@std@ifkey@lock{sansmath}{true}% + \TUD@std@ifkey@lock{slantedgreek}{true}% + \else% + \TUD@std@ifkey@lock{sansmath}{false}% + \TUD@std@ifkey@lock{slantedgreek}{false}% + \fi% + \fi% +} +% \end{macrocode} +% Diese Option wird nur aus Gründen der Kombatibilität zu v1.0 definiert. +% \begin{macrocode} +\TUD@key{tudfonts}[true]{% + \TUD@set@ifkey{tudfonts}{@tempswa}{#1}% + \if@tempswa% + \TUDoptions{cdfonts=true}% + \else% + \TUDoptions{cdfonts=false}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@cdfonts +% \end{option}^^A tudfonts +% \end{option}^^A cdfonts +% +% \iffalse +% +%<*class&!option> +% \fi +% +% \begin{macro}{\tud@font@cdfonts} +% Mit diesem Befehl werden die Schriften des \CDs aktiviert. +% \begin{macrocode} +\newcommand*\tud@font@cdfonts{% +% \end{macrocode} +% Dabei werden die Schnitte der Schriften +% \begin{macrocode} + \tud@cmd@store{rmdefault}% + \tud@cmd@store{sfdefault}% + \tud@cmd@store{ttdefault}% + \tud@cmd@store{bfdefault}% + \tud@cmd@store{mddefault}% + \tud@cmd@store{itdefault}% + \tud@cmd@store{familydefault}% + \tud@cmd@store{seriesdefault}% + \tud@cmd@store{shapedefault}% + \tud@cmd@store{mdseries@rm}% + \tud@cmd@store{bfseries@rm}% + \tud@cmd@store{mdseries@sf}% + \tud@cmd@store{bfseries@sf}% + \tud@cmd@store{mdseries@tt}% + \tud@cmd@store{bfseries@tt}% + \if@tud@univers% + \if@tud@heavyfont% + \def\bfseries@rm{b}% + \def\bfseries@sf{b}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \renewcommand*\bfdefault{b}% + \renewcommand*\mddefault{m}% + \else% + \def\bfseries@rm{m}% + \def\bfseries@sf{m}% + \def\mdseries@rm{l}% + \def\mdseries@sf{l}% + \renewcommand*\bfdefault{m}% + \renewcommand*\mddefault{l}% + \fi% + \renewcommand*\sfdefault{\tud@univers}% + \else% + \def\bfseries@rm{bx}% + \def\bfseries@sf{bx}% + \def\mdseries@rm{m}% + \def\mdseries@sf{m}% + \renewcommand*\bfdefault{bx}% + \renewcommand*\mddefault{m}% + \fi% + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% +% \end{macrocode} +% Als \texttt{typewriter}"=Schriften kommen selbige aus dem \pkg{cmbright}-Paket +% zum Einsatz. +% \begin{macrocode} + \renewcommand{\ttdefault}{cmtl}% +% \end{macrocode} +% Es folgen Einstellungen für das \pkg{mweights}-Paket. +% \begin{macrocode} + \def\bfseries@tt{m}% + \def\mdseries@tt{m}% + \edef\rmdef@ult{\rmdefault}% + \edef\sfdef@ult{\sfdefault}% + \edef\ttdef@ult{\ttdefault}% + \edef\bfdef@ult{\bfdefault}% + \edef\mddef@ult{\mddefault}% + \normalfont\selectfont% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@cdfonts +% \begin{macro}{\tud@font@mathfonts} +% Mit diesem Befehl werden die Einstellungen für den Mathematiksatz übernommen. +% \begin{macrocode} +\newcommand*\tud@font@mathfonts{% + \if@tud@sansmath\tud@sansmath\else\tud@serifmath\fi% + \if@tud@slantedgreek\tud@greek@slanted\else\tud@greek@upright\fi% + \mathversion{normal}% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@mathfonts +% +% \iffalse +% +%<*class&option> +% \fi +% +% \begin{option}{heavyfont} +% \begin{macro}{\if@tud@heavyfont} +% Hiermit lässt sich die Schriftstärke im Dokument beeinflussen. +% \begin{macrocode} +\newif\if@tud@heavyfont +\TUD@key{heavyfont}[true]{% + \if@tud@cdfonts% + \TUD@set@ifkey{heavyfont}{@tud@heavyfont}{#1}% + \if@atdocument\tud@font@cdfonts\fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@heavyfont +% \end{option}^^A heavyfont +% \begin{option}{din} +% \begin{macro}{\if@tud@din} +% Diese Option dient zur Auswahl, ob die Schrift DIN~Bold für die Überschriften +% verwendet werden soll. +% \begin{macrocode} +\newif\if@tud@din\@tud@dintrue +\TUD@ifkey{din}{@tud@din} +% \end{macrocode} +% \end{macro}^^A \if@tud@din +% \end{option}^^A din +% +% \subsection{Schriften für den Mathematiksatz} +% +% Da die Schriften des \CDs keinen Mathematiksatz beeinhalten, musste~-- +% insbesondere für griechische Symbole~-- eine passende Alternative gefunden +% werden. Die Auswahl an Mathematikschriften für \LaTeX{} ist relativ gering. +% Dennoch schien das \pkg{cmbright}-Paket dafür geeignet, weshalb dieses direkt +% bei der Installation der Schriften eingebunden wurde. +% \begin{option}{sansmath} +% \begin{macro}{\if@tud@sansmath} +% \begin{macro}{\if@tud@sansmath@locked} +% Mit dieser Option kann die genutzte Standardschrift für den Mathematiksatz +% für das gesamte Dokument umgestellt werden. +% \begin{macrocode} +\newif\if@tud@sansmath +\TUD@key@lock{sansmath}[true]{% + \TUD@set@ifkey@lock{sansmath}{@tud@sansmath}{#1}% + \if@atdocument\tud@font@mathfonts\fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@sansmath@locked +% \end{macro}^^A \if@tud@sansmath +% \end{option}^^A sansmath +% \begin{option}{slantedgreek} +% \begin{macro}{\if@tud@slantedgreek} +% \begin{macro}{\if@tud@slantedgreek@locked} +% Mit dieser Option kann die Neigung der griechischen Majuskeln geändert werden. +% \begin{macrocode} +\newif\if@tud@slantedgreek +\TUD@key@lock{slantedgreek}[true]{% + \TUD@set@ifkey@lock{slantedgreek}{@tud@slantedgreek}{#1}% + \if@atdocument\tud@font@mathfonts\fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@slantedgreek@locked +% \end{macro}^^A \if@tud@slantedgreek +% \end{option}^^A slantedgreek +% +% \iffalse +% +%<*titlepage|class&!option> +% \fi +% +% \begin{macro}{\tud@head@font@set} +% \begin{macro}{\tud@head@font@bold} +% \begin{macro}{\tud@head@font@light} +% Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber in +% den serifenlosen Standardschriften gesetzt, wobei für beide Varianten sowohl +% eine fettgedruckte als auch eine normale Version benötigt wird. Die Schrifthöhe +% ist durch das \CD unabhängig von der gewählten Schriftgröße im Dokument +% vorgegeben und wird in Abhängigkeit von der Papiergröße gewählt und in +% \cs{tud@head@font@size} gespeichert. +% \begin{macrocode} +\newcommand*\tud@head@font@set{% + \DeclareFixedFont{\tud@head@font@bold}% + {\encodingdefault}{\sfdefault}{bx}{n}{\tud@head@font@size}% + \DeclareFixedFont{\tud@head@font@light}% +%<*class> + {\encodingdefault}{\sfdefault}{\mdseries@sf}{n}{\tud@head@font@size}% + \if@tud@cdfonts\if@tud@univers% +% +%<*titlepage> + {\encodingdefault}{\sfdefault}{\mddefault}{n}{\tud@head@font@size}% + \if@tud@cdfonts% +% + \DeclareFixedFont{\tud@head@font@bold}% + {\encodingdefault}{\tud@univers}{b}{n}{\tud@head@font@size}% + \DeclareFixedFont{\tud@head@font@light}% +%<*class> + {\encodingdefault}{\tud@univers}{\mdseries@sf}{n}{\tud@head@font@size}% + \fi\fi% +% +%<*titlepage> + {\encodingdefault}{\tud@univers}{\mddefault}{n}{\tud@head@font@size}% + \fi% +% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@font@light +% \end{macro}^^A \tud@head@font@bold +% \end{macro}^^A \tud@head@font@set +% +% \iffalse +%<*class> +% \fi +% +% Damit die Schrift im Dokument später noch umgestellt werden kann, werden +% sämtliche Einstellungen erst zu Beginn des Dokumentes gesichert. Deshalb wird +% der dafür verantwortliche Befehl \cs{tud@font@cdfonts} hier zum ersten Mal +% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie +% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu +% aktivieren. Auch die Einstellungen für den Mathematiksatz werden erstmalig +% durch \cs{tud@font@mathfonts} gesetzt. +% \begin{macrocode} +\AtBeginDocument{\if@tud@cdfonts\tud@font@cdfonts\fi\tud@font@mathfonts} +% \end{macrocode} +% Das Paket \pkg{cmbright} bringt zusätzlich noch Schriftschnitte für die +% \pkg{ams}"=Pakete mit. Diese werden gegebenenfalls geladen. +% \begin{macrocode} +\AfterPackage{amsfonts}{% + \DeclareFontFamily{U}{msa}{}% + \DeclareFontShape{U}{msa}{m}{n}{% + <-9>cmbras8% + <9-10>cmbras9% + <10->cmbras10% + }{}% + \DeclareFontFamily{U}{msb}{}% + \DeclareFontShape{U}{msb}{m}{n}{% + <-9>cmbrbs8% + <9-10>cmbrbs9% + <10->cmbrbs10% + }{}% +} +% \end{macrocode} +% +% \subsection{fontspec} +% \todo{% +% Ist die Verwendung von \pkg{fontspec} für LuaTeX bzw. XeTeX sinnvoll und +% zügig umsetzbar? Wie geht man mit den Mathematikschriften um?% +% } +% +% Die Möglichkeit, Open Type Schriften aus dem System sehr einfach mit dem Paket +% \pkg{fontspec} für \hologo{LuaLaTeX} bzw. \hologo{XeLaTeX} einzubinden, wird +% momentan noch nicht genutzt. Eine Schriftinstallation via Skript wäre damit +% obsolet. Allerdings sind die PostScript"=Schriften für die Kompilierung via +% \texttt{latex $\rightarrow$ dvips $\rightarrow$ ps2pdf}~-- wie es z.\,B. für +% die Erstellung von Grafiken mit \pkg{pstricks} notwendig ist~-- auch weiterhin +% nötig. +% +% Ebenfalls ungeklärt ist momentan, wie mit den Mathematikschriften umgegangen +% werden müsste. Ebenfalls ist nicht sicher, wie die Problematik mit falschem +% Kerning der Schriften ideal gelöst werden könnte. Da mittlerweile auch die +% skriptbasierte Installation der PostScript"=Schriften gut funktioniert, ist +% eine Implementierung momentan nicht vorgesehen. +% ^^A% \if@tud@heavyfont% +% ^^A% \setmainfont[% +% ^^A% BoldFont = Univers Bold,% +% ^^A% ItalicFont = Univers Light Oblique,% +% ^^A% BoldItalicFont = Univers Bold Oblique,% +% ^^A% ]{Univers Light}% +% ^^A% \else% +% ^^A% \setmainfont[% +% ^^A% BoldFont = Univers Black,% +% ^^A% ItalicFont = Univers Oblique,% +% ^^A% BoldItalicFont = Univers Black Oblique,% +% ^^A% ]{Univers}% +% ^^A% \fi% +% ^^A% \iflua +% ^^A% \newfontface\univln{Univers Light} +% ^^A% \newfontface\univrn{Univers} +% ^^A% \newfontface\univbn{Univers Bold} +% ^^A% \newfontface\univxn{Univers Black} +% ^^A% \newfontface\univls{Univers Light Oblique} +% ^^A% \newfontface\univrs{Univers Oblique} +% ^^A% \newfontface\univbs{Univers Bold Oblique} +% ^^A% \newfontface\univxs{Univers Black Oblique} +% ^^A% \newfontface\@dinbn{DIN Bold} +% ^^A% \newcommand*\dinbn{\@dinbn\tud@raggedright} +% ^^A% \else +% ^^A% \newcommand*\univln{\usefont{\encodingdefault}{\tud@font}{l}{n}} +% ^^A% \newcommand*\univrn{\usefont{\encodingdefault}{\tud@font}{m}{n}} +% ^^A% \newcommand*\univbn{\usefont{\encodingdefault}{\tud@font}{b}{n}} +% ^^A% \newcommand*\univxn{\usefont{\encodingdefault}{\tud@font}{eb}{n}} +% ^^A% \newcommand*\univls{\usefont{\encodingdefault}{\tud@font}{l}{sl}} +% ^^A% \newcommand*\univrs{\usefont{\encodingdefault}{\tud@font}{m}{sl}} +% ^^A% \newcommand*\univbs{\usefont{\encodingdefault}{\tud@font}{b}{sl}} +% ^^A% \newcommand*\univxs{\usefont{\encodingdefault}{\tud@font}{eb}{sl}} +% ^^A% \fi +% ^^A% \DeclareTextFontCommand{\textuln}{\univln} +% ^^A% \DeclareTextFontCommand{\texturn}{\univrn} +% ^^A% \DeclareTextFontCommand{\textubn}{\univbn} +% ^^A% \DeclareTextFontCommand{\textuxn}{\univxn} +% ^^A% \DeclareTextFontCommand{\textuls}{\univls} +% ^^A% \DeclareTextFontCommand{\texturs}{\univrs} +% ^^A% \DeclareTextFontCommand{\textubs}{\univbs} +% ^^A% \DeclareTextFontCommand{\textuxs}{\univxs} +% ^^A% \DeclareTextFontCommand{\textdbn}{\dinbn} +% ^^A% \usepackage{unicode-math} +% ^^A% \setmathfont{Latin Modern Math} +% +% \iffalse +% +% \fi +% +% \subsection{Kompatibilitätseinstellungen} +% +% \begin{macro}{\tud@raggedright} +% \begin{macro}{\tud@RaggedRight} +% Die Überschriften in DIN"~Bold sollen laut \CD linksbündig und nie mit +% Silbentrennung gesetzt werden. Normalerweise ist das dies beim linksbündigen +% Satz bei \LaTeX{} der Fall. Allerdings ist es mit dem Paket \pkg{ragged2e} +% möglich, das Verhalten für den Flattersatz zu ändern und die Silbentrennung +% zu aktivieren. Mit der Option \opt{newcommands} werden dabei die originalen +% Befehle überschrieben, vorher jedoch in \cs{LaTeX\dots} gesichert. Dieses +% Makro dient dazu, die Überschriften in jedem Fall~-- auch bei der Verwendung +% von \pkg{ragged2e} mit der Option \opt{newcommands}~-- ohne Trennungen zu +% setzen. +% \begin{macrocode} +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage{ragged2e}{% + \ifdef{\LaTeXraggedright}% + {\renewcommand*\tud@raggedright{\LaTeXraggedright}}{}% + \renewcommand*\tud@RaggedRight{\RaggedRight} +} +% \end{macrocode} +% \end{macro}^^A \tud@ragged2e +% \end{macro}^^A \tud@raggedright +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx new file mode 100644 index 00000000000..123bc84176f --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-frontmatter.dtx @@ -0,0 +1,861 @@ +% \CheckSum{459} +% \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-frontmatter.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-frontmatter.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (frontmatter)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-frontmatter.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Befehle und Umgebungen für den Vorspann} +% +% Im Vorspann des Dokumentes kann der Benutzer eine Zusammenfassung angegeben. +% Außerdem kann eine Selbstständigkeitserklärung sowie ein Sperrvermerk +% hinzugefügt werden. Damit für diese das Layout möglichst individuell gewählt +% werden kann, werden hier entsprechende Optionen und die dafür notwendige +% Ausgabe definiert. Im weiteren Verlauf der Dokumentation wird der Begriff +% \glqq Erklärung\grqq für die unterschiedlichen Elemente verwendet. Die +% verwendeten Schalter und Befehle zum Setzen der Optionen heißen entweder +% \cs{tud@abstract@\dots} oder aber \cs{tud@declaration@\dots} je nach Element. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&!option> +% \fi +% +% \begin{macro}{\tud@fm@set} +% Dies ist das zentrale Makro zur Ausgabe der einzelnen Erklärungen, welches +% alle relevanten Optionen\footnote{\opt{titlepage}, \opt{twocolumn}, +% \opt{abstract/declaration=double}, \opt{abstract/declaration=fill} sowie die +% Gliederungsebene der Überschrift} unterscheidet und die Erklärungen diesen +% entsprechend setzt. Verwendet wird der Befehl wie folgt: +% \cs{tud@fm@set}\marg{Erklärungstyp}\marg{Überschrift}\marg{Inhalt} +% \begin{macrocode} +\newcommand*\tud@fm@set[3]{% +% \end{macrocode} +% Ist die Gliederungsebene der Erklärung kein Kapitel\dots +% \begin{macrocode} +%<*book|report> + \ifnumless{\@nameuse{tud@#1@level}}{3}{% +% +% \end{macrocode} +% \dots und die Option \opt{titlepage} ist aktiviert\dots +% \begin{macrocode} + \if@titlepage% +% \end{macrocode} +% \dots dann wird im Zweispaltensatz der Schalter \cs{@tud@\meta{Typ}@double} +% ausgewertet und für den Fall von \opt{abstract/declaration=double} kein +% Spaltenumbruch erzeugt. Ansonsten werden nachfolgende Erklärungen in eine +% neue Spalte gesetzt. +% \begin{macrocode} + \if@twocolumn% + \tud@fm@body{#1}{#2}{#3}% + \ifbool{@tud@#1@double}{}{\newpage}% +% \end{macrocode} +% Sollte im normalen Satz \opt{abstract/declaration=double} aktiviert sein, so +% wird versucht, nachfolgende Erklärung auf der gleichen Seite wie die erste +% unterzubringen. Dazu wird die zunächst benötigte Höhe für die Ausgabe des +% Inhaltes mithilfe einer Box berechnet und mit dem noch verfügbaren Platz auf +% der Seite~-- gespeichert in \cs{tud@dim@double}~-- verglichen. +% \begin{macrocode} + \else% + \ifbool{@tud@#1@double}{% + \par% + \ifdim\pagetotal=\z@\relax% + \booltrue{@tud@#1@first}% + \fi% + \ifbool{@tud@#1@first}{% + \global\setlength{\tud@dim@double}{\textheight}% + \clearpage% + }{}% + \setbox0\vtop{\strut\tud@fm@body{#1}{#2}{#3}}% + \global\setlength{\tud@dim@double}% + {\dimexpr\tud@dim@double-\ht0-\dp0}\relax% +% \end{macrocode} +% Ist genügend Platz vorhanden, erfolgt die Ausgabe auf der aktuellen Seite. +% \begin{macrocode} + \ifdim\tud@dim@double>\z@\relax% + \tud@fm@vcenter{#1}{#2}{#3}% + \global\boolfalse{@tud@#1@first}% +% \end{macrocode} +% Sollte nicht genügend Platz vorhanden sein, erfolgt eine Warnung und die +% Zusammenfassung wird auf einer neuen Seite ausgegeben. +% \begin{macrocode} + \else% + \tud@fm@double@wrn{#1}% + \clearpage% + \global\booltrue{@tud@#1@first}% + \tud@fm@vcenter{#1}{#2}{#3}% + \fi% +% \end{macrocode} +% Im normalen Satz wird bei deaktivierter \opt{\meta{Typ}=double}-Option der +% Inhalt der Erklärung zentriert mit +% \cs{tud@fm@vcenter}\marg{Erklärungstyp}\marg{Überschrift}\marg{Inhalt} +% auf der Seite ausgegeben. +% \begin{macrocode} + }{% + \clearpage% + \tud@fm@vcenter{#1}{#2}{#3}% + \clearpage% + }% + \fi% +% \end{macrocode} +% Bei deaktivierter \opt{titlepage}-Option werden die Inhalte jeder erzeugten +% Erklärung direkt nacheinander ausgegeben. Ein gezieltes Erstellen von genau +% zwei Erklärungen auf einer Seite ist nicht vorgesehen und erzeugt bei aktiver +% \opt{abstract/declaration=double}-Option eine Warnung. Beim Satz über zwei +% Spalten erfolgt die Ausgabe ohne sonderliche Auszeichnung. Im normalen Satz +% wird die Erklärung wie ein Zitat ausgegeben, sollte dessen Überschrift nicht +% in Form eines Abschnitts gesetzt werden.\footnote{es wird der Inhalt der +% Erklärung mittels \cs{tud@quoting} und \cs{tud@endquoting} entweder in der +% normalen \env{quotation}-Umgebung oder aber~-- wenn entsprechend das Paket +% \pkg{quoting} geladen wurde~-- in der \env{quoting}-Umgebung gesetzt} +% \begin{macrocode} + \else% + \ifbool{@tud@#1@double}{\tud@fm@option@wrn{#1}}{}% + \if@twocolumn% + \tud@fm@body{#1}{#2}{#3}% + \else% + \ifnum\@nameuse{tud@#1@level}<2\tud@quoting\fi% + \tud@fm@body{#1}{#2}{#3}% + \ifnum\@nameuse{tud@#1@level}<2\tud@endquoting\fi% + \fi% + \fi% +% \end{macrocode} +% Sollte die Gliederungsebene der Erklärung einem Kapitel entsprechen, wird +% hier jede Erklärung immer auf eine neue Seite gesetzt. Es wird sowohl bei +% deaktivierter \opt{titlepage}-Option\footnote{Warum sollte man einen +% Titelkopf nutzen, wenn die meist direkt nachfolgende Erklärung selbst als +% Kapitel auf eine neue Seite gesetzt wird?} als auch bei aktivierter +% \opt{abstract/declaration=double}-Option eine passende Warnung ausgegeben. +% \begin{macrocode} +%<*book|report> + }{% + \if@titlepage\else\tud@fm@level@wrn{#1}\fi% + \ifbool{@tud@#1@double}{\tud@fm@option@wrn{#1}}{}% + \clearpage% + \tud@fm@body{#1}{#2}{#3}% + \clearpage% + }% +% +} +% \end{macrocode} +% \end{macro}^^A \tud@fm@set +% \todo[v3.12]{% +% addchaptertocentry und addsectiontocentry durch addxcontentsline ersetzen +% } +% \begin{macro}{\tud@fm@head} +% Dieses Makro dient zur Festlegung der Gliederungsebene der Überschrift der +% Erklärung. Die gewählte Gliederungsebene ist in \cs{tud@\meta{Typ}@level} +% gespeichert. Verwendet wird das Makro folgendermaßen: +% \cs{tud@fm@set}\marg{Erklärungstyp}\marg{Überschrift}\marg{Inhalt}. +% Damit die ggf. aktive Option \opt{abstract/declaration=toc} funktionieren +% kann, wird für die Level, in denen keine Standardüberschrift verwendet wird, +% mit dem Befehl \cs{phantomsection} aus dem Paket \pkg{hyperref} ein Anker für +% einen möglichen Hyperlink erzeugt.\footnote{ist das Paket nicht geladen, ist +% \cs{phantomsection} als \cs{relax} definiert} Ist \cs{if@tud@\meta{Typ}@toc} +% wahr, so entspricht der erzeugte Eintrag ins Inhaltsverzeichnis für +% \cls{tudscrartcl} immer dem eines Abschnitts, der für \cls{tudscrbook} und +% \cls{tudscrreprt} immer dem eines Kapitels, unabhängig von der tatsächlich +% gewählten Gliederungsebene.\footnote{sonst sieht das Inhaltsverzeichnis recht +% bescheiden aus} +% \begin{macrocode} +\newcommand*\tud@fm@head[2]{% + \ifcase\@nameuse{tud@#1@level}\relax% + \def\@tempa{\phantomsection}% + \or% + \def\@tempa{% + \phantomsection% + \@afterindentfalse% + \begin{center}% + \normalfont\sectfont\nobreak#2% + \@endparpenalty\@M% + \end{center}% + \nopagebreak% + \vskip\dimexpr\bigskipamount-\parskip% + \@afterheading% + }% + \or% + \def\@tempa{\addsec*{#2}}% +%<*book|report> + \or% + \def\@tempa{\addchap*{#2}}% +% + \fi% + \ifbool{@tud@#1@toc}{% +%<*book|report> + \apptocmd{\@tempa}{\addchaptertocentry{}{#2}}{}{}% +% +%<*article> + \apptocmd{\@tempa}{\addsectiontocentry{}{#2}}{}{}% +% + }{}% + \@tempa% +} +% \end{macrocode} +% \end{macro}^^A \tud@fm@head +% \begin{macro}{\tud@fm@vcenter} +% Mit diesem Befehl wird die Erklärung vertikal zentriert auf einer Seite +% ausgegeben, wenn genügend Platz vorhanden ist. +% \begin{macrocode} +\newcommand*\tud@fm@vcenter[3]{% + \ifdim\@tempdima>\dimexpr\textheight\relax% + \tud@fm@body{#1}{#2}{#3}% +% \end{macrocode} +% Sollte als Überschrift die Gliederungsebene eines Abschnittes gewählt sein, +% so wird standardmäßig durch den \cs{section}-Befehl ein zusätzlicher Abstand +% eingefügt. Damit dieser beim vertikalen Zentrieren keinen Einfluss hat, wird +% dieser bei aktivem Schalter \cs{if@tud@\meta{Typ}@fil} entfernt. +% \begin{macrocode} + \else% + \ifbool{@tud@#1@fil}{% + \ifcase\@nameuse{tud@#1@level}\relax\or\or% + \vspace*{-\parskip}% + {\usekomafont{section}\vspace*{-2\baselineskip}}% + \fi% +% \end{macrocode} +% Dabei wird zur optischen Zentrierung der Platz zum oberen Seitenrand etwas +% kleiner als der zum unteren gewählt. +% \begin{macrocode} + \ifbool{@tud@#1@first}{\vspace*{\z@ \@plus 2fil}}{}% + }{}% +% \end{macrocode} +% Die Ausgabe des formatierten Erklärung und der zweite Teil der optischen +% Zentrierung. +% \begin{macrocode} + \tud@fm@body{#1}{#2}{#3}% + \ifbool{@tud@#1@fil}{\vspace*{\z@ \@plus 3fil}}{}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@fm@vcenter +% \begin{macro}{\tud@fm@body} +% Dieser Befehl formatiert den im dritten Argument gespeicherten Inhalt der +% Erklärung. Sollte das Paket \pkg{multicol} Verwendung finden, wird hier die +% entsprechende Umgebung gestartet. Für das Setzen der Überschrift wird +% \cs{tud@fm@head} verwendet, welches abhängig von den gewählten Optionen die +% Gliederungsebene der Überschrift setzt. +% \todo[v3.12]{% +% Seitenstile für tudpage, abstract und declaration als Option; dann ist auch +% auch die Verwendung von \cs{@mkboth} möglich +% } +% \begin{macrocode} +\newcommand*\tud@fm@body[3]{% +% ^^A \@mkboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% + \if@titlepage\@mkboth{}{}\fi% + \if@twocolumn% + \ifcase\@nameuse{tud@#1@level}\relax\or% + \ifbool{@tud@#1@first}{% + \global\boolfalse{@tud@#1@first}% + \vspace{\dimexpr\bigskipamount-\parskip}% + }{}% + \fi% + \tud@fm@head{#1}{#2}% + #3\par% + \ifcase\@nameuse{tud@#1@level}\relax\or% + \vspace{\dimexpr\bigskipamount-\parskip}% + \fi% + \else% + \ifnum\tud@multicols>1\relax% + \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#2}}]% + \else% + \tud@fm@head{#1}{#2}% + \fi% + #3\par% + \ifnum\tud@multicols>1\relax% + \end{multicols}\leavevmode% + \else% + \ifcase\@nameuse{tud@#1@level}\relax\or% + \bigskip\vskip-\parskip\null% + \fi% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@fm@body +% \begin{macro}{\tud@quoting} +% \begin{macro}{\tud@endquoting} +% Mit diesen Befehlen kann das empfehlenswerte Paket \pkg{quoting} unterstützt +% werden. Sollte dieses geladen werden, wird für das Setzen der Zusammenfassung +% bei einem Titelkopf die \env{quoting}-Umgebung genutzt. +% \begin{macrocode} +\let\tud@quoting\quotation +\let\tud@endquoting\endquotation +\AfterPackage{quoting}{% + \let\tud@quoting\quoting% + \let\tud@endquoting\endquoting% +} +% \end{macrocode} +% \end{macro}^^A \tud@endquoting +% \end{macro}^^A \tud@quoting +% +% \iffalse +% +%<*class&option> +% \fi +% +% \subsection{Erweiterung der Umgebung für eine Zusammenfassung} +% +% Die \env{abstract}-Umgebung wird um mehrere Optionen erweitert. So kann +% in den neuen \cls{tudscr}-Klassen die Sprache der Zusammenfassung leicht +% eingestellt und auch zwei Zusammenfassungen auf eine Seite gesetzt werden. +% \begin{macro}{\tud@abstract@level} +% \begin{macro}{\if@tud@abstract@toc} +% \begin{macro}{\if@tud@abstract@toc@locked} +% Der Befehl \cs{tud@abstract@level} beschreibt die Gliederungsebene der +% Überschrift der Zusammenfassung numerisch und wird über die Schlüssel der +% Option \opt{abstract} gesetzt. Über \opt{abstract=toc/notoc} wird festgelegt, +% ob die Zusammenfassung einen eigenen Eintrag ins Inhaltsverzeichnis bekommt. +% Da unterschiedliche Gliederungsebenen der Überschriften möglich sind, wird das +% Standardverhalten in Abhängigkeit dieser gewählt. Initial erscheint für +% \cls{tudscrreprt} und \cls{tudscrartcl}~-- wie in \KOMAScript{} auch~-- keine +% Überschrift und kein Eintrag im Inhaltsverzeichnis. In \cls{tudscrbook} wird +% standardmäßig eine Überschrift in Form eines Kapitels mit Eintrag ins +% Inhaltsverzeichnis gesetzt. +% \begin{macrocode} +%<*report|article> +\newcommand*\tud@abstract@level{0} +\newbool@lock{@tud@abstract@toc} +% +%<*book> +\newcommand*\tud@abstract@level{3} +\newbool@lock[true]{@tud@abstract@toc} +% +% \end{macrocode} +% \end{macro}^^A \if@tud@abstract@toc@locked +% \end{macro}^^A \if@tud@abstract@toc +% \end{macro}^^A \tud@abstract@level +% \begin{macro}{\if@tud@abstract@double} +% Mit diesem Schalter wird ggf. versucht, eine in einer anderen Sprache +% verfasste Zusammenfassung auf die gleiche Seite wie die erste zu setzen. +% Dazu muss die Option \opt{abstract=single/double} genutzt werden. +% \begin{macrocode} +\newif\if@tud@abstract@double +% \end{macrocode} +% \end{macro}^^A \if@tud@abstract@double +% \begin{macro}{\if@tud@abstract@fil} +% Mit diesem Schalter wird bestimmt, ob eine Zusammenfassung auf einer Seite +% vertikal zentriert wird. Er wird mit \opt{abstract=fill/nofill} gesetzt und +% ist normalerweise aktiviert. +% \begin{macrocode} +\newif\if@tud@abstract@fil +\@tud@abstract@filtrue +% \end{macrocode} +% \end{macro}^^A \if@tud@abstract@fil +% \begin{macro}{\if@tud@abstract@first} +% \begin{length}{\tud@dim@double} +% Um prüfen zu können, ob noch genügend Platz für eine weitere Zusammenfassung +% auf einer Seite vorhanden ist, wird die Länge \cs{tud@dim@double} benötigt. +% Außerdem wird der Schalter \cs{if@tud@abstract@first} definiert, mit welchem +% unterschieden werden kann, ob es sich um die erste von mehreren +% Zusammenfassungen auf einer Seite handelt. +% \begin{macrocode} +\newif\if@tud@abstract@first +\@tud@abstract@firsttrue +\newlength{\tud@dim@double} +% \end{macrocode} +% \end{length}^^A \tud@dim@double +% \end{macro}^^A \if@tud@abstract@first +% \todo[v3.12]{abstract im tudpagestyle als key (scrlayer)} +% \begin{option}{abstract} +% Das aus \KOMAScript{} bekannte Verhalten wird für die beiden Klassen +% \cls{tudscrartcl} und \cls{tudscrreprt} adaptiert. Außerdem werden +% zusätzliche Optionen für den Stil der Überschriften in Form von +% Gliederungsebenen wie Kapitel\footnote{bei \cls{tudscrbook} und +% \cls{tudscrreprt}} oder Unterkapitel bereitgestellt, welche~-- im Gegensatz +% zu \KOMAScript{}~-- auch für die Buchklasse \cls{tudscrbook} zur Verfügung +% stehen. +% \begin{macrocode} +%<*report|article> +\TUD@key{abstract}[true]{% +% +%<*book> +\TUD@key{abstract}[chapter]{% +% + \TUD@set@numkey{abstract}{@tempa}{% +%<*report|article> + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% +% + {section}{2},{sect}{2},{sec}{2},% +%<*article> + {new}{2},{std}{2},{heading}{2},% +% +%<*book|report> + {chapter}{3},{chap}{3},% + {new}{3},{std}{3},{heading}{3},% +% +% \end{macrocode} +% Zusätzlich lassen sich die Werte \opt{abstract=double}, \opt{abstract=toc} +% sowie \opt{abstract=fill} setzen. +% \begin{macrocode} + {totoc}{4},{toc}{4},% + {nottotoc}{5},{notoc}{5},% + {one}{6},{simple}{6},{single}{6},% + {two}{7},{both}{7},{double}{7},% + {nofil}{8},{nofill}{8},{novfil}{8},{novfill}{8},% + {fil}{9},{fill}{9},{vfil}{9},{vfill}{9},% + }{#1}% +% \end{macrocode} +% Bei der Einstellungen der Überschriftgliederungsebene wird außerdem das +% Standardverhalten für einen Eintrag ins Inhaltsverzeichnis festgelegt, was +% allerdings vom Anwender jederzeit überschrieben werden kann. +% \begin{macrocode} + \ifcase \@tempa\relax% +%<*report|article> + \def\tud@abstract@level{0}% + \stdbool@lock{@tud@abstract@toc}{false}% +% + \or% +%<*report|article> + \def\tud@abstract@level{1}% + \stdbool@lock{@tud@abstract@toc}{false}% +% + \or% + \def\tud@abstract@level{2}% + \stdbool@lock{@tud@abstract@toc}{true}% + \or% +%<*book|report> + \def\tud@abstract@level{3}% + \stdbool@lock{@tud@abstract@toc}{true}% +% +% \end{macrocode} +% Neben den Einstellungen für die Art der Gliederungsebene der Überschrift für +% die Zusammenfassung können außerdem noch die Optionen gesetzt werden, ob +% versucht werden soll, eine mögliche Zusammenfassung in einer anderen Sprache +% auf die gleiche Seite wie die erste zu setzen (\opt{abstract=double}) und ob +% die Zusammenfassung einen Eintrag ins Inhaltsverzeichnis bekommen soll. +% \begin{macrocode} + \or% + \setbool@lock{@tud@abstract@toc}{true}% + \or% + \setbool@lock{@tud@abstract@toc}{false}% + \or% + \@tud@abstract@doublefalse% + \or% + \@tud@abstract@doubletrue% + \or% + \@tud@abstract@filfalse% + \or% + \@tud@abstract@filtrue% + \fi% +} +% \end{macrocode} +% \end{option}^^A abstract +% +% \iffalse +% +%<*class&!option> +% \fi +% +% \begin{environment}{abstract} +% Die \env{abstract}-Umgebung wird komplett überarbeitet. Um alle gewünschten +% Optionen\footnote{\opt{titlepage}, \opt{twocolumn}, \opt{abstract@double}, +% \opt{abstract@fil} sowie Gliederungsebene der Überschrift} beachten zu +% können, wird auf die Möglichkeiten der Definition mit \cs{NewEnviron} aus dem +% Paket \pkg{environ} zurückgegriffen. Damit ist es möglich, gezielt auf den +% Inhalt der Umgebung selbst mit dem Befehl \cs{BODY} zuzugreifen. Dieser +% Mechanismus wird innerhalb von \cs{tud@abstractbody} verwendet. +% \begin{macrocode} +%<*report|article> +\csundef{abstract} +\csundef{endabstract} +% +\NewEnviron{abstract}[1][]{% +% \end{macrocode} +% Als erstes werden die Optionen verarbeitet. Sollte nach Abarbeitung der +% Optionen für \env{abstract} festgestellt werden, dass eine spezielle +% Spaltenanzahl gewünscht ist, so wird~-- für den Fall, dass das Paket +% \pkg{multicol} geladen ist~-- diese gesetzt. Sonst wird die angegbene Anzahl +% der Spalten ignoriert und eine Warnung ausgegeben. +% \begin{macrocode} + \TUD@parameter@set[abstract]{#1}% + \tud@multicols@check% + \tud@fm@set{abstract}{\abstractname}{\BODY}% +} +% \end{macrocode} +% \end{environment}^^A abstract +% \begin{parameter}{language} +% \begin{parameter}{columns} +% \begin{parameter}{abstract} +% \begin{parameter}{option} +% Als Schlüssel für die \env{abstract}-Umgebung können Sprache, Anzahl der +% Spalten oder auch die zur Umgebung gehörigen Klassenoptionen angegeben werden. +% \begin{macrocode} +\TUD@parameter{abstract}{% + \TUD@parameter@define{language}{\selectlanguage{#1}}% + \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% + \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}% + \TUD@parameter@define{option}{\TUDoption{abstract}{#1}}% +% \end{macrocode} +% Für die Optionsangabe ohne Schlüssel und Wert kann eine Anzahl an Spalten +% oder eine alternative Sprache angegeben werden. Hierfür ist der Befehl +% \cs{tud@environmenthandler} definiert, welcher auch von \env{tudpage}-Umgebung +% verwendet wird +% \begin{macrocode} + \TUD@parameter@sethandler{\tud@environmenthandler{#1}} +} +% \end{macrocode} +% \end{parameter}^^A option +% \end{parameter}^^A abstract +% \end{parameter}^^A columns +% \end{parameter}^^A language +% \todo[v3.12]{% +% Einführen mit currentpagestyle sinnvoll; wie bei \texttt{abstract=chapter}? +% bestenfalls chapterpagestyle als weitere Option; wenn nicht gegeben, dann mit +% option pagestyle überschreiben bzw. erahnen\dots +% } +% \begin{macro}{\abstractpagestyle} +% Damit der Anwender relativ schnell beeinflussen kann, wie der Seitenstil +% für die Zusammenfassung sein soll, wird dieser Befehl eingeführt. Dabei wird +% im Standardfall für allerlei Unterscheidungen gesorgt. +% \begin{macrocode} +% ^^A\newcommand*\abstractpagestyle{% +% ^^A \if@titlepage% +% ^^A empty% +% ^^A \else% +% ^^A%<*book|report> +% ^^A \ifnum\tud@abstract@level>2% +% ^^A \chapterpagestyle% +% ^^A \else% +% ^^A plain% +% ^^A \fi% +% ^^A% +% ^^A%<*article> +% ^^A plain% +% ^^A% +% ^^A \fi% +% ^^A} +% \end{macrocode} +% \end{macro}^^A \abstractpagestyle +% +% \iffalse +% +%<*class&option> +% \fi +% +% \subsection{Befehle für Selbstständigkeitserklärung und Sperrvermerk} +% +% Die Befehle für Selbstständigkeitserklärung und Sperrvermerk werden +% äquivalent zur \env{abstract}-Umgebung mit den gleichen Optionen +% ausgestattet. +% \todo[v3.12]{declaration im tudpagestyle als key (scrlayer)} +% \begin{macro}{\tud@declaration@level} +% \begin{macro}{\if@tud@declaration@toc} +% \begin{macro}{\if@tud@declaration@toc@locked} +% \begin{macro}{\if@tud@declaration@double} +% \begin{macro}{\if@tud@declaration@fil} +% \begin{macro}{\if@tud@declaration@first} +% Siehe die Option \opt{abstract}. +% \begin{macrocode} +%<*report|article> +\newcommand*\tud@declaration@level{1} +\newbool@lock{@tud@declaration@toc} +% +%<*book> +\newcommand*\tud@declaration@level{3} +\newbool@lock[true]{@tud@declaration@toc} +% +\newif\if@tud@declaration@double +\@tud@declaration@doubletrue +\newif\if@tud@declaration@fil +\@tud@declaration@filtrue +\newif\if@tud@declaration@first +\@tud@declaration@firsttrue +% \end{macrocode} +% \end{macro}^^A \if@tud@declaration@first +% \end{macro}^^A \if@tud@declaration@fil +% \end{macro}^^A \if@tud@declaration@double +% \end{macro}^^A \if@tud@declaration@toc@locked +% \end{macro}^^A \if@tud@declaration@toc +% \end{macro}^^A \tud@declaration@level +% \begin{option}{declaration} +% Siehe die Option \opt{abstract}. +% \begin{macrocode} +%<*report|article> +\TUD@key{declaration}[true]{% +% +%<*book> +\TUD@key{declaration}[chapter]{% +% + \TUD@set@numkey{declaration}{@tempa}{% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {section}{2},{sect}{2},{sec}{2},% +%<*article> + {new}{2},{std}{2},{heading}{2},% +% +%<*book|report> + {chapter}{3},{chap}{3},% + {new}{3},{std}{3},{heading}{3},% +% + {totoc}{4},{toc}{4},% + {nottotoc}{5},{notoc}{5},% + {one}{6},{simple}{6},{single}{6},% + {two}{7},{both}{7},{double}{7},% + {nofil}{8},{nofill}{8},{novfil}{8},{novfill}{8},% + {fil}{9},{fill}{9},{vfil}{9},{vfill}{9},% + }{#1}% + \ifcase \@tempa\relax% + \def\tud@declaration@level{0}% + \stdbool@lock{@tud@declaration@toc}{false}% + \or% + \def\tud@declaration@level{1}% + \stdbool@lock{@tud@declaration@toc}{false}% + \or% + \def\tud@declaration@level{2}% + \stdbool@lock{@tud@declaration@toc}{true}% + \or% +%<*book|report> + \def\tud@declaration@level{3}% + \stdbool@lock{@tud@declaration@toc}{true}% +% + \or% + \stdbool@lock{@tud@declaration@toc}{false}% + \or% + \stdbool@lock{@tud@declaration@toc}{false}% + \or% + \@tud@declaration@doublefalse% + \or% + \@tud@declaration@doubletrue% + \or% + \@tud@declaration@filfalse% + \or% + \@tud@declaration@filtrue% + \fi% +} +% \end{macrocode} +% \end{option}^^A declaration +% +% \iffalse +% +%<*class&!option> +% \fi +% +% \begin{macro}{\confirmation} +% Mit diesem Befehl kann die Selbstständigkeitserklärung ausgegeben werden. Das +% optionale Argument bestimmt, wer als Unterstützer angegeben wird. Damit bei +% der Angabe eines leeren optionalen Argumentes dieses Feld geleert wird, muss +% mit \cs{@ifnextchar[} eine Fallunterscheidung gemacht werden, ob ein solches +% angegeben wurde. Außerdem sind Schlüssel-Wert-Paare als Option nutzbar. +% \begin{macrocode} +\newcommand*\confirmation{% +% \end{macrocode} +% Ist ein optionales Argument gegeben, wird ohne Schlüsselangabe dank dem Paket +% \pkg{kvsetkeys} mit dem Befehl \cs{TUD@parameter@sethandler} das Feld für die +% Unterstützer gesetzt bzw. bei leerem Argument geleert. Andernfalls werden +% durch \cs{TUD@parameter@set} die Schlüssel-Wert-Paare ausgewertet. +% \begin{macrocode} + \def\@tempa[##1]{% + \begingroup% + \ifblank{##1}{\supporter{}}{}% + \TUD@parameter{declaration}{% + \TUD@parameter@sethandler{\supporter{##1}} + \TUD@parameter@set{##1} + }% + \@tempb% + \endgroup% + }% +% \end{macrocode} +% Ohne optionales Argument erfolgt die Ausgabe ohne Optionsbehandlung direkt. +% \begin{macrocode} + \def\@tempb{% + \tud@fm@set{declaration}{\confirmationname}% + {\confirmationtext\endgraf\@confirmationclosing}% + }% + \@ifnextchar[%] + {\@tempa}{\begingroup\@tempb\endgroup}% +} +% \end{macrocode} +% \end{macro}^^A \confirmation +% \begin{macro}{\restriction} +% Für den Sperrvermerk wird äquivalent zu \cs{confirmation} verfahren. Das +% optionale Argument ohne Schlüssel setzt hier die Firma für den Sperrvermerk. +% \begin{macrocode} +\newcommand*\restriction{% + \def\@tempa[##1]{% + \begingroup% + \ifblank{##1}{\company{}}{}% + \TUD@parameter{declaration}{% + \TUD@parameter@sethandler{\company{##1}} + \TUD@parameter@set{##1} + }% + \@tempb% + \endgroup% + }% + \def\@tempb{% + \tud@fm@set{declaration}{\restrictionname}{\restrictiontext}% + }% + \@ifnextchar[%] + {\@tempa}{\begingroup\@tempb\endgroup}% +} +% \end{macrocode} +% \end{macro}^^A \restriction +% \begin{macro}{\declaration} +% Dieser Befehl dient zur Ausgabe von sowohl Selbstständigkeitserklärung als +% auch Sperrvermerk. Über das optionale Argument kann ohne Schlüssel die +% gewünschte Sprache eingestellt werden. Zusätzlich können Optionen als +% Schlüssel-Wert-Paare angegeben werden. +% \begin{macrocode} +\newcommand*\declaration[1][]{% + \clearpage% + \begingroup% + \TUD@parameter{declaration}{% + \TUD@parameter@sethandler{\selectlanguage{#1}} + \TUD@parameter@set{#1} + }% + \@tud@declaration@firsttrue% + \confirmation\restriction% + \endgroup% + \clearpage% +} +% \end{macrocode} +% \end{macro}^^A \declaration +% \begin{parameter}{language} +% \begin{parameter}{supporter} +% \begin{parameter}{place} +% \begin{parameter}{closing} +% \begin{parameter}{company} +% \begin{parameter}{declaration} +% \begin{parameter}{option} +% Dies sind die möglichen Schlüssel für die Befehle \cs{declaration}, +% \cs{confirmation} und \cs{restriction}. Die Schlüssel \opt{declaration} bzw. +% \opt{option} dienen zum Setzen der Werte, welche auch als Klassenoptionen +% gesetzt werden können. +% \begin{macrocode} +\TUD@parameter{declaration}{% + \TUD@parameter@define{language}{\selectlanguage{#1}}% + \TUD@parameter@define{company}{\company{#1}}% + \TUD@parameter@define{supporter}{\supporter{#1}}% + \TUD@parameter@define{place}{\place{#1}}% + \TUD@parameter@define{closing}{\confirmationclosing{#1}}% + \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}% + \TUD@parameter@define{option}{\TUDoption{declaration}{#1}}% +} +% \end{macrocode} +% \end{parameter}^^A option +% \end{parameter}^^A declaration +% \end{parameter}^^A company +% \end{parameter}^^A closing +% \end{parameter}^^A place +% \end{parameter}^^A supporter +% \end{parameter}^^A language +% \todo[v3.12]{Einführen mit currentpagestyle sinnvoll; wie bei chapter?} +% \begin{macro}{\declarationpagestyle} +% Damit der Anwender relativ schnell beeinflussen kann, wie der Seitenstil +% für die Erklärungen sein soll, wird dieser Befehl eingeführt. Dabei wird +% im Standardfall für allerlei Unterscheidungen gesorgt. +% \begin{macrocode} +% ^^A\newcommand*\declarationpagestyle{% +% ^^A \if@titlepage% +% ^^A empty% +% ^^A \else% +% ^^A%<*book|report> +% ^^A \ifnum\tud@declaration@level>2% +% ^^A \chapterpagestyle% +% ^^A \else% +% ^^A plain% +% ^^A \fi% +% ^^A% +% ^^A%<*article> +% ^^A plain% +% ^^A% +% ^^A \fi% +% ^^A} +% \end{macrocode} +% \end{macro}^^A \declarationpagestyle +% \begin{macro}{\tud@fm@level@wrn} +% \begin{macro}{\tud@fm@option@wrn} +% \begin{macro}{\tud@fm@double@wrn} +% Die Befehle dienen zur Warnung für nicht sinnvoll gewählte oder aber sich +% gegenseitig ausschließende Optionen. +% \begin{macrocode} +\newcommand*\tud@fm@level@wrn[1]{% + \ClassWarning{\tudcls@name}{% + Headings in chapter style '#1=chapter'\MessageBreak% + are not recommended without the titlepage\MessageBreak% + option% + }% +} +\newcommand*\tud@fm@option@wrn[1]{% + \ClassWarning{\tudcls@name}{% + The option '#1=double' is not supported\MessageBreak% + neither with chapter headings nor without an\MessageBreak% + activated titlepage% + }% +} +\newcommand*\tud@fm@double@wrn[1]{% + \ClassWarning{\tudcls@name}{% + It wasn't possible to use '#1=double'\MessageBreak% + because of too much content within #1% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@fm@double@wrn +% \end{macro}^^A \tud@fm@option@wrn +% \end{macro}^^A \tud@fm@level@wrn +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx new file mode 100644 index 00000000000..8a1ea390fac --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-layout.dtx @@ -0,0 +1,1345 @@ +% \CheckSum{901} +% \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-layout.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-layout.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (layout)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-layout.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Das Layout des \CDs} +% +% Für das \CD werden sowohl Teile- als auch die Kapitelseiten neu gestaltet. +% 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 der Überschriften festgelegt. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&option> +% \fi +% +% \subsection{Optionen} +% +% \begin{macro}{\tud@head@color} +% Dieses Makro definiert die Farbe des Kopfes. Diese kann durch die +% entsprechende Option der \env{tudpage}"=Umgebung geändert werden. Außerdem +% gibt es für Titel, Teil und Kapitel speziell dazugehörige Farben, so dass +% das Aussehen des Kopfes ggf. angepasst wird. +% \begin{macrocode} +\newcommand*\tud@head@color{black} +% \end{macrocode} +% \end{macro}^^A \tud@head@color +% \begin{option}{cd} +% \begin{macro}{\tud@cd} +% \begin{macro}{\tud@layout@title} +% \begin{macro}{\tud@layout@part} +% \begin{macro}{\tud@layout@chapter} +% Ein zentraler Teil der Wrapper-Klassen ist die Auswahl der Darstellung des +% \CDs. Dabei kann gewählt werden, ob es einfarbig, mit leichtem oder aber mit +% starkem Farbeinsatz genutzt werden soll. Diese Option dient zur globalen +% Einstellung für Titel-, Teil- und Kapitelseiten. Mit dem Schalter werden die +% gleichen Einstellungen für alle drei Komponenten gesetzt. Die Standardfarbe +% des Kopfes der \env{tudpage}"=Seite ist schwarz und wird für die farbigen +% Layouts auf dunkelblau gesetzt. Abhängig von der gewählten Option, die über +% \cs{tud@layout@switch} festgelegt ist, werden die sogenannten Layoutschlüssel +% (\cs{tud@layout@\dots}) auf einen Wert gesetzt (0\dots 3), welcher im +% weiteren Verlauf ausgewertet werden kann. Der Schalter für Kapitel wird +% lediglich für \cls{tudscrbook}- und \cls{tudscrreprt} jedoch nicht für die +% \cls{tudscrartcl}-Klasse definiert und genutzt. Eigentlich werden alle +% Komponenten mit einer zentralen Option festgelegt, können aber auch +% durch den Nutzer explizit überschrieben werden. +% \begin{macrocode} +\newcommand*\tud@cd{0} +\csdef@lock{tud@layout@title}{0} +\csdef@lock{tud@layout@part}{0} +%<*book|report> +\csdef@lock{tud@layout@chapter}{0} +% +\TUD@key{cd}[true]{% + \TUD@set@numkey{cd}{tud@cd}{\tud@layout@switch}{#1}% + \def\tud@head@color{black}% + \ifcase \tud@cd\relax% + \csstd@lock{tud@layout@title}{0}% + \csstd@lock{tud@layout@part}{0}% +%<*book|report> + \csstd@lock{tud@layout@chapter}{0}% +% + \or% + \csstd@lock{tud@layout@title}{1}% + \csstd@lock{tud@layout@part}{1}% +%<*book|report> + \csstd@lock{tud@layout@chapter}{1}% +% + \or% + \def\tud@head@color{HKS41}% + \csstd@lock{tud@layout@title}{2}% + \csstd@lock{tud@layout@part}{2}% +%<*book|report> + \csstd@lock{tud@layout@chapter}{2}% +% + \or% + \def\tud@head@color{HKS41}% + \csstd@lock{tud@layout@title}{3}% +% \end{macrocode} +% Ein komplett farbiges Layout ist bloß für die Klassen mit Teil- und +% Kapitelseiten (\cls{tudscrbook} und \cls{tudscrreprt}) möglich. Ansonsten +% werden lediglich die Überschriften, jedoch nicht der Seitenhintergrund +% farbig gestaltet. +% \begin{macrocode} +%<*article> + \csstd@lock{tud@layout@part}{2}% +% +%<*book|report> + \csstd@lock{tud@layout@part}{3}% + \csstd@lock{tud@layout@chapter}{3}% +% +% \end{macrocode} +% Die Klassenoptionen \opt{chapterpage} und \opt{widehead} werden für den +% Fall der komplett farbigen Darstellung standardmäßig aktiviert +% können allerdings vom Anwender überschrieben werden. +% \begin{macrocode} +%<*book|report> + \TUD@std@ifkey@lock{chapterpage}{true}% + \TUD@std@ifkey@lock{widehead}{true}% +% + \fi% +% \end{macrocode} +% Die Ausführung des Befehls \cs{tud@layout@process} sorgt dafür, dass alle +% Optionen auch verarbeitet und wirksam werden. Dieser wird standardmäßig nach +% der Abarbeitung aller Optionen innerhalb der Präambel einmalig ausgeführt. +% Deshalb wird er hier nur innerhalb des Dokumentes genutzt. Dies gilt auch für +% die folgenden Optionen. +% \begin{macrocode} + \if@atdocument% + \tud@layout@process% + \else% +% \end{macrocode} +% Innerhalb der Präambel wird der Satzspiegel abhängig vom gewünschten Layout +% festgelegt. Dies kann vom Benutzer mit dem Setzen der Option \opt{geometry} +% überschrieben werden. +% \begin{macrocode} + \ifcase \tud@cd\relax% + \TUD@std@numkey@lock{geometry}{false}% + \else% + \TUD@std@numkey@lock{geometry}{true}% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@layout@chapter +% \end{macro}^^A \tud@layout@part +% \end{macro}^^A \tud@layout@title +% \end{macro}^^A \if@tud@cd +% \end{option}^^A cd +% \begin{option}{cdtitle} +% Das durch die Option \opt{cd} insgesamt festgelegte Layout kann für die +% einzelnen Elemente Titel (\opt{cdtitle}),\dots +% \begin{macrocode} +\TUD@key{cdtitle}[true]{% + \TUD@set@numkey{cdtitle}{@tempa}{\tud@layout@switch}{#1}% + \ifcase \@tempa\relax% + \csset@lock{tud@layout@title}{0}% + \or% + \csset@lock{tud@layout@title}{1}% + \or% + \csset@lock{tud@layout@title}{2}% + \or% + \csset@lock{tud@layout@title}{3}% + \fi% + \if@atdocument\tud@layout@process\fi% +} +% \end{macrocode} +% \end{option}^^A cdtitle +% \begin{option}{cdpart} +% \dots Teile- (\opt{cdpart}) und\dots +% \begin{macrocode} +\TUD@key{cdpart}[true]{% + \TUD@set@numkey{cdpart}{@tempa}{\tud@layout@switch}{#1}% + \ifcase \@tempa\relax% + \csset@lock{tud@layout@part}{0}% + \or% + \csset@lock{tud@layout@part}{1}% + \or% + \csset@lock{tud@layout@part}{2}% + \or% +%<*article> + \csset@lock{tud@layout@part}{2}% +% +%<*book|report> + \csset@lock{tud@layout@part}{3}% +% + \fi% + \if@atdocument\tud@layout@process\fi% +} +% \end{macrocode} +% \end{option}^^A cdpart +% \begin{option}{cdchapter} +% \dots bei den entsprechenden Klassen (\cls{tudscrbook} und \cls{tudscrreprt}) +% auch für die Kapitelseiten (\opt{cdchapter}) separat für die einzelnen +% Elemente geändert bzw. überschrieben werden. +% \begin{macrocode} +%<*book|report> +\TUD@key{cdchapter}[true]{% + \TUD@std@ifkey@lock{chapterpage}{false}% + \TUD@set@numkey{cdchapter}{@tempa}{\tud@layout@switch}{#1}% + \ifcase \@tempa\relax% + \csset@lock{tud@layout@chapter}{0}% + \or% + \csset@lock{tud@layout@chapter}{1}% + \or% + \csset@lock{tud@layout@chapter}{2}% + \or% + \csset@lock{tud@layout@chapter}{3}% + \TUD@std@ifkey@lock{chapterpage}{true}% + \fi% + \if@atdocument\tud@layout@process\fi% +} +% +% \end{macrocode} +% \end{option}^^A cdchapter +% \todo[v3.12]{% +% zusätzl. Schalter, um Layout für part und chapter einzustellen +% (tudpage=on/off) nach Umstellung auf (scrlayer) +% } +% \begin{macro}{\tud@layout@switch} +% Dies sind die Standardoptionen für alle einzelnen Einstellungen des Layouts. +% Es gibt die Varianten monochrom~(1), leichter~(2) und voller Farbeinsatz~(3) +% sowie die Möglichkeit, das \CD vollständig zu deaktivieren (0). +% \begin{macrocode} +\newcommand*\tud@layout@switch{% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {simple}{1},{std}{1},{standard}{1},{mono}{1},{monochrom}{1},% + {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {light}{2},{colorlight}{2},{lightcolor}{2},{colourlight}{2},{lightcolour}{2},% + {pale}{2},{colorpale}{2},{palecolor}{2},{colourpale}{2},{palecolour}{2},% + {full}{3},{colorfull}{3},{fullcolor}{3},{colourfull}{3},{fullcolour}{3},% + {color}{3},{colour}{3}% +} +% \end{macrocode} +% \end{macro}^^A \tud@layout@switch +% \begin{option}{color} +% \begin{option}{colour} +% Die alte \cls{tudbook}-Klasse hat die Option \opt{color} definiert, mit +% welcher ein Umschalten auf farbige Titel- und Kapitelseiten möglich ist. Aus +% Kompatibilitätsgründen wird diese hier ebenfalls vorgehalten. +% \begin{macrocode} +\TUD@key{color}[true]{% + \TUD@set@ifkey{color}{@tempswa}{#1}% + \TUD@set@numkey{color}{@tempa}{% + {false}{0},{off}{0},{no}{0},% + {simple}{0},{std}{0},{standard}{0},{mono}{0},{monochrom}{0},% + {true}{1},{on}{1},{yes}{1},{color}{1},{colour}{1},% + {full}{1},{colorfull}{1},{fullcolor}{1},{colourfull}{1},{fullcolour}{1},% + {lite}{2},{colorlite}{2},{litecolor}{2},{colourlite}{2},{litecolour}{2},% + {light}{2},{colorlight}{2},{lightcolor}{2},{colorpale}{2},{palecolor}{2},% + {pale}{2},{colourlight}{2},{lightcolour}{2},{colourpale}{2},{palecolour}{2}% + }{#1}% + \ifcase \@tempa\relax% + \TUDoptions{cd}% + \or% + \TUDoptions{cd=color}% + \else% + \TUDoptions{cd=lite}% + \fi% +} +\TUD@key{colour}[true]{\TUDoptions{color=#1}} +% \end{macrocode} +% \end{option}^^A colour +% \end{option}^^A color +% +% \iffalse +%<*book|report> +% \fi +% +% Die nun folgenden Optionen und Befehle werden nur für die \cls{tudscrbook}- +% und \cls{tudscrreprt}-Klasse definiert. +% \begin{option}{parttitle} +% \begin{macro}{\if@tud@parttitle} +% \begin{macro}{\if@tud@parttitle@locked} +% Der Schalter dient zur Steuerung, ob der Titel des Dokumentes wie im Handbuch +% des \CDs auf den Teileseiten stehen soll. +% \begin{macrocode} +\newif\if@tud@parttitle +\TUD@key@lock{parttitle}[true]{% + \TUD@set@ifkey@lock{parttitle}{@tud@parttitle}{#1}% + \if@atdocument\tud@layout@process\fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@parttitle@locked +% \end{macro}^^A \if@tud@parttitle +% \end{option}^^A parttitle +% \begin{option}{chapterpage} +% \begin{macro}{\if@tud@chapterpage} +% \begin{macro}{\if@tud@chapterpage@locked} +% Mit dieser Option können Kapitelüberschriften alleine auf einer Seite stehen. +% Es werden separate Kapitelseiten erzeugt. +% \begin{macrocode} +\newif\if@tud@chapterpage +\TUD@key@lock{chapterpage}[true]{% + \TUD@set@ifkey@lock{chapterpage}{@tud@chapterpage}{#1}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@chapterpage@locked +% \end{macro}^^A \if@tud@chapterpage +% \end{option}^^A chapterpage +% \todo[v3.12]{\cs{FamilyElseValue} funktioniert nicht} +% \begin{option}{cleardoublespecialpage} +% \begin{macro}{\tud@cleardoublepage} +% \begin{macro}{\tud@cleardoublespecialpage} +% Für Klassen mit separaten Teileseiten und Kapiteln wird eine zusätzliche +% Option definiert, welche nur bei zweiseitigem Satz (\opt{twoside}) und +% zusätzlich immer auf nur der rechten Seite öffnenden Teilen bzw. Kapiteln +% (\opt{open=right}) zum Tragen kommen. +% +% Diese Option steuert, ob die Rückseite von Titel, Teilen und ggf. auch bei +% separaten Kapitelseiten\footnote{bei aktivierter \opt{chapterpage}"=Option} +% entweder zwingend als leere Seite oder aber ~-- abhängig von der +% \KOMAScript-Option \opt{cleardoublepage}~-- als Vakatseite ausgegeben werden. +% Auch die Festlegung eines bestimmten Seitenstiles ist möglich. +% +% Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden +% Doppelseite. +% \begin{macrocode} +\newcommand*\tud@cleardoublepage{\cleardoubleoddpage} +% \end{macrocode} +% Mit der Option \opt{cleardoublespecialpage} kann dieser festgelegt werden. +% \begin{macrocode} +\TUD@key{cleardoublespecialpage}[true]{% + \tud@lowerstring{\@tempa}{#1}% + \ifstr{\@tempa}{color}{\TUDoptions{clearcolor}}{% + \ifstr{\@tempa}{colour}{\TUDoptions{clearcolor}}{% + \ifstr{\@tempa}{current}{% + \def\tud@cleardoublepage{\cleardoubleoddstandardpage}% + }{% + \ifcsdef{ps@#1}{% + \def\tud@cleardoublepage{\cleardoubleoddpageusingstyle{#1}}% + }{% + \def\FamilyElseValue{% + , 'color', 'current' or any defined pagestyle e.g. 'empty','plain'% + }% + \TUD@set@ifkey{cleardoublespecialpage}{@tempswa}{#1}% + \if@tempswa% + \def\tud@cleardoublepage{\cleardoubleoddpage}% + \else% + \def\tud@cleardoublepage{\null\thispagestyle{empty}\newpage}% + \fi% + }% + }}}% +} +% \end{macrocode} +% Der Befehl \cs{tud@cleardoublespecialpage} dient zur eigentlichen Umsetzung. +% Das obligatorische Argument enthält alles, was innerhalb der Gruppe an +% lokalen Einstellungen vorgenommen werden soll. Das optionale Argument wird ggf. +% genutzt, um einen Inhalt auf der Rückseite auszugeben. +% \begin{macrocode} +\newcommand*\tud@cleardoublespecialpage[2][]{% + \begingroup% + #2 + \ifboolexpr{bool {@twoside} and bool {@openright}}{% + \if@tud@clearcolor% + \def\@tempa{% + #1% + \tud@cleardoublepage% + \tud@restorepagecolor% + \endgroup% + }% + \else% + \def\@tempa{% + \endgroup% + \tud@restorepagecolor% + #1% + \tud@cleardoublepage% + }% + \fi% + }{% + \if@tud@clearcolor\tud@clearcolor@wrn\fi% + \def\@tempa{% + \tud@restorepagecolor% + \endgroup% + #1% + }% + }% + \@tempa% + \@afterindentfalse\@afterheading% +} +% \end{macrocode} +% \end{macro}^^A \tud@cleardoublespecialpage +% \end{macro}^^A \tud@cleardoublepage +% \end{option}^^A cleardoublespecialpage +% \begin{option}{clearcolor} +% \begin{option}{clearcolour} +% \begin{macro}{\if@tud@clearcolor} +% Bei starkem Farbeinsatz im Stil des \CDs auf Titel- Teil- oder Kapitelseiten +% (\opt{cd\dots=color}) wird die entsprechende Rückseite in der gleichen +% Farbe wie die dazugehörige Vorderseite gestaltet. Für Teile- bzw. +% Kapitelseiten muss die entsprechende Option aktiviert sein.% +% \footnote{\opt{cleardoublespecialpage}} +% \begin{macrocode} +\newif\if@tud@clearcolor +\TUD@ifkey{clearcolor}{@tud@clearcolor} +\TUD@ifkey{clearcolour}{@tud@clearcolor} +% \end{macrocode} +% \end{macro}^^A \if@tud@clearcolor +% \end{option}^^A clearcolour +% \end{option}^^A clearcolor +% Damit endet der exklusive Abschnitt für \cls{tudscrbook}- und +% \cls{tudscrreprt}-Klasse. +% +% \iffalse +% +% +%<*class&!option> +% \fi +% +% \subsection{Umsetzung des Layouts} +% +% Unter Layout wird die Wahl von Schriftart und "~größe, die Positionierung +% verschiedener Textelemente sowie die farbliche Gestaltung verstanden. Für das +% \CD gibt es dabei drei Ausprägungen, die für die verschiedenen Elemente +% auch unabhängig gewählt werden können. +% \begin{macro}{\tud@color@partfont} +% \begin{macro}{\tud@color@partpage} +% \begin{macro}{\tud@color@parthead} +% \begin{macro}{\tud@color@chapterfont} +% \begin{macro}{\tud@color@chapterpage} +% Die Makros werden für die Hintergrundfarbe der Seiten und die Farbe der +% Überschriften verwendet. +% \begin{macrocode} +\newcommand*\tud@color@partfont{black} +%<*book|report> +\newcommand*\tud@color@partpage{white} +\newcommand*\tud@color@parthead{black} +\newcommand*\tud@color@chapterfont{black} +\newcommand*\tud@color@chapterpage{white} +% +% \end{macrocode} +% \end{macro}^^A \tud@color@chapterpage +% \end{macro}^^A \tud@color@chapterfont +% \end{macro}^^A \tud@color@parthead +% \end{macro}^^A \tud@color@partpage +% \end{macro}^^A \tud@color@partfont +% \todo[v3.12]{auf \cs{usesizeofkomafont} umstellen, allerdings schwierig wegen +% des Rumgemoschel mit Kapitelüberschriften (scrlayer)} +% \begin{macro}{\tud@font@heading} +% \begin{macro}{\tud@font@heading@size} +% \begin{macro}{\tud@font@heading@numsize} +% \begin{macro}{\tud@font@part} +% \begin{macro}{\tud@font@part@number} +% \begin{macro}{\tud@font@part@title} +% \begin{macro}{\tud@font@chapter} +% Es werden die zu Beginn der Klasse Größen der notwendigen Schriftelemente, +% welche anhand der gewählten Dokumentschriftgröße definiert wurden, für die +% weitere Verwendung gesichert. Außerdem wird in \cs{tud@font@heading} die +% Schriftart für die Überschriften definiert. Falls die Schriftarten des \CDs +% installiert wurden, wird DIN-Bold verwendet, sonst die Standardüberschriften. +% \begin{macrocode} +\newcommand*\tud@font@heading{\if@tud@din\dinbn\fi\tud@raggedright} +\newcommand*\tud@font@heading@size{} +\newcommand*\tud@font@heading@numsize{} +\let\tud@font@heading@size\size@part% +\let\tud@font@heading@numsize\size@partnumber% +% \end{macrocode} +% Anschließend werden später benötigte Schriftformatierungen erstellt. +% \begin{macrocode} +\newkomafont{tud@heading}{\tud@font@heading\tud@font@heading@size}% +\newcommand*\tud@font@part{\usekomafont{tud@heading}\color{\tud@color@partfont}} +\newcommand*\tud@font@part@number{\tud@font@part\tud@font@heading@numsize} +%<*book|report> +\newcommand*\tud@font@part@title{\tud@font@part\usesizeofkomafont{section}} +\newcommand*\tud@font@chapter{% + \usekomafont{tud@heading}% + \color{\tud@color@chapterfont}% +} +% +% \end{macrocode} +% \end{macro}^^A \tud@font@chapter +% \end{macro}^^A \tud@font@part@title +% \end{macro}^^A \tud@font@part@number +% \end{macro}^^A \tud@font@part +% \end{macro}^^A \tud@font@heading@numsize +% \end{macro}^^A \tud@font@heading@size +% \end{macro}^^A \tud@font@heading +% \begin{length}{\chapterheadingvskip} +% \begin{length}{\headingsvskip} +% Mit dieser Länge kann der Anwender die Überschriften von Titel, Teilen und +% Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD +% eigentlich vorgegeben ist. Um die zuvor genannten Überschriften überhaupt auf +% dieser Position zu setzen, ist die Länge \cs{tud@dim@headingsvskip} bereits +% auf 30\,mm gesetzt, mit \cs{chapterheadingvskip} kann dies korrigiert werden. +% Die Länge \cs{headingsvskip} existiert nur, um zur Version v1.0 kompatibel +% zu sein. +% \begin{macrocode} +\newlength{\chapterheadingvskip} +\newlength{\headingsvskip} +\let\headingsvskip\chapterheadingvskip +% \end{macrocode} +% \end{length}^^A \headingsvskip +% \end{length}^^A \chapterheadingvskip +% \todo[v3.12]{% +% Einbinden Schriften von titlehead, author, date, publishers und dedication +% } +% \begin{macro}{\tud@layout@process} +% Dieser Befehl kümmert sich darum, dass die gewählten Optionen für den +% Seitenstil auch umgesetzt werden. Dabei wird insbesondere darauf Wert gelegt, +% dass die Optionen auch zur Laufzeit geändert und wiederhergestellt werden +% können. +% \begin{macrocode} +\newcommand*\tud@layout@process{% +% \end{macrocode} +% Die Einstellungen für den Titel. Vor dessen Umstellung werden die relevanten +% Originalbefehle mit \cs{tud@cmd@store}\marg{Befehl} gesichert, damit diese +% später gegebenenfalls mit \cs{tud@cmd@restore}\marg{Befehl} wiederhergestellt +% werden können. +% \begin{macrocode} + \ifcase \tud@layout@title\relax% + \tud@cmd@restore{maketitle}% + \tud@cmd@restore{@maketitle}% + \tud@font@koma@reset{title}% + \tud@font@koma@reset{subtitle}% + \tud@font@koma@reset{subject}% + \else% + \tud@cmd@store{maketitle}% + \tud@cmd@store{@maketitle}% + \tud@font@koma@set{title}{% + \usekomafont{tud@heading}% + \color{\tud@color@titlefont}% + }% + \tud@font@koma@set{subtitle}{% + \tud@font@heading% + \usesizeofkomafont{section}% + \color{\tud@color@titlefont}% + }% + \tud@font@koma@set{subject}{\color{\tud@color@titlefont}\sffamily}% + \let\maketitle\tud@maketitle% + \fi% +% \end{macrocode} +% Das gleiche für die Teileseiten. +% \begin{macrocode} + \ifcase \tud@layout@part\relax% + \tud@cmd@restore{partheadstartvskip}% + \tud@cmd@restore{partheadmidvskip}% +%<*book|report> + \tud@cmd@restore{partheadendvskip}% + \tud@cmd@restore{partheademptypage}% + \tud@cmd@restore{partpagestyle}% +% + \tud@cmd@restore{@part}% +%<*book|report> + \tud@cmd@restore{@spart}% +% + \tud@sectioning@reset[addpart]{part}% + \tud@font@koma@reset{partnumber}% +% \end{macrocode} +% Es werden die Standardbefehle gesichert und für das \CD angepasst. +% \begin{macrocode} + \else% + \tud@cmd@store{partheadstartvskip}% + \tud@cmd@store{partheadmidvskip}% +%<*book|report> + \tud@cmd@store{partheadendvskip}% + \tud@cmd@store{partheademptypage}% + \tud@cmd@store{partpagestyle}% +% + \tud@cmd@store{@part}% +%<*book|report> + \tud@cmd@store{@spart}% +% +% \end{macrocode} +% Es wird die Schriftfarbe, "~größe und "~art angepasst, je nachdem ob der +% Titel des Dokumentes auf den Teileseiten auftauchen soll oder eben nicht. +% \begin{macrocode} +%<*book|report> + \if@tud@parttitle% + \tud@sectioning@set[addpart]{part}{\tud@font@part@title}% + \tud@font@koma@set{partnumber}{\tud@font@part@title}% + \renewcommand*\partheadmidvskip{\enskip}% + \else% + \tud@sectioning@set[addpart]{part}{\tud@font@part}% + \tud@font@koma@set{partnumber}{\tud@font@part@number}% + \renewcommand*\partheadmidvskip{% + \par\nobreak\vspace{.5\baselineskip}% + }% + \fi% +% +% \end{macrocode} +% Für die Artikel-Klasse gibt es die \opt{parttitle}-Option nicht. +% \begin{macrocode} +%<*article> + \tud@sectioning@set[addpart]{part}{\tud@font@part}% + \tud@font@koma@set{partnumber}{\tud@font@part@number}% + \renewcommand*\partheadmidvskip{\vskip.3\baselineskip}% +% +% \end{macrocode} +% Einigen Makros werden mittels \cs{let} Definitionen von anderen Makros +% zugewiesen, die sich wiederum am Original orientieren. Hintergrund ist, dass +% die originalen Befehle angepasst werden sollen. Damit dies nicht bei jeder +% Optionswahl sondern nur einmalig geschehen muss und um möglichst einfach auf +% die Originaldefinition zurückschalten zu können, wird so verfahren. Die +% angepassten Befehle selbst und die dazugehörige Beschreibung sind etwas +% weiter unten im Quelltext zu finden. +% \begin{macrocode} + \let\partheadstartvskip\tud@partheadstartvskip% + \let\@part\tud@@part% +%<*book|report> + \let\@spart\tud@@spart% +% +% \end{macrocode} +% Nachdem die Schriften in Gestalt und Position angepasst wurden, wird jetzt +% das Layout für die Teileseiten festgelegt. Es wird der Satzspiegel und der +% Seitenstil angepasst, die Seitenfarbe gesetzt sowie die Schrift für Kopf und +% Seitenzahl verändert. Die Änderungen sollen dabei lokal bleiben, wofür das +% obligatorische Argument des Befehls \cs{tud@cleardoublespecialpage} verwendet +% wird. Damit wird abhängig von den Einstellungen für \opt{clearcolor} und +% \opt{cleardoublespecialpage} die Rückseite farbig und in einem bestimmten +% Seitenstil gesetzt. +% \todo[v3.12]{partpagestyle und scrlayer, siehe \cs{tud@layout@switch}} +% \begin{macrocode} +%<*book|report> + \renewcommand*\partheadendvskip{% + \tud@cleardoublespecialpage{% + \tud@pagecolor{\tud@color@partpage}% + \def\tud@head@color{\tud@color@parthead}% + \addtokomafont{pagenumber}{\sffamily\color{\tud@color@partfont}}% + \begingroup% + \let\ps@empty\ps@tudpage@empty% + \let\ps@plain\ps@tudpage@plain% + \clearpage% + \endgroup% + } + \loadgeometry{tudarea}% + }% + \renewcommand*\partheademptypage{}% +% + \fi% +% \end{macrocode} +% Die Einstellungen für die Kapitel bzw. die folgenden Gliederungsebenen. Auch +% hier werden alle relevanten Befehle gesichert, damit diese wiederhergestellt +% werden können. Verständlicherweise fällt für die \cls{tudscrartcl}-Klasse +% der Anteil für die Kapitel weg. Das Verhalten der nachgelagerten +% Gliederungsebenen orientiert für diese Klasse an den Einstellungen für die +% Teileseiten. +% \begin{macrocode} +%<*article> + \ifcase \tud@layout@part\relax% +% +%<*book|report> + \ifcase \tud@layout@chapter\relax% + \tud@cmd@restore{chapterheadstartvskip}% + \tud@cmd@restore{chapterformat}% + \tud@cmd@restore{@chapter}% + \tud@cmd@restore{@schapter}% + \tud@cmd@restore{@@makechapterhead}% + \tud@cmd@restore{set@@@@preamble}% + \tud@sectioning@reset[addchap]{chapter}% + \tud@font@koma@reset{chapterprefix}% +% + \tud@sectioning@reset[addsec]{section}% + \tud@sectioning@reset{subsection}% + \tud@sectioning@reset{subsubsection}% + \tud@sectioning@reset{minisec}% +% \end{macrocode} +% Auch hier werden die Standardbefehle für ein mögliches Deaktivieren der +% Optionen gesichert und anschließend geändert. +% \begin{macrocode} + \else% +%<*book|report> + \tud@cmd@store{chapterheadstartvskip}% + \tud@cmd@store{chapterformat}% + \tud@cmd@store{@chapter}% + \tud@cmd@store{@schapter}% + \tud@cmd@store{@@makechapterhead}% + \tud@cmd@store{set@@@@preamble}% + \tud@sectioning@set[addchap]{chapter}{\tud@font@chapter}% + \tud@font@koma@set{chapterprefix}{\usesizeofkomafont{partnumber}}% +% + \tud@sectioning@set[addsec]{section}{\tud@font@heading}% + \tud@sectioning@set{subsection}{\tud@font@heading}% + \tud@sectioning@set{subsubsection}{\tud@font@heading}% + \tud@sectioning@set{minisec}{\tud@font@heading}% +% \end{macrocode} +% \cs{chapterheadstartvskip} wird für die Position der Kapitelüberschriften im +% \CD angepasst. Mit der Länge \cs{chapterheadingvskip} kann diese Position +% vertikal durch den Benutzer verschoben werden. Außerdem werden die benötigten +% Farben für die jeweilig gewählte Option ausgewählt. +% \begin{macrocode} +%<*book|report> + \renewcommand*\chapterheadstartvskip{% + \def\tud@color@chapterpage{white}% + \def\tud@color@chapterfont{black}% + \ifcase \tud@layout@chapter\relax\or\or% + \def\tud@color@chapterpage{white}% + \def\tud@color@chapterfont{HKS41}% + \or% + \def\tud@color@chapterpage{HKS41!10}% + \def\tud@color@chapterfont{HKS41}% + \fi% + \vspace*{\dimexpr\tud@ta@headdiff+\tud@dim@headingsvskip}% + \if@tud@chapterpage\else\vspace*{\chapterheadingvskip}\fi% + }% +% \end{macrocode} +% Und wieder erfolgt die Zuweisung der angepassten Befehle über \cs{let}. +% \begin{macrocode} + \let\@@makechapterhead\tud@@@makechapterhead% + \let\set@@@@preamble\tud@set@@@@preamble% +% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@layout@process +% \begin{macro}{\tud@partheadstartvskip} +% Dieses Makro ersetzt den Standardbefehl \cs{partheadstartvskip} für die +% CD-Teilseiten. Damit lassen sich insbesondere die Farbanpassungen für alle +% Klassen sowie die Option \opt{parttitle} für \cls{tudscrreprt}- und +% \cls{tudscrbook}-Klasse einfach realisieren und gleichzeitig das +% Zurückschalten auf das Standardverhalten gewährleisten. +% +% Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand +% beibehalten und lediglich die Farbanpassung hinzugefügt. +% \begin{macrocode} +%<*article> +\newcommand*\tud@partheadstartvskip{} +\let\tud@partheadstartvskip\partheadstartvskip% +\pretocmd{\tud@partheadstartvskip}{% + \def\tud@color@partfont{black}% + \ifcase \tud@layout@part\relax\or\or% + \def\tud@color@partfont{HKS41}% + \fi% +}{}{\tud@patch@wrn{tud@partheadstartvskip}} +% +% \end{macrocode} +% Für \cls{tudscrreprt}- und \cls{tudscrbook}-Klasse werden die Farben gesetzt +% und die vertikalen Abstände neu definiert. +% \todo[v3.12]{% +% für part und chapter mehrere layer für ddc definieren, Satzspiegel abhängig +% von \cs{tud@ddc@foot} entweder tudpage oder tudddc +% } +% \begin{macrocode} +%<*book|report> +\newcommand*\tud@partheadstartvskip{% + \def\tud@color@partfont{black}% + \def\tud@color@partpage{white}% + \def\tud@color@parthead{black}% + \ifcase \tud@layout@part\relax\or\or% + \def\tud@color@partfont{HKS41}% + \def\tud@color@partpage{white}% + \def\tud@color@parthead{HKS41}% + \or% + \def\tud@color@partpage{HKS41}% + \def\tud@color@partfont{HKS41!30}% + \def\tud@color@parthead{white}% + \fi% + \loadgeometry{tudpage}% + \begingroup% + \vspace*{\dimexpr\tud@dim@headingsvskip+\parskip}% + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% +% \end{macrocode} +% Sollte die \opt{parttitle}-Option aktiviert sein, so wird der Titel des +% Dokumentes statt des Teiletitels mit \cs{tud@parttitle} auf die Seite +% gesetzt. +% \begin{macrocode} + \if@tud@parttitle% + \tud@parttitle% + \else% + \usesizeofkomafont{partnumber}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-.5\baselineskip}% + \fi% + \endgroup% +} +% +% \end{macrocode} +% \end{macro}^^A \tud@partheadstartvskip +% +% \iffalse +%<*book|report> +% \fi +% +% \begin{macro}{\tud@parttitle} +% Der Befehl \cs{tud@parttitle} wird für die Option \opt{parttitle} +% definiert. Dieser setzt den Titel in Majuskeln auf jeder Teilseite. +% \begin{macrocode} +\newcommand*\tud@parttitle{% + \begingroup% + \usekomafont{tud@heading}% + \color{\tud@color@partfont}% + \tud@makeuppercase{\expandonce{\@@title}}% + \par\nobreak\vskip .5\baselineskip% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@parttitle +% +% \iffalse +% +% \fi +% +% \begin{macro}{\tud@@part} +% Damit auch das Präfix der Teile in Majuskeln erscheint, wird dem Befehl +% \cs{partformat}, welcher das Präfix enthält, für die \cls{tudscrartcl}-Klasse +% der entsprechende Befehl vorangestellt. +% \begin{macrocode} +%<*article> +\let\tud@@part\@part +\patchcmd{\tud@@part}% + {\size@partnumber{\partformat}}% + {\size@partnumber{\tud@makeuppercase\partformat}}% + {}{\tud@patch@wrn{@part}}% +% +% \end{macrocode} +% Für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse ist etwas mehr Arbeit +% nötig. Für separate Teileseiten muss dafür Sorge getragen werden, dass die +% Überschrift unabhängig von der Tiefe der Nummerierung immer an der gleichen +% Position steht. +% \begin{macrocode} +%<*book|report> +\let\tud@@part\@part +\ifnum\scr@compatibility>\@nameuse{scr@v@3.11b}\relax + \patchcmd{\tud@@part}{% + \ifnumbered{part}{% + \size@partnumber{\partformat}% + \partheadmidvskip + }{}% + }{% + \ifnumbered{part}{% + \size@partnumber{\tud@makeuppercase\partformat}% + }{% + \size@partnumber{\strut}% + }% + \unskip\partheadmidvskip% + }{}{\tud@patch@wrn{@part}}% +\else + \patchcmd{\tud@@part}{% + \ifnum \c@secnumdepth >-2\relax + \size@partnumber{\partformat}% + \partheadmidvskip + \fi + }{% + \ifnum \c@secnumdepth >-2\relax% + \size@partnumber{\tud@makeuppercase\partformat}% + \else% + \size@partnumber{\strut}% + \fi% + \unskip\partheadmidvskip% + }{}{\tud@patch@wrn{@part}}% +\fi +% +% \end{macrocode} +% \end{macro}^^A \tud@@part +% +% \iffalse +%<*book|report> +% \fi +% +% \begin{macro}{\tud@@spart} +% Bei den Teile-Befehlen ohne Gliederungsnummerierung muss zusätzlich der +% Freiraum vorgehalten werden, damit alle Überschriften auf der gleichen +% vertikalen Position liegen. +% \begin{macrocode} +\let\tud@@spart\@spart +\patchcmd{\tud@@spart}{% + \normalfont + \sectfont\nobreak\size@part +}{% + \normalfont\sectfont\nobreak% + \size@partnumber{\strut}% + \partheadmidvskip\unskip% + \size@part% +}{}{\tud@patch@wrn{@spart}} +% \end{macrocode} +% \end{macro}^^A \tud@@spart +% \begin{macro}{\tud@partpreamble} +% Um die \KOMAScript-Befehle für die Teilepräambel auch für das farbige Layout +% nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln wird +% die Überschrift einer Zusammenfassung ausschließlich zentriert und relativ +% klein gesetzt. Außerdem wird für eine mögliche Zusammenfassung die +% \opt{titlepage}-Option deaktiviert. Aufgerufen wird der Befehl durch die +% gepatchte Version von \cs{set@@@@preamble}. +% \begin{macrocode} +\newcommand*\tud@partpreamble{% + \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \KOMAoptions{titlepage=false}% + \addtokomafont{disposition}{\color{\tud@color@partfont}}% + \addtokomafont{dictumtext}{\color{\tud@color@partfont}}% + \color{\tud@color@partfont}% +% \end{macrocode} +% Hiermit wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln +% ausgeglichen. +% \begin{macrocode} + \vskip\dimexpr\topskip+.9\baselineskip% + \@afterindentfalse\@afterheading% +} +% \end{macrocode} +% \end{macro}^^A \tud@partpreamble +% \begin{macro}{\tud@@@makechapterhead} +% Damit das Präfix des Kapitels bei der gegebenenfalls aktivierten Option +% \opt{chapterprefix} in Majuskeln erscheint, wird dem Befehl +% \cs{chapterformat}, welcher das Präfix enthält, der entsprechende Befehl +% vorangestellt. Außerdem muss die Überschrift bei aktivierter +% \opt{chapterprefix}-Option um die Höhe des Präfixes nach oben verschoben +% werden, damit die Überschrift selbst auf der richtigen Höhe liegt. +% \begin{macrocode} +\newcommand*\tud@@@makechapterhead{} +\let\tud@@@makechapterhead\@@makechapterhead +\patchcmd{\tud@@@makechapterhead}{\chapterformat}{% + \if@chapterprefix% + \usesizeofkomafont{chapterprefix}% + \vspace*{\dimexpr-\dp\strutbox-\ht\strutbox-.5\baselineskip}% + \fi% + \tud@makeuppercase{\chapterformat}% +}{}{\tud@patch@wrn{@@makechapterhead}} +% \end{macrocode} +% Weiterhin müssen alle vertikalen Abstände gelöscht werden, damit die +% Überschriften für alle Einstellungen der \opt{parskip}-Option immer auf +% exakt der selben Höhe liegen und auch die Abstände zwischen den ggf. +% genutzten Präfixen identisch sind. +% \begin{macrocode} +\patchcmd{\tud@@@makechapterhead}{\size@chapter{#1}}{% + \setlength{\parskip}{\z@}% + \size@chapter{#1}% +}{}{\tud@patch@wrn{@@makechapterhead}} +% \end{macrocode} +% \end{macro}^^A \tud@@@makechapterhead +% \begin{macro}{\tud@chapterpreamble} +% Um die \KOMAScript-Befehle für die Kapitelpräambel auch für das farbige Layout +% nutzen zu können, müssen diese leicht angepasst werden. Für die Präambeln der +% Kapitel gilt das gleiche wie für die der Teileseiten. Auch hier erfolgt die +% Ausführung des Befehls durch die gepatchte Version von \cs{set@@@@preamble}. +% \begin{macrocode} +\newcommand*\tud@chapterpreamble{% + \ifnum\tud@abstract@level>1\relax\def\tud@abstract@level{1}\fi% + \KOMAoptions{titlepage=false}% +% \end{macrocode} +% Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig. +% \begin{macrocode} + \if@tud@chapterpage% + \if@tud@cdfonts% + \if@tud@heavyfont% + \TUDoptions{cdfont=heavy}% + \else% + \TUDoptions{cdfont}% + \fi% + \fi% + \addtokomafont{disposition}{\color{\tud@color@chapterfont}}% + \addtokomafont{dictumtext}{\color{\tud@color@chapterfont}}% + \color{\tud@color@chapterfont}% + \fi% + \@afterindentfalse\@afterheading% +} +% \end{macrocode} +% \end{macro}^^A \tud@chapterpreamble +% \begin{macro}{\tud@chapter@pre} +% \begin{macro}{\tud@chapter@app} +% Diese beiden Makros dienen zur Behandlung der Besonderheiten von spearaten +% Kapitelseiten (Option~\opt{chapterpage}). +% \begin{macrocode} +\newcommand*\tud@chapter@pre{% + \if@tud@chapterpage% +% \end{macrocode} +% Der Seitenstil wird aus Gründen der Konsistenz auf den Stil von Teilseiten +% gesetzt. Vorher wird dieser gesichert. +% \begin{macrocode} + \tud@cmd@store{chapterpagestyle}% + \renewcommand*\chapterpagestyle{\partpagestyle}% +% \end{macrocode} +% Für den zweispaltigen Satz und aktivierter \opt{chapterpage}-Option muss +% für die Kapitelseiten temporär auf einseitigen Satz umgestellt werden, damit +% alle Befehle und Einstellungen beim Erzeugen des jeweiligen Kapitels zum +% Tragen kommen. Soll der Fehler behoben werden, dass bei Kapitelüberschriften +% im zweispaltigen Satz der Abstand zwischen Überschrift und Textkörper nicht +% stimmt, sei außerdem das Paket \pkg{twocolfix} empfohlen. +% \begin{macrocode} + \@restonecolfalse% + \if@twocolumn\@restonecoltrue\onecolumn\fi% + \fi% +} +\newcommand*\tud@chapter@app{% + \if@tud@chapterpage% +% \end{macrocode} +% Nach dem Setzen der Kapitelüberschrift selbst werden die Farbe für den +% Hintergrund, die Seitenzahl und den ggf. verwendeten TUD-Kopf angewendet. +% Danach wird die Seite beendet. Sollte zweiseitiger Satz, immer rechts öffnende +% Kapitel und die Option \opt{chapterpage} gewählt sein, so wird für ein +% konsistentes Layout für Überschriften auf Einzelseiten die Rückseite abhängig +% von der Option \opt{clearcolor} gegebenenfalls farbig gesetzt und die Option +% \opt{cleardoublespecialpage} bezüglich des Seitenstils der Rückseite beachtet. +% Umgesetzt wird das Ganze mit dem Befehl \cs{tud@cleardoublespecialpage}. +% \begin{macrocode} + \tud@cleardoublespecialpage{% + \tud@pagecolor{\tud@color@chapterpage}% + \def\tud@head@color{\tud@color@chapterfont}% + \addtokomafont{pagenumber}{\sffamily\color{\tud@color@chapterfont}}% + \clearpage% + }% +% \end{macrocode} +% Außerdem wird der Seitenstil der Kapitel wiederhergestellt und für den +% Zweispaltensatz auf normales Verhalten zurückgestellt. +% \begin{macrocode} + \tud@cmd@restore{chapterpagestyle}% + \if@restonecol\twocolumn\fi% + \fi% +% \end{macrocode} +% Unabhängig von der Option \opt{chapterpage} wird deim zweispaltigen Layout der +% Einzug des ersten Absatzes verhindert. +% \begin{macrocode} + \if@twocolumn% + \@afterindentfalse\@afterheading% + \fi% +} +% \end{macrocode} +% Die Änderungen sollen bei der Erzeugung eines Kapitels greifen. Damit die +% originalen Befehle nicht beeinflusst werden, erfolgt die Manipulation der +% bereits adaptierten Befehle für Kapitel. +% \begin{macrocode} +\AtEndPreamble{% + \pretocmd{\tud@nchapter}{\tud@chapter@pre}{}{} + \apptocmd{\tud@nchapter}{\tud@chapter@app}{}{} + \pretocmd{\tud@schapter}{\tud@chapter@pre}{}{} + \apptocmd{\tud@schapter}{\tud@chapter@app}{}{} + \pretocmd{\tud@ochapter}{\tud@chapter@pre}{}{} + \apptocmd{\tud@ochapter}{\tud@chapter@app}{}{} + \pretocmd{\tud@naddchap}{\tud@chapter@pre}{}{} + \apptocmd{\tud@naddchap}{\tud@chapter@app}{}{} + \pretocmd{\tud@saddchap}{\tud@chapter@pre}{}{} + \apptocmd{\tud@saddchap}{\tud@chapter@app}{}{} + \pretocmd{\tud@oaddchap}{\tud@chapter@pre}{}{} + \apptocmd{\tud@oaddchap}{\tud@chapter@app}{}{} +} +% \end{macrocode} +% \end{macro}^^A \tud@chapter@pre +% \end{macro}^^A \tud@chapter@app +% \begin{macro}{\tud@clearcolor@wrn} +% Warnung für den Fall, dass die Option \opt{clearcolor} ohne \opt{open=right} +% und \opt{twoside} verwendet wird. +% \begin{macrocode} +\newcommand*\tud@clearcolor@wrn{% + \ClassWarning{\tudcls@name}{% + Option 'clearcolor' is only available together with\MessageBreak% + options 'twoside' and 'open=right'% + }% + \global\let\tud@clearcolor@wrn\relax% +} +% \end{macrocode} +% \end{macro}^^A \tud@clearcolor@wrn +% \begin{macro}{\tud@set@@@@preamble} +% Die beiden Befehle für Präambeln aus \KOMAScript{} ignorieren in ihrer +% ursprünglichen Form die Einstellungen für \opt{parskip}. Dies wird mit diesem +% Patch beseitigt. Außerdem werden das Makro für die Layouteinstellungen für +% Teile bzw. Kapitel (\cs{tud@\dots preamble}) aufgerufen. +% \begin{macrocode} +\newcommand*\tud@set@@@@preamble{} +\let\tud@set@@@@preamble\set@@@@preamble +\patchcmd{\tud@set@@@@preamble}{% + \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% +}{% + \def\@tempa####1@####2{\@nameuse{tud@####1preamble}}% + \hbox to\hsize{% + \let\@parboxrestore\relax% + #4\parbox[{#2}]{#3}{\@tempa#1#6\par}#5\par% + }% +}{}{\tud@patch@wrn{set@@@@preamble}} +% \end{macrocode} +% \end{macro}^^A \tud@set@@@@preamble +% Damit ist das Intermezzo für die beiden Klassen \cls{tudscrbook} und +% \cls{tudscrreprt} beendet. +% +% \iffalse +% +% \fi +% +% \begin{macro}{\tud@part} +% \begin{macro}{\tud@spart} +% \begin{macro}{\tud@addpart} +% \begin{macro}{\tud@saddpart} +% \begin{macro}{\tud@chapter} +% \begin{macro}{\tud@schapter} +% \begin{macro}{\tud@addchap} +% \begin{macro}{\tud@saddchap} +% \begin{macro}{\tud@section} +% \begin{macro}{\tud@ssection} +% \begin{macro}{\tud@subsection} +% \begin{macro}{\tud@ssubsection} +% \begin{macro}{\tud@subsubsection} +% \begin{macro}{\tud@ssubsubsection} +% Das \CD verlangt, dass sämtliche Auszeichnungen, die in DIN~Bold gesetzt +% werden, groß zu schreiben sind. Für die Klassen bedeutet dies, dass alle +% Überschriften automatisch in Majuskeln und in der gewünschten Schriftart +% erscheinen müssen. Dies erfordert eine Anpassung der Gliederungsbefehle, ohne +% deren normales Verhalten zu beeinflussen. +% +% Dazu werden die benötigten Hilfsmakros initialisiert. Die Gliederungsbefehle +% selbst werden innerhalb des Befehles \cs{tud@sectioning@set} durch +% \cs{tud@cmd@store} gesichert und anschließend mit \cs{tud@sectioning@case} +% neu definiert. Dabei wird in der ersten Stufe unterschieden, ob die +% Sternversion des Gliederungsbefehls durch den Anwender verwendet wird und +% ggf. das Hilfsmakro \cs{tud@s\meta{Gliederungsbefehl}} aufgerufen. +% Andernfalls wird \cs{tud@\meta{Gliederungsbefehl}} verwendet. +% \begin{macrocode} +\newcommand*\tud@part{} +\newcommand*\tud@spart{} +\newcommand*\tud@addpart{} +\newcommand*\tud@saddpart{} +%<*book|report> +\newcommand*\tud@chapter{} +\newcommand*\tud@schapter{} +\newcommand*\tud@addchap{} +\newcommand*\tud@saddchap{} +% +\newcommand*\tud@section{} +\newcommand*\tud@ssection{} +\newcommand*\tud@subsection{} +\newcommand*\tud@ssubsection{} +\newcommand*\tud@subsubsection{} +\newcommand*\tud@ssubsubsection{} +% \end{macrocode} +% \end{macro}^^A \tud@ssubsubsection +% \end{macro}^^A \tud@subsubsection +% \end{macro}^^A \tud@ssubsection +% \end{macro}^^A \tud@subsection +% \end{macro}^^A \tud@ssection +% \end{macro}^^A \tud@section +% \end{macro}^^A \tud@saddchap +% \end{macro}^^A \tud@addchap +% \end{macro}^^A \tud@schapter +% \end{macro}^^A \tud@chapter +% \end{macro}^^A \tud@saddpart +% \end{macro}^^A \tud@addpart +% \end{macro}^^A \tud@spart +% \end{macro}^^A \tud@part +% \begin{macro}{\tud@npart} +% \begin{macro}{\tud@opart} +% \begin{macro}{\tud@naddpart} +% \begin{macro}{\tud@oaddpart} +% \begin{macro}{\tud@nchapter} +% \begin{macro}{\tud@ochapter} +% \begin{macro}{\tud@naddchap} +% \begin{macro}{\tud@oaddchap} +% \begin{macro}{\tud@nsection} +% \begin{macro}{\tud@osection} +% \begin{macro}{\tud@nsubsection} +% \begin{macro}{\tud@osubsection} +% \begin{macro}{\tud@nsubsubsection} +% \begin{macro}{\tud@osubsubsection} +% Wird keine Sternversion verwendet, sind zwei weitere Hilfsmakros nötig, um +% zwischen den Varianten mit und ohne optionales Argument zu entscheiden. +% \begin{macrocode} +\newcommand*\tud@npart{} +\newcommand*\tud@opart{} +\newcommand*\tud@naddpart{} +\newcommand*\tud@oaddpart{} +%<*book|report> +\newcommand*\tud@nchapter{} +\newcommand*\tud@ochapter{} +\newcommand*\tud@naddchap{} +\newcommand*\tud@oaddchap{} +% +\newcommand*\tud@nsection{} +\newcommand*\tud@osection{} +\newcommand*\tud@nsubsection{} +\newcommand*\tud@osubsection{} +\newcommand*\tud@nsubsubsection{} +\newcommand*\tud@osubsubsection{} +% \end{macrocode} +% \end{macro}^^A \tud@osubsubsection +% \end{macro}^^A \tud@nsubsubsection +% \end{macro}^^A \tud@osubsection +% \end{macro}^^A \tud@nsubsection +% \end{macro}^^A \tud@osection +% \end{macro}^^A \tud@nsection +% \end{macro}^^A \tud@oaddchap +% \end{macro}^^A \tud@naddchap +% \end{macro}^^A \tud@ochapter +% \end{macro}^^A \tud@nchapter +% \end{macro}^^A \tud@oaddpart +% \end{macro}^^A \tud@naddpart +% \end{macro}^^A \tud@opart +% \end{macro}^^A \tud@npart +% \begin{macro}{\tud@sectioning@set} +% \begin{macro}{\tud@sectioning@case} +% \begin{macro}{\tud@sectioning@reset} +% \begin{macro}{\tud@font@koma@set} +% \begin{macro}{\tud@font@koma@reset} +% Der Befehl\cs{tud@sectioning@set} sichert und überschreibt die gegebenen +% Gliederungsbefehle und fügt diesen die zusätzlich angegebene Schriftdefinition +% mit dem Makro \cs{tud@font@koma@set} zu. Das optionale Argument ermöglicht die +% Anpassung des angegebenen Gliederungsbefehls ohne zusätzliche Definition der +% Schrift. Dies ist für die von \KOMAScript{} zusätzlich bereitgestellten +% Gliederungsbefehle (\cs{add\dots}) notwendig. +% \begin{macrocode} +\newcommand*\tud@sectioning@set[3][]{% + \tud@cmd@store{#2}% +% \end{macrocode} +% Für die Überschriften, welche mit \cs{minisec} gesetzt werden, genügt jedoch +% ein vereinfachtes Vorgehen. +% \begin{macrocode} + \ifstr{#2}{minisec}{% + \renewcommand\minisec[1]{% + \tud@cmd@use{minisec}{\tud@makeuppercase{##1}}% + }% +% \end{macrocode} +% Hier erfolgt die Anpassung und Formatierung aller anderen Gliederungsbefehle. +% \begin{macrocode} + }{% + \tud@sectioning@case{#2}% + \ifstrempty{#1}{}{% + \tud@cmd@store{#1}% + \tud@sectioning@case{#1}% + }% + }% + \tud@font@koma@set{#2}{#3}% +} +% \end{macrocode} +% Da die Großschreibung der Überschriften nur beim Setzen der Überschrift +% selbst, nicht aber beispielsweise im Inhaltsverzeichnis oder aber in der +% Kopfzeile unerwünscht erfolgen soll, werden die Gliederungsbefehle angepasst. +% Dabei müssen alle Varianten, also auch die mit Stern und optionalen Argument +% beachtet werden. +% \begin{macrocode} +\newcommand*\tud@sectioning@case[1]{% +% \end{macrocode} +% Als erstes wird unterschieden, ob die normale oder aber die nicht-nummerierte +% sprich die Sternversion gefordert ist. Für die Teileebene werden also +% beispielsweise \cs{tud@part} und \cs{tud@spart} aufgerufen. +% \begin{macrocode} + \@namedef{#1}{\@ifstar{\@nameuse{tud@s#1}}{\@nameuse{tud@#1}}}% +% \end{macrocode} +% Für die normale Version wird geprüft, ob ein optionales Argument angegeben +% wurde. Am Beispiel nachvollzogen bedeutet dies, dass bei einem gegebenen +% optionalen Argument der Befehl \cs{tud@opart} aufgerufen wird, sonst +% \cs{tud@npart}. +% \begin{macrocode} + \@namedef{tud@#1}{\@ifnextchar[%] + {\@nameuse{tud@o#1}}{\@nameuse{tud@n#1}}% + }% +% \end{macrocode} +% Für die normale Version wird der in \cs{@@tud@\meta{Gliederungsbefehl}} +% gesicherte Originalbefehl mit dem gewünschten Eintrag als optionales Argument +% aufgerufen und nur das obligatorische Argument mit \cs{tud@makeuppercase} +% behandelt. +% \begin{macrocode} + \@namedef{tud@n#1}##1{\@nameuse{@@tud@#1}[##1]{\tud@makeuppercase{##1}}}% +% \end{macrocode} +% Für die Version mit optionalen Argument wird dieses einfach an den originalen +% Befehl durchgereicht. Das obligatorische Argument wird wie immer mit +% \cs{tud@makeuppercase} behandelt. +% \begin{macrocode} + \@namedef{tud@o#1}[##1]##2{\@nameuse{@@tud@#1}[##1]{\tud@makeuppercase{##2}}}% +% \end{macrocode} +% Für die Version mit Stern gibt es kein optionales Argument. Dementsprechend +% wird hier lediglich das obligatorische Argument in Großbuchstaben gesetzt. +% \begin{macrocode} + \@namedef{tud@s#1}##1{\@nameuse{@@tud@#1}*{\tud@makeuppercase{##1}}}% +} +% \end{macrocode} +% Mit dem Makro \cs{tud@sectioning@reset} können die manipulierten +%Gliederungsbefehle +% wieder auf ihr ursprüngliches Verhalten zurückgesetzt werden. +% \begin{macrocode} +\newcommand*\tud@sectioning@reset[2][]{% + \tud@cmd@restore{#2}% + \ifstrempty{#1}{}{\tud@cmd@restore{#1}}% + \tud@font@koma@reset{#2}% +} +% \end{macrocode} +% Es wird die Möglichkeit geschaffen, bestimmten Schriftelementen weitere +% Eigenschaften mitzugeben. Damit dies optionsabhängig geschehen kann und +% \cs{addtokomafont} nur einmalig verwendete werden muss, wird im Zweifelsfall +% einem Schriftelement ein Hilfsmakro zugewiesen, welches per Option angepasst +% werden kann. Mit \cs{tud@font@koma@set} werden dem angegebenen Element die +% gewünschten Schriftattribute zugeteilt. Dabei wird der entsprechenden Schrift +% ein Makro zugewiesen, welches beliebig angepasst werden kann. +% \begin{macrocode} +\newcommand*\tud@font@koma@set[2]{% + \ifcsdef{tud@font@koma@#1}{}{\addtokomafont{#1}{\@nameuse{tud@font@koma@#1}}}% + \@namedef{tud@font@koma@#1}{#2}% +} +% \end{macrocode} +% Mit \cs{tud@font@koma@reset} kann das angegebene Element wieder zurückgesetzt +% werden. Dabei wird das zuvor hinzugefügte Makro auf \cs{relax} gesetzt. +% \begin{macrocode} +\newcommand*\tud@font@koma@reset[1]{% + \ifcsdef{tud@font@koma@#1}{\@namedef{tud@font@koma@#1}{\relax}}{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@font@koma@reset +% \end{macro}^^A \tud@font@koma@set +% \end{macro}^^A \tud@sectioning@reset +% \end{macro}^^A \tud@sectioning@case +% \end{macro}^^A \tud@sectioning@set +% Dieser Befehl extrahiert aus einer verwendeten Schrift nur die dazugehörige +% Schriftgröße. +% \todo[v3.12]{\cs{usesizeofkomafont} raus} +% \begin{macrocode} +\providecommand*\usesizeofkomafont[1]{% + \begingroup% + \usekomafont{#1}% + \edef\reserved@a{\noexpand\endgroup% + \noexpand\fontsize{\f@size}{\f@baselineskip}}% + \reserved@a\selectfont% +} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx new file mode 100644 index 00000000000..52fee3cd9b2 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-locale.dtx @@ -0,0 +1,687 @@ +% \CheckSum{498} +% \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-locale.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-locale.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (localization)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-locale.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Lokalisierung} +% +% Die TUD-Vorlagen sind für die deutsche und englische Sprache lokalisiert. Das +% bedeutet, dass abhängig von der gewählten Sprache die entsprechenden +% Bezeichner gesetzt werden. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \subsection{Definition der sprachabhängigen Bezeichner} +% +% \begin{macro}{\tud@locale@define} +% +% \iffalse +%<*class|titlepage> +% \fi +% +% \begin{locale}{\degreetext} +% \begin{locale}{\supervisorname} +% \begin{locale}{\supervisorothername} +% \begin{locale}{\refereename} +% \begin{locale}{\refereeothername} +% \begin{locale}{\advisorname} +% \begin{locale}{\advisorothername} +% \begin{locale}{\professorname} +% \begin{locale}{\datetext} +% \begin{locale}{\dateofbirthtext} +% \begin{locale}{\placeofbirthtext} +% \begin{locale}{\defensedatetext} +% \begin{locale}{\matriculationnumbername} +% \begin{locale}{\matriculationyearname} +% \begin{locale}{\coverpagename} +% \begin{locale}{\titlepagename} +% \begin{locale}{\abstractname} +% \begin{locale}{\confirmationname} +% \begin{locale}{\confirmationtext} +% \begin{locale}{\restrictionname} +% \begin{locale}{\restrictiontext} +% \begin{locale}{\listingname} +% \begin{locale}{\listlistingname} +% \begin{locale}{\dissertationname} +% \begin{locale}{\diplomathesisname} +% \begin{locale}{\masterthesisname} +% \begin{locale}{\bachelorthesisname} +% \begin{locale}{\studentresearchname} +% \begin{locale}{\projectpapername} +% \begin{locale}{\seminarpapername} +% \begin{locale}{\researchname} +% \begin{locale}{\logname} +% \begin{locale}{\internshipname} +% \begin{locale}{\reportname} +% Die neu definierten Bezeichner werden mit einer Fehlermeldung initialisiert. +% Wird eine unterstützte Dokumentsprache --~momentan sind dies lediglich +% Deutsch und Englisch~-- in der Präambel des Dokumentes geladen, so werden die +% neu definierten Bezeichner sprachspezifisch überschrieben. Andernfalls +% bekommt der Anwender eine Fehlermeldung mit Hinweisen, wie er selbst die +% Bezeichner für die gewählte Sprache manuell definieren muss. +% \begin{macrocode} +\newcommand*\tud@locale@define[1]{% + \providecommand*#1{% +%<*class> + \ClassError{\tudcls@name}{% + \string#1 not defined for language \languagename% + }{% + Currently the class \tudcls@name\space only supports the\MessageBreak% +% +%<*titlepage> + \PackageError{titlepage}{% + \string#1 not defined for language \languagename% + }{% + Currently this titlepage style only supports the\MessageBreak% +% + languages german and english. You must define single\MessageBreak% + patterns by yourself, e.g.:\MessageBreak% + \string\providecaptionname\languagename{\string#1}{}\MessageBreak% + To implement new languages, it would be nice if you could\MessageBreak% + contact the author of this class and send your definitions\MessageBreak% + to \filemail% + }% + }% +} +\tud@locale@define{\degreetext} +\tud@locale@define{\supervisorname} +\tud@locale@define{\supervisorothername} +\tud@locale@define{\refereename} +\tud@locale@define{\refereeothername} +\tud@locale@define{\advisorname} +\tud@locale@define{\advisorothername} +\tud@locale@define{\professorname} +\tud@locale@define{\datetext} +\tud@locale@define{\dateofbirthtext} +\tud@locale@define{\placeofbirthtext} +\tud@locale@define{\defensedatetext} +\tud@locale@define{\matriculationyearname} +%<*class> +\tud@locale@define{\matriculationnumbername} +\tud@locale@define{\coverpagename} +\tud@locale@define{\titlepagename} +%<*book> +\tud@locale@define{\abstractname} +% +\tud@locale@define{\confirmationname} +\tud@locale@define{\confirmationtext} +\tud@locale@define{\restrictionname} +\tud@locale@define{\restrictiontext} +\tud@locale@define{\listingname} +\tud@locale@define{\listlistingname} +% +\tud@locale@define{\dissertationname} +%<*class> +\tud@locale@define{\diplomathesisname} +\tud@locale@define{\masterthesisname} +\tud@locale@define{\bachelorthesisname} +\tud@locale@define{\studentresearchname} +\tud@locale@define{\projectpapername} +\tud@locale@define{\seminarpapername} +% +\tud@locale@define{\researchname} +\tud@locale@define{\logname} +\tud@locale@define{\internshipname} +\tud@locale@define{\reportname} +% \end{macrocode} +% \end{locale}^^A \reportname +% \end{locale}^^A \internshipname +% \end{locale}^^A \logname +% \end{locale}^^A \researchname +% \end{locale}^^A \seminarpapername +% \end{locale}^^A \projectpapername +% \end{locale}^^A \studentresearchname +% \end{locale}^^A \bachelorthesisname +% \end{locale}^^A \masterthesisname +% \end{locale}^^A \diplomathesisname +% \end{locale}^^A \dissertationname +% \end{locale}^^A \restrictiontext +% \end{locale}^^A \listlistingname +% \end{locale}^^A \listingname +% \end{locale}^^A \restrictionname +% \end{locale}^^A \confirmationtext +% \end{locale}^^A \confirmationname +% \end{locale}^^A \abstractname +% \end{locale}^^A \titlepagename +% \end{locale}^^A \coverpagename +% \end{locale}^^A \matriculationyearname +% \end{locale}^^A \matriculationnumbername +% \end{locale}^^A \defensedatetext +% \end{locale}^^A \placeofbirthtext +% \end{locale}^^A \dateofbirthtext +% \end{locale}^^A \datetext +% \end{locale}^^A \professorname +% \end{locale}^^A \advisorothername +% \end{locale}^^A \advisorname +% \end{locale}^^A \refereeothername +% \end{locale}^^A \refereename +% \end{locale}^^A \supervisorothername +% \end{locale}^^A \supervisorname +% \end{locale}^^A \degreetext +% +% \iffalse +% +%<*supervisor> +% \fi +% +% \begin{locale}{\taskname} +% \begin{locale}{\tasktext} +% \begin{locale}{\authorname} +% \begin{locale}{\titlename} +% \begin{locale}{\coursename} +% \begin{locale}{\branchname} +% \begin{locale}{\issuedatetext} +% \begin{locale}{\duedatetext} +% \begin{locale}{\chairmanname} +% \begin{locale}{\focusname} +% \begin{locale}{\objectivesname} +% \begin{locale}{\evaluationname} +% \begin{locale}{\evaluationtext} +% \begin{locale}{\contentname} +% \begin{locale}{\assessmentname} +% \begin{locale}{\gradetext} +% \begin{locale}{\noticename} +% \begin{locale}{\contactname} +% Die neu definierten Bezeichner werden durch \cs{tud@locale@define} mit einer +% Fehlermeldung initialisiert. +% \begin{macrocode} +\tud@locale@define{\taskname} +\tud@locale@define{\tasktext} +\tud@locale@define{\authorname} +\tud@locale@define{\titlename} +\tud@locale@define{\coursename} +\tud@locale@define{\branchname} +\tud@locale@define{\issuedatetext} +\tud@locale@define{\duedatetext} +\tud@locale@define{\chairmanname} +\tud@locale@define{\focusname} +\tud@locale@define{\objectivesname} +\tud@locale@define{\evaluationname} +\tud@locale@define{\evaluationtext} +\tud@locale@define{\contentname} +\tud@locale@define{\assessmentname} +\tud@locale@define{\gradetext} +\tud@locale@define{\noticename} +\tud@locale@define{\contactname} +% \end{macrocode} +% \end{locale}^^A \contactname +% \end{locale}^^A \noticename +% \end{locale}^^A \gradetext +% \end{locale}^^A \assessmentname +% \end{locale}^^A \contentname +% \end{locale}^^A \evaluationtext +% \end{locale}^^A \evaluationname +% \end{locale}^^A \objectivesname +% \end{locale}^^A \focusname +% \end{locale}^^A \chairmanname +% \end{locale}^^A \duedatetext +% \end{locale}^^A \issuedatetext +% \end{locale}^^A \branchname +% \end{locale}^^A \coursename +% \end{locale}^^A \titlename +% \end{locale}^^A \authorname +% \end{locale}^^A \tasktext +% \end{locale}^^A \taskname +% +% \iffalse +% +% \fi +% +% \end{macro}^^A \tud@locale@define +% +% \subsection{Deutschsprachige Bezeichner} +% +% \begin{macro}{\tud@locale@german} +% +% \iffalse +%<*class|titlepage> +% \fi +% +% Dieser Befehl dient zur Definition der deutschsprachigen Bezeichner. Dabei +% muss als Argument die \pkg{babel}-konformen Bezeichnung oder aber ein +% Alias für die deutsche Sprache angegeben werden. +% \begin{macrocode} +\newcommand*\tud@locale@german[1]{% + \providecaptionname{#1}{\degreetext}% + {zur Erlangung des akademischen Grades}% + \providecaptionname{#1}{\supervisorname}% + {Betreuer}% + \providecaptionname{#1}{\supervisorothername}% + {}% + \providecaptionname{#1}{\refereename}% + {Erstgutachter}% + \providecaptionname{#1}{\refereeothername}% + {Zweitgutachter}% + \providecaptionname{#1}{\advisorname}% + {Fachreferent}% + \providecaptionname{#1}{\advisorothername}% + {}% + \providecaptionname{#1}{\professorname}% + {Betreuender Hochschullehrer}% + \providecaptionname{#1}{\datetext}% + {Eingereicht am}% + \providecaptionname{#1}{\dateofbirthtext}% + {Geboren am}% + \providecaptionname{#1}{\placeofbirthtext}% + {in}% + \providecaptionname{#1}{\defensedatetext}% + {Verteidigt am}% + \providecaptionname{#1}{\matriculationyearname}% + {Immatrikulationsjahr}% +%<*class> + \providecaptionname{#1}{\matriculationnumbername}% + {Matrikelnummer}% + \providecaptionname{#1}{\coverpagename}% + {Umschlagseite}% + \providecaptionname{#1}{\titlepagename}% + {Titelblatt}% +%<*book> + \providecaptionname{#1}{\abstractname}% + {Zusammenfassung}% +% + \providecaptionname{#1}{\confirmationname}% + {Selbstst\"andigkeitserkl\"arung}% + \providecaptionname{#1}{\confirmationtext}{% + Hiermit versichere ich, dass ich die vorliegende + \ifx\@@thesis\empty Arbeit \else\@@thesis{} \fi + \ifx\@@title\empty\else mit dem Titel \emph{\@@title} \fi + selbstst\"andig und ohne unzul\"assige Hilfe Dritter verfasst habe. Es + wurden keine anderen als die in der Arbeit angegebenen Hilfsmittel + und Quellen benutzt. Die w\"ortlichen und sinngem\"a\ss{} + \"ubernommenen Zitate habe ich als solche kenntlich gemacht. + \ifx\@supporter\empty% + Es waren keine weiteren Personen an der geistigen Herstellung der + vorliegenden Arbeit beteiligt. + \else% + W\"ahrend der Anfertigung dieser Arbeit wurde ich nur von folgenden + Personen unterst\"utzt:% + \begin{quote}\def\and{\newline}\@supporter\end{quote}% + \noindent Weitere Personen waren an der geistigen Herstellung der + vorliegenden Arbeit nicht beteiligt. + \fi% + Mir ist bekannt, dass die Nichteinhaltung dieser Erkl\"arung zum + nachtr\"aglichen Entzug des Hochschulabschlusses f\"uhren kann.% + }% + \providecaptionname{#1}{\restrictionname}% + {Sperrvermerk}% + \providecaptionname{#1}{\restrictiontext}{% + Diese \ifx\@@thesis\empty Arbeit \else\@@thesis{} \fi + \ifx\@@title\empty\else mit dem Titel \emph{\@@title} \fi + enth\"alt vertrauliche Informationen\ifx\@company\empty\else + , offengelegt durch \@company{}\fi. Ver\"offentlichungen, + Vervielf\"altigungen und Einsichtnahme~-- auch nur auszugsweise~-- + sind ohne ausdr\"uckliche Genehmigung \ifx\@company\empty\else + durch \@company{} \fi nicht gestattet, ebenso wie + Ver\"offentlichungen \"uber den Inhalt dieser Arbeit. Die + vorliegende Arbeit ist nur dem Betreuer an der Hochschule, + den Gutachtern sowie den Mitgliedern des Pr\"ufungsausschusses + zug\"anglich zu machen.% + }% + \providecaptionname{#1}{\listingname}% + {Quelltext}% + \providecaptionname{#1}{\listlistingname}% + {Quelltextverzeichnis}% +% + \providecaptionname{#1}{\dissertationname}% + {Dissertation}% +%<*class> + \providecaptionname{#1}{\diplomathesisname}% + {Diplomarbeit}% + \providecaptionname{#1}{\masterthesisname}% + {Master-Arbeit}% + \providecaptionname{#1}{\bachelorthesisname}% + {Bachelor-Arbeit}% + \providecaptionname{#1}{\studentresearchname}% + {Studienarbeit}% + \providecaptionname{#1}{\projectpapername}% + {Projektarbeit}% + \providecaptionname{#1}{\seminarpapername}% + {Seminararbeit}% +% + \providecaptionname{#1}{\researchname}% + {Forschungsbericht}% + \providecaptionname{#1}{\logname}% + {Protokoll}% + \providecaptionname{#1}{\internshipname}% + {Praktikumsbericht}% + \providecaptionname{#1}{\reportname}% + {Bericht}% +} +% \end{macrocode} +% +% \iffalse +% +%<*supervisor> +% \fi +% +% An den Ursprungsbefehl werden weitere Definitionen angehängt. +% \begin{macrocode} +\apptocmd{\tud@locale@german}{% + \providecaptionname{#1}{\taskname}% + {Aufgabenstellung}% + \providecaptionname{#1}{\tasktext}% + {f\"ur die Anfertigung einer}% + \providecaptionname{#1}{\authorname}% + {Name}% + \providecaptionname{#1}{\titlename}% + {Titel}% + \providecaptionname{#1}{\coursename}% + {Studiengang}% + \providecaptionname{#1}{\branchname}% + {Studienrichtung}% + \providecaptionname{#1}{\issuedatetext}% + {Ausgeh\"andigt am}% + \providecaptionname{#1}{\duedatetext}% + {Einzureichen am}% + \providecaptionname{#1}{\chairmanname}% + {Pr\"ufungsausschussvorsitzender}% + \providecaptionname{#1}{\focusname}% + {Schwerpunkte der Arbeit}% + \providecaptionname{#1}{\objectivesname}% + {Ziele der Arbeit}% + \providecaptionname{#1}{\evaluationname}% + {Gutachten}% + \providecaptionname{#1}{\evaluationtext}% + {f\"ur die}% + \providecaptionname{#1}{\contentname}% + {Inhalt}% + \providecaptionname{#1}{\assessmentname}% + {Bewertung}% + \providecaptionname{#1}{\gradetext}% + {Die Arbeit wird mit der Note \textbf{\@grade} bewertet.}% + \providecaptionname{#1}{\noticename}% + {Aushang}% + \providecaptionname{#1}{\contactname}% + {Ansprechpartner}% +}{}{} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \end{macro}^^A \tud@locale@german +% +% \subsection{Englischsprachige Bezeichner} +% +% \begin{macro}{\tud@locale@english} +% +% \iffalse +%<*class|titlepage> +% \fi +% +% Dieser Befehl dient zur Definition der englischen Bezeichner. Dabei muss als +% Argument die \pkg{babel}-konformen Bezeichnung oder aber ein +% Alias für die deutsche Sprache angegeben werden. Verbesserungsvorschläge für +% die Übersetzung können gerne an \filemail{} geschickt werden. +% \begin{macrocode} +\newcommand*\tud@locale@english[1]{% + \providecaptionname{#1}{\degreetext}% + {to achieve the academic degree}% + \providecaptionname{#1}{\supervisorname}% + {Supervisor}% + \providecaptionname{#1}{\supervisorothername}% + {}% + \providecaptionname{#1}{\refereename}% + {First referee}% + \providecaptionname{#1}{\refereeothername}% + {Second referee}% + \providecaptionname{#1}{\advisorname}% + {Advisor}% + \providecaptionname{#1}{\advisorothername}% + {}% + \providecaptionname{#1}{\professorname}% + {Supervising professor}% + \providecaptionname{#1}{\datetext}% + {Submitted on}% + \providecaptionname{#1}{\dateofbirthtext}% + {Born on}% + \providecaptionname{#1}{\placeofbirthtext}% + {in}% + \providecaptionname{#1}{\defensedatetext}% + {Defended on}% + \providecaptionname{#1}{\matriculationyearname}% + {Matriculation year}% +%<*class> + \providecaptionname{#1}{\matriculationnumbername}% + {Matriculation number}% + \providecaptionname{#1}{\coverpagename}% + {Cover page}% + \providecaptionname{#1}{\titlepagename}% + {Title page}% +%<*book> + \providecaptionname{#1}{\abstractname}% + {Abstract}% +% + \providecaptionname{#1}{\confirmationname}% + {Statement of authorship}% + \providecaptionname{#1}{\confirmationtext}{% + I hereby certify that I have authored this + \ifx\@@thesis\empty thesis\else\@@thesis{} \fi + \ifx\@@title\empty{} \else entitled \emph{\@@title} \fi + independently and without undue assistance from third + parties. No other than the resources and references + indicated in this thesis have been used. I have marked + both literal and accordingly adopted quotations as such. + \ifx\@supporter\empty% + They were no additional persons involved in the spiritual + preparation of the present thesis. + \else% + During the preparation of this thesis I was only supported + by the following persons:% + \begin{quote}\def\and{\newline}\@supporter\end{quote}% + \noindent Additional persons were not involved in the spiritual + preparation of the present thesis. + \fi% + I am aware that violations of this declaration may lead to + subsequent withdrawal of the degree.% + }% + \providecaptionname{#1}{\restrictionname}% + {Restriction note}% + \providecaptionname{#1}{\restrictiontext}{% + This \ifx\@@thesis\empty thesis \else\@@thesis{} \fi + \ifx\@@title\empty{} \else entitled \emph{\@@title} \fi + contains confidential data\ifx\@company\empty\else + , disclosed by \@company{}\fi. Publications, duplications and + inspections---even in part---are prohibited without explicit + permission\ifx\@company\empty\else\space by \@company{}\fi, + as well as publications about the content of this thesis. + This thesis may only be made accessible to the supervisor at + the university, the reviewers and also the members of the + examination board.% + }% + \providecaptionname{#1}{\listingname}% + {Listing}% + \providecaptionname{#1}{\listlistingname}% + {List of Listings}% +% + \providecaptionname{#1}{\dissertationname}% + {Dissertation}% +%<*class> + \providecaptionname{#1}{\diplomathesisname}% + {Diploma Thesis}% + \providecaptionname{#1}{\masterthesisname}% + {Master Thesis}% + \providecaptionname{#1}{\bachelorthesisname}% + {Bachelor Thesis}% + \providecaptionname{#1}{\studentresearchname}% + {Student Research Project}% + \providecaptionname{#1}{\projectpapername}% + {Project Paper}% + \providecaptionname{#1}{\seminarpapername}% + {Seminar Paper}% +% + \providecaptionname{#1}{\researchname}% + {Research Report}% + \providecaptionname{#1}{\logname}% + {Log}% + \providecaptionname{#1}{\internshipname}% + {Internship Report}% + \providecaptionname{#1}{\reportname}% + {Report}% +} +% \end{macrocode} +% +% \iffalse +% +%<*supervisor> +% \fi +% +% An den Ursprungsbefehl werden weitere Definitionen angehängt. +% \begin{macrocode} +\apptocmd{\tud@locale@english}{% + \providecaptionname{#1}{\taskname}% + {Task}% + \providecaptionname{#1}{\tasktext}% + {for the preparation of a}% + \providecaptionname{#1}{\authorname}% + {Name}% + \providecaptionname{#1}{\titlename}% + {Title}% + \providecaptionname{#1}{\coursename}% + {Course}% + \providecaptionname{#1}{\branchname}% + {Branch}% + \providecaptionname{#1}{\issuedatetext}% + {Issued on}% + \providecaptionname{#1}{\duedatetext}% + {Due date for submission}% + \providecaptionname{#1}{\chairmanname}% + {Chairman of the Audit Committee}% + \providecaptionname{#1}{\focusname}% + {Focus of work}% + \providecaptionname{#1}{\objectivesname}% + {Objectives of work}% + \providecaptionname{#1}{\evaluationname}% + {Evaluation}% + \providecaptionname{#1}{\evaluationtext}% + {for the}% + \providecaptionname{#1}{\contentname}% + {Content}% + \providecaptionname{#1}{\assessmentname}% + {Assessment}% + \providecaptionname{#1}{\gradetext}% + {The thesis is evaluated with a grade of \textbf{\@grade}.}% + \providecaptionname{#1}{\noticename}% + {Notice}% + \providecaptionname{#1}{\contactname}% + {Contact}% +}{}{} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \end{macro}^^A \tud@locale@english +% +% \iffalse +%<*class|titlepage> +% \fi +% +% \subsection{Unbekannte Bezeichner} +% +% Das eigentliche Festlegen der einzelnen Bezeichner erfolgt erst direkt zum +% Beginn des Dokumentes. Dies hat den Vorteil, dass spätestens zu diesem +% Zeitpunkt entweder \pkg{babel} oder aber ein anderes Paket, welches die +% Nutzung sprachabhängiger Bezeichner erlaubt, geladen sein muss. Sollte +% überhaupt keine Sprache angegeben worden sein, so wird standardmäßig die +% englische Sprache genutzt. +% \todo[v3.12]{\cs{AtBeginDocument} raus, macht \KOMAScript{} selber} +% \todo[v3.12]{% +% \cs{providecaptionname} verträgt nun Sprachen in einer Liste, +% \cs{tud@locale@german} und \cs{tud@locale@end} können raus\\ +% \cs{providecaptionname\{german,ngerman,austrian,naustrian\}\dots} +% \cs{defcaptionname\{english,american,british,canadian,USenglish,UKenglish\}} +% } +% \begin{macrocode} +\AtBeginDocument{% +%<*class> + \ifdef{\captionsenglish}{}{\let\captionsenglish\@empty}% +% +%<*titlepage> + \@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}% +% + \tud@locale@german{ngerman}% + \tud@locale@german{german}% + \tud@locale@english{english}% + \tud@locale@english{USenglish}% + \tud@locale@english{american}% + \tud@locale@english{UKenglish}% + \tud@locale@english{british}% +} +%<*class> +\AfterPackage{listings}{% + \renewcommand*\lstlistingname{\listingname}% + \renewcommand*\lstlistlistingname{\listlistingname}% +} +% +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx new file mode 100644 index 00000000000..95eb44e5a27 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx @@ -0,0 +1,1276 @@ +% \CheckSum{1206} +% \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-manual.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-manual.dtx}% + [2014/04/24 v1.00 TUD-KOMA-Script (manual)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-manual.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Klasse für das \TUDScript-Handbuch} +% +% Diese Klasse wird für das Benutzerhanduch des \TUDScript-Bundles verwendet. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \subsection{Identifizierung der Klasse \cls{tudscrman}} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{tudscrman}[\TUDVersion\space{}internal manual class]% +% \end{macrocode} +% +% \subsection{Die Klasse \pkg{tudscrman}} +% +% Basis für das Handbuch ist die Klasse \cls{tudscrreprt}. An diese werden alle +% Klassenoptionen weitergereicht. +% +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{tudscrreprt}} +\ProcessOptions\relax +\LoadClass{tudscrreprt} +% \end{macrocode} +% \begin{length}{\baselineskipglue} +% Diese Länge wird in der Dokumentation für alle möglichen stauch- und dehnbaren +% Einfügen genutzt. +% \begin{macrocode} +\newlength\baselineskipglue +\setlength\baselineskipglue{% + .5\baselineskip plus .5\baselineskip minus .25\baselineskip% +} +% \end{macrocode} +% \end{length}^^A \baselineskipglue +% Des Weiteren werden einige Pakete geladen. Dabei wird \pkg{microtype} für den +% optischen Randausgleich verwendet, \pkg{textcomp} stellt Pfeile u.\,ä. im +% Fließtext zur Verfügung, mit \pkg{tabularx} können Tabellen bestimmter Breite +% und automatisch berechneten Spaltenbreiten gesetzt werden. Mit \pkg{ragged2e} +% wird~-- falls benötigt~-- im Flattersatz die Silbentrennung aktiviert. Das +% Paket \pkg{marginnote} wird für die Auszeichnung von Änderungen und +% ToDo-Notizen am Seitenrand verwendet. Außerdem wird das Paket \pkg{xparse} +% geladen. Dieses erlaubt eine sehr freie Deklaration von Makros mit (fast) +% beliebig arangierbaren optionalen Argumenten. +% \begin{macrocode} +\RequirePackage{microtype} +\RequirePackage{textcomp} +\RequirePackage{tabularx} +\RequirePackage{ragged2e} +\RequirePackage{marginnote} +\RequirePackage{xparse} +% \end{macrocode} +% Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt. +% \begin{macrocode} +\RequirePackage{chngcntr} +\counterwithout{footnote}{chapter} +% \end{macrocode} +% Das Paket erlaubt das Beeinflussen der Standardlisten und die Ableitung neuer +% Listen aus diesen. Hier werden die Zwischenräume innerhalb der Listen entfernt. +% \begin{macrocode} +\RequirePackage{enumitem} +\setlist{noitemsep} +% \end{macrocode} +% \begin{environment}{values} +% \begin{macro}{\before@values} +% \begin{macro}{\item@values} +% \begin{macro}{\itemtrue} +% \begin{macro}{\itemfalse} +% \begin{macro}{\tud@item@val} +% \begin{macro}{\tud@item@add} +% \begin{macro}{\tud@item@format} +% \begin{macro}{\tud@item} +% \begin{macro}{\tud@@item} +% \begin{macro}{\tud@@@item} +% Die Liste \env{values} dient zum Benennen der möglichen Werte für einen +% bestimmten Schlüssel. Im Handbuch kommt diese Liste vorallem bei Optionen aber +% auch bei bestimmten Befehls- und Optionsparametern zum Einsatz. +% \begin{macrocode} +\newlist{values}{description}{1} +\setlist[values]{% + topsep=.5\baselineskipglue,labelwidth=\columnwidth,labelsep=0pt, + font=\normalfont\ttfamily,before*=\before@values% +} +% \end{macrocode} +% Zu Beginn der Umgebung wird die Definition des \cs{item}-Befehls gesichert und +% anschließend geändert. +% \begin{macrocode} +\newcommand*\before@values{% + \let\item@values\item% + \let\item\tud@item% +%% \par\RaggedRight% +} +% \end{macrocode} +% Die folgenden beiden Befehle enthalten die Standardwerte für boolsche Schalter. +% \begin{macrocode} +\newcommand*\itemfalse{\def\tud@item@val{false/off/no}\item} +\newcommand*\itemtrue{\def\tud@item@val{true/on/yes}\item} +% \end{macrocode} +% Mit der neuen Definition kann der Säumniswert mit \cs{item*} explizit in der +% Liste hervorgehoben werden. +% \begin{macrocode} +\newcommand*\item@values{} +\newcommand*\tud@item@val{} +\newcommand*\tud@item@add{} +\newcommand*\tud@item@format{} +\newcommand*\tud@item{% + \@ifstar{% + \def\tud@item@add{(Säumniswert)}% + \let\tud@item@format\emph% + \tud@@item% + }{% + \let\tud@item@add\relax% + \let\tud@item@format\relax% + \tud@@item% + }% +} +% \end{macrocode} +% In der zweiten Instanz wird das optionale Argument von \cs{item} ausgewertet. +% Dabei wird das Hilfsmakro \cs{tud@item@val} beachtet, welches evtl. mit den +% Befehlen \cs{itemtrue} oder \cs{itemfalse} gesetzt wurde und vor dem +% optionalen Argument aufgeführt wird. +% \begin{macrocode} +\newcommand*\tud@@item[1][]{% + \ifstrempty{#1}% + {\edef\@tempa{\tud@item@val}}% + {\ifstr{\tud@item@val}{}% + {\edef\@tempa{#1}}% + {\edef\@tempa{\tud@item@val/#1}}% + }% + \def\tud@item@val{}% +% \end{macrocode} +% Wurde weder \cs{tud@item@val} gesetzt noch ein Wert im optionalen Argument von +% \cs{item} angegeben, so wird der gesicherte Befehl ausgeführt. Ansonsten folgt +% die dritte Instanz. +% \begin{macrocode} + \ifstr{\@tempa}{}{\item@values}{\tud@@@item}% +} +% \end{macrocode} +% Der gesicherte Befehl wird mit den aufbereiteten Formatierungen genutzt. +% \begin{macrocode} +\newcommand*\tud@@@item[1][]{% + \ifstrempty{#1}{}{% + \ifx\tud@item@add\relax% + \def\tud@item@add{#1}% + \else% + \apptocmd{\tud@item@add}{~#1}{}{} + \fi% + }% + \item@values[% + \tud@item@format{\@tempa:}% + \ifx\tud@item@add\relax\else\textuln{\space\footnotesize\tud@item@add}\fi% + ] +} +% \end{macrocode} +% \end{macro}^^A \tud@@@item +% \end{macro}^^A \tud@@item +% \end{macro}^^A \tud@item +% \end{macro}^^A \tud@item@format +% \end{macro}^^A \tud@item@add +% \end{macro}^^A \tud@item@val +% \end{macro}^^A \itemfalse +% \end{macro}^^A \itemtrue +% \end{macro}^^A \item@values +% \end{macro}^^A \before@values +% \end{environment}^^A values +% \begin{environment}{packages} +% \begin{macro}{\item@packages} +% \begin{macro}{\tud@item@pkg} +% \begin{macro}{\before@packages} +% Ähnlich wie für die Auflistung von Werten eines Schlüssels wird auch mit der +% Charakterisierung von Paketen verfahren. Diese werden in der Auflistung +% speziell gekennzeichnet und mit \cs{DeclarePackage} im Index eingetragen. +% \begin{macrocode} +\newlist{packages}{description}{2} +\setlist[packages]{% + topsep=\medskipamount,labelwidth=\linewidth,labelsep=0pt,font=\normalfont,% + parsep=\parskip,listparindent=\parindent,before=\before@packages% +} +\newcommand*\item@packages{} +\newcommand*\before@packages{% + \ifdefvoid{\item@packages}{% + \let\item@packages\item% + \let\item\tud@item@pkg% + }{}% +%% \par\RaggedRight% +} +\newcommand*\tud@item@pkg[1][]{% + \item@packages[{\DeclarePackage{#1}\texturn{#1}}]% +} +% \end{macrocode} +% \end{macro}^^A \before@packages +% \end{macro}^^A \tud@item@pkg +% \end{macro}^^A \item@packages +% \end{environment}^^A packages +% \begin{macro}{\includeexample} +% Mit diesem Befehl wird eine \hologo{TeX}-Datei ggf. übersetzt und anschließend +% als PDF"~Datei wieder eingebunden. +% \begin{macrocode} +\RequirePackage{filemod} +\RequirePackage{pdfpages} +\newcommand*{\includeexample}[1]{% + \lstinputlisting[style=tudscr]{examples/#1.tex} + \filemodCmp{./examples/#1.pdf}{./examples/#1.tex}{}{% + \immediate\write18{% + pdflatex -output-director examples examples/#1.tex + pdflatex -output-director examples examples/#1.tex + }% + }% + \IfFileExists{examples/#1.pdf}{\includepdf[pages=-]{examples/#1.pdf}}{}% +} +% \end{macrocode} +% \end{macro}^^A \includeexample +% \begin{macro}{\Email} +% \begin{macro}{\printflag} +% Für die Erstellung des Indexes wird das Paket \pkg{imakeidx} zusammen mit +% \textbf{xindy} verwendet. Zusätzlich werden \pkg{varioref} und \pkg{hyperref} +% geladen. Damit wird der Befehl \cs{Email} als Link definiert. Außerdem wird +% geprüft, ob durch einen externen \hologo{pdfLaTeX}-Aufruf das Flag +% \cs{printflag} definiert wurde. In diesem Fall werden Optionen für den +% unbunten Druck aktiviert. +% \begin{macrocode} +\AtEndPreamble{% + \RequirePackage[xindy,splitindex]{imakeidx}% + \indexsetup{% + level=\addsec,toclevel=section,noclearpage,% + firstpagestyle=myheadings,%headers={\indexname}{\indexname}% + }% + \newcommand*\xdyopt{-M tudscrman.xdy -L german-din}% + \RequirePackage{varioref}% + \RequirePackage[hyperindex=false,colorlinks,linkcolor=blue]{hyperref}% + \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}} + \pdfstringdefDisableCommands{% + \let\Application\@Application% + \let\Class\@Class% + \let\Package\@Package% + }% + \ifdef{\printflag}{\hypersetup{hidelinks}}{\TUDoptions{color}}% + \makeindex[title={Allgemeiner Index},options=\xdyopt]% + \makeindex[title={Klassen- und Paketoptionen},name=options,options=\xdyopt]% + \makeindex[title={Umgebungen und Befehle},name=macros,options=\xdyopt]% + \makeindex[title={Umgebungs- und Befehlsparameter},name=keys,options=\xdyopt]% + \makeindex[title={Sprachabh\"angige Bezeichner},name=terms,options=\xdyopt]% +%% \makeindex[title={Schriftelemente},name=fonts,options=\xdyopt]% + \makeindex[title={Farben},name=colors,options=\xdyopt]% + \makeindex[title={Klassen, Pakete und Dateien},name=files,options=\xdyopt]% +%% \makeindex[title={\"Anderungsliste},name=changelog,options=\xdyopt]% +} +% \end{macrocode} +% \end{macro}^^A \printflag +% \end{macro}^^A \Email +% \begin{macro}{\PrintIndex} +% \begin{macro}{\Index} +% \begin{macro}{\@printindex} +% Der Befehl \cs{PrintIndex} ist die Zusammenfassung für die Ausgabe aller +% Indexe. Mit \cs{Index} werden im Allgemeinen Index Querverweise auf die +% Spezialindexe gesetzt. Der Befehl \cs{@printindex} setzt vor jedem Unterindex +% ein referenzierbares Label und gibt diesen danach aus. +% \begin{macrocode} +\newcommand*\PrintIndex{% + \@printindex% + \@printindex[options]% + \@printindex[macros]% + \@printindex[keys]% + \@printindex[terms]% +%% \@printindex[fonts]% + \begingroup% + \let\lettergroup\@gobble% + \@printindex[colors]% + \endgroup% + \@printindex[files]% +} +\newcommand*\Index[3][]{% + \ifcsdef{r@idx:#3}{% + \index{\ifblank{#1}{#2}{#1}|see{\hyperref[idx:#3]{Index der #2}}}% + }{% + \index{\ifblank{#1}{#2}{#1}|see{Index der #2}}% + }% +} +\newcommand*\@printindex[1][]{% + \pagebreak[3]% + \ifblank{#1}{% + \indexprologue[\vspace*{0pt}]{\label{idx:main}}% + \printindex% + }{% + \indexprologue[\vspace*{0pt}]{\label{idx:#1}} + \printindex[#1] + }% +} +% \end{macrocode} +% \end{macro}^^A \@printindex +% \end{macro}^^A \Index +% \end{macro}^^A \PrintIndex +% \begin{macro}{\PrintChangelog} +% \begin{macro}{\ChangedAt} +% \begin{macro}{\if@changelog} +% Ähnlich wie für den index wird auch für die Änderungsliste verfahren. +% \begin{macrocode} +\newif\if@changelog +\newcommand*\PrintChangelog{% + \begingroup% + \let\lettergroup\@gobble% + \@changelogtrue% + \@printindex[changelog]% + \endgroup% +} +% \end{macrocode} +% Hier wird zum ersten Mal von den Möglichkeiten des Paketes \pkg{xparse} +% Gebrauch gemacht. +% \begin{macrocode} +\NewDocumentCommand\ChangedAt{mo}{% + \begingroup% + \setlength{\fboxsep}{0pt}% + \marginnote{\footnotesize\fbox{\texturn{\ \strut#1\ }}}% + \IfValueTF{#2}{% + \let\PName\@gobble% + \let\PBoolean\relax% + \let\PSet\relax% + \let\PValue\@gobble% + \let\Parameter\@gobble% + \let\OParameter\@gobble% + \let\LParameter\relax% + \let\OLParameter\@gobble% + \let\PParameter\@gobble% + \let\POParameter\@gobble% + \index[changelog]{#1!#2}% + }{}% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \if@changelog +% \end{macro}^^A \ChangedAt +% \end{macro}^^A \PrintChangelog +% \begin{macro}{\if@declare} +% \begin{macro}{\if@openindex} +% \begin{macro}{\bsc} +% \begin{macro}{\idxfont} +% \begin{macro}{\if@noindex} +% Alle möglichen Befehle und Helferlein zum Steuern der Ausgabe. +% \begin{macrocode} +\newif\if@declare +\newif\if@openindex +\newcommand*\bsc{} +\DeclareRobustCommand*\bsc{\@backslashchar} +\newcommand*\idxfont{} +\let\idxfont\footnotesize +\newif\if@noindex +% \end{macrocode} +% \end{macro}^^A \if@noindex +% \end{macro}^^A \idxfont +% \end{macro}^^A \bsc +% \end{macro}^^A \if@openindex +% \end{macro}^^A \if@declare +% Im Folgenden werden allerhand Befehle mit Hilfe des Paketes \pkg{xparse} +% definiert, um bestimmte Begriffe, Klassen, Pakete, Optionen, Umgebungen, +% Befehle, Parameter, Bezeichner, Längen, Schriftelemente und Farben speziell +% auszuzeichnen und im Index einzutragen. Allen diesen Befehlen ist gemein, dass +% diese in der Sternversion nicht in den Index eingetragen werden. +% +% Für (fast) alle der folgenden Befehle gilt, dass die Verwendung in der Form +% \cs{\meta{Befehl}'} fügt eine zusätzliche Referenz auf den Abschnitt ihrer +% Deklaration ein. Das erste optionale Argument dient für eine spezielle +% Auszeichnung im Index. Die eigentliche Behandlung der Eingabe und die +% Eintragungen in den Index erfolgen dabei mit dem Befehl \cs{@ProcessOutput}. +% \begin{macro}{\Application} +% \begin{macro}{\@Application} +% Die Auszeichnung und der Indexeintrag einer Anwendungssoftware. +% \begin{macrocode} +\NewDocumentCommand\Application{som}{% + \ifdin{#3}{% + \mbox{\textubn{#3}} + \IfBooleanTF{#1}{}{% + \index{#3~{\protect\idxfont(Anwendungssoftware)}\IfValueTF{#2}{|#2}{}}% + }% + }% +} +\DeclareExpandableDocumentCommand\@Application{som}{#3} +% \end{macrocode} +% \end{macro}^^A \@Application +% \end{macro}^^A \Application +% \begin{macro}{\Distribution} +% Die Auszeichnung und der Indexeintrag einer \hologo{LaTeX}-Distribution. +% \begin{macrocode} +\NewDocumentCommand\Distribution{som}{% + \mbox{\texturn{#3}} + \IfBooleanTF{#1}{}{% + \index{#3~{\protect\idxfont(Distribution)}\IfValueTF{#2}{|#2}{}}% + }% +} +% \end{macrocode} +% \end{macro}^^A \Distribution +% \begin{macro}{\Path} +% Die Auszeichnung eines Dateipfades. +% \begin{macrocode} +\newcommand*\Path{} +\DeclareRobustCommand*\Path[1]{\mbox{\texttt{#1}}} +% \end{macrocode} +% \end{macro}^^A \Path +% \begin{macro}{\File} +% Die Auszeichnung und der Indexeintrag einer Datei. +% \begin{macrocode} +\NewDocumentCommand\File{som}{% + \mbox{\texturn{#3}}% + \IfBooleanTF{#1}{}{% + \index[files]{#3~{\protect\idxfont(Datei)}\IfValueTF{#2}{|#2}{}}% + }% +} +% \end{macrocode} +% \end{macro}^^A \File +% \begin{macro}{\Class} +% \begin{macro}{\@Class} +% \begin{macro}{\DeclareClass} +% \begin{macro}{\@TempClass} +% Die Auszeichnung und der Indexeintrag einer Klasse. Sollte gerade DIN~Bold +% verwendet werden~-- der Befehl wird innerhalb einer Überschrift verwendet~-- +% wird lediglich das Hauptargument ausgegeben. Außerdem wird für Einträge mit +% dem \pkg{hyperref}-Paket mit \cs{@Class} eine expandierbare Version des +% Befehls definiert. Mit \cs{DeclareClass} wird eine Klasse deklariert. +% \begin{macrocode} +\newcommand*\@TempClass{} +\NewDocumentCommand\Class{st'om}{% + \ifdin{#4}{% + \gdef\@TempClass{~{\protect\idxfont(Klasse)}}% + \IfBooleanTF{#2}{% + \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempClass]{autoref}% + }{% + \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempClass]{#3}% + }% + }% +} +\DeclareExpandableDocumentCommand\@Class{st'om}{#4} +\newcommand*\DeclareClass[1]{% + \phantomsection\label{files:#1}% + \index[files]{\hyperref[files:#1]{#1~{\protect\idxfont(Klasse)}}|declare}% +} +% \end{macrocode} +% \end{macro}^^A \@TempClass +% \end{macro}^^A \DeclareClass +% \end{macro}^^A \@Class +% \end{macro}^^A \Class +% \begin{macro}{\Package} +% \begin{macro}{\@Package} +% \begin{macro}{\DeclarePackage} +% \begin{macro}{\@TempPackage} +% Für die Auszeichnungen von Paketen gelten vorhergehende Aussagen äquivalent. +% \begin{macrocode} +\newcommand*\@TempPackage{} +\NewDocumentCommand\Package{st'om}{% + \ifdin{#4}{% + \gdef\@TempPackage{~{\protect\idxfont(Paket)}}% + \IfBooleanTF{#2}{% + \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempPackage]{autoref}% + }{% + \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempPackage]{#3}% + }% + }% +} +\DeclareExpandableDocumentCommand\@Package{st'om}{#4} +\newcommand*\DeclarePackage[1]{% + \phantomsection\label{files:#1}% + \index[files]{\hyperref[files:#1]{#1~{\protect\idxfont(Paket)}}|declare}% +} +% \end{macrocode} +% \end{macro}^^A \@TempPackage +% \end{macro}^^A \DeclarePackage +% \end{macro}^^A \@Package +% \end{macro}^^A \Package +% \begin{macro}{\Option} +% \begin{macro}{\@TempOption} +% Für die Auszeichnung von Optionen wird zusätzlich unterschieden, ob der Befehl +% gerade innerhalb der Änderungsliste verwendet wird. Ist dies der Fall, wird +% der verarbeitende Befehl \cs{@ProcessChangedAt} aufgerufen. Mit dem optionalen +% Argument \emph{nach} dem Hauptargument kann der Option im Handbuch ein Wert +% zugewiesen werden. +% \begin{macrocode} +\newcommand*\@TempOption{} +\NewDocumentCommand\Option{st'omo}{% + \if@changelog% + \@ProcessChangedAt{options}{#4}% + \else% + \IfValueTF{#5}{\gdef\@TempOption{\texttt{=#5}}}{\gdef\@TempOption{}}% + \IfBooleanTF{#2}{% + \@ProcessOutput[#1]{\texttt{#4}}[\@TempOption]{options}{#4}{pageref}% + }{% + \@ProcessOutput[#1]{\texttt{#4}}[\@TempOption]{options}{#4}{#3}% + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@TempOption +% \end{macro}^^A \Option +% \begin{macro}{\Environment} +% \begin{macro}{\@TempEnvironment} +% Auch hier wird für die Änderungsliste unterschieden. +% \begin{macrocode} +\newcommand*\@TempEnvironment{} +\NewDocumentCommand\Environment{st'omo}{% + \if@changelog% + \@ProcessChangedAt{macros}{#4}% + \else% +% \end{macrocode} +% Außerdem wird für den Fall, dass der \cs{Environment}-Befehl innerhalb der +% \env{Declaration}-Umgebung verwendet wird, eine spezielle Ausgabe erzeugt. Nur +% hier kommt das optionale Argument nach dem Hauptargument zum Tragen. Damit +% können etwaige obligatorische und optionale Argumente angegeben werden. +% \begin{macrocode} + \if@declare% + \gdef\@TempEnvironment{% + \texttt{\bsc{}begin\{#4\}\IfValueTF{#5}{#5}{}}\tabularnewline% + \texttt{\dots}\tabularnewline% + \texttt{\bsc{}end\{#4\}}% + }% + \else% + \gdef\@TempEnvironment{\texttt{#4}}% + \fi% + \IfBooleanTF{#2}{% + \@ProcessOutput[#1]{\@TempEnvironment}{macros}{#4}{pageref}% + }{% + \@ProcessOutput[#1]{\@TempEnvironment}{macros}{#4}{#3}% + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@TempEnvironment +% \end{macro}^^A \Environment +% \begin{macro}{\Macro} +% Die Auszeichnung und der Indexeintrag eines Befehls. +% \begin{macrocode} +\NewDocumentCommand\Macro{st'om}{% + \if@changelog% + \@ProcessChangedAt[\bsc]{macros}{#4}% + \else% + \IfBooleanTF{#2}{% + \@ProcessOutput[#1]{\texttt{\bsc#4}}{macros}[\bsc]{#4}{pageref}% + }{% + \@ProcessOutput[#1]{\texttt{\bsc#4}}{macros}[\bsc]{#4}{#3}% + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \Macro +% \begin{macro}{\Key} +% \begin{macro}{\@TempKey} +% Die Auszeichnung und der Indexeintrag eines Parameters für Umgebungen und +% Befehle. Das erste Argument ist die Umgebung oder der Befehl, wofür der +% Parameter gültig ist. Das zweite Argument ist der Parameter selbst. Dafür +% werden die Befehle \cs{Environment} und \cs{Macro} lokale umdefiniert. +% \begin{macrocode} +\newcommand*\@TempKey{} +\NewDocumentCommand\Key{sommo}{% + \begingroup% + \let\Environment\@firstofone% + \let\Macro\@firstofone% + \if@changelog% + \@ProcessChangedAt{keys}{#4}% + \else% + \gdef\@TempKey{\if@declare~{\protect\idxfont(Parameter)}\fi}% + \IfValueTF{#5}{% + \@ProcessOutput[#1]{\texttt{#4}}[\texttt{=#5}\@TempKey]% + {macros}(#3){#4}{#2}% + }{% + \@ProcessOutput[#1]{\texttt{#4}}[\@TempKey]{macros}(#3){#4}{#2}% + }% + \fi% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \@TempKey +% \end{macro}^^A \Key +% \begin{macro}{\Length} +% \begin{macro}{\@TempLength} +% Die Auszeichnung und der Indexeintrag einer \hologo{LaTeX}-Länge. +% \begin{macrocode} +\newcommand*\@TempLength{} +\NewDocumentCommand\Length{som}{% + \if@changelog% + \@ProcessChangedAt[\bsc]{macros}{#3}% + \else% + \gdef\@TempLength{\if@declare~{\protect\idxfont(L\"ange)}\fi}% + \@ProcessOutput[#1]{\texttt{\bsc#3}}[\@TempLength]% + {macros}[\bsc]{#3}[~{\protect\idxfont(L\"ange)}]{#2}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@TempLength +% \end{macro}^^A \Length +% \begin{macro}{\Counter} +% \begin{macro}{\@TempCounter} +% Die Auszeichnung und der Indexeintrag einer \hologo{LaTeX}-Zählers. +% \begin{macrocode} +\newcommand*\@TempCounter{} +\NewDocumentCommand\Counter{som}{% + \if@changelog% + \@ProcessChangedAt{macros}{#3}% + \else% + \gdef\@TempCounter{\if@declare~{\protect\idxfont(Z\"ahler)}\fi}% + \@ProcessOutput[#1]{\texttt{#3}}[\@TempCounter]% + {macros}{#3}[~{\protect\idxfont(Z\"ahler)}]{#2}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@TempCounter +% \end{macro}^^A \Counter +% \begin{macro}{\Term} +% \begin{macro}{\@TempTerm} +% Die Auszeichnung und der Indexeintrag eines sprachabhängigen Bezeichners. +% \begin{macrocode} +\newcommand*\@TempTerm{} +\NewDocumentCommand\Term{som}{% + \if@changelog% + \@ProcessChangedAt[\bsc]{terms}{#3}% + \else% + \gdef\@TempTerm{\if@declare~{\protect\idxfont(Bezeichner)}\fi}% + \@ProcessOutput[#1]{\texttt{\bsc#3}}[\@TempTerm]{terms}[\bsc]{#3}{#2}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@TempTerm +% \end{macro}^^A \Term +% \begin{macro}{\TermTable} +% \begin{macro}{\@TermTable} +% \begin{macro}{\@@TermTable} +% \begin{macro}{\@termlist} +% Für sprachabhängige Bezeichner wird zusätzlich der Befehl \cs{TermTable} +% definiert, dem eine kommaseparierte Liste übergeben werden kann. Anhand dieser +% Liste werden die enthalten Begriffe für die Sprachen Deutsch und English in +% einer Tabelle ausgegeben. Die Sternversion dieses Befehls nutzt dafür die +%\env{tabularx}-Umgebung. Für diese kann ein zweites Argument angegeben werden, +% welches die gewünschte Breite der Tabelle angibt. +% \begin{macrocode} +\newcommand\@termlist{} +\let\@termlist\relax +\NewDocumentCommand\TermTable{smg}{% + \forcsvlist{\listadd\@termlist}{#2}% + \vskip\baselineskipglue\noindent% + \IfBooleanTF{#1}{% + \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}% + \setlength{\@tempdimb}{-.7\baselineskip}% + \begin{tabularx}{\@tempdima}{lXX}\@TermTable\end{tabularx} + }{% + \setlength{\@tempdimb}{\z@}% + \begin{tabular}{lll}\@TermTable\end{tabular} + }% + \let\@termlist\relax% + \par\noindent% +} +\newcommand*\@TermTable{% + \toprule + \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch} \tabularnewline + \midrule + \forlistloop\@@TermTable{\@termlist} + \bottomrule +} +\newcommand*\@@TermTable[1]{% + \Term{#1} & + \ifstr{\@nameuse{#1}}{}{\PName{leer}}{\@nameuse{#1}} & + \selectlanguage{english}\vspace*{\@tempdimb}% + \ifstr{\@nameuse{#1}}{}{\PName{empty}}{\@nameuse{#1}}\tabularnewline +} +% \end{macrocode} +% \end{macro}^^A \@termlist +% \end{macro}^^A \@@TermTable +% \end{macro}^^A \@TermTable +% \end{macro}^^A \TermTable +% \begin{macro}{\Font} +% \begin{macro}{\@TempFont} +% Die Auszeichnung und der Indexeintrag eines Schriftelementes. +% \begin{macrocode} +\newcommand*\@TempFont{} +\NewDocumentCommand\Font{som}{% + \if@changelog% + \@ProcessChangedAt{fonts}{#3}% + \else% + \gdef\@TempFont{% + \texttt{#3}\if@declare~{\protect\idxfont(Schriftelement)}\fi% + }% + \@ProcessOutput[#1]{\@TempFont}{fonts}{#3}{#2}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@TempFont +% \end{macro}^^A \Font +% \begin{macro}{\Color} +% \begin{macro}{\@TempColor} +% Die Auszeichnung und der Indexeintrag einer Farbe des \CDs. +% \begin{macrocode} +\newcommand*\@TempColor{} +\NewDocumentCommand\Color{somo}{% + \if@changelog% + \@ProcessChangedAt{colors}{#3}% + \else% + \gdef\@TempColor{% + \IfValueTF{#4}{~\texttt{(#4)}}{}% + \if@declare~{\protect\idxfont(Farbe)}\fi% + }% + \@ProcessOutput[#1]{\texttt{#3}}[\@TempColor]{colors}{#3}{#2}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@TempColor +% \end{macro}^^A \Color +% \begin{macro}{\@ProcessOutput} +% Der Befehl \cs{@ProcessOutput} ist das Herzstück der Auszeichnungen aller +% Elemente. Das erste optionale Argument ist der eventuell übergebene Stern für +% die eines beliebigen Auszeichnungsbefehl. Darauf folgen die gewünschte +% \marg{Ausgabe} und ein möglicher \oarg{Anhang}. Danach wird der Zielindex +% \marg{Index} und~-- für Parameter~-- der \parg{Haupteintrag} übergeben. Es +% folgt der zu machende Indexeintrag selbst mit \oarg{Vorsatz}, \marg{Eintrag}, +% \oarg{Anhang} und zum Abschluss \marg{Formatierung}. Der vollständige +% Funktionsaufruf lautet: +% \newline\begingroup\tiny +% \cs{@ProcessOutput}* +% \marg{Ausgabe}\oarg{Anhang}\marg{Index}\parg{Haupteintrag}\ignorespaces% +% \oarg{Vorsatz}\marg{Eintrag}\oarg{Anhang}\marg{Formatierung} +% \endgroup +% \begin{macrocode} +\NewDocumentCommand\@ProcessOutput{omomd()omom}{% +% \end{macrocode} +% Dabei wird unterschieden, ob ein beliebiger Auszeichnungsbefehl innerhalb der +% \env{Declaration}-Umgebung verwendet wird (\cs{if@declare}). Ist dies der Fall +% wird ein Label und mit \cs{@HyperIndex} ein spezieller Indexeintrag für die +% Deklaration erstellt. Eine Ausgabe der Auszeichnung erfolgt in diesem Fall +% nicht, dafür zeichnet der Befehl \cs{printdeclarationlist} verantwortlich. +% Außerdem wird mit Hilfe der \env{Declaration}-Umgebung der Anfang und +% das Ende der Deklaration für den Indexeintrag mit \cs{@HyperIndex} exakt +% festgelegt. Der Schalter \cs{if@openindex} wird zu Beginn der Umgebung auf +% \cs{@openindextrue} gesetzt, am Ende der Umgebung auf \cs{@openindexfalse}. +% \begin{macrocode} + \if@declare% + \if@openindex% + \if@noindex\else% + \IfValueTF{#5}% + {\edef\@tempa{#4:#5:#7}}% + {\edef\@tempa{#4:#7}}% + \label{\@tempa}% + \@HyperIndex{#4}{#5}{#6}{#7}{#8}[(declare]% + \fi% + #2\IfValueTF{#3}{#3}{}% + \else% + \if@noindex\else% + \@HyperIndex{#4}{#5}{#6}{#7}{#8}[declare)]% + \fi% + \fi% + \else% +% \end{macrocode} +% Findet der Auszeichnungsbefehl außerhalb der \env{Declaration}-Umgebung +% Verwendung, wird für den Fall, dass keine Sternversion genutzt wurde, mit +% \cs{@HyperIndex} ein Eintrag im dazugehörigen Index erzeugt. +% \begin{macrocode} + \IfBooleanTF{#1}{}{% + \@tempswafalse% + \ifstr{#9}{autoref}{\@tempswatrue}{}% + \ifstr{#9}{pageref}{\@tempswatrue}{}% + \if@tempswa% + \@HyperIndex{#4}{#5}{#6}{#7}{#8}% + \else% + \@HyperIndex{#4}{#5}{#6}{#7}{#8}[#9]% + \fi% + }% +% \end{macrocode} +% Danach erfolgt die Ausgabe der Auszeichnung. Sollte für diesen ein Label +% durch eine Deklaration innerhalb der \env{Declaration}-Umgebung definiert +% worden sein, so wird auf dieses ein Hyperlink gesetzt. Ansonsten erfolgt die +% normale textuelle Ausgabe. Für Parameter muss der Hyperlink dabei aufgrund des +% definierten Haupteintrag etwas anders ausgeführt werden. +% \begin{macrocode} + \IfValueTF{#5}{\edef\@tempa{#4:#5:#7}}{\edef\@tempa{#4:#7}}% + \ifcsdef{r@\@tempa}{% + \let\@tempb\relax% + \ifstr{#9}{autoref}{\def\@tempb{~unter \autoref{\@tempa}}}{}% + \ifstr{#9}{pageref}{\def\@tempb{~\vpageref{\@tempa}}}{}% + \mbox{\hyperref[\@tempa]{#2}\IfValueTF{#3}{#3}{}}\@tempb% + }{\mbox{#2\IfValueTF{#3}{#3}{}}}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \@ProcessOutput +% \begin{macro}{\@HyperIndex} +% Dieser Befehl sorgt für die eigentlichen Indexeinträge. Dabei werden für +% Einträge, welche innerhalb der \env{Declaration}-Umgebung deklariert wurden, +% ein Hyperlink im Index erstellt. Das erste Argument \marg{Index} enthält den +% gewünschten Zielindex. Danach folgt~-- für Parameter~-- der Haupteintrag. Es +% folgt der zu machende Indexeintrag selbst mit \marg{Vorsatz}, \marg{Eintrag}, +% \marg{Anhang} und zum Abschluss \oarg{Formatierung}. Der vollständige +% Funktionsaufruf lautet: +% \newline\begingroup\tiny +% \cs{@HyperIndex}\marg{Index}\marg{Haupteintrag}\ignorespaces% +% \marg{Vorsatz}\marg{Eintrag}\marg{Anhang}\oarg{Formatierung} +% \endgroup +% \begin{macrocode} +\NewDocumentCommand\@HyperIndex{mmmmmo}{% + \IfValueTF{#3}{\def\@tempa{#3}}{\def\@tempa{}}% + \IfValueTF{#5}{\def\@tempb{#5}}{\def\@tempb{}}% + \IfValueTF{#6}{\def\@tempc{|#6}}{\def\@tempc{}}% +% \end{macrocode} +% Auch hier wird unterschieden, ob es sich um einen Parameter (keys) handelt. +% Wurde für einen Parameter eine Umgebung oder ein Befehl bereits definiert, +% werden zwei Indexeinträge generiert. Einer beim Befehl selber als Untereintrag +% für den jeweiligen Parameter und einer im Index für Parameter selbst mit der +% dazugehörigen Umgebung bzw. dem dazugehörigen Befehl. Beide erhalten einen +% entsprechenden Hyperlink zur Deklaration. +% \begin{macrocode} + \IfValueTF{#2}{% + \ifcsdef{r@#1:#2:#4}{% + \edef\@tempb{#1:#2:#4}% + \index[#1]{% + #2!\hyperref[\@tempb]{\expandonce\@tempa#4}% + ~{\protect\idxfont(Parameter)}% + \expandonce\@tempc% + }% + \begingroup% + \let\Environment\@firstofone% + \def\Macro##1{\bsc##1}% + \index[keys]{% + \hyperref[\@tempb]{\expandonce\@tempa#4~{\protect\idxfont(#2)}}% + \expandonce\@tempc% + }% + \endgroup% + }{% + \index[#1]{#2!\expandonce\@tempa#4\expandonce\@tempb}% + }% +% \end{macrocode} +% Falls es sich nicht um einen Parameter handelt, wird lediglich der Eintrag im +% speziellen Index vorgenommen und ggf. ein Hyperlink erzeugt. +% \begin{macrocode} + }{% + \ifcsdef{r@#1:#4}{% + \index[#1]{% + \hyperref[#1:#4]{\expandonce\@tempa#4\expandonce\@tempb}% + \expandonce\@tempc% + }% + }{% + \index[#1]{\expandonce\@tempa#4\expandonce\@tempb\expandonce\@tempc}% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \@HyperIndex +% \begin{macro}{\@ProcessChangedAt} +% Auch die Änderungsliste erhält einen Hyperlink zur Deklaration, falls eine +% existiert. +% \begin{macrocode} +\newcommand*\@ProcessChangedAt[3][]{% + \ifcsdef{r@#2:#3}{\hyperref[#2:#3]{\mbox{#1#3}}}{\mbox{#1#3}}% +} +% \end{macrocode} +% \end{macro}^^A \@ProcessChangedAt +% \begin{environment}{Declaration} +% \begin{macro}{\printdeclarationlist} +% \changes{v1.01}{2014/04/24}{% +% bessere Positionierung von \cs{phantomsection}% +% } +% \begin{macro}{\@declarationlist} +% \begin{macro}{\@presetlist} +% \begin{macro}{\if@presetlist} +% \begin{macro}{\@additionallist} +% \begin{macro}{\if@additionallist} +% Es werden die Hilfsmakros für die Ausgabe einer Deklaration initialisiert. +% \begin{macrocode} +\newcommand\@declarationlist{} +\newcommand\@presetlist{} +\newif\if@presetlist +\newcommand\@additionallist{} +\newif\if@additionallist +\let\@declarationlist\relax +\let\@presetlist\relax +\let\@additionallist\relax +% \end{macrocode} +% Die \env{Declaration}-Umgebung dient zur Deklaration von Optionen, Umgebungen, +% Befehlen, Parametern, Bezeichnern, Längen, Schriftelementen und Farben. Diese +% werden mit den entsprechenden Auszeichnungsbefehlen übergeben. Im zweiten +% Argument~-- das erste optionale~-- kann die Voreinstellung für eine Option +% oder dergleichen angegeben werden. Das nächste Argument erlaubt die Angabe +% einer bedingten Voreinstellung, also einer anderen Voreinstellung als der +% zuerst angegeben unter bestimmten Voraussetzungen. Diese muss in der Form +% \oarg{Bedingung:Voreinstellung} angegeben werden. Das letzte Argument ist +% ebenfalls optional, wird aber in der Form \marg{Zusatz} angegeben und enthält +% ggf. zusätzliche Informationen. +% +% Die Umgebung selbst gibt zu Beginn nichts weiter aus sondern sammelt lediglich +% alle übergebenen Argumente in jeweiligen Listen. Die eigentliche Ausgabe +% erfolgt mit dem Befehl \cs{printdeclarationlist}. +% \begin{macrocode} +\NewDocumentEnvironment{Declaration}{moog}{% + \listadd\@declarationlist{#1}% + \IfNoValueTF{#2}{% + \listadd\@presetlist{\relax}% + }{% + \@presetlisttrue% + \IfNoValueTF{#3}{% + \listadd\@presetlist{preset:\,#2}% + }{% + \def\@tempa[##1:##2]{##1:\,##2}% + \listeadd\@presetlist{preset:\,#2\,|\,\expandonce{\@tempa[#3]}}% + }% + }% + \IfNoValueTF{#4}{% + \listadd\@additionallist{\relax}% + }{% + \@additionallisttrue% + \listadd\@additionallist{\hspace*{\tabcolsep}\small(#4)}% + \in@{\Environment}{#1}% + \ifin@ \listadd\@additionallist{\tabularnewline}\fi% + }% +}{% +% \end{macrocode} +% Am Ende der Umgebung wird das übergebenen Hauptargument abermals ausgeführt, +% was zum Setzen des Indexeintragsendes für die jeweilige Deklaration führt +% (\cs{@openindexfalse}, siehe \cs{@ProcessOutput}). Dafür werden die Makros für +% die Angabe obligatorischer und optionaler Parameter lokal umdefiniert. +% \begin{macrocode} + \ifx\@declarationlist\relax\else% + \ClassError{\tudclsname}{\string\printdeclarationlist\space is missing}{% + \string\@declarationlist\space is not empty. Did you forget\MessageBreak% + to print this list with \string\printdeclarationlist?% + }% + \fi% + \let\PName\@gobble% + \let\PBoolean\relax% + \let\PSet\relax% + \let\PValue\@gobble% + \let\Parameter\@gobble% + \let\OParameter\@gobble% + \let\LParameter\relax% + \let\OLParameter\@gobble% + \let\PParameter\@gobble% + \let\POParameter\@gobble% + \vskip-\lastskip% + \@declaretrue\@openindexfalse#1\@declarefalse% + \pagebreak[0]% +} +% \end{macrocode} +% Mit dem Befehl \cs{printdeclarationlist} erfolgt die eingentliche Ausgabe +% aller Deklarationen. Zweck ist es, mehrere \env{Declaration}-Umgebungen +% ineinander verschachteln zu können und eine Ausgabe aller auf einmal zu +% erzeugen. Die durch die ggf. nacheinander folgenden Deklarationen wurden in +% entsprechenden Listen gesammelt und werden hier jetzt formatiert ausgegben. +% \begin{macrocode} +\NewDocumentCommand\printdeclarationlist{sod()}{% + \ifx\@declarationlist\relax\else% +% \end{macrocode} +% Die Sternversion des Befehls erzeugt die Ausgabe ohne Deklarationsindexbefehle. +% \begin{macrocode} + \IfBooleanTF{#1}{\global\@noindextrue}{\global\@noindexfalse} + \ifvmode\else\par\fi% + \allowbreak% + \addpenalty{\@beginparpenalty}% + \addvspace{\baselineskipglue}% + \@declaretrue\@openindextrue% + \phantomsection\noindent% +% \end{macrocode} +% Die deklarierten Optionen, Umgebungen, Befehle etc. werden in einer umrahmten +% Box ausgegeben. +% \begin{macrocode} + \def\@tempa##1{\ignorespaces##1\tabularnewline}% + \begin{tabular}{|l|}% + \hline% + \forlistloop\@tempa{\@declarationlist}% + \hline% + \end{tabular}% + \@declarefalse% +% \end{macrocode} +% Danach werden ggf. die Voreinstellungen und Zusatzinformationen gesetzt. +% \begin{macrocode} + \ifboolexpr{bool {@presetlist} or bool {@additionallist}}{% + \if@presetlist% + \qquad% + \texttt{% + \begin{tabular}{l}% + \forlistloop\@tempa{\@presetlist}% + \end{tabular}% + }% + \fi% + \if@additionallist% + \begin{tabular}{@{}l@{}}% + \forlistloop\@tempa{\@additionallist}% + \end{tabular}% + \fi% + }{}% +% \end{macrocode} +% Das optionale Argument kann für eine Versionsnummer für eine gemachte Änderung +% genutzt werden. +% \begin{macrocode} + \IfValueTF{#2}{% + \ChangedAt{#2}% + \begingroup% + \let\marginnote\@gobble% + \def\@tempa##1{\ChangedAt{#2}[##1]}% + \forlistloop\@tempa{\@declarationlist}% + \endgroup% + }{}% + \global\let\@declarationlist\relax% + \global\let\@presetlist\relax% + \global\@presetlistfalse% + \global\let\@additionallist\relax% + \global\@additionallistfalse% +% \end{macrocode} +% Zum Schluss wird das zweite optionale Argument (in runden Klammern) neben der +% Deklaratiionsbox ausgegeben. +% \begin{macrocode} + \IfValueTF{#3}{#3}{}% + \vskip\baselineskipglue\nobreak% + \@afterindentfalse\@afterheading% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \if@additionallist +% \end{macro}^^A \@additionallist +% \end{macro}^^A \if@presetlist +% \end{macro}^^A \@presetlist +% \end{macro}^^A \@declarationlist +% \end{macro}^^A \printdeclarationlist +% \end{environment}^^A Declaration +% \begin{environment}{tabularm} +% \begin{macro}{\allcolumnpar} +% \begin{macro}{\@allcolumnpar} +% \begin{macro}{\tabularm@box} +% \begin{macro}{\tabularm@num} +% \begin{length}{\tabularm@wd} +% Die Umgebung \env{tabularm} ist eine Erweiterung der \env{tabularm}-Umgebung. +% In dieser wird die Breite der zu setzenden Tabelle mit Hilfe der Box +% \cs{tabularm@box} in \cs{tabularm@wd} gespeichert. Anschließend kann mit dem +% Befehl \cs{allcolumnpar} eine Zeile über alle Spalten der Tabelle +% ausgegeben werden. Dabei ist das zu übergebende Argument die Anzahl der zu +% erzeugenden, linksbündigen Spalten. +% \begin{macrocode} +\newsavebox\tabularm@box +\newlength\tabularm@wd +\newcommand*\tabularm@num{1} +\NewEnviron{tabularm}[1]{% + \begin{lrbox}{\tabularm@box}% + \let\allcolumnpar\@gobble% + \begin{tabular}{*{#1}l}\BODY\end{tabular}% + \end{lrbox}% + \setlength{\tabularm@wd}{\wd\tabularm@box}% +%% \addtolength{\tabularm@wd}{-2\tabcolsep}% + \def\tabularm@num{#1}% + \let\allcolumnpar\@allcolumnpar% + \begin{tabular}{*{#1}l}\BODY\end{tabular}% +} +\newcommand*\@allcolumnpar[1]{% + \multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}% +} +% \end{macrocode} +% \end{length}^^A \tabularm@wd +% \end{macro}^^A \tabularm@box +% \end{macro}^^A \tabularm@num +% \end{macro}^^A \@allcolumnpar +% \end{macro}^^A \allcolumnpar +% \end{environment}^^A tabularm +% \begin{macro}{\PName} +% \begin{macro}{\PBoolean} +% \begin{macro}{\PSet} +% \begin{macro}{\Parameter} +% \begin{macro}{\OParameter} +% \begin{macro}{\LParameter} +% \begin{macro}{\OLParameter} +% \begin{macro}{\PValue} +% \begin{macro}{\PParameter} +% \begin{macro}{\POParameter} +% Diese Befehle dienen zum Auszeichnen von obligatorischen und optionalen +% Parametern und Befehlen oder bestimmten Wertzuweisungen. +% \begin{macrocode} +\DeclareRobustCommand*\PName[1]{\texttt{\textit{<#1>}}} +\DeclareRobustCommand*\PBoolean{\PName{Ein-Aus-Wert}}% +\DeclareRobustCommand*\PSet{\PName{Einstellung}}% +\DeclareRobustCommand*\Parameter[1]{\texttt{\{}\PName{#1}\texttt{\}}} +\DeclareRobustCommand*\OParameter[1]{\texttt{[}\PName{#1}\texttt{]}} +\DeclareRobustCommand*\LParameter{\texttt{[}\PName{Parameterliste}\texttt{]}} +\DeclareRobustCommand*\OLParameter[1]{% + \texttt{[}\PName{#1}|\PName{Parameterliste}\texttt{]} +} +\DeclareRobustCommand*\PValue[1]{\texttt{#1}} +\DeclareRobustCommand*\PParameter[1]{\texttt{\{#1\}}} +\DeclareRobustCommand*\POParameter[1]{\texttt{[#1]}} +% \end{macrocode} +% \end{macro}^^A \POParameter +% \end{macro}^^A \PParameter +% \end{macro}^^A \PValue +% \end{macro}^^A \OLParameter +% \end{macro}^^A \LParameter +% \end{macro}^^A \OParameter +% \end{macro}^^A \Parameter +% \end{macro}^^A \PSet +% \end{macro}^^A \PBoolean +% \end{macro}^^A \PName +% \begin{environment}{code} +% \begin{environment}{Example} +% Diese beiden Umgebungen werden für die Erläuterung von bestimmten Aspekten +% zusammen mit einem Quelltextbeispiel im Handbuch verwendet. Dabei enthält +% \env{Example} einen kurzen, erklärenden Text. In der \env{code}-Umgebung, +% welche innerhalb von \env{Example} verwendet wird, folgt der Quelltext. +% \begin{macrocode} +\RequirePackage{listings} +\lstnewenvironment{code}[1][]{\lstset{style=tudscr,#1}}{} +\lstdefinestyle{tudscr}{% + basicstyle=\let\bfseries@tt\mdseries@tt\ttfamily\setstretch{1},% + columns=fullflexible,keepspaces,% + aboveskip=.5\baselineskipglue,% + belowskip=.5\baselineskipglue,% + language=[LaTeX]TeX,% + texcl,% +} +\newenvironment{Example}{% + \labeling{{\usekomafont{disposition}Beispiel:\ }}% + \item[{\usekomafont{disposition}Beispiel:\ }]% +}{% + \endlabeling% +} +% \end{macrocode} +% \end{environment}^^A Example +% \end{environment}^^A code +% \begin{option}{ToDo} +% \begin{macro}{\ToDo} +% \begin{macro}{\todo@mark} +% Die Option kann aktiviert werden, um mit \cs{ToDo} definerte, offene Aufgaben +% als gerahmte Anmerkung im Text anzuzeigen. Das optionale Argument kann genutzt +% werden, um die Randnotiz~-- standardmäßig \glqq ToDo\grqq~-- zu ändern. +% \begin{macrocode} +\newcommand*\todo@mark{} +\newcommand\ToDo[2][]{} +\TUD@key{ToDo}[true]{% + \TUD@set@ifkey{ToDo}{@tempswa}{#1}% + \if@tempswa% + \renewcommand\ToDo[2][]{% + \def\todo@mark{\ifstr{##1}{}{ToDo}{##1}}% + \endgraf\vskip1ex% + \hfuzz0.8pt% + \noindent\leavevmode\marginnote{\fbox{\todo@mark\strut}}% + [\dimexpr-\fboxsep-\fboxrule]% + \fbox{\parbox{\dimexpr\textwidth-2\fboxsep}{##2\strut}}% + \vskip1ex% + \noindent$\!\!$% + }% + \else% + \renewcommand\ToDo[2][]{}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \todo@mark +% \end{macro}^^A \ToDo +% \end{option}^^A ToDo +% \begin{macro}{\vTUD} +% \begin{macro}{\vTUDScript} +% \begin{macro}{\TUDScript} +% \begin{macro}{\Attention} +% \begin{macro}{\forum} +% \begin{macro}{\notudscrartcl} +% \begin{macro}{\CD} +% \begin{macro}{\CDs} +% \begin{macro}{\TUD} +% \begin{macro}{\TnUD} +% \begin{macro}{\DDC} +% \begin{macro}{\Univers} +% \begin{macro}{\DIN} +% Diese Befehle stellen regelmäßig im Handbuch genutzte Textbausteine bereit. +% Dazu wird der Befehl \cs{xspace} aus dem \pkg{xspace}-Paket genutzt. +% \begin{macrocode} +\RequirePackage{xspace} +\newcommand*\vTUD{Version~\NoCaseChange{v}1.0\xspace} +% \end{macrocode} +% Der Befehl \cs{vTUDScript} enthält die aktuelle Versionsnummer des +% \TUDScript-Bundles. +% \begin{macrocode} +\newcommand*\vTUDScript{} +\AtBeginDocument{% + \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}% + \edef\@tempa{\TUDVersion}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax% +} +\DeclareRobustCommand\TUDScript{% + \ifdin{TUD-KOMA-SCRIPT}{% + \texorpdfstring{% + \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% + }{TUD-KOMA-Script}% + }% +} +% \end{macrocode} +% \dots und der Rest. +% \begin{macrocode} +\newcommand*\Attention{\marginnote{\tiny\fbox{Achtung!}}} +\newcommand*\forum{\url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}\xspace} +\newcommand*\notudscrartcl{% + Für die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verfügbar. +} +\newcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} +\newcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} +\newcommand*\TUD{Technische Universit\"at Dresden\xspace} +\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\DDC{\mbox{DRESDEN-concept}\xspace} +\newcommand*\Univers{\textubn{Univers}\xspace} +\newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} +% \end{macrocode} +% \end{macro}^^A \DIN +% \end{macro}^^A \Univers +% \end{macro}^^A \DDC +% \end{macro}^^A \TnUD +% \end{macro}^^A \TUD +% \end{macro}^^A \CDs +% \end{macro}^^A \CD +% \end{macro}^^A \notudscrartcl +% \end{macro}^^A \forum +% \end{macro}^^A \Attention +% \end{macro}^^A \TUDScript +% \end{macro}^^A \vTUDScript +% \end{macro}^^A \vTUD +% Ganz zum Schluss wird der Seitenstil für Teileseiten gesetzt. +% \begin{macrocode} +\renewcommand*\partpagestyle{empty} +% \end{macrocode} +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx new file mode 100644 index 00000000000..b2f2ccdef79 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-mathswap.dtx @@ -0,0 +1,241 @@ +% \CheckSum{130} +% \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-mathswap.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-mathswap.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (mathswap)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-mathswap.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Aktive Trennzeichen im mathematischen Satz} +% +% Die Verwendung von Dezimal- und Tausendertrennzeichen im mathematischen Satz +% sind regional sehr unterschiedlich. In den meisten englischsprachigen Ländern +% wird der Punkt als Dezimaltrennzeichen und das Komma zur Zifferngruppierung +% verwendet, im restlichen Europa wird dies genau entgegengesetzt praktiziert. +% Dieses Paket soll dazu dienen, beliebige formatierte Zahlen in ihrer Ausgabe +% anzupassen. Dafür werden die Zeichen Punkt (\ .\ ) und Komma (\ ,\ ) als +% aktive Zeichen im Mathematikmodus definiert. +% +% Ähnliche Funktionalitäten werden bereits durch die Pakete \pkg{icomma} und +% \pkg{ziffer} bereitgestellt. Bei \pkg{icomma} muss jedoch beim +% Verfassen des Dokumentes durch den Autor beachtet werden, ob das verwendete +% Komma einem Dezimaltrennzeichen entspricht ($t=1,\!2$) oder aber einem +% normalen Komma im Mathematiksatz ($z=f(x,y)$), wo ein gewisser Abstand nach +% dem Komma durchaus gewünscht ist. Das Paket \pkg{ziffer} liefert dafür die +% gewünschte Funktionalität,% +% \footnote{kein Leerraum nach Komma, wenn direkt danach eine Ziffer folgt} +% ist allerdings etwas unflexibel, was den Umgang mit den Trennzeichen anbelangt. +% Als Alternative zu diesem Paket kann außerdem \pkg{ionumbers} verwendet werden. +% +% Das Paket \pkg{mathswap} sorgt dafür, dass Trennzeichen direkt vor einer +% Ziffer erkannt und nach bestimmten Vorgaben ersetzt werden. Sollte sich jedoch +% zwischen Trennzeichen und Ziffer Leerraum befinden, wird dieser als solcher +% auch gesetzt. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*package&header> +% \fi +% +% \subsection{Identifizierung des Pakets \pkg{mathswap}} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mathswap}[% + \TUDVersion\space package (swap mathematical separators)% +] +% \end{macrocode} +% +% \iffalse +% +%<*package&body> +% \fi +% +% \subsection{Das Paket \pkg{mathswap}} +% +% \begin{macro}{\commaswap} +% \begin{macro}{\dotswap} +% \begin{macro}{\@commaswap} +% \begin{macro}{\@dotswap} +% Die beiden Befehle \cs{commaswap} und \cs{dotswap} sind die zentrale +% Benutzerschnittstelle des Paketes. Das Makro \cs{commaswap} definiert das +% Trennzeichen oder den Inhalt, wodurch ein Komma ersetzt werden soll, auf +% welches direkt danach eine Ziffer folgt. Normalerweise setzt \LaTeX +% nach einem Komma im mathematischen Satz zusätzlich einen horizontalen Abstand. +% Bei der Ersetzung durch \cs{commaswap} entfällt dieser. Die Voreinstellung +% für \cs{commaswap} ist deshalb auf ein Komma (,) gesetzt. +% +% Mit dem Makro \cs{dotswap} kann definiert werden, wodurch der Punkt im +% mathematischen Satz ersetzt werden soll, wenn auf diesen direkt anschließend +% eine Ziffer folgt. Da der Punkt im deutschsprachigem Raum zur Gruppierung von +% Ziffern genutzt wird, ist hierfür standardmäßig ein halbes geschütztes +% Leerzeichen definiert (\cs{,}). +% +% Die mit \cs{commaswap}\marg{Trennzeichen} und \cs{dotswap}\marg{Trennzeichen} +% definierten Trennzeichen werden in \cs{@commaswap} und \cs{@dotswap} gesichert. +% \begin{macrocode} +\newcommand*\@commaswap{,} +\newcommand*\commaswap[1]{\gdef\@commaswap{#1}} +\newcommand*\@dotswap{\,} +\newcommand*\dotswap[1]{\gdef\@dotswap{#1}} +% \end{macrocode} +% \end{macro}^^A \@dotswap +% \end{macro}^^A \@commaswap +% \end{macro}^^A \dotswap +% \end{macro}^^A \commaswap +% \begin{macro}{\ms@comma} +% \begin{macro}{\ms@commachar} +% \begin{macro}{\ms@dot} +% \begin{macro}{\ms@dotchar} +% In den Befehlen \cs{ms@commachar} und \cs{ms@dotchar} wird die originale +% Definition von Komma und Punkt im Mathematikmodus gesichert, welche weiterhin +% verwendet wird, falls nach diesen nicht direkt eine Ziffer folgt. Mit den +% Makros \cs{ms@comma} und \cs{ms@dot} werden die Definitionen von Komma und +% Punkt als normale Textzeichen für den mathematischen Satz bereitgehalten. +% Anschließend werden beide als aktive Zeichen für den Mathematikmodus gesetzt. +% \begin{macrocode} +\newcommand*\ms@commachar{} +\newcommand*\ms@dotchar{} +\AtBeginDocument{% + \DeclareMathSymbol{\ms@comma}{\mathord}{letters}{"3B}% + \mathchardef\ms@commachar\mathcode\expandafter`,% + \mathcode\expandafter`,="8000% + \DeclareMathSymbol{\ms@dot}{\mathord}{letters}{"3A}% + \mathchardef\ms@dotchar\mathcode\expandafter`.% + \mathcode\expandafter`.="8000% +} +% \end{macrocode} +% \end{macro}^^A \ms@dotchar +% \end{macro}^^A \ms@dot +% \end{macro}^^A \ms@commachar +% \end{macro}^^A \ms@comma +% \begin{macro}{\ms@token} +% \begin{macro}{.} +% \begin{macro}{,} +% \begin{macro}{\ms@smartcomma} +% \begin{macro}{\ms@smartdot} +% Mit \cs{futurelet} wird dem Makro \cs{ms@token} das nachfolgende Zeichen von +% Komma bzw. Punkt zugewiesen. Anschließend wird mittels \cs{ms@smartcomma} bzw. +% \cs{ms@smartdot} geprüft, ob es sich beim Inhalt von \cs{ms@token} um eine +% Ziffer handelt. Dazu wird der Befehl \cs{ms@ifnum} verwendet. Sollte dies der +% Fall sein, so wird ein Komma innerhalb einer Zahl durch \cs{@commaswap} und +% ein Punkt entsprechend mit \cs{@dotswap} ersetzt. Sollte direkt nach dem +% Trennzeichen keine Ziffer folgen, wird für Punkt und Komma die originale +% Definition aus \cs{ms@commachar} bzw. \cs{ms@dotchar} verwendet. +% \begin{macrocode} +\newcommand*\ms@token{} +\begingroup% + \catcode`,=\active% + \gdef,{\futurelet\ms@token\ms@smartcomma}% + \catcode`.=\active% + \gdef.{\futurelet\ms@token\ms@smartdot}% +\endgroup% +\def\ms@smartcomma{\ms@ifnum{\@commaswap}{\ms@commachar}} +\def\ms@smartdot{\ms@ifnum{\@dotswap}{\ms@dotchar}} +% \end{macrocode} +% \end{macro}^^A \ms@smartdot +% \end{macro}^^A \ms@smartcomma +% \end{macro}^^A . +% \end{macro}^^A , +% \end{macro}^^A \ms@token +% \begin{macro}{\ms@ifnum} +% \begin{macro}{\ms@@ifnum} +% Der Befehl \cs{ms@ifnum} reicht das erste Argument an \cs{ms@@ifnum} weiter, +% falls der Inhalt von \cs{ms@token} zu einer Ziffer expandiert. Andernfalls +% wird das zweite Argument ausgeführt. +% \begin{macrocode} +\def\ms@ifnum#1#2{% + \ifx\ms@token0\ms@@ifnum{#1}\else% + \ifx\ms@token1\ms@@ifnum{#1}\else% + \ifx\ms@token2\ms@@ifnum{#1}\else% + \ifx\ms@token3\ms@@ifnum{#1}\else% + \ifx\ms@token4\ms@@ifnum{#1}\else% + \ifx\ms@token5\ms@@ifnum{#1}\else% + \ifx\ms@token6\ms@@ifnum{#1}\else% + \ifx\ms@token7\ms@@ifnum{#1}\else% + \ifx\ms@token8\ms@@ifnum{#1}\else% + \ifx\ms@token9\ms@@ifnum{#1}\else% + #2% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% +} +% \end{macrocode} +% Wurde eine nachfolgende Ziffer erkannt, so wird die Definition von Punkt und +% Komma auf die eines normalen Textzeichens gesetzt und anschließend die mit +% \cs{commaswap} bzw. \cs{dotswap} angegebene Ersetzung ausgegeben. +% \begin{macrocode} +\def\ms@@ifnum#1{% + \begingroup% + \mathcode\expandafter`,=\the\ms@comma% + \mathcode\expandafter`.=\the\ms@dot% + #1% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \ms@@ifnum +% \end{macro}^^A \ms@ifnum +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx new file mode 100644 index 00000000000..5577bdc3721 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx @@ -0,0 +1,385 @@ +% \CheckSum{195} +% \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-misc.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-misc.dtx}% + [2014/04/24 v2.01 TUD-KOMA-Script (miscellaneous)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-misc.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Verschiedenes} +% +% Alles, wofür sich eine separate Datei nicht lohnt, landet hier. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&option> +% \fi +% +% \subsection{Sprungmarken} +% +% \begin{option}{tudbookmarks} +% \begin{macro}{\if@tud@bookmarks} +% Wird das Paket \pkg{hyperref} geladen, so kann die Option \opt{tudbookmarks} +% genutzt werden, um zu steuern, ob für Titel und Inhaltsverzeichnis +% automatisch ein Eintrag für die Sprungmarken erzeugt werden soll. +% \begin{macrocode} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +% \end{macrocode} +% \end{macro}^^A \if@tud@bookmarks +% \end{option}^^A tudbookmarks +% +% \iffalse +% +%<*class&!option> +% \fi +% +% \begin{macro}{\tudbookmark} +% \begin{macro}{\tud@footnote@unhyper} +% \begin{macro}{\tud@footnote@rehyper} +% Die Befehle zum Eintragen der Sprungmarken. Im Dokument kann auch der Befehl +% \cs{tudbookmark} vom Anwender genutzt werden, um manuell weitere Lesezeichen +% zu erzeugen. +% +% Außerdem müssen für die Titelseite die Fußnoten auf den Originalzustand +% zurückgesetzt werden. Dafür werden die Befehle \cs{tud@footnote@unhyper} und +% \cs{tud@footnote@rehyper} definert. +% \begin{macrocode} +\newcommand*\tudbookmark[1][]{\@gobbletwo} +\newcommand*\phantomsection{} +\let\phantomsection\relax +\newcommand*\tud@footnote@unhyper{} +\newcommand*\tud@footnote@rehyper{} +\AfterPackage{hyperref}{% + \renewcommand*\tudbookmark[3][]{% + \relax% + \if@tud@bookmarks% + \phantomsection% + \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \fi% + }% + \renewcommand*\tud@footnote@unhyper{% + \let\Hy@saved@footnotemark\@footnotemark% + \let\Hy@saved@footnotetext\@footnotetext% + \let\@footnotemark\H@@footnotemark% + \let\@footnotetext\H@@footnotetext% + }% + \renewcommand*\tud@footnote@rehyper{% + \ifx\@footnotemark\H@@footnotemark% + \let\@footnotemark\Hy@saved@footnotemark% + \fi% + \ifx\@footnotetext\H@@footnotetext% + \let\@footnotetext\Hy@saved@footnotetext% + \fi% + }% +} +\AtBeginDocument{% + \pretocmd{\makecover}{% +%<*book|report> + \tudbookmark[0]{\coverpagename}{cover} +% +%<*article> + \tudbookmark[1]{\coverpagename}{cover} +% + \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% + }{}{\tud@patch@wrn{makecover}}% + \pretocmd{\maketitle}{% +%<*book|report> + \tudbookmark[0]{\titlepagename}{title} +% +%<*article> + \tudbookmark[1]{\titlepagename}{title} +% + \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% + }{}{\tud@patch@wrn{maketitle}}% + \pretocmd{\tableofcontents}{% +%<*book|report> + \if@openright\cleardoublepage\else\clearpage\fi% + \tudbookmark[0]{\contentsname}{toc}% +% +%<*article> + \tudbookmark[1]{\contentsname}{toc}% +% + \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% + }{}{\tud@patch@wrn{tableofcontents}}% +} +% \end{macrocode} +% \end{macro}^^A \tud@footnote@rehyper +% \end{macro}^^A \tud@footnote@unhyper +% \end{macro}^^A \tudbookmark +% +% \subsection{Parameter für Umgebungen und mehrspaltige Texte} +% +% Diese Befehle dienen dazu, bei Umgebungen die Sprache über einen Parameter +% anzugeben sowie das Paket \pkg{multicol} verwenden zu können. +% \begin{macro}{\tud@environmenthandler} +% Hiermit kann sowohl die zu verwendende Sprache als auch die Anzahl der +% gewünschten Spalten für bestimmte Umgebungen ohne die explizite Angabe eines +% Schlüssels festgelegt werden. Momentan betrifft das die beiden Umgebungen +% \env{abstract} und \env{tudpage}. +% \begin{macrocode} +\newcommand*\tud@environmenthandler[1]{% + \def\@tempa{#1}% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifxnumber{\@tempb}{\let\tud@multicols\@tempb}{% + \ifstr{\@tempb}{twocolumn}{\def\tud@multicols{2}}{% + \expandafter\selectlanguage\expandafter{\@tempb}% + }}% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@environmenthandler +% \begin{macro}{\tud@multicols} +% \begin{macro}{\tud@multicols@check} +% Im Makro \cs{tud@multicols} wird die Anzahl der gewünschten Spalten in einer +% Umgebung für die Verwendung des \pkg{multicol}"=Paketes gespeichert. +% \begin{macrocode} +\newcommand*\tud@multicols{1} +% \end{macrocode} +% Der Befehl \cs{tud@multicols@check} prüft, ob das Paket \pkg{multicol} geladen +% wurde. Falls dies nicht der Fall ist, wird eine Warnung ausgegeben. +% \begin{macrocode} +\newcommand*\tud@multicols@check{% + \ifdef{\multicols}{}{% + \ifnum\tud@multicols>1\relax% + \ClassWarning{\tudcls@name}{% + The option 'columns=\tud@multicols' is only supported,\MessageBreak% + when package 'multicol' is loaded% + }% + \def\tud@multicols{1}% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@multicols@check +% \end{macro}^^A \tud@multicols +% +% \iffalse +% +%<*titlepage|class&!option> +% \fi +% +% \subsection{Bedingte Majuskeln für Überschriften} +% +% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch +% tatsächlich die Schrift DIN~Bold verwendet wird. +% \begin{macro}{\tud@makeuppercase} +% \begin{macro}{\ifdin} +% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die +% richtige Schriftfamilie verwendet wird. +% \begin{macrocode} +\newcommand*\tud@makeuppercase[1]{% + \ifx\f@family\tud@dinbold% + \begingroup% + \MakeTextUppercase{#1}% + \endgroup% + \else% + #1% + \fi% +% \end{macrocode} +% Aufgrund eines Fehlers im \hologo{LaTeX}-Kernels liegt die Grundlinie für die +% Gliederungsebene \cs{scetion} zu hoch. Mit dem Einfügen des vertikalen +% Freiraums für die Umlaute würde diese automatisch nach unten verschoben. +% Allerdings ist das ein ziemlich übler Hack. +% \begin{macrocode} +%% \vphantom{\"A\"O\"U}% +} +% \end{macrocode} +% Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig +% wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für die +% die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe im +% Dokument sowie Inhaltserzeichnis und/oder Kolumnentitel zu unterscheiden. +% \begin{macrocode} +\newcommand*\ifdin{% + \ifx\f@family\tud@dinbold\relax% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \ifdin +% \end{macro}^^A \tud@makeuppercase +% +% \iffalse +% +%<*class&option> +% \fi +% +% \subsection{Erzwungene Minuskeln für Strings} +% +% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in +% bestimmten Feldern sicher erkennen zu können, werden diese zwingend in +% Kleinbuchstaben geschieben. +% \begin{macro}{\tud@lowerstring} +% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} bennutzt. +% \begin{macrocode} +\newcommand*\tud@lowerstring[2]{% + \protected@edef#1{#2}% + \lowercase\expandafter{% + \expandafter\gdef\expandafter #1\expandafter{#1}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@lowerstring +% +% \subsection{Standardoptionen} +% +% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse. +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\scrcls@name}} +% \end{macrocode} +% Es werden die Standardoptionen ausgeführt. Die Ausführung selbst wird durch +% den Befehl \cs{TUD@noworlater} innerhalb von \cs{TUD@key} auf das Ende der +% \KOMAScript-Klasse verzögert. +% \todo[v3.12]{Datum anpassen} +% \begin{macrocode} +\TUDExecuteOptions{\TUDDefaultOptions} +\TUDProcessOptions +\LoadClass{\scrcls@name}[2012/07/29] +% \end{macrocode} +% Nach der Abarbeitung aller Optionen innerhalb der Präambel müssen die +% folgenden Befehle einmalig ausgeführt werden. Damit dies sicher erst danach +% und am Ende der Präambel erfolgt, wird die Ausführung mit \cs{AtEndPreamble} +% verzögert. +% \begin{macrocode} +\AtEndPreamble{% + \tud@layout@process% + \recalctypearea% +} +% \end{macrocode} +% +% \subsection{Externe Pakete} +% +% \changes{v2.01}{2014/04/24}{% +% Versionsanforderungen bei benötigten Paketen ergänzt% +% } +% +% Für die Verwendung der hier erstellten \KOMAScript-Wrapper-Klassen werden +% einige wenige Pakete eingebunden. Dabei wurde versucht, die Anzahl der +% Pakete möglichst gering zu halten und nur die wirklich notwendigen zu +% verwenden. +% +% Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit +% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase} +% verbessert, wird das Paket \pkg{textcase} genutzt. +% \begin{macrocode} +\RequirePackage{textcase}[2004/10/07] +% \end{macrocode} +% Für das Setzen von Feldern werden bei einem übergebenen Argument führende und +% angehängte Leerzeichen entfernt. +% \begin{macrocode} +\RequirePackage{trimspaces}[2009/09/17] +% \end{macrocode} +% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und +% der Seitenränder, wie es vom \CD der TU~Dresden verlangt wird. +% \begin{macrocode} +\RequirePackage{geometry}[2010/09/12] +% \end{macrocode} +% Das Paket \pkg{mweights} wird verwendet, um für die einzelnen Schriftfamilien +% unterschiedliche Sandardstärken zu nutzen. Insbesondere betrifft dies die +% \texttt{typewriter}"=Familie. +% \begin{macrocode} +\RequirePackage{mweights}[2013/07/21] +% \end{macrocode} +% Die \env{abstract}-Umgebung wird im Vergleich zu den \KOMAScript-Klassen +% stark erweitert. Dafür wird das Paket \pkg{environ} für eine erweiterte +% Umgebungsdefinition benötigt. +% \begin{macrocode} +\RequirePackage{environ}[2013/04/01] +% \end{macrocode} +% Es folgen die Pakete, welche bei Bedarf am Ende der Präambel geladen werden. +% \begin{macrocode} +\AtEndPreamble{% +% \end{macrocode} +% Mit \pkg{graphicx} werden die Logos der TU~Dresden sowie von Dresden Concept +% mit dem Befehl \cs{includegraphics} u.\,a. auf der Titelseite eingebunden. +% \todo[v3.12]{Laden von \pkg{graphics} mit Warnung verhindern.} +% \begin{macrocode} + \@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}[1999/02/16]}% +% \end{macrocode} +% Mit dem Paket \pkg{tudscrcolor} werden die Befehle für die Auswahl der Farben +% des \CDs definiert, welches wiederum \pkg{xcolor} lädt. +% \begin{macrocode} + \@ifpackageloaded{tudscrcolor}{}{\RequirePackage{tudscrcolor}[\TUDVersion]}% +% \end{macrocode} +% Wenn die Farben für Titel- und Kapitelseiten umgeschaltet werden, geht die +% Information über die aktuelle Text- und Seitenfarbe verloren. Um dies zu +% verhindern, kann das Paket \pkg{pagecolor} geladen werden. Das Laden sollte +% aber solange verzögert werden, bis das Paket \pkg{tudscrcolor} geladen ist. +% \todo[v3.12]{Verzögern des Ladens von \pkg{pagecolor} aktivieren.} +% \begin{macrocode} +% \if@tud@pagecolor% +% \UnPreventPackageFromLoading*{pagecolor}% +% \RequirePackage{pagecolor}[2012/02/23]% +% \fi% +} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx new file mode 100644 index 00000000000..9ed3b3e8af3 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-pagestyle.dtx @@ -0,0 +1,1528 @@ +% \CheckSum{1206} +% \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-pagestyle.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-pagestyle.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (pagestyle)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-pagestyle.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Der Seitenstil des \CDs} +% +% Das \CD verlangt (eigentlich) einen fest vorgegebenen Satzspiegel. Für das +% Setzen längerer wissenschaftlicher Abhandlungen ist dieser jedoch alles +% andere als glücklich gewählt. Insbesondere für den doppelseitigen Satz ist +% das Standardlayout nicht gut nutzbar. Für die \TUDScript"=Klassen wird deshalb +% die Abweichung vom sonst fest vorgegebenen Satzspiegel ermöglicht. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \subsection{Definition der konstanten Größen und Maße} +% +% Die Vorlagen sollen neben den vom \CD vorgegebenen Seitenrändern weitere +% Layouts ermöglichen und u.\,a. auch die Nutzung des Paketes \pkg{typearea} +% erlauben. Damit ein einheitliches Verfahren zur Wahl bzw. Umschaltung des +% Satzspiegels genutzt werden kann, wird das Paket \pkg{geometry} genutzt. +% Dabei werden entweder die gewünschten Maße der Seitenränder direkt gewählt +% oder aber die mit \pkg{typearea} berechneten Maße an \pkg{geometry} +% durchgereicht. +% +% Als erstes werden die Standardmaße für die Seitenränder im \CD definiert, +% danach speziell für die \env{tudpage}"=Umgebung. +% +% \iffalse +%<*titlepage|class&!option> +% \fi +% +% \begin{length}{\tud@dim@left} +% \begin{length}{\tud@dim@right} +% \begin{length}{\tud@dim@both} +% Die Seitenränder für links und rechts sowie deren Summe, welche später für +% weitere Layouts dazu verwendet wird, diese anteilig zu verteilen. +% \begin{macrocode} +\newlength{\tud@dim@left} +%<*class> +\newlength{\tud@dim@right} +\newlength{\tud@dim@both} +% +% \end{macrocode} +% \end{length}^^A \tud@dim@both +% \end{length}^^A \tud@dim@right +% \end{length}^^A \tud@dim@left +% \begin{length}{\tud@dim@top} +% \begin{length}{\tud@dim@bottom} +% \begin{length}{\tud@dim@footskip} +% Die Seitenränder für sowohl oben als auch unten sowie der Abstand zwischen +% Textkörper und Fußzeile. +% \begin{macrocode} +%<*class> +\newlength{\tud@dim@top} +\newlength{\tud@dim@bottom} +\newlength{\tud@dim@footskip} +% +% \end{macrocode} +% \end{length}^^A \tud@dim@footskip +% \end{length}^^A \tud@dim@bottom +% \end{length}^^A \tud@dim@top +% \begin{length}{\tud@dim@headheight} +% \begin{length}{\tud@dim@barheight} +% \begin{length}{\tud@dim@headsep} +% Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe +% oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale +% (Mindest"~)Abstand zwischen Querbalken und Textkörper. +% \begin{macrocode} +\newlength{\tud@dim@headheight} +\newlength{\tud@dim@barheight} +\newlength{\tud@dim@headsep} +% \end{macrocode} +% \end{length}^^A \tud@dim@headsep +% \end{length}^^A \tud@dim@barheight +% \end{length}^^A \tud@dim@headheight +% \begin{length}{\tud@dim@logox} +% \begin{length}{\tud@dim@logoy} +% \begin{length}{\tud@dim@logowidth} +% \begin{length}{\tud@dim@logoheight} +% Außerdem müssen noch die Abmessungen und die Position des TUD-Logos definiert +% werden, nämlich der horizontale (Soll"~)Abstand zwischen linkem Seitenrand +% und Logo, der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo +% sowie die Breite und Höhe\footnote{Proportionen sind durch die Grafik +% vorgegeben} des Logos. +% \begin{macrocode} +\newlength{\tud@dim@logox} +\newlength{\tud@dim@logoy} +\newlength{\tud@dim@logowidth} +\newlength{\tud@dim@logoheight} +% \end{macrocode} +% \end{length}^^A \tud@dim@logoheight +% \end{length}^^A \tud@dim@logowidth +% \end{length}^^A \tud@dim@logoy +% \end{length}^^A \tud@dim@logox +% \begin{length}{\tud@dim@thinline} +% \begin{length}{\tud@dim@heavyline} +% Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler +% als im Layout mit farbigem Hintergrund.\footnote{% +% monochrom \cs{tud@dim@thinline}, koloriert \cs{tud@dim@heavyline}}% +% Da im Dokument beide Varianten vorkommen können, wird die Breite durch den +% Seitenstil situativ entweder auf den Wert von \cs{tud@dim@thinline} oder aber +% \cs{tud@dim@heavyline} gesetzt. +% \begin{macrocode} +\newlength{\tud@dim@thinline} +%<*class> +\newlength{\tud@dim@heavyline} +% +% \end{macrocode} +% \end{length}^^A \tud@dim@heavyline +% \end{length}^^A \tud@dim@thinline +% \begin{length}{\tud@dim@headingsvskip} +% Die Länge für den vertikalen Standardversatz der Überschriften. +% \begin{macrocode} +\newlength{\tud@dim@headingsvskip} +% \end{macrocode} +% \end{length}^^A \tud@dim@headingsvskip +% \begin{length}{\tud@dim@ddcheight} +% Zu guter Letzt noch die Höhe des DDC-Logos in der Fußzeile. Die maximale Höhe +% der Fußzeile ist fest vorgegeben. +% \begin{macrocode} +%<*class> +\newlength{\tud@dim@ddcheight} +% +% \end{macrocode} +% \end{length}^^A \tud@dim@ddcheight +% \begin{macro}{\tud@geometry@set} +% \begin{macro}{\tud@head@font@size} +% Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die +% Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die +% Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch +% \cs{tud@geometry@process}. +% \begin{macrocode} +\newcommand*\tud@head@font@size{} +\newcommand*\tud@geometry@set{% + \ifdim\paperheight<148.1mm\relax% + \setlength{\tud@dim@headheight}{17.5mm}% + \setlength{\tud@dim@barheight}{2.5mm}% + \setlength{\tud@dim@headsep}{6mm}% + \setlength{\tud@dim@logox}{5.5mm}% + \setlength{\tud@dim@logoy}{6.5mm}% + \setlength{\tud@dim@logowidth}{28.5mm}% + \setlength{\tud@dim@left}{15mm}% +%<*class> + \setlength{\tud@dim@right}{10mm}% + \setlength{\tud@dim@top}{12.5mm}% + \setlength{\tud@dim@bottom}{12.5mm}% + \setlength{\tud@dim@footskip}{6mm}% + \setlength{\tud@dim@heavyline}{0.75pt}% +% + \setlength{\tud@dim@thinline}{0.5pt}% + \def\tud@head@font@size{4.5}% + \else\ifdim\paperheight<297.1mm\relax% + \setlength{\tud@dim@headheight}{35mm}% + \setlength{\tud@dim@barheight}{5mm}% + \setlength{\tud@dim@headsep}{12mm}% + \setlength{\tud@dim@logox}{11mm}% + \setlength{\tud@dim@logoy}{13.5mm}% + \setlength{\tud@dim@logowidth}{57mm}% + \setlength{\tud@dim@left}{30mm}% +%<*class> + \setlength{\tud@dim@right}{20mm}% + \setlength{\tud@dim@top}{25mm}% + \setlength{\tud@dim@bottom}{25mm}% + \setlength{\tud@dim@footskip}{12mm}% + \setlength{\tud@dim@heavyline}{1pt}% +% + \setlength{\tud@dim@thinline}{0.5pt}% + \def\tud@head@font@size{9}% + \else\ifdim\paperheight<420.1mm\relax% + \setlength{\tud@dim@headheight}{50mm}% + \setlength{\tud@dim@barheight}{7mm}% + \setlength{\tud@dim@headsep}{17mm}% + \setlength{\tud@dim@logox}{15.5mm}% + \setlength{\tud@dim@logoy}{19mm}% + \setlength{\tud@dim@logowidth}{80mm}% + \setlength{\tud@dim@left}{42mm}% +%<*class> + \setlength{\tud@dim@right}{28mm}% + \setlength{\tud@dim@top}{35mm}% + \setlength{\tud@dim@bottom}{35mm}% + \setlength{\tud@dim@footskip}{17mm}% + \setlength{\tud@dim@heavyline}{1.4pt}% +% + \setlength{\tud@dim@thinline}{0.7pt}% + \def\tud@head@font@size{13}% + \else\ifdim\paperheight<594.1mm\relax% + \setlength{\tud@dim@headheight}{70mm}% + \setlength{\tud@dim@barheight}{10mm}% + \setlength{\tud@dim@headsep}{24mm}% + \setlength{\tud@dim@logox}{22mm}% + \setlength{\tud@dim@logoy}{27mm}% + \setlength{\tud@dim@logowidth}{114mm}% + \setlength{\tud@dim@left}{60mm}% +%<*class> + \setlength{\tud@dim@right}{40mm}% + \setlength{\tud@dim@top}{50mm}% + \setlength{\tud@dim@bottom}{50mm}% + \setlength{\tud@dim@footskip}{24mm}% + \setlength{\tud@dim@heavyline}{1.7pt}% +% + \setlength{\tud@dim@thinline}{1pt}% + \def\tud@head@font@size{13.5}% + \else\ifdim\paperheight<841.1mm\relax% + \setlength{\tud@dim@headheight}{100mm}% + \setlength{\tud@dim@barheight}{14mm}% + \setlength{\tud@dim@headsep}{34mm}% + \setlength{\tud@dim@logox}{31mm}% + \setlength{\tud@dim@logoy}{38mm}% + \setlength{\tud@dim@logowidth}{161.5mm}% + \setlength{\tud@dim@left}{85mm}% +%<*class> + \setlength{\tud@dim@right}{56.5mm}% + \setlength{\tud@dim@top}{71mm}% + \setlength{\tud@dim@bottom}{71mm}% + \setlength{\tud@dim@footskip}{34mm}% + \setlength{\tud@dim@heavyline}{1.9pt}% +% + \setlength{\tud@dim@thinline}{1.5pt}% + \def\tud@head@font@size{14}% + \else% + \setlength{\tud@dim@headheight}{140mm}% + \setlength{\tud@dim@barheight}{20mm}% + \setlength{\tud@dim@headsep}{48mm}% + \setlength{\tud@dim@logox}{44mm}% + \setlength{\tud@dim@logoy}{54mm}% + \setlength{\tud@dim@logowidth}{228mm}% + \setlength{\tud@dim@left}{120mm}% +%<*class> + \setlength{\tud@dim@right}{80mm}% + \setlength{\tud@dim@top}{100mm}% + \setlength{\tud@dim@bottom}{100mm}% + \setlength{\tud@dim@footskip}{48mm}% + \setlength{\tud@dim@heavyline}{2.1pt}% +% + \setlength{\tud@dim@thinline}{2pt}% + \def\tud@head@font@size{20}% + \fi\fi\fi\fi\fi% +%<*class> + \setlength{\tud@dim@both}% + {\dimexpr\tud@dim@left+\tud@dim@right}% +% +% \end{macrocode} +% Hiermit wird sichergestellt, dass bei der Verwendung des DDC-Logos im Fuß +% ausreichend Platz zur Verfügung steht. +% \begin{macrocode} +%<*class> + \setlength{\tud@dim@ddcheight}{.6\tud@dim@headheight}% + \setlength{\tud@ta@footdiff}% + {\dimexpr\tud@dim@ddcheight-\tud@ta@footskip+\baselineskip}% + \ifdim\tud@ta@footdiff<\z@\relax% + \setlength{\tud@ta@footdiff}{\z@}% + \fi% +% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@font@size +% \end{macro}^^A \tud@geometry@set +% +% \subsection{Definition des Seitenstils} +% +% Ein zentraler Bestandteil der Vorlagen ist der Seitenkopf des \CDs. +% Dieser wird zum einen von verschiedenen Befehlen\footnote{beispielsweise von +% \cs{maketitle} oder \cs{part} bzw. \cs{addpart}} benötigt, kann aber auch im +% Dokument durch den Anwender selbst mit der \env{tudpage}"=Umgebung genutzt +% werden. +% \todo[v3.12]{% +% Umstellung auf scrlayer; Seitenstil tudpage in scrlayer als separates Paket? +% } +% \begin{macro}{\ps@tudpage@plain} +% \begin{macro}{\ps@tudpage@empty} +% \begin{macro}{\tud@head@text} +% \begin{macro}{\tud@head@text@first} +% \begin{macro}{\tud@head@text@second} +% \begin{macro}{\tud@head@text@delimiter} +% \begin{macro}{\tud@head@text@buffer} +% \begin{macro}{\tud@head@font} +% \begin{macro}{\tud@head@rule} +% Es wird ein neuer Seitenstil kreiert, der das \CD der TU~Dresden mit der +% prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein, +% wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket +% \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD +% vorgesehen mit dem TU-Symbol in den Rand und dem Schriftzug bündig zum +% Textblock gesetzt. Für den Fall, dass das Dokument nicht ausschließlich mit +% dem TUD-Kopf auf jeder Seite gesetzt wird, muss der komplette vertikale +% Satzspiegel angepasst werden, sonst wäre der obere Rand optisch viel zu groß. +% +% Hierfür wird das Paket \pkg{geometry} genutzt. Es werden mehrere Layouts +% erstellt\footnote{normaler Satzspiegel, TUD-Kopf sowie TUD-Kopf und "~Fuß} +% und mit \cs{savegeometry}\marg{Stil} gesichert. Damit kann innerhalb des +% Dokumentes mit dem Befehl \cs{loadgeometry}\marg{Stil} oberer sowie ggf. +% untere Seitenrand geändert werden. Falls notwendig kann außerdem der Abstand +% zwischen Kopf und Text mit der Länge \cs{tud@ta@headdiff} dahingehend +% angepasst werden, dass der Textblock unter der TUD-Kopf auf der gleichen Höhe +% beginnt, wie beim normalen Satzspiegel im restlichen Dokument ohne die +% TUD-Kopfzeile.\footnote{normalerweise überflüssig, da TUD-Kopf recht groß; +% kommt nur vor, wenn \opt{DIV} klein} +% \begin{macrocode} +\newcommand*\tud@head@text{} +\newcommand*\tud@head@text@first{} +\newcommand*\tud@head@text@second{} +\newcommand*\tud@head@text@delimiter{} +\newcommand*\tud@head@text@buffer{} +\newcommand*\tud@head@font{} +\newcommand*\tud@head@rule{} +%<*class> +\newcommand*\ps@tudpage@plain{% +% +%<*titlepage> +\newcommand*\tud@pagestyle{% +% +% \end{macrocode} +% Die Kopfzeile selbst wird durch der Redefinition von \cs{@oddhead} bzw. +% \cs{@evenhead} erstellt. Sollte keine Fakultät angegeben sein, wird eine +% Warnung ausgegeben. +% \begin{macrocode} +%<*class> + \renewcommand*\@oddhead{% +% +% \end{macrocode} +% Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea} +% über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb +% des Druckrandes liegt. Dies kann beispielsweise bei zweiseitigem Satz +% und/oder einem zu großen \opt{DIV}-Wertes passieren. Es wird in diesem Fall +% eine Warnung ausgegeben, damit das Problem durch den Anwender behoben werden +% kann. +% \begin{macrocode} +%<*class> + \setlength{\@tempdima}% + {\dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@left}% + \ifdim\@tempdima<\ta@bcor\relax% + \tud@head@logo@wrn{\the\@tempdima}% + \fi% +% + \ifx\@faculty\@empty% +%<*class> + \ClassWarningNoLine{\tudcls@name}{No faculty given}% +% +%<*titlepage> + \PackageWarningNoLine{titlepage}{No faculty given}% +% + \faculty{\null}% + \fi% +% \end{macrocode} +% Abhängig vom Parameter \opt{cdfont}\footnote{nicht zu verwechseln mit der +% Klassenoption \opt{cdfont}} werden entweder die Schriften des \CDs oder +% aber die serifenlose Standardschrift für die Kopfzeile verwendet. +% \begin{macrocode} + \tud@head@font@set% +% \end{macrocode} +% Der Inhalt der Kopfzeile wird durch die angegeben Fakultät etc. vorgegeben. +% Sollte der Platz in einer Zeile dafür nicht ausreichen, wird eine zweite +% Zeile begonnen. Ob diese benötigt wird, ist abhängig vom Inhalt und von der +% sich daraus ergebenden Breite der Textzeile. Das Erzeugen der ersten und +% gegebenenfalls der zweiten Textzeile im Kopf erfolgt durch das Makro +% \cs{tud@head@text@add}\oarg{Trennzeichen}\marg{Schrift}\marg{Feld}. Der dafür +% verwendete Schalter \cs{@tempswa} und die benötigten Hilfsmakros werden +% vor der Verwendung initialisiert. +% \begin{macrocode} + \@tempswafalse% + \def\tud@head@text@first{}% + \def\tud@head@text@second{}% + \def\tud@head@text@buffer{}% + \tud@head@text@add[\enskip]{\tud@head@font@bold}{\@faculty}% + \tud@head@text@add{\tud@head@font@light}{\@department}% + \tud@head@text@add{\tud@head@font@light}{\@institute}% + \tud@head@text@add{\tud@head@font@light}{\@chair}% +% \end{macrocode} +% Sollte die zweite Textzeile zu lang sein, was bei kleinen Papierformaten +% vorkommen kann, dann wird eine Warnung ausgegeben. +% \begin{macrocode} +%<*class> + \settowidth{\@tempdima}{\tud@head@text@second}% + \ifdim\@tempdima>\textwidth\relax% + \tud@head@text@wrn{\the\dimexpr\@tempdima-\textwidth}% + \fi% +% \end{macrocode} +% Die Farbe des Kopfes wird für Titel und Teileseiten durch die gewählten +% Optionen\footnote{\opt{cdtitle}, \opt{cdpart}} bestimmt.\footnote{für +% die \env{tudpage}-Umgebung kann dieser angepasst werden} +% \begin{macrocode} + \color{\tud@head@color}% +% +% \end{macrocode} +% Die eigentlichen Befehle zum Setzen des Kopfes. Ein potentielles Zweitlogo +% wird bündig zum rechten Seitenrand gesetzt. Es erfolgt die Ausgabe der +% Textzeile(n) mit Fakultät etc. über den Befehl \cs{tud@head@text@write}. +% \begin{macrocode} +%<*titlepage> + \vspace*{\dimexpr-\headheight-\topskip-1in}% +% + \vbox to \dimexpr\tud@dim@barheight+\tud@dim@headheight{% + \vfill\linespread{0}\selectfont% + \setlength{\@tempdima}{\tud@dim@logox}% + \addtolength{\@tempdima}{-\tud@dim@left}% + \hspace*{\@tempdima}% + \tud@mainlogo\hfill\tud@head@logo% + \setlength{\@tempdima}{\tud@dim@headheight}% + \addtolength{\@tempdima}{-\tud@dim@logoy}% + \addtolength{\@tempdima}{-\tud@dim@logoheight}% +% \end{macrocode} +% Sollte die Kopffarbe weiß sein~-- es ist also ein farbiger Hintergrund +% gewählt~-- dann wird die Outline des Balkens breiter gesetzt. Die Breite +% wird in \cs{@tempdimc} gespeichert. +% \begin{macrocode} +%<*class> + \ifstr{\tud@head@color}{white}% + {\setlength{\@tempdimc}{\tud@dim@heavyline}}% + {\setlength{\@tempdimc}{\tud@dim@thinline}}% +% +%<*titlepage> + \setlength{\@tempdimc}{\tud@dim@thinline}% +% + \vspace*{\dimexpr\@tempdima-.5\@tempdimc}% +% \end{macrocode} +% Der Querbalken des Kopfes läuft je nach gewähltem Parameter \opt{widehead} +% entweder nur über den Textbereich oder aber über die gesamte Seitenbreite. +% Dafür muss dieser ggf. um den Betrag des linken Randes der Seite nach links +% verschoben werden und beginnt dann genau am Blattrand. Dieser Wert wird +% berechnet und temporär in \cs{@tempdima} gespeichert. Der Balken selbst wird +% mit dem zweimaligen Aufruf von \cs{tud@head@rule}~-- ein ggf. entsprechend um +% \cs{@tempdima} horizontal verschobener \cs{rule}-Befehl~-- gesetzt. +% \begin{macrocode} + \def\tud@head@rule{% + \if@tud@widehead% + \setlength{\@tempdima}{\oddsidemargin}% +%<*class> + \if@twoside\ifodd\c@page\else% + \setlength{\@tempdima}{\evensidemargin}% + \fi\fi% +% + \addtolength{\@tempdima}{1in}% + \setlength{\@tempdimb}{\paperwidth}% + \else% + \setlength{\@tempdima}{\z@}% + \setlength{\@tempdimb}{\textwidth}% + \fi% + \hfuzz=2\@tempdima% + \hspace*{-\@tempdima}% + \rule[-.5\@tempdimc]{\@tempdimb}{\@tempdimc}% + \newline% + }% + \newline% + \tud@head@rule% + \tud@head@text@write{\tud@head@text@first}% + \newline% + \tud@head@rule% + \tud@head@text@write{\tud@head@text@second}% +% \end{macrocode} +% Eine Extrazeile kann mit dem Befehl \cs{extraheadline}\marg{Textzeile} +% eingefügt werden. +% \begin{macrocode} + \ifx\@extraheadline\@empty\else% + \newline\tud@head@font@light\@extraheadline% + \vspace*{-\tud@dim@barheight}% + \fi% + \vspace*{\dimexpr\@tempdimc-\tud@dim@barheight}% + }% +%<*class> + }% + \let\@evenhead\@oddhead% +% +} +% \end{macrocode} +% Dieser Seitenstil wird für Einzelseiten wie Teil- oder Kapitelseiten +% benötigt, da hier die lokale Einstellung einer leeren Fußzeile sonst nur +% umständlich zu realisieren wäre. +% \begin{macrocode} +%<*class> +\newcommand*\ps@tudpage@empty{% + \ps@tudpage@plain% + \let\@mkboth\@gobbletwo% + \let\@oddfoot\@empty% + \let\@evenfoot\@empty% +} +% +% \end{macrocode} +% \end{macro}^^A \tud@head@rule +% \end{macro}^^A \tud@head@font +% \end{macro}^^A \tud@head@text@buffer +% \end{macro}^^A \tud@head@text@delimiter +% \end{macro}^^A \tud@head@text@second +% \end{macro}^^A \tud@head@text@first +% \end{macro}^^A \tud@head@text +% \end{macro}^^A \ps@tudpage@empty +% \end{macro}^^A \ps@tudpage@plain +% \begin{macro}{\tud@head@text@add} +% Dieser Befehl dient zum Füllen eines Puffer-Strings. Es werden sequentiell +% alle potentiellen Felder hinzugefügt. Sollte das zuletzt hinzugefügte Feld +% dazu führen, dass der Text der Kopfzeile über den Seitenrand hinausragt, so +% wird eine zweite Zeile begonnen. In diesem Fall wird der temporäre Schalter +% \cs{@tempswa} aktiviert. Auch das Trennzeichen zwischen einzelnen Feldern +% muss gepuffert werden, da dieses nur gesetzt wird, wenn ein weiteres Feld +% nachfolgt. +% \begin{macrocode} +\newcommand*\tud@head@text@add[3][, ]{% + \def\tud@head@font{#2}% + \edef\tud@head@text{#3}% + \ifx\tud@head@text\@empty% + \def\tud@head@text@delimiter{}% + \else% + \edef\tud@head@text@delimiter{\tud@head@text@buffer}% + \def\tud@head@text@buffer{#1}% + \fi% + \if@tempswa\else% + \def\@tempa{% + \tud@head@text@first% + \tud@head@text@delimiter% + \tud@head@font% + \tud@head@text% + }% + \settowidth{\@tempdima}{\@tempa}% + \ifdim\@tempdima>\textwidth\relax% + \@tempswatrue% + \def\tud@head@text@delimiter{}% + \else% + \edef\tud@head@text@first{\@tempa}% + \fi% + \fi% + \if@tempswa% + \edef\tud@head@text@second{% + \tud@head@text@second% + \tud@head@text@delimiter% + \tud@head@font% + \tud@head@text% + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@add +% \begin{macro}{\tud@head@text@write} +% Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf +% \begin{macrocode} +\newcommand*\tud@head@text@write[1]{% + \raisebox{\dimexpr(\tud@dim@barheight-\@tempdimc-\totalheight)/2}% + [\dimexpr\tud@dim@barheight-\@tempdimc-\depth\relax][\depth]{#1}% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@write +% +% \iffalse +%<*class> +% \fi +% +% \begin{macro}{\tud@head@text@wrn} +% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die +% Textbreite, was bei besonders kleinen Papierformaten geschehen kann. +% \begin{macrocode} +\newcommand\tud@head@text@wrn[1]{% + \ClassWarning{\tudcls@name}{% + The given entries for the headline\MessageBreak% + (faculty, institute etc.) are #1\MessageBreak% + too wide for the textwidth% + }% + \global\let\tud@head@text@wrn\@gobble% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@text@wrn +% \begin{macro}{\tud@head@logo@wrn} +% Warnung für den Fall, dass die Kopfinformationen breiter werden, als die +% Textbreite, was bei besonders kleinen Papierformaten geschehen kann. +% \begin{macrocode} +\newcommand\tud@head@logo@wrn[1]{% + \ClassWarning{\tudcls@name}{% + The selected page layout means that the\MessageBreak% + logo of TUD extends beyond the printing area.\MessageBreak% + The inner margin is smaller than BCOR\MessageBreak% + (BCOR=\the\ta@bcor,\space inner margin=#1)\MessageBreak% + Maybe you should decrease the current value\MessageBreak% + of DIV (DIV=\the\ta@div)% + }% + \global\let\tud@head@logo@wrn\@gobble% +} +% \end{macrocode} +% \end{macro}^^A \tud@head@logo@wrn +% +% \iffalse +% +% +%<*class&option> +% \fi +% +% \subsection{Befehle, Optionen und Umsetzung der Seitenstilvarianten} +% +% \todo[v3.12]{% +% tud- und ddc-logo via scrlayer setzen, tudhead und cdfoot als Optionen mit +% den Werten all, part, chapter, text; Koppeln mit den Optionen für cdpart +% und cdchapter, heißt entsprechende Werte vorsehen; partpagestyle, +% chapterpagestyle und abstractpagestyle ggf. anpassen; chapterpage beachten! +% abstractpagestyle weg, direkt über die Option abstract setzen, entsprechend +% Werte für Kopf und Fuß vorsehen; Bezeichnung der tudpage-Optionen +% äquivalent zu Klassenoptionen, nur für Titelseite die Option ddctitle +% (koppeln an ddc): Soll heißen: ddctitle (ddc) für Titelseite, ddchead und +% ddcfoot für alle Seiten; außerdem cd(title,part,chapter) = ddchead, ddcfoot; +% nur Kopf oder Fuß! color-Option nur bei weißem Hintergrund; evtl auch Option +% ddc mit werten head und foot (ddc=head,ddc=foot), nur entweder kopf oder fuß +% zulassen +% } +% \begin{option}{ddc} +% \begin{option}{ddchead} +% \begin{macro}{\tud@ddc@head} +% Die Option \opt{ddchead} dient zum Einbinden des Dresden-Concept-Logos auf +% der Titelseite. Entweder einfarbig (schwarz, blau bzw. weiß) oder farbig. Der +% Wert des Makros \cs{tud@ddc@head} wird auch für Verarbeitung der Optionen der +% \env{tudpage}"=Umgebung verwendet. Nach der Verarbeitung der Option wird +% das entsprechende DDC-Logo als Zweitlogo genutzt. +% \begin{macrocode} +\newcommand*\tud@ddc@head{0} +\TUD@numkey{ddc}[true]{tud@ddc@head}{% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {color}{2},{colour}{2},% +} +\TUD@key{ddchead}[true]{\TUDoptions{ddc=#1}} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@head +% \end{option}^^A ddchead +% \end{option}^^A ddc +% \todo[v3.12]{für title, part, chapter und tudpage überarbeiten (scrlayer)} +% \begin{option}{ddcfoot} +% \begin{macro}{\tud@ddc@foot} +% Die Option \opt{ddcfoot} ist momentan bloß für die Verarbeitung der +% Optionen der \env{tudpage}"=Umgebung ausschlaggebend. Für eine spätere +% Version soll diese für Formularklassen o.\,ä. verwendet werden. +% \begin{macrocode} +\newcommand*\tud@ddc@foot{0} +\TUD@numkey{ddcfoot}[true]{tud@ddc@foot}{% + {false}{0},{off}{0},{no}{0},% + {true}{1},{on}{1},{yes}{1},% + {color}{2},{colour}{2},% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@foot +% \end{option}^^A ddcfoot +% +% \iffalse +% +%<*titlepage|class&option> +% \fi +% +% \begin{option}{widehead} +% \begin{macro}{\if@tud@widehead} +% \begin{macro}{\if@tud@widehead@locked} +% Der Schalter dient zur Steuerung der Breite des Querbalkens im Kopf der +% \env{tudpage}-Seite. Entweder der Querbalken liegt im Satzspiegel oder +% aber über die komplette Papierbreite. +% \begin{macrocode} +%<*class> +\newif\if@tud@widehead +\TUD@key@lock{widehead}[true]{% + \TUD@set@ifkey@lock{widehead}{@tud@widehead}{#1}% +} +% +%<*titlepage> +\FamilyBoolKey[TU-Dresden]{title}{widehead}{@tud@widehead} +% +% \end{macrocode} +% \end{macro}^^A \if@tud@widehead@locked +% \end{macro}^^A \if@tud@widehead +% \end{option}^^A widehead +% +% \iffalse +% +%<*titlepage|class&!option> +% \fi +% +% \begin{macro}{\tud@mainlogo} +% \begin{macro}{\tud@@mainlogo} +% Mit diesem Makro wird das Logo der TU~Dresden eingebunden. Bei der Verwendung +% von pdf\LaTeX{} kann wird Farbe des Logos an die Kopffarbe angepasst. Wird +% der klassische Weg über dvi gewählt, so muss abhängig von der gewählten +% Kopffarbe das entsprechend gefärbte Logo eingebunden werden. +% +% \begin{macrocode} +%<*class> +\newcommand*\tud@@mainlogo{} +% +\newcommand*\tud@mainlogo{% +%<*class> + \def\tud@@mainlogo{TU_Logo_SW}% + \ifpdfoutput{}{% + \ifstr{\tud@head@color}{HKS41}% + {\def\tud@@mainlogo{TU_Logo_HKS41}}{}% + \ifstr{\tud@head@color}{cddarkblue}% + {\def\tud@@mainlogo{TU_Logo_HKS41}}{}% + \ifstr{\tud@head@color}{white}% + {\def\tud@@mainlogo{TU_Logo_WS}}{}% + }% +% + \def\@tempa{% + \includegraphics[width=\tud@dim@logowidth]{% +%<*class> + \tud@@mainlogo% +% +%<*titlepage> + \@mainlogo% +% + }% + }% + \settoheight{\tud@dim@logoheight}{\@tempa}\@tempa% +} +% \end{macrocode} +% \end{macro}^^A \tud@@mainlogo +% \end{macro}^^A \tud@mainlogo +% \begin{macro}{\headlogo} +% \begin{macro}{\logofile} +% \begin{macro}{\logofilename} +% \begin{macro}{\tud@head@logo} +% \begin{macro}{\tud@head@@logo} +% \begin{macro}{\tud@head@@@logo} +% Diese Befehle dienen zum Einbinden eines Zweitlogos im Kopf bündig zum +% rechten Seitenrand. Dabei wird bei der Angabe des Logos mit +% \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} der Dateiname in +% \cs{tud@head@@logo} und das optionale Argument in \cs{tud@head@@@logo} +% gespeichert, damit diese später über \cs{tud@head@logo} an den Befehl +% \cs{includegraphics} weitergereicht werden können. Sollte die Angabe des +% Zweitlogos mit der Option für das DDC-Logo kollidieren, so wird eine Warnung +% ausgegeben. +% \begin{macrocode} +%<*class> +\newcommand*\headlogo[2][]{% + \ifnum\tud@ddc@head>0\relax% + \def\tud@ddc@head{0}% + \ClassWarning{\tudcls@name}% + {DDC logo is overwritten with \string#2}% + \fi% + \def\tud@head@@logo{#2}% + \def\tud@head@@@logo{#1}% +} +\newcommand*\logofile{} +\newcommand*\logofilename{} +\let\logofile\headlogo +\let\logofilename\headlogo +\newcommand*\tud@head@@logo{} +\newcommand*\tud@head@@@logo{} +\newcommand*\tud@head@logo{% + \ifx\tud@head@@logo\@empty\else% + \let\@tempa\tud@head@@@logo% + \pretocmd{\@tempa}{height=\tud@dim@logoheight,}{}{}% + \expandafter\includegraphics% + \expandafter[\@tempa]{\tud@head@@logo}% + \fi% +} +% +%<*titlepage> +\DefineSimpleTitleKey[TU-Dresden]{headlogo} +\newcommand*\tud@head@logo{% + \ifx\@headlogo\@empty\else% + \includegraphics[height=\tud@dim@logoheight]{\@headlogo}% + \fi% +} +% +% \end{macrocode} +% \end{macro}^^A \tud@head@@@logo +% \end{macro}^^A \tud@head@@logo +% \end{macro}^^A \tud@head@logo +% \end{macro}^^A \logofilename +% \end{macro}^^A \logofile +% \end{macro}^^A \headlogo +% +% \iffalse +% +%<*class&option> +% \fi +% +% \begin{option}{cdfoot} +% \begin{option}{tudfoot} +% \begin{macro}{\if@tud@cdfoot} +% Dieser Seitenstil mit den Kolumnentitel im Fuß wurde bereits für die alte +% \cls{tudbook}-Klasse bereitgestellt und soll auch hier optional angeboten +% werden. Dafür werden die ursprünglichen Seitenstile gesichert, um eventuell +% zurückschalten zu können. Anschließend werden diese mit den neuen Stilen +% überschrieben. +% \begin{macrocode} +\newif\if@tud@cdfoot +\TUD@key{cdfoot}[true]{% + \TUD@set@ifkey{cdfoot}{@tud@cdfoot}{#1}% +% \end{macrocode} +% Da die originalen Seitenstile durch \KOMAScript{} erst nach der Ausführung der +% Optionen erstellt werden und die hier genutzten Seitenstile auf den orginalen +% Definitionen aufbauen, erfolgt die Ausführung erst nach der Präambel. +% \begin{macrocode} + \if@atdocument% + \if@tud@cdfoot% + \tud@cmd@store{ps@headings}% + \tud@cmd@store{ps@myheadings}% + \tud@cmd@store{ps@plain}% + \let\ps@headings\tud@ps@headings% + \let\ps@myheadings\tud@ps@myheadings% + \let\ps@plain\tud@ps@plain% + \else% + \tud@cmd@restore{ps@headings}% + \tud@cmd@restore{ps@myheadings}% + \tud@cmd@restore{ps@plain}% + \fi% + \clearpage% + \expandafter\pagestyle\expandafter{\tud@currentpagestyle}% + \fi% +} +% \end{macrocode} +% Diese Option wird nur aus Gründen der Kombatibilität zu v1.0 definiert. +% \begin{macrocode} +\TUD@key{tudfoot}[true]{% + \TUD@set@ifkey{tudfoot}{@tempswa}{#1}% + \if@tempswa% + \TUDoptions{cdfoot}% + \else% + \TUDoptions{cdfoot=false}% + \fi% +} +% \end{macrocode} +% Damit die Einstellungen aus der Präambel übernommen werden, wird die Option +% ggf. zu Beginn mit \cs{AtBeginDocument} aufgerufen. +% \begin{macrocode} +\AtBeginDocument{\if@tud@cdfoot\TUDoptions{cdfoot}\pagestyle{headings}\fi} +% \end{macrocode} +% \end{macro}^^A \if@tud@cdfoot +% \end{option}^^A tudfoot +% \end{option}^^A cdfoot +% \begin{macro}{\tud@currentpagestyle} +% Um beim Umschalten des Formats der Kopf- und Fußzeilen mit \opt{cdfoot} den +% aktuellen Seitenstil selbst\footnote{plain, empty, headings oder myheadings} +% zu behalten, wird dieser im Hilfsmakro \cs{tud@currentpagestyle} gespeichert. +% Dazu wird der Befehl \cs{pagestyle} entsprechend angepasst. +% \begin{macrocode} +\newcommand*\tud@currentpagestyle{plain} +\apptocmd{\pagestyle}{% + \def\tud@currentpagestyle{#1}}{}{\tud@patch@wrn{pagestyle}% +} +% \end{macrocode} +% \end{macro}^^A \tud@currentpagestyle +% +% \iffalse +% +%<*class&!option> +% \fi +% +% \begin{macro}{\tud@ps@headings} +% \begin{macro}{\tud@ps@myheadings} +% \begin{macro}{\tud@ps} +% \begin{macro}{\tud@ps@plain} +% Die dazugehörigen neuen Seitenstile. +% \begin{macrocode} +\newcommand*\tud@ps@headings{\tud@cmd@use{ps@headings}\tud@ps} +\newcommand*\tud@ps@myheadings{\tud@cmd@use{ps@myheadings}\tud@ps} +\newcommand*\tud@ps{% + \renewcommand*\@evenhead{}% + \renewcommand*\@oddhead{}% + \renewcommand*\@evenfoot{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{% + \normalsize\pagemark\quad\footnotesize\leftmark\hfil% + }}% + }}% + }% + \renewcommand*\@oddfoot{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{% + \hfil\footnotesize\rightmark\quad\normalsize\pagemark% + }}% + }}% + \hss% + }% +}% +\newcommand*\tud@ps@plain{% + \renewcommand*\@evenhead{}% + \renewcommand*\@oddhead{}% + \renewcommand*\@evenfoot{% + \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{% + \normalsize\pagemark\hfil% + }}% + }}% + }% + \renewcommand*\@oddfoot{% + \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{% + \hb@xt@ \@tempdima{{% + \hfil\normalsize\pagemark% + }}% + }}% + \hss% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@ps@plain +% \end{macro}^^A \tud@ps +% \end{macro}^^A \tud@ps@myheadings +% \end{macro}^^A \tud@ps@headings +% +% \iffalse +% +%<*class&option> +% \fi +% +% \todo[v3.12]{% +% bei scrlayer, die hooks für die Umstellung des Seitenstils nutzen um den +% richtigen Satzspiegel mit \cs{loadgeometry} zu wählen +% } +% \begin{option}{geometry} +% \begin{macro}{\tud@geometry} +% \begin{macro}{\if@tud@geometry@locked} +% Für das \CD sind standardmäßig feste Seitenränder vorgegeben. Diese sind +% jedoch leider nur aus gestalterischen Motiven und ohne die Beachtung +% typographischer Belange gewählt und festgelegt worden. Beispielweise ist ein +% doppelseitiger Satz einer Abschlussarbeit im \CD nur mit einem grauenhaften +% Satzspiegel möglich. Um dem Anwender einen gewissen Spielraum zu geben, wird +% alternativ zum asymmetrischen (\opt{geomery=on}) ein symmetrischer +% Satzspiegel bereitgestellt (\opt{geomery=normal}), welcher bei einseitigem +% Satz zentriert ist und bei zweiseitigem Satz den inneren Rand kleiner setzt +% als den äußeren. Des Weiteren kann die Satzspiegelberechnung auch direkt +% durch \pkg{typearea} aus dem \KOMAScript"=Paket erfolgen +% (\opt{geomery=no}). Mit \cs{tud@geometry@process} werden alle getroffenen +% Satzspiegeloptionen umgesetzt und nachfolgend definiert. +% \begin{macrocode} +\newcommand*\tud@geometry{0} +\TUD@key@lock{geometry}[true]{% + \TUD@set@numkey@lock{geometry}{tud@geometry}{% + {false}{0},{off}{0},{no}{0},{typearea}{0},% + {true}{1},{on}{1},{yes}{1},{tud}{1},{asymmetric}{1},{cd}{1},% + {symmetric}{2},{normal}{2},{standard}{2},{std}{2},% + {twoside}{3},{balanced}{3}% + }{#1}% + \if@atdocument\recalctypearea\fi% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@geometry@locked +% \end{macro}^^A \tud@geometry +% \end{option}^^A geometry +% +% \iffalse +% +%<*class&!option> +% \fi +% +% \begin{length}{\tud@ta@textheight} +% \begin{length}{\tud@ta@topmargin} +% \begin{length}{\tud@ta@headheight} +% \begin{length}{\tud@ta@headsep} +% \begin{length}{\tud@ta@footskip} +% Diese Längen werden benötigt, um einen mit \pkg{typearea} berechneten +% Satzspiegel an \pkg{geometry} weiterzureichen und die unterschiedlichen, vom +% Satzspiegel abhängigen Seitenlayouts zu erstelen. +% \begin{macrocode} +\newlength{\tud@ta@textheight} +\newlength{\tud@ta@topmargin} +\newlength{\tud@ta@headheight} +\newlength{\tud@ta@headsep} +\newlength{\tud@ta@footskip} +% \end{macrocode} +% \end{length}^^A \tud@ta@footskip +% \end{length}^^A \tud@ta@headsep +% \end{length}^^A \tud@ta@headheight +% \end{length}^^A \tud@ta@topmargin +% \end{length}^^A \tud@ta@textheight +% \begin{length}{\tud@ta@headdiff} +% \begin{length}{\tud@ta@footdiff} +% Längen für den Ausgleich zwischen normalem und benötigtem Satzspiegel für das +% spezielle Layout des \CDs. Die Differenz zwischen den Kopf- bzw. Fußhöhen +% der unterschiedlichen Satzspiegelvarianten wird bei der Ausführung von +% \cs{tud@geometry@process} berechnet und in \cs{tud@ta@headdiff} bzw. +% \cs{tud@ta@footdiff} gespeichert. Dabei muss unterschieden werden, ober der +% Satzspiegel genutzt wird, der durch das \CD vorgegeben ist oder der durch +% \pkg{typearea} berechnete. +% \begin{macrocode} +\newlength{\tud@ta@headdiff} +\newlength{\tud@ta@footdiff} +% \end{macrocode} +% \end{length}^^A \tud@ta@footdiff +% \end{length}^^A \tud@ta@headdiff +% Der Befehl \cs{AfterCalculatingTypearea} wird durch \KOMAScript{} bzw. das +% Paket \pkg{typearea} bereitgestellt. Die durch \pkg{typearea} berechneten +% Längenwerte für den Satzspiegel werden zur Weiterverarbeitung gesichert. +% Für die Erstellung des Satzspiegels wird das Paket \pkg{geometry} verwendet. +% Bei der entsprechenden Option (\opt{geometry=no}) wird jedoch der von +% \pkg{typearea} berechnete Satzspiegel an \pkg{geometry} weitergereicht. +% Somit wird es möglich, unabhängig vom genutzten Paket\footnote{\pkg{typearea} +% oder \pkg{geometry}} zur Festlegung des Satzspiegels, diesen innerhalb des +% Dokumentes zu ändern. Damit auch Änderungen an der Papiergröße möglich sind, +% muss ein einzelnes Makro (\cs{Gm@restore@org}) aus \pkg{geometry} temporär +% deaktiviert werden. +% \begin{macrocode} +\AfterCalculatingTypearea{% + \setlength{\tud@ta@textheight}{\textheight}% + \setlength{\tud@ta@topmargin}{\topmargin}% + \setlength{\tud@ta@headheight}{\headheight}% + \setlength{\tud@ta@headsep}{\headsep}% + \setlength{\tud@ta@footskip}{\footskip}% + \setlength{\tud@dim@headingsvskip}{.1\textheight}% + \let\@tempa\Gm@restore@org% + \if@atdocument\let\Gm@restore@org\relax\fi% + \tud@geometry@process% + \let\Gm@restore@org\@tempa% +} +% \end{macrocode} +% \begin{macro}{\tud@geometry@hmargin} +% \begin{macro}{\tud@geometry@vmargin} +% \begin{macro}{\tud@geometry@pmargin} +% \begin{macro}{\tud@geometry@dmargin} +% Dies sind Hilfsmakros zur Definition unterschiedicher Seitenlayouts +% (horizontale und vertikale Ränder). Es handelt sich dabei um die Definition +% der horizontalen und vertikalen Seitenränder sowie die angepassten vertikalen +% Einstellungen für die Seitenstilvarianten mit TUD-Kopf und/oder DDC-Fuß. +% Gesetzt werden diese in Abhängigkeit von der Option \opt{geometry} im +% Makro \cs{tud@geometry@process} bzw. \cs{tud@geometry@@process}. +% \begin{macrocode} +\newcommand*\tud@geometry@hmargin{} +\newcommand*\tud@geometry@vmargin{} +\newcommand*\tud@geometry@pmargin{} +\newcommand*\tud@geometry@dmargin{} +% \end{macrocode} +% \end{macro}^^A \tud@geometry@dmargin +% \end{macro}^^A \tud@geometry@pmargin +% \end{macro}^^A \tud@geometry@vmargin +% \end{macro}^^A \tud@geometry@hmargin +% \begin{macro}{\tud@geometry@process} +% \begin{macro}{\tud@geometry@@process} +% \begin{macro}{\tud@geometry@@@process} +% Das Makro \cs{tud@geometry@process} setzt die Option für den gewünschten +% Satzspiegel um, sowohl für die Seitenränder als auch zur Einberechnung der +% Kopf- und/oder Fußzeile. Um mehrere Satzspiegel verwenden zu können~-- was +% für die unterschiedlichen Höhen für Kopf- und Fußzeile nötig ist~-- wird das +% Paket \pkg{geometry} verwendet. Soll \pkg{typearea} zur Satzspiegelerstellung +% genutzt werden, so werden die damit berechneten Werte an \pkg{geometry} +% weitergereicht. +% \begin{macrocode} +\newcommand*\tud@geometry@process{% +% \end{macrocode} +% Die Maßvorgaben werden entsprechend der Seitengröße gesetzt. +% \begin{macrocode} + \tud@geometry@set% +% \end{macrocode} +% Für den Fall, dass \pkg{typearea} die Satzspiegelberechnung übernimmt, werden +% die Ergebnisse aus der Berechnung direkt an \pkg{geometry} weitergereicht. +% Dazu werden die berechneten Werte in die entsprechenden Hilfsmakros +% für die Erstellung der \pkg{geometry}-Satzspiegel übergeben. +% \begin{macrocode} + \ifcase \tud@geometry\relax% + \def\tud@geometry@hmargin{% + left=\dimexpr\oddsidemargin+1in,% + width=\textwidth,% + }% + \def\tud@geometry@vmargin{% + top=\dimexpr\tud@ta@topmargin+\tud@ta@headheight+\tud@ta@headsep+1in,% + headheight=\tud@ta@headheight,% + headsep=\tud@ta@headsep,% + textheight=\tud@ta@textheight,% + footskip=\dimexpr\tud@ta@footskip,% + }% + \def\tud@geometry@pmargin{% + top=\dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep,% + headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight,% + headsep=\tud@dim@headsep,% + textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff,% + footskip=\dimexpr\tud@ta@footskip,% + }% + \def\tud@geometry@dmargin{% + textheight=\dimexpr\tud@ta@textheight-\tud@ta@headdiff-\tud@ta@footdiff,% + footskip=\dimexpr\tud@ta@footskip+\tud@ta@footdiff,% + }% +% \end{macrocode} +% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile +% für den \pkg{typearea}-Satzspiegel berechnet. +% \begin{macrocode} + \global\setlength{\tud@ta@headdiff}{\dimexpr% + \tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep% + -\tud@ta@topmargin-\tud@ta@headheight-\tud@ta@headsep-1in% + }% +% \end{macrocode} +% Hier erfolgt die Definition der Hilfsmakros für das CD-konforme asymmetrische +% bzw. an das \CD angelehnte Layout für einseitigen und zweiseitigen Satz. +% Zuerst werden die verschiedenen unterschiedlichen horizontalen Ränder für die +% unterschiedlichen Optionen definiert. Danach kommt der Gleichanteil. +% \begin{macrocode} + \else% + \ifcase \tud@geometry\or% + \def\tud@geometry@hmargin{% + left=\tud@dim@left,% + textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor,% + bindingoffset=\ta@bcor,% + \if@twoside asymmetric,\fi% + }% +% \end{macrocode} +% Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl +% im einseitigen als auch im zweiseitgigen Satz symmetrisch. +% \begin{macrocode} + \or% + \def\tud@geometry@hmargin{% + left=.5\tud@dim@both,% + textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor,% + bindingoffset=\ta@bcor,% + }% +% \end{macrocode} +% Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist +% im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite +% schmaler gesetzt als die äußere, wobei hier auf das in den Seitenrand ragende +% TUD-Logo geachtet werden muss. +% \begin{macrocode} + \or% + \def\tud@geometry@hmargin{% + \if@twoside% + left=.4\tud@dim@both,% + twoside,% + \else% + left=.5\tud@dim@both,% + \fi% + textwidth=\dimexpr\paperwidth-\tud@dim@both-\ta@bcor,% + bindingoffset=\ta@bcor,% + }% + \fi% +% \end{macrocode} +% Für alle drei Varianten der Gleichanteil. +% \begin{macrocode} + \def\tud@geometry@vmargin{% + top=\tud@dim@top,% + headsep=\tud@dim@headsep,% + bottom=\tud@dim@bottom,% + footskip=\tud@dim@footskip,% + }% + \def\tud@geometry@pmargin{% + top=\dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep,% + headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight,% + headsep=\tud@dim@headsep,% + bottom=\tud@dim@bottom,% + footskip=\tud@dim@footskip,% + }% + \def\tud@geometry@dmargin{% + bottom=\dimexpr\tud@dim@bottom+\tud@ta@footdiff,% + footskip=\dimexpr\tud@dim@footskip+\tud@ta@footdiff+\baselineskip,% + }% +% \end{macrocode} +% Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile +% für den Satzspiegel des \CDs berechnet. +% \begin{macrocode} + \global\setlength{\tud@ta@headdiff}{\dimexpr% + \tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep-\tud@dim@top% + }% + \fi% +% \end{macrocode} +% Es wird \cs{tud@geometry@@process} aufgerufen, was die zuvor definierten +% Hilfsmakros nutzt, um alle benötigten Seitenlayouts optionsabhängig zu +% erstellen. +% \begin{macrocode} + \tud@geometry@@process% +} +% \end{macrocode} +% Der Befehl \cs{tud@geometry@@process} setzt mit den zuvor definierten +% Hilfsmakros die \pkg{geometry}"=Optionen für sowohl die seitlichen als auch +% die oberen sowie unteren Seitenränder und inkludiert ggf. Kopf- und Fußzeile +% in den Satzspiegel. Die unterschiedlichen Layouts sind dabei \opt{tudddc} für +% TUD-Kopf und DDC-Fuß, \opt{tudpage} für den alleinigen TUD-Kopf sowie +% \opt{tudarea} für den normalen bzw. mit \pkg{typearea} berechneten +% Satzspiegel. +% \begin{macrocode} +\newcommand*\tud@geometry@@process{% +% \end{macrocode} +% Als erstes wird der Satzspiegel für TUD-Kopf und DDC-Fuß erstellt. +% \begin{macrocode} + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@pmargin,% + \tud@geometry@dmargin,% + \tud@geometry@@@process% + }% + \expandafter\newgeometry\expandafter{\@tempa}% + \savegeometry{tudddc}% +% \end{macrocode} +% Danach der, welcher lediglich den TUD-Kopf aber die Standardfußzeile hat. +% \begin{macrocode} + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@pmargin,% + \tud@geometry@@@process% + }% + \expandafter\newgeometry\expandafter{\@tempa}% + \savegeometry{tudpage}% +% \end{macrocode} +% Der Standardsatzspiegel wird erstellt. +% \begin{macrocode} + \edef\@tempa{% + \tud@geometry@hmargin,% + \tud@geometry@vmargin,% + \tud@geometry@@@process% + }% + \expandafter\newgeometry\expandafter{\@tempa}% + \savegeometry{tudarea}% +} +% \end{macrocode} +% Das Hilfsmakro \cs{tud@geometry@@@process} wird bei der Umsetzung der +% einzelnen Satzspiegeloptionen mittels der Befehle \cs{tud@geometry@process} +% bzw. \cs{tud@geometry@@process} genutzt, um die Optionen für das Einbeziehen +% von Kopf- und Fußzeile in den Satzspiegel auszuwerten. +% \begin{macrocode} +\newcommand*\tud@geometry@@@process{% + \if@hincl% + \if@fincl% + includeheadfoot,% + \else% + includehead,ignorefoot,% + \fi% + \else% + \if@fincl% + ignorehead,includefoot,% + \else% + ignoreheadfoot,% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@geometry@@@process +% \end{macro}^^A \tud@geometry@@process +% \end{macro}^^A \tud@geometry@process +% \todo[v3.12]{% +% Setzen von tud@ta@headdiff auf 0pt bei scrlayer notwendig? Wenn Kapitel auf +% gleicher Höhe wie Teile und Titel gesetzt werden sollen, wahrscheinlich +% schon, siehe tudscr-layer.dtx +% } +% \todo[v3.12]{% +% \env{tudpage}-Umgebung durch Seitenstil ersetzen, falls diese für die +% Satzspiegelumstellung überflüssig ist, wie mit den Optionen umgehen? +% } +% \todo[v3.12]{Inkompatibilität mit part und chapter beheben und aus doku raus} +% \begin{environment}{tudpage} +% Durch den hohen TUD-Kopf muss bei der Verwendung dessens das Seitenlayout +% temporär umgeschaltet werden, um die Höhe des Satzspiegels zu verringern. +% Dafür wird diese Umgebung definiert, welche genau diese Aufgabe übernimmt. +% Zu Beginn der Umgebung werden die weiter unten beschriebenen Optionen für +% diese Umgebung mit \cs{TUD@parameter@set} ausgeführt. Durch einen zuvor +% erzwungenen Seitenumbruch wird sichergestellt, dass mögliche Änderungen +% nur auf den \env{tudpage}-Seiten wirksam werden. Nach dem Beenden der +% Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout +% wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner +% Wert ohne Schlüssel angegben werden. +% \begin{macrocode} +\NewEnviron{tudpage}[1][]{% + \clearpage% + \setlength{\tud@ta@headdiff}{\z@}% + \TUD@parameter@set[tudpage]{#1}% + \tud@multicols@check% +% \end{macrocode} +% Sollte für den Fuß die Option des DDC-Logos gewählt worden sein, so wird das +% entsprechende Layout gewählt. +% \begin{macrocode} + \ifnum\tud@ddc@foot=\z@\relax% + \loadgeometry{tudpage}% + \else% + \loadgeometry{tudddc}% + \fi% +% \end{macrocode} +% Für die \env{abstract}-Umgebung wird der Seitenstil angepasst. +% \todo[v3.12]{wie und wo \cs{abstractpagestyle} definieren? Hier eher nicht} +% \begin{macrocode} +%% \ifstr{\abstractpagestyle}{empty}% +%% {\renewcommand*\abstractpagestyle{tudpage@empty}}% +%% {\renewcommand*\abstractpagestyle{tudpage@plain}}% +% \end{macrocode} +% Mit geändertem Satzspiegel kann schließlich auch der dazugehörige Seitenstil +% eingestellt werden. +% \begin{macrocode} + \pagestyle{tudpage@plain}% +% \end{macrocode} +% Falls das \pkg{multicol}-Paket geladen ist und eine Spaltenanzahl angegeben +% ist, wird die entsprechende Umgebung gesartet, mit \cs{BODY} der Inhalt der +% \env{tudpage}-Umgebung ausgegeben und anschließend gegebenenfalls die +% \env{multicols}-Umgebung beendet. +% \begin{macrocode} + \ifnum\tud@multicols>1\relax% + \begin{multicols}{\tud@multicols}% + \fi% + \BODY% + \ifnum\tud@multicols>1\relax% + \end{multicols}% + \fi% +% \end{macrocode} +% Am Ende der Umgebung wird der Satzspiegel auf normal zurückgesetzt und ein +% Seitenumbruch erzeugt, damit die Einstellungen auch wirksam werden. Dazu +% wird die Ausführung das Hilfsmakro \cs{@tempa} auf das Beenden der Umgebung +% mit \cs{aftergroup} verzögert. +% \todo[v3.12]{Umstellung auf pagestyle und entsprechenden Hooks aus scrlayer?} +% \begin{macrocode} +}[% + \gdef\@tempa{\loadgeometry{tudarea}}% + \aftergroup\@tempa% + \clearpage% +] +% \end{macrocode} +% \end{environment}^^A tudpage +% Im Folgenden werden die einzelnen Parameter für die \env{tudpage}"=Umgebung +% definiert. Mit \cs{TUD@parameter}\marg{Family}\marg{\dots} wird die +% Parameterfamilie festgelegt und anschließend die Definitionen getätigt. +% \todo[v3.12]{Parameter ddc (ddchead) und ddcfoot wie titelseite} +% \begin{macrocode} +\TUD@parameter{tudpage}{% +% \end{macrocode} +% \begin{parameter}{language} +% Mit diesem Parameter kann die Sprache in der Umgebung umgeschaltet werden. Die +% Sprache kann auch ohne den entsprechenden Schlüssel direkt als Parameter +% angegeben werden. +% \begin{macrocode} + \TUD@parameter@define{language}{\selectlanguage{#1}}% +% \end{macrocode} +% \end{parameter} ^^A language +% \begin{parameter}{columns} +% Hiermit kann die Anzahl der Spalten für die Umgebung angegeben werden. Für +% mehr als zwei Spalten muss das Paket \pkg{multicols} geladen werden. Die +% Spaltenanzahl kann auch ohne den entsprechenden Schlüssel direkt Parameter +% angegeben werden. +% \begin{macrocode} + \TUD@parameter@define{columns}{\def\tud@multicols{#1}}% +% \end{macrocode} +% \end{parameter} ^^A columns +% \begin{parameter}{color} +% \begin{parameter}{colour} +% Die \opt{color}"=Option ändert die Farbe von Schrift, Querbalken und im +% pdf\LaTeX-Modus auch die des TUD-Logos. Die im Anschluss daran aufgerufenen +% Befehle \cs{tud@ddc@sethead} bzw. \cs{tud@ddc@setfoot} führen zu einer evtl. +% notwendigen, automatischen Anpassung der Farbe der DDC-Logos +% \begin{macrocode} + \TUD@parameter@define{color}[HKS41]{% + \def\tud@head@color{#1}% + \tud@ddc@sethead% + \tud@ddc@setfoot% + }% + \TUD@parameter@let{colour}{color} +% \end{macrocode} +% \end{parameter}^^A colour +% \end{parameter}^^A color +% \begin{parameter}{widehead} +% Die Breite des Querbalkens kann ebenfalls geändert werden. +% \begin{macrocode} + \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% +% \end{macrocode} +% \end{parameter}^^A widehead +% \begin{parameter}{head} +% Mit der Option \opt{head} kann das Logo für Dresden-Concept oder aber ein +% anderes, mit \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} gegebenes, als +% sekundäres Logo für den Kopf ausgewählt werden. +% \begin{macrocode} + \TUD@parameter@define{head}{% + \tud@lowerstring{\@tempa}{#1}% + \ifstr{\@tempa}{false}{\def\tud@ddc@head{0}\headlogo{}}{% + \ifstr{\@tempa}{off}{\def\tud@ddc@head{0}\headlogo{}}{% + \ifstr{\@tempa}{no}{\def\tud@ddc@head{0}\headlogo{}}{% + \ifstr{\@tempa}{ddc}{\def\tud@ddc@head{1}\tud@ddc@sethead}{% + \ifstr{\@tempa}{ddccolor}{\def\tud@ddc@head{2}\tud@ddc@sethead}{% + \ifstr{\@tempa}{ddccolour}{\def\tud@ddc@head{2}\tud@ddc@sethead}{% + \ifstr{\@tempa}{logo}{\def\tud@ddc@head{0}}{% + \ifstr{\@tempa}{cdfont}{\@tud@cdfontstrue}{% + \ifstr{\@tempa}{cdfonts}{\@tud@cdfontstrue}{% + \TUD@parameter@wrn{head}{false,ddc,ddccolor,logo,cdfont,cdfonts}% + }}}}}}}}}% + }% +% \end{macrocode} +% \end{parameter}^^A head +% \begin{parameter}{foot} +% Die Option \opt{foot} ermöglicht, den Fuß der \env{tudpage}"=Seite +% entweder leer oder aber mit dem DDC-Logo zu setzen. Der Wert des Schalters +% \cs{tud@ddc@foot} wird betrachtet, um die Fußzeile beim Setzen des +% DDC-Logos in der Höhe anzupassen. +% \begin{macrocode} + \TUD@parameter@define{foot}{% + \tud@lowerstring{\@tempa}{#1}% + \ifstr{\@tempa}{empty}{% + \def\tud@ddc@foot{0}% + \renewcommand*\@oddfoot{}% + \let\@evenfoot\@oddfoot% + }{% + \ifstr{\@tempa}{plain}{\def\tud@ddc@foot{0}}{% + \ifstr{\@tempa}{ddc}{\def\tud@ddc@foot{1}\tud@ddc@setfoot}{% + \ifstr{\@tempa}{ddccolor}{\def\tud@ddc@foot{2}\tud@ddc@setfoot}{% + \ifstr{\@tempa}{ddccolour}{\def\tud@ddc@foot{2}\tud@ddc@setfoot}{% + \TUD@parameter@wrn{foot}{plain,empty,ddc,ddccolor}% + }}}}% + }% + }% +% \end{macrocode} +% \end{parameter}^^A foot +% \begin{parameter}{cdfont} +% \begin{parameter}{cdfonts} +% \begin{parameter}{tudfonts} +% Die Option \opt{cdfont} bzw. \opt{cdfonts} bestimmt, ob die Schriften des +% \CDs{} oder aber die standarmäßigen Serifenlosen für die Auszeichnugen in der +% Kopfzeile und Serifen im Inhalt verwendet werden. +% \begin{macrocode} + \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@define{tudfonts}[true]{\TUDoption{cdfonts}{#1}}% +% \end{macrocode} +% \end{parameter}^^A tudfonts +% \end{parameter}^^A cdfonts +% \end{parameter}^^A cdfont +% \begin{parameter}{logo} +% \begin{parameter}{headlogo} +% Das sekundäre Logo kann ebenfalls lokal geändert werden. +% \begin{macrocode} + \TUD@parameter@define{logo}[true]{\headlogo{#1}}% + \TUD@parameter@let{headlogo}{logo}% +% \end{macrocode} +% \end{parameter}^^A headlogo +% \end{parameter}^^A logo +% Für den Fall, dass ein Wert nicht in der Schlüssel"=Wert"=Notation gegeben +% wird, erfolgt eine Sonderbehandlung durch \cs{tud@environmenthandler}, bei der +% erst auf eine Zahl geprüft wird und anschießend versucht wird, das Argument +% als Sprache zu setzen. Nach der Definition aller Parameter wird der Befehl +% \cs{TUD@parameter} und damit auch die aktuelle Parameterfamilie beendet. +% \begin{macrocode} + \TUD@parameter@sethandler{\tud@environmenthandler{#1}} +} +% \end{macrocode} +% \todo[v3.12]{via \pkg{scrlayer}} +% \begin{macro}{\tud@ddc@sethead} +% Dieser Befehl wird nach der Optionswahl für die Option \opt{head} der +% \env{tudpage}"=Umgebung ausgeführt, um das ggf. gewünschte Logo für den +% Kopf auszuwählen. +% \begin{macrocode} +\newcommand*\tud@ddc@sethead{% + \ifcase \tud@ddc@head\relax\or% + \def\tud@head@@logo{DDC-24}% + \ifstr{\tud@head@color}{HKS41}% + {\def\tud@head@@logo{DDC-27}}{}% + \ifstr{\tud@head@color}{cddarkblue}% + {\def\tud@head@@logo{DDC-27}}{}% + \ifstr{\tud@head@color}{white}% + {\def\tud@head@@logo{DDC-30}}{}% + \or% + \def\tud@head@@logo{DDC-09}% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@sethead +% \todo[v3.12]{via \pkg{scrlayer}} +% \begin{macro}{\tud@ddc@setfoot} +% \begin{macro}{\tud@foot@logo} +% Dieser Befehl wird nach der Wahl eines Logos über die Option \opt{foot} +% für die \env{tudpage}"=Umgebung ausgeführt, um dieses im Fuß zu setzen. +% \begin{macrocode} +\newcommand*\tud@foot@logo{} +\newcommand*\tud@ddc@setfoot{% + \ifcase \tud@ddc@foot\relax\or% + \def\tud@foot@logo{DDC-22}% + \ifstr{\tud@head@color}{HKS41}% + {\def\tud@foot@logo{DDC-25}}{}% + \ifstr{\tud@head@color}{cddarkblue}% + {\def\tud@foot@logo{DDC-25}}{}% + \ifstr{\tud@head@color}{white}% + {\def\tud@foot@logo{DDC-28}}{}% + \or% + \def\tud@foot@logo{DDC-07}% + \fi% + \ifcase \tud@ddc@foot\relax\else% + \renewcommand*\@oddfoot{% + \parbox[b]{\textwidth}{% + \hfill\includegraphics[height=\tud@dim@ddcheight]{\tud@foot@logo}% + }% + }% + \let\@evenfoot\@oddfoot% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@foot@logo +% \end{macro}^^A \tud@ddc@setfoot +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx new file mode 100644 index 00000000000..88273271c83 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-supervisor.dtx @@ -0,0 +1,555 @@ +% \CheckSum{609} +% \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-supervisor.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-supervisor.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (supervisors)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-supervisor.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Aufgabenstellung} +% +% Diese Paket stellt für die \cls{tudscr}-Klassen eine Umgebung für die +% Aufgabenstellung einer Abschlussarbeit bereit. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*package&header> +% \fi +% +% \subsection{Identifizierung des Pakets \pkg{tudscrsupervisor}} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tudscrsupervisor}[\TUDVersion\space package (supervisors)] +\ifx\tudcls@name\undefined + \PackageError{tudscrsupervisor}{Unsupported class found}{% + This package can only be used with a class out of the\MessageBreak% + tudscr bundle (tudscrartcl, tudscrreprt, tudscrbook)% + } + \endinput +\fi +% \end{macrocode} +% +% \iffalse +% +%<*package&body> +% \fi +% +% \subsection{Das Paket \pkg{tudscrsupervisor}} +% +% \begin{environment}{task} +% Die Umgebung für die Aufgabenstellung nutzt die \env{tudpage}-Umgebung. Sie +% wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle +% mit Informationen zum Autor gesetzt. Zum Abschluss werden Betreuer, +% Hochschullehrer und ggf. Vorsitzender des Prüfungsausschusses ausgegeben. +% \begin{macrocode} +\newenvironment{task}[1][]{% +% \end{macrocode} +% Die \env{tudpage}-Umgebung wird geöffnet. Mit dem Parameter \opt{headline} +% kann die standardmäßige Überschrift überschrieben werden. Die Aufgabenstellung +% wird normal mit DDC-Logo im Fuß gesetzt. +% \begin{macrocode} + \cleardoubleoddpage% + \def\@headline{}% + \TUD@parameter{tudpage}{% + \TUD@parameter@define{headline}{\def\@headline{##1}}% + \TUD@parameter@let{line}{headline}% + \TUD@parameter@sethandler{\def\@headline{##1}}% + \TUD@parameter@set{foot=ddc}% + }% + \tudpage[#1]% +% \end{macrocode} +% Zu Beginn wird als erstes die Überschrift und~-- die entsprechende Option +% vorausgesetzt~-- im PDF einen Lesezeichen- oder auch Outline-Eintrag gesetzt. +% \begin{macrocode} + \tudbookmark{\taskname}{task}% + \subsection*{% + \ifx\@headline\@empty% + \taskname\space% + \ifx\tasktext\@empty\else\ifx\@thesis\@empty\else% + \ignorespaces\tasktext\space\trim@spaces{\@thesis}% + \fi\fi% + \else\@headline\fi% + }% + \tud@author@table% +}{% +% \end{macrocode} +% Da auch Betreuer durch den Befehl \cs{and} getrennt werden, wird dieser für +% die korrekte Ausgabe umdefiniert. Anschließend folgt die Ausgabe in einer +% Tabelle, die Spalte der Bezeichner entspricht der aus dem oberen Teil. +% \begin{macrocode} + \def\and{% + \tabularnewline% + \ifx\supervisorothername\@empty\else\supervisorothername\@titledelim\fi% + & \def\and{\tabularnewline &}% + }% + \vskip-\lastskip% + \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip% + \begingroup% + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% + \begin{tabular}{@{}p{\tud@dim@table}l@{}}% + \supervisorname\@titledelim & + \@supervisor\tabularnewline[\smallskipamount]% + \issuedatetext\@titledelim & \@issuedate\tabularnewline% + \duedatetext\@titledelim & \@duedate\tabularnewline% + \end{tabular}% +% \end{macrocode} +% Darunter wird etwas Platz für die Unterschriften von betreuendem Professor +% und ggf. Prüfungsausschussvorsitzenden gehalten. Auch diese beiden werden +% in einer Tabelle ausgegeben. Die \env{tudpage}-Umgebung wird beendet, und +% eine neue (rechte) Seite geöffnet. +% \begin{macrocode} + \vskip 15mm plus 10mm minus 10mm% + \ifx\@chairman\@empty\else% + \begin{tabular}{@{}l@{}}% + \@chairman\tabularnewline% + \chairmanname\tabularnewline% + \end{tabular}% + \hfill% + \fi% + \ifx\@professor\@empty\else% + \begin{tabular}{@{}l@{}}% + \@professor\tabularnewline% + \professorname\tabularnewline% + \end{tabular}% + \fi% + \par% + \endgroup% + \endtudpage% + \cleardoublepage% +} +% \end{macrocode} +% \end{environment}^^A task +% \begin{macro}{\taskform} +% Dies soll die Standardform einer Aufgabenstellung sein. Im ersten Argument +% werden kurz die Ziele motiviert und erläutert, im zweiten Argument werden im +% besten Fall die Schwerpunkte in einer \env{itemize}-Umgebung aufgeschlüsselt. +% \begin{macrocode} +\newcommand{\taskform}[3][]{% + \begin{task}[#1] + \vskip-\lastskip% + \ifxblank{#2}{}{% + \vspace*{-\parskip}% + \minisec{\objectivesname}% + #2% + }% + \ifxblank{#3}{}{% + \vspace*{-\parskip}% + \minisec{\focusname}% + \begin{itemize}\tud@RaggedRight% + #3 + \end{itemize}% + }% + \end{task}% +} +% \end{macrocode} +% \end{macro}^^A \taskform +% \begin{environment}{evaluation} +% Die Umgebung für das Gutachten nutzt ebenfalls die \env{tudpage}-Umgebung. Sie +% wird auf einer neuen (rechten) Seite gesetzt. Es wird zu Beginn eine Tabelle +% mit Informationen zum Autor gesetzt. Zum Abschluss werden Ort, Datum und +% Gutachter ausgegeben. +% \begin{macrocode} +\newenvironment{evaluation}[1][]{% +% \end{macrocode} +% Die \env{tudpage}-Umgebung wird geöffnet. Mit dem Parameter \opt{headline} +% kann die standardmäßige Überschrift überschrieben werden. Das Gutachten wird +% normalerweise mit DDC-Logo im Fuß gesetzt. Zu Beginn wird als erstes die +% Überschrift und~-- die entsprechende Option vorausgesetzt~-- im PDF einen +% Lesezeichen- oder auch Outline-Eintrag gesetzt. +% \begin{macrocode} + \cleardoubleoddpage% + \def\@headline{}% + \TUD@parameter{tudpage}{% + \TUD@parameter@define{headline}{\def\@headline{##1}}% + \TUD@parameter@let{line}{headline}% + \TUD@parameter@define{grade}{\def\@grade{##1}}% + \TUD@parameter@sethandler{\def\@headline{##1}}% + \TUD@parameter@set{foot=ddc}% + }% + \tudpage[#1]% + \tudbookmark{\evaluationname}{evaluation}% + \subsection*{% + \ifx\@headline\@empty% + \evaluationname\space% + \ifx\evaluationtext\@empty\else\ifx\@thesis\@empty\else% + \ignorespaces\evaluationtext\space\trim@spaces{\@thesis}% + \fi\fi% + \else\@headline\fi% + }% + \tud@author@table% +}{% +% \end{macrocode} +% Die gegebenen Note sowie Ort und Datum werden am Ende ggf. ausgegeben. +% \begin{macrocode} + \vskip-\lastskip% + \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% + \medskip% + \ifx\@grade\@empty\else% + \noindent\gradetext% + \vskip\bigskipamount% + \fi% + \ifx\@date\@empty\else% + \noindent% + \ifx\@place\@empty\else\@place,~\fi\@date% + \vskip\bigskipamount% + \fi% + \bigskip\bigskip\noindent% +% \end{macrocode} +% Der Befehl \cs{and} wird für einen möglichen Zweitgutachter angepasst. Das +% Hilfsmakro \cs{@tempa} dient zur Übernahme des richtigen Bezeichners für +% Erst- bzw. Zweitgutachter. Sollten mit \cs{referee} keine Gutachter angegeben +% sein, so werden die angegeben Betreuer verwendet. +% \begin{macrocode} + \ifx\@referee\@empty\let\@referee\@supervisor\fi% + \let\@tempa\refereename% + \def\and{% + \tabularnewline% + \@tempa% + \endtabular% + \hfill% + \tabular{@{}l@{}}% + \global\let\@tempa\refereeothername% + }% + \begin{tabular}{@{}l@{}}% + \@referee% + \tabularnewline% + \@tempa% + \end{tabular}% + \hfill\null% + \endtudpage% + \cleardoublepage% +} +% \end{macrocode} +% \end{environment}^^A evaluation +% \begin{macro}{\evaluationform} +% Dies soll die Standardform eines Gutachtens sein. Im ersten Argument wird kurz +% die Aufgabenstellung zusammengefasst, im zweiten Argument wird der Inhalt und +% die Struktur der Arbeit kurz beschrieben. Im dritten Argument erfolgt die +% Bewertung, das letzte Argument beinhaltet die Note. +% \begin{macrocode} +\newcommand{\evaluationform}[5][]{% + \begin{evaluation}[#1] + \vskip-\lastskip% + \ifxblank{#2}{}{% + \vspace*{-\parskip}% + \minisec{\taskname}% + #2% + }% + \ifxblank{#3}{}{% + \vspace*{-\parskip}% + \minisec{\contentname}% + #3% + }% + \ifxblank{#4}{}{% + \vspace*{-\parskip}% + \minisec{\assessmentname}% + #4% + }% + \ifxblank{#5}{}{\def\@grade{#5}}% + \end{evaluation}% +} +% \end{macrocode} +% \end{macro}^^A \evaluationform +% \begin{macro}{\tud@author@table} +% \begin{length}{\tud@dim@table} +% Der Befehl \cs{tud@author@table} dient zur Ausgabe einer Tabelle mit +% Informationen zum Autor/zu den Autoren\footnote{Matrikelnummer, Jahrgang, +% Studiengang etc.} für Aufgabenstellung und Gutachten. +% \begin{macrocode} +\newlength{\tud@dim@table}% +\newcommand*\tud@author@table{% + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% +% \end{macrocode} +% Der Befehl \cs{tud@split@@author} ist original aus den \cls{tudscr}-Klassen +% und dient zur formatierten Ausgabe von mehreren Autoren, welche durch +% \cs{author}\marg{Autor(en)} angegeben und mit \cs{and} getrennt wurden. +% Er wird hier auf die Ausgabe der Autoren mit den jeweils zusätzlich gegebenen +% Informationen in einer Tabelle angepasst. +% \begin{macrocode} + \renewcommand*\tud@split@@author[2]{% +% \end{macrocode} +% Weil alle Autoren in einer Tabelle gesetzt werden wird geprüft, welche Felder +% individuell via \cs{author} angegeben wurden. Damit die Tabellen die gleiche +% Höhe haben, auch wenn für einen Autor ein Feld ausgelassen wurde, werden alle +% insgesamt angegebenen Felder mit via \cs{tud@multiple@setfields} mit \cs{null} +% initialisiert. Anschließend werden für den aktuellen Autor angegebenen Felder +% gesetzt. +% \begin{macrocode} + \tud@multiple@setfields{\null}{##1}% +% \end{macrocode} +% Nach viel Geplänkel kommt nun die eigentliche Tabelle mit ggf. zusätzlichen +% Informationen zum Autor. +% \begin{macrocode} + \begin{tabular}{l@{}}% + \ifx\@course\@empty\else\@course\tabularnewline\fi% + \ifx\@branch\@empty\else\@branch\tabularnewline\fi% + \textsf{\textbf{\ignorespaces##1}}\tabularnewline% + \ifx\@matriculationnumber\@empty\else% + \@matriculationnumber\tabularnewline% + \fi% + \ifx\@matriculationyear\@empty\else% + \@matriculationyear\tabularnewline% + \fi% + \end{tabular}% +% \end{macrocode} +% Sollte ein weiterer Autor folgen, wird \cs{tabcolsep} zusätzlich eingefügt, +% um den Standardabstand bei Tabellen zu sichern, da die Tabelle vorher ohne +% rechten \glqq Rand\grqq{} gesetzt wurde, um die letzte Tabelle ggf. genau bis +% zum rechten Rand setzen zu können. +% \begin{macrocode} + \tud@multiple@@@split{##2}{~~\hspace{\tabcolsep}} + }% +% \end{macrocode} +% Zu Beginn wird eine Tabelle mit den Bezeichnern aller genutzten Feldern +% ausgegeben. Danach folgen alle Autoren. Damit ein einheitliches Layout +% entsteht und auch die Tabellen am Ende der Umgebung in der ersten Spalte die +% gleiche Breite haben wie im oberen Teil, ist die Bestimmung einer festen +% Spaltenbreite notwendig, die so breit wie der längste Bezeichner ist. +% Dafür muss festgestellt werden, welche optionalen Felder denn nun überhaupt +% genutzt werden. Dafür wird \cs{tud@multiple@setfields\{\cs{null}\}}\{\} +% aufgerufen, um alle potentiellen Felder erkennen zu können. +% \begin{macrocode} + \global\setlength{\tud@dim@table}{2em}% + \gdef\tud@multiple@field{@@author}% + \tud@multiple@setfields{\null}{}% +% \end{macrocode} +% Anschließend werden die Bezeichner sowohl der obligatorischen als auch der +% genutzten, optionalen Felder expandiert. Anschließend wir mit dieser Liste +% der längste bestimmt und in \cs{tud@dim@table} gespeichert. +% \begin{macrocode} + \edef\@tempa{% + \authorname,\titlename,\supervisorname,\supervisorothername,% + \issuedatetext,\duedatetext,% + \expandafter\ifx\@matriculationnumber\@empty\else% + \matriculationnumbername% + \fi,% + \expandafter\ifx\@matriculationyear\@empty\else% + \matriculationyearname% + \fi,% + \expandafter\ifx\@course\@empty\else\coursename\fi,% + \expandafter\ifx\@branch\@empty\else\branchname\fi,% + }% + \@for\@tempb:=\@tempa\do{% + \settowidth{\@tempdima}{\@tempb\@titledelim}% + \ifdim\@tempdima>\tud@dim@table\relax% + \global\setlength{\tud@dim@table}{\@tempdima}% + \fi% + }% +% \end{macrocode} +% Die Tabelle mit den benötigten Bezeichnern. Damit diese bis an den Seiterand +% ohne Warnungen gesetzt werden können, wird die Auszeichnung von Absatzenden +% aufgehoben. +% \begin{macrocode} + \begingroup% + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% + \begin{tabular}{@{}p{\tud@dim@table}}% + \ifx\@course\@empty\else% + \coursename\@titledelim\tabularnewline% + \fi% + \ifx\@branch\@empty\else% + \branchname\@titledelim\tabularnewline% + \fi% + \authorname\@titledelim\tabularnewline% + \ifx\@matriculationnumber\@empty\else% + \matriculationnumbername\@titledelim\tabularnewline% + \fi% + \ifx\@matriculationyear\@empty\else% + \matriculationyearname\@titledelim\tabularnewline% + \fi% + \end{tabular}% +% \end{macrocode} +% Folgend werden die Autoren wie schon bei \cs{maketitle} mit den gleichen +% Makros gesplittet und separat ausgegeben. +% \begin{macrocode} + \tud@multiple@split{@@author}% +% \end{macrocode} +% Nach den Autoren wird der Titel über die komplette Textbreite ausgegeben. +% Danach wird der Inhalt der Aufgabenstellung ausgegeben. +% \begin{macrocode} + \vskip\smallskipamount% + \begin{tabular}{@{}p{\tud@dim@table}% + p{\dimexpr\textwidth-\tud@dim@table-2\tabcolsep\relax}@{}}% + \titlename\@titledelim & \tud@RaggedRight\textsf{\textbf{\@@title}}% + \end{tabular}% + \par% + \endgroup% + \ifdim\parskip>\z@\else\vskip\topsep\fi% + \endgroup% + \noindent\ignorespaces% +} +% \end{macrocode} +% \end{length}^^A \tud@dim@table +% \end{macro}^^A \tud@author@table +% \begin{macro}{\tud@author@checkfields} +% Der Befehl \cs{tud@author@checkfields} wird um die hier im Paket zusätzlich +% definierten Felder erweitert. +% \begin{macrocode} +\patchcmd{\tud@split@@author@list}{\authormore}% + {\authormore,\branch,\course,\discipline}{}{} +% \end{macrocode} +% \end{macro}^^A \tud@author@checkfields +% \begin{environment}{notice} +% Die Umgebung für Aushänge nutzt ebenfalls die \env{tudpage}-Umgebung. Sie wird +% auf einer neuen (rechten) Seite gesetzt. Die Überschrift wird in der +% Voreinstellung auf den sprachabhängigen Bezeichner \cs{noticename} gesetzt, +% welcher allerdings mit dem Parameter \opt{headline} überschrieben werden kann. +% \begin{macrocode} +\newenvironment{notice}[1][]{% + \cleardoubleoddpage% + \def\@headline{\noticename}% + \TUD@parameter{tudpage}{% + \TUD@parameter@define{headline}{\def\@headline{##1}}% + \TUD@parameter@let{line}{headline}% + \TUD@parameter@sethandler{\def\@headline{##1}}% + \TUD@parameter@set{foot=ddc}% + }% + \tudpage[#1]% + \tudbookmark{\noticename}{notice}% +% \end{macrocode} +% Es wird zu Beginn das angegebene Datum oben auf der rechten Seite ausgegeben. +% Anschließend wird die Überschrift und der gegebene Titel gesetzt. +% \begin{macrocode} + \ifx\@date\@empty\else% + \begingroup% + \vspace*{-\parskip}% + \vspace*{-2\baselineskip}% + \raggedleft + \@date\par% + \vspace*{-\parskip}% + \endgroup% + \fi% + \ifx\@headline\@empty\else% + \section*{\@headline}% + \fi% +}{% +% \end{macrocode} +% Wenn keine Kontaktperson direkt angegeben wurden, werden die Informationen der +% angegeben Betreuer verwendet. Wenn eine Personenangabe gefunden wurde, werden +% die Kontaktdaten ausgegeben. +% \begin{macrocode} + \ifx\@contact\@empty\let\@contact\@supervisor\fi% + \ifx\@contact\@empty\else% + \vskip-\lastskip% + \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% + \subsection*{\contactname}% + \noindent\tud@multiple@split{@contact}\hfill\null% + \fi% + \endtudpage% + \cleardoublepage% +} +% \end{macrocode} +% \end{environment}^^A notice +% \begin{macro}{\noticeform} +% Dies soll die Standardform eines Aushangs für eine Abschlussarbeit sein. Im +% ersten Argument wird kurz der Inhalt zusammengefasst, im zweiten Argument +% werden die Arbeitsschwerpunkte beschrieben. +% \begin{macrocode} +\newcommand{\noticeform}[3][]{% + \begin{notice}[#1] + \vskip-\lastskip% + \ifxblank{#2}{}{% + \ifx\@@title\@empty\else% + \vspace*{-\parskip}% + \minisec{\expandonce{\@@title}}% + \fi% + #2% + }% + \ifxblank{#3}{}{% + \vspace*{-\parskip}% + \minisec{\focusname}% + \begin{itemize}\tud@RaggedRight% + #3 + \end{itemize}% + }% + \end{notice}% +} +% \end{macrocode} +% \end{macro}^^A \noticeform +% \begin{macro}{\tud@split@contact} +% \begin{macro}{\tud@split@contact@list} +% Mit diesem Befehl werden für einen Aushang die Daten für einen oder mehrere +% Kontaktpersonen ausgegeben. +% \begin{macrocode} +\newcommand*\tud@split@contact[2]{% + \tud@multiple@setfields{\null}{#1}% + \begin{tabular}{@{}l@{}}% + \ignorespaces#1\tabularnewline% + \ifx\@office\@empty\else\@office\tabularnewline\fi% + \ifx\@phone\@empty\else\@phone\tabularnewline\fi% + \ifx\@email\@empty\else\@email\tabularnewline\fi% + \end{tabular}% + \tud@multiple@@@split{#2}{\hfill}% +} +\newcommand*\tud@split@contact@list{\office,\phone,\email} +% \end{macrocode} +% \end{macro}^^A \tud@split@contact@list +% \end{macro}^^A \tud@split@sontact +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file 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..34972ab408b --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-title.dtx @@ -0,0 +1,1350 @@ +% \CheckSum{1230} +% \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> +% \fi +\ProvidesFile{tudscr-title.dtx}% + [2014/04/24 v2.01 TUD-KOMA-Script (title)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-title.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Titelei} +% +% Die Titelseite wird sowohl für die Klassen als auch separat für das +% \pkg{titlepage}-Paket bereitgestellt. +% \todo[v3.12]{KOMA-Fonts für: titlehead, author, date, publishers, dedication; +% Serifenlose für alle Felder in tud@maketitle setzen, evtl. sowas wie +% renewkomafont für alle Schriften nutzen?! +% } +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&!option> +% \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 +% +%<*titlepage|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} +%<*class> +\newif\if@tud@subjectthesis +\TUD@key@lock{subjectthesis}[true]{% + \TUD@set@ifkey@lock{subjectthesis}{@tud@subjectthesis}{#1}% +} +% +%<*titlepage> +\FamilyBoolKey[TU-Dresden]{title}{subjectthesis}{@tud@subjectthesis} +% +% \end{macrocode} +% \end{macro}^^A \if@tud@subjectthesis@locked +% \end{macro}^^A \if@tud@subjectthesis +% \end{option}^^A subjectthesis +% +% \iffalse +% +%<*titlepage|class&!option> +% \fi +% +% \begin{KOMAfont}{thesis} +% \begin{KOMAfont}{tudscrtitle} +% \changes{v2.01}{2014/04/24}{% +% Fehlerkorrektur bei der Schriftstärke (\cs{mdseries@sf})% +% } +% 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{tudscrtitle} für alle Zusatzinformationen wie +% Autor, Datum etc. +% \begin{macrocode} +\newkomafont{thesis}{\usekomafont{title}\LARGE} +\newkomafont{tudscrtitle}{% + \usekomafont{subject}% + \if@tud@univers\fontfamily{\tud@univers}\fi% + \fontseries{\mdseries@sf}\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} +%<*class> +\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} +% \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. +% \begin{macrocode} +\newcommand*\tud@titleback{}% +%<*class> +\newcommand*\tud@maketitle[1][1]{% +% +%<*titlepage> +\renewcommand*\makemaintitle{% +% +% \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 sowie die +% Linienstärke des Querbalkens festgelegt. Hierfür wird die entsprechende +% Layoutoption ausgewertet und entsprechend dieser die Werte belegt. +% \begin{macrocode} +%<*class> + \if@titlepage% + \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% + \else% + \ifcase \tud@layout@title\relax\or\else% + \def\tud@color@titlefont{HKS41}% + \def\tud@color@titlehead{HKS41}% + \fi% + \fi% + \if@titlepage% +% +% \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}% +%<*class> +% 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% + \setcounter{page}{#1}% +% + \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 diese Klasse aber nun mal zwei Titel +% bereitstellt 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} +%<*class> + \tud@footnote@unhyper% +% \end{macrocode} +% Weiter im Text\dots +% \begin{macrocode} + \ifx\@extratitle\@empty\else% + \noindent\@extratitle\next@tdpage% + \fi% +% \end{macrocode} +% Abhängig vom gewählten Fuß wird der entsprechende Satzspiegel für den +% eigentlichen Titel gewählt. +% \begin{macrocode} + \ifnum\tud@ddc@foot=\z@\relax% + \loadgeometry{tudpage}% + \else% + \loadgeometry{tudddc}% + \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} +%<*titlepage> + \tud@pagestyle% + \setlength{\tud@dim@headingsvskip}{% + \dimexpr\tud@dim@headsep+.1\textheight% + }% +% + \vspace*{\dimexpr\tud@dim@headingsvskip+\parskip}% +%<*class> + \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% +% +%<*titlepage> + \setlength{\parskip}{\z@}% + \setlength{\parindent}{\z@}% + \setlength{\parfillskip}{\z@\@plus 1fil}% +% + \linespread{1}\selectfont% +% \end{macrocode} +% Für das \pkg{titlepage}-Paket wird der TUD-Kopf direkt und nicht über den +% Seitenstil gesetzt. Außerdem wird ggf. die Schrift geändert. +% \begin{macrocode} +%<*titlepage> + \if@tud@cdfonts\else\usekomafont{titlepagefont}\fi% +% +% \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{tudscrtitle}% +% \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{tudscrtitle}\@titlehead\par\null% + \end{minipage}\newline\null% + }% + \addtolength{\@tempdima}{\dimexpr\ht0+\dp0}% + \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}% + \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} + \begingroup% + \usekomafont{title}% + \tud@title@uppercase{\@title}% + \vskip 1ex% + \endgroup% +% \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}% + \vskip 1ex% + \fi% +% \end{macrocode} +% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. +% \begin{macrocode} + \vskip 1ex% + \tud@multiple@split{@@author}% + \vskip 2ex% +% \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% + \vskip\z@\@plus0.5fill% + {\usekomafont{subject}\@date\space\ignorespaces\@datemore}% + \vskip\z@\@plus2fill% + \fi% +% \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 2:3 zwischen allen weiteren Angaben auf dem +% Titel vertikal ausgerichtet. +% \begin{macrocode} + \else% + \vskip\z@\@plus2fill% + \begingroup% + \usekomafont{thesis}% + \if@tud@subjectthesis\else% + \tud@title@uppercase{\@thesis}% + \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\@degree\@empty\else% + \def\@tempc{% + \@degree% + \ifx\@degreeabbr\@empty\else\space\@degreeabbr\fi% + }% + \usekomafont{tudscrtitle}% + \if@tud@subjectthesis% + \degreetext% + \vskip 2ex% + \usekomafont{subject}% + \@tempc% + \else% + \vskip 2ex% + \degreetext% + \vskip 2ex% + \usekomafont{thesis}% + \tud@title@uppercase{\@tempc}% + \fi% + \vskip 3ex% + \fi% + \fi% + \endgroup% + \vskip\z@\@plus3fill% + \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} + \ifx\@professor\@empty\else% + \vskip 2ex% + \professorname% + \vskip .5ex% + {\usekomafont{subject}\@professor}% + \fi% +% \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% +%<*class> + \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\space or + \string\date\space 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\space or \string\date\space + was not given. It's\MessageBreak% + substituted by the given due date% + }% + \let\@date\@duedate% + }% + }{}% +% + \ifx\@date\@empty\else% + \vskip 2ex% + \ifstr{\datetext}{}{}{\datetext\@titledelim}\@date% + \space\ignorespaces\@datemore% +% \end{macrocode} +% Zusätzlich kann noch ein Datum der mündlichen Verteidigung angegeben werden. +% \begin{macrocode} + \ifx\@defensedate\@empty\else\newline% + \ifstr{\defensedatetext}{}{}{\defensedatetext\@titledelim}% + \@defensedate% + \fi% + \fi% + \fi% + \fi% +% \end{macrocode} +% Zu guter Letzt können das Standard-Verlagsfeld befüllt sowie die zu Beginn +% geöffnete, schriftspezifische Gruppe beendet werden. +% \begin{macrocode} +%<*class> + \if@tud@cover\vskip\z@\@plus2fill\fi% +% + \ifx\@publisher\@empty\else% + \vskip\z@\@plus0.5fill% + {\usekomafont{subject}\@publisher}% + \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% + \loadgeometry{tudarea}% + \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 von der Option \opt{heavyfont} auch die +% Schriftstärke, Farbe der Seite und des Kopfes sowie die Linienstärke +% des Querbalkens und die DDC-Logos aus den Einstellungen übernommen. +% \begin{macrocode} +%<*titlepage> + \addtokomafont{title}{\Huge\dinbn}% + \addtokomafont{subtitle}{\Large\dinbn}% + \addtokomafont{subject}{\fontfamily{\tud@font}\selectfont}% + \addtokomafont{tudscrtitle}{\fontseries{\mddefault}\selectfont}% + \addtokomafont{pagenumber}{\fontseries{\mddefault}\selectfont}% + \addtokomafont{footnote}{\fontseries{\mddefault}\selectfont}% +% +%<*class> + \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}}% + \ifnum\tud@ddc@head>0\tud@ddc@sethead\fi% + \ifnum\tud@ddc@foot>0\tud@ddc@setfoot\fi% +% \end{macrocode} +% Der Satzspiegel wird für die Verwendung des \env{tudpage}-Seitenstils +% für den gewünschten Seitenstil angepasst. +% \todo[v3.12]{durch scrlayer} +% \begin{macrocode} + \ifnum\tud@ddc@foot=\z@\relax% + \thispagestyle{tudpage@empty}% + \else% + \thispagestyle{tudpage@plain}% + \fi% + }% +% \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]{% +% +%<*article> + \begingroup% +% + \@tempa% + \@thanks\global\let\@thanks\@empty% + \clearpage% + \ifx\@dedication\@empty\else\thispagestyle{empty}\fi% + \loadgeometry{tudarea}% +%<*article> + \tud@restorepagecolor% + \endgroup% + \tud@titleback% +% +%<*book|report> + }% + \loadgeometry{tudarea}% +% +% \end{macrocode} +% Die Danksagung ist identisch zu \KOMAScript. +% \begin{macrocode} + \ifx\@dedication\@empty\else% + \next@tdpage\null\vfill% + {\centering\Large\@dedication\par}% + \vskip\z@\@plus3fill% + \@thanks\let\@thanks\@empty% + \cleardoubleemptypage% + \fi% + \fi% +% + \end{titlepage}% +% \end{macrocode} +% Der normale Satzspiegel wird wieder eingestellt und etwas aufgeräumt. +% \begin{macrocode} +%<*class> + \loadgeometry{tudarea}% + \if@tud@cover\else% + \setcounter{footnote}{0}% + \global\let\and\relax% +% \end{macrocode} +% Zum Schluss wird rückgängig gemacht, wozu \pkg{hyperref} zuvor genötigt hat. +% \begin{macrocode} + \tud@footnote@rehyper% + \fi% +% \end{macrocode} +% Neben einer kompletten Titelseite gibt es auch noch einen Titelkopf. +% \todo[v3.12]{% +% Der Titelkopf. Es existiert lediglich eine farbige Variante, welche sowohl +% für die Optionen \opt{full} als auch \opt{lite} verwendet wird. Der +% Titelkopf selber wird mit dem TUD-Kopf gesetzt; Seitenstil über scrlayer; +% \url{http://www.golatex.de/viewtopic,p,49609.html} +% } +% \begin{macrocode} + \else% +% ^^A \loadgeometry{tudpage} +% ^^A \ifstr{\titlepagestyle}{empty}% +% ^^A {\renewcommand*\titlepagestyle{tudpage@empty}}% +% ^^A {\renewcommand*\titlepagestyle{tudpage@plain}}% +% \end{macrocode} +% Um einen zweispaltigen Satz wie in \KOMAScript{} für den Titelkopf +% ermöglichen zu können, wird einfach der Originalbefehl verwendet und nur der +% innere Teil (\cs{@maketitle}) angepasst und anschließend der gesicherte +% Befehl genutzt. +% \begin{macrocode} + \let\@maketitle\tud@@maketitle% + \tud@cmd@use{maketitle}[#1]% + \fi% +% +} +% \end{macrocode} +% \end{macro}^^A \tud@titleback +% \end{macro}^^A \tud@maketitle +% Der Befehle \cs{thanks} wird mit \cs{robustify} behandelt, um das Makro für +% 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}% +% \end{macrocode} +% \begin{macro}{\tud@title@uppercase} +% Für das Setzen einzelner Felder in Majuskeln werden diese beiden Befehle +% definiert. Bei der Verwendung des Befehls \cs{thanks} auf der Titelseite soll +% sichergestellt werden, dass der Inhalt selbst nicht in Majuskeln gesetzt wird. +% \begin{macrocode} +\newcommand*\tud@title@uppercase[1]{% + \let\@tempa\relax% + \begingroup% +% \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% + \begingroup% + \def\and{% + \letcs\@tempa{#1othername} + \ifx\@tempa\@empty% + \newline% + \else% + \begingroup% + \usekomafont{tudscrtitle}% + \vskip 1ex% + \@nameuse{#1othername}% + \vskip .5ex% + \endgroup% + \fi% + \def\and{\newline}% + }% + \vskip 2ex% + \@nameuse{#1name}% + \vskip .5ex% + \usekomafont{subject}% + \@nameuse{@#1}% + \endgroup% + \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 +% +% \iffalse +%<*class> +% \fi +% +% \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. +% \todo[v3.12]{\cs{tud@extratitle} raus} +% \begin{macrocode} + \next@tdpage% + \vspace*{\tud@dim@headingsvskip}% + \tud@extratitle% + \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% + \linespread{1}\selectfont% +% \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{tudscrtitle}% +% \end{macrocode} +% Jetzt kommt wieder ein Teil in Anlehnung an das Original. Die Felder +% \cs{@titlehead}, \cs{@subject}, \cs{@title} und \cs{@subtitle} werden +% ausgegeben. +% \begin{macrocode} + \ifx\@titlehead\@empty\else% + \begin{minipage}[t]{\textwidth}% + \usekomafont{tudscrtitle}\@titlehead% + \end{minipage}\newline\null\par% + \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}% + \tud@letsubjectthesis% + \ifx\@subject\@empty\else% + {\usekomafont{subject}\@subject\par\null}% + \fi% + \begingroup% + \usekomafont{title}% + \tud@title@uppercase{\@title}% + \vskip 1ex% + \endgroup% + \ifx\@subtitle\@empty\else% + \usekomafont{subtitle}% + \tud@title@uppercase{\@subtitle}% + \fi% + \vskip 1ex% +% \end{macrocode} +% Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. +% \begin{macrocode} + \tud@multiple@split{@@author}% +% \end{macrocode} +% Ausgabe von Datum, Verlag und Danksagung wie im Original. +% \begin{macrocode} + \vskip 1ex% + \@date% + \ifx\@publisher\@empty\else% + \vskip 1ex% + \@publisher% + \fi% + \ifx\@dedication\@empty\else% + \vskip 2ex% + \begin{center}% + \@dedication\par% + \end{center}% + \fi% + \vskip 2ex% +% \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\@degree\@empty\else\tud@title@wrn{degree}\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% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@@maketitle +% +% \iffalse +% +% \fi +% +% 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. +% Die folgenden Befehle finden für den \pkg{titlepage}-Stil ebenfalls Verwendung. +% \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% + \@expandtwoargs\in@{\@tempb}{\csname\tud@multiple@field\endcsname}% + \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@split@@author} +% \begin{macro}{\tud@split@@author@list} +% \begin{macro}{\tud@newline} +% Das Makro \cs{tud@split@@author} dient der formatierten Ausgabe aller +% Informationen für mehrere Autoren auf der Titelseite. +% \begin{macrocode} +\newcommand*\tud@newline{} +\newcommand*\tud@split@@author[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 ausgegeben. +% \begin{macrocode} + \begingroup% + \usekomafont{subject}% + \ignorespaces#1% + \endgroup% + \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% +%<*class> + \if@titlepage% +% + \tud@newline% + \ifstr{\dateofbirthtext}{}% + {}{\dateofbirthtext\@titledelim}\@dateofbirth% + \ifx\@placeofbirth\@empty\else% + \space\placeofbirthtext\unskip\space\@placeofbirth% + \fi% +%<*class> + \else% + \tud@title@wrn{dateofbirth}% + \fi% +% + \fi% + \ifx\@matriculationnumber\@empty\else% +%<*class> + \if@titlepage% +% + \tud@newline% + \ifstr{\matriculationnumbername}{}% + {}{\matriculationnumbername\@titledelim}% + \@matriculationnumber% +%<*class> + \else% + \tud@title@wrn{matriculationnumber}% + \fi% +% + \fi% + \ifx\@matriculationyear\@empty\else% +%<*class> + \if@titlepage% +% + \tud@newline% + \ifstr{\matriculationyearname}{}% + {}{\matriculationyearname\@titledelim}% + \@matriculationyear% +%<*class> + \else% + \tud@title@wrn{matriculationyear}% + \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 +% +%\iffalse +%<*class> +%\fi +% +% \begin{macro}{\maketitleonecolumn} +% \begin{macro}{\@maketitleonecolumn} +% \begin{macro}{\@longtwocolumn} +% \begin{macro}{\@longtwocolumnbox} +% 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{Seitenzahl}\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{@longtwocolumn} zur Ausgabe genutzt. +% \begin{macrocode} +\newcommand\maketitleonecolumn[1][1]{% +% \end{macrocode} +% Da beide Argumente optional sind, wird zuerst getestet, ob das erste optionale +% Argument ein numerischer Ausdruck ist oder nicht. Sollte dies der Fall sein, +% wird ggf. das zweite optionale Argument als \meta{Inhalt} eingelesen. Sonst +% ist bereits das erste optional Argument der \meta{Inhalt}. +% \begin{macrocode} + \ifxnumber{#1}{% + \@ifnextchar[%] + {\@maketitleonecolumn{#1}}{\@maketitleonecolumn{#1}[]}% + }{\@maketitleonecolumn{1}[#1]}% +} +% \end{macrocode} +% Hier erfolgt die Unterscheidung der Ausgabe, abhängig von der Option +% \opt{titlepage}. +% \begin{macrocode} +\newcommand\@maketitleonecolumn{} +\long\def\@maketitleonecolumn#1[#2]{% + \if@twocolumn% + \if@titlepage% + \maketitle[#1]% + \onecolumn\noindent#2\twocolumn% + \else% + \@longtwocolumn[{\maketitle[#1]{#2}}]% + \fi% + \else% + \ClassError{\tudcls@name}{% + \string\maketitleonecolumn\space can only be used in twocolumn mode% + }{}% + \fi% +} +% \end{macrocode} +% Hier erfolgt 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\@longtwocolumnbox +\newcommand\@longtwocolumn[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\@longtwocolumnbox\vbox{#1\bigskip}% + \endgroup% +% \end{macrocode} +% Jetzt werden so lange einzelne Seiten ausgeben, bis der Rest der Box kleiner +% als eine Seite ist. Dabei sollen für das Zerteilen der Box dieselben +% Rahmenbedingungen für den Seitenaufbau gelten, wie auch im normalen Dokument. +% \begin{macrocode} + \@whiledim\textheight<\ht\@longtwocolumnbox\do{% + \splittopskip\topskip% + \splitmaxdepth\maxdepth% + \vsplit\@longtwocolumnbox to \textheight\clearpage% + }% +% \end{macrocode} +% Der Rest wir einfach als optionales Argument von \cs{twocolumn} ausgegeben. +% \begin{macrocode} + \twocolumn[\unvbox\@longtwocolumnbox]% +} +% \end{macrocode} +% \end{macro}^^A \@longtwocolumnbox +% \end{macro}^^A \@longtwocolumn +% \end{macro}^^A \@maketitleonecolumn +% \end{macro}^^A \maketitleonecolumn +% +% \iffalse +% +% \fi +% +% \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% +%<*class> + \ClassWarning{\tudcls@name}{% +% +%<*titlepage> + \PackageWarning{titlepage}{% +% + 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 +% +%\iffalse +%<*class> +%\fi +% +% \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\space has to be used with\MessageBreak% + activated titlepage option% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@title@wrn +% \todo[v3.12]{\cs{tud@extratitle} raus, \cs{maketitle} beachten/anpassen} +% \begin{macro}{\tud@extratitle} +% Ab der \KOMAScript-Version 3.11c gibt es für das Feld \cs{extratitle} einen +% separaten Befehl. Für frühere Versionen wird folgendes Makro definiert. +% \begin{macrocode} +\ifdef{\@makeextratitle}{% + \let\tud@extratitle\relax% +}{% + \newcommand*\tud@extratitle{% + \let\footnote\thanks% + \ifx\@extratitle\@empty\else% + \noindent\@extratitle\next@tdpage% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@extratitle +% Für die Titelseite wird der Befehl zum zweimaligen Seitenumbruch genutzt. +% \todo[v3.12]{\cs{next@tdpage} raus} +% \begin{macrocode} +\providecommand*\next@tdpage{% + \next@tpage% + \if@twoside\ifodd\value{page}\else% + \null\next@tpage% + \fi\fi% +}% +% \end{macrocode} +% +% \subsection{Cover} +% +% Zusätzlich zum eigentlichen Titel kann eine Umschlagseite ausgegeben werden. +% \todo[v3.12]{% +% \KOMAScript{} definiert den neuen Schlüssel \texttt{firstiscover} für die +% Option \texttt{titlepage}. Das muss irgendwie so verwurstet werden, dass +% \cs{makecover} aufgerufen wird. Außerdem überlegen, wie \cs{makecover} mit +% dem Parameter \texttt{cd=no} zu definieren ist. Neue Klassenoption cdcover? +% } +% \begin{macro}{\makecover} +% \begin{macro}{\if@tud@cover} +% Der Befehl ist für ein Cover bei einem gebundenen Werk zu verwenden. +% \begin{macrocode} +\newif\if@tud@cover +\newcommand*\makecover[1][]{% +% \end{macrocode} +% Der Befehl verwendet das Layout des Titels im \CD. Allerdings werden nicht +% alle sondern nur für ein Cover relavante Angaben ausgegeben. +% \begin{macrocode} + \begingroup% + \let\thanks\@gobble% + \let\footnote\@gobble% + \let\tud@multiple@setfields\@gobbletwo% +% \end{macrocode} +% Weil genügend Platz auf der Cover-Seite ist, werden die Autoren etwas tiefer +% auf dem Cover gesetzt. +% \begin{macrocode} + \pretocmd{\tud@multiple@split}{\vskip\z@\@plus0.5fill}{}{}% + \let\@authormore\@empty% + \let\@dateofbirth\@empty% + \let\@matriculationnumber\@empty% + \let\@matriculationyear\@empty% +% \end{macrocode} +% Die Erscheinung des Covers lässt sich durch wenige Optionen etwas anpassen. +% Standardmäßig ist das Cover farblos, die farbige Darstellung kann durch Option +% gewählt werden. 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} + \TUD@parameter@set[cover]{cd,cdfonts,cdlayout=true,#1}% +% \end{macrocode} +% Der Schalter \cs{if@tud@cover} wird hier durch die Option \opt{cdlayout} +% gesetzt und ist verantwortlich dafür, ob das Layout des Covers dem des +% Satzspiegels entspricht, oder aber strikt dem \CD folgt. +% \begin{macrocode} + \if@tud@cover@cdlayout% + \newgeometry{% + left=\tud@dim@left,% + textwidth=\dimexpr\paperwidth-\tud@dim@both,% + top=\dimexpr\tud@dim@headheight+\tud@dim@barheight+\tud@dim@headsep,% + headheight=\dimexpr\tud@dim@headheight+\tud@dim@barheight,% + headsep=\tud@dim@headsep,% + bottom=\dimexpr\tud@dim@bottom+\tud@ta@footdiff,% + footskip=\dimexpr\tud@dim@footskip+\tud@ta@footdiff+\baselineskip,% + }% + \else% + \ifnum\tud@ddc@foot=\z@\relax% + \loadgeometry{tudpage}% + \else% + \loadgeometry{tudddc}% + \fi% + \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} + \ifdef{\hypersetup}{\hypersetup{pageanchor=false}}{}% +% \end{macrocode} +% Die Ausgabe des Covers. 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% + \tud@maketitle% + \endgroup% + \loadgeometry{tudarea}% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@cover +% \end{macro}^^A \makecover +% \begin{parameter}{cd} +% \begin{parameter}{widehead} +% \begin{parameter}{cdfont} +% \begin{parameter}{cdfonts} +% \begin{parameter}{tudfonts} +% \begin{parameter}{cdlayout} +% \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} +\newif\if@tud@cover@cdlayout +\TUD@parameter{cover}{% + \TUD@parameter@define{cd}[true]{\TUDoption{cd}{#1}}% + \TUD@parameter@define{widehead}[true]{\TUDoption{widehead}{#1}}% + \TUD@parameter@define{cdfont}[true]{\TUDoption{cdfont}{#1}}% + \TUD@parameter@define{cdfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@define{tudfonts}[true]{\TUDoption{cdfonts}{#1}}% + \TUD@parameter@define{cdlayout}[true]{% + \ifstr{#1}{true}{\@tud@cover@cdlayouttrue}{% + \ifstr{#1}{on}{\@tud@cover@cdlayouttrue}{% + \ifstr{#1}{yes}{\@tud@cover@cdlayouttrue}{% + \ifstr{#1}{false}{\@tud@cover@cdlayoutfalse}{% + \ifstr{#1}{no}{\@tud@cover@cdlayoutfalse}{% + \ifstr{#1}{off}{\@tud@cover@cdlayoutfalse}{% + \TUD@parameter@wrn{cdlayout}{true,false}% + }}}}}}% + }% + \TUD@parameter@sethandler{\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 widehead +% \end{parameter}^^A cd +% +% \iffalse +% +%<*titlepage> +% \fi +% +% \subsection{Das \pkg{titlepage}-Paket} +% +% Der Titel wird nicht nur für die \cls{tudscr}-Klassen selbst, sondern auch als +% Stil-Datei für das \pkg{titlepage}-Paket von Markus Kohm bereitgestellt. +% Dafür sind einige paketspezifische Definitionen für Schriften, Optionen, +% Befehle und Logos notwendig. +% \todo[v3.12]{Komplett überarbeiten, falls von Markus Kohm gewollt.} +% \begin{macrocode} +\renewcommand*\inittitle{% + \mainlogo{TU_Logo_SW} + \tud@geometry@set% + \ifcase \tud@cdfont\relax% + \let\tud@font\sfdefault% + \let\dinbn\tud@raggedright% + \else% + \def\tud@font{pun}% + \def\dinbn{% + \usefont{\encodingdefault}{pm6}{b}{n}% + \tud@raggedright% + \selectfont% + }% + \ifnum \tud@cdfont=1% + \renewcommand*\mddefault{l} + \renewcommand*\bfdefault{m} + \else% + \renewcommand*\mddefault{m} + \renewcommand*\bfdefault{b} + \fi% + \fi% +} +\providecommand*\@uppertitleback{} +\providecommand\uppertitleback[1]{\gdef\@uppertitleback{#1}} +\DefineFamilyKey[TU-Dresden]{title}{uppertitleback}{\uppertitleback{#1}} +\providecommand*\@lowertitleback{} +\providecommand\lowertitleback[1]{\gdef\@lowertitleback{#1}} +\DefineFamilyKey[TU-Dresden]{title}{lowertitleback}{\lowertitleback{#1}} +\renewcommand*\makemaintitleback{% + \begin{titlepage} + \begin{minipage}[t]{\textwidth} + \usekomafont{titlepagefont}{\@uppertitleback}% + \end{minipage}\par + \vfill + \begin{minipage}[b]{\textwidth} + \usekomafont{titlepagefont}{\@lowertitleback}% + \end{minipage} + \end{titlepage} +} +\providecommand*\@extratitle{} +\providecommand\extratitle[1]{\gdef\@extratitle{#1}} +\DefineFamilyKey[TU-Dresden]{title}{extratitle}{\extratitle{#1}} +\renewcommand*\makepretitle{% + \ifx\@extratitle\@empty\else + \begin{titlepage} + \noindent\@extratitle + \end{titlepage} + \fi +}% +\renewcommand*\makepretitleback{% + \ifx\@extratitle\@empty\else\begin{titlepage}\null\end{titlepage}\fi +} +\renewcommand*\makeposttitle{% + \ifx\@dedication\@empty\else + \begin{titlepage} + \null\vfill + {\centering\usekomafont{dedication}{\@dedication \par}}% + \vskip \z@ \@plus 3fill + \end{titlepage} + \fi +} +\renewcommand*\makeposttitleback{% + \ifx\@dedication\@empty\else\begin{titlepage}\null\end{titlepage}\fi +} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx new file mode 100644 index 00000000000..a8d6728dfc5 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-twocolfix.dtx @@ -0,0 +1,176 @@ +% \CheckSum{123} +% \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-twocolfix.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-twocolfix.dtx}% + [2014/04/24 v2.00 TUD-KOMA-Script (twocolfix)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-twocolfix.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Bugfix für den zweispaltigen Satz} +% +% Der \LaTeXe-Kernel enthält einen Fehler, der Kapitelüberschriften im +% zweispaltigen Layout höher setzt, als im einspaltigen. Der Fehler ist zwar +% schon länger bekannt,\footnote{\url{% +% http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3126}} allerdings +% noch nicht in \pkg{ltxfix2e} übernommen worden. Das Paket \pkg{twocolfix} +% soll das Problem beheben. Eine Integration dieses Bugfixes in \KOMAScript{} +% wurde bereits bei Markus Kohm angefragt,\footnote{\url{% +% http://www.komascript.de/node/1681}} jedoch von ihm bis jetzt nicht weiter +% verfolgt. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*package&header> +% \fi +% +% \subsection{Identifizierung des Pakets \pkg{twocolfix}} +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{twocolfix}[\TUDVersion\space package (twocolumn layout bugfix)] +% \end{macrocode} +% +% \iffalse +% +%<*package&body> +% \fi +% +% \subsection{Das Paket \pkg{twocolfix}} +% +% Neudefinition des fehlerhaften Befehls aus dem \LaTeXe-Kernel. Die +% \KOMAScript-Klassen selbst definieren \cs{@topnewpage} um und sichern vorher +% das Original in \cs{scr@topnewpage}. Daher wird der neue Befehl erst temporär +% definiert. +% \begin{macrocode} +\long\def \@tempa [#1]{% + \@nodocument% + \@next\@currbox\@freelist{}{}% + \global \setbox\@currbox% + \vbox {% + \break% + \prevdepth\z@% + \begingroup% + \normalcolor% + \hsize\textwidth% +% \end{macrocode} +% Damit der Inhalt des optionale Argumentes mit den gleichen Absatzeinstellungen +% gesetzt wird, darf der Befehl \cs{@parboxrestore} nicht aufgerufen werden. +% Alternativ müsste \KOMAScript{} eine Option bereitstellen, mit der sich die +% Einstellungen für Absätze wiederherstellen lassen. +% \begin{macrocode} +% \@parboxrestore +% \KOMAoptions{parskip=last} + \col@number \@ne% + \ignorespaces #1\par% + \ifdim\parskip>\z@\null\fi% + \vskip -\dbltextfloatsep% + \endgroup% + \ifdim\parskip>\z@\vskip\parskip\else\null\fi% + \vskip -\topskip% + }% + \begingroup% + \splitmaxdepth\maxdepth \splittopskip\topskip% + \setbox\@tempboxa \vsplit\@currbox to\z@% + \endgroup% + \ifdim \ht\@currbox>\textheight% + \ht\@currbox \textheight% + \fi% + \global \count\@currbox \tw@% + \@tempdima -\ht\@currbox% + \advance \@tempdima -\dbltextfloatsep% + \global \advance \@colht \@tempdima% + \ifx \@dbltoplist \@empty% + \else% + \@latexerr{Float(s) lost}\@ehb% + \let \@dbltoplist \@empty% + \fi% + \@cons \@dbltoplist \@currbox% + \global \@dbltopnum \m@ne% + \ifdim \@colht<2.5\baselineskip% + \@latex@warning@no@line {Optional argument of \noexpand\twocolumn + too tall on page \thepage}% + \@emptycol% + \if@firstcolumn% + \else% + \@emptycol% + \fi% + \else% + \global \vsize \@colht% + \global \@colroom \@colht% + \@floatplacement% + \fi% +} +% \end{macrocode} +% Nachdem der Befehl zuerst temporär definert wurde, wird nun abhängig von der +% aktiven Klasse der notwendige Befehl mit der neuen Definition überschrieben. +% \begin{macrocode} +\@ifundefined{scr@topnewpage} + {\let\@topnewpage\@tempa} + {\let\scr@topnewpage\@tempa} +% \end{macrocode} +% +% \iffalse +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx new file mode 100644 index 00000000000..4e901231362 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-version.dtx @@ -0,0 +1,184 @@ +% \CheckSum{64} +% \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-version.dtx +% \fi +% +% \iffalse +% Nicht verwirren lassen! In dieser Datei steht die Dokumentation und +% der Code vor dem Treiber. Das ist notwendig, weil der Code bereits +% am Anfang des Treibers selbst benötigt wird. +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v1.0}{2012/10/31}{\TUDScript-Bundle erstmalig händisch erstellt} +% \changes{v2.00}{2014/04/21}{% +% \TUDScript-Bundle wird mittels \pkg{docstrip} erzeugt% +% } +% \changes{v2.01}{2014/04/24}{% +% Anpassungen in Dokumentation und Schriftinstallation, Fehlerkorrekturen% +% } +% +% \section{Version des \texorpdfstring{\TUDScript}{TUD-KOMA-Script}-Bundles} +% +% Dies ist die erste Datei in allen Dateien, Klassen und Paketen, die zum +% \TUDScript"~Bundle auf \KOMAScript-Basis gehören. Sie dient zur Festlegung der +% aktuellen Version und zum Erzeugen der Header für die jeweiligen cls-Dateien. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \begin{macro}{\TUDVersion} +% Dieses Makro gibt an, zu welcher TUD"~CD"~Bundle"~Version die Datei gehört. +% Die Klassen und Pakete des Bundles verwenden dieses Makro außerdem als eigene +% Versionsangabe. +% \begin{macro}{\@TUDVersion} +% Je nachdem, ob \cs{TUDVersion} bereits definiert ist oder nicht, wird die +% Definition überprüft oder eine globale Definition vorgenommen. Da das Ganze +% auch bei der Erstellung der Dokumentation geschieht, wird \cs{makeatletter} +% innerhalb einer Gruppe verwendet. +% \begin{macrocode} +\begingroup% + \makeatletter% + \ifx\TUDVersion\undefined% + \newcommand*\@TUDVersion[1]{\gdef\TUDVersion{#1}}% + \else% + \newcommand*\@TUDVersion[1]{% + \def\@tempa{#1}% + \ifx\TUDVersion\@tempa\else% + \@latex@warning@no@line{% + \noexpand\TUDVersion\space is `\TUDVersion',\MessageBreak% + but `#1' was expected!\MessageBreak% + You should not use classes, packages or files from\MessageBreak% + different TUD-KOMA-Script-Bundle versions% + }% + \fi% + }% + \fi% + \@TUDVersion{2014/04/24 v2.01 TUD-KOMA-Script}% +\endgroup% +% \end{macrocode} +% \end{macro}^^A \@TUDVersion +% \end{macro}^^A \TUDVersion +% +% \iffalse +%<*driver> +% \fi +\ProvidesFile{tudscr-version.dtx}[\TUDVersion\space (versions)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-version.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \iffalse +%<*class> +%<*article|book|report> +% \fi +% +% \begin{macro}{\cls@name} +% \begin{macro}{\scrcls@name} +% \begin{macro}{\tudcls@name} +% \begin{macro}{\filemail} +% Für die TUD"~CD"~Klassen werden hier einmalig die Namen der jeweiligen Klassen +% definiert. +% \begin{macrocode} +%<*article> +\newcommand*\cls@name{article} +\newcommand*\scrcls@name{scrartcl} +\newcommand*\tudcls@name{tudscrartcl} +% +%<*report> +\newcommand*\cls@name{report} +\newcommand*\scrcls@name{scrreprt} +\newcommand*\tudcls@name{tudscrreprt} +% +%<*book> +\newcommand*\cls@name{book} +\newcommand*\scrcls@name{scrbook} +\newcommand*\tudcls@name{tudscrbook} +% +\newcommand*\filemail{tudscr@gmail.com} +% \end{macrocode} +% \end{macro}^^A \filemail +% \end{macro}^^A \tudcls@name +% \end{macro}^^A \scrcls@name +% \end{macro}^^A \cls@name +% Der Quelltext für das Bereitstellen der Klassen. Es wird als Basis die +% korrespondierende \KOMAScript-Klasse geladen. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{\tudcls@name}% + [\TUDVersion\space document class (\cls@name)]% +% \end{macrocode} +% Beim Verwenden der Klassen wird in der log-Datei ein Vermerk mit +% \cmd{typeout} erstellt. +% \begin{macrocode} +\typeout{The Corporate Design of Technische Universitaet Dresden} +\typeout{Class: \tudcls@name} +\typeout{Version: \TUDVersion} +\typeout{Author: Falk Hanisch (\filemail)} +\typeout{http://latex.wcms-file3.tu-dresden.de/phpBB3/index.php} +% \end{macrocode} +% \todo[v2.1]{% +% Versionsabfrage der KOMA-Script-Klassen (\cs{@nameuse}\marg{scr@v@3.12}), +% wenn nicht definiert, dann Fehler!% +% } +% +% \iffalse +% +% +% \fi +% +% \Finale +% +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr.ins b/Master/texmf-dist/source/latex/tudscr/tudscr.ins new file mode 100644 index 00000000000..713791e3fb8 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr.ins @@ -0,0 +1,154 @@ +\input docstrip.tex + +\keepsilent + +\usedir{tex/latex/tudscr} + +\preamble + +====================================================================== + +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. +====================================================================== + +\endpreamble + +\askforoverwritefalse + +\usedir{tex/latex/tudscr} +\generate{\usepreamble\defaultpreamble + \file{tudscrbase.sty}{% + \from{tudscr-version.dtx}{package}% + \from{tudscr-base.dtx}{package,header}% + \from{tudscr-base.dtx}{package,body}% + } + \file{tudscrbook.cls}{% + \from{tudscr-version.dtx}{class,book}% + \from{tudscr-base.dtx}{class,book}% + \from{tudscr-fonts.dtx}{class,option}% + \from{tudscr-pagestyle.dtx}{class,book,option}% + \from{tudscr-layout.dtx}{class,book,option}% + \from{tudscr-frontmatter.dtx}{class,book,option}% + \from{tudscr-title.dtx}{class,book,option}% + \from{tudscr-misc.dtx}{class,book,option}% + \from{tudscr-fonts.dtx}{class}% + \from{tudscr-pagestyle.dtx}{class,book}% + \from{tudscr-layout.dtx}{class,book}% + \from{tudscr-frontmatter.dtx}{class,book}% + \from{tudscr-title.dtx}{class,book}% + \from{tudscr-fields.dtx}{class}% + \from{tudscr-locale.dtx}{class,book}% + \from{tudscr-color.dtx}{class}% + \from{tudscr-misc.dtx}{class,book}% + } + \file{tudscrreprt.cls}{% + \from{tudscr-version.dtx}{class,report}% + \from{tudscr-base.dtx}{class,report}% + \from{tudscr-fonts.dtx}{class,option}% + \from{tudscr-pagestyle.dtx}{class,report,option}% + \from{tudscr-layout.dtx}{class,report,option}% + \from{tudscr-frontmatter.dtx}{class,report,option}% + \from{tudscr-title.dtx}{class,report,option}% + \from{tudscr-misc.dtx}{class,report,option}% + \from{tudscr-fonts.dtx}{class}% + \from{tudscr-pagestyle.dtx}{class,report}% + \from{tudscr-layout.dtx}{class,report}% + \from{tudscr-frontmatter.dtx}{class,report}% + \from{tudscr-title.dtx}{class,report}% + \from{tudscr-fields.dtx}{class}% + \from{tudscr-locale.dtx}{class,report}% + \from{tudscr-color.dtx}{class}% + \from{tudscr-misc.dtx}{class,report}% + } + \file{tudscrartcl.cls}{% + \from{tudscr-version.dtx}{class,article}% + \from{tudscr-base.dtx}{class,article}% + \from{tudscr-fonts.dtx}{class,option}% + \from{tudscr-pagestyle.dtx}{class,article,option}% + \from{tudscr-layout.dtx}{class,article,option}% + \from{tudscr-frontmatter.dtx}{class,article,option}% + \from{tudscr-title.dtx}{class,article,option}% + \from{tudscr-misc.dtx}{class,article,option}% + \from{tudscr-fonts.dtx}{class}% + \from{tudscr-pagestyle.dtx}{class,article}% + \from{tudscr-layout.dtx}{class,article}% + \from{tudscr-frontmatter.dtx}{class,article}% + \from{tudscr-title.dtx}{class,article}% + \from{tudscr-fields.dtx}{class}% + \from{tudscr-locale.dtx}{class,article}% + \from{tudscr-color.dtx}{class}% + \from{tudscr-misc.dtx}{class,article}% + } + \file{tudscrman.cls}{% + \from{tudscr-version.dtx}{class}% + \from{tudscr-manual.dtx}{}% + } + \file{tudscrdoc.cls}{\from{tudscr-doc.dtx}{}} +} +\generate{\usepreamble\defaultpreamble + \file{tudscrsupervisor.sty}{% + \from{tudscr-version.dtx}{package}% + \from{tudscr-supervisor.dtx}{package,header}% + \from{tudscr-fields.dtx}{package,supervisor}% + \from{tudscr-locale.dtx}{package,supervisor}% + \from{tudscr-supervisor.dtx}{package,body}% + } + \file{tudscrcomp.sty}{% + \from{tudscr-version.dtx}{package}% + \from{tudscr-comp.dtx}{package,header}% + \from{tudscr-comp.dtx}{package,body}% + } + \file{tudscrcolor.sty}{% + \from{tudscr-version.dtx}{package}% + \from{tudscr-color.dtx}{package,header}% + \from{tudscr-color.dtx}{package,body}% + } + \file{twocolfix.sty}{% + \from{tudscr-version.dtx}{package}% + \from{tudscr-twocolfix.dtx}{package,header}% + \from{tudscr-twocolfix.dtx}{package,body}% + } + \file{mathswap.sty}{% + \from{tudscr-version.dtx}{package}% + \from{tudscr-mathswap.dtx}{package,header}% + \from{tudscr-mathswap.dtx}{package,body}% + } +} +%% muss noch +% \file{tudfont.sty}{% +% \from{tudscr-version.dtx}{package}% +% \from{tudscr-fonts.dtx}{package}% +% } +% muss wieder, falls nötig +%\generate{\usepreamble\defaultpreamble +% \file{title-TU-Dresden.def}{% +% \from{tudscr-base.dtx}{titlepage}% +% \from{tudscr-fields.dtx}{titlepage}% +% \from{tudscr-locale.dtx}{titlepage}% +% \from{tudscr-fonts.dtx}{titlepage}% +% \from{tudscr-pagestyle.dtx}{titlepage}% +% \from{tudscr-title.dtx}{titlepage} +% \from{tudscr-misc.dtx}{titlepage}% +% } +%} +\endbatchfile \ No newline at end of file -- cgit v1.2.3