From 11b354fc54c78f17bd8ae048833bd2ca682e3494 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Tue, 26 Jul 2022 18:55:12 +0200 Subject: [PATCH 01/24] some markup for tudscrdoc --- source/tudscr-manual.dtx | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index e1917e89..c0b64b9f 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -6094,11 +6094,6 @@ % \end{macrocode} % \end{macro}^^A \tud@replace % -% \iffalse -% -%<*body> -% \fi -% % % \subsubsection{Zusätzliche Markup-Befehle} % @@ -6124,11 +6119,19 @@ }[#1]% \emph{\trim@spaces{#2}}% } -\NewDocumentCommand\Forum{!s !t'}{% +\newcommand*\TUDForum{% + \mbox{T\kern.05em U\kern.05em D-\LaTeX-Forum}\xspace% +} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{\def\TUDForum{TUD-LaTeX-Forum}}% +} +\NewDocumentCommand\Forum{!s !t' !O{\TUDForum} !d<>}{% \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}}}% + \def\@tempa{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \edef\@tempa{{\@tempa\IfValueT{#4}{viewtopic.php?t=#4}}}% + \eaddto@hook\toks@{\@tempa}% + \IfBooleanF{#2}{\addto@hook\toks@{{#3}}}% \the\toks@\xspace% } \NewDocumentCommand\CTAN{!s !o !g}{% @@ -6139,16 +6142,18 @@ }% \the\toks@\xspace% } -%<*class> -\NewDocumentCommand\GitHubRepo{!s !t' !O{releases}}{% +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !d<>}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \IfBooleanT{#2}{\toks@{\url}}% - \addto@hook\toks@{{https://github.com/tud-cd/tudscr/#3}}% + \def\@tempa{https://github.com/tud-cd/tudscr/}% + \edef\@tempa{{\@tempa\IfValueTF{#4}{issues/#4}{#3}}}% + \eaddto@hook\toks@{\@tempa}% \IfBooleanF{#2}{% - \addto@hook\toks@{{\tud@english{GitHub-Repository~\Distribution*{tudscr}}}}% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\textcdsn{tudscr}}}}% }% \the\toks@\xspace% } +%<*!doc> \newcommand*\Download[1]{% https://github.com/tud-cd/tudscr/releases/download/#1% } @@ -6156,7 +6161,6 @@ F\"ur die Klassen \Class{tudscrartcl} sowie \Class{tudscrposter} ist diese Option nicht verf\"ugbar.% } -% \NewDocumentCommand\scrguide{!s !O{\KOMAScript-Handbuch}}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \addto@hook\toks@{% @@ -6165,6 +6169,7 @@ \addto@hook\toks@{{#2}}% \the\toks@\xspace% } +% % \end{macrocode} % \end{macro}^^A \scrguide % \end{macro}^^A \notudscrartcl @@ -6174,11 +6179,6 @@ % \end{macro}^^A \Forum % \end{macro}^^A \Attention % -% \iffalse -% -%<*body|class&doc> -% \fi -% % \begin{macro}{\CD} % \begin{macro}{\CDs} % \begin{macro}{\TUD} From 812545062d234ffa7d8a9934c0ee1c804a0770a3 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Fri, 29 Jul 2022 02:35:30 +0200 Subject: [PATCH 02/24] code style --- source/tudscr-area.dtx | 59 ++++++++++++---------- source/tudscr-base.dtx | 52 ++++++++++---------- source/tudscr-comp.dtx | 93 ++++++++++++++++++++++------------- source/tudscr-fields.dtx | 20 +++++--- source/tudscr-fonts.dtx | 20 ++++---- source/tudscr-frontmatter.dtx | 38 +++++++------- source/tudscr-layout.dtx | 28 +++++------ source/tudscr-manual.dtx | 69 +++++++++++++------------- source/tudscr-misc.dtx | 14 +++--- source/tudscr-pagestyle.dtx | 43 +++++++++------- source/tudscr-supervisor.dtx | 12 ++--- source/tudscr-title.dtx | 19 ++++--- 12 files changed, 258 insertions(+), 209 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index c8164e1c..d0dc247b 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -123,7 +123,7 @@ \advance\hoffset-\paperwidth \hoffset.5\hoffset }% - \pretocmd{\CROP@center}{% + \pretocmd\CROP@center{% \@tud@x@crop@centertrue% }{}{\tud@patch@wrn{CROP@center}}% } @@ -776,11 +776,11 @@ % sämtliche Einstellungen für den Satzspiegel unterdrückt. % \begin{macrocode} \if@tud@x@standalone@crop - \PreventPackageFromLoading{geometry}% - \let\tud@cdgeometry@process\relax% + \PreventPackageFromLoading{geometry} + \let\tud@cdgeometry@process\relax \else - \RequirePackage{geometry}[2010/09/12]% -\fi% + \RequirePackage{geometry}[2010/09/12] +\fi \AfterPackage*{geometry}{% \CheckCommand*\Gm@initnewgm{% \Gm@passfalse @@ -974,7 +974,7 @@ % angepasst werden. Hierfür wird am Ende von \cs{Gm@changelayout} ein Patch % eingehängt. % \begin{macrocode} - \apptocmd{\Gm@changelayout}{% + \apptocmd\Gm@changelayout{% \if@tud@x@geometry@enabled% \tud@if@preamble{}{% \@tud@x@geometry@fixmarginstrue% @@ -1205,7 +1205,7 @@ \ifstr{\@tempa}{executive}{\@tempswatrue}{}% \ifstr{\@tempa}{legal}{\@tempswatrue}{}% \if@tempswa\else% - \ifx\@tempa\@empty\relax\else% + \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% \if ##1a\@tempswatrue% \else\if ##1b\@tempswatrue% @@ -1328,7 +1328,7 @@ \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% + \unexpanded{\def#1}{% layoutoffset={% \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset% }% @@ -1640,8 +1640,8 @@ % Seitenrand (\cs{@tempdima}), die Textbreite (\cs{@tempdimb}) sowie die Breite % der Randnotizen (\cs{@tempdimc}). Danach kommt der Gleichanteil. % \begin{macrocode} - \else% true/symmetric/twoside - \ifcase\tud@cdgeometry@num\relax\or\or% true + \else% true/symmetric/twoside + \ifcase\tud@cdgeometry@num\relax\or\or% true \setlength\@tempdima{\tud@len@widemargin}% \if@reversemargin% \setlength\@tempdimc{\tud@len@widemargin}% @@ -2027,7 +2027,7 @@ % werden zwei~-- für die KOmpatibilitätsvariante drei~-- Layouts erstellt. % Diese können mit \cs{loadgeometry}\marg{Stil} geladen werden. % \begin{macrocode} - \newcommand*\tud@currentgeometry{} + \newcommand*\tud@currentgeometry{}% \newcommand*\tud@BeforeSelectAnyPageStyle[1]{% % \end{macrocode} % Der \pgs{tudheadings}-Seitenstil wird mit dem Befehl \cs{newpairofpagestyles} @@ -2127,7 +2127,7 @@ % \begin{macrocode} \global\tud@len@areavskip=\tud@len@areavskip% }{}% - } + }% % \end{macrocode} % \end{macro}^^A \tud@currentgeometry % \end{macro}^^A \tud@BeforeSelectAnyPageStyle @@ -2162,8 +2162,8 @@ \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% - \etex@unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% + \unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% + \unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% }% \tud@res@a% } @@ -2183,7 +2183,7 @@ % \begin{macrocode} \xpretocmd{\typearea}{% \tud@x@typearea@before% - \def\tud@x@typearea@init{\typearea[#1]{#2}}% + \def\tud@x@typearea@init{\typearea[{#1}]{#2}}% }{}{\tud@patch@wrn{typearea}} \xapptocmd{\typearea}{\tud@x@typearea@after}{}{\tud@patch@wrn{typearea}} \xpretocmd{\areaset}{% @@ -2193,8 +2193,8 @@ \setlength\@tempdimb{#3}% \edef\tud@res@a{% \endgroup% - \noexpand\def\noexpand\tud@x@typearea@init{% - \noexpand\areaset[#1]{\the\@tempdima}{\the\@tempdimb}% + \def\noexpand\tud@x@typearea@init{% + \unexpanded{\areaset[{#1}]}{\the\@tempdima}{\the\@tempdimb}% }% }% \tud@res@a% @@ -2207,13 +2207,13 @@ % \begin{macrocode} \tud@cs@store{storeareas} \renewcommand*\storeareas[1]{% - \begingroup + \begingroup% \tud@x@geometry@fixmargins% \tud@cs@use{storeareas}{#1}% \def\tud@res@b##1{\unexpanded{\setlength##1}{\the##1}}% \edef\tud@res@a{% \endgroup% - \etex@unexpanded{\def#1}{% + \unexpanded{\def#1}{% \tud@res@b{\tud@len@layoutwidth}% \tud@res@b{\tud@len@layoutheight}% \tud@res@b{\tud@len@layouthoffset}% @@ -2338,14 +2338,23 @@ % folgenden \KOMAScript-Befehle Leerseiten erzeugt werden, müssen diese minimal % angepasst werden. % \begin{macrocode} -\patchcmd{\cleardoubleoddpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleoddpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleoddpageusingstyle}} -\patchcmd{\cleardoubleevenpageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoubleevenpageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoubleevenpageusingstyle}} -\patchcmd{\cleardoublepageusingstyle}{\pagestyle}{% - \let\tud@BeforeSelectAnyPageStyle\@gobble\pagestyle% +\patchcmd\cleardoublepageusingstyle{% + \pagestyle% +}{% + \let\tud@BeforeSelectAnyPageStyle\@gobble% + \pagestyle% }{}{\tud@patch@wrn{cleardoublepageusingstyle}} % \end{macrocode} % \end{macro}^^A \cleardoublepageusingstyle diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 749603bf..7a7579c3 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -596,7 +596,7 @@ \newcommand*\tud@skip@reset[1]{% \tud@skip@check{#1}{% \ifcsdef{@@tud@skip@#1}{% - \csname#1\endcsname=\csname @@tud@skip@#1\endcsname% + \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% }{}% }% } @@ -608,8 +608,8 @@ \newcommand*\tud@skip@check[1]{% \begingroup% \@tempswafalse% - \expandafter\ifisskip\expandafter{\csname#1\endcsname}{\@tempswatrue}{}% - \expandafter\ifisdimen\expandafter{\csname#1\endcsname}{\@tempswatrue}{}% + \expandafter\ifisskip\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% + \expandafter\ifisdimen\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% \if@tempswa% \aftergroup\@firstofone% \else% @@ -752,13 +752,13 @@ \newcommand*\TUD@set@ifkey[3]{% \tud@lowerstring\tud@res@a{#3}% \edef\tud@res@b{% - \etex@unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% + \unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% }\tud@res@b% } \newcommand*\TUD@set@numkey[4]{% \tud@lowerstring\tud@res@a{#4}% \edef\tud@res@b{% - \etex@unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% + \unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% }\tud@res@b% } % \end{macrocode} @@ -775,7 +775,7 @@ \newcommand*\TUD@set@dimenkey[3]{% \tud@lowerstring\tud@res@a{#3}% \edef\tud@res@b{% - \etex@unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% + \unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% }\tud@res@b% } % \end{macrocode} @@ -800,7 +800,7 @@ % wurde. % \begin{macrocode} \newcommand*\tud@locked@newnum[2]{% - \expandafter\newcommand\expandafter*\csname#1\endcsname{#2}% + \expandafter\newcommand\expandafter*\csname #1\endcsname{#2}% \newbool{#1@locked}% \tud@num@set{#1}{#2}% } @@ -815,7 +815,14 @@ \booltrue{#1@locked}% } \newcommand*\tud@num@set[2]{% - \ifcsdef{#1}{% + \ifcsundef{#1}{% + \PackageError{tudscrbase}{% + `\@backslashchar#1' was never defined% + }{% + You tried using the numerical expression `\@backslashchar#1'\MessageBreak% + but you didn't define it with `\string\tud@locked@newnum'.% + }% + }{% \ifnumber{#2}{% \csdef{#1}{#2}% }{% @@ -826,13 +833,6 @@ to value `#2', which isn't numerical.% }% }% - }{% - \PackageError{tudscrbase}{% - `\@backslashchar#1' was never defined% - }{% - You tried using the numerical expression `\@backslashchar#1'\MessageBreak% - but you didn't define it with `\string\tud@locked@newnum'.% - }% }% } % \end{macrocode} @@ -1057,7 +1057,7 @@ \protected@edef\@tempa{% \noexpand\TUD@parameter@set{#1}{#2=\noexpand\kv@value}% }% - \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}% + \def\@tempb{\TUD@parameter@handler@macro[{#1}]{\kv@handled@false}}% \expandafter\@tempb\expandafter{\@tempa}% } % \end{macrocode} @@ -1096,7 +1096,7 @@ \noexpand\TUD@parameter@set{#1}{\noexpand\tud@reserved}% \noexpand\fi% }% - \def\@tempb{\TUD@parameter@handler@macro[#1]{\kv@handled@false}}% + \def\@tempb{\TUD@parameter@handler@macro[{#1}]{\kv@handled@false}}% \expandafter\@tempb\expandafter{\@tempa}% } % \end{macrocode} @@ -1164,8 +1164,9 @@ \let\tud@res@a\@empty% \def\tud@res@b[##1]{\def\tud@res@a{##1}}% \def\ProvidesPackage##1{% - \@ifnextchar[%] - {\tud@res@b}{\tud@res@b[]}% + \kernel@ifnextchar[%] + {\tud@res@b}% + {\tud@res@b[]}% }% \IfFileExists{#1.sty}{% \openin\tud@res@read=#1.sty% @@ -1230,18 +1231,17 @@ \AfterAtEndOfPackage*{#1}{\booltrue{@tud@#1@loaded}}% } \newcommand*\TUD@AfterPackage@do[2]{% - \ifcsdef{if@tud@#1@loaded}{% + \ifcsundef{if@tud@#1@loaded}{% + \PackageError{tudscrbase}{\string\TUD@AfterPackage@set{#1} missing}{% + You have to set \string\TUD@AfterPackage@set{#1} before\MessageBreak% + using \string\TUD@AfterPackage@do{#1}{}.% + }% + }{% \tud@if@preamble{% \AfterAtEndOfPackage*{#1}{#2}% }{% \ifbool{@tud@#1@loaded}{#2}{}% }% - }{% - \PackageError{tudscrbase}{\string\TUD@AfterPackage@set{#1} missing}{% - You have to set \string\TUD@AfterPackage@set{#1} before\MessageBreak% - the usage of \string\TUD@AfterPackage@do{#1}{} is\MessageBreak% - possible.% - }% }% } % \end{macrocode} diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 7bc1c6ff..73023781 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -487,12 +487,16 @@ % \begin{macrocode} \newcommand*\tud@v@get[2]{% \begingroup% - \def\@tempa{\kernel@ifnextchar v{\@tempb}{\@tempb v}}% + \def\@tempa{% + \kernel@ifnextchar v% + {\@tempb}% + {\@tempb v}% + }% \def\@tempb v##1\@nil{\def\@tempc{##1}}% \@tempa #2\@nil% \edef\tud@reserved{% \endgroup% - \etex@unexpanded{\def#1}{\@tempc}% + \unexpanded{\def#1}{\@tempc}% }% \tud@reserved% } @@ -1051,8 +1055,8 @@ \fi% } \if@tud@cdoldfont@active - \newcommand*\ifdin{}% - \let\ifdin\tud@ifdin% + \newcommand*\ifdin{} + \let\ifdin\tud@ifdin \fi % \end{macrocode} % \end{macro}^^A \tud@ifdin @@ -1329,7 +1333,7 @@ % \begin{macrocode} \newcommand*\tud@comp@chapterpage@wrn{% \PackageWarning{tudscrcomp}{% - The command \string\chapterpage\space is not\MessageBreak% + The command `\string\chapterpage'\space is not\MessageBreak% recommended. You should use the same style for\MessageBreak% chapters throughout the document% }% @@ -1347,10 +1351,12 @@ % \begin{macrocode} \AtEndPreamble{% \if@chapter% - \pretocmd{\tud@chapter@pre}{\tud@comp@chapterpage@set}% - {}{\tud@patch@wrn{tud@chapter@pre}}% - \apptocmd{\tud@chapter@app}{\tud@comp@chapterpage@unset}% - {}{\tud@patch@wrn{tud@chapter@app}}% + \pretocmd\tud@chapter@pre{% + \tud@comp@chapterpage@set% + }{}{\tud@patch@wrn{tud@chapter@pre}}% + \apptocmd\tud@chapter@app{% + \tud@comp@chapterpage@unset% + }{}{\tud@patch@wrn{tud@chapter@app}}% \fi% } % \end{macrocode} @@ -1416,17 +1422,20 @@ % das Makro \cs{tud@split@author@list} um diese Befehle erweitert. % \begin{macrocode} \newrobustcmd*\telefon{\telephone} -\patchcmd{\tud@split@author@list}{telephone}{% - telephone,telefon% -}{}{\tud@patch@wrn{tud@split@author@list}} +\patchcmd\tud@split@author@list + {telephone} + {telephone,telefon} + {}{\tud@patch@wrn{tud@split@author@list}} \newrobustcmd*\fax{\telefax} -\patchcmd{\tud@split@author@list}{telefax}{% - telefax,fax% -}{}{\tud@patch@wrn{tud@split@author@list}} +\patchcmd\tud@split@author@list + {telefax} + {telefax,fax} + {}{\tud@patch@wrn{tud@split@author@list}} \newrobustcmd*\email[1]{\emailaddress*{#1}} -\patchcmd{\tud@split@author@list}{emailaddress}{% - emailaddress,email% -}{}{\tud@patch@wrn{tud@split@author@list}} +\patchcmd\tud@split@author@list + {emailaddress} + {emailaddress,email} + {}{\tud@patch@wrn{tud@split@author@list}} % \end{macrocode} % \end{macro}^^A \tud@split@author@list % \end{macro}^^A \email @@ -1457,7 +1466,7 @@ % Einbindung der Logos verantwortlich sind (|\...logo|), wird allerdings nicht % unterstützt. % \begin{macrocode} -\newcommand*\zweitlogofile[2][]{\headlogo[#1]{#2}} +\newcommand*\zweitlogofile[2][]{\headlogo[{#1}]{#2}} \newcommand*\zweitlogo[1]{% \PackageWarning{tudscrcomp}{% It isn't possible to redefine the definition for\MessageBreak% @@ -1465,7 +1474,7 @@ documentation of \string\headlogo% }% } -\newcommand*\institutslogofile[2][]{\footlogo[#1]{,,,,,,,#2,}} +\newcommand*\institutslogofile[2][]{\footlogo[{#1}]{,,,,,,,#2,}} \newcommand*\institutslogo[1]{% \PackageWarning{tudscrcomp}{% It isn't possible to redefine the definition for\MessageBreak% @@ -1589,7 +1598,7 @@ \ifx#2\@nil\relax% \csuse{#1}{#3}% \else% - \csuse{#1}[#2]{#3}% + \csuse{#1}[{#2}]{#3}% \fi% \tud@cs@restore{raggedsection}% } @@ -1630,7 +1639,7 @@ % in einem und/oder beiden Argumente von \cs{footcontent} ein Stern \val{*} % verwendet, so bleibt der bisherige Inhalt erhalten. % \begin{macrocode} -\newcommand*\fusszeile[2][]{\footcontent[#1]{#2}} +\newcommand*\fusszeile[2][]{\footcontent[{#1}]{#2}} \newcommand*\footcolumn[2]{% \ifnumber{#1}{% \ifcase#1\relax% @@ -1638,7 +1647,7 @@ \or% \footcontent{#2}[*]% \or% - \footcontent{*}[#2]% + \footcontent{*}[{#2}]% \fi% }{}% } @@ -1718,7 +1727,7 @@ % \opt{tudmathposterfoot} aktiviert werden und wird hier nachgebildet. % \begin{macrocode} \newcommand*\tud@comp@mathposterwidth{4.2\tud@len@widemargin} -\patchcmd{\tud@footcontent@use}{% +\patchcmd\tud@footcontent@use{% \hsize=\dimexpr#2-\@tempdimc\relax% }{% \if@tud@mathposterfoot% @@ -1727,7 +1736,7 @@ \hsize=\dimexpr#2-\@tempdimc\relax% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} -\patchcmd{\tud@footcontent@use}{% +\patchcmd\tud@footcontent@use{% \hsize=\dimexpr(#2-\columnsep)/2\relax% }{% \if@tud@mathposterfoot% @@ -1736,7 +1745,7 @@ \hsize=\dimexpr(#2-\columnsep)/2\relax% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} -\patchcmd{\tud@footcontent@use}{% +\patchcmd\tud@footcontent@use{% \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% }{% \if@tud@mathposterfoot% @@ -2142,29 +2151,41 @@ % zwingend in \DIN gesetzt werden. % \begin{macrocode} \tud@fixfonts@class@adapt{tudbook}{% - \patchcmd{\@makechapterhead}{\dinBold\Huge\bfseries}{% + \patchcmd\@makechapterhead{% + \dinBold\Huge\bfseries% + }{% \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makechapterhead}{\MakeUppercase}{% + \patchcmd\@makechapterhead{% + \MakeUppercase% + }{% \tud@sec@format% }{}{\tud@patch@wrn{@makechapterhead}}% - \patchcmd{\@makeschapterhead}{\dinBold\Huge\bfseries}{% + \patchcmd\@makeschapterhead{% + \dinBold\Huge\bfseries% + }{% \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Huge% }{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\@makeschapterhead}{\MakeUppercase}{% + \patchcmd\@makeschapterhead{% + \MakeUppercase% + }{% \tud@sec@format% }{}{\tud@patch@wrn{@makeschapterhead}}% - \patchcmd{\section}{\dinBold\Large\bfseries\MakeUppercase}{% + \patchcmd\section{% + \dinBold\Large\bfseries\MakeUppercase% + }{% \tud@sec@fontface% \if@color\color{HKS41-100}\fi% \Large% \tud@sec@format% }{}{\tud@patch@wrn{section}}% - \patchcmd{\showtitle}{\dinBold\Huge\bfseries\MakeUppercase}{% + \patchcmd\showtitle{% + \dinBold\Huge\bfseries\MakeUppercase% + }{% \tud@sec@fontface% \if@colortitle\color{HKS41-30}\fi% \Huge% @@ -2226,7 +2247,9 @@ \fi }% }% - \apptocmd{\maketitle}{\vspace{-6ex}}{}{\tud@patch@wrn{maketitle}}% + \apptocmd\maketitle{% + \vspace{-6ex}% + }{}{\tud@patch@wrn{maketitle}}% \renewcommand*\subtitlefont{% \unskip% \tud@sec@fontface% @@ -2243,7 +2266,9 @@ % Für die Schriftstärke in der Kopfzeile muss der Seitenstil angepasst und % anschließend nochmals akiviert werden. % \begin{macrocode} - \patchcmd{\ps@tudposter}{\textbf{\@einrichtung}}{% + \patchcmd\ps@tudposter{% + \textbf{\@einrichtung}% + }{% \textbf{\fontseries{b}\selectfont\@einrichtung}% }{}{\tud@patch@wrn{ps@tudposter}}% \pagestyle{tudposter}% diff --git a/source/tudscr-fields.dtx b/source/tudscr-fields.dtx index 610ed024..4def7681 100644 --- a/source/tudscr-fields.dtx +++ b/source/tudscr-fields.dtx @@ -96,7 +96,7 @@ % Hiermit wird der Inhalt des im zweiten (obligatorischen) Argument namentlich % genannten Feldes in die im ersten (optionalen) Argument gegebene Anweisung % expandiert. -% \begin{macrocode} +% \begin{macrocode} \newcommand*\getfield[2][\@firstofone]{% \begingroup% \def\tud@res@b{#1}% @@ -342,7 +342,9 @@ % \begin{macrocode} \newcommand*\@emailaddress{} \newrobustcmd*\emailaddress{% - \kernel@ifstar{\tud@emailaddress@simple}{\tud@emailaddress@hyper}% + \kernel@ifstar% + {\tud@emailaddress@simple}% + {\tud@emailaddress@hyper}% } \newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} \newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} @@ -690,7 +692,9 @@ % \begin{macrocode} \newcommand*\@webpage{} \newrobustcmd*\webpage{% - \kernel@ifstar{\tud@webpage@simple}{\tud@webpage@hyper}% + \kernel@ifstar% + {\tud@webpage@simple}% + {\tud@webpage@hyper}% } \newrobustcmd*\tud@webpage@simple[1]{\gdef\@webpage{#1}} \newrobustcmd*\tud@webpage@hyper[2][]{\gdef\@webpage{#2}} @@ -1035,7 +1039,7 @@ % Sollte ein Feld verwendet werden, welches initial eine Fehlermeldung enthält, % so die vorhandene Warnung ausgegeben und danach das Feld als leer definiert. % \begin{macrocode} - \expandafter\ifpatchable\expandafter{\csname#1\endcsname}{% + \expandafter\ifpatchable\expandafter{\csname #1\endcsname}{% \@latex@warning@no@line% }{% \csuse{#1}\csgdef{#1}{}% @@ -1059,7 +1063,7 @@ % Das Feld wird mit \cs{and} terminiert, um der Definition von % \cs{tud@multiple@@split} in jedem Fall zu entsprechen. % \begin{macrocode} - \edef\@tempa{\csname#1\endcsname\and}% + \edef\@tempa{\csname #1\endcsname\and}% \expandafter\endgroup% \expandafter\tud@multiple@@split\@tempa\relax% } @@ -1072,11 +1076,11 @@ % (|\tud@split|\meta{Feld}) aufgerufen werden. % \begin{macrocode} \newcommand*\tud@multiple@@@split[2]{% - \ifx\relax#1\relax% + \IfArgIsEmpty{#1}{% \let\@tempb\relax% - \else% + }{% \def\@tempb{#2\tud@multiple@@split#1\relax}% - \fi% + }% \@tempb% } % \end{macrocode} diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 657a7099..d9644eaa 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -571,12 +571,12 @@ \appto\tud@res@a{A fallback layout is used}% \edef\tud@res@c{% %<*class> - \etex@unexpanded{\ClassWarning{\TUD@Class@Name}}% + \unexpanded{\ClassWarningNoLine{\TUD@Class@Name}}% % %<*package> - \etex@unexpanded{\PackageWarning{tudscrfonts}}% + \unexpanded{\PackageWarningNoLine{tudscrfonts}}% % - {\tud@res@a} + {\tud@res@a}% }% \xappto#3{\expandonce\tud@res@c}% \endgroup% @@ -1947,7 +1947,7 @@ \PackageWarning{tudscrfonts}% % {% - Font `DIN-Bold' is not available and therefore\MessageBreak + Font `DIN-Bold' is not available and therefore\MessageBreak% can not be used for headings% }% \global\let\tud@db@wrn\relax% @@ -2249,7 +2249,7 @@ \let\tud@ttfont@fam\ttdefault% \or% roboto \let\tud@ttfont@fam\tud@ttfont@rb% - \or% lmodern + \else% lmodern \let\tud@ttfont@fam\tud@ttfont@lm% \fi% \ifcase\tud@ttfont@num\relax\else% !false @@ -2258,7 +2258,7 @@ % Das Setzen der TypeWriter-Schriften aus dem Paket \pkg{lmodern} erfolgt nur, % wenn diese nicht standardmäßig durch \pkg{fontspec} aktiviert ist. % \begin{macrocode} - \ifx\ttdefault\tud@ttfont@fam\else% + \ifx\tud@ttfont@fam\ttdefault\else% \tud@x@fontspec@set{tt}{\tud@ttfont@fam}% \fi% \else% @@ -2380,10 +2380,10 @@ % \begin{macrocode} \def\tud@res@b####1####2####3{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{n}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{it}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sl}{% <->ssub*\tud@ttfont@rb/####1/it% @@ -2394,10 +2394,10 @@ % \begin{macrocode} \ifbool{##2}{% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{sc}{% - <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####2-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scit}{% - <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% + <->\tud@ttfont@rb@scale RobotoMono-####3-tlf-sc-\tud@res@a% }{}% \DeclareFontShape{##1}{\tud@ttfont@rb}{####1}{scsl}{% <->ssub*\tud@ttfont@rb/####1/scit% diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index f81b2384..ed51f3d8 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -1191,17 +1191,17 @@ }% } \newcommand*\tud@fm@declaration[1][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \begingroup% - \tud@fm@@confirmation[\tud@fm@supporter,#1]% - \tud@fm@blocking[#1]% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \tud@fm@blocking[{#1}]% \endgroup% - }{% - \begin{declarations}[\tud@fm@supporter,#1]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \tud@fm@blocking% \end{declarations}% - }% + \fi% } % \end{macrocode} % Mit \cs{nextdeclaration} kann eine freie Erklärung abgegeben werden. Dabei @@ -1211,16 +1211,16 @@ % \cs{tud@fm@body@start} und \cs{tud@fm@body@end} notwendig ist. % \begin{macrocode} \newcommand*\nextdeclaration[3][]{% - \ifbool{@tud@declarations}{% + \if@tud@declarations% \tud@fm@body@start{declaration}{#1}{#2}% #3% \tud@fm@body@end{declaration}% - }{% + \else% \ClassError{\TUD@Class@Name}{Incorrect usage of `\string\nextdeclaration'}{% The command `\string\nextdeclaration' can only be used\MessageBreak% within the environment `declarations'.% }% - }% + \fi% } % \end{macrocode} % \end{macro}^^A \nextdeclaration @@ -1257,13 +1257,13 @@ \begingroup% \TUD@parameter@handler@default[declaration]{supporter}% \undef\KV@declaration@company% - \ifbool{@tud@declarations}{% - \tud@fm@@confirmation[\tud@fm@supporter,#1]% - }{% - \begin{declarations}[\tud@fm@supporter,#1]% + \if@tud@declarations% + \tud@fm@@confirmation[{\tud@fm@supporter,#1}]% + \else% + \begin{declarations}[{\tud@fm@supporter,#1}]% \tud@fm@@confirmation% \end{declarations}% - }% + \fi% \endgroup% } % \end{macrocode} @@ -1293,13 +1293,13 @@ \undef\KV@declaration@supporter% \undef\KV@declaration@closing% \undef\KV@declaration@confirmationclosing% - \ifbool{@tud@declarations}{% - \tud@fm@blocking[#1]% - }{% - \begin{declarations}[#1]% + \if@tud@declarations% + \tud@fm@blocking[{#1}]% + \else% + \begin{declarations}[{#1}]% \tud@fm@blocking% \end{declarations}% - }% + \fi% \endgroup% } % \end{macrocode} diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index ae833f4f..f1058551 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -525,7 +525,7 @@ % hier in jedem Fall als Schriftfarbe \emph{weiß} zu verwenden. % \begin{macrocode} \AfterPackage{xcolor}{% - \apptocmd{\normalcolor}{% + \apptocmd\normalcolor{% \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% }{}{\tud@patch@wrn{normalcolor}}% \AtBeginDocument{% @@ -1352,7 +1352,7 @@ \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }% } -\patchcmd{\set@@@@preamble}{% +\patchcmd\set@@@@preamble{% \hbox to\hsize{#4\parbox[{#2}]{#3}{#6\par}#5\par}% }{% \def\@tempa####1@####2{% @@ -1455,7 +1455,7 @@ %<*article|poster> \newcommand*\tud@partheadstartvskip{} \let\tud@partheadstartvskip\partheadstartvskip -\pretocmd{\tud@partheadstartvskip}{% +\pretocmd\tud@partheadstartvskip{% \renewcommand*\tud@part@fontcolor{}% false/true \ifcase\tud@cd@part@num\relax\or\else% *color \renewcommand*\tud@part@fontcolor{HKS41}% @@ -1540,7 +1540,7 @@ }% \fi% \tud@cd@vphantom% - \tud@sec@format[#1]{% + \tud@sec@format[{#1}]{% \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}% }% \setpartsubtitle{% @@ -1552,7 +1552,7 @@ \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% \let\partformat\tud@partformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% %<*book|report> \fi% % @@ -1601,17 +1601,15 @@ % \begin{macrocode} \newcommand*\tud@chapterformat{}% \newcommand*\tud@chapterlineswithprefixformat[3]{% - \edef\tud@chapterformat{% - \noexpand\tud@sec@format{\expandonce\chapterformat}% - }% + \edef\tud@chapterformat{\noexpand\tud@sec@format{\expandonce\chapterformat}}% \let\chapterformat\tud@chapterformat% \IfUseNumber{}{\tud@cd@vphantom}% - #2\tud@sec@format[#1]{#3}% + #2\tud@sec@format[{#1}]{#3}% \tud@sec@subtitle{#1}% } \newcommand*\tud@chapterlinesformat[3]{% \tud@cd@vphantom% - \@hangfrom{#2}{\tud@sec@format[#1]{#3}}% + \@hangfrom{#2}{\tud@sec@format[{#1}]{#3}}% \tud@sec@subtitle{#1}% } % \end{macrocode} @@ -1744,13 +1742,13 @@ % \begin{macrocode} \newcommand*\tud@chapter@before@hook{} \newcommand*\tud@chapter@after@hook{} -\pretocmd{\scr@startchapter}{% +\pretocmd\scr@startchapter{% \tud@chapter@before@hook% }{}{\tud@patch@wrn{scr@startchapter}} -\apptocmd{\scr@@startchapter}{% +\apptocmd\scr@@startchapter{% \tud@chapter@after@hook% }{}{\tud@patch@wrn{scr@@startchapter}} -\apptocmd{\scr@@startschapter}{% +\apptocmd\scr@@startschapter{% \tud@chapter@after@hook% }{}{\tud@patch@wrn{scr@@startschapter}} % \end{macrocode} @@ -1785,14 +1783,14 @@ % Die Formatierungsbefehle für die Überschriften von Abschnitten etc. % \begin{macrocode} \newcommand*\tud@sectionlinesformat[4]{% - \@hangfrom{\hskip #2#3}{\tud@sec@format[#1]{#4}}% + \@hangfrom{\hskip #2#3}{\tud@sec@format[{#1}]{#4}}% } % \end{macrocode} % Für Überschriften mit Einzug wird \cs{tud@sec@strut} wirkungslos definiert. % \begin{macrocode} \newcommand*\tud@sectioncatchphraseformat[4]{% \let\tud@sec@strut\relax% - \hskip #2#3\tud@sec@format[#1]{#4}% + \hskip #2#3\tud@sec@format[{#1}]{#4}% } % \end{macrocode} % \end{macro}^^A \tud@sectioncatchphraseformat diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index c0b64b9f..3bf37b13 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -779,6 +779,7 @@ % \providecommand*\tudhyperref[2]{#2}% \providecommand*\autorefname[1][]{??\xspace}% +% \end{macrocode} % % \iffalse % @@ -825,7 +826,7 @@ % Verbesserte Referenzierungen auf Seiten. % \begin{macrocode} \RequirePackage{varioref}[2011/10/02] -\renewcommand*\fullref[1]{\hyperref[#1]{\autoref*{#1} \vpageref{#1}}} +\renewcommand*\fullref[1]{\hyperref[{#1}]{\autoref*{#1} \vpageref{#1}}} % \end{macrocode} % \end{macro}^^A \fullref % @@ -1149,8 +1150,12 @@ % 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}} +\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% @@ -2239,10 +2244,10 @@ \NewDocumentCommand\tud@if@lbl@exists{% >{\tud@lbl@create}>{\SplitArgument{2}{:}}m% }{% - \ifcsdef{r@#1}{% - \expandafter\@firstoftwo% - }{% + \ifcsundef{r@#1}{% \expandafter\@secondoftwo% + }{% + \expandafter\@firstoftwo% }% } % @@ -2387,7 +2392,7 @@ \expandafter\@secondoftwo% \fi% } -\pretocmd{\tud@sec@format}{% +\pretocmd\tud@sec@format{% \@tud@dispositiontrue% }{}{\tud@patch@wrn{tud@sec@format}} % \end{macrocode} @@ -2397,7 +2402,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} @@ -2504,7 +2509,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% @@ -2652,7 +2657,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} @@ -2917,7 +2922,7 @@ \NoCaseChange{#1{##2}}% }% } - \apptocmd{\tud@x@textcase@uclcnotmath}{% + \apptocmd\tud@x@textcase@uclcnotmath{% \tud@nonchangecase\Application% \tud@nonchangecase\Distribution% \tud@nonchangecase\Engine% @@ -3000,12 +3005,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 @@ -3049,7 +3054,7 @@ %<*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}% }{% @@ -3568,7 +3573,7 @@ % \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% % \IfValueT{#5}{% @@ -3640,7 +3645,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% @@ -3801,7 +3806,7 @@ % \end{macrocode} % Die Ausgabe des gewünschten Index und des leeren des Prologs. % \begin{macrocode} - \ifblank{#1}{\printindex}{\printindex[#1]}% + \ifblank{#1}{\printindex}{\printindex[{#1}]}% \ifnum\imki@columns>\@ne\relax\vspace{-\multicolsep}\fi% % \let\tud@indexprologue\@empty% } @@ -3842,7 +3847,7 @@ % 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} +% \begin{macrocode} \newif\if@tud@changedat % \end{macrocode} % Die Formatierung der Änderungseinträge erfolgt~-- wie auch für den Index~-- @@ -3855,7 +3860,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)% } @@ -4257,7 +4262,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% @@ -4277,7 +4282,7 @@ \endgroup% \let\@tempb\@firstofone% \if@tud@cdoldfont@active\def\@tempb##1{\NoCaseChange{##1}}\fi% - \addsec[##1]{\TUDScript \@tempb{##1}}% + \addsec[{##1}]{\TUDScript \@tempb{##1}}% \tudhyperdef*{idx:changelog:##1}% \def\@tempa{\indexname: \TUDScript \@tempb{##1}}% \@mkboth{\@tempa}{\@tempa}% @@ -4328,7 +4333,7 @@ \forlistloop\@tempa{\tud@templist}% \hline% \end{tabular}% - }[#2]% + }[{#2}]% \ignorespaces% }% \fi% @@ -4392,7 +4397,7 @@ \newcommand*\tud@values{} \NewDocumentEnvironment{values}{mo}{% \def\tud@values{#1}% - \IfValueTF{#2}{\@values[#2]}{\@values}% + \IfValueTF{#2}{\@values[{#2}]}{\@values}% }{% \end@values% } @@ -4409,7 +4414,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 @@ -4764,7 +4769,7 @@ % \begin{macrocode} \RequirePackage{listings}[2014/03/04] \lstdefinestyle{tudscr}{% - basicstyle=\ttfamily\ifdef{\setstretch}{\setstretch{1}}{},% + basicstyle=\ttfamily\ifundef{\setstretch}{}{\setstretch{1}},% keywordstyle=,% columns=fullflexible,keepspaces,% aboveskip=\smallskipamount,% @@ -5518,7 +5523,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% @@ -5725,7 +5730,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} @@ -5865,7 +5870,7 @@ % 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}% @@ -5882,9 +5887,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% @@ -5898,7 +5901,7 @@ \fi% \endgroup% \global\let\@currentHref\tud@currentHref% - }{}% + \fi% \ignorespaces% }% % \end{macrocode} @@ -6116,7 +6119,7 @@ \marginnote{% \setlength\fboxsep{0.25em}% \fbox{Achtung!}% - }[#1]% + }[{#1}]% \emph{\trim@spaces{#2}}% } \newcommand*\TUDForum{% diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index e7d365fb..c8730f8e 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -120,8 +120,8 @@ \renewcommand*\tudbookmark[3][]{% \relax% \if@tud@bookmarks% - \phantomsection% - \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \csuse{phantomsection}% + \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[{#1}]{#2}{#3}}% \fi% }% \renewcommand*\tud@x@hyperref@realfootnotes{% @@ -158,7 +158,7 @@ % Titelseite PDF"=Lesezeichen bzw. Outline-Einträge erzeugt. % \begin{macrocode} %<*book|report|article> -\apptocmd{\titlepage}{% +\apptocmd\titlepage{% \tud@x@bookmark@startatroot% \@tud@res@swafalse% \if@tud@coverpage\@tud@res@swatrue\fi% @@ -179,14 +179,14 @@ % \end{macrocode} % Dies geschieht außerdem auch für die Titelköpfe. % \begin{macrocode} -\pretocmd{\tud@maketitle@inpage}{% +\pretocmd\tud@maketitle@inpage{% \tud@x@bookmark@startatroot% \tudbookmark[% % 0% % 1% ]{\titlename}{title}% }{}{\tud@patch@wrn{tud@maketitle@inpage}} -\pretocmd{\@maketitle}{% +\pretocmd\@maketitle{% \tud@x@bookmark@startatroot% \tudbookmark[% % 0% @@ -686,7 +686,9 @@ \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% }% - \patchcmd{\@uclcnotmath}{\@nonchangecase\ensuremath}{% + \patchcmd\@uclcnotmath{% + \@nonchangecase\ensuremath% + }{% \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% }{}{\tud@patch@wrn{@uclcnotmath}}% }% diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index bc781d35..2ad4d360 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -602,7 +602,9 @@ % Wird der Befehl \cs{thispagestyle} verwendet, muss dafür Sorge getragen % werden, dass kein Alias-Seitenstil expandiert wird. % \begin{macrocode} -\patchcmd{\thispagestyle}{\gdef\@specialstyle{#1}}{% +\patchcmd\thispagestyle{% + \gdef\@specialstyle{#1}% +}{% \xdef\@specialstyle{\GetRealPageStyle{#1}}% }{}{\tud@patch@wrn{thispagestyle}} % \end{macrocode} @@ -619,7 +621,7 @@ \newcommand*\tud@pagestyle{} \let\tud@pagestyle\pagestyle \newcommand*\currentpagestyle{plain} -\pretocmd{\tud@pagestyle}{% +\pretocmd\tud@pagestyle{% \tud@BeforeSelectAnyPageStyle{#1}% \edef\currentpagestyle{#1}% }{}{\tud@patch@wrn{pagestyle}} @@ -662,9 +664,9 @@ % einige notwendige Makros definiert. % \begin{macrocode} \TUD@UnwindPackage{scrlayer-scrpage}{% - \ifcsundef{if@chapter}{% + \ifundef{\if@chapter}{% \newif\if@chapter% - \ifcsundef{chapter}{\@chapterfalse}{\@chaptertrue}% + \ifundef{\chapter}{\@chapterfalse}{\@chaptertrue}% }{}% \cslet{ps@tudheadings}{\ps@headings}% \cslet{ps@plain.tudheadings}{\ps@plain}% @@ -876,7 +878,7 @@ \edef\@tempa{% \expandonce\tud@head@text@line% \expandonce\tud@head@text@delimiter% - \etex@unexpanded{#2#3}% + \unexpanded{#2#3}% }% % \end{macrocode} % Sollte das hinzuzufügende Feld die aktuelle Kopfzeile \cs{tud@head@text@line} @@ -981,7 +983,7 @@ \@tempb% \tud@head@text@write[\@tempc]{##1}% \def\@tempb{\newline}% - \def\@tempc{\z@}% + \let\@tempc\z@% % \end{macrocode} % Die weiteren Zeilen sind bei zweifarbigen Kopf normalerweise blau, nur für % einen dunklen Seitenhintergrund weiß. @@ -1082,7 +1084,8 @@ \ifdim\@tempdima>\z@\relax% \ClassWarning{\TUD@Class@Name}{% #3\MessageBreak% - The maximum height is exceeded by \the\@tempdima\MessageBreak% + The maximum height is exceeded by\MessageBreak% + \the\@tempdima% }% \fi% \endgroup% @@ -1389,9 +1392,9 @@ \if@tud@headlogo@option@set% \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% - \includegraphics[% + \includegraphics[{% keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% - ]{##1}% + }]{##1}% }% }% \tud@savelayerbox{head@option}{}% @@ -1588,10 +1591,10 @@ \tud@ps@@restore{#1}{even}{middle}{foot}% } \newcommand*\tud@ps@@restore[4]{% - \ifcsdef{@@tud@ps@#1@#2@#3@#4}{% + \ifcsundef{@@tud@ps@#1@#2@#3@#4}{}{% \csletcs{sls@ps@#1@#2@#3@#4}{@@tud@ps@#1@#2@#3@#4}% \csundef{@@tud@ps@#1@#2@#3@#4}% - }{}% + }% } % \end{macrocode} % \end{macro}^^A \tud@ps@@restore @@ -1747,11 +1750,11 @@ \vss\vss% }{% You should reduce `footlogoheight', because it is\MessageBreak% - too high (\the\dimexpr\tud@dim@footlogoheight\relax).% + too high (\the\dimexpr\tud@dim@footlogoheight\relax). % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% - by using option `extrabottommargin'.% + Alternatively you could use\MessageBreak% + option `extrabottommargin='\MessageBreak% + in order to enlarge the bottom margin. % \fi% }% }% @@ -1873,7 +1876,9 @@ % \begin{macrocode} \eappto\tud@footlogo@fileoptions{\expandonce\@tempb}% \protected@edef\@tempc{% - \noexpand\includegraphics[\expandonce\tud@footlogo@fileoptions]{\@tempa}% + \noexpand\includegraphics[{% + \expandonce\tud@footlogo@fileoptions% + }]{\@tempa}% }% % \end{macrocode} % Die Logos werden~-- wie auch das \DDC-Logo im Fuß~-- individuell optisch @@ -2151,10 +2156,10 @@ % \begin{macrocode} \newcommand*\tud@footcontent@use[2]{% \@tempswafalse% - \ifx\tud@footcontent@left\@empty\relax% + \ifx\tud@footcontent@left\@empty% \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\relax\else% - \ifx\tud@footcontent@right\@empty\relax\else% + \ifx\@tempa\tud@footcontent@right\else% + \ifx\tud@footcontent@right\@empty\else% \@tempswatrue% \fi% \fi% diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index 7519e208..0217ea4c 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -284,7 +284,7 @@ \TUD@parameter@def{style}{\def\tud@multiple@fields@style{##1}}% \TUD@parameter@handler@default{headline}% }% - \tudpage[pagestyle=empty,#1]% + \tudpage[{pagestyle=empty,#1}]% % \end{macrocode} % Zu Beginn wird als erstes die Überschrift und~-- die entsprechende Option % vorausgesetzt~-- im PDF einen Lesezeichen- oder auch Outline-Eintrag gesetzt. @@ -371,7 +371,7 @@ % besten Fall die Schwerpunkte in einer \env{itemize}-Umgebung aufgeschlüsselt. % \begin{macrocode} \newcommand\taskform[3][]{% - \begin{task}[#1]% + \begin{task}[{#1}]% \ifblank{#2}{}{\minisec{\objectivesname}\smallskip#2}% \ifblank{#3}{}{% \minisec{\focusname}\smallskip% @@ -413,7 +413,7 @@ \TUD@parameter@def{grade}{\def\@grade{##1}}% \TUD@parameter@handler@default{headline}% }% - \tudpage[pagestyle=empty,#1]% + \tudpage[{pagestyle=empty,#1}]% \tudbookmark{\evaluationname}{evaluation}% \subsection*{% \ifx\@headline\@empty% @@ -479,7 +479,7 @@ % erfolgt die Bewertung, das letzte Argument beinhaltet die Note. % \begin{macrocode} \newcommand\evaluationform[5][]{% - \begin{evaluation}[#1]% + \begin{evaluation}[{#1}]% \ifblank{#2}{}{\minisec{\taskname}\smallskip#2}% \ifblank{#3}{}{\minisec{\contentname}\smallskip#3}% \ifblank{#4}{}{\minisec{\assessmentname}\smallskip#4}% @@ -514,7 +514,7 @@ % Es wird zu Beginn das angegebene Datum oben auf der rechten Seite ausgegeben. % Anschließend wird die Überschrift und der gegebene Titel gesetzt. % \begin{macrocode} - \tudpage[pagestyle=empty,cdhead=date,#1]% + \tudpage[{pagestyle=empty,cdhead=date,#1}]% \tudbookmark{\noticename}{notice}% \ifx\@headline\@empty\else% \section*{\@headline}% @@ -559,7 +559,7 @@ % werden die Arbeitsschwerpunkte beschrieben. % \begin{macrocode} \newcommand\noticeform[3][]{% - \begin{notice}[#1]% + \begin{notice}[{#1}]% \ifblank{#2}{}{% \ifx\@@title\@empty\else% \minisec{\expandonce{\@@title}}\medskip% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index d38f6c04..0c00666f 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -336,7 +336,9 @@ % aus der \pgs{tudheadings}-Reihe der Titel ebenfalls in diesem gesetzt wird, % auch wenn das Layout des \CDs selber nicht aktiv ist. % \begin{macrocode} -\patchcmd{\titlepage}{\thispagestyle{empty}}{% +\patchcmd\titlepage{% + \thispagestyle{empty}% +}{% \tud@if@tudheadings{\currentpagestyle}{% \thispagestyle{empty.tudheadings}% }{% @@ -766,7 +768,7 @@ \ifx\@extratitle\@empty% \ifx\@frontispiece\@empty\else% \if@twoside\null\fi% - \fi + \fi% \else% \tud@res@a{\@makeextratitle}% \fi% @@ -1163,18 +1165,19 @@ \if@twocolumn% %<*book|report|article> \if@titlepage% - \tud@maketitle[#1]% - \onecolumn{#2}\twocolumn% + \tud@maketitle[{#1}]% + \onecolumn#2\twocolumn% \else% % - \tud@title@twocolumn{\tud@maketitle[#1]{#2}}% + \tud@title@twocolumn{\tud@maketitle[{#1}]#2}% %<*book|report|article> \fi% % \else% \ClassError{\TUD@Class@Name}{% `\string\maketitleonecolumn' can only be used in twocolumn mode% - }{}% + }{You should use `\string\maketitle' instead.}% + \tud@maketitle[{#1}]#2% \fi% } % \end{macrocode} @@ -1485,14 +1488,14 @@ % voreingestellt sind. Das Vermeiden einer unerwünschten Überdeckung des Kopfes % oder ein zu kleiner Fußbereich muss durch den Anwender korrigiert werden. % \begin{macrocode} -\renewcommand*{\coverpagetopmargin}{% +\renewcommand*\coverpagetopmargin{% \if@tud@coverpage% \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% \else% \dimexpr\topmargin+1in\relax% \fi% } -\renewcommand*{\coverpagebottommargin}{% +\renewcommand*\coverpagebottommargin{% \if@tud@coverpage% \dimexpr\tud@len@widemargin\relax% \else% From ffa1c7b5ef98d1c14e01c94967fb32c6e4b15640 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Thu, 28 Jul 2022 16:05:06 +0200 Subject: [PATCH 03/24] substitute deprecated KOMA methods - `\ifstr` > `\Ifstr` etc. tu upper case variants - same for equivalent methods like `\ifstrbool` --- source/tudscr-area.dtx | 46 +++++++++---------- source/tudscr-base.dtx | 50 +++++++++------------ source/tudscr-comp.dtx | 4 +- source/tudscr-fields.dtx | 36 +++++++-------- source/tudscr-fonts.dtx | 84 +++++++++++++++++------------------ source/tudscr-frontmatter.dtx | 8 ++-- source/tudscr-layout.dtx | 16 +++---- source/tudscr-manual.dtx | 50 ++++++++++----------- source/tudscr-misc.dtx | 2 +- source/tudscr-pagestyle.dtx | 22 ++++----- source/tudscr-supervisor.dtx | 4 +- source/tudscr-title.dtx | 10 ++--- 12 files changed, 162 insertions(+), 170 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index d0dc247b..96171d34 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -1067,7 +1067,7 @@ }% \tud@res@a% \fi% - \ifstr{#2}{newgeometry}{% + \Ifstr{#2}{newgeometry}{% \eappto\Gm@restore@org{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% @@ -1134,7 +1134,7 @@ \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% \TUD@parameter@def{layout}{% - \ifstr{#1}{false}{% + \Ifstr{#1}{false}{% \setlength\tud@len@layoutwidth{\z@}% \setlength\tud@len@layoutheight{\z@}% \setlength\tud@len@layouthoffset{\z@}% @@ -1194,16 +1194,16 @@ \newcommand*\tud@x@geometry@area@def[2]{% \tud@lowerstring{\@tempa}{#2}% \def\@tempb##1paper##2\@nil{% - \ifstr{##2}{paper}{\def\@tempa{##1}}{}% + \Ifstr{##2}{paper}{\def\@tempa{##1}}{}% }% \expandafter\@tempb\@tempa paper\@nil% \@tempswafalse% - \ifstr{\@tempa}{seascape}{\@tempswatrue}{}% - \ifstr{\@tempa}{landscape}{\@tempswatrue}{}% - \ifstr{\@tempa}{portrait}{\@tempswatrue}{}% - \ifstr{\@tempa}{letter}{\@tempswatrue}{}% - \ifstr{\@tempa}{executive}{\@tempswatrue}{}% - \ifstr{\@tempa}{legal}{\@tempswatrue}{}% + \Ifstr{\@tempa}{seascape}{\@tempswatrue}{}% + \Ifstr{\@tempa}{landscape}{\@tempswatrue}{}% + \Ifstr{\@tempa}{portrait}{\@tempswatrue}{}% + \Ifstr{\@tempa}{letter}{\@tempswatrue}{}% + \Ifstr{\@tempa}{executive}{\@tempswatrue}{}% + \Ifstr{\@tempa}{legal}{\@tempswatrue}{}% \if@tempswa\else% \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% @@ -1214,7 +1214,7 @@ \fi\fi\fi\fi% \if@tempswa% \@tempswafalse% - \IfArgIsEmpty{##2}{}{\ifnumber{##2}{\@tempswatrue}{}}% + \IfArgIsEmpty{##2}{}{\Ifnumber{##2}{\@tempswatrue}{}}% \fi% }% \expandafter\@tempb\@tempa\@nil% @@ -1230,7 +1230,7 @@ \if@tempswa\else% \def\tud@reserved##1:##2:##3:##4\@nil{% \if@tempswa\else% - \ifstr{\@tempa}{##1}{% + \Ifstr{\@tempa}{##1}{% \@tempswatrue% \def\@tempa{##2##4:##3##4}% }{}% @@ -1277,7 +1277,7 @@ % \emph{Dies geschieht hier direkt und nicht in einer Gruppe,} weil der Aufruf % von \cs{tud@x@geometry@area@set}|{layout}| lokal erfolgt. % \begin{macrocode} - \ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}% + \Ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}% \KOMAoption{paper}{##1:##2}% }% }% @@ -1871,7 +1871,7 @@ % anschließend auch der richtige Satzspiegel wieder ausgewählt werden. % \begin{macrocode} \tud@if@preamble{}{% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \Ifstr{\tud@currentgeometry}{stdarea}{}{% \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% }% }% @@ -2035,7 +2035,7 @@ % auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain} % umgeschaltet werden kann. Dies wird hiermit beachtet. % \begin{macrocode} - \ifstr{#1}{\GetRealPageStyle{#1}}{% + \Ifstr{#1}{\GetRealPageStyle{#1}}{% % \end{macrocode} % Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll, muss % der dazugehörige Satzspiegel ausgewählt werden\dots @@ -2057,7 +2057,7 @@ % Das \DDC-Logo im Fuß ist nicht aktiviert. % \begin{macrocode} \ifcase\@tempb\relax% \tud@ddc@foot@num=false - \ifstr{\tud@currentgeometry}{tudarea}{}{% + \Ifstr{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% @@ -2065,7 +2065,7 @@ % Das \DDC-Logo im Fuß ist aktiviert. % \begin{macrocode} \else% \tud@ddc@foot@num!=false - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \Ifstr{\tud@currentgeometry}{tudareaddc}{}{% \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% @@ -2074,7 +2074,7 @@ % Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten. % \begin{macrocode} }{% - \ifstr{\tud@currentgeometry}{tudarea}{}{% + \Ifstr{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% @@ -2098,7 +2098,7 @@ % zurückgesetzt. % \begin{macrocode} }{% - \ifstr{\tud@currentgeometry}{stdarea}{}{% + \Ifstr{\tud@currentgeometry}{stdarea}{}{% \tud@loadgeometry{stdarea}% \gdef\tud@currentgeometry{stdarea}% }% @@ -2260,12 +2260,12 @@ \tud@cs@store{PackageWarningNoLine}% \renewcommand*\PackageWarningNoLine[2]{% \@tud@res@swatrue% - \ifstr{##1}{typearea}{% - \ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% - \ifstrstart{##2}{% + \Ifstr{##1}{typearea}{% + \Ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% + \Ifstrstart{##2}{% Maybe no optimal type area settings!% }{\@tud@res@swafalse}{}% - \ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + \Ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% }{}% \if@tud@res@swa% \tud@cs@use{PackageWarning}{##1}{##2}% @@ -2372,7 +2372,7 @@ \tud@if@v@lower{2.03}{% \newcommand*\tud@ddc@enlargepage[1][]{% \tud@if@tudheadings{#1}{% - \ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \Ifstr{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false \enlargethispage{-\tud@len@ddcdiff}% diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 7a7579c3..6112950c 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -124,15 +124,7 @@ % % Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt, \pkg{scrlfile} % für verschiedene Hooks vor sowie nach Klassen und Paketen. -% \ToDo{Provisorium entfernen}[v2.07] -% \begin{macrocode} -\providecommand*{\ifstr}{\Ifstr} -\providecommand*{\ifstrstart}{\Ifstrstart} -\providecommand*{\ifisskip}{\Ifisskip} -\providecommand*{\ifdimen}{\Ifdimen} -\providecommand*{\ifisdimen}{\Ifisdimen} -\providecommand*{\ifisdimension}{\Ifisdimension} -\providecommand*{\ifnumber}{\Ifnumber} +% \begin{macrocode} \RequirePackage{scrbase}[2020/09/21] \RequirePackage{iftex}[2019/11/07] % \end{macrocode} @@ -247,29 +239,29 @@ % Leerzeichen). In seiner Syntax ist er identisch zu \cs{ifblank}, allerdings % expandiert er im Gegensatz zu diesem das gegebene Argument. % \begin{macrocode} -\newcommand*\ifxblank{\ifstr{}} +\newcommand*\ifxblank{\Ifstr{}} % \end{macrocode} % \end{macro}^^A \ifxblank % % \subsubsection{Test auf booleschen Ausdruck in Form eines Strings} % -% \begin{macro}{\ifstrbool} +% \begin{macro}{\Ifstrbool} % \changes{v2.03}{2015/01/09}{neu}^^A % Dieser Befehl dient zum Testen, ob ein gegebener String als boolescher % Ausdruck interpretiert werden kann. Ist der String als \enquote{wahr} % interpretierbar, wird das zweite Argument ausgeführt. Kann der String als % \enquote{falsch} angesehen werden, dementsprechen das dritte. Ist der String % kein logischer Wert, kommt das letzte Argument zum Tragen. Die Syntax lautet: -% -% \cs{ifstrbool}\marg{Argument}\marg{Wahr}\marg{Falsch}\marg{Andernfalls} -% \begin{macrocode} -\newcommand*\ifstrbool[4]{% - \ifstr{#1}{true}{#2}{% - \ifstr{#1}{on}{#2}{% - \ifstr{#1}{yes}{#2}{% - \ifstr{#1}{false}{#3}{% - \ifstr{#1}{no}{#3}{% - \ifstr{#1}{off}{#3}{% +% +% \cs{Ifstrbool}\marg{Argument}\marg{Wahr}\marg{Falsch}\marg{Andernfalls} +% \begin{macrocode} +\newcommand*\Ifstrbool[4]{% + \Ifstr{#1}{true}{#2}{% + \Ifstr{#1}{on}{#2}{% + \Ifstr{#1}{yes}{#2}{% + \Ifstr{#1}{false}{#3}{% + \Ifstr{#1}{no}{#3}{% + \Ifstr{#1}{off}{#3}{% #4% }% }% @@ -279,7 +271,7 @@ }% } % \end{macrocode} -% \end{macro}^^A \ifstrbool +% \end{macro}^^A \Ifstrbool % % \subsubsection{Test auf eine verwendbare Sprache} % @@ -608,8 +600,8 @@ \newcommand*\tud@skip@check[1]{% \begingroup% \@tempswafalse% - \expandafter\ifisskip\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% - \expandafter\ifisdimen\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% + \expandafter\Ifisskip\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% + \expandafter\Ifisdimen\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% \if@tempswa% \aftergroup\@firstofone% \else% @@ -823,7 +815,7 @@ but you didn't define it with `\string\tud@locked@newnum'.% }% }{% - \ifnumber{#2}{% + \Ifnumber{#2}{% \csdef{#1}{#2}% }{% \PackageError{tudscrbase}{% @@ -866,7 +858,7 @@ \booltrue{#1@locked}% } \newcommand*\tud@bool@set[2]{% - \ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% + \Ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% \PackageError{tudscrbase}{% `#2' is not a valid boolean expression% }{% @@ -1040,7 +1032,7 @@ \newcommand*\TUD@parameter@handler@macro[3][\TUD@parameter@@family]{% \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@macro}% \expandafter\kv@set@family@handler\expandafter{#1}{% - \ifstr{\kv@key}{\TUD@parameter@nokey}{#3}{#2}% + \Ifstr{\kv@key}{\TUD@parameter@nokey}{#3}{#2}% }% } % \end{macrocode} @@ -1078,8 +1070,8 @@ \def\@tempa{\def\tud@reserved{#2=\kv@value}}% }% \appto\@tempa{% - \ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}% - \ifnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% + \Ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}% + \Ifnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% \iflanguageloaded{\kv@value}{\def\tud@reserved{language=\kv@value}}{}% \ifx\tud@reserved\relax% \PackageError{tudscrbase}{% diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 73023781..a28680d8 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -1641,7 +1641,7 @@ % \begin{macrocode} \newcommand*\fusszeile[2][]{\footcontent[{#1}]{#2}} \newcommand*\footcolumn[2]{% - \ifnumber{#1}{% + \Ifnumber{#1}{% \ifcase#1\relax% \footcontent{#2}% \or% @@ -1836,7 +1836,7 @@ % \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] % \begin{macrocode} \ifundef{\schnittrand}{}{% - \ifisdimension{\schnittrand}{% + \Ifisdimension{\schnittrand}{% \edef\@tempa{% paperwidth=\the\dimexpr\paperwidth+\schnittrand*2\relax,% paperheight=\the\dimexpr\paperheight+\schnittrand*2\relax,% diff --git a/source/tudscr-fields.dtx b/source/tudscr-fields.dtx index 4def7681..649caebc 100644 --- a/source/tudscr-fields.dtx +++ b/source/tudscr-fields.dtx @@ -461,32 +461,32 @@ \let\thanks\@gobble% \let\footnote\@gobble% \tud@lowerstring{\@tempa}{#2}% - \ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% + \Ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% \protected@edef\@tempa{% \endgroup% \def\noexpand\@tempa{\@tempa}% }% \@tempa% - \ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% - \ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% - \ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% - \ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% - \ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% - \ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% - \ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% - \ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% - \ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% - \ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% - \ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% - \ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% - \ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% + \Ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% + \Ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% + \Ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% + \Ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% + \Ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% + \Ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% + \Ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% + \Ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% + \Ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% + \Ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% + \Ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% + \Ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% + \Ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% + \Ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% + \Ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% \csdef{@#1}{#2}% }}}}}}}}}}}}}}}% } \newcommand*\tud@thesis@@do[2]{% - \ifstr{#1}{subject}{% + \Ifstr{#1}{subject}{% \ifx\@thesis\@empty\else% \ClassWarning{\TUD@Class@Name}{% Field `thesis' is overwritten by `subject'% @@ -1139,7 +1139,7 @@ \newcommand*\tud@multiple@fields@preset[3]{% \def\@tempa##1{% \edef\@tempc{\csuse{##1}}% - \ifstr{#2}{*}{% + \Ifstr{#2}{*}{% \csdef{@##1}{}% }{% \begingroup% diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index d9644eaa..449c437d 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -516,7 +516,7 @@ not found for `#1' encoding. \MessageBreak% }% \if@tud@x@fontspec@enabled% - \ifstr{\encodingdefault}{#1}{% + \Ifstr{\encodingdefault}{#1}{% \appto\tud@res@a{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system. You should provide\MessageBreak% @@ -534,7 +534,7 @@ \fi% \@tud@res@swafalse% \@for\tud@res@c:=\tud@res@b\do{% - \ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% + \Ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% }% % \end{macrocode} % Wird eine unterstützte Kodierung verwendet, müssen die Schriften installiert @@ -552,8 +552,8 @@ . \MessageBreak% }% \else% - \ifstr{\encodingdefault}{#1}{% - \ifstr{TU}{#1}{% + \Ifstr{\encodingdefault}{#1}{% + \Ifstr{TU}{#1}{% \appto\tud@res@a{% You should either load package `fontspec'\MessageBreak% or % @@ -867,7 +867,7 @@ % \begin{macrocode} \else% \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{% + \Ifdimen{\tud@res@a}{% \ifdim\tud@res@a>\z@\relax% \TUDoptions{fontsize=#1}% \tud@cdfont@activate% @@ -2046,7 +2046,7 @@ \renewcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \Ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% }% \renewcommand*\textcd[2]{% @@ -2054,29 +2054,29 @@ \ifx\@tempc\relax% \textsf{#2}% \else% - \ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \Ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% }% \fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{l}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{r}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{s}{\def\@tempc{sn}}{% - \ifstr{\@tempa}{b}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{x}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{li}{\def\@tempc{li}}{% - \ifstr{\@tempa}{il}{\def\@tempc{li}}{% - \ifstr{\@tempa}{i}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% - \ifstr{\@tempa}{si}{\def\@tempc{si}}{% - \ifstr{\@tempa}{is}{\def\@tempc{si}}{% - \ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% - \ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% - \ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% + \Ifstr{\@tempa}{l}{\def\@tempc{ln}}{% + \Ifstr{\@tempa}{}{\def\@tempc{rn}}{% + \Ifstr{\@tempa}{r}{\def\@tempc{rn}}{% + \Ifstr{\@tempa}{s}{\def\@tempc{sn}}{% + \Ifstr{\@tempa}{b}{\def\@tempc{bn}}{% + \Ifstr{\@tempa}{x}{\def\@tempc{xn}}{% + \Ifstr{\@tempa}{li}{\def\@tempc{li}}{% + \Ifstr{\@tempa}{il}{\def\@tempc{li}}{% + \Ifstr{\@tempa}{i}{\def\@tempc{ri}}{% + \Ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% + \Ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% + \Ifstr{\@tempa}{si}{\def\@tempc{si}}{% + \Ifstr{\@tempa}{is}{\def\@tempc{si}}{% + \Ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% + \Ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% + \Ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% + \Ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% \let\@tempc\relax% %<*class> \ClassWarning{\TUD@Class@Name}% @@ -2090,20 +2090,20 @@ \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \Ifstr{\@tempa}{45}{\def\@tempc{ln}}{% + \Ifstr{\@tempa}{55}{\def\@tempc{rn}}{% + \Ifstr{\@tempa}{65}{\def\@tempc{bn}}{% + \Ifstr{\@tempa}{75}{\def\@tempc{xn}}{% + \Ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \Ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \Ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \Ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \Ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \Ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \Ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \Ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \Ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% + \Ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% \let\@tempc\relax% %<*class> \ClassWarning{\TUD@Class@Name}% @@ -2733,7 +2733,7 @@ }% \tud@cs@use{mv@normal}% \let\tud@res@c\@empty% - \ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \Ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% \def\tud@res@a##1{% \ifcsundef{it##1}{% \eappto\tud@res@c{% @@ -2746,7 +2746,7 @@ \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@all\tud@res@a% }{}% - \ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \Ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% \def\tud@res@a##1{% \ifcsundef{up##1}{% \eappto\tud@res@c{% @@ -2958,10 +2958,10 @@ \begingroup% \let\tud@res@a\relax% \if@tud@cdmath@active% - \ifstr{#1}{normal}{% + \Ifstr{#1}{normal}{% \def\tud@res@a{tudnormal}% }{% - \ifstr{#1}{bold}{% + \Ifstr{#1}{bold}{% \def\tud@res@a{tudbold}% }{}% }% diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index ed51f3d8..496420e7 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -416,7 +416,7 @@ \ifcase\csuse{tud@#1@level@num}\relax% false \if@titlepage\endgraf\fi% \csuse{phantomsection}% - \ifstr{\@currenvir}{\tud@quoting}{}{% + \Ifstr{\@currenvir}{\tud@quoting}{}{% \if@twocolumn% \vskip\dimexpr\smallskipamount-\parskip\relax% \else% @@ -427,7 +427,7 @@ \if@titlepage\endgraf\fi% \csuse{phantomsection}% \@afterindentfalse% - \ifstr{\@currenvir}{\tud@quoting}{}{% + \Ifstr{\@currenvir}{\tud@quoting}{}{% \vskip\dimexpr\bigskipamount-\parskip\relax% }% \begingroup% @@ -878,7 +878,7 @@ % gesetzt, falls kein anderer mit \opt{pagestyle} angegeben wurde. % \begin{macrocode} \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \Ifstrbool{#1}{% \@tud@abstract@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -1126,7 +1126,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% - \ifstrbool{#1}{% + \Ifstrbool{#1}{% \@tud@declaration@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index f1058551..f0e1b22e 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -526,7 +526,7 @@ % \begin{macrocode} \AfterPackage{xcolor}{% \apptocmd\normalcolor{% - \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% + \Ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% }{}{\tud@patch@wrn{normalcolor}}% \AtBeginDocument{% \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% @@ -674,7 +674,7 @@ \newcommand*\tud@thesis@fontsize{} \newcommand*\tud@x@scr@headings@set[1][]{% \def\@tempa##1##2##3{% - \ifstr{##1}{\tud@x@scr@headings@current}{}{% + \Ifstr{##1}{\tud@x@scr@headings@current}{}{% \renewcommand*\tud@x@scr@headings@current{##1}% \renewcommand*\tud@sec@fontsize{##2}% \renewcommand*\tud@thesis@fontsize{##3}% @@ -689,10 +689,10 @@ % \begin{macrocode} \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% \@for\@tempc:=\@tempb\do{% - \ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% - \ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% - \ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% - \ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\large}}{}}}}% + \Ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% + \Ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% + \Ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% + \Ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\large}}{}}}}% }% % \end{macrocode} % Der Abstand nach Teil- und Kapitelüberschriften wird ebenso in Abhängigkeit @@ -1141,7 +1141,7 @@ \tud@komafont@set{minisec}{% \tud@sec@fontface% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% + \Ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% \fi% }% \fi% @@ -1770,7 +1770,7 @@ \At@startsection{% \renewcommand*\tud@section@fontcolor{}% \ifcase\tud@cd@section@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{% + \Ifstr{\tud@pagecolor}{HKS41}{}{% \renewcommand*\tud@section@fontcolor{HKS41}% }% \fi% diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index 3bf37b13..0a4cb479 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -438,8 +438,8 @@ \newcommand*\tud@trace@lbl@created@list{}% \newcommand*\tud@trace@lbl@missing@list{}% \@tempswafalse% - \ifstr{#2}{created}{\@tempswatrue}{}% - \ifstr{#2}{all}{\@tempswatrue}{}% + \Ifstr{#2}{created}{\@tempswatrue}{}% + \Ifstr{#2}{all}{\@tempswatrue}{}% \if@tempswa% \renewcommand*\tud@trace@lbl@created@add[1]{% \typeout{% @@ -458,8 +458,8 @@ }% \fi% \@tempswafalse% - \ifstr{#2}{missing}{\@tempswatrue}{}% - \ifstr{#2}{all}{\@tempswatrue}{}% + \Ifstr{#2}{missing}{\@tempswatrue}{}% + \Ifstr{#2}{all}{\@tempswatrue}{}% \if@tempswa% \renewcommand*\tud@trace@lbl@missing@add[1]{% \typeout{% @@ -630,7 +630,7 @@ % vorgestellt und hier übernommen. % \begin{macrocode} \newcommand*\autorefname[1][current]{% - \ifstr{#1}{current}{% + \Ifstr{#1}{current}{% \expandafter\HyPsd@@autorefname\@currentHref\@nil% }{% \auto@refname\HyPsd@@autorefname{#1}% @@ -1433,7 +1433,7 @@ \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]{\Ifstr{\tud@bdl@curr}{\tud@bdl@dflt}{#2}{#1}} % \end{macrocode} % \end{macro}^^A \tud@if@bdl % \end{macro}^^A \tud@bdl@dflt @@ -2221,7 +2221,7 @@ % \begin{macrocode} \NewDocumentCommand\tud@lbl@get@@dflt{mmmmr==}{% \edef\tud@reserved{\expandafter\detokenize\expandafter{\tud@bdl@dflt}}% - \ifstr{\tud@reserved}{#2}{}{% + \Ifstr{\tud@reserved}{#2}{}{% % \end{macrocode} % Dabei erfolgt der Aufruf logischerweise mit dem richtigen Bundlepräfix. % \begin{macrocode} @@ -2566,7 +2566,7 @@ \IfValueT{#4}{% \ifxblank{#4}{}{% \tud@trace@bdl@add{#4}% - \ifstr{#6}{none}{}{% + \Ifstr{#6}{none}{}{% \tud@if@lbl@exists{\tud@lbl@tmp}{}{% \ClassWarning{tudscrmanual}{% No existing label \tud@lbl@tmp\space for #4% @@ -2696,13 +2696,13 @@ 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}{}}}}}% + \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}{}}}}}% \IfValueT{#5}{% - \ifstr{#6}{url}{\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}{}% + \Ifstr{#6}{url}{\def\@tempa{\href{#5}{\@tempc}}\let\@tempb\relax}{}% }% }% }{% @@ -2720,8 +2720,8 @@ % \begin{macrocode} \let\@tempb\relax% \IfValueT{#6}{% - \ifstr{#6}{none}{\let\@tempa\@tempc}{% -% \ifstr{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% + \Ifstr{#6}{none}{\let\@tempa\@tempc}{% +% \Ifstr{#6}{manual}{\def\@tempa{\tudhyperref{#1}{\@tempc}}}{% \def\@tempb{% %<*class> \ClassWarning{tudscrmanual}% @@ -3343,8 +3343,8 @@ % \begin{macrocode} \@tempswafalse% \IfBooleanT{#1}{\@tempswatrue}% - \IfValueT{#9}{\ifstr{#9}{declare}{\@tempswatrue}{}}% - \IfValueT{#9}{\ifstr{#9}{default}{\@tempswatrue}{}}% + \IfValueT{#9}{\Ifstr{#9}{declare}{\@tempswatrue}{}}% + \IfValueT{#9}{\Ifstr{#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. @@ -3578,7 +3578,7 @@ % \IfValueT{#5}{% %<*class> - \ifstr{#5}{declare}{% + \Ifstr{#5}{declare}{% \appto\tud@lbl@tmp{-declare}% \appto\tud@idx@fmt{|declare}% }{% @@ -4678,9 +4678,9 @@ } \newcommand*\Term@@Table[1]{% \Term{#1}'none' & % - \ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & % + \Ifstr{\csuse{#1}}{}{\PName{leer}}{\csuse{#1}} & % \selectlanguage{english}\vspace*{\@tempdimc}% - \ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline% + \Ifstr{\csuse{#1}}{}{\PName{empty}}{\csuse{#1}}\tabularnewline% } % \end{macrocode} % \end{macro}^^A \Term@@Table @@ -5056,10 +5056,10 @@ % sortieren zu können. % \begin{macrocode} \newcommand*\tud@tut@append[1]{% - \ifstr{#1}{preamble}{% + \Ifstr{#1}{preamble}{% \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@a}% }{% - \ifstr{#1}{trunk}{% + \Ifstr{#1}{trunk}{% \tud@tut@readtostream{\tud@tut@temp.tex}{\tud@write@b}% }{% \tud@tut@readtostream{\tud@tut@temp.tex}{#1}% @@ -5679,7 +5679,7 @@ % vor dem eigentlichen Typen verwendet werden muss. % \begin{macrocode} \def\@tempa not##1##2##3##4\@nil{% - \ifstr{##1##2##3}{not}{% + \Ifstr{##1##2##3}{not}{% \IfArgIsEmpty{##4}{}{% \listeadd\tud@todo@type@neg{##4}% \@tud@todotrue% @@ -5821,7 +5821,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% }% diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index c8730f8e..c876f38e 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -336,7 +336,7 @@ % \begin{macrocode} \newcommand*\tud@x@scr@pt{} \def\tud@x@scr@pt #1pt#2\@nil{% - \ifstr{#2}{pt}{\ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% + \Ifstr{#2}{pt}{\Ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% } % \end{macrocode} % \end{macro}^^A \tud@x@scr@pt diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 2ad4d360..4b57ccac 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -320,7 +320,7 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \Ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% @@ -347,7 +347,7 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \Ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% }% \ifx\@tempc\relax\else% \tud@ddc@check% @@ -786,7 +786,7 @@ % für farbige Titel- und Teileseiten\dots % \begin{macrocode} \tud@locked@bool@preset{@tud@head@widebar}{true}% - \ifstr{\tud@pagecolor}{HKS41}{% + \Ifstr{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% @@ -829,7 +829,7 @@ % damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden. % \begin{macrocode} \let\tud@len@line\tud@len@thinline% - \ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% + \Ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } % \end{macrocode} @@ -990,7 +990,7 @@ % \begin{macrocode} \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% - \ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + \Ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% }% @@ -1547,7 +1547,7 @@ % \begin{macrocode} \else% \tud@lowerstring\tud@res@a{#1}% - \ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% + \Ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% \fi% } % \end{macrocode} @@ -2633,7 +2633,7 @@ \newcommand*\tud@envir@ps{tudheadings} \newcommand*\tud@envir@selectps{% \expandafter\pagestyle\expandafter{\tud@envir@ps}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \Ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% %<*book|report> \renewcommand*\partpagestyle{empty}% @@ -2641,7 +2641,7 @@ % \renewcommand*\indexpagestyle{empty}% }{}% - \ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \Ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% %<*book|report> \renewcommand*\partpagestyle{empty.tudheadings}% @@ -2719,9 +2719,9 @@ % \begin{macrocode} \TUD@parameter@def{pagestyle}{% \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% - \ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% - \ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% - \ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% + \Ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% + \Ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% + \Ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% \TUD@parameter@error{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index 0217ea4c..f9642432 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -307,10 +307,10 @@ % oberen Teil. % \begin{macrocode} \def\tud@multiple@fields@output##1{% - \ifstr{\tud@multiple@fields@style}{table}{% + \Ifstr{\tud@multiple@fields@style}{table}{% \def\and{% \tabularnewline% - \ifstr{\csuse{##1othername}}{}{}{% + \Ifstr{\csuse{##1othername}}{}{}{% \csuse{##1othername}\tud@title@delimiter% }% & \def\and{\tabularnewline &}% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 0c00666f..64a1b866 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -264,7 +264,7 @@ \tud@cs@use{maketitle}[\tud@title@pagenumber]% \fi% \tud@if@tudheadings{\currentpagestyle}{% - \ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + \Ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% }{}% % \end{macrocode} % Für die \TUDScript-Klassen gibt es für doe Titleseite sowie den Titelkopf @@ -735,7 +735,7 @@ \newcommand*\tud@maketitle@inpage{% \renewcommand*\tud@title@fontcolor{}% \ifcase\tud@cd@title@num\relax\or\else% *color - \ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \Ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% \par% \ifx\tud@title@pagenumber\relax\else% @@ -861,7 +861,7 @@ % \ifnum\col@number>\@ne\relax% \ifdefvoid{\multicolsep}{}{% - \ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% + \Ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% }% \fi% % \end{macrocode} @@ -1068,10 +1068,10 @@ \fi% \fi% \def\@tempc##1{% - \ifstr{\csuse{@##1}}{}{}{% + \Ifstr{\csuse{@##1}}{}{}{% \if@titlepage% \tud@newline@title% - \ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \Ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% \csuse{@##1}% \else% \tud@title@wrn{##1}% From fb67c3b1f6dea096557123acc7521dcaaeaf885b Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Thu, 28 Jul 2022 22:36:27 +0200 Subject: [PATCH 04/24] secured LaTeX primitives creation - use `\@ifdefinable` check before actual assignment - rename `\eaddto@hook` to `\addto@hook@expandafter` --- source/tudscr-area.dtx | 12 ++++----- source/tudscr-base.dtx | 49 ++++++++++++++++++++++++++------- source/tudscr-comp.dtx | 8 +++--- source/tudscr-doc.dtx | 10 +++---- source/tudscr-fonts.dtx | 38 +++++++++++++------------- source/tudscr-frontmatter.dtx | 14 +++++----- source/tudscr-layout.dtx | 8 +++--- source/tudscr-manual.dtx | 51 +++++++++++++++++------------------ source/tudscr-misc.dtx | 16 +++++------ source/tudscr-pagestyle.dtx | 20 +++++++------- source/tudscr-texindy.dtx | 3 +-- source/tudscr-title.dtx | 6 ++--- 12 files changed, 130 insertions(+), 105 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index 96171d34..5fff64c5 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -113,7 +113,7 @@ % zu zentrieren. Diese Einstellung geht beim Laden eines neuen Satzspiegels mit % \cs{loadgeometry} verloren. Hiermit wird das Problem behoben. % \begin{macrocode} -\newif\if@tud@x@crop@center +\tud@newif\if@tud@x@crop@center \AfterPackage{crop}{% \CheckCommand*\CROP@center{% \voffset\stockheight @@ -149,7 +149,7 @@ % ausgeführt, wenn entweder die Option \opt{crop} deaktiviert ist oder die % Klasse \cls{standalone} gar nicht geladen wurde. % \begin{macrocode} -\newif\if@tud@x@standalone@crop +\tud@newif\if@tud@x@standalone@crop \AfterClass*{standalone}{\let\if@tud@x@standalone@crop\ifsa@crop} % \end{macrocode} % \end{macro}^^A \if@tud@x@standalone@crop @@ -301,7 +301,7 @@ % Mit der Einstellung \opt{cdgeometry}|=|\val{adapted} wird auch das Format % DIN~A5 mit den skalierten Seitenrändern erstellt. % \begin{macrocode} -\newif\if@tud@cdgeometry@adjust +\tud@newif\if@tud@cdgeometry@adjust \newlength\tud@len@layoutwidth \newlength\tud@len@layoutheight \newlength\tud@len@layouthoffset @@ -571,7 +571,7 @@ % Option \opt{cdgeometry} temporär deaktiviert. Dies geschieht, um lediglich % die im Hintergrund verwendeten Makros neu zu setzen. % \begin{macrocode} -\newif\if@tud@cdgeometry@reset +\tud@newif\if@tud@cdgeometry@reset \newcommand*\tud@cdgeometry@reset[1]{% \@tud@cdgeometry@resettrue% \TUDoptions{cdgeometry=#1}% @@ -937,7 +937,7 @@ % und \cs{newgeometry} angepasst, weshalb diese vorher gesichert werden. % \ToDo{erweiterte Möglichkeiten von \cs{newgeometry} dokumentieren}[v2.07] % \begin{macrocode} - \newif\if@tud@x@geometry@enabled% + \tud@newif\if@tud@x@geometry@enabled% \@tud@x@geometry@enabledtrue% \tud@cs@store{geometry}% \tud@cs@store{newgeometry}% @@ -995,7 +995,7 @@ % mehrmals wiederverwendet werden, müssen diese u.U. korrigert bzw. auf ihren % ursprünglichen Wert zurückgesetzt werden. % \begin{macrocode} - \newif\if@tud@x@geometry@fixmargins% + \tud@newif\if@tud@x@geometry@fixmargins% \newcommand*\tud@x@geometry@fixmargins{% \ifGm@pass\else% \addtolength\oddsidemargin{-\tud@len@layouthoffset}% diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 6112950c..8f3e98c0 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -159,6 +159,33 @@ % \end{macrocode} % % \subsection{Grundlegende Befehle für \TUDScript} +% \subsubsection{Erweiterte Definition von \TeX-Primitiven} +% +% Mit \LaTeX{} lassen sich einige Primitiven definieren, ohne zu Prüfen, ob +% ggf. bereits eine Definition vorhanden ist. Dies wird hiermit umgangen. +% \begin{macro}{\tud@newif} +% \changes{v2.06o}{2022/07/27}{neu}^^A +% \begin{macro}{\tud@newcount} +% \changes{v2.06o}{2022/07/27}{neu}^^A +% \begin{macro}{\tud@newtoks} +% \changes{v2.06o}{2022/07/27}{neu}^^A +% \begin{macro}{\tud@newread} +% \changes{v2.06o}{2022/07/27}{neu}^^A +% \begin{macro}{\tud@newwrite} +% \changes{v2.06o}{2022/07/27}{neu}^^A +% \begin{macrocode} +\newcommand*\tud@newif[1]{\@ifdefinable#1{\newif#1}} +\newcommand*\tud@newcount[1]{\@ifdefinable#1{\newcount#1}} +\newcommand*\tud@newtoks[1]{\@ifdefinable#1{\newtoks#1}} +\newcommand*\tud@newread[1]{\@ifdefinable#1{\newread#1}} +\newcommand*\tud@newwrite[1]{\@ifdefinable#1{\newwrite#1}} +% \end{macrocode} +% \end{macro}^^A \tud@newwrite +% \end{macro}^^A \tud@newread +% \end{macro}^^A \tud@newtoks +% \end{macro}^^A \tud@newcount +% \end{macro}^^A \tud@newif +% % \subsubsection{Temporäre Makros zur internen Verwendung durch \TUDScript} % % Hier werden Makros definiert, die allein für die interne temporäre Nutzung @@ -175,6 +202,8 @@ % \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\tud@res@c} % \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@res@d} +% \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\if@tud@res@swa} % \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\tud@res@cnt} @@ -187,32 +216,34 @@ \newcommand*\tud@res@a{} \newcommand*\tud@res@b{} \newcommand*\tud@res@c{} -\newif\if@tud@res@swa -\newcount\tud@res@cnt +\newcommand*\tud@res@d{} +\tud@newif\if@tud@res@swa +\tud@newcount\tud@res@cnt \newread\tud@res@read % \end{macrocode} % \end{macro}^^A \tud@res@read % \end{macro}^^A \tud@res@cnt % \end{macro}^^A \if@tud@res@swa +% \end{macro}^^A \tud@res@d % \end{macro}^^A \tud@res@c % \end{macro}^^A \tud@res@b % \end{macro}^^A \tud@res@a % \end{macro}^^A \tud@reserved % \begin{macro}{\tud@toks@} % \changes{v2.05}{2015/11/01}{neu}^^A -% \begin{macro}{\eaddto@hook} +% \begin{macro}{\addto@hook@expandafter} % \changes{v2.05}{2015/11/01}{neu}^^A % Es wird ein token-Regsiter reserviert, welches im weiteren Verlauf an allen -% möglichen Punkten verwendet wird. Mit \cs{eaddto@hook} wird~-- in Ergänzung -% zu \cs{addto@hook}~-- ein Makro zum Anfügen des expandierten Arguments an ein -% token-Register bereitgestellt. +% möglichen Punkten verwendet wird. Mit \cs{addto@hook@expandafter} wird~-- in +% Ergänzung zu \cs{addto@hook} aus dem \LaTeX"~Kernel~-- ein Makro zum Anfügen +% des expandierten Arguments an ein token-Register bereitgestellt. % \begin{macrocode} -\newtoks\tud@toks@ -\newcommand*\eaddto@hook[2]{% +\tud@newtoks\tud@toks@ +\newcommand*\addto@hook@expandafter[2]{% \expandafter\addto@hook\expandafter#1\expandafter{#2}% } % \end{macrocode} -% \end{macro}^^A \eaddto@hook +% \end{macro}^^A \addto@hook@expandafter % \end{macro}^^A \tud@toks@ % % \subsubsection{Verzweigung für Präambel und Dokument} diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index a28680d8..ff211bbe 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -785,7 +785,7 @@ % Früher musste die Unterstützung für die Schriftauswahl via \pkg{fontspec} % manuell über die folgende Option aktiviert werden. % \begin{macrocode} -\newif\if@tud@x@fontspec@requested +\tud@newif\if@tud@x@fontspec@requested \TUD@key{fontspec}[true]{% \TUD@set@ifkey{fontspec}{@tud@x@fontspec@requested}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1309,7 +1309,7 @@ % ursprünglichen Zustand geschaltet und der globale Schalter % \cs{if@tud@comp@chapterpage} zurückgesetzt. % \begin{macrocode} -\newif\if@tud@comp@chapterpage +\tud@newif\if@tud@comp@chapterpage \newcommand*\chapterpage{% \global\@tud@comp@chapterpagetrue% \tud@comp@chapterpage@wrn% @@ -1669,7 +1669,7 @@ % in zwei asymmetrischen Spalten, wohingegen die \TUDScript-Klassen diesen % zentriert und symmetrisch zum Satzspiegel platzieren. % \begin{macrocode} -\newif\if@tud@mathposterfoot +\tud@newif\if@tud@mathposterfoot \TUD@key{tudmathposterfoot}[true]{% \TUD@set@ifkey{tudmathposterfoot}{@tud@mathposterfoot}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1812,7 +1812,7 @@ % für die farbliche Ausprägung der Tabellenzeilen definiert. % \begin{macrocode} \PassOptionsToPackage{table}{xcolor} -\newif\if@tud@comp@graytable +\tud@newif\if@tud@comp@graytable \newcommand*\blautabelle{\@tud@comp@graytablefalse} \newcommand*\grautabelle{\@tud@comp@graytabletrue} \newenvironment{farbtabellen}{% diff --git a/source/tudscr-doc.dtx b/source/tudscr-doc.dtx index 2126a02b..2c28c833 100644 --- a/source/tudscr-doc.dtx +++ b/source/tudscr-doc.dtx @@ -1158,7 +1158,7 @@ \newcommand*\efil{\hfil\nopagebreak}% \newcommand*\tud@lst@def{% \newcommand*\tud@lst@values{}% - \newif\if@tud@lst@multi% + \tud@newif\if@tud@lst@multi% \newcommand*\tud@lst@init{% \let\tud@lst@values\relax% \let\tud@lst@@sub\relax% @@ -1179,7 +1179,7 @@ \tud@lst@init% }% \newcommand*\tud@lst@@values{}% - \newif\if@tud@lst@@multi% + \tud@newif\if@tud@lst@@multi% \newcommand*\tud@lst@@init{% \let\tud@lst@@values\relax% \def\tud@lst@@sub{\subitem}% @@ -1335,10 +1335,8 @@ % die fraglichen Zeichen ersetzt und in eine weitere Hilfsdatei geschrieben. % \begin{macrocode} \ifdefined\tudxdyflag - \newcommand*\tud@xdy@write{}% - \newwrite\tud@xdy@write% - \newcommand*\tud@xdy@read{}% - \newread\tud@xdy@read% + \tud@newwrite\tud@xdy@write% + \tud@newread\tud@xdy@read% % \end{macrocode} % Die Makros für die fraglichen Steuerzeichen werden so angepasst, dass die % Wahrscheinlichkeit für eine Verwendung dieser Kombination in einem Makro- diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 449c437d..9e7ba759 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -202,7 +202,7 @@ % Mathematikschriften überlassen wurde. In diesem Fall wird eine entsprechende % Warnung an \cs{tud@cdmath@wrn} angehängt. % \begin{macrocode} -\newif\if@tud@x@fontspec@enabled +\tud@newif\if@tud@x@fontspec@enabled \PassOptionsToPackage{no-math}{fontspec} \AfterPackage*{fontspec}{% \@ifpackagelater{fontspec}{2017/01/24}{% @@ -269,7 +269,7 @@ % für beispielsweise die TypeWriter-Schriften nutzen zu können. % \begin{macrocode} \TUD@RecommendPackage{mweights}[2017/03/30]% -\newif\if@tud@x@mweights@enabled +\tud@newif\if@tud@x@mweights@enabled \AfterPackage*{mweights}{\@tud@x@mweights@enabledtrue} % \end{macrocode} % \end{macro}^^A \if@tud@x@mweights@enabled @@ -295,8 +295,8 @@ % \begin{macro}{\tud@cdfont@db} % Zu Beginn werden Schalter und Hilfsmakros sowohl für den Fließtext\dots % \begin{macrocode} -\newif\if@tud@cdfont@fam@exist -\newif\if@tud@cdfont@db@exist +\tud@newif\if@tud@cdfont@fam@exist +\tud@newif\if@tud@cdfont@db@exist \newcommand*\tud@cdfont@fam{opensans-TLF} \newcommand*\tud@cdfont@fam@lf{opensans-TLF} \newcommand*\tud@cdfont@fam@osf{opensans-TOsF} @@ -333,7 +333,7 @@ % Die TypeWriter-Schrift aus \pkg{roboto-mono} kann nur genutzt werden, wenn % diese tatsächlich auch vorhanden ist. % \begin{macrocode} -\newif\if@tud@ttfont@rb@exist +\tud@newif\if@tud@ttfont@rb@exist \IfFileExists{roboto-mono.sty}{% \@tud@ttfont@rb@existtrue% }{% @@ -652,7 +652,7 @@ % Paket reagiert werden, weil es sich bei der Definition der Schriften für den % Mathematikmodus auf \cs{familydefault} bzw. \cs{rmfamily} verlässt. % \begin{macrocode} -\newif\if@tud@x@siunitx@enabled +\tud@newif\if@tud@x@siunitx@enabled \AfterAtEndOfPackage*{siunitx}{% \@tud@x@siunitx@enabledtrue% \providecommand*\lseries{\fontseries{l}\selectfont}% @@ -680,7 +680,7 @@ % auf das Ende der Präambel verzögert werden, um zuvor alle Einstellungen für % die mathematischen Symbole vornehmen zu können. % \begin{macrocode} -\newif\if@tud@x@bm@requested +\tud@newif\if@tud@x@bm@requested %<*package> \@ifpackageloaded{bm}{% \PackageWarning{tudscrfonts}{% @@ -734,10 +734,10 @@ % das macht alles um einiges einfacher, siehe \opt{cdoldfont}, \opt{cdmath} % }[v2.07] % \begin{macrocode} -\newif\if@tud@cdfont@active -\newif\if@tud@cdfont@heavy -\newif\if@tud@cdfont@ultrabold -\newif\if@tud@cdfont@lining +\tud@newif\if@tud@cdfont@active +\tud@newif\if@tud@cdfont@heavy +\tud@newif\if@tud@cdfont@ultrabold +\tud@newif\if@tud@cdfont@lining \@tud@cdfont@liningtrue \TUD@key{cdfont}[true]{% \TUD@set@numkey{cdfont}{@tempa}{% @@ -921,8 +921,8 @@ % Schriftauswahl für die \TUDScript-Klassen oder das Paket \pkg{tudscrfonts} % entsprechend angepasst. % \begin{macrocode} -\newif\if@tud@cdoldfont@active -\newif\if@tud@cdoldfont@nodin +\tud@newif\if@tud@cdoldfont@active +\tud@newif\if@tud@cdoldfont@nodin \TUD@key{cdoldfont}[true]{% \TUD@set@numkey{cdoldfont}{@tempa}{% \TUD@bool@numkey,% @@ -1030,7 +1030,7 @@ % für das Laden der \TUDScript-Klasse ein Schlüssel definiert, der den Wert an % \KOMAScript{} weiterreicht. % \begin{macrocode} -\newif\if@tud@x@scr@fontsize@set +\tud@newif\if@tud@x@scr@fontsize@set \TUD@key{fontsize}{% \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1095,7 +1095,7 @@ % werden. Die Definiton der Längen wird durch das Makro \cs{tud@font@skip@set} % vorgenommen. % \begin{macrocode} -\newif\if@tud@relspacing +\tud@newif\if@tud@relspacing \TUD@key{relspacing}[true]{% \TUD@set@numkey{relspacing}{@tempa}{% \TUD@bool@numkey,% @@ -1492,7 +1492,7 @@ % welche mit \cs{tud@cdfont@declare@symb} deklariert wurden, und den normalen % gewechselt werden. % \begin{macrocode} -\newtoks\tud@cdfont@symbols@toks +\tud@newtoks\tud@cdfont@symbols@toks \newcommand*\tud@cdfont@symbols@set{% % \end{macrocode} % Die Sicherung der alten Definitionen erfolgt nur einmalig. Die Liste der @@ -2532,7 +2532,7 @@ % Mit dieser Option lässt sich die Nutzung von griechischen Lettern der aus der % LGR-Kodierung der aktuellen Schriftfamilie für den Mathematiksatz aktivieren. % \begin{macrocode} -\newif\if@tud@lgrgreeks +\tud@newif\if@tud@lgrgreeks \TUD@key{lgrgreeks}[true]{\TUD@set@ifkey{lgrgreeks}{@tud@lgrgreeks}{#1}} \TUD@key{lgrgreek}[true]{\TUDoptions{lgrgreeks=#1}} \TUD@key{LGRgreeks}[true]{\TUDoptions{lgrgreeks=#1}} @@ -3389,7 +3389,7 @@ % \cs{tud@cdmath@declare@symb} sowie \cs{tud@cdmath@declare@char} deklariert % wurden, und den normalen gewechselt werden. % \begin{macrocode} -\newtoks\tud@cdmath@symbols@toks +\tud@newtoks\tud@cdmath@symbols@toks \newcommand*\tud@cdmath@symbols@set{% % \end{macrocode} % Die Sicherung der alten Definitionen erfolgt nur einmalig. Die Liste der @@ -3440,7 +3440,7 @@ % \begin{macrocode} \newcommand*\tud@cdmath@symbols@set@chr[1]{% \edef\tud@res@a{\global\mathcode`#1=\the\mathcode`#1\relax}% - \eaddto@hook\tud@cdmath@symbols@toks{\tud@res@a}% + \addto@hook@expandafter\tud@cdmath@symbols@toks{\tud@res@a}% % \end{macrocode} % Für das Überschreiben des \cs{mathcode} des gewünschen \meta{Zeichen} wird % dieser aus der Bedeutung von |\tud@cdmath@symbols@|\meta{Zeichen} mit diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index 496420e7..1c7f784d 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -626,7 +626,7 @@ % auf die gleiche Seite wie die erste zu setzen. Gesetzt wird der Schalter über % die Option \opt{abstract}|=|\val{single/multi}. % \begin{macrocode} -\newif\if@tud@abstract@multi +\tud@newif\if@tud@abstract@multi \@tud@abstract@multitrue % \end{macrocode} % \end{macro}^^A \if@tud@abstract@multi @@ -635,7 +635,7 @@ % vertikal zentriert wird. Er wird mit \opt{abstract}|=|\val{fill/nofill} % gesetzt und ist normalerweise aktiviert. % \begin{macrocode} -\newif\if@tud@abstract@fil +\tud@newif\if@tud@abstract@fil \@tud@abstract@filtrue % \end{macrocode} % \end{macro}^^A \if@tud@abstract@fil @@ -644,7 +644,7 @@ % Dieser Schalter setzt rechten und linken Kolumnentitel automatisch auf die % verwendete Überschrift. % \begin{macrocode} -\newif\if@tud@abstract@markboth +\tud@newif\if@tud@abstract@markboth % \end{macrocode} % \end{macro}^^A \if@tud@abstract@markboth % @@ -950,11 +950,11 @@ \newcommand*\tud@declaration@level@num{3} \tud@locked@newnum{tud@declaration@toc@num}{1} % -\newif\if@tud@declaration@multi +\tud@newif\if@tud@declaration@multi \@tud@declaration@multitrue -\newif\if@tud@declaration@fil +\tud@newif\if@tud@declaration@fil \@tud@declaration@filtrue -\newif\if@tud@declaration@markboth +\tud@newif\if@tud@declaration@markboth % \end{macrocode} % \end{macro}^^A \if@tud@declaration@markboth % \end{macro}^^A \if@tud@declaration@fil @@ -1061,7 +1061,7 @@ % \cs{declaration}, \cs{confirmation} und \cs{blocking} innerhalb und außerhalb % dieser Umgebung verwenden zu können. % \begin{macrocode} -\newif\if@tud@declarations +\tud@newif\if@tud@declarations \NewEnviron{declarations}[1][]{% \@tud@declarationstrue% %<*book|report> diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index f0e1b22e..fda0d26d 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -301,7 +301,7 @@ % Der Schalter dient zur Steuerung, ob der Titel des Dokumentes wie im Handbuch % des \CDs auf den Teileseiten stehen soll. % \begin{macrocode} -\newif\if@tud@parttitle +\tud@newif\if@tud@parttitle \TUD@key{parttitle}[true]{% \TUD@set@ifkey{parttitle}{@tud@parttitle}{#1}% } @@ -313,7 +313,7 @@ % Mit dieser Option können Kapitelüberschriften alleine auf einer Seite stehen. % Es werden separate Kapitelseiten erzeugt. % \begin{macrocode} -\newif\if@tud@chapterpage +\tud@newif\if@tud@chapterpage \TUD@key{chapterpage}[true]{% \TUD@set@ifkey{chapterpage}{@tud@chapterpage}{#1}% } @@ -346,7 +346,7 @@ % Der Befehl \cs{tud@cleardoublepage} enthält die Definition der zu erzeugenden % Doppelseite. % \begin{macrocode} -\newif\if@tud@clearcolor +\tud@newif\if@tud@clearcolor \newcommand*\tud@cleardoublepage{\cleardoubleoddpage} % \end{macrocode} % Mit der Option \opt{cleardoublespecialpage} kann dieser festgelegt werden. @@ -587,7 +587,7 @@ % Die Option wird dahingehend erweitert, dass die Überschriften auch im % extra-fetten Schnitt gesetzt werden können. % \begin{macrocode} -\newif\if@tud@heavyheadings +\tud@newif\if@tud@heavyheadings \TUD@key{headings}{% \TUD@set@numkey{headings}{@tempa}{% {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index 0a4cb479..e49f772a 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -226,7 +226,7 @@ % \end{macrocode} % Hier erfolgt die eigentliche Sortierung der Liste. % \begin{macrocode} -\newif\if@tud@list@sorted +\tud@newif\if@tud@list@sorted \newcommand*\tud@list@@sort[1]{% % \end{macrocode} % Der erste Eintrag wird direkt der Liste hinzugefügt. @@ -856,8 +856,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 @@ -918,7 +918,7 @@ % 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}{% @@ -964,7 +964,7 @@ }% \@tempb#1\@nil% \fi% - \eaddto@hook\toks@{\expandafter{\@tempa}}% + \addto@hook@expandafter\toks@{\expandafter{\@tempa}}% \the\toks@% }% }% @@ -987,10 +987,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 @@ -2384,7 +2384,7 @@ % und der dazugehörige auswertende Befehl \cs{ifdisposition} definiert. Das % Setzen des Schalters wird in \cs{tud@sec@format} gepatcht. % \begin{macrocode} -\newif\if@tud@disposition +\tud@newif\if@tud@disposition \newcommand*\ifdisposition{% \if@tud@disposition% \expandafter\@firstoftwo% @@ -2479,7 +2479,7 @@ %<*class> \fi% % - \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 @@ -2492,7 +2492,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. @@ -2811,7 +2811,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} @@ -3104,7 +3104,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 @@ -3848,7 +3848,7 @@ % \cs{Process@ChangedAt} auszuführen, mit welchem die Formatierung der Einträge % der Änderungsliste erfolgt. % \begin{macrocode} -\newif\if@tud@changedat +\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 @@ -4055,7 +4055,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 @@ -4085,14 +4085,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}% }% @@ -4526,7 +4526,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@% @@ -4744,17 +4744,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 % % \end{macrocode} % \end{macro}^^A \tud@read @@ -5656,7 +5653,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{} @@ -6047,7 +6044,7 @@ % das Makro \cs{@tempb} aufgerufen. % \begin{macrocode} \toks@{\def\@tempa##1}% - \eaddto@hook\toks@{\detokenize{#2}}% + \addto@hook@expandafter\toks@{\detokenize{#2}}% \addto@hook\toks@{##2\@nil{\@tempb{##1}{##2}}}% % \end{macrocode} % Der Inhalt von \cs{toks@} ist @@ -6080,8 +6077,8 @@ % \begin{macrocode} \toks@{\@tempa}% \edef\@tempc{\expandafter\detokenize\expandafter{#1}}% - \eaddto@hook\toks@{\@tempc}% - \eaddto@hook\toks@{\detokenize{#2}\@nil}% + \addto@hook@expandafter\toks@{\@tempc}% + \addto@hook@expandafter\toks@{\detokenize{#2}\@nil}% % \end{macrocode} % Der Inhalt von \cs{toks@} hat die Form |\@tempa#1|\meta{Zeichen}|\@nil|, % wobei der Inhalt von |#1| expandiert wird. diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index c876f38e..b23d3458 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -91,7 +91,7 @@ % genutzt werden, um zu steuern, ob für Titel und Inhaltsverzeichnis % automatisch ein Eintrag für die Sprungmarken erzeugt werden soll. % \begin{macrocode} -\newif\if@tud@bookmarks +\tud@newif\if@tud@bookmarks \TUD@key{tudbookmarks}[true]{% \TUD@set@ifkey{tudbookmarks}{@tud@bookmarks}{#1}% } @@ -254,7 +254,7 @@ %^^A% in den Überschriften Symbole für die Fußnoten anstelle von Zahlen %^^A% verwendet werden sollen. %^^A% \begin{macrocode} -%^^A\newif\if@tud@symbolheadings +%^^A\tud@newif\if@tud@symbolheadings %^^A\TUD@key{footnotes}{% %^^A \TUD@set@numkey{footnotes}{@tempa}{% %^^A {nosymbolheadings}{0},{numberheadings}{0},% @@ -438,13 +438,13 @@ % dazugehörigen Befehle für die Einstellungen von Schriften, Layout und/oder % Satzspiegel in der richtigen Reihenfolge ausgeführt. % \begin{macrocode} -\newif\if@tud@font@set -\newif\if@tud@math@set -\newif\if@tud@font@skip@set +\tud@newif\if@tud@font@set +\tud@newif\if@tud@math@set +\tud@newif\if@tud@font@skip@set %<*class> -\newif\if@tud@x@scr@headings@reset -\newif\if@tud@cd@process -\newif\if@tud@cdgeometry@process +\tud@newif\if@tud@x@scr@headings@reset +\tud@newif\if@tud@cd@process +\tud@newif\if@tud@cdgeometry@process % \newcommand*\tud@atdocument@process{% \if@tud@font@set% diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 4b57ccac..555bcece 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -906,7 +906,7 @@ % der zu großen Breite der Kopfinformationen, was bei kleinen Papierformaten % geschehen kann, (re-)definiert. % \begin{macrocode} -\newif\if@tud@head@text@set +\tud@newif\if@tud@head@text@set \newcommand*\tud@head@text@wrn[1]{} \newcommand*\tud@head@text@set{% \if@tud@head@text@set% @@ -1131,8 +1131,8 @@ \tud@locked@newnum{tud@head@font@num}{0} \tud@locked@newnum{tud@head@bar@num}{0} \tud@locked@newbool{@tud@head@widebar} -\newif\if@tud@head@font@set -\newif\if@tud@head@date +\tud@newif\if@tud@head@font@set +\tud@newif\if@tud@head@date \TUD@key{cdhead}[true]{% \TUD@set@numkey{cdhead}{@tempa}{% \TUD@bool@numkey,% @@ -1236,7 +1236,7 @@ % \begin{macrocode} \newlength\tud@len@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} -\newif\if@tud@mainlogo@set +\tud@newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% @@ -1810,7 +1810,7 @@ % durch \val{:} an den Dateinamen angehängt übergeben wurden, werden hier in % der Box \cs{tud@layer@foot@cmd} gespeichert. % \begin{macrocode} -\newif\if@tud@footlogo@cmd@set +\tud@newif\if@tud@footlogo@cmd@set \newcommand*\tud@footlogo@cmd@set[2]{% \if@tud@footlogo@cmd@set% \tud@savelayerbox{foot@cmd}{% @@ -2256,7 +2256,7 @@ % um rekursive Aufrufe der Optionen zu verhindern. % \begin{macrocode} %<*class&option> -\newif\if@tud@ddc@internal +\tud@newif\if@tud@ddc@internal \newcommand*\tud@comp@clearpage{}% \newcommand*\tud@comp@resetpagestyle{}% % @@ -2325,9 +2325,9 @@ % \changes{v2.04}{2015/06/01}{neu}^^A % Die Option \opt{ddc}. % \begin{macrocode} -\newif\if@tud@headlogo@option@set -\newif\if@tud@footlogo@option@set -\newif\if@tud@ddc@auto +\tud@newif\if@tud@headlogo@option@set +\tud@newif\if@tud@footlogo@option@set +\tud@newif\if@tud@ddc@auto \newcommand*\tud@ddc@auto@num{0} \TUD@key{ddc}[true]{% % \end{macrocode} @@ -2496,7 +2496,7 @@ % Der Schalter wird verwendet, um das explizite Setzen der Schrifteinstellungen % über die Seitenstilparameter zu detektieren. % \begin{macrocode} -\newif\if@tud@parameter@ps@font@set +\tud@newif\if@tud@parameter@ps@font@set % \end{macrocode} % \end{macro}^^A \if@tud@parameter@ps@font@set % \begin{macro}{\TUD@parameter@ps@def} diff --git a/source/tudscr-texindy.dtx b/source/tudscr-texindy.dtx index 52d1e5b9..88c540ce 100644 --- a/source/tudscr-texindy.dtx +++ b/source/tudscr-texindy.dtx @@ -102,8 +102,7 @@ % notwendig ist. % \begin{macrocode} %\ifdefined\tudxdyflag -%\newcommand*\tud@xdy@write{} -%\newwrite\tud@xdy@write +%\tud@newwrite\tud@xdy@write \NewDocumentCommand\tud@xdy@create{s}{% \begingroup% \edef\tud@res@a{\@currname-\IfBooleanTF{#1}{gls}{ind}.xdy}% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 64a1b866..7e8e20b0 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -105,7 +105,7 @@ % Titels gesetzt. Um dieses Verhalten nachbilden zu können, wird diese Option % zur Verfügung gestellt. % \begin{macrocode} -\newif\if@tud@subjectthesis +\tud@newif\if@tud@subjectthesis \TUD@key{subjectthesis}[true]{% \TUD@set@ifkey{subjectthesis}{@tud@subjectthesis}{#1}% } @@ -120,7 +120,7 @@ % verlangt. Diese Option dient zum Aktivieren dieser Unterschriftenzeile am % Ende der Titelseite. % \begin{macrocode} -\newif\if@tud@titlesignature +\tud@newif\if@tud@titlesignature \TUD@key{titlesignature}[true]{% \TUD@set@ifkey{titlesignature}{@tud@titlesignature}{#1}% } @@ -1298,7 +1298,7 @@ % Der Befehl \cs{makecover} ist für eine Umschlagseite bei einem gebundenen % Werk zu verwenden. % \begin{macrocode} -\newif\if@tud@coverpage +\tud@newif\if@tud@coverpage \newcommand*\makecover[1][]{% % \end{macrocode} % Ist die Option \opt{titlepage}|=|\val{firstiscover} aktiv, wird eine Warnung From 4f5d59c9d69839d791b8b900903f305853d7400e Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Fri, 29 Jul 2022 02:32:31 +0200 Subject: [PATCH 05/24] revise assignments to skips and dimens - different naming scheme for registers to distinguish between dimen (`\tud@dim@...`) and skip (`\tud@glue@...`) - macros used for lengths with equivalent suffix `\tud@...@(dim|glue)` - replace `\newlength` with `\tud@new(dim|glue)` - assignments via `\tud@set(dim|glue)` with `\(glue|dim)expr` --- source/tudscr-area.dtx | 578 +++++++++++++++++----------------- source/tudscr-base.dtx | 123 +++++++- source/tudscr-comp.dtx | 26 +- source/tudscr-doc.dtx | 44 ++- source/tudscr-fields.dtx | 10 +- source/tudscr-fonts.dtx | 6 +- source/tudscr-frontmatter.dtx | 2 +- source/tudscr-layout.dtx | 103 +++--- source/tudscr-manual.dtx | 40 +-- source/tudscr-misc.dtx | 8 +- source/tudscr-pagestyle.dtx | 173 +++++----- source/tudscr-supervisor.dtx | 32 +- source/tudscr-title.dtx | 68 ++-- 13 files changed, 649 insertions(+), 564 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index 5fff64c5..3451ca46 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -164,101 +164,101 @@ % Seitenränder direkt gewählt oder aber die mit \pkg{typearea} berechneten Maße % an \pkg{geometry} durchgereicht. % -% \begin{length}{\tud@len@widemargin} -% \begin{length}{\tud@len@slimmargin} -% \begin{length}{\tud@len@both} +% \begin{length}{\tud@dim@widemargin} +% \begin{length}{\tud@dim@slimmargin} +% \begin{length}{\tud@dim@bothmargin} % Die Seitenränder für links und rechts sowie deren Summe, welche später für % weitere Satzspiegeleinstelungen dazu verwendet wird, diese anteilig zu % verteilen. % \begin{macrocode} -\newlength\tud@len@widemargin -\newlength\tud@len@slimmargin -\newlength\tud@len@both -% \end{macrocode} -% \end{length}^^A \tud@len@both -% \end{length}^^A \tud@len@slimmargin -% \end{length}^^A \tud@len@widemargin -% \begin{length}{\tud@len@topmargin} -% \begin{length}{\tud@len@barheight} -% \begin{length}{\tud@len@headsep} -% \begin{length}{\tud@len@footsep} +\tud@newdim\tud@dim@widemargin +\tud@newdim\tud@dim@slimmargin +\tud@newdim\tud@dim@bothmargin +% \end{macrocode} +% \end{length}^^A \tud@dim@bothmargin +% \end{length}^^A \tud@dim@slimmargin +% \end{length}^^A \tud@dim@widemargin +% \begin{length}{\tud@dim@topmargin} +% \begin{length}{\tud@dim@barheight} +% \begin{length}{\tud@dim@headsep} +% \begin{length}{\tud@dim@footsep} % Es folgen die speziellen Maße für die Seiten mit dem TUD-Kopf, also die Höhe % oberhalb des Querbalkens, die Höhe des Querbalkens selbst sowie der vertikale % (Mindest"~)Abstand zwischen Querbalken und Textkörper sowie der Fußzeile. % \begin{macrocode} -\newlength\tud@len@topmargin -\newlength\tud@len@barheight -\newlength\tud@len@headsep -\newlength\tud@len@footsep -% \end{macrocode} -% \end{length}^^A \tud@len@footsep -% \end{length}^^A \tud@len@headsep -% \end{length}^^A \tud@len@barheight -% \end{length}^^A \tud@len@topmargin -% \begin{length}{\tud@len@logox} -% \begin{length}{\tud@len@logoy} -% \begin{length}{\tud@len@logowidth} +\tud@newdim\tud@dim@topmargin +\tud@newdim\tud@dim@barheight +\tud@newdim\tud@dim@headsep +\tud@newdim\tud@dim@footsep +% \end{macrocode} +% \end{length}^^A \tud@dim@footsep +% \end{length}^^A \tud@dim@headsep +% \end{length}^^A \tud@dim@barheight +% \end{length}^^A \tud@dim@topmargin +% \begin{length}{\tud@dim@logox} +% \begin{length}{\tud@dim@logoy} +% \begin{length}{\tud@dim@logowidth} % Außerdem müssen Abmessungen und Position des TUD-Logos definiert werden, % genauer der horizontale (Soll"~)Abstand zwischen linkem Seitenrand und Logo, % der vertikale (Soll"~)Abstand zwischen oberem Seitenrand und Logo sowie die % Breite und Höhe\footnote{Proportionen sind durch die Grafik vorgegeben} des % Logos. % \begin{macrocode} -\newlength\tud@len@logox -\newlength\tud@len@logoy -\newlength\tud@len@logowidth +\tud@newdim\tud@dim@logox +\tud@newdim\tud@dim@logoy +\tud@newdim\tud@dim@logowidth % \end{macrocode} -% \end{length}^^A \tud@len@logowidth -% \end{length}^^A \tud@len@logoy -% \end{length}^^A \tud@len@logox -% \begin{length}{\tud@len@line} +% \end{length}^^A \tud@dim@logowidth +% \end{length}^^A \tud@dim@logoy +% \end{length}^^A \tud@dim@logox +% \begin{length}{\tud@dim@line} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{length}{\tud@len@heavyline} -% \begin{length}{\tud@len@thinline} +% \begin{length}{\tud@dim@heavyline} +% \begin{length}{\tud@dim@thinline} % Die Linienstärke der Outline im Kopf ist für ein monochromes Layout schmaler % als im Layout mit farbigem Hintergrund.\footnote{monochrom -% \cs{tud@len@thinline}, koloriert \cs{tud@len@heavyline}} Da im Dokument beide -% Varianten vorkommen können, wird die Breite \cs{tud@len@line} durch den -% Seitenstil situativ entweder auf den Wert von \cs{tud@len@thinline} oder aber -% \cs{tud@len@heavyline} gesetzt. -% \begin{macrocode} -\newlength\tud@len@line -\newlength\tud@len@heavyline -\newlength\tud@len@thinline -% \end{macrocode} -% \end{length}^^A \tud@len@thinline -% \end{length}^^A \tud@len@heavyline -% \end{length}^^A \tud@len@line -% \begin{length}{\tud@len@areaheadvskip} +% \cs{tud@dim@thinline}, koloriert \cs{tud@dim@heavyline}} Da im Dokument beide +% Varianten vorkommen können, wird die Breite \cs{tud@dim@line} durch den +% Seitenstil situativ entweder auf den Wert von \cs{tud@dim@thinline} oder aber +% \cs{tud@dim@heavyline} gesetzt. +% \begin{macrocode} +\tud@newdim\tud@dim@line +\tud@newdim\tud@dim@heavyline +\tud@newdim\tud@dim@thinline +% \end{macrocode} +% \end{length}^^A \tud@dim@thinline +% \end{length}^^A \tud@dim@heavyline +% \end{length}^^A \tud@dim@line +% \begin{length}{\tud@dim@areaheadvskip} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{length}{\tud@len@areadiff} -% \begin{length}{\tud@len@areavskip} +% \begin{length}{\tud@dim@areadiff} +% \begin{length}{\tud@dim@areavskip} % Die Längen für den vertikalen Standardversatz der Überschriften sowie die % Differenz der Kopfhöhen von normalem und TUD-Kopf-Satzspiegel. Die Differenz % zwischen den unterschiedlichen Kopfhöhen der Satzspiegelvarianten wird durch -% \cs{tud@cdgeometry@@process} berechnet und dabei in \cs{tud@len@areadiff} +% \cs{tud@cdgeometry@@process} berechnet und dabei in \cs{tud@dim@areadiff} % gespeichert. Dabei muss unterschieden werden, ober der Satzspiegel des \CDs % oder der durch \pkg{typearea} berechnete respektive durch den Anwender mit % \pkg{geometry} vorgegebene genutzt wird. Davon abhängig wird zum Ausgleich -% die Länge \cs{tud@len@areavskip} definiert. +% die Länge \cs{tud@dim@areavskip} definiert. % \begin{macrocode} -\newlength\tud@len@areaheadvskip -\newlength\tud@len@areadiff -\newlength\tud@len@areavskip +\tud@newdim\tud@dim@areaheadvskip +\tud@newdim\tud@dim@areadiff +\tud@newdim\tud@dim@areavskip % \end{macrocode} -% \end{length}^^A \tud@len@areavskip -% \end{length}^^A \tud@len@areadiff -% \end{length}^^A \tud@len@areaheadvskip -% \begin{length}{\tud@len@ddcdiff} +% \end{length}^^A \tud@dim@areavskip +% \end{length}^^A \tud@dim@areadiff +% \end{length}^^A \tud@dim@areaheadvskip +% \begin{length}{\tud@dim@ddcdiff} % \changes{v2.02}{2014/06/23}{neu}^^A -% Zu guter Letzt noch die Länge \cs{tud@len@ddcdiff} für den Höhenausgleich des +% Zu guter Letzt noch die Länge \cs{tud@dim@ddcdiff} für den Höhenausgleich des % Seitenfußes, welcher bei der Verwendung des \DDC-Logos in der Fußzeile bei % Version~v2.02 für den Satzspiegel notwendig war. Dieser etwas verschrobene % Satzspiegel wird im Kompatibilitätsmodus weiterhin angeboten. % \begin{macrocode} -\tud@if@v@lower{2.03}{\newlength\tud@len@ddcdiff}{} +\tud@if@v@lower{2.03}{\tud@newdim\tud@dim@ddcdiff}{} % \end{macrocode} -% \end{length}^^A \tud@len@ddcdiff +% \end{length}^^A \tud@dim@ddcdiff % \begin{macro}{\tud@head@fontsize} % Für den Querbalken wird außerdem die zu verwendende Schriftgröße definiert. % \begin{macrocode} @@ -267,7 +267,7 @@ % \end{macro}^^A \tud@head@fontsize % \begin{macro}{\tud@cdgeometry@set} % \changes{v2.03}{2015/01/23}{Längenberechnung für den Satzspiegel an -% Referenzlänge \cs{tud@len@widemargin} gekoppelt}^^A +% Referenzlänge \cs{tud@dim@widemargin} gekoppelt}^^A % \changes{v2.05}{2015/07/15}{Fallunterscheidung an DIN-B-Reihe angepasst}^^A % \changes{v2.05}{2016/04/03}{Option \opt{layout} von \pkg{geometry} möglich}^^A % \begin{macro}{\if@tud@cdgeometry@adjust} @@ -280,18 +280,18 @@ % \changes{v2.06g}{2020/06/18}{neu}^^A % \begin{macro}{\tud@cdgeometry@papersize@last} % \changes{v2.06g}{2020/06/18}{neu}^^A -% \begin{length}{\tud@len@layoutwidth} +% \begin{length}{\tud@dim@layoutwidth} % \changes{v2.05}{2016/04/03}{neu}^^A -% \begin{length}{\tud@len@layoutheight} +% \begin{length}{\tud@dim@layoutheight} % \changes{v2.05}{2016/04/03}{neu}^^A -% \begin{length}{\tud@len@layouthoffset} +% \begin{length}{\tud@dim@layouthoffset} % \changes{v2.05}{2016/04/03}{neu}^^A -% \begin{length}{\tud@len@layoutvoffset} +% \begin{length}{\tud@dim@layoutvoffset} % \changes{v2.05}{2016/04/03}{neu}^^A % Hiermit werden in Abhängigkeit der gewählten Papiergröße die Maße für die % Größe der Kopfzeile, die Position des Logos, die Seitenränder sowie die % Schriftgröße in der Kopfzeile definiert. Aufgerufen wird der Befehl durch -% \cs{tud@cdgeometry@@process}. Dabei fungiert \cs{tud@len@widemargin} als +% \cs{tud@cdgeometry@@process}. Dabei fungiert \cs{tud@dim@widemargin} als % Bezugslänge. Die maßgebliche Papiergröße ist DIN~A4 bzw. DIN~B4. Die Längen % für alle anderen Papiermaße unterscheiden sich um den Faktor~$\sqrt{2}$, % wobei das Format DIN~A5 nach den Vorgaben des \CDs übersprungen wird. @@ -302,48 +302,48 @@ % DIN~A5 mit den skalierten Seitenrändern erstellt. % \begin{macrocode} \tud@newif\if@tud@cdgeometry@adjust -\newlength\tud@len@layoutwidth -\newlength\tud@len@layoutheight -\newlength\tud@len@layouthoffset -\newlength\tud@len@layoutvoffset +\tud@newdim\tud@dim@layoutwidth +\tud@newdim\tud@dim@layoutheight +\tud@newdim\tud@dim@layouthoffset +\tud@newdim\tud@dim@layoutvoffset \newcommand*\tud@cdgeometry@set{% \tud@cdgeometry@assignlayout% \tud@if@v@lower{2.05}{% - \ifdim\tud@len@layoutheight<\dimexpr105mm+1.5mm\relax% + \ifdim\tud@dim@layoutheight<\dimexpr105mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr148mm+1.5mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr148mm+1.5mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr229mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr229mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr297mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr297mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr420mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr420mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr594mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr594mm+2mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr841mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr841mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1189mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1189mm+3mm\relax% \def\@tempa{7}% \else% \def\@tempa{8}% \fi\fi\fi\fi\fi\fi\fi\fi% }{% - \ifdim\tud@len@layoutheight<\dimexpr125mm+1.5mm\relax% + \ifdim\tud@dim@layoutheight<\dimexpr125mm+1.5mm\relax% \def\@tempa{0}% - \else\ifdim\tud@len@layoutheight<\dimexpr176mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr176mm+2mm\relax% \def\@tempa{1}% - \else\ifdim\tud@len@layoutheight<\dimexpr250mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr250mm+2mm\relax% \def\@tempa{2}% - \else\ifdim\tud@len@layoutheight<\dimexpr353mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr353mm+2mm\relax% \def\@tempa{3}% - \else\ifdim\tud@len@layoutheight<\dimexpr500mm+2mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr500mm+2mm\relax% \def\@tempa{4}% - \else\ifdim\tud@len@layoutheight<\dimexpr707mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr707mm+3mm\relax% \def\@tempa{5}% - \else\ifdim\tud@len@layoutheight<\dimexpr1000mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1000mm+3mm\relax% \def\@tempa{6}% - \else\ifdim\tud@len@layoutheight<\dimexpr1414mm+3mm\relax% + \else\ifdim\tud@dim@layoutheight<\dimexpr1414mm+3mm\relax% \def\@tempa{7}% \else% \def\@tempa{8}% @@ -380,20 +380,20 @@ calculate a proper type area% }% \fi% - \tud@divide\@tempa{\tud@len@layoutheight}{148mm}% - \setlength\tud@len@widemargin{15mm}% - \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% - \setlength\tud@len@heavyline{0.5pt}% - \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% - \setlength\tud@len@thinline{0.25pt}% - \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% - \setlength\@tempdima{4.5pt}% - \setlength\@tempdima{\@tempa\@tempdima}% + \tud@divide\@tempa{\tud@dim@layoutheight}{148mm}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{0.25pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{4.5pt}% + \tud@setdim\@tempdima{\@tempa\@tempdima}% \edef\tud@head@fontsize{\strip@pt\@tempdima}% \or% <=A6/B6 - \setlength\tud@len@widemargin{15mm}% - \setlength\tud@len@heavyline{0.5pt}% - \setlength\tud@len@thinline{0.25pt}% + \tud@setdim\tud@dim@widemargin{15mm}% + \tud@setdim\tud@dim@heavyline{0.5pt}% + \tud@setdim\tud@dim@thinline{0.25pt}% \renewcommand*\tud@head@fontsize{4.5}% % \end{macrocode} % Für Formate der Klasse~5 gibt es zwei Varianten. Entweder, es wird sich an @@ -405,40 +405,40 @@ \or% <=A5/B5 \ifnum\tud@cdgeometry@calc@num=\z@\relax% restricted \@tud@cdgeometry@adjusttrue% - \setlength\tud@len@widemargin{30mm}% - \setlength\tud@len@heavyline{1pt}% - \setlength\tud@len@thinline{0.5pt}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@thinline{0.5pt}% \renewcommand*\tud@head@fontsize{9}% \else% - \setlength\tud@len@widemargin{21.213203mm}% - \setlength\tud@len@heavyline{0.707107pt}% - \setlength\tud@len@thinline{0.353553pt}% + \tud@setdim\tud@dim@widemargin{21.213203mm}% + \tud@setdim\tud@dim@heavyline{0.707107pt}% + \tud@setdim\tud@dim@thinline{0.353553pt}% \renewcommand*\tud@head@fontsize{6.363961}% \fi% \or% <=A4/B4 - \setlength\tud@len@widemargin{30mm}% - \setlength\tud@len@heavyline{1pt}% - \setlength\tud@len@thinline{0.5pt}% + \tud@setdim\tud@dim@widemargin{30mm}% + \tud@setdim\tud@dim@heavyline{1pt}% + \tud@setdim\tud@dim@thinline{0.5pt}% \renewcommand*\tud@head@fontsize{9}% \or% <=A3/B3 - \setlength\tud@len@widemargin{42.426407mm}% - \setlength\tud@len@heavyline{1.414214pt}% - \setlength\tud@len@thinline{0.707107pt}% + \tud@setdim\tud@dim@widemargin{42.426407mm}% + \tud@setdim\tud@dim@heavyline{1.414214pt}% + \tud@setdim\tud@dim@thinline{0.707107pt}% \renewcommand*\tud@head@fontsize{12.727922}% \or% <=A2/B2 - \setlength\tud@len@widemargin{60mm}% - \setlength\tud@len@heavyline{2pt}% - \setlength\tud@len@thinline{1pt}% + \tud@setdim\tud@dim@widemargin{60mm}% + \tud@setdim\tud@dim@heavyline{2pt}% + \tud@setdim\tud@dim@thinline{1pt}% \renewcommand*\tud@head@fontsize{18}% \or% <=A1/B1 - \setlength\tud@len@widemargin{84.852814mm}% - \setlength\tud@len@heavyline{2.828427pt}% - \setlength\tud@len@thinline{1.414214pt}% + \tud@setdim\tud@dim@widemargin{84.852814mm}% + \tud@setdim\tud@dim@heavyline{2.828427pt}% + \tud@setdim\tud@dim@thinline{1.414214pt}% \renewcommand*\tud@head@fontsize{25.455844}% \or% <=A0/B0 - \setlength\tud@len@widemargin{120mm}% - \setlength\tud@len@heavyline{4pt}% - \setlength\tud@len@thinline{2pt}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@thinline{2pt}% \renewcommand*\tud@head@fontsize{36}% \else% >A0/B0 % \end{macrocode} @@ -454,15 +454,15 @@ calculate a proper type area% }% \fi% - \tud@divide\@tempa{\tud@len@layoutheight}{1189mm}% - \setlength\tud@len@widemargin{120mm}% - \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% - \setlength\tud@len@heavyline{4pt}% - \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% - \setlength\tud@len@thinline{2pt}% - \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% - \setlength\@tempdima{36pt}% - \setlength\@tempdima{\@tempa\@tempdima}% + \tud@divide\@tempa{\tud@dim@layoutheight}{1189mm}% + \tud@setdim\tud@dim@widemargin{120mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{4pt}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{2pt}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{36pt}% + \tud@setdim\@tempdima{\@tempa\@tempdima}% \edef\tud@head@fontsize{\strip@pt\@tempdima}% \fi% % \end{macrocode} @@ -470,12 +470,12 @@ % Format DIN~A4. % \begin{macrocode} \ifnum\tud@cdgeometry@calc@num=\tw@\relax% - \tud@divide\@tempa{\tud@len@layoutheight}{297mm}% - \setlength\tud@len@widemargin{\@tempa\tud@len@widemargin}% - \setlength\tud@len@heavyline{\@tempa\tud@len@heavyline}% - \setlength\tud@len@thinline{\@tempa\tud@len@thinline}% - \setlength\@tempdima{\tud@head@fontsize pt}% - \setlength\@tempdima{\@tempa\@tempdima}% + \tud@divide\@tempa{\tud@dim@layoutheight}{297mm}% + \tud@setdim\tud@dim@widemargin{\@tempa\tud@dim@widemargin}% + \tud@setdim\tud@dim@heavyline{\@tempa\tud@dim@heavyline}% + \tud@setdim\tud@dim@thinline{\@tempa\tud@dim@thinline}% + \tud@setdim\@tempdima{\tud@head@fontsize pt}% + \tud@setdim\@tempdima{\@tempa\@tempdima}% \edef\tud@head@fontsize{\strip@pt\@tempdima}% \fi% % \end{macrocode} @@ -484,24 +484,22 @@ % forciert. % \begin{macrocode} \global\@tud@head@font@settrue% - \setlength\tud@len@slimmargin{\dimexpr2\tud@len@widemargin/3\relax}% - \setlength\tud@len@both{\dimexpr5\tud@len@widemargin/3\relax}% - \setlength\tud@len@topmargin{\dimexpr7\tud@len@widemargin/6\relax}% - \setlength\tud@len@barheight{\dimexpr\tud@len@widemargin/6\relax}% - \setlength\tud@len@headsep{\dimexpr2\tud@len@widemargin/5\relax}% - \setlength\tud@len@logox{\dimexpr1.1\tud@len@widemargin/3\relax}% - \setlength\tud@len@logoy{\dimexpr0.45\tud@len@widemargin\relax}% - \setlength\tud@len@logowidth{\dimexpr1.9\tud@len@widemargin\relax}% - \setlength\tud@len@footsep{% - \dimexpr\tud@len@widemargin-.6\tud@len@topmargin\relax% - }% + \tud@setdim\tud@dim@slimmargin{\tud@dim@widemargin*2/3}% + \tud@setdim\tud@dim@bothmargin{\tud@dim@widemargin*5/3}% + \tud@setdim\tud@dim@topmargin{\tud@dim@widemargin*7/6}% + \tud@setdim\tud@dim@barheight{\tud@dim@widemargin/6}% + \tud@setdim\tud@dim@headsep{\tud@dim@widemargin*2/5}% + \tud@setdim\tud@dim@logox{\tud@dim@widemargin*11/30}% + \tud@setdim\tud@dim@logoy{\tud@dim@widemargin*9/20}% + \tud@setdim\tud@dim@logowidth{\tud@dim@widemargin*19/10}% + \tud@setdim\tud@dim@footsep{\tud@dim@widemargin-\tud@dim@topmargin*3/5}% % \end{macrocode} % Wird die Gestaltungshöhe DIN~A5 im Raster verwendet, werden die Abstände % zwischen Kopf- unf Fußzeile angepasst. % \begin{macrocode} \if@tud@cdgeometry@adjust% - \setlength\tud@len@headsep{\dimexpr.707107\tud@len@headsep\relax}% - \setlength\tud@len@footsep{\dimexpr.707107\tud@len@footsep\relax}% + \tud@setdim\tud@dim@headsep{.707107\tud@dim@headsep}% + \tud@setdim\tud@dim@footsep{.707107\tud@dim@footsep}% \fi% \tud@cdgeometry@papersize@store% } @@ -510,11 +508,11 @@ % dem Paket \pkg{geometry} angegeben wurde, entsprechend gesetzt. % \begin{macrocode} \newcommand*\tud@cdgeometry@assignlayout{% - \ifdim\tud@len@layoutwidth<\p@\relax% - \setlength\tud@len@layoutwidth{\paperwidth}% + \ifdim\tud@dim@layoutwidth<\p@\relax% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% \fi% - \ifdim\tud@len@layoutheight<\p@\relax% - \setlength\tud@len@layoutheight{\paperheight}% + \ifdim\tud@dim@layoutheight<\p@\relax% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \fi% } % \end{macrocode} @@ -539,18 +537,18 @@ }% \ifx\tud@res@a\tud@cdgeometry@papersize@last\else% \appto\tud@res@b{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% \tud@x@geometry@fixmargins% }% \fi% \tud@res@b% } % \end{macrocode} -% \end{length}^^A \tud@len@layoutvoffset -% \end{length}^^A \tud@len@layouthoffset -% \end{length}^^A \tud@len@layoutheight -% \end{length}^^A \tud@len@layoutwidth +% \end{length}^^A \tud@dim@layoutvoffset +% \end{length}^^A \tud@dim@layouthoffset +% \end{length}^^A \tud@dim@layoutheight +% \end{length}^^A \tud@dim@layoutwidth % \end{macro}^^A \tud@cdgeometry@papersize@last % \end{macro}^^A \tud@cdgeometry@papersize@store % \end{macro}^^A \tud@cdgeometry@resetlayout @@ -671,49 +669,46 @@ % \end{macro}^^A \tud@cdgeometry@num % \end{option}^^A cdgeometry % \begin{option}{extrabottommargin} -% \begin{macro}{\tud@dim@extrabottommargin} +% \begin{macro}{\tud@extrabottommargin@dim} % Diese Option dient dazu, die Höhe des Fußes anzupassen. Dies ist jedoch nur % möglich, wenn der Satzspiegel des \CDs verwendet wird. Kommt \pkg{typearea} % zum Einsatz, ist die Option wirkungslos. Da für die Länge ggf. auch Werte % angegeben werden können, die abhängig von der Schriftgröße sind, wird die % Ausführung dieser Option verzögert. % \begin{macrocode} -\newcommand*\tud@dim@extrabottommargin{\z@} +\newcommand*\tud@extrabottommargin@dim{0pt} \TUD@key{extrabottommargin}{% - \TUD@set@dimenkey{extrabottommargin}{\tud@dim@extrabottommargin}{#1}% + \TUD@set@dimenkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% } % \end{macrocode} -% \end{macro}^^A \tud@dim@extrabottommargin +% \end{macro}^^A \tud@extrabottommargin@dim % \begin{option}{bleedmargin} % \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\tud@dim@bleedmargin} +% \begin{macro}{\tud@bleedmargin@dim} % \changes{v2.05}{2016/04/03}{neu}^^A % Wird entweder das Paket \pkg{crop} oder aber die Option \opt{layout} des % Paketes \pkg{geometry} für Schnittmarken verwendet, werden alle farbigen % Elemente des Layouts dahingehend vergrößert, dass beim Zuschneiden des % Papierbogens \emph{in die Farbe} geschnitten wird. Verantwortlich hierfür ist -% das Makro \cs{tud@dim@bleedmargin}, welches natürlich auch vom Anwender mit +% das Makro \cs{tud@bleedmargin@dim}, welches natürlich auch vom Anwender mit % der Option \opt{bleedmargin} beliebig gesetzt werden kann. Als Standardwert % werden 5\% der größten Randbreite gesetzt. % \begin{macrocode} -\newcommand*\tud@dim@bleedmargin{.2in} +\newcommand*\tud@bleedmargin@dim{.2in} \TUD@key{bleedmargin}{% - \TUD@set@dimenkey{bleedmargin}{\tud@dim@bleedmargin}{#1}% + \TUD@set@dimenkey{bleedmargin}{\tud@bleedmargin@dim}{#1}% % \end{macrocode} % Negative Werte sind nicht möglich, diese werden automatisch korrigiert. % \begin{macrocode} \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifdim\dimexpr\tud@dim@bleedmargin\relax<\z@\relax% - \def\@tempa-##1\@nil{\def\tud@dim@bleedmargin{##1}}% - \@tempa#1\@nil% - \fi% + \tud@length@setabsolute\tud@bleedmargin@dim% \fi% } % \end{macrocode} -% \end{macro}^^A \tud@dim@bleedmargin +% \end{macro}^^A \tud@bleedmargin@dim % \end{option}^^A bleedmargin % \end{option}^^A extrabottommargin % \begin{option}{twoside} @@ -998,9 +993,9 @@ \tud@newif\if@tud@x@geometry@fixmargins% \newcommand*\tud@x@geometry@fixmargins{% \ifGm@pass\else% - \addtolength\oddsidemargin{-\tud@len@layouthoffset}% - \addtolength\evensidemargin{-\tud@len@layouthoffset}% - \addtolength\topmargin{-\tud@len@layoutvoffset}% + \tud@addtodim\oddsidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\evensidemargin{-\tud@dim@layouthoffset}% + \tud@addtodim\topmargin{-\tud@dim@layoutvoffset}% \@tud@x@geometry@fixmarginsfalse% \fi% }% @@ -1062,8 +1057,8 @@ \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \noexpand\setlength\noexpand\tud@len@layoutwidth{\the\paperwidth}% - \noexpand\setlength\noexpand\tud@len@layoutheight{\the\paperheight}% + \unexpanded{\tud@setdim\tud@dim@layoutwidth}{\the\paperwidth}% + \unexpanded{\tud@setdim\tud@dim@layoutheight}{\the\paperheight}% }% \tud@res@a% \fi% @@ -1135,10 +1130,10 @@ }% \TUD@parameter@def{layout}{% \Ifstr{#1}{false}{% - \setlength\tud@len@layoutwidth{\z@}% - \setlength\tud@len@layoutheight{\z@}% - \setlength\tud@len@layouthoffset{\z@}% - \setlength\tud@len@layoutvoffset{\z@}% + \tud@setdim\tud@dim@layoutwidth{\z@}% + \tud@setdim\tud@dim@layoutheight{\z@}% + \tud@setdim\tud@dim@layouthoffset{\z@}% + \tud@setdim\tud@dim@layoutvoffset{\z@}% }{% \tud@x@geometry@area@def{layout}{#1}% }% @@ -1155,25 +1150,25 @@ \@tempa#1,,\@nil% }% \TUD@parameter@def{layoutwidth}{% - \tud@x@geometry@area@def{layout}{#1:\tud@len@layoutheight}% + \tud@x@geometry@area@def{layout}{#1:\tud@dim@layoutheight}% }% \TUD@parameter@def{layoutheight}{% - \tud@x@geometry@area@def{layout}{\tud@len@layoutwidth:#1}% + \tud@x@geometry@area@def{layout}{\tud@dim@layoutwidth:#1}% }% \TUD@parameter@def{layoutoffset}{% \def\@tempa##1,##2,##3\@nil{% \IfArgIsEmpty{##2}{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##1}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##1}% }{% - \setlength\tud@len@layouthoffset{##1}% - \setlength\tud@len@layoutvoffset{##2}% + \tud@setdim\tud@dim@layouthoffset{##1}% + \tud@setdim\tud@dim@layoutvoffset{##2}% }% }% \@tempa#1,,\@nil% }% - \TUD@parameter@def{layouthoffset}{\setlength\tud@len@layouthoffset{#1}}% - \TUD@parameter@def{layoutvoffset}{\setlength\tud@len@layoutvoffset{#1}}% + \TUD@parameter@def{layouthoffset}{\tud@setdim\tud@dim@layouthoffset{#1}}% + \TUD@parameter@def{layoutvoffset}{\tud@setdim\tud@dim@layoutvoffset{#1}}% \TUD@parameter@def{bleedmargin}{\TUDoption{bleedmargin}{#1}}% \TUD@parameter@handler@macro{% \eappto\tud@x@geometry@parameter{% @@ -1324,16 +1319,16 @@ % \begin{macrocode} \tud@cdgeometry@assignlayout% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth=\paperwidth\relax\else\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight=\paperheight\relax\else\@tud@res@swatrue\fi% \edef\tud@res@a{% \endgroup% \unexpanded{\def#1}{% layoutoffset={% - \the\tud@len@layouthoffset,\the\tud@len@layoutvoffset% + \the\tud@dim@layouthoffset,\the\tud@dim@layoutvoffset% }% \if@tud@res@swa% - ,layoutsize={\the\tud@len@layoutwidth,\the\tud@len@layoutheight}% + ,layoutsize={\the\tud@dim@layoutwidth,\the\tud@dim@layoutheight}% \fi% }% }% @@ -1363,9 +1358,7 @@ % gemachten Einstellungen zurückgesetzt. % \begin{macrocode} \Gm@initnewgm% - \edef\@tempa{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,#1% - }% + \edef\@tempa{papersize={\the\paperwidth,\the\paperheight},#1}% \def\@tempc{\tud@cs@use{geometry}}% \expandafter\@tempc\expandafter{\@tempa,driver=none}% }{% @@ -1513,8 +1506,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -1550,8 +1542,7 @@ top=\the\dimexpr\topmargin+1in\relax,% \else% includehead=false,% - top=\the\dimexpr\topmargin% - +\headheight+\headsep+1in\relax,% + top=\the\dimexpr\topmargin+\headheight+\headsep+1in\relax,% \fi% headheight=\the\headheight,% headsep=\the\headsep,% @@ -1574,23 +1565,23 @@ % benutzerdefinierten bzw. \pkg{typearea}-Satzspiegel noch unterhalb des % TUD-Kopfes liegen, wird der Abstand zum Kopf vergrößert. % \begin{macrocode} - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\topmargin-\headheight-\headsep-1in\relax% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\topmargin-\headheight-\headsep-1in% }% - \ifdim\tud@len@areadiff<\z@\relax% - \addtolength\tud@len@headsep{-\tud@len@areadiff}% - \setlength\@tempdima{\z@}% + \ifdim\tud@dim@areadiff<\z@\relax% + \tud@addtodim\tud@dim@headsep{-\tud@dim@areadiff}% + \tud@setdim\@tempdima{\z@}% \else% - \setlength\@tempdima{\tud@len@areadiff}% + \tud@setdim\@tempdima{\tud@dim@areadiff}% \fi% \edef\tud@cdgeometry@tudmargin{% ignorehead=true,% - top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax,% - headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% - -\tud@len@logoy\relax,% - headsep=\the\tud@len@headsep,% + top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + +\tud@dim@headsep\relax,% + headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -\tud@dim@logoy\relax,% + headsep=\the\tud@dim@headsep,% textheight=\the\dimexpr\textheight-\@tempdima\relax% }% % \end{macrocode} @@ -1598,14 +1589,14 @@ % separaten Satzspiegel. % \begin{macrocode} \tud@if@v@lower{2.03}{% - \setlength\tud@len@ddcdiff{% - \dimexpr.6\tud@len@topmargin-\footskip+\tud@len@headsep% - +\footheight-1.25\baselineskip\relax% + \tud@setdim\tud@dim@ddcdiff{% + \tud@dim@topmargin*3/5-\footskip+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4% }% \edef\tud@cdgeometry@ddcmargin{% - textheight=\the\dimexpr\textheight-\tud@len@areadiff% - -\tud@len@ddcdiff\relax,% - footskip=\the\dimexpr\footskip+\tud@len@ddcdiff\relax% + textheight=\the\dimexpr\textheight-\tud@dim@areadiff% + -\tud@dim@ddcdiff\relax,% + footskip=\the\dimexpr\footskip+\tud@dim@ddcdiff\relax% }% }{}% % \end{macrocode} @@ -1613,7 +1604,7 @@ % Warnung ausgegeben, dass diese für den \pkg{typearea}-Satzspiegel wirkungslos % ist. % \begin{macrocode} - \ifdim\dimexpr\tud@dim@extrabottommargin\relax=\z@\relax\else% + \ifdim\dimexpr\tud@extrabottommargin@dim\relax=\z@\relax\else% \begingroup% \edef\tud@res@a{% The key `extrabottommargin' is ineffective\MessageBreak% @@ -1642,19 +1633,19 @@ % \begin{macrocode} \else% true/symmetric/twoside \ifcase\tud@cdgeometry@num\relax\or\or% true - \setlength\@tempdima{\tud@len@widemargin}% + \tud@setdim\@tempdima{\tud@dim@widemargin}% \if@reversemargin% - \setlength\@tempdimc{\tud@len@widemargin}% + \tud@setdim\@tempdimc{\tud@dim@widemargin}% \else% - \setlength\@tempdimc{\tud@len@slimmargin}% + \tud@setdim\@tempdimc{\tud@dim@slimmargin}% \fi% % \end{macrocode} % Die zweite Variante ist eigentlich nicht konform mit dem \CD. Sie ist sowohl % im einseitigen als auch im zweiseitgigen Satz symmetrisch. % \begin{macrocode} \or% symmetric - \setlength\@tempdima{.5\tud@len@both}% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% % \end{macrocode} % Eigentlich ist auch die dritte Variante nach dem \CD nicht zulässig. Sie ist % im einseitigen Satz symmetrisch, im zweiseitgigen Satz wird die innere Seite @@ -1663,16 +1654,16 @@ % \begin{macrocode} \or% twoside \if@twoside% - \setlength\@tempdima{.4\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdima{.5\tud@len@both}% + \tud@setdim\@tempdima{\tud@dim@bothmargin/2}% \fi% - \setlength\@tempdimc{.5\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin/2}% \if@twoside% \if@reversemargin% - \setlength\@tempdimc{.4\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*2/5}% \else% - \setlength\@tempdimc{.6\tud@len@both}% + \tud@setdim\@tempdimc{\tud@dim@bothmargin*3/5}% \fi% \fi% \fi% @@ -1680,19 +1671,17 @@ % Die \emph{Berechnung} der Textbreite ist für alle Varainten identisch. Danach % erfolgt die Zuweisung zum Makro. % \begin{macrocode} - \addtolength\@tempdimc{-\headsep}% - \setlength\@tempdimb{% - \dimexpr\tud@len@layoutwidth-\tud@len@both-\ta@bcor\relax% - }% + \tud@addtodim\@tempdimc{-\headsep}% + \tud@setdim\@tempdimb{\tud@dim@layoutwidth-\tud@dim@bothmargin-\ta@bcor}% \if@mincl% - \addtolength\@tempdimb{-\@tempdimc}% + \tud@addtodim\@tempdimb{-\@tempdimc}% \fi% \edef\tud@cdgeometry@hmargin{% left=\the\@tempdima,% textwidth=\the\@tempdimb,% \tud@cdgeometry@mpincl,% marginparwidth=\the\@tempdimc,% - marginparsep=\the\dimexpr.5\headsep\relax,% + marginparsep=\the\dimexpr\headsep/2\relax,% \if@reversemargin% reversemarginpar=true,% \else% @@ -1717,66 +1706,67 @@ \tud@if@v@lower{2.03}{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\dimexpr.5\tud@len@both\relax,% + top=\the\dimexpr\tud@dim@bothmargin/2\relax,% headheight=\the\headheight,% - headsep=\the\tud@len@headsep,% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin\relax,% + headsep=\the\tud@dim@headsep,% + bottom=\the\dimexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip\relax% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4\relax% }% }{% \edef\tud@cdgeometry@vmargin{% \tud@cdgeometry@hincl,% - top=\the\tud@len@slimmargin,% + top=\the\tud@dim@slimmargin,% headheight=\the\headheight,% headsep=\the\headsep,% - bottom=\the\dimexpr\tud@len@widemargin% - +\tud@dim@extrabottommargin\relax,% + bottom=\the\dimexpr\tud@dim@widemargin% + +\tud@extrabottommargin@dim\relax,% \tud@cdgeometry@fincl,% - footskip=\the\dimexpr\tud@len@footsep+\footheight\relax% + footskip=\the\dimexpr\tud@dim@footsep+\footheight\relax% }% }% \edef\tud@cdgeometry@tudmargin{% ignorehead=true,% - top=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax,% - headheight=\the\dimexpr\tud@len@topmargin+\tud@len@barheight% - -\tud@len@logoy\relax,% - headsep=\the\tud@len@headsep% + top=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + +\tud@dim@headsep\relax,% + headheight=\the\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -\tud@dim@logoy\relax,% + headsep=\the\tud@dim@headsep% }% % \end{macrocode} % Es wird die Differenz der Höhen zwischen TUD-Kopf und Standardkopfzeile % für den Satzspiegel des \CDs berechnet. % \begin{macrocode} - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -\tud@len@slimmargin\relax% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@slimmargin% }% % \end{macrocode} % Für die Kompatibilitätsvariante wieder mal die Extrawurst. % \begin{macrocode} \tud@if@v@lower{2.03}{% - \setlength\tud@len@areadiff{% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep% - -.5\tud@len@both\relax% + \tud@setdim\tud@dim@areadiff{% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% + -\tud@dim@bothmargin/2% }% % \end{macrocode} % Wird die Fußzeile zum Satzspiegel gerechnet, ist für Seiten mit \DDC-Fuß % etwas Handarbeit notwendig, damit dieser nicht allzu weit nach oben ragt. % \begin{macrocode} - \setlength\tud@len@ddcdiff{.6\tud@len@topmargin}% + \tud@setdim\tud@dim@ddcdiff{\tud@dim@topmargin*3/5}% \edef\tud@cdgeometry@ddcmargin{% \if@fincl% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% - +\tud@len@ddcdiff+\tud@len@headsep+\footheight% - -1.25\baselineskip\relax,% + bottom=\the\dimexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff+\tud@dim@headsep% + +\footheight-1\baselineskip*5/4\relax,% \else% - bottom=\the\dimexpr.5\tud@len@both+\tud@dim@extrabottommargin% - +\tud@len@ddcdiff\relax,% + bottom=\the\dimexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax,% \fi% - footskip=\the\dimexpr\tud@len@headsep+\footheight% - -1.25\baselineskip+\tud@len@ddcdiff\relax,% + footskip=\the\dimexpr\tud@dim@headsep+\footheight% + -1\baselineskip*5/4+\tud@dim@ddcdiff\relax,% }% }{}% \fi% @@ -1786,22 +1776,22 @@ % vertikale Verschiebung der Überschriften festgelegt, wobei hier insbesondere % auf die Gestaltungshöhe DIN~A5 geachtet werden muss. % \begin{macrocode} - \ifdim\tud@len@areadiff<\z@\relax\setlength\tud@len@areadiff{\z@}\fi% - \global\tud@len@areadiff=\tud@len@areadiff% + \ifdim\tud@dim@areadiff<\z@\relax\tud@setdim\tud@dim@areadiff{\z@}\fi% + \global\tud@dim@areadiff=\tud@dim@areadiff% %<*book|report|article> - \setlength\tud@len@areaheadvskip{.22\tud@len@topmargin}% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@topmargin*11/50}% \if@tud@cdgeometry@adjust% - \setlength\tud@len@areaheadvskip{.5\tud@len@areaheadvskip}% + \tud@setdim\tud@dim@areaheadvskip{\tud@dim@areaheadvskip/2}% \fi% - \global\tud@len@areaheadvskip=\tud@len@areaheadvskip% + \global\tud@dim@areaheadvskip=\tud@dim@areaheadvskip% % % \end{macrocode} % Für den Satzspiegel der Version~v2.02 wird außerdem die Länge für den höheren % Seitenfuß gesetzt. % \begin{macrocode} \tud@if@v@lower{2.03}{% - \ifdim\tud@len@ddcdiff<\z@\relax\setlength\tud@len@ddcdiff{\z@}\fi% - \global\tud@len@ddcdiff=\tud@len@ddcdiff% + \ifdim\tud@dim@ddcdiff<\z@\relax\tud@setdim\tud@dim@ddcdiff{\z@}\fi% + \global\tud@dim@ddcdiff=\tud@dim@ddcdiff% }{}% % \end{macrocode} % Es wird \cs{tud@cdgeometry@@@process} aufgerufen, was die zuvor definierten @@ -1934,8 +1924,8 @@ % Bei der Initialisierung der zusätzlichen Satzspiegel soll keine Warnung % bezüglich der Angabe eines vergrößerten Fußbereichs erscheinen. % \begin{macrocode} - \tud@cs@store{tud@dim@extrabottommargin}% - \def\tud@dim@extrabottommargin{\z@}% + \tud@cs@store{tud@extrabottommargin@dim}% + \def\tud@extrabottommargin@dim{0pt}% % \end{macrocode} % Zunächst werden die benutzerdefinierten Einstellungen für den Satzspiegel % gesichert. @@ -1943,7 +1933,7 @@ \tud@cdgeometry@reset{custom}% \begingroup% \epreto\tud@x@geometry@init{% - paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + papersize={\the\paperwidth,\the\paperheight},% \tud@cdgeometry@layout,% \tud@cdgeometry@mpincl,% \if@reversemargin% @@ -1989,7 +1979,7 @@ % Hier werden die temporär geäanderten Einstellungen zurückgesetzt. % \begin{macrocode} \tud@cs@restore{tud@cdgeometry@num}% - \tud@cs@restore{tud@dim@extrabottommargin}% + \tud@cs@restore{tud@extrabottommargin@dim}% % \end{macrocode} % Der Kopf im \TUDCD erfordert einen eigenen Satzspiegel, der ggf. durch % \cs{tud@BeforeSelectAnyPageStyle} aktiviert bzw. deaktiviert wird. @@ -2080,12 +2070,12 @@ }% }% % \end{macrocode} -% Die Länge \cs{tud@len@areavskip} gibt an, wie groß die Differenz zwischen +% Die Länge \cs{tud@dim@areavskip} gibt an, wie groß die Differenz zwischen % Kopfhöhe zwischen aktuellem und dem speziellen \pgs{tudheadings}-Seitenstil % ist. Da diese in diesem Fall identisch sind, wird die Länge zu \cs{z@} % gesetzt. % \begin{macrocode} - \setlength\tud@len@areavskip{\z@}% + \tud@setdim\tud@dim@areavskip{\z@}% % \end{macrocode} % Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende % Schrift verwendet. @@ -2103,17 +2093,15 @@ \gdef\tud@currentgeometry{stdarea}% }% % \end{macrocode} -% Die Länge \cs{tud@len@areavskip} wird auf den berechneten Wert gesetzt. +% Die Länge \cs{tud@dim@areavskip} wird auf den berechneten Wert gesetzt. % Nur für den Fall, dass die Kopfzeile zum Satzspiegel gerechnet wird und % dieser nicht durch \pkg{typearea} berechnet wurde, muss diese Länge etwas % angepasst werden. % \begin{macrocode} - \setlength\tud@len@areavskip{\tud@len@areadiff}% + \tud@setdim\tud@dim@areavskip{\tud@dim@areadiff}% \ifnum\tud@cdgeometry@num>\@ne\relax% true/symmetric/twoside \if@hincl% - \addtolength\tud@len@areavskip{% - \dimexpr-\headheight-\tud@len@headsep\relax% - }% + \tud@addtodim\tud@dim@areavskip{-\headheight-\tud@dim@headsep}% \fi% \fi% % \end{macrocode} @@ -2123,9 +2111,9 @@ \tud@komafont@unset{pagefoot}% }% % \end{macrocode} -% Die Länge \cs{tud@len@areavskip} wird vorsichtshalber global gesetzt. +% Die Länge \cs{tud@dim@areavskip} wird vorsichtshalber global gesetzt. % \begin{macrocode} - \global\tud@len@areavskip=\tud@len@areavskip% + \global\tud@dim@areavskip=\tud@dim@areavskip% }{}% }% % \end{macrocode} @@ -2162,8 +2150,8 @@ \tud@cdgeometry@assignlayout% \edef\tud@res@a{% \endgroup% - \unexpanded{\setlength\paperheight}{\the\tud@len@layoutheight}% - \unexpanded{\setlength\paperwidth}{\the\tud@len@layoutwidth}% + \unexpanded{\tud@setdim\paperheight}{\the\tud@dim@layoutheight}% + \unexpanded{\tud@setdim\paperwidth}{\the\tud@dim@layoutwidth}% }% \tud@res@a% } @@ -2189,8 +2177,8 @@ \xpretocmd{\areaset}{% \tud@x@typearea@before% \begingroup% - \setlength\@tempdima{#2}% - \setlength\@tempdimb{#3}% + \tud@setdim\@tempdima{#2}% + \tud@setdim\@tempdimb{#3}% \edef\tud@res@a{% \endgroup% \def\noexpand\tud@x@typearea@init{% @@ -2210,14 +2198,14 @@ \begingroup% \tud@x@geometry@fixmargins% \tud@cs@use{storeareas}{#1}% - \def\tud@res@b##1{\unexpanded{\setlength##1}{\the##1}}% + \def\tud@res@b##1{\unexpanded{\tud@setdim##1}{\the##1}}% \edef\tud@res@a{% \endgroup% \unexpanded{\def#1}{% - \tud@res@b{\tud@len@layoutwidth}% - \tud@res@b{\tud@len@layoutheight}% - \tud@res@b{\tud@len@layouthoffset}% - \tud@res@b{\tud@len@layoutvoffset}% + \tud@res@b{\tud@dim@layoutwidth}% + \tud@res@b{\tud@dim@layoutheight}% + \tud@res@b{\tud@dim@layouthoffset}% + \tud@res@b{\tud@dim@layoutvoffset}% \expandonce#1% \def\noexpand\tud@cdgeometry@num{\tud@cdgeometry@num}% }% @@ -2306,8 +2294,8 @@ \let\tud@cdgeometry@@init\relax% }% \newcommand*\tud@cdgeometry@@process{% - \setlength\tud@len@layoutwidth{\paperwidth}% - \setlength\tud@len@layoutheight{\paperheight}% + \tud@setdim\tud@dim@layoutwidth{\paperwidth}% + \tud@setdim\tud@dim@layoutheight{\paperheight}% \tud@cdgeometry@set% }% \newcommand*\tud@x@geometry@fixmargins{}% @@ -2375,7 +2363,7 @@ \Ifstr{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false - \enlargethispage{-\tud@len@ddcdiff}% + \enlargethispage{-\tud@dim@ddcdiff}% \fi% }% }{}% diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 8f3e98c0..1d198e66 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -186,6 +186,120 @@ % \end{macro}^^A \tud@newcount % \end{macro}^^A \tud@newif % +% \subsubsection{Definition von Längen-Registern} +% +% \begin{macro}{\tud@newglue} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@newdim} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@setglue} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@setdim} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@addtoglue} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@addtodim} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% Der \LaTeX"~Kernel stellt lediglich \cs{newlength} zur Verfügung, um bereits +% bestehende Makros nicht zu überschreiben. Soll jedoch ein \cs{dimen}-Register +% definiert werden, gibt es keinen entsprechenden Befehl. Auch die Zuweisung +% von Längenwerte kann mit \cs{setlength} nicht sauber erfolgen, da nicht +% geprüft wird, ob die Zuweisung an ein \cs{skip}"~ oder \cs{dimen}-Register +% erfolgt. Deshalb werden hier für diese Aufgabe interne Befehle definiert. +% Siehe dazu auch \GitHubRepo(latex3/latex2e)<227>. +% \begin{macrocode} +\newcommand*\tud@newglue[1]{\@ifdefinable#1{\newskip#1}} +\newcommand*\tud@newdim[1]{\@ifdefinable#1{\newdimen#1}} +\newrobustcmd*\tud@setglue[2]{% + \ifdefdimen{#1}{% + \PackageWarning{tudscrbase}{% + You tried to assign dimen \string#1\MessageBreak% + so \string\tud@setdim\space is used% + }% + \tud@setdim{#1}{#2}% + }{% + \setlength#1{\glueexpr#2\relax}% + }% +} +\newrobustcmd*\tud@setdim[2]{% + \begingroup% + \@tud@res@swafalse% + \setlength\@tempskipa{\glueexpr#2\relax}% + \ifdim\gluestretch\@tempskipa=\z@\relax\else% + \@tud@res@swatrue% + \fi% + \ifdim\glueshrink\glueexpr\@tempskipa\relax=\z@\relax\else% + \@tud@res@swatrue% + \fi% + \if@tud@res@swa% + \PackageWarning{tudscrbase}{% + You tried to use \string\tud@setdim\string#1\MessageBreak% + with glue \detokenize{#2} (\the\@tempskipa)\MessageBreak% + but only the base value is used% + }% + \fi% + \endgroup% + \setlength#1{\dimexpr\glueexpr#2\relax\relax}% +} +\newrobustcmd*\tud@addtoglue[2]{% + \tud@setglue#1{\glueexpr#1+#2\relax}% +} +\newrobustcmd*\tud@addtodim[2]{% + \tud@setdim#1{\glueexpr#1+#2\relax}% +} +% \end{macrocode} +% \end{macro}^^A \tud@addtodim +% \end{macro}^^A \tud@addtoglue +% \end{macro}^^A \tud@setdim +% \end{macro}^^A \tud@setglue +% \end{macro}^^A \tud@newdim +% \end{macro}^^A \tud@newglue +% \begin{macro}{\tud@res@glue} +% \changes{v2.06}{2019/06/21}{neu}^^A +% Und gleich noch eine temporäre Länge mit dazu. +% \begin{macrocode} +\tud@newglue\tud@res@glue +% \end{macrocode} +% \end{macro}^^A \tud@res@glue +% \begin{macro}{\tud@if@lengthregister} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% Prüft, ob der übergebene Befehl ein \cs{skip}"~ oder \cs{dimen}-Register ist. +% \begin{macrocode} +\newcommand*\tud@if@lengthregister[1]{% + \begingroup% + \@tud@res@swafalse% + \ifdeflength{#1}{\@tud@res@swatrue}{}% + \ifdefdimen{#1}{\@tud@res@swatrue}{}% + \if@tud@res@swa% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@if@lengthregister +% \begin{macro}{\tud@length@setabsolute} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% Um Schlüssel für Längen definieren zu können, die zwingend positiv sind, kann +% dieses Makro genutzt werden. Übergeben werden muss entweder eine Länge oder +% ein Makro, welches einen Längenausdruck enthält. +% \begin{macrocode} +\newcommand*\tud@length@setabsolute[1]{% + \tud@if@lengthregister{#1}{% + \ifdim#1<\z@% + \setlength#1{-\glueexpr#1\relax}% + \fi% + }{% + \protected@edef#1{% + \noexpand\ifdim\noexpand\glueexpr\expandonce#1\relax<\z@-\noexpand\fi% + \noexpand\glueexpr\expandonce#1\relax% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@length@setabsolute +% % \subsubsection{Temporäre Makros zur internen Verwendung durch \TUDScript} % % Hier werden Makros definiert, die allein für die interne temporäre Nutzung @@ -593,9 +707,6 @@ % \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@skip@check}}^^A % \begin{macro}{\tud@skip@reset} % \changes{v2.05}{2016/07/13}{neu}^^A -% \begin{macro}{\tud@skip@set} -% \changes{v2.04}{2015/05/05}{neu}^^A -% \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@skip@check}}^^A % \begin{macro}{\tud@skip@check} % \changes{v2.05}{2016/07/13}{neu}^^A % Hiermit können~-- äquivalent zum Sichern und Wiederherstellen von Befehlen~-- @@ -623,11 +734,6 @@ }{}% }% } -\newcommand*\tud@skip@set[2]{% - \tud@skip@check{#1}{% - \expandafter\setlength\csname #1\endcsname{#2}% - }% -} \newcommand*\tud@skip@check[1]{% \begingroup% \@tempswafalse% @@ -642,7 +748,6 @@ } % \end{macrocode} % \end{macro}^^A \tud@skip@check -% \end{macro}^^A \tud@skip@set % \end{macro}^^A \tud@skip@reset % \end{macro}^^A \tud@skip@restore % \end{macro}^^A \tud@skip@store diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index ff211bbe..d54b99f1 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -836,11 +836,11 @@ % Um die Höhe von Logos im Fußbereich der \pgs{tudheadings}-Seitenstile % einheitlich festzulegen, gab es bis einschließlich der Version~v2.04 die % Länge \cs{footlogoheight} anstelle der Option \opt{footlogoheight}. Sollte -% der Anwender diese anpassen, wird \cs{tud@dim@footlogoheight} auf diesen Wert +% der Anwender diese anpassen, wird \cs{tud@footlogoheight@dim} auf diesen Wert % gesetzt und eine Warnung erzeugt. % \begin{macrocode} -\newlength\footlogoheight -\setlength\footlogoheight{\maxdimen} +\tud@newglue\footlogoheight +\tud@setdim\footlogoheight{\maxdimen} % \end{macrocode} % \end{length}^^A \footlogoheight % \begin{length}{\pageheadingsvskip} @@ -853,10 +853,10 @@ % abgedeckt. % \begin{macrocode} %<*book|report|article> -\newlength\pageheadingsvskip -\setlength\pageheadingsvskip{\maxdimen} -\newlength\headingsvskip -\setlength\headingsvskip{\maxdimen} +\tud@newglue\pageheadingsvskip +\tud@setdim\pageheadingsvskip{\maxdimen} +\tud@newglue\headingsvskip +\tud@setdim\headingsvskip{\maxdimen} % % \end{macrocode} % \end{length}^^A \headingsvskip @@ -1715,7 +1715,7 @@ % \fi % % \begin{macro}{\tud@footcontent@use} -% \begin{macro}{\tud@comp@mathposterwidth} +% \begin{macro}{\tud@comp@mathposterwidth@dim} % \changes{v2.05}{2016/04/17}{neu}^^A % Um die Option \opt{tudmathposterfoot} umzusetzen, muss für die Ausgabe des % Fußbereichs eine Anpassung des Makros \cs{tud@footcontent@use} erfolgen. @@ -1726,12 +1726,12 @@ % für ein etwaiges Logo verwendet wird. Dieses Verhalten kann über die Option % \opt{tudmathposterfoot} aktiviert werden und wird hier nachgebildet. % \begin{macrocode} -\newcommand*\tud@comp@mathposterwidth{4.2\tud@len@widemargin} +\newcommand*\tud@comp@mathposterwidth@dim{4.2\tud@dim@widemargin} \patchcmd\tud@footcontent@use{% \hsize=\dimexpr#2-\@tempdimc\relax% }{% \if@tud@mathposterfoot% - \hsize=\dimexpr\tud@comp@mathposterwidth\relax% + \hsize=\dimexpr\tud@comp@mathposterwidth@dim\relax% \else% \hsize=\dimexpr#2-\@tempdimc\relax% \fi% @@ -1740,7 +1740,7 @@ \hsize=\dimexpr(#2-\columnsep)/2\relax% }{% \if@tud@mathposterfoot% - \hsize=\dimexpr(\tud@comp@mathposterwidth-\columnsep)/2\relax% + \hsize=\dimexpr(\tud@comp@mathposterwidth@dim-\columnsep)/2\relax% \else% \hsize=\dimexpr(#2-\columnsep)/2\relax% \fi% @@ -1749,13 +1749,13 @@ \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% }{% \if@tud@mathposterfoot% - \hsize=\dimexpr(\tud@comp@mathposterwidth-\columnsep)/2\relax% + \hsize=\dimexpr(\tud@comp@mathposterwidth@dim-\columnsep)/2\relax% \else% \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} % \end{macrocode} -% \end{macro}^^A \tud@comp@mathposterwidth +% \end{macro}^^A \tud@comp@mathposterwidth@dim % \end{macro}^^A \tud@footcontent@use % \begin{environment}{figurehere} % \changes{v2.05}{2016/04/17}{neu}^^A diff --git a/source/tudscr-doc.dtx b/source/tudscr-doc.dtx index 2c28c833..cb3da454 100644 --- a/source/tudscr-doc.dtx +++ b/source/tudscr-doc.dtx @@ -200,7 +200,7 @@ % Schnittstelle, weshalb zusätzlich die Befehle |\Describe|\meta{Typ}|s| % darauf aufbauend definiert werden. % -% \begin{length}{\marginnotevskip} +% \begin{length}{\tud@dim@marginnotevskip} % \changes{v2.05i}{2017/03/09}{neu}^^A % \begin{macro}{\marginpar} % Da die Befehle |\Describe|\meta{Typ} zur Erzeugung einer Randnotiz für @@ -208,19 +208,19 @@ % Versatz gesetzt werden, falls gleich mehrere auf einmal zu erzeugen sind. % Hierfür wird das Paket~\pkg{marginnote} genutzt. % \begin{macrocode} -\newlength\marginnotevskip +\tud@newdim\tud@dim@marginnotevskip \AfterPackage*{marginnote}{% \renewcommand*\marginpar[2][]{% \IfArgIsEmpty{#1}{% - \marginnote{#2}[\marginnotevskip]% + \marginnote{#2}[\tud@dim@marginnotevskip]% }{% - \marginnote[{#1}]{#2}[\marginnotevskip]% + \marginnote[{#1}]{#2}[\tud@dim@marginnotevskip]% }% }% } % \end{macrocode} % \end{macro}^^A \marginpar -% \end{length}^^A \marginnotevskip +% \end{length}^^A \tud@dim@marginnotevskip % \begin{macro}{\doc@createdescribes} % \changes{v2.05i}{2017/03/09}{neu}^^A % Die Definition für |\Describe|\meta{Typ}|s|. Die so erzeugten Befehle passen @@ -231,17 +231,17 @@ % \begin{macrocode} \newcommand*\doc@createdescribes[1]{% \expandafter\newcommand\expandafter*\csname Describe#1s\endcsname[2][]{% - \setlength\marginnotevskip{\z@}% + \tud@setdim\tud@dim@marginnotevskip{\z@}% \def\@tempc{##2}% \@for\@tempa:=\@tempc\do{% \trim@spaces@in\@tempa% \ifx\@tempa\@empty\else% \def\@tempb{\@nameuse{Describe#1}[{##1}]}% \expandafter\@tempb\expandafter{\@tempa}% - \addtolength\marginnotevskip{\baselineskip}% + \tud@addtodim\tud@dim@marginnotevskip{1\baselineskip}% \fi% }% - \setlength\marginnotevskip{\z@}% + \tud@setdim\tud@dim@marginnotevskip{\z@}% \ignorespaces% }% } @@ -1662,11 +1662,11 @@ % die Seitenränder sowie den Abstand von Randnotizen und Textkörper dient. % \begin{macrocode} \newcommand*\tud@setarea{% - \setlength\topmargin{-1in}% - \setlength\headheight{0pt}% - \setlength\headsep{3em}% - \setlength\footskip{\headsep}% - \setlength\textheight{\dimexpr\paperheight-\headsep*5/2-\footskip*3/2\relax}% + \tud@setdim\topmargin{-1in}% + \tud@setdim\headheight{0pt}% + \tud@setdim\headsep{3em}% + \tud@setdim\footskip{\headsep}% + \tud@setdim\textheight{\paperheight-\headsep*5/2-\footskip*3/2}% \@colht=\textheight% \@colroom=\textheight% \vsize=\textheight% @@ -1674,23 +1674,21 @@ \begingroup% \MacroFont\selectfont% \settowidth\@tempdima{\space}% - \setlength\@tempdima{80\@tempdima}% - \addtolength\@tempdima{\MacroIndent}% + \tud@setdim\@tempdima{80\@tempdima}% + \tud@addtodim\@tempdima{\MacroIndent}% \edef\@tempa{% \endgroup% - \noexpand\setlength\noexpand\textwidth{\the\@tempdima}% + \unexpanded{\tud@setdim\textwidth}{\the\@tempdima}% }% \@tempa% \columnwidth=\textwidth% \hsize=\columnwidth% \linewidth=\hsize% - \setlength\columnsep{1em}% - \setlength\labelsep{1em}% - \setlength\marginparsep{\labelsep}% - \setlength\oddsidemargin{\dimexpr\paperwidth-\textwidth-\labelsep-1in\relax}% - \setlength\marginparwidth{% - \dimexpr\oddsidemargin+1in-\labelsep-\marginparsep\relax% - }% + \tud@setdim\columnsep{1em}% + \tud@setdim\labelsep{1em}% + \tud@setdim\marginparsep{\labelsep}% + \tud@setdim\oddsidemargin{\paperwidth-\textwidth-\labelsep-1in}% + \tud@setdim\marginparwidth{\oddsidemargin+1in-\labelsep-\marginparsep}% } \AtBeginDocument{\tud@setarea} % \end{macrocode} diff --git a/source/tudscr-fields.dtx b/source/tudscr-fields.dtx index 649caebc..1c8472d6 100644 --- a/source/tudscr-fields.dtx +++ b/source/tudscr-fields.dtx @@ -624,15 +624,15 @@ % \end{macrocode} % \end{field}^^A \@advisor % \end{macro}^^A \advisor -% \begin{length}{\tud@len@signatureskip} +% \begin{length}{\tud@glue@signaturevskip} % \changes{v2.04}{2015/05/06}{neu}^^A % Für alle Formatvorlagen, welche eine Unterschriftenzeile bereitstellen, wird % ein einheitlicher Abstand verwendet. % \begin{macrocode} -\newlength\tud@len@signatureskip -\setlength\tud@len@signatureskip{8ex plus 6ex minus 6ex} +\tud@newglue\tud@glue@signaturevskip +\tud@setglue\tud@glue@signaturevskip{8ex plus 6ex minus 6ex} % \end{macrocode} -% \end{length}^^A \tud@len@signatureskip +% \end{length}^^A \tud@glue@signaturevskip % \begin{macro}{\confirmationclosing} % \begin{field}{\@confirmationclosing} % Als Abschluss der Selbstständigkeitserklärung für Ort und Unterschrift. @@ -643,7 +643,7 @@ \medskip\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \begingroup% \let\and\hfil% \@@author\hfil% diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 9e7ba759..0e24e620 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -1589,9 +1589,9 @@ \multiply\medskipamount by 2% \bigskipamount=\partopsep% \multiply\bigskipamount by 4% - \tud@skip@set{abovecaptionskip}{\dimexpr\bigskipamount*5/6\relax}% - \tud@skip@set{belowcaptionskip}{\z@}% - \tud@skip@set{columnsep}{1.1\baselineskip}% + \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% + \tud@setdim\belowcaptionskip{\z@}% + \tud@setdim\columnsep{1.1\baselineskip}% } % \end{macrocode} % \end{macro}^^A \columnsep diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index 1c7f784d..6b46885b 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -1271,7 +1271,7 @@ % \begin{macrocode} \newcommand*\tud@fm@@confirmation[1][]{% \tud@fm@body@start{declaration}{#1}{\confirmationname}% - \confirmationtext\vskip\z@\@confirmationclosing% + \confirmationtext\vskip\z@skip\@confirmationclosing% \tud@fm@body@end{declaration}% } % \end{macrocode} diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index fda0d26d..e018b053 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -541,11 +541,11 @@ % \end{option}^^A backcolor % \begin{option}{pageheadingsvskip} % \changes{v2.05}{2016/06/20}{neu}^^A -% \begin{macro}{\tud@dim@pageheadingsvskip} +% \begin{macro}{\tud@pageheadingsvskip@dim} % \changes{v2.05}{2016/06/20}{neu}^^A % \begin{option}{headingsvskip} % \changes{v2.05}{2016/06/20}{neu}^^A -% \begin{macro}{\tud@dim@headingsvskip} +% \begin{macro}{\tud@headingsvskip@dim} % \changes{v2.05}{2016/06/20}{neu}^^A % Mit diesen Optionen kann der Anwender die Überschriften von Titel, Teilen und % Kapiteln vertikal von ihrer Standardposition verschieben, welche vom \CD @@ -557,19 +557,19 @@ % die des Titelkopfes (\opt{titlepage}|=|\val{false}) verschoben. % \begin{macrocode} %<*book|report|article> -\newcommand*\tud@dim@pageheadingsvskip{0pt} +\newcommand*\tud@pageheadingsvskip@dim{0pt} \TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@dim@pageheadingsvskip}{#1}% + \TUD@set@dimenkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}% } -\newcommand*\tud@dim@headingsvskip{0pt} +\newcommand*\tud@headingsvskip@dim{0pt} \TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@dim@headingsvskip}{#1}% + \TUD@set@dimenkey{headingsvskip}{\tud@headingsvskip@dim}{#1}% } % % \end{macrocode} -% \end{macro}^^A \tud@dim@headingsvskip +% \end{macro}^^A \tud@headingsvskip@dim % \end{option}^^A headingsvskip -% \end{macro}^^A \tud@dim@pageheadingsvskip +% \end{macro}^^A \tud@pageheadingsvskip@dim % \end{option}^^A pageheadingsvskip % % \iffalse @@ -700,12 +700,12 @@ % \begin{macrocode} \begingroup \tud@sec@fontsize% - \@tempskipa=\glueexpr% + \tud@setglue\@tempskipa{% .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% - \relax\relax% + }% \edef\tud@res@a{% \endgroup% - \def\noexpand\tud@cd@afterskip{\the\@tempskipa}% + \def\noexpand\tud@cd@aftervskip@glue{\the\@tempskipa}% }% \tud@res@a% } @@ -1006,17 +1006,17 @@ \else% !false \tud@cs@store{scr@part@beforeskip}% %<*book|report> - \renewcommand*\scr@part@beforeskip{\tud@cd@beforeskip}% + \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@dim}% % %<*article|poster> - \renewcommand*\scr@part@beforeskip{\tud@cd@afterskip+\baselineskip}% + \renewcommand*\scr@part@beforeskip{\tud@cd@aftervskip@glue+\baselineskip}% % %<*book|report> \tud@cs@store{scr@part@innerskip}% - \renewcommand*\scr@part@innerskip{\tud@cd@innerskip}% + \renewcommand*\scr@part@innerskip{\tud@cd@innervskip@dim}% % \tud@cs@store{scr@part@afterskip}% - \renewcommand*\scr@part@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@glue}% \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% %<*book|report> @@ -1069,11 +1069,11 @@ % \begin{macrocode} \else% !false \tud@cs@store{scr@chapter@beforeskip}% - \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforeskip}% + \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@dim}% \tud@cs@store{scr@chapter@innerskip}% - \renewcommand*\scr@chapter@innerskip{\tud@cd@innerskip}% + \renewcommand*\scr@chapter@innerskip{\tud@cd@innervskip@dim}% \tud@cs@store{scr@chapter@afterskip}% - \renewcommand*\scr@chapter@afterskip{\tud@cd@afterskip}% + \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@glue}% \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% \tud@cs@store{chapterlineswithprefixformat}% @@ -1208,15 +1208,15 @@ % \end{macrocode} % \end{macro}^^A \tud@cd@specialpage@unset % \end{macro}^^A \tud@cd@specialpage@set -% \begin{macro}{\tud@cd@headstartvskip} +% \begin{macro}{\tud@cd@headstart@vskip} % \changes{v2.06}{2018/08/01}{neu}^^A % \begin{macro}{\tud@cd@vphantom} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@cd@beforeskip} +% \begin{macro}{\tud@cd@beforevskip@dim} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@cd@innerskip} +% \begin{macro}{\tud@cd@innervskip@dim} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@cd@afterskip} +% \begin{macro}{\tud@cd@aftervskip@glue} % \changes{v2.06}{2018/08/01}{neu}^^A % Im \TUDCD werden sowohl Titel als auch Teil- und Kapitelüberschriften auf der % gleichen Grundlinienhöhe gesetzt. Hierfür sind Anpassungen der entsprechenden @@ -1225,25 +1225,26 @@ % \cs{chapterheadstartvskip} gesetzt. Um das Layout des \CDs umzusetzen, werden % diese beiden Makros als Haken genutzt. % -% Das Makro \cs{tud@cd@beforeskip} enthält den Abstand vor einer Überschrift, -% welcher über \cs{tud@cd@headstartvskip} gesetzt wird. Der Abstand zwischen +% Das Makro \cs{tud@cd@beforevskip@dim} ist der Abstand vor einer Überschrift, +% welcher über \cs{tud@cd@headstart@vskip} gesetzt wird. Der Abstand zwischen % der Nummerierung eines Teils und der eigentlichen Bezeichnung wird mit -% \cs{tud@cd@innerskip} definiert und durch \KOMAScript{} eingefügt. Gleiches -% gilt für eine separate Kapitelnummernzeile (\opt{chapterprefix}) und dem -% eigentlichen Kapiteltitel. Durch \cs{tud@cd@afterskip} wird der Abstand -% zwischen Titel und Fließtext respektive der unteren Prääambel definiert. -% Dieser Abstand ist abhängig von der gewählten Einstellung für \opt{headings}. -% \begin{macrocode} -\newcommand*\tud@cd@beforeskip{% - \dimexpr-\tud@len@areavskip-\tud@len@areaheadvskip\relax% +% \cs{tud@cd@innervskip@dim} definiert und durch \KOMAScript{} eingefügt. +% Gleiches gilt für eine separate Kapitelnummernzeile (\opt{chapterprefix}) und +% dem eigentlichen Kapiteltitel. Durch \cs{tud@cd@aftervskip@glue} wird der +% Abstand zwischen Titel und Fließtext respektive der unteren Prääambel +% definiert. Dieser Abstand ist abhängig von der gewählten Einstellung für die +% Option \opt{headings}. +% \begin{macrocode} +\newcommand*\tud@cd@beforevskip@dim{% + \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax% } -\newcommand*\tud@cd@innerskip{.25\baselineskip}% -\newcommand*\tud@cd@afterskip{% +\newcommand*\tud@cd@innervskip@dim{.25\baselineskip}% +\newcommand*\tud@cd@aftervskip@glue{% .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% } -\newcommand*\tud@cd@headstartvskip{% - \@tempskipa=\glueexpr\tud@cd@beforeskip\relax\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% +\newcommand*\tud@cd@headstart@vskip{% + \tud@setdim\@tempskipa{\tud@cd@beforevskip@dim}% + \tud@length@setabsolute\@tempskipa% \null\vskip-\baselineskip\vskip\@tempskipa% } % \end{macrocode} @@ -1254,16 +1255,16 @@ \newcommand*\tud@cd@vphantom{% \begingroup% \usekomafont{partnumber}{\nobreak\tud@sec@strut}% - \setlength\@tempskipa{\tud@cd@innerskip}% + \tud@setdim\@tempskipa{\tud@cd@innervskip@dim}% \par\nobreak\vskip\@tempskipa% \endgroup% } % \end{macrocode} -% \end{macro}^^A \tud@cd@afterskip -% \end{macro}^^A \tud@cd@innerskip -% \end{macro}^^A \tud@cd@beforeskip +% \end{macro}^^A \tud@cd@aftervskip@glue +% \end{macro}^^A \tud@cd@innervskip@dim +% \end{macro}^^A \tud@cd@beforevskip@dim % \end{macro}^^A \tud@cd@vphantom -% \end{macro}^^A \tud@cd@headstartvskip +% \end{macro}^^A \tud@cd@headstart@vskip % % \iffalse %<*book|report> @@ -1293,8 +1294,8 @@ % Zunächst wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln % ausgeglichen. % \begin{macrocode} - \@tempskipa=\glueexpr\tud@cd@afterskip\relax% - \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi% + \tud@setglue\@tempskipa{\tud@cd@aftervskip@glue}% + \tud@length@setabsolute\@tempskipa% \vskip\@tempskipa% % \end{macrocode} % Anschließend folgen die Anpassungen für die Teilpräambel. @@ -1303,7 +1304,7 @@ \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% - \null\vskip-\baselineskip% + \null\vskip-1\baselineskip% \addtokomafont{disposition}{\tud@color{\tud@part@fontcolor}}% \addtokomafont{dictum}{\tud@color{\tud@part@fontcolor}}% \let\tud@preamble@fontcolor\tud@part@fontcolor% @@ -1322,7 +1323,7 @@ \renewcommand*\tud@abstract@level@num{1}% \fi% \KOMAoptions{titlepage=false}% - \null\vskip-\baselineskip% + \null\vskip-1\baselineskip% % \end{macrocode} % Die Farb- und Schrifteinstellungen sind nur für reine Kapitelseiten notwendig. % \begin{macrocode} @@ -1481,9 +1482,9 @@ \renewcommand*\tud@part@fontcolor{HKS41!30}% \fi% \tud@cd@specialpage@set{part}% - \tud@cd@headstartvskip% + \tud@cd@headstart@vskip% \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% } % % \end{macrocode} @@ -1580,13 +1581,13 @@ \ifcase\tud@cd@chapter@num\relax\or\else% *color \renewcommand*\tud@chapter@fontcolor{HKS41}% \fi% - \tud@cd@headstartvskip% + \tud@cd@headstart@vskip% \if@tud@chapterpage% \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \else% \TUD@deprecated@lengthcs{headingsvskip}% - \vspace*{\tud@dim@headingsvskip}% + \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \fi% } % \end{macrocode} diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index e49f772a..5fe532cd 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -593,8 +593,8 @@ %<*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% @@ -1149,7 +1149,7 @@ % einfach bei der verwendung der genannten Befehle der zuvor gesetzte vertikale % Abstand in \cs{tud@lastskip} gesichert. % \begin{macrocode} -\newskip\tud@lastskip +\tud@newglue\tud@lastskip \pretocmd\index{% \tud@lastskip=\lastskip% }{}{\tud@patch@wrn{index}} @@ -1167,7 +1167,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}% @@ -3894,7 +3894,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}% @@ -4373,7 +4373,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{-\baselineskip}% }{}% } % \end{macrocode} @@ -4611,16 +4611,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}% @@ -4660,11 +4660,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}% @@ -5439,8 +5439,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 @@ -5450,7 +5450,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} @@ -5556,11 +5556,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{% @@ -5631,7 +5631,7 @@ \RequirePackage{todonotes}[2012/07/25] \AtEndPreamble{% \ifdim\marginparwidth<2cm\relax% - \setlength\marginparwidth{2cm}% + \tud@setdim\marginparwidth{2cm}% \fi% } % \end{macrocode} @@ -5871,7 +5871,7 @@ }% \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} @@ -6114,7 +6114,7 @@ % \begin{macrocode} \newcommand*\Attention[2][\z@]{% \marginnote{% - \setlength\fboxsep{0.25em}% + \tud@setdim\fboxsep{0.25em}% \fbox{Achtung!}% }[{#1}]% \emph{\trim@spaces{#2}}% diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index b23d3458..1f1c9ff0 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -353,10 +353,10 @@ \AtBeginDocument{% \if@tud@x@scr@fontsize@set\else% \@tud@res@swafalse% - \ifdim\tud@len@layoutwidth<208mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutwidth>212mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight<295mm\relax\@tud@res@swatrue\fi% - \ifdim\tud@len@layoutheight>299mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth<208mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutwidth>212mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight<295mm\relax\@tud@res@swatrue\fi% + \ifdim\tud@dim@layoutheight>299mm\relax\@tud@res@swatrue\fi% \if@tud@res@swa% \ClassWarningNoLine{\TUD@Class@Name}{% You've set a layout size, which is different from\MessageBreak% diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 555bcece..ab397c9e 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -136,10 +136,10 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - addhoffset=\dimexpr\tud@len@logox-\tud@len@widemargin\relax,% - addwidth=\dimexpr-\tud@len@logox+\tud@len@widemargin\relax,% - voffset=\tud@len@logoy,% - addvoffset=\tud@len@layoutvoffset,% + addhoffset=\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax,% + addwidth=\dimexpr-\tud@dim@logox+\tud@dim@widemargin\relax,% + voffset=\tud@dim@logoy,% + addvoffset=\tud@dim@layoutvoffset,% contents={% % \end{macrocode} % Vor der Ausgabe der Logoboxen werden diese im Bedarfsfall neu gesetzt. @@ -161,10 +161,10 @@ % \begin{macrocode} \DeclareNewLayer[% background,% - width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% - addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% - height=\dimexpr\tud@len@topmargin+\tud@dim@bleedmargin\relax,% - addvoffset=\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax,% + width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% + addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\dimexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,% + addvoffset=\dimexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% contents={% \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% @@ -174,16 +174,16 @@ ]{tudheadings.head.back}% \DeclareNewLayer[% background,% - width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% - addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% - height=\tud@len@barheight,% - voffset=\tud@len@topmargin,% - addvoffset=\tud@len@layoutvoffset,% + width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% + addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\tud@dim@barheight,% + voffset=\tud@dim@topmargin,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color \color{HKS41!60}% - \setlength\@tempdima{\dimexpr\ht\strutbox-\tud@len@barheight\relax}% - \ifdim\@tempdima<\z@\relax\setlength\@tempdima{\z@}\fi% + \tud@setdim\@tempdima{\ht\strutbox-\tud@dim@barheight}% + \ifdim\@tempdima<\z@\relax\tud@setdim\@tempdima{\z@}\fi% \raisebox{\@tempdima}{\rule{\layerwidth}{\layerheight}}% \fi% },% @@ -197,8 +197,8 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin+\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@head@font@set% \tud@head@text@set% @@ -223,8 +223,8 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -233,9 +233,9 @@ ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% - -.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -\tud@dim@line/2\relax,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\else\tud@head@rule{\layerwidth}\fi% @@ -244,10 +244,10 @@ ]{tudheadings.head.lowline}% \DeclareNewLayer[% background,% - width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% - addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% - voffset=\dimexpr\tud@len@topmargin-.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% + addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\dimexpr\tud@dim@topmargin-\tud@dim@line/2\relax,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -256,11 +256,11 @@ ]{tudheadings.head.uplinewide}% \DeclareNewLayer[% background,% - width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% - addhoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% - voffset=\dimexpr\tud@len@topmargin+\tud@len@barheight% - -.5\tud@len@line\relax,% - addvoffset=\tud@len@layoutvoffset,% + width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% + addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% + -\tud@dim@line/2\relax,% + addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor \if@tud@head@widebar\tud@head@rule{\layerwidth}\fi% @@ -278,8 +278,8 @@ % \begin{macrocode} \DeclareNewLayer[% foreground,headsep,% - addvoffset=.5\tud@len@headsep,% height=\baselineskip,% + addvoffset=\tud@dim@headsep/2,% contents={\if@tud@head@date\hfill\tud@date@print\fi},% ]{tudheadings.head.date}% % \end{macrocode} @@ -302,10 +302,10 @@ % \begin{macrocode} \DeclareNewLayer[% background,foot,% - width=\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax,% - hoffset=\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax,% - height=\dimexpr\tud@len@layoutheight-\layeryoffset% - +\tud@len@layoutvoffset+\tud@dim@bleedmargin\relax,% + width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% + hoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\dimexpr\tud@dim@layoutheight-\layeryoffset% + +\tud@dim@layoutvoffset+\tud@bleedmargin@dim\relax,% addvoffset=-\dp\strutbox,% contents={% \if@tud@foot@colored% @@ -335,7 +335,7 @@ % \begin{macrocode} \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \if@tud@foot@colored% \let\@tempc\relax% @@ -355,7 +355,7 @@ \vbox to \layerheight{% \vfil\@tempc% \rule{\layerwidth}{% - \dimexpr\layerheight-\tud@len@ddcdiff+\ht\strutbox\relax% + \dimexpr\layerheight-\tud@dim@ddcdiff+\ht\strutbox\relax% }% }% \else% \tud@ddc@foot@num!=false @@ -374,8 +374,8 @@ % \begin{macrocode} \DeclareNewLayer[% background,foot,% - height=\dimexpr\tud@len@layoutheight-\layeryoffset% - +\tud@len@layoutvoffset\relax,% + height=\dimexpr\tud@dim@layoutheight-\layeryoffset% + +\tud@dim@layoutvoffset\relax,% contents={% % \end{macrocode} % Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, @@ -386,7 +386,7 @@ \TUD@deprecated@lengthcs[% \global\@tud@footlogo@option@settrue% ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% % \end{macrocode} % Im Bedarfsfall werden die Boxen vor der Ausgabe durch die einzelnen % |\...@use|-Befehle neu gesetzt. Danach erfolgt die Ausgabe, wobei die @@ -403,16 +403,16 @@ % \begin{macrocode} \tud@if@v@lower{2.03}{% \ModifyLayer[% - addvoffset=-\tud@len@ddcdiff+\ht\strutbox,% + addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% \TUD@deprecated@lengthcs[% \global\@tud@footlogo@option@settrue% ]{footlogoheight}% - \setlength\@tempdima{\dimexpr\layerheight-\dp\strutbox\relax}% + \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \tud@ddc@check% \ifcase\@tempb\relax% \tud@ddc@foot@num=false - \addtolength\@tempdima{\dimexpr\ht\strutbox-\tud@len@ddcdiff\relax}% - \vskip\dimexpr\tud@len@ddcdiff-\ht\strutbox-\baselineskip\relax% + \tud@addtodim\@tempdima{\ht\strutbox-\tud@dim@ddcdiff}% + \vskip\dimexpr\tud@dim@ddcdiff-\ht\strutbox-1\baselineskip\relax% \fi% \tud@footlogo@cmd@use{\@tempdima}{\layerwidth}% \tud@footlogo@ddc@use{\@tempdima}{\layerwidth}% @@ -545,10 +545,10 @@ \DeclareNewLayer[% background,% area=% - {\dimexpr\tud@len@layouthoffset-\tud@dim@bleedmargin\relax}% - {\dimexpr\tud@len@layoutvoffset-\tud@dim@bleedmargin\relax}% - {\dimexpr\tud@len@layoutwidth+\tud@dim@bleedmargin*2\relax}% - {\dimexpr\tud@len@layoutheight+\tud@dim@bleedmargin*2\relax}% + {\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax}% + {\dimexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax}% + {\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax}% + {\dimexpr\tud@dim@layoutheight+\tud@bleedmargin@dim*2\relax}% ,% contents={% \ifdefvoid{\tud@pagecolor}{}{% @@ -828,8 +828,8 @@ % des Querbalkens gesetzt, die Schriftfarbe des Fußes wird global geändert, % damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden. % \begin{macrocode} - \let\tud@len@line\tud@len@thinline% - \Ifstr{\tud@head@fontcolor}{white}{\let\tud@len@line\tud@len@heavyline}{}% + \let\tud@dim@line\tud@dim@thinline% + \Ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } % \end{macrocode} @@ -963,7 +963,7 @@ % Die Farbe des Textes der ersten Zeile entspricht immer der des Kopfes. % \begin{macrocode} \def\@tempb{\tud@color{\tud@head@fontcolor}}% - \def\@tempc{\depth+\tud@len@heavyline}% + \def\@tempc{\depth+\tud@dim@heavyline}% % \end{macrocode} % Das Makro \cs{@tempa} wird zur Ababreitung der Liste \cs{tud@head@text@list} % definiert. @@ -1004,7 +1004,7 @@ % lassen, wird dies hier temporär unterdrückt. % \begin{macrocode} \let\@raggedtwoe@everyselectfont\relax% - \setlength\spaceskip{\z@}% + \tud@setdim\spaceskip{\z@}% \selectfont% \offinterlineskip% \forlistloop\@tempa{\tud@head@text@list}% @@ -1020,8 +1020,8 @@ % Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf % \begin{macrocode} \newcommand*\tud@head@text@write[2][\z@]{% - \raisebox{\dimexpr(\tud@len@barheight+2\tud@len@line-\totalheight)/2\relax}[% - \dimexpr\tud@len@barheight-\depth\relax% + \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% + \dimexpr\tud@dim@barheight-\depth\relax% ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% } % \end{macrocode} @@ -1031,11 +1031,11 @@ % Der Querbalken des Kopfes läuft je nach Parameterwahl \cs{tud@head@bar@num} % entweder nur über den Textbereich oder aber über die gesamte Seitenbreite. % Der Befehl erzeugt eine horizontale Linie mit der übergebenen Breite und -% über \cs{tud@len@line} definierter Dicke. +% über \cs{tud@dim@line} definierter Dicke. % \begin{macrocode} \newcommand*\tud@head@rule[1]{% \tud@color{\tud@head@fontcolor}% - \rule[\ht\strutbox]{#1}{\tud@len@line}% + \rule[\ht\strutbox]{#1}{\tud@dim@line}% } % \end{macrocode} % \end{macro}^^A \tud@head@rule @@ -1080,7 +1080,7 @@ \newcommand*\tud@vlayerbox[3]{% \begingroup% \setbox\z@\vbox{#2}% - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@-#1\relax}% + \tud@setdim\@tempdima{\ht\z@+\dp\z@-#1}% \ifdim\@tempdima>\z@\relax% \ClassWarning{\TUD@Class@Name}{% #3\MessageBreak% @@ -1224,7 +1224,7 @@ % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\if@tud@mainlogo@wrn} % \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{length}{\tud@len@mainlogoheight} +% \begin{length}{\tud@dim@mainlogoheight} % \changes{v2.04}{2015/05/31}{neu}^^A % \begin{macro}{\tud@mainlogo@wrn} % \changes{v2.02}{2014/06/23}{Umbenennen von \cs{tud@head@logo@wrn}}^^A @@ -1234,17 +1234,17 @@ % Satzspiegels beim Ausführen der einzelnen Seitenstil-Layer. Dafür wird der % Schalter \cs{if@tud@mainlogo@set} im Hook \cs{tud@AfterChangingArea} gesetzt. % \begin{macrocode} -\newlength\tud@len@mainlogoheight +\tud@newdim\tud@dim@mainlogoheight \newcommand*\tud@mainlogo@wrn[1]{} \tud@newif\if@tud@mainlogo@set \newcommand*\tud@mainlogo@set{% \if@tud@mainlogo@set% - \def\@tempa{\includegraphics[keepaspectratio,width=\tud@len@logowidth]}% + \def\@tempa{\includegraphics[keepaspectratio,width=\tud@dim@logowidth]}% \tud@savelayerbox{main@black}{\@tempa{TUD-black}}% \tud@savelayerbox{main@HKS41}{\@tempa{TUD-blue}}% \tud@savelayerbox{main@white}{\@tempa{TUD-white}}% - \settoheight\tud@len@mainlogoheight{\tud@uselayerbox{main@black}}% - \global\tud@len@mainlogoheight=\tud@len@mainlogoheight% + \settoheight\tud@dim@mainlogoheight{\tud@uselayerbox{main@black}}% + \global\tud@dim@mainlogoheight=\tud@dim@mainlogoheight% % \end{macrocode} % Es soll sichergestellt werden, dass das bei der Verwendung von \pkg{typearea} % über den Satzspiegel in den Seitenrand hinausragende TUD-Logo nicht außerhalb @@ -1278,7 +1278,7 @@ } % \end{macrocode} % \end{macro}^^A \tud@mainlogo@wrn -% \end{length}^^A \tud@len@mainlogoheight +% \end{length}^^A \tud@dim@mainlogoheight % \end{macro}^^A \if@tud@mainlogo@set % \end{macro}^^A \tud@mainlogo@set % \begin{macro}{\tud@mainlogo@use} @@ -1288,7 +1288,7 @@ % \begin{macrocode} \newcommand*\tud@mainlogo@use{% \tud@mainlogo@wrn{% - \dimexpr\oddsidemargin+1in+\tud@len@logox-\tud@len@widemargin\relax% + \dimexpr\oddsidemargin+1in+\tud@dim@logox-\tud@dim@widemargin\relax% }% \tud@uselayerbox{main@\tud@head@logocolor}% } @@ -1375,7 +1375,7 @@ % \begin{macrocode} \newcommand*\tud@headlogo@set{% \def\@tempa{% - \includegraphics[keepaspectratio,totalheight=\tud@len@mainlogoheight]% + \includegraphics[keepaspectratio,totalheight=\tud@dim@mainlogoheight]% }% \tud@savelayerbox{head@black}{\@tempa{DDC-24}}% \tud@savelayerbox{head@HKS41}{\@tempa{DDC-27}}% @@ -1393,7 +1393,7 @@ \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% \includegraphics[{% - keepaspectratio,totalheight=\tud@len@mainlogoheight,##2% + keepaspectratio,totalheight=\tud@dim@mainlogoheight,##2% }]{##1}% }% }% @@ -1434,7 +1434,7 @@ % werden diese in einer Box vertikal zentriert. % \begin{macrocode} \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@len@mainlogoheight}{% + \tud@vlayerbox{\tud@dim@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% @@ -1614,24 +1614,21 @@ % % \begin{option}{footlogoheight} % \changes{v2.05}{2016/06/16}{neu}^^A -% \begin{macro}{\tud@dim@footlogoheight} +% \begin{macro}{\tud@footlogoheight@dim} % \changes{v2.04}{2015/06/01}{neu}^^A % Für den Anwender besteht mit der Option \opt{footlogoheight} die Möglichkeit, % die Höhe aller Logos im Fußbereich~-- also eventuell das \DDC-Logo sowie % vom Anwender mit dem Befehl \cs{footlogo} angegebene Logos~-- zentral -% festzulegen. Dabei wird der gewünschte Wert in \cs{tud@dim@footlogoheight} +% festzulegen. Dabei wird der gewünschte Wert in \cs{tud@footlogoheight@dim} % abgelegt. % \begin{macrocode} %<*option> -\newcommand*\tud@dim@footlogoheight{} -\let\tud@dim@footlogoheight\relax +\newcommand*\tud@footlogoheight@dim{} +\let\tud@footlogoheight@dim\relax \TUD@key{footlogoheight}{% - \TUD@set@dimenkey{footlogoheight}{\tud@dim@footlogoheight}{#1}% + \TUD@set@dimenkey{footlogoheight}{\tud@footlogoheight@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \ifdim\dimexpr\tud@dim@footlogoheight\relax<\z@\relax% - \def\@tempa-##1\@nil{\def\tud@dim@footlogoheight{##1}}% - \@tempa#1\@nil% - \fi% + \tud@length@setabsolute\tud@footlogoheight@dim% \global\@tud@footlogo@option@settrue% \fi% } @@ -1643,17 +1640,17 @@ % \begin{macrocode} %<*body> \AtEndOfClass{% - \ifdefvoid{\tud@dim@footlogoheight}{% + \ifdefvoid{\tud@footlogoheight@dim}{% \tud@if@v@lower{2.03}{% - \def\tud@dim@footlogoheight{.6\tud@len@topmargin}% + \def\tud@footlogoheight@dim{\dimexpr\tud@dim@topmargin*3/5\relax}% }{% - \def\tud@dim@footlogoheight{\tud@len@mainlogoheight}% + \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% }{}% } % % \end{macrocode} -% \end{macro}^^A \tud@dim@footlogoheight +% \end{macro}^^A \tud@footlogoheight@dim % \end{option}^^A footlogoheight % % \iffalse @@ -1694,7 +1691,7 @@ % \begin{macrocode} \newcommand*\tud@footlogo@ddc@set[2]{% \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@dim@footlogoheight]{#2}% + \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight@dim]{#2}% }% } % \end{macrocode} @@ -1750,7 +1747,7 @@ \vss\vss% }{% You should reduce `footlogoheight', because it is\MessageBreak% - too high (\the\dimexpr\tud@dim@footlogoheight\relax). % + too high (\the\dimexpr\tud@footlogoheight@dim\relax). % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside Alternatively you could use\MessageBreak% option `extrabottommargin='\MessageBreak% @@ -1788,7 +1785,7 @@ % \begin{macro}{\tud@footlogo@cmd@@set} % \changes{v2.03}{2015/01/27}{neu}^^A % \changes{v2.03}{2015/02/02}{optionale Parameter für unterschiedliche Dateien -% individuell nutzbar}^^A +% individuell nutzbar}^^A % \begin{macro}{\if@tud@footlogo@cmd@set} % \changes{v2.04}{2015/06/01}{neu}^^A % Mit dem Befehl \cs{footlogo} kann eine kommasparierte Liste für Logos im @@ -1868,7 +1865,7 @@ % In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. % \begin{macrocode} \preto\tud@footlogo@fileoptions{% - keepaspectratio,totalheight=\tud@dim@footlogoheight,% + keepaspectratio,totalheight=\tud@footlogoheight@dim,% }% % \end{macrocode} % Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als @@ -1970,7 +1967,7 @@ \tud@footcontent@do% }{% \renewcommand*\tud@footcontent@fontsize{% - \setlength\@tempdima{\tud@head@fontsize\p@}% + \tud@setdim\@tempdima{\tud@head@fontsize\p@}% \fontsize{\@tempdima}{1.25\@tempdima}% }% \tud@footcontent@do% @@ -2169,10 +2166,10 @@ \if@tempswa% \tud@ddc@check% \ifcase\@tempb\relax% - \setlength\@tempdimc{\z@}% + \tud@setdim\@tempdimc{\z@}% \else% \settowidth\@tempdimc{\tud@uselayerbox{foot@black}}% - \addtolength\@tempdimc{\columnsep}% + \tud@addtodim\@tempdimc{\columnsep}% \fi% % \end{macrocode} % Äquivalent zu den Logos wird auch der durch den Anwender frei definierbare diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index f9642432..aeeb1470 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -116,12 +116,12 @@ % \end{macro}^^A \student % \begin{macro}{\tud@authortable@set} % \changes{v2.01b}{2014/06/04}{Probleme mit Paket \pkg{calc} behoben}^^A -% \begin{length}{\tud@len@authortable} +% \begin{length}{\tud@dim@authortable} % Der Befehl \cs{tud@authortable@set} dient bei Aufgabenstellung und Gutachten % zur Ausgabe einer Tabelle mit Informationen zum Autor beziehungsweise zu den % Autoren.\footnote{Matrikelnummer, Jahrgang, Studiengang etc.} % \begin{macrocode} -\newlength\tud@len@authortable +\tud@newdim\tud@dim@authortable \newcommand*\tud@authortable@set{% \begingroup% \let\thanks\@gobble% @@ -138,11 +138,11 @@ % \begin{macrocode} \tud@multiple@split{@author}% \tud@multiple@fields@preset{@author}{\null}{}% - \setlength\tud@len@authortable{2em}% + \tud@setdim\tud@dim@authortable{2em}% % \end{macrocode} % Anschließend werden die Bezeichner sowohl der obligatorischen als auch der % genutzten, optionalen Felder in \cs{@tempa} gespeichert. Mit der Liste wird -% der längste Bezeichner bestimmt und dessen Länge in \cs{tud@len@authortable} +% der längste Bezeichner bestimmt und dessen Länge in \cs{tud@dim@authortable} % gespeichert. % \begin{macrocode} \def\@tempb##1{% @@ -164,11 +164,11 @@ \@tempb{discipline}% \@for\@tempb:=\@tempa\do{% \settowidth\@tempdima{\@tempb\tud@title@delimiter}% - \ifdim\@tempdima>\tud@len@authortable\relax% - \setlength\tud@len@authortable{\@tempdima}% + \ifdim\@tempdima>\tud@dim@authortable\relax% + \tud@setdim\tud@dim@authortable{\@tempdima}% \fi% }% - \global\tud@len@authortable=\tud@len@authortable% + \global\tud@dim@authortable=\tud@dim@authortable% % \end{macrocode} % Die Tabelle mit den benötigten Bezeichnern. Damit diese bis an den Seiterand % ohne Warnungen gesetzt werden können, wird die Auszeichnung von Absatzenden @@ -176,7 +176,7 @@ % \begin{macrocode} \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% - \begin{tabular}{@{}p{\tud@len@authortable}}% + \begin{tabular}{@{}p{\tud@dim@authortable}}% \ifx\@course\@empty\else% \coursename\tud@title@delimiter\tabularnewline% \fi% @@ -242,8 +242,8 @@ % Danach wird der Inhalt der Aufgabenstellung gesetzt. % \begin{macrocode} \vskip\smallskipamount% - \begin{tabular}{@{}p{\tud@len@authortable}% - p{\dimexpr\textwidth-\tud@len@authortable-2\tabcolsep\relax}@{}}% + \begin{tabular}{@{}p{\tud@dim@authortable}% + p{\dimexpr\textwidth-\tabcolsep*2-\tud@dim@authortable\relax}@{}}% \titlename\tud@title@delimiter & \tud@RaggedRight\textsf{\textbf{\@@title}}% \end{tabular}% \par% @@ -253,7 +253,7 @@ \noindent\ignorespaces% } % \end{macrocode} -% \end{length}^^A \tud@len@authortable +% \end{length}^^A \tud@dim@authortable % \end{macro}^^A \tud@authortable@set % % \subsection{Aufgabenstellung} @@ -324,7 +324,7 @@ \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi\medskip% \begingroup% \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative% - \begin{tabular}{@{}p{\tud@len@authortable}l@{}}% + \begin{tabular}{@{}p{\tud@dim@authortable}l@{}}% \ifx\@referee\@empty\else% \refereename\tud@title@delimiter & % \tud@multiple@fields@output{referee}\tabularnewline[\smallskipamount]% @@ -340,7 +340,7 @@ % in einer Tabelle ausgegeben. Die \env{tudpage}-Umgebung wird beendet, und % eine neue (rechte) Seite geöffnet. % \begin{macrocode} - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \ifx\@chairman\@empty\else% \begin{tabular}{@{}l@{}}% \@chairman\tabularnewline% @@ -430,17 +430,17 @@ % \begin{macrocode} \removelastskip% \ifdim\parskip>\z@\vskip\parskip\else\vskip\topsep\fi% - \setlength\@tempskipa{\smallskipamount}% + \tud@setglue\@tempskipa{\smallskipamount}% \ifx\@grade\@empty\else% \vskip\@tempskipa\noindent% \gradetext% - \setlength\@tempskipa{\bigskipamount}% + \tud@setglue\@tempskipa{\bigskipamount}% \fi% \ifx\@date\@empty\else% \vskip\@tempskipa\noindent% \ifx\@place\@empty\else\@place,\nobreakspace\fi\@date% \fi% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% % \end{macrocode} % Der Befehl \cs{and} wird für einen möglichen Zweitgutachter angepasst. Das % Hilfsmakro \cs{@tempa} dient zur Übernahme des richtigen Bezeichners für diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 7e8e20b0..bc6864de 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -472,9 +472,9 @@ % Das ganze Layout wird vertikal so verschoben, dass der Titel auf der gleichen % Höhe steht wie die Überschriften auf Teil- und Kapitelseiten. % \begin{macrocode} - \tud@cd@headstartvskip% + \tud@cd@headstart@vskip% \TUD@deprecated@lengthcs{pageheadingsvskip}% - \vspace*{\tud@dim@pageheadingsvskip}% + \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% % \end{macrocode} @@ -597,7 +597,7 @@ % \begin{macrocode} \if@tud@titlesignature% \let\tud@split@@author@do\tud@split@author@signature% - \vskip\tud@len@signatureskip\noindent% + \vskip\tud@glue@signaturevskip\noindent% \tud@ifin@and{\@@author}{}{\hfill}% \tud@multiple@split{@@author}% \fi% @@ -787,10 +787,10 @@ % \begin{macrocode} \newcommand*\tud@maketitle@@inpage{% \global\@topnum=\z@% - \tud@cd@headstartvskip% + \tud@cd@headstart@vskip% %<*book|report|article> \TUD@deprecated@lengthcs{headingsvskip}% - \vspace*{\tud@dim@headingsvskip}% + \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \tud@cd@vphantom% % \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% @@ -910,7 +910,7 @@ % Der ermittelte Offset muss~-- warum auch immer~-- um \val{1pt} vergrößert % werden. Zusätzlich wird ein mittlerer Abstand zwischen Kopf und Titel gesetzt. % \begin{macrocode} - \setlength\@tempdima{\dimexpr\ht\z@+\dp\z@\relax}% + \tud@setdim\@tempdima{\ht\z@+\dp\z@}% \ifdim\@tempdima>\z@\relax% %<*book|report|article> \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% @@ -1211,11 +1211,11 @@ % Vor der Version~v2.03 gab es für das \DDC-Logo einen abweichenden Satzspiegel % der ggf. beachtet werden muss. % \begin{macrocode} - \setlength\@tempdima{\textheight}% + \tud@setdim\@tempdima{\textheight}% \tud@if@v@lower{2.03}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false - \setlength\@tempdima{\dimexpr\textheight-\tud@len@ddcdiff\relax}% + \tud@setdim\@tempdima{\textheight-\tud@dim@ddcdiff}% \@tempswatrue% \fi% }{}% @@ -1229,7 +1229,7 @@ \splitmaxdepth\maxdepth% \vsplit\tud@title@box to \@tempdima% \clearpage% - \setlength\@tempdima{\textheight}% + \tud@setdim\@tempdima{\textheight}% \tud@if@v@lower{2.03}{\@tempswafalse}{}% }% % \end{macrocode} @@ -1256,7 +1256,7 @@ You are using a two-column title along with\MessageBreak% the DDC-logo. Unfortunately in this case, the\MessageBreak% type area has to be adjusted manually. Please\MessageBreak% - use `\string\enlargethispage{-\the\tud@len@ddcdiff}'\MessageBreak% + use `\string\enlargethispage{-\the\tud@dim@ddcdiff}'\MessageBreak% in both columns after the title% }% \fi% @@ -1372,27 +1372,27 @@ \if@tud@cdgeometry@cover% % \end{macrocode} % Bei der Höhe des oberen Seitenrandes muss unterschieden werden, ob der -% Satzspiegel im \CD oder aber im Buchblock erscheinen soll. +% Satzspiegel im \CD oder aber im Buchblock erscheinen soll. Die Makros werden +% von \KOMAScript via \cs{dimexpr} interpretiert. % \begin{macrocode} \if@tud@coverpage% \def\coverpagetopmargin{% - \dimexpr\tud@len@topmargin+\tud@len@barheight% - +\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% }% \else% \tud@if@v@lower{2.03}{% - \def\coverpagetopmargin{.5\tud@len@both}% + \def\coverpagetopmargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagetopmargin{\tud@len@slimmargin}% + \def\coverpagetopmargin{\tud@dim@slimmargin}% }% \fi% \tud@if@v@lower{2.03}{% - \def\coverpagebottommargin{.5\tud@len@both}% + \def\coverpagebottommargin{\tud@dim@bothmargin/2}% }{% - \def\coverpagebottommargin{\tud@len@widemargin}% + \def\coverpagebottommargin{\tud@dim@widemargin}% }% - \def\coverpageleftmargin{\tud@len@widemargin}% - \def\coverpagerightmargin{\tud@len@slimmargin}% + \def\coverpageleftmargin{\tud@dim@widemargin}% + \def\coverpagerightmargin{\tud@dim@slimmargin}% \fi% \if@tud@coverpage% % \end{macrocode} @@ -1414,7 +1414,7 @@ % \begin{macrocode} \begingroup% \tud@cover@setmargins% - \tud@len@areavskip=\z@% + \tud@setdim\tud@dim@areavskip{\z@}% % \end{macrocode} % Die Ausgabe des Covers und ggf. das Wiederherstellen des Satzspiegels. % \begin{macrocode} @@ -1490,16 +1490,16 @@ % \begin{macrocode} \renewcommand*\coverpagetopmargin{% \if@tud@coverpage% - \dimexpr\tud@len@topmargin+\tud@len@barheight+\tud@len@headsep\relax% + \tud@dim@topmargin+\tud@dim@barheight+\tud@dim@headsep% \else% - \dimexpr\topmargin+1in\relax% + \topmargin+1in% \fi% } \renewcommand*\coverpagebottommargin{% \if@tud@coverpage% - \dimexpr\tud@len@widemargin\relax% + \tud@dim@widemargin% \else% - 2\dimexpr\coverpagetopmargin\relax% + \coverpagetopmargin*2% \fi% } % \end{macrocode} @@ -1523,26 +1523,22 @@ % Standardmäßig ist \cs{coverbottommargin} abhängig von \cs{covertopmargin}, % weshalb dieses Makro als erstes expandiert wird. % \begin{macrocode} - \setlength\@tempdima{% - \dimexpr\coverpagebottommargin-\tud@len@layoutvoffset - +\paperheight-\tud@len@layoutheight\relax% + \tud@setdim\@tempdima{% + \coverpagebottommargin-\tud@dim@layoutvoffset% + +\paperheight-\tud@dim@layoutheight% }% \edef\coverpagebottommargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpagetopmargin+\tud@len@layoutvoffset\relax% - }% + \tud@setdim\@tempdima{\coverpagetopmargin+\tud@dim@layoutvoffset}% \edef\coverpagetopmargin{\the\@tempdima}% % \end{macrocode} % Selbiges gilt für \cs{coverrightmargin} und \cs{coverleftmargin}. % \begin{macrocode} - \setlength\@tempdima{% - \dimexpr\coverpagerightmargin-\tud@len@layouthoffset - +\paperwidth-\tud@len@layoutwidth\relax% + \tud@setdim\@tempdima{% + \coverpagerightmargin-\tud@dim@layouthoffset% + +\paperwidth-\tud@dim@layoutwidth% }% \edef\coverpagerightmargin{\the\@tempdima}% - \setlength\@tempdima{% - \dimexpr\coverpageleftmargin+\tud@len@layouthoffset\relax% - }% + \tud@setdim\@tempdima{\coverpageleftmargin+\tud@dim@layouthoffset}% \edef\coverpageleftmargin{\the\@tempdima}% % \end{macrocode} % Abschließend werden die gewünschten Längen nach der lokalen Gruppe definiert. From 7e9f070ba27e32253d340f49c0384b95e8a4b11f Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Fri, 29 Jul 2022 04:12:56 +0200 Subject: [PATCH 06/24] dealing with \glueexpr and \dimexpr - trying to protect user input against illegal usage of glue: https://github.com/latex3/latex2e/issues/227 --- source/tudscr-area.dtx | 21 +++---- source/tudscr-base.dtx | 18 +++--- source/tudscr-comp.dtx | 18 +++--- source/tudscr-frontmatter.dtx | 13 +++-- source/tudscr-manual.dtx | 4 +- source/tudscr-pagestyle.dtx | 104 +++++++++++++++++++--------------- source/tudscr-supervisor.dtx | 4 +- source/tudscr-title.dtx | 16 +++--- 8 files changed, 106 insertions(+), 92 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index 3451ca46..fab36f0d 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -1488,7 +1488,7 @@ % \begin{macrocode} \ifcase\tud@cdgeometry@num\relax% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\ta@bcor\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in-\ta@bcor\relax\relax,% textwidth=\the\textwidth,% \tud@cdgeometry@mpincl,% marginparwidth=\the\marginparwidth,% @@ -1520,7 +1520,8 @@ \else% custom \ifGm@pass\else% \edef\tud@cdgeometry@hmargin{% - left=\the\dimexpr\oddsidemargin+1in-\Gm@bindingoffset\relax,% + left=\the\dimexpr\glueexpr\oddsidemargin+1in% + -\Gm@bindingoffset\relax\relax,% textwidth=\the\textwidth,% \ifGm@includemp% includemp=true,% @@ -1709,8 +1710,8 @@ top=\the\dimexpr\tud@dim@bothmargin/2\relax,% headheight=\the\headheight,% headsep=\the\tud@dim@headsep,% - bottom=\the\dimexpr\tud@dim@bothmargin/2% - +\tud@extrabottommargin@dim\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% footskip=\the\dimexpr\tud@dim@headsep+\footheight% -1\baselineskip*5/4\relax% @@ -1721,8 +1722,8 @@ top=\the\tud@dim@slimmargin,% headheight=\the\headheight,% headsep=\the\headsep,% - bottom=\the\dimexpr\tud@dim@widemargin% - +\tud@extrabottommargin@dim\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@widemargin% + +\tud@extrabottommargin@dim\relax\relax,% \tud@cdgeometry@fincl,% footskip=\the\dimexpr\tud@dim@footsep+\footheight\relax% }% @@ -1758,12 +1759,12 @@ \tud@setdim\tud@dim@ddcdiff{\tud@dim@topmargin*3/5}% \edef\tud@cdgeometry@ddcmargin{% \if@fincl% - bottom=\the\dimexpr\tud@dim@bothmargin/2% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% +\tud@extrabottommargin@dim+\tud@dim@ddcdiff+\tud@dim@headsep% - +\footheight-1\baselineskip*5/4\relax,% + +\footheight-1\baselineskip*5/4\relax\relax,% \else% - bottom=\the\dimexpr\tud@dim@bothmargin/2% - +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax,% + bottom=\the\dimexpr\glueexpr\tud@dim@bothmargin/2% + +\tud@extrabottommargin@dim+\tud@dim@ddcdiff\relax\relax,% \fi% footskip=\the\dimexpr\tud@dim@headsep+\footheight% -1\baselineskip*5/4+\tud@dim@ddcdiff\relax,% diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 1d198e66..e8c26e6a 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -491,29 +491,29 @@ % \begin{macrocode} \ifdim\@tempdima>\@tempdimb\relax% \@whiledim\@tempdimb>1pt\relax\do{% - \setlength\@tempdima{.1\@tempdima}% - \setlength\@tempdimb{.1\@tempdimb}% + \setlength\@tempdima{\dimexpr\@tempdima/10\relax}% + \setlength\@tempdimb{\dimexpr\@tempdimb/10\relax}% }% \setlength\@tempdimc{\@tempdima}% \else% \@whiledim\@tempdima>1pt\relax\do{% - \setlength\@tempdima{.1\@tempdima}% - \setlength\@tempdimb{.1\@tempdimb}% + \setlength\@tempdima{\dimexpr\@tempdima/10\relax}% + \setlength\@tempdimb{\dimexpr\@tempdimb/10\relax}% }% \setlength\@tempdimc{\@tempdimb}% \fi% \@tempcnta=1\relax% - \@whiledim\dimexpr\@tempcnta\@tempdimc\relax<.01\maxdimen\do{% + \@whiledim% + \dimexpr\@tempcnta\@tempdimc\relax<\dimexpr\maxdimen/100\relax% + \do{% \multiply\@tempcnta by 10\relax% }% % \end{macrocode} % Mit dem im temporären Zählerregister \cs{@tempcnta} gespeicherten Faktor % wird der Dividend erweitert und der berechnete Quotient wieder gekürzt. % \begin{macrocode} - \setlength\@tempdimc{% - \dimexpr(\@tempcnta\@tempdima / \@tempdimb * \p@)\relax% - }% - \setlength\@tempdimc{\dimexpr \@tempdimc/\@tempcnta\relax}% + \setlength\@tempdimc{\dimexpr(\@tempcnta\@tempdima/\@tempdimb*\p@)\relax}% + \setlength\@tempdimc{\dimexpr\@tempdimc/\@tempcnta\relax}% % \end{macrocode} % Das Ergebnis wird in das angegebene Makro expandiert. % \begin{macrocode} diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index d54b99f1..854b0fc1 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -1728,30 +1728,30 @@ % \begin{macrocode} \newcommand*\tud@comp@mathposterwidth@dim{4.2\tud@dim@widemargin} \patchcmd\tud@footcontent@use{% - \hsize=\dimexpr#2-\@tempdimc\relax% + \hsize=\dimexpr\glueexpr#2-\@tempdimc\relax\relax% }{% \if@tud@mathposterfoot% \hsize=\dimexpr\tud@comp@mathposterwidth@dim\relax% \else% - \hsize=\dimexpr#2-\@tempdimc\relax% + \hsize=\dimexpr\glueexpr#2-\@tempdimc\relax\relax% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} \patchcmd\tud@footcontent@use{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% + \hsize=\dimexpr\glueexpr(#2-\columnsep)/2\relax\relax% }{% \if@tud@mathposterfoot% \hsize=\dimexpr(\tud@comp@mathposterwidth@dim-\columnsep)/2\relax% \else% - \hsize=\dimexpr(#2-\columnsep)/2\relax% + \hsize=\dimexpr\glueexpr(#2-\columnsep)/2\relax\relax% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} \patchcmd\tud@footcontent@use{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \hsize=\dimexpr\glueexpr(#2-\columnsep)/2-\@tempdimc\relax\relax% }{% \if@tud@mathposterfoot% \hsize=\dimexpr(\tud@comp@mathposterwidth@dim-\columnsep)/2\relax% \else% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \hsize=\dimexpr\glueexpr(#2-\columnsep)/2-\@tempdimc\relax\relax% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} % \end{macrocode} @@ -1838,10 +1838,10 @@ \ifundef{\schnittrand}{}{% \Ifisdimension{\schnittrand}{% \edef\@tempa{% - paperwidth=\the\dimexpr\paperwidth+\schnittrand*2\relax,% - paperheight=\the\dimexpr\paperheight+\schnittrand*2\relax,% + paperwidth=\the\dimexpr\glueexpr\paperwidth+\schnittrand*2\relax\relax,% + paperheight=\the\dimexpr\glueexpr\paperheight+\schnittrand*2\relax\relax,% layout=\the\paperwidth:\the\paperheight,% - layoutoffset=\the\dimexpr\schnittrand\relax,% + layoutoffset=\the\dimexpr\glueexpr\schnittrand\relax\relax,% showcrop% }% \expandafter\geometry\expandafter{\@tempa}% diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index 6b46885b..cfdc5148 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -418,17 +418,18 @@ \csuse{phantomsection}% \Ifstr{\@currenvir}{\tud@quoting}{}{% \if@twocolumn% - \vskip\dimexpr\smallskipamount-\parskip\relax% + \vskip\smallskipamount% \else% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount% \fi% + \vskip-\parskip% }% \or% true \if@titlepage\endgraf\fi% \csuse{phantomsection}% \@afterindentfalse% \Ifstr{\@currenvir}{\tud@quoting}{}{% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% }% \begingroup% \noindent\centering% @@ -437,7 +438,7 @@ \endgraf% \endgroup% \nopagebreak% - \vskip\dimexpr\medskipamount-\parskip\relax% + \vskip\medskipamount\vskip-\parskip% \@afterheading% \or% section \section*{#2}% @@ -858,7 +859,7 @@ \else% % \ifnum\tud@abstract@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% %<*book|report|article> \fi% @@ -1111,7 +1112,7 @@ \clearpage% \else% \ifnum\tud@declaration@level@num=\tw@\relax% - \vskip\dimexpr\bigskipamount-\parskip\relax% + \vskip\bigskipamount\vskip-\parskip% \fi% \fi% ] diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index 5fe532cd..9dc99ff8 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -597,7 +597,7 @@ \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% @@ -4373,7 +4373,7 @@ % Damit die Änderungsnotizen in der passenden vertikalen Position erscheinen, % wird die Länge \cs{changedatskip} entsprechend angepasst. % \begin{macrocode} - \tud@setdim\changedatskip{-\baselineskip}% + \tud@setdim\changedatskip{-1\baselineskip}% }{}% } % \end{macrocode} diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index ab397c9e..2a4964aa 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -122,12 +122,21 @@ % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{layerpagestyle}{empty.tudheadings} % \changes{v2.02}{2014/06/23}{neu}^^A -% Es wird ein neuer Seitenstil kreiert, der das \CD der \TnUD mit der -% prägenden Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein, -% wenn nicht die vom \CD vorgeschriebenen Seitenränder sondern das Paket -% \pkg{typearea} genutzt wird. Dafür wird das Logo im Kopf so wie im \CD -% vorgesehen mit dem Logo der \TnUD in den Rand und dem Schriftzug bündig zum -% Textblock gesetzt. +% Es wird ein neuer Seitenstil kreiert, der das \TUDCD mit der prägenden +% Kopfzeile umsetzt. Dabei soll dieser Kopf auch verwendbar sein, wenn nicht +% die vom \CD vorgeschriebenen Seitenränder sondern das Paket \pkg{typearea} +% genutzt wird. Dafür wird das Logo im Kopf so wie im \CD vorgesehen mit dem +% Logo der \TnUD in den Rand und dem Schriftzug bündig zum Textblock gesetzt. +% +% \Attention{% +% Um Längenangaben aus Makros sicher auf Dimensionsausdrücke zu reduzieren, +% müssen diese in \cs{dimexpr}\cs{glueexpr}\val{\dots}\cs{relax}\cs{relax} +% eingehüllt werden. Das Paket \pkg{scrlayer} verwendet allerdings lediglich +% \cs{dimexpr}, weshalb hier noch zusätzlich \cs{glueexpr} genutzt wird. Dies +% ist insbesondere für \cs{tud@bleedmargin@dim} relevant. Siehe hierzu auch +% \GitHubRepo(latex3/latex2e)<227>. +% } +% % \begin{layer}{tudheadings.head.content} % \changes{v2.04}{2015/05/31}{neu}^^A % Dies sind das links aus dem Satzspiegel verschobene Logo der \TnUD und das @@ -136,8 +145,8 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - addhoffset=\dimexpr\tud@dim@logox-\tud@dim@widemargin\relax,% - addwidth=\dimexpr-\tud@dim@logox+\tud@dim@widemargin\relax,% + addhoffset=\tud@dim@logox-\tud@dim@widemargin,% + addwidth=-\tud@dim@logox+\tud@dim@widemargin,% voffset=\tud@dim@logoy,% addvoffset=\tud@dim@layoutvoffset,% contents={% @@ -161,10 +170,10 @@ % \begin{macrocode} \DeclareNewLayer[% background,% - width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% - addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% - height=\dimexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,% - addvoffset=\dimexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@topmargin+\tud@bleedmargin@dim\relax,% + addvoffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% contents={% \ifnum\tud@head@bar@num>\tw@\relax% cdhead=color \color{HKS41}% @@ -174,8 +183,8 @@ ]{tudheadings.head.back}% \DeclareNewLayer[% background,% - width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% - addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% height=\tud@dim@barheight,% voffset=\tud@dim@topmargin,% addvoffset=\tud@dim@layoutvoffset,% @@ -197,7 +206,7 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@line\relax,% + voffset=\tud@dim@topmargin+\tud@dim@line,% addvoffset=\tud@dim@layoutvoffset,% contents={% \tud@head@font@set% @@ -223,7 +232,7 @@ % \begin{macrocode} \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin-.5\tud@dim@line\relax,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor @@ -233,8 +242,7 @@ ]{tudheadings.head.upline}% \DeclareNewLayer[% background,headsep,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@line/2\relax,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor @@ -244,9 +252,9 @@ ]{tudheadings.head.lowline}% \DeclareNewLayer[% background,% - width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% - addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% - voffset=\dimexpr\tud@dim@topmargin-\tud@dim@line/2\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin-\tud@dim@line/2,% addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor @@ -256,10 +264,9 @@ ]{tudheadings.head.uplinewide}% \DeclareNewLayer[% background,% - width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% - addhoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% - voffset=\dimexpr\tud@dim@topmargin+\tud@dim@barheight% - -\tud@dim@line/2\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + addhoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\tud@dim@topmargin+\tud@dim@barheight-\tud@dim@line/2,% addvoffset=\tud@dim@layoutvoffset,% contents={% \ifnum\tud@head@bar@num<\tw@\relax% cdhead=nocolor/litecolor @@ -278,8 +285,8 @@ % \begin{macrocode} \DeclareNewLayer[% foreground,headsep,% - height=\baselineskip,% addvoffset=\tud@dim@headsep/2,% + height=1\baselineskip,% contents={\if@tud@head@date\hfill\tud@date@print\fi},% ]{tudheadings.head.date}% % \end{macrocode} @@ -302,9 +309,9 @@ % \begin{macrocode} \DeclareNewLayer[% background,foot,% - width=\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax,% - hoffset=\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% - height=\dimexpr\tud@dim@layoutheight-\layeryoffset% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + height=\glueexpr\tud@dim@layoutheight-\layeryoffset% +\tud@dim@layoutvoffset+\tud@bleedmargin@dim\relax,% addvoffset=-\dp\strutbox,% contents={% @@ -374,8 +381,7 @@ % \begin{macrocode} \DeclareNewLayer[% background,foot,% - height=\dimexpr\tud@dim@layoutheight-\layeryoffset% - +\tud@dim@layoutvoffset\relax,% + height=\tud@dim@layoutheight-\layeryoffset+\tud@dim@layoutvoffset,% contents={% % \end{macrocode} % Falls die Höhe der Logos im Fuß nicht durch den Anwender festgelegt wurden, @@ -544,12 +550,10 @@ % \begin{macrocode} \DeclareNewLayer[% background,% - area=% - {\dimexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax}% - {\dimexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax}% - {\dimexpr\tud@dim@layoutwidth+\tud@bleedmargin@dim*2\relax}% - {\dimexpr\tud@dim@layoutheight+\tud@bleedmargin@dim*2\relax}% - ,% + hoffset=\glueexpr\tud@dim@layouthoffset-\tud@bleedmargin@dim\relax,% + voffset=\glueexpr\tud@dim@layoutvoffset-\tud@bleedmargin@dim\relax,% + width=\glueexpr\tud@dim@layoutwidth+(\tud@bleedmargin@dim)*2\relax,% + height=\glueexpr\tud@dim@layoutheight+(\tud@bleedmargin@dim)*2\relax,% contents={% \ifdefvoid{\tud@pagecolor}{}{% \color{\tud@pagecolor}% @@ -1020,9 +1024,11 @@ % Befehl zur Ausgabe der ersten und evtl. zweiten Textzeile im TUD-Kopf % \begin{macrocode} \newcommand*\tud@head@text@write[2][\z@]{% - \raisebox{\dimexpr(\tud@dim@barheight+2\tud@dim@line-\totalheight)/2\relax}[% + \raisebox{% + \dimexpr(\tud@dim@barheight+\tud@dim@line*2-\totalheight)/2\relax% + }[% \dimexpr\tud@dim@barheight-\depth\relax% - ][\dimexpr#1\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% + ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% } % \end{macrocode} % \end{macro}^^A \tud@head@text@write @@ -1393,7 +1399,9 @@ \def\@tempc##1##2{% \tud@savelayerbox{head@option}{% \includegraphics[{% - keepaspectratio,totalheight=\tud@dim@mainlogoheight,##2% + keepaspectratio,% + totalheight=\tud@dim@mainlogoheight,% + ##2% }]{##1}% }% }% @@ -1642,7 +1650,7 @@ \AtEndOfClass{% \ifdefvoid{\tud@footlogoheight@dim}{% \tud@if@v@lower{2.03}{% - \def\tud@footlogoheight@dim{\dimexpr\tud@dim@topmargin*3/5\relax}% + \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}% }{% \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% @@ -1691,7 +1699,10 @@ % \begin{macrocode} \newcommand*\tud@footlogo@ddc@set[2]{% \tud@savelayerbox{foot@#1}{% - \includegraphics[keepaspectratio,totalheight=\tud@footlogoheight@dim]{#2}% + \includegraphics[% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax% + ]{#2}% }% } % \end{macrocode} @@ -1865,7 +1876,8 @@ % In jedem Fall werden die Grundeinstellungen als erstes ausgeführt. % \begin{macrocode} \preto\tud@footlogo@fileoptions{% - keepaspectratio,totalheight=\tud@footlogoheight@dim,% + keepaspectratio,% + totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax,% }% % \end{macrocode} % Wurden tatsächlich inidviduelle Parameter übergeben, so werden diese als @@ -2188,7 +2200,7 @@ \def\@tempa{\@nil}% \ifx\@tempa\tud@footcontent@right\relax% \vtop{% - \hsize=\dimexpr#2-\@tempdimc\relax% + \hsize=\dimexpr\glueexpr#2-\@tempdimc\relax\relax% \strut\ignorespaces\tud@footcontent@left\strut% }% % \end{macrocode} @@ -2197,12 +2209,12 @@ % \begin{macrocode} \else% \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2\relax% + \hsize=\dimexpr\glueexpr(#2-\columnsep)/2\relax\relax% \strut\ignorespaces\tud@footcontent@left\strut% }% \hspace{\columnsep}% \vtop{% - \hsize=\dimexpr(#2-\columnsep)/2-\@tempdimc\relax% + \hsize=\dimexpr\glueexpr(#2-\columnsep)/2-\@tempdimc\relax\relax% \strut\ignorespaces\tud@footcontent@right\strut% }% \fi% diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index aeeb1470..812843d7 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -327,10 +327,10 @@ \begin{tabular}{@{}p{\tud@dim@authortable}l@{}}% \ifx\@referee\@empty\else% \refereename\tud@title@delimiter & % - \tud@multiple@fields@output{referee}\tabularnewline[\smallskipamount]% + \tud@multiple@fields@output{referee}\tabularnewline[1\smallskipamount]% \fi% \supervisorname\tud@title@delimiter & % - \tud@multiple@fields@output{supervisor}\tabularnewline[\smallskipamount]% + \tud@multiple@fields@output{supervisor}\tabularnewline[1\smallskipamount]% \issuedatetext\tud@title@delimiter & \@issuedate\tabularnewline% \duedatetext\tud@title@delimiter & \@duedate\tabularnewline% \end{tabular}% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index bc6864de..141e62b6 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -500,7 +500,7 @@ {\usekomafont{partnumber}{\nobreak\tud@sec@strut}}% {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% \fi% - \vskip 2\bigskipamount% + \vskip\glueexpr\bigskipamount*2\relax% % \end{macrocode} % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. % \begin{macrocode} @@ -827,7 +827,7 @@ % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. % \begin{macrocode} %<*book|report|article> - \vskip 2\bigskipamount% + \vskip\glueexpr\bigskipamount*2\relax% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% % \end{macrocode} @@ -857,7 +857,7 @@ % \end{macrocode} % Am Ende wird noch etwas vertikaler Abstand eingefügt. % \begin{macrocode} - \vskip 2\bigskipamount% + \vskip\glueexpr\bigskipamount*2\relax% % \ifnum\col@number>\@ne\relax% \ifdefvoid{\multicolsep}{}{% @@ -913,7 +913,7 @@ \tud@setdim\@tempdima{\ht\z@+\dp\z@}% \ifdim\@tempdima>\z@\relax% %<*book|report|article> - \vskip\dimexpr-\@tempdima-\p@-\medskipamount\relax% + \vskip\dimexpr-\@tempdima-\p@-1\medskipamount\relax% % \usebox\z@\par\medskip% \fi% @@ -1123,9 +1123,9 @@ % Autors zentriert ausgegeben. % \begin{macrocode} \vbox{% - \hsize=.3\textwidth% + \hsize=\dimexpr\textwidth*3/10\relax% \centering% - \rule{.3\textwidth}{.05pt}\newline% + \rule{\dimexpr\textwidth*3/10\relax}{.05pt}\newline% \ignorespaces#1\strut\unskip% }% % \end{macrocode} @@ -1203,7 +1203,7 @@ % werden. % \begin{macrocode} \global\setbox\tud@title@box\vbox{% - \vspace*{.9\baselineskip}#1\bigskip% + \vspace*{\dimexpr1\baselineskip*9/10\relax}#1\bigskip% }% \endgroup% % \end{macrocode} @@ -1563,7 +1563,7 @@ -\coverpagebottommargin\relax% \headheight=0pt% \headsep=0pt% - \footskip=\baselineskip% + \footskip=1\baselineskip% \@colht=\textheight% \@colroom=\textheight% \vsize=\textheight% From 8accdde303cb9003811d12ae782990411e655b6f Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Thu, 28 Jul 2022 22:37:06 +0200 Subject: [PATCH 07/24] rearrange --- source/tudscr-area.dtx | 18 +- source/tudscr-base.dtx | 297 ++++++++------- source/tudscr-comp.dtx | 397 ++++++++++---------- source/tudscr-fonts.dtx | 669 +++++++++++++++++----------------- source/tudscr-frontmatter.dtx | 42 +-- source/tudscr-layout.dtx | 65 ++-- source/tudscr-misc.dtx | 138 +++---- source/tudscr-pagestyle.dtx | 512 +++++++++++++------------- 8 files changed, 1100 insertions(+), 1038 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index fab36f0d..15fddb5a 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -154,7 +154,7 @@ % \end{macrocode} % \end{macro}^^A \if@tud@x@standalone@crop % -% \subsection{Definition der Größen und Maße in abhängig vom Papierformat} +% \subsection{Definition der Größen und Maße abhängig vom Papierformat} % % Die \TUDScript-Klassen sollen neben den vom \CD vorgegebenen Seitenrändern % weitere Satzspiegel ermöglichen und u.\,a. auch die Nutzung des Paketes @@ -1912,10 +1912,10 @@ % \changes{v2.04}{2015/03/10}{neu}^^A % Damit alle Satzspiegeleinstellungen vollständig vorgenommen und auch alle % Klassenoptionen korrekt verarbeitet werden, wird die Berechnung erstmalig -% mit \cs{AtEndPreamble}|{|\cs{tud@cdgeometry@init}|}| ausgeführt, nachdem der -% Ladezustandes des Paketes \pkg{scrlayer-scrpage} geprüft wurde. Dabei werden -% sowohl der benutzerdefinierte Satzspiegel als auch die durch \pkg{typearea} -% berechneten Einstellungen gesichert. +% am Ende der Präambel mit \cs{AtEndPreamble}|{|\cs{tud@cdgeometry@init}|}| +% ausgeführt, nachdem der Ladezustandes des Paketes \pkg{scrlayer-scrpage} +% geprüft wurde. Dabei werden sowohl der benutzerdefinierte Satzspiegel als +% auch die durch \pkg{typearea} berechneten Einstellungen gesichert. % \begin{macrocode} \newcommand*\tud@cdgeometry@@init{% \csuse{@ta@usegeometryfalse}% @@ -2145,8 +2145,8 @@ % \begin{macrocode} \newcommand*\tud@x@typearea@before{% \tud@cdgeometry@resetlayout% - \tud@skip@store{paperheight}% - \tud@skip@store{paperwidth}% + \tud@cslength@store{paperheight}% + \tud@cslength@store{paperwidth}% \begingroup% \tud@cdgeometry@assignlayout% \edef\tud@res@a{% @@ -2157,8 +2157,8 @@ \tud@res@a% } \newcommand*\tud@x@typearea@after{% - \tud@skip@restore{paperheight}% - \tud@skip@restore{paperwidth}% + \tud@cslength@restore{paperheight}% + \tud@cslength@restore{paperwidth}% \tud@if@preamble{% \TUD@key@preset{cdgeometry}{false}% }{% diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index e8c26e6a..47652cad 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -126,11 +126,12 @@ % für verschiedene Hooks vor sowie nach Klassen und Paketen. % \begin{macrocode} \RequirePackage{scrbase}[2020/09/21] -\RequirePackage{iftex}[2019/11/07] % \end{macrocode} % Die folgenden Pakete werden für die Manipulation bereits definierter -% Makros sowie zur erweiterten Auswertung boolescher Ausdrücke benötigt. +% Makros, zur erweiterten Auswertung boolescher Ausdrücke und allgemein zur +% Ablaufsteuerung benötigt. % \begin{macrocode} +\RequirePackage{iftex}[2019/11/07] \RequirePackage{etoolbox}[2011/01/03] \RequirePackage{xpatch}[2012/10/02] \RequirePackage{letltxmacro}[2016/05/16] @@ -322,8 +323,6 @@ % \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\tud@res@cnt} % \changes{v2.06}{2019/06/13}{neu}^^A -% \begin{macro}{\tud@res@read} -% \changes{v2.06}{2019/06/21}{neu}^^A % Makros zur temporären Verwendung. % \begin{macrocode} \newcommand*\tud@reserved{} @@ -333,9 +332,7 @@ \newcommand*\tud@res@d{} \tud@newif\if@tud@res@swa \tud@newcount\tud@res@cnt -\newread\tud@res@read % \end{macrocode} -% \end{macro}^^A \tud@res@read % \end{macro}^^A \tud@res@cnt % \end{macro}^^A \if@tud@res@swa % \end{macro}^^A \tud@res@d @@ -418,6 +415,24 @@ % \end{macrocode} % \end{macro}^^A \Ifstrbool % +% \subsubsection{Erzwungene Kleinschreibung von Strings} +% +% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in +% bestimmten Feldern mit Sicherheit erkennen zu können, werden diese zwingend +% in Kleinbuchstaben geschieben. +% \begin{macro}{\tud@lowerstring} +% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} benutzt. +% \ToDo{geht das eleganter als mit \cs{expandafter}?}[v2.07] +% \begin{macrocode} +\newcommand*\tud@lowerstring[2]{% + \protected@edef#1{#2}% + \lowercase\expandafter{% + \expandafter\def\expandafter #1\expandafter{#1}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@lowerstring +% % \subsubsection{Test auf eine verwendbare Sprache} % % \begin{macro}{\iflanguageloaded} @@ -449,7 +464,7 @@ % % \subsubsection{Expansion geschützter Makros} % -% Im \LaTeX-Kernel wird der Befehl \cs{@expandtwoargs} definiert, welcher zwei +% Im \LaTeX"~Kernel wird der Befehl \cs{@expandtwoargs} definiert, welcher zwei % Argumente in ein angegebenes Makro vollständig expandiert. Dabei erfolgt die % Expansion der beiden Argumente aufgrund der standardmäßigen Verwendung von % \cs{edef} allerdings vollständig und ohne die Beachtung von \cs{protect}. @@ -523,24 +538,6 @@ % \end{macrocode} % \end{macro}^^A \tud@divide % -% \subsubsection{Erzwungene Kleinschreibung von Strings} -% -% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in -% bestimmten Feldern mit Sicherheit erkennen zu können, werden diese zwingend -% in Kleinbuchstaben geschieben. -% \begin{macro}{\tud@lowerstring} -% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} benutzt. -% \ToDo{geht das eleganter als mit \cs{expandafter}?}[v2.07] -% \begin{macrocode} -\newcommand*\tud@lowerstring[2]{% - \protected@edef#1{#2}% - \lowercase\expandafter{% - \expandafter\def\expandafter #1\expandafter{#1}% - }% -} -% \end{macrocode} -% \end{macro}^^A \tud@lowerstring -% % \subsubsection{Test auf vorhandene Dateien von Schriftdefinitionen} % % \begin{macro}{\tud@if@fdfileexists} @@ -630,9 +627,10 @@ % aktualisiert werden. % \begin{macrocode} \newrobustcmd*\tud@cs@store[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{}{% - \tud@cs@letltx{@@tud@#1}{#1}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{}{% + \tud@cs@letltx{@@tud@#1}{#1}% + }% }% } \newrobustcmd*\tud@cs@restore[1]{% @@ -650,30 +648,34 @@ % \end{macrocode} % Die eigentliche Wiederherstellung. % \begin{macrocode} - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \tud@cs@letltx{#1}{@@tud@#1}% - \csundef{@@tud@#1}% - }{}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{#1}{@@tud@#1}% + \csundef{@@tud@#1}% + }{}% + }% } \newrobustcmd*\tud@cs@reset[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \tud@cs@letltx{#1}{@@tud@#1}% - }{}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{#1}{@@tud@#1}% + }{}% + }% } \newrobustcmd*\tud@cs@update[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \tud@cs@letltx{@@tud@#1}{#1}% - }{}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \tud@cs@letltx{@@tud@#1}{#1}% + }{}% + }% } \newrobustcmd*\tud@cs@use[1]{% - \tud@cs@check{#1}% - \ifcsdef{@@tud@#1}{% - \csuse{@@tud@#1}% - }{% - \csuse{#1}% + \tud@cs@check{#1}{% + \ifcsdef{@@tud@#1}{% + \csuse{@@tud@#1}% + }{% + \csuse{#1}% + }% }% } % \end{macrocode} @@ -682,14 +684,24 @@ % Fall sein, wird ein Fehler ausgegeben. % \begin{macrocode} \newrobustcmd*\tud@cs@check[1]{% - \ifcsdef{#1}{}{% - \PackageError{tudscrbase}{% - `\@backslashchar#1' is not defined}{% - The command `\@backslashchar#1' was never defined. \MessageBreak% - Please contact the TUD-Script maintainer\MessageBreak% - via \tudscrmail. A bugfix is urgently required.% - }% - }% + \begingroup% + \ifcsdef{#1}{\@tud@res@swatrue}{\@tud@res@swafalse}% + \if@tud@res@swa% + \ifcscounter{#1}{\@tud@res@swafalse}{}% + \ifcslength{#1}{\@tud@res@swafalse}{}% + \ifcsdimen{#1}{\@tud@res@swafalse}{}% + \fi% + \if@tud@res@swa% + \aftergroup\@firstofone% + \else% + \PackageError{tudscrbase}{`\@backslashchar#1' is not a defined macro}{% + The macro `\@backslashchar#1' was never defined. \MessageBreak% + Please contact the TUD-Script maintainer\MessageBreak% + via \tudscrmail. A bugfix is urgently required.% + }% + \aftergroup\@gobble% + \fi% + \endgroup% } % \end{macrocode} % \end{macro}^^A \tud@cs@check @@ -699,58 +711,62 @@ % \end{macro}^^A \tud@cs@restore % \end{macro}^^A \tud@cs@store % \end{macro}^^A \tud@cs@letltx -% \begin{macro}{\tud@skip@store} +% \begin{macro}{\tud@cslength@store} % \changes{v2.04}{2015/03/02}{neu}^^A -% \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@skip@check}}^^A -% \begin{macro}{\tud@skip@restore} +% \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@cslength@check}}^^A +% \begin{macro}{\tud@cslength@restore} % \changes{v2.04}{2015/03/02}{neu}^^A -% \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@skip@check}}^^A -% \begin{macro}{\tud@skip@reset} +% \changes{v2.05}{2016/07/13}{Verwendung von \cs{tud@cslength@check}}^^A +% \begin{macro}{\tud@cslength@reset} % \changes{v2.05}{2016/07/13}{neu}^^A -% \begin{macro}{\tud@skip@check} +% \begin{macro}{\tud@cslength@check} % \changes{v2.05}{2016/07/13}{neu}^^A % Hiermit können~-- äquivalent zum Sichern und Wiederherstellen von Befehlen~-- % Längenregister abgespeichert werden. % \begin{macrocode} -\newcommand*\tud@skip@store[1]{% - \tud@skip@check{#1}{% - \ifcsdef{@@tud@skip@#1}{}{% - \csedef{@@tud@skip@#1}{\expandafter\the\csname #1\endcsname}% - }% +\newcommand*\tud@cslength@store[1]{% + \tud@cslength@check{#1}{% + \ifcsundef{@@tud@length@#1}{% + \csedef{@@tud@length@#1}{\expandafter\the\csname #1\endcsname}% + }{}% }% } -\newcommand*\tud@skip@restore[1]{% - \tud@skip@check{#1}{% - \ifcsdef{@@tud@skip@#1}{% - \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% - \csundef{@@tud@skip@#1}% - }{}% +\newcommand*\tud@cslength@restore[1]{% + \tud@cslength@check{#1}{% + \ifcsundef{@@tud@length@#1}{}{% + \expandafter\setlength\csname #1\endcsname{% + \csname @@tud@length@#1\endcsname% + }% + \csundef{@@tud@length@#1}% + }% }% } -\newcommand*\tud@skip@reset[1]{% - \tud@skip@check{#1}{% - \ifcsdef{@@tud@skip@#1}{% - \csname #1\endcsname=\csname @@tud@skip@#1\endcsname% - }{}% +\newcommand*\tud@cslength@reset[1]{% + \tud@cslength@check{#1}{% + \ifcsundef{@@tud@length@#1}{}{% + \expandafter\setlength\csname #1\endcsname{% + \csname @@tud@length@#1\endcsname% + }% + }% }% } -\newcommand*\tud@skip@check[1]{% - \begingroup% - \@tempswafalse% - \expandafter\Ifisskip\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% - \expandafter\Ifisdimen\expandafter{\csname #1\endcsname}{\@tempswatrue}{}% - \if@tempswa% - \aftergroup\@firstofone% - \else% - \aftergroup\@gobble% - \fi% - \endgroup% +\newcommand*\tud@cslength@check[1]{% + \expandafter\tud@if@lengthregister\expandafter{\csname #1\endcsname}{% + \expandafter\@firstofone% + }{% + \PackageError{tudscrbase}{`\@backslashchar#1' is not a defined length}{% + The length `\@backslashchar#1' was never defined. \MessageBreak% + Please contact the TUD-Script maintainer\MessageBreak% + via \tudscrmail. A bugfix is urgently required.% + }% + \expandafter\@gobble% + }% } % \end{macrocode} -% \end{macro}^^A \tud@skip@check -% \end{macro}^^A \tud@skip@reset -% \end{macro}^^A \tud@skip@restore -% \end{macro}^^A \tud@skip@store +% \end{macro}^^A \tud@cslength@check +% \end{macro}^^A \tud@cslength@reset +% \end{macro}^^A \tud@cslength@restore +% \end{macro}^^A \tud@cslength@store % \begin{macro}{\tud@patch@wrn} % \TUDScript verwendet die Möglichkeiten von \pkg{etoolbox} und \pkg{xpatch}, % um mit den Makros (\cs{[x]apptocmd}, \cs{[x]pretocmd}, \cs{[x]patchcmd}) @@ -860,34 +876,41 @@ % \end{macro}^^A \TUD@key@@define % \end{macro}^^A \TUD@key@define % \end{macro}^^A \TUD@key +% +% Die folgenden Befehle dienen zum Verarbeiten der Optionen, wobei prinzipiell +% auch eine freie Definition mit anschließender Abarbeitung ohne diese möglich +% ist. +% % \begin{macro}{\TUD@set@ifkey} % \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A +% Hiermit wird der Option ein einfacher Schalterwert zugewiesen. +% \begin{macrocode} +\newcommand*\TUD@set@ifkey[3]{% + \begingroup% + \tud@lowerstring\tud@res@a{#3}% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% + }% + \tud@res@a% +} +% \end{macrocode} +% \end{macro}^^A \TUD@set@ifkey % \begin{macro}{\TUD@set@numkey} % \changes{v2.02}{2014/11/05}{neu}^^A % \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A % \begin{macro}{\TUD@bool@numkey} % \changes{v2.03}{2015/01/09}{neu}^^A -% \begin{macro}{\TUD@set@dimenkey} -% \changes{v2.05}{2016/06/15}{neu}^^A -% \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A -% \begin{macro}{\TUD@unknown@keyval} -% Dies sind die Befehle zum Setzen der Optionen. Diese können entweder als -% Schalter (\cs{TUD@set@ifkey}) oder aber mit mehreren möglichen Werten -% (\cs{TUD@set@numkey}) definiert werden. Prinzipiell ist auch eine freie -% Definition mit anschließender Abarbeitung ohne die zuvor genannten Befehle -% möglich. +% Hiermit werden für eine Option mehrere mögliche Werte definiert. % \begin{macrocode} -\newcommand*\TUD@set@ifkey[3]{% - \tud@lowerstring\tud@res@a{#3}% - \edef\tud@res@b{% - \unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% - }\tud@res@b% -} \newcommand*\TUD@set@numkey[4]{% - \tud@lowerstring\tud@res@a{#4}% - \edef\tud@res@b{% - \unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% - }\tud@res@b% + \begingroup% + \tud@lowerstring\tud@res@a{#4}% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% + }% + \tud@res@a% } % \end{macrocode} % Um Dopplungen im Code zu vermeiden, werden für die numerische Schlüssel die @@ -897,16 +920,26 @@ {false}{0},{off}{0},{no}{0},{true}{1},{on}{1},{yes}{1}% } % \end{macrocode} +% \end{macro}^^A \TUD@bool@numkey +% \end{macro}^^A \TUD@set@numkey +% \begin{macro}{\TUD@set@dimenkey} +% \changes{v2.05}{2016/06/15}{neu}^^A +% \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A % Mit \cs{TUD@set@dimenkey} wird der übergebene Längenwert im spezifiezierten % Makro gespeichert. % \begin{macrocode} \newcommand*\TUD@set@dimenkey[3]{% - \tud@lowerstring\tud@res@a{#3}% - \edef\tud@res@b{% - \unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% - }\tud@res@b% + \begingroup% + \tud@lowerstring\tud@res@a{#3}% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% + }% + \tud@res@a% } % \end{macrocode} +% \end{macro}^^A \TUD@set@dimenkey +% \begin{macro}{\TUD@unknown@keyval} % Dieser Befehl wird lediglich pro forma definiert. An diesen kann eine Liste % möglicher Wertzuweisungen übergeben werden, welche durch \KOMAScript{} % derzeit jedoch nicht abgearbeitet und ausgegeben wird. @@ -914,10 +947,6 @@ \newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}} % \end{macrocode} % \end{macro}^^A \TUD@unknown@keyval -% \end{macro}^^A \TUD@set@dimenkey -% \end{macro}^^A \TUD@set@numkey -% \end{macro}^^A \TUD@bool@numkey -% \end{macro}^^A \TUD@set@ifkey % \begin{macro}{\tud@locked@newnum} % \begin{macro}{\tud@locked@num@preset} % \begin{macro}{\tud@locked@num@set} @@ -1297,22 +1326,22 @@ {\tud@res@b[]}% }% \IfFileExists{#1.sty}{% - \openin\tud@res@read=#1.sty% + \openin\@inputcheck=#1.sty% \@tud@res@swatrue% \loop% - \read\tud@res@read to\tud@res@c% + \read\@inputcheck to\tud@res@c% \@expandtwoargs\in@{\string\ProvidesPackage}% {\expandafter\detokenize\expandafter{\tud@res@c}}% \ifin@% \@tud@res@swafalse% \tud@res@c% \fi% - \ifeof\tud@res@read\@tud@res@swafalse\fi% + \ifeof\@inputcheck\@tud@res@swafalse\fi% \if@tud@res@swa% \repeat% - \closein\tud@res@read% + \closein\@inputcheck% }{}% - \edef\tud@res@a{\endgroup\noexpand\@ifl@t@r{\tud@res@a}{#2}} + \edef\tud@res@a{\endgroup\noexpand\@ifl@t@r{\tud@res@a}{#2}}% \tud@res@a% } \@onlypreamble\tud@if@packagelater@exists @@ -1321,18 +1350,19 @@ % \end{macro}^^A \TUD@CheckPackage % \begin{macro}{\TUD@RecommendPackage} % \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\TUD@Recommend@Package} % Bestimmte Pakete sind für die Funktionalität von \TUDScript empfohlen, aber % nicht zwingend erforderlich. Sind diese nicht vorhanden, wird eine Warnung % ausgegeben. % \begin{macrocode} \newcommand*\TUD@RecommendPackage[1]{% \kernel@ifnextchar[%] - {\TUD@@RecommendPackage#1}% - {\TUD@@RecommendPackage#1[]}% + {\TUD@Recommend@Package#1}% + {\TUD@Recommend@Package#1[]}% } \@onlypreamble\TUD@RecommendPackage -\newcommand*\TUD@@RecommendPackage{} -\def\TUD@@RecommendPackage#1[#2]{% +\newcommand*\TUD@Recommend@Package{} +\def\TUD@Recommend@Package#1[#2]{% \IfFileExists{#1.sty}{% \RequirePackage{#1}[#2]% }{% @@ -1342,8 +1372,9 @@ }% }% } -\@onlypreamble\TUD@@RecommendPackage +\@onlypreamble\TUD@Recommend@Package % \end{macrocode} +% \end{macro}^^A \TUD@Recommend@Package % \end{macro}^^A \TUD@RecommendPackage % \begin{macro}{\TUD@AfterPackage@set} % \changes{v2.04}{2015/03/09}{neu}^^A @@ -1395,13 +1426,14 @@ \ifundef{\KOMAClassName}{% \renewcommand*\TUD@KOMAoptions[1]{% \PackageWarning{tudscrbase}{% - You should load package `scrextend' right after the\MessageBreak% - documentclass. Option \string\TUD@KOMAoptions{`#1'} is gobbled% + You should load package `scrextend' right after\MessageBreak% + the documentclass. The following option is gobbled:\MessageBreak% + \string\KOMAoptions{`#1'}% }% }% - \AfterPackage*{scrextend}{\let\TUD@KOMAoptions\KOMAoptions}% + \AfterPackage*{scrextend}{\def\TUD@KOMAoptions{\KOMAoptions}}% }{% - \let\TUD@KOMAoptions\KOMAoptions% + \def\TUD@KOMAoptions{\KOMAoptions}% } % % \end{macrocode} @@ -1428,7 +1460,6 @@ % \fi % % \section{Zusätzliches für die \TUDScript-Klassen} -% % \subsection{Erweiterung von \KOMAScript-Schriftelementen} % % \begin{macro}{\tud@komafont@set} diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 854b0fc1..47cd22e4 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -276,7 +276,14 @@ % ist. Sollte dies nicht der Fall sein, wird ein Fehler erzeugt. % \begin{macrocode} %<*class> - \ifcsdef{scr@v@\TUD@Version@KOMA}{% + \ifcsundef{scr@v@\TUD@Version@KOMA}{% + \ClassError{\TUD@Class@Name}{% + KOMA-Script v\TUD@Version@KOMA is required% + }{% + \TUD@Version\space must at least be used with\MessageBreak% + KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion was found.% + }% + }{% \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax% \ClassError{\TUD@Class@Name}{% KOMA-Script compatibility level too low% @@ -285,13 +292,6 @@ `version=3.12' KOMA-Script compatibility option.% }% \fi% - }{% - \ClassError{\TUD@Class@Name}{% - KOMA-Script v\TUD@Version@KOMA is required% - }{% - \TUD@Version\space must at least be used with\MessageBreak% - KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion was found.% - }% }% % } @@ -510,13 +510,7 @@ \newcommand*\tud@if@v@lower[1]{% \begingroup% \tud@v@get\@tempa{#1}% - \ifcsdef{tud@v@\@tempa}{% - \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% - \def\tud@reserved{\endgroup\@firstoftwo}% - \else% - \def\tud@reserved{\endgroup\@secondoftwo}% - \fi% - }{% + \ifcsundef{tud@v@\@tempa}{% \def\tud@reserved{% %<*class> \ClassWarningNoLine{\TUD@Class@Name}% @@ -530,6 +524,12 @@ }% \endgroup\@firstoftwo% }% + }{% + \ifnum\tud@v@comp<\csuse{tud@v@\@tempa}\relax% + \def\tud@reserved{\endgroup\@firstoftwo}% + \else% + \def\tud@reserved{\endgroup\@secondoftwo}% + \fi% }% \tud@reserved% } @@ -1140,28 +1140,35 @@ % \begin{macro}{\fachrichtung} % \begin{macro}{\institut} % \begin{macro}{\professur} +% \begin{macro}{\moreauthor} % Es werden Aliasbefehle für die Eingabefelder definiert. % \begin{macrocode} \newcommand*\einrichtung{\faculty} \newcommand*\fachrichtung{\department} \newcommand*\institut{\institute} \newcommand*\professur{\chair} +\newcommand*\moreauthor{\authormore} % \end{macrocode} +% \end{macro}^^A \moreauthor % \end{macro}^^A \professur % \end{macro}^^A \institut % \end{macro}^^A \fachrichtung % \end{macro}^^A \einrichtung +% \begin{macro}{\tudfont} +% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A % \begin{macro}{\dinBold} % \changes{v2.05}{2015/07/13}{neu}^^A % \begin{macro}{\dinfamily} % \changes{v2.05}{2015/07/13}{neu}^^A % Für die explizite Schriftauswahl gibt es ebenfalls zwei ältere Befehle. % \begin{macrocode} +\newcommand*\tudfont{\cdfont} \newcommand*\dinBold{\dinbn} \newcommand*\dinfamily{\dinbn} % \end{macrocode} % \end{macro}^^A \dinfamily % \end{macro}^^A \dinBold +% \end{macro}^^A \tudfont % % \iffalse % @@ -1226,28 +1233,25 @@ %<*body> % \fi % -% \begin{macro}{\moreauthor} % \begin{macro}{\submitdate} +% \begin{macro}{\submittedon} % \begin{macro}{\supervisorII} % \begin{macro}{\supervisedby} % \begin{macro}{\supervisedIIby} -% \begin{macro}{\submittedon} % Es werden weitere Aliasbefehle für die Eingabefelder der \cls{tudbook}-Klasse % definiert. % \begin{macrocode} -\newcommand*\moreauthor{\authormore} \newcommand*\submitdate{\date} +\newcommand*\submittedon[1]{\gdef\datetext{#1}} \newcommand*\supervisorII[1]{\g@addto@macro\@supervisor{\and #1}} \newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} \newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} -\newcommand*\submittedon[1]{\gdef\datetext{#1}} % \end{macrocode} -% \end{macro}^^A \submittedon % \end{macro}^^A \supervisedIIby % \end{macro}^^A \supervisedby % \end{macro}^^A \supervisorII +% \end{macro}^^A \submittedon % \end{macro}^^A \submitdate -% \end{macro}^^A \moreauthor % \begin{macro}{\dissertation} % Bei der Definition des Typs der Abschlussarbeit mit \cs{dissertation} wird % die Lokalisierungsvariable \cs{dissertationname} verwendet und die Feldnamen @@ -1260,41 +1264,13 @@ } % \end{macrocode} % \end{macro}^^A \dissertation -% \begin{environment}{theglossary} -% \begin{macro}{\glossaryname} -% \begin{macro}{\glossitem} -% Eine rudimentäre Umgebung für ein Glossar. -% \begin{macrocode} -\AtBeginDocument{% - \ifundef{\theglossary}{% - \providecommand*\glossaryname{Glossar}% - \newenvironment{theglossary}[1][]{% - \PackageWarning{tudscrcomp}{% - Using the environment `theglossary' is not\MessageBreak% - recommended. You should rather use an appropriate\MessageBreak% - package such as glossaries% - }% - \let\bibname\glossaryname% - \bib@heading% - #1% - \list{}{% - \setlength\labelsep{\z@}% - \setlength\labelwidth{\z@}% - \setlength\itemindent{-\leftmargin}% - }% - }{\endlist}% - \newcommand\glossitem[1]{\item[] #1\par}% - }{}% -} -% \end{macrocode} -% \end{macro}^^A \glossitem -% \end{macro}^^A \glossaryname -% \end{environment}^^A theglossary % \begin{macro}{\chapterpage} % \begin{macro}{\if@tud@comp@chapterpage} % \begin{macro}{\tud@comp@chapterpage@set} % \begin{macro}{\tud@comp@chapterpage@unset} % \begin{macro}{\tud@comp@chapterpage@wrn} +% \begin{macro}{\tud@chapter@pre} +% \begin{macro}{\tud@chapter@app} % Die alte \cls{tudbook}-Klasse stellt den Befehl \cs{chapterpage} bereit. % Mit diesem ist es möglich, das Verhalten der Kapitelseiten~-- welches durch % die Option \opt{chapterpage} gesteuert wird~-- temporär umzuschalten, also @@ -1340,13 +1316,6 @@ \global\let\tud@comp@chapterpage@wrn\relax% } % \end{macrocode} -% \end{macro}^^A \tud@comp@chapterpage@wrn -% \end{macro}^^A \tud@comp@chapterpage@unset -% \end{macro}^^A \tud@comp@chapterpage@set -% \end{macro}^^A \if@tud@comp@chapterpage -% \end{macro}^^A \chapterpage -% \begin{macro}{\tud@chapter@pre} -% \begin{macro}{\tud@chapter@app} % Hier erfolgt die notwendige Anpassungen der internen Gliederungsbefehle. % \begin{macrocode} \AtEndPreamble{% @@ -1362,13 +1331,48 @@ % \end{macrocode} % \end{macro}^^A \tud@chapter@app % \end{macro}^^A \tud@chapter@pre +% \end{macro}^^A \tud@comp@chapterpage@wrn +% \end{macro}^^A \tud@comp@chapterpage@unset +% \end{macro}^^A \tud@comp@chapterpage@set +% \end{macro}^^A \if@tud@comp@chapterpage +% \end{macro}^^A \chapterpage +% \begin{environment}{theglossary} +% \begin{macro}{\glossaryname} +% \begin{macro}{\glossitem} +% Eine rudimentäre Umgebung für ein Glossar. +% \begin{macrocode} +\AfterEndPreamble{% + \ifundef{\theglossary}{% + \providecommand*\glossaryname{Glossar}% + \newenvironment{theglossary}[1][]{% + \PackageWarning{tudscrcomp}{% + Using the environment `theglossary' is not\MessageBreak% + recommended. You should rather use an appropriate\MessageBreak% + package such as glossaries% + }% + \let\bibname\glossaryname% + \bib@heading% + #1% + \list{}{% + \setlength\labelsep{\z@}% + \setlength\labelwidth{\z@}% + \setlength\itemindent{-\leftmargin}% + }% + }{\endlist}% + \newcommand\glossitem[1]{\item[] #1\par}% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \glossitem +% \end{macro}^^A \glossaryname +% \end{environment}^^A theglossary % % % \iffalse % % %<*poster> -%<*option> +%<*body> % \fi % % \subsection{Kompatibilität zu \cls{tudmathposter}} @@ -1376,6 +1380,29 @@ % Die hier bereitgestellten Optionen und Befehle werden durch die Klasse % \cls{tudmathposter} bzw. \cls{tudposter} definiert. % +% Die Klasse \cls{tudmathposter} lädt allerhand Pakete. Dies ist jedoch für den +% Anwender alles andere als vorteilhaft, da dadurch unter Umständen Konflikte +% mit anderen Paketen entstehen oder der Nutzer im Zweifelsfall gar nicht weiß, +% dass verwendete Befehle aus bestimmten Paketen entspringen. Dennoch werden +% aus Kompatibilitätsgründen einige Pakete geladen, um bestehende Dokumente +% trotz alledem nach der Portierung kompiliert werden können. Um den Nutzer die +% Möglichkeit zu geben, die Pakete selber ggf. mit Optionen zu laden, erfolgt +% die Anforderung der Pakete erst am ende der Präambel. +% \begin{macrocode} +\AtEndPreamble{% + \RequirePackage{amsmath}[2016/06/28]% + \RequirePackage{amsfonts}[2013/01/14]% + \RequirePackage{calc}[2014/10/28]% + \RequirePackage{textcomp}[2016/06/19]% + \RequirePackage{tabularx}[2016/02/03]% +} +% \end{macrocode} +% +% \iffalse +% +%<*option> +% \fi +% % \begin{option}{bluebg} % \changes{v2.05}{2016/04/17}{neu}^^A % Mit der Option \opt{bluebg} kann der Hintergrund des Posters in \val{HKS41} @@ -1631,35 +1658,111 @@ \setcounter{secnumdepth}{\m@ne} % \end{macrocode} % \end{counter}^^A secnumdepth -% \begin{macro}{\fusszeile} +% \begin{environment}{figurehere} % \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\footcolumn} +% \begin{environment}{tablehere} % \changes{v2.05}{2016/04/17}{neu}^^A -% Mit diesen Befehlen lässt sich der Inhalt des Fußbereiches angepassen. Wird -% in einem und/oder beiden Argumente von \cs{footcontent} ein Stern \val{*} -% verwendet, so bleibt der bisherige Inhalt erhalten. +% Weiterhin stellt die Klasse \cls{tudmathposter} zwei Umgebungen bereit, mit +% denen sich Tabellen und Bilder an einer bestimmten Stelle exakt platzieren +% lassen. Prinzipiell könnte hierfür auch das Paket \pkg{float} zum Einsatz +% kommen. +% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] % \begin{macrocode} -\newcommand*\fusszeile[2][]{\footcontent[{#1}]{#2}} -\newcommand*\footcolumn[2]{% - \Ifnumber{#1}{% - \ifcase#1\relax% - \footcontent{#2}% - \or% - \footcontent{#2}[*]% - \or% - \footcontent{*}[{#2}]% - \fi% - }{}% +\newenvironment{figurehere}{% + \def\@captype{figure}% + \renewcommand*\caption{\captionof{figure}}% + \renewcommand*\captionabove{\captionaboveof{figure}}% + \renewcommand*\captionbelow{\captionbelowof{figure}}% + \vskip\intextsep% + \vbox \bgroup% + \hsize=\columnwidth% + \@parboxrestore% + \ignorespaces% +}{% + \egroup% + \vskip\intextsep% + \ignorespaces% +} +\newenvironment{tablehere}{% + \def\@captype{table}% + \renewcommand*\caption{\captionof{table}}% + \renewcommand*\captionabove{\captionaboveof{table}}% + \renewcommand*\captionbelow{\captionbelowof{table}}% + \vskip\intextsep% + \vbox \bgroup% + \hsize=\columnwidth% + \@parboxrestore% + \ignorespaces% +}{% + \egroup% + \vskip\intextsep% + \ignorespaces% } % \end{macrocode} -% \end{macro}^^A \footcolumn -% \end{macro}^^A \fusszeile +% \end{environment}^^A tablehere +% \end{environment}^^A figurehere +% \begin{environment}{farbtabellen} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\if@tud@comp@graytable} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\blautabelle} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\grautabelle} +% \changes{v2.05}{2016/04/17}{neu}^^A +% Außerdem wird eine Umgebung für farbige Tabellen sowie zwei Umschaltbefehle +% für die farbliche Ausprägung der Tabellenzeilen definiert. +% \begin{macrocode} +\PassOptionsToPackage{table}{xcolor} +\tud@newif\if@tud@comp@graytable +\newcommand*\blautabelle{\@tud@comp@graytablefalse} +\newcommand*\grautabelle{\@tud@comp@graytabletrue} +\newenvironment{farbtabellen}{% + \if@tud@comp@graytable% + \rowcolors{1}{HKS92!20}{HKS92!10}% + \else% + \rowcolors{1}{HKS41!20}{HKS41!10}% + \fi% +}{} +% \end{macrocode} +% \end{macro}^^A \grautabelle +% \end{macro}^^A \blautabelle +% \end{macro}^^A \if@tud@comp@graytable +% \end{environment}^^A farbtabellen % % \iffalse % %<*option> % \fi % +% \begin{macro}{\schnittrand} +% \changes{v2.05}{2016/04/17}{neu}^^A +% Zu guter Letzt geht es an das Makro \cs{schnittrand}. Zur Intension dieses +% Befehls gab es auf \hrfn{https://github.com/tud-cd/tud-cd/issues/6}{GitHub} +% bereits eine angeregte Diskussion. Deshalb wird das Makro als Wertzuweisung +% für die Option \opt{bleedmargin} genutzt. +% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] +% \begin{macrocode} +\ifundef{\schnittrand}{}{% + \Ifisdimension{\schnittrand}{% + \edef\@tempa{% + paperwidth=\the\dimexpr\glueexpr\paperwidth+\schnittrand*2\relax\relax,% + paperheight=\the\dimexpr\glueexpr\paperheight+\schnittrand*2\relax\relax,% + layout=\the\paperwidth:\the\paperheight,% + layoutoffset=\the\dimexpr\glueexpr\schnittrand\relax\relax,% + showcrop% + }% + \expandafter\geometry\expandafter{\@tempa}% + }{% + \PackageErrorNoLine{tudscrcomp}{% + Wrong definition for `\string\schnittrand'% + }{% + The definition of `\string\schnittrand' does not expand to\MessageBreak% + a valid dimension expression.% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \schnittrand % \begin{option}{tudmathposterfoot} % \changes{v2.05}{2016/04/17}{neu}^^A % \begin{macro}{\if@tud@mathposterfoot} @@ -1714,9 +1817,30 @@ %<*body> % \fi % +% \begin{macro}{\fusszeile} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\footcolumn} +% \changes{v2.05}{2016/04/17}{neu}^^A % \begin{macro}{\tud@footcontent@use} % \begin{macro}{\tud@comp@mathposterwidth@dim} % \changes{v2.05}{2016/04/17}{neu}^^A +% Mit diesen Befehlen lässt sich der Inhalt des Fußbereiches angepassen. Wird +% in einem und/oder beiden Argumente von \cs{footcontent} ein Stern \val{*} +% verwendet, so bleibt der bisherige Inhalt erhalten. +% \begin{macrocode} +\newcommand*\fusszeile[2][]{\footcontent[{#1}]{#2}} +\newcommand*\footcolumn[2]{% + \Ifnumber{#1}{% + \ifcase#1\relax% + \footcontent{#2}% + \or% + \footcontent{#2}[*]% + \or% + \footcontent{*}[{#2}]% + \fi% + }{}% +} +% \end{macrocode} % Um die Option \opt{tudmathposterfoot} umzusetzen, muss für die Ausgabe des % Fußbereichs eine Anpassung des Makros \cs{tud@footcontent@use} erfolgen. % Normalerweise wird der Fußbereich in zwei gleichbreite Spalten über die @@ -1757,123 +1881,8 @@ % \end{macrocode} % \end{macro}^^A \tud@comp@mathposterwidth@dim % \end{macro}^^A \tud@footcontent@use -% \begin{environment}{figurehere} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{environment}{tablehere} -% \changes{v2.05}{2016/04/17}{neu}^^A -% Weiterhin stellt die Klasse \cls{tudmathposter} zwei Umgebungen bereit, mit -% denen sich Tabellen und Bilder an einer bestimmten Stelle exakt platzieren -% lassen. Prinzipiell könnte hierfür auch das Paket \pkg{float} zum Einsatz -% kommen. -% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] -% \begin{macrocode} -\newenvironment{figurehere}{% - \def\@captype{figure}% - \renewcommand*\caption{\captionof{figure}}% - \renewcommand*\captionabove{\captionaboveof{figure}}% - \renewcommand*\captionbelow{\captionbelowof{figure}}% - \vskip\intextsep% - \vbox \bgroup% - \hsize=\columnwidth% - \@parboxrestore% - \ignorespaces% -}{% - \egroup% - \vskip\intextsep% - \ignorespaces% -} -\newenvironment{tablehere}{% - \def\@captype{table}% - \renewcommand*\caption{\captionof{table}}% - \renewcommand*\captionabove{\captionaboveof{table}}% - \renewcommand*\captionbelow{\captionbelowof{table}}% - \vskip\intextsep% - \vbox \bgroup% - \hsize=\columnwidth% - \@parboxrestore% - \ignorespaces% -}{% - \egroup% - \vskip\intextsep% - \ignorespaces% -} -% \end{macrocode} -% \end{environment}^^A tablehere -% \end{environment}^^A figurehere -% \begin{environment}{farbtabellen} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\if@tud@comp@graytable} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\blautabelle} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\grautabelle} -% \changes{v2.05}{2016/04/17}{neu}^^A -% Außerdem wird eine Umgebung für farbige Tabellen sowie zwei Umschaltbefehle -% für die farbliche Ausprägung der Tabellenzeilen definiert. -% \begin{macrocode} -\PassOptionsToPackage{table}{xcolor} -\tud@newif\if@tud@comp@graytable -\newcommand*\blautabelle{\@tud@comp@graytablefalse} -\newcommand*\grautabelle{\@tud@comp@graytabletrue} -\newenvironment{farbtabellen}{% - \if@tud@comp@graytable% - \rowcolors{1}{HKS92!20}{HKS92!10}% - \else% - \rowcolors{1}{HKS41!20}{HKS41!10}% - \fi% -}{} -% \end{macrocode} -% \end{macro}^^A \grautabelle -% \end{macro}^^A \blautabelle -% \end{macro}^^A \if@tud@comp@graytable -% \end{environment}^^A farbtabellen -% \begin{macro}{\schnittrand} -% \changes{v2.05}{2016/04/17}{neu}^^A -% Zu guter Letzt geht es an das Makro \cs{schnittrand}. Zur Intension dieses -% Befehls gab es auf \hrfn{https://github.com/tud-cd/tud-cd/issues/6}{GitHub} -% bereits eine angeregte Diskussion. Deshalb wird das Makro als Wertzuweisung -% für die Option \opt{bleedmargin} genutzt. -% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] -% \begin{macrocode} -\ifundef{\schnittrand}{}{% - \Ifisdimension{\schnittrand}{% - \edef\@tempa{% - paperwidth=\the\dimexpr\glueexpr\paperwidth+\schnittrand*2\relax\relax,% - paperheight=\the\dimexpr\glueexpr\paperheight+\schnittrand*2\relax\relax,% - layout=\the\paperwidth:\the\paperheight,% - layoutoffset=\the\dimexpr\glueexpr\schnittrand\relax\relax,% - showcrop% - }% - \expandafter\geometry\expandafter{\@tempa}% - }{% - \PackageErrorNoLine{tudscrcomp}{% - Wrong definition for `\string\schnittrand'% - }{% - The definition of `\string\schnittrand' does not expand to\MessageBreak% - a valid dimension expression.% - }% - }% -}% -% \end{macrocode} -% \end{macro}^^A \schnittrand -% -% Die Klasse \cls{tudmathposter} lädt allerhand Pakete. Dies ist jedoch für den -% Anwender alles andere als vorteilhaft, da dadurch unter Umständen Konflikte -% mit anderen Paketen entstehen oder der Nutzer im Zweifelsfall gar nicht weiß, -% dass verwendete Befehle aus bestimmten Paketen entspringen. Dennoch werden -% aus Kompatibilitätsgründen einige Pakete geladen, um bestehende Dokumente -% trotz alledem nach der Portierung kompiliert werden können. Um den Nutzer die -% Möglichkeit zu geben, die Pakete selber ggf. mit Optionen zu laden, erfolgt -% die Anforderung der Pakete erst am ende der Präambel. -% \begin{macrocode} -\AtEndPreamble{% - \RequirePackage{amsmath}[2016/06/28]% - \RequirePackage{amsfonts}[2013/01/14]% - \RequirePackage{calc}[2014/10/28]% - \RequirePackage{textcomp}[2016/06/19]% - \RequirePackage{tabularx}[2016/02/03]% -} -% \end{macrocode} +% \end{macro}^^A \footcolumn +% \end{macro}^^A \fusszeile % % \iffalse % diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 0e24e620..a6cd8f57 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -147,9 +147,9 @@ \@for\@tempa:={% tudbook,tudbeamer,tudfax,tudform,tudhaus,tudletter,tudposter,tudmathposter% }\do{% - \@ifclassloaded{\@tempa}{% - \if@tempswa\else\@tempswatrue\let\@tempb\@tempa\fi% - }{}% + \if@tempswa\else + \@ifclassloaded{\@tempa}{\@tempswatrue\let\@tempb\@tempa}{}% + \fi }% \if@tempswa% \@ifpackageloaded{fix-tudscrfonts}{}{% @@ -282,10 +282,6 @@ % Dokumente mit den Schriften \Univers und \DIN nutzen zu können, werden die % entsprechenden Befehle ebenfalls vorgehalten. % -% \begin{macro}{\if@tud@cdfont@fam@exist} -% \changes{v2.06}{2018/07/12}{neu}^^A -% \begin{macro}{\if@tud@cdfont@db@exist} -% \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\tud@cdfont@fam} % \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\tud@cdfont@fam@lf} @@ -295,8 +291,6 @@ % \begin{macro}{\tud@cdfont@db} % Zu Beginn werden Schalter und Hilfsmakros sowohl für den Fließtext\dots % \begin{macrocode} -\tud@newif\if@tud@cdfont@fam@exist -\tud@newif\if@tud@cdfont@db@exist \newcommand*\tud@cdfont@fam{opensans-TLF} \newcommand*\tud@cdfont@fam@lf{opensans-TLF} \newcommand*\tud@cdfont@fam@osf{opensans-TOsF} @@ -311,8 +305,6 @@ % \end{macro}^^A \tud@cdfont@fam@osf % \end{macro}^^A \tud@cdfont@fam@lf % \end{macro}^^A \tud@cdfont@fam -% \end{macro}^^A \if@tud@cdfont@db@exist -% \end{macro}^^A \if@tud@cdfont@fam@exist % \begin{macro}{\tud@ttfont@fam} % \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\tud@ttfont@rb} @@ -351,6 +343,12 @@ % \changes{v2.06b}{2019/07/17}{Verwendung von \cs{tud@if@fdfileexists}}^^A % \begin{macro}{\tud@cdfont@missing} % \changes{v2.05l}{2017/03/29}{neu}^^A +% \begin{macro}{\if@tud@cdfont@fam@exist} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\if@tud@cdfont@db@exist} +% \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\tud@x@mathastext@enc} +% \changes{v2.06a}{2019/07/09}{neu}^^A % Mit \cs{tud@cdfont@check} wird geprüft, ob die Schrift \OpenSans respektive % die veralteten Schriften \Univers und \DIN im OTF-Format respektive im % Type1-Format vorhanden sind. Die Schriftschnitte der \OpenSans werden für @@ -359,6 +357,9 @@ % Nichtvorhandensein der Schriften wird eine Warnung ausgegeben sowie eine % Rückfallebene definiert. % \begin{macrocode} +\tud@newif\if@tud@cdfont@fam@exist +\tud@newif\if@tud@cdfont@db@exist +\newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdfont@check{% \if@tud@cdoldfont@active% \tud@cdfont@@check{Univers}{% @@ -394,6 +395,23 @@ Light,Regular,SemiBold,Bold,ExtraBold,% LightItalic,Italic,SemiBoldItalic,BoldItalic,ExtraBoldItalic% }{\tud@cdfont@fam@lf,\tud@cdfont@fam@osf}{@tud@cdfont@fam@exist}% +% \end{macrocode} +% Für \OpenSans wird mangels der Kodierungen \val{OML}, \val{OMS} und \val{OMX} +% im Paket \pkg{opensans} zur Deklaration der Mathematikversionen der Befehl +% \cs{MTDeclareVersion} aus dem Paket \pkg{mathastext} genutzt. Dabei wird die +% Kodierung der Mathematikschriften identisch zur genutzten Eingabekodierung +% für den Text gesetzt, da diese in der Version \val{v1.3t} nicht problemfrei +% unabhängig davon gewählt werden kann. Sämtliche fehlenden Kodierungen werden +% notdürftig mit dem Paket \pkg{iwona} definiert. Zur Definition griechischer +% Glyphen wird die LGR-Kodierung der \OpenSans genutzt. +% \begin{macrocode} + \edef\tud@res@b{\encodingdefault}% + \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% + \ifx\tud@res@a\tud@res@b% + \let\tud@x@mathastext@enc\tud@res@b% + \@break@tfor + \fi% + }% \fi% } % \end{macrocode} @@ -582,120 +600,14 @@ \endgroup% } % \end{macrocode} +% \end{macro}^^A \tud@x@mathastext@enc +% \end{macro}^^A \if@tud@cdfont@db@exist +% \end{macro}^^A \if@tud@cdfont@fam@exist % \end{macro}^^A \tud@cdfont@missing % \end{macro}^^A \tud@cdfont@@@check % \end{macro}^^A \tud@cdfont@@check % \end{macro}^^A \tud@cdfont@check % -% \subsection{Kompatibilität der Schriften} -% \subsubsection{Majuskel-ß für Unicode-Prozessoren} -% -% Es wird für die Majuskelvariante der Glyphe \enquote*{ß} eine Rückfallebene -% (Substitution mit \enquote*{SS}) definiert, da diese für Unicode-Engines -% standardmäßig nicht bereitgestellt wird. Um diese zu erkennen, wird auf die -% gleiche Methodik wie im Paket \pkg{newunicodechar} zurückgegriffen. -% \begin{macrocode} -\begingroup -\catcode`\^=7 -\catcode30=12 -\catcode`\!=12 -\edef\tud@reserved{\@gobble^^^^0021} -\expandafter\endgroup -% \end{macrocode} -% Wurde eine Unicode-Engine erkannt (|^^^^0021| wird als ein Token gelesen), -% dann werden die Kodierungen für kleines und großes \enquote*{ß} dahingehend -% angepasst, dass diese \enquote*{ss} bzw. \enquote*{SS} verwenden, wenn die -% entsprechende Glyphe nicht vorhanden ist. -% \begin{macrocode} -\ifx\tud@reserved\@empty\relax - \RequirePackage{newunicodechar}[2012/11/12]% - \uccode"00DF="1E9E% - \lccode"1E9E="00DF% - \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi}% - \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi}% -\fi -% \end{macrocode} -% -% \subsubsection{Ausrichtung von Überschriften und das Paket \pkg{ragged2e}} -% -% \begin{macro}{\tud@raggedright} -% \begin{macro}{\tud@RaggedRight} -% Die Überschriften sollen laut \CD linksbündig und ohne Silbentrennung gesetzt -% werden. Normalerweise ist das dies beim linksbündigen Satz bei \LaTeX{} der -% Fall. Allerdings ist es mit dem Paket \pkg{ragged2e} möglich, das Verhalten -% für den Flattersatz zu ändern und die Silbentrennung zu aktivieren. Mit der -% Option \opt{newcommands} werden dabei die originalen Befehle überschrieben, -% vorher jedoch beispielsweise in \cs{LaTeXraggedright} gesichert. Diese Makros -% dienen dazu, die Überschriften in jedem Fall~-- auch bei der Verwendung von -% \pkg{ragged2e} mit der Option \opt{newcommands}~-- ohne Trennungen zu setzen. -% \begin{macrocode} -\newcommand*\tud@raggedright{\raggedright} -\newcommand*\tud@RaggedRight{\raggedright} -\AfterPackage*{ragged2e}{% - \ifundef{\LaTeXraggedright}{}{% - \renewcommand*\tud@raggedright{\LaTeXraggedright}% - }% - \renewcommand*\tud@RaggedRight{\RaggedRight}% -} -% \end{macrocode} -% \end{macro}^^A \tud@RaggedRight -% \end{macro}^^A \tud@raggedright -% -% \subsubsection{Anpassungen für das Paket \pkg{siunitx}} -% -% \begin{macro}{\lseries} -% \begin{macro}{\if@tud@x@siunitx@enabled} -% \changes{v2.05m}{2017/05/29}{neu} -% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für -% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier -% Rechnung getragen. Außerdem muss bei der Auswahl der Schriften evtl. auf das -% Paket reagiert werden, weil es sich bei der Definition der Schriften für den -% Mathematikmodus auf \cs{familydefault} bzw. \cs{rmfamily} verlässt. -% \begin{macrocode} -\tud@newif\if@tud@x@siunitx@enabled -\AfterAtEndOfPackage*{siunitx}{% - \@tud@x@siunitx@enabledtrue% - \providecommand*\lseries{\fontseries{l}\selectfont}% -} -% \end{macrocode} -% \end{macro}^^A \if@tud@x@siunitx@enabled -% \end{macro}^^A \lseries -% -% \subsubsection{Anpassungen für die Klasse \cls{beamer}} -% -% Die \cls{beamer}-Klasse lädt standardmäßig serifenlose Mathematikschriften. -% Dies soll verhindert werden, damit die Auswahl über die Option \opt{cdmath} -% erfolgen kann. -% \begin{macrocode} -%<*package> -\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}} -% -% \end{macrocode} -% -% \subsubsection{Mathematikschriften in Verbindung mit dem Paket \pkg{bm}} -% -% \begin{macro}{\if@tud@x@bm@requested} -% Das Paket \pkg{bm} stellt den Befehl \cs{bm} für fette und kursive Symbole im -% Mathematiksatz bereit. Damit dies funktioniert, muss das Laden des Paketes -% auf das Ende der Präambel verzögert werden, um zuvor alle Einstellungen für -% die mathematischen Symbole vornehmen zu können. -% \begin{macrocode} -\tud@newif\if@tud@x@bm@requested -%<*package> -\@ifpackageloaded{bm}{% - \PackageWarning{tudscrfonts}{% - Package `bm' must be loaded after `tudscrfonts'. \MessageBreak% - Otherwise the functionality can not be guaranteed% - }% -}{% -% -\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} -%<*package> -} -% -% \end{macrocode} -% \end{macro}^^A \if@tud@x@bm@requested -% % \iffalse % %<*option> @@ -1254,16 +1166,6 @@ \tud@cs@store{ttfamily}% \fi% % \end{macrocode} -% Zunächst werden die Standardwerte für die Schriftfamilien gesetzt. -% \begin{macrocode} - \renewcommand*\rmdefault{\sfdefault}% - \renewcommand*\updefault{n}% - \renewcommand*\itdefault{it}% - \renewcommand*\sldefault{sl}% - \renewcommand*\familydefault{\sfdefault}% - \renewcommand*\seriesdefault{\mddefault}% - \renewcommand*\shapedefault{\updefault}% -% \end{macrocode} % Danach erfolgt die Definition der Schriften des \CDs. % \begin{macrocode} \tud@cdfont@set% @@ -1356,6 +1258,16 @@ % Hiermit erfolgt die eigentliche Auswahl der Schriftfamilien für das \CD. % \begin{macrocode} \newcommand*\tud@cdfont@set{% +% \end{macrocode} +% Zunächst werden die Standardwerte für die Schriftfamilien gesetzt. +% \begin{macrocode} + \renewcommand*\rmdefault{\sfdefault}% + \renewcommand*\updefault{n}% + \renewcommand*\itdefault{it}% + \renewcommand*\sldefault{sl}% + \renewcommand*\familydefault{\sfdefault}% + \renewcommand*\seriesdefault{\mddefault}% + \renewcommand*\shapedefault{\updefault}% \if@tud@cdfont@fam@exist% \if@tud@cdfont@lining% \let\tud@cdfont@fam\tud@cdfont@fam@lf% @@ -1564,20 +1476,20 @@ % wiederhergestellt oder gesichert und neu definiert. % \begin{macrocode} \if@tud@relspacing% - \tud@skip@store{smallskipamount}% - \tud@skip@store{medskipamount}% - \tud@skip@store{bigskipamount}% - \tud@skip@store{abovecaptionskip}% - \tud@skip@store{belowcaptionskip}% - \tud@skip@store{columnsep}% + \tud@cslength@store{smallskipamount}% + \tud@cslength@store{medskipamount}% + \tud@cslength@store{bigskipamount}% + \tud@cslength@store{abovecaptionskip}% + \tud@cslength@store{belowcaptionskip}% + \tud@cslength@store{columnsep}% \tud@font@skip@@set% \else% - \tud@skip@restore{smallskipamount}% - \tud@skip@restore{medskipamount}% - \tud@skip@restore{bigskipamount}% - \tud@skip@restore{abovecaptionskip}% - \tud@skip@restore{belowcaptionskip}% - \tud@skip@restore{columnsep}% + \tud@cslength@restore{smallskipamount}% + \tud@cslength@restore{medskipamount}% + \tud@cslength@restore{bigskipamount}% + \tud@cslength@restore{abovecaptionskip}% + \tud@cslength@restore{belowcaptionskip}% + \tud@cslength@restore{columnsep}% \fi% } % \end{macrocode} @@ -2009,8 +1921,6 @@ % \end{macro}^^A \tud@cdfont@fallback % \begin{macro}{\cdfont} % \changes{v2.04}{2015/03/04}{neu}^^A -% \begin{macro}{\tudfont} -% \changes{v2.04}{2015/04/24}{\cls{tudmathposter} wird unterstützt}^^A % \begin{macro}{\textcd} % \changes{v2.04}{2015/03/04}{neu}^^A % \begin{macro}{\tud@cdfont@get} @@ -2025,8 +1935,7 @@ % \cs{tudfont}, mit welchem die Schriften des \TUDCDs auch mit Klarnamen % ausgewählt werden können. Zur Kompatibilität wird der Befehl \cs{cdfont} % definiert, welcher die gleiche Funktionalität bereitstellt. Zusätzlich wird -% der Befehl \cs{textcd} bereitgestellt, der die Auswahl der Schrift als -% Textbefehl ermöglicht. +% mit \cs{textcd} die Auswahl der Schrift über einen Textbefehl ermöglicht. % \begin{macrocode} \newcommand*\cdfont[1]{% \tud@cdfont@get{#1}% @@ -2126,9 +2035,9 @@ \tud@cdfont@@trim{light}{l}% \tud@cdfont@@trim{regular}{r}% \tud@cdfont@@trim{book}{r}% - \tud@cdfont@@trim{semibold}{s}% + \tud@cdfont@@trim{semi}{s}% \tud@cdfont@@trim{demi}{s}% - \tud@cdfont@@trim{extrabold}{x}% + \tud@cdfont@@trim{extra}{x}% \tud@cdfont@@trim{black}{x}% \tud@cdfont@@trim{bold}{b}% \tud@cdfont@@trim{italic}{i}% @@ -2174,7 +2083,6 @@ % \end{macro}^^A \tud@cdfont@trim % \end{macro}^^A \tud@cdfont@get % \end{macro}^^A \textcd -% \end{macro}^^A \tudfont % \end{macro}^^A \cdfont % % \iffalse @@ -2880,11 +2788,7 @@ }% }% \@tud@res@swafalse% - \ifcsdef{upalpha}{% - \ifx\upalpha\alpha% - \@tud@res@swatrue% - \fi% - }{}% + \ifundef{\upalpha}{}{\ifx\upalpha\alpha\@tud@res@swatrue\fi}% % \end{macrocode} % Existiert \cs{upalpha} und ist mit \cs{alpha} identisch, werden \emph{alle} % griechischen Lettern aufrecht gesetzt. @@ -2895,21 +2799,18 @@ % \end{macrocode} % Existiert \cs{itGamma} und ist mit \cs{Gamma} identisch oder\dots % \begin{macrocode} - \ifcsdef{itGamma}{% - \ifx\itGamma\Gamma% - \@tud@res@swatrue% - \fi% - }{% + \ifundef{\itGamma}{}{\ifx\itGamma\Gamma\@tud@res@swatrue\fi}% % \end{macrocode} % \dots\cs{Gamma} entspricht einer kursiven Standarddefnition, \dots % \begin{macrocode} + \if@tud@res@swa\else% \let\tud@res@a\relax% \let\tud@res@b\relax% \DeclareMathSymbol{\tud@res@a}{\mathalpha}{letters}{0}% \DeclareMathSymbol{\tud@res@b}{\mathord}{letters}{0}% - \ifx\Gamma\tud@res@a\relax\@tud@res@swatrue\fi% - \ifx\Gamma\tud@res@b\relax\@tud@res@swatrue\fi% - }% + \ifx\Gamma\tud@res@a\@tud@res@swatrue\fi% + \ifx\Gamma\tud@res@b\@tud@res@swatrue\fi% + \fi% % \end{macrocode} % \dots werden \emph{alle} griechischen Lettern kursiv gesetzt. % \begin{macrocode} @@ -2924,11 +2825,9 @@ % \end{macro}^^A \tud@math@checkslanted@greeks % \begin{macro}{\tud@cdmath@init} % \changes{v2.06}{2018/07/02}{neu}^^A +% \changes{v2.06a}{2019/07/09}{Bugfix für \pkg{mathastext} Eingabekodierung}^^A % \begin{macro}{\tud@cdmath@@init} % \changes{v2.06}{2018/07/02}{neu}^^A -% \changes{v2.06a}{2019/07/09}{Bugfix für \pkg{mathastext} Eingabekodierung}^^A -% \begin{macro}{\tud@x@mathastext@enc} -% \changes{v2.06a}{2019/07/09}{neu}^^A % \begin{macro}{\mv@tudnormal} % \begin{macro}{\mv@tudbold} % \begin{macro}{\mv@tuddin} @@ -2946,45 +2845,6 @@ \newcommand*\mv@tudbold{} \newcommand*\mv@tuddin{} % \end{macrocode} -% Um das Umschalten der Mathematikversion mit \cs{mathversion} auch nutzen zu -% können, wenn \pkg{mathastext} für die Schriften des \CDs aktiv ist, wird ein -% Wrappermakro benötigt, welches im Bedarfsfall\cs{MTversion*} aufruft. Hierfür -% wird zunächst auf die gewünschte Mathematikversion, danach der originale -% Befehl \cs{mathversion} wiederhergestellt, aufgerufen und anschließend wieder -% auf das Wrappermakro \cs{tud@mathversion} zurückgesetzt. -% \begin{macrocode} -\AfterPackage*{mathastext}{% - \newrobustcmd*\tud@mathversion[1]{% - \begingroup% - \let\tud@res@a\relax% - \if@tud@cdmath@active% - \Ifstr{#1}{normal}{% - \def\tud@res@a{tudnormal}% - }{% - \Ifstr{#1}{bold}{% - \def\tud@res@a{tudbold}% - }{}% - }% - \fi% - \edef\tud@res@a{% - \endgroup% - \noexpand\tud@cs@restore{mathversion}% - \ifx\tud@res@a\relax% - \noexpand\mathversion{#1}% - \else% - \noexpand\MTversion*{\tud@res@a}% - \fi% - \noexpand\tud@cs@store{mathversion}% - \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% - }% - \tud@res@a% - }% - \AtEndPreamble{% - \tud@cs@store{mathversion}% - \tud@cs@letltx{mathversion}{tud@mathversion}% - }% -} -% \end{macrocode} % Mit \cs{tud@cdmath@init} werden für den Mathematikmodus die Schriften im % \CD deklariert. % \begin{macrocode} @@ -3111,7 +2971,6 @@ % Mit \cs{tud@cdmath@@init} werden die notwendigen Mathematikversionen und die % dazugehörigen Symbolschriften sowie Alphabete deklariert. % \begin{macrocode} -\newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdmath@@init[2]{% % \end{macrocode} % Mit \cs{tud@cdfont@@set} werden die Schriftstärken gemäß den ausgewählten @@ -3152,22 +3011,11 @@ }{}% \else% % \end{macrocode} -% Für \OpenSans wird mangels der Kodierungen \val{OML}, \val{OMS} und \val{OMX} -% im Paket \pkg{opensans} zur Deklaration der Mathematikversionen der Befehl -% \cs{MTDeclareVersion} aus dem Paket \pkg{mathastext} genutzt. Dabei wird die -% Kodierung der Mathematikschriften identisch zur genutzten Eingabekodierung -% für den Text gesetzt, da diese in der Version \val{v1.3t} nicht problemfrei -% unabhängig davon gewählt werden kann. Sämtliche fehlenden Kodierungen werden -% notdürftig mit dem Paket \pkg{iwona} definiert. Zur Definition griechischer -% Glyphen wird die LGR-Kodierung der \OpenSans genutzt. +% Für \OpenSans werden für die fehlenden Kodierungen \val{OML}, \val{OMS} und +% \val{OMX} die entsprechenden Symbolschriften eher notdürftig mit dem Paket +% \pkg{iwona} definiert. Zur Definition der griechischen Lettern wird die +% LGR-Kodierung der \OpenSans genutzt. % \begin{macrocode} - \edef\tud@res@b{\encodingdefault}% - \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% - \ifx\tud@res@a\tud@res@b% - \let\tud@x@mathastext@enc\tud@res@b% - \@break@tfor - \fi% - }% \MTDeclareVersion[it]{tudnormal}% {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}% \MTDeclareVersion[it]{tudbold}% @@ -3303,13 +3151,51 @@ }% } % \end{macrocode} +% Um das Umschalten der Mathematikversion mit \cs{mathversion} auch nutzen zu +% können, wenn \pkg{mathastext} für die Schriften des \CDs aktiv ist, wird ein +% Wrappermakro benötigt, welches im Bedarfsfall\cs{MTversion*} aufruft. Hierfür +% wird zunächst auf die gewünschte Mathematikversion, danach der originale +% Befehl \cs{mathversion} wiederhergestellt, aufgerufen und anschließend wieder +% auf das Wrappermakro \cs{tud@mathversion} zurückgesetzt. +% \begin{macrocode} +\AfterPackage*{mathastext}{% + \newrobustcmd*\tud@mathversion[1]{% + \begingroup% + \let\tud@res@a\relax% + \if@tud@cdmath@active% + \Ifstr{#1}{normal}{% + \def\tud@res@a{tudnormal}% + }{% + \Ifstr{#1}{bold}{% + \def\tud@res@a{tudbold}% + }{}% + }% + \fi% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@cs@restore{mathversion}% + \ifx\tud@res@a\relax% + \noexpand\mathversion{#1}% + \else% + \noexpand\MTversion*{\tud@res@a}% + \fi% + \noexpand\tud@cs@store{mathversion}% + \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% + }% + \tud@res@a% + }% + \AtEndPreamble{% + \tud@cs@store{mathversion}% + \tud@cs@letltx{mathversion}{tud@mathversion}% + }% +} +% \end{macrocode} % \end{macro}^^A \MTversion@@ % \end{macro}^^A \MTDeclareVersion % \end{macro}^^A \tud@mathversion % \end{macro}^^A \mv@tuddin % \end{macro}^^A \mv@tudbold % \end{macro}^^A \mv@tudnormal -% \end{macro}^^A \tud@x@mathastext@enc % \end{macro}^^A \tud@cdmath@@init % \end{macro}^^A \tud@cdmath@init % \begin{macro}{\tud@cdmath@declare@symb} @@ -3698,110 +3584,6 @@ % \end{macrocode} % \end{macro}^^A \tud@math@slanted@greeks % \end{macro}^^A \tud@math@upright@greeks -% Sämtliche Schrifteinstellungen erfolgen erst am Ende der Präambel, um etwaige -% Einstellungen irgendwelcher Schriftpakete beachten zu können. Dabei erfolgt -% das Setzen der Mathematikschriften durch \cs{AtBeginDocument} innerhalb von -% \cs{AtEndPreamble} am Ende \emph{aller} \cs{AtBeginDocument}. -% \ToDo{das passt mit den neuen hooks so nicht mehr unbedingt}[v2.07] -% \begin{macrocode} -\AtEndPreamble{% -% \end{macrocode} -% Falls das Paket \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom -% Paket erwarteten Makros für die Schriftstärken der einzelnen Schriftfamilien -% definiert. Beim Aufruf von \cs{tud@font@set} werden diese anschließend -% gesichert. -% \begin{macrocode} - \if@tud@x@mweights@enabled% - \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% - \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% - \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% - \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% - \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% - \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% - \fi% -% \end{macrocode} -% Hier wird auf das Vorhandensein aller benötigten Schriften geprüft. -% \begin{macrocode} - \tud@cdfont@check% -% \end{macrocode} -% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen -% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten. -% \begin{macrocode} -% \ifdef{\sectfont}{}{\let\sectfont\relax}% -% \end{macrocode} -% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und -% die dazugehörigen Befehle definiert. Auch die mathematischen Schriften werden -% initialisiert. -% \begin{macrocode} - \tud@cdfont@init% - \tud@ttfont@init% - \tud@cdmath@init% -% \end{macrocode} -% Die Einstellungen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um -% auf Einstellungen von anderen Schriftpaketen reagieren zu können. Da es -% so gut wie keine freien OpenType-Schriften für den mathmatischen Formelsatz -% gibt, werden \emph{immer} die Type1-Schriften verwendet, falls diese -% installiert sind. Wurde jedoch das Paket \pkg{bm} angefordert, so müssen die -% Mathematikschriften spätestens zum Ende der Präambel initialisiert werden. -% \begin{macrocode} - \if@tud@x@bm@requested% - \UnPreventPackageFromLoading{bm}% - \if@tud@cdmath@active% - \tud@cs@store{mv@normal}% - \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% - \fi% - \RequirePackage{bm}[2017/01/16]% - \tud@cs@restore{mv@normal}% - \tud@cs@restore{mv@bold}% - \fi% -% \end{macrocode} -% Wurde das Paket \pkg{siunitx} geladen, so werden die Schrifteinstellungen -% mit \opt{cdfont}|=|\val{false} deaktiviert und zu Beginn des Dokumentes -% auf die aktuelle Einstellung gesetzt. -% \begin{macrocode} - \if@tud@x@siunitx@enabled% - \if@tud@cdfont@active% - \if@tud@cdfont@heavy% - \def\tud@reserved{\TUDoptions{cdfont=heavy}}% - \else% - \def\tud@reserved{\TUDoptions{cdfont=true}}% - \fi% - \else% - \def\tud@reserved{\TUDoptions{cdfont=false}}% - \fi% - \expandafter\AfterEndPreamble\expandafter{\tud@reserved}% - \TUDoptions{cdfont=false}% - \fi% -% \end{macrocode} -% Damit die Schrift im Dokument später noch umgestellt werden kann, werden -% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird -% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal -% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie -% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu -% aktivieren. -% \begin{macrocode} - \tud@font@set% -% \end{macrocode} -% Bereitstellung der Auswahlbefehle für griechische Glyphen in der Nomenklatur -% von \TUDScript (|\up|\meta{Letter}, |\it|\meta{Letter}). -% \begin{macrocode} - \tud@math@map@greeks% -% \end{macrocode} -% Für die griechischen Glyphen wird mit \cs{tud@math@checkslanted@greeks} -% geprüft, ob diese durch ein Paket explizit auf kursive Majuskeln oder eine -% vollständig aufrechte Variante gesetzt wurden. Ist dies der Fall, wird der -% Standardwert für die Option \opt{slantedgreek} entsprechend angepasst. -% \begin{macrocode} - \tud@math@checkslanted@greeks% -% \end{macrocode} -% Nachdem alle Vorbereitungen getroffen wurden, werden die Schriften für den -% mathematischen Satz nun endlich gesetzt. -% \begin{macrocode} - \AtBeginDocument{\tud@math@set}% -} -% \end{macrocode} % % \iffalse %<*class> @@ -3943,6 +3725,243 @@ % % \iffalse % +% \fi +% +% \subsection{Kompatibilität der Schriften} +% \subsubsection{Majuskel-ß für Unicode-Prozessoren} +% +% Es wird für die Majuskelvariante der Glyphe \enquote*{ß} eine Rückfallebene +% (Substitution mit \enquote*{SS}) definiert, da diese für Unicode-Engines +% standardmäßig nicht bereitgestellt wird. Um diese zu erkennen, wird auf die +% gleiche Methodik wie im Paket \pkg{newunicodechar} zurückgegriffen. +% \begin{macrocode} +\begingroup +\catcode`\^=7 +\catcode30=12 +\catcode`\!=12 +\edef\tud@reserved{\@gobble^^^^0021} +\expandafter\endgroup +% \end{macrocode} +% Wurde eine Unicode-Engine erkannt (|^^^^0021| wird als ein Token gelesen), +% dann werden die Kodierungen für kleines und großes \enquote*{ß} dahingehend +% angepasst, dass diese \enquote*{ss} bzw. \enquote*{SS} verwenden, wenn die +% entsprechende Glyphe nicht vorhanden ist. +% \begin{macrocode} +\ifx\tud@reserved\@empty + \RequirePackage{newunicodechar}[2012/11/12] + \uccode"00DF="1E9E + \lccode"1E9E="00DF + \newunicodechar{^^^^00df}{\iffontchar\font"00DF \symbol{"00DF}\else ss\fi} + \newunicodechar{^^^^1e9e}{\iffontchar\font"1E9E \symbol{"1E9E}\else SS\fi} +\fi +% \end{macrocode} +% +% \subsubsection{Ausrichtung von Überschriften und das Paket \pkg{ragged2e}} +% +% \begin{macro}{\tud@raggedright} +% \begin{macro}{\tud@RaggedRight} +% Die Überschriften sollen laut \CD linksbündig und ohne Silbentrennung gesetzt +% werden. Normalerweise ist das dies beim linksbündigen Satz bei \LaTeX{} der +% Fall. Allerdings ist es mit dem Paket \pkg{ragged2e} möglich, das Verhalten +% für den Flattersatz zu ändern und die Silbentrennung zu aktivieren. Mit der +% Option \opt{newcommands} werden dabei die originalen Befehle überschrieben, +% vorher jedoch beispielsweise in \cs{LaTeXraggedright} gesichert. Diese Makros +% dienen dazu, die Überschriften in jedem Fall~-- auch bei der Verwendung von +% \pkg{ragged2e} mit der Option \opt{newcommands}~-- ohne Trennungen zu setzen. +% \begin{macrocode} +\newcommand*\tud@raggedright{\raggedright} +\newcommand*\tud@RaggedRight{\raggedright} +\AfterPackage*{ragged2e}{% + \ifundef{\LaTeXraggedright}{}{% + \renewcommand*\tud@raggedright{\LaTeXraggedright}% + }% + \renewcommand*\tud@RaggedRight{\RaggedRight}% +} +% \end{macrocode} +% \end{macro}^^A \tud@RaggedRight +% \end{macro}^^A \tud@raggedright +% +% \subsubsection{Anpassungen für das Paket \pkg{siunitx}} +% +% \begin{macro}{\lseries} +% \begin{macro}{\tud@x@siunitx@reset} +% \changes{v2.06o}{2022/07/31}{neu} +% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für +% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier +% Rechnung getragen. Außerdem muss bei der Auswahl der Schriften evtl. auf das +% Paket reagiert werden, weil es sich bei der Definition der Schriften für den +% Mathematikmodus auf \cs{familydefault} bzw. \cs{rmfamily} oder aber den +% zuletzt gemachten Einstellungen mit \cs{newfontfamily} verlässt. Sind die +% Schriften des \CDs aktiv, wird dies temporär mit \opt{cdfont}|=|\val{false} +% revidiert und direkt nach den durch \pkg{siunitx} zu Beginn des Dokumentes +% erfolgten Einstellungen durch \cs{tud@x@siunitx@reset} wiederhergestellt. +% Dieser etwas merkwürdige Workaround geht auf die gemeldeten Probleme im +% \GitHubRepo<22> sowie im \Forum<503> zurück. +% \begin{macrocode} +\newcommand*\tud@x@siunitx@reset{} +\AfterAtEndOfPackage*{siunitx}{% + \providecommand*\lseries{\fontseries{l}\selectfont}% + \AtEndPreamble{% + \if@tud@cdfont@active% + \if@tud@cdfont@heavy% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% + \else% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \fi% + \appto\tud@x@siunitx@reset{\tud@font@set}% + \TUDoptions{cdfont=false}% + \tud@font@set% + \fi% + }% + \AtBeginDocument{\tud@x@siunitx@reset}% +} +% \end{macrocode} +% \end{macro}^^A \tud@x@siunitx@reset +% \end{macro}^^A \lseries +% +% \subsubsection{Mathematikschriften in Verbindung mit dem Paket \pkg{bm}} +% +% \begin{macro}{\tud@x@bm@delayed} +% \begin{macro}{\if@tud@x@bm@requested} +% Das Paket \pkg{bm} stellt den Befehl \cs{bm} für fette und kursive Symbole im +% Mathematiksatz bereit. Damit dies funktioniert, muss das Laden des Paketes +% auf das Ende der Präambel verzögert werden, um zuvor alle Einstellungen für +% die mathematischen Symbole vornehmen zu können. Dieser Workaround geht auf +% eine Meldung im \Forum<448> zurück. +% \begin{macrocode} +\tud@newif\if@tud@x@bm@requested +%<*package> +\@ifpackageloaded{bm}{% + \PackageWarning{tudscrfonts}{% + Package `bm' must be loaded after `tudscrfonts'. \MessageBreak% + Otherwise the functionality can not be guaranteed% + }% +}{% +% +\PreventPackageFromLoading[\@tud@x@bm@requestedtrue]{bm} +%<*package> +} +% +% \end{macrocode} +% Wird das Paket verzögert geladen, so werden die Mathematikschriften des \CDs +% aktiviert (falls zuvor angefordert), damit die durch das Paket \pkg{bm} +% vollzogenen Einstellungen für diese auch wirksam werden. Anschließend wird +% der Ausgangszustand wiederhergestellt, um den späteren und erstmaligen Aufruf +% von \cs{tud@math@set} vollständig abarbeiten zu können. +% \begin{macrocode} +\newcommand*\tud@x@bm@delayed{% + \if@tud@x@bm@requested% + \UnPreventPackageFromLoading{bm}% + \if@tud@cdmath@active% + \tud@cs@store{mv@normal}% + \tud@cs@store{mv@bold}% + \let\mv@normal\mv@tudnormal% + \let\mv@bold\mv@tudbold% + \fi% + \RequirePackage{bm}[2017/01/16]% + \tud@cs@restore{mv@normal}% + \tud@cs@restore{mv@bold}% + \fi% + \let\tud@x@bm@delayed\relax% +} +% \end{macrocode} +% Für die \OpenSans kommt das Paket \pkg{mathastext} zum Einsatz. In diesem +% Fall muss das Paket \pkg{bm} bereits zuvor geladen werden. +% \begin{macrocode} +\BeforePackage{mathastext}{\tud@x@bm@delayed} +% \end{macrocode} +% \end{macro}^^A \if@tud@x@bm@requested +% \end{macro}^^A \tud@x@bm@delayed +% +% \subsubsection{Anpassungen für die Klasse \cls{beamer}} +% +% Die \cls{beamer}-Klasse lädt standardmäßig serifenlose Mathematikschriften. +% Dies soll verhindert werden, damit die Auswahl über die Option \opt{cdmath} +% erfolgen kann. +% \begin{macrocode} +%<*package> +\AfterClass*{beamer}{\usefonttheme[onlymath]{serif}} +% +% \end{macrocode} +% +% \subsection{Aktivieren der gewählten Schriften} +% +% Die eigentliche Schriftauswahl erfolgt~-- abhängig von den zuvor gesetzten +% Einstellungen~-- erst am Ende der Präambel, um etwaige Voreinstellungen +% anderer Schriftpakete beachten zu können. Dabei erfolgt die Auswahl der +% Schriften für den Mathematiksatz durch \cs{AtBeginDocument} innerhalb von +% \cs{AtEndPreamble} am Ende \emph{möglichst aller} \cs{AtBeginDocument}. +% \ToDo{das passt mit den neuen hooks so nicht mehr unbedingt}[v2.07] +% \begin{macrocode} +\AtEndPreamble{% +% \end{macrocode} +% Falls das Paket \pkg{mweights} geladen wurde, werden im Bedarfsfall die vom +% Paket erwarteten Makros für die Schriftstärken der einzelnen Schriftfamilien +% definiert. Beim Aufruf von \cs{tud@font@set} werden diese anschließend +% gesichert. +% \begin{macrocode} + \if@tud@x@mweights@enabled% + \ifundef{\bfseries@rm}{\edef\bfseries@rm{\bfdefault}}{}% + \ifundef{\mdseries@rm}{\edef\mdseries@rm{\mddefault}}{}% + \ifundef{\bfseries@sf}{\edef\bfseries@sf{\bfdefault}}{}% + \ifundef{\mdseries@sf}{\edef\mdseries@sf{\mddefault}}{}% + \ifundef{\bfseries@tt}{\edef\bfseries@tt{\bfdefault}}{}% + \ifundef{\mdseries@tt}{\edef\mdseries@tt{\mddefault}}{}% + \fi% +% \end{macrocode} +% Hier wird auf das Vorhandensein aller benötigten Schriften geprüft. +% \begin{macrocode} + \tud@cdfont@check% +% \end{macrocode} +% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen +% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten. +% \begin{macrocode} +% \ifdef{\sectfont}{}{\let\sectfont\relax}% +% \end{macrocode} +% Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und +% die dazugehörigen Befehle definiert. Auch die mathematischen Schriften werden +% initialisiert. +% \begin{macrocode} + \tud@cdfont@init% + \tud@ttfont@init% +% \end{macrocode} +% Damit die Schrift im Dokument später noch umgestellt werden kann, werden +% sämtliche Einstellungen erst am Ende der Präambel gesichert. Deshalb wird +% der dafür verantwortliche Befehl \cs{tud@font@set} hier zum ersten Mal +% verwendet. Damit ist es möglich, die Schriften eventuell geladener Pakete wie +% \pkg{lmodern} oder \pkg{libertine} vorher zu sichern und später wieder zu +% aktivieren. +% \begin{macrocode} + \tud@font@set% +% \end{macrocode} +% Die Definitionen für den Mathematiksatz erfolgen erst zu Dokumentbeginn, um +% auf Einstellungen von anderen Schriftpaketen reagieren zu können. Wurde +% jedoch das Paket \pkg{bm} angefordert, so müssen die Mathematikschriften +% bereits zum Ende der Präambel über \cs{tud@x@bm@delayed} initialisiert werden. +% \begin{macrocode} + \tud@cdmath@init% + \tud@x@bm@delayed% +% \end{macrocode} +% Bereitstellung der Auswahlbefehle für griechische Glyphen in der Nomenklatur +% von \TUDScript (|\up|\meta{Letter}, |\it|\meta{Letter}). +% \begin{macrocode} + \tud@math@map@greeks% +% \end{macrocode} +% Für die griechischen Glyphen wird mit \cs{tud@math@checkslanted@greeks} +% geprüft, ob diese durch ein Paket explizit auf kursive Majuskeln oder eine +% vollständig aufrechte Variante gesetzt wurden. Ist dies der Fall, wird der +% Standardwert für die Option \opt{slantedgreek} entsprechend angepasst. +% \begin{macrocode} + \tud@math@checkslanted@greeks% +% \end{macrocode} +% Nachdem alle Vorbereitungen getroffen wurden, werden die Schriften für den +% mathematischen Satz nun endlich gesetzt. +% \begin{macrocode} + \AtBeginDocument{\tud@math@set}% +} +% \end{macrocode} +% +% \iffalse % % \fi % diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index cfdc5148..7bc2e8b5 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -107,7 +107,7 @@ % \end{macrocode} % Danach erfolgt ggf. die Prüfung der resultierenden Seitenhöhe. % \begin{macrocode} - \ifnumless{\csuse{tud@#1@level@num}}{3}{% false/true/section + \ifnum\csuse{tud@#1@level@num}<3\relax% false/true/section \ifboolexpr{% bool {@titlepage} and bool {@tud@#1@fil} and bool {@tud@#1@multi}% }{% @@ -134,12 +134,12 @@ % jede Erklärung immer auf eine neue Seite gesetzt. Die Optionen zum vertikalen % Zentrieren wird ignoriert. Auf eine Warnung für den Anwender wird verzichtet. % \begin{macrocode} - }{% chapter + \else% chapter %<*book|report> \boolfalse{@tud@#1@multi}% \boolfalse{@tud@#1@fil}% % - }% + \fi% % \end{macrocode} % Zum Schluss wird ggf. der gesammelte Eintrag im Inhaltsverzeichnis erstellt. % Danach wird das übergebene Argument ausgeführt. @@ -168,45 +168,46 @@ % \changes{v2.06}{2018/02/22}{Bugfix: \cs{phantomsection} für Anker}^^A % \begin{macro}{\tud@fm@@toc} % \changes{v2.04}{2015/03/20}{neu}^^A -% \begin{macro}{\tud@fm@@@toc} -% \changes{v2.04}{2015/03/20}{neu}^^A % Ist die Einstellung \val{tocaggregate} aktiv, wird der gesammelte Eintrag ins % Inhaltsverzeichnis generiert. % \begin{macrocode} \newcommand*\tud@fm@@toc{} -\newcommand*\tud@fm@@@toc{} \newcommand*\tud@fm@toc[2]{% % \end{macrocode} -% Der gesammelte Eintrag aller Überschriften ins Inhaltsverzeichnis. +% Der gesammelte Eintrag aller Überschriften ins Inhaltsverzeichnis. Dafür +% wird der komplette Inhalt in einer Box gesetzt und nur die Überschriften +% aggregiert. % \begin{macrocode} \ifbool{@tud@#1@multi}{% \begingroup% - \let\tud@fm@@@toc\@empty% + \let\tud@fm@@toc\@empty% \renewcommand*\tud@fm@head[2]{% - \protected@edef\@tempa{##2}% - \protected@xdef\tud@fm@@toc{\tud@fm@@@toc\@tempa}% - \protected@xdef\tud@fm@@@toc{\tud@fm@@toc/}% + \protected@xdef\tud@fm@@toc{% + \ifx\tud@fm@@toc\@empty\else\tud@fm@@toc/\fi##2% + }% }% \let\clearpage\relax% \sbox\z@{\vbox{#2}}% \csuse{phantomsection}% \protected@edef\@tempa{% - \noexpand\endgroup% - \noexpand\ifnumodd{\csname tud@#1@toc@num\endcsname}{% + \endgroup% + \ifx\tud@fm@@toc\@empty\else% + \ifodd\csuse{tud@#1@toc@num}\relax %<*book|report> - \noexpand\addchaptertocentry{}{\tud@fm@@toc}% + \noexpand\addchaptertocentry{}{\tud@fm@@toc}% % %<*article> - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% % - }{% + \else %<*book|report> - \noexpand\addsectiontocentry{}{\tud@fm@@toc}% + \noexpand\addsectiontocentry{}{\tud@fm@@toc}% % %<*article> - \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% + \noexpand\addsubsectiontocentry{}{\tud@fm@@toc}% % - }% + \fi + \fi% }% \@tempa% }{% @@ -226,7 +227,6 @@ }% } % \end{macrocode} -% \end{macro}^^A \tud@fm@@@toc % \end{macro}^^A \tud@fm@@toc % \end{macro}^^A \tud@fm@toc % @@ -532,7 +532,7 @@ % \changes{v2.02}{2014/11/05}{neu}^^A % Das aus \KOMAScript{} bekannte Verhalten für die Zusammenfassung wird für die % beiden Klassen \cls{tudscrartcl} und \cls{tudscrreprt} adaptiert. Dazu werden -% boolesche Schlüssel bei der Definiton der beiden Optionen \opt{abstract} und +% boolesche Schlüssel bei der Definition der beiden Optionen \opt{abstract} und % \opt{declaration} eingefügt. Außerdem werden zusätzliche Werte zur Auswahl % einer Gliederungsebene für die gesetzten Überschriften wie \cs{section} oder % \cs{chapter}\footnote{nicht für \cls{tudscrartcl}} oder bereitgestellt, diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index e018b053..dcdd3893 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -473,20 +473,33 @@ % Damit endet der Abschnitt für \cls{tudscrbook}- und \cls{tudscrreprt}-Klasse. % % \begin{macro}{\tud@pagecolor} +% \begin{macro}{\normalcolor} % Der Befehl \cs{tud@pagecolor} dient für die Hauptklassen als Hilfsmakro, um % je nach gewählter Ausprägung des Layouts die farblichen Seitenhintergründe zu % aktivieren. Für die Klasse \cls{tudscrposter} wird der Befehl zusätzlich für % das benutzerdefinierte Festlegen einer standardmäßigen Hintergrundfarbe mit % der Option \opt{backcolor} genutzt. +% +% Für das Aktivieren der Farbe \val{HKS41} wird \cs{normalcolor} erweitert, um +% hier in jedem Fall als Schriftfarbe \emph{weiß} zu verwenden. % \begin{macrocode} \newcommand*\tud@pagecolor{}% +\AfterPackage{xcolor}{% + \apptocmd\normalcolor{% + \Ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% + }{}{\tud@patch@wrn{normalcolor}}% + \AtBeginDocument{% + \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% + \normalcolor% + }% +} % \end{macrocode} +% \end{macro}^^A \normalcolor % \end{macro}^^A \tud@pagecolor % \begin{option}{backcolor} % \changes{v2.05}{2016/04/15}{neu}^^A % \begin{option}{backgroundcolor} % \begin{option}{bgcolor} -% \begin{macro}{\normalcolor} % Mit dieser Option kann die standardmäßige Hintergrundfarbe für Poster gesetzt % werden. % \begin{macrocode} @@ -520,22 +533,8 @@ } \TUD@key{backgroundcolor}[true]{\TUDoptions{backcolor=#1}} \TUD@key{bgcolor}[true]{\TUDoptions{backcolor=#1}} -% \end{macrocode} -% Für das Aktivieren der Farbe \val{HKS41} wird \cs{normalcolor} erweitert, um -% hier in jedem Fall als Schriftfarbe \emph{weiß} zu verwenden. -% \begin{macrocode} -\AfterPackage{xcolor}{% - \apptocmd\normalcolor{% - \Ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% - }{}{\tud@patch@wrn{normalcolor}}% - \AtBeginDocument{% - \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% - \normalcolor% - }% -} % % \end{macrocode} -% \end{macro}^^A \normalcolor % \end{option}^^A bgcolor % \end{option}^^A backgroundcolor % \end{option}^^A backcolor @@ -770,15 +769,17 @@ \newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% \newcommand*\tud@sec@@fontface[1]{% \sectfont#1% - \if@tud@cdfont@active\if@tud@heavyheadings% - \if@tud@x@mweights@enabled% - \edef\bfseries@rm{\tud@cdfont@ebf}% - \edef\bfseries@sf{\tud@cdfont@ebf}% - \edef\bfseries@tt{\tud@ttfont@ebf}% + \if@tud@cdfont@active% + \if@tud@heavyheadings% + \if@tud@x@mweights@enabled% + \edef\bfseries@rm{\tud@cdfont@ebf}% + \edef\bfseries@sf{\tud@cdfont@ebf}% + \edef\bfseries@tt{\tud@ttfont@ebf}% + \fi% + \let\bfdefault\tud@cdfont@ebf% + \fontseries{\tud@cdfont@ebf}% \fi% - \let\bfdefault\tud@cdfont@ebf% - \fontseries{\tud@cdfont@ebf}% - \fi\fi% + \fi% \selectfont% } % \end{macrocode} @@ -978,6 +979,7 @@ % Das gleiche für die Teileseiten. % \begin{macrocode} \ifcase\tud@cd@part@num\relax% false + \tud@cs@restore{partlineswithprefixformat}% \tud@cs@restore{scr@part@beforeskip}% %<*book|report> \tud@cs@restore{scr@part@innerskip}% @@ -989,7 +991,6 @@ \tud@cs@restore{partheademptypage}% \tud@cs@restore{partpagestyle}% % - \tud@cs@restore{partlineswithprefixformat}% \tud@komafont@unset{part}% \tud@komafont@unset{partnumber}% \tud@cs@restore{raggedpart}% @@ -1004,6 +1005,8 @@ % weiter unten im Quelltext zu finden. % \begin{macrocode} \else% !false + \tud@cs@store{partlineswithprefixformat}% + \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@cs@store{scr@part@beforeskip}% %<*book|report> \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@dim}% @@ -1027,8 +1030,6 @@ \tud@cs@store{partpagestyle}% \renewcommand*\partpagestyle{plain.tudheadings}% % - \tud@cs@store{partlineswithprefixformat}% - \let\partlineswithprefixformat\tud@partlineswithprefixformat% % \end{macrocode} % Es wird die Schriftfarbe, "~größe und "~art angepasst, je nachdem ob der % Titel des Dokumentes auf den Teileseiten auftauchen soll oder eben nicht. @@ -1051,12 +1052,12 @@ % \begin{macrocode} %<*book|report> \ifcase\tud@cd@chapter@num\relax% false + \tud@cs@restore{chapterlineswithprefixformat}% + \tud@cs@restore{chapterlinesformat}% \tud@cs@restore{scr@chapter@beforeskip}% \tud@cs@restore{scr@chapter@innerskip}% \tud@cs@restore{scr@chapter@afterskip}% \tud@cs@restore{chapterheadstartvskip}% - \tud@cs@restore{chapterlineswithprefixformat}% - \tud@cs@restore{chapterlinesformat}% \tud@cs@restore{tud@chapter@before@hook}% \tud@cs@restore{tud@chapter@after@hook}% \tud@komafont@unset{chapter}% @@ -1068,6 +1069,10 @@ % angepassten Befehle abermals über \cs{let}. % \begin{macrocode} \else% !false + \tud@cs@store{chapterlineswithprefixformat}% + \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% + \tud@cs@store{chapterlinesformat}% + \let\chapterlinesformat\tud@chapterlinesformat% \tud@cs@store{scr@chapter@beforeskip}% \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@dim}% \tud@cs@store{scr@chapter@innerskip}% @@ -1076,10 +1081,6 @@ \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@glue}% \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% - \tud@cs@store{chapterlineswithprefixformat}% - \let\chapterlineswithprefixformat\tud@chapterlineswithprefixformat% - \tud@cs@store{chapterlinesformat}% - \let\chapterlinesformat\tud@chapterlinesformat% \tud@cs@store{tud@chapter@before@hook}% \renewcommand*\tud@chapter@before@hook{\tud@chapter@pre}% \tud@cs@store{tud@chapter@after@hook}% diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 1f1c9ff0..03f5945d 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -371,6 +371,46 @@ % % \iffalse % +%<*body> +% \fi +% +% \subsection{Anpassungen für das Paket \pkg{textcase}} +% +% \begin{macro}{\@uclcnotmath} +% \begin{macro}{\tud@x@textcase@uclcnotmath} +% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im +% Argument des Befehls \cs{MakeTextUppercase}}^^A +% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls +% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A +% Damit Fußnoten innerhalb von \cs{MakeTextUppercase} nicht in Majuskeln +% gesetzt werden, wird der interne Befehl \cs{@uclcnotmath} aus dem Paket +% \pkg{textcase} angepasst. +% \begin{macrocode} +\if@tud@cdoldfont@active + \AtEndPreamble{\RequirePackage{textcase}[2004/10/07]} +\fi +\AfterPackage*{textcase}{% + \newcommand*\tud@x@textcase@uclcnotmath{% + \@nonchangecase\thanks% + \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% + \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% + \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% + }% + \robustify\NoCaseChange% + \patchcmd\@uclcnotmath{% + \@nonchangecase\ensuremath% + }{% + \@nonchangecase\ensuremath% + \tud@x@textcase@uclcnotmath% + }{}{\tud@patch@wrn{@uclcnotmath}}% +} +\TUD@deprecated@cs{NoCaseChange}{@firstofone} +% \end{macrocode} +% \end{macro}^^A \tud@x@textcase@uclcnotmath +% \end{macro}^^A \@uclcnotmath +% +% \iffalse +% %<*class&!inherit|package&fonts> %<*option> % \fi @@ -534,6 +574,33 @@ % % \fi % +% Es werden die Standardoptionen ausgeführt. Für die Klasse \cls{tudscrposter} +% werden die Farben aktiviert. +% \begin{macrocode} +%<*package&tutorial> +\KOMAoptions{headings=small} +\TUDoptions{cdfoot=true} +% +\TUDExecuteOptions{% +%<*package> +%<*fixfonts> + headings=heavy% +% +%<*tutorial> + ToDo=true% +% +% +%<*class&!inherit> +%<*book|report|article> + cd=true,tudbookmarks=true% +% +%<*poster> + cd=bicolor,tudbookmarks=false% +% +% +} +% \end{macrocode} +% % \subsection{Durchreichen von Optionen und Standardoptionen} % % Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse bzw. an die @@ -542,7 +609,7 @@ % \begin{macrocode} %<*package> %<*fonts> -\DeclareOption*{\expandafter\KOMAoptions\expandafter{\CurrentOption}} +\DeclareOption*{\expandafter\TUD@KOMAoptions\expandafter{\CurrentOption}} % %<*fixfonts> \DeclareOption*{% @@ -566,36 +633,10 @@ % % % \end{macrocode} -% Es werden die Standardoptionen ausgeführt. Für die Klasse \cls{tudscrposter} -% werden die Farben aktiviert. +% Nach der Auswerung der Optionen wird die korrespondierende \KOMAScript-Klasse +% bzw. \TUDScript-Elternklasse geladen. % \begin{macrocode} -%<*package&tutorial> -\KOMAoptions{headings=small} -\TUDoptions{cdfoot=true} -% -\TUDExecuteOptions{% -%<*package> -%<*fixfonts> - headings=heavy% -% -%<*tutorial> - ToDo=true% -% -% -%<*class&!inherit> -%<*book|report|article> - cd=true,tudbookmarks=true% -% -%<*poster> - cd=bicolor,tudbookmarks=false% -% -% -} \TUDProcessOptions\relax -% \end{macrocode} -% Die korrespindierende \KOMAScript-Klasse bzw. \TUDScript-Elternklasse wird -% geladen. -% \begin{macrocode} %<*class&!inherit> \LoadClass{\TUD@Class@KOMA}[2020/09/21] % @@ -661,45 +702,6 @@ % \iffalse % % -%<*body> -% \fi -% -% \subsection{Anpassungen für das Paket \pkg{textcase}} -% -% \begin{macro}{\@uclcnotmath} -% \begin{macro}{\tud@x@textcase@uclcnotmath} -% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im -% Argument des Befehls \cs{MakeTextUppercase}}^^A -% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls -% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A -% Damit Fußnoten innerhalb von \cs{MakeTextUppercase} nicht in Majuskeln -% gesetzt werden, wird der interne Befehl \cs{@uclcnotmath} aus dem Paket -% \pkg{textcase} angepasst. -% \begin{macrocode} -\if@tud@cdoldfont@active - \RequirePackage{textcase}[2004/10/07] - \AfterPackage*{textcase}{% - \robustify\NoCaseChange% - \newcommand*\tud@x@textcase@uclcnotmath{% - \@nonchangecase\hologo% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% - }% - \patchcmd\@uclcnotmath{% - \@nonchangecase\ensuremath% - }{% - \@nonchangecase\ensuremath\tud@x@textcase@uclcnotmath% - }{}{\tud@patch@wrn{@uclcnotmath}}% - }% -\fi -\TUD@deprecated@cs{NoCaseChange}{@firstofone} -% \end{macrocode} -% \end{macro}^^A \tud@x@textcase@uclcnotmath -% \end{macro}^^A \@uclcnotmath -% -% \iffalse -% % \fi % % \PrintBackMatter diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 2a4964aa..79e58c00 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -1102,6 +1102,262 @@ % % \iffalse % +% \fi +% +% \subsection{Optionen für das \DDC-Logo} +% +% \begin{macro}{\tud@comp@clearpage} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@comp@resetpagestyle} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\if@tud@ddc@internal} +% \changes{v2.02}{2014/07/08}{neu}^^A +% Bis zur Version~v2.02 wurden unterschiedliche Satzsiegel für den Seitenfuß +% mit und ohne \DDC-Logo verwendet. Damit dieser im Zweifelsfall umgestellt +% werden kann, wurde vor dem Ausführen der entsprechenden Optionen ein +% Seitenumbruch erzwungen und nach dem Verarbeiten der Optionen der aktuelle +% Seitenstil erneut aufgerufen. Die beiden folgenden Makros werden für dieses +% Unterfangen definiert, jedoch bei der Abarbeitung der Optionen nur noch im +% Kompatibilitätmodus ausgeführt. Der Schalter \cs{if@tud@ddc@internal} wird +% intern von den Optionen \opt{ddc}, \opt{ddchead} und \opt{ddcfoot} verwendet, +% um rekursive Aufrufe der Optionen zu verhindern. +% \begin{macrocode} +%<*class&option> +\tud@newif\if@tud@ddc@internal +\newcommand*\tud@comp@clearpage{}% +\newcommand*\tud@comp@resetpagestyle{}% +% +%<*class&body> +\tud@if@v@lower{2.04}{% + \renewcommand*\tud@comp@clearpage{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% + \fi% + }% + \renewcommand*\tud@comp@resetpagestyle{% + \if@tud@ddc@internal\else% + \tud@if@tudheadings{\currentpagestyle}{% + \expandafter\pagestyle\expandafter{\currentpagestyle}% + }{}% + \fi% + }% +}{}% +% +% \end{macrocode} +% \end{macro}^^A \if@tud@ddc@internal +% \end{macro}^^A \tud@comp@clearpage +% \end{macro}^^A \tud@comp@resetpagestyle +% +% \iffalse +%<*class&option> +% \fi +% +% \begin{option}{ddc} +% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A +% \begin{option}{ddchead} +% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A +% \begin{option}{ddcfoot} +% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A +% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil +% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den +% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls +% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß. +% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein +% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen +% im Fuß ausgegeben. +% \begin{macro}{\tud@ddc@switch} +% \changes{v2.02}{2014/06/23}{neu}^^A +% Das Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc}, +% \opt{ddchead} sowie \opt{ddcfoot}. +% \begin{macrocode} +\newcommand*\tud@ddc@switch{} +\edef\tud@ddc@switch{% + \TUD@bool@numkey,% + {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% + {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% + {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% + {black}{5},{cdblack}{5},% + {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},% + {white}{7},{cdwhite}{7}% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@switch +% \begin{macro}{\tud@ddc@auto@num} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{macro}{\if@tud@ddc@auto} +% \changes{v2.02}{2014/06/23}{neu}^^A +% \begin{macro}{\if@tud@headlogo@option@set} +% \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\if@tud@footlogo@option@set} +% \changes{v2.04}{2015/06/01}{neu}^^A +% Die Option \opt{ddc}. +% \begin{macrocode} +\tud@newif\if@tud@headlogo@option@set +\tud@newif\if@tud@footlogo@option@set +\tud@newif\if@tud@ddc@auto +\newcommand*\tud@ddc@auto@num{0} +\TUD@key{ddc}[true]{% +% \end{macrocode} +% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird +% die Option abgearbeitet. +% \begin{macrocode} + \tud@comp@clearpage% + \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% +% \end{macrocode} +% Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot} +% aufgerufen, wird die automatische Auswahl des \DDC-Logos deaktiviert. +% \begin{macrocode} + \if@tud@ddc@internal% + \@tud@ddc@autofalse% + \else% +% \end{macrocode} +% Andernfalls wird die automatische Auswahl aktiviert und die beiden Optionen +% \opt{ddchead} sowie \opt{ddcfoot} intern zurückgesetzt. +% \begin{macrocode} + \@tud@ddc@autotrue% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddcfoot=false}% + \@tud@ddc@internalfalse% + \fi% +% \end{macrocode} +% Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden +% in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter +% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der +% Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}. +% \begin{macrocode} + \global\@tud@headlogo@option@settrue% + \global\@tud@footlogo@option@settrue% + \fi% +% \end{macrocode} +% Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen, +% um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden. +% \begin{macrocode} + \tud@comp@resetpagestyle% +} +% \end{macrocode} +% \end{macro}^^A \if@tud@footlogo@option@set +% \end{macro}^^A \if@tud@headlogo@option@set +% \end{macro}^^A \if@tud@ddc@auto +% \end{macro}^^A \tud@ddc@auto@num +% \begin{macro}{\tud@ddc@head@num} +% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A +% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf +% der Seiten im Stil von \pgs{tudheadings}. +% \begin{macrocode} +\newcommand*\tud@ddc@head@num{0} +\TUD@key{ddchead}[true]{% +% \end{macrocode} +% Der Seitenumbruch im Kompatibilitätsmodus. +% \begin{macrocode} + \tud@comp@clearpage% + \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% +% \end{macrocode} +% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. +% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden +% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten +% setzen der Logoboxen. +% \begin{macrocode} + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% + \TUDoptions{ddcfoot=false}% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% + \fi% + \fi% +% \end{macrocode} +% Das Setzen des Seitenstils im Kompatibilitätsmodus. +% \begin{macrocode} + \tud@comp@resetpagestyle% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@head@num +% \begin{macro}{\tud@ddc@foot@num} +% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A +% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß +% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des +% Schlüssels ist äquivalent zur Option \opt{ddchead} +% \begin{macrocode} +\newcommand*\tud@ddc@foot@num{0} +\TUD@key{ddcfoot}[true]{% +% \end{macrocode} +% Der Seitenumbruch im Kompatibilitätsmodus. +% \begin{macrocode} + \tud@comp@clearpage% + \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% +% \end{macrocode} +% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. +% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden +% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten +% setzen der Logoboxen. +% \begin{macrocode} + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tud@ddc@internal\else% + \@tud@ddc@internaltrue% + \TUDoptions{ddchead=false}% + \TUDoptions{ddc=false}% + \@tud@ddc@internalfalse% + \fi% + \fi% +% \end{macrocode} +% Das Setzen des Seitenstils im Kompatibilitätsmodus. +% \begin{macrocode} + \tud@comp@resetpagestyle% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@foot@num +% \end{option}^^A ddcfoot +% \end{option}^^A ddchead +% \end{option}^^A ddc +% +% \iffalse +% +%<*class&body> +% \fi +% +% \begin{macro}{\tud@ddc@check} +% \changes{v2.02}{2014/06/23}{neu}^^A +% Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen +% für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen. +% Über den Schalter \cs{if@tud@ddc@auto} wird festgelegt, ob die Auswahl des +% \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet. +% Ist dies der Fall, wird das Logo standardmäßig im Kopf gesetzt. Ist jedoch +% durch den Befehl \cs{headlogo} ein Zweitlogo angegeben worde, wird dieses in +% der Fußzeile ausgegeben. Die Verwendung einer der Optionen \opt{ddchead} bzw. +% \opt{ddcfoot} forciert die Ausgabe des \DDC-Logos an der gewünschten Stelle. +% Die jeweils gültige Auswahl für Kopf bzw. Fuß wird in den Makros \cs{@tempa} +% bzw. \cs{@tempb} geschrieben und kann anschließend ausgewertet werden. +% \begin{macrocode} +\newcommand*\tud@ddc@check{% + \let\@tempa\tud@ddc@head@num% + \let\@tempb\tud@ddc@foot@num% + \if@tud@ddc@auto% + \ifdefvoid{\tud@headlogo@filename}{% + \let\@tempa\tud@ddc@auto@num% + \let\@tempb\z@% + }{% + \let\@tempa\z@% + \let\@tempb\tud@ddc@auto@num% + }% + \fi% +% \end{macrocode} +% Für die Satzspiegelvergrößerung wird beim Vorhandensein eines oder mehrerer +% Logos im Fuß die Variable \cs{@tempb} auf einen negativen Wert gesetzt, um +% auch ohne die Ausgabe eines \DDC-Logos den Fußbereich zu vergrößern. +% \begin{macrocode} + \tud@if@v@lower{2.03}{% + \ifnum\@tempb=\z@\relax% + \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% + \fi% + }{}% +} +% \end{macrocode} +% \end{macro}^^A \tud@ddc@check +% +% \iffalse +% %<*class&option> % \fi % @@ -2242,262 +2498,6 @@ % \end{macrocode} % \end{macro}^^A \tud@footcontent@use % -% \iffalse -% -% \fi -% -% \subsection{Optionen für das \DDC-Logo} -% -% \begin{macro}{\tud@comp@clearpage} -% \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\tud@comp@resetpagestyle} -% \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\if@tud@ddc@internal} -% \changes{v2.02}{2014/07/08}{neu}^^A -% Bis zur Version~v2.02 wurden unterschiedliche Satzsiegel für den Seitenfuß -% mit und ohne \DDC-Logo verwendet. Damit dieser im Zweifelsfall umgestellt -% werden kann, wurde vor dem Ausführen der entsprechenden Optionen ein -% Seitenumbruch erzwungen und nach dem Verarbeiten der Optionen der aktuelle -% Seitenstil erneut aufgerufen. Die beiden folgenden Makros werden für dieses -% Unterfangen definiert, jedoch bei der Abarbeitung der Optionen nur noch im -% Kompatibilitätmodus ausgeführt. Der Schalter \cs{if@tud@ddc@internal} wird -% intern von den Optionen \opt{ddc}, \opt{ddchead} und \opt{ddcfoot} verwendet, -% um rekursive Aufrufe der Optionen zu verhindern. -% \begin{macrocode} -%<*class&option> -\tud@newif\if@tud@ddc@internal -\newcommand*\tud@comp@clearpage{}% -\newcommand*\tud@comp@resetpagestyle{}% -% -%<*class&body> -\tud@if@v@lower{2.04}{% - \renewcommand*\tud@comp@clearpage{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{\clearpage}{}% - \fi% - }% - \renewcommand*\tud@comp@resetpagestyle{% - \if@tud@ddc@internal\else% - \tud@if@tudheadings{\currentpagestyle}{% - \expandafter\pagestyle\expandafter{\currentpagestyle}% - }{}% - \fi% - }% -}{}% -% -% \end{macrocode} -% \end{macro}^^A \if@tud@ddc@internal -% \end{macro}^^A \tud@comp@clearpage -% \end{macro}^^A \tud@comp@resetpagestyle -% -% \iffalse -%<*class&option> -% \fi -% -% \begin{option}{ddc} -% \changes{v2.02}{2014/06/23}{automatische Logowahl}^^A -% \begin{option}{ddchead} -% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A -% \begin{option}{ddcfoot} -% \changes{v2.02}{2014/06/23}{Logo von \DDC entweder in Kopf oder Fuß}^^A -% Diese Optionen dienen zur Auswahl des \DDC-Logos auf Seiten mit dem Stil -% \pgs{tudheadings}. Die Option \opt{ddchead} setzt das Logo dabei immer in den -% Kopf, wobei ein mit \cs{headlogo} definiertes Zweitlogo gegebenenfalls -% überschrieben wird. Die Option \opt{ddcfoot} setzt das Logo immer in den Fuß. -% Mit der Option \opt{ddc} wird das Logo nur in den Kopf gesetzt, wenn kein -% Zweitlogo angegeben ist. Ist dies jedoch der Fall, wird das Logo stattdessen -% im Fuß ausgegeben. -% \begin{macro}{\tud@ddc@switch} -% \changes{v2.02}{2014/06/23}{neu}^^A -% Das Makro definiert die gültigen Werte für die \DDC-Optionen \opt{ddc}, -% \opt{ddchead} sowie \opt{ddcfoot}. -% \begin{macrocode} -\newcommand*\tud@ddc@switch{} -\edef\tud@ddc@switch{% - \TUD@bool@numkey,% - {color}{2},{colour}{2},{cdcolor}{2},{cdcolour}{2},% - {colorblack}{3},{colourblack}{3},{cdcolorblack}{3},{cdcolourblack}{3},% - {gray}{4},{grey}{4},{hks92}{4},{cdgray}{4},{cdgrey}{4},% - {black}{5},{cdblack}{5},% - {blue}{6},{hks41}{6},{cdblue}{6},{cddarkblue}{6},% - {white}{7},{cdwhite}{7}% -} -% \end{macrocode} -% \end{macro}^^A \tud@ddc@switch -% \begin{macro}{\tud@ddc@auto@num} -% \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{macro}{\if@tud@ddc@auto} -% \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{macro}{\if@tud@headlogo@option@set} -% \changes{v2.04}{2015/05/31}{neu}^^A -% \begin{macro}{\if@tud@footlogo@option@set} -% \changes{v2.04}{2015/06/01}{neu}^^A -% Die Option \opt{ddc}. -% \begin{macrocode} -\tud@newif\if@tud@headlogo@option@set -\tud@newif\if@tud@footlogo@option@set -\tud@newif\if@tud@ddc@auto -\newcommand*\tud@ddc@auto@num{0} -\TUD@key{ddc}[true]{% -% \end{macrocode} -% Im Kompatibiltätsmodus wird ein Seitenumbruch erzwungen. Anschließend wird -% die Option abgearbeitet. -% \begin{macrocode} - \tud@comp@clearpage% - \TUD@set@numkey{ddc}{tud@ddc@auto@num}{\tud@ddc@switch}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% -% \end{macrocode} -% Wurde die Option \opt{ddc} intern durch \opt{ddchead} oder \opt{ddcfoot} -% aufgerufen, wird die automatische Auswahl des \DDC-Logos deaktiviert. -% \begin{macrocode} - \if@tud@ddc@internal% - \@tud@ddc@autofalse% - \else% -% \end{macrocode} -% Andernfalls wird die automatische Auswahl aktiviert und die beiden Optionen -% \opt{ddchead} sowie \opt{ddcfoot} intern zurückgesetzt. -% \begin{macrocode} - \@tud@ddc@autotrue% - \@tud@ddc@internaltrue% - \TUDoptions{ddchead=false}% - \TUDoptions{ddcfoot=false}% - \@tud@ddc@internalfalse% - \fi% -% \end{macrocode} -% Sowohl die \DDC-Logos als auch ein mögliches Zweilogo (\cs{headlogo}) werden -% in den entsprechenden Layern durch Boxen ausgegeben. Die beiden Schalter -% führen zum Erneuern der dazugehörigen Logoboxen. Siehe die Beschreibung der -% Makros \cs{tud@headlogo@option@set} sowie \cs{tud@footlogo@option@set}. -% \begin{macrocode} - \global\@tud@headlogo@option@settrue% - \global\@tud@footlogo@option@settrue% - \fi% -% \end{macrocode} -% Abschließend wird im Kompatibilitätsmodus der aktuelle Seitenstil aufgerufen, -% um bei einem geänderten Fuß den notwendigen Satzspiegel zu laden. -% \begin{macrocode} - \tud@comp@resetpagestyle% -} -% \end{macrocode} -% \end{macro}^^A \if@tud@footlogo@option@set -% \end{macro}^^A \if@tud@headlogo@option@set -% \end{macro}^^A \if@tud@ddc@auto -% \end{macro}^^A \tud@ddc@auto@num -% \begin{macro}{\tud@ddc@head@num} -% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A -% Die Option \opt{ddchead} dient zum zwingenden Setzen des \DDC-Logos im Kopf -% der Seiten im Stil von \pgs{tudheadings}. -% \begin{macrocode} -\newcommand*\tud@ddc@head@num{0} -\TUD@key{ddchead}[true]{% -% \end{macrocode} -% Der Seitenumbruch im Kompatibilitätsmodus. -% \begin{macrocode} - \tud@comp@clearpage% - \TUD@set@numkey{ddchead}{tud@ddc@head@num}{\tud@ddc@switch}{#1}% -% \end{macrocode} -% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. -% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden -% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten -% setzen der Logoboxen. -% \begin{macrocode} - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@internal\else% - \@tud@ddc@internaltrue% - \TUDoptions{ddcfoot=false}% - \TUDoptions{ddc=false}% - \@tud@ddc@internalfalse% - \fi% - \fi% -% \end{macrocode} -% Das Setzen des Seitenstils im Kompatibilitätsmodus. -% \begin{macrocode} - \tud@comp@resetpagestyle% -} -% \end{macrocode} -% \end{macro}^^A \tud@ddc@head@num -% \begin{macro}{\tud@ddc@foot@num} -% \changes{v2.03}{2015/01/22}{Seitenstilauswahl bei Deaktivierung verbessert}^^A -% Die Option \opt{ddcfoot} dient zum zwingenden Setzen des \DDC-Logos im Fuß -% der Seiten im Stil von \pgs{tudheadings}. Das Vorgehen beim Umschalten des -% Schlüssels ist äquivalent zur Option \opt{ddchead} -% \begin{macrocode} -\newcommand*\tud@ddc@foot@num{0} -\TUD@key{ddcfoot}[true]{% -% \end{macrocode} -% Der Seitenumbruch im Kompatibilitätsmodus. -% \begin{macrocode} - \tud@comp@clearpage% - \TUD@set@numkey{ddcfoot}{tud@ddc@foot@num}{\tud@ddc@switch}{#1}% -% \end{macrocode} -% Beim internen Aufruf soll lediglich der Wert des Schlüssels geändert werden. -% Wurde die Option durch den Anwender genutzt, werden die korrespondierenden -% Optionen zurückgesetzt. Der Aufruf der Option \opt{ddc} führt zum erneuten -% setzen der Logoboxen. -% \begin{macrocode} - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@ddc@internal\else% - \@tud@ddc@internaltrue% - \TUDoptions{ddchead=false}% - \TUDoptions{ddc=false}% - \@tud@ddc@internalfalse% - \fi% - \fi% -% \end{macrocode} -% Das Setzen des Seitenstils im Kompatibilitätsmodus. -% \begin{macrocode} - \tud@comp@resetpagestyle% -} -% \end{macrocode} -% \end{macro}^^A \tud@ddc@foot@num -% \end{option}^^A ddcfoot -% \end{option}^^A ddchead -% \end{option}^^A ddc -% -% \iffalse -% -%<*class&body> -% \fi -% -% \begin{macro}{\tud@ddc@check} -% \changes{v2.02}{2014/06/23}{neu}^^A -% Dieses Hilfsmakro wird aufgerufen, wenn geprüft wird, welche Einstellungen -% für Kopf und Fuß des Seitenstiles \pgs{tudheadings} zum Tragen kommen sollen. -% Über den Schalter \cs{if@tud@ddc@auto} wird festgelegt, ob die Auswahl des -% \DDC-Logos automatisch erfolgen soll~-- Option \opt{ddc} wurde verwendet. -% Ist dies der Fall, wird das Logo standardmäßig im Kopf gesetzt. Ist jedoch -% durch den Befehl \cs{headlogo} ein Zweitlogo angegeben worde, wird dieses in -% der Fußzeile ausgegeben. Die Verwendung einer der Optionen \opt{ddchead} bzw. -% \opt{ddcfoot} forciert die Ausgabe des \DDC-Logos an der gewünschten Stelle. -% Die jeweils gültige Auswahl für Kopf bzw. Fuß wird in den Makros \cs{@tempa} -% bzw. \cs{@tempb} geschrieben und kann anschließend ausgewertet werden. -% \begin{macrocode} -\newcommand*\tud@ddc@check{% - \let\@tempa\tud@ddc@head@num% - \let\@tempb\tud@ddc@foot@num% - \if@tud@ddc@auto% - \ifdefvoid{\tud@headlogo@filename}{% - \let\@tempa\tud@ddc@auto@num% - \let\@tempb\z@% - }{% - \let\@tempa\z@% - \let\@tempb\tud@ddc@auto@num% - }% - \fi% -% \end{macrocode} -% Für die Satzspiegelvergrößerung wird beim Vorhandensein eines oder mehrerer -% Logos im Fuß die Variable \cs{@tempb} auf einen negativen Wert gesetzt, um -% auch ohne die Ausgabe eines \DDC-Logos den Fußbereich zu vergrößern. -% \begin{macrocode} - \tud@if@v@lower{2.03}{% - \ifnum\@tempb=\z@\relax% - \ifdefvoid{\tud@footlogo@filenames}{}{\let\@tempb\m@ne}% - \fi% - }{}% -} -% \end{macrocode} -% \end{macro}^^A \tud@ddc@check -% % \subsection{Umgebungsparameter für die neuen Seitenstile} % % \begin{macro}{\if@tud@parameter@ps@font@set} From 6e63710b443cdf165cb78d118996ccbbc0a154a9 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Sun, 31 Jul 2022 02:30:44 +0200 Subject: [PATCH 08/24] revised string processing --- source/tudscr-area.dtx | 48 +++++----- source/tudscr-base.dtx | 165 ++++++++++++++++++++++++---------- source/tudscr-fields.dtx | 46 +++++----- source/tudscr-fonts.dtx | 96 ++++++++++---------- source/tudscr-frontmatter.dtx | 8 +- source/tudscr-layout.dtx | 16 ++-- source/tudscr-manual.dtx | 79 ++++++++-------- source/tudscr-misc.dtx | 4 +- source/tudscr-pagestyle.dtx | 47 +++++----- source/tudscr-supervisor.dtx | 12 ++- source/tudscr-title.dtx | 24 +++-- 11 files changed, 316 insertions(+), 229 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index 15fddb5a..7da2d031 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -1062,7 +1062,7 @@ }% \tud@res@a% \fi% - \Ifstr{#2}{newgeometry}{% + \tud@if@strequal{#2}{newgeometry}{% \eappto\Gm@restore@org{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% @@ -1129,7 +1129,7 @@ \tud@x@geometry@area@def{paper}{\paperwidth:#1}% }% \TUD@parameter@def{layout}{% - \Ifstr{#1}{false}{% + \tud@if@strequal{#1}{false}{% \tud@setdim\tud@dim@layoutwidth{\z@}% \tud@setdim\tud@dim@layoutheight{\z@}% \tud@setdim\tud@dim@layouthoffset{\z@}% @@ -1187,18 +1187,18 @@ % \val{parameter} für alles Übrige. % \begin{macrocode} \newcommand*\tud@x@geometry@area@def[2]{% - \tud@lowerstring{\@tempa}{#2}% + \tud@strlowercase\@tempa{#2}% \def\@tempb##1paper##2\@nil{% - \Ifstr{##2}{paper}{\def\@tempa{##1}}{}% + \tud@if@strequal{##2}{paper}{\def\@tempa{##1}}{}% }% \expandafter\@tempb\@tempa paper\@nil% \@tempswafalse% - \Ifstr{\@tempa}{seascape}{\@tempswatrue}{}% - \Ifstr{\@tempa}{landscape}{\@tempswatrue}{}% - \Ifstr{\@tempa}{portrait}{\@tempswatrue}{}% - \Ifstr{\@tempa}{letter}{\@tempswatrue}{}% - \Ifstr{\@tempa}{executive}{\@tempswatrue}{}% - \Ifstr{\@tempa}{legal}{\@tempswatrue}{}% + \tud@if@strequal{\@tempa}{seascape}{\@tempswatrue}{}% + \tud@if@strequal{\@tempa}{landscape}{\@tempswatrue}{}% + \tud@if@strequal{\@tempa}{portrait}{\@tempswatrue}{}% + \tud@if@strequal{\@tempa}{letter}{\@tempswatrue}{}% + \tud@if@strequal{\@tempa}{executive}{\@tempswatrue}{}% + \tud@if@strequal{\@tempa}{legal}{\@tempswatrue}{}% \if@tempswa\else% \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% @@ -1225,7 +1225,7 @@ \if@tempswa\else% \def\tud@reserved##1:##2:##3:##4\@nil{% \if@tempswa\else% - \Ifstr{\@tempa}{##1}{% + \tud@if@strequal{\@tempa}{##1}{% \@tempswatrue% \def\@tempa{##2##4:##3##4}% }{}% @@ -1272,7 +1272,7 @@ % \emph{Dies geschieht hier direkt und nicht in einer Gruppe,} weil der Aufruf % von \cs{tud@x@geometry@area@set}|{layout}| lokal erfolgt. % \begin{macrocode} - \Ifstr{#1}{layout}{\let\scr@setpaperorientation\relax}{}% + \tud@if@strequal{#1}{layout}{\let\scr@setpaperorientation\relax}{}% \KOMAoption{paper}{##1:##2}% }% }% @@ -1862,7 +1862,7 @@ % anschließend auch der richtige Satzspiegel wieder ausgewählt werden. % \begin{macrocode} \tud@if@preamble{}{% - \Ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \expandafter\tud@loadgeometry\expandafter{\tud@currentgeometry}% }% }% @@ -2026,7 +2026,7 @@ % auch mit \LaTeX-Standardseitenstilen \pgs{headings} bzw. \pgs{plain} % umgeschaltet werden kann. Dies wird hiermit beachtet. % \begin{macrocode} - \Ifstr{#1}{\GetRealPageStyle{#1}}{% + \tud@if@strequal{#1}{\GetRealPageStyle{#1}}{% % \end{macrocode} % Für den Fall, das ein \pgs{tudheadings}-Seitenstil geladen werden soll, muss % der dazugehörige Satzspiegel ausgewählt werden\dots @@ -2048,7 +2048,7 @@ % Das \DDC-Logo im Fuß ist nicht aktiviert. % \begin{macrocode} \ifcase\@tempb\relax% \tud@ddc@foot@num=false - \Ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% @@ -2056,7 +2056,7 @@ % Das \DDC-Logo im Fuß ist aktiviert. % \begin{macrocode} \else% \tud@ddc@foot@num!=false - \Ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@loadgeometry{tudareaddc}% \gdef\tud@currentgeometry{tudareaddc}% }% @@ -2065,7 +2065,7 @@ % Ab der Version~v2.03 ist nur noch ein Satzspiegel vonnöten. % \begin{macrocode} }{% - \Ifstr{\tud@currentgeometry}{tudarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudarea}{}{% \tud@loadgeometry{tudarea}% \gdef\tud@currentgeometry{tudarea}% }% @@ -2089,7 +2089,7 @@ % zurückgesetzt. % \begin{macrocode} }{% - \Ifstr{\tud@currentgeometry}{stdarea}{}{% + \tud@if@strequal{\tud@currentgeometry}{stdarea}{}{% \tud@loadgeometry{stdarea}% \gdef\tud@currentgeometry{stdarea}% }% @@ -2249,15 +2249,15 @@ \tud@cs@store{PackageWarningNoLine}% \renewcommand*\PackageWarningNoLine[2]{% \@tud@res@swatrue% - \Ifstr{##1}{typearea}{% - \Ifstrstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% - \Ifstrstart{##2}{% + \tud@if@strequal{##1}{typearea}{% + \tud@if@strstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% Maybe no optimal type area settings!% }{\@tud@res@swafalse}{}% - \Ifstrstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% }{}% \if@tud@res@swa% - \tud@cs@use{PackageWarning}{##1}{##2}% + \tud@cs@use{PackageWarningNoLine}{##1}{##2}% \else% \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}% \fi% @@ -2361,7 +2361,7 @@ \tud@if@v@lower{2.03}{% \newcommand*\tud@ddc@enlargepage[1][]{% \tud@if@tudheadings{#1}{% - \Ifstr{\tud@currentgeometry}{tudareaddc}{}{% + \tud@if@strequal{\tud@currentgeometry}{tudareaddc}{}{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num!=false \enlargethispage{-\tud@dim@ddcdiff}% diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 47652cad..82c0bd3a 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -374,64 +374,131 @@ % \end{macrocode} % \end{macro}^^A \tud@if@preamble % -% \subsubsection{Robuster Test auf leeres Argument} +% \subsubsection{Strings} +% \minisec{Expandierte Tests} % -% \begin{macro}{\ifxblank} -% Hiermit kann ein Argument geprüft werden, ob dieses blank ist (leer oder -% Leerzeichen). In seiner Syntax ist er identisch zu \cs{ifblank}, allerdings -% expandiert er im Gegensatz zu diesem das gegebene Argument. +% \begin{macro}{\tud@if@strequal} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@if@strstart} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@if@strempty} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% \begin{macro}{\tud@if@strblank} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% Hiermit wird geprüft, ob ein String gleich, leer oder blank (Leerzeichen) +% ist, wobei die gegebene Argumente expandiert werden. In ihrer Syntax sind +% sie identisch zu den aus aus \pkg{etoolbox} stammenden und unterlagerten +% Befehlen \cs{ifstrequal}, \cs{ifstrempty} und \cs{ifblank}. Der Befehl +% \cs{tud@if@strstart} nutzt \cs{Ifstrstart} von \KOMAScript. % \begin{macrocode} -\newcommand*\ifxblank{\Ifstr{}} +\newcommand*\tud@if@strequal[2]{% + \begingroup% + \protected@edef\tud@res@a{% + \endgroup% + \noexpand\ifstrequal{#1}{#2}% + }% + \tud@res@a% +} +\newcommand*\tud@if@strstart[2]{% + \begingroup% + \protected@edef\tud@res@a{% + \endgroup% + \noexpand\Ifstrstart{\noexpand\detokenize{#1}}{\noexpand\detokenize{#2}}% + }% + \tud@res@a% +} +\newcommand*\tud@if@strempty{\tud@if@strequal{}} +\newcommand*\tud@if@strblank[1]{% + \begingroup% + \protected@edef\tud@res@a{% + \endgroup% + \noexpand\ifblank{#1}% + }% + \tud@res@a% +} % \end{macrocode} -% \end{macro}^^A \ifxblank +% \end{macro}^^A \tud@if@strblank +% \end{macro}^^A \tud@if@strempty +% \end{macro}^^A \tud@if@strstart +% \end{macro}^^A \tud@if@strequal % -% \subsubsection{Test auf booleschen Ausdruck in Form eines Strings} +% \minisec{Test auf booleschen Ausdruck in Form eines Strings} % -% \begin{macro}{\Ifstrbool} +% \begin{macro}{\tud@if@strbool} % \changes{v2.03}{2015/01/09}{neu}^^A % Dieser Befehl dient zum Testen, ob ein gegebener String als boolescher % Ausdruck interpretiert werden kann. Ist der String als \enquote{wahr} % interpretierbar, wird das zweite Argument ausgeführt. Kann der String als % \enquote{falsch} angesehen werden, dementsprechen das dritte. Ist der String % kein logischer Wert, kommt das letzte Argument zum Tragen. Die Syntax lautet: +% \newline +% \cs{tud@if@strbool}\marg{Argument}\marg{Wahr}\marg{Falsch}\marg{Andernfalls} +% \begin{macrocode} +\newcommand*\tud@if@strbool[4]{% + \TUD@set@ifkey{strbool}{@tempswa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \if@tempswa#2\else#3\fi% + \else% + #4 + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@if@strbool % -% \cs{Ifstrbool}\marg{Argument}\marg{Wahr}\marg{Falsch}\marg{Andernfalls} -% \begin{macrocode} -\newcommand*\Ifstrbool[4]{% - \Ifstr{#1}{true}{#2}{% - \Ifstr{#1}{on}{#2}{% - \Ifstr{#1}{yes}{#2}{% - \Ifstr{#1}{false}{#3}{% - \Ifstr{#1}{no}{#3}{% - \Ifstr{#1}{off}{#3}{% - #4% - }% - }% - }% - }% - }% - }% +% \minisec{Erzwungene Kleinschreibung von Strings} +% +% \begin{macro}{\tud@strlowercase} +% Dieses Makro expandiert das zweite Argument, setzt es in Minuskeln und +% speichert das Ergebnis in den im ersten Argument angegebenen Befehl. Dies +% wird zum Beispiel benötigt, um bestimmte Werte bei Schlüssel-Wert-Paaren, +% Schlüsselwörtern in einigen Feldern oder auch Einheiten bei Längenangaben +% sicher erkennen zu können. Die Syntax lautet: +% \newline +% \cs{tud@strlowercase}\marg{Zielmakro}\marg{String} benutzt. +% \begin{macrocode} +\newcommand*\tud@strlowercase[2]{% + \protected@edef#1{% + \lowercase{\def\noexpand#1{#2}}% + }#1% } % \end{macrocode} -% \end{macro}^^A \Ifstrbool +% \end{macro}^^A \tud@strlowercase % -% \subsubsection{Erzwungene Kleinschreibung von Strings} +% \minisec{Ausgabe einer Länge als Strings} % -% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in -% bestimmten Feldern mit Sicherheit erkennen zu können, werden diese zwingend -% in Kleinbuchstaben geschieben. -% \begin{macro}{\tud@lowerstring} -% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} benutzt. -% \ToDo{geht das eleganter als mit \cs{expandafter}?}[v2.07] +% \begin{macro}{\tud@strlength} +% \changes{v2.06o}{2022/07/28}{neu}^^A +% Die direkte Verwendung von \cs{the} auf ein \cs{skip}-Register hat zur Folge, +% dass die Einheit \val{pt} mit die Charactercodes \val{12} zurückgegeben +% werden, was bei der Weiterverarbeitung unter Umständen Probleme bereitet. +% Dieses Makro löst das Problem. % \begin{macrocode} -\newcommand*\tud@lowerstring[2]{% - \protected@edef#1{#2}% - \lowercase\expandafter{% - \expandafter\def\expandafter #1\expandafter{#1}% - }% +\newcommand*\tud@strlength[2]{% + \begingroup% + \def\tud@res@c{\glueexpr#2\relax}% + \edef\tud@res@a{\strip@pt\dimexpr\tud@res@c\relax pt}% + \edef\tud@res@b{\strip@pt\dimexpr\gluestretch\tud@res@c\relax}% + \ifdim\tud@res@b\p@=\z@\relax\else% + \eappto\tud@res@a{% + \space\@plus\space\tud@res@b% + \ifcase\gluestretchorder\tud@res@c pt\or fil\or fill\or filll\fi% + }% + \fi% + \edef\tud@res@b{\strip@pt\dimexpr\glueshrink\tud@res@c\relax}% + \ifdim\tud@res@b\p@=\z@\relax\else% + \eappto\tud@res@a{% + \space\@minus\space\tud@res@b% + \ifcase\glueshrinkorder\tud@res@c pt\or fil\or fill\or filll\fi% + }% + \fi% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@a% } % \end{macrocode} -% \end{macro}^^A \tud@lowerstring +% \end{macro}^^A \tud@strlength % % \subsubsection{Test auf eine verwendbare Sprache} % @@ -554,14 +621,14 @@ % Varianten getestet. Zunächst die Standardvariante in Kleinschreibung\dots % \begin{macrocode} \@tud@res@swatrue% - \tud@lowerstring\tud@res@a{#1#2.fd}% + \tud@strlowercase\tud@res@a{#1#2.fd}% \IfFileExists{\tud@res@a}{\@tud@res@swafalse}{}% % \end{macrocode} % \dots gefolgt von der Variante mit Kleinschreibung der Kodierung und dem % Namen der Schrift wie angegeben\dots % \begin{macrocode} \if@tud@res@swa% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{\tud@res@a#2.fd}% \IfFileExists{\tud@res@a}{\@tud@res@swafalse}{}% \fi% @@ -887,7 +954,7 @@ % \begin{macrocode} \newcommand*\TUD@set@ifkey[3]{% \begingroup% - \tud@lowerstring\tud@res@a{#3}% + \tud@strlowercase\tud@res@a{#3}% \edef\tud@res@a{% \endgroup% \unexpanded{\FamilySetBool{TUD}{#1}{#2}}{\tud@res@a}% @@ -905,7 +972,7 @@ % \begin{macrocode} \newcommand*\TUD@set@numkey[4]{% \begingroup% - \tud@lowerstring\tud@res@a{#4}% + \tud@strlowercase\tud@res@a{#4}% \edef\tud@res@a{% \endgroup% \unexpanded{\FamilySetNumerical{TUD}{#1}{#2}{#3}}{\tud@res@a}% @@ -930,7 +997,7 @@ % \begin{macrocode} \newcommand*\TUD@set@dimenkey[3]{% \begingroup% - \tud@lowerstring\tud@res@a{#3}% + \tud@strlowercase\tud@res@a{#3}% \edef\tud@res@a{% \endgroup% \unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% @@ -1023,7 +1090,7 @@ \booltrue{#1@locked}% } \newcommand*\tud@bool@set[2]{% - \Ifstrbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% + \tud@if@strbool{#2}{\booltrue{#1}}{\boolfalse{#1}}{% \PackageError{tudscrbase}{% `#2' is not a valid boolean expression% }{% @@ -1070,7 +1137,7 @@ % Dieser Befehl prüft, ob eine Familie für den Paramter definiert wurde. % \begin{macrocode} \newcommand*\TUD@parameter@checkfamily[2]{% - \ifxblank{#1}{% + \tud@if@strblank{#1}{% \PackageError{tudscrbase}{% No family for \@backslashchar#2 defined% }{% @@ -1197,7 +1264,7 @@ \newcommand*\TUD@parameter@handler@macro[3][\TUD@parameter@@family]{% \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@macro}% \expandafter\kv@set@family@handler\expandafter{#1}{% - \Ifstr{\kv@key}{\TUD@parameter@nokey}{#3}{#2}% + \tud@if@strequal{\kv@key}{\TUD@parameter@nokey}{#3}{#2}% }% } % \end{macrocode} @@ -1229,13 +1296,13 @@ % \begin{macrocode} \newcommand*\TUD@parameter@handler@default[2][\TUD@parameter@@family]{% \TUD@parameter@checkfamily{#1}{TUD@parameter@handler@default}% - \ifxblank{#2}{% + \tud@if@strblank{#2}{% \def\@tempa{\let\tud@reserved\relax}% }{% \def\@tempa{\def\tud@reserved{#2=\kv@value}}% }% \appto\@tempa{% - \Ifstr{\kv@value}{twocolumn}{\def\kv@value{2}}{}% + \tud@if@strequal{\kv@value}{twocolumn}{\def\kv@value{2}}{}% \Ifnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% \iflanguageloaded{\kv@value}{\def\tud@reserved{language=\kv@value}}{}% \ifx\tud@reserved\relax% diff --git a/source/tudscr-fields.dtx b/source/tudscr-fields.dtx index 1c8472d6..f89669c0 100644 --- a/source/tudscr-fields.dtx +++ b/source/tudscr-fields.dtx @@ -460,33 +460,33 @@ \sbox\z@{#2}% \let\thanks\@gobble% \let\footnote\@gobble% - \tud@lowerstring{\@tempa}{#2}% - \Ifstr{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% + \tud@strlowercase\@tempa{#2}% + \tud@if@strequal{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% \protected@edef\@tempa{% \endgroup% \def\noexpand\@tempa{\@tempa}% }% \@tempa% - \Ifstr{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% - \Ifstr{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% - \Ifstr{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% - \Ifstr{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% - \Ifstr{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% - \Ifstr{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% - \Ifstr{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% - \Ifstr{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% - \Ifstr{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% - \Ifstr{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% - \Ifstr{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% - \Ifstr{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% - \Ifstr{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% - \Ifstr{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% - \Ifstr{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% + \tud@if@strequal{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% + \tud@if@strequal{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% + \tud@if@strequal{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% + \tud@if@strequal{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% + \tud@if@strequal{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% + \tud@if@strequal{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% + \tud@if@strequal{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% + \tud@if@strequal{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% + \tud@if@strequal{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% + \tud@if@strequal{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% + \tud@if@strequal{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% + \tud@if@strequal{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% + \tud@if@strequal{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% + \tud@if@strequal{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% + \tud@if@strequal{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% \csdef{@#1}{#2}% }}}}}}}}}}}}}}}% } \newcommand*\tud@thesis@@do[2]{% - \Ifstr{#1}{subject}{% + \tud@if@strequal{#1}{subject}{% \ifx\@thesis\@empty\else% \ClassWarning{\TUD@Class@Name}{% Field `thesis' is overwritten by `subject'% @@ -528,7 +528,7 @@ \newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% \gdef\@graduationabbreviation{}% - \ifxblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% + \tud@if@strblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% \gdef\@graduation{#2}% } % \end{macrocode} @@ -751,7 +751,7 @@ \ifx\today#2\relax% \gdef#1{#2}% \else% - \ifxblank{#2}% + \tud@if@strblank{#2}% {\gdef#1{}}% {\gdef#1{\printdate{#2}}}% \fi% @@ -1139,16 +1139,16 @@ \newcommand*\tud@multiple@fields@preset[3]{% \def\@tempa##1{% \edef\@tempc{\csuse{##1}}% - \Ifstr{#2}{*}{% + \if\detokenize{#2*}\relax% \csdef{@##1}{}% - }{% + \else% \begingroup% \protected@expandtwoargs\in@{\@tempc}{\csuse{#1}}% \ifin@% \ifcsvoid{@##1}{\@tempc{#2}}{}% \fi% \endgroup% - }% + \fi% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index a6cd8f57..8c9eced6 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -534,7 +534,7 @@ not found for `#1' encoding. \MessageBreak% }% \if@tud@x@fontspec@enabled% - \Ifstr{\encodingdefault}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% \appto\tud@res@a{% It seems, you haven't installed the required\MessageBreak% OTF-font on your system. You should provide\MessageBreak% @@ -552,7 +552,7 @@ \fi% \@tud@res@swafalse% \@for\tud@res@c:=\tud@res@b\do{% - \Ifstr{\tud@res@c}{#1}{\@tud@res@swatrue}{}% + \tud@if@strequal{#1}{\tud@res@c}{\@tud@res@swatrue}{}% }% % \end{macrocode} % Wird eine unterstützte Kodierung verwendet, müssen die Schriften installiert @@ -570,8 +570,8 @@ . \MessageBreak% }% \else% - \Ifstr{\encodingdefault}{#1}{% - \Ifstr{TU}{#1}{% + \tud@if@strequal{#1}{\encodingdefault}{% + \tud@if@strequal{#1}{TU}{% \appto\tud@res@a{% You should either load package `fontspec'\MessageBreak% or % @@ -778,7 +778,7 @@ % dass es sich bei diesem um die gewünschte Schriftgröße handelt. % \begin{macrocode} \else% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \Ifdimen{\tud@res@a}{% \ifdim\tud@res@a>\z@\relax% \TUDoptions{fontsize=#1}% @@ -1955,7 +1955,7 @@ \renewcommand*\cdfont[1]{% \tud@cdfont@get{#1}% \ifx\@tempc\relax\else% - \Ifstr{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% + \tud@if@strequal{\@tempc}{dinbn}{\dinbn}{\csuse{univ\@tempc}}% \fi% }% \renewcommand*\textcd[2]{% @@ -1963,29 +1963,29 @@ \ifx\@tempc\relax% \textsf{#2}% \else% - \Ifstr{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% + \tud@if@strequal{\@tempc}{dinbn}{\textdbn{#2}}{\csuse{textu\@tempc}{#2}}% \fi% }% \fi \newcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \Ifstr{\@tempa}{l}{\def\@tempc{ln}}{% - \Ifstr{\@tempa}{}{\def\@tempc{rn}}{% - \Ifstr{\@tempa}{r}{\def\@tempc{rn}}{% - \Ifstr{\@tempa}{s}{\def\@tempc{sn}}{% - \Ifstr{\@tempa}{b}{\def\@tempc{bn}}{% - \Ifstr{\@tempa}{x}{\def\@tempc{xn}}{% - \Ifstr{\@tempa}{li}{\def\@tempc{li}}{% - \Ifstr{\@tempa}{il}{\def\@tempc{li}}{% - \Ifstr{\@tempa}{i}{\def\@tempc{ri}}{% - \Ifstr{\@tempa}{ri}{\def\@tempc{ri}}{% - \Ifstr{\@tempa}{ir}{\def\@tempc{ri}}{% - \Ifstr{\@tempa}{si}{\def\@tempc{si}}{% - \Ifstr{\@tempa}{is}{\def\@tempc{si}}{% - \Ifstr{\@tempa}{bi}{\def\@tempc{bi}}{% - \Ifstr{\@tempa}{ib}{\def\@tempc{bi}}{% - \Ifstr{\@tempa}{xi}{\def\@tempc{xi}}{% - \Ifstr{\@tempa}{ix}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{l} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{r} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{s} {\def\@tempc{sn}}{% + \tud@if@strequal{\@tempa}{b} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{x} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{li}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{il}{\def\@tempc{li}}{% + \tud@if@strequal{\@tempa}{i} {\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ri}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{ir}{\def\@tempc{ri}}{% + \tud@if@strequal{\@tempa}{si}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{is}{\def\@tempc{si}}{% + \tud@if@strequal{\@tempa}{bi}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{ib}{\def\@tempc{bi}}{% + \tud@if@strequal{\@tempa}{xi}{\def\@tempc{xi}}{% + \tud@if@strequal{\@tempa}{ix}{\def\@tempc{xi}}{% \let\@tempc\relax% %<*class> \ClassWarning{\TUD@Class@Name}% @@ -1999,20 +1999,20 @@ \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@get[1]{% \tud@cdfont@trim\@tempa{#1}% - \Ifstr{\@tempa}{45}{\def\@tempc{ln}}{% - \Ifstr{\@tempa}{55}{\def\@tempc{rn}}{% - \Ifstr{\@tempa}{65}{\def\@tempc{bn}}{% - \Ifstr{\@tempa}{75}{\def\@tempc{xn}}{% - \Ifstr{\@tempa}{45oblique}{\def\@tempc{ls}}{% - \Ifstr{\@tempa}{55oblique}{\def\@tempc{rs}}{% - \Ifstr{\@tempa}{65oblique}{\def\@tempc{bs}}{% - \Ifstr{\@tempa}{75oblique}{\def\@tempc{xs}}{% - \Ifstr{\@tempa}{oblique45}{\def\@tempc{ls}}{% - \Ifstr{\@tempa}{oblique55}{\def\@tempc{rs}}{% - \Ifstr{\@tempa}{oblique65}{\def\@tempc{bs}}{% - \Ifstr{\@tempa}{oblique75}{\def\@tempc{xs}}{% - \Ifstr{\@tempa}{din}{\def\@tempc{dinbn}}{% - \Ifstr{\@tempa}{din65}{\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{45} {\def\@tempc{ln}}{% + \tud@if@strequal{\@tempa}{55} {\def\@tempc{rn}}{% + \tud@if@strequal{\@tempa}{65} {\def\@tempc{bn}}{% + \tud@if@strequal{\@tempa}{75} {\def\@tempc{xn}}{% + \tud@if@strequal{\@tempa}{45oblique}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{55oblique}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{65oblique}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{75oblique}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{oblique45}{\def\@tempc{ls}}{% + \tud@if@strequal{\@tempa}{oblique55}{\def\@tempc{rs}}{% + \tud@if@strequal{\@tempa}{oblique65}{\def\@tempc{bs}}{% + \tud@if@strequal{\@tempa}{oblique75}{\def\@tempc{xs}}{% + \tud@if@strequal{\@tempa}{din} {\def\@tempc{dinbn}}{% + \tud@if@strequal{\@tempa}{din65} {\def\@tempc{dinbn}}{% \let\@tempc\relax% %<*class> \ClassWarning{\TUD@Class@Name}% @@ -2025,8 +2025,7 @@ }% \fi \newcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2047,8 +2046,7 @@ } \if@tud@cdoldfont@active \renewcommand*\tud@cdfont@trim[2]{% - \protected@edef\@tempa{\trim@spaces{#2}}% - \tud@lowerstring{\@tempa}{\@tempa}% + \tud@strlowercase\@tempa{\trim@spaces{#2}}% \tud@cdfont@@trim{ }{}% \tud@cdfont@@trim{-}{}% \tud@cdfont@@trim{_}{}% @@ -2279,7 +2277,7 @@ \edef\tud@ttfont@rb@scale{s*[\tud@ttfont@rb@scale]}% \begingroup% \def\tud@res@c##1##2{% - \tud@lowerstring\tud@res@a{##1}% + \tud@strlowercase\tud@res@a{##1}% \DeclareFontFamily{##1}{\tud@ttfont@rb}{\hyphenchar\font=\m@ne}% % \end{macrocode} % Das temporäre Makro verlangt im ersten Argument die NFSS-Serie, im zweiten @@ -2599,7 +2597,7 @@ \newcommand*\tud@math@map@@@greeks[1]{% \ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}% \ifcsundef{up#1}{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}% }{}% @@ -2641,7 +2639,7 @@ }% \tud@cs@use{mv@normal}% \let\tud@res@c\@empty% - \Ifstr{\tud@math@letters@enc}{\detokenize{OML}}{% + \tud@if@strequal{\tud@math@letters@enc}{OML}{% \def\tud@res@a##1{% \ifcsundef{it##1}{% \eappto\tud@res@c{% @@ -2654,7 +2652,7 @@ \tud@res@cnt=\z@\relax% \tud@math@loop@greeks@all\tud@res@a% }{}% - \Ifstr{\tud@math@operators@enc}{\detokenize{OT1}}{% + \tud@if@strequal{\tud@math@operators@enc}{OT1}{% \def\tud@res@a##1{% \ifcsundef{up##1}{% \eappto\tud@res@c{% @@ -3163,10 +3161,10 @@ \begingroup% \let\tud@res@a\relax% \if@tud@cdmath@active% - \Ifstr{#1}{normal}{% + \tud@if@strequal{#1}{normal}{% \def\tud@res@a{tudnormal}% }{% - \Ifstr{#1}{bold}{% + \tud@if@strequal{#1}{bold}{% \def\tud@res@a{tudbold}% }{}% }% @@ -3508,7 +3506,7 @@ }% } \newcommand*\tud@cdmath@also@@@greeks[1]{% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% \ifcsundef{\tud@res@a}{}{% \expandafter\tud@cdmath@declare@alias\expandafter{\tud@res@a}{up#1}% diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index 7bc2e8b5..436578de 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -416,7 +416,7 @@ \ifcase\csuse{tud@#1@level@num}\relax% false \if@titlepage\endgraf\fi% \csuse{phantomsection}% - \Ifstr{\@currenvir}{\tud@quoting}{}{% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% \if@twocolumn% \vskip\smallskipamount% \else% @@ -428,7 +428,7 @@ \if@titlepage\endgraf\fi% \csuse{phantomsection}% \@afterindentfalse% - \Ifstr{\@currenvir}{\tud@quoting}{}{% + \tud@if@strequal{\@currenvir}{\tud@quoting}{}{% \vskip\bigskipamount\vskip-\parskip% }% \begingroup% @@ -879,7 +879,7 @@ % gesetzt, falls kein anderer mit \opt{pagestyle} angegeben wurde. % \begin{macrocode} \TUD@parameter@def{markboth}[true]{% - \Ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@abstract@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% @@ -1127,7 +1127,7 @@ \TUD@parameter@def{columns}{\renewcommand*\tud@x@multicol@num{#1}}% \TUD@parameter@def{pagestyle}{\tud@fm@pagestyle{declaration}{#1}}% \TUD@parameter@def{markboth}[true]{% - \Ifstrbool{#1}{% + \tud@if@strbool{#1}{% \@tud@declaration@markbothtrue% \ifx\tud@envir@ps\relax\def\tud@envir@ps{headings}\fi% }{% diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index dcdd3893..15c58c07 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -486,7 +486,7 @@ \newcommand*\tud@pagecolor{}% \AfterPackage{xcolor}{% \apptocmd\normalcolor{% - \Ifstr{\tud@pagecolor}{HKS41}{\color{white}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{}% }{}{\tud@patch@wrn{normalcolor}}% \AtBeginDocument{% \ifdefvoid{\tud@pagecolor}{}{\sbox\z@{\color{\tud@pagecolor}}}% @@ -673,7 +673,7 @@ \newcommand*\tud@thesis@fontsize{} \newcommand*\tud@x@scr@headings@set[1][]{% \def\@tempa##1##2##3{% - \Ifstr{##1}{\tud@x@scr@headings@current}{}{% + \tud@if@strequal{##1}{\tud@x@scr@headings@current}{}{% \renewcommand*\tud@x@scr@headings@current{##1}% \renewcommand*\tud@sec@fontsize{##2}% \renewcommand*\tud@thesis@fontsize{##3}% @@ -688,10 +688,10 @@ % \begin{macrocode} \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% \@for\@tempc:=\@tempb\do{% - \Ifstr{standardclasses}{\@tempc}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% - \Ifstr{big}{\@tempc}{\@tempa{big}{\Huge}{\LARGE}}{% - \Ifstr{normal}{\@tempc}{\@tempa{normal}{\huge}{\Large}}{% - \Ifstr{small}{\@tempc}{\@tempa{small}{\LARGE}{\large}}{}}}}% + \tud@if@strequal{\@tempc}{standardclasses}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% + \tud@if@strequal{\@tempc}{big}{\@tempa{big}{\Huge}{\huge}{\LARGE}}{% + \tud@if@strequal{\@tempc}{normal}{\@tempa{normal}{\huge}{\LARGE}{\Large}}{% + \tud@if@strequal{\@tempc}{small}{\@tempa{small}{\LARGE}{\Large}{\large}}{}}}}% }% % \end{macrocode} % Der Abstand nach Teil- und Kapitelüberschriften wird ebenso in Abhängigkeit @@ -1142,7 +1142,7 @@ \tud@komafont@set{minisec}{% \tud@sec@fontface% \ifcase\tud@cd@section@num\relax\or\else% *color - \Ifstr{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{\color{HKS41}}% \fi% }% \fi% @@ -1772,7 +1772,7 @@ \At@startsection{% \renewcommand*\tud@section@fontcolor{}% \ifcase\tud@cd@section@num\relax\or\else% *color - \Ifstr{\tud@pagecolor}{HKS41}{}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{}{% \renewcommand*\tud@section@fontcolor{HKS41}% }% \fi% diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index 9dc99ff8..03522acc 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -438,8 +438,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{% @@ -458,8 +458,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{% @@ -630,7 +630,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}% @@ -921,7 +921,7 @@ \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. @@ -1433,7 +1433,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 @@ -2029,7 +2031,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}% @@ -2220,8 +2222,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,7 +2334,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}% @@ -2541,7 +2542,9 @@ % \if@tud@index\else% \IfValueT{#5}{% - \ifxblank{#5}{}{\addto@hook\tud@toks@{}}% + \tud@if@strblank{#5}% + {}% + {\addto@hook\tud@toks@{}}% }% \IfValueT{#6}{\addto@hook\tud@toks@{'#6'}}% \fi% @@ -2564,9 +2567,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% @@ -2696,13 +2699,15 @@ 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}% + {}% }% }% }{% @@ -2720,8 +2725,10 @@ % \begin{macrocode} \let\@tempb\relax% \IfValueT{#6}{% - \Ifstr{#6}{none}{\let\@tempa\@tempc}{% -% \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}}}{% +% \def\@tempb{% %<*class> \ClassWarning{tudscrmanual}% @@ -3343,8 +3350,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. @@ -3578,7 +3587,7 @@ % \IfValueT{#5}{% %<*class> - \Ifstr{#5}{declare}{% + \tud@if@strequal{#5}{declare}{% \appto\tud@lbl@tmp{-declare}% \appto\tud@idx@fmt{|declare}% }{% @@ -3778,7 +3787,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}}% @@ -3806,7 +3815,7 @@ % \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% % \let\tud@indexprologue\@empty% } @@ -4171,7 +4180,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 @@ -4205,7 +4214,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% @@ -4678,9 +4687,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 @@ -5053,10 +5062,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}% @@ -5086,7 +5095,7 @@ \Hy@raisedlink{\hyperdef{\jobname}{tutorials:\jobname}{}}% \faculty{}% \maketitle% - \ifblank{#1}{}{% + \tud@if@strblank{#1}{}{% \noindent% \begin{abstract}% \noindent#1% @@ -5676,7 +5685,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% diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 03f5945d..6737f651 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -121,7 +121,7 @@ \relax% \if@tud@bookmarks% \csuse{phantomsection}% - \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[{#1}]{#2}{#3}}% + \tud@if@strblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[{#1}]{#2}{#3}}% \fi% }% \renewcommand*\tud@x@hyperref@realfootnotes{% @@ -336,7 +336,7 @@ % \begin{macrocode} \newcommand*\tud@x@scr@pt{} \def\tud@x@scr@pt #1pt#2\@nil{% - \Ifstr{#2}{pt}{\Ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% + \tud@if@strequal{#2}{pt}{\Ifnumber{#1}{\@tud@x@scr@fontsize@settrue}{}}{}% } % \end{macrocode} % \end{macro}^^A \tud@x@scr@pt diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 79e58c00..9d578e18 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -327,7 +327,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \Ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \@tempc\rule{\layerwidth}{\layerheight}% @@ -354,7 +356,9 @@ \fi% }{% \def\@tempc{\color{HKS41}}% - \Ifstr{\tud@pagecolor}{HKS41}{\def\@tempc{\color{HKS41!60}}}{}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {\def\@tempc{\color{HKS41!60}}}% + {}% }% \ifx\@tempc\relax\else% \tud@ddc@check% @@ -790,7 +794,7 @@ % für farbige Titel- und Teileseiten\dots % \begin{macrocode} \tud@locked@bool@preset{@tud@head@widebar}{true}% - \Ifstr{\tud@pagecolor}{HKS41}{% + \tud@if@strequal{\tud@pagecolor}{HKS41}{% \renewcommand*\tud@head@logocolor{white}% \renewcommand*\tud@head@fontcolor{white}% \renewcommand*\tud@foot@logocolor{white}% @@ -833,7 +837,9 @@ % damit Seitenzahl und Kolumnentitel gegebenenfalls angepasst werden. % \begin{macrocode} \let\tud@dim@line\tud@dim@thinline% - \Ifstr{\tud@head@fontcolor}{white}{\let\tud@dim@line\tud@dim@heavyline}{}% + \tud@if@strequal{\tud@head@fontcolor}{white}% + {\let\tud@dim@line\tud@dim@heavyline}% + {}% \global\let\tud@foot@fontcolor\tud@foot@fontcolor% } % \end{macrocode} @@ -876,7 +882,7 @@ % gesetzt werden soll, wenn ein weiteres Feld nachfolgt. % \begin{macrocode} \newcommand*\tud@head@text@add[3][{, }]{% - \ifxblank{#3}{}{% + \tud@if@strblank{#3}{}{% \edef\tud@head@text@delimiter{\expandonce\tud@head@text@buffer}% \def\tud@head@text@buffer{#1}% \edef\@tempa{% @@ -935,7 +941,7 @@ % die zusätzliche Zeile in die Liste expandiert. % \begin{macrocode} \listeadd\tud@head@text@list{\expandonce\tud@head@text@line}% - \ifxblank{\@extraheadline}{}{% + \tud@if@strblank{\@extraheadline}{}{% \listadd\tud@head@text@list{\tud@head@font@light\@extraheadline}% }% \gdef\tud@head@text@wrn##1{% @@ -994,7 +1000,7 @@ % \begin{macrocode} \ifnum\tud@head@bar@num>\@ne\relax% cdhead=barcolor/color \ifdefvoid{\tud@pagecolor}{\color{HKS41}}{% - \Ifstr{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}{\color{white}}{\color{HKS41}}% }% \fi% }% @@ -1810,7 +1816,7 @@ % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. % \begin{macrocode} \else% - \tud@lowerstring\tud@res@a{#1}% + \tud@strlowercase\tud@res@a{#1}% \Ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% \fi% } @@ -2258,17 +2264,17 @@ % Wurde im optionalen Argument für zusätzliche Schrifteinstellungen ein Stern % verwendet, bleibt die bisherige Definition bestehen. % \begin{macrocode} - \if\detokenize{*#1}\relax\else% + \if\detokenize{#1*}\relax\else% \renewcommand*\tud@footcontent@fontface{#1}% \fi% % \end{macrocode} % Wurde in einem der Argumente für den linken und/oder rechten Inhalt ein Stern % verwendet, bleibt die bisherige Definition bestehen. % \begin{macrocode} - \if\detokenize{*#2}\relax\else% + \if\detokenize{#2*}\relax\else% \renewcommand*\tud@footcontent@left{#2}% \fi% - \if\detokenize{*#3}\relax\else% + \if\detokenize{#3*}\relax\else% \renewcommand*\tud@footcontent@right{#3}% \fi% } @@ -2303,7 +2309,7 @@ % \begin{macrocode} \newcommand*\tud@newline@poster{} \newcommand*\tud@footcontent@@left[1]{% - \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% + \tud@if@strblank{#1}{}{{\tud@head@font@@bold#1\newline}}% Technische Universit\"at Dresden% \tud@foot@line@write{faculty}% \tud@foot@line@write{department}% @@ -2343,7 +2349,7 @@ \let\@tempa\@author% }% \ifx\@tempa\@empty\else% - \ifxblank{#1}{}{{\tud@head@font@@bold#1\newline}}% + \tud@if@strblank{#1}{}{{\tud@head@font@@bold#1\newline}}% % \end{macrocode} % Das Makro zum Aufteilen der Autorenangaben wird für die hier benötigte Form % definiert. Die Ausgabe aller nicht \emph{lokal} angegebenen Felder wird @@ -2379,7 +2385,7 @@ \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% }% \ifx\@contactperson\@empty\else% - \ifxblank{#2}{}{{\tud@head@font@@bold#2\newline}}% + \tud@if@strblank{#2}{}{{\tud@head@font@@bold#2\newline}}% \renewcommand*\tud@split@contactperson@do[2]{% \tud@multiple@fields@store{@contactperson}{##1}% \tud@multiple@fields@preset{@contactperson}{*}{##1}% @@ -2642,7 +2648,7 @@ \newcommand*\tud@envir@ps{tudheadings} \newcommand*\tud@envir@selectps{% \expandafter\pagestyle\expandafter{\tud@envir@ps}% - \Ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty}{% \renewcommand*\titlepagestyle{empty}% %<*book|report> \renewcommand*\partpagestyle{empty}% @@ -2650,7 +2656,7 @@ % \renewcommand*\indexpagestyle{empty}% }{}% - \Ifstr{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% + \tud@if@strequal{\GetRealPageStyle{\tud@envir@ps}}{empty.tudheadings}{% \renewcommand*\titlepagestyle{empty.tudheadings}% %<*book|report> \renewcommand*\partpagestyle{empty.tudheadings}% @@ -2727,10 +2733,11 @@ % werden, wobei einer der \pgs{tudheadings}-Seitenstile verwendet wird. % \begin{macrocode} \TUD@parameter@def{pagestyle}{% - \tud@if@tudheadings{#1}{\renewcommand*\tud@envir@ps{#1}}{% - \Ifstr{#1}{empty}{\renewcommand*\tud@envir@ps{empty.tudheadings}}{% - \Ifstr{#1}{plain}{\renewcommand*\tud@envir@ps{plain.tudheadings}}{% - \Ifstr{#1}{headings}{\renewcommand*\tud@envir@ps{tudheadings}}{% + \tud@if@tudheadings{#1}{\def\tud@envir@ps{#1}}{% + \def\tud@envir@ps{tudheadings}% + \tud@if@strequal{#1}{empty}{\def\tud@envir@ps{empty.tudheadings}}{% + \tud@if@strequal{#1}{plain}{\def\tud@envir@ps{plain.tudheadings}}{% + \tud@if@strequal{#1}{headings}{}{% \TUD@parameter@error{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index 812843d7..db4f1f0d 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -146,11 +146,9 @@ % gespeichert. % \begin{macrocode} \def\@tempb##1{% - \expandafter\ifx\csname @##1\endcsname\@empty\else% - \expandafter\appto\expandafter\@tempa\expandafter{% - \expandafter,\csname ##1name\endcsname% - }% - \fi% + \tud@if@strempty{\csname @##1\endcsname}{}{% + \eappto\@tempa{,\expandafter\noexpand\csname ##1name\endcsname}% + }% }% \def\@tempa{% \namesname,\titlename,\issuedatetext,\duedatetext,\supervisorname% @@ -307,10 +305,10 @@ % oberen Teil. % \begin{macrocode} \def\tud@multiple@fields@output##1{% - \Ifstr{\tud@multiple@fields@style}{table}{% + \tud@if@strequal{\tud@multiple@fields@style}{table}{% \def\and{% \tabularnewline% - \Ifstr{\csuse{##1othername}}{}{}{% + \tud@if@strempty{\csuse{##1othername}}{}{% \csuse{##1othername}\tud@title@delimiter% }% & \def\and{\tabularnewline &}% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 141e62b6..29fc57f2 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -264,7 +264,9 @@ \tud@cs@use{maketitle}[\tud@title@pagenumber]% \fi% \tud@if@tudheadings{\currentpagestyle}{% - \Ifstr{\titlepagestyle}{empty}{\thispagestyle{empty.tudheadings}}{}% + \tud@if@strequal{\titlepagestyle}{empty}% + {\thispagestyle{empty.tudheadings}}% + {}% }{}% % \end{macrocode} % Für die \TUDScript-Klassen gibt es für doe Titleseite sowie den Titelkopf @@ -578,13 +580,13 @@ \tud@date@check% \ifx\@date\@empty\else% \vskip 2ex\@plus1ex\@minus1ex% - \ifxblank{\datetext}{}{\datetext\tud@title@delimiter}% + \tud@if@strblank{\datetext}{}{\datetext\tud@title@delimiter}% {\usekomafont{date}{\tud@date@print\par}}% % \end{macrocode} % Zusätzlich kann noch ein Datum der mündlichen Verteidigung angegeben werden. % \begin{macrocode} \ifx\@defensedate\@empty\else% - \ifxblank{\defensedatetext}{}{% + \tud@if@strblank{\defensedatetext}{}{% \defensedatetext\tud@title@delimiter% }% {\usekomafont{date}{\@defensedate\par}}% @@ -735,7 +737,9 @@ \newcommand*\tud@maketitle@inpage{% \renewcommand*\tud@title@fontcolor{}% \ifcase\tud@cd@title@num\relax\or\else% *color - \Ifstr{\tud@pagecolor}{HKS41}{}{\renewcommand*\tud@title@fontcolor{HKS41}}% + \tud@if@strequal{\tud@pagecolor}{HKS41}% + {}% + {\renewcommand*\tud@title@fontcolor{HKS41}}% \fi% \par% \ifx\tud@title@pagenumber\relax\else% @@ -1058,7 +1062,9 @@ \ifx\@dateofbirth\@empty\else% \if@titlepage% \tud@newline@title% - \ifxblank{\dateofbirthtext}{}{\dateofbirthtext\tud@title@delimiter}% + \tud@if@strblank{\dateofbirthtext}% + {}% + {\dateofbirthtext\tud@title@delimiter}% \@dateofbirth% \ifx\@placeofbirth\@empty\else% \nobreakspace\placeofbirthtext\nobreakspace\@placeofbirth% @@ -1068,15 +1074,17 @@ \fi% \fi% \def\@tempc##1{% - \Ifstr{\csuse{@##1}}{}{}{% + \expandafter\ifx\csname @##1\endcsname\@empty\else% \if@titlepage% \tud@newline@title% - \Ifstr{\csuse{##1name}}{}{}{\csuse{##1name}\tud@title@delimiter}% + \tud@if@strblank{\csuse{##1name}}% + {}% + {\csuse{##1name}\tud@title@delimiter}% \csuse{@##1}% \else% \tud@title@wrn{##1}% \fi% - }% + \fi% }% \@tempc{course}% \@tempc{discipline}% From 561e9fd6adb2edaab29092631020386a61d10e2f Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Mon, 1 Aug 2022 15:12:07 +0200 Subject: [PATCH 09/24] revision for length options - differentiating between glue and dim - improved handling of deprecated length registers --- source/tudscr-area.dtx | 4 +- source/tudscr-base.dtx | 337 ++++++++++++++++++++++++++++++++++-- source/tudscr-comp.dtx | 39 +++-- source/tudscr-fonts.dtx | 59 ++++--- source/tudscr-layout.dtx | 23 ++- source/tudscr-pagestyle.dtx | 26 +-- source/tudscr-title.dtx | 6 +- 7 files changed, 417 insertions(+), 77 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index 7da2d031..02cc5855 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -678,7 +678,7 @@ % \begin{macrocode} \newcommand*\tud@extrabottommargin@dim{0pt} \TUD@key{extrabottommargin}{% - \TUD@set@dimenkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}% + \TUD@set@dimkey{extrabottommargin}{\tud@extrabottommargin@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% \fi% @@ -699,7 +699,7 @@ % \begin{macrocode} \newcommand*\tud@bleedmargin@dim{.2in} \TUD@key{bleedmargin}{% - \TUD@set@dimenkey{bleedmargin}{\tud@bleedmargin@dim}{#1}% + \TUD@set@dimkey{bleedmargin}{\tud@bleedmargin@dim}{#1}% % \end{macrocode} % Negative Werte sind nicht möglich, diese werden automatisch korrigiert. % \begin{macrocode} diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 82c0bd3a..def975a5 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -500,6 +500,27 @@ % \end{macrocode} % \end{macro}^^A \tud@strlength % +% \minisec{Entfernen aller Leerzeichen in Strings} +% +% \begin{macro}{\tud@remove@spaces@within} +% Hiermit können in einem gegebenen String \emph{alle} Leerzeichen enthaltenen +% entfernt werden. Dies wird verwendet, um für \cs{TUD@set@gluekey} sowie +% \cs{TUD@set@dimkey} eine Warnung auszugeben, falls das übergebene Argument +% fehlerhaft formatiert ist, wobei Unterschiede bei Leerzeichen ignoriert +% werden sollen. +% \begin{macrocode} +\newcommand*\tud@remove@spaces@within[1]{% + \begingroup% + \protected@edef\tud@res@a{\noexpand\zap@space#1\space\noexpand\@empty}% + \protected@edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@a% +} +% \end{macrocode} +% \end{macro}^^A \tud@remove@spaces@within +% % \subsubsection{Test auf eine verwendbare Sprache} % % \begin{macro}{\iflanguageloaded} @@ -989,23 +1010,319 @@ % \end{macrocode} % \end{macro}^^A \TUD@bool@numkey % \end{macro}^^A \TUD@set@numkey -% \begin{macro}{\TUD@set@dimenkey} -% \changes{v2.05}{2016/06/15}{neu}^^A -% \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A -% Mit \cs{TUD@set@dimenkey} wird der übergebene Längenwert im spezifiezierten -% Makro gespeichert. +% \begin{macro}{\TUD@set@gluekey} +% \changes{v2.06o}{2022/08/01}{neu}^^A +% \begin{macro}{\tud@normalize@gluekey} +% \changes{v2.06o}{2022/08/01}{neu}^^A +% \begin{macro}{\tud@normalize@@gluekey} +% \changes{v2.06o}{2022/08/01}{neu}^^A +% \begin{macro}{\tud@validate@gluekey} +% \changes{v2.06o}{2022/08/01}{neu}^^A +% Mit \cs{TUD@set@gluekey} und \cs{TUD@set@dimkey} wird der übergebene Wert +% entweder als Skip (Länge mit Kleister) oder Dimension (Länge ohne Kleister) +% im spezifizierten Makro gespeichert, wobei auf eine gültige Eingabe geprüft +% wird. +% +% Wurde ein Argument übergeben, dass in einen String expandiert, ist einiger +% Aufwand notwendig, da das zugrunde liegende \cs{FamilySetLength} einen Fehler +% wirft, wenn eine Längenangabe mit falscher Einheit übergeben wird. Das +% optionale Argument gibt die gewünschte Längeneinheit an, falls diese im +% Argument nicht spezifiert wurde. +% \begin{macrocode} +\newcommand*\TUD@set@gluekey[4][pt]{% + \begingroup% + \tud@strlowercase\tud@res@a{#4}% +% \end{macrocode} +% Es wird geprüft, ob das Argument zu einem String expandiert. Ist dies der +% Fall, wird die vermeintliche Längenangabe mit \cs{tud@normalize@gluekey} +% normalisiert, wobei das Resultat in das Makro im ersten Argument des Befehls +% zurückgeschrieben wird. Sollte das Normalisieren nicht gelingen, wird ein +% leerer Wert zurückgegeben. +% \begin{macrocode} + \edef\tud@res@b{\detokenize\expandafter{\tud@res@a}}% + \edef\tud@res@c{\detokenize\expandafter{\@backslashchar}}% + \@expandtwoargs\in@{\tud@res@c}{\tud@res@b}% + \ifin@\else% + \tud@normalize@gluekey\tud@res@a{#1}% + \fi% +% \end{macrocode} +% Konnte eine Längenangabe interpretiert werden, wird für ein falsch +% formatiertes Argument mit \cs{tud@validate@gluekey} ggf. eine Warnung +% ausgegeben und anschließend der gültige Wert gesetzt. % \begin{macrocode} -\newcommand*\TUD@set@dimenkey[3]{% + \protected@edef\tud@res@a{% + \endgroup% + \ifx\tud@res@a\@empty% + \noexpand\FamilyKeyStateUnknownValue% + \else% + \unexpanded{\tud@validate@gluekey{#2}}{\tud@res@a}{#4}% + \unexpanded{\FamilySetUseLengthMacro{TUD}{#2}{#3}}{\tud@res@a}% + \fi% + }% + \tud@res@a% +} +% \end{macrocode} +% Das Makro \cs{tud@normalize@gluekey} erhält im ersten Argument den zu +% interpretierenden String und im zweiten die ggf. zu setzende Einheit. Dieser +% String wird in den Basiswert und möglichen Kleister aufgetrennt, wobei +% hierbei auch eine vertauschte und eigentlich fehlerhafte Angabe von Kleister +% in der Form |... minus ... plus ...| verarbeitet wird. +% \begin{macrocode} +\newcommand*\tud@normalize@gluekey[2]{% \begingroup% - \tud@strlowercase\tud@res@a{#3}% - \edef\tud@res@a{% + \edef\tud@res@c{#1}% + \def\tud@res@a##1plus##2plus##3\@nil{% + \let\tud@res@a\@empty% + \tud@res@b##1minusminus\@nil% + \tud@res@b##2minusminus\@nil% + }% +% \end{macrocode} +% Die vier Token \marg{Grundwert}\marg{negativ}\marg{positiv}\marg{negativ} +% werden in \cs{tud@res@a} geschrieben, wobei der zweite Token mit negativem +% Kleister gesetzt ist, falls dieser \emph{vor} dem positiven angegeben wurde. +% \begin{macrocode} + \def\tud@res@b##1minus##2minus##3\@nil{% + \eappto\tud@res@a{{\trim@spaces{##1}}{\trim@spaces{##2}}}% + }% + \expandafter\tud@res@a\tud@res@c plusplus\@nil% +% \end{macrocode} +% Hier wird dementsprechend \cs{tud@res@a} auf drei Token reduziert und so +% definiert, dass auf den Grundwert erst der positive und danach der negative +% Kleister folgt. +% \begin{macrocode} + \def\tud@res@b##1##2##3##4{% + \IfArgIsEmpty{##2}{% + \def\tud@res@a{{##1}{##3}{##4}}% + }{% + \def\tud@res@a{{##1}{##3}{##2}}% + }% + }% + \expandafter\tud@res@b\tud@res@a% +% \end{macrocode} +% Jeder der drei Token wird nun mit \cs{tud@normalize@@gluekey} geprüft, ob +% es sich tatsächlich um eine Dimensionsangabe oder zumindest einen Zahlenwert +% handelt. Für letzteren Fall wird die übergebene Einheit angehangen. Kann ein +% Token nicht als Dimensionsangabe interpretiert werden~-- das übergebene Makro +% wird zu \cs{relax} gesetzt~-- wird der Prozess abgebrochen. +% \begin{macrocode} + \edef\tud@res@b{% + \unexpanded{\@tfor\tud@res@b:=}\tud@res@a% + }% + \let\tud@res@c\@empty% + \@tud@res@swatrue% + \tud@res@b\do{% + \tud@normalize@@gluekey\tud@res@a{\tud@res@b}{#2}% + \ifx\tud@res@a\relax% + \@tud@res@swafalse% + \@break@tfor% + \else% + \eappto\tud@res@c{{\tud@res@a}}% + \fi% + }% +% \end{macrocode} +% Nach dem Durchlauf enthält \cs{tud@res@c} alle drei zuvor extrahierten Token, +% die ggf. um eine Einheit ergänzt wurden, falls diese gegeben waren. Der erste +% Token erhält folgend eine Sonderbehandlung. Wenn dieser leer ist, wird er auf +% alle Fälle gesetzt, da es sonst zu Problemen bei der Wertzuweisung an ein +% Längenregister gibt. +% \begin{macrocode} + \let\tud@res@a\@empty% + \if@tud@res@swa% + \def\tud@res@b##1##2##3{% + \IfArgIsEmpty{##1}{\def\tud@res@b{0#2}}{\def\tud@res@b{##1}}% + \Ifdimen{\tud@res@b}{% + \edef\tud@res@a{% + \tud@res@b% + \IfArgIsEmpty{##2}{}{\space\@plus\space##2}% + \IfArgIsEmpty{##3}{}{\space\@minus\space##3}% + }% + }{}% + }% + \expandafter\tud@res@b\tud@res@c% + \fi% + \edef\tud@res@c{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@c% +} +% \end{macrocode} +% Diese Makro behandelt die einzelnen extrahierten Token. Dabei müssen zuerst +% die Vorzeichen beachtet werden, welches erst in \cs{tud@res@b} gesichert und +% anschließend von \cs{tud@res@a} entfernt wird. +% \begin{macrocode} +\newcommand*\tud@normalize@@gluekey[3]{% + \begingroup% + \edef\tud@res@a{#2}% + \@tud@res@swafalse% + \expandafter\if\expandafter\@car\tud@res@a\relax\@nil+\@tud@res@swatrue\fi% + \expandafter\if\expandafter\@car\tud@res@a\relax\@nil-\@tud@res@swatrue\fi% + \if@tud@res@swa% + \protected@edef\tud@res@b{\expandafter\@car\tud@res@a\relax\@nil}% + \protected@edef\tud@res@a{\expandafter\@gobble\tud@res@a}% + \else% + \let\tud@res@b\@empty% + \fi% +% \end{macrocode} +% Danach wird mit \cs{Ifdimen} geprüft, ob die Angabe tatsächlich eine Länge +% ist. Hier kommt zum Tragen, das \cs{Ifdimen} auch wahr ist, wenn lediglich +% eine gültige Einheit ohne Maßzahl (\cs{Ifdimen}|{pt}|) angegeben wird. +% Für Werte ohne Dimensionsangabe wird gegebenenfalls einfach das optionale +% Argument als intendierte angenommen. Sollte es sich bei dem Argument nicht um +% einen String sondern um eine \TeX"~Primitive oder ein geschütztes Makro +% handeln, wird kein \val{true}-Zweig durchlaufen. +% \begin{macrocode} + \@tud@res@swatrue% + \Ifdimen{\tud@res@a}{}{% + \Ifdimen{\tud@res@a#3}{% + \appto\tud@res@a{#3}% + }{% + \@tud@res@swafalse% + }% + }% +% \end{macrocode} +% Wertangaben ohne Betrag werden ignoriert. +% \begin{macrocode} + \if@tud@res@swa% + \Ifisdimension{\tud@res@a}{}{% + \let\tud@res@a\@empty% + \let\tud@res@b\@empty% + }% + \else% +% \end{macrocode} +% Sollte keine gültige Dimension angegeben worden sein, wird nun geprüft, ob es +% sich um eine dehnbare Länge handelt. Diese \emph{muss} mit einer Maßzahl +% genutzt werden. Fehlt diese, wird \val{1} angenommen. Außerdem ist zu +% beachten, dass es insgesamt drei Abstufungen der dehnbaren Ausdrücke +% existieren. +% \begin{macrocode} + \def\tud@res@c##1fil##2fil##3\@nil{% + \IfArgIsEmpty{##1}{\def\tud@res@a{1}}{\def\tud@res@a{##1}}% + \Ifdimen{\tud@res@a pt}{\@tud@res@swatrue}{\@tud@res@swafalse}% + \if@tud@res@swa% + \appto\tud@res@a{fil##2}% + \tud@if@strequal{##2}{}{}{% + \tud@if@strequal{##2}{l}{}{% + \tud@if@strequal{##2}{ll}{}{\@tud@res@swafalse}% + }% + }% + \fi% + }% + \expandafter\tud@res@c\tud@res@a filfil\@nil% + \fi% +% \end{macrocode} +% Das Vorzeichen nicht vergessen! +% \begin{macrocode} + \edef\tud@res@c{% \endgroup% - \unexpanded{\FamilySetUseLengthMacro{TUD}{#1}{#2}}{\tud@res@a}% + \if@tud@res@swa% + \unexpanded{\def#1}{\tud@res@b\tud@res@a}% + \else% + \unexpanded{\let#1\relax}% + \fi% }% + \tud@res@c% +} +% \end{macrocode} +% Mit diesem Makro wird ganz am Ende des Interpretationsprozesses das Ergebnis +% mit dem angegbenen Argument verglichen und eine Warnung erzeugt, falls die +% Formatierung des Argumentes es notwendig machte, dieses zu interpretieren. +% \begin{macrocode} +\newcommand*\tud@validate@gluekey[3]{% + \begingroup% +% \end{macrocode} +% Unterschiede bei Leerzeichen sollen keine Warnung erzeugen. +% \begin{macrocode} + \protected@edef\tud@res@a{#2}% + \protected@edef\tud@res@b{#3}% + \tud@remove@spaces@within\tud@res@a% + \tud@remove@spaces@within\tud@res@b% + \ifx\tud@res@a\tud@res@b% + \aftergroup\@gobble% + \else% + \aftergroup\@firstofone% + \fi% + \endgroup{% + \PackageWarning{tudscrbase}{% + The length `#3'\MessageBreak% + seems to be wrong formatted. Assuming, you meant\MessageBreak% + `#1=#2'% + }% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@validate@gluekey +% \end{macro}^^A \tud@normalize@@gluekey +% \end{macro}^^A \tud@normalize@gluekey +% \end{macro}^^A \TUD@set@gluekey +% \begin{macro}{\TUD@set@dimkey} +% \changes{v2.05}{2016/06/15}{neu}^^A +% \changes{v2.06}{2018/08/01}{forcierte Kleinschreibung Schlüsselwerte}^^A +% Zur Angabe von Dimensionen wird auf \cs{TUD@set@gluekey} zurückgegriffen +% und anschließend geprüft, ob das Argument für \cs{dimen} genutzt werden kann. +% \begin{macrocode} +\newcommand*\TUD@set@dimkey[4][pt]{% + \begingroup% + \TUD@set@gluekey[{#1}]{#2}{\tud@res@a}{#4}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% +% \end{macrocode} +% Das Ergebnis der Wertzuweisung an \cs{TUD@set@gluekey} wurde im Makro +% \cs{tud@res@a} gespeichert. Handelt es sich beim Argument um ein +% \cs{skip}"~Register oder eine \cs{glueexpr}, kann nicht sichergestellt +% werden, dass diesem später doch noch Kleister hinzugefügt wird, weshalb diese +% nicht akzeptiert werden. +% \begin{macrocode} + \@tud@res@swafalse% + \Ifisskip{\tud@res@a}{% + \protected@edef\tud@res@a{\dimexpr\tud@res@a\relax}% + \def\tud@res@b{a \string\skip\space register}% + \@tud@res@swatrue% + }{% + \Ifisglueexpr{\tud@res@a}{% + \protected@edef\tud@res@a{\dimexpr\tud@res@a\relax}% + \def\tud@res@b{a glue expression}% + \@tud@res@swatrue% + }{% +% \end{macrocode} +% Ebenso wird direkt angegebener Kleister entfernt. Nicht über das Konstrukt +% mit \cs{@tempdima} und \cs{glueexpr} wundern. Ohne das Paket \pkg{calc} ist +% die Zuweisung von Kleister als String an ein \cs{dimen}-Register nicht ohne +% weiteres möglich. Die Verwendung \cs{glueexpr} dient quasi als Umschlag. +% \begin{macrocode} + \Ifisglue{\tud@res@a}{% + \Ifisdimension{\tud@res@a}{}{% + \setlength\@tempdima{\dimexpr\glueexpr\tud@res@a\relax\relax}% + \tud@strlength\tud@res@a{\@tempdima}% + \def\tud@res@b{something containing glue}% + \@tud@res@swatrue% + }% + }{}% + }% + }% +% \end{macrocode} +% Sollte einer der zuvor beschriebenen Fälle aufgetreten sein, wird eine +% Warnung ausgegeben. +% \begin{macrocode} + \if@tud@res@swa% + \PackageWarning{tudscrbase}{% + Using option `#2' with\MessageBreak% + \tud@res@b\space(#4)\MessageBreak% + is not recommended. You should consider to use\MessageBreak% + an expression for a dimen instead. Setting\MessageBreak% + `#2=\tud@res@a'% + }% + \fi% + \protected@edef\tud@res@a{% + \endgroup% + \unexpanded{\FamilySetUseLengthMacro{TUD}{#2}{#3}}{\tud@res@a}% + }% + \else% + \def\tud@res@a{\endgroup\FamilyKeyStateUnknownValue}% + \fi% \tud@res@a% } % \end{macrocode} -% \end{macro}^^A \TUD@set@dimenkey +% \end{macro}^^A \TUD@set@dimkey % \begin{macro}{\TUD@unknown@keyval} % Dieser Befehl wird lediglich pro forma definiert. An diesen kann eine Liste % möglicher Wertzuweisungen übergeben werden, welche durch \KOMAScript{} diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 47cd22e4..23223dcc 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -114,7 +114,7 @@ % \changes{v2.03}{2015/02/05}{neu}^^A % \begin{macro}{\TUD@deprecated@@cs} % \changes{v2.06}{2018/08/07}{neu}^^A -% \begin{macro}{\TUD@deprecated@lengthcs} +% \begin{macro}{\TUD@deprecated@length} % \changes{v2.05}{2016/06/20}{neu}^^A % Um alte Optionen und Befehle dem Anwender bei der Verwendung kenntlich zu % machen, werden entsprechende Warnungen definiert. Für Optionen wird dabei @@ -186,21 +186,28 @@ }{}% } %<*class> -\newcommand*\TUD@deprecated@lengthcs[2][]{% - \ifdim\csuse{#2}<\maxdimen\relax% - \ClassWarning{\TUD@Class@Name}{% - Using the length `\@backslashchar#2' is deprecated. \MessageBreak% - You should use option `#2' instead% - }% - \csxdef{tud@dim@#2}{\the\csuse{#2}}% - \expandafter\setlength\csname #2\endcsname{\maxdimen}% - \global\csuse{#2}=\csuse{#2}% - #1% +\newcommand*\TUD@deprecated@length[1]{% + \ifdim#1<\maxdimen\relax% + \begingroup% + \tud@strlength\tud@res@a{#1}% + \edef\tud@res@b{\expandafter\@gobble\string#1}% + \ClassWarning{\TUD@Class@Name}{% + Setting length `\string#1' is deprecated. \MessageBreak% + The option `\tud@res@b=\tud@res@a'\MessageBreak% + is used instead% + }% + \edef\tud@res@a{% + \endgroup% + \noexpand\TUDoption{\tud@res@b}{\tud@res@a}% + \global\noexpand\csletcs{tud@\tud@res@b @dim}{tud@\tud@res@b @dim}% + }% + \tud@res@a% + \global\setlength#1{\maxdimen}% \fi% } % % \end{macrocode} -% \end{macro}^^A \TUD@deprecated@lengthcs +% \end{macro}^^A \TUD@deprecated@length % \end{macro}^^A \TUD@deprecated@@cs % \end{macro}^^A \TUD@deprecated@cs % \end{macro}^^A \TUD@deprecated@key @@ -836,8 +843,9 @@ % Um die Höhe von Logos im Fußbereich der \pgs{tudheadings}-Seitenstile % einheitlich festzulegen, gab es bis einschließlich der Version~v2.04 die % Länge \cs{footlogoheight} anstelle der Option \opt{footlogoheight}. Sollte -% der Anwender diese anpassen, wird \cs{tud@footlogoheight@dim} auf diesen Wert -% gesetzt und eine Warnung erzeugt. +% der Anwender die Länge anpassen, wird dies mit \cs{TUD@deprecated@length} an +% der entsprechenden Stelle geprüft und die korrespondierende Option auf +% diesen Wert gesetzt, wobei eine Warnung erzeugt wird. % \begin{macrocode} \tud@newglue\footlogoheight \tud@setdim\footlogoheight{\maxdimen} @@ -850,7 +858,8 @@ % Mit diesen Längen konnte der Anwender vor der Version~v2.05 die Überschriften % von Titel, Teilen und Kapiteln vertikal verschieben. Diese Funktionalität % wird seitdem mit den Optionen \opt{headingsvskip} und \opt{pageheadingsvskip} -% abgedeckt. +% abgedeckt. Auch hier wird eine Warnung erzeugt, falls der Anwender diesen +% Wert ändern sollte. % \begin{macrocode} %<*book|report|article> \tud@newglue\pageheadingsvskip diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 8c9eced6..422b6548 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -778,14 +778,11 @@ % dass es sich bei diesem um die gewünschte Schriftgröße handelt. % \begin{macrocode} \else% - \tud@strlowercase\tud@res@a{#1}% - \Ifdimen{\tud@res@a}{% - \ifdim\tud@res@a>\z@\relax% - \TUDoptions{fontsize=#1}% - \tud@cdfont@activate% - \FamilyKeyStateProcessed% - \fi% - }{}% + \TUD@set@dimkey{cdfont}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{fontsize=#1}% + \tud@cdfont@activate% + \fi% \fi% } \newcommand*\tud@cdfont@activate{% @@ -944,8 +941,11 @@ % \begin{macrocode} \tud@newif\if@tud@x@scr@fontsize@set \TUD@key{fontsize}{% - \TUD@set@dimenkey{fontsize}{\@tempa}{#1}% + \TUD@set@dimkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifdim\@tempa<\p@\relax% + \FamilyKeyStateUnknownValue% + \else% % \end{macrocode} % Für das Paket wird geprüft, ob die gerade abgearbeitete Option global als % Klassenoption angegeben wurde. Für den Fall, dass dies nicht so ist~-- die @@ -953,20 +953,37 @@ % dem Hinweis auf das vorgeschlagene Vorgehen ausgegeben. % \begin{macrocode} %<*package> - \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}% - \ifin@\else% - \edef\tud@res@a{% - \noexpand\PackageWarning{tudscrfonts}% - {% - The key `\CurrentOption' should only be\MessageBreak% - used as class option% + \@expandtwoargs\in@{,\CurrentOption,}{,\@globaloptionslist,}% + \ifin@\else% + \edef\tud@res@a{% + \noexpand\PackageWarning{tudscrfonts}% + {% + The key `\CurrentOption' should only be\MessageBreak% + used as class option% + }% }% - }% - \expandafter\AtEndOfPackage\expandafter{\tud@res@a}% - \fi + \expandafter\AtEndOfPackage\expandafter{\tud@res@a}% + \fi% % - \@tud@x@scr@fontsize@settrue% - \TUD@KOMAoptions{fontsize=#1}% + \@tud@x@scr@fontsize@settrue% + \TUD@KOMAoptions{fontsize=#1}% + \fi% + \fi% +% \end{macrocode} +% Für ungültige Werte wird eine Warnung ausgegeben. +% \begin{macrocode} + \ifx\FamilyKeyState\FamilyKeyStateUnknownValue% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +% +%<*package> + \PackageWarningNoLine{tudscrfonts}% +% + {% + The value for option `fontsize' must be a dimension\MessageBreak% + and at least 1pt but `#1' was given% + }% + \FamilyKeyStateProcessed% \fi% } %<*class> diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index 15c58c07..a6e5aa0e 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -556,13 +556,13 @@ % die des Titelkopfes (\opt{titlepage}|=|\val{false}) verschoben. % \begin{macrocode} %<*book|report|article> -\newcommand*\tud@pageheadingsvskip@dim{0pt} -\TUD@key{pageheadingsvskip}{% - \TUD@set@dimenkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}% -} \newcommand*\tud@headingsvskip@dim{0pt} \TUD@key{headingsvskip}{% - \TUD@set@dimenkey{headingsvskip}{\tud@headingsvskip@dim}{#1}% + \TUD@set@dimkey{headingsvskip}{\tud@headingsvskip@dim}{#1}% +} +\newcommand*\tud@pageheadingsvskip@dim{\tud@headingsvskip@dim} +\TUD@key{pageheadingsvskip}{% + \TUD@set@dimkey{pageheadingsvskip}{\tud@pageheadingsvskip@dim}{#1}% } % % \end{macrocode} @@ -1469,6 +1469,9 @@ % und die vertikalen Abstände neu definiert. % \begin{macrocode} %<*book|report> +\AddtoDoHook{heading/preinit/part}{ + \TUD@deprecated@length\pageheadingsvskip% +} \newcommand*\tud@partheadstartvskip{% \renewcommand*\tud@part@fontcolor{}% false/true \ifcase\tud@cd@part@num\relax\or\or% litecolor @@ -1484,7 +1487,6 @@ \fi% \tud@cd@specialpage@set{part}% \tud@cd@headstart@vskip% - \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% } % @@ -1577,6 +1579,13 @@ % den Benutzer verschoben werden. Außerdem werden die benötigten Farben für die % jeweils gewählte Option ausgewählt. % \begin{macrocode} +\AddtoDoHook{heading/preinit/chapter}{ + \if@tud@chapterpage% + \TUD@deprecated@length\pageheadingsvskip% + \else% + \TUD@deprecated@length\headingsvskip% + \fi% +} \newcommand*\tud@chapterheadstartvskip{% \renewcommand*\tud@chapter@fontcolor{}% \ifcase\tud@cd@chapter@num\relax\or\else% *color @@ -1584,10 +1593,8 @@ \fi% \tud@cd@headstart@vskip% \if@tud@chapterpage% - \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \else% - \TUD@deprecated@lengthcs{headingsvskip}% \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \fi% } diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 9d578e18..786c91c3 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -393,9 +393,6 @@ % Layers nicht vollständig genutzt, um bei einem farbigen Fußbereich einen % gewissen Abstand vom Inhalt zur Kante zu erhalten. % \begin{macrocode} - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% % \end{macrocode} % Im Bedarfsfall werden die Boxen vor der Ausgabe durch die einzelnen @@ -415,9 +412,6 @@ \ModifyLayer[% addvoffset=-\tud@dim@ddcdiff+\ht\strutbox,% contents={% - \TUD@deprecated@lengthcs[% - \global\@tud@footlogo@option@settrue% - ]{footlogoheight}% \tud@setdim\@tempdima{\layerheight-\dp\strutbox}% \tud@ddc@check% \ifcase\@tempb\relax% \tud@ddc@foot@num=false @@ -717,6 +711,7 @@ \DeclarePageStyleAlias{headings}{tudheadings}% \def\sls@currentheadings{tudheadings}% \def\sls@currentplain{plain.tudheadings}% + \TUD@deprecated@length\footlogoheight% } % \end{macrocode} % \end{macro}^^A \tud@ps@onselect @@ -1816,8 +1811,10 @@ % Außerdem kann mit der Option \opt{extrabottommargin} gesetzt werden. % \begin{macrocode} \else% - \tud@strlowercase\tud@res@a{#1}% - \Ifdimen{\tud@res@a}{\TUDoptions{extrabottommargin=#1}}{}% + \TUD@set@dimkey{cdfoot}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \TUDoptions{extrabottommargin=#1}% + \fi% \fi% } % \end{macrocode} @@ -1875,11 +1872,6 @@ % \end{macro}^^A \if@tud@foot@colored % \end{option}^^A cdfoot % -% \iffalse -% -%<*class> -% \fi -% % \subsubsection{Optionales \DDC-Logo oder Drittlogos} % % \begin{option}{footlogoheight} @@ -1892,23 +1884,20 @@ % festzulegen. Dabei wird der gewünschte Wert in \cs{tud@footlogoheight@dim} % abgelegt. % \begin{macrocode} -%<*option> \newcommand*\tud@footlogoheight@dim{} \let\tud@footlogoheight@dim\relax \TUD@key{footlogoheight}{% - \TUD@set@dimenkey{footlogoheight}{\tud@footlogoheight@dim}{#1}% + \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \tud@length@setabsolute\tud@footlogoheight@dim% \global\@tud@footlogo@option@settrue% \fi% } -% % \end{macrocode} % Da sich mit der Version~v2.03 die Standardhöhe des \DDC-Logos im Fußbereich % geändert hat, wird dieser Wert abhängig von der Einstellung für die Option % \opt{tudscrver} nach der Abarbeitung der Optionen am Ende der Klasse gesetzt. % \begin{macrocode} -%<*body> \AtEndOfClass{% \ifdefvoid{\tud@footlogoheight@dim}{% \tud@if@v@lower{2.03}{% @@ -1918,13 +1907,12 @@ }% }{}% } -% % \end{macrocode} % \end{macro}^^A \tud@footlogoheight@dim % \end{option}^^A footlogoheight % % \iffalse -% +% %<*class&body> % \fi % diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 29fc57f2..fba100c6 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -242,6 +242,10 @@ \newcommand*\tud@title@pagenumber{} \let\tud@title@pagenumber\relax \newcommand*\tud@maketitle[1][]{% +%<*book|report|article> + \TUD@deprecated@length\pageheadingsvskip% + \TUD@deprecated@length\headingsvskip% +% \begingroup% \cleardoublepage% % \end{macrocode} @@ -475,7 +479,6 @@ % Höhe steht wie die Überschriften auf Teil- und Kapitelseiten. % \begin{macrocode} \tud@cd@headstart@vskip% - \TUD@deprecated@lengthcs{pageheadingsvskip}% \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \tud@cd@vphantom% \setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative% @@ -793,7 +796,6 @@ \global\@topnum=\z@% \tud@cd@headstart@vskip% %<*book|report|article> - \TUD@deprecated@lengthcs{headingsvskip}% \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% \tud@cd@vphantom% % From 149e77ca29024a89390d38c9effb7de5420fe9b9 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Tue, 2 Aug 2022 00:19:29 +0200 Subject: [PATCH 10/24] revise font selection - dedicated check for math fonts - initialize math versions for all possible font face combinations - rename internal macros related to option `relspacing` - suppress warnings during `siunitx` workaround --- source/tudscr-comp.dtx | 6 + source/tudscr-fonts.dtx | 731 ++++++++++++++++++++++++--------------- source/tudscr-layout.dtx | 11 +- source/tudscr-misc.dtx | 14 +- 4 files changed, 467 insertions(+), 295 deletions(-) diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 23223dcc..43c75bf1 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -2017,6 +2017,8 @@ \tud@cs@store{shapedefault}% \tud@cs@store{normalfont}% \let\normalfont\relax% + \let\abovecaptionskip\relax% + \let\belowcaptionskip\relax% \PassOptionsToClass{serifmath}{#1}% }% \AfterClass{#1}{% @@ -2037,6 +2039,10 @@ \tud@cs@restore{seriesdefault}% \tud@cs@restore{shapedefault}% \tud@cs@restore{normalfont}% + \newlength\abovecaptionskip% + \newlength\belowcaptionskip% + \setlength\abovecaptionskip{10\p@}% + \setlength\belowcaptionskip{0\p@}% #2% \AfterPackage{tudscrfonts}{% \def\dinBold{\dinbn}% diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 422b6548..a9034984 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -89,6 +89,7 @@ % den Mathematiksatz verbessert}^^A % \changes{v2.04c}{2015/11/29}{Bugfix für \pkg{fontspec} bei fehlenden % Schriften}^^A +% \changes{v2.06o}{2022/08/01}{Mathematikschriftstärke passend zu Fließtext}^^A % % % @@ -347,6 +348,10 @@ % \changes{v2.06}{2018/07/12}{neu}^^A % \begin{macro}{\if@tud@cdfont@db@exist} % \changes{v2.06}{2018/07/12}{neu}^^A +% \begin{macro}{\if@tud@cdmath@fam@exist} +% \changes{v2.06o}{2022/08/01}{neu} +% \begin{macro}{\if@tud@cdmath@db@exist} +% \changes{v2.06o}{2022/08/01}{neu} % \begin{macro}{\tud@x@mathastext@enc} % \changes{v2.06a}{2019/07/09}{neu}^^A % Mit \cs{tud@cdfont@check} wird geprüft, ob die Schrift \OpenSans respektive @@ -359,6 +364,8 @@ % \begin{macrocode} \tud@newif\if@tud@cdfont@fam@exist \tud@newif\if@tud@cdfont@db@exist +\tud@newif\if@tud@cdmath@fam@exist +\tud@newif\if@tud@cdmath@db@exist \newcommand*\tud@x@mathastext@enc{OT1} \newcommand*\tud@cdfont@check{% \if@tud@cdoldfont@active% @@ -367,8 +374,8 @@ LightOblique,Oblique,BoldOblique,BlackOblique% }{\tud@cdfont@fam@lf}{@tud@cdfont@fam@exist}% \tud@cdfont@@check{DIN}{Bold}{\tud@cdfont@db}{@tud@cdfont@db@exist}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}% - \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% + \tud@cdfont@@@check{OT1,OML,OMS}{\tud@cdfont@db}{@tud@cdmath@db@exist}% \else% % \end{macrocode} % Die Version von \pkg{opensans} wird geprüft. Das Paket \pkg{iwona} wird @@ -401,17 +408,23 @@ % \cs{MTDeclareVersion} aus dem Paket \pkg{mathastext} genutzt. Dabei wird die % Kodierung der Mathematikschriften identisch zur genutzten Eingabekodierung % für den Text gesetzt, da diese in der Version \val{v1.3t} nicht problemfrei -% unabhängig davon gewählt werden kann. Sämtliche fehlenden Kodierungen werden -% notdürftig mit dem Paket \pkg{iwona} definiert. Zur Definition griechischer -% Glyphen wird die LGR-Kodierung der \OpenSans genutzt. -% \begin{macrocode} - \edef\tud@res@b{\encodingdefault}% - \@tfor\tud@res@a:={T1}{TU}{EU1}{EU2}\do{% - \ifx\tud@res@a\tud@res@b% - \let\tud@x@mathastext@enc\tud@res@b% - \@break@tfor +% unabhängig davon gewählt werden kann. +% \begin{macrocode} + \@expandtwoargs\in@{,\encodingdefault,}{,OT1,T1,TU,EU1,EU2,}% + \ifin@% + \let\tud@x@mathastext@enc\encodingdefault% +% \end{macrocode} +% Der Test auf das Vorhandensein der \OpenSans wird nur durchgeführt, wenn es +% sich nicht um eine Unicode"=Eingabekodierung handelt. +% \begin{macrocode} + \@expandtwoargs\in@{,\tud@x@mathastext@enc,}{,TU,EU1,EU2,}% + \ifin@% + \@tud@cdmath@fam@existtrue% + \else% + \tud@cdfont@@@check{\tud@x@mathastext@enc}% + {\tud@cdfont@fam@lf}{@tud@cdmath@fam@exist}% \fi% - }% + \fi% \fi% } % \end{macrocode} @@ -479,9 +492,10 @@ % \end{macrocode} % Hiermit wird auf Type1-Schriften in den notwendigen Kodierungen für den % Mathematiksatz geprüft. Warnungen für fehlende Schriften werden dem Hook -% \cs{tud@cdmath@wrn} hinzugefügt. +% \cs{tud@cdmath@wrn} hinzugefügt und der im dritten Argument gegebene Schalter +% wird entsprechend gesetzt. % \begin{macrocode} -\newcommand*\tud@cdfont@@@check[2]{% +\newcommand*\tud@cdfont@@@check[3]{% \@tud@res@swatrue% \def\tud@res@a##1##2{% \@tud@res@swafalse% @@ -499,10 +513,14 @@ }% \@for\tud@res@c:={#1}\do{\tud@res@b{\tud@res@c}{#2}}% % \end{macrocode} -% Wurde mindestens eine notwendige nicht gefunden, wird \opt{cdmath=false} -% gesetzt. War diese zuvor aktiv, wird eine Warnung dazu ausgegeben. +% Wurde mindestens eine notwendige Type1-Schrift nicht gefunden, wird die +% Option \opt{cdmath=false} gesetzt. War diese zuvor aktiv, wird eine Warnung +% dazu ausgegeben. % \begin{macrocode} - \if@tud@res@swa\else% + \if@tud@res@swa% + \booltrue{#3}% + \else% + \boolfalse{#3}% \AtBeginDocument{% \if@tud@cdmath@active% %<*class> @@ -515,8 +533,12 @@ Some math font encodings are missing. \MessageBreak% The option `cdmath=false' is executed. You should\MessageBreak% either use this option by yourself or install\MessageBreak% - all necessary fonts with a installation script\MessageBreak% - listed in the manual + \if@tud@cdoldfont@active% + all necessary fonts with a installation script\MessageBreak% + listed in the manual% + \else% + package `opensans'% + \fi% }% \fi% \TUDoptions{cdmath=false}% @@ -601,6 +623,8 @@ } % \end{macrocode} % \end{macro}^^A \tud@x@mathastext@enc +% \end{macro}^^A \if@tud@cdmath@db@exist +% \end{macro}^^A \if@tud@cdmath@fam@exist % \end{macro}^^A \if@tud@cdfont@db@exist % \end{macro}^^A \if@tud@cdfont@fam@exist % \end{macro}^^A \tud@cdfont@missing @@ -844,12 +868,12 @@ \@tud@cdoldfont@activefalse% \@tud@cdoldfont@nodintrue% % \end{macrocode} -% Achtung, nicht verwirren lassen! Mit \opt{cdoldfonts=false} kann beim Laden +% Achtung, nicht verwirren lassen! Mit \opt{cdoldfont=false} kann beim Laden % der Klasse die Verwendung der alten Schriften deaktiviert werden. Dabei wird % nicht beeinflusst, ob die Schriften des \CDs (\opt{cdfont=true/false}) denn % überhaupt zum Einsatz kommen. Nachdem die Klasse geladen wurde, wird jedoch -% \opt{cdoldfonts} eingefroren, ist diese aktiv, kann sie ab diesem Zeitpunkt -% nicht mehr deaktiviert werden. Dann kann mit \opt{cdoldfonts=false} quasi das +% \opt{cdoldfont} eingefroren, ist diese aktiv, kann sie ab diesem Zeitpunkt +% nicht mehr deaktiviert werden. Dann kann mit \opt{cdoldfont=false} quasi das % gleiche Verhalten wie mit \opt{cdfont=false} erzeugt werden. % \begin{macrocode} \if@tud@cdoldfont@active% @@ -873,6 +897,7 @@ \TUDoptions{cdfont=#1}% \fi% } +\TUD@key{cdoldfonts}[true]{\TUDoptions{cdoldfont=#1}} %<*class> \AtEndOfClass% % @@ -939,7 +964,9 @@ % für das Laden der \TUDScript-Klasse ein Schlüssel definiert, der den Wert an % \KOMAScript{} weiterreicht. % \begin{macrocode} +%<*class> \tud@newif\if@tud@x@scr@fontsize@set +% \TUD@key{fontsize}{% \TUD@set@dimkey{fontsize}{\@tempa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -965,7 +992,9 @@ \expandafter\AtEndOfPackage\expandafter{\tud@res@a}% \fi% % +%<*class> \@tud@x@scr@fontsize@settrue% +% \TUD@KOMAoptions{fontsize=#1}% \fi% \fi% @@ -996,8 +1025,8 @@ \RelaxFamilyKey{TUD}{fontsize}% \DefineFamilyMember{KOMA}% \DefineFamilyKey{KOMA}{fontsize}{% - \@tud@x@scr@fontsize@settrue% %<*class> + \@tud@x@scr@fontsize@settrue% \ClassWarning{\TUD@Class@Name}% % %<*package> @@ -1007,7 +1036,7 @@ The key `fontsize=#1' should only be\MessageBreak% used as class option% }% - \TUD@SpecialOptionAtDocument{tud@font@set}% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% \FamilyKeyStateProcessed% }% } @@ -1016,13 +1045,13 @@ % \end{option}^^A fontsize % \begin{option}{relspacing} % \changes{v2.05}{2015/12/17}{neu}^^A +% \changes{v2.06o}{2022/08/08}{stärkerer Einfluss der Schriftgröße}^^A % \begin{macro}{\if@tud@relspacing} % \changes{v2.05}{2015/12/17}{neu}^^ % Die Option \opt{relspacing} setzt einige Abstände und Längen in Abhängigkeit % der aktuellen Grundschriftgröße, wenn sie aktiviert wurde. Die verwendete % Grundschriftgröße kann mit der \KOMAScript-Option \opt{fontsize} eingestellt -% werden. Die Definiton der Längen wird durch das Makro \cs{tud@font@skip@set} -% vorgenommen. +% werden. Die Längendefinition erfolgt durch das Makro \cs{tud@relspacing@set}. % \begin{macrocode} \tud@newif\if@tud@relspacing \TUD@key{relspacing}[true]{% @@ -1037,7 +1066,7 @@ \or% true \@tud@relspacingtrue% \fi% - \TUD@SpecialOptionAtDocument{tud@font@skip@set}% + \TUD@SpecialOptionAtDocument{tud@relspacing@set}% \fi% } % \end{macrocode} @@ -1109,7 +1138,7 @@ }% \edef\tud@res@a{% \endgroup% - \noexpand\DeclareRobustCommand% + \noexpand\renewrobustcmd*% \expandafter\noexpand\csname #1family\endcsname{% \expandafter\noexpand\csname tud@x@fontspec@fam@#2\endcsname% }% @@ -1147,13 +1176,15 @@ % des \CDs aktiviert. Dabei werden die Pakete \pkg{fontspec} und \pkg{mweights} % beachtet. % \begin{macrocode} -\newcommand*\tud@font@set{% +\newcommand*\tud@font@set[1][\tud@cdfont@wrn]{% % \end{macrocode} -% Ist die Verwendung der Schriften des \CDs gewünscht, werden die Schnitte der -% Standardschriften vorher vorher gesichert, um diese später vollständig -% wiederherstellen zu können. +% Ist die Verwendung der Schriften des \CDs gewünscht, obwohl diese nicht +% installiert sind, werden die entsprechenden Warnungen ausgegeben. Danach +% werden die Schnitte der Standardschriften gesichert, um diese später +% vollständig wiederherstellen zu können. % \begin{macrocode} \if@tud@cdfont@active% + #1% \tud@cs@store{rmdefault}% \tud@cs@store{sfdefault}% \tud@cs@store{ttdefault}% @@ -1242,7 +1273,7 @@ % definiert. Danach wird gewählte Standardschrift aktiviert und für die Klassen % das Layout erneuert. % \begin{macrocode} - \tud@font@skip@set% + \tud@relspacing@set% \normalfont\selectfont% %<*class> \tud@cd@process% @@ -1305,11 +1336,6 @@ \fi% \tud@cdfont@@set% \fi% -% \end{macrocode} -% Sollte versucht werden, die Schriften zu aktivieren, obwohl diese nicht -% installiert sind, werden die entsprechenden Warnungen ausgegeben. -% \begin{macrocode} - \tud@cdfont@wrn% } \newcommand*\tud@cdfont@md{m} \newcommand*\tud@cdfont@bf{b} @@ -1468,10 +1494,11 @@ } % \end{macrocode} % \end{macro}^^A \tud@cdfont@declare@textsymb -% \begin{macro}{\tud@font@skip@set} +% \begin{macro}{\tud@relspacing@set} % \changes{v2.04}{2015/02/17}{neu}^^A -% \begin{macro}{\tud@font@skip@@set} +% \begin{macro}{\tud@relspacing@@set} % \changes{v2.04}{2015/03/27}{neu}^^A +% \changes{v2.06o}{2022/08/08}{\cs{abovedisplayskip} als Referenz}^^A % \begin{macro}{\smallskipamount} % \changes{v2.04}{2015/04/24}{Wert abhängig von der Schriftgröße}^^A % \begin{macro}{\medskipamount} @@ -1487,7 +1514,7 @@ % Abstände angepasst, die bei den \KOMAScript-Klassen nicht abhängig von dieser % sind. % \begin{macrocode} -\newcommand*\tud@font@skip@set{% +\newcommand*\tud@relspacing@set{% % \end{macrocode} % Es werden die Standardeinstellungen abhängig von \opt{cdfont} entweder % wiederhergestellt oder gesichert und neu definiert. @@ -1499,7 +1526,7 @@ \tud@cslength@store{abovecaptionskip}% \tud@cslength@store{belowcaptionskip}% \tud@cslength@store{columnsep}% - \tud@font@skip@@set% + \tud@relspacing@@set% \else% \tud@cslength@restore{smallskipamount}% \tud@cslength@restore{medskipamount}% @@ -1512,15 +1539,33 @@ % \end{macrocode} % Hiermit erfolgt das eigentliche Setzen der Abstände. % \begin{macrocode} -\newcommand*\tud@font@skip@@set{% - \smallskipamount=\partopsep% - \medskipamount=\partopsep% - \multiply\medskipamount by 2% - \bigskipamount=\partopsep% - \multiply\bigskipamount by 4% - \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% - \tud@setdim\belowcaptionskip{\z@}% - \tud@setdim\columnsep{1.1\baselineskip}% +\newcommand*\tud@relspacing@@set{% + \tud@if@v@lower{2.06}{% + \bigskipamount=\partopsep% + \multiply\bigskipamount by 4% + }{% + \begingroup% + \tud@setdim\@tempdima{\dimexpr\abovedisplayskip\relax}% + \tud@setdim\@tempdimb{\@tempdima/3}% + \edef\tud@res@a{% + \endgroup% + \noexpand\tud@setglue\noexpand\bigskipamount{% + \the\@tempdima\@plus\the\@tempdimb\@minus\the\@tempdimb% + }% + }% + \tud@res@a% + }% + \medskipamount=\bigskipamount% + \divide\medskipamount by 2% + \smallskipamount=\bigskipamount% + \divide\smallskipamount by 4% + \tud@if@lengthregister{\abovecaptionskip}{% + \tud@setdim\abovecaptionskip{1\bigskipamount*5/6}% + }{}% + \tud@if@lengthregister{\belowcaptionskip}{% + \tud@setdim\belowcaptionskip{\z@}% + }{}% + \tud@setdim\columnsep{1\baselineskip*11/10}% } % \end{macrocode} % \end{macro}^^A \columnsep @@ -1529,10 +1574,14 @@ % \end{macro}^^A \bigskipamount % \end{macro}^^A \medskipamount % \end{macro}^^A \smallskipamount -% \end{macro}^^A \tud@font@skip@@set -% \end{macro}^^A \tud@font@skip@set +% \end{macro}^^A \tud@relspacing@@set +% \end{macro}^^A \tud@relspacing@set % \begin{macro}{\tud@cdfont@init} % \changes{v2.04}{2015/03/10}{neu}^^A +% \begin{macro}{\tud@cdfont@@init} +% \changes{v2.06o}{2022/08/01}{neu} +% \begin{macro}{\tud@cdfont@@@init} +% \changes{v2.06o}{2022/08/01}{neu} % \begin{macro}{\cdfontln} % \changes{v2.06}{2018/06/29}{neu}^^A % \begin{macro}{\cdfontrn} @@ -1574,9 +1623,15 @@ % \begin{macro}{\textcdxs} % \changes{v2.06}{2018/06/29}{neu}^^A % Das Makro \cs{tud@cdfont@init} wird für die Defintion aller Befehle zur -% Auswahl der Schriften des \CDs verwendet. +% Auswahl der Schriften des \CDs verwendet. Dabei erfolgt die Definition der +% Schriften selbst mit \cs{tud@cdfont@@init} und das Festlegen der Befehle zur +% expliziten Schriftauswahl mit \cs{tud@cdfont@@@init}. % \begin{macrocode} \newcommand*\tud@cdfont@init{% + \tud@cdfont@@init% + \tud@cdfont@@@init% +} +\newcommand*\tud@cdfont@@init{% % \end{macrocode} % Zur Nutztung der OTF"~Schriften werden mit \cs{tud@x@fontspec@init} alle % benötigten Schriftfamilien mit ihren einzelnen Schriftschnitten definiert. @@ -1641,36 +1696,41 @@ % definiert. Diese können so im Dokument unabhängig von der Option % \opt{cdfont} genutzt werden. % \begin{macrocode} - \newrobustcmd*\cdfontln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\cdfontrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\cdfontsn{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{n}} - \newrobustcmd*\cdfontbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\cdfontxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\cdfontli{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{it}} - \newrobustcmd*\cdfontri{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{it}} - \newrobustcmd*\cdfontsi{\usefont{\encodingdefault}{\tud@cdfont@fam}{sb}{it}} - \newrobustcmd*\cdfontbi{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{it}} - \newrobustcmd*\cdfontxi{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{it}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\cdfontln{l}{n}% + \tud@res@a\cdfontrn{m}{n}% + \tud@res@a\cdfontsn{sb}{n}% + \tud@res@a\cdfontbn{b}{n}% + \tud@res@a\cdfontxn{eb}{n}% + \tud@res@a\cdfontli{l}{it}% + \tud@res@a\cdfontri{m}{it}% + \tud@res@a\cdfontsi{sb}{it}% + \tud@res@a\cdfontbi{b}{it}% + \tud@res@a\cdfontxi{eb}{it}% % \end{macrocode} % Sind die notwendigen Schriften nicht installiert, werden die Schalter für die % Rückfallebene so definiert, dass diese eine Warnung ausgeben. % \begin{macrocode} \else% - \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up} - \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up} - \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up} - \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up} - \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up} - \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it} - \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it} - \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it} - \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it} - \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it} + \tud@cdfont@fallback\cdfontln{OpenSans-Light}{md}{up}% + \tud@cdfont@fallback\cdfontrn{OpenSans-Regular}{md}{up}% + \tud@cdfont@fallback\cdfontsn{OpenSans-SemiBold}{md}{up}% + \tud@cdfont@fallback\cdfontbn{OpenSans-Bold}{bf}{up}% + \tud@cdfont@fallback\cdfontxn{OpenSans-ExtraBold}{bf}{up}% + \tud@cdfont@fallback\cdfontli{OpenSans-LightItalic}{md}{it}% + \tud@cdfont@fallback\cdfontri{OpenSans-Italic}{md}{it}% + \tud@cdfont@fallback\cdfontsi{OpenSans-SemiBoldItalic}{md}{it}% + \tud@cdfont@fallback\cdfontbi{OpenSans-BoldItalic}{bf}{it}% + \tud@cdfont@fallback\cdfontxi{OpenSans-ExtraBoldItalic}{bf}{it}% \fi% +} % \end{macrocode} % Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle % bereitgestellt. % \begin{macrocode} +\newcommand*\tud@cdfont@@@init{% \newcommand*\textcdln{}% \newcommand*\textcdrn{}% \newcommand*\textcdsn{}% @@ -1713,6 +1773,8 @@ % \end{macro}^^A \cdfontsn % \end{macro}^^A \cdfontrn % \end{macro}^^A \cdfontln +% \end{macro}^^A \tud@cdfont@@@init +% \end{macro}^^A \tud@cdfont@@init % \end{macro}^^A \tud@cdfont@init % \begin{macro}{\univln} % \begin{macro}{\univrn} @@ -1737,7 +1799,7 @@ % Die Definition der Befehle der veralteten Schriften des \CDs. % \begin{macrocode} \if@tud@cdoldfont@active - \renewcommand*\tud@cdfont@init{% + \renewcommand*\tud@cdfont@@init{% \if@tud@cdfont@fam@exist% \if@tud@x@fontspec@enabled% \def\tud@res@a{% @@ -1758,27 +1820,30 @@ % \end{macrocode} % Die Schalter zur expliziten Auswahl für die \Univers-Schriftschnitte. % \begin{macrocode} - \newrobustcmd*\univln{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{n}} - \newrobustcmd*\univrn{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{n}} - \newrobustcmd*\univbn{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{n}} - \newrobustcmd*\univxn{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{n}} - \newrobustcmd*\univls{\usefont{\encodingdefault}{\tud@cdfont@fam}{l}{sl}} - \newrobustcmd*\univrs{\usefont{\encodingdefault}{\tud@cdfont@fam}{m}{sl}} - \newrobustcmd*\univbs{\usefont{\encodingdefault}{\tud@cdfont@fam}{b}{sl}} - \newrobustcmd*\univxs{\usefont{\encodingdefault}{\tud@cdfont@fam}{eb}{sl}} + \def\tud@res@a##1##2##3{% + \newrobustcmd*##1{\usefont{\f@encoding}{\tud@cdfont@fam}{##2}{##3}}% + }% + \tud@res@a\univln{l}{n}% + \tud@res@a\univrn{m}{n}% + \tud@res@a\univbn{b}{n}% + \tud@res@a\univxn{eb}{n}% + \tud@res@a\univls{l}{it}% + \tud@res@a\univrs{m}{it}% + \tud@res@a\univbs{b}{it}% + \tud@res@a\univxs{eb}{it}% % \end{macrocode} % Sind die notwendigen Schriften nicht installiert, werden die Schalter für die % Rückfallebene so definiert, dass diese eine Warnung ausgeben. % \begin{macrocode} \else% - \tud@cdfont@fallback\univln{Univers-Light}{md}{up} - \tud@cdfont@fallback\univrn{Univers}{md}{up} - \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up} - \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up} - \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{sl} - \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{sl} - \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{sl} - \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{sl} + \tud@cdfont@fallback\univln{Univers-Light}{md}{up}% + \tud@cdfont@fallback\univrn{Univers}{md}{up}% + \tud@cdfont@fallback\univbn{Univers-Bold}{bf}{up}% + \tud@cdfont@fallback\univxn{Univers-Black}{bf}{up}% + \tud@cdfont@fallback\univls{Univers-LightOblique}{md}{it}% + \tud@cdfont@fallback\univrs{Univers-Oblique}{md}{it}% + \tud@cdfont@fallback\univbs{Univers-BoldOblique}{bf}{it}% + \tud@cdfont@fallback\univxs{Univers-BlackOblique}{bf}{it}% \fi% % \end{macrocode} % Außerdem werden für die Schriften noch die entsprechenden Textauswahlbefehle @@ -1813,26 +1878,6 @@ \newrobustcmd*\cdfontsi{\univrs}% \newrobustcmd*\cdfontbi{\univbs}% \newrobustcmd*\cdfontxi{\univxs}% - \newcommand*\textcdln{}% - \newcommand*\textcdrn{}% - \newcommand*\textcdsn{}% - \newcommand*\textcdbn{}% - \newcommand*\textcdxn{}% - \newcommand*\textcdli{}% - \newcommand*\textcdri{}% - \newcommand*\textcdsi{}% - \newcommand*\textcdbi{}% - \newcommand*\textcdxi{}% - \DeclareTextFontCommand\textcdln{\cdfontln}% - \DeclareTextFontCommand\textcdrn{\cdfontrn}% - \DeclareTextFontCommand\textcdsn{\cdfontsn}% - \DeclareTextFontCommand\textcdbn{\cdfontbn}% - \DeclareTextFontCommand\textcdxn{\cdfontxn}% - \DeclareTextFontCommand\textcdli{\cdfontli}% - \DeclareTextFontCommand\textcdri{\cdfontri}% - \DeclareTextFontCommand\textcdsi{\cdfontsi}% - \DeclareTextFontCommand\textcdbi{\cdfontbi}% - \DeclareTextFontCommand\textcdxi{\cdfontxi}% % \end{macrocode} % Anschließend wird für \DIN äquivalent verfahren. % \begin{macrocode} @@ -1857,7 +1902,7 @@ % Bei der Schriftauswahl wird die entsprechende Mathematikschrift aktiviert. % \begin{macrocode} \newrobustcmd*\tud@db{% - \usefont{\encodingdefault}{\tud@cdfont@db}{b}{n}% + \usefont{\f@encoding}{\tud@cdfont@db}{b}{n}% \if@tud@cdmath@active\mathversion{tuddin}\fi% }% \newrobustcmd*\dinbn{\tud@db}% @@ -2235,6 +2280,8 @@ % \end{macro}^^A \tud@ttfont@set % \begin{macro}{\tud@ttfont@init} % \changes{v2.06}{2018/07/12}{neu}^^A +% \changes{v2.06o}{2022/08/01}{Anpassungen für \val{TS1}-Kodierung; wird immer +% definiert und \cs{DeclareEncodingSubset} wird verwendet}^^A % \begin{macro}{\tud@ttfont@rb@scale} % \changes{v2.06}{2018/08/30}{neu}^^A % Mit \cs{tud@ttfont@init} erfolgt die Defintion der TypeWriter-Schriften. @@ -2335,8 +2382,29 @@ }% \tud@res@c{OT1}{true}% \tud@res@c{T1}{true}% - \ifcsundef{T@TS1}{}{\tud@res@c{TS1}{false}}% - \endgroup% +% \end{macrocode} +% Mit \LaTeXe~2020/02/02 wird die \val{TS1}-Kodierung immer definiert und +% gleichzeitg ein Kompatibilitätslevel für verschiedene Schriftfamilien +% eingeführt. Da hier eine Schriftfamilie für die skalierte \texttt{RobotoMono} +% definiert wird, wird der Kompatibilitätslevel dementsprechend übernommen. +% \begin{macrocode} + \tud@res@c{TS1}{false}% + \def\tud@res@a{\endgroup}% + \def\tud@res@b{TS1:RobotoMono-TLF}% + \ifcsundef{\tud@res@b}{% +%<*class> + \ClassWarningNoLine{\TUD@Class@Name}% +% +%<*package> + \PackageWarningNoLine{tudscrfonts}% +% + {`\tud@res@b' encoding subset undefinied}% + }{% + \eappto\tud@res@a{% + \noexpand\DeclareEncodingSubset{TS1}{tudtt}{\csuse{\tud@res@b}}% + }% + }% + \tud@res@a% \fi% \fi% } @@ -2843,26 +2911,24 @@ % \changes{v2.06a}{2019/07/09}{Bugfix für \pkg{mathastext} Eingabekodierung}^^A % \begin{macro}{\tud@cdmath@@init} % \changes{v2.06}{2018/07/02}{neu}^^A -% \begin{macro}{\mv@tudnormal} -% \begin{macro}{\mv@tudbold} -% \begin{macro}{\mv@tuddin} +% \begin{macro}{\tud@cdmath@@@init} +% \changes{v2.06o}{2022/08/01}{neu} +% \begin{macro}{\tud@cdmath@@@@@init} +% \changes{v2.06o}{2022/08/01}{neu} +% \begin{macro}{\tud@cdmath@set} +% \changes{v2.06o}{2022/08/01}{neu} +% \begin{macro}{\tud@cdmath@normal@name} +% \changes{v2.06o}{2022/08/01}{neu} +% \begin{macro}{\tud@cdmath@bold@name} +% \changes{v2.06o}{2022/08/01}{neu} % \begin{macro}{\tud@mathversion} % \changes{v2.06}{2019/06/17}{neu}^^A % \begin{macro}{\MTDeclareVersion} % \changes{v2.06}{2019/06/17}{neu}^^A -% \begin{macro}{\MTversion@@} -% \changes{v2.06}{2019/06/17}{neu}^^A % Die folgenden Befehle dienen allesamt für das Bereitstellen der Schriften des % \CDs im mathematischen Satz. Hierbei kommt das Paket \pkg{mathastext} zum % Einsatz, falls \OpenSans verwendet wird. % \begin{macrocode} -\newcommand*\mv@tudnormal{} -\newcommand*\mv@tudbold{} -\newcommand*\mv@tuddin{} -% \end{macrocode} -% Mit \cs{tud@cdmath@init} werden für den Mathematikmodus die Schriften im -% \CD deklariert. -% \begin{macrocode} \newcommand*\tud@cdmath@init{% % \end{macrocode} % Für die Schriftfamilie \OpenSans existieren leider bisher keine Kodierung für @@ -2871,17 +2937,17 @@ % ermöglichen. Dabei wird die Computer~Modern in der \val{LGR}~Kodierung % zwingend benötigt. % -% Für die LGR-Kodierung werden die Bundles \pkg{cbfonts} und \pkg{cbfonts-fd} +% Für die LGR-Kodierung werden die Bundles \bdl{cbfonts} und \bdl{cbfonts-fd} % benötigt. Leider lässt sich momentan nur auf letzteres testen. Für ersteres -% ließe sich |\font\testfont=grmn1200|\footnote{\file{ltxcheck.tex}} oder -% \verb+\immediate\openin\pathfont="|kpsewhich grmn1200.tfm"+\ignorespaces% -% \footnote{\url{https://tex.stackexchange.com/questions/306980/}} oder nutzen. -% Beide Ansätze sind aber nicht vollends stimmig. Der erste funktioniert nicht, -% sobald der Anwender \val{-interaction-mode} selbst definiert und für den -% zweiten müssen zumindest eingeschränkte Schreibrechte aktiviert sein. +% ließe sich |\font\testfont=grmn1200|\footnote{\file{ltxcheck.tex}} oder der +% externe Aufruf \verb+\immediate\openin\pathfont="|kpsewhich grmn1200.tfm"+ +% nutzen\footnote{\url{https://tex.stackexchange.com/q/306980}}. Beide Ansätze +% sind aber nicht vollends stimmig. Der erste funktioniert nicht, sobald der +% Anwender \val{-interaction-mode} selbst definiert und für den zweiten müssen +% zumindest eingeschränkte Schreibrechte zwingend aktiviert sein. % \begin{macrocode} \@tud@res@swafalse% - \if@tud@cdfont@fam@exist% + \if@tud@cdmath@fam@exist% \@tud@res@swatrue% \if@tud@cdoldfont@active\else% \tud@if@fdfileexists{LGR}{cmr}{}{% @@ -2946,10 +3012,9 @@ \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% \fi% \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% - \providecommand*\MTversion@@[1]{}% - \tud@cdmath@@init{\tud@cdfont@fam@lf}{\tud@ttfont@fam}% + \tud@cdmath@@init% % \end{macrocode} -% Die Symbole für aufrechte und kursive griechische Glyphen werden definiert. +% Die Symbole für aufrechte und kursive griechische Lettern werden definiert. % Da im Paket \pkg{opensans} keine mathematischen Schriftkodierungen enthalten % sind, wird in diesem Fall auf die LGR-Kodierung zurückgegriffen. % \ToDo{kann mit \pkg{opensans-math} raus}[v2.??] @@ -2966,63 +3031,144 @@ % \begin{macrocode} \tud@cdmath@declare@char{*}{\mathbin}{symbols}{"03}% % \end{macrocode} -% Nach der Definition der griechischen Glyphen werden diese~-- inklusive aller +% Nach der Definition der griechischen Lettern werden diese~-- inklusive aller % Auswahlvariationen~-- deklariert. % \begin{macrocode} \tud@cdmath@also@greeks% + \fi% % \end{macrocode} -% Sollten die notwendigen Schriftfamilien nicht gefunden worden sein, werden -% keine separaten Mathematikversionen definiert. +% Für die Schrift \DIN existiert lediglich eine Mathematikversion, das Vorgehen +% ist ähnlich zur \Univers. % \begin{macrocode} - \else% - \let\mv@tudnormal\mv@normal% - \let\mv@tudbold\mv@bold% - \if@tud@cdoldfont@active% + \if@tud@cdoldfont@active% + \if@tud@cdmath@db@exist% + \tud@cdmath@db@init{\tud@cdfont@db}% + \else% \let\mv@tuddin\mv@bold% \fi% \fi% } +\newcommand*\tud@cdmath@set{} +\newcommand*\tud@cdmath@normal@name{tudnormal@\tud@cdfont@md\tud@cdfont@bf}% +\newcommand*\tud@cdmath@bold@name{tudbold@\tud@cdfont@md\tud@cdfont@bf}% +% \end{macrocode} +% Da eine dynamische Anpassung der Mathematikschriften innerhalb des Dokumentes +% an die jeweils aktuell verwendete Schriftart und insbesondere den Schnitt +% nicht möglich ist, werden hier für alle möglichen, von \TUDScript angebotenen +% Einstellungen der Schriftschnitte die dazu passenden Mathematikversionen +% deklariert. Dabei werden die insgesamt vier möglichen Kombinationen für die +% beiden Schalter \cs{if@tud@cdfont@heavy} (\opt{cdfont=light/heavy}) und +% \cs{if@tud@cdfont@ultrabold} (\opt{cdfont=normalbold/ultrabold}) gesetzt +% und dafür die passenden Mathematikversionen definiert.\footnote{Eigentlich +% müssten auch noch alle Kombinationen für die Schreibmaschinenschriften +% beachtet werden. Dies ist dann aber wohl eher nicht notwendig, zumal für +% \opt{ttfont=false} ohnehin nicht zwingend alle notwendigen Schnitte zur +% Verfügung stehen könnten.} +% \begin{macrocode} +\newcommand*\tud@cdmath@@init{% + \begingroup% + \let\tud@res@b\@empty% + \def\tud@res@a##1##2{% + \setbool{@tud@cdfont@heavy}{##1}% + \setbool{@tud@cdfont@ultrabold}{##2}% + \tud@cdfont@@set% + \tud@ttfont@@set% + \eappto\tud@res@b{% + \noexpand\tud@cdmath@@@init% + {\tud@cdmath@normal@name}% + {\tud@cdmath@bold@name}% + {\tud@cdfont@fam@lf}{\tud@cdfont@md}{\tud@cdfont@bf}{\tud@cdfont@ebf}% + {\tud@ttfont@fam}{\tud@ttfont@md}{\tud@ttfont@bf}% + }% + }% % \end{macrocode} -% Mit \cs{tud@cdmath@@init} werden die notwendigen Mathematikversionen und die -% dazugehörigen Symbolschriften sowie Alphabete deklariert. -% \begin{macrocode} -\newcommand*\tud@cdmath@@init[2]{% -% \end{macrocode} -% Mit \cs{tud@cdfont@@set} werden die Schriftstärken gemäß den ausgewählten -% Schriftoptionen aktiviert (\cs{tud@cdfont@md}, \cs{tud@cdfont@bf}, -% \cs{tud@cdfont@ebf}), um diese auch für die Mathematikschriften zu nutzen. -% \begin{macrocode} - \tud@cdfont@@set% - \tud@ttfont@@set% +% Die möglichen Kombinationen für die beiden genannten Schalter werden in einer +% Gruppe ausgeführt und die mit \cs{tud@cdfont@@set} sowie \cs{tud@ttfont@@set} +% aktivierten Schriftschnitte als Argumente für \cs{tud@cdmath@@@init} in +% \cs{tud@res@b} expandiert. +% \begin{macrocode} + \tud@res@a{false}{false}% + \tud@res@a{false}{true}% + \tud@res@a{true}{false}% + \tud@res@a{true}{true}% +% \end{macrocode} +% Für den zugegbener Maßen etwas unwahrscheinlichen Fall, dass die Kombination +% aus \opt{cdfont=false} und \opt{cdmath=true} genutzt wird, werden für die +% Initialisierung die Schriften des \CDs kurzzeitig aktiviert. Damit wird dem +% Umstand Sorge getragen, dass das Paket \pkg{mathastext} bei der Definition +% der Mathematikversionen teilweise auf Makros wie \cs{bfdefault} zurückgreift +% und diese dementsprechend gesetzt sein sollten. +% \begin{macrocode} + \if@tud@cdfont@active\else% + \preto\tud@res@b{% + \@tud@cdfont@activetrue% + \tud@font@set[]% + }% + \appto\tud@res@b{% + \@tud@cdfont@activefalse% + \tud@font@set[]% + }% + \fi% + \preto\tud@res@b{\endgroup}% + \tud@res@b% +% \end{macrocode} +% Mit \cs{tud@cdmath@set} erfolgt bei Bedarf die Auswahl der aktuell benötigten +% Mathematikversion, wobei für die Zuweisung \cs{tud@cdmath@normal@name} und +% \cs{tud@cdmath@bold@name} in \cs{mv@normal} sowie \cs{mv@bold} expandiert +% werden. Die Namen für die Versionen setzen sich dabei aus den Päfixen +% \val{tudnormal@} und \val{tudbold@} sowie der Verkettung des regulären und +% des fetten Schriftschnitts zusammen, welche zum Zeitpunkt des Aufrufs aktiv +% sind (Option \opt{cdfont}) und durch \cs{tud@cdfont@@set} gesetzt werden. +% \begin{macrocode} + \renewcommand*\tud@cdmath@set{% + \begingroup% + \tud@cdfont@@set% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\letcs\mv@normal}{mv@\tud@cdmath@normal@name}% + \unexpanded{\letcs\mv@bold}{mv@\tud@cdmath@bold@name}% + }% + \tud@res@a% + }% +} % \end{macrocode} -% Die Deklaration der Mathematikversionen für die alten Schriften. Auch für die -% Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese wurden schon -% bei der Installation aus dem \pkg{iwona}-Paket entnommen. Die verwendeten -% Symbole stammen aus diesem Paket. +% Mit \cs{tud@cdmath@@@init} werden die notwendigen Mathematikversionen und die +% dazugehörigen Symbolschriften sowie Alphabete für die unterschiedlichen +% Kombinationen der Schriftschnitte deklariert. Das Makro verwendet folgende +% Argumente: +% \begin{description} +% \item[|\#1|] der Name für die normale Mathematikversion +% \item[|\#2|] der Name für die fette Mathematikversion +% \item[|\#3|] die verwendete Schriftfamilie +% \item[|\#4|] der reguläre Schriftschnitt +% \item[|\#5|] der fette Schriftschnitt +% \item[|\#6|] der extra-fette Schriftschnitt +% \item[|\#7|] die verwendete Schreibmaschinenschrift +% \item[|\#8|] der reguläre Schreibmaschinenschnitt +% \item[|\#9|] der fette Schreibmaschinenschnitt +% \end{description} +% \begin{macrocode} +\newcommand*\tud@cdmath@@@init[9]{% +% \end{macrocode} +% Die Deklaration der Mathematikversionen für die alten Schriften. Die +% verwendeten Symbole stammen aus dem Paket \pkg{iwona}. % \begin{macrocode} \if@tud@cdoldfont@active% - \DeclareMathVersion{tudnormal}% - \DeclareMathVersion{tudbold}% - \DeclareMathVersion{tuddin}% - \SetSymbolFont{operators}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{letters}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetSymbolFont{letters}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetSymbolFont{letters}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{symbols}{tuddin}{OMS}{\tud@cdfont@db}{b}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% - \SetMathAlphabet{\mathnormal}{tudnormal}{OML}{#1}{\tud@cdfont@md}{sl}% - \SetMathAlphabet{\mathnormal}{tudbold}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathnormal}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \DeclareMathVersion{#1}% + \DeclareMathVersion{#2}% + \SetSymbolFont{operators}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{#3}{#5}{n}% + \SetSymbolFont{letters}{#1}{OML}{#3}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{#3}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{#3}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{#3}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetMathAlphabet{\mathnormal}{#1}{OML}{#3}{#4}{it}% + \SetMathAlphabet{\mathnormal}{#2}{OML}{#3}{#5}{it}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}{OML}{#1}{\tud@cdfont@bf}{sl}% - \SetMathAlphabet{\mathbold}{tudbold}{OML}{#1}{\tud@cdfont@ebf}{sl}% - \SetMathAlphabet{\mathbold}{tuddin}{OML}{\tud@cdfont@db}{b}{sl}% + \SetMathAlphabet{\mathbold}{#1}{OML}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{OML}{#3}{#6}{it}% }{}% \else% % \end{macrocode} @@ -3031,74 +3177,73 @@ % \pkg{iwona} definiert. Zur Definition der griechischen Lettern wird die % LGR-Kodierung der \OpenSans genutzt. % \begin{macrocode} - \MTDeclareVersion[it]{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@md}{n}% - \MTDeclareVersion[it]{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{operators}{tudnormal}{OT1}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{operators}{tudbold}{OT1}{iwona}{\tud@cdfont@bf}{n}% + \MTDeclareVersion[it]{#1}{\tud@x@mathastext@enc}{#3}{#4}{n}% + \MTDeclareVersion[it]{#2}{\tud@x@mathastext@enc}{#3}{#5}{n}% + \SetSymbolFont{operators}{#1}{OT1}{iwona}{#4}{n}% + \SetSymbolFont{operators}{#2}{OT1}{iwona}{#5}{n}% % \end{macrocode} % \ToDo{% % sollte \pkg{opensans-math} irgendwann einmal real werden, dann würde es % sich anbieten, die OML-Kodierung ähnlich zu \pkg{euler[vm]} auf eine -% U-Kodierung zu erweitern und aufrechte griechische Glyphen einzubinden, um +% U-Kodierung zu erweitern und aufrechte griechische Lettern einzubinden, um % ein Alphabet zu sparen. Siehe Kodierungen FML/FMS, LML/LMS, LBL/LBS, LS1/LS2 % }[v2.??] % \begin{macrocode} - \SetSymbolFont{letters}{tudnormal}{OML}{iwona}{\tud@cdfont@md}{it}% - \SetSymbolFont{letters}{tudbold}{OML}{iwona}{\tud@cdfont@bf}{it}% -%^^A \SetSymbolFont{letters}{tudnormal}{U}{#1m}{\tud@cdfont@md}{it}% -%^^A \SetSymbolFont{letters}{tudbold}{U}{#1m}{\tud@cdfont@bf}{it}% - \SetSymbolFont{symbols}{tudnormal}{OMS}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{symbols}{tudbold}{OMS}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{largesymbols}{tudnormal}{OMX}{iwona}{\tud@cdfont@md}{n}% - \SetSymbolFont{largesymbols}{tudbold}{OMX}{iwona}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tudupgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{tuditgrk}{tudnormal}{LGR}{#1}{\tud@cdfont@md}{it}% - \SetSymbolFont{tudupgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{n}% - \SetSymbolFont{tuditgrk}{tudbold}{LGR}{#1}{\tud@cdfont@bf}{it}% -%^^A \SetMathAlphabet{\mathnormal}{tudnormal}{U}{#1m}{\tud@cdfont@md}{it}% -%^^A \SetMathAlphabet{\mathnormal}{tudbold}{U}{#1m}{\tud@cdfont@bf}{it}% + \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}% + \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}% +%^^A \SetSymbolFont{letters}{#1}{U}{#3m}{#4}{it}% +%^^A \SetSymbolFont{letters}{#2}{U}{#3m}{#5}{it}% + \SetSymbolFont{symbols}{#1}{OMS}{iwona}{#4}{n}% + \SetSymbolFont{symbols}{#2}{OMS}{iwona}{#5}{n}% + \SetSymbolFont{largesymbols}{#1}{OMX}{iwona}{#4}{n}% + \SetSymbolFont{largesymbols}{#2}{OMX}{iwona}{#5}{n}% + \SetSymbolFont{tuditgrk}{#1}{LGR}{#3}{#4}{it}% + \SetSymbolFont{tuditgrk}{#2}{LGR}{#3}{#5}{it}% + \SetSymbolFont{tudupgrk}{#1}{LGR}{#3}{#4}{n}% + \SetSymbolFont{tudupgrk}{#2}{LGR}{#3}{#5}{n}% +%^^A \SetMathAlphabet{\mathnormal}{#1}{U}{#3m}{#4}{it}% +%^^A \SetMathAlphabet{\mathnormal}{#2}{U}{#3m}{#5}{it}% \tud@if@ismathalphabet{\mathbold}{% - \SetMathAlphabet{\mathbold}{tudnormal}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathbold}{tudbold}% - {\tud@x@mathastext@enc}{#1}{\tud@cdfont@ebf}{it}% -%^^A \SetMathAlphabet{\mathbold}{tudnormal}{U}{#1m}{\tud@cdfont@bf}{it}% -%^^A \SetMathAlphabet{\mathbold}{tudbold}{U}{#1m}{\tud@cdfont@ebf}{it}% + \SetMathAlphabet{\mathbold}{#1}{\tud@x@mathastext@enc}{#3}{#5}{it}% + \SetMathAlphabet{\mathbold}{#2}{\tud@x@mathastext@enc}{#3}{#6}{it}% +%^^A \SetMathAlphabet{\mathbold}{#1}{U}{#3m}{#5}{it}% +%^^A \SetMathAlphabet{\mathbold}{#2}{U}{#3m}{#6}{it}% }{}% \fi% - \SetMathAlphabet{\mathrm}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathrm}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudnormal}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathbf}{tudbold}{OT1}{#1}{\tud@cdfont@ebf}{n}% - \SetMathAlphabet{\mathsf}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetMathAlphabet{\mathsf}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \SetMathAlphabet{\mathit}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{it}% - \SetMathAlphabet{\mathit}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{it}% - \SetMathAlphabet{\mathtt}{tudnormal}{OT1}{#2}{\tud@ttfont@md}{n}% - \SetMathAlphabet{\mathtt}{tudbold}{OT1}{#2}{\tud@ttfont@bf}{n}% +% \end{macrocode} +% Wurde das Paket \pkg{fontspec} mit der Option \opt{math} geladen, so wird +% durch dieses die Symbolschrift \val{legacymaths} erstellt. Diese wird +% gegebenenfalls für die Mathematikversionen sinnvoll definiert. +% \begin{macrocode} + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{#1}{OT1}{#3}{#4}{n}% + \SetSymbolFont{legacymaths}{#2}{OT1}{#3}{#5}{n}% + }{}% + }% \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathrm}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathbf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathsf}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \SetMathAlphabet{\mathit}{tuddin}{OT1}{\tud@cdfont@db}{b}{sl}% - \SetMathAlphabet{\mathtt}{tuddin}{OT1}{#2}{\tud@ttfont@ebf}{n}% + \def\tud@res@a{OT1}% + \else% + \let\tud@res@a\tud@x@mathastext@enc% \fi% + \SetMathAlphabet{\mathrm}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathrm}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#1}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathbf}{#2}{\tud@res@a}{#3}{#6}{n}% + \SetMathAlphabet{\mathsf}{#1}{\tud@res@a}{#3}{#4}{n}% + \SetMathAlphabet{\mathsf}{#2}{\tud@res@a}{#3}{#5}{n}% + \SetMathAlphabet{\mathit}{#1}{\tud@res@a}{#3}{#4}{it}% + \SetMathAlphabet{\mathit}{#2}{\tud@res@a}{#3}{#5}{it}% + \SetMathAlphabet{\mathtt}{#1}{\tud@res@a}{#7}{#8}{n}% + \SetMathAlphabet{\mathtt}{#2}{\tud@res@a}{#7}{#9}{n}% \IfFileExists{ueus.fd}{% - \SetMathAlphabet{\mathcal}{tudnormal}{U}{eus}{m}{n}% - \SetMathAlphabet{\mathcal}{tudbold}{U}{eus}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% - \fi% + \SetMathAlphabet{\mathcal}{#1}{U}{eus}{m}{n}% + \SetMathAlphabet{\mathcal}{#2}{U}{eus}{b}{n}% }{}% \tud@if@ismathalphabet{\mathfrak}{% \IfFileExists{ueuf.fd}{% - \SetMathAlphabet{\mathfrak}{tudnormal}{U}{euf}{m}{n}% - \SetMathAlphabet{\mathfrak}{tudbold}{U}{euf}{b}{n}% - \if@tud@cdoldfont@active% - \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% - \fi% + \SetMathAlphabet{\mathfrak}{#1}{U}{euf}{m}{n}% + \SetMathAlphabet{\mathfrak}{#2}{U}{euf}{b}{n}% }{}% }{}% % \end{macrocode} @@ -3112,14 +3257,14 @@ \tud@if@issymbolfont{AMSb}{\@tud@res@swatrue}{}% \if@tud@res@swa% \if@tud@cdoldfont@active% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf a}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf a}{m}{n}{<->cmbras10}{}% - \SetSymbolFont{AMSa}{tudnormal}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \SetSymbolFont{AMSa}{tudbold}{U}{\tud@cdfont@fam@lf a}{m}{n}% - \DeclareFontFamily{U}{\tud@cdfont@fam@lf b}{}% - \DeclareFontShape{U}{\tud@cdfont@fam@lf b}{m}{n}{<->cmbrbs10}{}% - \SetSymbolFont{AMSb}{tudnormal}{U}{\tud@cdfont@fam@lf b}{m}{n}% - \SetSymbolFont{AMSb}{tudbold}{U}{\tud@cdfont@fam@lf b}{m}{n}% + \DeclareFontFamily{U}{#3a}{}% + \DeclareFontShape{U}{#3a}{m}{n}{<->cmbras10}{}% + \SetSymbolFont{AMSa}{#1}{U}{#3a}{m}{n}% + \SetSymbolFont{AMSa}{#2}{U}{#3a}{m}{n}% + \DeclareFontFamily{U}{#3b}{}% + \DeclareFontShape{U}{#3b}{m}{n}{<->cmbrbs10}{}% + \SetSymbolFont{AMSb}{#1}{U}{#3b}{m}{n}% + \SetSymbolFont{AMSb}{#2}{U}{#3b}{m}{n}% % \end{macrocode} % Wurde ein Paket geladen, welches die \pkg{amsfonts}-Schriftfamilie definiert, % so wird bei der Verwendung von \OpenSans eine Information ausgegeben, dass im @@ -3142,29 +3287,51 @@ }% \fi% \fi% + }% +} % \end{macrocode} -% Wurde das Paket \pkg{fontspec} mit der Option \opt{math} geladen, so wird -% durch dieses die Symbolschrift \val{legacymaths} erstellt. Diese wird -% gegebenenfalls für die Mathematikversionen sinnvoll definiert. +% Auch für die Schrift \DIN werden mathematische Glyphen bereitgestellt. Diese +% wurden schon bei der Installation aus dem \pkg{iwona}-Paket entnommen. % \begin{macrocode} - \tud@if@issymbolfont{legacymaths}{% - \SetSymbolFont{legacymaths}{tudnormal}{OT1}{#1}{\tud@cdfont@md}{n}% - \SetSymbolFont{legacymaths}{tudbold}{OT1}{#1}{\tud@cdfont@bf}{n}% - \if@tud@cdoldfont@active% - \SetSymbolFont{legacymaths}{tuddin}{OT1}{\tud@cdfont@db}{b}{n}% - \fi% +\if@tud@cdoldfont@active + \newcommand*\tud@cdmath@db@init[1]{% + \DeclareMathVersion{tuddin}% + \SetSymbolFont{operators}{tuddin}{OT1}{#1}{b}{n}% + \SetSymbolFont{letters}{tuddin}{OML}{#1}{b}{it}% + \SetSymbolFont{symbols}{tuddin}{OMS}{#1}{b}{n}% + \SetSymbolFont{largesymbols}{tuddin}{OMX}{iwona}{ebc}{n}% + \AtBeginDocument{% + \tud@if@issymbolfont{legacymaths}{% + \SetSymbolFont{legacymaths}{tuddin}{OT1}{#1}{b}{n}% + }{}% + }% + \SetMathAlphabet{\mathnormal}{tuddin}{OML}{#1}{b}{it}% + \tud@if@ismathalphabet{\mathbold}{% + \SetMathAlphabet{\mathbold}{tuddin}{OML}{#1}{b}{it}% + }{}% + \SetMathAlphabet{\mathrm}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathbf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathsf}{tuddin}{OT1}{#1}{b}{n}% + \SetMathAlphabet{\mathit}{tuddin}{OT1}{#1}{b}{it}% + \IfFileExists{ueus.fd}{% + \SetMathAlphabet{\mathcal}{tuddin}{U}{eus}{b}{n}% + }{}% + \tud@if@ismathalphabet{\mathfrak}{% + \IfFileExists{ueuf.fd}{% + \SetMathAlphabet{\mathfrak}{tuddin}{U}{euf}{b}{n}% + }{}% }{}% % \end{macrocode} % Daran anschließend wird die zuvor definierte Schrift in einer Box verwendet, % um das Laden der Schriftdefinitionen am Dokumentbeginn zu forcieren. % \begin{macrocode} - \if@tud@cdoldfont@active% + \AtBeginDocument{% \if@tud@cdmath@active% - \sbox\z@{\mathversion{tudnormal}$ $\mathversion{tuddin}$ $}% + \sbox\z@{\mathversion{normal}$ $\mathversion{tuddin}$ $}% \fi% - \fi% + }% }% -} +\fi % \end{macrocode} % Um das Umschalten der Mathematikversion mit \cs{mathversion} auch nutzen zu % können, wenn \pkg{mathastext} für die Schriften des \CDs aktiv ist, wird ein @@ -3179,10 +3346,10 @@ \let\tud@res@a\relax% \if@tud@cdmath@active% \tud@if@strequal{#1}{normal}{% - \def\tud@res@a{tudnormal}% + \edef\tud@res@a{\tud@cdmath@normal@name}% }{% \tud@if@strequal{#1}{bold}{% - \def\tud@res@a{tudbold}% + \edef\tud@res@a{\tud@cdmath@bold@name}% }{}% }% \fi% @@ -3198,6 +3365,7 @@ \noexpand\tud@cs@letltx{mathversion}{tud@mathversion}% }% \tud@res@a% + \ifcsundef{mv@#1}{}{\edef\math@version{#1}}% }% \AtEndPreamble{% \tud@cs@store{mathversion}% @@ -3205,12 +3373,13 @@ }% } % \end{macrocode} -% \end{macro}^^A \MTversion@@ % \end{macro}^^A \MTDeclareVersion % \end{macro}^^A \tud@mathversion -% \end{macro}^^A \mv@tuddin -% \end{macro}^^A \mv@tudbold -% \end{macro}^^A \mv@tudnormal +% \end{macro}^^A \tud@cdmath@bold@name +% \end{macro}^^A \tud@cdmath@normal@name +% \end{macro}^^A \tud@cdmath@set +% \end{macro}^^A \tud@cdmath@db@init +% \end{macro}^^A \tud@cdmath@@@init % \end{macro}^^A \tud@cdmath@@init % \end{macro}^^A \tud@cdmath@init % \begin{macro}{\tud@cdmath@declare@symb} @@ -3543,18 +3712,17 @@ % das Mapping der griechischen Lettern geändert, zum anderen werden die % originalen Mathematikversionen überschrieben respektive wiederhergestellt. % \begin{macrocode} -\newcommand*\tud@math@set{% +\newcommand*\tud@math@set[1][\tud@cdmath@wrn]{% % \end{macrocode} % Beim Aktivieren der Mathematikschriften im \CD werden einmalig alle Warnungen % ausgegeben, falls bei der Initialisierung Probleme aufgetreten sind und % dementsprechend der Hook \cs{tud@cdmath@wrn} gefüllt wurde. % \begin{macrocode} \if@tud@cdmath@active% - \tud@cdmath@wrn% + #1% \tud@cs@store{mv@normal}% \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% + \tud@cdmath@set% \tud@cdmath@symbols@set% % \end{macrocode} % Anschließend erfolgt~-- abhängig von der Option \opt{slantedgreek}~-- die @@ -3573,7 +3741,10 @@ \tud@cs@restore{mv@bold}% \tud@cdmath@symbols@reset% \fi% - \mathversion{normal}% +% \end{macrocode} +% Zuletzt wird die aktuell gewählte Mathematikversion erneut aufgerufen. +% \begin{macrocode} + \expandafter\mathversion\expandafter{\math@version}% } % \end{macrocode} % \end{macro}^^A \tud@math@set @@ -3654,22 +3825,22 @@ \if@tud@head@font@set% \if@tud@x@mweights@enabled% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mdseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mdseries@sf}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfseries@sf}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfseries@sf}{\shapedefault}{\tud@head@fontsize}% %<*poster> \protected\gdef\tud@head@font@@bold{% - \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\updefault}% + \usefont{\encodingdefault}{\sfdefault}{\bfseries@sf}{\shapedefault}% }% % \else% \DeclareFixedFont{\tud@head@font@light}{\encodingdefault}% - {\sfdefault}{\mddefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\mddefault}{\shapedefault}{\tud@head@fontsize}% \DeclareFixedFont{\tud@head@font@bold}{\encodingdefault}% - {\sfdefault}{\bfdefault}{\updefault}{\tud@head@fontsize}% + {\sfdefault}{\bfdefault}{\shapedefault}{\tud@head@fontsize}% %<*poster> \protected\gdef\tud@head@font@@bold{% - \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\updefault}% + \usefont{\encodingdefault}{\sfdefault}{\bfdefault}{\shapedefault}% }% % \fi% @@ -3745,7 +3916,7 @@ % \subsection{Kompatibilität der Schriften} % \subsubsection{Majuskel-ß für Unicode-Prozessoren} % -% Es wird für die Majuskelvariante der Glyphe \enquote*{ß} eine Rückfallebene +% Es wird für die Majuskelvariante der Letter \enquote*{ß} eine Rückfallebene % (Substitution mit \enquote*{SS}) definiert, da diese für Unicode-Engines % standardmäßig nicht bereitgestellt wird. Um diese zu erkennen, wird auf die % gleiche Methodik wie im Paket \pkg{newunicodechar} zurückgegriffen. @@ -3760,7 +3931,7 @@ % Wurde eine Unicode-Engine erkannt (|^^^^0021| wird als ein Token gelesen), % dann werden die Kodierungen für kleines und großes \enquote*{ß} dahingehend % angepasst, dass diese \enquote*{ss} bzw. \enquote*{SS} verwenden, wenn die -% entsprechende Glyphe nicht vorhanden ist. +% entsprechende Letter nicht vorhanden ist. % \begin{macrocode} \ifx\tud@reserved\@empty \RequirePackage{newunicodechar}[2012/11/12] @@ -3823,9 +3994,9 @@ \else% \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% \fi% - \appto\tud@x@siunitx@reset{\tud@font@set}% + \appto\tud@x@siunitx@reset{\tud@font@set[]}% \TUDoptions{cdfont=false}% - \tud@font@set% + \tud@font@set[]% \fi% }% \AtBeginDocument{\tud@x@siunitx@reset}% @@ -3870,8 +4041,7 @@ \if@tud@cdmath@active% \tud@cs@store{mv@normal}% \tud@cs@store{mv@bold}% - \let\mv@normal\mv@tudnormal% - \let\mv@bold\mv@tudbold% + \tud@cdmath@set% \fi% \RequirePackage{bm}[2017/01/16]% \tud@cs@restore{mv@normal}% @@ -3928,11 +4098,6 @@ % \begin{macrocode} \tud@cdfont@check% % \end{macrocode} -% Damit \pkg{tudscrfonts} reibungslos mit den nachfolgenden Definitionen -% funktioniert, wird im Bedarfsfall der Befehl \cs{sectfont} vorgehalten. -% \begin{macrocode} -% \ifdef{\sectfont}{}{\let\sectfont\relax}% -% \end{macrocode} % Nachdem auf die Schriften geprüft wurde, werden noch die Schriftschalter und % die dazugehörigen Befehle definiert. Auch die mathematischen Schriften werden % initialisiert. @@ -3957,12 +4122,12 @@ \tud@cdmath@init% \tud@x@bm@delayed% % \end{macrocode} -% Bereitstellung der Auswahlbefehle für griechische Glyphen in der Nomenklatur +% Bereitstellung der Auswahlbefehle für griechische Lettern in der Nomenklatur % von \TUDScript (|\up|\meta{Letter}, |\it|\meta{Letter}). % \begin{macrocode} \tud@math@map@greeks% % \end{macrocode} -% Für die griechischen Glyphen wird mit \cs{tud@math@checkslanted@greeks} +% Für die griechischen Lettern wird mit \cs{tud@math@checkslanted@greeks} % geprüft, ob diese durch ein Paket explizit auf kursive Majuskeln oder eine % vollständig aufrechte Variante gesetzt wurden. Ist dies der Fall, wird der % Standardwert für die Option \opt{slantedgreek} entsprechend angepasst. diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index a6e5aa0e..934f86d4 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -777,7 +777,7 @@ \edef\bfseries@tt{\tud@ttfont@ebf}% \fi% \let\bfdefault\tud@cdfont@ebf% - \fontseries{\tud@cdfont@ebf}% + \fontseriesforce{\tud@cdfont@ebf}% \fi% \fi% \selectfont% @@ -962,11 +962,12 @@ }% \tud@komafont@set{subtitle}{% \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \fontseriesforce{\tud@cdfont@bf}\selectfont% }% \tud@komafont@set{subject}{% - \sffamily% \usesizeofkomafont{section}% + \sffamily% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@title@fontcolor}% }% %<*book|report|article> @@ -1395,7 +1396,7 @@ % \begin{macrocode} \newkomafont{partsubtitle}{% \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@part@fontcolor}% } \aliaskomafont{parttitle}{partsubtitle} @@ -1420,7 +1421,7 @@ % \begin{macrocode} \newkomafont{chaptersubtitle}{% \tud@thesis@fontsize% - \fontseries{\tud@cdfont@bf}\selectfont% + \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@chapter@fontcolor}% } % diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 6737f651..6ea64fde 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -464,7 +464,7 @@ % \changes{v2.05}{2016/06/14}{neu}^^A % \begin{macro}{\if@tud@math@set} % \changes{v2.05}{2016/06/14}{neu}^^A -% \begin{macro}{\if@tud@font@skip@set} +% \begin{macro}{\if@tud@relspacing@set} % \changes{v2.05}{2016/06/14}{neu}^^A % \begin{macro}{\if@tud@x@scr@headings@reset} % \changes{v2.05}{2016/06/14}{neu}^^A @@ -480,7 +480,7 @@ % \begin{macrocode} \tud@newif\if@tud@font@set \tud@newif\if@tud@math@set -\tud@newif\if@tud@font@skip@set +\tud@newif\if@tud@relspacing@set %<*class> \tud@newif\if@tud@x@scr@headings@reset \tud@newif\if@tud@cd@process @@ -490,12 +490,12 @@ \if@tud@font@set% \tud@font@set% \global\@tud@font@setfalse% - \global\@tud@font@skip@setfalse% + \global\@tud@relspacing@setfalse% % \global\@tud@cd@processfalse% \fi% - \if@tud@font@skip@set% - \tud@font@skip@set% - \global\@tud@font@skip@setfalse% + \if@tud@relspacing@set% + \tud@relspacing@set% + \global\@tud@relspacing@setfalse% \fi% \if@tud@math@set% \tud@math@set% @@ -521,7 +521,7 @@ % \end{macro}^^A \if@tud@cdgeometry@process % \end{macro}^^A \if@tud@cd@process % \end{macro}^^A \if@tud@x@scr@headings@reset -% \end{macro}^^A \if@tud@font@skip@set +% \end{macro}^^A \if@tud@relspacing@set % \end{macro}^^A \if@tud@math@set % \end{macro}^^A \if@tud@font@set % \end{macro}^^A \tud@atdocument@process From f6df0c178eb0f056da684ec718d6133bad3f5832 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Tue, 9 Aug 2022 04:40:10 +0200 Subject: [PATCH 11/24] fix for siunitx v3 --- source/tudscr-fonts.dtx | 95 ++++++++++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 26 deletions(-) diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index a9034984..4b5fe3c1 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -3970,39 +3970,82 @@ % \subsubsection{Anpassungen für das Paket \pkg{siunitx}} % % \begin{macro}{\lseries} +% \begin{macro}{\tud@x@siunitx@mapping} +% \changes{v2.06o}{2022/08/08}{neu} % \begin{macro}{\tud@x@siunitx@reset} % \changes{v2.06o}{2022/07/31}{neu} -% Das Paket \pkg{siunitx} nutzt den Befehl \cs{lseries} für den Fall, dass für -% den Fließtext eine Schrift die Serie \val{l} verwendet. Dem wird hier -% Rechnung getragen. Außerdem muss bei der Auswahl der Schriften evtl. auf das -% Paket reagiert werden, weil es sich bei der Definition der Schriften für den -% Mathematikmodus auf \cs{familydefault} bzw. \cs{rmfamily} oder aber den -% zuletzt gemachten Einstellungen mit \cs{newfontfamily} verlässt. Sind die -% Schriften des \CDs aktiv, wird dies temporär mit \opt{cdfont}|=|\val{false} -% revidiert und direkt nach den durch \pkg{siunitx} zu Beginn des Dokumentes -% erfolgten Einstellungen durch \cs{tud@x@siunitx@reset} wiederhergestellt. -% Dieser etwas merkwürdige Workaround geht auf die gemeldeten Probleme im -% \GitHubRepo<22> sowie im \Forum<503> zurück. -% \begin{macrocode} -\newcommand*\tud@x@siunitx@reset{} +% \begin{macrocode} \AfterAtEndOfPackage*{siunitx}{% - \providecommand*\lseries{\fontseries{l}\selectfont}% - \AtEndPreamble{% - \if@tud@cdfont@active% - \if@tud@cdfont@heavy% - \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% - \else% - \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \IfPackageAtLeastTF{siunitx}{2021-04-18}{% +% \end{macrocode} +% Das Paket \pkg{siunitx} in der Version |v3| stellt eine Schnittstelle für +% die Zuordnung von Schriftschnitten zur verwendeten Mathematikversionen zur +% Verfügung. Da vorher erheblicher Aufwand betrieben wurde, die korrekten +% Schriftschnitte im Mathematikmodus mit den Versionen |normal| und |bold| +% bereitzustellen, werden bei aktivierten Schriften des \CDs die entsprechenden +% Zuordnungen gesetzt. +% \begin{macrocode} + \newcommand*\tud@x@siunitx@mapping{% + \if@tud@cdfont@active + \csname keys_set:nx\endcsname { siunitx / series-version-mapping } + { + \tud@cdfont@md = normal, + \tud@cdfont@bf = bold, + \tud@cdfont@ebf = bold + } + \else +% \end{macrocode} +% Zurücksetzen auf die Standardeinstellungen von \pkg{siunitx}. +% \begin{macrocode} + \csname keys_set:nn\endcsname { siunitx / series-version-mapping } + { + ul = light , + el = light , + l = light , + sl = light , + m = normal , + sb = bold , + b = bold , + eb = bold , + ub = bold + } + \fi + } + \xapptocmd\tud@font@set% + {\tud@x@siunitx@mapping}% + {}{\tud@patch@wrn{tud@font@set}}% + }{% +% \end{macrocode} +% Das Paket \pkg{siunitx} in der Version |v2| nutzt den Befehl \cs{lseries} für +% den Fall, dass für den Fließtext eine Schrift die Serie \val{l} verwendet. +% Dem wird hier Rechnung getragen. Außerdem muss bei der Auswahl der Schriften +% evtl. auf das Paket reagiert werden, weil es sich bei der Definition der +% Schriften für den Mathematikmodus auf \cs{familydefault} bzw. \cs{rmfamily} +% verlässt. Deshalb werden am Ende der Präambel die Schrifteinstellungen mit +% \opt{cdfont}|=|\val{false} deaktiviert und zu Beginn des Dokumentes auf die +% aktuelle Einstellung gesetzt. Dieser etwas merkwürdige Workaround geht auf +% die gemeldeten Probleme im \GitHubRepo<22> sowie im \Forum<503> zurück. +% \begin{macrocode} + \newcommand*\tud@x@siunitx@reset{}% + \providecommand*\lseries{\fontseries{l}\selectfont}% + \AtEndPreamble{% + \if@tud@cdfont@active% + \if@tud@cdfont@heavy% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=heavy}}% + \else% + \def\tud@x@siunitx@reset{\TUDoptions{cdfont=true}}% + \fi% + \appto\tud@x@siunitx@reset{\tud@font@set[]}% + \TUDoptions{cdfont=false}% + \tud@font@set[]% \fi% - \appto\tud@x@siunitx@reset{\tud@font@set[]}% - \TUDoptions{cdfont=false}% - \tud@font@set[]% - \fi% - }% - \AtBeginDocument{\tud@x@siunitx@reset}% + }% + \AtBeginDocument{\tud@x@siunitx@reset}% + } } % \end{macrocode} % \end{macro}^^A \tud@x@siunitx@reset +% \end{macro}^^A \tud@x@siunitx@mapping % \end{macro}^^A \lseries % % \subsubsection{Mathematikschriften in Verbindung mit dem Paket \pkg{bm}} From 4210196286cdc6542f20f7f9ae57c3f45710c3d7 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Tue, 2 Aug 2022 13:49:46 +0200 Subject: [PATCH 12/24] fix vertical spacing for headings and title - improve page style settings - adapt patches for tudmathposter --- source/tudscr-area.dtx | 72 +++--- source/tudscr-comp.dtx | 27 +-- source/tudscr-fonts.dtx | 4 + source/tudscr-layout.dtx | 422 ++++++++++++++++++++++------------- source/tudscr-pagestyle.dtx | 198 +++++++++------- source/tudscr-supervisor.dtx | 2 +- source/tudscr-title.dtx | 38 ++-- 7 files changed, 447 insertions(+), 316 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index 02cc5855..a528a80e 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -1063,10 +1063,13 @@ \tud@res@a% \fi% \tud@if@strequal{#2}{newgeometry}{% - \eappto\Gm@restore@org{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% % \end{macrocode} % Wird der Befehl verwendet, wenn eigentlich \pkg{typearea} aktiv ist, so % werden lediglich die Einstellungen zu \prm{paper} und \prm{layout} beachtet. @@ -1193,12 +1196,16 @@ }% \expandafter\@tempb\@tempa paper\@nil% \@tempswafalse% - \tud@if@strequal{\@tempa}{seascape}{\@tempswatrue}{}% - \tud@if@strequal{\@tempa}{landscape}{\@tempswatrue}{}% - \tud@if@strequal{\@tempa}{portrait}{\@tempswatrue}{}% - \tud@if@strequal{\@tempa}{letter}{\@tempswatrue}{}% - \tud@if@strequal{\@tempa}{executive}{\@tempswatrue}{}% - \tud@if@strequal{\@tempa}{legal}{\@tempswatrue}{}% + \TUD@set@numkey{paper}{@tempc}{% + {seascape}{0},{landscape}{0},{portrait}{0},% + {letter}{0},{executive}{0},{legal}{0}% + }{\@tempa}% + \@tempswafalse% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempc\relax% + \@tempswatrue% + \fi% + \fi% \if@tempswa\else% \ifx\@tempa\@empty\else% \def\@tempb##1##2\@nil{% @@ -1369,10 +1376,13 @@ % \begin{macrocode} \edef\@tempa{#1}% \tud@cs@store{Gm@restore@org}% - \eappto\Gm@restore@org{% + \edef\@tempb{% \noexpand\paperwidth=\the\paperwidth\relax% \noexpand\paperheight=\the\paperheight\relax% }% + \expandafter\apptocmd\expandafter\Gm@restore@org\expandafter{% + \@tempb% + }{}{\tud@patch@wrn{Gm@restore@org}}% \def\@tempc{\tud@cs@use{newgeometry}}% \expandafter\@tempc\expandafter{\@tempa}% \tud@cs@restore{Gm@restore@org}% @@ -1558,6 +1568,15 @@ \fi% \fi% % \end{macrocode} +% Die Einstellungen für zweiseitigen respektive zweispaltigen Satz. +% \begin{macrocode} + \if@twoside% + \appto\tud@cdgeometry@hmargin{,twoside}% + \fi% + \if@twocolumn% + \appto\tud@cdgeometry@hmargin{,twocolumn}% + \fi% +% \end{macrocode} % Es wird die Höhendifferenz zwischen TUD-Kopf und Standardkopfzeile für den % benutzerdefnierten bzw. \pkg{typearea}-Satzspiegel berechnet. Für den % Satzspiegel mit TUD-Kopf muss unterschieden werden, ob der Abstand zwischen @@ -1970,12 +1989,12 @@ % Alle gesammelten Warnungen von \pkg{typearea} werden dem initialisierten % Satzspiegel hinzugefügt. % \begin{macrocode} - \def\tud@res@b##1{% - \eappto\Gm@restore@@init@typearea{% - \noexpand\PackageWarningNoLine{typearea}{##1}% - }% + \def\do##1{% + \apptocmd\Gm@restore@@init@typearea{% + ##1% + }{}{\tud@patch@wrn{Gm@restore@@init@typearea}}% }% - \forlistloop\tud@res@b{\tud@res@a}% + \dolistloop{\tud@res@a}% % \end{macrocode} % Hier werden die temporär geäanderten Einstellungen zurückgesetzt. % \begin{macrocode} @@ -2078,14 +2097,8 @@ % \begin{macrocode} \tud@setdim\tud@dim@areavskip{\z@}% % \end{macrocode} -% Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende -% Schrift verwendet. -% \begin{macrocode} - \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% - \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% -% \end{macrocode} -% Dies ist der Fall, wenn kein \pgs{tudheadings}-Seitenstil geladen werden soll. -% Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} +% Das ist der Zweig, wenn kein \pgs{tudheadings}-Seitenstil geladen werden +% soll. Zusätzlich zum Satzspeigel wird außerdem der Seitenstil \pgs{empty} % zurückgesetzt. % \begin{macrocode} }{% @@ -2105,11 +2118,6 @@ \tud@addtodim\tud@dim@areavskip{-\headheight-\tud@dim@headsep}% \fi% \fi% -% \end{macrocode} -% Die Schriften für Seitenzahl und Kolumnentitel werden zurückgesetzt. -% \begin{macrocode} - \tud@komafont@unset{pagenumber}% - \tud@komafont@unset{pagefoot}% }% % \end{macrocode} % Die Länge \cs{tud@dim@areavskip} wird vorsichtshalber global gesetzt. @@ -2250,16 +2258,22 @@ \renewcommand*\PackageWarningNoLine[2]{% \@tud@res@swatrue% \tud@if@strequal{##1}{typearea}{% - \tud@if@strstart{##2}{Bad type area settings!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% + Bad type area settings!% + }{\@tud@res@swafalse}{}% \tud@if@strstart{##2}{% Maybe no optimal type area settings!% }{\@tud@res@swafalse}{}% - \tud@if@strstart{##2}{Very low DIV value!}{\@tud@res@swafalse}{}% + \tud@if@strstart{##2}{% + Very low DIV value!% + }{\@tud@res@swafalse}{}% }{}% \if@tud@res@swa% \tud@cs@use{PackageWarningNoLine}{##1}{##2}% \else% - \IfArgIsEmpty{#1}{}{\listeadd#1{##2}}% + \IfArgIsEmpty{#1}{}{% + \listeadd#1{\noexpand\tud@cs@use{PackageWarningNoLine}{##1}{##2}}% + }% \fi% }% } diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 43c75bf1..0701a8e5 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -1859,32 +1859,13 @@ % für ein etwaiges Logo verwendet wird. Dieses Verhalten kann über die Option % \opt{tudmathposterfoot} aktiviert werden und wird hier nachgebildet. % \begin{macrocode} -\newcommand*\tud@comp@mathposterwidth@dim{4.2\tud@dim@widemargin} \patchcmd\tud@footcontent@use{% - \hsize=\dimexpr\glueexpr#2-\@tempdimc\relax\relax% + \tud@footcontent@@use{\tud@res@glue}% }{% - \if@tud@mathposterfoot% - \hsize=\dimexpr\tud@comp@mathposterwidth@dim\relax% + \if@tud@mathfoot% + \tud@footcontent@@use{\glueexpr\tud@dim@widemargin*21/5\relax}% \else% - \hsize=\dimexpr\glueexpr#2-\@tempdimc\relax\relax% - \fi% -}{}{\tud@patch@wrn{tud@footcontent@use}} -\patchcmd\tud@footcontent@use{% - \hsize=\dimexpr\glueexpr(#2-\columnsep)/2\relax\relax% -}{% - \if@tud@mathposterfoot% - \hsize=\dimexpr(\tud@comp@mathposterwidth@dim-\columnsep)/2\relax% - \else% - \hsize=\dimexpr\glueexpr(#2-\columnsep)/2\relax\relax% - \fi% -}{}{\tud@patch@wrn{tud@footcontent@use}} -\patchcmd\tud@footcontent@use{% - \hsize=\dimexpr\glueexpr(#2-\columnsep)/2-\@tempdimc\relax\relax% -}{% - \if@tud@mathposterfoot% - \hsize=\dimexpr(\tud@comp@mathposterwidth@dim-\columnsep)/2\relax% - \else% - \hsize=\dimexpr\glueexpr(#2-\columnsep)/2-\@tempdimc\relax\relax% + \tud@footcontent@@use{\@tud@res@glue}% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} % \end{macrocode} diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 4b5fe3c1..d38fe432 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -3787,6 +3787,8 @@ % \begin{macro}{\tud@head@font@bold} % \begin{macro}{\tud@head@font@@bold} % \changes{v2.05}{2016/04/17}{neu}^^A +% \begin{macro}{\tud@font@phantomglyphs} +% \changes{v2.06o}{2022/07/25}{neu}^^A % Die Schrift der Kopfzeile wird entweder in den Schriften des \CDs oder aber % in den serifenlosen Standardschriften gesetzt, wobei für beide Varianten % sowohl eine fettgedruckte als auch eine normale Version benötigt wird. Die @@ -3796,6 +3798,7 @@ % wird verwendet, um die Einstellung der fetten Schriften ohne die fixierte % Schriftgröße nutzen zu können. % \begin{macrocode} +\newcommand*\tud@font@phantomglyphs{\"A\"O\"Ugjpqy} \newcommand*\tud@head@font@light{} \newcommand*\tud@head@font@bold{} %\newcommand*\tud@head@font@@bold{} @@ -3903,6 +3906,7 @@ }% \fi % \end{macrocode} +% \end{macro}^^A \tud@font@phantomglyphs % \end{macro}^^A \tud@head@font@@bold % \end{macro}^^A \tud@head@font@bold % \end{macro}^^A \tud@head@font@light diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index 934f86d4..2fec295d 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -72,6 +72,8 @@ % % \changes{v2.02}{2014/07/08}{\cs{FamilyKeyState} wird von Optionen genutzt}^^A % \changes{v2.05}{2015/07/06}{Layout für Poster}^^A +% \changes{v2.06o}{2022/08/02}{\opt{cdfont=false} und \opt{cd=true} setzt +% Überschriften im \CD}^^A % % % @@ -590,7 +592,7 @@ \TUD@key{headings}{% \TUD@set@numkey{headings}{@tempa}{% {light}{0},{lightfont}{0},{lite}{0},{litefont}{0},{noheavyfont}{0},% - {normal}{0},{standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% + {standard}{0},{std}{0},{normalbold}{0},{boldnormal}{0},% {heavy}{1},{heavyfont}{1},{bold}{1},{boldfont}{1},% {ultrabold}{1},{boldultra}{1},{heavybold}{1},{boldheavy}{1},% {extendedbold}{1},{boldextended}{1}% @@ -652,61 +654,71 @@ % % \begin{macro}{\tud@x@scr@headings@set} % \changes{v2.05}{2015/11/24}{neu}^^A -% \begin{macro}{\tud@x@scr@headings@current} +% \begin{macro}{\tud@subtitle@fontsizecmd} % \changes{v2.05}{2015/11/24}{neu}^^A -% \begin{macro}{\tud@sec@fontsize} -% \changes{v2.05}{2015/11/24}{neu}^^A -% \begin{macro}{\tud@thesis@fontsize} +% \begin{macro}{\tud@prefix@fontsizecmd} +% \changes{v2.06o}{2022/08/02}{neu}^^A +% \begin{macro}{\tud@sec@fontsizecmd} % \changes{v2.05}{2015/11/24}{neu}^^A +% \begin{macro}{\tud@sec@baselineskip@@dim} +% \changes{v2.06o}{2022/08/02}{neu}^^A +% \begin{macro}{\tud@sec@baselineskip@set} +% \changes{v2.06o}{2022/08/02}{neu}^^A % Als erstes werden die Optionen verarbeitet, welche einen Einfluss auf die -% Formatierung respektive die Schriftgröße der Überschriften haben. Wird über -% die Option \opt{headings} eine andere Überschriftengröße gewählt, werden mit -% dem Makro \cs{tud@x@scr@headings@set} die passenden Schriftgrößen sowohl für -% die Überschriften (\cs{tud@sec@fontsize}) als auch die Titelseite -% (\cs{tud@thesis@fontsize}) gesetzt. Dafür wird gewählte Schriftgröße -% der Überschriften\footnote{\ignorespaces% -% Option \opt{headings}|=|\val{standardclasses/big/normal/small}\ignorespaces% -% } im Hilfsmakro \cs{tud@x@scr@headings@current} gesichert. -% \begin{macrocode} -\newcommand*\tud@x@scr@headings@current{} -\newcommand*\tud@sec@fontsize{} -\newcommand*\tud@thesis@fontsize{} -\newcommand*\tud@x@scr@headings@set[1][]{% - \def\@tempa##1##2##3{% - \tud@if@strequal{##1}{\tud@x@scr@headings@current}{}{% - \renewcommand*\tud@x@scr@headings@current{##1}% - \renewcommand*\tud@sec@fontsize{##2}% - \renewcommand*\tud@thesis@fontsize{##3}% - #1% +% Formatierung respektive die Schriftgröße der Überschriften haben. Wird die +% Option \opt{headings} verwendet, werden mit \cs{tud@x@scr@headings@set} die +% Schriftgrößen für Überschriften sowie Präfix und Untertitel sowohl für die +% Gliederungsebenen als auch den Titel gesetzt. Der Grundzeilenabstand in +% Überschriften wird in \cs{tud@sec@baselineskip@@dim} abgelegt, dieser ist +% für die Abstände innerhalb von Überschriften notwendig. +% \begin{macrocode} +\newcommand*\tud@subtitle@fontsizecmd{\LARGE} +\newcommand*\tud@prefix@fontsizecmd{\huge} +\newcommand*\tud@sec@fontsizecmd{\Huge} +\newcommand*\tud@sec@baselineskip@@dim{} +\newcommand*\tud@sec@baselineskip@set{% + \begingroup% + \tud@sec@fontsizecmd% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def\tud@sec@baselineskip@@dim}{% + \the\dimexpr\glueexpr\f@baselineskip\relax\relax% + }% }% - }% + \tud@res@a% +} +\tud@sec@baselineskip@set % \end{macrocode} % Wird \cs{tud@x@scr@headings@set} aufgerufen, so werden mit \cs{KOMAoptionOf} % die aktuellen Werte der Option \opt{headings} ausgelesen, welche in einer % Liste ausgegeben werden. Diese wird durchlaufen und dabei auf die relevanten % Werte reagiert. % \begin{macrocode} - \KOMAoptionOf[\def\@tempb]{\KOMAClassFileName}{headings}% - \@for\@tempc:=\@tempb\do{% - \tud@if@strequal{\@tempc}{standardclasses}{\@tempa{standardclasses}{\Huge}{\LARGE}}{% - \tud@if@strequal{\@tempc}{big}{\@tempa{big}{\Huge}{\huge}{\LARGE}}{% - \tud@if@strequal{\@tempc}{normal}{\@tempa{normal}{\huge}{\LARGE}{\Large}}{% - \tud@if@strequal{\@tempc}{small}{\@tempa{small}{\LARGE}{\Large}{\large}}{}}}}% +\newcommand*\tud@x@scr@headings@set[1][]{% + \def\@tempb##1##2##3{% + \renewcommand*\tud@sec@fontsizecmd{##1}% + \renewcommand*\tud@prefix@fontsizecmd{##2}% + \renewcommand*\tud@subtitle@fontsizecmd{##3}% + \tud@sec@baselineskip@set% + #1% + }% + \KOMAoptionOf[\def\@tempc]{\KOMAClassFileName}{headings}% + \@for\@tempc:=\@tempc\do{% + \TUD@set@numkey{headings}{@tempa}{% + {standardclasses}{0},{big}{1},{normal}{2},{small}{3}% + }{\@tempc}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% standardclasses + \@tempb{\Huge} {\LARGE}{\Large}% + \or% big + \@tempb{\Huge} {\huge} {\LARGE}% + \or% normal + \@tempb{\huge} {\LARGE}{\Large}% + \or% small + \@tempb{\LARGE}{\Large}{\large}% + \fi% + \fi% }% -% \end{macrocode} -% Der Abstand nach Teil- und Kapitelüberschriften wird ebenso in Abhängigkeit -% der gewählten Einstellung für \opt{headings} definiert. -% \begin{macrocode} - \begingroup - \tud@sec@fontsize% - \tud@setglue\@tempskipa{% - .8\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% - }% - \edef\tud@res@a{% - \endgroup% - \def\noexpand\tud@cd@aftervskip@glue{\the\@tempskipa}% - }% - \tud@res@a% } % \end{macrocode} % Damit die Einstellungen für die Größe wirksam werden, wird das Makro einmalig @@ -714,14 +726,16 @@ % \begin{macrocode} \AfterEndPreamble{\tud@x@scr@headings@set} % \end{macrocode} -% \end{macro}^^A \tud@thesis@fontsize -% \end{macro}^^A \tud@sec@fontsize -% \end{macro}^^A \tud@x@scr@headings@current +% \end{macro}^^A \tud@sec@baselineskip@set +% \end{macro}^^A \tud@sec@baselineskip@@dim +% \end{macro}^^A \tud@sec@fontsizecmd +% \end{macro}^^A \tud@prefix@fontsizecmd +% \end{macro}^^A \tud@subtitle@fontsizecmd % \end{macro}^^A \tud@x@scr@headings@set % \begin{macro}{\tud@x@scr@headings@reset} % \changes{v2.05}{2015/11/24}{neu}^^A -% Hiermit wird nach dem Ausführen der Option \opt{headings} im Zweifelsfall die -% Größe und Formatierung der Überschriften neu gesetzt. +% Hiermit wird nach dem Ausführen der Option \opt{headings} die Größe und +% Formatierung der Überschriften neu gesetzt. % \begin{macrocode} \newcommand*\tud@x@scr@headings@reset{% \tud@cd@process% @@ -757,11 +771,16 @@ % \begin{macro}{\tud@sec@fontface} % \changes{v2.05}{2016/04/04}{Optionales Argument für \pkg{tudscrcomp}}^^A % \changes{v2.06}{2018/08/20}{extra-fette Überschriften möglich}^^A +% \changes{v2.06o}{2022/08/02}{Überschrifen im \CD ohne aktive +% Fließtextschriften möglich}^^A % \begin{macro}{\tud@sec@@fontface} % \begin{macro}{\tud@sec@format} +% \changes{v2.06o}{2022/08/02}{Sternversion für Leerraum ohne \cs{strut}}^^A +% \begin{macro}{\tud@sec@@format} +% \begin{macro}{\tud@sec@@@format} % \begin{macro}{\tud@sec@uppercase} -% \begin{macro}{\tud@sec@strut} -% \changes{v2.06}{2018/07/24}{neu}^^A +% \begin{macro}{\if@tud@sec} +% \changes{v2.06o}{2022/08/02}{neu}^^A % Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im % Layout des \CDs definiert. % \begin{macrocode} @@ -779,6 +798,14 @@ \let\bfdefault\tud@cdfont@ebf% \fontseriesforce{\tud@cdfont@ebf}% \fi% + \else% + \fontfamily{\tud@cdfont@fam}% + \if@tud@heavyheadings% + \let\bfdefault\tud@cdfont@ebf% + \else% + \let\bfdefault\tud@cdfont@bf% + \fi% + \fontseriesforce{\bfdefault}% \fi% \selectfont% } @@ -797,84 +824,80 @@ }% \fi % \end{macrocode} -% Der Befehl \cs{tud@sec@format} dient zur Formatierung von Überschriften. -% Dabei wird dieser mit der von \KOMAScript{} bereitgestellten Schnittstelle für -% Teile\footnote{\cs{partlineswithprefixformat}}, -% Kapitel\footnote{\cs{chapterlineswithprefixformat}, \cs{chapterlinesformat}} -% und +% Mit \cs{tud@sec@format} erfolgt die Formatierung von Überschriften, wobei die +% \KOMAScript-Schnittstelle für Teile\footnote{\cs{partlineswithprefixformat}}, +% Kapitel\footnote{\cs{chapterlineswithprefixformat}, \cs{chapterlinesformat}}, % Abschnitte\footnote{\cs{sectionlinesformat}, \cs{sectioncatchphraseformat}} -% verwendet. Dadurch wird eine Anpassung der Gliederungsbefehle~-- wie es -% einschließlich Version~v2.05 für die erzwungene Großschreibung umgesetzt -% wurde~-- vermieden. Für die \OpenSans führt das Makro \cs{tud@sec@format} -% lediglich \cs{tud@sec@strut} aus. -% \begin{macrocode} -\newcommand*\tud@sec@format[2][]{% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \endgroup% - }% - #2% +% sowie zusätzlich einfache Layoutelemente verwendet werden. Dadurch wird eine +% Anpassung der Gliederungsbefehle~-- wie es einschließlich Version~v2.05 für +% die erzwungene Großschreibung umgesetzt wurde~-- vermieden. +% +% Um für Teile und Kapitel ein einheitliches Erscheinungsbild zu erhalten, wird +% für diese zum einen \cs{strut}~-- in der Schriftgröße des Kontexts oder aber +% für das im optionalen Argument gegebene Schriftelement~-- und zum anderen +% ausreichend vertikaler Leerraum für Umlaute eingefügt. Letzteres erfolgt auch +% für Abschnitte (Sternversion). Dies liegt darin begründet, dass auf einer +% neuen Seite die erste Grundlinie höher liegt, als für Umlautmajuskeln in der +% Schrift für \cs{section} etc. notwendig ist. Deshalb wird die Grundlinie +% \enquote{notfallmäßig} mit \cs{vphantom} so weit nach unten verschoben, wie +% für die höchste Letter benötigt wird, unabhängig vom tatsächlichen Inhalt. +% +% Für Markup oder andere Inhalte, die lediglich im Fließtext jedoch nicht in +% Überschriften ausgegeben werden, wird der Schalter \cs{if@tud@sec} definiert. +% Das Setzen des Schalters wird in \cs{tud@sec@format} vorgenommen. +% \begin{macrocode} +\tud@newif\if@tud@sec +\newrobustcmd*\tud@sec@format{% + \@tud@sectrue% + \kernel@ifstar{\tud@sec@@format{}}{\tud@sec@@format{\strut}}% +} +\newcommand*\tud@sec@@format[1]{% + \kernel@ifnextchar[%] + {\tud@sec@@@format{#1}}% + {\tud@sec@@@format{#1}[]}% +} +\newcommand*\tud@sec@@@format{} +\def\tud@sec@@@format#1[#2]{% + \begingroup% + \IfArgIsEmpty{#2}% + {\let\tud@res@a\@firstofone}% + {\def\tud@res@a{\usekomafont{#2}}}% + \tud@res@a{% + \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% + }% + \endgroup% + \@firstofone% } % \end{macrocode} % Für die alten Schriften hat der Befehl eine erweiterte Funktionalität, wenn % die Schriftfamilie \DIN aktiv ist, welche für Überschriften einzusetzen ist. -% Das \CD verlangt dabei, dass zwingend Majuskeln\footnote{Großbuchstaben} zu -% verwenden sind. Hierfür wird der Befehl \cs{MakeTextUppercase} aus dem Paket -% \pkg{textcase} genutzt, welcher den internen \LaTeX-Befehl \cs{MakeUppercase} -% verbessert. Das optionale Argument kann genutzt werden, falls nicht die -% aktuelle Schrift sondern ein durch \KOMAScript{} definiertes Schriftelement -% ausgewertet werden soll. +% Das \CD verlangt dabei, dass zwingend Majuskeln zu verwenden sind. Hierfür +% wird der Befehl \cs{MakeTextUppercase} aus dem Paket \pkg{textcase} genutzt, +% der den internen \LaTeX"~Befehl \cs{MakeUppercase} verbessert. % \begin{macrocode} \if@tud@cdoldfont@active \newcommand*\tud@sec@uppercase{\MakeUppercase}% \AfterPackage*{textcase}{% \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% }% - \renewcommand*\tud@sec@format[2][]{% - \@tud@res@swafalse% - \IfArgIsEmpty{#1}{% - \tud@sec@strut% - \tud@ifdin{\@tud@res@swatrue}{}% - }{% - \begingroup% - \usefontofkomafont{#1}% - \tud@sec@strut% - \tud@ifdin{\aftergroup\@tud@res@swatrue}{}% - \endgroup% - }% - \if@tud@res@swa% - \tud@sec@uppercase{#2}% - \else% - #2% - \fi% + \def\tud@sec@@@format#1[#2]{% + \begingroup% + \IfArgIsEmpty{#2}% + {\let\tud@res@a\@firstofone}% + {\def\tud@res@a{\usekomafont{#2}}}% + \tud@res@a{% + \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% + }% + \tud@ifdin{\aftergroup\tud@sec@uppercase}{\aftergroup\@firstofone}% + \endgroup% }% \fi -% \end{macrocode} -% Für Abschnitte etc. liegt auf einer neuen Seite dier erste Grundlinie höher, -% als für Großbuchstaben in der größeren Schrift für \cs{section} etc. benötigt -% wird. Deshalb wird die Grundlinie \enquote{notfallmäßig} so weit nach unten -% verschoben, wie für den höchsten Buchstabe benötigt wird. Mit dem Befehl -% \cs{tud@sec@strut} wird für alle Überschriften dafür gesorgt, dass immer der -% gleiche Freiraum bereitgehalten wird, unabhängig vom Inhalt der spezifischen -% Überschrift. Hierfür wird \cs{strutbox} aus dem \LaTeXe"~Kernel~-- nachdem -% \cs{strut} zuvor bereits einmal ausgeführt wird, um die Standardgröße der Box -% zu verwenden~-- temporär umdefiniert. -% \begin{macrocode} -\newrobustcmd*\tud@sec@strut{% -%<*class> - \begingroup% - \strut\setbox\strutbox\hbox{\vphantom{\textsuperscript{\"A\"O\"U}}}\strut% - \endgroup% -% -} %} % \end{macrocode} -% \end{macro}^^A \tud@sec@strut +% \end{macro}^^A \if@tud@sec % \end{macro}^^A \tud@sec@uppercase +% \end{macro}^^A \tud@sec@@@format +% \end{macro}^^A \tud@sec@@format % \end{macro}^^A \tud@sec@format % \end{macro}^^A \tud@sec@@fontface % \end{macro}^^A \tud@sec@fontface @@ -885,6 +908,21 @@ %<*class&body> % \fi % +% \begin{macro}{\tud@part@hook} +% \changes{v2.06o}{2022/08/02}{neu}^^A +% \KOMAScript{} ignoriert für Teile standardmäßig alle Einstellungen für die +% Option \opt{parskip}. Da diese jedoch für Kapitel Beachtung finden und mit +% \TUDScript das Erscheinungsbild~-- insbesondere die vertikale Platzierung von +% Überschriften~-- für diese beiden Elemente einheitlich sein soll, wird über +% diesen Haken dafür gesorgt, dass \opt{parskip} auch für Teile genutzt wird. +% \begin{macrocode} +%<*book|report> +\newcommand*\tud@part@hook{} +\let\tud@part@hook\relax +\AddtoDoHook{heading/begingroup/part}{\tud@part@hook} +% +% \end{macrocode} +% \end{macro}^^A \tud@part@hook % \begin{macro}{\tud@title@fontcolor} % \begin{macro}{\tud@part@fontcolor} % \begin{macro}{\tud@chapter@fontcolor} @@ -957,11 +995,11 @@ \usekomafont{disposition}% \raggedtitle% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@title@fontcolor}% }% \tud@komafont@set{subtitle}{% - \tud@thesis@fontsize% + \tud@subtitle@fontsizecmd% \fontseriesforce{\tud@cdfont@bf}\selectfont% }% \tud@komafont@set{subject}{% @@ -991,6 +1029,7 @@ \tud@cs@restore{partheadendvskip}% \tud@cs@restore{partheademptypage}% \tud@cs@restore{partpagestyle}% + \let\tud@part@hook\relax% % \tud@komafont@unset{part}% \tud@komafont@unset{partnumber}% @@ -1010,17 +1049,19 @@ \let\partlineswithprefixformat\tud@partlineswithprefixformat% \tud@cs@store{scr@part@beforeskip}% %<*book|report> - \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@dim}% + \renewcommand*\scr@part@beforeskip{\tud@cd@beforevskip@@dim}% % %<*article|poster> - \renewcommand*\scr@part@beforeskip{\tud@cd@aftervskip@glue+\baselineskip}% + \renewcommand*\scr@part@beforeskip{% + \glueexpr\tud@cd@aftervskip@@glue+\baselineskip\relax% + }% % %<*book|report> \tud@cs@store{scr@part@innerskip}% - \renewcommand*\scr@part@innerskip{\tud@cd@innervskip@dim}% + \renewcommand*\scr@part@innerskip{\tud@cd@innervskip@@dim}% % \tud@cs@store{scr@part@afterskip}% - \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@glue}% + \renewcommand*\scr@part@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{partheadstartvskip}% \let\partheadstartvskip\tud@partheadstartvskip% %<*book|report> @@ -1030,6 +1071,13 @@ \let\partheademptypage\tud@partheademptypage% \tud@cs@store{partpagestyle}% \renewcommand*\partpagestyle{plain.tudheadings}% +% \end{macrocode} +% Mit |\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative| werden +% normalerweise direkt nach dem Haken |heading/begingroup/part| durch +% \KOMAScript{} die Einstellungen für die Option \opt{parskip} deaktiviert. Ist +% das Layout des \CDs aktiv, wird dies unterbunden. +% \begin{macrocode} + \def\tud@part@hook{\let\setparsizes\@gobblefour}% % % \end{macrocode} % Es wird die Schriftfarbe, "~größe und "~art angepasst, je nachdem ob der @@ -1041,6 +1089,7 @@ }% \tud@komafont@set{partnumber}{% \tud@sec@fontface% + \tud@prefix@fontsizecmd% \tud@color{\tud@part@fontcolor}% }% \tud@cs@store{raggedpart}% @@ -1075,11 +1124,11 @@ \tud@cs@store{chapterlinesformat}% \let\chapterlinesformat\tud@chapterlinesformat% \tud@cs@store{scr@chapter@beforeskip}% - \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@dim}% + \renewcommand*\scr@chapter@beforeskip{\tud@cd@beforevskip@@dim}% \tud@cs@store{scr@chapter@innerskip}% - \renewcommand*\scr@chapter@innerskip{\tud@cd@innervskip@dim}% + \renewcommand*\scr@chapter@innerskip{\tud@cd@innervskip@@dim}% \tud@cs@store{scr@chapter@afterskip}% - \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@glue}% + \renewcommand*\scr@chapter@afterskip{\tud@cd@aftervskip@@glue}% \tud@cs@store{chapterheadstartvskip}% \let\chapterheadstartvskip\tud@chapterheadstartvskip% \tud@cs@store{tud@chapter@before@hook}% @@ -1088,7 +1137,7 @@ \renewcommand*\tud@chapter@after@hook{\tud@chapter@app}% \tud@komafont@set{chapter}{% \tud@sec@fontface% - \tud@sec@fontsize% + \tud@sec@fontsizecmd% \tud@color{\tud@chapter@fontcolor}% }% \tud@komafont@set{chapterprefix}{\usesizeofkomafont{partnumber}}% @@ -1138,7 +1187,7 @@ \renewcommand*\raggedsection{\tud@raggedright}% \tud@cs@store{minisec}% \renewcommand\minisec[1]{% - \tud@cs@use{minisec}{\tud@sec@format{##1}}% + \tud@cs@use{minisec}{\tud@sec@format*{##1}}% }% \tud@komafont@set{minisec}{% \tud@sec@fontface% @@ -1212,13 +1261,14 @@ % \end{macro}^^A \tud@cd@specialpage@set % \begin{macro}{\tud@cd@headstart@vskip} % \changes{v2.06}{2018/08/01}{neu}^^A +% \changes{v2.06o}{2022/08/02}{Bugfix für vertikale Unterschiede}^^A % \begin{macro}{\tud@cd@vphantom} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@cd@beforevskip@dim} +% \begin{macro}{\tud@cd@beforevskip@@dim} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@cd@innervskip@dim} +% \begin{macro}{\tud@cd@innervskip@@dim} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@cd@aftervskip@glue} +% \begin{macro}{\tud@cd@aftervskip@@glue} % \changes{v2.06}{2018/08/01}{neu}^^A % Im \TUDCD werden sowohl Titel als auch Teil- und Kapitelüberschriften auf der % gleichen Grundlinienhöhe gesetzt. Hierfür sind Anpassungen der entsprechenden @@ -1227,27 +1277,40 @@ % \cs{chapterheadstartvskip} gesetzt. Um das Layout des \CDs umzusetzen, werden % diese beiden Makros als Haken genutzt. % -% Das Makro \cs{tud@cd@beforevskip@dim} ist der Abstand vor einer Überschrift, +% Das Makro \cs{tud@cd@beforevskip@@dim} ist der Abstand vor einer Überschrift, % welcher über \cs{tud@cd@headstart@vskip} gesetzt wird. Der Abstand zwischen % der Nummerierung eines Teils und der eigentlichen Bezeichnung wird mit -% \cs{tud@cd@innervskip@dim} definiert und durch \KOMAScript{} eingefügt. +% \cs{tud@cd@innervskip@@dim} definiert und durch \KOMAScript{} eingefügt. % Gleiches gilt für eine separate Kapitelnummernzeile (\opt{chapterprefix}) und -% dem eigentlichen Kapiteltitel. Durch \cs{tud@cd@aftervskip@glue} wird der +% dem eigentlichen Kapiteltitel. Durch \cs{tud@cd@aftervskip@@glue} wird der % Abstand zwischen Titel und Fließtext respektive der unteren Prääambel % definiert. Dieser Abstand ist abhängig von der gewählten Einstellung für die % Option \opt{headings}. % \begin{macrocode} -\newcommand*\tud@cd@beforevskip@dim{% +\newcommand*\tud@cd@beforevskip@@dim{% \dimexpr-\tud@dim@areavskip-\tud@dim@areaheadvskip\relax% } -\newcommand*\tud@cd@innervskip@dim{.25\baselineskip}% -\newcommand*\tud@cd@aftervskip@glue{% - .75\baselineskip \@plus .05\baselineskip \@minus .1\baselineskip% +\newcommand*\tud@cd@innervskip@@dim{% + \dimexpr(\tud@sec@baselineskip@@dim)/5\relax% +}% +\newcommand*\tud@cd@aftervskip@@glue{% + \glueexpr + \dimexpr(\tud@sec@baselineskip@@dim)*4/5\relax + \@plus\dimexpr(\tud@sec@baselineskip@@dim)/20\relax + \@minus\dimexpr(\tud@sec@baselineskip@@dim)/10\relax + \relax } +% \end{macrocode} +% Dieses Konstrukt ist mehr oder weniger durch Ausprobieren entstanden, da für +% die unterschiedlichen Einstellungsmöglichkeiten der Option \opt{headings} je +% nach gewählter Größe der Überschriften leichte Verschiebungen und Sprünge für +% die unterschiedlichen Varianten\footnote{Prefix, Untertitel, Absatzabstände} +% aufgetreten sind. +% \begin{macrocode} \newcommand*\tud@cd@headstart@vskip{% - \tud@setdim\@tempskipa{\tud@cd@beforevskip@dim}% - \tud@length@setabsolute\@tempskipa% - \null\vskip-\baselineskip\vskip\@tempskipa% + \tud@setdim\@tempdima{\tud@cd@beforevskip@@dim}% + \tud@length@setabsolute\@tempdima% + \null\vskip\dimexpr\glueexpr\@tempdima-\f@baselineskip-\parskip\relax\relax% } % \end{macrocode} % Sollte keine Präfixzeile für Teile oder Kapitel verwendet werden, muss für @@ -1256,15 +1319,15 @@ % \begin{macrocode} \newcommand*\tud@cd@vphantom{% \begingroup% - \usekomafont{partnumber}{\nobreak\tud@sec@strut}% - \tud@setdim\@tempskipa{\tud@cd@innervskip@dim}% - \par\nobreak\vskip\@tempskipa% + \usekomafont{partnumber}{% + \tud@sec@format{\vskip\tud@cd@innervskip@@dim}% + }% \endgroup% } % \end{macrocode} -% \end{macro}^^A \tud@cd@aftervskip@glue -% \end{macro}^^A \tud@cd@innervskip@dim -% \end{macro}^^A \tud@cd@beforevskip@dim +% \end{macro}^^A \tud@cd@aftervskip@@glue +% \end{macro}^^A \tud@cd@innervskip@@dim +% \end{macro}^^A \tud@cd@beforevskip@@dim % \end{macro}^^A \tud@cd@vphantom % \end{macro}^^A \tud@cd@headstart@vskip % @@ -1275,6 +1338,41 @@ % \subsection{Positionierung und Formatierung von Überschriften} % \subsubsection{Präambeln für Teile und Kapitel} % +% \begin{macro}{\scr@startpart} +% Für die Präambel von Teilen muss ebenfalls etwas gebastelt werden, um das +% Erscheinungsbild an das von Teilen anzupassen, falls das Layout des \CDs +% aktiv ist. +% \begin{macrocode} +\patchcmd\scr@startpart{% + \partheadstartvskip + \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}% + \vskip-\baselineskip\nobreak +}{% + \ifcase\tud@cd@part@num\relax% false + \partheadstartvskip% + \vbox to\z@{\vss\use@preamble{#1@o}\strut\par}% + \vskip-\baselineskip\nobreak% + \else% +% \end{macrocode} +% Im Gegensatz zur ursprünglichen Definition wird die Präambel vor der +% vertikalen Formatierung des Teils ausgegeben und an die Kapitelpräambel +% angeglichen. +% \begin{macrocode} + {% + \setbox\z@\vbox{% + \vskip\dimexpr% + \tud@cd@innervskip@@dim-\tud@sec@baselineskip@@dim-\baselineskip% + \relax% + \use@preamble{#1@o}\strut\par% + }% + \vbox to \z@{\box\z@\vss}% + \vskip\dimexpr\parskip-\baselineskip\relax% + }% + \partheadstartvskip% + \fi% +}{}{\tud@patch@wrn{scr@startpart}} +% \end{macrocode} +% \end{macro}^^A \scr@startpart % \begin{macro}{\tud@preamble@fontcolor} % \changes{v2.06}{2018/08/08}{neu}^^A % Der Befehl wird innerhalb von \cs{set@@@@preamble} genutzt, um die notwendige @@ -1296,7 +1394,7 @@ % Zunächst wird der unterschiedliche Abstand bei Teil- und Kapitelpräambeln % ausgeglichen. % \begin{macrocode} - \tud@setglue\@tempskipa{\tud@cd@aftervskip@glue}% + \tud@setglue\@tempskipa{\tud@cd@aftervskip@@glue}% \tud@length@setabsolute\@tempskipa% \vskip\@tempskipa% % \end{macrocode} @@ -1395,7 +1493,7 @@ % Die Schriftelement für die Untertitel von Teilen. % \begin{macrocode} \newkomafont{partsubtitle}{% - \tud@thesis@fontsize% + \tud@subtitle@fontsizecmd% \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@part@fontcolor}% } @@ -1420,7 +1518,7 @@ % Die Schriftelement für die Untertitel von Kapiteln. % \begin{macrocode} \newkomafont{chaptersubtitle}{% - \tud@thesis@fontsize% + \tud@subtitle@fontsizecmd% \fontseriesforce{\tud@cdfont@bf}\selectfont% \tud@color{\tud@chapter@fontcolor}% } @@ -1435,7 +1533,10 @@ % \begin{macrocode} \newcommand*\tud@sec@subtitle[1]{% \ifcsvoid{tud@#1@subtitle}{}{% - {\usekomafont{#1subtitle}{\tud@sec@format{\csuse{tud@#1@subtitle}}}}\par% + {\usekomafont{#1subtitle}{% + \vskip-1\parskip% + \tud@sec@format{\csuse{tud@#1@subtitle}}% + }}\par% \global\cslet{tud@#1@subtitle}{\@empty}% }% } @@ -1532,11 +1633,13 @@ % \changes{v2.06}{2018/08/01}{neu}^^A % \begin{macro}{\tud@partformat} % \changes{v2.06}{2018/08/01}{neu}^^A +% \changes{v2.06o}{2022/08/02}{Bugfix für Option \opt{parttitle}}^^A % Die Formatierungsbefehle für die Überschriften von Teilen. % \begin{macrocode} \newcommand*\tud@partformat{}% \newcommand*\tud@partlineswithprefixformat[3]{% %<*book|report> + \vskip-2\parskip% \if@tud@parttitle% \ifx\@@title\@empty% \ClassWarning{\TUD@Class@Name}{% @@ -1545,13 +1648,18 @@ }% \fi% \tud@cd@vphantom% - \tud@sec@format[{#1}]{% - \usekomafont{#1}{\nobreak\interlinepenalty \@M\@@title\strut\@@par}% + \usekomafont{#1}{% + \tud@sec@format{\nobreak\interlinepenalty\@M\@@title\strut\@@par}% }% - \setpartsubtitle{% - \setkomafont{part}{}% - \tud@sec@format[partnumber]{\IfUseNumber{\partformat\enskip}{}#3}% +% \end{macrocode} +% Hier wird etwas hemdsärmlich der eigentliche Titel aus |#3| extrahiert. +% \begin{macrocode} + \def\tud@partformat##1\nobreak\interlinepenalty\@M##2\strut\@@par##3\@nil{% + \def\tud@partformat{\IfUseNumber{\partformat\enskip}{}##2}% }% + \expandafter\expandafter\expandafter\tud@partformat% + \expandafter\@firstofone\@gobbletwo#3\@nil% + \expandafter\setpartsubtitle\expandafter{\tud@partformat}% \else% % \edef\tud@partformat{\noexpand\tud@sec@format{\expandonce\partformat}}% @@ -1793,14 +1901,10 @@ % Die Formatierungsbefehle für die Überschriften von Abschnitten etc. % \begin{macrocode} \newcommand*\tud@sectionlinesformat[4]{% - \@hangfrom{\hskip #2#3}{\tud@sec@format[{#1}]{#4}}% + \@hangfrom{\hskip #2#3}{\tud@sec@format*[{#1}]{#4}}% } -% \end{macrocode} -% Für Überschriften mit Einzug wird \cs{tud@sec@strut} wirkungslos definiert. -% \begin{macrocode} \newcommand*\tud@sectioncatchphraseformat[4]{% - \let\tud@sec@strut\relax% - \hskip #2#3\tud@sec@format[{#1}]{#4}% + \hskip #2#3\tud@sec@format*[{#1}]{#4}% } % \end{macrocode} % \end{macro}^^A \tud@sectioncatchphraseformat diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 786c91c3..6b8c8cb7 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -456,7 +456,7 @@ % entsprechenden \pgs{scrheadings}-Ebenen verwendet. % \begin{macrocode} \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -487,7 +487,7 @@ % Fußzeilenebenen des Seitenstils \pgs{plain.scrheadings} hinzugefügt. % \begin{macrocode} \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{plain.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -517,7 +517,7 @@ % lediglich aus dem Kopf besteht und einen lerren Seitenfuß hat. % \begin{macrocode} \DeclareNewPageStyleByLayers[% - onselect=\tud@ps@onselect,onbackground=\tud@ps@onbackground% + onbackground=\tud@ps@onbackground% ]{empty.tudheadings}{% tudheadings.head.back,% tudheadings.head.content,% @@ -566,6 +566,40 @@ % \end{layerpagestyle}^^A empty.tudheadings % \end{layerpagestyle}^^A plain.tudheadings % \end{layerpagestyle}^^A tudheadings +% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf +% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten +% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für +% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt. +% Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile, +% weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll +% dennoch ermöglicht werden, weshalb hierfür der Haken \val{onselect} verwendet +% wird, der für jeden Seitenstil bei der Initialisierung aufgerufen wird. +% \begin{macrocode} + \AddToLayerPageStyleOptions{@everystyle@}{% + onselect={% + \tud@if@tudheadings{\currentpagestyle}{% + \DeclarePageStyleAlias{plain}{plain.tudheadings}% + \DeclarePageStyleAlias{headings}{tudheadings}% + \def\sls@currentheadings{tudheadings}% + \def\sls@currentplain{plain.tudheadings}% + \TUD@deprecated@length\footlogoheight% +% \end{macrocode} +% Im Seitenfuß wird für die Seitenzahl und ggf. die Kolumnentitel die passende +% Schrift verwendet. +% \begin{macrocode} + \tud@komafont@set{pagenumber}{\usekomafont{tudheadings}}% + \tud@komafont@set{pagefoot}{\usekomafont{tudheadings}}% + }{% +% \end{macrocode} +% Handelt es sich nicht um einen \pgs{tudheadings} Seitenstil, werden die +% Schriften für Seitenzahl und Kolumnentitel zurückgesetzt. +% \begin{macrocode} + \tud@komafont@unset{pagenumber}% + \tud@komafont@unset{pagefoot}% + }% + }% + }% +% \end{macrocode} % Damit ist die Deklaration der Seitenstile mit \pkg{scrlayer-scrpage} beendet. % \begin{macrocode} } @@ -675,6 +709,7 @@ \cslet{ps@empty.tudheadings}{\ps@empty}% \providecommand*\currentpagestyle{plain}% \providecommand*\BeforeSelectAnyPageStyle[1]{}% + \providecommand*\tud@BeforeSelectAnyPageStyle[1]{}% \providecommand*\GetRealPageStyle[1]{#1}% % \end{macrocode} % Außerdem wird die angepasste Definition von \cs{pagestyle} verwendet. @@ -693,28 +728,6 @@ % \end{macro}^^A \ps@empty.tudheadings % \end{macro}^^A \ps@plain.tudheadings % \end{macro}^^A \ps@tudheadings -% \begin{macro}{\tud@ps@onselect} -% \changes{v2.03}{2015/01/09}{neu}^^A -% Der Befehl wird bei der Initialisierung der Seitenstile aufgerufen. -% \begin{macrocode} -\newcommand*\tud@ps@onselect{% -% \end{macrocode} -% Normalerweise werden durch \pkg{scrlayer-scrpage} bei der Umschaltung auf -% einen mit dem Befehl \cs{newpairofpagestyles}\marg{Seitenstil} definierten -% Seitenstil, die Seitenstile \pgs{headings} und \pgs{plain} als Aliase für -% \pgs{\meta{Seitenstil}} und \pgs{plain.\meta{Seitenstil}} festgelegt. -% Allerdings definiert dieser Befehl zusätzliche Ebenen für Kopf- und Fußzeile, -% weshalb auf die Verwendung verzichtet wird. Das automatische Umschalten soll -% dennoch ermöglicht werden. -% \begin{macrocode} - \DeclarePageStyleAlias{plain}{plain.tudheadings}% - \DeclarePageStyleAlias{headings}{tudheadings}% - \def\sls@currentheadings{tudheadings}% - \def\sls@currentplain{plain.tudheadings}% - \TUD@deprecated@length\footlogoheight% -} -% \end{macrocode} -% \end{macro}^^A \tud@ps@onselect % % \subsubsection{Gestaltungsvarianten für Kopf- und Fußzeile} % @@ -1029,7 +1042,7 @@ \dimexpr(\tud@dim@barheight+\tud@dim@line*2-\totalheight)/2\relax% }[% \dimexpr\tud@dim@barheight-\depth\relax% - ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{gjpqy\"A\"O\"U}}% + ][\dimexpr\glueexpr#1\relax\relax]{#2\vphantom{\tud@font@phantomglyphs}}% } % \end{macrocode} % \end{macro}^^A \tud@head@text@write @@ -1534,11 +1547,15 @@ % den Boxen in der richtigen Größe neu zu setzen. % \begin{macrocode} \tud@headlogo@set% - \@tud@footlogo@option@settrue% + \global\@tud@footlogo@option@settrue% \tud@footlogo@option@set% \global\@tud@mainlogo@setfalse% \fi% } +\AtBeginDocument{% + \@tud@mainlogo@settrue% + \tud@mainlogo@set% +} % \end{macrocode} % \end{macro}^^A \tud@mainlogo@wrn % \end{length}^^A \tud@dim@mainlogoheight @@ -1872,20 +1889,26 @@ % \end{macro}^^A \if@tud@foot@colored % \end{option}^^A cdfoot % +% \iffalse +% +%<*class> +% \fi +% % \subsubsection{Optionales \DDC-Logo oder Drittlogos} % % \begin{option}{footlogoheight} % \changes{v2.05}{2016/06/16}{neu}^^A % \begin{macro}{\tud@footlogoheight@dim} % \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@footlogoheight@set} % Für den Anwender besteht mit der Option \opt{footlogoheight} die Möglichkeit, % die Höhe aller Logos im Fußbereich~-- also eventuell das \DDC-Logo sowie % vom Anwender mit dem Befehl \cs{footlogo} angegebene Logos~-- zentral % festzulegen. Dabei wird der gewünschte Wert in \cs{tud@footlogoheight@dim} -% abgelegt. +% abgelegt. Ist dieser \val{0pt}, wird die Höhe des Loogs der \TnUD genutzt. % \begin{macrocode} -\newcommand*\tud@footlogoheight@dim{} -\let\tud@footlogoheight@dim\relax +%<*option> +\newcommand*\tud@footlogoheight@dim{0pt} \TUD@key{footlogoheight}{% \TUD@set@dimkey{footlogoheight}{\tud@footlogoheight@dim}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1893,26 +1916,30 @@ \global\@tud@footlogo@option@settrue% \fi% } +% % \end{macrocode} % Da sich mit der Version~v2.03 die Standardhöhe des \DDC-Logos im Fußbereich % geändert hat, wird dieser Wert abhängig von der Einstellung für die Option -% \opt{tudscrver} nach der Abarbeitung der Optionen am Ende der Klasse gesetzt. +% \opt{tudscrver} gesetzt. % \begin{macrocode} -\AtEndOfClass{% - \ifdefvoid{\tud@footlogoheight@dim}{% +%<*body> +\newcommand*\tud@footlogoheight@set{% + \ifdim\dimexpr\tud@footlogoheight@dim\relax=\z@\relax% \tud@if@v@lower{2.03}{% \def\tud@footlogoheight@dim{\tud@dim@topmargin*3/5}% }{% \def\tud@footlogoheight@dim{\tud@dim@mainlogoheight}% }% - }{}% + \fi% } +% % \end{macrocode} +% \end{macro}^^A \tud@footlogoheight@set % \end{macro}^^A \tud@footlogoheight@dim % \end{option}^^A footlogoheight % % \iffalse -% +% %<*class&body> % \fi % @@ -1961,6 +1988,7 @@ % gesetzt wurde, bei der Ausgabe des dazugehörigen Layers. % \begin{macrocode} \newcommand*\tud@footlogo@option@set{% + \tud@footlogoheight@set% \if@tud@footlogo@option@set% \tud@footlogo@ddc@set{black}{DDC-22}% \tud@footlogo@ddc@set{HKS41}{DDC-25}% @@ -1980,6 +2008,7 @@ \tud@footlogo@ddc@set{option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% + \global\@tud@footlogo@cmd@settrue% \fi% } % \end{macrocode} @@ -2181,11 +2210,11 @@ % \begin{macro}{\tud@footcontent@@do} % \changes{v2.04}{2015/04/21}{neu}^^A % \changes{v2.05}{2016/04/17}{Stern im Argument erhält aktuellen Inhalt}^^A -% \begin{macro}{\tud@footcontent@usefont} +% \begin{macro}{\tud@footcontent@font@use} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@footcontent@fontsize} +% \begin{macro}{\tud@footcontent@font@size} % \changes{v2.06}{2018/08/01}{neu}^^A -% \begin{macro}{\tud@footcontent@fontface} +% \begin{macro}{\tud@footcontent@font@face} % \changes{v2.04}{2015/06/01}{neu}^^A % \changes{v2.05}{2015/07/21}{Bugfix für die Schriftgröße und den Durchschuss % bei einer entsprechenden Anpassung der Schriftart \val{tudheadings}}^^A @@ -2202,10 +2231,10 @@ % \end{macrocode} % Dieser Befehl wird zur Formatierung der Schrift im Fußbereich definiert. % \begin{macrocode} -\newcommand*\tud@footcontent@usefont[1]{% +\newcommand*\tud@footcontent@font@use[1]{% \usekomafont{tudheadings}{% - \tud@footcontent@fontsize% - \tud@footcontent@fontface% + \tud@footcontent@font@size% + \tud@footcontent@font@face% \selectfont% #1% }% @@ -2215,22 +2244,23 @@ % diesen Makros gesichert, weshalb diese vorher alloziert werden. Anschließend % erfolgt die Definition des Befehls. % \begin{macrocode} -\newcommand*\tud@footcontent@fontsize{} -\newcommand*\tud@footcontent@fontface{} +\newcommand*\tud@footcontent@font@size{} +\newcommand*\tud@footcontent@font@face{} \newcommand*\tud@footcontent@left{} -\newcommand*\tud@footcontent@right{\@nil} +\newcommand*\tud@footcontent@right{} +\let\tud@footcontent@right\@nnil % \end{macrocode} % Die Sternversion ändert die Schriftgröße vom Inhalt nicht. Die Normalversion % nutzt die Schriftgröße der Kopfzeile mit einem passenden Durchschuss. % \begin{macrocode} \newcommand*\footcontent{% \kernel@ifstar{% - \renewcommand*\tud@footcontent@fontsize{}% + \renewcommand*\tud@footcontent@font@size{}% \tud@footcontent@do% }{% - \renewcommand*\tud@footcontent@fontsize{% - \tud@setdim\@tempdima{\tud@head@fontsize\p@}% - \fontsize{\@tempdima}{1.25\@tempdima}% + \renewcommand*\tud@footcontent@font@size{% + \tud@setdim\tud@res@glue{\tud@head@fontsize\p@}% + \fontsize{\tud@res@glue}{\dimexpr1\tud@res@glue*5/4\relax}% }% \tud@footcontent@do% }% @@ -2253,7 +2283,7 @@ % verwendet, bleibt die bisherige Definition bestehen. % \begin{macrocode} \if\detokenize{#1*}\relax\else% - \renewcommand*\tud@footcontent@fontface{#1}% + \renewcommand*\tud@footcontent@font@face{#1}% \fi% % \end{macrocode} % Wurde in einem der Argumente für den linken und/oder rechten Inhalt ein Stern @@ -2269,9 +2299,9 @@ % \end{macrocode} % \end{macro}^^A \tud@footcontent@right % \end{macro}^^A \tud@footcontent@left -% \end{macro}^^A \tud@footcontent@fontface -% \end{macro}^^A \tud@footcontent@fontsize -% \end{macro}^^A \tud@footcontent@usefont +% \end{macro}^^A \tud@footcontent@font@face +% \end{macro}^^A \tud@footcontent@font@size +% \end{macro}^^A \tud@footcontent@font@use % \end{macro}^^A \tud@footcontent@@do % \end{macro}^^A \tud@footcontent@do % \end{KOMAfont}^^A tudheadings @@ -2322,10 +2352,10 @@ \nobreakspace(\@discipline)% \fi% \fi% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% \ifx\@office\@empty\else\newline\@office\fi% \ifx\@telephone\@empty\else\newline\@telephone\fi% \ifx\@telefax\@empty\else\newline\@telefax\fi% - \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% }% % \end{macrocode} % Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte @@ -2367,10 +2397,10 @@ % Die Ausgabe der Kontaktperson(en) erfolgt analog zu der Autorenausgabe. % \begin{macrocode} \def\tud@newline@poster{% + \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% \ifx\@office\@empty\else\newline\@office\fi% \ifx\@telephone\@empty\else\newline\@telephone\fi% \ifx\@telefax\@empty\else\newline\@telefax\fi% - \ifx\@emailaddress\@empty\else\newline\@emailaddress\fi% }% \ifx\@contactperson\@empty\else% \tud@if@strblank{#2}{}{{\tud@head@font@@bold#2\newline}}% @@ -2406,6 +2436,7 @@ % % \begin{macro}{\tud@footcontent@use} % \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@footcontent@@use} % Mit \cs{tud@footcontent@use} erfolgt die Ausgabe der mit \cs{footcontent} % definierten Inhalte. Dabei wird darauf geachtet, ob ein \DDC-Logo im Fuß % verwendet wird. Die Ausgabe erfolgt jedoch nur, falls tatsächlich etwas @@ -2416,8 +2447,7 @@ \newcommand*\tud@footcontent@use[2]{% \@tempswafalse% \ifx\tud@footcontent@left\@empty% - \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\else% + \ifx\tud@footcontent@right\@nnil\else% \ifx\tud@footcontent@right\@empty\else% \@tempswatrue% \fi% @@ -2442,32 +2472,9 @@ \linespread{1}% \vss% \hbox to #2{% - \tud@footcontent@usefont{% -% \end{macrocode} -% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird -% der Inhalt über die komplette Breite des Textbereiches ausgegeben. -% \begin{macrocode} - \def\@tempa{\@nil}% - \ifx\@tempa\tud@footcontent@right\relax% - \vtop{% - \hsize=\dimexpr\glueexpr#2-\@tempdimc\relax\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% -% \end{macrocode} -% Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen -% der Abstand \cs{columnsep} eingefügt wird. -% \begin{macrocode} - \else% - \vtop{% - \hsize=\dimexpr\glueexpr(#2-\columnsep)/2\relax\relax% - \strut\ignorespaces\tud@footcontent@left\strut% - }% - \hspace{\columnsep}% - \vtop{% - \hsize=\dimexpr\glueexpr(#2-\columnsep)/2-\@tempdimc\relax\relax% - \strut\ignorespaces\tud@footcontent@right\strut% - }% - \fi% + \tud@footcontent@font@use{% + \tud@setglue\tud@res@glue{#2}% + \tud@footcontent@@use{\tud@res@glue}% \hss% }% }% @@ -2490,6 +2497,33 @@ \fi% } % \end{macrocode} +% Wurde das optionale Argument nach dem obligatorischen nicht genutzt, so wird +% der Inhalt über die komplette Breite des Textbereiches ausgegeben. +% \begin{macrocode} +\newcommand*\tud@footcontent@@use[1]{% + \ifx\tud@footcontent@right\@nnil% + \vtop{% + \hsize=\dimexpr\glueexpr#1-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% +% \end{macrocode} +% Im zweispaltigen modus werden zwei vertikale Boxen erzeugt, zwischen denen +% der Abstand \cs{columnsep} eingefügt wird. +% \begin{macrocode} + \else% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2\relax\relax% + \strut\ignorespaces\tud@footcontent@left\strut% + }% + \hspace{\columnsep}% + \vtop{% + \hsize=\dimexpr\glueexpr(#1-\columnsep)/2-\@tempdimc\relax\relax% + \strut\ignorespaces\tud@footcontent@right\strut% + }% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \tud@footcontent@@use % \end{macro}^^A \tud@footcontent@use % % \subsection{Umgebungsparameter für die neuen Seitenstile} diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index db4f1f0d..889735b8 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -532,10 +532,10 @@ \tud@multiple@fields@preset{@contactperson}{}{##1}% \begin{tabular}[t]{@{}l@{}}% \ignorespaces##1\tabularnewline% + \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% \ifx\@office\@empty\else\@office\tabularnewline\fi% \ifx\@telephone\@empty\else\@telephone\tabularnewline\fi% \ifx\@telefax\@empty\else\@telefax\tabularnewline\fi% - \ifx\@emailaddress\@empty\else\@emailaddress\tabularnewline\fi% \end{tabular}% \tud@multiple@fields@restore{@contactperson}% \tud@multiple@@@split{##2}{\hfill}% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index fba100c6..1105db28 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -184,7 +184,7 @@ %<*book|report|article> \newkomafont{thesis}{% \usekomafont{title}% - \tud@thesis@fontsize% + \tud@subtitle@fontsizecmd% } % \newkomafont{titlepage}{% @@ -478,6 +478,7 @@ % Das ganze Layout wird vertikal so verschoben, dass der Titel auf der gleichen % Höhe steht wie die Überschriften auf Teil- und Kapitelseiten. % \begin{macrocode} + \vspace*{-\baselineskip}% \tud@cd@headstart@vskip% \vspace*{\dimexpr\tud@pageheadingsvskip@dim\relax}% \tud@cd@vphantom% @@ -502,8 +503,7 @@ % allerdings etwas kleiner. % \begin{macrocode} \ifx\@subtitle\@empty\else% - {\usekomafont{partnumber}{\nobreak\tud@sec@strut}}% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% \vskip\glueexpr\bigskipamount*2\relax% % \end{macrocode} @@ -794,6 +794,7 @@ % \begin{macrocode} \newcommand*\tud@maketitle@@inpage{% \global\@topnum=\z@% + \vspace*{-\baselineskip}% \tud@cd@headstart@vskip% %<*book|report|article> \vspace*{\dimexpr\tud@headingsvskip@dim\relax}% @@ -825,15 +826,14 @@ % \begin{macrocode} {\usekomafont{title}{\tud@title@format{\@title}\par}}% \ifx\@subtitle\@empty\else% - \vskip 1ex\@plus.5ex\@minus.5ex% - {\usekomafont{subtitle}{\tud@title@format{\@subtitle}\par}}% + {\usekomafont{subtitle}{\tud@title@format[partnumber]{\@subtitle}\par}}% \fi% \vskip 2ex\@plus1ex\@minus1ex% % \end{macrocode} % Ausgabe eines Autors oder mehrerer Autoren ggf. mit Zusatzinformationen. % \begin{macrocode} %<*book|report|article> - \vskip\glueexpr\bigskipamount*2\relax% + \vskip\bigskipamount% \let\tud@split@author@do\tud@split@author@title% \tud@multiple@split{@author}\par% % \end{macrocode} @@ -863,12 +863,10 @@ % \end{macrocode} % Am Ende wird noch etwas vertikaler Abstand eingefügt. % \begin{macrocode} - \vskip\glueexpr\bigskipamount*2\relax% + \vskip\bigskipamount% % \ifnum\col@number>\@ne\relax% - \ifdefvoid{\multicolsep}{}{% - \Ifisskip{\multicolsep}{\vspace{-\multicolsep}}{}% - }% + \tud@if@lengthregister{\multicolsep}{\vspace{-\multicolsep}}{}% \fi% % \end{macrocode} % Wird das \DDC-Logo im Kompatibilitätsmodus für die Version~v2.02 gesetzt, @@ -896,20 +894,16 @@ \newcommand*\tud@maketitle@head{% \setbox\z@\vbox{% \ifx\@titlehead\@empty\else% - {\usekomafont{titlehead}{% - \begin{minipage}[t]{\textwidth}% - \@titlehead\tud@sec@strut% - \end{minipage}% - }}% + \begin{minipage}[t]{\textwidth}% + \usekomafont{titlehead}{\@titlehead\strut\par}% + \end{minipage}% \fi% %<*book|report|article> \tud@thesis@tosubject% % \ifx\@subject\@empty\else% \par\medskip% - {\usekomafont{subject}{% - \@subject\tud@sec@strut% - }}% + {\usekomafont{subject}{\tud@sec@format[partnumber]{\@subject}}}% \fi% }% % \end{macrocode} @@ -925,7 +919,7 @@ \fi% } % \end{macrocode} -% \end{macro}^^A \tud@maketitle@inpage +% \end{macro}^^A \tud@maketitle@head % % \subsubsection{Hilfsmakros für die Ausgabe} % @@ -935,7 +929,7 @@ % der Titelseite soll sichergestellt werden, dass der Inhalt selbst nicht in % Majuskeln gesetzt wird. % \begin{macrocode} -\newcommand*\tud@title@format[1]{% +\newcommand*\tud@title@format[2][]{% \begingroup% \let\\\newline% % \end{macrocode} @@ -949,10 +943,10 @@ \let\tud@thanks\relax% \def\thanks##1{\gdef\tud@thanks{##1}}% \let\footnote\thanks% - \sbox\z@{#1}% + \sbox\z@{#2}% \let\thanks\@gobble% \let\footnote\@gobble% - \tud@sec@format{#1}% + \tud@sec@format[{#1}]{#2}% \edef\tud@res@a{% \endgroup% \ifx\tud@thanks\relax\else% From 757fc42f7bd565d0b73b5c13221390b012efa891 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Wed, 3 Aug 2022 00:42:05 +0200 Subject: [PATCH 13/24] pass member to \TUDProcessOptions --- source/tudscr-base.dtx | 51 ++++++++++++++++++++++++------------- source/tudscr-misc.dtx | 27 +++++++++----------- source/tudscr-pagestyle.dtx | 2 +- 3 files changed, 47 insertions(+), 33 deletions(-) diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index def975a5..f239874c 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -116,12 +116,13 @@ % % \end{macrocode} % -% \subsection{Notwendige Pakete für \TUDScript} -% % \iffalse %<*package&base> % \fi % +% \subsection{Notwendige Pakete für \TUDScript} +% +% \changes{v2.06f}{2020/01/14}{Anpassungen für \pkg{scrbase} \val{v3.28}}^^A % Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt, \pkg{scrlfile} % für verschiedene Hooks vor sowie nach Klassen und Paketen. % \begin{macrocode} @@ -885,8 +886,12 @@ % Zuerst ein paar Makros zur einfacheren Verwendung. % \begin{macrocode} \DefineFamily{TUD} -\newcommand*\TUDProcessOptions{\FamilyProcessOptions{TUD}} -\newcommand*\TUDExecuteOptions{\FamilyExecuteOptions{TUD}} +\newcommand*\TUDProcessOptions[1][.\@currname.\@currext]{% + \FamilyProcessOptions[{#1}]{TUD}% +} +\newcommand*\TUDExecuteOptions[1][.\@currname.\@currext]{% + \FamilyExecuteOptions[{#1}]{TUD}% +} \newcommand*\TUDoptions{\FamilyOptions{TUD}} \newcommand*\TUDoption{\FamilyOption{TUD}} % \end{macrocode} @@ -1331,6 +1336,9 @@ \newcommand*\TUD@unknown@keyval{\FamilyUnknownKeyValue{TUD}} % \end{macrocode} % \end{macro}^^A \TUD@unknown@keyval +% +% \subsubsection{Voreinstellungen für abhängige Optionen} +% % \begin{macro}{\tud@locked@newnum} % \begin{macro}{\tud@locked@num@preset} % \begin{macro}{\tud@locked@num@set} @@ -1338,7 +1346,8 @@ % definieren, für das mit \cs{tud@locked@num@preset}\marg{Name}\marg{Definition} % eine Voreinstellung definiert werden kann, solange der Wert nicht mit % \cs{tud@locked@num@set}\marg{Name}\marg{Definition} explizit überschrieben -% wurde. +% wurde. Damit ist es möglich, Voreinstellungen abhängig von anderen Optionen +% zu realisieren. % \begin{macrocode} \newcommand*\tud@locked@newnum[2]{% \expandafter\newcommand\expandafter*\csname #1\endcsname{#2}% @@ -1623,12 +1632,14 @@ \Ifnumber{\kv@value}{\def\tud@reserved{columns=\kv@value}}{}% \iflanguageloaded{\kv@value}{\def\tud@reserved{language=\kv@value}}{}% \ifx\tud@reserved\relax% - \PackageError{tudscrbase}{% - Unknown default value `\kv@value'% - }{% - If `\kv@value' is a language, you haven't loaded it. \MessageBreak% - Otherwise, there's no handler for the given value. \MessageBreak% - You should specify a certian key (=\kv@value).% + \tud@if@strblank{\kv@value}{}{% + \PackageError{tudscrbase}{% + Unknown default value `\kv@value'% + }{% + If `\kv@value' is a language, you haven't loaded it. \MessageBreak% + Otherwise, there's no handler for the given value. \MessageBreak% + You should specify a certian key (=\kv@value).% + }% }% \fi% }% @@ -1642,19 +1653,20 @@ } % \end{macrocode} % \end{macro}^^A \TUD@parameter@handler@default -% \begin{macro}{\TUD@parameter@error} -% Das Makro \cs{TUD@parameter@error}\marg{Parameter}\marg{Werteliste} gibt für +% \begin{macro}{\TUD@parameter@err} +% Das Makro \cs{TUD@parameter@err}\marg{Parameter}\marg{Werteliste} gibt für % den Fall einer ungültigen Wertzuweisung an einen bestimmten \meta{Parameter} % einen Fehler mit einem entsprechenden Hinweis auf gültige Werte innerhalb von % \meta{Werteliste} aus. % \begin{macrocode} -\newcommand*\TUD@parameter@error[2]{% +\newcommand*\TUD@parameter@err[2]{% \PackageError{tudscrbase}{Unsupported value for parameter `#1'}{% `#1' can only be used with values:\MessageBreak#2% + \MessageBreak Please choose a valid one.% }% } % \end{macrocode} -% \end{macro}^^A \TUD@parameter@error +% \end{macro}^^A \TUD@parameter@err % % \subsection{Ausführung von paketspezifischem Quellcode} % @@ -1662,11 +1674,16 @@ % Ladezustand eines Paketes auszuführen. % \begin{macro}{\TUD@UnwindPackage} % \changes{v2.05}{2015/10/28}{neu}^^A +% \changes{v2.06o}{2022/08/02}{Sternversion}^^A % Dieser Befehl dient zur Ausführung von Quelltext, falls ein Paket bis zum % Ende der Dokumentpräambel nicht geladen wurde. Im ersten obligatorischen -% Argument wird das Paket angegeben, im zweiten der Quellcode. +% Argument wird das Paket angegeben, im zweiten der Quellcode. Die Sternversion +% führt den Quellcode auch nach dem Laden des Paketes aus. % \begin{macrocode} -\newcommand*\TUD@UnwindPackage[2]{\AtEndPreamble{\@ifpackageloaded{#1}{}{#2}}} +\NewDocumentCommand\TUD@UnwindPackage{s m m}{% + \IfBooleanT{#1}{\AfterPackage*{#2}{#3}}% + \AtEndPreamble{\@ifpackageloaded{#2}{}{#3}}% +} \@onlypreamble\TUD@UnwindPackage % \end{macrocode} % \end{macro}^^A \TUD@UnwindPackage diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 6ea64fde..90af2fe8 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -542,7 +542,7 @@ % die gewählte Kompatibilitäsversion getestet werden. % \begin{macrocode} \DeclareOption*{} -\FamilyProcessOptions[.comp]{TUD}\relax +\TUDProcessOptions[.comp]\relax % \end{macrocode} % Ab der \TUDScript-Version~v2.05 werden einige vertikale Abstände abhängig von % der Schriftgröße definiert. Sollte eine frühere Kompatibilitätseinstellung @@ -581,15 +581,11 @@ \KOMAoptions{headings=small} \TUDoptions{cdfoot=true} % +%<*class&!inherit|package> \TUDExecuteOptions{% -%<*package> -%<*fixfonts> +%<*package&fixfonts> headings=heavy% -% -%<*tutorial> - ToDo=true% -% -% +% %<*class&!inherit> %<*book|report|article> cd=true,tudbookmarks=true% @@ -599,6 +595,7 @@ % % } +% % \end{macrocode} % % \subsection{Durchreichen von Optionen und Standardoptionen} @@ -667,7 +664,7 @@ % Verwendung in der Präambel angemerkt. % \begin{macrocode} \newcommand*\TUD@key@toolate[1]{% - \csedef{tud@key@#1@error}{% + \csedef{tud@key@toolate@@#1}{% %<*class> \noexpand\ClassError{\noexpand\TUD@Class@Name}% % @@ -676,7 +673,7 @@ % {Option `#1' too late}{% Option `#1' can only be set\space% - \ifcsname \@currname.\@currext-h@@k\endcsname% + \ifcsdef{\@currname.\@currext-h@@k}{% as optional \MessageBreak argument while loading\space% %<*class> class `\noexpand\TUD@Class@Name'% @@ -684,15 +681,15 @@ %<*package&fonts> package `tudscrfonts'% % - \else% - in the preamble - \fi% + }{% + in the preamble% + }% \MessageBreak but you have tried to set it up later.% }% }% - \TUD@key{#1}[]% + \TUD@key[]{#1}[]% {% - \csuse{tud@key@#1@error} + \csuse{tud@key@toolate@@#1}% \FamilyKeyStateProcessed% }% } diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 6b8c8cb7..3f403982 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -2760,7 +2760,7 @@ \tud@if@strequal{#1}{empty}{\def\tud@envir@ps{empty.tudheadings}}{% \tud@if@strequal{#1}{plain}{\def\tud@envir@ps{plain.tudheadings}}{% \tud@if@strequal{#1}{headings}{}{% - \TUD@parameter@error{pagestyle}{% + \TUD@parameter@err{pagestyle}{% headings, plain, empty or any tudheadings page style type% }% }}}% From 9d7876b38d48e0c0c27fa52d5e5902206318f6a4 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Wed, 3 Aug 2022 00:54:16 +0200 Subject: [PATCH 14/24] color definition via loop --- source/tudscr-color.dtx | 179 ++++------------------------------------ 1 file changed, 18 insertions(+), 161 deletions(-) diff --git a/source/tudscr-color.dtx b/source/tudscr-color.dtx index 924bfda2..a2695588 100644 --- a/source/tudscr-color.dtx +++ b/source/tudscr-color.dtx @@ -101,6 +101,7 @@ % \begin{option}{newcolors} % \begin{option}{reduced} % \begin{option}{oldcolors} +% \begin{option}{extended} % \begin{option}{full} % Das Paket kann entweder mit einfachen, für \TUDScript ausreichenden oder % erweiterten Farbdefinitionen geladen werden. Letztere definieren zusätzliche @@ -109,9 +110,11 @@ \DeclareOption{newcolors}{\let\tud@setcolors@add\relax} \DeclareOption{reduced}{\let\tud@setcolors@add\relax} \DeclareOption{oldcolors}{\let\tud@setcolors@add\tud@setcolors@old} +\DeclareOption{extended}{\let\tud@setcolors@add\tud@setcolors@old} \DeclareOption{full}{\let\tud@setcolors@add\tud@setcolors@old} % \end{macrocode} % \end{option}^^A full +% \end{option}^^A extended % \end{option}^^A oldcolors % \end{option}^^A reduced % \end{option}^^A newcolors @@ -249,172 +252,26 @@ % \begin{macro}{\tud@setcolors@add} % \begin{macro}{\tud@setcolors@old} % Die erweiterten Farbbefehle werden durch \pkg{tudscrcolor} definiert, wenn -% das Paket explizit mit der Option \opt{oldcolors} geladen wird. Damit werden +% das Paket explizit mit der Option \opt{extended} geladen wird. Damit werden % alle gängigen Farbdefinitionen der vielen Insellösungen des \LaTeX-Universums % an der \TnUD unterstützt. % \begin{macrocode} \newcommand*\tud@setcolors@add{} \newcommand*\tud@setcolors@old{% - \colorlet{HKS41K10}{HKS41!10}% - \colorlet{HKS41K20}{HKS41!20}% - \colorlet{HKS41K30}{HKS41!30}% - \colorlet{HKS41K40}{HKS41!40}% - \colorlet{HKS41K50}{HKS41!50}% - \colorlet{HKS41K60}{HKS41!60}% - \colorlet{HKS41K70}{HKS41!70}% - \colorlet{HKS41K80}{HKS41!80}% - \colorlet{HKS41K90}{HKS41!90}% - \colorlet{HKS41K100}{HKS41!100}% - \colorlet{HKS92K10}{HKS92!10}% - \colorlet{HKS92K20}{HKS92!20}% - \colorlet{HKS92K30}{HKS92!30}% - \colorlet{HKS92K40}{HKS92!40}% - \colorlet{HKS92K50}{HKS92!50}% - \colorlet{HKS92K60}{HKS92!60}% - \colorlet{HKS92K70}{HKS92!70}% - \colorlet{HKS92K80}{HKS92!80}% - \colorlet{HKS92K90}{HKS92!90}% - \colorlet{HKS92K100}{HKS92!100}% - \colorlet{HKS44K10}{HKS44!10}% - \colorlet{HKS44K20}{HKS44!20}% - \colorlet{HKS44K30}{HKS44!30}% - \colorlet{HKS44K40}{HKS44!40}% - \colorlet{HKS44K50}{HKS44!50}% - \colorlet{HKS44K60}{HKS44!60}% - \colorlet{HKS44K70}{HKS44!70}% - \colorlet{HKS44K80}{HKS44!80}% - \colorlet{HKS44K90}{HKS44!90}% - \colorlet{HKS44K100}{HKS44!100}% - \colorlet{HKS36K10}{HKS36!10}% - \colorlet{HKS36K20}{HKS36!20}% - \colorlet{HKS36K30}{HKS36!30}% - \colorlet{HKS36K40}{HKS36!40}% - \colorlet{HKS36K50}{HKS36!50}% - \colorlet{HKS36K60}{HKS36!60}% - \colorlet{HKS36K70}{HKS36!70}% - \colorlet{HKS36K80}{HKS36!80}% - \colorlet{HKS36K90}{HKS36!90}% - \colorlet{HKS36K100}{HKS36!100}% - \colorlet{HKS33K10}{HKS33!10}% - \colorlet{HKS33K20}{HKS33!20}% - \colorlet{HKS33K30}{HKS33!30}% - \colorlet{HKS33K40}{HKS33!40}% - \colorlet{HKS33K50}{HKS33!50}% - \colorlet{HKS33K60}{HKS33!60}% - \colorlet{HKS33K70}{HKS33!70}% - \colorlet{HKS33K80}{HKS33!80}% - \colorlet{HKS33K90}{HKS33!90}% - \colorlet{HKS33K100}{HKS33!100}% - \colorlet{HKS57K10}{HKS57!10}% - \colorlet{HKS57K20}{HKS57!20}% - \colorlet{HKS57K30}{HKS57!30}% - \colorlet{HKS57K40}{HKS57!40}% - \colorlet{HKS57K50}{HKS57!50}% - \colorlet{HKS57K60}{HKS57!60}% - \colorlet{HKS57K70}{HKS57!70}% - \colorlet{HKS57K80}{HKS57!80}% - \colorlet{HKS57K90}{HKS57!90}% - \colorlet{HKS57K100}{HKS57!100}% - \colorlet{HKS65K10}{HKS65!10}% - \colorlet{HKS65K20}{HKS65!20}% - \colorlet{HKS65K30}{HKS65!30}% - \colorlet{HKS65K40}{HKS65!40}% - \colorlet{HKS65K50}{HKS65!50}% - \colorlet{HKS65K60}{HKS65!60}% - \colorlet{HKS65K70}{HKS65!70}% - \colorlet{HKS65K80}{HKS65!80}% - \colorlet{HKS65K90}{HKS65!90}% - \colorlet{HKS65K100}{HKS65!100}% - \colorlet{HKS07K10}{HKS07!10}% - \colorlet{HKS07K20}{HKS07!20}% - \colorlet{HKS07K30}{HKS07!30}% - \colorlet{HKS07K40}{HKS07!40}% - \colorlet{HKS07K50}{HKS07!50}% - \colorlet{HKS07K60}{HKS07!60}% - \colorlet{HKS07K70}{HKS07!70}% - \colorlet{HKS07K80}{HKS07!80}% - \colorlet{HKS07K90}{HKS07!90}% - \colorlet{HKS07K100}{HKS07!100}% - \colorlet{HKS41-10}{HKS41!10}% - \colorlet{HKS41-20}{HKS41!20}% - \colorlet{HKS41-30}{HKS41!30}% - \colorlet{HKS41-40}{HKS41!40}% - \colorlet{HKS41-50}{HKS41!50}% - \colorlet{HKS41-60}{HKS41!60}% - \colorlet{HKS41-70}{HKS41!70}% - \colorlet{HKS41-80}{HKS41!80}% - \colorlet{HKS41-90}{HKS41!90}% - \colorlet{HKS41-100}{HKS41!100}% - \colorlet{HKS92-10}{HKS92!10}% - \colorlet{HKS92-20}{HKS92!20}% - \colorlet{HKS92-30}{HKS92!30}% - \colorlet{HKS92-40}{HKS92!40}% - \colorlet{HKS92-50}{HKS92!50}% - \colorlet{HKS92-60}{HKS92!60}% - \colorlet{HKS92-70}{HKS92!70}% - \colorlet{HKS92-80}{HKS92!80}% - \colorlet{HKS92-90}{HKS92!90}% - \colorlet{HKS92-100}{HKS92!100}% - \colorlet{HKS44-10}{HKS44!10}% - \colorlet{HKS44-20}{HKS44!20}% - \colorlet{HKS44-30}{HKS44!30}% - \colorlet{HKS44-40}{HKS44!40}% - \colorlet{HKS44-50}{HKS44!50}% - \colorlet{HKS44-60}{HKS44!60}% - \colorlet{HKS44-70}{HKS44!70}% - \colorlet{HKS44-80}{HKS44!80}% - \colorlet{HKS44-90}{HKS44!90}% - \colorlet{HKS44-100}{HKS44!100}% - \colorlet{HKS36-10}{HKS36!10}% - \colorlet{HKS36-20}{HKS36!20}% - \colorlet{HKS36-30}{HKS36!30}% - \colorlet{HKS36-40}{HKS36!40}% - \colorlet{HKS36-50}{HKS36!50}% - \colorlet{HKS36-60}{HKS36!60}% - \colorlet{HKS36-70}{HKS36!70}% - \colorlet{HKS36-80}{HKS36!80}% - \colorlet{HKS36-90}{HKS36!90}% - \colorlet{HKS36-100}{HKS36!100}% - \colorlet{HKS33-10}{HKS33!10}% - \colorlet{HKS33-20}{HKS33!20}% - \colorlet{HKS33-30}{HKS33!30}% - \colorlet{HKS33-40}{HKS33!40}% - \colorlet{HKS33-50}{HKS33!50}% - \colorlet{HKS33-60}{HKS33!60}% - \colorlet{HKS33-70}{HKS33!70}% - \colorlet{HKS33-80}{HKS33!80}% - \colorlet{HKS33-90}{HKS33!90}% - \colorlet{HKS33-100}{HKS33!100}% - \colorlet{HKS57-10}{HKS57!10}% - \colorlet{HKS57-20}{HKS57!20}% - \colorlet{HKS57-30}{HKS57!30}% - \colorlet{HKS57-40}{HKS57!40}% - \colorlet{HKS57-50}{HKS57!50}% - \colorlet{HKS57-60}{HKS57!60}% - \colorlet{HKS57-70}{HKS57!70}% - \colorlet{HKS57-80}{HKS57!80}% - \colorlet{HKS57-90}{HKS57!90}% - \colorlet{HKS57-100}{HKS57!100}% - \colorlet{HKS65-10}{HKS65!10}% - \colorlet{HKS65-20}{HKS65!20}% - \colorlet{HKS65-30}{HKS65!30}% - \colorlet{HKS65-40}{HKS65!40}% - \colorlet{HKS65-50}{HKS65!50}% - \colorlet{HKS65-60}{HKS65!60}% - \colorlet{HKS65-70}{HKS65!70}% - \colorlet{HKS65-80}{HKS65!80}% - \colorlet{HKS65-90}{HKS65!90}% - \colorlet{HKS65-100}{HKS65!100}% - \colorlet{HKS07-10}{HKS07!10}% - \colorlet{HKS07-20}{HKS07!20}% - \colorlet{HKS07-30}{HKS07!30}% - \colorlet{HKS07-40}{HKS07!40}% - \colorlet{HKS07-50}{HKS07!50}% - \colorlet{HKS07-60}{HKS07!60}% - \colorlet{HKS07-70}{HKS07!70}% - \colorlet{HKS07-80}{HKS07!80}% - \colorlet{HKS07-90}{HKS07!90}% - \colorlet{HKS07-100}{HKS07!100}% + \def\tud@res@a##1{% + \@for\tud@res@b:={10,20,30,40,50,60,70,80,90,100}\do{% + \colorlet{##1K\tud@res@b}{##1!\tud@res@b}% + \colorlet{##1-\tud@res@b}{##1!\tud@res@b}% + }% + }% + \tud@res@a{HKS41}% + \tud@res@a{HKS92}% + \tud@res@a{HKS44}% + \tud@res@a{HKS36}% + \tud@res@a{HKS33}% + \tud@res@a{HKS57}% + \tud@res@a{HKS65}% + \tud@res@a{HKS07}% } % \end{macrocode} % \end{macro}^^A \tud@setcolors@old From 9cadfde42ed4c34ab79c6640bbdeb8c14c8e81a3 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Wed, 3 Aug 2022 02:14:29 +0200 Subject: [PATCH 15/24] revised package tudscrcomp - compatibility support merged to package `tudscrcomp` - drop packages `tudscrcomp-book` and `tudscrcomp-poster` --- source/tudscr-comp.dtx | 283 ++++++++++++++++++++++++++------------ source/tudscr-version.dtx | 4 +- source/tudscr.ins | 21 +-- 3 files changed, 198 insertions(+), 110 deletions(-) diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 0701a8e5..2df9801c 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -42,9 +42,7 @@ % \iffalse % %<*package&identify> -%\ProvidesPackage{tudscrcomp}[% -%\ProvidesPackage{tudscrcomp-book}[% -%\ProvidesPackage{tudscrcomp-poster}[% +%\ProvidesPackage{tudscrcomp}[% %\ProvidesPackage{fix-tudscrfonts}[% %!TUD@Version % package @@ -1117,27 +1115,36 @@ % % \iffalse %<*package&comp> -%<*base> +%<*identify> % \fi % % \subsection{Erkennen der geladenen Klasse} % % Damit je nach geladener Klasse die passenden Kompatibilitätseinstellungen und % -befehle bereitgestellt werden können, wird auf die geladene Klasse geprüft. -% Danach wird das dazu passende Paket geladen. -% \begin{macrocode} -\PassOptionsToPackage{oldcolors}{tudscrcolor} +% \begin{macro}{\tud@comp@on@main@class} +% \begin{macro}{\tud@comp@on@poster@class} +% \begin{macrocode} +\@tud@res@swafalse% +\newcommand*\tud@comp@on@main@class{\@gobble} +\@tfor\tud@res@a:={tudscrbook}{tudscrreprt}{tudscrartcl}\do{% + \@ifclassloaded{\tud@res@a}{\@tud@res@swatrue}{}% + \if@tud@res@swa% + \renewcommand*\tud@comp@on@main@class{\@firstofone}% + \@break@tfor% + \fi% +}% +\newcommand*\tud@comp@on@poster@class{\@gobble} \@ifclassloaded{tudscrposter}{% - \RequirePackageWithOptions{tudscrcomp-poster}[\TUD@Version]% -}{% - \RequirePackageWithOptions{tudscrcomp-book}[\TUD@Version]% -} + \renewcommand*\tud@comp@on@poster@class{\@firstofone}% +}{}% % \end{macrocode} +% \end{macro}^^A \tud@comp@on@poster@class +% \end{macro}^^A \tud@comp@on@main@class % % \iffalse -% -%<*!base> -%<*body> +% +%<*option> % \fi % % \subsection{Gemeinsame Optionen und Befehle für alle Klassen} @@ -1145,6 +1152,15 @@ % Zunächst werden alle Optionen und Befehle definiert, die unabhängig von der % geladenen Klasse generell bereitgestellt werden. % +% \begin{macrocode} +\PassOptionsToPackage{extended}{tudscrcolor} +% \end{macrocode} +% +% \iffalse +% +%<*body> +% \fi +% % \begin{macro}{\einrichtung} % \begin{macro}{\fachrichtung} % \begin{macro}{\institut} @@ -1181,7 +1197,6 @@ % % \iffalse % -%<*book> %<*option> % \fi % @@ -1242,6 +1257,11 @@ %<*body> % \fi % +% Die folgenden Makros werden für die Hauptklassen definiert. +% \begin{macrocode} +\tud@comp@on@main@class{% +% \end{macrocode} +% % \begin{macro}{\submitdate} % \begin{macro}{\submittedon} % \begin{macro}{\supervisorII} @@ -1252,7 +1272,7 @@ % \begin{macrocode} \newcommand*\submitdate{\date} \newcommand*\submittedon[1]{\gdef\datetext{#1}} -\newcommand*\supervisorII[1]{\g@addto@macro\@supervisor{\and #1}} +\newcommand*\supervisorII[1]{\g@addto@macro\@supervisor{\and\space#1}} \newcommand*\supervisedby[1]{\gdef\supervisorname{#1}} \newcommand*\supervisedIIby[1]{\gdef\supervisorothername{#1}} % \end{macrocode} @@ -1328,6 +1348,10 @@ % Hier erfolgt die notwendige Anpassungen der internen Gliederungsbefehle. % \begin{macrocode} \AtEndPreamble{% + \ifundef{\if@chapter}{% + \newif\if@chapter% + \ifundef{\chapter}{\@chapterfalse}{\@chaptertrue}% + }{}% \if@chapter% \pretocmd\tud@chapter@pre{% \tud@comp@chapterpage@set% @@ -1335,6 +1359,15 @@ \apptocmd\tud@chapter@app{% \tud@comp@chapterpage@unset% }{}{\tud@patch@wrn{tud@chapter@app}}% + \else% + \renewcommand*\tud@comp@chapterpage@wrn{% + \PackageWarning{tudscrcomp}{% + The command `\string\chapterpage'\space is not\MessageBreak% + active as the used document class does not provide\MessageBreak% + any chapters via `\string\chapter'% + }% + \global\let\tud@comp@chapterpage@wrn\relax% + }% \fi% } % \end{macrocode} @@ -1376,12 +1409,15 @@ % \end{macro}^^A \glossaryname % \end{environment}^^A theglossary % +% Das waren die Makros für die Hauptklassen. +% \begin{macrocode} +} +% \end{macrocode} +% % % \iffalse % -% -%<*poster> -%<*body> +%<*option> % \fi % % \subsection{Kompatibilität zu \cls{tudmathposter}} @@ -1389,21 +1425,39 @@ % Die hier bereitgestellten Optionen und Befehle werden durch die Klasse % \cls{tudmathposter} bzw. \cls{tudposter} definiert. % +% \begin{option}{loadpackages} +% \changes{v2.06o}{2022/08/02}{neu}^^A % Die Klasse \cls{tudmathposter} lädt allerhand Pakete. Dies ist jedoch für den % Anwender alles andere als vorteilhaft, da dadurch unter Umständen Konflikte % mit anderen Paketen entstehen oder der Nutzer im Zweifelsfall gar nicht weiß, -% dass verwendete Befehle aus bestimmten Paketen entspringen. Dennoch werden -% aus Kompatibilitätsgründen einige Pakete geladen, um bestehende Dokumente -% trotz alledem nach der Portierung kompiliert werden können. Um den Nutzer die -% Möglichkeit zu geben, die Pakete selber ggf. mit Optionen zu laden, erfolgt -% die Anforderung der Pakete erst am ende der Präambel. +% dass verwendete Befehle aus bestimmten Paketen entspringen. Dennoch wird aus +% Kompatibilitätsgründen diese Option bereitgestellt, um die Pakete ggf. Ende +% der Präambel zu laden. +% \begin{macrocode} +\tud@comp@on@poster@class{% +\tud@newif\if@tud@comp@loadpackages +\TUD@key{loadpackages}[true]{% + \TUD@set@ifkey{loadpackages}{@tud@comp@loadpackages}{#1}% +} +\AtEndPreamble{\TUD@key@toolate{loadpackages}} +} +% \end{macrocode} +% \end{option}^^A loadpackages +% +% \iffalse +% +%<*body> +% \fi +% % \begin{macrocode} +\tud@comp@on@poster@class{% \AtEndPreamble{% - \RequirePackage{amsmath}[2016/06/28]% - \RequirePackage{amsfonts}[2013/01/14]% - \RequirePackage{calc}[2014/10/28]% - \RequirePackage{textcomp}[2016/06/19]% - \RequirePackage{tabularx}[2016/02/03]% + \if@tud@comp@loadpackages% + \RequirePackage{calc}[2014/10/28]% + \RequirePackage{textcomp}[2016/06/19]% + \RequirePackage{tabularx}[2016/02/03]% + \fi% +} } % \end{macrocode} % @@ -1417,6 +1471,7 @@ % Mit der Option \opt{bluebg} kann der Hintergrund des Posters in \val{HKS41} % gesetzt werden. % \begin{macrocode} +\tud@comp@on@poster@class{% \TUD@key{bluebg}[true]{% \TUD@set@ifkey{bluebg}{@tempswa}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% @@ -1427,6 +1482,7 @@ \fi% \fi% } +} % \end{macrocode} % \end{option}^^A bluebg % @@ -1435,6 +1491,11 @@ %<*body> % \fi % +% Die folgenden Makros werden für die Posterklasse definiert. +% \begin{macrocode} +\tud@comp@on@poster@class{% +% \end{macrocode} +% % \begin{layerpagestyle}{tudposter} % \changes{v2.05}{2016/07/26}{neu}^^A % Der Seitenstil \pgs{tudposter} wird als Alias für \pgs{empty.tudheadings} @@ -1611,16 +1672,16 @@ % Layout zentriert gesetzt werden. Eine Mischung von unterschiedlichen Stilen % gleichartiger Ebenen ist aus sicht von Typographie und Layout eher fraglich. % \begin{macrocode} -\newcommand*\centersection[2][\@nil]{% +\NewDocumentCommand\centersection{o m}{% \tud@comp@centersection{section}{#1}{#2}% } -\newcommand*\centersubsection[2][\@nil]{% +\NewDocumentCommand\centersubsection{o m}{% \tud@comp@centersection{subsection}{#1}{#2}% } -\newcommand*\topcentersection[2][\@nil]{% +\NewDocumentCommand\topcentersection{o m}{% \tud@comp@centersection{topsection}{#1}{#2}% } -\newcommand*\topcentersubsection[2][\@nil]{% +\NewDocumentCommand\topcentersubsection{o m}{% \tud@comp@centersection{topsubsection}{#1}{#2}% } % \end{macrocode} @@ -1631,11 +1692,11 @@ \newcommand*\tud@comp@centersection[3]{% \tud@cs@store{raggedsection}% \let\raggedsection\centering% - \ifx#2\@nil\relax% - \csuse{#1}{#3}% - \else% + \IfValueTF{#2}{% \csuse{#1}[{#2}]{#3}% - \fi% + }{% + \csuse{#1}{#3}% + } \tud@cs@restore{raggedsection}% } % \end{macrocode} @@ -1721,7 +1782,6 @@ % Außerdem wird eine Umgebung für farbige Tabellen sowie zwei Umschaltbefehle % für die farbliche Ausprägung der Tabellenzeilen definiert. % \begin{macrocode} -\PassOptionsToPackage{table}{xcolor} \tud@newif\if@tud@comp@graytable \newcommand*\blautabelle{\@tud@comp@graytablefalse} \newcommand*\grautabelle{\@tud@comp@graytabletrue} @@ -1738,54 +1798,98 @@ % \end{macro}^^A \if@tud@comp@graytable % \end{environment}^^A farbtabellen % +% Das waren die Makros für die Posterklassen. +% \begin{macrocode} +} +% \end{macrocode} +% % \iffalse % %<*option> % \fi % +% Zuletzt wir die Option für das Laden von \pkg{colortbl} durchgereicht. +% \begin{macrocode} +\tud@comp@on@poster@class{% +\PassOptionsToPackage{table}{xcolor} +} +% \end{macrocode} +% +% \begin{option}{cropmargin} +% \changes{v2.06o}{2022/08/03}{neu}^^A +% \begin{macro}{\tud@cropmargin@set} +% \changes{v2.06o}{2022/08/03}{neu}^^A % \begin{macro}{\schnittrand} % \changes{v2.05}{2016/04/17}{neu}^^A -% Zu guter Letzt geht es an das Makro \cs{schnittrand}. Zur Intension dieses -% Befehls gab es auf \hrfn{https://github.com/tud-cd/tud-cd/issues/6}{GitHub} -% bereits eine angeregte Diskussion. Deshalb wird das Makro als Wertzuweisung -% für die Option \opt{bleedmargin} genutzt. +% Nun geht es an das Makro \cs{schnittrand}. Zur Intension dieses Befehls gab +% es im \GitHubRepo(tud-cd/tud-cd)<6> bereits eine angeregte Diskussion. % \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] % \begin{macrocode} -\ifundef{\schnittrand}{}{% - \Ifisdimension{\schnittrand}{% - \edef\@tempa{% - paperwidth=\the\dimexpr\glueexpr\paperwidth+\schnittrand*2\relax\relax,% - paperheight=\the\dimexpr\glueexpr\paperheight+\schnittrand*2\relax\relax,% - layout=\the\paperwidth:\the\paperheight,% - layoutoffset=\the\dimexpr\glueexpr\schnittrand\relax\relax,% - showcrop% - }% - \expandafter\geometry\expandafter{\@tempa}% - }{% - \PackageErrorNoLine{tudscrcomp}{% - Wrong definition for `\string\schnittrand'% - }{% - The definition of `\string\schnittrand' does not expand to\MessageBreak% - a valid dimension expression.% +\tud@comp@on@poster@class{% +\newcommand*\tud@cropmargin@set{}% +\preto\tud@cdgeometry@@init{\tud@cropmargin@set}% +\TUD@key{cropmargin}[5mm]{% + \TUD@set@dimkey[mm]{cropmargin}{\@tempa}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \edef\tud@cropmargin@set{% + \noexpand\geometry{% + papersize={% + \the\dimexpr(\@tempa)*2+\paperwidth\relax,% + \the\dimexpr(\@tempa)*2+\paperheight\relax% + },% + layoutsize={\the\paperwidth,\the\paperheight},% + layoutoffset=\the\dimexpr\@tempa\relax,% + showcrop% + }% }% + \fi% +} +% \end{macrocode} +% Da die Option direkt auf das Seitenlayout zugreift und mehrmalige Aufrufe +% sich beeinflussen würden, werden diese zum Ende der Präambel unterbunden. +% \begin{macrocode} +\AtEndPreamble{\TUD@key@toolate{cropmargin}}% +% \end{macrocode} +% Nachdem die passende Option definiert wurde, wird noch \cs{schnittrand} +% ausgewertet und verarbeitet. Dies geschieht zum spätestmöglichen Zeitpunkt, +% damit dieser Befehl irgendwo innerhalb der Präambel definiert werden kann. +% \begin{macrocode} +\preto\tud@cdgeometry@init{% + \ifundef{\schnittrand}{}{% + \TUDoptions{cropmargin=\schnittrand}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed\else% + \PackageErrorNoLine{tudscrcomp}{% + Wrong definition for `\string\schnittrand'% + }{% + The definition of `\string\schnittrand' does not expand\MessageBreak% + to a valid dimension expression.% + }% + \fi% }% } +} % \end{macrocode} % \end{macro}^^A \schnittrand -% \begin{option}{tudmathposterfoot} +% \end{macro}^^A \tud@cropmargin@set +% \end{option}^^A cropmargin +% +% \begin{option}{tudmathfoot} % \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{macro}{\if@tud@mathposterfoot} +% \begin{option}{tudmathposterfoot} +% \begin{option}{cdfoot} +% \begin{macro}{\if@tud@mathfoot} % \changes{v2.05}{2016/04/17}{neu}^^A -% Mit der Option \opt{tudmathposterfoot} kann die Darstellung des Fußes im -% Poster angepasst werden. Die Klasse \cls{tudmathposter} setzt den Fußbereich -% in zwei asymmetrischen Spalten, wohingegen die \TUDScript-Klassen diesen -% zentriert und symmetrisch zum Satzspiegel platzieren. -% \begin{macrocode} -\tud@newif\if@tud@mathposterfoot -\TUD@key{tudmathposterfoot}[true]{% - \TUD@set@ifkey{tudmathposterfoot}{@tud@mathposterfoot}{#1}% +% Mit der Option \opt{tudmathfoot} kann die Darstellung des Fußes im Poster +% angepasst werden. Die Klasse \cls{tudmathposter} setzt den Fußbereich in zwei +% asymmetrischen Spalten, wohingegen die \TUDScript-Klassen diesen zentriert +% und symmetrisch zum Satzspiegel platzieren. +% \begin{macrocode} +\tud@comp@on@poster@class{% +\tud@newif\if@tud@mathfoot +\TUD@key{tudmathfoot}[true]{% + \TUD@set@ifkey{tudmathfoot}{@tud@mathfoot}{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \if@tud@mathposterfoot% + \if@tud@mathfoot% \footcontent[\small]{% \tud@footcontent@@left{}% }[% @@ -1800,26 +1904,30 @@ \fi% \fi% } +\TUD@key{tudmathposterfoot}[true]{\TUDoptions{tudmathfoot=#1}}% % \end{macrocode} % Die Option \opt{cdfoot} wird um Werte für die Einstellung des Posterfußes % erweitert. % \begin{macrocode} -\TUD@key{cdfoot}[true]{% +\TUD@key{cdfoot}{% \TUD@set@numkey{cdfoot}{@tempa}{% - {tudscrposter}{0},{tudscrposterfoot}{0},{cdposter}{0},{poster}{0},% - {tudmathposter}{1},{tudmathposterfoot}{1},{mathposter}{1},{tudposter}{1}% + {tudscrposter}{0},{tudscrposterfoot}{0},{cdposter}{0},{tudscr}{0},% + {tudmathposter}{1},{tudmathfoot}{1},{tudmathposterfoot}{1},{tudmath}{1}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed% \ifcase\@tempa\relax% tudscrposter - \TUDoptions{tudmathposterfoot=false}% + \TUDoptions{tudmathfoot=false}% \else% tudmathposter - \TUDoptions{tudmathposterfoot=true}% + \TUDoptions{tudmathfoot=true}% \fi% \fi% } +} % \end{macrocode} -% \end{macro}^^A \if@tud@mathposterfoot +% \end{macro}^^A \if@tud@mathfoot +% \end{option}^^A cdfoot % \end{option}^^A tudmathposterfoot +% \end{option}^^A tudmathfoot % % \iffalse % @@ -1831,12 +1939,11 @@ % \begin{macro}{\footcolumn} % \changes{v2.05}{2016/04/17}{neu}^^A % \begin{macro}{\tud@footcontent@use} -% \begin{macro}{\tud@comp@mathposterwidth@dim} -% \changes{v2.05}{2016/04/17}{neu}^^A % Mit diesen Befehlen lässt sich der Inhalt des Fußbereiches angepassen. Wird % in einem und/oder beiden Argumente von \cs{footcontent} ein Stern \val{*} % verwendet, so bleibt der bisherige Inhalt erhalten. % \begin{macrocode} +\tud@comp@on@poster@class{% \newcommand*\fusszeile[2][]{\footcontent[{#1}]{#2}} \newcommand*\footcolumn[2]{% \Ifnumber{#1}{% @@ -1850,14 +1957,14 @@ }{}% } % \end{macrocode} -% Um die Option \opt{tudmathposterfoot} umzusetzen, muss für die Ausgabe des +% Um die Option \opt{tudmathfoot} umzusetzen, muss für die Ausgabe des % Fußbereichs eine Anpassung des Makros \cs{tud@footcontent@use} erfolgen. % Normalerweise wird der Fußbereich in zwei gleichbreite Spalten über die % komplette Textbreite aufgeteilt. Dahingegen werden durch die Klasse % \cls{tudmathposter} beide Fußspalten nicht über den kompletten Textbereich % verteilt, sondern es verbleibt etwas ungenutzter Platz rechts davon, welcher % für ein etwaiges Logo verwendet wird. Dieses Verhalten kann über die Option -% \opt{tudmathposterfoot} aktiviert werden und wird hier nachgebildet. +% \opt{tudmathfoot} aktiviert werden und wird hier nachgebildet. % \begin{macrocode} \patchcmd\tud@footcontent@use{% \tud@footcontent@@use{\tud@res@glue}% @@ -1868,16 +1975,14 @@ \tud@footcontent@@use{\@tud@res@glue}% \fi% }{}{\tud@patch@wrn{tud@footcontent@use}} +} % \end{macrocode} -% \end{macro}^^A \tud@comp@mathposterwidth@dim % \end{macro}^^A \tud@footcontent@use % \end{macro}^^A \footcolumn % \end{macro}^^A \fusszeile % % \iffalse % -% -% % % \fi % @@ -2225,6 +2330,7 @@ % Es werden einige Einstellungen für die Überschriften angepasst. % \begin{macrocode} \tud@fixfonts@class@adapt{tudmathposter}{% + \ifunivers\PassOptionsToPackage{cdoldfont}{tudscrfonts}\fi% \def\raggedtitle{\tud@raggedright}% \renewcommand*\raggedpart{\tud@raggedright}% \renewcommand*\raggedsection{\tud@raggedright}% @@ -2261,12 +2367,8 @@ \huge% }% \renewcommand*\preprocesstitle[1]{\raggedtitle\tud@sec@format{#1}}% - \if@mathevorgabe% - \undef\sectionfont% - \undef\subsectionfont% - \fi% - \newcommand*\sectionfont{\bfseries\LARGE}% - \newcommand*\subsectionfont{\sectionfont\large}% + \def\sectionfont{\tud@sec@fontface\LARGE}% + \def\subsectionfont{\tud@sec@fontface\large}% % \end{macrocode} % Für die Schriftstärke in der Kopfzeile muss der Seitenstil angepasst und % anschließend nochmals akiviert werden. @@ -2274,7 +2376,7 @@ \patchcmd\ps@tudposter{% \textbf{\@einrichtung}% }{% - \textbf{\fontseries{b}\selectfont\@einrichtung}% + {\fontseries{b}\selectfont\@einrichtung}% }{}{\tud@patch@wrn{ps@tudposter}}% \pagestyle{tudposter}% } @@ -2296,13 +2398,12 @@ % unerwünscht, weshalb das Laden hiermit unterbunden wird. % \begin{macrocode} \newcommand*\tud@x@tudfonts@prevent{% - \RequirePackage{amsmath}% - \RequirePackage{amsfonts}% \newif\if@tudfonts@nodin% \let\DeclareTudMathSizes\@gobblefour% \let\tud@x@tudfonts@prevent\relax% } \PreventPackageFromLoading[\tud@x@tudfonts@prevent]{tudfonts} +\PreventPackageFromLoading{opensans} % \end{macrocode} % \end{macro}^^A \if@tudfonts@nodin % \end{macro}^^A \tud@x@tudfonts@prevent diff --git a/source/tudscr-version.dtx b/source/tudscr-version.dtx index 4ce38e0d..7a1b3231 100644 --- a/source/tudscr-version.dtx +++ b/source/tudscr-version.dtx @@ -260,9 +260,7 @@ \ifx\TUD@Class@Name\@undefined \PackageError{% % tudscrsupervisor% -% tudscrcomp% -% tudscrcomp-book% -% tudscrcomp-poster% +% tudscrcomp% % tudscrtutorial% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% diff --git a/source/tudscr.ins b/source/tudscr.ins index 4b1d147d..b102796e 100644 --- a/source/tudscr.ins +++ b/source/tudscr.ins @@ -212,22 +212,11 @@ The current maintainer and author of this work is Falk Hanisch. \generate{% \usepreamble\defaultpreamble% \file{tudscrcomp.sty}{% - \from{tudscr-version.dtx}{package,comp,base}% - \from{tudscr-comp.dtx}{package,comp,base,identify}% - } - \file{tudscrcomp-book.sty}{% - \from{tudscr-version.dtx}{package,comp,book}% - \from{tudscr-comp.dtx}{package,comp,book,identify}% - \from{tudscr-comp.dtx}{package,comp,book,option}% - \from{tudscr-misc.dtx}{package,comp,book,execute}% - \from{tudscr-comp.dtx}{package,comp,book,body}% - } - \file{tudscrcomp-poster.sty}{% - \from{tudscr-version.dtx}{package,comp,poster}% - \from{tudscr-comp.dtx}{package,comp,poster,identify}% - \from{tudscr-comp.dtx}{package,comp,poster,option}% - \from{tudscr-misc.dtx}{package,comp,poster,execute}% - \from{tudscr-comp.dtx}{package,comp,poster,body}% + \from{tudscr-version.dtx}{package,comp}% + \from{tudscr-comp.dtx}{package,comp,identify}% + \from{tudscr-comp.dtx}{package,comp,option}% + \from{tudscr-misc.dtx}{package,comp,execute}% + \from{tudscr-comp.dtx}{package,comp,body}% } } \generate{% From 5df909a59e508e9bf84837d11506fcab649f8b5d Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Wed, 3 Aug 2022 02:15:37 +0200 Subject: [PATCH 16/24] figurehere and tablehere moved environments `figurehere` and `tablehere` from `tudscrcomp` to `tudscrposter` --- source/tudscr-comp.dtx | 43 -------------------------------------- source/tudscr-misc.dtx | 47 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 43 deletions(-) diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 2df9801c..9331bc90 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -1728,49 +1728,6 @@ \setcounter{secnumdepth}{\m@ne} % \end{macrocode} % \end{counter}^^A secnumdepth -% \begin{environment}{figurehere} -% \changes{v2.05}{2016/04/17}{neu}^^A -% \begin{environment}{tablehere} -% \changes{v2.05}{2016/04/17}{neu}^^A -% Weiterhin stellt die Klasse \cls{tudmathposter} zwei Umgebungen bereit, mit -% denen sich Tabellen und Bilder an einer bestimmten Stelle exakt platzieren -% lassen. Prinzipiell könnte hierfür auch das Paket \pkg{float} zum Einsatz -% kommen. -% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] -% \begin{macrocode} -\newenvironment{figurehere}{% - \def\@captype{figure}% - \renewcommand*\caption{\captionof{figure}}% - \renewcommand*\captionabove{\captionaboveof{figure}}% - \renewcommand*\captionbelow{\captionbelowof{figure}}% - \vskip\intextsep% - \vbox \bgroup% - \hsize=\columnwidth% - \@parboxrestore% - \ignorespaces% -}{% - \egroup% - \vskip\intextsep% - \ignorespaces% -} -\newenvironment{tablehere}{% - \def\@captype{table}% - \renewcommand*\caption{\captionof{table}}% - \renewcommand*\captionabove{\captionaboveof{table}}% - \renewcommand*\captionbelow{\captionbelowof{table}}% - \vskip\intextsep% - \vbox \bgroup% - \hsize=\columnwidth% - \@parboxrestore% - \ignorespaces% -}{% - \egroup% - \vskip\intextsep% - \ignorespaces% -} -% \end{macrocode} -% \end{environment}^^A tablehere -% \end{environment}^^A figurehere % \begin{environment}{farbtabellen} % \changes{v2.05}{2016/04/17}{neu}^^A % \begin{macro}{\if@tud@comp@graytable} diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 90af2fe8..3d532073 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -369,6 +369,53 @@ } % \end{macrocode} % +% \subsection{Fixierte Gleitobjekte für Poster} +% +% \begin{environment}{figurehere} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \changes{v2.06o}{2022/08/02}{für \cls{tudscrposter} übernommen}^^A +% \begin{environment}{tablehere} +% \changes{v2.05}{2016/04/17}{neu}^^A +% \changes{v2.06o}{2022/08/02}{für \cls{tudscrposter} übernommen}^^A +% \begin{macro}{\tud@here@begin} +% \changes{v2.06o}{2022/08/02}{neu}^^A +% \begin{macro}{\tud@here@end} +% \changes{v2.06o}{2022/08/02}{neu}^^A +% Für die Klasse \cls{tudscrposter} werden zwei Umgebungen bereitgestellt, mit +% denen sich Tabellen und Bilder an einer bestimmten Stelle exakt platzieren +% lassen. Prinzipiell könnte hierfür auch das Paket \pkg{float} zum Einsatz +% kommen. Ursprünglich stammt die Idee aus \cls{tudmathposter} und wurde hier +% generalisiert implementiert. +% \begin{macrocode} +%<*poster> +\newcommand*\tud@here@begin[1]{% + \def\@captype{#1}% + \vskip\intextsep% + \color@vbox% + \normalcolor% + \vbox\bgroup% + \hsize=\columnwidth% + \@parboxrestore% + \@floatboxreset% + \@setnobreak% + \ignorespaces% +} +\newcommand*\tud@here@end{% + \vskip\intextsep% + \@minipagefalse% + \outer@nobreak% + \egroup% + \color@endbox% +} +\newenvironment{figurehere}{\tud@here@begin{figure}}{\tud@here@end} +\newenvironment{tablehere}{\tud@here@begin{table}}{\tud@here@end} +% +% \end{macrocode} +% \end{macro}^^A \tud@here@end +% \end{macro}^^A \tud@here@begin +% \end{environment}^^A tablehere +% \end{environment}^^A figurehere +% % \iffalse % %<*body> From 2e9677ef2e2911eddb1517fb20ff2e0048e86de4 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Wed, 3 Aug 2022 14:12:14 +0200 Subject: [PATCH 17/24] improved handling of field variables - handling of optional arguments - detection of unset `@author` field - trimming all user fields --- source/doc/tudscr-mainclasses.tex | 2 +- source/tudscr-fields.dtx | 386 ++++++++++++++++++------------ source/tudscr-localization.dtx | 5 + source/tudscr-pagestyle.dtx | 10 +- source/tudscr-supervisor.dtx | 12 +- source/tudscr-title.dtx | 2 +- 6 files changed, 249 insertions(+), 168 deletions(-) diff --git a/source/doc/tudscr-mainclasses.tex b/source/doc/tudscr-mainclasses.tex index 915ea481..0f61806b 100644 --- a/source/doc/tudscr-mainclasses.tex +++ b/source/doc/tudscr-mainclasses.tex @@ -2118,8 +2118,8 @@ \subsection{Der Titel und die Umschlagseite} \textbf{Wert} & \textbf{Bezeichner} & \textbf{Deutsch} & \textbf{Englisch} \tabularnewline \midrule + \typecast{habil}{habilitationname} \typecast{diss}{dissertationname} - \typecast{doctoral}{dissertationname} \typecast{phd}{dissertationname} \typecast{diploma}{diplomathesisname} \typecast{master}{masterthesisname} diff --git a/source/tudscr-fields.dtx b/source/tudscr-fields.dtx index f89669c0..c2fa12bf 100644 --- a/source/tudscr-fields.dtx +++ b/source/tudscr-fields.dtx @@ -150,7 +150,7 @@ % \cs{@department}, \cs{@institute} und \cs{@chair} gespeichert werden. % % Das optionale Argument wird zur Kompatibilität zur Klasse \cls{tudscrposter} -% vorgehalten. Wird das Paket geladen, kann mit dem optionalen Argument die +% vorgehalten. Wird diese Klasse geladen, kann mit dem optionalen Argument die % Angabe der Struktureinheiten im Fußbereich variiert werden. Dafür werden die % Felder \cs{@facultyfoot}, \cs{@departmentfoot}, \cs{@institutefoot} sowie % \cs{@chairfoot} definiert. @@ -159,22 +159,16 @@ \newcommand*\@department{} \newcommand*\@institute{} \newcommand*\@chair{} -%<*book|report|article> -\newcommand*\faculty[2][]{\tud@head@text@field{faculty}{#2}} -\newcommand*\department[2][]{\tud@head@text@field{department}{#2}} -\newcommand*\institute[2][]{\tud@head@text@field{institute}{#2}} -\newcommand*\chair[2][]{\tud@head@text@field{chair}{#2}} -% %<*poster> \newcommand*\@facultyfoot{} \newcommand*\@departmentfoot{} \newcommand*\@institutefoot{} \newcommand*\@chairfoot{} -\newcommand*\faculty[2][\@empty]{\tud@foot@line@add{faculty}{#2}{#1}} -\newcommand*\department[2][\@empty]{\tud@foot@line@add{department}{#2}{#1}} -\newcommand*\institute[2][\@empty]{\tud@foot@line@add{institute}{#2}{#1}} -\newcommand*\chair[2][\@empty]{\tud@foot@line@add{chair}{#2}{#1}} % +\newcommand*\faculty{\@dblarg{\tud@head@text@field{faculty}}} +\newcommand*\department{\@dblarg{\tud@head@text@field{department}}} +\newcommand*\institute{\@dblarg{\tud@head@text@field{institute}}} +\newcommand*\chair{\@dblarg{\tud@head@text@field{chair}}} % \end{macrocode} % \end{field}^^A \@chairfoot % \end{field}^^A \@chair @@ -194,30 +188,21 @@ % besonderen Ausnahmefällen gestattet. % \begin{macrocode} \newcommand*\@extraheadline{} -\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}{#1}} +\newcommand*\extraheadline[1]{\tud@head@text@field{extraheadline}[]{#1}} % \end{macrocode} % \end{field}^^A \@extraheadline % \end{macro}^^A \extraheadline % \begin{macro}{\tud@head@text@field} % \changes{v2.05}{2015/11/26}{neu}^^A -% Wird ein Feld gesetzt, muss im Zweifel die Kopfzeile neu erstellt werden. -% \begin{macrocode} -\newcommand*\tud@head@text@field[2]{% - \csgdef{@#1}{\trim@spaces{#2}}% - \global\@tud@head@text@settrue% -} -% \end{macrocode} -% \end{macro}^^A \tud@head@text@field -% \begin{macro}{\tud@foot@line@add} -% \changes{v2.05}{2015/07/06}{neu}^^A % \begin{macro}{\tud@foot@line@write} % \changes{v2.05}{2015/07/06}{neu}^^A -% Mit \cs{tud@foot@line@add} wird der Inhalt eines Feldes in |\@|\meta{Feld} +% Mit \cs{tud@head@text@field} wird der Inhalt eines Feldes in |\@|\meta{Feld} % gespeichert. Der Befehl erwartet als erstes obligatorisches Argument den -% Feldnamen und als zweites den Inhalt. Entspricht das dritte obligatorische -% Argument \cs{@empty}, so wird in |\@|\meta{Feld}|foot| ebenfalls das zweite -% Argument abgelegt, andernfalls das dritte. +% Feldnamen und als letztes den Inhalt. Wird ein Feld gesetzt, muss die +% Kopfzeile neu erstellt werden. % +% Das (optionale) Argument dazwischen befüllt |\@|\meta{Feld}|foot| und wird +% mit \cs{@dblarg} standardmäßig auf den Inhalt von |\@|\meta{Feld} gesetzt. % Damit wird es für Poster möglich, die Befehle \cs{faculty}, \cs{department}, % \cs{institute}, \cs{chair} und \cs{professor} dahingehend zu erweitern, dass % unterschiedliche Angaben für die Kopf- und Fußzeile gemacht werden können. @@ -226,15 +211,15 @@ % jedoch zusätzlich das optionale Argument genutzt, so wird dessen Inhalt im % Fußbereich mit \cs{tud@foot@line@write} ausgegeben. % \begin{macrocode} +\newcommand*\tud@head@text@field{} +\def\tud@head@text@field#1[#2]#3{% + \expandafter\tud@trim@field\csname @#1\endcsname{#3}% %<*poster> -\newcommand*\tud@foot@line@add[3]{% - \tud@head@text@field{#1}{#2}% - \ifx\@empty#3\relax% - \global\csletcs{@#1foot}{@#1}% - \else% - \csgdef{@#1foot}{\trim@spaces{#3}}% - \fi% + \expandafter\tud@trim@field\csname @#1foot\endcsname{#2}% +% + \global\@tud@head@text@settrue% } +%<*poster> \newcommand*\tud@foot@line@write[1]{% \protected@edef\@tempa{\csuse{@#1foot}}% \ifx\@tempa\@empty\else\newline\mbox{\csuse{@#1foot}}\fi% @@ -242,7 +227,18 @@ % % \end{macrocode} % \end{macro}^^A \tud@foot@line@write -% \end{macro}^^A \tud@foot@line@add +% \end{macro}^^A \tud@head@text@field +% \begin{macro}{\tud@trim@field} +% Hiermit werden Feldinhalte gegebenenfalls um unnötige Leerzeichen befreit. +% \changes{v2.06o}{2022/08/03}{neu}^^A +% \begin{macrocode} +\newcommand*\tud@trim@field[2]{% + \def#1{#2}% + \trim@spaces@in#1% + \global\let#1#1% +} +% \end{macrocode} +% \end{macro}^^A \tud@trim@field % \begin{macro}{\title} % \begin{field}{\@title} % \begin{field}{\@@title} @@ -255,7 +251,7 @@ \newcommand*\@@title{} \robustify\@title \renewcommand*\title[1]{% - \gdef\@title{#1}% + \tud@trim@field\@title{#1}% \begingroup% \let\thanks\@gobble% \let\footnote\@gobble% @@ -279,7 +275,7 @@ % \begin{macrocode} \newcommand*\@@author{} \renewcommand*\author[1]{% - \gdef\@author{#1}% + \tud@trim@field\@author{#1}% % \end{macrocode} % Das Feld \cs{@@author} soll lediglich die Autoren ohne weitere Anmerkungen % enthalten. Deshalb werden die gewöhnlichen Formatierungsbefehle des Titels @@ -316,6 +312,9 @@ \expandafter\@tempb##1##2\@nil% }% \protected@edef\@@author{#1}% +% \end{macrocode} +% Zuletzt werden alle eingefügten \cs{@tempc} entfernt. +% \begin{macrocode} \@tempa{\@@author}{ \@tempc }% \@tempa{\@@author}{\@tempc }% \@tempa{\@@author}{ \@tempc}% @@ -324,7 +323,7 @@ \endgroup% } \newcommand*\@authormore{} -\newrobustcmd*\authormore[1]{\gdef\@authormore{#1}\ignorespaces} +\newrobustcmd*\authormore[1]{\tud@trim@field\@authormore{#1}} % \end{macrocode} % \end{field}^^A \@authormore % \end{macro}^^A \authormore @@ -341,20 +340,23 @@ % \changes{v2.05}{2016/07/09}{neu}^^A % \begin{macrocode} \newcommand*\@emailaddress{} -\newrobustcmd*\emailaddress{% +\newrobustcmd*\emailaddress[2][]{% \kernel@ifstar% - {\tud@emailaddress@simple}% - {\tud@emailaddress@hyper}% + {\tud@emailaddress@simple{#2}}% + {\tud@emailaddress@hyper[{#1}]{#2}}% } -\newrobustcmd*\tud@emailaddress@simple[1]{\gdef\@emailaddress{#1}} -\newrobustcmd*\tud@emailaddress@hyper[2][]{\gdef\@emailaddress{#2}} +\newrobustcmd*\tud@emailaddress@simple[1]{\tud@trim@field\@emailaddress{#1}} +\newrobustcmd*\tud@emailaddress@hyper[2][]{\tud@trim@field\@emailaddress{#2}} \AfterPackage{hyperref}{% \renewrobustcmd*\tud@emailaddress@hyper[2][hidelinks]{% - \gdef\@emailaddress{% + \tud@trim@field\@emailaddress{#2}% + \xdef\@emailaddress{% \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \href{mailto:#2}{\nolinkurl{#2}}% + \noexpand\urlstyle{same}% + \unexpanded{\hypersetup{#1}}% + \noexpand\href% + {mailto:\expandonce\@emailaddress}% + {\noexpand\nolinkurl{\expandonce\@emailaddress}}% \endgroup% }% }% @@ -370,7 +372,7 @@ % \cs{@course} gespeichert. % \begin{macrocode} \newcommand*\@course{} -\newrobustcmd*\course[1]{\gdef\@course{#1}\ignorespaces} +\newrobustcmd*\course[1]{\tud@trim@field\@course{#1}} % \end{macrocode} % \end{field}^^A \@course % \end{macro}^^A \course @@ -382,7 +384,7 @@ % wird im Makro \cs{@discipline} gespeichert. % \begin{macrocode} \newcommand*\@discipline{} -\newrobustcmd*\discipline[1]{\gdef\@discipline{#1}\ignorespaces} +\newrobustcmd*\discipline[1]{\tud@trim@field\@discipline{#1}} % \end{macrocode} % \end{field}^^A \@discipline % \end{macro}^^A \discipline @@ -397,9 +399,7 @@ % \cs{@matriculationid} gespeichert. % \begin{macrocode} \newcommand*\@matriculationnumber{} -\newrobustcmd*\matriculationnumber[1]{% - \gdef\@matriculationnumber{#1}\ignorespaces% -} +\newrobustcmd*\matriculationnumber[1]{\tud@trim@field\@matriculationnumber{#1}} % \end{macrocode} % \end{field}^^A \@matriculationnumber % \end{macro}^^A \matriculationnumber @@ -409,7 +409,7 @@ % gespeichert. % \begin{macrocode} \newcommand*\@matriculationyear{} -\newrobustcmd*\matriculationyear[1]{\gdef\@matriculationyear{#1}\ignorespaces} +\newrobustcmd*\matriculationyear[1]{\tud@trim@field\@matriculationyear{#1}} % \end{macrocode} % \end{field}^^A \@matriculationyear % \end{macro}^^A \matriculationyear @@ -418,7 +418,7 @@ % Der Geburtsort für den Titel wird in \cs{@placeofbirth} gespeichert. % \begin{macrocode} \newcommand*\@placeofbirth{} -\newrobustcmd*\placeofbirth[1]{\gdef\@placeofbirth{#1}\ignorespaces} +\newrobustcmd*\placeofbirth[1]{\tud@trim@field\@placeofbirth{#1}} % \end{macrocode} % \end{field}^^A \@placeofbirth % \end{macro}^^A \placeofbirth @@ -429,84 +429,108 @@ % \changes{v2.02}{2014/11/06}{\cs{protected@xdef} genutzt}^^A % \begin{macro}{\subject} % \begin{field}{\@subject} -% \begin{macro}{\tud@thesis@do} -% \begin{macro}{\tud@thesis@@do} -% \begin{macro}{\tud@thanks} +% \begin{field}{\@@subject} +% \begin{macro}{\tud@thesis@evaluate} % Art bzw. Typ der Abschlussarbeit kann \cs{thesis}\marg{Abschlussarbeit} % angegeben werden und wird im Makro \cs{@thesis} gespeichert. Alternativ % dazu kann auch der Befehl \cs{subject} verwendet werden. Mit dem Befehl -% \cs{tud@thesis@do} wird in den Feldern \cs{@thesis} respektive \cs{@subject} -% nach bestimmten Schlagwörtern für Abschlussarbeiten o.\,ä. gesucht. Wird -% eines dieser Wörter gefunden, wird der entsprechende Bezeichner für dieses -% Feld gesetzt. Zusätzlich wird durch \cs{tud@thesis@@do} dafür gesorgt, dass -% gegebenenfalls der Inhalt von \cs{@subject} in \cs{@thesis} verschoben und -% entsprechend die Option \opt{subjectthesis} gesetzt wird. In \cs{@@thesis} -% wird die angegebene Abschlussarbeit ohne etwaige Fußnoten gespeichert. +% \cs{tud@thesis@evaluate} wird in den Feldern \cs{@thesis} respektive +% \cs{@subject} nach bestimmten Schlagwörtern für Abschlussarbeiten o.\,ä. +% gesucht. Bei einem Treffer wird der entsprechende Bezeichner für dieses Feld +% gesetzt. In \cs{@@subject} beziehungsweise \cs{@@thesis} wird der gegebene +% oder substituierte Inhalt ohne etwaige Fußnoten gespeichert. % \begin{macrocode} \newcommand*\@thesis{} \newcommand*\@@thesis{} -\newcommand*\thesis[1]{\tud@thesis@do{thesis}{#1}} -\renewcommand*\subject[1]{\tud@thesis@do{subject}{#1}} -\newcommand*\tud@thanks{} -\newcommand*\tud@thesis@do[2]{% +\newcommand*\thesis[1]{\tud@thesis@evaluate{thesis}{#1}} +\CheckCommand*\subject[1]{\gdef\@subject{#1}} +\newcommand*\@@subject{} +\renewcommand*\subject[1]{\tud@thesis@evaluate{subject}{#1}} +\newcommand*\tud@thesis@evaluate[2]{% \begingroup% + \expandafter\tud@trim@field\csname @#1\endcsname{#2}% % \end{macrocode} -% Hier das gleiche wie an anderer Stelle auch schon. Der Inhalt einer eventuell -% vorhandenen Fußnote wird gesichert. +% Der Inhalt des Befehls \cs{thanks} wird durch das Setzen einer temporären Box +% in ein temporäres Makro gesichert. Nach der Verarbeitung des Feldinhalts und +% der möglichen Substitution durch den gewünschten Bezeichner wird \cs{thanks} +% wieder hinzugefügt. % \begin{macrocode} - \global\let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% + \let\tud@res@c\@empty% + \def\thanks##1{\listgadd\tud@res@c{##1}}% \let\footnote\thanks% \sbox\z@{#2}% \let\thanks\@gobble% \let\footnote\@gobble% - \tud@strlowercase\@tempa{#2}% - \tud@if@strequal{#1}{thesis}{\protected@xdef\@@thesis{#2}}{}% - \protected@edef\@tempa{% + \protected@csxdef{@@#1}{\trim@spaces{#2}}% + \letcs\tud@res@a{@@#1}% + \TUD@set@numkey{thesis}{@tempa}{% + {habil}{0}, + {diss}{1},{doctoral}{1},{phd}{1}, + {diploma}{2}, + {master}{3}, + {bachelor}{4}, + {student}{5}, + {evidence}{6}, + {project}{7}, + {seminar}{8}, + {term}{9}, + {research}{10}, + {log}{11}, + {report}{12}, + {internship}{13} + }{\tud@res@a}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \ifcase\@tempa\relax% habil + \def\tud@res@a{\habilitationname}% + \or% diss + \def\tud@res@a{\dissertationname}% + \or% diploma + \def\tud@res@a{\diplomathesisname}% + \or% master + \def\tud@res@a{\masterthesisname}% + \or% bachelor + \def\tud@res@a{\bachelorthesisname}% + \or% student + \def\tud@res@a{\studentthesisname}% + \or% evidence + \def\tud@res@a{\studentresearchname}% + \or% project + \def\tud@res@a{\projectpapername}% + \or% seminar + \def\tud@res@a{\seminarpapername}% + \or% term + \def\tud@res@a{\termpapername}% + \or% research + \def\tud@res@a{\researchname}% + \or% log + \def\tud@res@a{\logname}% + \or% report + \def\tud@res@a{\reportname}% + \or% internship + \def\tud@res@a{\internshipname}% + \else% + \FamilyKeyStateUnknownValue% + \fi% + \fi% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \global\cslet{@@#1}\tud@res@a% + \tud@if@strequal{#1}{subject}{% + \ifx\@@thesis\@empty\global\let\@@thesis\@@subject\fi% + }{}% + \def\do##1{\appto\tud@res@a{\thanks{##1}}}% + \dolistloop{\tud@res@c}% + \fi% + \edef\tud@res@a{% \endgroup% - \def\noexpand\@tempa{\@tempa}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed% + \noexpand\csgdef{@#1}{\expandonce\tud@res@a}% + \fi% }% - \@tempa% - \tud@if@strequal{\@tempa}{diss}{\tud@thesis@@do{#1}{\dissertationname}}{% - \tud@if@strequal{\@tempa}{doctoral}{\tud@thesis@@do{#1}{\dissertationname}}{% - \tud@if@strequal{\@tempa}{phd}{\tud@thesis@@do{#1}{\dissertationname}}{% - \tud@if@strequal{\@tempa}{diploma}{\tud@thesis@@do{#1}{\diplomathesisname}}{% - \tud@if@strequal{\@tempa}{master}{\tud@thesis@@do{#1}{\masterthesisname}}{% - \tud@if@strequal{\@tempa}{bachelor}{\tud@thesis@@do{#1}{\bachelorthesisname}}{% - \tud@if@strequal{\@tempa}{student}{\tud@thesis@@do{#1}{\studentthesisname}}{% - \tud@if@strequal{\@tempa}{evidence}{\tud@thesis@@do{#1}{\studentresearchname}}{% - \tud@if@strequal{\@tempa}{project}{\tud@thesis@@do{#1}{\projectpapername}}{% - \tud@if@strequal{\@tempa}{seminar}{\tud@thesis@@do{#1}{\seminarpapername}}{% - \tud@if@strequal{\@tempa}{term}{\tud@thesis@@do{#1}{\termpapername}}{% - \tud@if@strequal{\@tempa}{research}{\tud@thesis@@do{#1}{\researchname}}{% - \tud@if@strequal{\@tempa}{log}{\tud@thesis@@do{#1}{\logname}}{% - \tud@if@strequal{\@tempa}{report}{\tud@thesis@@do{#1}{\reportname}}{% - \tud@if@strequal{\@tempa}{internship}{\tud@thesis@@do{#1}{\internshipname}}{% - \csdef{@#1}{#2}% - }}}}}}}}}}}}}}}% -} -\newcommand*\tud@thesis@@do[2]{% - \tud@if@strequal{#1}{subject}{% - \ifx\@thesis\@empty\else% - \ClassWarning{\TUD@Class@Name}{% - Field `thesis' is overwritten by `subject'% - }% - \fi% - \TUD@key@preset{subjectthesis}{true}% - }{% - \TUD@key@preset{subjectthesis}{false}% - }% - \ifx\tud@thanks\relax% - \gdef\@thesis{#2}% - \else% - \protected@xdef\@thesis{\noexpand#2\noexpand\thanks{\tud@thanks}}% - \fi% - \protected@xdef\@@thesis{\trim@spaces{#2}}% + \tud@res@a% } % \end{macrocode} -% \end{macro}^^A \tud@thanks -% \end{macro}^^A \tud@thesis@@do -% \end{macro}^^A \tud@thesis@do +% \end{macro}^^A \tud@thesis@evaluate +% \end{field}^^A \@@subject % \end{field}^^A \@subject % \end{macro}^^A \subject % \end{field}^^A \@@thesis @@ -527,9 +551,8 @@ \newcommand*\@graduation{} \newcommand*\@graduationabbreviation{} \newcommand*\graduation[2][]{% - \gdef\@graduationabbreviation{}% - \tud@if@strblank{#1}{}{\gdef\@graduationabbreviation{(#1)}}% - \gdef\@graduation{#2}% + \tud@trim@field\@graduationabbreviation{#1}% + \tud@trim@field\@graduation{#2}% } % \end{macrocode} % \end{field}^^A \@graduationabbreviation @@ -549,11 +572,11 @@ % \begin{macrocode} %<*book|report|article> \newcommand*\@professor{} -\newcommand*\professor[1]{\gdef\@professor{#1}} +\newcommand*\professor[1]{\tud@trim@field\@professor{#1}} % %<*poster> \newcommand*\@professorfoot{} -\newcommand*\professor[1]{\gdef\@professorfoot{#1}} +\newcommand*\professor[1]{\tud@trim@field\@professorfoot{#1}} % % \end{macrocode} % \end{field}^^A \@professorfoot @@ -569,7 +592,7 @@ % \begin{macrocode} %<*book|report|article> \newcommand*\@supervisor{} -\newcommand*\supervisor[1]{\gdef\@supervisor{#1}} +\newcommand*\supervisor[1]{\tud@trim@field\@supervisor{#1}} % %<*poster> \newcommand*\supervisor[1]{} @@ -591,7 +614,7 @@ % Hilfesteller werden durch \cs{and} voneinander getrennt. % \begin{macrocode} \newcommand*\@supporter{} -\newcommand*\supporter[1]{\gdef\@supporter{#1}} +\newcommand*\supporter[1]{\tud@trim@field\@supporter{#1}} % \end{macrocode} % \end{field}^^A \@supporter % \end{macro}^^A \supporter @@ -600,7 +623,7 @@ % Angabe einer externen Firma, wird im Makro \cs{@company} gespeichert. % \begin{macrocode} \newcommand*\@company{} -\newcommand*\company[1]{\gdef\@company{#1}} +\newcommand*\company[1]{\tud@trim@field\@company{#1}} % \end{macrocode} % \end{field}^^A \@company % \end{macro}^^A \company @@ -610,7 +633,7 @@ % Mehrere Gutachter werden durch \cs{and} getrennt. % \begin{macrocode} \newcommand*\@referee{} -\newcommand*\referee[1]{\gdef\@referee{#1}} +\newcommand*\referee[1]{\tud@trim@field\@referee{#1}} % \end{macrocode} % \end{field}^^A \@referee % \end{macro}^^A \referee @@ -620,7 +643,7 @@ % gespeichert. Mehrere Fachreferenten werden durch \cs{and} getrennt. % \begin{macrocode} \newcommand*\@advisor{} -\newcommand*\advisor[1]{\gdef\@advisor{#1}} +\newcommand*\advisor[1]{\tud@trim@field\@advisor{#1}} % \end{macrocode} % \end{field}^^A \@advisor % \end{macro}^^A \advisor @@ -649,7 +672,7 @@ \@@author\hfil% \endgroup% } -\newcommand*\confirmationclosing[1]{\gdef\@confirmationclosing{#1}} +\newcommand*\confirmationclosing[1]{\tud@trim@field\@confirmationclosing{#1}} % \end{macrocode} % \end{field}^^A \@confirmationclosing % \end{macro}^^A \confirmationclosing @@ -660,7 +683,7 @@ % \enquote{Dresden} gesetzt. % \begin{macrocode} \newcommand*\@place{Dresden} -\newcommand*\place[1]{\gdef\@place{#1}} +\newcommand*\place[1]{\tud@trim@field\@place{#1}} % \end{macrocode} % \end{field}^^A \@place % \end{macro}^^A \place @@ -669,12 +692,24 @@ % % \fi % +% \begin{macro}{\subtitle} +% \begin{macro}{\@subtitle} +% \begin{macro}{\publishers} +% \begin{macro}{\@publishers} % \begin{macro}{\publisher} -% Kleine Korrektur für \KOMAScript, der Befehl sollte im Singular stehen. +% Die Felder von \KOMAScript werden ebenfalls behandelt. % \begin{macrocode} +\CheckCommand*\subtitle[1]{\gdef\@subtitle{#1}} +\renewcommand*\subtitle[1]{\tud@trim@field\@subtitle{#1}} +\CheckCommand\publishers[1]{\gdef\@publishers{#1}}% +\renewcommand*\publishers[1]{\tud@trim@field\@publishers{#1}} \providecommand*\publisher[1]{\publishers{#1}} % \end{macrocode} % \end{macro}^^A \publisher +% \end{macro}^^A \@publishers +% \end{macro}^^A \publishers +% \end{macro}^^A \@subtitle +% \end{macro}^^A \subtitle % % \iffalse %<*poster> @@ -691,20 +726,21 @@ % Im Fußbereich eines Posters kann zusätzlich eine Web-Seite angegeben werden. % \begin{macrocode} \newcommand*\@webpage{} -\newrobustcmd*\webpage{% +\newrobustcmd*\webpage[2][]{% \kernel@ifstar% - {\tud@webpage@simple}% - {\tud@webpage@hyper}% + {\tud@webpage@simple{#2}}% + {\tud@webpage@hyper[{#1}]{#2}}% } -\newrobustcmd*\tud@webpage@simple[1]{\gdef\@webpage{#1}} -\newrobustcmd*\tud@webpage@hyper[2][]{\gdef\@webpage{#2}} +\newrobustcmd*\tud@webpage@simple[1]{\tud@trim@field\@webpage{#1}} +\newrobustcmd*\tud@webpage@hyper[2][]{\tud@trim@field\@webpage{#2}} \AfterPackage{hyperref}{% \renewrobustcmd*\tud@webpage@hyper[2][hidelinks]{% - \gdef\@webpage{% + \tud@trim@field\@webpage{#2}% + \xdef\@webpage{% \begingroup% - \urlstyle{same}% - \hypersetup{#1}% - \url{#2}% + \noexpand\urlstyle{same}% + \unexpanded{\hypersetup{#1}}% + \noexpand\url{\expandonce\@webpage}% \endgroup% }% }% @@ -751,9 +787,10 @@ \ifx\today#2\relax% \gdef#1{#2}% \else% - \tud@if@strblank{#2}% - {\gdef#1{}}% - {\gdef#1{\printdate{#2}}}% + \tud@trim@field#1{#2}% + \tud@if@strblank{#1}% + {}% + {\xdef#1{\noexpand\printdate{\expandonce#1}}}% \fi% } % \end{macrocode} @@ -858,12 +895,14 @@ % \begin{macrocode} \newcommand*\tud@date@print{% \ifx\@date\@empty\else% + \trim@spaces@in\@beforedate% \ifx\@beforedate\@empty\else% - \expandafter\trim@spaces@noexp\expandafter{\@beforedate}\nobreakspace% + \@beforedate\nobreakspace% \fi% \@date% + \trim@spaces@in\@afterdate% \ifx\@afterdate\@empty\else% - \nobreakspace\expandafter\trim@spaces@noexp\expandafter{\@afterdate}% + \nobreakspace\@afterdate% \fi% \fi% } @@ -890,9 +929,7 @@ % gespeichert. % \begin{macrocode} \newcommand*\@dateofbirth{} -\newrobustcmd*\dateofbirth[1]{% - \tud@printdate{\@dateofbirth}{#1}\ignorespaces% -} +\newrobustcmd*\dateofbirth[1]{\tud@printdate{\@dateofbirth}{#1}} % \end{macrocode} % \end{field}^^A \@dateofbirth % \end{macro}^^A \dateofbirth @@ -914,21 +951,18 @@ % im Makro \cs{@chairman} gespeichert. % \begin{macrocode} \newcommand*\@chairman{} -\newcommand*\chairman[1]{\gdef\@chairman{#1}} +\newcommand*\chairman[1]{\tud@trim@field\@chairman{#1}} % \end{macrocode} % \end{field}^^A \@chairman % \end{macro}^^A \chairman % \begin{macro}{\grade} % \begin{field}{\@grade} -% \begin{field}{\@headline} % Die Befehle dienen zum Abspeichern der entsprechenden Parameter innerhalb % der neu definierten Umgebungen aus dem Paket \pkg{tudscrsupervisor}. % \begin{macrocode} \newcommand*\@grade{} -\newcommand*\grade[1]{\gdef\@grade{#1}} -\newcommand*\@headline{} +\newcommand*\grade[1]{\tud@trim@field\@grade{#1}} % \end{macrocode} -% \end{field}^^A \@headline % \end{field}^^A \@grade % \end{macro}^^A \grade % \begin{macro}{\issuedate} @@ -984,16 +1018,16 @@ % eine Telefonnummer und die E"~Mail-Adresse hinzugefügen. % \begin{macrocode} \newcommand*\@contactperson{} -\newcommand*\contactperson[1]{\gdef\@contactperson{#1}} +\newcommand*\contactperson[1]{\tud@trim@field\@contactperson{#1}} %<*poster> \let\supervisor\contactperson % \newcommand*\@office{} -\newrobustcmd*\office[1]{\gdef\@office{#1}} +\newrobustcmd*\office[1]{\tud@trim@field\@office{#1}} \newcommand*\@telephone{} -\newrobustcmd*\telephone[1]{\gdef\@telephone{#1}} +\newrobustcmd*\telephone[1]{\tud@trim@field\@telephone{#1}} \newcommand*\@telefax{} -\newrobustcmd*\telefax[1]{\gdef\@telefax{#1}} +\newrobustcmd*\telefax[1]{\tud@trim@field\@telefax{#1}} % \end{macrocode} % \end{field}^^A \@telefax % \end{macro}^^A \telefax @@ -1015,6 +1049,36 @@ % Einige Felder sind darauf ausgelegt, dass deren kommagetrennte Inhalte % einzeln abgearbeitet und ausgewertet werden können. Die folgenden Makros % übernehmen diese Aufgabe. +% +% \begin{macro}{\tud@if@field@unset} +% \changes{v2.06o}{2022/08/02}{neu}^^A +% Insbesondere das Autorenfeld (\cs{@author}) benötigt eine Sonderbehandlung, +% da dieses nicht leer sondern mit einer Warnung initialisiert ist. Mit diesem +% Makro kann darauf geprüft werden, ob innerhalb eines Feldes ein Befehl +% enthalten ist, welcher mit \cs{@latex@...} beginnt, was normalerweise für +% generische Fehler oder Warnungen genutzt wird. +% \begin{macrocode} +\newcommand*\tud@if@field@unset[1]{% + \begingroup% + \edef\tud@res@a{% + \def\noexpand\tud@res@a####1\string\@latex@####2\noexpand\@nil{% + \noexpand\IfArgIsEmpty{####2}% + \unexpanded{\@tud@res@swafalse\@tud@res@swatrue}% + }% + \noexpand\tud@res@a% + \expandafter\strip@prefix\meaning#1% + \string\@latex@\noexpand\@nil% + }% + \tud@res@a% + \if@tud@res@swa% + \aftergroup\@firstoftwo% + \else% + \aftergroup\@secondoftwo% + \fi% + \endgroup% +} +% \end{macrocode} +% \end{macro}^^A \tud@if@field@unset % \begin{macro}{\tud@multiple@split} % \begin{macro}{\tud@multiple@@split} % \begin{macro}{\tud@multiple@@@split} @@ -1037,11 +1101,9 @@ \newcommand*\tud@multiple@split[1]{% % \end{macrocode} % Sollte ein Feld verwendet werden, welches initial eine Fehlermeldung enthält, -% so die vorhandene Warnung ausgegeben und danach das Feld als leer definiert. +% wird die vorhandene Warnung ausgegeben und danach das Feld als leer definiert. % \begin{macrocode} - \expandafter\ifpatchable\expandafter{\csname #1\endcsname}{% - \@latex@warning@no@line% - }{% + \expandafter\tud@if@field@unset\expandafter{\csname #1\endcsname}{% \csuse{#1}\csgdef{#1}{}% }{}% % \end{macrocode} @@ -1103,7 +1165,14 @@ % zu erzeugen. % \begin{macrocode} \newcommand*\tud@multiple@fields@store[2]{% - \def\@tempa##1{\ifcsdef{@##1}{\tud@cs@store{@##1}}{}}% + \def\@tempa##1{% + \ifcsdef{@##1}{\tud@cs@store{@##1}}{}% + \ifcsdef{##1}{% + \tud@cs@store{##1}% + \expandafter\xapptocmd\csname ##1\endcsname{\ignorespaces}% + {}{\tud@patch@wrn##1}% + }{}% + }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% \expandafter\forcsvlist\expandafter\@tempa\expandafter{\@tempb}% @@ -1123,6 +1192,7 @@ \tud@cs@restore{@##1}% \global\csletcs{@##1}{@##1}% }{}% + \ifcsdef{##1}{\tud@cs@restore{##1}}{}% }% \letcs\@tempb{tud@split#1@list}% \let\and\relax% diff --git a/source/tudscr-localization.dtx b/source/tudscr-localization.dtx index 8d3687ef..56330fa4 100644 --- a/source/tudscr-localization.dtx +++ b/source/tudscr-localization.dtx @@ -210,6 +210,7 @@ % \changes{v2.02}{2014/05/16}{neu, Umbenennung von \cs{branchname}}^^A % \begin{localization}{\listingname} % \begin{localization}{\listlistingname} +% \begin{localization}{\habilitationname} % \begin{localization}{\dissertationname} % \begin{localization}{\diplomathesisname} % \begin{localization}{\masterthesisname} @@ -229,6 +230,7 @@ \tud@localization@define{\disciplinename} \tud@localization@define{\listingname} \tud@localization@define{\listlistingname} +\tud@localization@define{\habilitationname} \tud@localization@define{\dissertationname} \tud@localization@define{\diplomathesisname} \tud@localization@define{\masterthesisname} @@ -256,6 +258,7 @@ % \end{localization}^^A \masterthesisname % \end{localization}^^A \diplomathesisname % \end{localization}^^A \dissertationname +% \end{localization}^^A \habilitationname % \end{localization}^^A \listlistingname % \end{localization}^^A \listingname % \end{localization}^^A \disciplinename @@ -632,6 +635,7 @@ \tud@localization@german{\disciplinename}{Studienrichtung} \tud@localization@german{\listingname}{Quelltext} \tud@localization@german{\listlistingname}{Quelltextverzeichnis} +\tud@localization@german{\habilitationname}{Habilitation} \tud@localization@german{\dissertationname}{Dissertation} \tud@localization@german{\diplomathesisname}{Diplomarbeit} \tud@localization@german{\masterthesisname}{Master-Arbeit} @@ -854,6 +858,7 @@ \tud@localization@english{\disciplinename}{Discipline} \tud@localization@english{\listingname}{Listing} \tud@localization@english{\listlistingname}{List of Listings} +\tud@localization@english{\habilitationname}{Habilitation} \tud@localization@english{\dissertationname}{Dissertation} \tud@localization@english{\diplomathesisname}{Diploma Thesis} \tud@localization@english{\masterthesisname}{Master Thesis} diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 3f403982..966138f2 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -1683,9 +1683,8 @@ \tud@ddc@check% \ifcase\@tempa\relax% \tud@ddc@head@num=false \ifdefvoid{\tud@headlogo@filename}{}{% - \protected@edef\tud@headlogo@filename{% - \expandafter\trim@spaces\expandafter{\tud@headlogo@filename}% - }% + \protected@edef\tud@headlogo@filename{\tud@headlogo@filename}% + \trim@spaces@in\tud@headlogo@filename% \protected@edef\@tempb{% \noexpand\@tempc{\tud@headlogo@filename}{\tud@headlogo@fileoptions}% }% @@ -2111,7 +2110,8 @@ % \begin{macrocode} \let\@tempa\relax% \@for\@tempb:=\tud@footlogo@filenames\do{% - \edef\@tempb{\expandafter\trim@spaces\expandafter{\@tempb}}% + \protected@edef\@tempb{\@tempb}% + \trim@spaces@in{\@tempb}% \@tempa% \ifx\@tempb\@empty\else% \expandafter\tud@footlogo@cmd@@set\expandafter{\@tempb}{#1}% @@ -2361,7 +2361,7 @@ % Wurde kein Autor angegeben, wird in diesem Fall die normalerweise erzeugte % Warnung bei der Verwendung des Feldes \cs{@author} unterdrückt. % \begin{macrocode} - \ifpatchable{\@author}{\@latex@warning@no@line}{% + \tud@if@field@unset{\@author}{% \let\@tempa\@empty% }{% \let\@tempa\@author% diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index 889735b8..9c5d211e 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -253,6 +253,12 @@ % \end{macrocode} % \end{length}^^A \tud@dim@authortable % \end{macro}^^A \tud@authortable@set +% \begin{field}{\@headline} +% Hier wird der Inhalt des Parametes \prm{headline} hinein geschrieben. +% \begin{macrocode} +\newcommand*\@headline{} +% \end{macrocode} +% \end{field}^^A \@headline % % \subsection{Aufgabenstellung} % @@ -276,7 +282,7 @@ \cleardoubleoddpage% \let\@headline\@empty% \TUD@parameter@family{tudpage}{% - \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@def{headline}{\tud@trim@field\@headline{##1}}% \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% \TUD@parameter@def{style}{\def\tud@multiple@fields@style{##1}}% @@ -405,7 +411,7 @@ \cleardoubleoddpage% \let\@headline\@empty% \TUD@parameter@family{tudpage}{% - \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@def{headline}{\tud@trim@field\@headline{##1}}% \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% \TUD@parameter@def{grade}{\def\@grade{##1}}% @@ -503,7 +509,7 @@ \cleardoubleoddpage% \def\@headline{\noticename}% \TUD@parameter@family{tudpage}{% - \TUD@parameter@def{headline}{\def\@headline{##1}}% + \TUD@parameter@def{headline}{\tud@trim@field\@headline{##1}}% \TUD@parameter@let{heading}{headline}% \TUD@parameter@let{line}{headline}% \TUD@parameter@handler@default{headline}% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 1105db28..c6100f7f 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -548,7 +548,7 @@ \def\@tempc{% \@graduation% \ifx\@graduationabbreviation\@empty\else% - \nobreakspace\@graduationabbreviation% + \nobreakspace(\@graduationabbreviation)% \fi% }% {\usekomafont{titlepage}{\graduationtext\par}}% From 7870bfc3781337ac72d14f1e70985090d7fcfc60 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Wed, 3 Aug 2022 23:29:31 +0200 Subject: [PATCH 18/24] remove chunks related to package textcase --- source/tudscr-layout.dtx | 35 ++++++++++++----------- source/tudscr-manual.dtx | 61 ++-------------------------------------- source/tudscr-misc.dtx | 41 --------------------------- source/tudscr-title.dtx | 22 +-------------- 4 files changed, 22 insertions(+), 137 deletions(-) diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index 2fec295d..ebd0fad0 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -857,7 +857,7 @@ {\tud@sec@@@format{#1}[]}% } \newcommand*\tud@sec@@@format{} -\def\tud@sec@@@format#1[#2]{% +\def\tud@sec@@@format#1[#2]#3{% \begingroup% \IfArgIsEmpty{#2}% {\let\tud@res@a\@firstofone}% @@ -866,8 +866,9 @@ \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% }% \endgroup% - \@firstofone% + \tud@sec@@@@format{#3}% } +\newcommand*\tud@sec@@@@format[1]{#1} % \end{macrocode} % Für die alten Schriften hat der Befehl eine erweiterte Funktionalität, wenn % die Schriftfamilie \DIN aktiv ist, welche für Überschriften einzusetzen ist. @@ -876,21 +877,7 @@ % der den internen \LaTeX"~Befehl \cs{MakeUppercase} verbessert. % \begin{macrocode} \if@tud@cdoldfont@active - \newcommand*\tud@sec@uppercase{\MakeUppercase}% - \AfterPackage*{textcase}{% - \renewcommand*\tud@sec@uppercase{\MakeTextUppercase}% - }% - \def\tud@sec@@@format#1[#2]{% - \begingroup% - \IfArgIsEmpty{#2}% - {\let\tud@res@a\@firstofone}% - {\def\tud@res@a{\usekomafont{#2}}}% - \tud@res@a{% - \nobreak#1\nobreak\vphantom{\textsuperscript{\tud@font@phantomglyphs}}% - }% - \tud@ifdin{\aftergroup\tud@sec@uppercase}{\aftergroup\@firstofone}% - \endgroup% - }% + \def\tud@sec@@@@format#1{\tud@ifdin{\MakeUppercase{#1}}{#1}}% \fi %} % \end{macrocode} @@ -1672,6 +1659,20 @@ \tud@sec@subtitle{#1}% } % \end{macrocode} +% Beim Aufruf von \cs{partlineswithprefixformat} nutzt \KOMAScript im dritten +% Argument intern \cs{usekomafont}|{part}|. Für die Verwendung von \DIN in der +% Überschrift wird das besagte Argument allerdings via \cs{tud@sec@format} mit +% \cs{MakeUppercase} ummantelt. Der daraus letztendlich resultierende Aufruf +% |\MakeUppercase{\usekomafont{part}{...#3...}}| führt zu einem Fehler. Der +% nachfolgende Patch behebt das Problem. +% \begin{macrocode} +\if@tud@cdoldfont@active + \patchcmd\tud@partlineswithprefixformat + {#2\tud@sec@format[{#1}]{#3}} + {#2\tud@sec@format[{#1}]{}\addtokomafont{#1}{\tud@sec@format}#3} + {}{\tud@patch@wrn{tud@partlineswithprefixformat}} +\fi +% \end{macrocode} % \end{macro}^^A \tud@partformat % \end{macro}^^A \tud@partlineswithprefixformat % diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index 03522acc..82dfa919 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -2867,16 +2867,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}}% @@ -2912,50 +2903,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% -% - }{}{\tud@patch@wrn{tud@x@textcase@uclcnotmath}} -} -% \end{macrocode} -% \end{macro}^^A \tud@x@textcase@uclcnotmath -% \end{macro}^^A \tud@nonchangecase % % \subsection{Index} % @@ -4289,11 +4236,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}}% diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 3d532073..a4d61ccb 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -130,7 +130,6 @@ \let\@footnotemark\H@@footnotemark% \let\@footnotetext\H@@footnotetext% }% - \pdfstringdefDisableCommands{\let\NoCaseChange\@firstofone}% } % \end{macrocode} % \end{macro}^^A \tud@x@hyperref@realfootnotes @@ -418,46 +417,6 @@ % % \iffalse % -%<*body> -% \fi -% -% \subsection{Anpassungen für das Paket \pkg{textcase}} -% -% \begin{macro}{\@uclcnotmath} -% \begin{macro}{\tud@x@textcase@uclcnotmath} -% \changes{v2.02}{2014/06/27}{\pkg{textcase}: Ignorieren von Fußnoten im -% Argument des Befehls \cs{MakeTextUppercase}}^^A -% \changes{v2.03}{2015/01/21}{\pkg{textcase}: Ignorieren des Befehls -% \cs{@mkboth} im Argument des Befehls \cs{MakeTextUppercase}}^^A -% Damit Fußnoten innerhalb von \cs{MakeTextUppercase} nicht in Majuskeln -% gesetzt werden, wird der interne Befehl \cs{@uclcnotmath} aus dem Paket -% \pkg{textcase} angepasst. -% \begin{macrocode} -\if@tud@cdoldfont@active - \AtEndPreamble{\RequirePackage{textcase}[2004/10/07]} -\fi -\AfterPackage*{textcase}{% - \newcommand*\tud@x@textcase@uclcnotmath{% - \@nonchangecase\thanks% - \def\footnote##1##{\toks@{\noexpand\footnote##1}\@footnote}% - \def\@footnote##1{\NoCaseChange{\the\toks@{##1}}}% - \def\@mkboth##1##2{\NoCaseChange{\@mkboth{##1}{##2}}}% - }% - \robustify\NoCaseChange% - \patchcmd\@uclcnotmath{% - \@nonchangecase\ensuremath% - }{% - \@nonchangecase\ensuremath% - \tud@x@textcase@uclcnotmath% - }{}{\tud@patch@wrn{@uclcnotmath}}% -} -\TUD@deprecated@cs{NoCaseChange}{@firstofone} -% \end{macrocode} -% \end{macro}^^A \tud@x@textcase@uclcnotmath -% \end{macro}^^A \@uclcnotmath -% -% \iffalse -% %<*class&!inherit|package&fonts> %<*option> % \fi diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index c6100f7f..044ed3f0 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -932,28 +932,8 @@ \newcommand*\tud@title@format[2][]{% \begingroup% \let\\\newline% -% \end{macrocode} -% Der Befehl \cs{thanks} wird so umdefiniert, dass der Inhalt in ein temporäres -% Makro gespeichert wird. Danach wird durch das Setzen einer temporären Box der -% Befehl \cs{thanks} ausgeführt und der Inhalt gesichert. Für die Ausführung von -% \cs{tud@sec@format} wird das Argument von \cs{thanks} ignoriert. Nachdem das -% gewünschte Feld in Majuskeln gesetzt wurde, wird die gespeicherte Fußnote -% ausgegeben. -% \begin{macrocode} - \let\tud@thanks\relax% - \def\thanks##1{\gdef\tud@thanks{##1}}% - \let\footnote\thanks% - \sbox\z@{#2}% - \let\thanks\@gobble% - \let\footnote\@gobble% \tud@sec@format[{#1}]{#2}% - \edef\tud@res@a{% - \endgroup% - \ifx\tud@thanks\relax\else% - \noexpand\thanks{\expandonce\tud@thanks}% - \fi% - }% - \tud@res@a% + \endgroup% } % \end{macrocode} % \end{macro}^^A \tud@title@format From 699355c9c99f36362d2b71d0254bc9936488e5b8 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Thu, 4 Aug 2022 04:04:13 +0200 Subject: [PATCH 19/24] common code to tudscr-misc - code chunks used by both `tudscrmanual` and `tudscrdoc` moved from `tudscr-manual` to `tudscr-misc` - tudscrtutorial renamed to tudscrmanual --- source/doc/tudscr.tex | 36 +- source/doc/tutorials/mathswap.tex | 13 +- source/doc/tutorials/mathtype.tex | 15 +- source/doc/tutorials/treatise.tex | 19 +- source/tudscr-doc.dtx | 54 +-- source/tudscr-manual.dtx | 631 ++---------------------------- source/tudscr-misc.dtx | 573 ++++++++++++++++++++++++++- source/tudscr-texindy.dtx | 13 +- source/tudscr-version.dtx | 6 +- source/tudscr.ins | 23 +- 10 files changed, 690 insertions(+), 693 deletions(-) diff --git a/source/doc/tudscr.tex b/source/doc/tudscr.tex index 7fa90189..59b9e574 100644 --- a/source/doc/tudscr.tex +++ b/source/doc/tudscr.tex @@ -10,22 +10,20 @@ literate=% {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 - {~}{{\textasciitilde}}1 {ß}{{\ss}}1 + {ß}{{\ss}}1 {~}{{\textasciitilde}}1 + {»}{{\guillemetright}}1 {«}{{\guillemetleft}}1 } -\usepackage{bookmark} +\usepackage{babel} +\usepackage[babel]{microtype} -\TUDoption{ToDo}{true} +\usepackage{bookmark} \KOMAoptions{headings=optiontoheadandtoc} -%\tracinglabels[all] -%\tracingmarkup -%\tracingbundle - \begin{document} \newrobustcmd*\cdurl{% \begingroup% \hypersetup{hidelinks}% - \href{https://tu-dresden.de/cd/}{https://tu-dresden.de/cd}% + \href{https://tu-dresden.de/cd}{https://tu-dresden.de/cd}% \endgroup% } \faculty{\cdurl} @@ -36,7 +34,7 @@ } \publishers{\GitHubRepo'[]} \subject{\TUDScript \vTUDScript{} basierend auf \KOMAScript} -\title{Ein {LaTeX}-Bundle für Dokumente im \TUDCD} +\title{Ein \hologo{LaTeX}-Bundle für Dokumente im \TUDCD} \ifdef{\tudprintflag}{% \subtitle{Benutzerhandbuch\thanks{\href{tudscr}{Online-Version}}}% }{% @@ -51,9 +49,9 @@ \let\footnote\@gobble% \let\emailaddress\@gobble% \hypersetup{% - pdfauthor = {\@author},% - pdftitle = {\@title},% - pdfsubject = {Benutzerhandbuch für \TUDScript},% + pdfauthor = {\@author},% + pdftitle = {\@title},% + pdfsubject = {\@subtitle},% pdfkeywords = {LaTeX, \TUDScript, Benutzerhandbuch},% }% \endgroup% @@ -140,25 +138,25 @@ \part{Anhang} davor (\Option*{open=right}) sowie danach (\Option*{open=left}). Setzen von speziellen Inhalten auf diesen Seiten äquivalent zu \Macro*{setpartpreamble} bzw. \Macro*{setchapterpreamble}; ggf. temporär umschalten bzw. Warnung bei - Konflikt. - \url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11&t=396} + Konflikt. \Forum<396> }[v2.07] \ToDo[imp]{Alle Datumsangaben auf YYYY-MM-DD umstellen}[v2.07] \ToDo[imp]{LyX: layout-Dateien in das Projekt integrieren lassen?}[v2.07] -\ToDo[imp]{\Package*{glossaries}: Paket für Stile aus Tutorial}[v2.07] +\ToDo[imp]{% + \Package*{glossaries}: Paket für Stile aus Tutorial, siehe auch \Forum<535> +}[v2.07] \ToDo[imp]{TeXstudio: cwl-Dateien über docstrip, separate .ins-Datei}[v2.07] \ToDo[rls]{TeXstudio: alle *.cwl erneuern, automatisch über *.dtx} \ToDo[rls]{GitHub auf offene Issues prüfen} \ToDo[rls]{\emph{alle} dtx-Dateien der vorherigen Version mit WinMerge sichten} +\ToDo[rls]{Datumsangaben \emph{aller} dtx-Dateien prüfen}%: ^((?!%).)*\d{4}(/|-) \ToDo[rls]{Layout und Umbrüche kontrollieren} \ToDo[rls]{Datum in tudscr-version.dtx, tudscr-comp.dtx, Handbuch \& README} -\ToDo[rls]{% - Release auf GitHub und CTAN, Tag für Homepage und im Forum ändern\\ - {\small\url{http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?t=303}}% -} +\ToDo[rls]{Release auf GitHub und CTAN, Tag für Homepage und \Forum<303> ändern} + \ListOfToDo \end{document} diff --git a/source/doc/tutorials/mathswap.tex b/source/doc/tutorials/mathswap.tex index 233e675d..7da63022 100644 --- a/source/doc/tutorials/mathswap.tex +++ b/source/doc/tutorials/mathswap.tex @@ -5,14 +5,17 @@ \usepackage[T1]{fontenc} \usepackage[ngerman=ngerman-x-latest]{hyphsubst} \fi +\usepackage{babel} +\usepackage[babel]{microtype} -\usepackage{tudscrtutorial} +\usepackage{tudscrmanual} \lstset{% inputencoding=utf8,extendedchars=true, literate=% {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 - {~}{{\textasciitilde}}1 {ß}{{\ss}}1 + {ß}{{\ss}}1 {~}{{\textasciitilde}}1 + {»}{{\guillemetright}}1 {«}{{\guillemetleft}}1 } \usepackage{mathswap} @@ -29,9 +32,9 @@ \let\thanks\@gobble% \let\footnote\@gobble% \hypersetup{% - pdfauthor = {\@author},% - pdftitle = {\@title},% - pdfsubject = {Mathematiksatz in LaTeX},% + pdfauthor = {\@author},% + pdftitle = {\@title},% + pdfsubject = {Mathematiksatz in LaTeX},% pdfkeywords = {LaTeX, \TUDScript, Tutorial, Mathematiksatz},% }% \endgroup% diff --git a/source/doc/tutorials/mathtype.tex b/source/doc/tutorials/mathtype.tex index a9f9ab34..2e2cf48d 100644 --- a/source/doc/tutorials/mathtype.tex +++ b/source/doc/tutorials/mathtype.tex @@ -1,18 +1,21 @@ -\documentclass[english,ngerman]{tudscrartcl} +\documentclass[english,ngerman,cdfont=false]{tudscrartcl} \iftutex \usepackage{fontspec} \else \usepackage[T1]{fontenc} \usepackage[ngerman=ngerman-x-latest]{hyphsubst} \fi +\usepackage{babel} +\usepackage[babel]{microtype} -\usepackage{tudscrtutorial} +\usepackage{tudscrmanual} \lstset{% inputencoding=utf8,extendedchars=true, literate=% {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 - {~}{{\textasciitilde}}1 {ß}{{\ss}}1 + {ß}{{\ss}}1 {~}{{\textasciitilde}}1 + {»}{{\guillemetright}}1 {«}{{\guillemetleft}}1 } \usepackage{mathtools} @@ -28,9 +31,9 @@ \let\thanks\@gobble% \let\footnote\@gobble% \hypersetup{% - pdfauthor = {\@author},% - pdftitle = {\@title},% - pdfsubject = {Mathematiksatz in LaTeX},% + pdfauthor = {\@author},% + pdftitle = {\@title},% + pdfsubject = {Mathematiksatz in LaTeX},% pdfkeywords = {LaTeX, \TUDScript, Tutorial, Mathematiksatz},% }% \endgroup% diff --git a/source/doc/tutorials/treatise.tex b/source/doc/tutorials/treatise.tex index 0e069708..d42378c3 100644 --- a/source/doc/tutorials/treatise.tex +++ b/source/doc/tutorials/treatise.tex @@ -1,7 +1,9 @@ \RequirePackage{fix-cm} \documentclass[% english,ngerman,% - cdgeometry=no,DIV=12,automark% + cdgeometry=no,DIV=12,% + automark,% + listof=toc,% ]{tudscrartcl} \iftutex \usepackage{fontspec} @@ -9,19 +11,22 @@ \usepackage[T1]{fontenc} \usepackage[ngerman=ngerman-x-latest]{hyphsubst} \fi +\usepackage{babel} +\usepackage[babel]{microtype} -\usepackage{tudscrtutorial} +\usepackage{tudscrmanual} \lstset{% inputencoding=utf8,extendedchars=true, literate=% {ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 - {~}{{\textasciitilde}}1 {ß}{{\ss}}1 + {ß}{{\ss}}1 {~}{{\textasciitilde}}1 + {»}{{\guillemetright}}1 {«}{{\guillemetleft}}1 } \lstset{escapechar=§} \usepackage{lmodern} -\TUDoptions{cdfont=false} +\TUDoptions{cd=false,cdfont=false,cdtitle=true} \KOMAoptions{headings=normal} \usepackage{tudscrsupervisor} @@ -171,9 +176,9 @@ \let\thanks\@gobble% \let\footnote\@gobble% \hypersetup{% - pdfauthor = {\@author},% - pdftitle = {\@title},% - pdfsubject = {Tutorial für LaTeX},% + pdfauthor = {\@author},% + pdftitle = {\@title},% + pdfsubject = {Tutorial für LaTeX},% pdfkeywords = {LaTeX, \TUDScript, Tutorial, Anwenderleitfaden},% }% \endgroup% diff --git a/source/tudscr-doc.dtx b/source/tudscr-doc.dtx index cb3da454..692aca75 100644 --- a/source/tudscr-doc.dtx +++ b/source/tudscr-doc.dtx @@ -644,7 +644,7 @@ % \subsubsection{Erstellen aller Deklarationselemente} % % Nachdem nun die Anpassungen für die Änderungsliste erfolgt sind, können nun -% die für die Dokumentatiton notwendigen Umgebungen mit \cs{NewDocElement} +% die für die Dokumentation notwendigen Umgebungen mit \cs{NewDocElement} % erstellt werden, wobei die Lokalisierungsvariablen |\tud@|\meta{\dots}|@name| % zum Tragen kommen. % \begin{macrocode} @@ -1360,33 +1360,33 @@ % Um potenzielle Dopplungen zu vermeiden, wird \cs{quotechar} vor Zeichen % entfernt, die ohnehin gegebenenfalls manuell behandelt werden müssen. % \begin{macrocode} - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\quotechar"}{"}% - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\quotechar!}{!}% - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\quotechar:}{:}% - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\quotechar @}{@}% % \end{macrocode} % Jetzt die manuellen Anpassungen für Zeichen, die eigentlich zur Steuerung % der Indexeinträge genutzt werden. % \begin{macrocode} - \tud@replace\tud@line@replace{"}{""}% - \tud@replace\tud@line@replace{!}{"!}% - \tud@replace\tud@line@replace{:}{":}% - \tud@replace\tud@line@replace{@}{"@}% - \tud@replace\tud@line@replace{\"@}{"\@backslashchar"@}% + \tud@replace@@in\tud@line@replace{"}{""}% + \tud@replace@@in\tud@line@replace{!}{"!}% + \tud@replace@@in\tud@line@replace{:}{":}% + \tud@replace@@in\tud@line@replace{@}{"@}% + \tud@replace@@in\tud@line@replace{\"@}{"\"@}% % \end{macrocode} % Abschließend erfolgt das Einsetzen der Steuerzeichen. % \begin{macrocode} - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\actualchar}{@}% - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\quotechar}{"}% - \expandafter\tud@replace\expandafter\tud@line@replace% + \expandafter\tud@replace@@in\expandafter\tud@line@replace% \expandafter{\levelchar}{!}% - \tud@replace\tud@line@replace{" @}{}% + \tud@replace@@in\tud@line@replace{" @}{}% \ifeof\tud@xdy@read\else% \immediate\write\tud@xdy@write{% \unexpanded\expandafter{\tud@line@replace}% @@ -1785,32 +1785,6 @@ % \end{macro}^^A \bdl % \end{macro}^^A \app % -% \subsection{Rückfalloptionen bei fehlenden Paketen} -% -% Zum Schluss erfolgen einige Anpassungen mit \cs{AtEndPreamble}, um abhängig -% vom Ladezustand einiger Pakete reagieren zu können. -% \begin{macro}{\selectlanguage} -% \begin{macro}{\glqq} -% \begin{macro}{\grqq} -% \begin{macro}{\enquote} -% Etwas Kleinkram für \pkg{babel} und \pkg{csquotes}. -% \begin{macrocode} -\TUD@UnwindPackage{babel}{% - \ClassWarning{\TUD@Class@Name}{Package `babel' not loaded}% - \providecommand*\selectlanguage[1]{}% - \providecommand*\glqq{}% - \providecommand*\grqq{}% -} -\TUD@UnwindPackage{csquotes}{% - \ClassWarning{\TUD@Class@Name}{Package `csquotes' not loaded}% - \providecommand\enquote[1]{\emph{#1}}% -} -% \end{macrocode} -% \end{macro}^^A \enquote -% \end{macro}^^A \grqq -% \end{macro}^^A \glqq -% \end{macro}^^A \selectlanguage -% % \iffalse % % \fi diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index 82dfa919..38ae4c7d 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -41,7 +41,7 @@ % % \iffalse % -%\ProvidesPackage{tudscrtutorial}[% +%\ProvidesPackage{tudscrmanual}[% %<*package&identify> %!TUD@Version % @@ -83,7 +83,7 @@ % % \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 % % @@ -91,225 +91,16 @@ % \section{Anwenderdokumentation und Leitfäden zu \TUDScript} % % Es werden die Klasse \cls{tudscrmanual} (auf Basis von \cls{tudscrreprt}) für -% die Anwenderdokumentation sowie das Paket \pkg{tudscrtutorial} für das Setzen +% 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. -% \iffalse -%<*body|class&doc> -% \fi -% -% \subsection{Notwendige Pakete und Befehle} -% -% 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] -% -% \end{macrocode} -% Bugfixes für unterschiedliche Pakete. -% \begin{macrocode} -\RequirePackage{scrhack}[2014/02/27] -% \end{macrocode} -% Die Sprachunterstützung für Klasse und Paket. -% \begin{macrocode} -%<*!doc> -\RequirePackage{babel}[2014/03/24] -% -% \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] -%\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% - }% -}{}% -% -% \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 -% -%<*!doc> -%<*body> -%<*class> +%<*package&body> % \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} -\tud@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% -} -% \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 -% -%<*package> -% \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 @@ -321,13 +112,12 @@ % \end{macrocode} % % \iffalse -% -% +% %<*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} @@ -542,35 +332,13 @@ % % \iffalse % -% -% -%<*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}{hyperref} -\AfterPackage*{bookmark}{\bookmarksetup{open,openlevel=1}} -% \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} -\AfterAtEndOfPackage*{hyperref}{% - \@ifpackageloaded{bookmark}{}{\RequirePackage{bookmark}}% - \hypersetup{colorlinks,linkcolor=blue}% -% \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}% @@ -651,11 +419,6 @@ % \end{macro}^^A \auto@@refname % \end{macro}^^A \auto@refname % \end{macro}^^A \autorefname -% Nun die Einstellungen für \cls{tudscrdoc}. -% -% \iffalse -% -% \fi % % Das war's. Damit sind die Ausführungen für das Paket \pkg{hyperref} beendet. % \begin{macrocode} @@ -669,55 +432,18 @@ % Zunächst die direkt innerhalb der Dokumentation verwendeten Befehle nebst % dazugehöriger Warnung. % \begin{macrocode} -%<*!doc> %<*class> \ClassWarningNoLine{tudscrmanual}% % %<*package> - \PackageWarningNoLine{tudscrtutorial}% + \PackageWarningNoLine{tudscrmanual}% % {% It is strongly recommended to load package `hyperref'. \MessageBreak% Nevertheless, essential commands are rudimentarily\MessageBreak% defined. At least the package `url' is loaded% }% -% -% \end{macrocode} -% \begin{macro}{\hypersetup} -% \begin{macro}{\href} -% \begin{macro}{\phantomsection} -% \begin{macro}{\pdfbookmark} -% \begin{macro}{\currentpdfbookmark} -% \begin{macro}{\subpdfbookmark} -% \begin{macro}{\belowpdfbookmark} -% \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*\pdfbookmark[3][]{}% - \providecommand*\currentpdfbookmark[2]{}% - \providecommand*\subpdfbookmark[2]{}% - \providecommand*\belowpdfbookmark[2]{}% - \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 \belowpdfbookmark -% \end{macro}^^A \subpdfbookmark -% \end{macro}^^A \currentpdfbookmark -% \end{macro}^^A \pdfbookmark -% \end{macro}^^A \phantomsection -% \end{macro}^^A \href -% \end{macro}^^A \hypersetup -% -% \iffalse -%<*!doc> -% \fi +% \end{macrocode} % % \begin{macro}{\hyperpage} % \begin{macro}{\autoref} @@ -779,48 +505,8 @@ % \providecommand*\tudhyperref[2]{#2}% \providecommand*\autorefname[1][]{??\xspace}% -% \end{macrocode} -% -% \iffalse -% -% \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 -% -% \iffalse -% -%<*body> -% \fi % % \begin{macro}{\fullref} % Verbesserte Referenzierungen auf Seiten. @@ -831,9 +517,6 @@ % \end{macro}^^A \fullref % % \iffalse -% -%<*!doc> -%<*body> %<*class> % \fi % @@ -1286,10 +969,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 @@ -1342,7 +1030,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 @@ -1384,7 +1072,7 @@ \ClassError{tudscrmanual}% % %<*package> - \PackageError{tudscrtutorial}% + \PackageError{tudscrmanual}% % {Wrong usage of optional argument for value}% {There are two optional arguments for a value given!}% @@ -1411,7 +1099,7 @@ \ClassError{tudscrmanual}% % %<*package> - \PackageError{tudscrtutorial}% + \PackageError{tudscrmanual}% % {Nested environment `Bundle'}{% It is not possible to nest this environment, when\MessageBreak% @@ -1448,7 +1136,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>% }{% @@ -2687,13 +2375,7 @@ \let\@tempb\relax% \IfValueT{#6}{% \def\@tempb{% -%<*class> - \ClassWarning{tudscrmanual}% -% -%<*package> - \PackageWarning{tudscrtutorial}% -% - {% + \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% @@ -2734,7 +2416,7 @@ \ClassWarning{tudscrmanual}% % %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% % {% %<*class> @@ -2891,7 +2573,7 @@ \ClassError{tudscrmanual}% % %<*package> - \PackageError{tudscrtutorial}% + \PackageError{tudscrmanual}% % {\string\Markup@SetFormat\space unused}% {It seems you have forgotten to use \string\Markup@SetFormat.}% @@ -3198,8 +2880,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 @@ -3373,7 +3055,7 @@ \ClassWarning{tudscrmanual}% % %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% % {You should use `|see' instead of `|seealso'}% \tud@cleversee{\alsoname}% @@ -3408,6 +3090,8 @@ % \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} @@ -3415,15 +3099,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}} % % \end{macrocode} % \end{macro}^^A \seeidx % \end{macro}^^A \seeref +% \end{macro}^^A \seesep % % \subsubsection{Erstellen von Indexeinträgen} % @@ -3460,7 +3146,7 @@ \ClassWarning{tudscrmanual}% % %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% % {% You've used the starred version. No index entry\MessageBreak% @@ -3756,7 +3442,7 @@ \fi% % % \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} % \indexprologue[\tud@idx@skip]{}% % \end{macrocode} @@ -4782,7 +4468,7 @@ \ClassWarning{tudscrmanual}% % %<*package> - \PackageWarning{tudscrtutorial}% + \PackageWarning{tudscrmanual}% % {% File `#1' is missing!\MessageBreak% @@ -5874,31 +5560,14 @@ % \end{macro}^^A \tud@todo@type@use % \end{macro}^^A \ToDo % -% \iffalse -% -% -% \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] -% -% \end{macrocode} -% -% \iffalse -%<*body> -% \fi -% % Für den Fließtext werden Pfeile u.\,ä. durch \pkg{textcomp} bereitgestellt. % \begin{macrocode} \RequirePackage{textcomp}[2005/09/27] @@ -5977,140 +5646,16 @@ % % \iffalse % -% -%<*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}% - \addto@hook@expandafter\toks@{\detokenize{#2}}% - \addto@hook\toks@{##2\@nil{\@tempb{##1}{##2}}}% -% \end{macrocode} -% Der Inhalt von \cs{toks@} ist -% |\def\@tempa#1|\meta{Zeichen}|#2\@nil{\@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 |\@tempa##2\@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}}% - \addto@hook@expandafter\toks@{\@tempc}% - \addto@hook@expandafter\toks@{\detokenize{#2}\@nil}% -% \end{macrocode} -% Der Inhalt von \cs{toks@} hat die Form |\@tempa#1|\meta{Zeichen}|\@nil|, -% wobei der Inhalt von |#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 -% -% % \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{% - \tud@setdim\fboxsep{0.25em}% - \fbox{Achtung!}% - }[{#1}]% - \emph{\trim@spaces{#2}}% -} -\newcommand*\TUDForum{% - \mbox{T\kern.05em U\kern.05em D-\LaTeX-Forum}\xspace% -} -\AfterPackage*{hyperref}{% - \pdfstringdefDisableCommands{\def\TUDForum{TUD-LaTeX-Forum}}% -} -\NewDocumentCommand\Forum{!s !t' !O{\TUDForum} !d<>}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \IfBooleanT{#2}{\toks@{\url}}% - \def\@tempa{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% - \edef\@tempa{{\@tempa\IfValueT{#4}{viewtopic.php?t=#4}}}% - \eaddto@hook\toks@{\@tempa}% - \IfBooleanF{#2}{\addto@hook\toks@{{#3}}}% - \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% -} -\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !d<>}{% - \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% - \IfBooleanT{#2}{\toks@{\url}}% - \def\@tempa{https://github.com/tud-cd/tudscr/}% - \edef\@tempa{{\@tempa\IfValueTF{#4}{issues/#4}{#3}}}% - \eaddto@hook\toks@{\@tempa}% - \IfBooleanF{#2}{% - \addto@hook\toks@{{\tud@english{GitHub-Repository~\textcdsn{tudscr}}}}% - }% - \the\toks@\xspace% -} -%<*!doc> -\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.% @@ -6123,109 +5668,9 @@ \addto@hook\toks@{{#2}}% \the\toks@\xspace% } -% % \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 -% -% \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}}% -} -% \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> -% \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 % diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index a4d61ccb..461ed416 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -80,6 +80,7 @@ % Alles, wofür sich eine separate Datei nicht lohnt, landet hier. % % \iffalse +%<*!(manual|doc)> %<*class&option> % \fi % @@ -117,11 +118,11 @@ \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@x@hyperref@realfootnotes{} \AfterPackage{hyperref}{% - \renewcommand*\tudbookmark[3][]{% + \renewcommand*\tudbookmark[3][0]{% \relax% \if@tud@bookmarks% \csuse{phantomsection}% - \tud@if@strblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[{#1}]{#2}{#3}}% + \pdfbookmark[{#1}]{#2}{#3}% \fi% }% \renewcommand*\tud@x@hyperref@realfootnotes{% @@ -417,7 +418,6 @@ % % \iffalse % -%<*class&!inherit|package&fonts> %<*option> % \fi % @@ -534,7 +534,7 @@ % % \iffalse % -% +% %<*execute> %<*class&!inherit|package&fonts> % \fi @@ -583,10 +583,10 @@ % Es werden die Standardoptionen ausgeführt. Für die Klasse \cls{tudscrposter} % werden die Farben aktiviert. % \begin{macrocode} -%<*package&tutorial> +%<*package&manual> \KOMAoptions{headings=small} \TUDoptions{cdfoot=true} -% +% %<*class&!inherit|package> \TUDExecuteOptions{% %<*package&fixfonts> @@ -705,6 +705,567 @@ % \iffalse % % +%<*manual|doc> +% \fi +% +% \section{Zusätzliches für die Benutzer- und Quelltextdokumentation} +% +% Hier tauchen Hilfsmittel auf, die für die Dokumentation verwendet werden. +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Zusätzliche Pakete} +% +% Bugfixes für unterschiedliche Pakete. +% \begin{macrocode} +\RequirePackage{scrhack}[2014/02/27] +% \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} +% 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] +%\reversemarginpar +% \end{macrocode} +% Das Paket \pkg{shellesc} ermöglicht mit dem Befehl \cs{ShellEscape} die +% Verwendung von Systembefehlen auf der Kommandozeile unabhängig vom genutzten +% Format. Sollte \app{lualatex} als Dokumentprozessor eingesetzt werden, sind +% dennoch die beiden \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} +% +% 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}{hyperref} +\AfterPackage*{bookmark}{\bookmarksetup{open,openlevel=1}} +% \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} +\AfterAtEndOfPackage*{hyperref}{% + \@ifpackageloaded{bookmark}{}{\RequirePackage{bookmark}}% + \hypersetup{colorlinks,linkcolor=blue}% +} +% \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{\strut\url{#1}}% +} +% \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 +% \begin{macro}{\url} +% \begin{macro}{\nolinkurl} +% \begin{macro}{\href} +% \begin{macro}{\hypersetup} +% \begin{macro}{\phantomsection} +% \begin{macro}{\pdfbookmark} +% \begin{macro}{\currentpdfbookmark} +% \begin{macro}{\subpdfbookmark} +% \begin{macro}{\belowpdfbookmark} +% Sollte \pkg{hyperref} nicht geladen werden, müssen einige Befehle rudimentär +% definiert werden. +% \begin{macrocode} +\TUD@UnwindPackage{hyperref}{% + \RequirePackage{url}[2013/09/16]% + \providerobustcmd*\url[1]{\texttt{\detokenize{#1}}}% + \providerobustcmd*\nolinkurl[1]{\url{#1}}% + \providerobustcmd*\href[3][]{#3}% + \providecommand*\hypersetup[1]{}% + \providecommand*\phantomsection{}% + \providecommand*\pdfbookmark[3][]{}% + \providecommand*\currentpdfbookmark[2]{}% + \providecommand*\subpdfbookmark[2]{}% + \providecommand*\belowpdfbookmark[2]{}% +} +% \end{macrocode} +% \end{macro}^^A \belowpdfbookmark +% \end{macro}^^A \subpdfbookmark +% \end{macro}^^A \currentpdfbookmark +% \end{macro}^^A \pdfbookmark +% \end{macro}^^A \phantomsection +% \end{macro}^^A \hypersetup +% \end{macro}^^A \href +% \end{macro}^^A \nolinkurl +% \end{macro}^^A \url +% +% Etwas Kleinkram für \pkg{babel} und \pkg{csquotes}. Das letztere Paket dient +% dem sprachabhängigen Setzen von Anführungszeichen und sollte erst nach +% \pkg{inputenc} oder \pkg{inputenx} geladen werden. +% \begin{macrocode} +\AfterPackage*{babel}{\RequirePackage{csquotes}} +% \end{macrocode} +% \begin{macro}{\selectlanguage} +% \begin{macro}{\glqq} +% \begin{macro}{\grqq} +% \begin{macro}{\enquote} +% \begin{macrocode} +\TUD@UnwindPackage{babel}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `babel' not loaded}% + \providecommand*\selectlanguage[1]{}% + \providecommand*\glqq{\quotedblbase}% + \providecommand*\grqq{\textquotedblleft}% + \providecommand*\seename{see}% + \providecommand*\alsoname{see\nobreakspace also}% +} +\TUD@UnwindPackage{csquotes}{% + \ClassWarningNoLine{\TUD@Class@Name}{Package `csquotes' not loaded}% + \providecommand\enquote[1]{\emph{#1}}% +} +% \end{macrocode} +% \end{macro}^^A \enquote +% \end{macro}^^A \grqq +% \end{macro}^^A \glqq +% \end{macro}^^A \selectlanguage +% +% \iffalse +%<*class&manual> +% \fi +% +% \subsection{Sortieren von Listen} +% +% \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} +\tud@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. +% \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% +} +% \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 +% +% \fi +% +% \subsection{Stringmanipulation} +% +% \begin{macro}{\tud@replace@in} +% \changes{v2.05}{2015/11/01}{neu}^^A +% \changes{v2.06o}{2022/08/08}{neu}^^A +% \begin{macro}{\tud@replace@@in} +% \changes{v2.06o}{2022/08/08}{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 die +% möglicherweise enthaltenen |@|"~Zeichen oder in Datei- und Pfadangaben +% Unterstriche zu ersetzen. +% \begin{macrocode} +\newcommand*\tud@replace@in[3]{% + \begingroup% +% \end{macrocode} +% Zunächst wird der Inhalt des ersten Argumentes expandiert. Anschließend +% wird \cs{tud@res@b} als ein durch \cs{@nil} abgegrenztes Makro mit zwei +% Argumenten definiert, wobei diese durch das im zweiten Argument gegebene +% \meta{Zeichen} voneinander abgegrenzt werden. Dieses Makro wird nun so lange +% rekursiv mit dem zweiten Teil aufgerufen, bis dieses leer is. Dabei wird der +% erste, durch das angegebene zu ersetzende Zeichen Teil sukzessive an +% \cs{tud@res@c} angehängt und um das im dritten Argument angegebene +% Ersatzzeichen vervollständigt. +% \begin{macrocode} + \edef\tud@res@a{\expandonce{#1}}% + \let\tud@res@c\@empty% + \def\tud@res@b##1#2##2\@nil{% + \IfArgIsEmpty{##2}{% + \appto\tud@res@c{##1}% + }{% + \appto\tud@res@c{##1#3}% + \tud@res@b##2\@nil% + }% + }% + \expandafter\tud@res@b\tud@res@a#2\@nil% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\expandonce\tud@res@c}% + }% + \tud@res@a% +} +% \end{macrocode} +% Diese Variante sorgt dafür, dass die zu ersetzenden Zeichen alle als Strings +% behandelt werden. +% \begin{macrocode} +\newcommand*\tud@replace@@in[3]{% + \begingroup% + \protected@edef\tud@res@a{#1}% + \edef\tud@res@a{\detokenize\expandafter{\tud@res@a}}% + \edef\tud@res@b{% + \unexpanded{\tud@replace@in\tud@res@a}{\detokenize{#2}}{\detokenize{#3}}% + }% + \tud@res@b% + \edef\tud@res@a{% + \endgroup% + \unexpanded{\def#1}{\tud@res@a}% + }% + \tud@res@a% +} +% \end{macrocode} +% \end{macro}^^A \tud@replace@@in +% \end{macro}^^A \tud@replace@in +% +% \iffalse +% +%<*body> +% \fi +% +% \subsection{Zusätzliche Markup-Befehle} +% \subsubsection{Textauszeichnung} +% +% \begin{macro}{\@pnumwidth} +% \begin{macro}{\@tocrmarg} +% Etwas mehr Platz im Inhaltsverzeichnis für die Seitenzahlen. +% \begin{macrocode} +\renewcommand*\@pnumwidth{2.1em} +\renewcommand*\@tocrmarg{3.1em} +% \end{macrocode} +% \end{macro}^^A \@tocrmarg +% \end{macro}^^A \@pnumwidth +% +% \begin{macro}{\textsbn} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\sbnfont} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\textsbi} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\sbifont} +% \changes{v2.02}{2014/08/16}{neu}^^A +% \begin{macro}{\textttit} +% \changes{v2.06o}{2022/08/03}{neu}^^A +% \begin{macro}{\ttitfont} +% \changes{v2.06o}{2022/08/03}{neu}^^A +% Kombinierte Auszeichnungsbefehle für Text. +% \begin{macrocode} +\newcommand*\textsbn{} +\newrobustcmd*\sbnfont{\sffamily\bfseries\upshape} +\DeclareTextFontCommand\textsbn{\sbnfont} +\newcommand*\textsbi{} +\newrobustcmd*\sbifont{\sffamily\bfseries\itshape} +\DeclareTextFontCommand\textsbi{\sbifont} +\newcommand*\textttit{} +\newrobustcmd*\ttitfont{\ttfamily\itshape} +\DeclareTextFontCommand\textttit{\ttitfont} +% \end{macrocode} +% \end{macro}^^A \ttitfont +% \end{macro}^^A \textttit +% \end{macro}^^A \sbifont +% \end{macro}^^A \textsbi +% \end{macro}^^A \sbnfont +% \end{macro}^^A \textsbn +% +% \subsubsection{Logisches Markup} +% +% \begin{macro}{\tud@english} +% Hiermit wird der Argumentsinhalt mit englischen Trennungsmustern 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 +% \begin{macro}{\KOMAScript} +% \begin{macro}{\TUDScript} +% \begin{macro}{\vTUDScript} +% \begin{macro}{\vKOMAScript} +% Für die robuste Verwendung im Text. +% \begin{macrocode} +\kernel@make@fragile\KOMAScript +\edef\KOMAScript{\noexpand\mbox{\expandonce\KOMAScript}\noexpand\xspace} +\robustify\KOMAScript +\robustify\TUDScript +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\KOMAScript{KOMA-Script{}}% + \def\TUDScript{TUD-Script{}}% + }% +} +% \end{macrocode} +% 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 +% \end{macro}^^A \TUDScript +% \end{macro}^^A \KOMAScript +% \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}{\TUDForum} +% \changes{v2.06o}{2022/08/04}{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} +\newrobustcmd*\CD{\tud@english{Corporate Design}\xspace} +\newrobustcmd*\CDs{\tud@english{Corporate Designs}\xspace} +\newrobustcmd*\TUD{Technische Universit\"at Dresden\xspace} +\newrobustcmd*\TnUD{Technischen Universit\"at Dresden\xspace} +\newcommand*\TUDCD{\CD der \TnUD} +\newcommand*\TUDCDs{\CDs der \TnUD} +\newrobustcmd*\TUDForum{\mbox{T\kern.05em U\kern.05em D-\LaTeX-Forum}\xspace} +\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\CD{Corporate Design{}}% + \def\CDs{Corporate Designs{}}% + \def\TUD{Technische Universit\"at Dresden{}}% + \def\TnUD{Technischen Universit\"at Dresden{}}% + \def\TUDForum{TUD-LaTeX-Forum{}}% + \def\DDC{DRESDEN-concept{}}% + }% +} +% \end{macrocode} +% \end{macro}^^A \DDC +% \end{macro}^^A \TUDForum +% \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}{\Univers} +% \begin{macro}{\DIN} +% Für die Nennung der Schriften spezielle Markos bereitgestellt. +% \begin{macrocode} +\newrobustcmd*\OpenSans{\textcdbn{Open\nobreakspace Sans}\xspace} +\newrobustcmd*\Univers{\textcdbi{Univers}\xspace} +\newrobustcmd*\DIN{\textcdbi{DIN\nobreakspace Bold}\xspace} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{% + \def\OpenSans{Open Sans{}}% + \def\Univers{Univers{}}% + \def\DIN{DIN Bold{}}% + }% +} +% \end{macrocode} +% \end{macro}^^A \DIN +% \end{macro}^^A \Univers +% \end{macro}^^A \OpenSans +% +% \begin{macro}{\GitHubBase} +% Angabe der URL des verwendeten GitHub-Repository. Aktuell nicht implementiert. +% \begin{macrocode} +\newcommand*\GitHubBase[1]{} +% \end{macrocode} +% \end{macro}^^A \GitHubBase +% \begin{macro}{\GitHubRepo} +% \changes{v2.02}{2014/08/16}{neu}^^A +% Auszeichnungsbefehle für Verweise auf ein GitHub-Repository. +% \begin{macrocode} +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{https://github.com/tud-cd/tudscr/}% + \edef\@tempa{{\@tempa\IfValueTF{#4}{issues/#4}{#3}}}% + \eaddto@hook\toks@{\@tempa}% + \IfBooleanF{#2}{% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\textsbn{tudscr}}}}% + }% + \the\toks@\xspace% +} +% \end{macrocode} +% \end{macro}^^A \GitHubRepo +% \begin{macro}{\Download} +% \changes{v2.05g}{2016/11/08}{neu}^^A +% Der Befehl für die Angabe von direkten Downloadlinks. +% \begin{macrocode} +%<*manual> +\newcommand*\Download[1]{% + https://github.com/tud-cd/tudscr/releases/download/#1% +} +% +% \end{macrocode} +% \end{macro}^^A \Download +% \begin{macro}{\CTAN} +% \changes{v2.05}{2015/11/22}{neu}^^A +% \begin{macrocode} +\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% +} +% \end{macrocode} +% \end{macro}^^A \CTAN +% \begin{macro}{\Forum} +% Der Befehl für die Ausgabe eines Links zum \TUDForum. Das optionale Argument +% in Guillemets kann genutzt werden, um auf einen spezifisches Beitrag zu +% verlinken. +% \begin{macrocode} +\NewDocumentCommand\Forum{!s !t' !O{\TUDForum} !d<>}{% + \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% + \IfBooleanT{#2}{\toks@{\url}}% + \def\@tempa{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% + \edef\@tempa{{\@tempa\IfValueT{#4}{viewtopic.php?t=#4}}}% + \eaddto@hook\toks@{\@tempa}% + \IfBooleanF{#2}{\addto@hook\toks@{{#3}}}% + \the\toks@\xspace% +} +% \end{macrocode} +% \end{macro}^^A \Forum +% \begin{macro}{\Attention} +% \changes{v2.02}{2014/08/16}{neu}^^A +% Falls irgendetwas besonders hervorgehoben werden sollte. +% \begin{macrocode} +\newcommand*\Attention[2][\z@]{% + \marginnote{% + \tud@setdim\fboxsep{0.25em}% + \fbox{Achtung!}% + }[{#1}]% + \emph{\trim@spaces{#2}}% +} +% \end{macrocode} +% \end{macro}^^A \Attention +% +% \iffalse +% +% % \fi % % \PrintBackMatter diff --git a/source/tudscr-texindy.dtx b/source/tudscr-texindy.dtx index 88c540ce..c33b7042 100644 --- a/source/tudscr-texindy.dtx +++ b/source/tudscr-texindy.dtx @@ -126,10 +126,10 @@ % Umgebung definiert, welche für die prozessierten Indexdateien zu nutzen sind. % \begin{macrocode} \immediate\write\tud@xdy@write{% -%<*doc> (markup-index^^J% \@spaces:open^^J% "\string\begin{#1}^^J% +%<*doc> \space\space\string\makeatletter\@percentchar^^J% \space\space\string\providecommand*\string\lettergroupDefault[1]% {\string\lettergroup{\string\tud@symbols@name}}\@percentchar^^J% @@ -155,6 +155,8 @@ {\string\lettergroup{\@hashchar1}}\@percentchar^^J% \space\space\string\tud@lst@def\@percentchar^^J% \fi +% + \space\space\string\providecommand*\string\seesep{/}\@percentchar^^J% % \end{macrocode} % Der Abschluss der Umgebungsdefinition. % \begin{macrocode} @@ -166,6 +168,7 @@ % Für die Sortierung des Indexes sollen einzelne Zeichen beachtet werden. % Hierfür wird |xy-ignore-special| durch |xy-resolve-special| ersetzt. % \begin{macrocode} +%<*doc> (define-sort-rule-orientations (forward backward forward forward))^^J% (use-rule-set :run 0^^J% \@spaces:rule-set ("xy-alphabetize" "xy-resolve-special")^^J% @@ -245,7 +248,7 @@ %^^A (merge-rule "\\hologo\{(.*)\}" "/1" :eregexp)^^J% %^^A (merge-rule "\\texttt\{(.*)\}" "/1" :eregexp)^^J% %^^A (merge-rule "\\textsbn\{(.*)\}" "/1" :eregexp)^^J% -%^^A (merge-rule "\\textsbs\{(.*)\}" "/1" :eregexp)^^J% +%^^A (merge-rule "\\textsbi\{(.*)\}" "/1" :eregexp)^^J% % % \end{macrocode} % Für die Änderungsliste im Handbuch werden Untereinträge bis zur vierten Ebene @@ -446,13 +449,13 @@ % \end{macrocode} % Werden mit \verb+|see+\marg{Eintrag!Untereintrag} gezielte Querverweise auf % Untereinträge im Index erstellt, so werden diese nicht standardmäßig mit -% einem Komma sondern mit \enquote*{\,\textbar\,} getrennt. +% einem Komma sondern mit dem anpassbaren Makro \cs{seesep} getrennt. % \begin{macrocode} (markup-crossref-layer-list :class "see"% - \@spaces\space:sep "\string\,\string\textbar\string\,"% + \@spaces\space:sep "\string\seesep{}"% )^^J% (markup-crossref-layer-list :class "seealso"% - \space:sep "\string\,\string\textbar\string\,"% + \space:sep "\string\seesep{}"% )^^J% % \end{macrocode} % Damit die Makros \cs{cleversee} und \cs{cleverseealso} sowie \cs{seeidx} auf diff --git a/source/tudscr-version.dtx b/source/tudscr-version.dtx index 7a1b3231..84b5bc33 100644 --- a/source/tudscr-version.dtx +++ b/source/tudscr-version.dtx @@ -249,7 +249,7 @@ % % \iffalse % -%<*package&(supervisor|comp|tutorial)> +%<*package&(supervisor|comp|manual)> % \fi % % \section{Verwendbarkeit von \TUDScript-Paketen} @@ -261,7 +261,7 @@ \PackageError{% % tudscrsupervisor% % tudscrcomp% -% tudscrtutorial% +% tudscrmanual% }{Unsupported class found}{% This package can only be used with a class out of the\MessageBreak% tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% @@ -271,7 +271,7 @@ % \end{macrocode} % % \iffalse -% +% % \fi % % \section{Das \TUDScript-Logo} diff --git a/source/tudscr.ins b/source/tudscr.ins index b102796e..a7dfa648 100644 --- a/source/tudscr.ins +++ b/source/tudscr.ins @@ -237,21 +237,25 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-version.dtx}{class,manual,inherit}% \from{tudscr-manual.dtx}{class,manual}% \from{tudscr-base.dtx}{class,manual,inherit,load}% + \from{tudscr-misc.dtx}{class,manual,option}% \from{tudscr-manual.dtx}{class,manual,option}% \from{tudscr-misc.dtx}{class,manual,inherit,execute}% + \from{tudscr-misc.dtx}{class,manual,body}% \from{tudscr-manual.dtx}{class,manual,body}% \from{tudscr-fields.dtx}{class,manual,body}% \from{tudscr-localization.dtx}{class,manual,body}% \from{tudscr-texindy.dtx}{class,manual}% } - \file{tudscrtutorial.sty}{% - \from{tudscr-version.dtx}{package,tutorial}% - \from{tudscr-manual.dtx}{package,tutorial,identify}% - \from{tudscr-base.dtx}{package,tutorial,load}% - \from{tudscr-manual.dtx}{package,tutorial,option}% - \from{tudscr-misc.dtx}{package,tutorial,execute}% - \from{tudscr-manual.dtx}{package,tutorial,body}% - \from{tudscr-texindy.dtx}{package,tutorial}% + \file{tudscrmanual.sty}{% + \from{tudscr-version.dtx}{package,manual}% + \from{tudscr-manual.dtx}{package,manual,identify}% + \from{tudscr-base.dtx}{package,manual,load}% + \from{tudscr-misc.dtx}{package,manual,option}% + \from{tudscr-manual.dtx}{package,manual,option}% + \from{tudscr-misc.dtx}{package,manual,execute}% + \from{tudscr-misc.dtx}{package,manual,body}% + \from{tudscr-manual.dtx}{package,manual,body}% + \from{tudscr-texindy.dtx}{package,manual}% } } \generate{% @@ -259,9 +263,10 @@ The current maintainer and author of this work is Falk Hanisch. \file{tudscrdoc.cls}{% \from{tudscr-version.dtx}{class,doc}% \from{tudscr-base.dtx}{class,doc,load}% + \from{tudscr-misc.dtx}{class,doc,option}% \from{tudscr-doc.dtx}{class,doc,option}% \from{tudscr-localization.dtx}{class,doc}% - \from{tudscr-manual.dtx}{class,doc}% + \from{tudscr-misc.dtx}{class,doc,body}% \from{tudscr-doc.dtx}{class,doc,body}% \from{tudscr-texindy.dtx}{class,doc}% } From c9bcaabd6c41814ccaead81c1004191ba00cbd3c Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Sat, 6 Aug 2022 02:05:03 +0200 Subject: [PATCH 20/24] babel provides \foreignlanguage out of the box --- source/tudscr-base.dtx | 19 ++++++++++--------- source/tudscr-misc.dtx | 10 +++++----- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index f239874c..ebacc75b 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -527,18 +527,20 @@ % \begin{macro}{\iflanguageloaded} % \changes{v2.05}{2015/11/23}{neu}^^A % Hiermit kann getestet werden, ob das Argument als Sprache nutzbar ist. -% \ToDo{ist Befehl noch sinnvoll? use polyglossia \cs{xpg@[b]loaded}?}[v2.07] -% \ToDo{für polyglossia auch mit \cs{ifbabellanguageloaded} testen?}[v2.07] -% \ToDo{besser nur als internen Befehl definieren \cs{tud@if@...}?!}[v2.07] % \begin{macrocode} -\newcommand*\iflanguageloaded[1]{% - \PackageWarning{tudscrbase}{% - Whether package `babel' nor package `polyglossia' has been loaded% +\AtEndPreamble{% + \providecommand*\iflanguageloaded[1]{% + \PackageWarning{tudscrbase}{% + `\string\iflanguageloaded' is not defined. Loading\MessageBreak% + either package `babel' or package `polyglossia'\MessageBreak% + is recommended% + }% + \def\iflanguageloaded##1{\expandafter\@secondoftwo}% + \iflanguageloaded{#1}% }% - \expandafter\@secondoftwo% } \AfterPackage*{babel}{% - \renewcommand*\iflanguageloaded[1]{% + \providecommand*\iflanguageloaded[1]{% \@expandtwoargs\in@{,#1,}{,\bbl@loaded,}% \ifin@% \expandafter\@firstoftwo% @@ -547,7 +549,6 @@ \fi% }% } -\BeforePackage{polyglossia}{\undef\iflanguageloaded} % \end{macrocode} % \end{macro}^^A \iflanguageloaded % diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 461ed416..0b7adeb7 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -1082,11 +1082,11 @@ % Hiermit wird der Argumentsinhalt mit englischen Trennungsmustern gesetzt, % falls die Sprache geladen wurde. % \begin{macrocode} -\newcommand*\tud@english[1]{#1} -\AtBeginDocument{% - \iflanguageloaded{english}{% - \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% - }{}% +\newcommand*\tud@english[1]{% + \iflanguageloaded{english}{\foreignlanguage{english}{#1}}{#1}% +} +\AfterPackage*{babel}{% + \renewcommand*\tud@english[1]{\foreignlanguage{english}{#1}}% } % \end{macrocode} % \end{macro}^^A \tud@english From b82c2af5de9fe3deed85994327e7e814ecc74dac Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Sat, 6 Aug 2022 03:00:34 +0200 Subject: [PATCH 21/24] do not affect hijacked KOMA options --- source/tudscr-area.dtx | 4 ++-- source/tudscr-fonts.dtx | 2 +- source/tudscr-frontmatter.dtx | 1 + source/tudscr-layout.dtx | 6 +++--- source/tudscr-title.dtx | 8 +++----- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index a528a80e..d1fdd6b6 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -718,12 +718,12 @@ % \begin{macrocode} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{twoside}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{twocolumn}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@cdgeometry@process}% - \FamilyKeyStateProcessed% } % \end{macrocode} % \end{option}^^A twocolumn diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index d38fe432..952b337c 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -1025,6 +1025,7 @@ \RelaxFamilyKey{TUD}{fontsize}% \DefineFamilyMember{KOMA}% \DefineFamilyKey{KOMA}{fontsize}{% + \FamilyKeyStateUnknownValue% %<*class> \@tud@x@scr@fontsize@settrue% \ClassWarning{\TUD@Class@Name}% @@ -1037,7 +1038,6 @@ used as class option% }% \TUD@SpecialOptionAtDocument{tud@relspacing@set}% - \FamilyKeyStateProcessed% }% } % \end{macrocode} diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index 436578de..f3cdad49 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -753,6 +753,7 @@ % \begin{macrocode} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{abstract}[true]{% + \FamilyKeyStateUnknownValue% \AtEndOfFamilyOptions{\TUDoptions{abstract=#1}}% } % \end{macrocode} diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index ebd0fad0..37eb9687 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -629,17 +629,17 @@ % \begin{macrocode} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{headings}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } %<*book|report> \DefineFamilyKey{KOMA}{open}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } \DefineFamilyKey{KOMA}{chapterprefix}{% + \FamilyKeyStateUnknownValue% \TUD@SpecialOptionAtDocument{tud@x@scr@headings@reset}% - \FamilyKeyStateProcessed% } % % \end{macrocode} diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 044ed3f0..90a62f49 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -140,11 +140,9 @@ % Warnung ausgegeben. % \begin{macrocode} \DefineFamilyMember{KOMA} -\DefineFamilyKey{KOMA}{titlepage}[true]{% - \TUD@set@numkey{titlepage}{@tempa}{\TUD@bool@numkey,{firstiscover}{2}}{#1}% - \ifx\FamilyKeyState\FamilyKeyStateProcessed% - \AtEndOfFamilyOptions{\tud@titlepage@deactivate}% - \fi% +\DefineFamilyKey{KOMA}{titlepage}{% + \FamilyKeyStateUnknownValue% + \AtEndOfFamilyOptions{\tud@titlepage@deactivate}% } \newcommand*\tud@titlepage@deactivate{% \if@titlepage% From 837924a193775e47c4740c81ac9135d90dab6967 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Tue, 9 Aug 2022 01:28:38 +0200 Subject: [PATCH 22/24] nasty fix for duplicated warnings --- source/tudscr-pagestyle.dtx | 105 ++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 47 deletions(-) diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 966138f2..630a1068 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -1074,7 +1074,7 @@ % von \cs{includegraphics} möglichst gering zu halten. % \begin{macrocode} \newcommand*\tud@newlayerbox[1]{% - \expandafter\newsavebox\csname tud@layer@#1\endcsname% + \global\expandafter\newsavebox\csname tud@layer@#1\endcsname% } \newcommand*\tud@savelayerbox[1]{% \global\expandafter\sbox\csname tud@layer@#1\endcsname% @@ -1088,6 +1088,7 @@ % \end{macro}^^A \tud@newlayerbox % \begin{macro}{\tud@vlayerbox} % \changes{v2.04}{2015/05/31}{neu}^^A +% \changes{v2.06o}{2022/08/08}{unschöner Fix für duplizierte Warnungen}^^A % Für die Ausgabe der Logos und Inhalte wird dieser Befehl definiert. Dieser % setzt die im zweiten Argument angegebenen Inhalte in eine vertikale Box, % deren gewünschte Höhe im ersten Argument angegeben wird. Für den Fall, dass @@ -1097,19 +1098,27 @@ % ergreifen und nicht lediglich eine Meldung einer zu übervollen \cs{vbox} zu % erhalten. % \begin{macrocode} -\newcommand*\tud@vlayerbox[3]{% +\newcommand*\tud@vlayerbox[4][]{% \begingroup% - \setbox\z@\vbox{#2}% - \tud@setdim\@tempdima{\ht\z@+\dp\z@-#1}% - \ifdim\@tempdima>\z@\relax% - \ClassWarning{\TUD@Class@Name}{% - #3\MessageBreak% - The maximum height is exceeded by\MessageBreak% - \the\@tempdima% + \setbox\z@\vbox{#3}% + \tud@setdim\tud@res@glue{\dimexpr\glueexpr#2\relax\relax}% + \ifdim\dimexpr\ht\z@+\dp\z@-\tud@res@glue\relax>\p@\relax% + \edef\tud@res@a{% + \noexpand\ClassWarning{\noexpand\TUD@Class@Name}{% + #4\noexpand\MessageBreak% + The total height of \the\dimexpr\ht\z@+\dp\z@\relax\space exceeds the% + \noexpand\MessageBreak maximum height (\the\tud@res@glue)% + }% + }% + \IfArgIsEmpty{#1}{\tud@res@a}{% + \expandafter\ifx\csname tud@layer@#1@wrn\endcsname\tud@res@a\else% + \tud@res@a% + \global\cslet{tud@layer@#1@wrn}\tud@res@a% + \fi% }% \fi% \endgroup% - \vbox to #1{#2}% + \vbox to #2{#3}% } % \end{macrocode} % \end{macro}^^A \tud@vlayerbox @@ -1607,8 +1616,6 @@ % \changes{v2.02}{2014/06/23}{neu}^^A % \begin{macro}{\tud@headlogo@fileoptions} % \changes{v2.02}{2014/06/23}{neu}^^A -% \begin{macro}{\tud@headlogo@wrn} -% \changes{v2.02}{2014/06/23}{neu}^^A % Diese Befehle dienen zum Einbinden eines möglichen Zweitlogos im Kopf bündig % zum rechten Seitenrand. Mit \cs{headlogo}\oarg{Optionsliste}\marg{Dateiname} % werden der Dateiname und das optionale Argument in \cs{tud@headlogo@filename} @@ -1618,7 +1625,6 @@ % \begin{macrocode} \newcommand*\tud@headlogo@filename{} \newcommand*\tud@headlogo@fileoptions{} -\newcommand*\tud@headlogo@wrn{} \newcommand*\headlogo[2][]{% \tud@comp@clearpage% \renewcommand*\tud@headlogo@filename{#2}% @@ -1630,18 +1636,9 @@ % \begin{macrocode} \global\@tud@headlogo@option@settrue% \global\@tud@footlogo@option@settrue% - \gdef\tud@headlogo@wrn{% - \ClassWarning{\TUD@Class@Name}{% - Secondary logo `\string\headlogo{\tud@headlogo@filename}'\MessageBreak% - is overwritten with DDC logo. Maybe you should\MessageBreak% - use `ddcfoot' or better `ddc' instead of `ddchead'% - }% - \global\let\tud@headlogo@wrn\relax% - }% \tud@comp@resetpagestyle% } % \end{macrocode} -% \end{macro}^^A \tud@headlogo@wrn % \end{macro}^^A \tud@headlogo@fileoptions % \end{macro}^^A \tud@headlogo@filename % \end{macro}^^A \headlogo @@ -1703,6 +1700,15 @@ \or% \tud@ddc@head@num=white \@tempc{DDC-30}{}% \fi% + \ifnum\@tempa>\z@\relax + \ifdefvoid{\tud@headlogo@filename}{}{% + \ClassWarning{\TUD@Class@Name}{% + Secondary logo `\tud@headlogo@filename'\MessageBreak% + is overwritten with DDC logo. Maybe you should\MessageBreak% + use `ddcfoot' or better `ddc' instead of `ddchead'% + }% + }% + \fi% \global\@tud@headlogo@option@setfalse% \fi% } @@ -1711,11 +1717,13 @@ % \end{macro}^^A \tud@headlogo@set % \begin{macro}{\tud@headlogo@use} % \changes{v2.04}{2015/05/31}{neu}^^A +% \begin{macro}{\tud@layer@headlogo@wrn} % Die Ausgabe von \DDC- oder Zweitlogo im Kopf erfolgt mit diesem Makro. Dabei % werden diese in einer Box vertikal zentriert. % \begin{macrocode} +\newcommand*\tud@layer@headlogo@wrn{} \newcommand*\tud@headlogo@use{% - \tud@vlayerbox{\tud@dim@mainlogoheight}{% + \tud@vlayerbox[headlogo]{\tud@dim@mainlogoheight}{% \vss% \hbox{% \tud@ddc@check% @@ -1729,12 +1737,9 @@ }{% The given `\string\headlogo{\tud@headlogo@filename}' is too large.% }% - \ifdefvoid{\tud@headlogo@filename}{}{% - \tud@ddc@check% - \ifnum\@tempa>\z@\relax\tud@headlogo@wrn\fi% - }% } % \end{macrocode} +% \end{macro}^^A \tud@layer@headlogo@wrn % \end{macro}^^A \tud@headlogo@use % % \iffalse @@ -1974,7 +1979,7 @@ % das Makro \cs{tud@footlogo@ddc@set} definiert. % \begin{macrocode} \newcommand*\tud@footlogo@ddc@set[2]{% - \tud@savelayerbox{foot@#1}{% + \tud@savelayerbox{#1}{% \includegraphics[% keepaspectratio,% totalheight=\dimexpr\glueexpr\tud@footlogoheight@dim\relax\relax% @@ -1989,22 +1994,22 @@ \newcommand*\tud@footlogo@option@set{% \tud@footlogoheight@set% \if@tud@footlogo@option@set% - \tud@footlogo@ddc@set{black}{DDC-22}% - \tud@footlogo@ddc@set{HKS41}{DDC-25}% - \tud@footlogo@ddc@set{white}{DDC-28}% + \tud@footlogo@ddc@set{foot@black}{DDC-22}% + \tud@footlogo@ddc@set{foot@HKS41}{DDC-25}% + \tud@footlogo@ddc@set{foot@white}{DDC-28}% \tud@ddc@check% \ifcase\@tempb\relax\or\or% \tud@ddc@foot@num=color - \tud@footlogo@ddc@set{option}{DDC-01}% + \tud@footlogo@ddc@set{foot@option}{DDC-01}% \or% \tud@ddc@foot@num=colorblack - \tud@footlogo@ddc@set{option}{DDC-07}% + \tud@footlogo@ddc@set{foot@option}{DDC-07}% \or% \tud@ddc@foot@num=gray - \tud@footlogo@ddc@set{option}{DDC-19}% + \tud@footlogo@ddc@set{foot@option}{DDC-19}% \or% \tud@ddc@foot@num=black - \tud@footlogo@ddc@set{option}{DDC-22}% + \tud@footlogo@ddc@set{foot@option}{DDC-22}% \or% \tud@ddc@foot@num=blue - \tud@footlogo@ddc@set{option}{DDC-25}% + \tud@footlogo@ddc@set{foot@option}{DDC-25}% \or% \tud@ddc@foot@num=white - \tud@footlogo@ddc@set{option}{DDC-28}% + \tud@footlogo@ddc@set{foot@option}{DDC-28}% \fi% \global\@tud@footlogo@option@setfalse% \global\@tud@footlogo@cmd@settrue% @@ -2015,15 +2020,17 @@ % \end{macro}^^A \tud@footlogo@ddc@set % \begin{macro}{\tud@footlogo@ddc@use} % \changes{v2.04}{2015/06/01}{neu}^^A +% \begin{macro}{\tud@layer@footlogo@wrn} % Die Ausgabe des \DDC-Logos im Fuß erfolgt mit diesem Makro. Dabei wird dieses % in einer Box optisch~-- leicht nach oben verschoben~-- vertikal zentriert. % \begin{macrocode} +\newcommand*\tud@layer@footlogo@wrn{} \newcommand*\tud@footlogo@ddc@use[2]{% \tud@ddc@check% \ifcase\@tempb\relax\else% \tud@ddc@foot@num=!false \tud@footlogo@option@set% \setbox\z@\hbox{% - \tud@vlayerbox{#1}{% + \tud@vlayerbox[footlogo]{#1}{% \vss% \hbox to #2{% \hss% @@ -2035,11 +2042,11 @@ }% \vss\vss% }{% - You should reduce `footlogoheight', because it is\MessageBreak% - too high (\the\dimexpr\tud@footlogoheight@dim\relax). % + You should reduce `footlogoheight', because it is\noexpand\MessageBreak% + too high. % \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside - Alternatively you could use\MessageBreak% - option `extrabottommargin='\MessageBreak% + Alternatively you could use\noexpand\MessageBreak% + option `extrabottommargin='\noexpand\MessageBreak% in order to enlarge the bottom margin. % \fi% }% @@ -2052,6 +2059,7 @@ \fi% } % \end{macrocode} +% \end{macro}^^A \tud@layer@footlogo@wrn % \end{macro}^^A \tud@footlogo@ddc@use % \begin{macro}{\tud@layer@foot@cmd} % \changes{v2.04}{2015/06/01}{neu}^^A @@ -2437,6 +2445,7 @@ % \begin{macro}{\tud@footcontent@use} % \changes{v2.04}{2015/06/01}{neu}^^A % \begin{macro}{\tud@footcontent@@use} +% \begin{macro}{\tud@layer@footcontent@wrn} % Mit \cs{tud@footcontent@use} erfolgt die Ausgabe der mit \cs{footcontent} % definierten Inhalte. Dabei wird darauf geachtet, ob ein \DDC-Logo im Fuß % verwendet wird. Die Ausgabe erfolgt jedoch nur, falls tatsächlich etwas @@ -2444,6 +2453,7 @@ % Breite ausgegeben. Dies ist notwendig, da nachgelagerte Funktionen diese Box % fester Breite erwarten. % \begin{macrocode} +\newcommand*\tud@layer@footcontent@wrn{} \newcommand*\tud@footcontent@use[2]{% \@tempswafalse% \ifx\tud@footcontent@left\@empty% @@ -2468,7 +2478,7 @@ % Inhalt des Fußes in einer vertikalen Box gesetzt. Mit \cs{@tempdimc} wird im % Bedarfsfall der Freiraum für das \DDC-Logo bereitgestellt. % \begin{macrocode} - \tud@vlayerbox{#1}{% + \tud@vlayerbox[footcontent]{#1}{% \linespread{1}% \vss% \hbox to #2{% @@ -2483,12 +2493,12 @@ % Sollte der Inhalt für den Fußbereich zu groß sein, wird eine Warnung erzeugt. % \begin{macrocode} }{% - The content for the footer (`\string\footcontent')\MessageBreak% - is too high. You should either reduce the content\MessageBreak% + The content for the footer (`\string\footcontent')\noexpand\MessageBreak% + is too high. You should either reduce the content\noexpand\MessageBreak% or lower the fontsize via the optional argument.% \ifnum\tud@cdgeometry@num>\@ne% true/symmetric/twoside - \MessageBreak% - Alternatively you can enlarge the bottom margin\MessageBreak% + \noexpand\MessageBreak% + Alternatively you can enlarge the bottom margin\noexpand\MessageBreak% by using option `extrabottommargin'.% \fi% }% @@ -2523,6 +2533,7 @@ \fi% } % \end{macrocode} +% \end{macro}^^A \tud@layer@footcontent@wrn % \end{macro}^^A \tud@footcontent@@use % \end{macro}^^A \tud@footcontent@use % From 92036d73f8d1b484fbd60a47a81683330d8a97ce Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Sat, 6 Aug 2022 00:15:53 +0200 Subject: [PATCH 23/24] TODO --- source/test.tex | 156 +++++++++++++++++++++++++++++++++ source/tudscr-area.dtx | 7 +- source/tudscr-base.dtx | 17 ++-- source/tudscr-color.dtx | 1 + source/tudscr-comp.dtx | 6 +- source/tudscr-doc.dtx | 10 +++ source/tudscr-fields.dtx | 11 +++ source/tudscr-fonts.dtx | 33 ++++++- source/tudscr-frontmatter.dtx | 6 ++ source/tudscr-layout.dtx | 13 ++- source/tudscr-localization.dtx | 5 ++ source/tudscr-manual.dtx | 1 + source/tudscr-mathswap.dtx | 13 ++- source/tudscr-misc.dtx | 16 ++-- source/tudscr-pagestyle.dtx | 7 ++ source/tudscr-supervisor.dtx | 5 ++ source/tudscr-title.dtx | 8 +- source/tudscr-twocolfix.dtx | 4 +- source/tudscrsource.tex | 6 ++ 19 files changed, 295 insertions(+), 30 deletions(-) create mode 100644 source/test.tex diff --git a/source/test.tex b/source/test.tex new file mode 100644 index 00000000..ddc0a8f8 --- /dev/null +++ b/source/test.tex @@ -0,0 +1,156 @@ +\documentclass[ +ngerman, +ddcfoot, +%cdoldfont, +%lgrgreeks, +%cdfont=false, +%cdfont=heavy, +%cdfont=ultrabold +%cdmath=false, +%cdoldfonts, +]{tudscrreprt} +\usepackage{iftex} +\iftutex + \usepackage{fontspec} +\else + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +\fi +\usepackage{babel} +\usepackage[math]{blindtext} +\usepackage{blindtext} + + +\usepackage{isodate} +\usepackage{tudscrsupervisor} + + + + + +%\setlength\footlogoheight{100pt}% + +\def\stuff#1{#1} +%\AddToNoCaseChangeList{\stuff} +\begin{document} + +%\Blinddocument +% +%\MakeUppercase{aaa \stuff{subject} {foo}} +% +%\MakeUppercase{\NoCaseChange{{subject}}{foo}} +% +% +%\end{document} + +\part{Ass} +\chapter*{Ass} + +\makeatletter + +\author{ +Bla +\course{Kurs} +\matriculationnumber{12345678} +\matriculationyear{2020} +\dateofbirth{1.1.1990} +\authormore{addon} +\placeofbirth{Ort} +Blubb +\and +Foo Baz +\course{Kurs} +\matriculationnumber{87654321} +\matriculationyear{2019} +\dateofbirth{1.1.1958} +\placeofbirth{Dorte} +} + + + + + +\title{foo\thanks{aaaaa}} +%\maketitle + + \begin{task}[xxx]% + \minisec{\focusname}\smallskip% + \begin{itemize}\tud@RaggedRight% + \item 2% + \end{itemize}% + \end{task}% + +%\taskform{1}{\item 2} + +\AddToNoCaseChangeList{\thanks} + +%\csmeaning{@uclcnotmath} + +%\pagestyle{plain.tudheadings} + +%\KOMAoptions{chapterprefix} + +%\part{foo} +%\setchaptersubtitle{Text} +%\chapter{A} +%\section{title} +%\subsection{title} +%\subsubsection{title} +%\paragraph{title} +%\subparagraph{title} +%\minisec{title} +%\Blinddocument +% +%\clearpage +%\KOMAoptions{chapterprefix} +%\KOMAoptions{headings=big} +%\setchaptersubtitle{Text} +%\chapter{D} +%\section{title} +%\subsection{title} +%\subsubsection{title} +%\paragraph{title} +%\subparagraph{title} +%\minisec{title} +% +%\clearpage +%\KOMAoptions{headings=standardclasses} +%\setchaptersubtitle{Text} +%\chapter{E} +%\section{title} +%\subsection{title} +%\subsubsection{title} +%\paragraph{title} +%\subparagraph{title} +%\minisec{title} +% +%\clearpage +%\KOMAoptions{headings=normal} +%\setchaptersubtitle{Text} +%\chapter{C} +%\section{title} +%\subsection{title} +%\subsubsection{title} +%\paragraph{title} +%\subparagraph{title} +%\minisec{title} +% +% +% +%\clearpage +%\KOMAoptions{headings=small} +%\setchaptersubtitle{Text} +%\chapter{B} +%\section{title} +%\subsection{title} +%\subsubsection{title} +%\paragraph{title} +%\subparagraph{title} +%\minisec{title} + + + + +%\the\footlogoheight +\end{document} + diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index d1fdd6b6..3b4d623f 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -91,7 +91,7 @@ %^^A\url{http://tex.stackexchange.com/q/248902} %^^A\url{https://wiki.scribus.net/canvas/PDF_Boxes_:_mediabox,_cropbox,_bleedbox,_trimbox,_artbox} %^^A\url{http://www.prepressure.com/pdf/basics/page-boxes} -% }[v2.07] +% }[v2.08] % % \iffalse %<*class&body> @@ -696,6 +696,10 @@ % das Makro \cs{tud@bleedmargin@dim}, welches natürlich auch vom Anwender mit % der Option \opt{bleedmargin} beliebig gesetzt werden kann. Als Standardwert % werden 5\% der größten Randbreite gesetzt. +% \ToDo{^^A% +% Was genau ist der Unterschied zwischen cropmargin und bleedmargin? +% Wo kommt der Standardwert her? Sinnvoll für Standardklassen? +% }[v2.07]^^A % \begin{macrocode} \newcommand*\tud@bleedmargin@dim{.2in} \TUD@key{bleedmargin}{% @@ -1526,6 +1530,7 @@ }% % \end{macrocode} % Und nun für den benutzerdefinierten Satzspiegel. +% \ToDo{Angabe von BCOR zerschießt den gewünschten Satzspiegel}[v2.07] % \begin{macrocode} \else% custom \ifGm@pass\else% diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index ebacc75b..01ddc24f 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -94,12 +94,12 @@ % \ToDo{ % Schnittstelle äquivalent zu \cs{KOMA@kav@...}? Dann hierfür % \pkg{etoolbox}-Listen und \cs{listadd} sowie \cs{listremove} nutzen -% }[v2.??] +% }[v2.08] % \ToDo{ % Teile im Quelltext suchen, die nur einmalig durchlaufen werden müssen % (bspw. notwendige Pakete und Schriften) und über aux-Eintrag abkürzen?! % siehe \cs{TUD@CheckPackage} -% }[v2.??] +% }[v2.07] %^^A\BeforeClosingMainAux{% %^^A \if@tud@xxx\if@filesw% %^^A \immediate\write\@mainaux{% @@ -306,10 +306,10 @@ % % Hier werden Makros definiert, die allein für die interne temporäre Nutzung % gedacht sind. -% \ToDo{sämtliche \cs{@temp...}-Makros auf \cs{tud@res@...} ändern}[v2.??] -% \ToDo{\cs{tud@reserved} in \cs{tud@res@...}, Achtung bei Dopplungen!}[v2.??] -% \ToDo{Schlüssel sollten weiterhin \cs{@temp...}-Makros verwenden}[v2.??] -% \ToDo{Makros mit \val{@num} in count ändern}[v2.??] +% \ToDo{sämtliche \cs{@temp...}-Makros auf \cs{tud@res@...} ändern}[v2.07] +% \ToDo{\cs{tud@reserved} in \cs{tud@res@...}, Achtung bei Dopplungen!}[v2.07] +% \ToDo{Schlüssel sollten weiterhin \cs{@temp...}-Makros verwenden}[v2.07] +% \ToDo{Makros mit \val{@num} in count ändern}[v2.07] % \begin{macro}{\tud@reserved} % \changes{v2.05}{2015/10/27}{neu}^^A % \begin{macro}{\tud@res@a} @@ -698,6 +698,7 @@ % % Der Befehl \cs{tud@cs@letltx} nutzt intern \cs{LetLtxMacro} aus dem Paket % \pkg{letltxmacro}, um auch robust definierte Befehle korrekt zu sichern. +% \ToDo{Kernel stellt mittlerweiele \cs{NewCommandCopy} bereit}[v2.07] % \begin{macrocode} \newcommand*\tud@cs@letltx[2]{% \expandafter\expandafter\expandafter\LetLtxMacro% @@ -862,6 +863,7 @@ % um mit den Makros (\cs{[x]apptocmd}, \cs{[x]pretocmd}, \cs{[x]patchcmd}) % bereits definierte Befehle anzupassen. Falls dies nicht gelingt, wird eine % Warnung ausgegeben, die hier definiert wird. +% \ToDo{generelle Schnittstelle schaffen und failure hier behandeln}[v2.07] % \begin{macrocode} \newcommand*\tud@patch@wrn[1]{% \PackageWarning{tudscrbase}{% @@ -1700,6 +1702,7 @@ % zu laden. Ist das Paket gar nicht installiert, wird durch den Aufruf von % \cs{RequirePackage} ein Fehler erzeugt respektive MiKTeX zur automatischen % Nachinstallation animiert. +% \ToDo{.aux schreiben, wenn existent und so ggf. nur einmalig ausführen}[v2.07] % \begin{macrocode} \newcommand*\TUD@CheckPackage[2]{% \tud@if@packagelater@exists{#1}{#2}{}{% @@ -1717,6 +1720,8 @@ % vorhanden ist, ohne dieses zu laden. Hierfür wird die Datei zeilenweise % gelesen, bis der Eintrag \cs{ProvidesPackage}\marg{Paketname}\oarg{Version} % gefunden wird. +% \ToDo{kann \cs{@ifl@t@r} ersetzt werden?}[v2.07] +% \ToDo{Name in \cs{IfPackageExistsAtLeastTF} ändern}[v2.07] % \begin{macrocode} \newcommand*\tud@if@packagelater@exists[2]{% \begingroup% diff --git a/source/tudscr-color.dtx b/source/tudscr-color.dtx index a2695588..a9a564d4 100644 --- a/source/tudscr-color.dtx +++ b/source/tudscr-color.dtx @@ -106,6 +106,7 @@ % Das Paket kann entweder mit einfachen, für \TUDScript ausreichenden oder % erweiterten Farbdefinitionen geladen werden. Letztere definieren zusätzliche % Farbbezeichnungen für die Kompatibilität zu alten TUD-Klassen. +% \ToDo{Optionen oldcolors und colormodel mit key-value-interface!}[v2.07] % \begin{macrocode} \DeclareOption{newcolors}{\let\tud@setcolors@add\relax} \DeclareOption{reduced}{\let\tud@setcolors@add\relax} diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 9331bc90..7ad26e66 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -1043,6 +1043,7 @@ % \begin{macro}{\tud@ifdin} % \changes{v2.06}{2018/08/02}{neu}^^A % Der Befehl \cs{ifdin} ist für \OpenSans hinfällig. +% \ToDo{ifdin nicht mehr definieren, Alternativ (IfDIN[active][TF])?}[v2.07] % \begin{macrocode} \TUD@deprecated@cs{ifdin}{@secondoftwo} % \end{macrocode} @@ -1623,7 +1624,7 @@ % zu umgehen. Sei's drum. Für die Umsetzung werden die Basisgliederungsbefehle % geklont und anschließend der gewünschte vertikale Abstand vor der Überschrift % entfernt. -% \ToDo{Klonen Gliederungsebenen über Makro (Markus fragen?!)}[v2.??] +% \ToDo{Klonen Gliederungsebenen über Makro (Markus fragen?!)}[v2.08] % \begin{macrocode} \newcommand*\topsectionnumdepth{\sectionnumdepth} \newcommand*\scr@topsection@sectionindent{\scr@section@sectionindent} @@ -1780,7 +1781,7 @@ % \changes{v2.05}{2016/04/17}{neu}^^A % Nun geht es an das Makro \cs{schnittrand}. Zur Intension dieses Befehls gab % es im \GitHubRepo(tud-cd/tud-cd)<6> bereits eine angeregte Diskussion. -% \ToDo{Für \cls{tudscrposter} übernehmen?}[v2.07] +% \ToDo{Für \cls{tudscrposter} bzw alle Klassen übernehmen?}[v2.07] % \begin{macrocode} \tud@comp@on@poster@class{% \newcommand*\tud@cropmargin@set{}% @@ -2353,6 +2354,7 @@ % Die Klasse \cls{tudmathposter} lädt für die Einstellungen der Schriften das % Paket \pkg{tudfonts}. Wenn \pkg{tudscrfonts} zum Einsatz kommen soll, ist das % unerwünscht, weshalb das Laden hiermit unterbunden wird. +% \ToDo{opensans nur durch Dokumentklasse nicht laden}[v2.07] % \begin{macrocode} \newcommand*\tud@x@tudfonts@prevent{% \newif\if@tudfonts@nodin% diff --git a/source/tudscr-doc.dtx b/source/tudscr-doc.dtx index 692aca75..239d0282 100644 --- a/source/tudscr-doc.dtx +++ b/source/tudscr-doc.dtx @@ -1329,6 +1329,12 @@ % \begin{macro}{\actualchar} % \begin{macro}{\quotechar} % \begin{macro}{\levelchar} +% \ToDo{äquivalent zu tudscrmanual.cls; shell-escape raus, via makefile}[v2.07] +% \begin{macrocode} +%^^A\BeforeClosingMainAux{% +%^^A\immediate\closeout\@indexfile% +%^^A\immediate\closeout\@glossaryfile% +% \end{macrocode} % Damit die erzeugten Dateien für Index und Änderungsliste von \app{texindy} % verarbeitet werden können, müssen einige Steuerzeichen in der originalen % \file{.ind}-Datei getauscht werden. Dafür wird diese zeilenweise eingelesen, @@ -1438,6 +1444,10 @@ \fi% \fi % \end{macrocode} +% \ToDo{äquivalent zu tudscrmanual.cls}[v2.07] +% \begin{macrocode} +%^^A} +% \end{macrocode} % \end{macro}^^A \levelchar % \end{macro}^^A \quotechar % \end{macro}^^A \actualchar diff --git a/source/tudscr-fields.dtx b/source/tudscr-fields.dtx index c2fa12bf..541b29b9 100644 --- a/source/tudscr-fields.dtx +++ b/source/tudscr-fields.dtx @@ -96,6 +96,9 @@ % Hiermit wird der Inhalt des im zweiten (obligatorischen) Argument namentlich % genannten Feldes in die im ersten (optionalen) Argument gegebene Anweisung % expandiert. +% \ToDo{getfield für thesis etc. überarbeiten}[v2.07] +% \ToDo{getfield nur für festgelegte Felder (Liste) zulassen}[v2.07] +% \ToDo{Ausgabe von definition und expandierte Version unterscheiden}[v2.07] % \begin{macrocode} \newcommand*\getfield[2][\@firstofone]{% \begingroup% @@ -272,6 +275,7 @@ % Die Ausgabe einer zusätzlichen Zeile mit \cs{authormore}\marg{Textzeile} % direkt unterhalb der Angabe des Autors auf der Titelseite, wird im Makro % \cs{@authormore} gespeichert. +% \ToDo{Anrede als optionales Argument?}[v2.07] % \begin{macrocode} \newcommand*\@@author{} \renewcommand*\author[1]{% @@ -439,6 +443,7 @@ % gesucht. Bei einem Treffer wird der entsprechende Bezeichner für dieses Feld % gesetzt. In \cs{@@subject} beziehungsweise \cs{@@thesis} wird der gegebene % oder substituierte Inhalt ohne etwaige Fußnoten gespeichert. +% \ToDo{Option thesis}[v2.07] % \begin{macrocode} \newcommand*\@thesis{} \newcommand*\@@thesis{} @@ -724,6 +729,7 @@ % \begin{macro}{\tud@webpage@hyper} % \changes{v2.05}{2016/07/09}{neu}^^A % Im Fußbereich eines Posters kann zusätzlich eine Web-Seite angegeben werden. +% \ToDo{auch für notice in tudscrsupervisor}[v2.07] % \begin{macrocode} \newcommand*\@webpage{} \newrobustcmd*\webpage[2][]{% @@ -765,6 +771,11 @@ % geladen sein, so verwendet der Befehl die Schnittstelle von \pkg{datetime2}, % welches nur ein spezielles Datenformat als Eingabe akzeptiert. Wird keines % der beiden Pakete verwendet, wird das Argument direkt durchgereicht. +% \ToDo{^^A +% direkt auf datetime2 matchen? was, wenn beide Pakete geladen?^^A +% \cs{localedate} von \pkg{babel} gibt es auch noch... +% }[v2.07] +% \ToDo{Angabe eines leeren Datums ermöglichen: gh/55}[v2.07] % \begin{macrocode} \TUD@UnwindPackage{isodate}{% \@ifpackageloaded{datetime2}{% diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index 952b337c..db542b3e 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -202,6 +202,7 @@ % wird geprüft, ob diesem mit den entsprechenden Optionen das Bereitstellen der % Mathematikschriften überlassen wurde. In diesem Fall wird eine entsprechende % Warnung an \cs{tud@cdmath@wrn} angehängt. +% \ToDo{\cs{IfPackageAtLeastTF} oder ganz raus}[v2.07] % \begin{macrocode} \tud@newif\if@tud@x@fontspec@enabled \PassOptionsToPackage{no-math}{fontspec} @@ -246,6 +247,7 @@ % Bei der Nutzung des Pakets \pkg{unicode-math} kann es ebenfalls zu Problemen % mit den mathematischen Schriften kommen, weshalb auch hier eine Warnung an % \cs{tud@cdmath@wrn} angehängt wird. +% \ToDo{Paket \pkg{unicode-math} zumindest rudimentär unterstützen?}[v2.07] % \begin{macrocode} \AfterPackage*{unicode-math}{% \appto\tud@cdmath@wrn{% @@ -268,6 +270,9 @@ % \changes{v2.04}{2015/04/24}{Erkennung des Paketes \pkg{mweights}}^^A % Das Paket \pkg{mweights} wird geladen, um unterschiedliche Schriftschnitte % für beispielsweise die TypeWriter-Schriften nutzen zu können. +% \ToDo{Paket \pkg{mweights} wurde in Kernel integriert}[v2.07]% +% \ToDo{an neues NFSS anpassen, \cs{DeclareFontSeriesDefault} nutzen}[v2.07]% +% \ToDo{ist \cs{IfFontSeriesContextTF} irgendwo nötig?}[v2.07]% % \begin{macrocode} \TUD@RecommendPackage{mweights}[2017/03/30]% \tud@newif\if@tud@x@mweights@enabled @@ -1483,6 +1488,7 @@ % \begin{macro}{\tud@cdfont@declare@textsymb} % \changes{v2.06g}{2020/06/18}{neu}^^A % Die Definition der Textsymbole für die \val{TS1}-Kodierung. +% \ToDo{weitere Symbole (\cs{textohm} etc.) der Open Sans hinzufügen}[v2.07] % \begin{macrocode} \newcommand*\tud@cdfont@declare@textsymb{% \tud@cdfont@declare@symb{textleftarrow}{TS1}{iwona}{24}% @@ -1626,6 +1632,7 @@ % Auswahl der Schriften des \CDs verwendet. Dabei erfolgt die Definition der % Schriften selbst mit \cs{tud@cdfont@@init} und das Festlegen der Befehle zur % expliziten Schriftauswahl mit \cs{tud@cdfont@@@init}. +% \ToDo{Condensed Schriften mit neuer Open Sans?}[v2.07] % \begin{macrocode} \newcommand*\tud@cdfont@init{% \tud@cdfont@@init% @@ -2441,6 +2448,9 @@ % gesichert und neu definiert werden, weil diese ggf. von anderen Paketen % umdefiniert werden. Bspw. \cs{the}\cs{mathcode`!} % }[v2.07] +% \ToDo{cdmath=disabled; s. \protecting{\GitHubRepo<45>; \Forum<511>}}[v2.07] +% \ToDo{griech. Lettern als Symbole (nicht tudupgrk/tuditgrk); boldmath}[v2.07] +% \ToDo{inverse Suche: \protecting{\Forum<539>}}[v2.07] % \begin{macrocode} \tud@locked@newbool{@tud@cdmath@active} \tud@locked@bool@preset{@tud@cdmath@active}{true}% @@ -2945,6 +2955,7 @@ % sind aber nicht vollends stimmig. Der erste funktioniert nicht, sobald der % Anwender \val{-interaction-mode} selbst definiert und für den zweiten müssen % zumindest eingeschränkte Schreibrechte zwingend aktiviert sein. +% \ToDo{cmr nicht zwingend notwendig}[v2.07]%^^A nur wenn \@tud@lgrgreekstrue % \begin{macrocode} \@tud@res@swafalse% \if@tud@cdmath@fam@exist% @@ -3009,7 +3020,14 @@ defaultrm,defaultbf,defaultit,defaultsf,defaulttt% }{mathastext}% \RequirePackage{mathastext}[2018/08/22]% +% \end{macrocode} +% \ToDo{cmr nicht notwendig}[v2.07]%^^A {\tud@cdfont@fam}{m}{b}{n}{it}% +% \begin{macrocode} +%^^A \if@tud@lgrgreeks \tud@math@declare@lgrgreeks{cmr}{m}{bx}{n}{it}% +%^^A \else +%^^A \tud@math@declare@lgrgreeks{\tud@cdfont@fam}{m}{b}{n}{it}% +%^^A \fi \fi% \providecommand*\MTDeclareVersion[6][]{\DeclareMathVersion{##2}}% \tud@cdmath@@init% @@ -3017,7 +3035,7 @@ % Die Symbole für aufrechte und kursive griechische Lettern werden definiert. % Da im Paket \pkg{opensans} keine mathematischen Schriftkodierungen enthalten % sind, wird in diesem Fall auf die LGR-Kodierung zurückgegriffen. -% \ToDo{kann mit \pkg{opensans-math} raus}[v2.??] +% \ToDo{könnte mit \pkg{opensans-math} raus}[v2.08] % \begin{macrocode} \if@tud@cdoldfont@active% \tud@res@cnt=\z@\relax% @@ -3187,7 +3205,7 @@ % sich anbieten, die OML-Kodierung ähnlich zu \pkg{euler[vm]} auf eine % U-Kodierung zu erweitern und aufrechte griechische Lettern einzubinden, um % ein Alphabet zu sparen. Siehe Kodierungen FML/FMS, LML/LMS, LBL/LBS, LS1/LS2 -% }[v2.??] +% }[v2.08] % \begin{macrocode} \SetSymbolFont{letters}{#1}{OML}{iwona}{#4}{it}% \SetSymbolFont{letters}{#2}{OML}{iwona}{#5}{it}% @@ -3269,6 +3287,7 @@ % Wurde ein Paket geladen, welches die \pkg{amsfonts}-Schriftfamilie definiert, % so wird bei der Verwendung von \OpenSans eine Information ausgegeben, dass im % Zweifel das Paket \pkg{mdsymbol} besser zu den Schriften des \CDs passt. +% \ToDo{hinweis zu mdsymbol raus, bzw. Laden verzögern!}[v2.07] % \begin{macrocode} \else% \@ifpackageloaded{mdsymbol}{}{% @@ -3546,7 +3565,7 @@ % welche die von \cs{tud@cdmath@declare@symb} und \cs{tud@cdmath@declare@char} % erzeugten Listen \cs{tud@cdmath@symb@list} und \cs{tud@cdmath@char@list} % nutzen. -% \ToDo{Kodierungen \val{LS1/LS2}; siehe \pkg{stix,libertinust1math}}[v2.??] +% \ToDo{Kodierungen \val{LS1/LS2}; siehe \pkg{stix,libertinust1math}}[v2.08] % \begin{macro}{\tud@cdmath@declare@greek@uc} % \changes{v2.04}{2015/03/10}{neu}^^A % Hiermit werden die Auswahlbefehle für Majuskeln der der griechischen Lettern @@ -3572,7 +3591,7 @@ % weshalb der Eintrag |\up|\meta{Letter} in \cs{tud@cdmath@symb@list} gesetzt % wird, was mit einem fehlenden |\tud@cdmath@symbol@|\meta{Letter} zu einem % undefinierten |\up|\meta{Letter} bei \opt{cdmath=true} führt. -% \ToDo{falls irgendwann erweiterte OML-Kodierung existiert, dann nutzen}[v2.??] +% \ToDo{falls irgendwann erweiterte OML-Kodierung existiert, dann nutzen}[v2.08] % \begin{macrocode} %^^A \tud@cdmath@declare@symb{it##1}{\mathalpha}{letters}% %^^A {\the\numexpr\tud@res@cnt+128\relax}% @@ -3737,6 +3756,9 @@ \tud@math@loop@greeks@lc\tud@math@slanted@greeks% \fi% \else% +% \end{macrocode} +% \ToDo{\opt{slantedgreek} auswerten?}[v2.07] +% \begin{macrocode} \tud@cs@restore{mv@normal}% \tud@cs@restore{mv@bold}% \tud@cdmath@symbols@reset% @@ -4185,6 +4207,9 @@ % mathematischen Satz nun endlich gesetzt. % \begin{macrocode} \AtBeginDocument{\tud@math@set}% +% \end{macrocode} +% \ToDo{Hook definieren, um Anwender eigenen Kram definieren zu lassen}[v2.07] +% \begin{macrocode} } % \end{macrocode} % diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index f3cdad49..9e81d5d2 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -785,6 +785,8 @@ % zurückgegriffen. Damit ist es möglich, gezielt auf den Inhalt der Umgebung % selbst mit dem Befehl \cs{BODY} zuzugreifen. Dieser Mechanismus wird % innerhalb von \cs{tud@abstractbody} verwendet. +% \ToDo{parameter title, um \cs{abstractname} lokal zu ändern}[v2.07] +% \ToDo{eher NewDocumentEnvironment nutzen?}[v2.07] % \begin{macrocode} %<*report|article|poster> \undef\abstract @@ -899,6 +901,7 @@ % oder eine alternative Sprache angegeben werden. Für die Auswertung des % Argumentes verantwortlich ist der Befehl \cs{TUD@parameter@handler@default}, % welcher auch von der Umgebung \env{tudpage} verwendet wird. +% \ToDo{unbekannte Schlüssel als Werte an \prm{abstract}}[v2.07]^^A % \begin{macrocode} \TUD@parameter@handler@default{}% } @@ -1122,6 +1125,7 @@ % \cs{confirmation} und \cs{blocking}. Die Schlüssel \opt{declaration} bzw. % \opt{option} dienen zum Setzen der Werte, welche auch als Klassenoptionen % gesetzt werden können. +% \ToDo{unbekannte Schlüssel als Werte an \prm{declaration}}[v2.07]^^A % \begin{macrocode} \TUD@parameter@family{declaration}{% \TUD@parameter@def{language}{\selectlanguage{#1}}% @@ -1255,6 +1259,7 @@ % Damit das optionale Argument ohne Schlüssel für die Unterstützer verwendet % werden kann, wird der Handler lokal umdefiniert. Außerdem werden irrelevante % Parameter undefiniert gesetzt. +% \ToDo{Schlüssel \prm{confirmation} als Alias für \prm{declaration}}[v2.07]^^A % \begin{macrocode} \begingroup% \TUD@parameter@handler@default[declaration]{supporter}% @@ -1288,6 +1293,7 @@ % \changes{v2.02}{2014/07/18}{neu}^^A % Für den Sperrvermerk wird äquivalent zu \cs{confirmation} verfahren. Das % optionale Argument ohne Schlüssel setzt hier die Firma für den Sperrvermerk. +% \ToDo{Schlüssel \prm{blocking} als Alias für \prm{declaration}}[v2.07]^^A % \begin{macrocode} \newcommand*\blocking[1][]{% \begingroup% diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index 37eb9687..bffee4c3 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -587,6 +587,10 @@ % \changes{v2.06}{2018/08/20}{neu}^^A % Die Option wird dahingehend erweitert, dass die Überschriften auch im % extra-fetten Schnitt gesetzt werden können. +% \ToDo{% +% Klassenoptionen paper=A4 und headings=optiontoheadandtoc durchreichen, +% wenn mit \cs{PassOptionsToClass} genutzt. +% }[v2.07] % \begin{macrocode} \tud@newif\if@tud@heavyheadings \TUD@key{headings}{% @@ -783,6 +787,7 @@ % \changes{v2.06o}{2022/08/02}{neu}^^A % Mit \cs{tud@sec@fontface} wird die Schriftart für Überschriften im % Layout des \CDs definiert. +% \ToDo{Auf neues NFSS anpassen, \cs{fontseriesforce} überprüfen}[v2.07] % \begin{macrocode} %\AfterPackage{tudscrfonts}{% \newcommand*\tud@sec@fontface[1][]{\tud@sec@@fontface{#1}}% @@ -945,7 +950,8 @@ % dass die Optionen auch im Dokument geändert und wiederhergestellt werden % können. % \ToDo{\cs{...pagecolor} und {\cs{...fontcolor} (part/chapter/title)}}[v2.07] -% \ToDo{Schriftfarbauswahl in \cs{tud@cd@process}}[v2.07] +% \ToDo{Farbauswahl in \cs{tud@cd@process} bzw. \KOMAScript{} do-hooks}[v2.07] +% \ToDo{Überschriften paragraph und subparagraph in Open Sans}[v2.07] % \begin{macrocode} \newcommand*\tud@cd@process{% % \end{macrocode} @@ -1542,6 +1548,7 @@ % % Für die \cls{tudscrartcl}-Klasse wird der vertikale Standardabstand % beibehalten und lediglich die Farbanpassung hinzugefügt. +% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07] % \begin{macrocode} %<*article|poster> \newcommand*\tud@partheadstartvskip{} @@ -1688,6 +1695,7 @@ % \CD angepasst. Mit der Option \opt{headingsvskip} kann diese vertikal durch % den Benutzer verschoben werden. Außerdem werden die benötigten Farben für die % jeweils gewählte Option ausgewählt. +% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07] % \begin{macrocode} \AddtoDoHook{heading/preinit/chapter}{ \if@tud@chapterpage% @@ -1745,6 +1753,7 @@ % der Kapitel durch die beiden Haken \cs{tud@chapter@before@hook} sowie % \cs{tud@chapter@after@hook}, den Start und das Ende der Gliederungsbefehle % für Kapitel definieren. +% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07] % \begin{macrocode} \newcommand*\tud@chapter@pre{% \if@tud@chapterpage% @@ -1858,6 +1867,7 @@ % Die beiden Haken \cs{tud@chapter@before@hook} und \cs{tud@chapter@after@hook} % werden den \KOMAScript-Befehlen hinzugefügt, welche den Start und das Ende % der Gliederungsbefehle für Kapitel definieren. +% \ToDo{in \cs{AddtoDoHook} migrieren}[v2.07] % \begin{macrocode} \newcommand*\tud@chapter@before@hook{} \newcommand*\tud@chapter@after@hook{} @@ -1885,6 +1895,7 @@ % % Die Farbwahl wird einfach in dem von \KOMAScript{} bereitgestellten Haken % zu Beginn einer Abschnittsüberschrift ausgeführt. +% \ToDo{use AddtoDoHook{heading/postinit}}[v2.07] % \begin{macrocode} \At@startsection{% \renewcommand*\tud@section@fontcolor{}% diff --git a/source/tudscr-localization.dtx b/source/tudscr-localization.dtx index 56330fa4..7fb8a850 100644 --- a/source/tudscr-localization.dtx +++ b/source/tudscr-localization.dtx @@ -146,6 +146,7 @@ % \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A % \begin{localization}{\blockingname} % \changes{v2.02}{2014/05/16}{neu, \cs{restrictionname} umbenannt}^^A +%\ToDo{https://tu-dresden.de/bu/verkehr/studium/studienangebot/dipl\_viw/studentische-arbeiten-studien-diplom-und-masterarbeiten}[v2.07] % \begin{localization}{\blockingtext} % \changes{v2.02}{2014/05/16}{neu, \cs{restrictiontext} umbenannt}^^A % \changes{v2.02}{2014/11/05}{Korrektur bei der Verwendung von \cs{@@title}}^^A @@ -513,6 +514,10 @@ % müssen als Argumente der Bezeichnerbefehl selbst sowie die dazugehörige % Definition angegeben werden. Intern wird dabei \cs{providecaptionname} % verwendet. +% \ToDo{\cs{renewcaptionname} geht nur nach \cs{begin}\marg{document}?}[v2.07] +% \ToDo{\cs{tud@localization@...} mit \cs{defcaptionname}}[v2.07] +% \ToDo{\cs{tud@localization}\marg{csvmacro}}[v2.07] +% \ToDo{Anwenderbefehl \cs{[tud]renewgermancaptionname}?}[v2.07] % \begin{macrocode} \newcommand*\tud@localization@german{% \providecaptionname{% diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index 38ae4c7d..cd8cd875 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -2072,6 +2072,7 @@ % Ü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} \tud@newif\if@tud@disposition \newcommand*\ifdisposition{% diff --git a/source/tudscr-mathswap.dtx b/source/tudscr-mathswap.dtx index 79cbe339..3c1ee0e3 100644 --- a/source/tudscr-mathswap.dtx +++ b/source/tudscr-mathswap.dtx @@ -89,13 +89,12 @@ % \changes{v2.02}{2014/08/18}{\pkg{mathswap}: Schalter zum Aktivieren und % Deaktivieren der Funktionalität}^^A % -% \ToDo{Als eingenständiges Paket herauslösen}[v2.??] -% \ToDo{Paket entfernen, Funktionalität mit AfterPackage{ionumbers}}[v2.??] -% \ToDo{Vergleich mit \pkg{ionumbers}, ist \pkg{mathswap} notwendig?}[v2.??] -% \ToDo{Allgem. Bezeichnungen englisches/deutsches Format?}[v2.??] -% \ToDo{Sprachabhängige Einstellungen in Paket und aus Klassen raus}[v2.??] -% \ToDo{Makro(s)/Key-Value zum Festlegen von Eingabe- und Ausgabeformat}[v2.??] -% \ToDo{Inhalte von \file{mathswap.tex} hier rein}[v2.??] +% \ToDo{Vergleich mit \pkg{ionumbers}, ist \pkg{mathswap} notwendig?}[v2.08] +% \ToDo{eingenständiges Paket oder via AfterPackage{ionumbers}?}[v2.08] +% \ToDo{Allgem. Bezeichnungen englisches/deutsches Format?}[v2.08] +% \ToDo{Sprachabhängige Einstellungen in Paket und aus Klassen raus}[v2.08] +% \ToDo{Makro(s)/Key-Value zum Festlegen von Eingabe- und Ausgabeformat}[v2.08] +% \ToDo{Inhalte von \file{mathswap.tex} hier rein}[v2.08] % % % diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index 0b7adeb7..c6158464 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -114,6 +114,8 @@ % Für die Titelseite werden~-- wie auch durch das Paket \pkg{hyperref}~-- die % Fußnoten mit dem Befehl \cs{tud@x@hyperref@realfootnotes} auf den originalen % Zustand zurückgesetzt. +% \ToDo{nur als internen Befehl definieren, dazugehörige Option nötig?}[v2.07] +% \ToDo{\cs{tud@x@hyperref@realfootnotes} prüfen}[v2.07] % \begin{macrocode} \newcommand*\tudbookmark[1][]{\@gobbletwo} \newcommand*\tud@x@hyperref@realfootnotes{} @@ -905,6 +907,7 @@ % \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}% @@ -1038,6 +1041,7 @@ % \begin{macro}{\@pnumwidth} % \begin{macro}{\@tocrmarg} % Etwas mehr Platz im Inhaltsverzeichnis für die Seitenzahlen. +% \ToDo{direkt in die Klassen übernehmen}[v2.07] % \begin{macrocode} \renewcommand*\@pnumwidth{2.1em} \renewcommand*\@tocrmarg{3.1em} @@ -1196,14 +1200,14 @@ % \changes{v2.02}{2014/08/16}{neu}^^A % Auszeichnungsbefehle für Verweise auf ein GitHub-Repository. % \begin{macrocode} -\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !d<>}{% +\NewDocumentCommand\GitHubRepo{!s !t' !O{releases} !D(){tud-cd/tudscr} !d<>}{% \IfBooleanTF{#1}{\toks@{\href}}{\toks@{\hrfn}}% \IfBooleanT{#2}{\toks@{\url}}% - \def\@tempa{https://github.com/tud-cd/tudscr/}% - \edef\@tempa{{\@tempa\IfValueTF{#4}{issues/#4}{#3}}}% - \eaddto@hook\toks@{\@tempa}% + \def\@tempa{https://github.com/#4/}% + \edef\@tempa{{\@tempa\IfValueTF{#5}{issues/#5}{#3}}}% + \addto@hook@expandafter\toks@{\@tempa}% \IfBooleanF{#2}{% - \addto@hook\toks@{{\tud@english{GitHub-Repository~\textsbn{tudscr}}}}% + \addto@hook\toks@{{\tud@english{GitHub-Repository~\textsbn{#4}}}}% }% \the\toks@\xspace% } @@ -1243,7 +1247,7 @@ \IfBooleanT{#2}{\toks@{\url}}% \def\@tempa{http://latex.wcms-file3.tu-dresden.de/phpBB3/}% \edef\@tempa{{\@tempa\IfValueT{#4}{viewtopic.php?t=#4}}}% - \eaddto@hook\toks@{\@tempa}% + \addto@hook@expandafter\toks@{\@tempa}% \IfBooleanF{#2}{\addto@hook\toks@{{#3}}}% \the\toks@\xspace% } diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 630a1068..860210bf 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -100,6 +100,8 @@ % Ist die Klasse \cls{standalone} zusammen mit der Option \opt{crop} aktiv, % werden die Seitenränder auf die Einstellungen dieser Klasse gesetzt und das % Laden von \pkg{scrlayer-scrpage} verhindert. +% \ToDo{Setzen der Boxen mit \cs{tud@vlayerbox} komplett überarbeiten}[v2.07] +% \ToDo{lazy init der Boxen für Grafiken?}[v2.07] % \begin{macrocode} \if@tud@x@standalone@crop \PreventPackageFromLoading{scrlayer-scrpage}% @@ -1622,6 +1624,7 @@ % bzw. \cs{tud@headlogo@fileoptions} gespeichert, damit diese später bei der % tatsächlichen Verwendung des Logos mit dem Makro \cs{tud@headlogo@set} an den % Befehl \cs{includegraphics} weitergereicht werden können. +% \ToDo{angehängte Parameterliste \val{:} für tudpage unterstützen}[v2.07] % \begin{macrocode} \newcommand*\tud@headlogo@filename{} \newcommand*\tud@headlogo@fileoptions{} @@ -1910,6 +1913,7 @@ % vom Anwender mit dem Befehl \cs{footlogo} angegebene Logos~-- zentral % festzulegen. Dabei wird der gewünschte Wert in \cs{tud@footlogoheight@dim} % abgelegt. Ist dieser \val{0pt}, wird die Höhe des Loogs der \TnUD genutzt. +% \ToDo{\cs{tud@footlogoheight@dim} sollte raus, ergibt keinen Sinn}[v2.07] % \begin{macrocode} %<*option> \newcommand*\tud@footlogoheight@dim{0pt} @@ -2144,6 +2148,7 @@ % für einzelne Logos möglich sein. Zu diesem Zweck wird die Schnittstelle für % den Anwender so gestaltet, dass individuelle Parameter mit einem Doppelpunkt % direkt an den Dateinamen angehangen werden können. +% \ToDo{\cs{DeclareListParser} außerhalb global definieren}[v2.07] % \begin{macrocode} \let\@tempa\@empty% \let\@tempb\@empty% @@ -2677,6 +2682,7 @@ % Umgebung wird nache einem weiteren Seitenumbruch das Standardseitenlayout % wiederhergestellt. Die gewünschte Sprache der Umgebung kann als einzelner % Wert ohne Schlüssel angegben werden. +% \ToDo{Umgebung raus? Auf alle Fälle cdgeometry=... etc. unterstützen}[v2.07] % \begin{macrocode} \newcommand*\tud@envir@ps{tudheadings} \newcommand*\tud@envir@selectps{% @@ -2714,6 +2720,7 @@ % \end{macrocode} % Um beim Umschalten des Seitenstils den aktuellen selbst zu behalten, wird % dieser im Hilfsmakro \cs{tud@currentpagestyle@value} gespeichert. +% \ToDo{eher NewDocumentEnvironment nutzen?}[v2.07] % \begin{macrocode} \tud@currentpagestyle@set% \clearpage% diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index 9c5d211e..44fde50f 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -102,6 +102,9 @@ % Diesen beiden Makros dienen dazu, unterschiedliche Varianten für die Ausgabe % innerhalb der nachfolgenden Umgebungen generieren zu können. Momentan werden % diese nur innerhalb der \env{task}-Umgebung verwendet. +% \ToDo{ +% Definition von \cs{tud@multiple@fields@style} mit \cs{FamilyNumericalKey} +% }[v2.07] % \begin{macrocode} \newcommand*\tud@multiple@fields@output{} \newcommand*\tud@multiple@fields@style{table} @@ -278,6 +281,7 @@ % \end{macrocode} % Die \env{tudpage}-Umgebung wird geöffnet. Mit dem Parameter \opt{headline} % kann die standardmäßige Überschrift überschrieben werden. +% \ToDo{style=table/inline mit \cs{FamilyNumericalKey}}[v2.07] % \begin{macrocode} \cleardoubleoddpage% \let\@headline\@empty% @@ -373,6 +377,7 @@ % Dies soll die Standardform einer Aufgabenstellung sein. Im ersten Argument % werden kurz die Ziele motiviert und erläutert, im zweiten Argument werden im % besten Fall die Schwerpunkte in einer \env{itemize}-Umgebung aufgeschlüsselt. +% \ToDo{optionales Argument zum Schluss für nachfolgenden Text}[v2.07] % \begin{macrocode} \newcommand\taskform[3][]{% \begin{task}[{#1}]% diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 90a62f49..6a26335f 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -302,6 +302,9 @@ % \end{macrocode} % Die einzelnen Parameter dienen zur Einstellung der Titelseite und entsprechen % in ihrem Verhalten den gleichnamigen Klassenoptionen. +% \ToDo{cdgeometry liefert falschen Satzspiegel nach Titel, siehe vlp}[v2.07] +% \ToDo{titleback ist im Flattersatz, warum?}[v2.07] +% \ToDo{Warnung, wenn pagenumber gerade}[v2.07] % \begin{macrocode} \TUD@parameter@family{title}{% %<*book|report|article> @@ -558,7 +561,8 @@ \vskip 2ex\@plus.5fill% \fi% % \end{macrocode} -% \ToDo{Befehl zum Angeben optionaler Inhalte, bspw. ein Bild}[v2.07] +% \ToDo{Befehl zum Angeben optionaler Inhalte, bspw. ein Bild}[v2.08] +% \ToDo{...othername als Liste für mehr als zwei Angaben}[v2.08] % Wenn Betreuer angegeben wurden, dann werden diese auf dem Titel ausgeben. Um % diese Titelseite auch für Dissertationen verwenden zu können, ist ein Feld % für Gutachter vorgesehen. Außerdem wird für Promotionsschriften ein Feld für @@ -963,6 +967,8 @@ % Dieser Befehl dient zur getrennten Ausgabe von mehreren, mit dem Makro % \cs{and} separierten Einträgen in den Feldern \cs{@supervisor}, \cs{@referee} % und \cs{@advisor}. +% \ToDo{generisch für beliebig viele Bezeichner (Drittgutachter)}[v2.07] +% \ToDo{...othername als Liste?}[v2.07] % \begin{macrocode} \newcommand*\tud@title@names[1]{% \letcs\@tempa{@#1}% diff --git a/source/tudscr-twocolfix.dtx b/source/tudscr-twocolfix.dtx index 636041f9..97ca2873 100644 --- a/source/tudscr-twocolfix.dtx +++ b/source/tudscr-twocolfix.dtx @@ -85,8 +85,8 @@ % \changes{v2.05}{2016/04/25}{Überprüfen der Definition von \cs{@topnewpage} % des \LaTeXe"~Kernels}^^A % -% \ToDo{Als eingenständiges Paket herauslösen}[v2.??] -% \ToDo{CheckCommand verwenden}[v2.??] +% \ToDo{Als eingenständiges Paket herauslösen}[v2.08] +% \ToDo{CheckCommand verwenden?}[v2.08] % % % diff --git a/source/tudscrsource.tex b/source/tudscrsource.tex index 024e2803..99f37759 100644 --- a/source/tudscrsource.tex +++ b/source/tudscrsource.tex @@ -73,6 +73,12 @@ \tableofcontents \ToDo{Release-Prozess mit \app{make} und \file{Makefile}}[v2.07] +\ToDo{^^A + \cs{kernel@ifnextchar}, \cs{kernel@ifstar} mit \cs{NewDocumentCommand}^^A +}[v2.07] +\ToDo{\cs{IfArgIsEmpty} überprüfen/ersetzen}[v2.07] +% renewcommand[^\{]*?\\[^\{\[]*?\{ +\ToDo{\cs{renewcommand} mit \cs{def} ersetzen, wo sinnvoll}[v2.07] \clearpage \DocInclude{tudscr-version} From 2e6b8d60fa0ce46aa2332b0fef0eee0edbceb477 Mon Sep 17 00:00:00 2001 From: mrpiggi Date: Tue, 9 Aug 2022 13:42:06 +0200 Subject: [PATCH 24/24] revised versioning - package tudscr-gitinfo for invocation of `gitlog` - automatic file dates via `.gitattributes` --- .gitattributes | 2 + .gitconfig | 7 + LICENSE.md | 4 +- README.md | 23 +- release.bat | 5 +- source/install/tudscr-metrics.dtx | 22 +- source/install/tudscr-scripts.dtx | 22 +- source/tudscr-area.dtx | 23 +- source/tudscr-base.dtx | 99 +++++--- source/tudscr-color.dtx | 44 ++-- source/tudscr-comp.dtx | 213 ++---------------- source/tudscr-doc.dtx | 92 ++++++-- source/tudscr-fields.dtx | 23 +- source/tudscr-fonts.dtx | 76 ++++--- source/tudscr-frontmatter.dtx | 23 +- source/tudscr-gitinfo.dtx | 359 ++++++++++++++++++++++++++++++ source/tudscr-layout.dtx | 23 +- source/tudscr-localization.dtx | 25 +-- source/tudscr-manual.dtx | 44 ++-- source/tudscr-mathswap.dtx | 47 ++-- source/tudscr-misc.dtx | 54 +++-- source/tudscr-pagestyle.dtx | 27 +-- source/tudscr-supervisor.dtx | 48 ++-- source/tudscr-texindy.dtx | 23 +- source/tudscr-title.dtx | 23 +- source/tudscr-twocolfix.dtx | 49 ++-- source/tudscr-version.dtx | 261 +++++++++++----------- source/tudscr.ins | 168 ++++++++------ source/tudscrsource.tex | 15 +- 29 files changed, 1012 insertions(+), 832 deletions(-) create mode 100644 .gitconfig create mode 100644 source/tudscr-gitinfo.dtx diff --git a/.gitattributes b/.gitattributes index 8653c959..d7ef2e22 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,3 +2,5 @@ *.bat text eol=crlf *.zip binary *.pdf binary +* filter=copyright +*.dtx filter=filedate diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 00000000..c4b21eb0 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,7 @@ +## git config --local include.path ../.gitconfig + +[filter "filedate"] + clean = export filename=$(basename "%f") && sed -b -r -z -e"s:\\\\\\\\ProvidesFile\\\\{$filename\\\\}[^\\\\n]*\\\\n::g" -e"s:%\\<\\\\*dtx\\>\\\\n:%\\<\\*dtx\\>\\\\n\\\\\\\\ProvidesFile{$filename}[$(date '+%Y/%m/%d')]\\\\n:" -e"s:\\(%/GitFileInfo[^\\\\n]*\\\\n\\)::g" -e"s:\\(%\\\\s*\\\\\\\\iffalse\\)\\([^\\\\n]*\\\\n\\)\\(%\\\\s*$filename[^\\\\n]*\\\\n\\)?:\\\\1\\ meta-comment\\\\n%/GitFileInfo=$filename\\\\n:" -e"s/\\(.*Copyright.*Hanisch.*,\\)\\\\s*\\([[:digit:]]{4}\\)\\(-[[:digit:]]{4}\\)?\\(.*\\)/\\\\1' '\\\\2-$(date '+%Y')\\\\4/g" + +[filter "copyright"] + clean = sed -b -r "s/\\(.*Copyright.*Hanisch.*,\\)\\\\s*\\([[:digit:]]{4}\\)\\(-[[:digit:]]{4}\\)?\\(.*\\)/\\\\1' '\\\\2-$(date '+%Y')\\\\4/g" diff --git a/LICENSE.md b/LICENSE.md index 164b7e79..1744041f 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -2,7 +2,7 @@ TUD-Script – Corporate Design of Technische Universität Dresden ---------------------------------------------------------------------------- - Copyright (C) Falk Hanisch , 2012-2021 + Copyright (C) Falk Hanisch , 2012-2022 ---------------------------------------------------------------------------- @@ -19,7 +19,7 @@ ---------------------------------------------------------------------------- - However, only members of the Technische Universität Dresden are permitted + However, only members of the Technische Universität Dresden are permitted to publish documents in the corporate design, in particular with the use of an official logo. diff --git a/README.md b/README.md index ce8935a4..a3c497d9 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ TUD-Script – Corporate Design of Technische Universität Dresden ---------------------------------------------------------------------------- - Copyright (C) Falk Hanisch , 2012-2021 + Copyright (C) Falk Hanisch , 2012-2022 - tudscr 2021/07/15 v2.06n + tudscr 2022/08/09 v2.06o This material is subject to the LaTeX Project Public License version 1.3c or later.
@@ -59,6 +59,16 @@ Das Bundle beinhaltet: Versionen --------- +**v2.06o** (2022/08/09) ++ Schriftstärke im Mathematikmodus wird passend zu den Einstellungen für den + Fließtext (`cdfont=light/heavy/normalbold/ultrabold`) gewählt ++ Kombination `cd=true` und `cdfont=false` verwendet Open Sans in Überschriften ++ `relspacing=true` Schriftgröße hat stärkeren Einfluss, unsauberer Übergang zu + nicht vordefinierten Zwischengrößen behoben ++ **tudscrposter** Umgebungen `figurehere` und `tablehere` ++ Verwendung der Symbole `\textleftarrow`, `\textrightarrow`, `\textuparrow`, + `\textdownarrow` sowie `\textlangle` und `\textrangle` aus Paket **iwona** + **v2.06n** (2021/07/15) + Fix für **siunitx** @@ -284,6 +294,15 @@ The bundle offers: Versions -------- +**v2.06o** (2022/08/09) ++ font face in math mode matches text mode settings + (`cdfont=light/heavy/normalbold/ultrabold`) ++ combination `cd=true` and `cdfont=false` uses Open Sans in headings ++ `relspacing=true` depends on selected font size ++ **tudscrposter** environments `figurehere` und `tablehere` ++ symbols for `\textleftarrow`, `\textrightarrow`, `\textuparrow`, + `\textdownarrow` as well as `\textlangle` and `\textrangle` from **iwona** + **v2.06n** (2021/07/15) + bug fix for **siunitx** diff --git a/release.bat b/release.bat index d643fb5f..29875bc5 100644 --- a/release.bat +++ b/release.bat @@ -6,7 +6,7 @@ echo ========================================================================= set version= setlocal enabledelayedexpansion for /f "tokens=1,2,3* delims= " %%a in ( - 'findstr /r \TUD@Version@Check{[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9] source\tudscr-version.dtx' + 'findstr /r \TUD@@Version{[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9] source\tudscr-version.dtx' ) do ( set version=%%c if "!version:~0,10!"=="TUD-Script" ( @@ -125,10 +125,9 @@ copy development\tools\*.* release-%version%\temp\ copy temp\doc\latex\tudscr\tudscr.pdf release-%version%\temp\ copy temp\doc\latex\tudscr\tudscr_print.pdf release-%version%\temp\ move temp\install\*.* release-%version%\temp\ -rmdir temp\install /s /q > nul cd release-%version%\temp +7za a -tzip tudscr_%version%.zip .\..\..\temp\doc\ .\..\..\temp\source\ .\..\..\temp\tex\ for /f %%f in ('dir /b *.bat') do unix2dos -k %%f -7za a -tzip tudscr_%version%.zip .\..\..\temp\* 7za a -tzip tudscr_fonts_install.zip @7za_files_metrics.txt REM call tudscr_fonts_convert.bat REM 7za a -tzip tudscr_fonts_converted.zip @7za_files_fonts.txt diff --git a/source/install/tudscr-metrics.dtx b/source/install/tudscr-metrics.dtx index 14d25e90..f6765281 100644 --- a/source/install/tudscr-metrics.dtx +++ b/source/install/tudscr-metrics.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-metrics.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -56,14 +57,8 @@ \endbatchfile % %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-metrics.dtx}[2022/07/28 v2.06 TUD-Script\space% - (font metrics)% -] -% -% \iffalse +\ProvidesFile{tudscr-metrics.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -75,14 +70,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-metrics.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} diff --git a/source/install/tudscr-scripts.dtx b/source/install/tudscr-scripts.dtx index 4606f092..8735afc8 100644 --- a/source/install/tudscr-scripts.dtx +++ b/source/install/tudscr-scripts.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-scripts.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -77,14 +78,8 @@ \endbatchfile % %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-scripts.dtx}[2022/07/28 v2.06 TUD-Script\space% - (installation scripts)% -] -% -% \iffalse +\ProvidesFile{tudscr-scripts.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -96,14 +91,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-scripts.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} diff --git a/source/tudscr-area.dtx b/source/tudscr-area.dtx index 3b4d623f..4f8b95ea 100644 --- a/source/tudscr-area.dtx +++ b/source/tudscr-area.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-area.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-area.dtx %<*dtx> -% \fi% -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-area.dtx}[2022/07/28 v2.06o TUD-Script\space% - (type or page area)% -] -% -% \iffalse +\ProvidesFile{tudscr-area.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-area.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} diff --git a/source/tudscr-base.dtx b/source/tudscr-base.dtx index 01ddc24f..449f5160 100644 --- a/source/tudscr-base.dtx +++ b/source/tudscr-base.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-base.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,27 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-base.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-base.dtx}[2022/07/28 v2.06o TUD-Script\space% -% -% \iffalse -% -%\ProvidesPackage{tudscrbase}[% -%<*package&base> -%!TUD@Version -% -% package -%<*dtx|package&base> -% \fi - (basics for the bundle)% -] -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-base.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -64,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-base.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} @@ -91,6 +69,15 @@ % eingebunden und Steuerungsbefehle definiert. Die Klassen sowie einige Pakete % benötigen das Paket und laden dieses auch. % +% \begin{macrocode} +%<*package&base> +\ProvidesPackage{tudscrbase}[% +%!TUD@Version + package (basics for the bundle)% +] +% +% \end{macrocode} +% % \ToDo{ % Schnittstelle äquivalent zu \cs{KOMA@kav@...}? Dann hierfür % \pkg{etoolbox}-Listen und \cs{listadd} sowie \cs{listremove} nutzen @@ -112,7 +99,9 @@ % % \begin{macrocode} %<*load> -\RequirePackage{tudscrbase}[\TUD@Version] +\RequirePackage{tudscrbase}[% +%!TUD@Version +] % % \end{macrocode} % @@ -120,13 +109,53 @@ %<*package&base> % \fi % +% \subsection{Notwendige Kompatibilitätseinstellung für \KOMAScript} +% +% Die installierte Version und die gewählte Kompatibilitätseinstellung von +% \KOMAScript{} wird gerpüft. +% \begin{macrocode} +\AtBeginDocument{% + \ifcsundef{scr@v@first}{}{% +% \end{macrocode} +% Es wird gerpüft, ob die mindestens benötigte \KOMAScript-Version +% (v\csuse{TUD@KOMAVersionNumber}) verfügbar ist. Sollte dies nicht der Fall +% sein, wird ein Fehler erzeugt. +% \begin{macrocode} + \ifcsundef{scr@v@\TUD@KOMAVersionNumber}{% + \PackageError{tudscrbase}{% + KOMA-Script v\TUD@KOMAVersionNumber\space is required% + }{% + \TUD@Version\space must be used at least with\MessageBreak% + \TUD@KOMAVersion, but only\MessageBreak% + \KOMAScriptVersion\space was found.% + }% + }{% +% \end{macrocode} +% Ist die mindestens nötige Version von \KOMAScript{} installiert, wird +% geprüft, ob die Kompatibilitätseinstellung akzeptabel ist. +% \begin{macrocode} + \expandafter\ifnum\scr@v@is@lt{3.12}\relax% + \PackageError{tudscrbase}{% + KOMA-Script compatibility level too low% + }{% + \TUD@Version\space must be used at least with\MessageBreak% + `version=3.12' KOMA-Script compatibility option.% + }% + \fi% + }% + }% +} +% \end{macrocode} +% % \subsection{Notwendige Pakete für \TUDScript} % % \changes{v2.06f}{2020/01/14}{Anpassungen für \pkg{scrbase} \val{v3.28}}^^A % Das Paket \pkg{scrbase} wird zur Optionsdefinition benötigt, \pkg{scrlfile} % für verschiedene Hooks vor sowie nach Klassen und Paketen. % \begin{macrocode} -\RequirePackage{scrbase}[2020/09/21] +\RequirePackage{scrbase}[% +%!TUD@KOMAVersion +] % \end{macrocode} % Die folgenden Pakete werden für die Manipulation bereits definierter % Makros, zur erweiterten Auswertung boolescher Ausdrücke und allgemein zur @@ -788,7 +817,7 @@ \PackageError{tudscrbase}{`\@backslashchar#1' is not a defined macro}{% The macro `\@backslashchar#1' was never defined. \MessageBreak% Please contact the TUD-Script maintainer\MessageBreak% - via \tudscrmail. A bugfix is urgently required.% + via \TUDScriptContact. A bugfix is urgently required.% }% \aftergroup\@gobble% \fi% @@ -848,7 +877,7 @@ \PackageError{tudscrbase}{`\@backslashchar#1' is not a defined length}{% The length `\@backslashchar#1' was never defined. \MessageBreak% Please contact the TUD-Script maintainer\MessageBreak% - via \tudscrmail. A bugfix is urgently required.% + via \TUDScriptContact. A bugfix is urgently required.% }% \expandafter\@gobble% }% @@ -869,7 +898,7 @@ \PackageWarning{tudscrbase}{% It wasn't possible to patch `\@backslashchar#1'\MessageBreak% Please contact the TUD-Script maintainer\MessageBreak% - via \tudscrmail. Without a bugfix an\MessageBreak% + via \TUDScriptContact. Without a bugfix an\MessageBreak% erroneous output may occur% }% } @@ -1985,7 +2014,9 @@ % Mit dem Paket \pkg{tudscrcolor} werden die Befehle für die Auswahl der Farben % des \CDs definiert, welches wiederum \pkg{xcolor} lädt. % \begin{macrocode} - \RequirePackage{tudscrcolor}[\TUD@Version]% + \RequirePackage{tudscrcolor}[% +%!TUD@Version + ]% } % \end{macrocode} % diff --git a/source/tudscr-color.dtx b/source/tudscr-color.dtx index a9a564d4..594016ca 100644 --- a/source/tudscr-color.dtx +++ b/source/tudscr-color.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-color.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,27 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-color.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-color.dtx}[2022/07/28 v2.06 TUD-Script\space% -% -% \iffalse -% -%\ProvidesPackage{tudscrcolor}[% -%<*package> -%!TUD@Version -% -% package -%<*dtx|package> -% \fi - (corporate design colors)% -] -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-color.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -64,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-color.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} @@ -91,6 +69,16 @@ % zur Farbauswahl wie \cs{color}\marg{Farbe} oder \cs{textcolor}\marg{Farbe} % verwendet werden. % +% \begin{macrocode} +% \iffalse +%<*package> +\ProvidesPackage{tudscrcolor}[% +%!TUD@Version + package (corporate design colors)% +] +% +% \fi +% \end{macrocode} % % \iffalse %<*package> diff --git a/source/tudscr-comp.dtx b/source/tudscr-comp.dtx index 7ad26e66..e384362e 100644 --- a/source/tudscr-comp.dtx +++ b/source/tudscr-comp.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-comp.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,29 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-comp.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-comp.dtx}[2022/07/28 v2.06n TUD-Script\space% -% -% \iffalse -% -%<*package&identify> -%\ProvidesPackage{tudscrcomp}[% -%\ProvidesPackage{fix-tudscrfonts}[% -%!TUD@Version -% package -% package for font fixes -% -%<*dtx|package&identify> -% \fi - (compatibility for old tud(scr) classes)% -] -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-comp.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -66,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-comp.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} @@ -100,6 +76,19 @@ % betreffen sowohl die Klassen selber als auch die zusätzlich bereitgestellten % Pakete. % +% \begin{macrocode} +%<*package&identify> +%\ProvidesPackage{tudscrcomp}% +%\ProvidesPackage{fix-tudscrfonts}% +[% +%!TUD@Version +% package +% package for font fixes + (compatibility for old tud(scr) classes)% +] +%\TUD@Class@Check{tudscrcomp} +% +% \end{macrocode} % % \iffalse %<*class|package&fonts> @@ -275,30 +264,6 @@ {% \RelaxFamilyKey[.comp]{TUD}{tudscrver}% \TUD@key@toolate{tudscrver}% -% \end{macrocode} -% Außerdem wird darauf geachtet, dass die mindestens benötigte Version von -% \KOMAScript{} (\cs{TUD@Version@KOMA}: \csuse{TUD@Version@KOMA}) installiert -% ist. Sollte dies nicht der Fall sein, wird ein Fehler erzeugt. -% \begin{macrocode} -%<*class> - \ifcsundef{scr@v@\TUD@Version@KOMA}{% - \ClassError{\TUD@Class@Name}{% - KOMA-Script v\TUD@Version@KOMA is required% - }{% - \TUD@Version\space must at least be used with\MessageBreak% - KOMA-Script v\TUD@Version@KOMA, but \KOMAScriptVersion was found.% - }% - }{% - \ifnum\scr@compatibility<\csuse{scr@v@3.12}\relax% - \ClassError{\TUD@Class@Name}{% - KOMA-Script compatibility level too low% - }{% - \TUD@Version\space must be used at least with\MessageBreak% - `version=3.12' KOMA-Script compatibility option.% - }% - \fi% - }% -% } % \end{macrocode} % \end{macro}^^A \tud@v@comp @@ -310,84 +275,16 @@ % \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.01} % \changes{v2.02}{2014/08/22}{neu}^^A -% \begin{macro}{\tud@v@2.01a} -% \changes{v2.02}{2014/08/22}{neu}^^A -% \begin{macro}{\tud@v@2.01b} -% \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.02} % \changes{v2.02}{2014/08/22}{neu}^^A % \begin{macro}{\tud@v@2.03} % \changes{v2.03}{2015/01/13}{neu}^^A -% \begin{macro}{\tud@v@2.03a} -% \changes{v2.03a}{2015/06/12}{neu}^^A % \begin{macro}{\tud@v@2.04} % \changes{v2.04}{2015/02/18}{neu}^^A -% \begin{macro}{\tud@v@2.04a} -% \changes{v2.04a}{2015/07/24}{neu}^^A -% \begin{macro}{\tud@v@2.04b} -% \changes{v2.04b}{2015/10/06}{neu}^^A -% \begin{macro}{\tud@v@2.04c} -% \changes{v2.04c}{2015/11/29}{neu}^^A -% \begin{macro}{\tud@v@2.04d} -% \changes{v2.04d}{2016/03/26}{neu}^^A -% \begin{macro}{\tud@v@2.04e} -% \changes{v2.04e}{2016/06/17}{neu}^^A % \begin{macro}{\tud@v@2.05} % \changes{v2.05}{2015/07/03}{neu}^^A -% \begin{macro}{\tud@v@2.05a} -% \changes{v2.05a}{2015/08/24}{neu}^^A -% \begin{macro}{\tud@v@2.05b} -% \changes{v2.05b}{2015/09/09}{neu}^^A -% \begin{macro}{\tud@v@2.05c} -% \changes{v2.05c}{2015/09/15}{neu}^^A -% \begin{macro}{\tud@v@2.05d} -% \changes{v2.05d}{2015/09/21}{neu}^^A -% \begin{macro}{\tud@v@2.05e} -% \changes{v2.05e}{2016/10/10}{neu}^^A -% \begin{macro}{\tud@v@2.05f} -% \changes{v2.05f}{2016/10/12}{neu}^^A -% \begin{macro}{\tud@v@2.05g} -% \changes{v2.05g}{2017/01/26}{neu}^^A -% \begin{macro}{\tud@v@2.05h} -% \changes{v2.05h}{2017/02/04}{neu}^^A -% \begin{macro}{\tud@v@2.05i} -% \changes{v2.05i}{2017/02/17}{neu}^^A -% \begin{macro}{\tud@v@2.05k} -% \changes{v2.05k}{2017/03/27}{neu}^^A -% \begin{macro}{\tud@v@2.05l} -% \changes{v2.05l}{2017/03/29}{neu}^^A -% \begin{macro}{\tud@v@2.05m} -% \changes{v2.05m}{2017/05/30}{neu}^^A % \begin{macro}{\tud@v@2.06} % \changes{v2.06}{2018/06/26}{neu}^^A -% \begin{macro}{\tud@v@2.06a} -% \changes{v2.06a}{2019/07/09}{neu}^^A -% \begin{macro}{\tud@v@2.06b} -% \changes{v2.06b}{2019/07/17}{neu}^^A -% \begin{macro}{\tud@v@2.06c} -% \changes{v2.06c}{2019/08/20}{neu}^^A -% \begin{macro}{\tud@v@2.06d} -% \changes{v2.06d}{2019/08/27}{neu}^^A -% \begin{macro}{\tud@v@2.06e} -% \changes{v2.06e}{2019/10/23}{neu}^^A -% \begin{macro}{\tud@v@2.06f} -% \changes{v2.06f}{2020/01/14}{neu}^^A -% \begin{macro}{\tud@v@2.06g} -% \changes{v2.06g}{2020/06/18}{neu}^^A -% \begin{macro}{\tud@v@2.06h} -% \changes{v2.06h}{2020/06/25}{neu}^^A -% \begin{macro}{\tud@v@2.06i} -% \changes{v2.06i}{2020/07/27}{neu}^^A -% \begin{macro}{\tud@v@2.06j} -% \changes{v2.06j}{2020/09/29}{neu}^^A -% \begin{macro}{\tud@v@2.06k} -% \changes{v2.06k}{2020/11/10}{neu}^^A -% \begin{macro}{\tud@v@2.06l} -% \changes{v2.06l}{2021/03/30}{neu}^^A -% \begin{macro}{\tud@v@2.06m} -% \changes{v2.06m}{2021/07/06}{neu}^^A -% \begin{macro}{\tud@v@2.06n} -% \changes{v2.06n}{2021/07/15}{neu}^^A % \begin{macro}{\tud@v@last} % \changes{v2.02}{2014/08/22}{neu}^^A % \changes{v2.03}{2015/01/13}{angepasst}^^A @@ -399,87 +296,19 @@ \csdef{tud@v@first}{0} \csdef{tud@v@2.00}{0} \csdef{tud@v@2.01}{0} -\csdef{tud@v@2.01a}{0} -\csdef{tud@v@2.01b}{0} \csdef{tud@v@2.02}{0} \csdef{tud@v@2.03}{1} -\csdef{tud@v@2.03a}{1} \csdef{tud@v@2.04}{2} -\csdef{tud@v@2.04a}{2} -\csdef{tud@v@2.04b}{2} -\csdef{tud@v@2.04c}{2} -\csdef{tud@v@2.04d}{2} -\csdef{tud@v@2.04e}{2} \csdef{tud@v@2.05}{3} -\csdef{tud@v@2.05a}{3} -\csdef{tud@v@2.05b}{3} -\csdef{tud@v@2.05c}{3} -\csdef{tud@v@2.05d}{3} -\csdef{tud@v@2.05e}{3} -\csdef{tud@v@2.05f}{3} -\csdef{tud@v@2.05g}{3} -\csdef{tud@v@2.05h}{3} -\csdef{tud@v@2.05i}{3} -\csdef{tud@v@2.05k}{3} -\csdef{tud@v@2.05l}{3} -\csdef{tud@v@2.05m}{3} \csdef{tud@v@2.06}{4} -\csdef{tud@v@2.06a}{4} -\csdef{tud@v@2.06b}{4} -\csdef{tud@v@2.06c}{4} -\csdef{tud@v@2.06d}{4} -\csdef{tud@v@2.06e}{4} -\csdef{tud@v@2.06f}{4} -\csdef{tud@v@2.06g}{4} -\csdef{tud@v@2.06h}{4} -\csdef{tud@v@2.06i}{4} -\csdef{tud@v@2.06j}{4} -\csdef{tud@v@2.06k}{4} -\csdef{tud@v@2.06l}{4} -\csdef{tud@v@2.06m}{4} -\csdef{tud@v@2.06n}{4} \csdef{tud@v@last}{4} % \end{macrocode} % \end{macro}^^A \tud@v@last -% \end{macro}^^A \tud@v@2.06n -% \end{macro}^^A \tud@v@2.06m -% \end{macro}^^A \tud@v@2.06l -% \end{macro}^^A \tud@v@2.06k -% \end{macro}^^A \tud@v@2.06j -% \end{macro}^^A \tud@v@2.06i -% \end{macro}^^A \tud@v@2.06h -% \end{macro}^^A \tud@v@2.06g -% \end{macro}^^A \tud@v@2.06f -% \end{macro}^^A \tud@v@2.06e -% \end{macro}^^A \tud@v@2.06d -% \end{macro}^^A \tud@v@2.06c -% \end{macro}^^A \tud@v@2.06b -% \end{macro}^^A \tud@v@2.06a % \end{macro}^^A \tud@v@2.06 -% \end{macro}^^A \tud@v@2.05m -% \end{macro}^^A \tud@v@2.05l -% \end{macro}^^A \tud@v@2.05k -% \end{macro}^^A \tud@v@2.05i -% \end{macro}^^A \tud@v@2.05h -% \end{macro}^^A \tud@v@2.05g -% \end{macro}^^A \tud@v@2.05f -% \end{macro}^^A \tud@v@2.05e -% \end{macro}^^A \tud@v@2.05d -% \end{macro}^^A \tud@v@2.05c -% \end{macro}^^A \tud@v@2.05b -% \end{macro}^^A \tud@v@2.05a % \end{macro}^^A \tud@v@2.05 -% \end{macro}^^A \tud@v@2.04e -% \end{macro}^^A \tud@v@2.04d -% \end{macro}^^A \tud@v@2.04c -% \end{macro}^^A \tud@v@2.04b -% \end{macro}^^A \tud@v@2.04a % \end{macro}^^A \tud@v@2.04 -% \end{macro}^^A \tud@v@2.03a % \end{macro}^^A \tud@v@2.03 % \end{macro}^^A \tud@v@2.02 -% \end{macro}^^A \tud@v@2.01b -% \end{macro}^^A \tud@v@2.01a % \end{macro}^^A \tud@v@2.01 % \end{macro}^^A \tud@v@2.00 % \end{macro}^^A \tud@v@first @@ -1963,7 +1792,9 @@ % \begin{macrocode} \AtEndPreamble{% \tud@fixfonts@class@check% - \RequirePackage{tudscrfonts}[\TUD@Version]% + \RequirePackage{tudscrfonts}[% +%!TUD@Version + ]% } % \end{macrocode} % diff --git a/source/tudscr-doc.dtx b/source/tudscr-doc.dtx index 239d0282..5f651d00 100644 --- a/source/tudscr-doc.dtx +++ b/source/tudscr-doc.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-doc.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-doc.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-doc.dtx}[2022/07/28 v2.06o TUD-Script\space% - (source code documentation based on scrartcl/scrdoc)% -] -% -% \iffalse +\ProvidesFile{tudscr-doc.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-doc.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} @@ -183,6 +172,75 @@ %<*class&body> % \fi % +% \subsection{Standardwerte für Titelei, Absatzauszeichnung und Index} +% +% Folgende Werte sind standardmäßig für den Titel eingestellt, können aber +% jederzeit überschrieben werden. +% \begin{macrocode} +\AtEndOfClass{% + \@ifpackageloaded{tudscr-gitinfo}{% + \GetFileInfo{\jobname}% + \title{\file{\filename}}% + \date{% + \filedate% + \ifdefvoid{\fileversion}{}{\nobreakspace\fileversion}% + \ifdefvoid{\filerevision}{}{\nobreakspace\texttt{\filerevision}}% + }% + }{}% + \CodelineIndex% + \RecordChanges% +} +% \end{macrocode} +% Wurde in der Präambel \cs{GetFileInfo} nicht aufgerufen, dann erfolgt dies zu +% Beginn des Dokumentes. +% \begin{macrocode} +\AtBeginDocument{% + \ifdefvoid{\filename}{% + \IfFileExists{\jobname.dtx}{% + \edef\filename{\jobname.dtx}% + }{% + \edef\filename{\jobname.tex}% + }% + \undef\filedate% + \undef\fileversion% + \undef\filerevision% + \undef\fileinfo% + \expandafter\GetFileInfo\expandafter{\filename}% + }{}% + \ifdefvoid{\filerevision}{\let\filerevision\@empty}{}% +} +% \end{macrocode} +% +% \subsection{Seitenstil} +% +% \begin{macro}{\@docinclude} +% \begin{macro}{\ps@tudscrdoc} +% Die Auswahl des Seitenstils wird im Vergleich zur Klasse \cls{ltxdoc} +% verbessert und an das Paket \pkg{tudscr-gitinfo} angepasst. +% \begin{macrocode} +\pretocmd\@docinclude{% + \GetFileInfo{#1}\pagestyle{tudscrdoc}% +}{}{\tud@patch@wrn{@docinclude}} +\def\ps@tudscrdoc{% + \let\@mkboth\@gobbletwo% + \let\@oddhead\@empty% + \let\@evenhead\@empty% + \def\@oddfoot{% + File\ifnum\c@part>\z@\nobreakspace\thepart\fi:% + \nobreakspace\texttt{\ifdefvoid{\filename}{?}{\filename}}% + \enskip Version:\nobreakspace\ifdefvoid{\filedate}{?}{\filedate}% + \ifdefvoid{\fileversion}{}{\nobreakspace\fileversion}% + \ifdefvoid{\filerevision}{}{\enskip\texttt{\filerevision}}% + \hfill\thepage% + }% + \def\@evenfoot{\@oddfoot}% +} +\pagestyle{tudscrdoc}% +\let\ps@titlepage\ps@tudscrdoc% +% \end{macrocode} +% \end{macro}^^A \ps@tudscrdoc +% \end{macro}^^A \@docinclude +% % \subsection{Definition und Erscheinungsbild von Deklarationselementen} % % Das Paket~\pkg{doc} stellt die Funktionalitäten zur Quelltextdokumentation diff --git a/source/tudscr-fields.dtx b/source/tudscr-fields.dtx index 541b29b9..166f3d7d 100644 --- a/source/tudscr-fields.dtx +++ b/source/tudscr-fields.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-fields.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-fields.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-fields.dtx}[2022/07/28 v2.06c TUD-Script\space% - (input fields)% -] -% -% \iffalse +\ProvidesFile{tudscr-fields.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-fields.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} diff --git a/source/tudscr-fonts.dtx b/source/tudscr-fonts.dtx index db542b3e..8f6a70e4 100644 --- a/source/tudscr-fonts.dtx +++ b/source/tudscr-fonts.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-fonts.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,27 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-fonts.dtx -%<*dtx> -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -% \fi -% -\ProvidesFile{tudscr-fonts.dtx}[2022/07/28 v2.06n TUD-Script\space% -% -% \iffalse -% -%\ProvidesPackage{tudscrfonts}[% -%<*package&identify> -%!TUD@Version -% -% package -%<*dtx|package&identify> -% \fi - (corporate design fonts)% -] -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-fonts.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -64,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-fonts.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} @@ -107,9 +85,34 @@ % dieser Installation werden dabei fehlende Glyphen ergänzt und Probleme beim % Kerning behoben. % +% \begin{macrocode} +%<*package&identify> +\ProvidesPackage{tudscrfonts}[% +%!TUD@Version + package (corporate design fonts)% +] +% +% \end{macrocode} +% +% \iffalse +%<*option> +% \fi +% +% Der Category Code für Anführungsstriche wird auf nicht-aktiv gesetzt für den +% Fall das ein Paket dies gerne anders hätte. +% +% \begin{macrocode} +\newcommand*\tud@catcodes@restore{} +\edef\tud@catcodes@restore{% + \catcode`\noexpand\"\the\catcode`\"\relax% +}% +\@makeother\"% +%\AtEndOfClass{\tud@catcodes@restore} +%\AtEndOfPackage{\tud@catcodes@restore} +% \end{macrocode} % % \iffalse -%<*class&option> +%<*class> % \fi % % \subsection{^^A @@ -129,16 +132,18 @@ % \end{macrocode} % % \iffalse -% -%<*package&identify> +% +%<*package> % \fi % % Sollte keine \KOMAScript-Klasse genutzt werden, wird zusätzlich das Paket % \pkg{scrextend} benötigt. % \begin{macrocode} -\ifcsname KOMAClassName\endcsname\else - \RequirePackage{scrextend}[2020/09/21] -\fi +\ifundef{\KOMAClassName}{% + \RequirePackage{scrextend}[% +%!TUD@KOMAVersion + ]% +}{} % \end{macrocode} % Wird das Paket \pkg{tudscrfonts} nach einer der Klassen verwendet, welche die % veralteten Schriftfamilien für \Univers und \DIN definieren, so wird eine @@ -164,7 +169,8 @@ % \end{macrocode} % % \iffalse -% +% +% %<*body> % \fi % diff --git a/source/tudscr-frontmatter.dtx b/source/tudscr-frontmatter.dtx index 9e81d5d2..671929ed 100644 --- a/source/tudscr-frontmatter.dtx +++ b/source/tudscr-frontmatter.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-frontmatter.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-frontmatter.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-frontmatter.dtx}[2022/07/28 v2.06i TUD-Script\space% - (frontmatter)% -] -% -% \iffalse +\ProvidesFile{tudscr-frontmatter.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-frontmatter.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} diff --git a/source/tudscr-gitinfo.dtx b/source/tudscr-gitinfo.dtx new file mode 100644 index 00000000..31a9adde --- /dev/null +++ b/source/tudscr-gitinfo.dtx @@ -0,0 +1,359 @@ +% \iffalse meta-comment +%/GitFileInfo=tudscr-gitinfo.dtx +% +% TUD-Script -- Corporate Design of Technische Universität Dresden +% ---------------------------------------------------------------------------- +% +% Copyright (C) Falk Hanisch , 2012-2022 +% +% ---------------------------------------------------------------------------- +% +% 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 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 +% in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle +% Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +% Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 +% oder später und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status +% "author-maintained", wird somit allein durch den Autor verwaltet. Der +% aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% +% ---------------------------------------------------------------------------- +% +% \fi +% +% \iffalse comment +% Nicht verwirren lassen! In dieser Datei steht ein Teil der Dokumentation und +% des Codes vor dem Treiber. Das ist notwendig, weil der Teil des Codes bereits +% am Anfang des Treibers selbst benötigt wird. Genauer gesagt handelt es sich +% dabei um den Teil zur Versionsangbabe. +% \fi +% +% \selectlanguage{ngerman} +% +% +% +% \section{Versionsinformationen aus dem GitHub-Repository} +% +% Um sich das ganze Aktualisieren von irgendwelchen Versionangaben zu sparen, +% werden diese einfach aus dem GitHub-Repository übernommen. Hierfür ist ein +% externer Aufruf von \file{git~log} notwendig, die Informationen werden dabei +% in die Datei \file{\GitContainerFile} (\cs{GitContainerFile}) +% geschrieben und entweder während des Durchlaufs mit \app{docstrip} oder aber +% beim Erzeugen der Doku mithilfe des Paketes \pkg{tudscr-gitinfo} ausgelesen. +% +% \subsection{GitHub-Versionsinformationen für \app{docstrip}} +% +% \begin{macro}{\GitFileInfo} +% \changes{v2.07}{2019/10/19}{neu}^^A +% \begin{macro}{\GitContainerFile} +% \changes{v2.07}{2019/10/19}{neu}^^A +% \begin{macro}{\InputGitContainer} +% \changes{v2.07}{2019/10/19}{neu}^^A +% In \cs{GitContainerFile} wird der Name der Datei gespeichert, welche die +% Versionsinformationen für alle Quelldateien enthält. Diese definiert für alle +% relevanten Dateien Makros in der Form +% |\|\meta{Dateiname}|-ver{|\meta{Datum}| |\meta{Zeit}| |\meta{Hash}|}|. Diese +% Datei wird eingebunden, falls vorhanden sowie der Befehl \cs{GitFileInfo} für +% das Hinzufügen der Versionsinformationen für das Erzeugen der Zieldateien mit +% \app{docstrip} definiert. +% \begin{macrocode} +\def\GitContainerFile{tudscr-gitinfo-ver.aux} +%<*!package> +\begingroup + \catcode`\@11\relax% + \ifx\documentclass\undefined% + \ifx\@@input\undefined\global\let\@@input\input\fi% + \newread\@inputcheck% + \immediate\openin\@inputcheck=\GitContainerFile\relax% + \ifeof\@inputcheck% + \global\let\InputGitContainer\relax% + \else% + \gdef\InputGitContainer{\@@input\GitContainerFile\relax}% + \fi% + \closein\@inputcheck% + \gdef\GitFileInfo#1{% + \MetaPrefix\MetaPrefix\space From File:\space#1\space% + \expandafter\ifx\csname#1-ver\endcsname\relax% + (no git version info was found)% + \else% + \csname#1-ver\endcsname% + \fi% + }% + \aftergroup\InputGitContainer% + \fi% +\endgroup +\let\InputGitContainer\undefined +% +% \end{macrocode} +% \end{macro}^^A \InputGitContainer +% \end{macro}^^A \GitContainerFile +% \end{macro}^^A \GitFileInfo +% +% \iffalse ins:batch + dtx:driver +%<*ins> +\ifx\documentclass\undefined + \input docstrip.tex + \ifToplevel{\batchinput{tudscr.ins}} +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% +%<*dtx> +\ProvidesFile{tudscr-gitinfo.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} +\documentclass[english,ngerman,xindy]{tudscrdoc} +\iftutex + \usepackage{fontspec} +\else + \usepackage[T1]{fontenc} + \usepackage[ngerman=ngerman-x-latest]{hyphsubst} +\fi +\usepackage{babel} +\usepackage{tudscrfonts} +\usepackage[babel]{microtype} + +\GitHubBase{\TUDScriptRepository} +\begin{document} + \author{Falk Hanisch\TUDScriptContactTitle} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \iffalse comment +% Der Rest wird nicht mehr vom Treiber benötigt. +% \fi +% +% \subsection{GitHub-Versionsinformationen für das Paket \pkg{tudscr-gitinfo}} +% +% Gleich zu Beginn werden die Versionsinformationen geladen, wenn dies nicht +% schon passiert ist und diese vorhanden sind. +%^^A https://www.juandebravo.com/2017/12/02/git-filter-smudge-and-clean/ +%^^A https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#filters_b +%^^A file:///C:/Program%20Files/Git/mingw64/share/doc/git-doc/gitattributes.html +% \begin{macrocode} +\ProvidesPackage{tudscr-gitinfo}[% +%!TUD@Version + package (obtaining git version)% +] +\ifcsname ver@\GitContainerFile\endcsname\else + \InputIfFileExists{\GitContainerFile}{}{}% +\fi +% \end{macrocode} +% \begin{macro}{\GetFileInfo} +% \changes{v2.07}{2019/10/19}{neu}^^A +% \begin{macro}{\tud@GetFileInfo} +% \changes{v2.07}{2019/10/19}{neu}^^A +% \begin{macro}{\tud@@GetFileInfo} +% \changes{v2.07}{2019/10/19}{neu}^^A +% \begin{macro}{\tud@git@file@list} +% \changes{v2.07}{2019/10/20}{neu}^^A +% Der Befehl \cs{GetFileInfo} hat das gleiche Ziel wie der gleichnamige Befehl +% aus dem Paket \pkg{doc}. Allerdings werden vorliegende Versionsinformationen +% aus einem GitHub-Repository bevorzugt geladen. Das Lesen der Informationen, +% welche mit \cs{ProvidesFile} gegeben werden können, wird lediglich als +% Rückfallebene verwendet. Das angegebene Argument wird für den Dateinamen der +% Quelldatei genutzt, wobei bei einer fehlenden Dateiendung \file{dtx}-Dateien +% gegenüber \file{tex}-Dateien bevorzugt werden. +% \begin{macrocode} +\def\GetFileInfo{\tud@GetFileInfo} +\newcommand*\tud@git@file@list{} +\newcommand*\tud@GetFileInfo[1]{% + \filename@parse{#1}% + \ifx\filename@ext\relax% + \edef\filename{\filename@area\filename@base.dtx}% + \expandafter\IfFileExists\expandafter{\filename}{}{% + \edef\filename{\filename@area\filename@base.tex}% + }% + \else% + \edef\filename{#1}% + \fi% +% \end{macrocode} +% Mit dem Dateinamen werden über \cs{tud@git@log} Versionsinformation aus einem +% GitHub-Repository abgerufen und verwendet (falls vorhanden). Der dazugehörige +% Dateiname wird der Liste \cs{tud@git@file@list} hinzugefügt. +% \begin{macrocode} + \expandafter\tud@git@log\expandafter{\filename}% + \ifcsname\filename-ver\endcsname% + \def\@tempa##1 ##2 ##3\@nil{% + \def\filedate{##1}% + \let\fileversion\@empty% + \def\filerevision{##3}% + }% + \edef\@tempb{\csname\filename-ver\endcsname}% + \expandafter\@tempa\@tempb\@nil% + \let\fileinfo\@empty% + \edef\tud@git@file@list{\tud@git@file@list,\filename}% + \else% +% \end{macrocode} +% Andernfalls wird eine Warnung erzeugt und auf das durch \pkg{doc} definierte +% Verhalten von \cs{GetFileInfo} zurückgeschaltet. +% \begin{macrocode} + \PackageWarningNoLine{tudscr-gitinfo}{No git info found for \filename}% + \expandafter\tud@@GetFileInfo\expandafter{\filename}% + \fi% +} +\newcommand*\tud@@GetFileInfo[1]{% + \@ifundefined{filedate}{\def\filedate{?}}{}% + \@ifundefined{fileversion}{\def\fileversion{?}}{}% + \@ifundefined{filerevision}{\let\filerevision\@empty}{}% + \@ifundefined{fileinfo}{\let\fileinfo\@empty}{}% +% \end{macrocode} +% Verbesserte Variante, um nicht \cs{relax?} in die Felder zu schreiben. +% \begin{macrocode} + \ifcsname ver@\filename\endcsname% + \def\@tempa##1 ##2 ##3\relax##4\relax{% + \def\@tempb####1\relax?####2\@nil{\edef\@tempc{####1}}% + \@tempb##1\relax?\@nil% + \ifx\@tempc\@empty\else% + \let\filedate\@tempc% + \@tempb##2\relax?\@nil% + \ifx\@tempc\@empty\else% + \let\fileversion\@tempc% + \@tempb##3\relax?\@nil% + \ifx\@tempc\@empty\else% + \let\fileinfo\@tempc% + \fi% + \fi% + \fi% + }% + \edef\@tempb{\csname ver@#1\endcsname}% + \expandafter\@tempa\@tempb\relax? ? \relax\relax% + \fi% +} +% \end{macrocode} +% Hiermit wird der Befehl \cs{GetFileInfo} ggf. wieder überschrieben. +% \begin{macrocode} +\RequirePackage{scrlfile}[% +%!TUD@KOMAVersion +] +\AfterPackage*{doc}{\def\GetFileInfo{\tud@GetFileInfo}} +% \end{macrocode} +% \end{macro}^^A \tud@git@file@list +% \end{macro}^^A \tud@@GetFileInfo +% \end{macro}^^A \tud@GetFileInfo +% \end{macro}^^A \GetFileInfo +% \begin{macro}{\tud@git@log} +% \changes{v2.07}{2019/10/20}{neu}^^A +% \begin{macro}{\tud@git@@log} +% \changes{v2.07}{2019/10/20}{neu}^^A +% Der Befehl \cs{tud@git@log} definiert für die im Argument angegebene Datei +% das Makro |\|\meta{Dateiname}|-ver| mit den Versionsinformationen, welche mit +% \cs{tud@git@@log} ausgelesen wurden. +% \begin{macrocode} +\RequirePackage{pdftexcmds} +\newcommand*\tud@git@log[1]{% + \ifnum\pdf@shellescape=\@ne% + \begingroup% + \endlinechar=\m@ne% + \everyeof{\noexpand}% + \edef\@tempa{\tud@git@@log{#1}}% + \ifx\@tempa\@empty\else% + \edef\@tempa{% + \unexpanded{\expandafter\gdef\csname #1-ver\endcsname}{\@tempa}% + }% + \@tempa% + \fi% + \endgroup% + \fi% +} +% \end{macrocode} +% Der Befehl \cs{tud@git@@log} startet den Aufruf von \file{git~log} mit den +% notwendigen Formatierungsoptionen. +% \begin{macrocode} +\begingroup +\@makeother\| +\newcommand*\tud@git@@log[1]{} +\xdef\tud@git@@log#1{% + \noexpand\@@input|"git log -1 % + --format='\@percentchar ad \@percentchar h' % + --date=format:'\@percentchar Y/\@percentchar m/\@percentchar d % + \@percentchar H:\@percentchar M:\@percentchar S' % + -- #1" % +} +\endgroup +% \end{macrocode} +% \end{macro}^^A \tud@git@@log +% \end{macro}^^A \tud@git@log +% Am Dokumentende wird für alle Dateien, für die eine Versionsinformation +% gefunden werden konnte und in \cs{tud@git@file@list} gesammelt wurden, diese +% in die externe Datei \cs{GitContainerFile} geschrieben, damit diese auch +% ohne den abermaligen Aufruf mit dem Parameter \file{-{}-shell-escape} genutzt +% werden können. +% \begin{macrocode} +\AtEndDocument{% + \ifnum\pdf@shellescape=\@ne% + \ifx\tud@git@file@list\@empty\else% + \edef\tud@git@file@list{\expandafter\@gobble\tud@git@file@list}% + \def\@tempa{% + \@percentchar\@percentchar\space% + This file was generated with `tudscr-gitinfo.sty'^^J% + \@percentchar\@percentchar\space% + It is intended to be used for generating either a documentation^^J% + \@percentchar\@percentchar\space% + with class `tudscrdoc' or installation files with `docstrip'% + }% + \chardef\reserved@c15 % + \ch@ck7\reserved@c\write% + \immediate\openout\reserved@c\GitContainerFile\relax% + \immediate\write\reserved@c{\@tempa}% + \@for\@tempa:=\tud@git@file@list\do{% + \edef\@tempb{% + \unexpanded{\expandafter\gdef\csname}% + \@tempa-ver% + \noexpand\endcsname% + {\csname\@tempa-ver\endcsname}% + }% + \immediate\write\reserved@c{\unexpanded\expandafter{\@tempb}}% + }% + \immediate\closeout\reserved@c% + \fi% + \fi% +} +% \end{macrocode} +% Am Ende des Paketes werden die Versionsinformationen der aktuellen Datei +% ausgelesen und anschließend mit \cs{ProvidesFile} gesetzt, wobei eine Warnung +% erzeugt wird, wenn für die Datei schon einmal \cs{ProvidesFile} mit einer +% anderen Angabe genutzt wurde. Die zu schreibende Angabe wird hierfür in +% \cs{@tempa} expandiert und mit |\ ver@|\meta{Dateiname} verglichen. +% \begin{macrocode} +\AtEndOfPackage{% + \GetFileInfo{\jobname}% + \edef\@tempa{% + \filedate\space\fileversion\space% + \ifx\filerevision\@empty\else% + \filerevision\ifx\fileinfo\@empty\else\space\fi% + \fi% + \fileinfo% + }% + \ifcsname ver@\filename\endcsname% + \edef\@tempb{\csname ver@\filename\endcsname}% + \ifx\@tempb\filedate\else% + \PackageWarningNoLine{tudscr-gitinfo}{% + The obtained info for \filename\space is\MessageBreak% + \@tempa\MessageBreak% + so the current info\MessageBreak% + \csname ver@\filename\endcsname\MessageBreak% + is overwritten% + }% + \fi% + \fi% + \ProvidesFile{\filename}[\@tempa]% +} +% \end{macrocode} +% +% \PrintBackMatter +% +\endinput diff --git a/source/tudscr-layout.dtx b/source/tudscr-layout.dtx index bffee4c3..289b3db7 100644 --- a/source/tudscr-layout.dtx +++ b/source/tudscr-layout.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-layout.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-layout.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-layout.dtx}[2022/07/28 v2.06o TUD-Script\space% - (layout)% -] -% -% \iffalse +\ProvidesFile{tudscr-layout.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-layout.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} diff --git a/source/tudscr-localization.dtx b/source/tudscr-localization.dtx index 7fb8a850..b4adf605 100644 --- a/source/tudscr-localization.dtx +++ b/source/tudscr-localization.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-localization.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-localization.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-localization.dtx}[2022/07/28 v2.06o TUD-Script\space% - (localization)% -] -% -% \iffalse +\ProvidesFile{tudscr-localization.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-localization.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} @@ -106,7 +95,7 @@ languages german and english as well as its dialects. You\MessageBreak% must define single patterns by yourself, e.g.:\MessageBreak% `\string\providecaptionname{\languagename}\string#1{}'\MessageBreak% - You can send your definitions to \tudscrmail\space in\MessageBreak% + You can send your definitions to \TUDScriptContact\space in\MessageBreak% order to implement support for additional languages.% }% }% diff --git a/source/tudscr-manual.dtx b/source/tudscr-manual.dtx index cd8cd875..e71600a0 100644 --- a/source/tudscr-manual.dtx +++ b/source/tudscr-manual.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-manual.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,27 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-manual.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-manual.dtx}[2022/07/28 v2.06o TUD-Script\space% -% -% \iffalse -% -%\ProvidesPackage{tudscrmanual}[% -%<*package&identify> -%!TUD@Version -% -% package -%<*dtx|package&identify> -% \fi - (internal tutorials)% -] -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-manual.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -64,14 +47,9 @@ \usepackage{tudscrfonts} \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} @@ -95,6 +73,16 @@ % 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} +%<*package&identify> +\ProvidesPackage{tudscrmanual}[% +%!TUD@Version + package (tudscr tutorials)% +] +\TUD@Class@Check{tudscrtutorial} +% +% \end{macrocode} % % \iffalse %<*package&body> diff --git a/source/tudscr-mathswap.dtx b/source/tudscr-mathswap.dtx index 3c1ee0e3..5ab771ef 100644 --- a/source/tudscr-mathswap.dtx +++ b/source/tudscr-mathswap.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-mathswap.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,30 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-mathswap.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-mathswap.dtx}[2022/07/28 v2.06 TUD-Script\space% -% -% \iffalse -% -%\NeedsTeXFormat{LaTeX2e} -%\ProvidesPackage{mathswap}[% -%<*package> -%!TUD@Version -% -% package -%<*dtx|package> -% \fi -% - (swap mathematical separators)% -] -% -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-mathswap.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -67,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-mathswap.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} @@ -124,6 +99,16 @@ % jedoch zwischen Trennzeichen und Ziffer Leerraum befinden, wird dieser als % solcher auch gesetzt. % +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{mathswap}[% +%!TUD@Version + package (swap mathematical separators)% +] +% +% \end{macrocode} +% % \iffalse %<*package> % \fi diff --git a/source/tudscr-misc.dtx b/source/tudscr-misc.dtx index c6158464..a2f65a06 100644 --- a/source/tudscr-misc.dtx +++ b/source/tudscr-misc.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-misc.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-misc.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-misc.dtx}[2022/07/28 v2.06m TUD-Script\space% - (miscellaneous)% -] -% -% \iffalse +\ProvidesFile{tudscr-misc.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-misc.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} @@ -643,11 +632,14 @@ % \begin{macrocode} \TUDProcessOptions\relax %<*class&!inherit> -\LoadClass{\TUD@Class@KOMA}[2020/09/21] +\LoadClass{\TUD@Class@KOMA}[% +%!TUD@KOMAVersion +] % %<*class&inherit> -%\PassOptionsToClass{ttfont=roboto}{\TUD@Class@Parent} -\LoadClass{\TUD@Class@Parent} +\LoadClass{\TUD@Class@Parent}[% +%!TUD@Version +] % % \end{macrocode} % @@ -722,7 +714,9 @@ % % Bugfixes für unterschiedliche Pakete. % \begin{macrocode} -\RequirePackage{scrhack}[2014/02/27] +\RequirePackage{scrhack}[% +%!TUD@KOMAVersion +] % \end{macrocode} % Das Paket für intelligente Leerzeichen am Ende von Makros mit \cs{xspace}. % \begin{macrocode} @@ -1115,7 +1109,7 @@ % sowie die mindestens notwendige Version von \KOMAScript{} aus. % \begin{macrocode} \newcommand*\vTUDScript{v\TUDScriptVersionNumber} -\newcommand*\vKOMAScript{v\TUD@Version@KOMA} +\newcommand*\vKOMAScript{v\TUD@KOMAVersionNumber} % \end{macrocode} % \end{macro}^^A \vKOMAScript % \end{macro}^^A \vTUDScript @@ -1266,6 +1260,22 @@ } % \end{macrocode} % \end{macro}^^A \Attention +% \begin{macro}{\TUDScriptContactTitle} +% \changes{v2.07}{2019/09/26}{neu}^^A +% Die Angabe der E-Mail-Adresse auf dem Titel innerhalb von \cs{author}. +% \begin{macrocode} +\newrobustcmd*\TUDScriptContactTitle{% + \ifundef{\emailaddress}{% + \qquad\expandafter\mailto\expandafter{\TUDScriptContact}% + }{% + \expandafter\emailaddress\expandafter{\TUDScriptContact}% + }% +} +\AfterPackage*{hyperref}{% + \pdfstringdefDisableCommands{\let\TUDScriptContactTitle\relax}% +} +% \end{macrocode} +% \end{macro}^^A \TUDScriptContactTitle % % \iffalse % diff --git a/source/tudscr-pagestyle.dtx b/source/tudscr-pagestyle.dtx index 860210bf..05e5d75b 100644 --- a/source/tudscr-pagestyle.dtx +++ b/source/tudscr-pagestyle.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-pagestyle.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-pagestyle.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-pagestyle.dtx}[2022/07/28 v2.06l TUD-Script\space% - (pagestyle)% -] -% -% \iffalse +\ProvidesFile{tudscr-pagestyle.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-pagestyle.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} @@ -107,7 +96,9 @@ \PreventPackageFromLoading{scrlayer-scrpage}% \else \PassOptionsToPackage{automark}{scrlayer-scrpage}% - \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[2020/09/21]}% + \AtEndPreamble{\RequirePackage{scrlayer-scrpage}[% +%!TUD@KOMAVersion + ]}% \fi % \end{macrocode} % Für das Erzeugen der Seitenstile wird das Paket \pkg{scrlayer-scrpage} diff --git a/source/tudscr-supervisor.dtx b/source/tudscr-supervisor.dtx index 44fde50f..af2aa82b 100644 --- a/source/tudscr-supervisor.dtx +++ b/source/tudscr-supervisor.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-supervisor.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,27 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-supervisor.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-supervisor.dtx}[2022/07/28 v2.06c TUD-Script\space% -% -% \iffalse -% -%\ProvidesPackage{tudscrsupervisor}[% -%<*package> -%!TUD@Version -% -% package -%<*dtx|package> -% \fi - (commands for supervisors)% -] -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-supervisor.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -64,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-supervisor.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} @@ -91,8 +69,18 @@ % zur Erstellung der Aufgabenstellung einer Abschlussarbeit sowie eines % Gutachtens und eines Aushangs bereit. % +% \begin{macrocode} +%<*package&identify> +\ProvidesPackage{tudscrsupervisor}[% +%!TUD@Version + package (commands for supervisors)% +] +\TUD@Class@Check{tudscrsupervisor} +% +% \end{macrocode} +% % \iffalse -%<*package> +%<*package&body> % \fi % % \begin{macro}{\tud@multiple@fields@output} @@ -587,7 +575,7 @@ % \end{macro}^^A \noticeform % % \iffalse -% +% % \fi % % \PrintBackMatter diff --git a/source/tudscr-texindy.dtx b/source/tudscr-texindy.dtx index c33b7042..9bf007a5 100644 --- a/source/tudscr-texindy.dtx +++ b/source/tudscr-texindy.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-texindy.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-texindy.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-texindy.dtx}[2022/07/28 v2.06o TUD-Script\space% - (texindy style files)% -] -% -% \iffalse +\ProvidesFile{tudscr-texindy.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-texindy.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} diff --git a/source/tudscr-title.dtx b/source/tudscr-title.dtx index 6a26335f..eb1468aa 100644 --- a/source/tudscr-title.dtx +++ b/source/tudscr-title.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-title.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,16 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-title.dtx %<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-title.dtx}[2022/07/28 v2.06c TUD-Script\space% - (title)% -] -% -% \iffalse +\ProvidesFile{tudscr-title.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -53,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-title.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} diff --git a/source/tudscr-twocolfix.dtx b/source/tudscr-twocolfix.dtx index 97ca2873..a5897f38 100644 --- a/source/tudscr-twocolfix.dtx +++ b/source/tudscr-twocolfix.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-twocolfix.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -32,28 +33,9 @@ \fi \endbatchfile % -%%% From File: tudscr-twocolfix.dtx -%<*dtx> -% \fi -% -\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-twocolfix.dtx}[2022/07/28 v2.06 TUD-Script\space% -% -% \iffalse -% -%\NeedsTeXFormat{LaTeX2e} -%\ProvidesPackage{twocolfix}[% -%<*package> -%!TUD@Version -% -% package -%<*dtx|package> -% \fi - (twocolumn layout bugfix)% -] -% \iffalse -% %<*dtx> +\ProvidesFile{tudscr-twocolfix.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -65,14 +47,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-twocolfix.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} @@ -92,16 +69,26 @@ % % \section{Das Paket \pkg{twocolfix} -- Bugfix für den zweispaltigen Satz} % -% \LaTeXe"~Kernel enthält einen +% Der \LaTeXe"~Kernel enthält einen % \href{http://latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3126}{Fehler}, % wodurch im zweispaltigen Satz Kapitelüberschriften höher als im % einspaltigen Layout gesetzt werden. Zwar ist dieser schon länger bekannt, -% \href{https://github.com/latex3/latex2e/issues/509}{aber noch nicht behoben}. +% jedoch bisher noch nicht behoben (\GitHubRepo(latex3/latex2e)<509>). % % Das Paket \pkg{twocolfix} soll dies beheben. Eine Integration des Bugfixes % in \KOMAScript{} wurde bereits bei Markus Kohm angefragt, jedoch % \href{http://www.komascript.de/node/1681}{von ihm nicht weiter verfolgt}. % +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{twocolfix}[% +%!TUD@Version + package (twocolumn layout bugfix)% +] +% +% \end{macrocode} +% % \iffalse %<*package> % \fi diff --git a/source/tudscr-version.dtx b/source/tudscr-version.dtx index 84b5bc33..049c2583 100644 --- a/source/tudscr-version.dtx +++ b/source/tudscr-version.dtx @@ -1,9 +1,10 @@ % \iffalse meta-comment +%/GitFileInfo=tudscr-version.dtx % % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -22,10 +23,6 @@ % % \fi % -% \iffalse -%%% From File: tudscr-version.dtx -% \fi -% % \iffalse comment % Nicht verwirren lassen! In dieser Datei steht ein Teil der Dokumentation und % des Codes vor dem Treiber. Das ist notwendig, weil der Teil des Codes bereits @@ -54,74 +51,82 @@ % \subsection{Definition und Validierung der Version} % % \begin{macro}{\TUD@Version} -% \begin{macro}{\TUD@Version@Check} +% \begin{macro}{\TUD@@Version} % \changes{v2.02}{2014/07/22}{Expandieren der Versionsangabe bei der Verwendung % von \pkg{docstrip} ermöglicht}^^A -% \begin{macro}{\TUD@Version@KOMA} % \begin{macro}{\TUDScriptVersion} % \begin{macro}{\TUDScriptVersionNumber} -% Das Makro \cs{TUD@Version} gibt an, zu welcher \TUDScript"~Version die -% Datei gehört. Die Klassen und Pakete des Bundles verwenden dieses Makro -% außerdem zur eigenen Versionsangabe. Je nachdem, ob \cs{TUD@Version} -% bereits definiert ist oder nicht, wird mit \cs{TUD@Version@Check} die -% Definition überprüft oder eine globale Definition vorgenommen. Da das Ganze -% auch bei der Erstellung der Dokumentation geschieht, wird \cs{makeatletter} -% innerhalb einer Gruppe verwendet. Das Makro \cs{TUD@Version@KOMA} definiert -% die mindestens notwendige Version von \KOMAScript. In \cs{TUDScriptVersion} -% wird die Versioninformation für den Anwender definiert. +% \begin{macro}{\TUD@KOMAVersion} +% \begin{macro}{\TUD@KOMAVersionNumber} +% Die Klassen und Pakete des \TUDScript-Bundles verwenden \cs{TUD@Version} +% zur Versionsangabe. Je nachdem, ob \cs{TUD@Version} bereits definiert ist +% oder nicht, wird mit \cs{TUD@@Version} die Definition überprüft oder eine +% globale Definition vorgenommen. In \cs{TUD@KOMAVersion} wird die mindestens +% notwendige Version von \KOMAScript{} definiert. % \begin{macrocode} +%<*identify> +%\NeedsTeXFormat{LaTeX2e}[2022-06-01] \begingroup - \catcode`\@11\relax -%<*!(package|class)> - \ifx\newcommand\undefined - \gdef\TUD@Version@Check#1{% + \catcode`\@11\relax% +%<*!(class|package)> + \ifx\documentclass\undefined% + \gdef\TUD@@Version#1#2{% \gdef\TUD@Version{\space\space#1}% - \gdef\TUDScriptVersion{\space\space#1}% - \aftergroup\endinput% - } - \else -% - \ifx\TUD@Version\@undefined - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{\space\space#2}% + }% + \else% +% + \ifx\TUD@Version\@undefined% + \newcommand*\TUD@@Version[2]{% \gdef\TUD@Version{#1}% - \gdef\TUDScriptVersion{#1}% - \def\@tempb##1 v##2 ##3\relax##4\relax{\gdef\TUDScriptVersionNumber{##2}}% - \edef\@tempa{\TUD@Version}% - \expandafter\@tempb\@tempa\relax? ? \relax\relax% - \gdef\TUD@Version@KOMA{3.32}% - } - \else - \newcommand*\TUD@Version@Check[1]{% + \gdef\TUD@KOMAVersion{#2}% + }% + \else% + \newcommand*\TUD@@Version[2]{% \def\@tempa{#1}% \ifx\TUD@Version\@tempa\else% \@latex@warning@no@line{% \noexpand\TUD@Version\space is `\TUD@Version',\MessageBreak% but `#1' was expected!\MessageBreak% You should not use classes, packages or files from\MessageBreak% - different TUD-Script-Bundle versions% + different TUD-Script bundle versions% }% \fi% - } - \fi -%<*!(package|class)> - \fi -% - \TUD@Version@Check{2021/07/15 v2.06n TUD-Script} + }% + \fi% +%<*!(class|package)> + \fi% +% + \TUD@@Version{2022/08/09 v2.06o TUD-Script}{2022/05/01 v3.36 KOMA-Script}% + \ifx\TUDScriptVersion\@undefined% + \xdef\TUDScriptVersion{\TUD@Version}% + \def\@tempa#1 v#2 #3\relax#4\relax#5{\gdef#5{#2}}% + \expandafter\@tempa\TUD@Version ? ?\relax\relax{\TUDScriptVersionNumber}% + \expandafter\@tempa\TUD@KOMAVersion ? ?\relax\relax{\TUD@KOMAVersionNumber}% + \fi% \endgroup +% % \end{macrocode} +% \end{macro}^^A \TUD@KOMAVersionNumber +% \end{macro}^^A \TUD@KOMAVersion % \end{macro}^^A \TUDScriptVersionNumber % \end{macro}^^A \TUDScriptVersion -% \end{macro}^^A \TUD@Version@KOMA -% \end{macro}^^A \TUD@Version@Check +% \end{macro}^^A \TUD@@Version % \end{macro}^^A \TUD@Version % -% \iffalse +% \iffalse ins:batch + dtx:driver +%<*ins> +\ifx\documentclass\undefined + \input docstrip.tex + \ifToplevel{\batchinput{tudscr.ins}} +\else + \let\endbatchfile\relax +\fi +\endbatchfile +% %<*dtx> -% \fi -% -\ProvidesFile{tudscr-version.dtx}[\TUDScriptVersion\space (versions)] -% -% \iffalse +\ProvidesFile{tudscr-version.dtx}[2022/08/09] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -133,14 +138,9 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscr-version.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} @@ -148,21 +148,49 @@ % % \fi % -% Als erstes das benötigte \LaTeX-Format. +% \iffalse comment +% Der Rest wird nicht mehr vom Treiber benötigt. +% \fi +% +% \iffalse +%<*identify> +% \fi +% +% \subsection{Das \TUDScript-Logo und Anlaufstellen} +% \begin{macro}{\TUDScript} +% Der Schriftzug von \TUDScript. % \begin{macrocode} -%\NeedsTeXFormat{LaTeX2e}[2019/10/01] +\@ifundefined{TUDScript}{% + \DeclareRobustCommand\TUDScript{% + \mbox{% + \textsf{% + T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% + }% + }\ifcsname xspace\endcsname\xspace\fi% + }% +}{} % \end{macrocode} -% \begin{macro}{\tudscrmail} -% Die E"~Mail-Adresse für Supportanfragen. +% \end{macro}^^A \TUDScript +% +% \begin{macro}{\TUDScriptContact} +% \begin{macro}{\TUDScriptRepository} +% \begin{macro}{\TUDScriptForum} +% Die E"~Mail-Adresse, Repository und Forum für Supportanfragen. % \begin{macrocode} -%\providecommand*\tudscrmail{hanisch.latex@outlook.com} +\providecommand*\TUDScriptContact{hanisch.latex@outlook.com} +\providecommand*\TUDScriptRepository{https://github.com/tud-cd/tudscr} +\providecommand*\TUDScriptForum{https://latex.wcms-file3.tu-dresden.de/phpBB3/} % \end{macrocode} -% \end{macro}^^A \tudscrmail +% \end{macro}^^A \TUDScriptForum +% \end{macro}^^A \TUDScriptRepository +% \end{macro}^^A \TUDScriptContact % % \iffalse %<*class> % \fi % +% \subsection{Laden von Klassen und Paketen} +% % \begin{macro}{\TUD@ProvidesClass} % \changes{v2.04}{2015/06/13}{neu}^^A % \begin{macro}{\TUD@ProvidesWrapperClass} @@ -173,6 +201,8 @@ % \changes{v2.04}{2015/06/12}{neu}^^A % \begin{macro}{\TUD@Class@KOMA} % \changes{v2.04}{2015/06/12}{neu}^^A +% \begin{macro}{\TUDScriptClassName} +% \begin{macro}{\TUDClassName} % Mit diesen Befehlen erfolgt die Versionsangabe der \TUDScript-Klassen beim % Laden. Dabei werden hier einmalig die Namen der jeweiligen Klassen definiert. % Hierfür werden die Befehle \cs{TUD@ProvidesClass} für die Hauptklassen und @@ -181,31 +211,28 @@ % Argument entspricht der Basis-Klasse. Das dritte Argument enthält eine kurze % Beschreibung. % \begin{macrocode} -%<*!inherit> -\newcommand*\TUD@ProvidesClass[3]{% +%\newcommand*\TUD@ProvidesClass[3] +%\newcommand*\TUD@ProvidesWrapperClass[3] +{% \ProvidesClass{#1}[% %!TUD@Version #3 (#2)% ]% - \newcommand*\TUD@Class@KOMA{#2}% - \ifx\TUD@Class@Parent\@undefined% - \newcommand*\TUD@Class@Name{#1}% - \TUD@Class@Info% - \fi% -} -% -%<*inherit> -\newcommand*\TUD@ProvidesWrapperClass[3]{% - \ProvidesClass{#1}[% -%!TUD@Version - #3 (#2)% - ]% - \newcommand*\TUD@Class@Parent{#2}% +% \newcommand*\TUD@Class@KOMA{#2}% +% \newcommand*\TUD@Class@Parent{#2}% +% \ifx\TUD@Class@Parent\@undefined% \newcommand*\TUD@Class@Name{#1}% +% \end{macrocode} +% Die Benutzermakros für den Namen der verwendeten \TUDScript-Klasse. +% \begin{macrocode} + \newcommand*\TUDScriptClassName{#1}% + \providecommand*\TUDClassName{\TUDScriptClassName}% \TUD@Class@Info% +% \fi% } -% % \end{macrocode} +% \end{macro}^^A \TUDClassName +% \end{macro}^^A \TUDScriptClassName % \end{macro}^^A \TUD@Class@KOMA % \end{macro}^^A \TUD@Class@Parent % \end{macro}^^A \TUD@Class@Name @@ -219,11 +246,11 @@ \providecommand*\TUD@Class@Info{% \typeout{+------------------------------------------------------------------}% \typeout{| Corporate Design of Technische Universitaet Dresden}% - \typeout{| Class: \TUD@Class@Name}% - \typeout{| Version: \TUD@Version}% - \typeout{| Author: Falk Hanisch (\tudscrmail)}% - \typeout{| Repository: https://github.com/tud-cd/tudscr}% - \typeout{| Forum: https://latex.wcms-file3.tu-dresden.de}% + \typeout{| Class: \TUDScriptClassName}% + \typeout{| Version: \TUDScriptVersion}% + \typeout{| Author: Falk Hanisch (\TUDScriptContact)}% + \typeout{| Repository: \TUDScriptRepository}% + \typeout{| Forum: \TUDScriptForum}% \typeout{+------------------------------------------------------------------}% } % \end{macrocode} @@ -237,62 +264,38 @@ %\TUD@ProvidesClass{tudscrdoc}{scrartcl}{source code documentation class} %\TUD@ProvidesWrapperClass{tudscrmanual}{tudscrreprt}{manual class} % \end{macrocode} -% \begin{macro}{\TUDScriptClassName} -% \begin{macro}{\TUDClassName} -% Die Benutzermakros für den Namen der verwendeten \TUDScript-Klasse. -% \begin{macrocode} -\edef\TUDScriptClassName{\TUD@Class@Name} -\providecommand*\TUDClassName{\TUDScriptClassName} -% \end{macrocode} -% \end{macro}^^A \TUDClassName -% \end{macro}^^A \TUDScriptClassName % % \iffalse % -%<*package&(supervisor|comp|manual)> +%<*package> +%<*supervisor|comp|manual> % \fi % -% \section{Verwendbarkeit von \TUDScript-Paketen} -% +% \begin{macro}{\TUD@Class@Check} +% \changes{v2.06o}{2022/08/09}{neu}^^A % Einige Pakete sind nur mit den \TUDScript-Klassen verwendbar. Diese erzeugen -% einen Fehler, wenn sie nicht mit diesen verwendet werden. +% einen Fehler, wenn sie nicht mit einer dieser verwendet werden. % \begin{macrocode} -\ifx\TUD@Class@Name\@undefined - \PackageError{% -% tudscrsupervisor% -% tudscrcomp% -% tudscrmanual% - }{Unsupported class found}{% - This package can only be used with a class out of the\MessageBreak% - tudscr bundle (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% - }% - \endinput% -\fi +\providecommand*\TUD@Class@Check[1]{% + \ifx\TUD@Class@Name\@undefined% + \PackageError{#1}{TUD-Script class not loaded}{% + This package requires a class of the TUD-Script bundle\MessageBreak% + (tudscrbook, tudscrreprt, tudscrartcl, tudscrposter).% + }% + \DeclareOption*{}% + \ProcessOptions\relax% + \expandafter\endinput% + \fi% +}% % \end{macrocode} +% \end{macro}^^A \TUD@Class@Check % % \iffalse -% +% +% +% % \fi % -% \section{Das \TUDScript-Logo} -% \begin{macro}{\TUDScript} -% Der Schriftzug von \TUDScript. -% \begin{macrocode} -%<*package|class> -\@ifundefined{TUDScript}{% - \DeclareRobustCommand\TUDScript{% - \textsf{% - T\kern.05em U\kern.05em D\kern.1em-\kern.1em Script% - }% - \ifcsname xspace\endcsname% - \xspace% - \fi% - }% -}{} -% -% \end{macrocode} -% \end{macro}^^A \TUDScript -% % \PrintBackMatter % \endinput diff --git a/source/tudscr.ins b/source/tudscr.ins index a7dfa648..6b19540f 100644 --- a/source/tudscr.ins +++ b/source/tudscr.ins @@ -2,7 +2,7 @@ % TUD-Script -- Corporate Design of Technische Universität Dresden % ---------------------------------------------------------------------------- % -% Copyright (C) Falk Hanisch , 2012-2021 +% Copyright (C) Falk Hanisch , 2012-2022 % % ---------------------------------------------------------------------------- % @@ -24,29 +24,54 @@ \gdef\processLineX%#1{* \ifcase\ifx%#10\else \ifx<#11\else - \ifx!#12\else 3\fi\fi\fi\relax + \ifx!#12\else + \ifx/#13\else 4\fi\fi\fi\fi\relax \expandafter\putMetaComment\or \expandafter\checkOption\or - \expandafter\expandVariable\or + \expandafter\TUDexpandVariable\or + \expandafter\TUDexpandCommand\or \expandafter\removeComment\fi #1} \endgroup -\def\expandVariable!#1\endLine{% - \advance\codeLinesPassed\@ne - \maybeMsg{x}% - \edef\inLine{\csname #1\endcsname}% - \let\do\putline@do - \activefiles +\def\TUDexpandVariable!#1\endLine{% + \expandafter\ifx\csname#1\endcsname\relax + \errmessage{% + You've tried to expand the undefined command^^J% + \expandafter\string\csname#1\endcsname% + }% + \else + \advance\codeLinesPassed\@ne + \maybeMsg{x}% + \edef\inLine{\csname#1\endcsname}% + \let\do\putline@do + \activefiles + \fi +} +\def\TUDexpandCommand/#1=#2\endLine{% + \expandafter\ifx\csname#1\endcsname\relax + \errmessage{% + You've tried to expand the undefined command^^J% + \expandafter\string\csname#1\endcsname% + }% + \else + \advance\codeLinesPassed\@ne + \maybeMsg{x}% + \expandafter\edef\expandafter\inLine\expandafter{\csname#1\endcsname{#2}}% + \let\do\putline@do + \activefiles + \fi } \@@input tudscr-version.dtx +\@@input tudscr-gitinfo.dtx \keepsilent \preamble TUD-Script -- Corporate Design of Technische Universitaet Dresden + \TUD@Version -\TUD@Version - -Copyright (C) Falk Hanisch , 2012-2021 +Copyright (C) Falk Hanisch , 2012-2022 + https://github.com/tud-cd/tudscr + https://latex.wcms-file3.tu-dresden.de/phpBB3/ This file was generated from file(s) of the TUD-Script bundle. ---------------------------------------------------------------------------- @@ -67,12 +92,11 @@ The current maintainer and author of this work is Falk Hanisch. \usedir{tex/latex/tudscr} \generate{% \usepreamble\defaultpreamble% - \file{tudscrbase.sty}{% - \from{tudscr-version.dtx}{package,base}% - \from{tudscr-base.dtx}{package,base}% - } \file{tudscrbook.cls}{% - \from{tudscr-version.dtx}{class,book}% + \from{tudscr-version.dtx}{class,book,identify}% + \needed{tudscr-fonts.dtx}% + \needed{tudscr-supervisor.dtx}% + \needed{tudscr-comp.dtx}% \from{tudscr-base.dtx}{class,book,load}% \from{tudscr-base.dtx}{class,book,option}% \from{tudscr-fonts.dtx}{class,book,option}% @@ -93,11 +117,14 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,book,body}% \from{tudscr-title.dtx}{class,book,body}% \from{tudscr-frontmatter.dtx}{class,book,body}% - \from{tudscr-comp.dtx}{class,book,body}% \from{tudscr-misc.dtx}{class,book,body}% + \from{tudscr-comp.dtx}{class,book,body}% } \file{tudscrreprt.cls}{% - \from{tudscr-version.dtx}{class,report}% + \from{tudscr-version.dtx}{class,report,identify}% + \needed{tudscr-fonts.dtx}% + \needed{tudscr-supervisor.dtx}% + \needed{tudscr-comp.dtx}% \from{tudscr-base.dtx}{class,report,load}% \from{tudscr-base.dtx}{class,report,option}% \from{tudscr-fonts.dtx}{class,report,option}% @@ -118,11 +145,14 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,report,body}% \from{tudscr-title.dtx}{class,report,body}% \from{tudscr-frontmatter.dtx}{class,report,body}% - \from{tudscr-comp.dtx}{class,report,body}% \from{tudscr-misc.dtx}{class,report,body}% + \from{tudscr-comp.dtx}{class,report,body}% } \file{tudscrartcl.cls}{% - \from{tudscr-version.dtx}{class,article}% + \from{tudscr-version.dtx}{class,article,identify}% + \needed{tudscr-fonts.dtx}% + \needed{tudscr-supervisor.dtx}% + \needed{tudscr-comp.dtx}% \from{tudscr-base.dtx}{class,article,load}% \from{tudscr-base.dtx}{class,article,option}% \from{tudscr-fonts.dtx}{class,article,option}% @@ -143,11 +173,14 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,article,body}% \from{tudscr-title.dtx}{class,article,body}% \from{tudscr-frontmatter.dtx}{class,article,body}% - \from{tudscr-comp.dtx}{class,article,body}% \from{tudscr-misc.dtx}{class,article,body}% + \from{tudscr-comp.dtx}{class,article,body}% } \file{tudscrposter.cls}{% - \from{tudscr-version.dtx}{class,poster}% + \from{tudscr-version.dtx}{class,poster,identify}% + \needed{tudscr-fonts.dtx}% + \needed{tudscr-supervisor.dtx}% + \needed{tudscr-comp.dtx}% \from{tudscr-base.dtx}{class,poster,load}% \from{tudscr-base.dtx}{class,poster,option}% \from{tudscr-fonts.dtx}{class,poster,option}% @@ -168,64 +201,52 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-layout.dtx}{class,poster,body}% \from{tudscr-title.dtx}{class,poster,body}% \from{tudscr-frontmatter.dtx}{class,poster,body}% - \from{tudscr-comp.dtx}{class,poster,body}% \from{tudscr-misc.dtx}{class,poster,body}% + \from{tudscr-comp.dtx}{class,poster,body}% + } + \file{tudscrbase.sty}{% + \from{tudscr-version.dtx}{package,base,identify}% + \from{tudscr-base.dtx}{package,base}% + } + \file{tudscrcolor.sty}{% + \from{tudscr-version.dtx}{package,color,identify}% + \from{tudscr-color.dtx}{package,color}% } -} -\generate{% - \usepreamble\defaultpreamble% \file{tudscrsupervisor.sty}{% - \from{tudscr-version.dtx}{package,supervisor}% - \from{tudscr-supervisor.dtx}{package,supervisor}% - \from{tudscr-fields.dtx}{package,supervisor}% - \from{tudscr-localization.dtx}{package,supervisor}% + \from{tudscr-version.dtx}{package,supervisor,identify}% + \from{tudscr-supervisor.dtx}{package,supervisor,identify}% + \from{tudscr-fields.dtx}{package,supervisor,body}% + \from{tudscr-localization.dtx}{package,supervisor,body}% + \from{tudscr-supervisor.dtx}{package,supervisor,body}% + } + \file{tudscrcomp.sty}{% + \from{tudscr-version.dtx}{package,comp,identify}% + \from{tudscr-comp.dtx}{package,comp,identify}% + \needed{tudscr-misc.dtx}% + \from{tudscr-comp.dtx}{package,comp,option}% + \from{tudscr-misc.dtx}{package,comp,execute}% + \from{tudscr-comp.dtx}{package,comp,body}% } -} -\generate{% - \usepreamble\defaultpreamble% \file{tudscrfonts.sty}{% - \from{tudscr-version.dtx}{package,fonts}% + \from{tudscr-version.dtx}{package,fonts,identify}% \from{tudscr-fonts.dtx}{package,fonts,identify}% + \needed{tudscr-comp.dtx}% \from{tudscr-base.dtx}{package,fonts,load}% \from{tudscr-fonts.dtx}{package,fonts,option}% \from{tudscr-misc.dtx}{package,fonts,option}% \from{tudscr-comp.dtx}{package,fonts,option}% \from{tudscr-misc.dtx}{package,fonts,execute}% \from{tudscr-fonts.dtx}{package,fonts,body}% - \from{tudscr-comp.dtx}{package,fonts,body}% \from{tudscr-misc.dtx}{package,fonts,body}% + \from{tudscr-comp.dtx}{package,fonts,body}% } -} -\generate{% - \usepreamble\defaultpreamble% - \file{tudscrcolor.sty}{% - \from{tudscr-version.dtx}{package,color}% - \from{tudscr-color.dtx}{package,color}% - } - \file{twocolfix.sty}{% - \from{tudscr-twocolfix.dtx}{package}% - } - \file{mathswap.sty}{% - \from{tudscr-mathswap.dtx}{package}% - } -} -\generate{% - \usepreamble\defaultpreamble% - \file{tudscrcomp.sty}{% - \from{tudscr-version.dtx}{package,comp}% - \from{tudscr-comp.dtx}{package,comp,identify}% - \from{tudscr-comp.dtx}{package,comp,option}% - \from{tudscr-misc.dtx}{package,comp,execute}% - \from{tudscr-comp.dtx}{package,comp,body}% - } -} -\generate{% - \usepreamble\defaultpreamble% \file{fix-tudscrfonts.sty}{% - \from{tudscr-version.dtx}{package,fixfonts}% + \from{tudscr-version.dtx}{package,fixfonts,identify}% \from{tudscr-comp.dtx}{package,fixfonts,identify}% \from{tudscr-base.dtx}{package,fixfonts,load}% \from{tudscr-layout.dtx}{package,fixfonts,option}% + \needed{tudscr-misc.dtx}% + \needed{tudscr-comp.dtx}% \from{tudscr-misc.dtx}{package,fixfonts,execute}% \from{tudscr-layout.dtx}{package,fixfonts,body}% \from{tudscr-comp.dtx}{package,fixfonts,body}% @@ -234,8 +255,8 @@ The current maintainer and author of this work is Falk Hanisch. \generate{% \usepreamble\defaultpreamble% \file{tudscrmanual.cls}{% - \from{tudscr-version.dtx}{class,manual,inherit}% - \from{tudscr-manual.dtx}{class,manual}% + \from{tudscr-version.dtx}{class,manual,identify,inherit}% + \needed{tudscr-manual.dtx}% \from{tudscr-base.dtx}{class,manual,inherit,load}% \from{tudscr-misc.dtx}{class,manual,option}% \from{tudscr-manual.dtx}{class,manual,option}% @@ -247,7 +268,7 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-texindy.dtx}{class,manual}% } \file{tudscrmanual.sty}{% - \from{tudscr-version.dtx}{package,manual}% + \from{tudscr-version.dtx}{package,manual,identify}% \from{tudscr-manual.dtx}{package,manual,identify}% \from{tudscr-base.dtx}{package,manual,load}% \from{tudscr-misc.dtx}{package,manual,option}% @@ -261,7 +282,7 @@ The current maintainer and author of this work is Falk Hanisch. \generate{% \usepreamble\defaultpreamble% \file{tudscrdoc.cls}{% - \from{tudscr-version.dtx}{class,doc}% + \from{tudscr-version.dtx}{class,doc,identify}% \from{tudscr-base.dtx}{class,doc,load}% \from{tudscr-misc.dtx}{class,doc,option}% \from{tudscr-doc.dtx}{class,doc,option}% @@ -271,4 +292,17 @@ The current maintainer and author of this work is Falk Hanisch. \from{tudscr-texindy.dtx}{class,doc}% } } +\generate{% + \usepreamble\defaultpreamble% + \file{tudscr-gitinfo.sty}{% + \from{tudscr-version.dtx}{package,git,identify}% + \from{tudscr-gitinfo.dtx}{identify,package}% + } + \file{twocolfix.sty}{% + \from{tudscr-twocolfix.dtx}{package}% + } + \file{mathswap.sty}{% + \from{tudscr-mathswap.dtx}{package}% + } +} \endbatchfile diff --git a/source/tudscrsource.tex b/source/tudscrsource.tex index 99f37759..92ef3fa4 100644 --- a/source/tudscrsource.tex +++ b/source/tudscrsource.tex @@ -6,12 +6,7 @@ \fi \endbatchfile -\begingroup - \def\ProvidesFile#1[#2]{\csname endinput\endcsname}% - \input tudscr-version.dtx - \gdef\filename{\jobname} -\endgroup -\ProvidesFile{tudscrsource.tex}[\TUDScriptVersion (sourcedoc)] +\RequirePackage{tudscr-gitinfo} \documentclass[english,ngerman,xindy]{tudscrdoc} \iftutex \usepackage{fontspec} @@ -23,17 +18,13 @@ \usepackage{tudscrfonts} \usepackage[babel]{microtype} -%\EnableCrossrefs -\CodelineIndex -\RecordChanges -\GetFileInfo{tudscrsource.tex} - +\GitHubBase{\TUDScriptRepository} \begin{document} \addtokomafont{subject}{\sffamily} \subject{\TUDScript basierend auf \KOMAScript} \title{Ein \LaTeX-Bundle für Dokumente \mbox{im \CD der} \mbox{\TnUD}} \subtitle{Quelltextdokumentation} -\author{Falk Hanisch\qquad\expandafter\mailto\expandafter{\tudscrmail}} +\author{Falk Hanisch\TUDScriptContactTitle} \date{\TUDScriptVersion} \makeatletter