% \CheckSum{637} % \iffalse meta-comment % % ============================================================================ % % TUD-KOMA-Script % Copyright (c) Falk Hanisch , 2012-2015 % % ============================================================================ % % This work may be distributed and/or modified under the conditions of the % LaTeX Project Public License, version 1.3c of the license. The latest % version of this license is in http://www.latex-project.org/lppl.txt and % version 1.3c or later is part of all distributions of LaTeX 2005/12/01 % or later and of this work. This work has the LPPL maintenance status % "author-maintained". The current maintainer and author of this work % is Falk Hanisch. % % ---------------------------------------------------------------------------- % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz % in der Version 1.3c, verteilt und/oder veraendert werden. Die aktuelle % Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und % Version 1.3c oder spaeter ist Teil aller Verteilungen von LaTeX 2005/12/01 % oder spaeter und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status % "author-maintained", wird somit allein durch den Autor verwaltet. Der % aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. % % ============================================================================ % % \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> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \ProvidesFile{tudscr-frontmatter.dtx}[% 2015/02/15 v2.03 TUD-KOMA-Script (frontmatter)% ] \RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \documentclass[english,ngerman]{tudscrdoc} \usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{tudscrfonts} % only load this package, if the fonts are installed \KOMAoptions{parskip=half-} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-frontmatter.dtx} \begin{document} \maketitle \DocInput{\filename} \end{document} % % \fi % % \selectlanguage{ngerman} % % \changes{v2.02}{2014/07/08}{Optionen nutzen \cs{FamilyKeyState}}%^^A % % \ToDo{% % Gesammelten Eintrag ins Inhaltsverzeichnis für alle Abschnitte\\ % \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11\&t=385} % }[v2.04] % % \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 % \enquote{Erklärung} 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&body> % \fi % % \begin{macro}{\tud@fm@check} % \changes{v2.02}{2014/07/18}{neu}%^^A % Mit diesem Befehl wird für den Fall, dass eine oder mehrerer Erklräungen auf % einer einzelnen Seite gesetzt werden sollen geprüft, ob dies überhaupt % möglich ist. Sollte dies nicht der Fall sein, wird eine Warnung ausgegeben. % \begin{macrocode} \newcommand*\tud@fm@check[2]{% \ifnumless{\@nameuse{tud@#1@level}}{3}{% \@tempswatrue% \ifboolexpr{bool {@tud@#1@fil} and bool {@tud@#1@multi}}{% \setbox0\vbox{% \ifcase\@nameuse{tud@#1@level}\relax\or\or% \vspace*{-\parskip}% {\usekomafont{section}\vspace*{-\baselineskip}}% \fi% #2% }% \ifdim\textheight<\dimexpr\ht0+\dp0\relax% \ClassWarning{\tudcls@name}{% The given content within the `#1'\MessageBreak% environment is too large, so it wasn't possible\MessageBreak% to center the body vertically. Setting the option\MessageBreak% `#1=nofill' would be a solution. You\MessageBreak% could also use multiple `#1' environments% }% \@tempswafalse% \fi% }{}% }{}% #2% } % \end{macrocode} % \end{macro}^^A \tud@fm@check % \begin{macro}{\tud@fm@set} % \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A % Dies ist das zentrale Makro zur Ausgabe der einzelnen Erklärungen, welches % alle relevanten Optionen\footnote{\opt{titlepage}, \opt{twocolumn}, % \opt{abstract/declaration=multi}, \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} % Sollte die Gliederungsebene der Erklärung einem Kapitel entsprechen, wird % jede Erklärung immer auf eine neue Seite gesetzt. Die Optionen zum vertikalen % Zentrieren wird ignoriert. Auf eine Warnung für den Anwender wird verzichtet. % \begin{macrocode} %<*book|report> \ifnumless{\@nameuse{tud@#1@level}}{3}{}{% \boolfalse{@tud@#1@multi}% \boolfalse{@tud@#1@fil}% }% % % \end{macrocode} % Im Zweispaltensatz wird der Inhalt der Umgebung einfach ausgegeben, eine % vertikale Zentrierung findet nicht statt. % \begin{macrocode} \if@twocolumn% \tud@fm@body{#1}{#2}{#3}% % \end{macrocode} % Beim einspaltigen Satz wird die \opt{titlepage}-Option beachtet. % \begin{macrocode} \else% % \end{macrocode} % Sollte diese aktiv sein, wird jede Erklärung oder Zusammenfassung abhängig % von der Einstellung von \opt{abstract/declaration=multi} entweder auf eine % neue Seite gesetzt, oder aber auf der aktuellen ausgegeben. Dabei werden % diese ggf. noch vertikal auf der Seite ausgerichtet. % \begin{macrocode} \if@titlepage% \ifbool{@tud@#1@multi}{}{\clearpage}% \ifbool{@tud@#1@fil}{% \ifcase\@nameuse{tud@#1@level}\relax\or\or% \vspace*{-\parskip}% {\usekomafont{section}\vspace*{-2\baselineskip}}% \fi% \if@tempswa\vspace*{\z@ \@plus 1fil}\fi% }{}% \tud@fm@body{#1}{#2}{#3}% \ifbool{@tud@#1@fil}{\vspace*{\z@ \@plus 2fil}}{}% % \end{macrocode} % Bei deaktivierter \opt{titlepage}-Option werden die Inhalte jeder erzeugten % Erklärung direkt nacheinander ausgegeben. Die Erklärung oder Zusammenfassung % wird dabei wie ein Zitat ausgegeben, sollte dessen Überschrift nicht % in Form eines Abschnitts gesetzt werden. Der Inhalt wird entweder in der % normalen \env{quotation}-Umgebung oder aber~-- wenn entsprechend das Paket % \pkg{quoting} geladen wurde~-- in der \env{quoting}-Umgebung gesetzt. Die % entsprechende Umgebung wird hierfür im Makro \cs{tud@quoting} gespeichert. % \begin{macrocode} \else% \ifnum\@nameuse{tud@#1@level}<2\begin{\tud@quoting}\fi% \tud@fm@body{#1}{#2}{#3}% \ifnum\@nameuse{tud@#1@level}<2\end{\tud@quoting}\fi% \fi% \fi% } % \end{macrocode} % \end{macro}^^A \tud@fm@set % \begin{macro}{\tud@fm@body} % \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A % \begin{macro}{\tud@fm@vcenter} % \changes{v2.02}{2014/07/18}{Mit \pkg{scrlayer-scrpage} entfernt}%^^A % 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 und der % Kolumnentitel wird \cs{tud@fm@head} verwendet, welches abhängig von den % gewählten Optionen die Gliederungsebene der Überschrift setzt. Die optional % gewählte vertikale Ausrichtung des Inhaltes wird seit Version~v2.02 nicht % mehr von \cs{tud@fm@vcenter} sondern hier direkt ausgeführt. % \begin{macrocode} \newcommand*\tud@fm@body[3]{% \ifnum\tud@multicols>1\relax% \begin{multicols}{\tud@multicols}[{\tud@fm@head{#1}{#2}}]% \else% % \end{macrocode} % Für die Verwendung einer kleinen, zentrierten Überschrift wird vorher ein % Abstand eingefügt. Dies ist jedoch nur notwendig, wenn \env{multicols} nicht % verwendet wird. % \begin{macrocode} \ifbool{@tud@#1@multi}{% \ifcase\@nameuse{tud@#1@level}\relax\or% \vspace{\dimexpr\bigskipamount-\parskip\relax}% \fi% }{}% \tud@fm@head{#1}{#2}% \fi% #3\par% \ifnum\tud@multicols>1\relax% \end{multicols}% \fi% } % \end{macrocode} % \end{macro}^^A \tud@fm@vcenter % \end{macro}^^A \tud@fm@body % \begin{macro}{\tud@fm@head} % \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}%^^A % \changes{v2.02}{2014/10/09}{Bugfix für Kolumnentitel}%^^A % \changes{v2.02}{2014/11/05}{Bugfix Kolumnentitel und Inhaltsverzeichnis}%^^A % 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@head}\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}~-- wenn es % tatsächlich geladen wurde~-- ein Anker für einen Hyperlink erzeugt. Ist % \cs{if@tud@\meta{Typ}@toc} wahr, so entspricht der erzeugte Eintrag ins % Inhaltsverzeichnis für \cls{tudscrartcl} normalerweise dem eines Abschnitts, % der für \cls{tudscrbook} und \cls{tudscrreprt} dem eines Kapitels.% % \footnote{sonst sieht das Inhaltsverzeichnis recht bescheiden aus} % Mit der Eintellung \val{tocleveldown} kann der Eintrag um eine Ebene % \begin{macrocode} \newcommand*\tud@fm@head[2]{% \ifcase\@nameuse{tud@#1@level}\relax% \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% \or% \if@titlepage\endgraf\fi% \csname phantomsection\endcsname% \@afterindentfalse% \begingroup% \centering% \normalfont\sectfont\nobreak#2% \@endparpenalty\@M% \endgraf% \endgroup% \nopagebreak% \vskip\dimexpr\bigskipamount-\parskip\relax% \@afterheading% \or% \section*{#2}% \ifx\@mkboth\@gobbletwo\else\markright{\MakeMarkcase{#2}}\fi% %<*book|report> \or% \chapter*{#2}% \@mkdouble{\MakeMarkcase{#2}}% % \fi% \ifbool{@tud@#1@markboth}{% \markboth{\MakeMarkcase{#2}}{\MakeMarkcase{#2}}% }{}% \ifbool{@tud@#1@toc}{% \ifbool{@tud@#1@toc@leveldown}{% %<*book|report> \addsectiontocentry{}{#2}% % %<*article> \addsubsectiontocentry{}{#2}% % }{% %<*book|report> \addchaptertocentry{}{#2}% % %<*article> \addsectiontocentry{}{#2}% % }% }{}% } % \end{macrocode} % \end{macro}^^A \tud@fm@head % \begin{macro}{\tud@fm@next} % \changes{v2.02}{2014/07/19}{mit \pkg{scrlayer-scrpage} eingeführt}%^^A % Dieser Befehl sorgt für die Trennung einzelner Abschnitte innerhalb der % Umgebungen \env{abstract} und \env{declarations}. Dabei werden bei aktiver % vertikaler Ausrichtung die entsprchenden Abstände dazwischen eingefügt. % \begin{macrocode} \newcommand*\tud@fm@next[2]{% \TUD@parameter@set{#1}{#2}% \if@twocolumn% \ifbool{@tud@#1@multi}{\par}{\newpage}% \else% \if@titlepage% \ifbool{@tud@#1@fil}{% \vspace*{\z@ \@plus 1fil}% \ifbool{@tud@#1@multi}{}{% \vspace*{\z@ \@plus 1fil}% \clearpage% \ifcase\@nameuse{tud@#1@level}\relax\or\or% \vspace*{-\parskip}% {\usekomafont{section}\vspace*{-2\baselineskip}}% \fi% \vspace*{\z@ \@plus 1fil}% }% }{\ifbool{@tud@#1@multi}{}{\clearpage}}% \else% \ifnum\@nameuse{tud@#1@level}<2% \end{\tud@quoting}% \begin{\tud@quoting}% \fi% \fi% \fi% } % \end{macrocode} % \end{macro}^^A \tud@fm@next % \begin{macro}{\tud@fm@pagestyle} % \changes{v2.02}{2014/07/19}{neu}%^^A % Dieser Befehl sorgt für die Auswahl des Seitenstiles über die Parameter von % \env{abstract} und \env{declarations}. % \begin{macrocode} \newcommand*\tud@fm@pagestyle[2]{% \if@titlepage% \ifcsdef{ps@#2}{\def\tud@ps{#2}}{% \ClassError{\tudcls@name}{`#2' is no valid pagestyle}{% You tried to use `#2' as a pagestyle for the\MessageBreak% `#1' environment, but it was never defined% }% }% \else% \ClassWarning{\tudcls@name}{% %<*article> The key `pagestyle' can only be used with\MessageBreak% activated option `titlepage'% % %<*book|report> The key `pagestyle' can only be used either with\MessageBreak% activated option `titlepage' or with chapter\MessageBreak% headings (`#1=chapter')% % }% \fi% } % \end{macrocode} % \end{macro}^^A \tud@fm@pagestyle % \begin{macro}{\tud@fm@level@wrn} % \changes{v2.02}{2014/07/19}{entfernt}%^^A % \begin{macro}{\tud@fm@option@wrn} % \changes{v2.02}{2014/07/19}{entfernt}%^^A % \begin{macro}{\tud@fm@multi@wrn} % \changes{v2.02}{2014/07/19}{entfernt}%^^A % Die Befehle für die Warnungen an den Benutzer bei nicht beachteten oder nicht % umsetzbaren Einstellungen wurden mit der Version~v2.02 entfernt, da Sie als % wenig sinnvoll erachtet wurden. % \end{macro}^^A \tud@fm@multi@wrn % \end{macro}^^A \tud@fm@option@wrn % \end{macro}^^A \tud@fm@level@wrn % \begin{macro}{\tud@quoting} % \begin{macro}{\tud@endquoting} % \changes{v2.02}{2014/07/19}{entfernt}%^^A % Mit diesem Befehl 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} \newcommand*\tud@quoting{quotation} \AfterPackage{quoting}{\renewcommand*\tud@quoting{quoting}} % \end{macrocode} % \end{macro}^^A \tud@endquoting % \end{macro}^^A \tud@quoting % % \iffalse % %<*class&option> % \fi % % \begin{macro}{\tud@fm@switch} % \changes{v2.02}{2014/11/05}{neu}%^^A % Das aus \KOMAScript{} bekannte Verhalten für die Zusammenfassung wird für die % beiden Klassen \cls{tudscrartcl} und \cls{tudscrreprt} adaptiert. Dazu werden % boolesche Schlüssel bei der Definiton der beiden Optionen \opt{abstract} und % \opt{declaration} eingefügt. Außerdem werden zusätzliche Werte zur Auswahl % einer Gliederungsebene für die gesetzten Überschriften wie \cs{section} oder % \cs{chapter}\footnote{nicht für \cls{tudscrartcl}} oder bereitgestellt, % welche auch für die Buchklasse \cls{tudscrbook} zur Verfügung stehen. Das % Setzen von Einträgen ins Inhaltsverzeichnis lässt sich ebenfalls anpassen. % % Des Weiteren werden mehrere Schlüssel für die Anordnung und Positionierung % von Zusammenfassung bzw. Erklärungen bereitgestellt. Diese dienen dem Setzen % der Optionen \opt{abstract/declaration} mit den Werten \val{single/multi}, % \val{toc/notoc}, \val{fill/nofill} sowie \val{leveldown}. % \begin{macrocode} \newcommand*\tud@fm@switch{% {section}{2},{sect}{2},{sec}{2},{addsec}{2},% %<*article> {new}{2},{standard}{2},{heading}{2},% % %<*book|report> {chapter}{3},{chap}{3},{addchap}{3},% {new}{3},{standard}{3},{heading}{3},% % {totoc}{4},{toc}{4},{totoclevelup}{4},{toclevelup}{4},{levelup}{4},% {totocleveldown}{5},{tocleveldown}{5},{leveldown}{5},% {nottotoc}{6},{notoc}{6},% {markboth}{7},{mark}{7},% {nomarkboth}{8},{nomark}{8},% {one}{9},{simple}{9},{single}{9},% {multi}{10},{multiple}{10},{all}{10},{two}{10},{both}{10},{double}{10},% {nofil}{11},{nofill}{11},{novfil}{11},{novfill}{11},% {fil}{12},{fill}{12},{vfil}{12},{vfill}{12}% } % \end{macrocode} % \end{macro}^^A \tud@fm@switch % % \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} \bool@lock{@tud@abstract@toc} % %<*book> \newcommand*\tud@abstract@level{3} \bool@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@toc@leveldown} % \changes{v2.02}{2014/11/05}{neu}%^^A % Dieser Schalter bestimmt, ob der Eintrag in das Inhaltsverzeichnis in der % obersten Gliederungsebene~-- \cs{chapter} für die Klassen \cls{tudscrbook} % und \cls{tudscrreprt} sowie \cs{section} für \cls{tudscrartcl}~-- oder in der % darunterliegenden erfolgt. % \begin{macrocode} \newif\if@tud@abstract@toc@leveldown % \end{macrocode} % \end{macro}^^A \if@tud@abstract@toc@leveldown % \begin{macro}{\if@tud@abstract@markboth} % \changes{v2.02}{2014/11/05}{neu}%^^A % Dieser Schalter setzt rechten und linken Kolumnentitel automatisch auf die % verwendete Überschrift. % \begin{macrocode} \newif\if@tud@abstract@markboth % \end{macrocode} % \end{macro}^^A \if@tud@abstract@markboth % \begin{macro}{\if@tud@abstract@multi} % Is dieser Schalter aktiviert, wird eine durch \cs{nextabstract} angegebene % zweite~-- wahrscheinlich in einer Fremdsprache verfasste~-- Zusammenfassung % auf die gleiche Seite wie die erste zu setzen. Gesetzt wird der Schalter über % die Option \opt{abstract=single/multi}. % \begin{macrocode} \newif\if@tud@abstract@multi % \end{macrocode} % \end{macro}^^A \if@tud@abstract@multi % \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{option}{abstract} % Alle Klassen unterstützen die Werte, welche in \cs{tud@fm@switch} definiert % wurden. Die beiden Klassen \cls{tudscrartcl} und\ cls{tudscrreprt} adaptieren % außerdem das aus \KOMAScript{} bekannte Verhalten über die booleschen Werte % aus \cs{TUD@numkey@bool}. % \begin{macrocode} %<*report|article> \TUD@key{abstract}[true]{% \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% % %<*book> \TUD@key{abstract}[chapter]{% \edef\@tempb{\tud@fm@switch}% % \TUD@set@numkey{abstract}{@tempa}{\@tempb}{#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} \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% %<*report|article> \def\tud@abstract@level{0}% \bool@std@lock{@tud@abstract@toc}{false}% % \or% %<*report|article> \def\tud@abstract@level{1}% \bool@std@lock{@tud@abstract@toc}{false}% % \or% \def\tud@abstract@level{2}% \bool@std@lock{@tud@abstract@toc}{true}% \or% %<*book|report> \def\tud@abstract@level{3}% \bool@std@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=multi}) und ob % die Zusammenfassung einen Eintrag ins Inhaltsverzeichnis bekommen soll. % \begin{macrocode} \or% \bool@set@lock{@tud@abstract@toc}{true}% \@tud@abstract@toc@leveldownfalse% \or% \bool@set@lock{@tud@abstract@toc}{true}% \@tud@abstract@toc@leveldowntrue% \or% \bool@set@lock{@tud@abstract@toc}{false}% \or% \@tud@abstract@markbothtrue% \or% \@tud@abstract@markbothfalse% \or% \@tud@abstract@multifalse% \or% \@tud@abstract@multitrue% \or% \@tud@abstract@filfalse% \or% \@tud@abstract@filtrue% \fi% \fi% } % \end{macrocode} % \end{option}^^A abstract % % \iffalse % %<*class&body> % \fi % % \begin{environment}{abstract} % \changes{v2.03}{2015/01/09}{Bugfix für Seitenstilauswahl}%^^A % Die \env{abstract}-Umgebung wird komplett überarbeitet. Um alle gewünschten % Optionen\footnote{\opt{titlepage}, \opt{twocolumn}, \opt{abstract@multi}, % \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} % Sollten Überschriften in Form von Kapiteln gewählt worden sein, so wird % temporär die \opt{titlepage}-Option aktivert, da alle weiteren notwendigen % Einstellungen dieser entsprechen. Über den Parameter \opt{pagestyle} kann bei % der Verwendung einer Titelseite der Seitenstil definiert werden. Dafür wird % das dafür verantwortliche Makro \cs{tud@ps} auf \cs{relax} gesetzt. % \begin{macrocode} \ifnumless{\@nameuse{tud@abstract@level}}{3}{}{\@titlepagetrue}% \let\tud@ps\relax% % \end{macrocode} % Als nächstes 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% % \end{macrocode} % Bei aktiver \opt{titlepage}-Option wird anschließend der aktuelle Seitenstil % gesichert, um diesen nach der Umgebung wiederherstellen zu können. Wurde über % die möglichen Parameter \opt{pagestyle} oder indirekt mit \opt{markboth} kein % Seitenstil definiert, so wird dieser auf \val{empty} gesetzt. % \begin{macrocode} \if@titlepage% \tud@currentpagestyle@set% \ifx\tud@ps\relax\def\tud@ps{empty}\fi% \clearpage% \tud@ps@select% \fi% \tud@fm@check{abstract}{\tud@fm@set{abstract}{\abstractname}{\BODY}}% % \end{macrocode} % Nach der Umgebung wird bei aktiver \opt{titlepage}-Option der ursprüngliche % Seitenstil zurückgesetzt. % \begin{macrocode} }[% \if@titlepage% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] % \end{macrocode} % \end{environment}^^A abstract % \begin{parameter}{language} % \begin{parameter}{columns} % \begin{parameter}{pagestyle} % \changes{v2.02}{2014/07/19}{neu}%^^A % \begin{parameter}{markboth} % \changes{v2.02}{2014/11/05}{neu}%^^A % \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{pagestyle}{\tud@fm@pagestyle{abstract}{#1}}% % \end{macrocode} % Für das Setzen von Kolumnentiteln wird der Seitenstil auf \val{headings} % gesetzt, falls kein anderer mit \opt{pagestyle} angegeben wurde. % \begin{macrocode} \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% \@tud@abstract@markbothtrue% \ifx\tud@ps\relax\def\tud@ps{headings}\fi% }{% \@tud@abstract@markbothfalse% }{% \@tud@abstract@markbothfalse% \ifx\tud@ps\relax\def\tud@ps{headings}\fi% \manualmark\markboth{#1}{#1}% }% }% \TUD@parameter@define{abstract}{\TUDoption{abstract}{#1}}% \TUD@parameter@let{option}{abstract}% % \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@parameter@defaulthandler} definiert, welcher auch von der Umgebung % \env{tudpage} verwendet wird. % \begin{macrocode} \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{abstract}{#1}}% } % \end{macrocode} % \end{parameter}^^A option % \end{parameter}^^A abstract % \end{parameter}^^A markboth % \end{parameter}^^A pagestyle % \end{parameter}^^A columns % \end{parameter}^^A language % \begin{macro}{\nextabstract} % \changes{v2.02}{2014/11/05}{neu}%^^A % Um einzelne Abschnitte innerhalb einer Zusammenfassung trennen zu können, ist % dieser Befehl notwendig. % \begin{macrocode} \newcommand*\nextabstract[1][]{% \ifnum\tud@multicols>1\relax% \end{multicols}% \else% \ifbool{@tud@abstract@multi}{% \ifcase\@nameuse{tud@abstract@level}\relax\or% \vspace{\dimexpr\bigskipamount-\parskip\relax}% \fi% }{}% \fi% \tud@fm@next{abstract}{#1}% \ifnum\tud@multicols>1\relax% \begin{multicols}{\tud@multicols}[{\tud@fm@head{abstract}{\abstractname}}]% \else% \tud@fm@head{abstract}{\abstractname}% \fi% } % \end{macrocode} % \end{macro}^^A \nextabstract % % \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. % \begin{macro}{\tud@declaration@level} % \begin{macro}{\if@tud@declaration@toc} % \begin{macro}{\if@tud@declaration@toc@locked} % \begin{macro}{\if@tud@declaration@toc@leveldown} % \changes{v2.02}{2014/11/05}{}%^^A % \begin{macro}{\if@tud@declaration@markboth} % \changes{v2.02}{2014/11/05}{neu}%^^A % \begin{macro}{\if@tud@declaration@multi} % \begin{macro}{\if@tud@declaration@fil} % Siehe die Option \opt{abstract}. % \begin{macrocode} %<*report|article> \newcommand*\tud@declaration@level{1} \bool@lock{@tud@declaration@toc} % %<*book> \newcommand*\tud@declaration@level{3} \bool@lock[true]{@tud@declaration@toc} % \newif\if@tud@declaration@toc@leveldown \newif\if@tud@declaration@markboth \newif\if@tud@declaration@multi \newif\if@tud@declaration@fil \@tud@declaration@multitrue \@tud@declaration@filtrue % \end{macrocode} % \end{macro}^^A \if@tud@declaration@fil % \end{macro}^^A \if@tud@declaration@multi % \end{macro}^^A \if@tud@declaration@markboth % \end{macro}^^A \if@tud@declaration@toc@leveldown % \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]{% % \edef\@tempb{\TUD@numkey@bool,\tud@fm@switch}% \TUD@set@numkey{declaration}{@tempa}{\@tempb}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% \def\tud@declaration@level{0}% \bool@std@lock{@tud@declaration@toc}{false}% \or% \def\tud@declaration@level{1}% \bool@std@lock{@tud@declaration@toc}{false}% \or% \def\tud@declaration@level{2}% \bool@std@lock{@tud@declaration@toc}{true}% \or% %<*book|report> \def\tud@declaration@level{3}% \bool@std@lock{@tud@declaration@toc}{true}% % \or% \bool@set@lock{@tud@declaration@toc}{true}% \@tud@declaration@toc@leveldownfalse% \or% \bool@set@lock{@tud@declaration@toc}{true}% \@tud@declaration@toc@leveldowntrue% \or% \bool@set@lock{@tud@declaration@toc}{false}% \or% \@tud@declaration@markbothtrue% \or% \@tud@declaration@markbothfalse% \or% \@tud@declaration@multifalse% \or% \@tud@declaration@multitrue% \or% \@tud@declaration@filfalse% \or% \@tud@declaration@filtrue% \fi% \fi% } % \end{macrocode} % \end{option}^^A declaration % % \iffalse % %<*class&body> % \fi % % \begin{environment}{declarations} % \changes{v2.02}{2014/11/05}{neu}%^^A % \changes{v2.03}{2015/01/09}{Bugfix für Seitenstilauswahl}%^^A % \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A % \begin{macro}{\if@tud@declarations} % Die \env{declarations}-Umgebung wird ähnlich zur \env{abstract}-Umgebung % definiert. Prinzipiell funktioniert diese genauso, inklusive der Parameter. % Der Schalter \cs{if@tud@declarations} wird verwendet, um die weiteren Befehle % \cs{declaration}, \cs{confirmation} und \cs{blocking} innerhalb und außerhalb % dieser Umgebung verwenden zu können. % \begin{macrocode} \newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% \ifnumless{\@nameuse{tud@declaration@level}}{3}{}{\@titlepagetrue}% \let\tud@ps\relax% \TUD@parameter@set{declaration}{#1}% \tud@multicols@check% \if@titlepage% \tud@currentpagestyle@set% \ifx\tud@ps\relax\def\tud@ps{empty}\fi% \clearpage% \tud@ps@select% \fi% \tud@fm@check{declaration}{% \ifnum\tud@multicols>1\relax% \begin{multicols}{\tud@multicols}% \fi% \BODY% \ifnum\tud@multicols>1\relax% \end{multicols}% \fi% }% }[% \if@titlepage% \aftergroup\tud@currentpagestyle@reset% \clearpage% \fi% ] % \end{macrocode} % \end{macro}^^A \if@tud@declarations % \end{environment}^^A declarations % \begin{parameter}{language} % \begin{parameter}{columns} % \changes{v2.02}{2014/07/19}{neu}%^^A % \begin{parameter}{pagestyle} % \changes{v2.02}{2014/07/19}{neu}%^^A % \begin{parameter}{markboth} % \changes{v2.02}{2014/11/05}{neu}%^^A % \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{blocking}. 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{columns}{\def\tud@multicols{#1}}% \TUD@parameter@define{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@define{markboth}[true]{% \ifstrbool{#1}{% \@tud@declaration@markbothtrue% \ifx\tud@ps\relax\def\tud@ps{headings}\fi% }{% \@tud@declaration@markbothfalse% }{% \@tud@declaration@markbothfalse% \ifx\tud@ps\relax\def\tud@ps{headings}\fi% \manualmark\markboth{#1}{#1}% }% }% \TUD@parameter@define{company}{\def\@company{#1}}% \TUD@parameter@define{supporter}{\def\@supporter{#1}}% \TUD@parameter@define{place}{\def\@place{#1}}% \TUD@parameter@define{closing}{\def\@confirmationclosing{#1}}% \TUD@parameter@let{confirmationclosing}{closing}% \TUD@parameter@define{declaration}{\TUDoption{declaration}{#1}}% \TUD@parameter@let{option}{declaration}% % \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@parameter@defaulthandler} definiert, welcher auch von der Umgebung % \env{tudpage} verwendet wird. % \begin{macrocode} \TUD@parameter@sethandler{\TUD@parameter@defaulthandler{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 markboth % \end{parameter}^^A pagestyle % \end{parameter}^^A columns % \end{parameter}^^A language % \begin{macro}{\declaration} % \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A % \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A % 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][]{% \ifnum\tud@multicols>1\relax% \end{multicols}% \fi% \ifbool{@tud@declarations}{% \begingroup% \TUD@parameter@set{declaration}{#1}% \tud@fm@confirmation% \tud@fm@blocking% \endgroup% }{% \begin{declarations}[#1]% \tud@fm@confirmation% \tud@fm@blocking% \end{declarations}% }% \ifnum\tud@multicols>1\relax% \begin{multicols}{\tud@multicols}% \fi% } % \end{macrocode} % \end{macro}^^A \declaration % \begin{macro}{\confirmation} % \changes{v2.02}{2014/07/18}{Neuimplementierung für \pkg{scrlayer-scrpage}}%^^A % \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A % \begin{macro}{\tud@fm@confirmation} % \changes{v2.02}{2014/07/18}{neu}%^^A % Mit diesem Befehl kann die Selbstständigkeitserklärung ausgegeben werden. Das % optionale Argument bestimmt, wer als Unterstützer angegeben wird. Außerdem % sind Schlüssel-Wert-Paare als Option nutzbar. % \begin{macrocode} \newcommand*\confirmation[1][]{% \ifnum\tud@multicols>1\relax% \end{multicols}% \fi% % \end{macrocode} % Damit das optionale Argument ohne Schlüssel für die Unterstützer verwendet % werden kann, wird der Handler umdefiniert. % \begin{macrocode} \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{supporter=##1}% }% \ifbool{@tud@declarations}{% \begingroup% \TUD@parameter@set{declaration}{#1}% \tud@fm@confirmation% \endgroup% }{% \begin{declarations}[#1]% \tud@fm@confirmation% \end{declarations}% }% % \end{macrocode} % Der Handler wird auf das ursprüngliche Verhalten zurückgesetzt. % \begin{macrocode} \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% \ifnum\tud@multicols>1\relax% \begin{multicols}{\tud@multicols}% \fi% } % \end{macrocode} % Dies ist der eigentliche Inhalt des Befehls \cs{confirmation}. % \begin{macrocode} \newcommand*\tud@fm@confirmation{% \tud@fm@check{declaration}{% \tud@fm@set{declaration}{\confirmationname}{% \confirmationtext\vskip\z@\@confirmationclosing% }% }% } % \end{macrocode} % \end{macro}^^A \tud@fm@confirmation % \end{macro}^^A \confirmation % \begin{macro}{\blocking} % \changes{v2.02}{2014/05/16}{neu, \cs{restriction} umbenannt}%^^A % \changes{v2.02}{2014/07/18}{an \pkg{scrlayer-scrpage} angepasst}%^^A % \changes{v2.03}{2015/01/30}{Bugfix für Spaltenanzahl}%^^A % \begin{macro}{\tud@fm@blocking} % \changes{v2.02}{2014/07/18}{neu}%^^A % 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*\blocking[1][]{% \ifnum\tud@multicols>1\relax% \end{multicols}% \fi% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@set{declaration}{company=##1}% }% \ifbool{@tud@declarations}{% \begingroup% \TUD@parameter@set{declaration}{#1}% \tud@fm@blocking% \endgroup% }{% \begin{declarations}[#1]% \tud@fm@blocking% \end{declarations}% }% \TUD@parameter@sethandler[declaration]{% \TUD@parameter@defaulthandler{declaration}{##1}% }% \ifnum\tud@multicols>1\relax% \begin{multicols}{\tud@multicols}% \fi% } % \end{macrocode} % Dies ist der eigentliche Inhalt des Befehls \cs{blocking}. % \begin{macrocode} \newcommand*\tud@fm@blocking{% \tud@fm@check{declaration}{% \tud@fm@set{declaration}{\blockingname}{\blockingtext}% }% } % \end{macrocode} % \end{macro}^^A \tud@fm@blocking % \end{macro}^^A \blocking % % \iffalse % % \fi % % \Finale % \endinput