% \CheckSum{647}
% \iffalse meta-comment
% 
% ============================================================================
% 
%  TUD-KOMA-Script
%  Copyright (c) Falk Hanisch <tudscr@gmail.com>, 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-fields.dtx
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-fields.dtx}[%
  2015/06/12 v2.04 TUD-KOMA-Script (input fields)%
]
\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-fields.dtx}
\begin{document}
  \maketitle
  \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.02}{2014/06/23}{Unterstützung für \pkg{titlepage} entfernt}^^A
%
% \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 zu sein, werden für die entsprechenden Felder Alias-Befehle definiert.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \iffalse
%<*class|poster>
% \fi
%
% \subsection{Textfelder}
%
% Für das Setzen von Feldern werden bei einem übergebenen Argument führende und
% angehängte Leerzeichen beseitigt.
%    \begin{macrocode}
%<class>\RequirePackage{trimspaces}[2009/09/17]
%    \end{macrocode}
% Von den Klassen benötigte Formularfelder werden definiert.
% \begin{macro}{\faculty}
% \begin{field}{\@faculty}
% \begin{field}{\@faculty@foot}
% \changes{v2.04}{2015/05/06}{neu}^^A
% \begin{macro}{\department}
% \begin{field}{\@department}
% \begin{field}{\@department@foot}
% \changes{v2.04}{2015/05/06}{neu}^^A
% \begin{macro}{\institute}
% \begin{field}{\@institute}
% \begin{field}{\@institute@foot}
% \changes{v2.04}{2015/05/06}{neu}^^A
% \begin{macro}{\chair}
% \begin{field}{\@chair}
% \begin{field}{\@chair@foot}
% \changes{v2.04}{2015/05/06}{neu}^^A
% Für die für die TUD-Kopfzeile kann mit \cs{faculty}\marg{Fakultät} die 
% Fakultät angegeben werden, welche im Makro \cs{@faculty} gespeichert wird. 
% Das gilt ebenso für die Angabe von Einrichtung, Institut und Lehrstuhls bzw.
% Professur. Dies erfolgt mit den Makros \cs{department}\marg{Fachrichtung}, 
% \cs{institute}\marg{Institut} sowie \cs{chair}\marg{Lehrstuhl}, welche in den 
% Feldern \cs{@department}, \cs{@institute} und \cs{@chair} gespeichert werden.
% 
% Das optionale Argument wird zur Kompatibilität zum Paket \pkg{tudscrposter}
% vorgehalten. Wird das Paket geladen, kann mit dem optionalen Argument die 
% Angabe der Struktureinheiten im Fußbereich variiert werden. Hierfür werden 
% die Felder \cs{@faculty@foot}, \cs{@department@foot}, \cs{@institute@foot} 
% sowie \cs{@chair@foot} definiert.
%    \begin{macrocode}
%<*class>
\newcommand*\@faculty{}
\newcommand*\faculty[2][]{\gdef\@faculty{\trim@spaces{#2}}}
\newcommand*\@department{}
\newcommand*\department[2][]{\gdef\@department{\trim@spaces{#2}}}
\newcommand*\@institute{}
\newcommand*\institute[2][]{\gdef\@institute{\trim@spaces{#2}}}
\newcommand*\@chair{}
\newcommand*\chair[2][]{\gdef\@chair{\trim@spaces{#2}}}
%</class>
%<*poster>
\newcommand*\@faculty@foot{}
\renewcommand*\faculty[2][\@empty]{\tud@foot@line@add{faculty}{#2}{#1}}
\newcommand*\@department@foot{}
\renewcommand*\department[2][\@empty]{\tud@foot@line@add{department}{#2}{#1}}
\newcommand*\@institute@foot{}
\renewcommand*\institute[2][\@empty]{\tud@foot@line@add{institute}{#2}{#1}}
\newcommand*\@chair@foot{}
\renewcommand*\chair[2][\@empty]{\tud@foot@line@add{chair}{#2}{#1}}
%</poster>
%    \end{macrocode}
% \end{field}^^A \@chair@foot
% \end{field}^^A \@chair
% \end{macro}^^A \chair
% \end{field}^^A \@institute@foot
% \end{field}^^A \@institute
% \end{macro}^^A \institute
% \end{field}^^A \@department@foot
% \end{field}^^A \@department
% \end{macro}^^A \department
% \end{field}^^A \@faculty@foot
% \end{field}^^A \@faculty
% \end{macro}^^A \faculty
%
% \iffalse
%</class|poster>
%<*class>
% \fi
%
% \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}
\newcommand*\@extraheadline{}
\newcommand*\extraheadline[1]{\gdef\@extraheadline{\trim@spaces{#1}}}
%    \end{macrocode}
% \end{field}^^A \@extraheadline
% \end{macro}^^A \extraheadline
% \begin{macro}{\title}
% \begin{field}{\@@title}
% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A
% \begin{field}{\@@author}
% \changes{v2.02}{2014/07/25}{entfernt}^^A
% Für die spätere Verwendung im Dokument des Titels~-- beispielsweise für die
% Aufgabenstellung oder die Selbstständigkeitserklärung~-- wird das Feld
% \cs{@@title} definiert. In diesem wird der mit \cs{title} gesicherte Eintrag
% ohne die etwaigen Fußnoten gespeichert. Das Feld \cs{@@author} wurde mit der 
% Version~v2.02 entfernt.
%    \begin{macrocode}
\newcommand*\@@title{}
\renewcommand*\title[1]{%
  \gdef\@title{#1}%
  \begingroup%
    \let\thanks\@gobble%
    \let\footnote\@gobble%
    \protected@xdef\@@title{\trim@spaces{#1}}%
  \endgroup%
}
%    \end{macrocode}
% \end{field}^^A \@@author
% \end{field}^^A \@@title
% \end{macro}^^A \title
% \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}
\newcommand*\@authormore{}
\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}}
%    \end{macrocode}
% \end{field}^^A \@authormore
% \end{macro}^^A \authormore
% \begin{macro}{\thesis}
% \begin{field}{\@thesis}
% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A
% \begin{field}{\@@thesis}
% \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A
% \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}
\newcommand*\@thesis{}
\newcommand*\@@thesis{}
\newcommand*\thesis[1]{\tud@thesis{thesis}{#1}}
\newcommand*\tud@thanks{}
\newcommand*\tud@thesis[2]{%
  \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%
    \sbox\z@{#2}%
    \let\thanks\@gobble%
    \let\footnote\@gobble%
    \tud@lowerstring{\@tempa}{#2}%
    \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}%
    \global\let\@tempa\@tempa%
  \endgroup%
  \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]{%
  \ifstr{#1}{subject}{%
    \ifx\@thesis\@empty\else%
      \ClassWarning{\TUDClassName}{Field `thesis' is overwritten by `subject'}%
    \fi%
    \TUD@std@ifkey@lock{subjectthesis}{true}%
  }{%
    \TUD@std@ifkey@lock{subjectthesis}{false}%
  }%
  \ifx\tud@thanks\relax%
    \gdef\@thesis{#2}%
  \else%
    \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}%
  \fi%
  \gdef\@@thesis{#2}%
}
\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}{\graduation}
% \changes{v2.02}{2014/05/16}{neu, von \cs{degree} umbenannt}^^A
% \begin{field}{\@graduation}
% \changes{v2.02}{2014/05/16}{neu, von \cs{@degree} umbenannt}^^A
% \begin{field}{\@graduationabbr}
% \changes{v2.02}{2014/05/16}{neu, \cs{@degreeabbr} umbenannt}^^A
% Der angestrebte Abschluss bzw. der zu erwerbende akademische Grad, welcher
% auf der Titelseite ausgegeben werden soll, wird im Makro \cs{@graduation}
% gespeichert. Zusätzlich kann als optionales Argument die Kurzform des
% akademischen Grades angegeben werden, wird in \cs{@graduationabbr} 
% gespeichert.
%    \begin{macrocode}
\newcommand*\@graduation{}
\newcommand*\@graduationabbr{}
\newcommand*\graduation[2][]{%
  \ifxblank{#1}{\gdef\@graduationabbr{}}{\gdef\@graduationabbr{(#1)}}%
  \gdef\@graduation{#2}%
}
%    \end{macrocode}
% \end{field}^^A \@graduationabbr
% \end{field}^^A \@graduation
% \end{macro}^^A \graduation
%
% \iffalse
%</class>
%<*class|poster>
% \fi
%
% \begin{macro}{\professor}
% \begin{field}{\@professor}
% \begin{field}{\@professor@foot}
% \changes{v2.04}{2015/05/06}{neu}^^A
% Angabe des verantwortlichen Hochschullehrers für Titel und Aufgabenstellung,
% wird im Makro \cs{@professor} gespeichert.
%    \begin{macrocode}
%<*class>
\newcommand*\@professor{}
\newcommand*\professor[2][]{\gdef\@professor{#2}}
%</class>
%<*poster>
\newcommand*\@professor@foot{}
\renewcommand*\professor[2][\@empty]{\tud@foot@line@add{professor}{#2}{#1}}
%</poster>
%    \end{macrocode}
% \end{field}^^A \@professor@foot
% \end{field}^^A \@professor
% \end{macro}^^A \professor
%
% \iffalse
%</class|poster>
%<*class>
% \fi
%
% \begin{macro}{\supervisor}
% \changes{v2.02}{2014/05/16}{erzeugter Eintrag der Betreuer mit
%   \cs{supervisor} für Selbstständigkeitserklärung verworfen}^^A
% \begin{field}{\@supervisor}
% (Erst- und Zweit"~)Betreuer bei Abschlussarbeiten, wird in \cs{@supervisor}
% gespeichert. Mehrere Betreuer werden durch \cs{and} getrennt.
%    \begin{macrocode}
\newcommand*\@supervisor{}
\newcommand*\supervisor[1]{\gdef\@supervisor{#1}}
%    \end{macrocode}
% \end{field}^^A \@supervisor
% \end{macro}^^A \supervisor
% \begin{macro}{\supporter}
% \changes{v2.02}{2014/05/16}{erzeugter Eintrag der Betreuer mit
%   \cs{supervisor} für Selbstständigkeitserklärung verworfen}^^A
% \begin{field}{\@supporter}
% Diese Feld ist für die Hilfesteller bei der Anfertigung der Abschlussarbeit,
% welche auf der Selbstständigkeitserklärung aufgeführt werden. Mehrere 
% Hilfesteller werden durch \cs{and} voneinander getrennt.
%    \begin{macrocode}
\newcommand*\@supporter{}
\newcommand*\supporter[1]{\gdef\@supporter{#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}
% Angabe der Matrikelnummer für Titelseite und Aufgabenstellung, wird in dem
% Makro \cs{@matriculationid} gespeichert.
%    \begin{macrocode}
\newcommand*\@matriculationnumber{}
\newrobustcmd*\matriculationnumber[1]{%
  \gdef\@matriculationnumber{#1}%
}
%    \end{macrocode}
% \end{field}^^A \@matriculationnumber
% \end{macro}^^A \matriculationnumber
% \begin{macro}{\matriculationyear}
% \begin{field}{\@matriculationyear}
% Das Immatrikulationsjahr für den Titel wird in \cs{@matriculationyear}
% gespeichert.
%    \begin{macrocode}
\newcommand*\@matriculationyear{}
\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}}
%    \end{macrocode}
% \end{field}^^A \@matriculationyear
% \end{macro}^^A \matriculationyear
% \begin{macro}{\placeofbirth}
% \begin{field}{\@placeofbirth}
% Der Geburtsort für den Titel wird in \cs{@placeofbirth} gespeichert.
%    \begin{macrocode}
\newcommand*\@placeofbirth{}
\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}}
%    \end{macrocode}
% \end{field}^^A \@placeofbirth
% \end{macro}^^A \placeofbirth
% \begin{macro}{\publisher}
% \begin{field}{\@publisher}
% \changes{v2.02}{2014/07/25}{entfernt}^^A
% Kleine Korrektur für \KOMAScript, der Befehl sollte im Singular stehen.
%    \begin{macrocode}
\providecommand*\publisher[1]{\publishers{#1}}
%    \end{macrocode}
% \end{field}^^A \@publisher
% \end{macro}^^A \publisher
% \begin{length}{\tud@signatureskip}
% \changes{v2.04}{2015/05/06}{neu}^^A
% Für alle Formatvorlagen, welche eine Unterschriftenzeile bereitstellen, wird 
% ein einheitlicher Abstand verwendet.
%    \begin{macrocode}
\newlength\tud@signatureskip
\setlength\tud@signatureskip{15mm plus 10mm minus 10mm}
%    \end{macrocode}
% \end{length}^^A \tud@signatureskip
% \begin{macro}{\confirmationclosing}
% \begin{field}{\@confirmationclosing}
% \changes{v2.02}{2014/07/25}{\cs{@@date} durch \cs{@date} ersetzt}^^A
% \changes{v2.04}{2015/06/10}{Nutzung von \cs{tud@split@author}}^^A
% Als Abschluss der Selbstständigkeitserklärung für Ort und Unterschrift.
%    \begin{macrocode}
\newcommand*\@confirmationclosing{%
  \tud@datecheck%
  \ifx\@date\@empty\else%
    \medskip\noindent%
    \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date%
  \fi%
  \vskip\tud@signatureskip\noindent%
  \begingroup%
    \let\thanks\@gobble%
    \let\footnote\@gobble%
    \renewcommand*\tud@split@author[2]{%
      \tud@multiple@fields@store{@author}{##1}%
      \ignorespaces##1%
      \tud@multiple@fields@restore{@author}%
      \tud@multiple@@@split{##2}{\hfil}%
    }%
    \tud@multiple@split{@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}
% Die Angabe des Ortes mit \cs{place} für die Selbstständigkeitserklärung wird 
% im Makro \cs{@place} gespeichert und standardmäßig mit \enquote{Dresden}
% gesetzt.
%    \begin{macrocode}
\newcommand*\@place{Dresden}
\newcommand*\place[1]{\gdef\@place{#1}}
%    \end{macrocode}
% \end{field}^^A \@place
% \end{macro}^^A \place
%
% \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}{\undef\printdate}
%    \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\relax%
    \gdef#1{#2}%
  \else%
    \ifxblank{#2}%
      {\gdef#1{}}%
      {\gdef#1{\printdate{#2}}}%
  \fi%
}
%    \end{macrocode}
% \end{macro}^^A \tud@printdate
% \begin{macro}{\tud@datecheck}
% \changes{v2.04}{2015/05/06}{neu}^^A
% Das Makro wird vor der Nutzung des Datumfeldes genutzt um zu prüfen, ob ein
% selbiges explizit angegeben wurde. Falls dies nicht der Fall ist, wird eine
% Warnung ausgegeben.
%    \begin{macrocode}
\newcommand*\tud@datecheck{%
  \ifdefvoid{\@duedate}{%
    \ClassWarning{\TUDClassName}{%
      `\string\date' was not given.\MessageBreak%
      Since a thesis is a self-contained work, an end\MessageBreak%
      date should be specified by the author.\MessageBreak%
      Nevertheless, today's date is used%
    }%
  }{%
    \ClassWarning{\TUDClassName}{%
      `\string\date' was not given.\MessageBreak%
      It's substituted by the given due date%
    }%
    \global\let\@date\@duedate%
  }%
  \global\let\tud@datecheck\relax%
}
%    \end{macrocode}
% \end{macro}^^A \tud@datecheck
% \begin{macro}{\date}
% \begin{field}{\@date}
% \begin{field}{\@@date}
% \changes{v2.02}{2014/07/25}{entfernt}^^A
% \begin{field}{\@datemore}
% 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 erweitert, das Feld \cs{@@date} wurde entfernt.
%    \begin{macrocode}
\newcommand*\@datemore{}
\renewcommand*\date[2][]{%
  \gdef\@datemore{\trim@spaces{#1}}%
  \tud@printdate{\@date}{#2}%
  \global\let\tud@datecheck\relax%
}
%    \end{macrocode}
% \end{field}^^A \@datemore
% \end{field}^^A \@@date
% \end{field}^^A \@date
% \end{macro}^^A \date
% \begin{macro}{\defensedate}
% \begin{field}{\@defensedate}
% Das Verteidigungsdatum erscheint auf dem Titel und wird in \cs{@defensedate}
% gespeichert.
%    \begin{macrocode}
\newcommand*\@defensedate{}
\newcommand*\defensedate[1]{\tud@printdate{\@defensedate}{#1}}
%    \end{macrocode}
% \end{field}^^A \@defensedate
% \end{macro}^^A \defensedate
% \begin{macro}{\dateofbirth}
% \begin{field}{\@dateofbirth}
% Angabe des Geburtstages für die Titelseite, wird im Makro \cs{@dateofbirth}
% gespeichert.
%    \begin{macrocode}
\newcommand*\@dateofbirth{}
\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}}
%    \end{macrocode}
% \end{field}^^A \@dateofbirth
% \end{macro}^^A \dateofbirth
% \begin{macro}{\tud@multiple@split}
% \begin{macro}{\tud@multiple@@split}
% \begin{macro}{\tud@multiple@@@split}
% \begin{macro}{\tud@multiple@field}
% \changes{v2.04}{2015/05/12}{entfernt}^^A
% Für Felder, die mehrere Personen~-- getrennt durch \cs{and}~-- beinhalten
% können und für die zusätzliche Angaben durch die Verwendung weiterer Makros 
% innerhalb des Feldbefehlargumentes möglich sind, werden diese Befehle zum 
% Aufteilen der Angaben bereitgestellt. Mit diesen wird es möglich, die durch
% \cs{and} getrennten Teile separat auszuwerten. Für diese Unterfangen wird der
% Befehl \cs{tud@multiple@@split} definiert. Dessen obligatorisches Argument 
% ist dabei das Feld mit dem auszuwertenden Inhalt.
%
% Dafür müssen für jedes so auszuwertende Feld zum einen zum Zeitpunkt der 
% Ausgabe das entsprechende Makro \cs{tud@split\meta{Feld}} und zum anderen 
% eine Liste der auszuwertenden lokalen Angaben \cs{tud@split\meta{Feld}@list} 
% definiert sein. Momentan werden die beiden Felder \cs{@author} und~-- für die 
% Pakete \pkg{tudscrsupervisor} sowie \pkg{tudscrposter}~-- \cs{@contactperson}
% zur Angabe zusätzlicher Informationen unterstützt.
%    \begin{macrocode}
\newcommand*\tud@multiple@@split{}%
\newcommand*\tud@multiple@split[1]{%
%    \end{macrocode}
% Sollte ein Feld verwendet werden, welches initial eine Fehlermeldung enthält, 
% so die vorhandene Warnung ausgegeben und danach das Feld als leer definiert.
%    \begin{macrocode}
  \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{%
    \@latex@warning@no@line}{\csuse{#1}\csgdef{#1}{}%
  }{}%
%    \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 obligatorischen Argument \val{\#1} 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}
  \def\tud@multiple@@split##1\and##2\relax{%
    \expandafter\csname tud@split#1\endcsname{##1}{##2}%
  }%
  \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}
% 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%
    \let\@tempb\relax%
  \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@fields@store}
% \changes{v2.04}{2015/05/12}{neu}^^A
% \begin{macro}{\tud@multiple@fields@restore}
% \changes{v2.04}{2015/05/12}{neu}^^A
% \begin{macro}{\tud@multiple@setfields}
% \changes{v2.04}{2015/05/12}{entfernt}^^A
% Mit \cs{tud@multiple@fields@store} und \cs{tud@multiple@fields@restore} 
% werden zwei Hilfsmakros definiert, um einzelne Feldinhalte lokal ändern und
% nach der Verarbeitung auf den ursprünglichen Wert zurücksetzen zu können.
%
% Nach der Sicherung der globalen Feldinhalte wird der übergebene Teilinhalt
% des zweiten Argumentes mit \cs{sbox}\cs{z@}\marg{\#2} in eine Box expandiert.
% Der Teilinhalt entspricht dabei dem aktuellen Teil des Feldes vor dem
% nächsten \cs{and}. Damit werden die ggf. angegebenen lokalen Felder gesetzt,
% welche in \cs{tud@split\meta{Feld}@list} aufgelistet sind ohne eine Ausgabe
% zu erzeugen. 
%    \begin{macrocode}
\newcommand*\tud@multiple@fields@store[2]{%
  \letcs\@tempa{tud@split#1@list}%
  \let\and\relax%
  \@for\@tempb:=\@tempa\do{%
    \ifx\@tempb\@empty\else%
      \ifcsdef{@\@tempb}{\tud@cmd@store{@\@tempb}}{}%
    \fi%
  }%
  \begingroup%
    \let\thanks\@gobble%
    \let\footnote\@gobble%
    \sbox\z@{#2}%
  \endgroup%
}
%    \end{macrocode}
% Nach dem Verarbeiten und der Ausgabe der lokalen Felder werden die zuvor 
% bestehenden Feldwerte zurückgesetzt.
%    \begin{macrocode}
\newcommand*\tud@multiple@fields@restore[1]{%
  \letcs\@tempa{tud@split#1@list}%
  \let\and\relax%
  \@for\@tempb:=\@tempa\do{%
    \ifx\@tempb\@empty\else%
      \ifcsdef{@\@tempb}{%
        \tud@cmd@restore{@\@tempb}%
        \global\csletcs{@\@tempb}{@\@tempb}%
      }{}%
    \fi%
  }%
}
%    \end{macrocode}
% \end{macro}^^A \tud@multiple@setfields
% \end{macro}^^A \tud@multiple@fields@restore
% \end{macro}^^A \tud@multiple@fields@store
% Auf der Titelseite sowie für die Aufgabenstellung \pkg{tudscrsupervisor} und 
% den Seitenfuß von Postern (\pkg{tudscrposter}) wird die Angabe einer
% kollaborativen Autorenschaft ermöglicht, wo für jeden einzelnen Autor weitere
% Angaben (Matrikelnummer etc.) gemacht werden können. Hierfür werden die 
% folgenden Makros bereitgestellt.
% \begin{macro}{\tud@split@author}
% \changes{v2.02}{2014/07/25}{neu, aus Umbenennung \cs{tud@split@@author}}^^A
% \begin{macro}{\tud@split@author@list}
% \changes{v2.02}{2014/07/25}{neu, Umbenennung \cs{tud@split@@author@list}}^^A
% Der Befehl \cs{tud@split@author} wird hier als Dummy initialisiert und an der 
% entsprechenden Stelle umdefiniert. Dies betrifft in den Klassen den Titel 
% sowie die Aufgabenstellung in der Umgebung \env{task} und den Seitenfuß bei 
% Postern.
%
% Innerhalb von \cs{tud@split@author@list} werden die Feldbefehle hinterlegt, 
% die durch \cs{tud@multiple@fields@\dots} geprüft und ggf. initialisiert 
% werden sollen.
%    \begin{macrocode}
\newcommand*\tud@split@author[2]{}
\newcommand*\tud@split@author@list{%
  authormore,matriculationyear,enrolmentyear,%
  matriculationnumber,studentid,matriculationid,%
  placeofbirth,birthplace,dateofbirth,birthday,%
}
%    \end{macrocode}
% \end{macro}^^A \tud@split@author@list
% \end{macro}^^A \tud@split@author
%
% \iffalse
%</class>
%<*supervisor>
% \fi
%
%
% \subsection{Felder für \pkg{tudscrsupervisor} und \pkg{tudscrposter}}
%
% Die beiden genanntent Pakete stellen einige weitere Felder bereit bzw. 
% erweitern deren Funktionalitäten.
%
% \begin{macro}{\course}
% \begin{field}{\@course}
% Studiengang für den Kopf der Aufgabenstellung, wird im Makro \cs{@course}
% gespeichert.
%    \begin{macrocode}
\newcommand*\@course{}
\newrobustcmd*\course[1]{\gdef\@course{#1}}
%    \end{macrocode}
% \end{field}^^A \@course
% \end{macro}^^A \course
% \begin{macro}{\discipline}
% \changes{v2.02}{2014/05/16}{neu, von \cs{branch} umbenannt}^^A
% \begin{field}{\@discipline}
% \changes{v2.02}{2014/05/16}{neu, von \cs{@branch} umbenannt}^^A
% Studienrichtung bzw. Fachrichtung für den Kopf der Aufgabenstellung, wird
% im Makro \cs{@discipline} gespeichert.
%    \begin{macrocode}
\newcommand*\@discipline{}
\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}}
%    \end{macrocode}
% \end{field}^^A \@discipline
% \end{macro}^^A \discipline
% \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}{\grade}
% \begin{field}{\@grade}
% \begin{field}{\@headline}
% Die 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
% \begin{macro}{\issuedate}
% \begin{field}{\@issuedate}
% Angabe des Anfangsdatums für die Aufgabenstellung, wird im Makro
% \cs{@issuedate} gespeichert.
%    \begin{macrocode}
\newcommand*\@issuedate{}
\newcommand*\issuedate[1]{\tud@printdate{\@issuedate}{#1}}
%    \end{macrocode}
% \end{field}^^A \@issuedate
% \end{macro}^^A \issuedate
% \begin{macro}{\duedate}
% \begin{field}{\@duedate}
% Angabe des geplanten Abgabedatums für die Aufgabenstellung, wird im Makro
% \cs{@duedate} gespeichert.
%    \begin{macrocode}
\newcommand*\@duedate{}
\newcommand*\duedate[1]{\tud@printdate{\@duedate}{#1}}
\newcommand*\finaldate{}
\newcommand*\maturitydate{}
%    \end{macrocode}
% \end{field}^^A \@duedate
% \end{macro}^^A \duedate
%
% \iffalse
%</supervisor>
%<*supervisor|poster>
% \fi
%
%    \begin{macrocode}
\@ifpackageloaded{%
%<supervisor>  tudscrposter%
%<poster>  tudscrsupervisor%
}{}{%
%    \end{macrocode}
% \begin{macro}{\contactperson}
% \changes{v2.02}{2014/05/16}{neu, \cs{contact} umbenannt}^^A
% \begin{field}{\@contactperson}
% \changes{v2.02}{2014/05/16}{neu, \cs{@contact} umbenannt}^^A
% \begin{macro}{\office}
% \begin{field}{\@office}
% \begin{macro}{\telephone}
% \changes{v2.02}{2014/05/16}{neu, \cs{phone} umbenannt}^^A
% \begin{field}{\@telephone}
% \changes{v2.02}{2014/05/16}{neu, \cs{@phone} umbenannt}^^A
% \begin{macro}{\emailaddress}
% \changes{v2.02}{2014/05/16}{neu, \cs{email} umbenannt}^^A
% \begin{field}{\@emailaddress}
% \changes{v2.02}{2014/05/16}{neu, \cs{@email} umbenannt}^^A
% Für einen Aushang bzw. ein Poster kann eine oder mehrere Kontaktpersonen 
% angegeben werden. Zusätzlich lassen sich für jede einzelne Person ein Raum,
% eine Telefonnummer und die E-Mail"=Adresse hinzugefügen.
%    \begin{macrocode}
  \newcommand*\@contactperson{}
  \newcommand*\contactperson[1]{\gdef\@contactperson{#1}}
  \newcommand*\@office{}
  \newrobustcmd*\office[1]{\gdef\@office{#1}}
  \newcommand*\@telephone{}
  \newrobustcmd*\telephone[1]{\gdef\@telephone{#1}}
  \newcommand*\@emailaddress{}
  \newrobustcmd*\emailaddress[2][]{\gdef\@emailaddress{#2}}
  \AfterPackage*{hyperref}{%
    \renewrobustcmd*\emailaddress[2][hidelinks]{%
      \gdef\@emailaddress{%
        \begingroup%
          \hypersetup{#1}%
          \href{mailto:#2}{#2}%
        \endgroup%
      }%
    }%
  }%
%    \end{macrocode}
% \end{field}^^A \@emailaddress
% \end{macro}^^A \emailaddress
% \end{field}^^A \@telephone
% \end{macro}^^A \telephone
% \end{field}^^A \@office
% \end{macro}^^A \office
% \end{field}^^A \@contactperson
% \end{macro}^^A \contactperson
% \begin{macro}{\tud@multiple@fields@preset}
% \changes{v2.04}{2015/05/12}{neu}^^A
% Mit diesem Makro wird es möglich, die Inhalte bestimmter Felder aus einer 
% definerten Liste \cs{tud@split\meta{Feld}@list} auf Standardwerte zu setzen.
%    \begin{macrocode}
  \newcommand*\tud@multiple@fields@preset[3]{%
    \letcs\@tempa{tud@split#1@list}%
    \let\and\relax%
    \@for\@tempb:=\@tempa\do{%
      \ifx\@tempb\@empty\else%
        \edef\@tempc{\@nameuse{\@tempb}}%
        \ifstr{#2}{*}{%
          \@namedef{@\@tempb}{}%
        }{%
          \begingroup%
            \protected@expandtwoargs\in@{\@tempc}{\@nameuse{#1}}%
            \ifin@%
              \ifcsempty{@\@tempb}{\@tempc{#2}}{}%
            \fi%
          \endgroup%
        }%
      \fi%
    }%
    \begingroup%
      \let\thanks\@gobble%
      \let\footnote\@gobble%
      \sbox\z@{#3}%
    \endgroup%
  }%
%    \end{macrocode}
% \end{macro}^^A \tud@multiple@fields@preset
% \begin{macro}{\tud@split@contactperson}
% \changes{v2.04}{2015/05/12}{neu}^^A
% \begin{macro}{\tud@split@contactperson@list}
% \changes{v2.04}{2015/05/12}{neu}^^A
% Mit diesen Befehlen werden für einen Aushang die Daten für einen oder mehrere 
% Kontaktpersonen ausgegeben.
%    \begin{macrocode}
  \newcommand*\tud@split@contactperson[2]{}
  \newcommand*\tud@split@contactperson@list{office,telephone,emailaddress}
%    \end{macrocode}
% \end{macro}^^A \tud@split@contactperson@list
% \end{macro}^^A \tud@split@contactperson
% Damit sind alle Felder für die Pakete definiert.
%    \begin{macrocode}
}
%    \end{macrocode}
%
% \iffalse
%</supervisor|poster>
%<*poster>
% \fi
%
% \begin{macro}{\webpage}
% \changes{v2.04}{2015/05/13}{neu}^^A
% \begin{field}{\@webpage}
% \changes{v2.04}{2015/05/13}{neu}^^A
% Im Fußbereich eines Posters kann zusätzlich eine Web-Seite angegeben werden.
%    \begin{macrocode}
\newcommand*\@webpage{}
\newcommand*\webpage[2][]{\gdef\@webpage{#2}}
\AfterPackage*{hyperref}{%
  \renewcommand*\webpage[2][hidelinks]{%
    \gdef\@webpage{%
      \begingroup%
        \hypersetup{#1}%
        \href{#2}{#2}%
      \endgroup%
    }%
  }%
}%
%    \end{macrocode}
% \end{field}^^A \@webpage
% \end{macro}^^A \webpage
%
% \iffalse
%</poster>
% \fi
%
% \Finale
%
\endinput
