From ae82007e33549c1cfe132e8ee9d08607e8c6572f Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 27 Mar 2017 21:42:47 +0000
Subject: tudscr (27mar17)

git-svn-id: svn://tug.org/texlive/trunk@43623 c570f23f-e606-0410-a88d-b1316a301751
---
 .../source/latex/tudscr/tudscr-manual.dtx          | 407 +++++++++++----------
 1 file changed, 214 insertions(+), 193 deletions(-)

(limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx')

diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
index c2ee34ea417..4ba22ed7066 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{4277}
+% \CheckSum{4322}
 % \iffalse meta-comment
 %
 %  TUD-Script -- Corporate Design of Technische Universität Dresden
@@ -16,7 +16,7 @@
 %  "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 verändert werden. Die aktuelle
@@ -51,7 +51,7 @@
 %<*driver>
 \ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi
 \ProvidesFile{tudscr-manual.dtx}[%
-  2017/03/12 v2.05i TUD-Script\space%
+  2017/03/27 v2.05k TUD-Script\space%
 %</driver>
 %<package&identify>\ProvidesPackage{tudscrtutorial}[%
 %<*driver|package&identify>
@@ -607,16 +607,19 @@
 %    \begin{macrocode}
   \newcommand*\tud@manualname{tudscr}%
 %<*class>
-  \NewDocumentCommand\tudhyperdef{sm}{%
-    \IfBooleanTF{#1}{%
-      \raisebox{4\baselineskip}[0pt][0pt]{\hyperdef{\tud@manualname}{#2}{}}%
+  \NewDocumentCommand\tudhyperdef{st'm}{%
+    \@tempswafalse%
+    \IfBooleanT{#1}{\@tempswatrue\setlength\@tempdima{3\baselineskip}}%
+    \IfBooleanT{#2}{\@tempswatrue\setlength\@tempdima{15\baselineskip}}%
+    \if@tempswa%
+      \raisebox{\@tempdima}[0pt][0pt]{\hyperdef{\tud@manualname}{#3}{}}%
       \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax%
       \@afterindentfalse\@afterheading%
-    }{%
-      \Hy@raisedlink{\hyperdef{\tud@manualname}{#2}{}}\ignorespaces%
-    }%
-    \label{#2}%
-    \tud@trace@lbl@created@add{#2}%
+    \else%
+      \Hy@raisedlink{\hyperdef{\tud@manualname}{#3}{}}\ignorespaces%
+    \fi%
+    \label{#3}%
+    \tud@trace@lbl@created@add{#3}%
   }%
   \newcommand*\tudhyperref[2]{\hyperref{}{\tud@manualname}{#1}{#2}}%
 %</class>
@@ -836,7 +839,7 @@
 % Anschließend folgen die für Anwenderdokumentation eigens definierten Befehle.
 %    \begin{macrocode}
 %<*class>
-  \ProvideDocumentCommand\tudhyperdef{sm}{\label{#2}}%
+  \ProvideDocumentCommand\tudhyperdef{st'm}{\label{#3}}%
 %</class>
   \providecommand*\tudhyperref[2]{#2}%
   \providecommand*\autorefname[1][]{??\xspace}%
@@ -1098,7 +1101,7 @@
 % Dies sind die Makros für die eigentliche Abarbeitung der Deklarationsbefehle 
 % zu Beginn und Ende der Umgebungen \env{Declaration} und \env{Obsolete}.
 %    \begin{macrocode}
-\NewDocumentCommand\tud@declare@start{omoog}{%
+\NewDocumentCommand\tud@declare@start{omr[]r[]m}{%
 %    \end{macrocode}
 % Die optional angegebenen Änderungen werden mit \cs{Changed@At@CreateList} in 
 % der Liste \cs{tud@changedat@list} gesichert und später sowohl für die
@@ -1421,12 +1424,11 @@
 % (fast) alle der folgenden Befehle gilt, dass diese mit zwei optionalen
 % Argumenten am Ende genutzt werden können. Sollte ein Label existieren, wird 
 % automatisch ein Hyperlink erzeugt, welcher mit der optionalen Angabe von
-% \val{'}\meta{Referenzvariante}\val{'} um einen textuellen Querverweis ergänzt 
-% werden kann. Mit \val{\textbar}\meta{Indexmarkup}\val{\textbar} kann die
-% Erscheinung im Index angepasst werden. Bei einigen Befehlen kann zusätzlich
-% zuvor im Markup mit dem optionalen Argument \parg{Bundleelement} die
-% Zuweisung auf ein bestimmtes Paket oder eine Klasse aus dem \TUDScript-Bundle
-% erfolgen.
+% |'|\meta{Referenzvariante}|'| um einen textuellen Querverweis ergänzt werden
+% kann. Mit \verb=|=\meta{Indexmarkup}\verb=|= kann die Erscheinung im Index
+% angepasst werden. Bei einigen Befehlen kann zusätzlich zuvor im Markup mit
+% dem optionalen Argument \parg{Bundleelement} die Zuweisung auf ein bestimmtes
+% Paket oder eine Klasse aus dem \TUDScript-Bundle erfolgen.
 %
 % Die eigentliche Behandlung erfolgt mit dem Befehl \cs{Process@Markup}, 
 % welcher die tatsächliche Auszeichnung im Fließtext bzw. als Deklaration 
@@ -1441,18 +1443,18 @@
 % \begin{macro}{\tud@keyval@error}
 % \changes{v2.05}{2015/11/01}{neu}^^A
 % Bei Optionen und Parametern können spezielle Werte einfach im Hauptargument 
-% durch \val{=} getrennt angegeben werden. Um diese auszuwerten, wird dieser 
-% Befehl definiert, welcher als Argumentprozessor verwendet wird.
+% durch |=| getrennt angegeben werden. Um diese auszuwerten, wird dieser Befehl
+% definiert, welcher als Argumentprozessor verwendet wird.
 %    \begin{macrocode}
 \newcommand*\ProcessorKeyVal[1]{%
   \begingroup%
     \in@{=}{#1}%
 %    \end{macrocode}
-% Wird im Argument ein \val{=} gefunden, so wird alles Darauffolgende als Wert
+% Wird im Argument ein |=| gefunden, so wird alles Darauffolgende als Wert 
 % erkannt und dem eigentlichen Hauptargument bei der Ausgabe angehangen. Das
 % Makro, welches diesen Argumentprozessor verwendet, erhält als Ausgabe also
-% entweder \marg{Schlüssel} oder \marg{Schlüssel}\val{=}\meta{Wert}\val{=} 
-% falls \cs{ProcessorKeyVal} mit \marg{Schlüssel=Wert} verwendet wurde .
+% entweder \marg{Schlüssel} oder \marg{Schlüssel}|=|\meta{Wert}|=| falls
+% \cs{ProcessorKeyVal} mit \marg{Schlüssel=Wert} verwendet wurde.
 %    \begin{macrocode}
     \ifin@%
       \def\@tempa##1=##2\@nil{\toks@{{##1}=##2=}}%
@@ -1660,15 +1662,14 @@
 % \begin{macro}{\@Option}
 % \changes{v2.02}{2014/11/02}{neu}^^A
 % Im Gegensatz zu den vorherigen Befehlen, kann im Hauptargument ein spezieller 
-% Wert für eine Option optional durch ein \val{=} getrennt angegeben werden.
-% Durch den Argumentprozessor \cs{ProcessorKeyVal} wird dieses vom eigentlichen
+% Wert für eine Option optional durch ein |=| getrennt angegeben werden. Durch
+% den Argumentprozessor \cs{ProcessorKeyVal} wird dieses vom eigentlichen
 % Schlüssel getrennt. Dabei wird der gegebene Schlüssel immer in der Form
 % \marg{Schlüssel} ausgegeben. Sollte ein optionaler Wert gegeben worden sein, 
-% wird dieser in der Form \val{=}\meta{Wert}\val{=} einfach angehängt und als
-% optionales Argument von \cs{Option@Value} weiter verarbeitet. Mit dem
-% optionalen Argument in runden Klammern kann ggf. auf eine Option aus einem 
-% \TUDScript-Paket verwiesen 
-% werden.
+% wird dieser in der Form |=|\meta{Wert}|=| einfach angehängt und als optionales
+% Argument von \cs{Option@Value} weiter verarbeitet. Mit dem optionalen Argument
+% in runden Klammern kann ggf. auf eine Option aus einem  \TUDScript-Paket
+% verwiesen werden.
 %    \begin{macrocode}
 \NewExpandableDocumentCommand\@Option{sm}{#2}
 \NewDocumentCommand\Option{s>{\ProcessorKeyVal}md==d()d''d||}{%
@@ -1676,7 +1677,7 @@
 }
 %    \end{macrocode}
 % Für die interne Verwendung kann das optionale Argument für den Wert auch 
-% direkt mit \val{=}\meta{Wert}\val{=} angehangen werden. Um die gleichzeitige 
+% direkt mit |=|\meta{Wert}|=| angehangen werden. Um die gleichzeitige 
 % Verwendung beider Varianten zu unterdrücken, wird in diesem Fall ein Fehler 
 % erzeugt.
 %    \begin{macrocode}
@@ -1825,7 +1826,7 @@
 % Befehle. Das erste Argument ist die Umgebung oder der Befehl, wofür der 
 % Parameter gültig ist. Das zweite Argument ist der Parameter selbst. Die 
 % optionale Zuweisung eines Wertes kann äquivalent zu \cs{Option} mit dem
-% Trennzeichen~\val{=} im Hauptargument erfolgen.
+% Trennzeichen~|=| im Hauptargument erfolgen.
 %    \begin{macrocode}
 \NewExpandableDocumentCommand\@Key{smm}{#2!#3}
 \NewDocumentCommand\Key{sm>{\ProcessorKeyVal}md==d()d''d||}{%
@@ -2187,23 +2188,23 @@
 % \begin{macro}{\tud@lbl@get@@curr}
 % \changes{v2.05}{2015/11/03}{neu}^^A
 % Für den Befehl \cs{tud@lbl@get@curr} wird das zweite obligatorische 
-% Argument (\val{\#3}) für gewöhnlich in der Form
-% \val{\{\string\Bundle{\marg{Klasse/Paket}}:\string\Markup{\marg{Element}}\}}
-% angegeben. Dieses wird beim Einlesen direkt an die beiden Argumentprozessoren 
-% \cs{SplitArgument}\val{\{2\}\{:\}} gefolgt von \cs{tud@lbl@create} übergeben. 
-% Danach enthält das zweite obligatorische Argument ein Label der Form
-% \meta{Bundlepräfix}\val{:}\meta{Labelpräfix}\val{:}\meta{Element}. Auch die
-% Angabe eines Makros als zweites obligatorische Argument, welches das Label in
-% der richtigen Formatierung enthält, ist möglich.
+% Argument (|#3|) für gewöhnlich in der Form
+% |{\Bundle|\marg{Klasse/Paket}|:\Markup|\marg{Element}|}| angegeben. Dieses
+% wird beim Einlesen direkt an die beiden Argumentprozessoren 
+% \cs{SplitArgument}|{2}{:}| gefolgt von \cs{tud@lbl@create} übergeben. Danach
+% enthält das zweite obligatorische Argument ein Label der Form
+% \meta{Bundlepräfix}|:|\meta{Labelpräfix}|:|\meta{Element}. Auch die Angabe
+% eines Makros als zweites obligatorische Argument, welches das Label in der
+% richtigen Formatierung enthält, ist möglich.
 %    \begin{macrocode}
 \NewDocumentCommand\tud@lbl@get@curr{%
-  sm>{\SplitArgument{2}{:}}>{\tud@lbl@create}md==%
+  sm>{\tud@lbl@create}>{\SplitArgument{2}{:}}md==%
 }{%
 %    \end{macrocode}
 % Mit \cs{tud@lbl@get@@curr} wird das im zweiten obligatorischen Argument 
-% (\val{\#3}) generierte Label in das im ersten obligatorischen Argument
-% (\val{\#2}) angegebenen Makro gespeichert und ggf. diesem das letzte
-% optionale Argument für einen speziellen Wert zu einem Schlüssel angehangen.
+% (|#3|) generierte Label in das im ersten obligatorischen Argument |#2|
+% angegebenen Makro gespeichert und ggf. diesem das letzte optionale Argument
+% für einen speziellen Wert zu einem Schlüssel angehangen.
 %    \begin{macrocode}
   \tud@lbl@get@@curr#2{#3}=#4=%
 %    \end{macrocode}
@@ -2273,14 +2274,14 @@
 % seine drei Hauptbestandteile zur WEiterverarbeitung zerlegt.
 %    \begin{macrocode}
 \NewDocumentCommand\tud@lbl@get@dflt{m>{\SplitArgument{2}{:}}mr==}{%
-  \tud@lbl@get@@dflt{#1}#2{#3}%
+  \tud@lbl@get@@dflt{#1}#2=#3=%
 }
 %    \end{macrocode}
 % Durch \cs{tud@lbl@get@@dflt} wird als erstes geprüft, ob der Bundlepräfix 
 % bereits dem Standardpräfix für die Hauptklassen entspricht. Nur wenn dies 
 % nicht der Fall ist, wird die Labelgenerierung abermals ausgeführt.
 %    \begin{macrocode}
-\NewDocumentCommand\tud@lbl@get@@dflt{mmmmm}{%
+\NewDocumentCommand\tud@lbl@get@@dflt{mmmmr==}{%
   \edef\tud@reserved{\expandafter\detokenize\expandafter{\tud@bdl@dflt}}%
   \ifstr{\tud@reserved}{#2}{}{%
 %    \end{macrocode}
@@ -2296,15 +2297,14 @@
 % \changes{v2.05}{2015/11/05}{neu}^^A
 % Mit dem Befehl \cs{tud@if@lbl@exists} wird eine Fallunterscheidung bezüglich
 % der Existenz eines Labels in der Form
-% \meta{Bundlepräfix}\val{:}\meta{Labelpräfix}\val{:}\meta{Element} 
-% durchgeführt. Das zu prüfende Label ist in gleicher Weise wie beim Makro
-% \cs{tud@lbl@get@curr} anzugeben. Je nachdem, ob ein existierendes Label 
-% gefunden wird oder nicht, wird das zweite oder das dritte obligatorische
-% Argument ausgeführt.
+% \meta{Bundlepräfix}|:|\meta{Labelpräfix}|:|\meta{Element} durchgeführt. Das
+% zu prüfende Label ist in gleicher Weise wie beim Makro \cs{tud@lbl@get@curr}
+% anzugeben. Je nachdem, ob ein existierendes Label gefunden wird oder nicht,
+% wird das zweite oder das dritte obligatorische Argument ausgeführt.
 %    \begin{macrocode}
 %<*class>
 \NewDocumentCommand\tud@if@lbl@exists{%
-  >{\SplitArgument{2}{:}}>{\tud@lbl@create}m%
+  >{\tud@lbl@create}>{\SplitArgument{2}{:}}m%
 }{%
   \ifcsdef{r@#1}{%
     \expandafter\@firstoftwo%
@@ -2323,7 +2323,7 @@
 % genau drei Argumente für das Erstellen eines gültigen Labels erwartet. Er
 % wird sowohl von \cs{tud@lbl@get@curr} als auch von \cs{tud@if@lbl@exists}
 % verwendet. Vor der Nutzung von \cs{tud@lbl@create} muss das Argument zuvor
-% bereits mit \cs{SplitArgument}\val{\{2\}\{:\}} aufgerufen worden sein. Diese
+% bereits mit \cs{SplitArgument}|{2}{:}| aufgerufen worden sein. Diese
 % Eigenheit macht die Definition von \cs{tud@lbl@create} notwendig, um das
 % Ergebnis der zuvor vorgenommenen Argumentaufspaltung verarbeiten zu können,
 % in dem dieses an \cs{tud@lbl@@create} durchgereicht wird. Eine Integration 
@@ -2335,41 +2335,34 @@
 % einzelnes Makro, welches das Label bereits beinhaltet als auch einen
 % Markup-Befehl ggf. mit einem Bundlepräfix zu übergeben. In beiden Fällen
 % wird aus dem übergebenen Argument ein eindeutiges Label in der Form 
-% \meta{Bundlepräfix}\val{:}\meta{Labelpräfix}\val{:}\meta{Element} generiert 
-% und als resultierendes Argument an das aufrufenden Makro übergeben.
+% \meta{Bundlepräfix}|:|\meta{Labelpräfix}|:|\meta{Element} generiert und als
+% resultierendes Argument an das aufrufenden Makro übergeben.
 %    \begin{macrocode}
 \NewDocumentCommand\tud@lbl@create{m}{\tud@lbl@@create#1}
 %    \end{macrocode}
 % Es gibt insgesamt vier verschiedene Varianten der Argumentenübergabe an den
 % Argumentprozessor \cs{tud@lbl@@create}.
 % \begin{description}\let\itshape\slshape
-%    \item[\cs{tud@lbl@@create}\val{\ignorespaces
-%      \{\string\LabelMakro\}\{-NoValue-\}\{-NoValue-\}\ignorespaces
-%    }]\strut\newline
+%    \item[\cs{tud@lbl@@create}]\ignorespaces%
+%    |{\LabelMakro}{-NoValue-}{-NoValue-}|\strut\newline%
 %      Das Label ist bereits in \cs{LabelMakro} enthalten und soll expandiert 
-%      werden. Dabei spielt es keine Rolle, ob die durch \val{:} getrennten
+%      werden. Dabei spielt es keine Rolle, ob die durch |:| getrennten
 %      Bestandteile innerhalb des Labels schon als einfacher String oder in der 
 %      Markupform gegeben sind.
-%    \item[\cs{tud@lbl@@create}\val{\ignorespaces
-%      \{-NoValue-\}\{\string\Markup{\marg{Element}}\}\{-NoValue-\}\ignorespaces
-%    }]\strut\newline
+%    \item[\cs{tud@lbl@@create}]\ignorespaces%
+%    |{-NoValue-}{\Markup|\marg{Element}|}{-NoValue-}|\strut\newline%
 %      Das Label soll für ein Markupelement generiert werden, wobei in jedem
 %      Fall der Inhalt aus \cs{tud@bdl@curr} als Bundlepräfix genutzt wird.
-%    \item[\cs{tud@lbl@@create}\val{\ignorespaces
-%      \{\string\Class/\string\Package\marg{\dots}\}\ignorespaces
-%      \{\string\Markup{\marg{Element}}\}\ignorespaces
-%      \{-NoValue-\}\ignorespaces
-%    }]\strut\newline 
+%    \item[\cs{tud@lbl@@create}]\ignorespaces%
+%    |{\Class/\Package|\marg{\dots}|}|\ignorespaces%
+%    |{\Markup|\marg{Element}|}{-NoValue-}|\strut\newline%
 %      Das Label soll für ein Markupelement generiert werden. 
 %      Dabei wurde explizit ein Paket oder eine Klasse aus dem Bundle angegeben 
 %      oder implizit das Makro \cs{tud@bdl@curr} als Argument verwendet,
 %      welches innerhalb der Umgebungen \env{Bundle} und \env{Bundle*} auf
 %      das/die aktuell beschriebene Paket/Klasse gesetzt wurde.
-%    \item[\cs{tud@lbl@@create}\val{\ignorespaces
-%      \marg{Bundlepräfix}\ignorespaces
-%      \marg{Labelpräfix}\ignorespaces
-%      \marg{Element}\ignorespaces
-%    }]\strut\newline 
+%    \item[\cs{tud@lbl@@create}]\ignorespaces%
+%    \marg{Bundlepräfix}\marg{Labelpräfix}\marg{Element}\strut\newline 
 %      Das Label ist bereits vollständig bestimmt und die Argumente werden 
 %      entweder als String oder als Markup übergeben. Auch Mischformen sind 
 %      möglich. In diesem Fall wird es einfach wieder zusammengesetzt. Diese
@@ -2460,28 +2453,26 @@
 % Der Befehl \cs{Process@Markup} ist das Herzstück der Auszeichnungen aller
 % Elemente. Das obligatorische Argument ist das auszuzeichnende Element selbst,
 % welches im weiteren Verlauf der Abarbeitung expandiert wird. Darauf folgen 
-% mehrere optionale Argumente. Mit \val{=}\meta{Wert}\val{=} kann ein Wert für
-% einen Schlüssel angegeben werden, was aktuell von \cs{Option} und \cs{Key} 
-% genutzt wird. Darauf folgend kann in einem ordinären optionalen Argument ein
-% Suffix für die Fließtextausgabe angegeben werden, was von \cs{Distribution} 
-% sowie \cs{Environment}, \cs{Macro} und \cs{Color} verwendet wird.
+% mehrere optionale Argumente. Mit |=|\meta{Wert}|=| kann ein Wert für einen
+% Schlüssel angegeben werden, was aktuell von \cs{Option} und \cs{Key} genutzt
+% wird. Darauf folgend kann in einem ordinären optionalen Argument ein Suffix
+% für die Fließtextausgabe angegeben werden, was von \cs{Distribution}  sowie
+% \cs{Environment}, \cs{Macro} und \cs{Color} verwendet wird.
 %
 % Mit dem optionalen Argument in runden Klammern kann eine Klasse oder ein 
 % Paket aus dem \TUDScript-Bundle angegeben werden, auf welche sich das
 % aktuelle auszuzeichnende Element bezieht und ggf. das Label und der
 % Indexeintrag dementsprechend erzeugt werden sollen. Verwendet wird es mit: 
-% \val{(\string\Class\marg{Klasse}/\string\Package\marg{Paket})} 
+% |(\Class|\marg{Klasse}|)| oder |(\Package|\marg{Paket}|)| 
 %
 % Das optionale Argument in Guillemets wird von \cs{Package} benötigt, um ggf.
 % die automatisch generierten Links auf CTAN anzupassen. Zuletzt kann mit 
-% \val{'}\meta{Referenzvariante}\val{'} der automatisch erzeugte Querverweis in
+% |'|\meta{Referenzvariante}|'| der automatisch erzeugte Querverweis in
 % verschiedenen Varianten formatiert werden. Der vollständige Funktionsaufruf:
 % \newline\begingroup\scriptsize
-% \cs{Process@Markup}\val{\ignorespaces%
-%   \marg{Element}=\meta{Wert}=\oarg{Ausgabesuffix}\ignorespaces%
-%   \parg{Bundleelement}<\meta{CTAN-Paket}>\ignorespaces%
-%   '\meta{Referenzvariante}'\ignorespaces%
-% }%
+%   \cs{Process@Markup}\marg{Element}|=|\meta{Wert}|=|\ignorespaces%
+%   \oarg{Ausgabesuffix}\parg{Bundleelement}\ignorespaces%
+%   |<|\meta{CTAN-Paket}|>||'|\meta{Referenzvariante}|'|\ignorespaces%
 % \endgroup
 %
 % In eingen Fällen ist es beim Aufruf eines Markup-Befehls nicht erwünscht, 
@@ -2540,8 +2531,8 @@
   \tud@reserved%
   \eaddto@hook\tud@toks@{\expandafter{\tud@reserved}}%
 %    \end{macrocode}
-% Es folgen gegebenenfalls die optionalen Argument \val{=}\meta{Wert}\val{=} 
-% sowie \oarg{Ausgabesuffix}~-- falls diese angegeben wurden.
+% Es folgen gegebenenfalls die optionalen Argument |=|\meta{Wert}|=| sowie
+% \oarg{Ausgabesuffix}~-- falls diese angegeben wurden.
 %    \begin{macrocode}
   \IfValueT{#2}{\addto@hook\tud@toks@{=#2=}}%
   \IfValueT{#3}{\addto@hook\tud@toks@{[#3]}}%
@@ -2553,8 +2544,8 @@
 % der Deklarationsumgebung am Ende dieser notwendig. Dabei soll allerdings das
 % Markup nicht noch ein weiteres Mal ausgegeben werden. Deshalb wird der
 % Schalter hier genutzt, um lediglich zu Beginn einer Deklaration das Markup 
-% auszuführen. Dabei Angaben für eine \val{'}\meta{Referenzvariante}\val{'}
-% nicht erlaubt.
+% auszuführen. Dabei Angaben für eine |'|\meta{Referenzvariante}|'| nicht
+% erlaubt.
 %   \begin{macrocode}
 %<*class>
   \if@tud@declare%
@@ -2577,11 +2568,11 @@
 %    \end{macrocode}
 % Findet der Auszeichnungsbefehl außerhalb einer Umgebung für Deklarationen
 % Verwendung, werden die optionalen Argumente für einen CTAN-Link 
-% \val{<}\meta{CTAN-Paketname}\val{>} sowie die Formatierung des Querverweise
-% \val{'}\meta{Referenzvariante}\val{'} hinzugefügt~-- falls vorhanden. Dies 
-% geschieht jedoch nur, wenn das Markup nicht innerhalb eines Index erfolgt, 
-% da hier URL-Hyperlinks und formatierte Querverweise unerwünscht sind. Mit 
-% der Angabe eines leeren Argumentes \val{<>} wird gar kein Hyperlink erstellt.
+% |<|\meta{CTAN-Paketname}|>| sowie die Formatierung des Querverweise
+% |'|\meta{Referenzvariante}|'| hinzugefügt~-- falls vorhanden. Dies geschieht
+% jedoch nur, wenn das Markup nicht innerhalb eines Index erfolgt, da hier
+% URL-Hyperlinks und formatierte Querverweise unerwünscht sind. Mit der Angabe
+% eines leeren Argumentes |<>| wird gar kein Hyperlink erstellt.
 %    \begin{macrocode}
   \else%
 %</class>
@@ -2606,7 +2597,7 @@
 % möglich, da durch die automatische Labelgenerierung normalerweise alle nicht 
 % existierenden Labels mit \meta{Bundlepräfix} auf \cs{tud@bdl@dftl} verweisen
 % müssten. Für die wenigen Fälle, in denen gezielt auf einen Querverweis 
-% verzichtet werden soll, kann ein leeres Argument \val{()} angegeben werden.
+% verzichtet werden soll, kann ein leeres Argument \parg{} angegeben werden.
 %    \begin{macrocode}
   \if@tud@index\else%
     \IfValueT{#4}{%
@@ -2661,7 +2652,7 @@
 % Das erste Argument enthält das zu definierende Label, gefolgt vom Element, 
 % welches ausgezeichnet werden soll. Die tatsächliche Ausgabe erfolgt mit dem 
 % Makro \cs{Markup@Output}. An dieses werden die beiden optionalen Argumente 
-% \val{=}\meta{Wert}\val{=} und \oarg{Ausgabesuffix} direkt weitergereicht.
+% |=|\meta{Wert}|=| und \oarg{Ausgabesuffix} direkt weitergereicht.
 %
 % Vor der eigentlichen Ausführung wird mit \cs{Markup@CheckFormat} geprüft, ob 
 % für das auszuzeichnende Element mit \cs{Markup@SetFormat} überhaupt eine 
@@ -2716,11 +2707,12 @@
 %    \end{macrocode}
 % Anschließend wird \cs{@tempb} ggf. für den erweiterten Querverweis verwendet.
 % Wurde ein Format für den Querverweis gesetzt, muss dieses validiert werden. 
-% Gültige Kürzel sind \val{'auto'}, \val{'page'} und \val{'full'}. Damit werden
-% die erzeugten Querverweise um den Gliederungsabschnitt, die Seite oder beides
-% ergänzt. Außerdem kann mit \val{'none'} der Hyperlink komplett unterbunden
-% werden. Für \cs{Package} kann mit zusätzlich \val{'url'} noch der gCTAN-Link 
-% forciert werden, auch wenn eigentlich ein Label für das Paket existiert.
+% Gültige Kürzel sind |'|\val{auto}|'|, |'|\val{page}|'| und |'|\val{full}|'|. 
+% Damit werden die erzeugten Querverweise um den Gliederungsabschnitt, die
+% Seite oder beides ergänzt. Außerdem kann mit |'|\val{none}|'| der Hyperlink 
+% komplett unterbunden werden. Für den Befehl \cs{Package} kann mit zusätzlich 
+% |'|\val{url}|'| noch der CTAN-Link forciert werden, auch wenn eigentlich ein
+% Label für das Paket existiert.
 %    \begin{macrocode}
       \let\@tempb\relax%
       \IfValueT{#6}{%
@@ -2750,8 +2742,8 @@
       \IfValueT{#5}{\def\@tempa{\href{#5}{\@tempc}}}%
 %    \end{macrocode}
 % Ein Querverweis kann logischerweise nicht erstellt werden. Wurde dennoch im 
-% letzten optionalen Argument eine \val{'}\meta{Referenzvariante}\val{'} für 
-% den Querverweis angegeben, wird eine Warnung erzeugt.
+% letzten optionalen Argument eine |'|\meta{Referenzvariante}|'| für den
+% Querverweis angegeben, wird eine Warnung erzeugt.
 %    \begin{macrocode}
       \let\@tempb\relax%
       \IfValueT{#6}{%
@@ -2804,10 +2796,10 @@
 % Dabei ist die Besonderheit des Makros \cs{Key}\marg{Makro}\marg{Parameter} zu
 % beachten, dessen beiden Argumente hier in der Form \marg{Makro!Parameter} 
 % übergeben werden. Deshalb wird das erste Argument mit dem Argumentprozessor 
-% \cs{SplitArgument}\val{\{1\}\{!\}} getrennt und dann weiter verarbeitet.
+% \cs{SplitArgument}|{1}{!}| getrennt und dann weiter verarbeitet.
 %    \begin{macrocode}
-\NewDocumentCommand\Markup@Output{>{\SplitArgument{1}{!}}md==o}{%
-  \Markup@@Output#1{#2}{#3}%
+\NewDocumentCommand\Markup@Output{>{\SplitArgument{1}{!}}mr==r[]}{%
+  \Markup@@Output#1=#2=[#3]%
 }
 %    \end{macrocode}
 % Anschließend wird entweder \cs{Markup@Declare} oder \cs{Markup@Inline}
@@ -2815,7 +2807,7 @@
 % wird für den Befehlsaufruf mit dem dazugehörigen Argument zur Vereinfachung
 % ein Token-Register verwendet.
 %    \begin{macrocode}
-\NewDocumentCommand\Markup@@Output{mmmm}{%
+\NewDocumentCommand\Markup@@Output{mmr==r[]}{%
 %<*class>
   \if@tud@declare%
     \tud@toks@{\Markup@Declare}%
@@ -3010,7 +3002,7 @@
 % Seitenumbrüche direkt nach Überschriften zu vermeiden. Diese treten auf, das 
 % das Paket \pkg{imakeidx} meiner Meinung nach die Überschriften zusammen mit 
 % der \env{multicols}-Umgebung falsch setzt. Der Patch sorgt dafür, dass die
-% Überschriften (\cs{imki@indexlevel}\val{\{}{\cs{indexname}\val{\{\}}}) nicht 
+% Überschriften (\cs{imki@indexlevel}|{|\cs{indexname}|}|) nicht 
 % vor der Umgebung sondern~-- wie für \pkg{multicol} auch dokumentiert~-- im
 % optionalen Argument von \env{multicols} aufgerufen werden.
 %    \begin{macrocode}
@@ -3160,7 +3152,7 @@
 %
 % Bei der ersten Variante würde der Indexeintrag einfach direkt mit den 
 % Markup-Befehlen erstellt und in der \app{texindy}-Stildatei wird für alle
-% Auszeichnungsbefehle die passende \val{merge-rule} erstellt, um die korrekte 
+% Auszeichnungsbefehle die passende |merge-rule| erstellt, um die korrekte 
 % Sortierung zu gewährleisten. Tatsächlich war in einer früheren Version genau
 % das der Ansatz. Allerdings werden die manuell erstellten RegExp-Regeln durch 
 % \hrfn{http://sourceforge.net/p/xindy/bugs/22/}{\app{texindy} nicht korrekt}
@@ -3168,7 +3160,7 @@
 %
 % Damit das Sortieren verlässlich funktioniert, werden die Einträge für den 
 % Index deshalb in der gewohnten Syntax von \app{makeindex} in der Form
-% \meta{Schlüsselwort}\val{@}\meta{Markup} erstellt. Diese Syntax kann auch mit
+% \meta{Schlüsselwort}|@|\meta{Markup} erstellt. Diese Syntax kann auch mit
 % \app{texindy} genutzt werden. 
 %
 % An \cs{tud@idx@get} werden vier obligatorische gefolgt von vier optionalen 
@@ -3186,22 +3178,20 @@
 % 
 % Daran schließen sich vier optionale Argumente an, mit denen die Formatierung 
 % des Indexeintrags differenziert werden kann. Das erste optionale Argument 
-% \val{=}\meta{Wert}\val{=} kann wie bereits gewohnt für das Hinzufügen eines
+% |=|\meta{Wert}|=| kann wie bereits gewohnt für das Hinzufügen eines
 % Schlüsselwertes genutzt werden. Das zweite, ordinäre optionale Argument 
 % \oarg{Anmerkung} fügt dem Eintrag in den Index eine zusätzliche Anmerkung
 % hinzu. Soll der Indexeintrag für ein spezifisches Paket oder eine Klasse aus
 % dem \TUDScript-Bundle erstellt werden, wird das optionale Argument in runden 
-% Klammern \val{(\string\Class\marg{Klasse}/\string\Package\marg{Paket})} für 
+% Klammern \parg{\string\Class\marg{Klasse}/\string\Package\marg{Paket}} für 
 % einen Verweis auf das \parg{Bundleelement} verwendet, der in \cs{@idxbundle} 
-% gespeichert wird. Das Argument \val{\textbar}\meta{Indexmarkup}\val{\textbar}
-% wird bei Deklarationen zur Unterdrückung von Untereinträgen verwendet.
+% gespeichert wird. Das Argument \verb=|=\meta{Indexmarkup}\verb=|= wird bei
+% Deklarationen zur Unterdrückung von Untereinträgen verwendet.
 % Der vollständige Funktionsaufruf lautet:
 % \newline\begingroup\scriptsize
-% \cs{tud@idx@get}\cs{tud@idx@key}\cs{tud@idx@fmt}\cs{tud@idx@val}%
-% \val{\ignorespaces%
-%   \marg{Elem.}=\meta{Wert}=\oarg{Anm.}\ignorespaces% 
-%   \parg{Bundleelem.}\textbar\meta{Indexmark.}\textbar\ignorespaces%
-% }%
+%   \cs{tud@idx@get}\cs{tud@idx@key}\cs{tud@idx@fmt}\ignorespaces%
+%   \cs{tud@idx@val}\marg{Elem.}|=|\meta{Wert}|=|\oarg{Anm.}\ignorespaces%
+%   \parg{Bundleelem.}\verb=|=\meta{Indexmark.}\verb=|=\ignorespaces%
 % \endgroup
 %    \begin{macrocode}
 \newcommand*\tud@idx@key{}
@@ -3243,9 +3233,9 @@
 % Da der Inhalt des vierten Arguments am Ende der Gruppe expandiert wird, wird 
 % mit \cs{expandonce} dafür gesorgt, dass die Expansion nur einmalig erfolgt. 
 % Zu beachten ist außerdem, dass der Hauptindexeintrag bereits in der Form 
-% \meta{Schlüsselwort}\val{@}\meta{Markup}\textbf{\val{!}} zusammengefügt wird.
-% Die Sternversion wird für die Änderungsnotizen verwendet. Für diese wird eine 
-% kleine Anmerkung im Haupteintrag ergänzt.
+% \meta{Schlüsselwort}|@|\meta{Markup}|!| zusammengefügt wird. Die Sternversion
+% wird für die Änderungsnotizen verwendet. Für diese wird eine kleine Anmerkung
+% im Haupteintrag ergänzt.
 %    \begin{macrocode}
         \let\@tempa\@empty%
         \IfBooleanT{#1}{\def\@tempa{: Parameter angepasst}}%
@@ -3273,9 +3263,9 @@
     \tud@reserved%
 %    \end{macrocode}
 % Die Auszeichnung für den Indexeintrag besteht in erster Linie aus dem 
-% Markup-Befehl selbst. Damit ein \val{@}-Zeichen beispielsweise in einem 
+% Markup-Befehl selbst. Damit ein |@|"~Zeichen beispielsweise in einem 
 % Makronamen korrekt verarbeitet wird, wird dieses im Stil von \app{makeindex} 
-% mit \val{"} maskiert.
+% mit |"| maskiert.
 %    \begin{macrocode}
     \def#3{#5}%
     \tud@replace#2{@}{"@}%
@@ -3367,12 +3357,12 @@
       \eappto\@tempb{\suffix{\expandonce\tud@idx@bdl}}%
     \fi%
 %    \end{macrocode}
-% Sollte mit \val{=}\meta{Wert}\val{=} ein spezieller Schlüsselwert angegeben 
-% worden sein, wird für diesen normalerweise ein separater Untereintrag 
-% erstellt. Der Schalter \cs{@tempswa} wird genutzt, um das Erzeugen dieses 
-% Untereintrages im Zweifel zu unterdrücken und diesen stattdessen als normalen 
-% Eintrag zu setzen. Dies ist zum einen bei Deklarationen und zum anderen in 
-% der Änderungsliste notwendig. Außerdem kann dies auch mit der Anagabe von 
+% Sollte mit |=|\meta{Wert}|=| ein spezieller Schlüsselwert angegeben worden
+% sein, wird für diesen normalerweise ein separater Untereintrag erstellt. Der
+% Schalter \cs{@tempswa} wird genutzt, um das Erzeugen dieses Untereintrages im
+% Zweifel zu unterdrücken und diesen stattdessen als normalen Eintrag zu
+% setzen. Dies ist zum einen bei Deklarationen und zum anderen in der
+% Änderungsliste notwendig. Außerdem kann dies auch mit der Angabe von 
 % \val{default} als Indexargument erzwungen werden.
 %    \begin{macrocode}
     \@tempswafalse%
@@ -3437,6 +3427,7 @@
 % \changes{v2.05}{2015/11/02}{neu}^^A
 % \begin{macro}{\tud@cleversee}
 % \changes{v2.05}{2015/11/02}{neu}^^A
+% \changes{v2.05k}{2017/03/20}{neu}^^A
 % Diese Befehle dienen zum smarten Setzen von Hinweisen im Index. Existiert 
 % lediglich dieser Hinweis im Index, wird dieser mit dem Präfix \cs{seename} 
 % ausgegeben. Sind jedoch für einen Indexeintrag auch Seitenzahlen vorhanden, 
@@ -3455,14 +3446,24 @@
 % Hinweisen ausgegeben und mit \cs{relax} abgeschlossen werden. Dies wird mit
 % der später definierten Stildatei für \app{texindy} sichergestellt. So wird es 
 % möglich, dass das Makro \cs{tud@cleversee} auf alles ihm bis \cs{relax} 
-% nachfolgende parsen kann und abhängig davon die Ausgabe gestaltet.
+% nachfolgende parsen kann und abhängig davon die Ausgabe gestaltet. Das zweite 
+% obligatorische Argument beinhaltet dabei den Querverweis, das dritte Argument
+% ist alles nachfolgende bis \cs{relax}.
 %    \begin{macrocode}
 \newcommand*\tud@cleversee{}
 \def\tud@cleversee#1#2#3\relax{%
   \IfArgIsEmpty{#3}{%
     \emph{#1}\space#2%
   }{%
-    #3, \emph{\alsoname}\space#2%
+%    \end{macrocode}
+% Folgen im Index nach \cs{cleversee}\marg{Querverweis} noch weitere Einträge, 
+% so sind diese zu Beginn durch \enquote{, } getrennt. Diese zwei Zeichen 
+% werden mithilfe von \cs{@tempa} ignoriert.
+%    \begin{macrocode}
+    \begingroup%
+      \def\@tempa, ##1\@nil{##1,\space\emph{\alsoname}\space#2}%
+      \@tempa#3\@nil%
+    \endgroup%
   }%
 }
 %    \end{macrocode}
@@ -3505,10 +3506,9 @@
 % Nomenklatur identisch zu den bisherigen Erläuterungen, der vollständige 
 % Funktionsaufruf lautet:
 % \newline\begingroup\scriptsize
-% \cs{Process@Index}\val{\ignorespaces%
-%   \marg{Stern?}\marg{Element}=\meta{Wert}=\oarg{Anmerkung}\ignorespaces%
-%   \parg{Bundleelement}\textbar\meta{Indexmarkup}\textbar\ignorespaces%
-% }%
+%   \cs{Process@Index}\marg{Stern?}\marg{Element}\ignorespaces%
+%   |=|\meta{Wert}|=|\oarg{Anmerkung}\parg{Bundleelement}\ignorespaces%
+%   \verb=|=\meta{Indexmarkup}\verb=|=\ignorespaces%
 % \endgroup
 %    \begin{macrocode}
 \NewDocumentCommand\Process@Index{mmd==od()d||}{%
@@ -3536,8 +3536,8 @@
 %    \end{macrocode}
 % Dabei erledigt \cs{tud@idx@get} einen Großteil der Aufgabe. Mit besagtem 
 % Makro werden Schlüssel und Format für den gewünschten Indexeintrag erzeugt.
-% Sollte optional ein spezieller \val{=}\meta{Wert}\val{=} für einen Schlüssel
-% gegeben sein, so wird ggf. auch der passende Haupteintrag erstellt.
+% Sollte optional ein spezieller |=|\meta{Wert}|=| für einen Schlüssel gegeben
+% sein, so wird ggf. auch der passende Haupteintrag erstellt.
 %    \begin{macrocode}
 %<*class>
   \if@tud@declare%
@@ -3582,7 +3582,7 @@
 %    \end{macrocode}
 % Für Markup-Befehle außerhalb von Deklarationsumgebungen wird ein einfacher 
 % Eintrag in den Index erzeugt, wobei auch im Fließtext über das Indexmarkup 
-% \val{\textbar{}declare\textbar} eine Quasi-Deklaration verwendet werden kann. 
+% \verb=|=\val{declare}\verb=|= eine Quasi-Deklaration verwendet werden kann. 
 % Dies wird beispielsweise für \KOMAScript-Optionen genutzt, um diese in der 
 % gewünschten Formatierung im Index erscheinen zu lassen.
 %    \begin{macrocode}    
@@ -3646,9 +3646,9 @@
 % Indexuntereintrag erzeugt, der wiederum auf einen Indexeintrag des zweiten 
 % Argumentes verweist. Dabei kann im zweiten Argument ein normaler Begriff oder 
 % ein Markup-Befehl verwendet werden. Normalerweise wird für den Querverweis 
-% die Referenzklasse \val{see} verwendet, die Sternversion des Befehls hingegen 
-% nutzt \val{seeunverified}, um auf eine Prüfung des verwiesenen Eintrags zu 
-% verzichten.
+% die Referenzklasse \verb=|see= verwendet, die Sternversion des Befehls
+% hingegen nutzt \verb=|seeunverified=, um auf eine Prüfung des verwiesenen
+% Eintrags zu verzichten.
 %    \begin{macrocode}
 \NewDocumentCommand\SeeRef{smm}{%
   \sbox\z@{%
@@ -3840,17 +3840,16 @@
 % Änderungsnotizen lassen sich auf zwei unterschiedlichen Wegen generieren. 
 % Entweder über die Nutzung von \cs{ChangedAt} oder über das optionale Argument
 % einer der Deklarationsumgebungen. Diese sind in der Form 
-% \meta{Versionsnummer}\val{:}\meta{Änderungsnotiz} anzugeben. Die alleinige 
-% Angabe der Versionsnummer ohne Änderungsnotiz ist ebenso möglich.
+% \meta{Versionsnummer}|:|\meta{Änderungsnotiz} anzugeben. Die alleinige Angabe
+% der Versionsnummer ohne Änderungsnotiz ist ebenso möglich.
 % 
 % Wird die Änderungsnotiz für ein bestimmtes Element wie eine Option oder ein 
 % Befehl erstellt, wie es bei den Deklarationsumgebungen implizit oder bei der 
 % Verwendung von \cs{ChangedAt} mit optionalem Argument geschieht, gibt es die 
 % zusätzliche Möglichkeit, einen Untereintrag zu erstellen. Dabei ist dieser 
 % nach Versionsnummer und vor Änderungsnotiz in folgender Form anzugeben: 
-% \meta{Versionsnummer}\val{!}\meta{Untereintrag}\val{:}\meta{Änderungsnotiz}.
-% Der Untereintrag ist für die explizite Angabe eines Schlüssel-Wert-Paares 
-% gedacht.
+% \meta{Versionsnummer}|!|\meta{Untereintrag}|:|\meta{Änderungsnotiz}. Der
+% Untereintrag ist für die explizite Angabe eines Schlüssel-Wert-Paares gedacht.
 % \begin{macro}{\if@tud@changedat}
 % \begin{macro}{\Process@ChangedAt}
 % \changes{v2.02}{2014/07/25}{erweitert}^^A
@@ -3870,9 +3869,8 @@
 % Aufruf des Makros erfolgt dabei in gewohnter Form mit einem obligatorischen 
 % gefolgt von drei optionalen Argumenten:
 % \newline\begingroup\scriptsize
-% \cs{Process@ChangedAt}\val{\ignorespaces%
-%   \marg{Element}=\meta{Wert}=\oarg{Ausgabesuffix}\parg{Bundleelement}%
-% }%
+%   \cs{Process@ChangedAt}\marg{Element}|=|\meta{Wert}|=|\ignorespaces%
+%   \oarg{Ausgabesuffix}\parg{Bundleelement}\ignorespaces%
 % \endgroup
 %   \begin{macrocode}
 \NewDocumentCommand\Process@ChangedAt{md==od()}{%
@@ -3968,22 +3966,22 @@
 % weiter. 
 %    \begin{macrocode}
 \NewDocumentCommand\Changed@At@CreateList{od()m}{%
-  \IfValueT{#3}{\forssvlist{\Changed@At@@CreateList{#1}{#2}}{#3}}%
+  \IfValueT{#3}{\forssvlist{\Changed@At@@CreateList[#1](#2)}{#3}}%
 }
 %    \end{macrocode}
 % Mit \cs{Changed@At@@CreateList} wird lediglich die Versionsnummer von der 
 % eigentlichen Änderungsnotiz getrennt.
 %    \begin{macrocode}
-\NewDocumentCommand\Changed@At@@CreateList{mm>{\SplitArgument{1}{:}}m}{%
-  \Changed@At@@@CreateList{#1}{#2}#3%
+\NewDocumentCommand\Changed@At@@CreateList{r[]r()>{\SplitArgument{1}{:}}m}{%
+  \Changed@At@@@CreateList[#1](#2)#3%
 }
 %    \end{macrocode}
 % Zuletzt wird durch \cs{Changed@At@@@CreateList} ein möglicher Untereintrag
 % in ein separates Argument abgetrennt und \cs{Changed@At@@@@CreateList} mit
 % allen Argumenten aufgerufen.
 %    \begin{macrocode}
-\NewDocumentCommand\Changed@At@@@CreateList{mm>{\SplitArgument{1}{!}}mm}{%
-  \Changed@At@@@@CreateList{#1}{#2}#3{#4}%
+\NewDocumentCommand\Changed@At@@@CreateList{r[]r()>{\SplitArgument{1}{!}}mm}{%
+  \Changed@At@@@@CreateList[#1](#2)#3{#4}%
 }
 %    \end{macrocode}
 % Der Befehl \cs{Changed@At@@@@CreateList} übernimmt nun die Erstellung des 
@@ -4000,16 +3998,16 @@
 % Der im Folgenden erzeugte Eintrag für die Liste \cs{tud@changedat@list} wird
 % in zwei unterschiedlichen Varianten generiert. In der Form 
 % \newline\begingroup\scriptsize
-% \val{\meta{Versionsnummer}!Allgemein!\meta{Änderungsnotiz}}
+%   \meta{Versionsnummer}|!Allgemein!|\meta{Änderungsnotiz}\ignorespaces%
 % \endgroup\newline
 %  werden allgemeine Änderungsnotizen erstellt, für Einträge bezüglich der
 % Implementierung wird die folgende Form genutzt:
 % \newline\begingroup\scriptsize
-% \val{\meta{Versionsnummer}!Implementierung!\meta{Markup-Befehl}}\ignorespaces
-% \val{!\meta{Untereintrag}!\meta{Änderungsnotiz}}.
+%   \meta{Versionsnummer}|!Implementierung!|\meta{Markup-Befehl}\ignorespaces%
+%   |!|\meta{Untereintrag}|!|\meta{Änderungsnotiz}\ignorespaces%
 % \endgroup
 %    \begin{macrocode}
-\NewDocumentCommand\Changed@At@@@@CreateList{mmmmm}{%
+\NewDocumentCommand\Changed@At@@@@CreateList{r[]r()mmm}{%
 %    \end{macrocode}
 % Die Aufteilung der Änderungsliste in die einzelnen \TUDScript-Bundle-Elemente 
 % erfolgt entweder anhand des explizit angegebenen optionalen Argumentes in
@@ -4044,8 +4042,8 @@
 % Argumentes entschieden. Ist es vorhanden, handelt es sich um einen Eintrag 
 % für den Implementierungsteil, welcher in \cs{tud@changedat@list} in der Form 
 % \newline\begingroup\scriptsize
-% \meta{Versionsnummer}\val{!Implementierung!}\meta{Markup-Befehl}\ignorespaces
-% \val{!}\meta{Untereintrag}\val{!}\meta{Änderungsnotiz}
+%   \meta{Versionsnummer}|!Implementierung!|\meta{Markup-Befehl}\ignorespaces%
+%   |!|\meta{Untereintrag}|!|\meta{Änderungsnotiz}\ignorespaces%
 % \endgroup\newline
 % gespeichert wird, wobei der Untereintrag auch leer bleiben kann.
 %    \begin{macrocode}
@@ -4072,7 +4070,7 @@
 %    \end{macrocode}
 % Handelt es sich um einen allgemeinen Änderungseintrag, wird dieser in der Form
 % \newline\begingroup\scriptsize
-% \meta{Versionsnummer}\val{!Allgemein!}\meta{Änderungsnotiz}%
+%   \meta{Versionsnummer}|!Allgemein!|\meta{Änderungsnotiz}\ignorespaces%
 % \endgroup\newline
 % in der Liste \cs{tud@changedat@list} gespeichert. Für den allgemeinen Teil 
 % wird mit der Angabe eines \TUDScript-Bundle-Elements etwas anders verfahren.
@@ -4120,8 +4118,8 @@
 % \begin{macro}{\Changed@At@@CreateEntry}
 % \changes{v2.02}{2014/09/02}{neu}^^A
 % Der Befehl \cs{Changed@At@CreateEntry} wird durch \cs{@printchangedatlist} 
-% aufgerufen und teilt die gegebene Liste am Delimiter Ausrufezeichen \val{!}
-% in fünf Argumente auf und reicht sie an \cs{Changed@At@@CreateEntry} weiter.
+% aufgerufen und teilt die gegebene Liste am Delimiter Ausrufezeichen |!| in
+% fünf Argumente auf und reicht sie an \cs{Changed@At@@CreateEntry} weiter.
 % Sind weniger als vier Ausrufezeichen vorhanden, so werden die ungenutzten
 % Argumente mit dem~-- durch das Paket \pkg{xparse} definierten~-- leeren Wert
 % \val{-NoValue-} an den Befehl \cs{Changed@At@@CreateEntry} übergeben.
@@ -4137,12 +4135,12 @@
 % gesetzt werden soll. Die in \cs{tud@changedat@list} gespeicherten Einträge 
 % haben die Form 
 % \newline\begingroup\scriptsize
-% \val{\meta{Versionsnummer}!Allgemein!\meta{Änderungsnotiz}}
+%   \meta{Versionsnummer}|!Allgemein!|\meta{Änderungsnotiz}\ignorespaces%
 % \endgroup\newline
 % oder 
 % \newline\begingroup\scriptsize
-% \val{\meta{Versionsnummer}!Implementierung!\meta{Markup-Befehl}}\ignorespaces
-% \val{!\meta{Untereintrag}!\meta{Änderungsnotiz}}.
+%   \meta{Versionsnummer}|!Implementierung!|\meta{Markup-Befehl}\ignorespaces%
+%   |!|\meta{Untereintrag}|!|\meta{Änderungsnotiz}\ignorespaces%
 % \endgroup
 %    \begin{macrocode}
 \newcommand*\Changed@At@@CreateEntry[5]{%
@@ -4251,13 +4249,13 @@
 \newcommand*\PrintChangelog{%
   \begingroup%
 %    \end{macrocode}
-% Die oberste Ebene enthält die Versionsnummer mit dem Präfix \val{v}. Diese 
-% Ebene soll nicht als Indexeintrag selber sondern vielmehr als Überschrift der
-% Ebene \cs{subsection} genutzt werden. Dafür wird zum einen das durch das 
-% Paket \pkg{imakeidx} definierte Makro \cs{lettergroup} \emph{unschädlich} 
-% gemacht, zum anderen wird der Befehl \cs{item} so umdefiniert, dass dieser
-% alles bis zum nächsten Zeilenumbruch als Argument einliest. Alle darunter 
-% liegenden \cs{item}-Befehle werden eine Ebene nach oben gehoben.
+% Die oberste Ebene enthält die Versionsnummer mit dem Präfix |v|. Diese Ebene
+% soll nicht als Indexeintrag selber sondern vielmehr als Überschrift der Ebene
+% \cs{subsection} genutzt werden. Dafür wird zum einen das durch das Paket
+% \pkg{imakeidx} definierte Makro \cs{lettergroup} \emph{unschädlich} gemacht,
+% zum anderen wird der Befehl \cs{item} so umdefiniert, dass dieser alles bis
+% zum nächsten Zeilenumbruch als Argument einliest. Alle darunter liegenden
+% \cs{item}-Befehle werden eine Ebene nach oben gehoben.
 %    \begin{macrocode}
     \let\lettergroup\@gobble%
     \apptocmd{\theindex}{%
@@ -4412,9 +4410,9 @@
 % werden, um die Einstellung für den Säumniswert hervorzuheben. Im ersten 
 % optionalen Argument können die möglichen Werte einer Option oder eines 
 % Parameters angegeben werden. Sind mehrere Werte gleichbedeutende Werte
-% verwendbar, so sind diese durch \val{/} zu trennen. Dabei wird der als 
-% erstes angegebene Wert für den Untereintrag in den Index verwendet. Das 
-% zweite optionale Argument kann genutzt werden, falls beispielsweise für
+% verwendbar, so sind diese durch |/| zu trennen. Dabei wird der als erstes
+% angegebene Wert für den Untereintrag in den Index verwendet. Das zweite
+% optionale Argument kann genutzt werden, falls beispielsweise für
 % unterschiedliche Klassen sich der Säumniswert unterscheidet. Das letzte 
 % optionale Argument in runden Klammern fügt zum Schluss einen ergänzenden 
 % Eintrag hinzu.
@@ -4811,8 +4809,8 @@
 % \begin{macro}{\tud@shellescape@wrn}
 % \changes{v2.02}{2014/10/14}{neu}^^A
 % Dieses Makro wird verwendet, wenn eine gesuchte Datei nicht gefunden wurde, 
-% weil das Dokument noch nicht mit der Option \opt{--shell-escape} kompiliert 
-% wurde.
+% weil das Dokument noch nicht mit dem Schalter \file{-{}-shell-escape} 
+% kompiliert wurde.
 %    \begin{macrocode}
 \newcommand*\tud@shellescape@wrn[1]{%
 %<*class>
@@ -4924,19 +4922,36 @@
         pdflatex -output-directory examples examples/#1.tex%
       }%
     }%
+%    \end{macrocode}
+% Sollte es eine spezielle Version eines beispiels für die Druckausgabe geben, 
+% wird auch dieses kompiliert.
+%    \begin{macrocode}
+    \filemodCmp{examples/#1_print.pdf}{examples/#1_print.tex}{}{%
+      \immediate\write18{%
+        pdflatex -output-directory examples examples/#1_print.tex^^J%
+        pdflatex -output-directory examples examples/#1_print.tex%
+      }%
+    }%
   \fi%
 %    \end{macrocode}
 % Ist die gesuchte Datei vorhanden, wird diese auch eingebunden. Andernfalls 
 % wird eine Warnung mit dem Hinweis auf die notwendige Verwendung von 
-% \app{pdflatex} mit der Option \opt{--shell-escape} erzeugt.
+% \app{pdflatex} mit dem Schalter \file{-{}-shell-escape} erzeugt.
 %    \begin{macrocode}
-  \IfFileExists{examples/#1.pdf}{%
-    \includepdf[%
-      pages=-,noautoscale,frame,keepaspectratio,pagecommand={},%
-      height=\textheight,width=\textwidth, offset=5mm 0mm%
-    ]{examples/#1.pdf}%
+  \def\@tempa{examples/#1.pdf}%
+  \ifdef{\tudprintflag}{%
+    \IfFileExists{examples/#1_print.pdf}{\def\@tempa{examples/#1_print.pdf}}{}%
+  }{}%
+  \IfFileExists{\@tempa}{%
+    \edef\@tempa{%
+      \noexpand\includepdf[%
+        pages=-,noautoscale,frame,keepaspectratio,pagecommand={},%
+        height=\noexpand\textheight,width=\noexpand\textwidth,offset=5mm 0mm%
+      ]{\@tempa}%
+    }%
+    \@tempa%
   }{%
-    \tud@shellescape@wrn{examples/#1.pdf}%
+    \tud@shellescape@wrn{\@tempa}%
   }%
 }
 %</class>
@@ -5450,7 +5465,7 @@
 % Der Quelltext aus den Umgebungen \env{Trunk!} und \env{Hint!} wird~-- wie bei
 % allen anderen \env{Trunk}-Derivaten~-- in  \file{\string\tud@tut@temp.tex}
 % gesichert. Beim Aufruf von \app{pdflatex} wird durch die Nutzung der Option
-% \opt{-jobname=\string\tud@tut@temp} die Definition von \cs{jobname} in der
+% \file{-jobname=\string\tud@tut@temp} die Definition von \cs{jobname} in der
 % aufgerufenen Datei \file{\string\tud@tut@temp-standalone.tex} überschrieben
 % und der Inhalt von \file{\string\tud@tut@temp.tex} wie gewünscht eingebunden
 % und kompiliert. Damit die so erstellte PDF-Datei mit \cs{IncludeStandalone}
@@ -5698,7 +5713,7 @@
 % Das angestellte optionale Argument erzeugt zusätzlich eine Notiz am Rand, in
 % welcher vorzugsweise die angedachte Version eingetragen werden kann. Sollte 
 % dieser angegeben sein, wird auf eine gültige Versionsnummer geprüft. Dabei 
-% wird ein möglicherweise vorangestelltes \val{v} entfernt.
+% wird ein möglicherweise vorangestelltes |v| entfernt.
 %    \begin{macrocode}
         \def\tud@todo@marginnote{ToDo}%
         \IfValueT{#4}{%
@@ -5862,11 +5877,17 @@
 %    \begin{macrocode}
 \RequirePackage{ragged2e}[2009/05/21]
 %    \end{macrocode}
-% Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt.
+% Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt\dots
+%    \begin{macrocode}
+\@removefromreset{footnote}{chapter}
+%    \end{macrocode}
+% \dots und im Flattersatz ausgegeben.
 %    \begin{macrocode}
-\RequirePackage{chngcntr}[2009/09/02]
-\counterwithout{footnote}{chapter}
-\addtokomafont{footnote}{\tud@RaggedRight}
+\ifcsdef{scr@v@3.23}{%
+  \renewcommand*\raggedfootnote{\tud@RaggedRight}%
+}{%
+  \pretocmd{\@makefntext}{\tud@RaggedRight}{}{\tud@patch@wrn{@makefntext}}%
+}
 %    \end{macrocode}
 % Das Paket wird für die Erstellung von Tabellen verwendet.
 %    \begin{macrocode}
@@ -5916,7 +5937,7 @@
 % \changes{v2.05}{2015/11/01}{neu}^^A
 % Mit diesem Befehl kann in einem gegebenen Makro ein bestimmtes Zeichen durch 
 % ein anderes ersetzt werden. Dies wird verwendet, um für Indexbefehle oder 
-% Labels die möglicherweise enthaltenen \val{@}-Zeichen zu ersetzen.
+% Labels die möglicherweise enthaltenen |@|"~Zeichen zu ersetzen.
 %    \begin{macrocode}
 \newcommand*\tud@replace[3]{%
   \begingroup%
-- 
cgit v1.2.3

