summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx')
-rw-r--r--Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx949
1 files changed, 598 insertions, 351 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
index 4eafd4935de..9d522aef726 100644
--- a/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
+++ b/Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx
@@ -1,32 +1,32 @@
-% \CheckSum{4153}
+% \CheckSum{4273}
% \iffalse meta-comment
-%
-% ============================================================================
-%
-% TUD-Script
-% Copyright (c) Falk Hanisch <tudscr@gmail.com>, 2012-2016
-%
-% ============================================================================
-%
+%
+% TUD-Script -- Corporate Design of Technische Universität Dresden
+% ----------------------------------------------------------------------------
+%
+% Copyright (C) Falk Hanisch <tudscr@gmail.com>, 2012-2017
+%
+% ----------------------------------------------------------------------------
+%
% 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 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
+% 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
+% in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle
+% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und
+% Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01
+% oder später 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
%
@@ -49,14 +49,15 @@
% \iffalse
%%% From File: tudscr-manual.dtx
%<*driver>
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\ifx\ProvidesFile\@undefined\def\ProvidesFile#1[#2]{}\fi
\ProvidesFile{tudscr-manual.dtx}[%
- 2016/10/12 v2.05f TUD-Script\space%
+ 2017/01/26 v2.05g TUD-Script\space%
%</driver>
%<package&identify>\ProvidesPackage{tudscrtutorial}[%
%<*driver|package&identify>
%!TUD@Version
-%<package> package (internal tutorials)%
+%<package> package
+ (internal tutorials)%
]
%</driver|package&identify>
%<*driver>
@@ -67,13 +68,19 @@
\usepackage{babel}
\usepackage{tudscrfonts} % only load this package, if the fonts are installed
\KOMAoptions{parskip=half-}
-\usepackage{microtype}
\usepackage{bookmark}
+\usepackage[babel]{microtype}
+
\CodelineIndex
\RecordChanges
\GetFileInfo{tudscr-manual.dtx}
+\title{\file{\filename}}
+\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}}
+\date{\fileversion\nobreakspace(\filedate)}
+
\begin{document}
\maketitle
+ \tableofcontents
\DocInput{\filename}
\end{document}
%</driver>
@@ -86,20 +93,22 @@
% \changes{v2.02}{2014/11/18}{\pkg{tudscrtutorial}: Index für Tutorials}^^A
% \changes{v2.05}{2015/08/04}{Geteilte Deklarationen für Klasse und Paket}^^A
%
-% \section{Klasse und Paket für Handbuch und Leitfäden zu \TUDScript}
+% \section{Handbuch und Leitfäden zu \TUDScript}
%
-% Es werden die Klasse \cls{tudscrmanual} für das \TUDScript-Handuch sowie das
-% Paket \pkg{tudscrtutorial} für das Setzen von einigen Anwenderleitfäden bzw.
+% Es werden die Klasse \cls{tudscrmanual} für das Handuch sowie das Paket
+% \pkg{tudscrtutorial} für das Setzen von einigen Anwenderleitfäden bzw.
% Tutorials erzeugt. Da es zwischen der Klasse und dem Paket es eine große
-% Menge an Überschneidungen gibt, basieren diese auf der gleichen Quelldatei.
+% Menge an Überschneidungen gibt, basieren diese auf der gleichen Quelldatei.
+% Einiges davon wird auch für die Quelltextdokumentationsklasse \cls{tudscrdoc}
+% verwendet.
%
% \StopEventually{\PrintIndex\PrintChanges\PrintToDos}
%
% \iffalse
-%<*body|doc>
+%<*body|class&doc>
% \fi
%
-% \subsection{Notwendige Pakete und Befehle für Klasse und Paket}
+% \subsection{Notwendige Pakete und Befehle}
%
% Basis für die Handbuchklasse \cls{tudscrmanual} ist die \cls{tudscrreprt}.
% Zusätzlich wird das Paket \pkg{tudscrtutorial} erstellt, um an das Handbuch
@@ -145,6 +154,7 @@
% Um bei einer signifikanten Änderung des Paketes passend reagieren zu können,
% wird auf das aktuelle Paketdatum geprüft und für neue Versionen eine Warnung
% erzeugt.
+% \ToDo{Kann raus, sobald \pkg{geometry} nicht mehr notwendig}[v2.07]
% \begin{macrocode}
%<*!doc>
\@ifpackagelater{geometry}{2010/09/13}{%
@@ -180,27 +190,19 @@
}
% \end{macrocode}
% \end{macro}^^A \tud@english
+% Sollte \app{lualatex} als Dokumentprozessor eingesetzt werden, sind die
+% \app{pdflatex}-Primitiven \cs{pdf(@)strcmp} und \cs{pdf(@)shellescape}
+% dennoch notwendig, wofür das Paket \pkg{pdftexcmds} geladen wird.
+% \begin{macrocode}
+\RequirePackage{pdftexcmds}[2016/05/21]
+% \end{macrocode}
%
% \iffalse
-%</body|doc>
+%</body|class&doc>
%<*!doc>
%<*body>
% \fi
%
-% \begin{macro}{\pdfstrcmp}
-% \begin{macro}{\pdfshellescape}
-% Sollte \app{lualatex} eingesetzt werden, sind diese \app{pdflatex}-Primitiven
-% dennoch notwendig, wofür \pkg{pdftexcmds} geladen wird.
-% \begin{macrocode}
-\RequirePackage{ifluatex}[2016/05/16]
-\ifluatex
- \RequirePackage{pdftexcmds}[2016/05/21]
- \let\pdfstrcmp\pdf@strcmp
- \let\pdfshellescape\pdf@shellescape
-\fi
-% \end{macrocode}
-% \end{macro}^^A \pdfshellescape
-% \end{macro}^^A \pdfstrcmp
% \begin{macro}{\tud@list@sort}
% \changes{v2.02}{2014/07/25}{neu}^^A
% \begin{macro}{\tud@list@@sort}
@@ -210,9 +212,9 @@
% \begin{macro}{\if@tud@list@sorted}
% \changes{v2.02}{2014/07/25}{neu}^^A
% Der Befehl \cs{tud@list@sort} erwartet eine \pkg{etoolbox}-Liste und sortiert
-% diese mit \cs{sort@list} in alphabetischer Reihenfolge in eine kommagetrennte
-% Auflistung. Diese wird anschließend wieder in eine \pkg{etoolbox}-Liste
-% umgewandelt.
+% diese mit dem Makro \cs{sort@list} in alphabetischer Reihenfolge in eine
+% kommagetrennte Auflistung. Diese wird anschließend wieder in eine
+% \pkg{etoolbox}-Liste umgewandelt.
% \begin{macrocode}
\newcommand*\tud@templist{}
\let\tud@templist\relax
@@ -267,7 +269,7 @@
% eine Sonderbehandlung erfolgen. Anschließend wird \cs{@tud@list@sortedtrue}
% gesetzt.
% \begin{macrocode}
- \expandafter\ifnum\pdfstrcmp{#1}{\@tempa}<\z@\relax%
+ \expandafter\ifnum\pdf@strcmp{#1}{\@tempa}<\z@\relax%
\ifx\@tempb\@empty%
\expandafter\edef\expandafter\@tempb\expandafter{%
#1,\@tempa%
@@ -315,7 +317,7 @@
%<*package>
% \fi
%
-% \subsubsection{Zusätzliche Pakete für das Paket \pkg{tudscrtutorial}}
+% \subsection{Zusätzliche Pakete für das Paket \pkg{tudscrtutorial}}
%
% Mit dem Paket \pkg{scrwfile} lassen sich Probleme mit zu wenig verfügbaren
% Streams für das Schreiben externer Datein beheben. Hintergrund ist die
@@ -340,10 +342,91 @@
%
% \iffalse
%</package>
+%</body>
+%<*option>
+% \fi
+%
+% \subsection{%
+% Optionen für die Ausgabe von \cls{tudscrmanual} und \pkg{tudscrtutorial}%
+% }
+%
+% \begin{option}{final}
+% \begin{option}{print}
+% \begin{macro}{\tudfinalflag}
+% \begin{macro}{\tudprintflag}
+% Diese beiden Optionen dienen zur finalen und/oder der unbunten Ausgabe.
+% \begin{macrocode}
+\TUD@key{final}[true]{%
+ \TUD@set@ifkey{final}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tempswa%
+ \let\tudfinalflag\relax%
+ \fi%
+ \fi%
+}
+\TUD@key{print}[true]{%
+ \TUD@set@ifkey{print}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed%
+ \if@tempswa%
+ \let\tudprintflag\relax%
+ \fi%
+ \fi%
+}
+% \end{macrocode}
+% Wurde eine oder beide der Optionen \opt{final} oder \opt{print} gesetzt bzw.
+% vor einem externen \app{pdflatex}-Aufruf die Flags \cs{tudfinalflag} und/oder
+% \cs{tudprintflag} definiert, werden die entsprechenden Einstellungen zur
+% finalen Ausgabe und/oder unbunten Druck vorgenommen und anschließend die
+% entsprechenden Optionen unschädlich gemacht.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \ifdef{\tudfinalflag}{%
+ \TUDoptions{ToDo=false}%
+ \TUD@key{ToDo}{}%
+ }{}%
+ \ifdef{\tudprintflag}{%
+ \ifnum\tud@cd@num>\z@\relax%
+ \TUDoptions{cd=true}%
+ \fi%
+ \TUD@key{cd}{}%
+ \ifundef{\hypersetup}{}{\hypersetup{hidelinks}}%
+ }{}%
+}
+% \end{macrocode}
+% \end{macro}^^A \tudprintflag
+% \end{macro}^^A \tudfinalflag
+% \end{option}^^A print
+% \end{option}^^A final
+%
+% \iffalse
+%<*class>
+% \fi
+%
+% \subsection{Standardoptionen der Klasse \cls{tudscrmanual}}
+%
+% Es werden einige Optionen für das Handbuch standardmäßig aktiviert. Dazu
+% werden diese an die entsprechende Elternklasse übergeben.
+% \begin{macrocode}
+\PassOptionsToClass{%
+ cdfoot=true,%
+ chapterpage=true,%
+ chapterprefix=true,%
+ headings=optiontoheadandtoc,%
+ captions=tableheading,%
+ numbers=noenddot,%
+ cd=color,%
+}{\TUD@Class@Parent}
+\PassOptionsToPackage{automark}{scrlayer-scrpage}
+% \end{macrocode}
+%
+% \iffalse
+%</class>
+%</option>
+%<*body>
%<*class>
% \fi
%
-% \subsubsection{Debug-Traces für die Klasse \cls{tudscrmanual}}
+% \subsection{Debug-Traces für die Klasse \cls{tudscrmanual}}
%
% Ab und an ist es beim Erstellen des Handbuchs recht sinnvoll, verschiedene
% Dinge direkt im Logfile zu überprüfen. Hierfür werden folgend einige Befehle
@@ -477,9 +560,12 @@
%
% \iffalse
%</class>
+%</body>
+%</!doc>
+%<*body|class&doc>
% \fi
%
-% \subsubsection{Anpassungen für das Paket \pkg{hyperref} und Querverweise}
+% \subsection{Anpassungen für das Paket \pkg{hyperref} und Querverweise}
%
% Das Paket \pkg{hyperref} wird für alle möglichen Links und Querverweise
% geladen, \pkg{bookmark} verbesssert das Erstellen der Outline-Einträge.
@@ -493,18 +579,18 @@
% \begin{macrocode}
\AfterPackage*{hyperref}{%
% \end{macrocode}
+% Zuerst die Einstellungen für \cls{tudscrmanual} und \pkg{tudscrtutorial}.
+%
+% \iffalse
+%<*!doc>
+% \fi
+%
% Die Bezeichner für die Abschnittsebenen werden umbenannt.
% \begin{macrocode}
\renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}%
\renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}%
\renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}%
% \end{macrocode}
-% \begin{macro}{\Email}
-% Hiermit wird ein Hyperlink für eine E"~Mail-Adresse erzeugt.
-% \begin{macrocode}
- \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}}%
-% \end{macrocode}
-% \end{macro}^^A \Email
% \begin{macro}{\tudhyperdef}
% \changes{v2.02}{2014/10/27}{neu}^^A
% \begin{macro}{\tudhyperref}
@@ -551,9 +637,9 @@
% \begin{macro}{\auto@refname}
% \begin{macro}{\auto@@refname}
% Der Befehl \cs{autorefname} dient dazu, den Verweistyp beziehungsweise den
-% Bezeichner des aktuellen oder optional zu einem speziellen Label ohne die
-% dazugehörige Nummerierung zu erhalten. Auf der Seite LaTeX Stack Exchange%
-% \footnote{\url{http://tex.stackexchange.com/q/33776/}} wurde das Prinzip
+% Bezeichner des aktuellen~-- oder optional eines speziellen~-- Labels ohne die
+% dazugehörige Nummerierung zu erhalten. Das zugrunde liegende Funktionsprinzip
+% wurde bei \hrfn{http://tex.stackexchange.com/q/33776/}{LaTeX Stack Exchange}
% vorgestellt und hier übernommen.
% \begin{macrocode}
\newcommand*\autorefname[1][current]{%
@@ -578,7 +664,73 @@
% \end{macro}^^A \auto@@refname
% \end{macro}^^A \auto@refname
% \end{macro}^^A \autorefname
-% Damit sind die Ausführungen für das Paket \pkg{hyperref} beendet.
+% Nun die Einstellungen für \cls{tudscrdoc}.
+%
+% \iffalse
+%</!doc>
+%<*doc>
+% \fi
+%
+% \begin{macro}{\hypersourcedef}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% \begin{macro}{\hypersource@def}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% \begin{macro}{\hypersource@ref@codeline}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% \begin{macro}{\hypersource@ref@page}
+% \changes{v2.05}{2016/04/26}{neu}^^A
+% Diese Makros werden verwendet, um im Index respektive in der Änderungsliste
+% mithilfe von \pkg{hyperref} Hyperlinks auf Codezeilen respektive Seiten im
+% Dokument zu setzen.
+%
+% Mit \cs{hypersourcedef} wird ein Textanker gesetzt, falls dieser noch nicht
+% definiert wurde, was durch \cs{hypersource@def} abgesichert wird. Als
+% Argument wird hierfür die aktuelle Codezeile verwendet.
+% \begin{macrocode}
+ \newcommand*\hypersource@def{}
+ \newcommand*\hypersourcedef[1]{%
+ \ifstr{#1}{\hypersource@def}{}{%
+ \Hy@raisedlink{\hyperdef{}{source:#1}{}}%
+ \xdef\hypersource@def{#1}%
+ }%
+ }%
+% \end{macrocode}
+% Mit \cs{hypersource@ref@\dots} wird auf Anker im Dokument verlinkt. Dies
+% erfolgt indirekt über die Attribute \val{main} bzw. \val{usage}, welche bei
+% der Definitionen von Befehlen etc. im Index genutzt werden. Hierfür werden
+% die dazugehörigen Makros umdefiniert.
+% \begin{macrocode}
+ \newcommand*\hypersource@ref@codeline[2][\@firstofone]{%
+ \begingroup%
+ \def\@tempa##1{\hyperref{}{}{source:##1}{#1{##1}}}%
+ \forcsvlist\@tempa{#2}%
+ \endgroup%
+ }%
+ \newcommand*\hypersource@ref@page[2][\@firstofone]{%
+ \begingroup%
+ \def\@tempa##1{\hyperlink{page.##1}{#1{##1}}}%
+ \forcsvlist\@tempa{#2}%
+ \endgroup%
+ }%
+ \renewcommand*\main[1]{%
+ \ifcodeline@index%
+ \hypersource@ref@codeline[\underline]{#1}%
+ \else%
+ \hypersource@ref@page[\underline]{#1}%
+ \fi%
+ }%
+ \renewcommand*\usage[1]{\hypersource@ref@page[\textit]{#1}}%
+% \end{macrocode}
+% \end{macro}^^A \hypersource@ref@page
+% \end{macro}^^A \hypersource@ref@codeline
+% \end{macro}^^A \hypersource@def
+% \end{macro}^^A \hypersourcedef
+%
+% \iffalse
+%</doc>
+% \fi
+%
+% Das war's. Damit sind die Ausführungen für das Paket \pkg{hyperref} beendet.
% \begin{macrocode}
}
% \end{macrocode}
@@ -589,17 +741,8 @@
% \end{macrocode}
% Zunächst die direkt innerhalb der Dokumentation verwendeten Befehle nebst
% dazugehöriger Warnung.
-% \begin{macro}{\hypersetup}
-% \begin{macro}{\hyperdef}
-% \begin{macro}{\hyperref}
-% \begin{macro}{\tud@hyperref@a}
-% \begin{macro}{\tud@hyperref@b}
-% \begin{macro}{\href}
-% \begin{macro}{\hyperpage}
-% \begin{macro}{\autoref}
-% \begin{macro}{\texorpdfstring}
-% \begin{macro}{\phantomsection}
% \begin{macrocode}
+%<*!doc>
%<*class>
\ClassWarningNoLine{tudscrmanual}%
%</class>
@@ -611,8 +754,47 @@
Nevertheless, essential commands are rudimentarily\MessageBreak%
defined. At least the package `url' is loaded.%
}%
- \RequirePackage{url}[2013/09/16]%
+%</!doc>
+% \end{macrocode}
+% \begin{macro}{\hypersetup}
+% \begin{macro}{\href}
+% \begin{macro}{\phantomsection}
+% \begin{macro}{\texorpdfstring}
+% \begin{macro}{\nolinkurl}
+% Einige vom Paket \pkg{hyperref} definierten Befehle werden vorgehalten.
+% \begin{macrocode}
\providecommand*\hypersetup[1]{}%
+ \providecommand*\href[3][]{#3}%
+ \providecommand*\phantomsection{}%
+ \providecommand*\texorpdfstring[2]{#1}%
+ \RequirePackage{url}[2013/09/16]%
+ \providecommand*\nolinkurl[1]{\url{#1}}%
+% \end{macrocode}
+% \end{macro}^^A \nolinkurl
+% \end{macro}^^A \texorpdfstring
+% \end{macro}^^A \phantomsection
+% \end{macro}^^A \href
+% \end{macro}^^A \hypersetup
+%
+% \iffalse
+%<*!doc>
+% \fi
+%
+% \begin{macro}{\hyperpage}
+% \begin{macro}{\autoref}
+% Der Befehl \cs{autoref} wird auch in der Sternversion genutzt.
+% \begin{macrocode}
+ \providecommand*\hyperpage[1]{#1}%
+ \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}%
+% \end{macrocode}
+% \end{macro}^^A \autoref
+% \end{macro}^^A \hyperpage
+% \begin{macro}{\hyperdef}
+% \begin{macro}{\hyperref}
+% \begin{macro}{\tud@hyperref@a}
+% \begin{macro}{\tud@hyperref@b}
+% Mit \cs{hyperdef} wird ein ein Label direkt vor dem Text eingefügt.
+% \begin{macrocode}
\providecommand*\hyperdef[3]{\label{#1.#2}#3}%
% \end{macrocode}
% Der Befehl \cs{hyperref} existiert in zwei Varianten. Entweder mit einem
@@ -623,28 +805,11 @@
}
\newcommand*\tud@hyperref@a[2][]{#2}
\newcommand*\tud@hyperref@b[4]{#4}
- \providecommand*\href[3][]{#3}%
- \providecommand*\hyperpage[1]{#1}%
-% \end{macrocode}
-% Der Befehl \cs{autoref} wird auch in der Sternversion genutzt.
-% \begin{macrocode}
- \providecommand*\autoref{??\xspace\kernel@ifstar{\ref}{\ref}}%
-% \end{macrocode}
-% Auch \cs{texorpdfstring} und \cs{phantomsection} werden vorgehalten.
-% \begin{macrocode}
- \providecommand*\phantomsection{}%
- \providecommand*\texorpdfstring[2]{#1}%
% \end{macrocode}
-% \end{macro}^^A \phantomsection
-% \end{macro}^^A \texorpdfstring
-% \end{macro}^^A \autoref
-% \end{macro}^^A \hyperpage
-% \end{macro}^^A \href
% \end{macro}^^A \tud@hyperref@b
% \end{macro}^^A \tud@hyperref@a
% \end{macro}^^A \hyperref
% \end{macro}^^A \hyperdef
-% \end{macro}^^A \hypersetup
% \begin{macro}{\partautorefname}
% \begin{macro}{\chapterautorefname}
% \begin{macro}{\sectionautorefname}
@@ -668,45 +833,63 @@
% \end{macro}^^A \sectionautorefname
% \end{macro}^^A \chapterautorefname
% \end{macro}^^A \partautorefname
-% Anschließend folgen die für Klasse und Paket eigens definierten Befehle.
+% Anschließend folgen die für Anwenderdokumentation eigens definierten Befehle.
% \begin{macrocode}
- \providecommand*\Email[1]{\mbox{#1}}%
%<*class>
\ProvideDocumentCommand\tudhyperdef{sm}{\label{#2}}%
%</class>
\providecommand*\tudhyperref[2]{#2}%
\providecommand*\autorefname[1][]{??\xspace}%
-}
+%
+% \iffalse
+%</!doc>
+%<*doc>
+% \fi
+%
% \end{macrocode}
-% \begin{macro}{\fullref}
-% Verbesserte Referenzierungen auf Seiten.
+% Und hier der Teil für die Quelltextdokumentation.
% \begin{macrocode}
-\RequirePackage{varioref}[2011/10/02]
-\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}}
+ \providecommand*\hypersourcedef[1]{}
+ \providecommand*\hypersource@def{}
+ \providecommand*\hypersource@ref@codeline[2][]{}
+ \providecommand*\hypersource@ref@page[2][]{}
+%
+% \iffalse
+%</doc>
+% \fi
+%
+% \begin{macrocode}
+}
% \end{macrocode}
-% \end{macro}^^A \fullref
% \begin{macro}{\hrfn}
% \changes{v2.02}{2014/08/16}{neu}^^A
% \changes{v2.04}{2015/02/18}{Schriftgröße mit \cs{scalebox}}^^A
% Mit diesem Makro können Hyperlinks im Fließtext erzeugt werden, welche
% zusätzlich noch die dazugeörige URL als Fußnote anzeigen.
% \begin{macrocode}
+%<doc>\TUD@UnwindPackage{trimspaces}{\providecommand*\trim@spaces[1]{#1}}
\newcommand*\hrfn[2]{%
\href{#1}{\trim@spaces{#2}}%
\footnote{%
- \scalebox{0.95}{%
+ \begingroup%
% \end{macrocode}
-% Die Box wird verwendet, um zu lange URLs ausreichend zu verkleinern. Außerdem
-% werden Unterstriche entschärft, die im Zweifel zu Fehlern führen können.
+% Die Gruppe wird verwendet, um Unterstriche zu entschärfen, die im Zweifel zu
+% Fehlern führen können.
% \begin{macrocode}
\def\_{_}%
\edef\@tempa{#1}%
\strut\expandafter\url\expandafter{\@tempa}%
- }%
+ \endgroup%
}%
}
% \end{macrocode}
% \end{macro}^^A \hrfn
+% \begin{macro}{\mailto}
+% Ein Makro zur Angabe einer verlinkten E"~Mail-Adresse.
+% \begin{macrocode}
+\newrobustcmd*\mailto[1]{\href{mailto:#1}{\nolinkurl{#1}}}%
+% \end{macrocode}
+% \end{macro}^^A \mailto
% Wenn \pkg{hyperref} geladen wird, erzeugt das Paket \pkg{babel} innerhalb von
% \cs{pdfstringdef} ziemlich viele und absolut unnötige Infos in der Form
% \texttt{Package babel Info: Redefining ngerman shorthand}. Dieser Patch dient
@@ -718,6 +901,19 @@
}{}{\tud@patch@wrn{pdfstringdef}}%
}
% \end{macrocode}
+%
+% \iffalse
+%</body|class&doc>
+%<*body>
+% \fi
+%
+% \begin{macro}{\fullref}
+% Verbesserte Referenzierungen auf Seiten.
+% \begin{macrocode}
+\RequirePackage{varioref}[2011/10/02]
+\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}}
+% \end{macrocode}
+% \end{macro}^^A \fullref
% Das Paket \pkg{microtype} wird für den optischen Randausgleich verwendet. Es
% sollte erst nach \pkg{hyperref} geladen werden.
% \begin{macrocode}
@@ -731,92 +927,17 @@
%
% \iffalse
%</body>
-%<*option>
-% \fi
-%
-% \subsection{Optionen für das Ausgabeformat}
-%
-% \begin{option}{final}
-% \begin{option}{print}
-% \begin{macro}{\tudfinalflag}
-% \begin{macro}{\tudprintflag}
-% Diese beiden Optionen dienen zur finalen und/oder der unbunten Ausgabe.
-% \begin{macrocode}
-\TUD@key{final}[true]{%
- \TUD@set@ifkey{final}{@tempswa}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@tempswa%
- \let\tudfinalflag\relax%
- \fi%
- \fi%
-}
-\TUD@key{print}[true]{%
- \TUD@set@ifkey{print}{@tempswa}{#1}%
- \ifx\FamilyKeyState\FamilyKeyStateProcessed%
- \if@tempswa%
- \let\tudprintflag\relax%
- \fi%
- \fi%
-}
-% \end{macrocode}
-% Wurde eine oder beide der Optionen \opt{final} oder \opt{print} gesetzt bzw.
-% vor einem externen \app{pdflatex}-Aufruf die Flags \cs{tudfinalflag} und/oder
-% \cs{tudprintflag} definiert, werden die entsprechenden Einstellungen zur
-% finalen Ausgabe und/oder unbunten Druck vorgenommen und anschließend die
-% entsprechenden Optionen unschädlich gemacht.
-% \begin{macrocode}
-\AtEndPreamble{%
- \ifdef{\tudfinalflag}{%
- \TUDoptions{ToDo=false}%
- \TUD@key{ToDo}{}%
- }{}%
- \ifdef{\tudprintflag}{%
- \ifnum\tud@cd@num>\z@\relax%
- \TUDoptions{cd=true}%
- \fi%
- \TUD@key{cd}{}%
- \ifundef{\hypersetup}{}{\hypersetup{hidelinks}}%
- }{}%
-}
-% \end{macrocode}
-% \end{macro}^^A \tudprintflag
-% \end{macro}^^A \tudfinalflag
-% \end{option}^^A print
-% \end{option}^^A final
-%
-% \iffalse
-%<*class>
-% \fi
-%
-% \subsection{Standardoptionen der Anwenderdokumentation}
-%
-% Es werden einige Optionen für das Handbuch standardmäßig aktiviert. Dazu
-% werden diese an die entsprechende Elternklasse übergeben.
-% \begin{macrocode}
-\PassOptionsToClass{%
- cdfoot=true,%
- chapterpage=true,%
- chapterprefix=true,%
- headings=optiontoheadandtoc,%
- captions=tableheading,%
- numbers=noenddot,%
- cd=color,%
-}{\TUD@Class@Parent}
-\PassOptionsToPackage{automark}{scrlayer-scrpage}
-% \end{macrocode}
-%
-% \iffalse
-%</class>
-%</option>
+%<*!doc>
%<*body>
%<*class>
% \fi
%
-% \subsection{Deklarationen für die Klasse}
+% \subsection{Deklarationsumgebungen für die Klasse \cls{tudscrmanual}}
%
-% Die Umgebungen \env{Declaration} und \env{Declaration*} werden beide für die
-% Auszeichnung von Optionen, Umgebungen und Befehlen verwendet, die \TUDScript
-% dem Anwender zur Verfügung stellt.
+% Die Umgebungen beiden \env{Declaration} und \env{Declaration*} sowie
+% \env{Obsolete} und \env{Bundle} werden für die Beschreibung von Optionen,
+% Umgebungen, Befehlen etc. verwendet, welche von \TUDScript dem Anwender zur
+% Verfügung gestellt werden.
%
% \begin{macro}{\if@tud@declare}
% \begin{macro}{\if@openindex}
@@ -1042,7 +1163,7 @@
% Die Sternversion der Umgebung \env{Declaration*} ist für die vereinfachte
% Deklaration von Klassen, Paketen etc. gedacht, bei denen keine Ausgabe
% sondern lediglich Hyperlink, Indexeintrag und Änderungsnotiz erzeugt werden
-% sollen. Hierbei werden die Befehle \cs{tud@declare@special@start} sowie
+% sollen. Hierbei werden die beiden Befehle \cs{tud@declare@special@start} und
% \cs{tud@declare@special@end} genutzt, wobei der Anker des erzeugten Labels
% nicht erhöht sondern auf der aktuellen Grundlinie erzeugt wird.
% \begin{macrocode}
@@ -1055,15 +1176,16 @@
% \end{environment}^^A Declaration*
% \begin{environment}{Bundle*}
% \changes{v2.05}{2015/11/01}{neu}^^A
-% Die Umgebung \env{Bundle*} wird verwendet, wenn ein zusätzliche Paket oder
-% eine weitere Klasse in Ergänzung zu den Hauptklassen dokumentiert wird. Dabei
-% wird die Umgebung \env{Bundle} geöffnet, nachdem das obligatorischen Argument
-% mit dem Befehl \cs{tud@declare@special@start} deklariert wird. Dabei sollte
-% die Umgebung \env{Bundle*} direkt nach einer Gliederungsüberschrift genutzt
-% werden, in welcher das zu deklarierende Element (Klasse, Paket etc.) genannt
-% wird, da der Anker des erzeugten Labels weiter nach oben auf die Höhe der
-% Überschirft verschoben wird. Zum Abschluss der Deklaration wird nach dem
-% Schließen der Umgebung \env{Bundle} \cs{tud@declare@special@end} genutzt.
+% Die Umgebung \env{Bundle*} wird verwendet, wenn ein zusätzliches Paket oder
+% eine weitere Klasse in Ergänzung zu den Hauptklassen dokumentiert wird.
+% Hierfür wird die Umgebung \env{Bundle} erst geöffnet, nachdem mit dem Makro
+% \cs{tud@declare@special@start} das obligatorische Argument~-- sprich die
+% Klasse oder das Paket~-- deklariert wird. Die Umgebung \env{Bundle*} sollte
+% dabei direkt nach einer Gliederungsüberschrift genutzt werden, in welcher das
+% zu deklarierende Element (Klasse, Paket etc.) genannt wird, da der Anker des
+% erzeugten Labels weiter nach oben auf die Höhe der Überschirft verschoben
+% wird. Zum Abschluss der Deklaration wird \cs{tud@declare@special@end} nach
+% dem Schließen der Umgebung \env{Bundle} genutzt.
% \begin{macrocode}
\NewDocumentEnvironment{Bundle*}{om}{%
\tud@declare@special@start[#1]{#2}{3}%
@@ -1231,8 +1353,8 @@
% \end{macro}^^A \printobsoletelist
% \begin{macro}{\printchangedatlist}
% \changes{v2.05}{2015/11/01}{neu}^^A
-% Damit werden Änderungsnotizen der Umgebungen \env{Declaration*} sowie
-% \env{Bundle} und \env{Bundle*} ausgegeben.
+% Damit werden Änderungsnotizen der Umgebungen \env{Declaration*}, \env{Bundle}
+% und \env{Bundle*} ausgegeben.
% \begin{macrocode}
\NewDocumentCommand\printchangedatlist{sO{\z@}}{%
\print@changedatlist{#1}{#2}%
@@ -1271,10 +1393,10 @@
% \end{macro}^^A \suffix
% \begin{macro}{\NewExpandableDocumentCommand}
% \changes{v2.02}{2014/11/04}{neu}^^A
-% Für Labels, Index- und Änderungs sowie PDF-Outline-Einträge etc. müssen ganz
-% bestimmte Markup-Befehle durch eine expandierbare Version ersetzt werden. Der
-% Befehl \cs{NewExpandableDocumentCommand} wird definiert, um dies möglichst
-% einfach zu gestalten.
+% Für Labels, Index- und Änderungs- sowie PDF-Outline-Einträge etc. müssen ganz
+% bestimmte Markup-Befehle durch eine expandierbare Version ersetzt werden. Um
+% dies möglichst einfach zu gestalten, wird \cs{NewExpandableDocumentCommand}
+% definiert.
% \begin{macrocode}
\newcommand*\NewExpandableDocumentCommand[3]{%
\NewDocumentCommand#1{#2}{#3}%
@@ -1816,10 +1938,11 @@
\NewDocumentCommand\tud@attr@get{smm}{%
\begingroup%
% \end{macrocode}
-% Das temporäre Makro \cs{@tempa} definiert zunächst alle Markup-Befehle lokal
-% neu und expandiert beim Aufruf für jeden dieser Markup-Befehle~-- abhängig
-% vom Aufruf von \cs{tud@attr@get} mit oder ohne Stern~-- entweder zum Markup
-% passenden Index oder das entsprechende Labelpräfix in \cs{@tempb}.
+% Das temporäre Makro \cs{@tempa} definiert zunächst alle Markup-Befehle in
+% einer Gruppe neu und expandiert beim Aufruf jedes dieser lokal umdefinierten
+% Markup-Befehle~-- abhängig vom Aufruf von \cs{tud@attr@get} mit oder ohne
+% Stern~-- entweder zum Markup-Befehl passenden Index oder zum entsprechenden
+% Labelpräfix in \cs{@tempb}.
% \begin{macrocode}
\def\@tempa##1##2##3{%
\def##1####1{%
@@ -2018,7 +2141,6 @@
\let\POParameter\@firstofone%
\let\textOR\relax%
\let\hologoRobust\@firstofone%
- \def\TUDScript{TUD-Script}%
\def\_{-}%
\protected\def~{~}%
}%
@@ -2788,7 +2910,7 @@
}
% \end{macrocode}
% Das durch die \TUDScript-Hauptklassen in Ergänzung zum Paket \pkg{textcase}
-% erstellte Makro \cs{tud@x@textcase@uclcnotmath} erlaubt die Definition von
+% erstellte Makro \cs{tud@x@textcase@uclcnotmath} ermöglicht die Definition von
% Makros, welche von \cs{MakeTextUppercase} nicht beachtet werden sollen.
% Das besagte Makro kommt in Überschriften bei den \TUDScript-Klassen zum
% Einsatz, wenn diese in \DIN gesetzt werden. Das hat zu Folge, dass die
@@ -2859,11 +2981,7 @@
% \subsection{Index}
%
% Hier erscheint alles, was für Erstellen und Ausgabe der einzelnen Indexe
-% notwendig ist.
-%
-% \subsubsection{Indexerstellung}
-%
-% Für die Erstellung aller Indexe wird das Paket \pkg{imakeidx} zusammen mit
+% notwendig ist. Hierfür wird das Paket \pkg{imakeidx} in Verbindung mit
% \app{texindy} verwendet. Diese können sowohl mit dem Paket als auch mit der
% Klasse erzeugt werden.
% \ToDo{Patcherei für imakeidx raus, sobald dies geht}[v2.06]
@@ -2952,60 +3070,6 @@
\fi%
% \end{macrocode}
% \end{environment}^^A theindex
-% \begin{macro}{\cleversee}
-% \changes{v2.05}{2015/11/02}{neu}^^A
-% \begin{macro}{\cleverseealso}
-% \changes{v2.05}{2015/11/02}{neu}^^A
-% \begin{macro}{\tud@cleversee}
-% \changes{v2.05}{2015/11/02}{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,
-% so werden diese zuerst ausgegeben, danach folgt der Querverweis mit dem
-% Präfix \cs{seealsoname}. Der Befehl \cs{cleverseealso} verwendet letzteren
-% Präfix in jedem Fall.
-% \begin{macrocode}
-\newrobustcmd*\cleversee{\tud@cleversee{\seename}}
-\newrobustcmd*\cleverseealso{%
- \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}%
- \tud@cleversee{\alsoname}%
-}
-% \end{macrocode}
-% Diese Makro übernimmt die eigentliche Arbeit. Es ist darauf angewiesen, dass
-% die angegebene Seitenzahlen eines Indexeintrages erst \emph{nach} den
-% 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.
-% \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}
-% \end{macro}^^A \tud@cleversee
-% \end{macro}^^A \cleverseealso
-% \end{macro}^^A \cleversee
-% \begin{macro}{\seeref}
-% \changes{v2.05}{2015/11/02}{neu}^^A
-% \begin{macro}{\seeidx}
-% Der Befehl \cs{seeref} kann anstelle von \cs{see} bzw. in der Sternversion
-% statt \cs{alsosee} genutzt werden. Das Makro \cs{seeidx} verweist auf die
-% Seite eines Indexes.
-% \begin{macrocode}
-%<*class>
-\NewDocumentCommand\seeref{sm}{%
- \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2%
-}
-\newcommand*\seeidx[2]{\pageref{idx:#1}}
-%</class>
-% \end{macrocode}
-% \end{macro}^^A \seeidx
-% \end{macro}^^A \seeref
% \begin{macro}{\makexdyindex}
% \changes{v2.05}{2015/11/01}{neu}^^A
% Um die einzelnen Indexe erstellen zu können, wird das Makro \cs{makexdyindex}
@@ -3066,7 +3130,7 @@
% er bei der Ausgabe von Verzeichnissen auf \val{true} gesetzt, um das Setzen
% von Indexeinträgen durch Markup-Befehle in den Verzeichnissen selbst zu
% unterbinden. Weiterhin verhindert der aktivierte Schalter bei der Ausführung
-% von \cs{Process@Markup} das erstellen von erweiterten Querverweisen sowie das
+% von \cs{Process@Markup} das Erstellen von erweiterten Querverweisen sowie das
% Setzen von CTAN-Links bei Paketen (\cs{Package}), was weder in Verzeichnissen
% noch im Index erwünscht ist, weshalb vom Makro \cs{@printindex} ebenfalls
% \cs{@tud@indextrue} gesetzt wird.
@@ -3075,6 +3139,9 @@
\addtoeachtocfile{\protect\@tud@indextrue}
% \end{macrocode}
% \end{macro}^^A \if@tud@index
+%
+% \subsubsection{Formatierung von Indexeinträgen}
+%
% \begin{macro}{\tud@idx@get}
% \changes{v2.05}{2015/11/05}{neu}^^A
% \begin{macro}{\tud@idx@key}
@@ -3094,9 +3161,9 @@
% Markup-Befehlen erstellt und in der \app{texindy}-Stildatei wird für alle
% Auszeichnungsbefehle die passende \val{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 leider
-% durch \app{texindy} zu spät genutzt, weshalb der Ansatz verworfen wurde.
-% (\url{http://sourceforge.net/p/xindy/bugs/22/}).
+% das der Ansatz. Allerdings werden die manuell erstellten RegExp-Regeln durch
+% \hrfn{http://sourceforge.net/p/xindy/bugs/22/}{\app{texindy} nicht korrekt}
+% genutzt werden, weshalb der Ansatz verworfen wurde.
%
% 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
@@ -3163,9 +3230,9 @@
% des Markups deaktiviert und das erste Argument von \cs{Key} ausgeführt. Dies
% führt über \cs{Process@Index} zum rekursiven Aufruf von \cs{tud@idx@get}. Als
% Ergebnis sind im zweiten und dritten Argument~-- sprich in \cs{tud@idx@key}
-% und \cs{tud@idx@fmt}~-- sowohl \meta{Schlüsselwort} als auch \meta{Markup}
-% für den Elterneintrag enthalten. Diese werden in das vierte Argument
-% (\cs{idxentry}) gespeichert.
+% und \cs{tud@idx@fmt}~-- \meta{Markup} und \meta{Schlüsselwort} für den
+% Elterneintrag enthalten. Diese werden in das vierte Argument (\cs{idxentry})
+% gespeichert.
% \begin{macrocode}
\ifin@%
\Markup@Suppress%
@@ -3363,6 +3430,63 @@
% \end{macro}^^A \tud@idx@fmt
% \end{macro}^^A \tud@idx@key
% \end{macro}^^A \tud@idx@get
+% \begin{macro}{\cleversee}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% \begin{macro}{\cleverseealso}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% \begin{macro}{\tud@cleversee}
+% \changes{v2.05}{2015/11/02}{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,
+% so werden diese zuerst ausgegeben, danach folgt der Querverweis mit dem
+% Präfix \cs{seealsoname}. Der Befehl \cs{cleverseealso} verwendet letzteren
+% Präfix in jedem Fall.
+% \begin{macrocode}
+\newrobustcmd*\cleversee{\tud@cleversee{\seename}}
+\newrobustcmd*\cleverseealso{%
+ \ClassWarning{tudscrmanual}{You should use `|see' instead of `|seealso'}%
+ \tud@cleversee{\alsoname}%
+}
+% \end{macrocode}
+% Diese Makro übernimmt die eigentliche Arbeit. Es ist darauf angewiesen, dass
+% die angegebene Seitenzahlen eines Indexeintrages erst \emph{nach} den
+% 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.
+% \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}
+% \end{macro}^^A \tud@cleversee
+% \end{macro}^^A \cleverseealso
+% \end{macro}^^A \cleversee
+% \begin{macro}{\seeref}
+% \changes{v2.05}{2015/11/02}{neu}^^A
+% \begin{macro}{\seeidx}
+% Der Befehl \cs{seeref} kann anstelle von \cs{see} bzw. in der Sternversion
+% statt \cs{alsosee} genutzt werden. Das Makro \cs{seeidx} verweist auf die
+% Seite eines Indexes.
+% \begin{macrocode}
+%<*class>
+\NewDocumentCommand\seeref{sm}{%
+ \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2%
+}
+\newcommand*\seeidx[2]{\pageref{idx:#1}}
+%</class>
+% \end{macrocode}
+% \end{macro}^^A \seeidx
+% \end{macro}^^A \seeref
+%
+% \subsubsection{Erstellen von Indexeinträgen}
+%
% \begin{macro}{\Process@Index}
% \changes{v2.05}{2015/11/15}{neu}^^A
% \begin{macro}{\Process@@Index}
@@ -3712,13 +3836,11 @@
% solchen Liste definiert. Die Änderungsliste ist der Klasse \cls{tudscrmanual}
% vorbehalten.
%
-% Änderungsnotizen lassen sich auf zwei unterschieldichen Wegen generieren.
-% Entweder über die Nutzung des Befehls \cs{ChangedAt} oder über das optionale
-% Argument der Deklarationsumgebungen. Dabei sind diese in beiden Fällen in
-% der Form Versionsnummer gefolgt von der eigentlichen Notiz anzugeben, wobei
-% diese zwingend durch einen Doppelpunkt voneinander zu trennen sind. Die Form
-% der Verwendung lautet: \meta{Versionsnummer}\val{:}\meta{Änderungsnotiz}. Die
-% alleinige Angabe der Versionsnummer ohne Änderungsnotiz ist ebenso möglich.
+% Ä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.
%
% Wird die Änderungsnotiz für ein bestimmtes Element wie eine Option oder ein
% Befehl erstellt, wie es bei den Deklarationsumgebungen implizit oder bei der
@@ -3733,18 +3855,18 @@
% \changes{v2.02}{2014/07/25}{erweitert}^^A
% \changes{v2.02}{2014/10/08}{Sternversion ergänzt}^^A
% Der Schalter \cs{if@tud@changedat} wird im weiteren Verlauf dazu verwendet,
-% das Standard-Verhalten der einzelnen Markup-Befehle kurzeitig zu ändern und
+% das Standardverhalten der einzelnen Markup-Befehle kurzeitig zu ändern und
% anstelle der Makros \cs{Process@Markup} und \cs{Process@Index} den Befehl
% \cs{Process@ChangedAt} auszuführen, mit welchem die Formatierung der Einträge
% der Änderungsliste erfolgt.
% \begin{macrocode}
\newif\if@tud@changedat
% \end{macrocode}
-% Die Formatierung der Änderungseinträge erfolgt dabei wie auch für den Index
-% mit \cs{tud@idx@get}, wobei die Sternversion dabei für die Identifikation als
-% Änderungseintrag fungiert. Aufgerufen wird \cs{Process@ChangedAt} während der
-% Erstellung der Änderungseinträge mit \cs{Changed@At@CreateEntry}. Der Aufruf
-% des Makros erfolgt dabei in der gewohnten Form mit einem obligatorischen
+% Die Formatierung der Änderungseinträge erfolgt~-- wie auch für den Index~--
+% mit dem Makro \cs{tud@idx@get}, wobei die Sternversion für die Identifikation
+% als Änderungseintrag fungiert. Aufgerufen wird \cs{Process@ChangedAt} während
+% der Erstellung der Änderungseinträge mit \cs{Changed@At@CreateEntry}. Der
+% Aufruf des Makros erfolgt dabei in gewohnter Form mit einem obligatorischen
% gefolgt von drei optionalen Argumenten:
% \newline\begingroup\scriptsize
% \cs{Process@ChangedAt}\val{\ignorespaces%
@@ -3922,9 +4044,9 @@
% 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} gespeichert wird,
-% \endgroup
-% wobei der Untereintrag auch leer bleiben kann.
+% \val{!}\meta{Untereintrag}\val{!}\meta{Änderungsnotiz}
+% \endgroup\newline
+% gespeichert wird, wobei der Untereintrag auch leer bleiben kann.
% \begin{macrocode}
\IfValueTF{#1}{%
\toks@{#3!Implementierung }%
@@ -3950,7 +4072,7 @@
% Handelt es sich um einen allgemeinen Änderungseintrag, wird dieser in der Form
% \newline\begingroup\scriptsize
% \meta{Versionsnummer}\val{!Allgemein!}\meta{Änderungsnotiz}%
-% \endgroup
+% \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.
% Wurde dieses~-- wenn auch nur indirekt über eine der beiden Spezialumgebungen
@@ -3987,7 +4109,7 @@
% \end{macro}^^A \Changed@At@@CreateList
% \end{macro}^^A \Changed@At@CreateList
%
-% \subsubsection{Ezeugen der Änderungseinträge}
+% \subsubsection{Erzeugen der Änderungseinträge}
%
% Mit diesen Makros erfolgt das eigentliche Eintragen der Änderungseinträge aus
% der Liste \cs{listqChangedAt} in den entsprechenden Index \val{changelog}.
@@ -4213,7 +4335,7 @@
% \end{macrocode}
% \end{macro}^^A \print@changedatlist
%
-% \subsection{Erläuterungen und weiterführende Ergänzungen im Handbuch}
+% \subsection{Erweiterte Listen für Erläuterungen im Handbuch}
%
% Es folgen einige Umgebungen, mit welchen bestimmte Aspekte oder Pakete im
% Handbuch erläutert werden.
@@ -4225,15 +4347,15 @@
\RequirePackage{enumitem}[2011/09/28]
\setlist{noitemsep}
% \end{macrocode}
+% \begin{macro}{\stditem}
+% \begin{macro}{\tud@before@item}
% Mit den Möglichkeiten des Paketes \pkg{enumitem} werden folgend Listen für
% das Aufführen von möglichen Werten einer Option sowie der Beschreibung von
-% nützlichen Paketen erstellt. Für beide Lsiten soll dabei die originale
+% nützlichen Paketen erstellt. Für beide Listen soll dabei die originale
% Definition von \cs{item} in \cs{stditem} gesichert und anschließend angepasst
% werden. Die Sicherung und Redefinition von \cs{item} erfolgt dabei über das
% Makro \cs{tud@before@item} über einen bereitgestellten \emph{hook} zu Beginn
% der jeweiligen Liste.
-% \begin{macro}{\stditem}
-% \begin{macro}{\tud@before@item}
% \begin{macrocode}
\newcommand*\stditem{}
\newcommand*\tud@before@item[1]{%
@@ -4250,6 +4372,9 @@
% \end{macrocode}
% \end{macro}^^A \tud@before@item
% \end{macro}^^A \stditem
+%
+% \subsubsection{Listen für gültige Werte von Optionen}
+%
% \begin{environment}{values}
% \begin{environment}{@values}
% \begin{macro}{\tud@values}
@@ -4399,6 +4524,9 @@
% \end{macro}^^A \itemfalse
% \end{macro}^^A \itemtrue
% \end{macro}^^A \tud@item@bool
+%
+% \subsubsection{Listen für die Beschreibung von Paketen}
+%
% \begin{environment}{packages}
% \begin{macro}{\tud@item@packages}
% \changes{v2.02}{2014/10/09}{optionales Argument für CTAN-Link}^^A
@@ -4454,6 +4582,10 @@
% \end{macrocode}
% \end{macro}^^A \tud@item@packages
% \end{environment}^^A packages
+%
+% \subsection{Erläuterungen und weiterführende Ergänzungen im Handbuch}
+% \subsubsection{Tabelle mit automatisch berechneter Mehrspaltenzellenbreite}
+%
% \begin{environment}{tabularm}
% \begin{macro}{\tabularm@allcolumnpar}
% \begin{macro}{\tabularm@box}
@@ -4492,6 +4624,9 @@
% \end{macro}^^A \tabularm@num
% \end{macro}^^A \tabularm@allcolumnpar
% \end{environment}^^A tabularm
+%
+% \subsubsection{Tabelle für mehrsprachigen Bezeichner}
+%
% Mit Hilfe von \pkg{tabularx} können Tabellen bestimmter Breite und
% automatisch berechneten Spaltenbreiten gesetzt werden.
% \begin{macrocode}
@@ -4540,6 +4675,9 @@
% \end{macro}^^A \Term@@Table
% \end{macro}^^A \Term@Table
% \end{macro}^^A \TermTable
+%
+% \subsubsection{Umgebung für die Angabe eines Beispiels}
+%
% \begin{environment}{Example}
% \begin{environment}{Example*}
% Diese Umgebung wird für die exemplarische Erläuterung von bestimmten Aspekten
@@ -4704,7 +4842,7 @@
\hyperref{tutorials/#1.pdf}{#1}{tutorials:#1}{\File*{#1.pdf}#2}%
}
\NewDocumentCommand\Tutorial{smd||}{%
- \ifnum\pdfshellescape=\@ne\relax%
+ \ifnum\pdf@shellescape=\@ne\relax%
% \end{macrocode}
% Um mit den verschachtelten Aufrufen von \app{pdflatex} umgehen zu können,
% wird das ganze Prozedere in ein Skript ausgelagert. Somit können die Aufrufe
@@ -4778,7 +4916,7 @@
% Die Beispiele werden nur erneut kompiliert, wenn sich diese geändert haben
% oder noch gar kein entsprechendes PDF"~Dokument existiert.
% \begin{macrocode}
- \ifnum\pdfshellescape=\@ne\relax%
+ \ifnum\pdf@shellescape=\@ne\relax%
\filemodCmp{examples/#1.pdf}{examples/#1.tex}{}{%
\immediate\write18{%
pdflatex -output-directory examples examples/#1.tex^^J%
@@ -4788,8 +4926,8 @@
\fi%
% \end{macrocode}
% Ist die gesuchte Datei vorhanden, wird diese auch eingebunden. Andernfalls
-% wird eine Warnung mit dem Hinweis auf die notwendige Verwednung von
-% \val{pdflatex} mit der Option \opt{--shell-escape} erzeugt.
+% wird eine Warnung mit dem Hinweis auf die notwendige Verwendung von
+% \app{pdflatex} mit der Option \opt{--shell-escape} erzeugt.
% \begin{macrocode}
\IfFileExists{examples/#1.pdf}{%
\includepdf[%
@@ -4829,7 +4967,7 @@
\edef\tud@tut@temp{\@currname-temp}
\newcommand*\tud@tut@readtostream[2]{%
\begingroup%
- \endlinechar=-1\relax%
+ \endlinechar=\m@ne\relax%
\openin\tud@read=#1%
% \end{macrocode}
% Der Schalter \cs{if@tempswa} wird verwendet, um unnötige Leerzeilen in der
@@ -4865,12 +5003,13 @@
}
% \end{macrocode}
% Der innerhalb der Umgebungen \env{Preamble} und \env{Trunk}~-- sowie deren
-% Derivaten~-- angegeben Inhalt wird beim Beenden dieser in die Hilfsdatei
-% \cs{tud@tut@temp.tex} zwischengespeichert. Mit dem Befehl \cs{tud@tut@append}
-% wird der Inhalt dieser Datei ausgelesen und den zusätzlichen Hilfsdateien
-% \cs{tud@tut@temp-preamble.tex} beziehungsweise \cs{tud@tut@temp-trunk.tex}
-% angehangen und damit gesichert, um Quelltextauszüge aus dem Tutorial für die
-% Präambel sowie den Dokumentteil trennen beziehungsweise sortieren zu können.
+% Derivaten~-- angegebene Inhalt wird beim Schließen dieser Umgebungen in die
+% Hilfsdatei \cs{tud@tut@temp.tex} zwischengespeichert. Mit dem Befehl
+% \cs{tud@tut@append} wird der Inhalt dieser Datei ausgelesen und den
+% zusätzlichen Hilfsdateien \cs{tud@tut@temp-preamble.tex} beziehungsweise
+% \cs{tud@tut@temp-trunk.tex} angehangen und damit gesichert, um die jeweiligen
+% Quelltextauszüge aus dem Tutorial für die Präambel sowie den Dokumentteil
+% trennen beziehungsweise sortieren zu können.
% \begin{macrocode}
\newcommand*\tud@tut@append[1]{%
\ifstr{#1}{preamble}{%
@@ -4892,21 +5031,28 @@
% \begin{macro}{\FinishTutorial}
% \changes{v2.02}{2014/08/21}{neu}^^A
% Mit \cs{StartTutorial} wird ein Hyperlink für den Querverweis aus dem
-% Handbuch definiert. Außerdem wird gleich der Titel und ein einleitender Satz
-% gesetzt.
+% Handbuch definiert. Außerdem wird gleich der Titel und~-- falls im optionalen
+% Argument angegeben~-- eine Zusammenfassung gesetzt. Die Sternversion gibt
+% nach der optionalen Beschreibung einen einleitenden Satz zur Dokumnentklasse
+% und sinnvollen Paketen an. Diese sollten direkt nach \cs{StartTutorial} in
+% der \env{Preamble}-Umgebung angegeben werden.
% \begin{macrocode}
\TUDoptions{headingsvskip=-10ex}
-\newcommand\StartTutorial[1][%
- Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse
- als auch die f\"ur jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach
- sinnvollen Pakete geladen.%
-]{%
- \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}%
- \faculty{}%
- \maketitle\noindent#1%
+\newcommand\StartTutorial[1][]{%
\immediate\openout\tud@write@a=\tud@tut@temp-preamble.tex\relax%
\immediate\openout\tud@write@b=\tud@tut@temp-trunk.tex\relax%
- \immediate\write\tud@write@b{^^J\string\begin{document}^^J}
+ \immediate\write\tud@write@b{^^J\string\begin{document}^^J}%
+ \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}%
+ \faculty{}%
+ \maketitle%
+ \ifblank{#1}{}{%
+ \noindent%
+ \begin{abstract}%
+ \noindent#1%
+ \end{abstract}%
+ \medskip%
+ }%
+ \noindent\ignorespaces%
}
% \end{macrocode}
% Der Befehl \cs{FinishTutorial} schleißt den noch offenen Ausgabestream und
@@ -4941,7 +5087,7 @@
% Falls es möglich ist, werden nach dem Durchlauf alle nicht mehr benötigten
% Hilfsdateien gelöscht.
% \begin{macrocode}
- \ifnum\pdfshellescape=\@ne\relax%
+ \ifnum\pdf@shellescape=\@ne\relax%
\ifwindows%
\def\@tempa{del}%
\else%
@@ -4965,7 +5111,11 @@
% \begin{macrocode}
\newcommand\Code@Preamble{}
\let\Code@Preamble\relax
-\newcommand\CodePreamble[1]{\long\gdef\Code@Preamble{#1}}
+\newcommand\CodePreamble[1]{%
+ \long\gdef\Code@Preamble{%
+ \hskip.5\leftmargin\textit{Die resultierende Ausgabe:}\space#1%
+ }%
+}
\newcommand*\Code@Hook{}
\let\Code@Hook\relax
\newcommand*\CodeHook[1]{\gdef\Code@Hook{#1}}
@@ -4992,7 +5142,7 @@
% \changes{v2.02}{2014/08/19}{neu}^^A
% \begin{macro}{\tud@tut@post}
% \changes{v2.02}{2014/08/19}{neu}^^A
-% Dies sind die Hilfsmakros, welche zu Beginn und Ende der Quelltextumgebungen
+% Dies sind Hilfsmakros, welche zu Beginn und Ende der Quelltextumgebungen
% \env{Preamble}, \env{Trunk} und \env{Hint} für das Sichern der Inhalte in
% eine Hilfsdatei verantwortlich sind, wofür die \env{filecontents}-Umgebung
% genutzt wird.
@@ -5008,25 +5158,25 @@
% \end{macrocode}
% \end{macro}^^A \tud@tut@post
% \end{macro}^^A \tud@tut@pre
-% Die nachfolgenden Umgebungen nutzen die beiden Hilfsmakros \cs{tud@tut@pre}
-% und \cs{tud@tut@post}, welche den gegebenen Inhalt in die temporäre Datei
-% \file{\string\tud@tut@temp.tex} schreiben. Mit \cs{tud@tut@append} werden
-% zusätzlich~-- abhängig vom gegebenen Argument~-- die im Dokument gesetzten
-% Quelltextauszüge der Datei \file{\string\tud@tut@temp-preamble.tex} oder
-% \file{\string\tud@tut@temp-trunk.tex} hinzugefügt. Damit werden die
-% gewünschten Inhalte für ein Copy"~\&"~Paste"~Beispiel gesammelt und mit
-% \cs{FinishTutorial} ausgegeben.
+% Die nachfolgenden Umgebungen verwenden die beiden, gerade zuvor eingeführten
+% Hilfsmakros \cs{tud@tut@pre} und \cs{tud@tut@post}, welche den gegebenen
+% Inhalt in die temporäre Datei \file{\string\tud@tut@temp.tex} schreiben. Die
+% im Dokument in den Umgebungen gesetzten Quelltextauszüge werden mit dem Makro
+% \cs{tud@tut@append}~-- abhängig vom gegebenen Argument~-- zusätzlich für ein
+% Copy"~\&"~Paste"~Beispiel in \file{\string\tud@tut@temp-preamble.tex} oder
+% \file{\string\tud@tut@temp-trunk.tex} gepsiechert. Die damit gesammelten
+% Inhalte werden am Ende mit \cs{FinishTutorial} ausgegeben.
% \begin{environment}{Preamble}
% \changes{v2.02}{2014/11/02}{neu}^^A
% \begin{environment}{Preamble*}
% \changes{v2.02}{2014/11/03}{neu}^^A
% \begin{environment}{Preamble+}
% \changes{v2.02}{2014/11/03}{neu}^^A
-% Die Umgebung \env{Preamble} dient für die Ausgabe von Quelltexten, welche in
-% einem \LaTeXe-Dokument in der Präambel verwendet werden müssen oder sollten.
-% Die in ihr gesetzten Inhalte werden für das Copy"~\&"~Paste-Beispiel vor den
-% Inhalten aus der Umgebung \env{Trunk} ausgegeben. Die Sternversion führt
-% den Inhalt zusätzlich im Dokument aus. Die Pluszechen"=Version fügt dem
+% Die Umgebung \env{Preamble} dient für die Ausgabe von Quelltextauszügenen,
+% welche in einem \LaTeXe-Dokument in der Präambel verwendet werden müssen oder
+% sollten. Die in ihr gesetzten Inhalte werden für das Copy"~\&"~Paste-Beispiel
+% vor den Inhalten aus der Umgebung \env{Trunk} ausgegeben. Die Sternversion
+% führt den Inhalt zusätzlich im Dokument aus. Die Pluszechen"=Version fügt dem
% Ausgabestream ihren Inhalt hinzu, ohne das dieser ausgegeben oder ausgeführt
% wird.
% \begin{macrocode}
@@ -5134,7 +5284,7 @@
% \changes{v2.02}{2014/10/13}{neu}^^A
% \begin{environment}{Hint?}
% \changes{v2.02}{2014/12/09}{neu}^^A
-% \begin{environment}{Hint{!}}
+% \begin{environment}{Hint!}
% \changes{v2.02}{2014/11/13}{neu}^^A
% Um Quelltextausschnitte zur weiterführenden Information anzugeben, wird die
% Umgebung \env{Hint} definiert. Der Inhalt wird ausgegben und~-- falls die
@@ -5264,9 +5414,9 @@
% \end{macro}^^A \InputCode
% \begin{macro}{\tud@tut@pdf}
% \changes{v2.02}{2014/10/22}{neu}^^A
-% Die Umgebungen \env{Trunk!} und \env{hint!} verwenden nach der Ausgabe des
+% Die Umgebungen \env{Trunk!} und \env{Hint!} verwenden nach der Ausgabe des
% Quelltextes diesen abermals, um daraus eine PDF-Datei zu erzeugen. Dafür wird
-% mithilfe einer \env{filecontents}-Umgebung eine temporäre \LaTeX-Datei
+% eine temporäre \LaTeX-Datei mithilfe einer \env{filecontents}-Umgebung
% erzeugt. Diese bindet die mit \env{Trunk!} erzeugte Datei ein und wird
% anschließend via \cs{write18} kompiliert. Dabei sollte man sich nicht von der
% doppelten Verwendung von \cs{jobname} verwirren lassen. Der Dateiname der
@@ -5308,7 +5458,7 @@
% der erzeugten Datei angepasst werden kann.
% \begin{macrocode}
\newcommand*\tud@tut@pdf{%
- \ifnum\pdfshellescape=\@ne\relax%
+ \ifnum\pdf@shellescape=\@ne\relax%
\filemodCmp{\jobname-standalone-\StandaloneFile.pdf}{\jobname.tex}{}{%
\begingroup%
\let\printdate\@firstofone%
@@ -5391,7 +5541,7 @@
% \begin{macrocode}
%<*package>
\AfterPackage*{pstricks}{%
- \ifnum\pdfshellescape=\@ne\relax%
+ \ifnum\pdf@shellescape=\@ne\relax%
\filemodCmp{\jobname-pics.pdf}{\jobname.tex}{%
\PassOptionsToPackage{off}{auto-pst-pdf}%
}{}%
@@ -5403,7 +5553,7 @@
% Nach dem Paket \pkg{auto-pst-pdf} seine Arbeit verrichtet hat, werden alle
% etwaigen temporär erzeugten Dateien radikal gelöscht.
% \begin{macrocode}
- \ifnum\pdfshellescape=\@ne\relax%
+ \ifnum\pdf@shellescape=\@ne\relax%
\edef\@tempa{\app@exe{\app@rm "*\app@suffix*"}}%
\@tempa%
\fi%
@@ -5654,12 +5804,30 @@
% \end{macro}^^A \tud@todo@type@color
% \end{macro}^^A \ToDo
%
-% \section{Verschiedenes für die Dokumentationsklassen und -pakete}
+% \iffalse
+%</body>
+%</!doc>
+% \fi
+%
+% \subsection{Verschiedenes für die Dokumentationsklassen und -pakete}
%
% Sowohl für die Klasse \cls{tudscrmanual} als auch \cls{tudscrdoc} werden ein
-% paar Befehle zur komfortablen verwendung im Fließtext definiert. Außerdem
+% paar Befehle zur komfortablen Verwendung im Fließtext definiert. Außerdem
% erfolgen mittels einiger Pakete verschiedene Formateinstellungen.
%
+% \subsubsection{Ergänzend geladene Pakete}
+%
+% Sprachabhängiges Setzen von Anführungszeichen. Das Laden des Paketes darf
+% erst nach \pkg{inputenc} erfolgen.
+% \begin{macrocode}
+%<body|class&doc>\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
+%<body>\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
+% \end{macrocode}
+%
+% \iffalse
+%<*body>
+% \fi
+%
% Für den Fließtext werden Pfeile u.\,ä. durch \pkg{textcomp} bereitgestellt.
% \begin{macrocode}
\RequirePackage{textcomp}[2005/09/27]
@@ -5669,12 +5837,6 @@
\RequirePackage{setspace}[2011/12/19]
\setstretch{1.1}
% \end{macrocode}
-% Sprachabhängiges Setzen von Anführungszeichen. Das Laden des Paketes darf
-% erst nach \pkg{inputenc} erfolgen.
-% \begin{macrocode}
-\AfterPackage*{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
-\TUD@UnwindPackage{inputenc}{\RequirePackage{csquotes}[2011/10/22]}
-% \end{macrocode}
% Verbesserte Zitate.
% \begin{macrocode}
\PassOptionsToPackage{vskip=\smallskipamount}{quoting}
@@ -5743,10 +5905,84 @@
% \iffalse
%</class>
%</body>
-%</!doc>
+%<*body|class&doc>
+% \fi
+%
+% \subsubsection{Gezieltes Ersetzen von Inhalten in Strings}
+%
+% \begin{macro}{\tud@replace}
+% \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.
+% \begin{macrocode}
+\newcommand*\tud@replace[3]{%
+ \begingroup%
+% \end{macrocode}
+% Zunächst wird \cs{@tempa} als ein durch \cs{@nil} abgegrenztes Makro mit
+% zwei Argumenten definiert, wobei diese durch das im zweiten Argument gegebene
+% \meta{Zeichen} voneinander abgegrenzt werden. Mit diese beiden Argumente wird
+% das Makro \cs{@tempb} aufgerufen.
+% \begin{macrocode}
+ \toks@{\def\@tempa##1}%
+ \eaddto@hook\toks@{\detokenize{#2}}%
+ \addto@hook\toks@{##2\@nil{\@tempb{##1}{##2}}}%
+% \end{macrocode}
+% Der Inhalt von \cs{toks@} ist
+% \cs{def}\cs{@tempa\#1\meta{Zeichen}\#2}\cs{@nil\{\cs{@tempb\{\#1\}\{\#2\}}\}}
+% und definiert \cs{@tempa}.
+% \begin{macrocode}
+ \the\toks@%
+% \end{macrocode}
+% Nun wird \cs{@tempb} definiert. Dieses Makro fügt dem Zielmakro das erste
+% Argumente gefolgt von \meta{Ersatzzeichen} hinzu. Mit dem zweiten Argument
+% wird anschließend \cs{@tempa\#\#2}\cs{@nil} so lange rekursiv aufgerufen, bis
+% es wirklich leer ist, wodurch das zweite Argument \meta{Zeichen} sukzessive
+% durch das dritte Argument \meta{Ersatzzeichen} ersetzt wird.
+% \begin{macrocode}
+ \def\@tempb##1##2{%
+ \IfArgIsEmpty{##2}{%
+ \appto#1{##1}%
+ \let\@tempc\relax%
+ }{%
+ \appto#1{##1#3}%
+ \def\@tempc{\@tempa##2\@nil}%
+ }%
+ \@tempc%
+ }%
+% \end{macrocode}
+% Nachdem die beiden notwendigen Makros definiert wurden, erfolgt jetzt die
+% eigentliche Ersetzung. Dafür wird der Inhalt des Zielmakros als Argument für
+% \cs{@tempa} verwendet. Diesem wird das zu ersetzende Zeichen gefolgt von
+% \cs{@nil} hinzugefügt, um das Argument abschließend zu begrenzen.
+% \begin{macrocode}
+ \toks@{\@tempa}%
+ \edef\@tempc{\expandafter\detokenize\expandafter{#1}}%
+ \eaddto@hook\toks@{\@tempc}%
+ \eaddto@hook\toks@{\detokenize{#2}\@nil}%
+% \end{macrocode}
+% Der Inhalt von \cs{toks@} hat die Form \cs{@tempa\#1\meta{Zeichen}}\cs{@nil},
+% wobei der Inhalt von \meta{\#1} expandiert wird.
+% \begin{macrocode}
+ \def#1{}%
+ \the\toks@%
+ \edef\tud@reserved{%
+ \noexpand\endgroup%
+ \def\noexpand#1{#1}%
+ }%
+ \tud@reserved%
+}
+% \end{macrocode}
+% \end{macro}^^A \tud@replace
+%
+% \iffalse
+%</body|class&doc>
%<*body>
% \fi
%
+%
+% \subsubsection{Zusätzliche Markup-Befehle}
+%
% \begin{macro}{\Attention}
% \changes{v2.02}{2014/08/16}{neu}^^A
% \begin{macro}{\Forum}
@@ -5754,6 +5990,8 @@
% \changes{v2.05}{2015/11/22}{neu}^^A
% \begin{macro}{\GitHubRepo}
% \changes{v2.02}{2014/08/16}{neu}^^A
+% \begin{macro}{\Download}
+% \changes{v2.05g}{2016/11/08}{neu}^^A
% \begin{macro}{\notudscrartcl}
% \begin{macro}{\scrguide}
% \changes{v2.02}{2014/09/04}{neu}^^A
@@ -5789,6 +6027,9 @@
\addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}%
\the\toks@\xspace%
}
+\newcommand*\Download[1]{%
+ https://github.com/tud-cd/tudscr/releases/download/#1%
+}
\newcommand*\notudscrartcl{%
F\"ur die Klassen \Class{tudscrartcl} sowie \Class{tudscrposter} ist diese
Option nicht verf\"ugbar.%
@@ -5805,6 +6046,7 @@
% \end{macrocode}
% \end{macro}^^A \scrguide
% \end{macro}^^A \notudscrartcl
+% \end{macro}^^A \Download
% \end{macro}^^A \GitHubRepo
% \end{macro}^^A \CTAN
% \end{macro}^^A \Forum
@@ -5812,7 +6054,7 @@
%
% \iffalse
%</body>
-%<*body|doc>
+%<*body|class&doc>
% \fi
%
% \begin{macro}{\CD}
@@ -5834,14 +6076,19 @@
\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace}
\newcommand*\TUDCD{\CD der \TnUD}
\newcommand*\TUDCDs{\CDs der \TnUD}
-%<doc>\AtBeginDocument{%
\newrobustcmd*\DDC{%
\mbox{%
D\kern.05em R\kern.05em E\kern.05em S\kern.05em %
D\kern.05em E\kern.05em N\kern.1em-\kern.1em concept%
}\xspace%
}
-%<doc>}
+\AfterPackage*{hyperref}{%
+ \pdfstringdefDisableCommands{%
+ \def\DDC{DRESDEN-concept}%
+ \def\TUDScript{TUD-Script}%
+ \def\KOMAScript{KOMA-Script}%
+ }%
+}
% \end{macrocode}
% \end{macro}^^A \DDC
% \end{macro}^^A \TUDCDs
@@ -5861,7 +6108,7 @@
% \end{macro}^^A \Univers
%
% \iffalse
-%</body|doc>
+%</body|class&doc>
%<*body>
% \fi
%