diff options
Diffstat (limited to 'macros/latex/contrib/tudscr/source/tudscr-manual.dtx')
-rw-r--r-- | macros/latex/contrib/tudscr/source/tudscr-manual.dtx | 1203 |
1 files changed, 255 insertions, 948 deletions
diff --git a/macros/latex/contrib/tudscr/source/tudscr-manual.dtx b/macros/latex/contrib/tudscr/source/tudscr-manual.dtx index 88906bd4a0..c0bab03f80 100644 --- a/macros/latex/contrib/tudscr/source/tudscr-manual.dtx +++ b/macros/latex/contrib/tudscr/source/tudscr-manual.dtx @@ -1,10 +1,10 @@ -% \CheckSum{4457} % \iffalse meta-comment +%/GitFileInfo=tudscr-manual.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2021 +% Copyright (C) Falk Hanisch <hanisch.latex@outlook.com>, 2012-2022 % % ---------------------------------------------------------------------------- % @@ -23,44 +23,19 @@ % % \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 -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-manual.dtx}[2019/10/23 v2.06e TUD-Script\space% -% -% \iffalse -%</dtx> -%<package&identify>\ProvidesPackage{tudscrtutorial}[% -%<*package&identify> -%!TUD@Version -%</package&identify> -%<package&identify> package -%<*dtx|package&identify> -% \fi - (internal tutorials)% -] -% \iffalse -%</dtx|package&identify> +% \iffalse ins:batch + dtx:driver +%<*ins> +\ifx\documentclass\undefined + \input docstrip.tex + \ifToplevel{\batchinput{tudscr.ins}} +\else + \let\endbatchfile\relax +\fi +\endbatchfile +%</ins> %<*dtx> +\ProvidesFile{tudscr-manual.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -70,18 +45,11 @@ \fi \usepackage{babel} \usepackage{tudscrfonts} -\KOMAoptions{parskip=half-} -\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)} - +\GitHubBase{\TUDScriptRepository} \begin{document} + \author{Falk Hanisch\TUDScriptContactTitle} \maketitle \tableofcontents \DocInput{\filename} @@ -93,235 +61,34 @@ % % \changes{v2.02}{2014/12/17}{Erstellung der \app{texindy}-Stildatei während % der Kompilierung}^^A -% \changes{v2.02}{2014/11/18}{\pkg{tudscrtutorial}: Index für Tutorials}^^A +% \changes{v2.02}{2014/11/18}{\pkg{tudscrmanual}: Index für Tutorials}^^A % \changes{v2.05}{2015/08/04}{Geteilte Deklarationen für Klasse und Paket}^^A % -% \section{Handbuch und Leitfäden zu \TUDScript} -% -% 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. -% Einiges davon wird auch für die Quelltextdokumentationsklasse \cls{tudscrdoc} -% verwendet. -% -% \StopEventually{\PrintIndex\PrintChanges\PrintToDos} % -% \iffalse -%<*body|class&doc> -% \fi % -% \subsection{Notwendige Pakete und Befehle} +% \section{Anwenderdokumentation und Leitfäden zu \TUDScript} % -% Basis für die Handbuchklasse \cls{tudscrmanual} ist \cls{tudscrreprt}. -% Zusätzlich wird das Paket \pkg{tudscrtutorial} erstellt, um an das Handbuch -% angelehnte Tutorials in einem Unterordner zu erstellen. Sowohl für die Klasse -% als auch das Paket werden einige Pakete geladen, um Einstellungen vorzunehmen -% und nützliche Befehle zu definieren. -% -% Das Paket \pkg{xparse} erlaubt eine sehr freie Deklaration von Makros mit -% nahezu beliebig arrangierbaren (optionalen) Argumenten. -% \begin{macrocode} -%<*!doc> -\PassOptionsToPackage{log-declarations=false}{xparse} -\RequirePackage{xparse}[2013/12/31] -%</!doc> -% \end{macrocode} -% Bugfixes für unterschiedliche Pakete. -% \begin{macrocode} -\RequirePackage{scrhack}[2014/02/27] -% \end{macrocode} -% Die Sprachunterstützung für Klasse und Paket. +% Es werden die Klasse \cls{tudscrmanual} (auf Basis von \cls{tudscrreprt}) für +% die Anwenderdokumentation sowie das Paket \pkg{tudscrmanual} 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. +% \ToDo{guards überarbeiten, korrelierenden Quelltext zusammenhalten}[v2.07] % \begin{macrocode} -%<*!doc> -\RequirePackage{babel}[2014/03/24] -%</!doc> -% \end{macrocode} -% Das Paket \pkg{marginnote} stellt nicht fließenden Randnotizen bereit, welche -% für die Kennzeichnung von Änderungen, Hinweise oder ToDo-Notizen verwendet -% werden. Die Randnotizen werden auf dem linken~-- weil größeren~-- Seitenrand -% gesetzt. -% \begin{macrocode} -\PassOptionsToPackage{quiet}{marginnote} -\RequirePackage{marginnote}[2012/03/29] -%<!doc>\reversemarginpar -% \end{macrocode} -% Das Paket für intelligente Leerzeichen am Ende von Makros mit \cs{xspace}. -% \begin{macrocode} -\RequirePackage{xspace}[2009/10/20] -\xspaceaddexceptions{"=} -% \end{macrocode} -% Für das Paket \pkg{geometry} erfolgen durch \TUDScript vielerlei Anpassungen. -% 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|package)> -\@ifpackagelater{geometry}{2018/04/17}{% - \ClassWarning{\TUD@Class@Name}{% - Package `geometry' was updated so some patches\MessageBreak% - are maybe outdated% - }% -}{}% -%</!(doc|package)> -% \end{macrocode} -% \begin{macro}{\vTUDScript} -% \begin{macro}{\vKOMAScript} -% Diese Befehle geben in der Dokumentation die aktuelle Version von \TUDScript -% sowie die mindestens notwendige Version von \KOMAScript{} aus. -% \begin{macrocode} -\newcommand*\vTUDScript{v\TUDScriptVersionNumber} -\newcommand*\vKOMAScript{v\TUD@Version@KOMA} -% \end{macrocode} -% \end{macro}^^A \vKOMAScript -% \end{macro}^^A \vTUDScript -% \begin{macro}{\tud@english} -% Mit diesem Befehl wird der Inhalt des Arumentes mit englischen Trennmustern -% gesetzt, falls die Sprache geladen wurde. -% \begin{macrocode} -\newcommand*\tud@english[1]{#1} -\AtBeginDocument{% - \iflanguageloaded{english}{% - \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% - }{}% -} -% \end{macrocode} -% \end{macro}^^A \tud@english -% Das Paket \pkg{shellesc} ermöglicht mit dem Befehl \cs{ShellEscape} die -% Verwendung von Systembefehlen auf der Kommandozeile unabhängig von der -% genutzten Engine. Sollte \app{lualatex} als Dokumentprozessor eingesetzt -% werden, sind dennoch die \app{pdflatex}-Primitiven \cs{pdf(@)strcmp} und -% \cs{pdf(@)shellescape} nötig, wofür das Paket \pkg{pdftexcmds} geladen wird. -% \begin{macrocode} -\RequirePackage{shellesc}[2016/06/07] -\RequirePackage{pdftexcmds}[2016/05/21] -% \end{macrocode} -% -% \iffalse -%</body|class&doc> -%<*!doc> -%<*body> -%<*class> -% \fi -% -% \begin{macro}{\tud@list@sort} -% \changes{v2.02}{2014/07/25}{neu}^^A -% \begin{macro}{\tud@list@@sort} -% \changes{v2.02}{2014/07/25}{neu}^^A -% \begin{macro}{\tud@templist} -% \changes{v2.02}{2014/07/25}{neu}^^A -% \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 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 -\newcommand*\tud@list@sort[1]{% - \ifdefvoid{#1}{% - \ClassWarning{tudscrmanual}{% - The given list \string#1\space\MessageBreak% - is empty, nothing to sort here% - }% - }{% - \let\tud@reserved#1% - \let\tud@templist\relax% - \forlistloop\tud@list@@sort{\tud@reserved}% - \let\tud@reserved\relax% - \@for\@tempa:=\tud@templist\do{\listeadd\tud@reserved{\@tempa}}% - \let#1\tud@reserved% - }% -} -% \end{macrocode} -% Hier erfolgt die eigentliche Sortierung der Liste. -% \begin{macrocode} -\newif\if@tud@list@sorted -\newcommand*\tud@list@@sort[1]{% -% \end{macrocode} -% Der erste Eintrag wird direkt der Liste hinzugefügt. -% \begin{macrocode} - \ifx\tud@templist\relax% - \def\tud@templist{#1}% -% \end{macrocode} -% Weitere Einräge werden mit \cs{pdfstrcmp} an der richtigen Stelle eingefügt. -% Dabei wird die kommagetrennte Liste \cs{tud@templist} durchlaufen und -% \cs{@tempb} als Hilfsmakro verwendet, in welches die aktuelle Liste innerhalb -% der \cs{@for}-Schleife stückweise expandiert wird. Wenn das aktuelle Element -% an der dafür passenden Stelle eingesetzt wurde, wird \cs{if@tud@list@sorted} -% gesetzt. -% \begin{macrocode} - \else% - \@tud@list@sortedfalse% - \let\@tempb\@empty% - \@for\@tempa:=\tud@templist\do{% -% \end{macrocode} -% Ist der Eintrag bereits erfolgt, wird der verbliebene Teil der Liste -% angehangen. -% \ToDo{\cs{expandafter}\cs{edef}\cs{expandafter} ist quatsch, oder?}[v2.07] -% \begin{macrocode} - \if@tud@list@sorted% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \else% -% \end{macrocode} -% Liegt der Eintrag in alphabetischer Reihenfolge vor dem aktuellen der -% durchlaufenenen Liste, so wird dieser davor eingefügt. Dabei muss der Fall, -% dass das Element der erste Eintrag in der temporären Liste \cs{@tempb} ist, -% eine Sonderbehandlung erfolgen. Anschließend wird \cs{@tud@list@sortedtrue} -% gesetzt. -% \begin{macrocode} - \expandafter\ifnum\pdf@strcmp{#1}{\@tempa}<\z@\relax% - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{% - #1,\@tempa% - }% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{% - \@tempb,#1,\@tempa% - }% - \fi% - \@tud@list@sortedtrue% - \else% -% \end{macrocode} -% Ist Eintrag in alphabetischer Reihenfolge nach dem aktuellen der geprüften -% Liste, so wird dieser (noch) nicht eingefügt. Der Sonderfall des ersten -% Elementes wird abgedeckt. -% \begin{macrocode} - \ifx\@tempb\@empty% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempa}% - \else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,\@tempa}% - \fi% - \fi% - \fi% - }% -% \end{macrocode} -% Wurde der Eintrag nach dem Durchlaufen der Liste nicht eingefügt, so erfolgt -% dies hier am Ende der Liste. -% \begin{macrocode} - \if@tud@list@sorted\else% - \expandafter\edef\expandafter\@tempb\expandafter{\@tempb,#1}% - \fi% -% \end{macrocode} -% Die temporäre Liste \cs{@tempb} wird auf \cs{tud@templist} überschrieben. -% \begin{macrocode} - \let\tud@templist\@tempb% - \fi% -} +%<*package&identify> +\ProvidesPackage{tudscrmanual}[% +%!TUD@Version + package (tudscr tutorials)% +] +\TUD@Class@Check{tudscrtutorial} +%</package&identify> % \end{macrocode} -% \end{macro}^^A \if@tud@list@sorted -% \end{macro}^^A \tud@templist -% \end{macro}^^A \tud@list@@sort -% \end{macro}^^A \tud@list@sort % % \iffalse -%</class> -%<*package> +%<*package&body> % \fi % -% \subsection{Zusätzliche Pakete für das Paket \pkg{tudscrtutorial}} +% \subsection{Zusätzliche Pakete für das Paket \pkg{tudscrmanual}} % % Mit dem Paket \pkg{scrwfile} lassen sich Probleme mit zu wenig verfügbaren % Streams für das Schreiben externer Datein beheben. Hintergrund ist die @@ -329,17 +96,16 @@ % Vielzahl solcher Streams benötigt. Das Paket \pkg{morewrites} hat keinen % Einfluss auf \pkg{glossaries}. % \begin{macrocode} -\RequirePackage{scrwfile}[2013/08/05] +\RequirePackage{scrwfile} % \end{macrocode} % % \iffalse -%</package> -%</body> +%</package&body> %<*option> % \fi % % \subsection{% -% Optionen für die Ausgabe von \cls{tudscrmanual} und \pkg{tudscrtutorial}% +% Optionen für die Ausgabe von \cls{tudscrmanual} und \pkg{tudscrmanual}% % } % % \begin{option}{final} @@ -450,8 +216,8 @@ \newcommand*\tud@trace@lbl@created@list{}% \newcommand*\tud@trace@lbl@missing@list{}% \@tempswafalse% - \ifstr{#2}{created}{\@tempswatrue}{}% - \ifstr{#2}{all}{\@tempswatrue}{}% + \tud@if@strequal{#2}{created}{\@tempswatrue}{}% + \tud@if@strequal{#2}{all}{\@tempswatrue}{}% \if@tempswa% \renewcommand*\tud@trace@lbl@created@add[1]{% \typeout{% @@ -470,8 +236,8 @@ }% \fi% \@tempswafalse% - \ifstr{#2}{missing}{\@tempswatrue}{}% - \ifstr{#2}{all}{\@tempswatrue}{}% + \tud@if@strequal{#2}{missing}{\@tempswatrue}{}% + \tud@if@strequal{#2}{all}{\@tempswatrue}{}% \if@tempswa% \renewcommand*\tud@trace@lbl@missing@add[1]{% \typeout{% @@ -554,33 +320,13 @@ % % \iffalse %</class> -%</body> -%</!doc> -%<*body|class&doc> % \fi % % \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} verbessert das Erstellen der Outline-Einträge. -% \begin{macrocode} -\PassOptionsToPackage{hyperindex=false,colorlinks,linkcolor=blue}{hyperref} -\PassOptionsToPackage{open,openlevel=0}{bookmark} -% \end{macrocode} -% Es folgen einige Befehle, die an das Paket \pkg{hyperref} gekoppelt sind. -% Sobald das Paket geladen wurde, werden die Makros mit der jeweiligen -% Funktionalität definiert. -% \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} +\AfterPackage*{hyperref}{% \renewcaptionname{ngerman}{\sectionautorefname}{Unterkapitel}% \renewcaptionname{ngerman}{\subsectionautorefname}{Abschnitt}% \renewcaptionname{ngerman}{\subsubsectionautorefname}{Unterabschnitt}% @@ -590,7 +336,7 @@ % \begin{macro}{\tudhyperref} % \changes{v2.02}{2014/10/27}{neu}^^A % \begin{macro}{\tud@manualname} -% \changes{v2.05}{2015/1q/19}{neu}^^A +% \changes{v2.05}{2015/11/19}{neu}^^A % Diese Befehle dienen sowohl zum Definieren von Textankern im Handbuch als % auch zum Referenzieren auf diese. Bei der Erstellung des Ankers mit % \cs{tudhyperdef} wird zusätzlich auch noch ein Label (\cs{label}) erzeugt. @@ -603,11 +349,11 @@ %<*class> \NewDocumentCommand\tudhyperdef{s t' m}{% \@tempswafalse% - \IfBooleanT{#1}{\@tempswatrue\setlength\@tempdima{3\baselineskip}}% - \IfBooleanT{#2}{\@tempswatrue\setlength\@tempdima{15\baselineskip}}% + \IfBooleanT{#1}{\@tempswatrue\tud@setdim\@tempdima{3\baselineskip}}% + \IfBooleanT{#2}{\@tempswatrue\tud@setdim\@tempdima{15\baselineskip}}% \if@tempswa% \raisebox{\@tempdima}[0pt][0pt]{\hyperdef{\tud@manualname}{#3}{}}% - \par\nobreak\vskip\dimexpr-\parskip-\baselineskip\relax% + \par\nobreak\vskip-\parskip\vskip-\baselineskip% \@afterindentfalse\@afterheading% \else% \Hy@raisedlink{\hyperdef{\tud@manualname}{#3}{}}\ignorespaces% @@ -640,7 +386,7 @@ % vorgestellt und hier übernommen. % \begin{macrocode} \newcommand*\autorefname[1][current]{% - \ifstr{#1}{current}{% + \tud@if@strequal{#1}{current}{% \expandafter\HyPsd@@autorefname\@currentHref\@nil% }{% \auto@refname\HyPsd@@autorefname{#1}% @@ -661,71 +407,6 @@ % \end{macro}^^A \auto@@refname % \end{macro}^^A \auto@refname % \end{macro}^^A \autorefname -% 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} @@ -739,43 +420,18 @@ % Zunächst die direkt innerhalb der Dokumentation verwendeten Befehle nebst % dazugehöriger Warnung. % \begin{macrocode} -%<*!doc> %<*class> \ClassWarningNoLine{tudscrmanual}% %</class> %<*package> - \PackageWarningNoLine{tudscrtutorial}% + \PackageWarningNoLine{tudscrmanual}% %</package> {% It is strongly recommended to load package `hyperref'. \MessageBreak% Nevertheless, essential commands are rudimentarily\MessageBreak% defined. At least the package `url' is loaded% }% -%</!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 +% \end{macrocode} % % \begin{macro}{\hyperpage} % \begin{macro}{\autoref} @@ -837,96 +493,18 @@ %</class> \providecommand*\tudhyperref[2]{#2}% \providecommand*\autorefname[1][]{??\xspace}% -% -% \iffalse -%</!doc> -%<*doc> -% \fi -% -% \end{macrocode} -% Und hier der Teil für die Quelltextdokumentation. -% \begin{macrocode} - \providecommand*\hypersourcedef[1]{} - \providecommand*\hypersource@def{} - \providecommand*\hypersource@ref@codeline[2][]{} - \providecommand*\hypersource@ref@page[2][]{} -% -% \iffalse -%</doc> -% \fi -% -% \begin{macrocode} } % \end{macrocode} -% \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} -\newcommand*\hrfn[2]{% - \href{#1}{\trim@spaces{#2}}% - \footnote{% - \begingroup% -% \end{macrocode} -% 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]{\mbox{\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 -% zum Unterdrücken dieser Infos. -% \begin{macro}{\pdfstringdef} -% \begin{macrocode} -\AfterPackage*{hyperref}{% - \patchcmd{\pdfstringdef}{\csname HyPsd@babel@}{% - \let\bbl@info\@gobble\csname HyPsd@babel@% - }{}{\tud@patch@wrn{pdfstringdef}}% -} -% \end{macrocode} -% \end{macro}^^A \pdfstringdef -% -% \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}}} +\RequirePackage{varioref} +\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} -\AfterPackage*{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} -% \end{macrocode} -% Wurde \pkg{hyperref} nicht geladen, dann soll auf \pkg{microtype} trotzdem -% nicht verzichtet werden. -% \begin{macrocode} -\TUD@UnwindPackage{hyperref}{\RequirePackage[babel]{microtype}[2013/05/23]} -% \end{macrocode} % % \iffalse -%</body> -%<*!doc> -%<*body> %<*class> % \fi % @@ -949,8 +527,8 @@ % \val{true} gesetzt und vor dem Beenden auf \val{false}. Damit wird bestimmt, % ob ein öffnender oder ein schließender Indexeintrag erzeugt werden soll. % \begin{macrocode} -\newif\if@tud@declare -\newif\if@openindex +\tud@newif\if@tud@declare +\tud@newif\if@openindex % \end{macrocode} % Das Makro \cs{tud@declare@num} bestimmt innerhalb einer Deklaration, wie % das Markup erfolgen soll. Die möglichen Werte sind bei der Beschreibung von @@ -1011,10 +589,10 @@ % für Umgebungen und Befehle gedacht, bei denen lediglich ein oder mehrere % Parameter geändert wurden bzw. entfallen. % \begin{macrocode} -\newif\if@tud@obsolete +\tud@newif\if@tud@obsolete \NewDocumentEnvironment{Obsolete}{momoog}{% \@tud@obsoletetrue% - \ifxblank{#1}{% + \tud@if@strblank{#1}{% % \end{macrocode} % Ohne Versionsnummer erfolgt die Ausgabe ohne Label. Für den Eintrag wird auch % keine Änderungsnotiz erzeugt. @@ -1057,7 +635,7 @@ }% \@tempb#1\@nil% \fi% - \eaddto@hook\toks@{\expandafter{\@tempa}}% + \addto@hook@expandafter\toks@{\expandafter{\@tempa}}% \the\toks@% }% }% @@ -1080,10 +658,10 @@ % \begin{macrocode} \newcommand*\tud@preset@list{} \let\tud@preset@list\relax -\newif\if@tud@preset@list +\tud@newif\if@tud@preset@list \newcommand*\tud@additional@list{} \let\tud@additional@list\relax -\newif\if@tud@additional@list +\tud@newif\if@tud@additional@list % \end{macrocode} % \end{macro}^^A \if@tud@additional@list % \end{macro}^^A \tud@additional@list @@ -1242,9 +820,13 @@ % einfach bei der verwendung der genannten Befehle der zuvor gesetzte vertikale % Abstand in \cs{tud@lastskip} gesichert. % \begin{macrocode} -\newskip\tud@lastskip -\pretocmd{\index}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{index}} -\pretocmd{\label}{\tud@lastskip=\lastskip}{}{\tud@patch@wrn{label}} +\tud@newglue\tud@lastskip +\pretocmd\index{% + \tud@lastskip=\lastskip% +}{}{\tud@patch@wrn{index}} +\pretocmd\label{% + \tud@lastskip=\lastskip% +}{}{\tud@patch@wrn{label}} \NewDocumentCommand\printdeclarationlist{!s !d()}{% \ifx\tud@declaration@list\relax\else% \ifhmode% @@ -1256,7 +838,7 @@ % Sollte dann noch ein positiver Wert bestehen, wird dieser einfach zusätzlich % gesetzt. % \begin{macrocode} - \@tempskipa=\glueexpr\medskipamount-\tud@lastskip\relax% + \tud@setglue\@tempskipa{\medskipamount-\tud@lastskip}% \ifdim\@tempskipa>\z@\relax% \addpenalty{\@beginparpenalty}% \addvspace{\@tempskipa}% @@ -1375,10 +957,15 @@ % \begin{macro}{\bsc} % \changes{v2.02}{2014/07/22}{\cs{newrobustcmd} aus \pkg{etoolbox} anstatt % \cs{DeclareRobustCommand}}^^A -% Eine einfacher zu verwendende Kurzform. +% \begin{macro}{\txb} +% \changes{v2.06o}{2022/08/03}{neu}^^A +% Eine einfacher zu verwendende Kurzform für den Backslash sowie eine +% mikrotypografisch angepasste Version von \cs{textbar}. % \begin{macrocode} \newrobustcmd*\bsc{\@backslashchar} +\newrobustcmd*\txb{{\raise.05em\hbox{\kern.05em\textbar\kern.05em}}} % \end{macrocode} +% \end{macro}^^A \txb % \end{macro}^^A \bsc % \begin{macro}{\suffix} % \changes{v2.05}{2015/10/27}{neu}^^A @@ -1420,7 +1007,7 @@ % Argumenten am Ende genutzt werden können. Sollte ein Label existieren, wird % automatisch ein Hyperlink erzeugt, welcher mit der optionalen Angabe von % |'|\meta{Referenzvariante}|'| um einen textuellen Querverweis ergänzt werden -% kann. Mit \verb=|=\meta{Indexmarkup}\verb=|= kann die Erscheinung im Index +% kann. Mit \verb+|+\meta{Indexmarkup}\verb+|+ kann die Erscheinung im Index % angepasst werden. Bei einigen Befehlen kann zusätzlich zuvor im Markup mit % dem optionalen Argument \parg{Bundleelement} die Zuweisung auf ein bestimmtes % Paket oder eine Klasse aus dem \TUDScript-Bundle erfolgen. @@ -1431,7 +1018,7 @@ % festgelegt. Ein Eintrag in den Index wird mit \cs{Process@Index} realisiert. % Für die Änderungsliste wird der Befehl \cs{Process@ChangedAt} genutzt, um die % entsprechende Formatierung zu gewährleisten, wobei dies nur für die Klasse -% \cls{tudscrmanual} und nicht für das Paket \pkg{tudscrtutorial} gilt. +% \cls{tudscrmanual} und nicht für das Paket \pkg{tudscrmanual} gilt. % % \begin{macro}{\ProcessorKeyVal} % \changes{v2.05}{2015/11/01}{neu}^^A @@ -1473,7 +1060,7 @@ \ClassError{tudscrmanual}% %</class> %<*package> - \PackageError{tudscrtutorial}% + \PackageError{tudscrmanual}% %</package> {Wrong usage of optional argument for value}% {There are two optional arguments for a value given!}% @@ -1500,7 +1087,7 @@ \ClassError{tudscrmanual}% %</class> %<*package> - \PackageError{tudscrtutorial}% + \PackageError{tudscrmanual}% %</package> {Nested environment `Bundle'}{% It is not possible to nest this environment, when\MessageBreak% @@ -1522,7 +1109,9 @@ \newcommand*\tud@bdl@curr{} \newcommand*\tud@bdl@dflt{tudscr} \let\tud@bdl@curr\tud@bdl@dflt -\newcommand*\tud@if@bdl[2]{\ifstr{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}} +\newcommand*\tud@if@bdl[2]{% + \tud@if@strequal{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}% +} % \end{macrocode} % \end{macro}^^A \tud@if@bdl % \end{macro}^^A \tud@bdl@dflt @@ -1535,7 +1124,7 @@ % \begin{macrocode} \NewExpandableDocumentCommand\@Application{sm}{#2} \NewDocumentCommand\Application{s m !d() !d<> !d||}{% - \Markup@SetFormat{\sbsfont}% + \Markup@SetFormat{\sbifont}% \IfValueTF{#4}{% \Process@Markup{\Application{#2}}(#3)<#4>% }{% @@ -2024,7 +1613,7 @@ % Default-Eintrag hinterlegen, um ggf. darauf zu prüfen% % }[v2.??]% % \ToDo{% -% neues Makro \cs{PLength} mit \cs{PName\{Längenwert\}} +% neues Makro \cs{PLength} mit \cs{PName}\marg{Längenwert} % }[v2.??]% % \begin{macro}{\PValue} % \begin{macro}{\PName} @@ -2118,7 +1707,7 @@ % des zweiten obligatorischen Argumentes ausgeführt. Es ist zu beachten, dass % dieser \emph{expandiert} wird! % \begin{macrocode} - \ifxblank{#2}{% + \tud@if@strblank{#2}{% \let\tud@reserved\endgroup% }{% \protected@edef\tud@reserved{\noexpand\endgroup#3}% @@ -2309,8 +1898,7 @@ % nicht der Fall ist, wird die Labelgenerierung abermals ausgeführt. % \begin{macrocode} \NewDocumentCommand\tud@lbl@get@@dflt{mmmmr==}{% - \edef\tud@reserved{\expandafter\detokenize\expandafter{\tud@bdl@dflt}}% - \ifstr{\tud@reserved}{#2}{}{% + \tud@if@strequal{#2}{\tud@bdl@dflt}{}{% % \end{macrocode} % Dabei erfolgt der Aufruf logischerweise mit dem richtigen Bundlepräfix. % \begin{macrocode} @@ -2333,10 +1921,10 @@ \NewDocumentCommand\tud@if@lbl@exists{% >{\tud@lbl@create}>{\SplitArgument{2}{:}}m% }{% - \ifcsdef{r@#1}{% - \expandafter\@firstoftwo% - }{% + \ifcsundef{r@#1}{% \expandafter\@secondoftwo% + }{% + \expandafter\@firstoftwo% }% } %</class> @@ -2422,7 +2010,7 @@ \IfValueTF{#2}{% \tud@attr@get\@tempb{#2}% \IfValueTF{#1}{% - \ifxblank{#1}{% + \tud@if@strblank{#1}{% \edef\@tempa{\tud@bdl@dflt:\@tempb:#2}% }{% \edef\@tempa{#1:\@tempb:#2}% @@ -2472,8 +2060,9 @@ % Überschriften ausgegeben werden, wird der Schalter \cs{if@tud@disposition} % und der dazugehörige auswertende Befehl \cs{ifdisposition} definiert. Das % Setzen des Schalters wird in \cs{tud@sec@format} gepatcht. +% \ToDo{besser nur als internen Befehl definieren \cs{tud@if@...}?!}[v2.06] % \begin{macrocode} -\newif\if@tud@disposition +\tud@newif\if@tud@disposition \newcommand*\ifdisposition{% \if@tud@disposition% \expandafter\@firstoftwo% @@ -2481,7 +2070,7 @@ \expandafter\@secondoftwo% \fi% } -\pretocmd{\tud@sec@format}{% +\pretocmd\tud@sec@format{% \@tud@dispositiontrue% }{}{\tud@patch@wrn{tud@sec@format}} % \end{macrocode} @@ -2491,7 +2080,7 @@ % % In der Klasse \cls{tudscrmanual} werden die Markup-Befehle zusätzlich auch % als Argument der Umgebung \env{Declaration} genutzt. Für diese Verwendung -% kommt die Definiton von \cs{Markup@Declare} und ggf. \cs{Markup@Suffix} zum +% kommt die Definition von \cs{Markup@Declare} und ggf. \cs{Markup@Suffix} zum % Einsatz. % % \begin{macro}{\Process@Markup} @@ -2568,7 +2157,7 @@ %<*class> \fi% %</class> - \eaddto@hook\tud@toks@{\expandafter{\tud@lbl@tmp}}% + \addto@hook@expandafter\tud@toks@{\expandafter{\tud@lbl@tmp}}% % \end{macrocode} % Danach wird der Inhalt des im ersten Argument übergebenen Markup-Befehls in % einer Gruppe ein temporäres Makro expandiert und als zweites Argument für die @@ -2581,7 +2170,7 @@ \def\noexpand\tud@reserved{#1}% }% \tud@reserved% - \eaddto@hook\tud@toks@{\expandafter{\tud@reserved}}% + \addto@hook@expandafter\tud@toks@{\expandafter{\tud@reserved}}% % \end{macrocode} % Es folgen gegebenenfalls die optionalen Argument |=|\meta{Wert}|=| sowie % \oarg{Ausgabesuffix}~-- falls diese angegeben wurden. @@ -2598,7 +2187,7 @@ % Schalter hier genutzt, um lediglich zu Beginn einer Deklaration das Markup % auszuführen. Dabei Angaben für eine |'|\meta{Referenzvariante}|'| nicht % erlaubt. -% \begin{macrocode} +% \begin{macrocode} %<*class> \if@tud@declare% \if@openindex% @@ -2630,7 +2219,9 @@ %</class> \if@tud@index\else% \IfValueT{#5}{% - \ifxblank{#5}{}{\addto@hook\tud@toks@{<http://www.ctan.org/pkg/#5>}}% + \tud@if@strblank{#5}% + {}% + {\addto@hook\tud@toks@{<http://www.ctan.org/pkg/#5>}}% }% \IfValueT{#6}{\addto@hook\tud@toks@{'#6'}}% \fi% @@ -2653,9 +2244,9 @@ % \begin{macrocode} \if@tud@index\else% \IfValueT{#4}{% - \ifxblank{#4}{}{% + \tud@if@strblank{#4}{}{% \tud@trace@bdl@add{#4}% - \ifstr{#6}{none}{}{% + \tud@if@strequal{#6}{none}{}{% \tud@if@lbl@exists{\tud@lbl@tmp}{}{% \ClassWarning{tudscrmanual}{% No existing label \tud@lbl@tmp\space for #4% @@ -2746,7 +2337,7 @@ \NewDocumentCommand\Process@@MarkupInline{mmd==od<>d''}{% \Markup@CheckFormat% % \end{macrocode} -% Um die aktuelle Definiton der temporären Makros nicht zu ändern, erfolgt die +% Um die aktuelle Definition der temporären Makros nicht zu ändern, erfolgt die % formatierte Ausgabe in einer Gruppe. Dabei wird in \cs{@tempc} die minimale % Variante gesichert. % \begin{macrocode} @@ -2773,25 +2364,21 @@ \let\@tempb\relax% \IfValueT{#6}{% \def\@tempb{% -%<*class> - \ClassWarning{tudscrmanual}% -%</class> -%<*package> - \PackageWarning{tudscrtutorial}% -%</package> - {% + \ClassWarning{tudscrmanual}{% You've used the unknown cross-reference\MessageBreak% shorthand '#6'. Only 'auto', 'page' and 'full'\MessageBreak% as well as 'none' \IfValueT{#5}{or 'url' }are valid% }% }% - \ifstr{#6}{auto}{\def\@tempb{ in \autoref{#1}}}{% - \ifstr{#6}{page}{\def\@tempb{ \vpageref{#1}}}{% - \ifstr{#6}{ppage}{\def\@tempb{ \reftextfaraway{#1}}}{% - \ifstr{#6}{full}{\def\@tempb{ in \fullref{#1}}}{% - \ifstr{#6}{none}{\let\@tempa\@tempc\let\@tempb\relax}{}}}}}% + \tud@if@strequal{#6}{auto} {\def\@tempb{ in \autoref{#1}}}{% + \tud@if@strequal{#6}{page} {\def\@tempb{ \vpageref{#1}}}{% + \tud@if@strequal{#6}{ppage}{\def\@tempb{ \reftextfaraway{#1}}}{% + \tud@if@strequal{#6}{full} {\def\@tempb{ in \fullref{#1}}}{% + \tud@if@strequal{#6}{none} {\let\@tempa\@tempc\let\@tempb\relax}{}}}}}% \IfValueT{#5}{% - \ifstr{#6}{url}{\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}{}% + \tud@if@strequal{#6}{url}% + {\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}% + {}% }% }% }{% @@ -2809,14 +2396,16 @@ % \begin{macrocode} \let\@tempb\relax% \IfValueT{#6}{% - \ifstr{#6}{none}{\let\@tempa\@tempc}{% -%<package> \ifstr{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% + \tud@if@strequal{#6}{none}{\let\@tempa\@tempc}{% +%<*package> + \tud@if@strequal{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% +%</package> \def\@tempb{% %<*class> \ClassWarning{tudscrmanual}% %</class> %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% %</package> {% %<*class> @@ -2900,7 +2489,7 @@ % \begin{macrocode} \IfValueT{#3}{\appto\@tempa{=#3}}% \IfValueT{#4}{\appto\@tempa{#4}}% - \eaddto@hook\tud@toks@{\expandafter{\@tempa}}% + \addto@hook@expandafter\tud@toks@{\expandafter{\@tempa}}% \the\tud@toks@% } % \end{macrocode} @@ -2949,16 +2538,7 @@ \undef\Markup@Format \newcommand*\Markup@Suffix{} \NewDocumentCommand\Markup@SetFormat{omod()}{% -% \end{macrocode} -% Außerdem ist noch eine weitere Besonderheit zu beachten. Sollte gerade eine -% Überschrift gesetzt werden, wird das Hauptargument nicht formatiert sondern -% lediglich mit \cs{tud@sec@format} ausgegeben. -% \begin{macrocode} - \def\Markup@Format##1{% - \def\tud@res@a{#2}% - \tud@ifdin{\let\tud@res@a\tud@sec@format}{}% - \begingroup\tud@res@a{\IfValueT{#1}{#1}##1}\endgroup% - }% + \def\Markup@Format##1{\begingroup#2{\IfValueT{#1}{#1}##1}\endgroup}% \IfValueT{#3}{\def\Markup@Suffix{\suffix{#3}}}% %<*class> \IfValueT{#4}{\renewcommand*\Markup@Declare[1]{#4\Markup@Suffix}}% @@ -2982,7 +2562,7 @@ \ClassError{tudscrmanual}% %</class> %<*package> - \PackageError{tudscrtutorial}% + \PackageError{tudscrmanual}% %</package> {\string\Markup@SetFormat\space unused}% {It seems you have forgotten to use \string\Markup@SetFormat.}% @@ -2994,50 +2574,6 @@ % \end{macro}^^A \Markup@ClearFormat % \end{macro}^^A \Markup@SetFormat % \end{macro}^^A \Markup@CheckFormat -% \begin{macro}{\tud@nonchangecase} -% \changes{v2.05}{2015/11/20}{neu}^^A -% \begin{macro}{\tud@x@textcase@uclcnotmath} -% Die \TUDScript-Hauptklassen definieren in Ergänzung zum Paket \pkg{textcase} -% den internen Befehl \cs{tud@x@textcase@uclcnotmath}, womit die Definition von -% Makros ermöglicht wird, welche von \cs{MakeTextUppercase} nicht beachtet -% werden sollen. Hierfür werden \emph{alle} Markup-Befehle der Liste zum -% Ignorieren hinzugefügt. Damit aber bei der eigentlichen Ausgabe alles in -% Majuskeln erscheint, wird für diesen Fall \cs{Markup@Format} genutzt. -% \begin{macrocode} -\ifundef{\tud@x@textcase@uclcnotmath}{}{% - \NewDocumentCommand\tud@nonchangecase{m}{% - \DeclareExpandableDocumentCommand#1{sm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}}% - }% - } - \apptocmd{\tud@x@textcase@uclcnotmath}{% - \tud@nonchangecase\Application% - \tud@nonchangecase\Distribution% - \tud@nonchangecase\Engine% - \tud@nonchangecase\File% - \tud@nonchangecase\Class% - \tud@nonchangecase\Package% - \tud@nonchangecase\Option% - \tud@nonchangecase\Environment% - \tud@nonchangecase\Macro% - \tud@nonchangecase\Length% - \tud@nonchangecase\Counter% -%<*class> - \DeclareExpandableDocumentCommand\Key{smm}{% - \IfBooleanT{##1}{\noexpand\@tud@indextrue}% - \NoCaseChange{#1{##2}{##3}}% - }% - \tud@nonchangecase\Term% - \tud@nonchangecase\PageStyle% - \tud@nonchangecase\Font% - \tud@nonchangecase\Color% -%</class> - }{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} -} -% \end{macrocode} -% \end{macro}^^A \tud@x@textcase@uclcnotmath -% \end{macro}^^A \tud@nonchangecase % % \subsection{Index} % @@ -3047,7 +2583,7 @@ % Klasse erzeugt werden. % \begin{macrocode} \PassOptionsToPackage{xindy,splitindex}{imakeidx} -\RequirePackage{imakeidx}[2013/07/11] +\RequirePackage{imakeidx} % \end{macrocode} % Zuerst ein paar kleinere Einstellungen für das Layout\dots % \begin{macrocode} @@ -3094,12 +2630,12 @@ \let\item\@idxitem \imki@othercode% }% - \patchcmd{\theindex}{% + \patchcmd\theindex{% \imki@indexlevel{\indexname}\imki@indexheaders% }{% \imki@indexheaders% }{}{\tud@patch@wrn{theindex}}% - \patchcmd{\theindex}{% + \patchcmd\theindex{% \ifnum\imki@columns>\@ne \columnsep \imki@columnsep \ifx\imki@idxprologue\relax @@ -3138,12 +2674,14 @@ % danach wird die Datei mit den normalen Einträgen verarbeitet. Siehe hierzu % auch \cs{Process@@Index}. % \begin{macrocode} +\newcommand*\tud@xdy@settings{} +\edef\tud@xdy@settings{-M \@currname-ind.xdy -L german-din} \NewDocumentCommand\makexdyindex{s o m !o}{% \let\@tempb\@empty% %<*class> \IfBooleanT{#1}{% \def\@tempc{\jobname-#4-declare.idx}% - \makeindex[name={#4-declare}]% + \makeindex[name=#4-declare]% \IfFileExists{\@tempc}{% \edef\@tempb{-o \jobname-#4.ind \@tempc}% }{% @@ -3151,14 +2689,17 @@ }% }% %</class> + \ifundef{\inputencodingname}{}{% + \eappto\tud@xdy@settings{\space-C\space\inputencodingname}% + }% \protected@edef\@tempa{% title={#3},% columnsep=\noexpand\f@size\noexpand\p@,% \IfValueTF{#4}{% name={#4},% - options={-M \@currname-ind.xdy -L german-din -t \jobname-#4.xlg \@tempb},% + options={\tud@xdy@settings\space-t \jobname-#4.xlg \@tempb},% }{% - options={-M \@currname-ind.xdy -L german-din -t \jobname.xlg},% + options={\tud@xdy@settings\space-t \jobname.xlg},% }% \IfValueT{#2}{#2}% }% @@ -3193,7 +2734,7 @@ % noch im Index erwünscht ist, weshalb vom Makro \cs{@printindex} ebenfalls % \cs{@tud@indextrue} gesetzt wird. % \begin{macrocode} -\newif\if@tud@index +\tud@newif\if@tud@index \addtoeachtocfile{\protect\@tud@indextrue} % \end{macrocode} % \end{macro}^^A \if@tud@index @@ -3250,13 +2791,13 @@ % dem \TUDScript-Bundle erstellt werden, wird das optionale Argument in runden % Klammern \parg{\string\Class\marg{Klasse}/\string\Package\marg{Paket}} für % einen Verweis auf das \parg{Bundleelement} verwendet, der in \cs{@idxbundle} -% gespeichert wird. Das Argument \verb=|=\meta{Indexmarkup}\verb=|= wird bei +% gespeichert wird. Das Argument \verb+|+\meta{Indexmarkup}\verb+|+ wird bei % Deklarationen zur Unterdrückung von Untereinträgen verwendet. % Der vollständige Funktionsaufruf lautet: % \newline\begingroup\scriptsize % \cs{tud@idx@get}\cs{tud@idx@key}\cs{tud@idx@fmt}\ignorespaces% % \cs{tud@idx@val}\marg{Elem.}|=|\meta{Wert}|=|\oarg{Anm.}\ignorespaces% -% \parg{Bundleelem.}\verb=|=\meta{Indexmark.}\verb=|=\ignorespaces% +% \parg{Bundleelem.}\verb+|+\meta{Indexmark.}\verb+|+\ignorespaces% % \endgroup % \begin{macrocode} \newcommand*\tud@idx@key{} @@ -3333,8 +2874,8 @@ % mit |"| maskiert. % \begin{macrocode} \def#3{#5}% - \tud@replace#2{@}{"@}% - \tud@replace#3{@}{"@}% + \tud@replace@@in#2{@}{"@}% + \tud@replace@@in#3{@}{"@}% % \end{macrocode} % In \cs{@idxbundle} wird ggf. das Paket oder die Klasse gespeichert, für die % der aktuelle Eintrag erzeugt werden soll. Eine explizite Angabe wird in jedem @@ -3432,8 +2973,10 @@ % \begin{macrocode} \@tempswafalse% \IfBooleanT{#1}{\@tempswatrue}% - \IfValueT{#9}{\ifstr{#9}{declare}{\@tempswatrue}{}}% - \IfValueT{#9}{\ifstr{#9}{default}{\@tempswatrue}{}}% + \IfValueT{#9}{% + \tud@if@strequal{#9}{declare}{\@tempswatrue}{}% + \tud@if@strequal{#9}{default}{\@tempswatrue}{}% + }% % \end{macrocode} % In diesem Fall werden die Ergänzungen für Schlüssel und Formatierung ggf. um % die speziellen Schlüsselwerte für das Element ergänzt. @@ -3506,7 +3049,7 @@ \ClassWarning{tudscrmanual}% %</class> %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% %</package> {You should use `|see' instead of `|seealso'}% \tud@cleversee{\alsoname}% @@ -3522,25 +3065,39 @@ % ist alles nachfolgende bis \cs{relax}. % \begin{macrocode} \newcommand*\tud@cleversee{} -\def\tud@cleversee#1#2#3\relax{% - \IfArgIsEmpty{#3}{% - \emph{#1}\space#2% - }{% -% \end{macrocode} -% Folgen im Index nach \cs{cleversee}\marg{Querverweis} noch weitere Einträge, -% so sind diese zu Beginn durch \texttt{,\textvisiblespace} getrennt. Diese -% zwei Zeichen werden mithilfe von \cs{@tempa} ignoriert. -% \begin{macrocode} - \begingroup% - \def\@tempa, ##1\@nil{##1,\space\emph{\alsoname}\space#2}% - \@tempa#3\@nil% - \endgroup% - }% +\def\tud@cleversee#1#2\relax{% + \begingroup% + \let\cleversee\@empty% + \let\cleverseealso\@empty% + \let\tud@res@a\@empty% + \def\tud@res@b{#2}% + \def\tud@res@c##1\\##2\@nil{% + \appto\tud@res@a{##1}% + \def\tud@res@b{##2}% + \trim@spaces@in\tud@res@b% + \in@{\\}{##2}% + }% + \in@true% + \@whilesw\ifin@\fi{% + \expandafter\tud@res@c\tud@res@b\@nil% + }% + \ifx\tud@res@b\@empty% + \mbox{\emph{#1}}% + \else% + \def\tud@res@c##1 ##2\@nil{% + ##2##1\space\mbox{\emph{\alsoname}}% + }% + \expandafter\tud@res@c\tud@res@b\@nil% + \fi% + \space\tud@res@a% + \endgroup% } % \end{macrocode} % \end{macro}^^A \tud@cleversee % \end{macro}^^A \cleverseealso % \end{macro}^^A \cleversee +% \begin{macro}{\seesep} +% \changes{v2.06o}{2022/08/03}{neu}^^A % \begin{macro}{\seeref} % \changes{v2.05}{2015/11/02}{neu}^^A % \begin{macro}{\seeidx} @@ -3548,15 +3105,17 @@ % statt \cs{alsosee} genutzt werden. Das Makro \cs{seeidx} verweist auf die % Seite eines Indexes. % \begin{macrocode} -%<*class> +\newrobustcmd*\seesep{\txb}% \NewDocumentCommand\seeref{s m}{% \emph{\IfBooleanTF{#1}{\alsoname}{\seename}}\space#2% } -\newcommand*\seeidx[2]{\pageref{idx:#1}} +%<*class> +\newrobustcmd*\seeidx[2]{\pageref{idx:#1}} %</class> % \end{macrocode} % \end{macro}^^A \seeidx % \end{macro}^^A \seeref +% \end{macro}^^A \seesep % % \subsubsection{Erstellen von Indexeinträgen} % @@ -3579,7 +3138,7 @@ % \newline\begingroup\scriptsize % \cs{Process@Index}\marg{Stern?}\marg{Element}\ignorespaces% % |=|\meta{Wert}|=|\oarg{Anmerkung}\parg{Bundleelement}\ignorespaces% -% \verb=|=\meta{Indexmarkup}\verb=|=\ignorespaces% +% \verb+|+\meta{Indexmarkup}\verb+|+\ignorespaces% % \endgroup % \begin{macrocode} \NewDocumentCommand\Process@Index{mmd==od()d||}{% @@ -3593,7 +3152,7 @@ \ClassWarning{tudscrmanual}% %</class> %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% %</package> {% You've used the starred version. No index entry\MessageBreak% @@ -3659,15 +3218,15 @@ % \end{macrocode} % Für Markup-Befehle außerhalb von Deklarationsumgebungen wird ein einfacher % Eintrag in den Index erzeugt, wobei auch im Fließtext über das Indexmarkup -% \verb=|=\val{declare}\verb=|= eine Quasi-Deklaration verwendet werden kann. +% \verb+|+\val{declare}\verb+|+ eine Quasi-Deklaration verwendet werden kann. % Dies wird beispielsweise für \KOMAScript-Optionen genutzt, um diese in der % gewünschten Formatierung im Index erscheinen zu lassen. -% \begin{macrocode} +% \begin{macrocode} \else% %</class> \IfValueT{#5}{% %<*class> - \ifstr{#5}{declare}{% + \tud@if@strequal{#5}{declare}{% \appto\tud@lbl@tmp{-declare}% \appto\tud@idx@fmt{|declare}% }{% @@ -3723,8 +3282,8 @@ % Indexuntereintrag erzeugt, der wiederum auf einen Indexeintrag des zweiten % Argumentes verweist. Dabei kann im zweiten Argument ein normaler Begriff oder % ein Markup-Befehl verwendet werden. Normalerweise wird für den Querverweis -% die Referenzklasse \verb=|see= verwendet, die Sternversion des Befehls -% hingegen nutzt \verb=|seeunverified=, um auf eine Prüfung des verwiesenen +% die Referenzklasse \verb+|see+ verwendet, die Sternversion des Befehls +% hingegen nutzt \verb+|seeunverified+, um auf eine Prüfung des verwiesenen % Eintrags zu verzichten. % \begin{macrocode} \NewDocumentCommand\SeeRef{s m m}{% @@ -3734,7 +3293,7 @@ % \end{macrocode} % Wurde im zweiten Argument ein Markup-Befehl angegeben, so wurde durch das % Erstellen der Box das dazugehörige Indexformat in \cs{tud@idx@fmt} für den -% Eintrag erstellt. Andernfalls wurde die Definiton von \cs{tud@idx@fmt} nicht +% Eintrag erstellt. Andernfalls wurde die Definition von \cs{tud@idx@fmt} nicht % geändert und das Argument wird nach der Box direkt in den Index eingetragen. % \begin{macrocode} \ifx\tud@idx@fmt\relax% @@ -3867,7 +3426,7 @@ % die Sternversion von \cs{tudhyperdef} genutzt, um das Label auf die Höhe der % Überschrift zu setzen. % \begin{macrocode} - \ifblank{#1}{% + \tud@if@strblank{#1}{% \def\tud@reserved{\tudhyperdef*{idx:main}}% }{% \def\tud@reserved{\tudhyperdef*{idx:#1}}% @@ -3889,13 +3448,13 @@ \fi% %</class> % \end{macrocode} -% Fur das Paket \pkg{tudscrtutorial} erfolgt eine einfache Ausgabe der Indexe. +% Fur das Paket \pkg{tudscrmanual} erfolgt eine einfache Ausgabe der Indexe. % \begin{macrocode} %<package> \indexprologue[\tud@idx@skip]{}% % \end{macrocode} % Die Ausgabe des gewünschten Index und des leeren des Prologs. % \begin{macrocode} - \ifblank{#1}{\printindex}{\printindex[#1]}% + \tud@if@strblank{#1}{\printindex}{\printindex[{#1}]}% \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% %<class> \let\tud@indexprologue\@empty% } @@ -3936,8 +3495,8 @@ % 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 +% \begin{macrocode} +\tud@newif\if@tud@changedat % \end{macrocode} % 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 @@ -3949,7 +3508,7 @@ % \cs{Process@ChangedAt}\marg{Element}|=|\meta{Wert}|=|\ignorespaces% % \oarg{Ausgabesuffix}\parg{Bundleelement}\ignorespaces% % \endgroup -% \begin{macrocode} +% \begin{macrocode} \NewDocumentCommand\Process@ChangedAt{md==od()}{% \tud@idx@get*\tud@idx@key\tud@idx@fmt\tud@idx@val{#1}=#2=[#3](#4)% } @@ -3983,7 +3542,7 @@ % ein vertikaler Versatz dieser angegeben werden. Die Sternversion des Befehls % unterdrückt die Ausgabe der Randnotiz. % \begin{macrocode} -\newlength\changedatskip +\tud@newdim\changedatskip \NewDocumentCommand\ChangedAt{s o d() m !O{\changedatskip}}{% \IfValueTF{#2}{% \Changed@At@CreateList[#2](#3){#4}% @@ -4144,7 +3703,7 @@ % Hier erfolgt ggf. der Eintrag des \TUDScript-Bundle-Elements, danach folgt % der Markup-Befehl. % \begin{macrocode} - \eaddto@hook\toks@{\@tempb}% + \addto@hook@expandafter\toks@{\@tempb}% \addto@hook\toks@{!#1!}% % \end{macrocode} % Wurde ein Untereintrag angegeben, wird dieser hier gefolgt von der @@ -4174,14 +3733,14 @@ \toks@{#3!Allgemein }% \IfValueTF{#2}{% \addto@hook\toks@{!}% - \eaddto@hook\toks@{\@tempb:\space}% + \addto@hook@expandafter\toks@{\@tempb:\space}% \IfValueTF{#5}{% \addto@hook\toks@{#5}% }{% \addto@hook\toks@{\emph{neu}}% }% }{% - \eaddto@hook\toks@{\@tempb}% + \addto@hook@expandafter\toks@{\@tempb}% \addto@hook\toks@{!}% \addto@hook\toks@{#5}% }% @@ -4260,7 +3819,7 @@ % im dritten Argument gegebenen Markup-Befehl. Dies wird für Anmerkungen zu % expliziten Schlüssel-Wert-Paaren bei Optionen oder Parametern genutzt. % \begin{macrocode} - \ifxblank{#4}{}{% + \tud@if@strblank{#4}{}{% % \end{macrocode} % Hierfür wird die zuvor erhaltene Formatierung des Markup-Befehls des dritten % Argumentes an den Haupteintrag \cs{tud@idx@val} mit der zusätzlichen @@ -4294,7 +3853,7 @@ % Änderungsliste vermerkt, ob es sich bei dem Markup-Befehl respektive dessen % Untereintrag um eine \emph{neue} bzw. eine \emph{obsolete} Variante handelt. % \begin{macrocode} - \ifxblank{#5}{% + \tud@if@strblank{#5}{% \if@tud@obsolete% \appto\tud@idx@fmt{: \emph{entf\"allt}}% \else% @@ -4351,7 +3910,7 @@ % \cs{item}-Befehle werden eine Ebene nach oben gehoben. % \begin{macrocode} \let\lettergroup\@gobble% - \apptocmd{\theindex}{% + \apptocmd\theindex{% \let\subsubsubitem\subsubitem% \let\subsubitem\subitem% \let\subitem\item% @@ -4369,11 +3928,9 @@ \expandafter\def\csname\string\item\endcsname##1~% }{% \endgroup% - \let\@tempb\@firstofone% - \if@tud@cdoldfont@active\def\@tempb##1{\NoCaseChange{##1}}\fi% - \addsec[##1]{\TUDScript \@tempb{##1}}% + \addsec[{##1}]{\TUDScript ##1}% \tudhyperdef*{idx:changelog:##1}% - \def\@tempa{\indexname: \TUDScript \@tempb{##1}}% + \def\@tempa{\indexname: \TUDScript ##1}% \@mkboth{\@tempa}{\@tempa}% }% }{}{\tud@patch@wrn{theindex}}% @@ -4422,7 +3979,7 @@ \forlistloop\@tempa{\tud@templist}% \hline% \end{tabular}% - }[#2]% + }[{#2}]% \ignorespaces% }% \fi% @@ -4436,11 +3993,11 @@ % Handbuch erläutert werden. % % Das Paket \pkg{enumitem} erlaubt das Beeinflussen der Standardlisten und die -% Ableitung neuer Listen aus diesen. Mit \cs{setlist\{noitemsep\}} werden die +% Ableitung neuer Listen aus diesen. Mit \cs{setlist}|{noitemsep}| werden die % zusätzlichen Zwischenräume innerhalb der Listen beseitigt. Weiterhin wird % linksbündiger Flattersatz für die Standardlisten aktiviert. % \begin{macrocode} -\RequirePackage{enumitem}[2011/09/28] +\RequirePackage{enumitem} \setlist{before*={\endgraf\tud@RaggedRight},partopsep=0pt,noitemsep} % \end{macrocode} % \begin{macro}{\stditem} @@ -4462,7 +4019,7 @@ % Damit die Änderungsnotizen in der passenden vertikalen Position erscheinen, % wird die Länge \cs{changedatskip} entsprechend angepasst. % \begin{macrocode} - \setlength\changedatskip{-\baselineskip}% + \tud@setdim\changedatskip{-1\baselineskip}% }{}% } % \end{macrocode} @@ -4486,7 +4043,7 @@ \newcommand*\tud@values{} \NewDocumentEnvironment{values}{mo}{% \def\tud@values{#1}% - \IfValueTF{#2}{\@values[#2]}{\@values}% + \IfValueTF{#2}{\@values[{#2}]}{\@values}% }{% \end@values% } @@ -4503,7 +4060,7 @@ % \begin{macro}{\tud@item@values} % \begin{macro}{\forslashlist} % Das Makro \cs{tud@item@values} ersetzt in der Umgebung \env{values} die -% originale Definiton von \cs{item}. Die Sternversion kann dabei verwendet +% originale Definition von \cs{item}. Die Sternversion kann dabei verwendet % werden, um die Einstellung für den Säumniswert hervorzuheben. Im ersten % optionalen Argument können die möglichen Werte einer Option oder eines % Parameters angegeben werden. Sind mehrere Werte gleichbedeutende Werte @@ -4615,7 +4172,7 @@ % angehängt und als einziges optionales Argument an \cs{item} übergeben. % \begin{macrocode} \protected@edef\@tempa{#2\IfValueT{#3}{/#3}}% - \eaddto@hook\toks@{\expandafter[\@tempa]}% + \addto@hook@expandafter\toks@{\expandafter[\@tempa]}% \IfValueT{#4}{\addto@hook\toks@{[#4]}}% \IfValueT{#5}{\addto@hook\toks@{(#5)}}% \the\toks@% @@ -4700,16 +4257,16 @@ % werden. Dabei ist das zu übergebende Argument die Anzahl der zu erzeugenden, % linksbündigen Spalten. % \begin{macrocode} -\newlength\tempdim +\tud@newglue\tempdim \newsavebox\tabularm@box -\newlength\tabularm@wd +\tud@newdim\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}% + \tud@setdim\tabularm@wd{\wd\tabularm@box}% \def\tabularm@num{#1}% \let\allcolumnpar\tabularm@allcolumnpar% \begin{tabular}{*{#1}l}\BODY\end{tabular}% @@ -4730,7 +4287,7 @@ % Mit Hilfe von \pkg{tabularx} können Tabellen bestimmter Breite und % automatisch berechneten Spaltenbreiten gesetzt werden. % \begin{macrocode} -\RequirePackage{tabularx}[1999/01/07] +\RequirePackage{tabularx} % \end{macrocode} % \begin{macro}{\TermTable} % \begin{macro}{\Term@Table} @@ -4749,11 +4306,11 @@ \vskip\medskipamount% \@afterindentfalse\@afterheading% \IfBooleanTF{#1}{% - \IfValueTF{#3}{\setlength\@tempdima{#3}}{\setlength\@tempdima{\linewidth}}% - \setlength\@tempdimc{-.7\baselineskip}% + \tud@setdim\@tempdima{\IfValueTF{#3}{#3}{\linewidth}}% + \tud@setdim\@tempdimc{-.7\baselineskip}% \begin{tabularx}{\@tempdima}{lXX}\Term@Table\end{tabularx}% }{% - \setlength\@tempdimc{\z@}% + \tud@setdim\@tempdimc{\z@}% \begin{tabular}{lll}\Term@Table\end{tabular}% }% \par\addvspace{\medskipamount}% @@ -4767,9 +4324,9 @@ } \newcommand*\Term@@Table[1]{% \Term{#1}'none' & % - \ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & % + \tud@if@strempty{\csuse{#1}}{\PName{leer}}{\csuse{#1}} & % \selectlanguage{english}\vspace*{\@tempdimc}% - \ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline% + \tud@if@strempty{\csuse{#1}}{\PName{empty}}{\csuse{#1}}\tabularnewline% } % \end{macrocode} % \end{macro}^^A \Term@@Table @@ -4833,17 +4390,14 @@ % genutzt. Für dieses wird eine eigene Stildatei verwendet, welche zur Laufzeit % erzeugt wofür zuerst ein Ausgabestream reserviert wird. % \begin{macrocode} -\newcommand*\tud@write@a{} -\newwrite\tud@write@a +\tud@newwrite\tud@write@a % \end{macrocode} % Für die Tutorials werden später zusätzlich noch ein weiterer Ausgabe- sowie % ein Eingabestream benötigt, die hier gleich mit initialisiert werden. % \begin{macrocode} %<*package> -\newcommand*\tud@write@b{} -\newwrite\tud@write@b -\newcommand*\tud@read{} -\newread\tud@read +\tud@newwrite\tud@write@b +\tud@newread\tud@read %</package> % \end{macrocode} % \end{macro}^^A \tud@read @@ -4856,9 +4410,9 @@ % bessere Verständnis des Anwenders angegeben. Um diese darzustellen wird das % Paket \pkg{listings} verwendet. % \begin{macrocode} -\RequirePackage{listings}[2014/03/04] +\RequirePackage{listings} \lstdefinestyle{tudscr}{% - basicstyle=\ttfamily\ifdef{\setstretch}{\setstretch{1}}{},% + basicstyle=\ttfamily\ifundef{\setstretch}{}{\setstretch{1}},% keywordstyle=,% columns=fullflexible,keepspaces,% aboveskip=\smallskipamount,% @@ -4902,12 +4456,12 @@ % Das Paket \pkg{filemod} wird genutzt, um externer Dateien nur zu kompilieren, % wenn dies aufgrund einer Änderung auch notwendig ist. % \begin{macrocode} -\RequirePackage{filemod}[2011/09/19] +\RequirePackage{filemod} % \end{macrocode} % Um \cs{ShellEscape} sowohl für Windows als auch für unixoide Betriebssysteme % nutzen zu können, wird das Paket \pkg{ifplatform} geladen. % \begin{macrocode} -\RequirePackage{ifplatform}[2010/10/22] +\RequirePackage{ifplatform} % \end{macrocode} % \begin{macro}{\tud@shellescape@wrn} % \changes{v2.02}{2014/10/14}{neu}^^A @@ -4920,7 +4474,7 @@ \ClassWarning{tudscrmanual}% %</class> %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% %</package> {% File `#1' is missing!\MessageBreak% @@ -5145,10 +4699,10 @@ % sortieren zu können. % \begin{macrocode} \newcommand*\tud@tut@append[1]{% - \ifstr{#1}{preamble}{% + \tud@if@strequal{#1}{preamble}{% \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@a}% }{% - \ifstr{#1}{trunk}{% + \tud@if@strequal{#1}{trunk}{% \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@b}% }{% \tud@tut@readtostream{\tud@tut@temp.tex}{#1}% @@ -5170,7 +4724,7 @@ % und sinnvollen Paketen an. Diese sollten direkt nach \cs{StartTutorial} in % der \env{Preamble}-Umgebung angegeben werden. % \begin{macrocode} -\TUDoptions{headingsvskip=-10ex} +\TUDoptions{headingsvskip=-6ex} \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% @@ -5178,7 +4732,7 @@ \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}% \faculty{}% \maketitle% - \ifblank{#1}{}{% + \IfArgIsEmpty{#1}{}{% \noindent% \begin{abstract}% \noindent#1% @@ -5531,8 +5085,8 @@ % Text vorangestellt werden kann. % \begin{macrocode} \@tempa{\Code@Preamble}{}% - \setlength\@tempdimc{\leftskip}% - \setlength\leftskip{\leftmargin}% + \tud@setdim\@tempdimc{\leftskip}% + \tud@setdim\leftskip{\leftmargin}% % \end{macrocode} % Durch die zweimalige Verwendung von \file{\string\tud@tut@temp.tex}~-- einmal % direkt und einmal innerhalb einer Box~-- können darin verwendete Befehle wie @@ -5542,7 +5096,7 @@ % \begin{macrocode} \@tempa{\input{\tud@tut@temp.tex}}{\Code@Hook}% \global\let\Code@Hook\relax% - \setlength\leftskip{\@tempdimc}% + \tud@setdim\leftskip{\@tempdimc}% \noindent\ignorespaces% } % \end{macrocode} @@ -5598,7 +5152,7 @@ % und der Inhalt von \file{\string\tud@tut@temp.tex} wie gewünscht eingebunden % und kompiliert. Damit die so erstellte PDF-Datei mit \cs{IncludeStandalone} % im weiteren Verlauf in das Tutorial eingebunden werden kann, wird diese -% außerdem noch in \cs{\meta{Argument}-temp.pdf} umbenannt. Das Makro +% außerdem noch in \file{\meta{Argument}-temp.pdf} umbenannt. Das Makro % \cs{StandaloneDate} wird auf das Datum der Master-Datei gesetzt, damit das % voreingestellte Datum der erzeugten Datei angepasst werden kann. % \begin{macrocode} @@ -5612,7 +5166,7 @@ \ifx\@tempa\@tempb\relax% \let\@tempb\@empty% \else% - \edef\@tempb{\etex@unexpanded{\def\StandaloneDate}{\@date}}% + \edef\@tempb{\unexpanded{\def\StandaloneDate}{\@date}}% \fi% \edef\@tempa{% \tud@latex@ext -jobname=\tud@tut@temp\space% @@ -5648,11 +5202,11 @@ \@tempcnta\z@% \@for\@tempa:=#3\do{\advance\@tempcnta\@ne}% \ifnum\@tempcnta>\z@\relax% - \setlength\@tempdima{\textwidth}% + \tud@setdim\@tempdima{\textwidth}% \divide\@tempdima\@tempcnta% \advance\@tempcnta\m@ne% \multiply\@tempcnta 2% - \addtolength\@tempdima{-\@tempcnta\tabcolsep}% + \tud@addtodim\@tempdima{-\@tempcnta\tabcolsep}% \@for\@tempa:=#3\do{% \advance\@tempcnta\m@ne% \edef\@tempb{% @@ -5693,7 +5247,7 @@ \else% \PassOptionsToPackage{off}{auto-pst-pdf}% \fi% - \RequirePackage{auto-pst-pdf}[2009/04/26]% + \RequirePackage{auto-pst-pdf} % \end{macrocode} % Nach dem Paket \pkg{auto-pst-pdf} seine Arbeit verrichtet hat, werden alle % etwaigen temporär erzeugten Dateien radikal gelöscht. @@ -5720,10 +5274,10 @@ }{% \PassOptionsToPackage{colorinlistoftodos,color=HKS92!10}{todonotes}% } -\RequirePackage{todonotes}[2012/07/25] +\RequirePackage{todonotes} \AtEndPreamble{% \ifdim\marginparwidth<2cm\relax% - \setlength\marginparwidth{2cm}% + \tud@setdim\marginparwidth{2cm}% \fi% } % \end{macrocode} @@ -5745,7 +5299,7 @@ % Diese Option ist verantwortlich für den Schalter \cs{if@tud@todo}. Über % diesen wird gesteuert, ob ToDo-Notizen ausgegeben werden sollen. % \begin{macrocode} -\newif\if@tud@todo +\tud@newif\if@tud@todo \newcommand*\tud@todo@type@pos{} \let\tud@todo@type@pos\relax \newcommand*\tud@todo@type@neg{} @@ -5768,7 +5322,7 @@ % vor dem eigentlichen Typen verwendet werden muss. % \begin{macrocode} \def\@tempa not##1##2##3##4\@nil{% - \ifstr{##1##2##3}{not}{% + \tud@if@strequal{##1##2##3}{not}{% \IfArgIsEmpty{##4}{}{% \listeadd\tud@todo@type@neg{##4}% \@tud@todotrue% @@ -5819,7 +5373,7 @@ % \cs{@currentHref} gesichert und am Ende wiederhergestellt. % \begin{macrocode} \NewDocumentCommand\ToDo{s o m !o}{% - \ifbool{@tud@todo}{% + \if@tud@todo% \global\let\tud@currentHref\@currentHref% \begingroup% % \end{macrocode} @@ -5910,7 +5464,7 @@ \tud@v@get\tud@res@a{#4}% \def\tud@res@c##1.##2##3##4\@nil{##1##2##3}% \edef\tud@res@b{\expandafter\tud@res@c\tud@res@a.000\@nil}% - \ifnumber{\tud@res@b}{% + \Ifnumber{\tud@res@b}{% \edef\tud@res@c{% \expandafter\tud@res@c\TUDScriptVersionNumber.000\@nil% }% @@ -5959,11 +5513,11 @@ % Andernfalls erscheint im Rand die Anmerkung \emph{ToDo}. % \begin{macrocode} \renewcommand*\marginpar[2][]{% - \marginnote[##1]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% + \marginnote[{##1}]{##2}[\dimexpr-\ht\z@+1.6ex+1.75pt\relax]% }% \toks@\expandafter{\tud@res@a noline,nolist}% \settowidth\marginparwidth{\tud@res@c}% - \addtolength\marginparwidth{\dimexpr1.6ex+1pt\relax}% + \tud@addtodim\marginparwidth{1.6ex+1pt}% \expandafter\todo\expandafter[\the\toks@]{\tud@res@c\strut}% \aftergroup\par\aftergroup\noindent% % \end{macrocode} @@ -5976,9 +5530,7 @@ \ifx\tud@todo@type@use\@empty\else% \begingroup% \let\tud@res@c\@empty% - \renewcommand*{\do}[1]{% - \appto\tud@res@c{,##1}% - }% + \def\do##1{\appto\tud@res@c{,##1}}% \dolistloop{\tud@todo@type@use}% \edef\tud@res@c{% \endgroup% @@ -5992,7 +5544,7 @@ \fi% \endgroup% \global\let\@currentHref\tud@currentHref% - }{}% + \fi% \ignorespaces% }% % \end{macrocode} @@ -6014,52 +5566,35 @@ % \end{macro}^^A \tud@todo@type@use % \end{macro}^^A \ToDo % -% \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 -% erfolgen mittels einiger Pakete verschiedene Formateinstellungen. +% Für die Klasse \cls{tudscrmanual} werden ein 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} oder \pkg{inputenx} erfolgen. -% \begin{macrocode} -%<*body|class&doc> -\RequirePackage{csquotes}[2011/10/22] -%</body|class&doc> -% \end{macrocode} -% -% \iffalse -%<*body> -% \fi -% % Für den Fließtext werden Pfeile u.\,ä. durch \pkg{textcomp} bereitgestellt. % \begin{macrocode} -\RequirePackage{textcomp}[2005/09/27] +\RequirePackage{textcomp} % \end{macrocode} % Vergrößerung des Durchschusses. % \begin{macrocode} -\RequirePackage{setspace}[2011/12/19] +\RequirePackage{setspace} \setstretch{1.1} % \end{macrocode} % Verbesserte Zitate. % \begin{macrocode} \PassOptionsToPackage{vskip=\smallskipamount}{quoting} -\RequirePackage{quoting}[2014/01/28] +\RequirePackage{quoting} % \end{macrocode} % Automatisierte Datumsformatierung. % \begin{macrocode} -\RequirePackage{isodate}[2010/01/03] +\RequirePackage{isodate} % \end{macrocode} % Verschiedenste Symbole aus dem \LaTeX-Universum. % \begin{macrocode} -\RequirePackage{hologo}[2012/04/26] +\RequirePackage{hologo} % \end{macrocode} % % \iffalse @@ -6069,7 +5604,7 @@ % Mit dem Paket \pkg{ragged2e} wird~-- falls benötigt~-- die Silbentrennung im % Flattersatz aktiviert. % \begin{macrocode} -\RequirePackage{ragged2e}[2009/05/21] +\RequirePackage{ragged2e} % \end{macrocode} % Die Fußnoten werden nicht mit jedem Kapitel zurückgesetzt\dots % \begin{macrocode} @@ -6081,12 +5616,12 @@ % \end{macrocode} % Das Paket wird für die Erstellung von Tabellen verwendet. % \begin{macrocode} -\RequirePackage{booktabs}[2005/04/14] +\RequirePackage{booktabs} % \end{macrocode} % Die Formatierung von Gleitobjekten. % \begin{macrocode} -\RequirePackage{caption}[2015/09/17] -\RequirePackage{floatrow}[2008/08/02] +\RequirePackage{caption} +\RequirePackage{floatrow} \DeclareCaptionSubType[alph]{figure} \DeclareCaptionSubType[alph]{table} \captionsetup{font=sf,labelfont=bf,labelsep=space} @@ -6097,160 +5632,40 @@ % \end{macrocode} % Erstellen von Grafiken. % \begin{macrocode} -\RequirePackage{tikz}[2013/12/13] +\RequirePackage{tikz} % \end{macrocode} % Einbinden von ganzseitigen PDF"~Dokumenten als Beispiel im Handbuch. % \begin{macrocode} -\RequirePackage{pdfpages}[2013/08/25] +\RequirePackage{pdfpages} % \end{macrocode} % Typographisch saubere Einheiten. % \begin{macrocode} -\RequirePackage{units}[1998/08/04] +\RequirePackage{units} % \end{macrocode} % Das Paket \pkg{ellipsis} sorgt für korrekte Auslassungpunkte. % \begin{macrocode} \AtEndPreamble{% - \RequirePackage{ellipsis}[2004/9/28]% + \RequirePackage{ellipsis} \let\ellipsispunctuation\relax% } % \end{macrocode} % % \iffalse %</class> -%</body> -%<*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 |@|"~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} -% \begin{macro}{\CTAN} -% \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 % \changes{v2.05}{2015/07/23}{Hyperlinktext über optionales Argument}^^A % Für die Anwenderdokumentation werden weitere Auszeichnungsbefehle definiert. % \begin{macrocode} -\newcommand*\Attention[2][\z@]{% - \marginnote{% - \setlength\fboxsep{0.25em}% - \fbox{Achtung!}% - }[#1]% - \emph{\trim@spaces{#2}}% -} -\NewDocumentCommand\Forum{!s !t'}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \IfBooleanT{#2}{\toks@{\url}}% - \addto@hook\toks@{{http://latex.wcms-file3.tu-dresden.de/phpBB3/}}% - \IfBooleanF{#2}{\addto@hook\toks@{{TUD-\LaTeX-Forum}}}% - \the\toks@\xspace% -} -\NewDocumentCommand\CTAN{!s !o !g}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \addto@hook\toks@{{http://www.ctan.org/\IfValueT{#2}{#2}}}% - \addto@hook\toks@{% - {\tud@english{Comprehensive TeX Archive Network (CTAN\IfValueT{#3}{~#3})}}% - }% - \the\toks@\xspace% -} -%<*class> -\NewDocumentCommand\GitHubRepo{!s !t' !O{releases}}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \IfBooleanT{#2}{\toks@{\url}}% - \addto@hook\toks@{{https://github.com/tud-cd/tudscr/#3}}% - \IfBooleanF{#2}{% - \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.% } -%</class> \NewDocumentCommand\scrguide{!s !O{\KOMAScript-Handbuch}}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{% @@ -6262,119 +5677,11 @@ % \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 -% \end{macro}^^A \Attention -% -% \iffalse -%</body> -%<*body|class&doc> -% \fi -% -% \begin{macro}{\CD} -% \begin{macro}{\CDs} -% \begin{macro}{\TUD} -% \begin{macro}{\TnUD} -% \begin{macro}{\TUDCD} -% \changes{v2.05}{2015/11/01}{neu}^^A -% \begin{macro}{\TUDCDs} -% \changes{v2.05}{2015/11/01}{neu}^^A -% \begin{macro}{\DDC} -% Diese Befehle stellen regelmäßig in der Quelltextdokumentatuion und im -% Handbuch genutzte Textbausteine bereit. Dazu wird der Befehl \cs{xspace} aus -% dem \pkg{xspace}-Paket genutzt. -% \begin{macrocode} -\newcommand*\CD{\tud@english{Corporate Design}\xspace} -\newcommand*\CDs{\tud@english{Corporate Designs}\xspace} -\newcommand*\TUD{Technische Universit\"at Dresden\xspace} -\newcommand*\TnUD{Technischen Universit\"at Dresden\xspace} -\newcommand*\TUDCD{\CD der \TnUD} -\newcommand*\TUDCDs{\CDs der \TnUD} -\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% -} -\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 -% \end{macro}^^A \TUDCD -% \end{macro}^^A \TnUD -% \end{macro}^^A \TUD -% \end{macro}^^A \CDs -% \end{macro}^^A \CD -% \begin{macro}{\OpenSans} -% \changes{v2.06}{2018/07/02}{neu}^^A -% \begin{macro}{\tud@cdfont@texteb} -% \changes{v2.06}{2018/08/31}{neu}^^A -% \begin{macro}{\Univers} -% \begin{macro}{\DIN} -% Für die Nennung der Schriften spezielle Markos bereitgestellt. -% \begin{macrocode} -\DeclareTextFontCommand\tud@cdfont@texteb{% - \fontfamily{\tud@cdfont@fam}\fontseries{\tud@cdfont@ebf}\selectfont% -} -\newrobustcmd*\OpenSans{% - \texorpdfstring{\tud@cdfont@texteb{Open~Sans}}{Open Sans}\xspace% -} -\newrobustcmd*\Univers{\texorpdfstring{\textcdbi{Univers}}{Univers}\xspace} -\newrobustcmd*\DIN{\texorpdfstring{\textcdxi{DIN~Bold}}{DIN Bold}\xspace} -% \end{macrocode} -% \end{macro}^^A \DIN -% \end{macro}^^A \Univers -% \end{macro}^^A \tud@cdfont@texteb -% \end{macro}^^A \OpenSans -% \begin{macro}{\@pnumwidth} -% \begin{macro}{\@tocrmarg} -% Für das Inhaltsverzeichnis werden die beiden Längen angepasst. -% \begin{macrocode} -\renewcommand*\@pnumwidth{2.1em}% -\renewcommand*\@tocrmarg{3.1em}% -% \end{macrocode} -% \end{macro}^^A \@tocrmarg -% \end{macro}^^A \@pnumwidth -% -% \iffalse -%</body|class&doc> -%<*body> -% \fi -% -% \begin{macro}{\textsbn} -% \changes{v2.02}{2014/08/16}{neu}^^A -% \begin{macro}{\sbnfont} -% \changes{v2.02}{2014/08/16}{neu}^^A -% \begin{macro}{\textsbs} -% \changes{v2.02}{2014/08/16}{neu}^^A -% \begin{macro}{\sbsfont} -% \changes{v2.02}{2014/08/16}{neu}^^A -% Für die Anwenderdokumentation werden weitere Auszeichnungsbefehle definiert. -% \begin{macrocode} -\newcommand*\textsbn{} -\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} -\DeclareTextFontCommand\textsbn{\sbnfont} -\newcommand*\textsbs{} -\newrobustcmd*\sbsfont{\sffamily\bfseries\slshape} -\DeclareTextFontCommand\textsbs{\sbsfont} -% \end{macrocode} -% \end{macro}^^A \sbsfont -% \end{macro}^^A \textsbs -% \end{macro}^^A \sbnfont -% \end{macro}^^A \textsbn % % \iffalse %</body> % \fi % -% \Finale +% \PrintBackMatter % \endinput |