% \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