diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-manual.dtx | 949 |
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 % |