% \CheckSum{1206} % \iffalse meta-comment % ====================================================================== % % Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen % % ====================================================================== % This work may be distributed and/or modified under the conditions of % the LaTeX Project Public License, version 1.3c of the license. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later and of this work. % This work has the LPPL maintenance status "author-maintained". % The current maintainer and author of this work is Falk Hanisch. % ---------------------------------------------------------------------- % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3c ist Teil aller Verteilungen von LaTeX % Version 2005/12/01 oder spaeter und dieses Werks. % Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" % (allein durch den Autor verwaltet). % Der aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. % ====================================================================== % \fi % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \iffalse %%% From File: tudscr-manual.dtx %<*driver> % \fi \ProvidesFile{tudscr-manual.dtx}% [2014/04/24 v1.00 TUD-KOMA-Script (manual)] % \iffalse \documentclass{tudscrdoc} \KOMAoptions{parskip=half-} \CodelineIndex \RecordChanges \GetFileInfo{tudscr-manual.dtx} \begin{document} \maketitle \DocInput{\filename} \end{document} % % \fi % % \selectlanguage{ngerman} % % \section{Klasse für das \TUDScript-Handbuch} % % Diese Klasse wird für das Benutzerhanduch des \TUDScript-Bundles verwendet. % % \StopEventually{\PrintIndex\PrintChanges} % % \subsection{Identifizierung der Klasse \cls{tudscrman}} % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{tudscrman}[\TUDVersion\space{}internal manual class]% % \end{macrocode} % % \subsection{Die Klasse \pkg{tudscrman}} % % Basis für das Handbuch ist die Klasse \cls{tudscrreprt}. An diese werden alle % Klassenoptionen weitergereicht. % % \begin{macrocode} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{tudscrreprt}} \ProcessOptions\relax \LoadClass{tudscrreprt} % \end{macrocode} % \begin{length}{\baselineskipglue} % Diese Länge wird in der Dokumentation für alle möglichen stauch- und dehnbaren % Einfügen genutzt. % \begin{macrocode} \newlength\baselineskipglue \setlength\baselineskipglue{% .5\baselineskip plus .5\baselineskip minus .25\baselineskip% } % \end{macrocode} % \end{length}^^A \baselineskipglue % Des Weiteren werden einige Pakete geladen. Dabei wird \pkg{microtype} für den % optischen Randausgleich verwendet, \pkg{textcomp} stellt Pfeile u.\,ä. im % Fließtext zur Verfügung, mit \pkg{tabularx} können Tabellen bestimmter Breite % und automatisch berechneten Spaltenbreiten gesetzt werden. Mit \pkg{ragged2e} % wird~-- falls benötigt~-- im Flattersatz die Silbentrennung aktiviert. Das % Paket \pkg{marginnote} wird für die Auszeichnung von Änderungen und % ToDo-Notizen am Seitenrand verwendet. Außerdem wird das Paket \pkg{xparse} % geladen. Dieses erlaubt eine sehr freie Deklaration von Makros mit (fast) % beliebig arangierbaren optionalen Argumenten. % \begin{macrocode} \RequirePackage{microtype} \RequirePackage{textcomp} \RequirePackage{tabularx} \RequirePackage{ragged2e} \RequirePackage{marginnote} \RequirePackage{xparse} % \end{macrocode} % Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt. % \begin{macrocode} \RequirePackage{chngcntr} \counterwithout{footnote}{chapter} % \end{macrocode} % Das Paket erlaubt das Beeinflussen der Standardlisten und die Ableitung neuer % Listen aus diesen. Hier werden die Zwischenräume innerhalb der Listen entfernt. % \begin{macrocode} \RequirePackage{enumitem} \setlist{noitemsep} % \end{macrocode} % \begin{environment}{values} % \begin{macro}{\before@values} % \begin{macro}{\item@values} % \begin{macro}{\itemtrue} % \begin{macro}{\itemfalse} % \begin{macro}{\tud@item@val} % \begin{macro}{\tud@item@add} % \begin{macro}{\tud@item@format} % \begin{macro}{\tud@item} % \begin{macro}{\tud@@item} % \begin{macro}{\tud@@@item} % Die Liste \env{values} dient zum Benennen der möglichen Werte für einen % bestimmten Schlüssel. Im Handbuch kommt diese Liste vorallem bei Optionen aber % auch bei bestimmten Befehls- und Optionsparametern zum Einsatz. % \begin{macrocode} \newlist{values}{description}{1} \setlist[values]{% topsep=.5\baselineskipglue,labelwidth=\columnwidth,labelsep=0pt, font=\normalfont\ttfamily,before*=\before@values% } % \end{macrocode} % Zu Beginn der Umgebung wird die Definition des \cs{item}-Befehls gesichert und % anschließend geändert. % \begin{macrocode} \newcommand*\before@values{% \let\item@values\item% \let\item\tud@item% %% \par\RaggedRight% } % \end{macrocode} % Die folgenden beiden Befehle enthalten die Standardwerte für boolsche Schalter. % \begin{macrocode} \newcommand*\itemfalse{\def\tud@item@val{false/off/no}\item} \newcommand*\itemtrue{\def\tud@item@val{true/on/yes}\item} % \end{macrocode} % Mit der neuen Definition kann der Säumniswert mit \cs{item*} explizit in der % Liste hervorgehoben werden. % \begin{macrocode} \newcommand*\item@values{} \newcommand*\tud@item@val{} \newcommand*\tud@item@add{} \newcommand*\tud@item@format{} \newcommand*\tud@item{% \@ifstar{% \def\tud@item@add{(Säumniswert)}% \let\tud@item@format\emph% \tud@@item% }{% \let\tud@item@add\relax% \let\tud@item@format\relax% \tud@@item% }% } % \end{macrocode} % In der zweiten Instanz wird das optionale Argument von \cs{item} ausgewertet. % Dabei wird das Hilfsmakro \cs{tud@item@val} beachtet, welches evtl. mit den % Befehlen \cs{itemtrue} oder \cs{itemfalse} gesetzt wurde und vor dem % optionalen Argument aufgeführt wird. % \begin{macrocode} \newcommand*\tud@@item[1][]{% \ifstrempty{#1}% {\edef\@tempa{\tud@item@val}}% {\ifstr{\tud@item@val}{}% {\edef\@tempa{#1}}% {\edef\@tempa{\tud@item@val/#1}}% }% \def\tud@item@val{}% % \end{macrocode} % Wurde weder \cs{tud@item@val} gesetzt noch ein Wert im optionalen Argument von % \cs{item} angegeben, so wird der gesicherte Befehl ausgeführt. Ansonsten folgt % die dritte Instanz. % \begin{macrocode} \ifstr{\@tempa}{}{\item@values}{\tud@@@item}% } % \end{macrocode} % Der gesicherte Befehl wird mit den aufbereiteten Formatierungen genutzt. % \begin{macrocode} \newcommand*\tud@@@item[1][]{% \ifstrempty{#1}{}{% \ifx\tud@item@add\relax% \def\tud@item@add{#1}% \else% \apptocmd{\tud@item@add}{~#1}{}{} \fi% }% \item@values[% \tud@item@format{\@tempa:}% \ifx\tud@item@add\relax\else\textuln{\space\footnotesize\tud@item@add}\fi% ] } % \end{macrocode} % \end{macro}^^A \tud@@@item % \end{macro}^^A \tud@@item % \end{macro}^^A \tud@item % \end{macro}^^A \tud@item@format % \end{macro}^^A \tud@item@add % \end{macro}^^A \tud@item@val % \end{macro}^^A \itemfalse % \end{macro}^^A \itemtrue % \end{macro}^^A \item@values % \end{macro}^^A \before@values % \end{environment}^^A values % \begin{environment}{packages} % \begin{macro}{\item@packages} % \begin{macro}{\tud@item@pkg} % \begin{macro}{\before@packages} % Ähnlich wie für die Auflistung von Werten eines Schlüssels wird auch mit der % Charakterisierung von Paketen verfahren. Diese werden in der Auflistung % speziell gekennzeichnet und mit \cs{DeclarePackage} im Index eingetragen. % \begin{macrocode} \newlist{packages}{description}{2} \setlist[packages]{% topsep=\medskipamount,labelwidth=\linewidth,labelsep=0pt,font=\normalfont,% parsep=\parskip,listparindent=\parindent,before=\before@packages% } \newcommand*\item@packages{} \newcommand*\before@packages{% \ifdefvoid{\item@packages}{% \let\item@packages\item% \let\item\tud@item@pkg% }{}% %% \par\RaggedRight% } \newcommand*\tud@item@pkg[1][]{% \item@packages[{\DeclarePackage{#1}\texturn{#1}}]% } % \end{macrocode} % \end{macro}^^A \before@packages % \end{macro}^^A \tud@item@pkg % \end{macro}^^A \item@packages % \end{environment}^^A packages % \begin{macro}{\includeexample} % Mit diesem Befehl wird eine \hologo{TeX}-Datei ggf. übersetzt und anschließend % als PDF"~Datei wieder eingebunden. % \begin{macrocode} \RequirePackage{filemod} \RequirePackage{pdfpages} \newcommand*{\includeexample}[1]{% \lstinputlisting[style=tudscr]{examples/#1.tex} \filemodCmp{./examples/#1.pdf}{./examples/#1.tex}{}{% \immediate\write18{% pdflatex -output-director examples examples/#1.tex pdflatex -output-director examples examples/#1.tex }% }% \IfFileExists{examples/#1.pdf}{\includepdf[pages=-]{examples/#1.pdf}}{}% } % \end{macrocode} % \end{macro}^^A \includeexample % \begin{macro}{\Email} % \begin{macro}{\printflag} % Für die Erstellung des Indexes wird das Paket \pkg{imakeidx} zusammen mit % \textbf{xindy} verwendet. Zusätzlich werden \pkg{varioref} und \pkg{hyperref} % geladen. Damit wird der Befehl \cs{Email} als Link definiert. Außerdem wird % geprüft, ob durch einen externen \hologo{pdfLaTeX}-Aufruf das Flag % \cs{printflag} definiert wurde. In diesem Fall werden Optionen für den % unbunten Druck aktiviert. % \begin{macrocode} \AtEndPreamble{% \RequirePackage[xindy,splitindex]{imakeidx}% \indexsetup{% level=\addsec,toclevel=section,noclearpage,% firstpagestyle=myheadings,%headers={\indexname}{\indexname}% }% \newcommand*\xdyopt{-M tudscrman.xdy -L german-din}% \RequirePackage{varioref}% \RequirePackage[hyperindex=false,colorlinks,linkcolor=blue]{hyperref}% \newcommand*\Email[1]{\href{mailto:#1}{\nolinkurl{#1}}} \pdfstringdefDisableCommands{% \let\Application\@Application% \let\Class\@Class% \let\Package\@Package% }% \ifdef{\printflag}{\hypersetup{hidelinks}}{\TUDoptions{color}}% \makeindex[title={Allgemeiner Index},options=\xdyopt]% \makeindex[title={Klassen- und Paketoptionen},name=options,options=\xdyopt]% \makeindex[title={Umgebungen und Befehle},name=macros,options=\xdyopt]% \makeindex[title={Umgebungs- und Befehlsparameter},name=keys,options=\xdyopt]% \makeindex[title={Sprachabh\"angige Bezeichner},name=terms,options=\xdyopt]% %% \makeindex[title={Schriftelemente},name=fonts,options=\xdyopt]% \makeindex[title={Farben},name=colors,options=\xdyopt]% \makeindex[title={Klassen, Pakete und Dateien},name=files,options=\xdyopt]% %% \makeindex[title={\"Anderungsliste},name=changelog,options=\xdyopt]% } % \end{macrocode} % \end{macro}^^A \printflag % \end{macro}^^A \Email % \begin{macro}{\PrintIndex} % \begin{macro}{\Index} % \begin{macro}{\@printindex} % Der Befehl \cs{PrintIndex} ist die Zusammenfassung für die Ausgabe aller % Indexe. Mit \cs{Index} werden im Allgemeinen Index Querverweise auf die % Spezialindexe gesetzt. Der Befehl \cs{@printindex} setzt vor jedem Unterindex % ein referenzierbares Label und gibt diesen danach aus. % \begin{macrocode} \newcommand*\PrintIndex{% \@printindex% \@printindex[options]% \@printindex[macros]% \@printindex[keys]% \@printindex[terms]% %% \@printindex[fonts]% \begingroup% \let\lettergroup\@gobble% \@printindex[colors]% \endgroup% \@printindex[files]% } \newcommand*\Index[3][]{% \ifcsdef{r@idx:#3}{% \index{\ifblank{#1}{#2}{#1}|see{\hyperref[idx:#3]{Index der #2}}}% }{% \index{\ifblank{#1}{#2}{#1}|see{Index der #2}}% }% } \newcommand*\@printindex[1][]{% \pagebreak[3]% \ifblank{#1}{% \indexprologue[\vspace*{0pt}]{\label{idx:main}}% \printindex% }{% \indexprologue[\vspace*{0pt}]{\label{idx:#1}} \printindex[#1] }% } % \end{macrocode} % \end{macro}^^A \@printindex % \end{macro}^^A \Index % \end{macro}^^A \PrintIndex % \begin{macro}{\PrintChangelog} % \begin{macro}{\ChangedAt} % \begin{macro}{\if@changelog} % Ähnlich wie für den index wird auch für die Änderungsliste verfahren. % \begin{macrocode} \newif\if@changelog \newcommand*\PrintChangelog{% \begingroup% \let\lettergroup\@gobble% \@changelogtrue% \@printindex[changelog]% \endgroup% } % \end{macrocode} % Hier wird zum ersten Mal von den Möglichkeiten des Paketes \pkg{xparse} % Gebrauch gemacht. % \begin{macrocode} \NewDocumentCommand\ChangedAt{mo}{% \begingroup% \setlength{\fboxsep}{0pt}% \marginnote{\footnotesize\fbox{\texturn{\ \strut#1\ }}}% \IfValueTF{#2}{% \let\PName\@gobble% \let\PBoolean\relax% \let\PSet\relax% \let\PValue\@gobble% \let\Parameter\@gobble% \let\OParameter\@gobble% \let\LParameter\relax% \let\OLParameter\@gobble% \let\PParameter\@gobble% \let\POParameter\@gobble% \index[changelog]{#1!#2}% }{}% \endgroup% } % \end{macrocode} % \end{macro}^^A \if@changelog % \end{macro}^^A \ChangedAt % \end{macro}^^A \PrintChangelog % \begin{macro}{\if@declare} % \begin{macro}{\if@openindex} % \begin{macro}{\bsc} % \begin{macro}{\idxfont} % \begin{macro}{\if@noindex} % Alle möglichen Befehle und Helferlein zum Steuern der Ausgabe. % \begin{macrocode} \newif\if@declare \newif\if@openindex \newcommand*\bsc{} \DeclareRobustCommand*\bsc{\@backslashchar} \newcommand*\idxfont{} \let\idxfont\footnotesize \newif\if@noindex % \end{macrocode} % \end{macro}^^A \if@noindex % \end{macro}^^A \idxfont % \end{macro}^^A \bsc % \end{macro}^^A \if@openindex % \end{macro}^^A \if@declare % Im Folgenden werden allerhand Befehle mit Hilfe des Paketes \pkg{xparse} % definiert, um bestimmte Begriffe, Klassen, Pakete, Optionen, Umgebungen, % Befehle, Parameter, Bezeichner, Längen, Schriftelemente und Farben speziell % auszuzeichnen und im Index einzutragen. Allen diesen Befehlen ist gemein, dass % diese in der Sternversion nicht in den Index eingetragen werden. % % Für (fast) alle der folgenden Befehle gilt, dass die Verwendung in der Form % \cs{\meta{Befehl}'} fügt eine zusätzliche Referenz auf den Abschnitt ihrer % Deklaration ein. Das erste optionale Argument dient für eine spezielle % Auszeichnung im Index. Die eigentliche Behandlung der Eingabe und die % Eintragungen in den Index erfolgen dabei mit dem Befehl \cs{@ProcessOutput}. % \begin{macro}{\Application} % \begin{macro}{\@Application} % Die Auszeichnung und der Indexeintrag einer Anwendungssoftware. % \begin{macrocode} \NewDocumentCommand\Application{som}{% \ifdin{#3}{% \mbox{\textubn{#3}} \IfBooleanTF{#1}{}{% \index{#3~{\protect\idxfont(Anwendungssoftware)}\IfValueTF{#2}{|#2}{}}% }% }% } \DeclareExpandableDocumentCommand\@Application{som}{#3} % \end{macrocode} % \end{macro}^^A \@Application % \end{macro}^^A \Application % \begin{macro}{\Distribution} % Die Auszeichnung und der Indexeintrag einer \hologo{LaTeX}-Distribution. % \begin{macrocode} \NewDocumentCommand\Distribution{som}{% \mbox{\texturn{#3}} \IfBooleanTF{#1}{}{% \index{#3~{\protect\idxfont(Distribution)}\IfValueTF{#2}{|#2}{}}% }% } % \end{macrocode} % \end{macro}^^A \Distribution % \begin{macro}{\Path} % Die Auszeichnung eines Dateipfades. % \begin{macrocode} \newcommand*\Path{} \DeclareRobustCommand*\Path[1]{\mbox{\texttt{#1}}} % \end{macrocode} % \end{macro}^^A \Path % \begin{macro}{\File} % Die Auszeichnung und der Indexeintrag einer Datei. % \begin{macrocode} \NewDocumentCommand\File{som}{% \mbox{\texturn{#3}}% \IfBooleanTF{#1}{}{% \index[files]{#3~{\protect\idxfont(Datei)}\IfValueTF{#2}{|#2}{}}% }% } % \end{macrocode} % \end{macro}^^A \File % \begin{macro}{\Class} % \begin{macro}{\@Class} % \begin{macro}{\DeclareClass} % \begin{macro}{\@TempClass} % Die Auszeichnung und der Indexeintrag einer Klasse. Sollte gerade DIN~Bold % verwendet werden~-- der Befehl wird innerhalb einer Überschrift verwendet~-- % wird lediglich das Hauptargument ausgegeben. Außerdem wird für Einträge mit % dem \pkg{hyperref}-Paket mit \cs{@Class} eine expandierbare Version des % Befehls definiert. Mit \cs{DeclareClass} wird eine Klasse deklariert. % \begin{macrocode} \newcommand*\@TempClass{} \NewDocumentCommand\Class{st'om}{% \ifdin{#4}{% \gdef\@TempClass{~{\protect\idxfont(Klasse)}}% \IfBooleanTF{#2}{% \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempClass]{autoref}% }{% \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempClass]{#3}% }% }% } \DeclareExpandableDocumentCommand\@Class{st'om}{#4} \newcommand*\DeclareClass[1]{% \phantomsection\label{files:#1}% \index[files]{\hyperref[files:#1]{#1~{\protect\idxfont(Klasse)}}|declare}% } % \end{macrocode} % \end{macro}^^A \@TempClass % \end{macro}^^A \DeclareClass % \end{macro}^^A \@Class % \end{macro}^^A \Class % \begin{macro}{\Package} % \begin{macro}{\@Package} % \begin{macro}{\DeclarePackage} % \begin{macro}{\@TempPackage} % Für die Auszeichnungen von Paketen gelten vorhergehende Aussagen äquivalent. % \begin{macrocode} \newcommand*\@TempPackage{} \NewDocumentCommand\Package{st'om}{% \ifdin{#4}{% \gdef\@TempPackage{~{\protect\idxfont(Paket)}}% \IfBooleanTF{#2}{% \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempPackage]{autoref}% }{% \@ProcessOutput[#1]{\texturn{#4}}{files}{#4}[\@TempPackage]{#3}% }% }% } \DeclareExpandableDocumentCommand\@Package{st'om}{#4} \newcommand*\DeclarePackage[1]{% \phantomsection\label{files:#1}% \index[files]{\hyperref[files:#1]{#1~{\protect\idxfont(Paket)}}|declare}% } % \end{macrocode} % \end{macro}^^A \@TempPackage % \end{macro}^^A \DeclarePackage % \end{macro}^^A \@Package % \end{macro}^^A \Package % \begin{macro}{\Option} % \begin{macro}{\@TempOption} % Für die Auszeichnung von Optionen wird zusätzlich unterschieden, ob der Befehl % gerade innerhalb der Änderungsliste verwendet wird. Ist dies der Fall, wird % der verarbeitende Befehl \cs{@ProcessChangedAt} aufgerufen. Mit dem optionalen % Argument \emph{nach} dem Hauptargument kann der Option im Handbuch ein Wert % zugewiesen werden. % \begin{macrocode} \newcommand*\@TempOption{} \NewDocumentCommand\Option{st'omo}{% \if@changelog% \@ProcessChangedAt{options}{#4}% \else% \IfValueTF{#5}{\gdef\@TempOption{\texttt{=#5}}}{\gdef\@TempOption{}}% \IfBooleanTF{#2}{% \@ProcessOutput[#1]{\texttt{#4}}[\@TempOption]{options}{#4}{pageref}% }{% \@ProcessOutput[#1]{\texttt{#4}}[\@TempOption]{options}{#4}{#3}% }% \fi% } % \end{macrocode} % \end{macro}^^A \@TempOption % \end{macro}^^A \Option % \begin{macro}{\Environment} % \begin{macro}{\@TempEnvironment} % Auch hier wird für die Änderungsliste unterschieden. % \begin{macrocode} \newcommand*\@TempEnvironment{} \NewDocumentCommand\Environment{st'omo}{% \if@changelog% \@ProcessChangedAt{macros}{#4}% \else% % \end{macrocode} % Außerdem wird für den Fall, dass der \cs{Environment}-Befehl innerhalb der % \env{Declaration}-Umgebung verwendet wird, eine spezielle Ausgabe erzeugt. Nur % hier kommt das optionale Argument nach dem Hauptargument zum Tragen. Damit % können etwaige obligatorische und optionale Argumente angegeben werden. % \begin{macrocode} \if@declare% \gdef\@TempEnvironment{% \texttt{\bsc{}begin\{#4\}\IfValueTF{#5}{#5}{}}\tabularnewline% \texttt{\dots}\tabularnewline% \texttt{\bsc{}end\{#4\}}% }% \else% \gdef\@TempEnvironment{\texttt{#4}}% \fi% \IfBooleanTF{#2}{% \@ProcessOutput[#1]{\@TempEnvironment}{macros}{#4}{pageref}% }{% \@ProcessOutput[#1]{\@TempEnvironment}{macros}{#4}{#3}% }% \fi% } % \end{macrocode} % \end{macro}^^A \@TempEnvironment % \end{macro}^^A \Environment % \begin{macro}{\Macro} % Die Auszeichnung und der Indexeintrag eines Befehls. % \begin{macrocode} \NewDocumentCommand\Macro{st'om}{% \if@changelog% \@ProcessChangedAt[\bsc]{macros}{#4}% \else% \IfBooleanTF{#2}{% \@ProcessOutput[#1]{\texttt{\bsc#4}}{macros}[\bsc]{#4}{pageref}% }{% \@ProcessOutput[#1]{\texttt{\bsc#4}}{macros}[\bsc]{#4}{#3}% }% \fi% } % \end{macrocode} % \end{macro}^^A \Macro % \begin{macro}{\Key} % \begin{macro}{\@TempKey} % Die Auszeichnung und der Indexeintrag eines Parameters für Umgebungen und % Befehle. Das erste Argument ist die Umgebung oder der Befehl, wofür der % Parameter gültig ist. Das zweite Argument ist der Parameter selbst. Dafür % werden die Befehle \cs{Environment} und \cs{Macro} lokale umdefiniert. % \begin{macrocode} \newcommand*\@TempKey{} \NewDocumentCommand\Key{sommo}{% \begingroup% \let\Environment\@firstofone% \let\Macro\@firstofone% \if@changelog% \@ProcessChangedAt{keys}{#4}% \else% \gdef\@TempKey{\if@declare~{\protect\idxfont(Parameter)}\fi}% \IfValueTF{#5}{% \@ProcessOutput[#1]{\texttt{#4}}[\texttt{=#5}\@TempKey]% {macros}(#3){#4}{#2}% }{% \@ProcessOutput[#1]{\texttt{#4}}[\@TempKey]{macros}(#3){#4}{#2}% }% \fi% \endgroup% } % \end{macrocode} % \end{macro}^^A \@TempKey % \end{macro}^^A \Key % \begin{macro}{\Length} % \begin{macro}{\@TempLength} % Die Auszeichnung und der Indexeintrag einer \hologo{LaTeX}-Länge. % \begin{macrocode} \newcommand*\@TempLength{} \NewDocumentCommand\Length{som}{% \if@changelog% \@ProcessChangedAt[\bsc]{macros}{#3}% \else% \gdef\@TempLength{\if@declare~{\protect\idxfont(L\"ange)}\fi}% \@ProcessOutput[#1]{\texttt{\bsc#3}}[\@TempLength]% {macros}[\bsc]{#3}[~{\protect\idxfont(L\"ange)}]{#2}% \fi% } % \end{macrocode} % \end{macro}^^A \@TempLength % \end{macro}^^A \Length % \begin{macro}{\Counter} % \begin{macro}{\@TempCounter} % Die Auszeichnung und der Indexeintrag einer \hologo{LaTeX}-Zählers. % \begin{macrocode} \newcommand*\@TempCounter{} \NewDocumentCommand\Counter{som}{% \if@changelog% \@ProcessChangedAt{macros}{#3}% \else% \gdef\@TempCounter{\if@declare~{\protect\idxfont(Z\"ahler)}\fi}% \@ProcessOutput[#1]{\texttt{#3}}[\@TempCounter]% {macros}{#3}[~{\protect\idxfont(Z\"ahler)}]{#2}% \fi% } % \end{macrocode} % \end{macro}^^A \@TempCounter % \end{macro}^^A \Counter % \begin{macro}{\Term} % \begin{macro}{\@TempTerm} % Die Auszeichnung und der Indexeintrag eines sprachabhängigen Bezeichners. % \begin{macrocode} \newcommand*\@TempTerm{} \NewDocumentCommand\Term{som}{% \if@changelog% \@ProcessChangedAt[\bsc]{terms}{#3}% \else% \gdef\@TempTerm{\if@declare~{\protect\idxfont(Bezeichner)}\fi}% \@ProcessOutput[#1]{\texttt{\bsc#3}}[\@TempTerm]{terms}[\bsc]{#3}{#2}% \fi% } % \end{macrocode} % \end{macro}^^A \@TempTerm % \end{macro}^^A \Term % \begin{macro}{\TermTable} % \begin{macro}{\@TermTable} % \begin{macro}{\@@TermTable} % \begin{macro}{\@termlist} % Für sprachabhängige Bezeichner wird zusätzlich der Befehl \cs{TermTable} % definiert, dem eine kommaseparierte Liste übergeben werden kann. Anhand dieser % Liste werden die enthalten Begriffe für die Sprachen Deutsch und English in % einer Tabelle ausgegeben. Die Sternversion dieses Befehls nutzt dafür die %\env{tabularx}-Umgebung. Für diese kann ein zweites Argument angegeben werden, % welches die gewünschte Breite der Tabelle angibt. % \begin{macrocode} \newcommand\@termlist{} \let\@termlist\relax \NewDocumentCommand\TermTable{smg}{% \forcsvlist{\listadd\@termlist}{#2}% \vskip\baselineskipglue\noindent% \IfBooleanTF{#1}{% \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}% \setlength{\@tempdimb}{-.7\baselineskip}% \begin{tabularx}{\@tempdima}{lXX}\@TermTable\end{tabularx} }{% \setlength{\@tempdimb}{\z@}% \begin{tabular}{lll}\@TermTable\end{tabular} }% \let\@termlist\relax% \par\noindent% } \newcommand*\@TermTable{% \toprule \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch} \tabularnewline \midrule \forlistloop\@@TermTable{\@termlist} \bottomrule } \newcommand*\@@TermTable[1]{% \Term{#1} & \ifstr{\@nameuse{#1}}{}{\PName{leer}}{\@nameuse{#1}} & \selectlanguage{english}\vspace*{\@tempdimb}% \ifstr{\@nameuse{#1}}{}{\PName{empty}}{\@nameuse{#1}}\tabularnewline } % \end{macrocode} % \end{macro}^^A \@termlist % \end{macro}^^A \@@TermTable % \end{macro}^^A \@TermTable % \end{macro}^^A \TermTable % \begin{macro}{\Font} % \begin{macro}{\@TempFont} % Die Auszeichnung und der Indexeintrag eines Schriftelementes. % \begin{macrocode} \newcommand*\@TempFont{} \NewDocumentCommand\Font{som}{% \if@changelog% \@ProcessChangedAt{fonts}{#3}% \else% \gdef\@TempFont{% \texttt{#3}\if@declare~{\protect\idxfont(Schriftelement)}\fi% }% \@ProcessOutput[#1]{\@TempFont}{fonts}{#3}{#2}% \fi% } % \end{macrocode} % \end{macro}^^A \@TempFont % \end{macro}^^A \Font % \begin{macro}{\Color} % \begin{macro}{\@TempColor} % Die Auszeichnung und der Indexeintrag einer Farbe des \CDs. % \begin{macrocode} \newcommand*\@TempColor{} \NewDocumentCommand\Color{somo}{% \if@changelog% \@ProcessChangedAt{colors}{#3}% \else% \gdef\@TempColor{% \IfValueTF{#4}{~\texttt{(#4)}}{}% \if@declare~{\protect\idxfont(Farbe)}\fi% }% \@ProcessOutput[#1]{\texttt{#3}}[\@TempColor]{colors}{#3}{#2}% \fi% } % \end{macrocode} % \end{macro}^^A \@TempColor % \end{macro}^^A \Color % \begin{macro}{\@ProcessOutput} % Der Befehl \cs{@ProcessOutput} ist das Herzstück der Auszeichnungen aller % Elemente. Das erste optionale Argument ist der eventuell übergebene Stern für % die eines beliebigen Auszeichnungsbefehl. Darauf folgen die gewünschte % \marg{Ausgabe} und ein möglicher \oarg{Anhang}. Danach wird der Zielindex % \marg{Index} und~-- für Parameter~-- der \parg{Haupteintrag} übergeben. Es % folgt der zu machende Indexeintrag selbst mit \oarg{Vorsatz}, \marg{Eintrag}, % \oarg{Anhang} und zum Abschluss \marg{Formatierung}. Der vollständige % Funktionsaufruf lautet: % \newline\begingroup\tiny % \cs{@ProcessOutput}* % \marg{Ausgabe}\oarg{Anhang}\marg{Index}\parg{Haupteintrag}\ignorespaces% % \oarg{Vorsatz}\marg{Eintrag}\oarg{Anhang}\marg{Formatierung} % \endgroup % \begin{macrocode} \NewDocumentCommand\@ProcessOutput{omomd()omom}{% % \end{macrocode} % Dabei wird unterschieden, ob ein beliebiger Auszeichnungsbefehl innerhalb der % \env{Declaration}-Umgebung verwendet wird (\cs{if@declare}). Ist dies der Fall % wird ein Label und mit \cs{@HyperIndex} ein spezieller Indexeintrag für die % Deklaration erstellt. Eine Ausgabe der Auszeichnung erfolgt in diesem Fall % nicht, dafür zeichnet der Befehl \cs{printdeclarationlist} verantwortlich. % Außerdem wird mit Hilfe der \env{Declaration}-Umgebung der Anfang und % das Ende der Deklaration für den Indexeintrag mit \cs{@HyperIndex} exakt % festgelegt. Der Schalter \cs{if@openindex} wird zu Beginn der Umgebung auf % \cs{@openindextrue} gesetzt, am Ende der Umgebung auf \cs{@openindexfalse}. % \begin{macrocode} \if@declare% \if@openindex% \if@noindex\else% \IfValueTF{#5}% {\edef\@tempa{#4:#5:#7}}% {\edef\@tempa{#4:#7}}% \label{\@tempa}% \@HyperIndex{#4}{#5}{#6}{#7}{#8}[(declare]% \fi% #2\IfValueTF{#3}{#3}{}% \else% \if@noindex\else% \@HyperIndex{#4}{#5}{#6}{#7}{#8}[declare)]% \fi% \fi% \else% % \end{macrocode} % Findet der Auszeichnungsbefehl außerhalb der \env{Declaration}-Umgebung % Verwendung, wird für den Fall, dass keine Sternversion genutzt wurde, mit % \cs{@HyperIndex} ein Eintrag im dazugehörigen Index erzeugt. % \begin{macrocode} \IfBooleanTF{#1}{}{% \@tempswafalse% \ifstr{#9}{autoref}{\@tempswatrue}{}% \ifstr{#9}{pageref}{\@tempswatrue}{}% \if@tempswa% \@HyperIndex{#4}{#5}{#6}{#7}{#8}% \else% \@HyperIndex{#4}{#5}{#6}{#7}{#8}[#9]% \fi% }% % \end{macrocode} % Danach erfolgt die Ausgabe der Auszeichnung. Sollte für diesen ein Label % durch eine Deklaration innerhalb der \env{Declaration}-Umgebung definiert % worden sein, so wird auf dieses ein Hyperlink gesetzt. Ansonsten erfolgt die % normale textuelle Ausgabe. Für Parameter muss der Hyperlink dabei aufgrund des % definierten Haupteintrag etwas anders ausgeführt werden. % \begin{macrocode} \IfValueTF{#5}{\edef\@tempa{#4:#5:#7}}{\edef\@tempa{#4:#7}}% \ifcsdef{r@\@tempa}{% \let\@tempb\relax% \ifstr{#9}{autoref}{\def\@tempb{~unter \autoref{\@tempa}}}{}% \ifstr{#9}{pageref}{\def\@tempb{~\vpageref{\@tempa}}}{}% \mbox{\hyperref[\@tempa]{#2}\IfValueTF{#3}{#3}{}}\@tempb% }{\mbox{#2\IfValueTF{#3}{#3}{}}}% \fi% } % \end{macrocode} % \end{macro}^^A \@ProcessOutput % \begin{macro}{\@HyperIndex} % Dieser Befehl sorgt für die eigentlichen Indexeinträge. Dabei werden für % Einträge, welche innerhalb der \env{Declaration}-Umgebung deklariert wurden, % ein Hyperlink im Index erstellt. Das erste Argument \marg{Index} enthält den % gewünschten Zielindex. Danach folgt~-- für Parameter~-- der Haupteintrag. Es % folgt der zu machende Indexeintrag selbst mit \marg{Vorsatz}, \marg{Eintrag}, % \marg{Anhang} und zum Abschluss \oarg{Formatierung}. Der vollständige % Funktionsaufruf lautet: % \newline\begingroup\tiny % \cs{@HyperIndex}\marg{Index}\marg{Haupteintrag}\ignorespaces% % \marg{Vorsatz}\marg{Eintrag}\marg{Anhang}\oarg{Formatierung} % \endgroup % \begin{macrocode} \NewDocumentCommand\@HyperIndex{mmmmmo}{% \IfValueTF{#3}{\def\@tempa{#3}}{\def\@tempa{}}% \IfValueTF{#5}{\def\@tempb{#5}}{\def\@tempb{}}% \IfValueTF{#6}{\def\@tempc{|#6}}{\def\@tempc{}}% % \end{macrocode} % Auch hier wird unterschieden, ob es sich um einen Parameter (keys) handelt. % Wurde für einen Parameter eine Umgebung oder ein Befehl bereits definiert, % werden zwei Indexeinträge generiert. Einer beim Befehl selber als Untereintrag % für den jeweiligen Parameter und einer im Index für Parameter selbst mit der % dazugehörigen Umgebung bzw. dem dazugehörigen Befehl. Beide erhalten einen % entsprechenden Hyperlink zur Deklaration. % \begin{macrocode} \IfValueTF{#2}{% \ifcsdef{r@#1:#2:#4}{% \edef\@tempb{#1:#2:#4}% \index[#1]{% #2!\hyperref[\@tempb]{\expandonce\@tempa#4}% ~{\protect\idxfont(Parameter)}% \expandonce\@tempc% }% \begingroup% \let\Environment\@firstofone% \def\Macro##1{\bsc##1}% \index[keys]{% \hyperref[\@tempb]{\expandonce\@tempa#4~{\protect\idxfont(#2)}}% \expandonce\@tempc% }% \endgroup% }{% \index[#1]{#2!\expandonce\@tempa#4\expandonce\@tempb}% }% % \end{macrocode} % Falls es sich nicht um einen Parameter handelt, wird lediglich der Eintrag im % speziellen Index vorgenommen und ggf. ein Hyperlink erzeugt. % \begin{macrocode} }{% \ifcsdef{r@#1:#4}{% \index[#1]{% \hyperref[#1:#4]{\expandonce\@tempa#4\expandonce\@tempb}% \expandonce\@tempc% }% }{% \index[#1]{\expandonce\@tempa#4\expandonce\@tempb\expandonce\@tempc}% }% }% } % \end{macrocode} % \end{macro}^^A \@HyperIndex % \begin{macro}{\@ProcessChangedAt} % Auch die Änderungsliste erhält einen Hyperlink zur Deklaration, falls eine % existiert. % \begin{macrocode} \newcommand*\@ProcessChangedAt[3][]{% \ifcsdef{r@#2:#3}{\hyperref[#2:#3]{\mbox{#1#3}}}{\mbox{#1#3}}% } % \end{macrocode} % \end{macro}^^A \@ProcessChangedAt % \begin{environment}{Declaration} % \begin{macro}{\printdeclarationlist} % \changes{v1.01}{2014/04/24}{% % bessere Positionierung von \cs{phantomsection}% % } % \begin{macro}{\@declarationlist} % \begin{macro}{\@presetlist} % \begin{macro}{\if@presetlist} % \begin{macro}{\@additionallist} % \begin{macro}{\if@additionallist} % Es werden die Hilfsmakros für die Ausgabe einer Deklaration initialisiert. % \begin{macrocode} \newcommand\@declarationlist{} \newcommand\@presetlist{} \newif\if@presetlist \newcommand\@additionallist{} \newif\if@additionallist \let\@declarationlist\relax \let\@presetlist\relax \let\@additionallist\relax % \end{macrocode} % Die \env{Declaration}-Umgebung dient zur Deklaration von Optionen, Umgebungen, % Befehlen, Parametern, Bezeichnern, Längen, Schriftelementen und Farben. Diese % werden mit den entsprechenden Auszeichnungsbefehlen übergeben. Im zweiten % Argument~-- das erste optionale~-- kann die Voreinstellung für eine Option % oder dergleichen angegeben werden. Das nächste Argument erlaubt die Angabe % einer bedingten Voreinstellung, also einer anderen Voreinstellung als der % zuerst angegeben unter bestimmten Voraussetzungen. Diese muss in der Form % \oarg{Bedingung:Voreinstellung} angegeben werden. Das letzte Argument ist % ebenfalls optional, wird aber in der Form \marg{Zusatz} angegeben und enthält % ggf. zusätzliche Informationen. % % Die Umgebung selbst gibt zu Beginn nichts weiter aus sondern sammelt lediglich % alle übergebenen Argumente in jeweiligen Listen. Die eigentliche Ausgabe % erfolgt mit dem Befehl \cs{printdeclarationlist}. % \begin{macrocode} \NewDocumentEnvironment{Declaration}{moog}{% \listadd\@declarationlist{#1}% \IfNoValueTF{#2}{% \listadd\@presetlist{\relax}% }{% \@presetlisttrue% \IfNoValueTF{#3}{% \listadd\@presetlist{preset:\,#2}% }{% \def\@tempa[##1:##2]{##1:\,##2}% \listeadd\@presetlist{preset:\,#2\,|\,\expandonce{\@tempa[#3]}}% }% }% \IfNoValueTF{#4}{% \listadd\@additionallist{\relax}% }{% \@additionallisttrue% \listadd\@additionallist{\hspace*{\tabcolsep}\small(#4)}% \in@{\Environment}{#1}% \ifin@ \listadd\@additionallist{\tabularnewline}\fi% }% }{% % \end{macrocode} % Am Ende der Umgebung wird das übergebenen Hauptargument abermals ausgeführt, % was zum Setzen des Indexeintragsendes für die jeweilige Deklaration führt % (\cs{@openindexfalse}, siehe \cs{@ProcessOutput}). Dafür werden die Makros für % die Angabe obligatorischer und optionaler Parameter lokal umdefiniert. % \begin{macrocode} \ifx\@declarationlist\relax\else% \ClassError{\tudclsname}{\string\printdeclarationlist\space is missing}{% \string\@declarationlist\space is not empty. Did you forget\MessageBreak% to print this list with \string\printdeclarationlist?% }% \fi% \let\PName\@gobble% \let\PBoolean\relax% \let\PSet\relax% \let\PValue\@gobble% \let\Parameter\@gobble% \let\OParameter\@gobble% \let\LParameter\relax% \let\OLParameter\@gobble% \let\PParameter\@gobble% \let\POParameter\@gobble% \vskip-\lastskip% \@declaretrue\@openindexfalse#1\@declarefalse% \pagebreak[0]% } % \end{macrocode} % Mit dem Befehl \cs{printdeclarationlist} erfolgt die eingentliche Ausgabe % aller Deklarationen. Zweck ist es, mehrere \env{Declaration}-Umgebungen % ineinander verschachteln zu können und eine Ausgabe aller auf einmal zu % erzeugen. Die durch die ggf. nacheinander folgenden Deklarationen wurden in % entsprechenden Listen gesammelt und werden hier jetzt formatiert ausgegben. % \begin{macrocode} \NewDocumentCommand\printdeclarationlist{sod()}{% \ifx\@declarationlist\relax\else% % \end{macrocode} % Die Sternversion des Befehls erzeugt die Ausgabe ohne Deklarationsindexbefehle. % \begin{macrocode} \IfBooleanTF{#1}{\global\@noindextrue}{\global\@noindexfalse} \ifvmode\else\par\fi% \allowbreak% \addpenalty{\@beginparpenalty}% \addvspace{\baselineskipglue}% \@declaretrue\@openindextrue% \phantomsection\noindent% % \end{macrocode} % Die deklarierten Optionen, Umgebungen, Befehle etc. werden in einer umrahmten % Box ausgegeben. % \begin{macrocode} \def\@tempa##1{\ignorespaces##1\tabularnewline}% \begin{tabular}{|l|}% \hline% \forlistloop\@tempa{\@declarationlist}% \hline% \end{tabular}% \@declarefalse% % \end{macrocode} % Danach werden ggf. die Voreinstellungen und Zusatzinformationen gesetzt. % \begin{macrocode} \ifboolexpr{bool {@presetlist} or bool {@additionallist}}{% \if@presetlist% \qquad% \texttt{% \begin{tabular}{l}% \forlistloop\@tempa{\@presetlist}% \end{tabular}% }% \fi% \if@additionallist% \begin{tabular}{@{}l@{}}% \forlistloop\@tempa{\@additionallist}% \end{tabular}% \fi% }{}% % \end{macrocode} % Das optionale Argument kann für eine Versionsnummer für eine gemachte Änderung % genutzt werden. % \begin{macrocode} \IfValueTF{#2}{% \ChangedAt{#2}% \begingroup% \let\marginnote\@gobble% \def\@tempa##1{\ChangedAt{#2}[##1]}% \forlistloop\@tempa{\@declarationlist}% \endgroup% }{}% \global\let\@declarationlist\relax% \global\let\@presetlist\relax% \global\@presetlistfalse% \global\let\@additionallist\relax% \global\@additionallistfalse% % \end{macrocode} % Zum Schluss wird das zweite optionale Argument (in runden Klammern) neben der % Deklaratiionsbox ausgegeben. % \begin{macrocode} \IfValueTF{#3}{#3}{}% \vskip\baselineskipglue\nobreak% \@afterindentfalse\@afterheading% \fi% } % \end{macrocode} % \end{macro}^^A \if@additionallist % \end{macro}^^A \@additionallist % \end{macro}^^A \if@presetlist % \end{macro}^^A \@presetlist % \end{macro}^^A \@declarationlist % \end{macro}^^A \printdeclarationlist % \end{environment}^^A Declaration % \begin{environment}{tabularm} % \begin{macro}{\allcolumnpar} % \begin{macro}{\@allcolumnpar} % \begin{macro}{\tabularm@box} % \begin{macro}{\tabularm@num} % \begin{length}{\tabularm@wd} % Die Umgebung \env{tabularm} ist eine Erweiterung der \env{tabularm}-Umgebung. % In dieser wird die Breite der zu setzenden Tabelle mit Hilfe der Box % \cs{tabularm@box} in \cs{tabularm@wd} gespeichert. Anschließend kann mit dem % Befehl \cs{allcolumnpar} eine Zeile über alle Spalten der Tabelle % ausgegeben werden. Dabei ist das zu übergebende Argument die Anzahl der zu % erzeugenden, linksbündigen Spalten. % \begin{macrocode} \newsavebox\tabularm@box \newlength\tabularm@wd \newcommand*\tabularm@num{1} \NewEnviron{tabularm}[1]{% \begin{lrbox}{\tabularm@box}% \let\allcolumnpar\@gobble% \begin{tabular}{*{#1}l}\BODY\end{tabular}% \end{lrbox}% \setlength{\tabularm@wd}{\wd\tabularm@box}% %% \addtolength{\tabularm@wd}{-2\tabcolsep}% \def\tabularm@num{#1}% \let\allcolumnpar\@allcolumnpar% \begin{tabular}{*{#1}l}\BODY\end{tabular}% } \newcommand*\@allcolumnpar[1]{% \multicolumn{\tabularm@num}{@{}p{\tabularm@wd}@{}}{#1}% } % \end{macrocode} % \end{length}^^A \tabularm@wd % \end{macro}^^A \tabularm@box % \end{macro}^^A \tabularm@num % \end{macro}^^A \@allcolumnpar % \end{macro}^^A \allcolumnpar % \end{environment}^^A tabularm % \begin{macro}{\PName} % \begin{macro}{\PBoolean} % \begin{macro}{\PSet} % \begin{macro}{\Parameter} % \begin{macro}{\OParameter} % \begin{macro}{\LParameter} % \begin{macro}{\OLParameter} % \begin{macro}{\PValue} % \begin{macro}{\PParameter} % \begin{macro}{\POParameter} % Diese Befehle dienen zum Auszeichnen von obligatorischen und optionalen % Parametern und Befehlen oder bestimmten Wertzuweisungen. % \begin{macrocode} \DeclareRobustCommand*\PName[1]{\texttt{\textit{<#1>}}} \DeclareRobustCommand*\PBoolean{\PName{Ein-Aus-Wert}}% \DeclareRobustCommand*\PSet{\PName{Einstellung}}% \DeclareRobustCommand*\Parameter[1]{\texttt{\{}\PName{#1}\texttt{\}}} \DeclareRobustCommand*\OParameter[1]{\texttt{[}\PName{#1}\texttt{]}} \DeclareRobustCommand*\LParameter{\texttt{[}\PName{Parameterliste}\texttt{]}} \DeclareRobustCommand*\OLParameter[1]{% \texttt{[}\PName{#1}|\PName{Parameterliste}\texttt{]} } \DeclareRobustCommand*\PValue[1]{\texttt{#1}} \DeclareRobustCommand*\PParameter[1]{\texttt{\{#1\}}} \DeclareRobustCommand*\POParameter[1]{\texttt{[#1]}} % \end{macrocode} % \end{macro}^^A \POParameter % \end{macro}^^A \PParameter % \end{macro}^^A \PValue % \end{macro}^^A \OLParameter % \end{macro}^^A \LParameter % \end{macro}^^A \OParameter % \end{macro}^^A \Parameter % \end{macro}^^A \PSet % \end{macro}^^A \PBoolean % \end{macro}^^A \PName % \begin{environment}{code} % \begin{environment}{Example} % Diese beiden Umgebungen werden für die Erläuterung von bestimmten Aspekten % zusammen mit einem Quelltextbeispiel im Handbuch verwendet. Dabei enthält % \env{Example} einen kurzen, erklärenden Text. In der \env{code}-Umgebung, % welche innerhalb von \env{Example} verwendet wird, folgt der Quelltext. % \begin{macrocode} \RequirePackage{listings} \lstnewenvironment{code}[1][]{\lstset{style=tudscr,#1}}{} \lstdefinestyle{tudscr}{% basicstyle=\let\bfseries@tt\mdseries@tt\ttfamily\setstretch{1},% columns=fullflexible,keepspaces,% aboveskip=.5\baselineskipglue,% belowskip=.5\baselineskipglue,% language=[LaTeX]TeX,% texcl,% } \newenvironment{Example}{% \labeling{{\usekomafont{disposition}Beispiel:\ }}% \item[{\usekomafont{disposition}Beispiel:\ }]% }{% \endlabeling% } % \end{macrocode} % \end{environment}^^A Example % \end{environment}^^A code % \begin{option}{ToDo} % \begin{macro}{\ToDo} % \begin{macro}{\todo@mark} % Die Option kann aktiviert werden, um mit \cs{ToDo} definerte, offene Aufgaben % als gerahmte Anmerkung im Text anzuzeigen. Das optionale Argument kann genutzt % werden, um die Randnotiz~-- standardmäßig \glqq ToDo\grqq~-- zu ändern. % \begin{macrocode} \newcommand*\todo@mark{} \newcommand\ToDo[2][]{} \TUD@key{ToDo}[true]{% \TUD@set@ifkey{ToDo}{@tempswa}{#1}% \if@tempswa% \renewcommand\ToDo[2][]{% \def\todo@mark{\ifstr{##1}{}{ToDo}{##1}}% \endgraf\vskip1ex% \hfuzz0.8pt% \noindent\leavevmode\marginnote{\fbox{\todo@mark\strut}}% [\dimexpr-\fboxsep-\fboxrule]% \fbox{\parbox{\dimexpr\textwidth-2\fboxsep}{##2\strut}}% \vskip1ex% \noindent$\!\!$% }% \else% \renewcommand\ToDo[2][]{}% \fi% } % \end{macrocode} % \end{macro}^^A \todo@mark % \end{macro}^^A \ToDo % \end{option}^^A ToDo % \begin{macro}{\vTUD} % \begin{macro}{\vTUDScript} % \begin{macro}{\TUDScript} % \begin{macro}{\Attention} % \begin{macro}{\forum} % \begin{macro}{\notudscrartcl} % \begin{macro}{\CD} % \begin{macro}{\CDs} % \begin{macro}{\TUD} % \begin{macro}{\TnUD} % \begin{macro}{\DDC} % \begin{macro}{\Univers} % \begin{macro}{\DIN} % Diese Befehle stellen regelmäßig im Handbuch genutzte Textbausteine bereit. % Dazu wird der Befehl \cs{xspace} aus dem \pkg{xspace}-Paket genutzt. % \begin{macrocode} \RequirePackage{xspace} \newcommand*\vTUD{Version~\NoCaseChange{v}1.0\xspace} % \end{macrocode} % Der Befehl \cs{vTUDScript} enthält die aktuelle Versionsnummer des % \TUDScript-Bundles. % \begin{macrocode} \newcommand*\vTUDScript{} \AtBeginDocument{% \def\@tempb#1 #2 #3\relax#4\relax{\def\vTUDScript{#2}}% \edef\@tempa{\TUDVersion}% \expandafter\@tempb\@tempa\relax? ? \relax\relax% } \DeclareRobustCommand\TUDScript{% \ifdin{TUD-KOMA-SCRIPT}{% \texorpdfstring{% \textsf{T\kern.05em U\kern.05em D\kern.1em-\kern.1em}\KOMAScript% }{TUD-KOMA-Script}% }% } % \end{macrocode} % \dots und der Rest. % \begin{macrocode} \newcommand*\Attention{\marginnote{\tiny\fbox{Achtung!}}} \newcommand*\forum{\url{http://latex.wcms-file3.tu-dresden.de/phpBB3/}\xspace} \newcommand*\notudscrartcl{% Für die Klasse \Class{tudscrartcl} ist diese Einstellung nicht verfügbar. } \newcommand*\CD{\foreignlanguage{english}{Corporate Design}\xspace} \newcommand*\CDs{\foreignlanguage{english}{Corporate Designs}\xspace} \newcommand*\TUD{Technische Universit\"at Dresden\xspace} \newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} \newcommand*\DDC{\mbox{DRESDEN-concept}\xspace} \newcommand*\Univers{\textubn{Univers}\xspace} \newcommand*\DIN{\textdbn{DIN~BOLD}\xspace} % \end{macrocode} % \end{macro}^^A \DIN % \end{macro}^^A \Univers % \end{macro}^^A \DDC % \end{macro}^^A \TnUD % \end{macro}^^A \TUD % \end{macro}^^A \CDs % \end{macro}^^A \CD % \end{macro}^^A \notudscrartcl % \end{macro}^^A \forum % \end{macro}^^A \Attention % \end{macro}^^A \TUDScript % \end{macro}^^A \vTUDScript % \end{macro}^^A \vTUD % Ganz zum Schluss wird der Seitenstil für Teileseiten gesetzt. % \begin{macrocode} \renewcommand*\partpagestyle{empty} % \end{macrocode} % % \Finale % \endinput