diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx | 695 |
1 files changed, 479 insertions, 216 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx index b1bf79fe8a5..af70ac7217d 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx @@ -1,4 +1,4 @@ -% \CheckSum{4201} +% \CheckSum{4334} % \iffalse meta-comment % ====================================================================== % scrkernel-basics.dtx @@ -55,7 +55,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-basics.dtx 3262 2019-10-10 08:25:29Z kohm $ +%%% From File: $Id: scrkernel-basics.dtx 3409 2019-11-26 16:16:24Z kohm $ %<prepare>%%% (run: prepare) %<option>%%% (run: option) %<body>%%% (run: body) @@ -65,7 +65,7 @@ \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}} - \filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $ + \filedate$Date: 2019-11-26 17:16:24 +0100 (Tue, 26 Nov 2019) $ \def\filerevision$#1: #2 ${\def\filerevision{r#2}} \filerevision$Revision: 1638 $ \xdef\fileinfo{\filedate\space\filerevision\space} @@ -277,17 +277,10 @@ % % \begin{macro}{\PackageErrorNoLine} % \changes{v3.12}{2013/09/19}{neu}%^^A -% Dieses Makro wird zwar bereits seit langem für einige wenige Fehlermeldungen -% verwendet, existierte bisher aber nicht. Es wird für Fehlermeldungen -% verwendet, denen keine eindeutige Zeilennummer zugeordnet werden kann. In -% der Regel ist dies zu vermeiden und besser \cs{PackageError} zu verwenden. -% \begin{macrocode} -%<*base> -\newcommand*\PackageErrorNoLine[2]{% - \PackageError{#1}{#2\@gobble}% -} -%</base> -% \end{macrocode} +% \changes{v3.28}{2019/11/23}{unsinnige Anweisung entfernt}%^^A +% Wie Falk richtig angemerkt hat, ist die Anweisung sinnlos, weil +% \cs{PackageError} gar keine Zeilennummer anhängt. Verwendet wurde die +% Anweisung nur in einem veralteten Paket. % \end{macro} % % @@ -721,6 +714,7 @@ % % \begin{macro}{\KOMA@kav@defone} % \changes{v3.17}{2015/02/25}{neu (\KOMAScript intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Dieses Makro liefert alle aktuellen Werte eine Schlüssels aus der % \texttt{key=value}-Liste aller gespeicherten Paare. Falls es mehr als einen % Wert gibt, so werden diese \cs{KOMAoption}-tauglich verknüpft. Das erste @@ -736,7 +730,7 @@ \begingroup \let\reserved@a\@empty \def\reserved@b##1##2{% - \ifstr{##1}{#3}{\l@addto@macro\reserved@a{,{##2}}}{}% + \Ifstr{##1}{#3}{\l@addto@macro\reserved@a{,{##2}}}{}% }% \def\do##1{\reserved@b##1}% \@nameuse{scr@kav@KOMA#2}% @@ -1237,30 +1231,40 @@ % \begin{option}{internalonly} % \changes{v2.96}{2006/11/26}{neu}%^^A % \changes{v2.97c}{2007/06/20}{geht auch ohne Argument}%^^A +% \changes{v3.27a}{2019/11/04}{\cs{FamilyKeyStateProcessed} ergänzt}%^^A +% \changes{v3.27a}{2019/11/04}{nur innerhalb des Pakets definiert}%^^A +% \changes{v3.27a}{2019/11/04}{temporär in den Klassen definiert}%^^A +% \changes{v3.28}{2019/11/18}{Option ist veraltet}%^^A % \begin{macro}{\dont@let@as@internal@defined} % \changes{v2.96}{2006/11/26}{neu (intern)}%^^A -% Anweisungen, die mit einem internen und einem Anwendername vorhanden sind, -% können vor dem Anwender optional verborgen werden. Wird kein Argument -% angegeben, so werden alle Anweisungen verborgen. +% \changes{v3.28}{2019/11/18}{entfernt}%^^A % \begin{macrocode} %<*base> -\newcommand*{\dont@let@as@internal@defined}{/} -\newif\if@let@as@internalonly@defined\@let@as@internalonly@definedfalse \DefineFamily{KOMA} \DefineFamilyMember{KOMA} \DefineFamilyKey{KOMA}{internalonly}[\relax]{% - \ifx\relax#1\relax - \@let@as@internalonly@definedtrue - \else - \@let@as@internalonly@definedfalse - \begingroup - \@expandtwoargs\in@{#1}\dont@let@as@internal@defined - \expandafter\endgroup - \ifin@\else\g@addto@macro\dont@let@as@internal@defined{#1/}\fi - \fi + \PackageInfo{scrbase}{Ignoring deprecated option `internalonly'}% + \FamilyKeyStateProcessed +} +\AtEndOfPackage{% + \RelaxFamilyKey[.scrbase.sty]{KOMA}{internalonly}% } %</base> % \end{macrocode} +% Da \textsf{scrbase} von den Klassen bereits vor der Verarbeitung der +% Optionen geladen wird, wird die Option zwar verarbeitet aber dann trotzdem +% als unbekannt gemeldet. Das kann man notdürftig beheben, indem die Klasse +% vorrübergehend eine Dummy-Option erhält. +% \begin{macrocode} +%</option> +%<*load&class&neveruse> +\KOMA@key{internalonly}[\relax]{% + \FamilyKeyStateProcessed +} +\AtEndOfClass{\RelaxFamilyKey[.\KOMAClassFileName]{KOMA}{internalonly}}% +%</load&class&neveruse> +%<*option> +% \end{macrocode} % \end{macro} % \end{option} % @@ -1376,105 +1380,54 @@ % \changes{v2.95}{2002/08/19}{neu (intern)}%^^A % \changes{v2.95c}{2006/08/12}{Warnung bei Umdefinierung}%^^A % \changes{v2.96}{2006/11/26}{Herausreichen von internen Makros als -% Benutzermakros kann verhindert werden}%^^A +% Benutzermakros kann verhindert werden}%^^A % \changes{v2.97c}{2007/06/20}{Herausreichen von internen Makros kann -% generell verhindert werden}%^^A +% generell verhindert werden}%^^A % \changes{v3.10}{2010/10/26}{\cs{ignorespaces} beim \cs{document}-Patch -% ergänzt} +% ergänzt} % \changes{v3.13a}{2014/08/13}{potentielle Leerzeichen durch Zeilenumbruch -% beseitigt}%^^A -% Dieses Makro wird intern verwendet, um dokumentierte Makros mit der -% Definition von internen Makros zu versehen, falls sie nicht bereits -% definiert oder als nicht zu definieren markiert sind. Der Name des -% dokumentierten Makros wird als Parameter übergeben. Dies wird gleich -% benötigt. -% \begin{macrocode} -%<*base> -\newcommand*{\let@as@internal@defined}[1]{% - \begingroup - \if@let@as@internalonly@defined - \in@true - \else - \@expandtwoargs\in@{/#1/}\dont@let@as@internal@defined - \fi - \expandafter\endgroup - \ifin@ - \PackageInfo{% - scrbase% - }{% - \expandafter\string\csname #1\endcsname\space excluded from being - defined% - }% - \else - \@ifundefined{#1}{% - \begingroup - \expandafter\def\expandafter\reserved@a - \expandafter{\csname scr@#1\endcsname}% - \expandafter\def\expandafter\reserved@b - \expandafter{\csname #1\endcsname}% - \expandafter\expandafter\expandafter\endgroup - \expandafter\expandafter\expandafter\let\expandafter\reserved@b\reserved@a - \if@atdocument\else - \g@addto@macro\document{% - \expandafter\ifx\csname #1\expandafter\endcsname - \csname scr@#1\endcsname - \else - \PackageWarning{scrbase}{% - \expandafter\string\csname #1\endcsname\space was - redefined\MessageBreak - at the document preamble.\MessageBreak - If you did not redefine it by yourself, have a\MessageBreak - a look at the description of this command at\MessageBreak - the manual of every package you are using\@gobble - }% - \fi - \ignorespaces - }% - \fi - }{% - \PackageInfo{% - scrbase% - }{% - \expandafter\string\csname #1\endcsname\space already - defined.\MessageBreak - If \expandafter\string\csname #1\endcsname\space does not behave - like\MessageBreak - it was described at the KOMA-Script manual, try to\MessageBreak - load `scrbase.\scr@pkgextension' earlier or find out at - which\MessageBreak - package or class \expandafter\string\csname #1\endcsname\space - was defined before\@gobble - }% - }% - \fi -} -%</base> -% \end{macrocode} +% beseitigt}%^^A +% \changes{v3.28}{2019/11/18}{entfernt}%^^A % \end{macro} % % \begin{macro}{\ifundefinedorrelax} % \changes{v2.95}{2002/08/21}{neu}%^^A % \changes{v2.95c}{2006/08/12}{über interne Anweisung definiert}%^^A -% \changes{v2.97c}{2007/06/20}{umbenannt von \cs{ifundefined}} +% \changes{v2.97c}{2007/06/20}{umbenannt von \cs{ifundefined}}%^^A +% \changes{3.28}{2019/11/18}{umbenannt in \cs{Ifundefinedorrelax}}%^^A +% \begin{macro}{\Ifundefinedorrelax}%^^A % Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber % ein undefiniertes Makro nicht als \cs{relax}. % \begin{macrocode} %<*base> -\let@as@internal@defined{ifundefinedorrelax} +\newcommand*{\Ifundefinedorrelax}{scr@ifundefinedorrelax}% %</base> % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\ifnotundefined} % \changes{v2.95}{2002/08/21}{neu}%^^A -% \changes{v2.95c}{2006/08/12}{nutzt \eTeX{} wenn möglich} -% \changes{v3.02c}{2009/02/19}{\eTeX{} ist zwingend} +% \changes{v2.95c}{2006/08/12}{nutzt \eTeX{} wenn möglich}%^^A +% \changes{v3.02c}{2009/02/19}{\eTeX{} ist zwingend}%^^A +% \changes{v3.28}{2019/11/18}{umdefiniert in \cs{Ifnotundefined}}%^^A +% \begin{macro}{\Ifnotundefined} +% \changes{v3.28}{2019/11/18}{neu Umbenennung von \cs{ifnotundefinded}}%^^A % Dieses Makro arbeitet genau umgekehrt zu \cs{ifundefined}. Manchmal % ist es ganz nützlich, auch das zu haben. Dieses Makro heißt nicht % \cs{ifdefined}, weil \eTeX\ bereits ein solches Primitiv bietet. % \begin{macrocode} %<*base> -\newcommand{\ifnotundefined}[1]{% +\providecommand*{\ifnotundefined}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifnotundefined'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifnotundefined' by `\string\Ifnotundefined'% + }% + \Ifnotundefined +} +\newcommand{\Ifnotundefined}[1]{% \ifcsname #1\endcsname \expandafter\@firstoftwo \else @@ -1484,15 +1437,29 @@ %</base> % \end{macrocode} % \end{macro} +% \end{macro} % % \begin{macro}{\ifstr} % \changes{v2.95}{2004/07/20}{if- und then-Teil werden nicht gefressen}%^^A -% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} +% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} +% ersetzt}%^^A +% \changes{v3.28}{2019/11/18}{umbenannt in \cs{IfStr}}%^^A +% \begin{macro}{\Ifstr} +% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifstr}}%^^A % Dieses Makro vergleicht zwei Tokenfolgen. Eigentlich müsste es also % eher \cs{ifequal} oder ähnlich heißen. % \begin{macrocode} %<*base> -\newcommand\ifstr[2]{% +\providecommand*{\ifstr}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifstr'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifstr' by `\string\Ifstr'% + }% + \Ifstr +} +\newcommand\Ifstr[2]{% \begingroup\protected@edef\reserved@a{#1}\protected@edef\reserved@b{#2}% \ifx\reserved@a\reserved@b \endgroup\expandafter\@firstoftwo @@ -1503,14 +1470,27 @@ %</base> % \end{macrocode} % \end{macro} +% \end{macro} % +% \begin{macro}{\Ifstrstart} +% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifstrstart}}%^^A % \begin{macro}{\ifstrstart} % \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Falls die Expansion des ersten Arguments mit der Expansion des zweiten % Arguments beginnt, wird das dritte Argument ausgeführt, sonst das vierte. % \begin{macrocode} %<*base> -\newcommand*{\ifstrstart}[2]{% +\providecommand*{\ifstrstart}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifstrstart'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifstrstart' by `\string\Ifstrstart'% + }% + \Ifstrstart +} +\newcommand*{\Ifstrstart}[2]{% \begingroup \edef\reserved@a{\noexpand\@ifstrstart{#1}{#2}}% \reserved@a{\aftergroup\@firstoftwo}{\aftergroup\@secondoftwo}% @@ -1535,6 +1515,7 @@ % \end{macrocode} % \end{macro}%^^A \@ifstrstart % \end{macro}%^^A \ifstrstart +% \end{macro}%^^A \Ifstrstart % % \begin{macro}{\IfArgIsEmpty} % \changes{v3.19}{2015/08/29}{neu}%^^A @@ -1573,18 +1554,20 @@ % \end{macrocode} % \begin{macro}{\scr@ifislengthprimitive} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Hilfsmacro, das ggf. rekusiv auf diverse Primitive prüft. % \begin{macrocode} \newcommand*{\scr@ifislengthprimitive}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifislengthprimitive }{% \def\reserved@c{\aftergroup\scr@secondoftwoAfterNil}% \@for\reserved@a:=\baselineskip,\dp,\hsize,\ht,\lineskip,% \parindent,\parskip,\pdfpageheight,\pdfpagewidth,% \wd,\vsize \do {% - \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{% + \expandafter\Ifstr\expandafter{\expandafter\string\reserved@a}{% \meaning #1% }{% \def\reserved@c{\aftergroup\scr@TestDimenAssignTillNil}% @@ -1604,25 +1587,38 @@ % \begin{macro}{\ifisdimen} % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisdimen}}%^^A +% \begin{macro}{\Ifisdimen} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisdimen}}%^^A % Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem % \cs{dimen}-Register (und zu nichts weiterem!) expandiert, wird das erste % Argument ausgeführt, sonst das zweite. % \begin{macrocode} %<*base> -\newcommand*{\ifisdimen}[1]{% +\providecommand*{\ifisdimen}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisdimen'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisdimen' by `\string\Ifisdimen'% + }% + \Ifisdimen +} +\newcommand*{\Ifisdimen}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdimen#1\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisdimen} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf ein \cs{dimen}-Register prüft % \begin{macrocode} \newcommand*{\scr@ifisdimen}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisdimen }{% - \ifstrstart{\meaning #1}{\string\dimen}{% + \Ifstrstart{\meaning #1}{\string\dimen}{% \aftergroup\scr@TestDimenAssignTillNil }{% \aftergroup\scr@secondoftwoAfterNil @@ -1649,8 +1645,12 @@ % \end{macrocode} % \begin{macro}{\scr@IfAfterEndgroupArgIsRelaxTillNnil} % \changes{v3.20}{2015/10/19}{neu (intern)} +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % \begin{macro}{\scr@IfArgIsRelaxAfterRelaxTillNnil} % \changes{v3.20}{2015/10/19}{neu (intern)} +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Die Hilfsmakros lesen ein durch \cs{@nnil} begrenztes Argument. Falls dieses % Argument nur aus einer Folge von \cs{relax} besteht, wird das erste Argument % nach \cs{@nnil} ausgeführt, sonst das zweite. @@ -1658,16 +1658,16 @@ \newcommand*\scr@AfterEndGroupIfArgIsRelaxTillNnil{} \def\scr@AfterEndGroupIfArgIsRelaxTillNnil#1\@nnil{% \endgroup - \ifstr{\detokenize{#1}}{\detokenize{\relax}}{\@firstoftwo}{% - \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% + \Ifstr{\detokenize{#1}}{\detokenize{\relax}}{\@firstoftwo}{% + \Ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% \scr@IfArgIsRelaxAfterRelaxTillNnil #1\@nnil }{\@secondoftwo}% }% } \newcommand*\scr@IfArgIsRelaxAfterRelaxTillNnil{} \def\scr@IfArgIsRelaxAfterRelaxTillNnil \relax#1\@nnil{% - \ifstr{\detokenize{#1}}{\detokenize{\relax}}{\@firstoftwo}{% - \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% + \Ifstr{\detokenize{#1}}{\detokenize{\relax}}{\@firstoftwo}{% + \Ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% \scr@IfArgIsRelaxAfterRelaxTillNnil #1\@nnil }{\@secondoftwo}% }% @@ -1693,6 +1693,7 @@ % \end{macrocode} % \end{macro}%^^A \scr@@secondoftwoAfterNil % \end{macro}%^^A \scr@secondoftwoAfterNil +% \end{macro}%^^A \Ifisdimen % \end{macro}%^^A \ifisdimen % % \begin{macro}{\ifisskip} @@ -1702,25 +1703,38 @@ % \changes{v3.20}{2015/10/19}{\cs{baselineskip} und \cs{parskip} sind keine % skips}%^^A % \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisskip}}%^^A +% \begin{macro}{\Ifisskip} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisskip}}%^^A % Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem % \cs{skip}-Register (und zu nichts weiterem!) expandiert, wird das erste % Argument ausgeführt, sonst das zweite. % \begin{macrocode} %<*base> -\newcommand*{\ifisskip}[1]{% +\providecommand*{\ifisskip}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisskip'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisskip' by `\string\Ifisskip'% + }% + \Ifisskip +} +\newcommand*{\Ifisskip}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisskip#1\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisskip} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf ein \cs{skip}-Register prüft % \begin{macrocode} \newcommand*{\scr@ifisskip}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisskip }{% - \ifstrstart{\meaning #1}{\string\skip}{% + \Ifstrstart{\meaning #1}{\string\skip}{% \aftergroup\scr@TestSkipAssignTillNil }{% \aftergroup\scr@secondoftwoAfterNil @@ -1747,30 +1761,44 @@ %</base> % \end{macrocode} % \end{macro}%^^A \scr@TestSkipAssignTillNil +% \end{macro}%^^A \Ifisskip % \end{macro}%^^A \ifiskip % % \begin{macro}{\ifiscount} % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifiscount}}%^^A +% \begin{macro}{\Ifiscount} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifiscount}}%^^A % Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem % \cs{count}-Register (und zu nichts weiterem!) expandiert, wird das erste % Argument ausgeführt, sonst das zweite. % \begin{macrocode} %<*base> -\newcommand*{\ifiscount}[1]{% +\providecommand*{\ifiscount}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifiscount'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifiscount' by `\string\Ifiscount'% + }% + \Ifiscount +} +\newcommand*{\Ifiscount}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifiscount#1\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifiscount} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf ein \cs{count}-Register prüft % \begin{macrocode} \newcommand*{\scr@ifiscount}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifiscount }{% - \ifstrstart{\meaning #1}{\string\count}{% + \Ifstrstart{\meaning #1}{\string\count}{% \aftergroup\scr@TestCountAssignTillNil }{% \aftergroup\scr@secondoftwoAfterNil @@ -1797,12 +1825,16 @@ %</base> % \end{macrocode} % \end{macro}%^^A \scr@TestCountAssignTillNil +% \end{macro}%^^A \Ifiscount % \end{macro}%^^A \ifiscount % % % \begin{macro}{\ifisdimexpr} % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisdimexpr}}%^^A +% \begin{macro}{\Ifisdimexpr} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisdimexpr}}%^^A % Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer % \cs{dimexpr} (und zu nichts weiterem!) expandiert, wird das erste % Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem @@ -1811,20 +1843,30 @@ % sondern führt tatsächlich zu einer Fehlermeldung. % \begin{macrocode} %<*base> -\newcommand*{\ifisdimexpr}[1]{% +\providecommand*{\ifisdimexpr}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisdimexpr'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisdimexpr' by `\string\Ifisdimexpr'% + }% + \Ifisdimexpr +} +\newcommand*{\Ifisdimexpr}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdimexpr#1\relax\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisdimexpr} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf eine \cs{dimexpr} prüft % \begin{macrocode} \newcommand*{\scr@ifisdimexpr}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisdimexpr }{% - \ifstrstart{\meaning #1}{\string\dimexpr}{% + \Ifstrstart{\meaning #1}{\string\dimexpr}{% \aftergroup\scr@TestDimenAssignTillNil }{% \aftergroup\scr@secondoftwoAfterNil @@ -1836,12 +1878,16 @@ %</base> % \end{macrocode} % \end{macro}%^^A \scr@ifisdimexpr +% \end{macro}%^^A \Ifisdimexpr % \end{macro}%^^A \ifisdimexpr % % % \begin{macro}{\ifisglueexpr} % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisglueexpr}}%^^A +% \begin{macro}{\Ifisglueexpr} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisglueexpr}}%^^A % Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer % \cs{glueexpr} (und zu nichts weiterem!) expandiert, wird das erste % Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem @@ -1850,20 +1896,30 @@ % sondern führt tatsächlich zu einer Fehlermeldung. % \begin{macrocode} %<*base> -\newcommand*{\ifisglueexpr}[1]{% +\providecommand*{\ifisglueexpr}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisglueexpr'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisglueexpr' by `\string\Ifisglueexpr'% + }% + \Ifisglueexpr +} +\newcommand*{\Ifisglueexpr}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisglueexpr#1\relax\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisglueexpr} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf eine \cs{glueexpr} prüft % \begin{macrocode} \newcommand*{\scr@ifisglueexpr}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisglueexpr }{% - \ifstrstart{\meaning #1}{\string\glueexpr}{% + \Ifstrstart{\meaning #1}{\string\glueexpr}{% \aftergroup\scr@TestSkipAssignTillNil }{% \aftergroup\scr@secondoftwoAfterNil @@ -1875,34 +1931,48 @@ %</base> % \end{macrocode} % \end{macro}%^^A \scr@ifisglueexpr +% \end{macro}%^^A \Ifisglueexpr % \end{macro}%^^A \ifisglueexpr % % % \begin{macro}{\ifisnumexpr} % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisnumexpr}}%^^A +% \begin{macro}{\Ifisnumexpr} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisnumexpr}}%^^A % Falls das erste Argument ggf. über mehrere Stufen hinweg zu einer % \cs{numexpr} (und zu nichts weiterem!) expandiert, wird das erste % Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem -% wichtigen Punkt von \cs{ifiscount}: Sollte das ganze zwar als \cs{numexpr} +% wichtigen Punkt von \cs{Ifiscount}: Sollte das ganze zwar als \cs{numexpr} % beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt, % sondern führt tatsächlich zu einer Fehlermeldung. % \begin{macrocode} %<*base> -\newcommand*{\ifisnumexpr}[1]{% +\providecommand*{\ifisnumexpr}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisnumexpr'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisnumexpr' by `\string\Ifisnumexpr'% + }% + \Ifisnumexpr +} +\newcommand*{\Ifisnumexpr}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisnumexpr#1\relax\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisnumexpr} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf eine \cs{numexpr} prüft % \begin{macrocode} \newcommand*{\scr@ifisnumexpr}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisnumexpr }{% - \ifstrstart{\meaning #1}{\string\numexpr}{% + \Ifstrstart{\meaning #1}{\string\numexpr}{% \aftergroup\scr@TestCountAssignTillNil }{% \aftergroup\scr@secondoftwoAfterNil @@ -1914,6 +1984,7 @@ %</base> % \end{macrocode} % \end{macro}%^^A \scr@ifisnumexpr +% \end{macro}%^^A \Ifisnumexpr % \end{macro}%^^A \ifisnumexpr % % @@ -1922,7 +1993,7 @@ % Falls das erste Argument ggf. über mehrere Stufen hinweg zu einem mit % \cs{chardef} definierten Wert (und zu nichts weiterem!) expandiert, wird das % erste Argument ausgeführt, sonst das zweite. Dies unterscheidet sich in einem -% wichtigen Punkt von \cs{ifiscount}: Sollte das ganze zwar wie ein \cs{char} +% wichtigen Punkt von \cs{Ifiscount}: Sollte das ganze zwar wie ein \cs{char} % beginnen, aber syntaktisch nicht korrekt sein, so wird dies nicht erkannt, % sondern führt tatsächlich zu einer Fehlermeldung. % \begin{macrocode} @@ -1933,14 +2004,15 @@ % \end{macrocode} % \begin{macro}{\scr@ifisdefchar} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf eine \cs{char} prüft % \begin{macrocode} \newcommand*{\scr@ifisdefchar}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisdefchar }{% - \ifstrstart{\meaning #1}{\string\char\string"}{% + \Ifstrstart{\meaning #1}{\string\char\string"}{% \aftergroup\scr@TestCountAssignTillNil }{% \aftergroup\scr@secondoftwoAfterNil @@ -1957,11 +2029,23 @@ % % \begin{macro}{\ifiscounter} % \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifiscounter}}%^^A +% \begin{macro}{\Ifiscounter} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifiscounter}}%^^A % Falls die Expansion des ersten Arguments ein \LaTeX-Zähler ist, wird das % zweite Argument ausgeführt, sonst das dritte. % \begin{macrocode} %<*base> -\newcommand*{\ifiscounter}[1]{% +\providecommand*{\ifiscounter}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifiscounter'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifiscounter' by `\string\Ifiscounter'% + }% + \Ifiscounter +} +\newcommand*{\Ifiscounter}[1]{% \begingroup \scr@ifundefinedorrelax{c@#1}{% \aftergroup\@secondoftwo @@ -1972,6 +2056,7 @@ } %</base> % \end{macrocode} +% \end{macro}%^^A \Ifiscounter % \end{macro}%^^A \ifiscounter % % @@ -1979,25 +2064,38 @@ % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A % \changes{v3.20}{2015/10/19}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisinteger}}%^^A +% \begin{macro}{\Ifisinteger} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisinteger}}%^^A % Falls die Expansion des ersten Arguments eine (positive oder negative) ganze % Zahl ist, wird das zweite Argument ausgeführt, sonst das dritte. % \begin{macrocode} %<*base> -\newcommand*{\ifisinteger}[1]{% +\providecommand*{\ifisinteger}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisinteger'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisinteger' by `\string\Ifisinteger'% + }% + \Ifisinteger +} +\newcommand*{\Ifisinteger}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisinteger#1\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisinteger} % \changes{v3.20}{2015/10/19}{neu (intern)}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Hilfsmacro, das ggf. rekusiv auf ein Vorzeichen oder eine positive Zahl % prüft. % \begin{macrocode} \def\scr@ifisinteger#1{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisinteger\aftergroup#1% }{% - \ifstrstart{\meaning #1}{\detokenize{the character}}{% + \Ifstrstart{\meaning #1}{\detokenize{the character}}{% \if #1-\aftergroup\scr@ifisinteger \else \if #1+\aftergroup\scr@ifisinteger @@ -2015,7 +2113,7 @@ \fi \fi }{% - \ifstrstart{\meaning #1}{\string\char\string"}{% + \Ifstrstart{\meaning #1}{\string\char\string"}{% \aftergroup\scr@TestCountAssignTillNil }{% \def\reserved@c{% @@ -2044,7 +2142,7 @@ \tolerance,\topskip,% \wd,\vbadness,\vfuzz,\vsize \do {% - \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{% + \expandafter\Ifstr\expandafter{\expandafter\string\reserved@a}{% \meaning #1% }{% \def\reserved@c{\aftergroup\scr@TestCountAssignTillNil}% @@ -2060,6 +2158,7 @@ %</base> % \end{macrocode} % \end{macro}%^^A \scr@ifisinteger +% \end{macro}%^^A \Ifisinteger % \end{macro}%^^A \ifisinteger % % @@ -2089,17 +2188,31 @@ % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A % \changes{v3.20}{2015/10/20}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisdimension}}%^^A +% \begin{macro}{\Ifisdimension} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisdimension}}%^^A % Falls die stufenweise Expansion des ersten Arguments eine (positive oder % negative) Länge ist, wird das zweite Argument ausgeführt, sonst das % dritte. % \begin{macrocode} %<*base> -\newcommand*{\ifisdimension}[1]{% +\providecommand*{\ifisdimension}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisdimension'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisdimension' by `\string\Ifisdimension'% + }% + \Ifisdimension +} +\newcommand*{\Ifisdimension}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisdimension#1\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisdimension} % \changes{v3.20}{2015/10/20}{neu (intern)} +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A +% \changes{v3.28}{2019/11/23}{Vorzeichenfall \texttt{+} korrigiert}%^^A % Eigentlich wäre dieses Hilfsmakro extrem aufwändig, da eine Dimension recht % komplex aufgebaut sein darf. Ich habe aber beschlossen, hier mit einer % Heuristik zu Werke zu gehen: Wenn das Argument mit einer beliebigen Anzahl @@ -2110,13 +2223,13 @@ % \begin{macrocode} \newcommand*{\scr@ifisdimension}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisdimension\aftergroup#1% }{% - \ifstrstart{\meaning #1}{\detokenize{the character}}{% + \Ifstrstart{\meaning #1}{\detokenize{the character}}{% \if #1-\aftergroup\scr@ifisdimension \else - \if #1-\aftergroup\scr@ifisdimension + \if #1+\aftergroup\scr@ifisdimension \else \if #1.% \aftergroup\scr@TestDimensionAssignTillNil @@ -2143,7 +2256,7 @@ \fi \fi }{% - \ifstrstart{\meaning #1}{\string\char\string"}{% + \Ifstrstart{\meaning #1}{\string\char\string"}{% \aftergroup\scr@TestDimensionAssignTillNil }{% \def\reserved@c{% @@ -2173,7 +2286,7 @@ \tolerance,\topskip,% \wd,\vbadness,\vfuzz,\vsize \do {% - \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{% + \expandafter\Ifstr\expandafter{\expandafter\string\reserved@a}{% \meaning #1% }{% \def\reserved@c{\aftergroup\scr@TestDimensionAssignTillNil}% @@ -2203,8 +2316,12 @@ % \end{macrocode} % \begin{macro}{\scr@IfAfterEndgroupArgIsRelaxTillptNnil} % \changes{v3.20}{2015/10/19}{neu (intern)} +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % \begin{macro}{\scr@IfArgIsRelaxAfterRelaxTillptNnil} % \changes{v3.20}{2015/10/19}{neu (intern)} +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in \cs{Ifstrstart}}%^^A % Die Hilfsmakros lesen ein durch \cs{@nnil} begrenztes Argument. Falls dieses % Argument nur aus einer Folge von \cs{relax} besteht, wird das erste Argument % nach \cs{@nnil} ausgeführt, sonst das zweite. @@ -2212,16 +2329,16 @@ \newcommand*\scr@AfterEndGroupIfArgIsRelaxTillptNnil{} \def\scr@AfterEndGroupIfArgIsRelaxTillptNnil#1\@nnil{% \endgroup - \ifstr{\detokenize{#1}}{\detokenize{pt}}{\@firstoftwo}{% - \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% + \Ifstr{\detokenize{#1}}{\detokenize{pt}}{\@firstoftwo}{% + \Ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% \scr@IfArgIsRelaxAfterRelaxTillptNnil #1\@nnil }{\@secondoftwo}% }% } \newcommand*\scr@IfArgIsRelaxAfterRelaxTillptNnil{} \def\scr@IfArgIsRelaxAfterRelaxTillptNnil \relax#1pt\@nnil{% - \ifstr{\detokenize{#1}}{\detokenize{pt}}{\@firstoftwo}{% - \ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% + \Ifstr{\detokenize{#1}}{\detokenize{pt}}{\@firstoftwo}{% + \Ifstrstart{\detokenize{#1}}{\detokenize{\relax}}{% \scr@IfArgIsRelaxAfterRelaxTillptNnil #1\@nnil }{\@secondoftwo}% }% @@ -2232,6 +2349,7 @@ % \end{macro}%^^A \scr@IfArgIsRelaxTillptNnil % \end{macro}%^^A \scr@DimensionSkipAssignTillNil % \end{macro}%^^A \scr@ifisdimension +% \end{macro}%^^A \Ifisdimension % \end{macro}%^^A \ifisdimension % % @@ -2239,17 +2357,34 @@ % \changes{v3.12}{2013/11/05}{neu}%^^A % \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A % \changes{v3.20}{2015/10/21}{Reimplementierung}%^^A +% \changes{v3.28}{2019/11/19}{umdefiniert in \cs{Ifisglue}}%^^A +% \begin{macro}{\Ifisglue} +% \changes{v3.28}{2019/11/19}{neu aus Umdefinierung von \cs{ifisglue}}%^^A % Falls die stufenweise Expansion des ersten Arguments eine (positive oder % negative) Länge mit Leim ist, wird das zweite Argument ausgeführt, sonst das % dritte. % \begin{macrocode} %<*base> -\newcommand*{\ifisglue}[1]{% +\providecommand*{\ifisglue}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifisglue'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifisglue' by `\string\Ifisglue'% + }% + \Ifisglue +} +\newcommand*{\Ifisglue}[1]{% \IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifisglue#1\@nil}% } % \end{macrocode} % \begin{macro}{\scr@ifisglue} % \changes{v3.20}{2015/10/21}{neu (intern)} +% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} umbenannt in +% \cs{Ifstrstart}}%^^A +% \changes{v3.28}{2019/11/23}{Vorzeichenfall \texttt{+} korrigiert}%^^A +% \changes{v3.28}{2019/11/23}{im Plusfall \cs{ifisdimension} durch +% \cs{ifisglue} ersetzt}%^^A % Eigentlich wäre dieses Hilfsmakro extrem aufwändig, da Leim recht % komplex aufgebaut sein darf. Ich habe aber beschlossen, hier mit einer % Heuristik zu Werke zu gehen: Wenn das Argument mit einer beliebigen Anzahl @@ -2260,13 +2395,13 @@ % \begin{macrocode} \newcommand*{\scr@ifisglue}[1]{% \begingroup - \ifstrstart{\meaning #1}{\detokenize{macro:}}{% + \Ifstrstart{\meaning #1}{\detokenize{macro:}}{% \aftergroup\expandafter\aftergroup\scr@ifisglue\aftergroup#1% }{% - \ifstrstart{\meaning #1}{\detokenize{the character}}{% + \Ifstrstart{\meaning #1}{\detokenize{the character}}{% \if #1-\aftergroup\scr@ifisglue \else - \if #1-\aftergroup\scr@ifisdimension + \if #1+\aftergroup\scr@ifisglue \else \if #1.% \aftergroup\scr@TestGlueAssignTillNil @@ -2293,7 +2428,7 @@ \fi \fi }{% - \ifstrstart{\meaning #1}{\string\char\string"}{% + \Ifstrstart{\meaning #1}{\string\char\string"}{% \aftergroup\scr@TestGlueAssignTillNil }{% \def\reserved@c{% @@ -2323,7 +2458,7 @@ \tolerance,\topskip,% \wd,\vbadness,\vfuzz,\vsize \do {% - \expandafter\ifstr\expandafter{\expandafter\string\reserved@a}{% + \expandafter\Ifstr\expandafter{\expandafter\string\reserved@a}{% \meaning #1% }{% \def\reserved@c{\aftergroup\scr@TestGlueAssignTillNil}% @@ -2354,6 +2489,7 @@ % \end{macrocode} % \end{macro}%^^A \scr@TestGlueAssignTillNil % \end{macro}%^^A \scr@ifisglue +% \end{macro}%^^A \Ifisglue % \end{macro}%^^A \ifisglue % % @@ -2362,12 +2498,36 @@ % \cs{endgroup}\cs{expandafter}}%^^A % \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A % \changes{v3.27}{2019/08/26}{leere Argumente werden korrekt behandelt}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifnumber} umbenannt in \cs{Ifnumber}}%^^A +% \begin{macro}{\Ifnumber} +% \changes{v3.28}{2019/11/18}{Neu aus Umbenennung von \cs{ifnumber}}%^^A % Dieses Makro testet, ob ein übergebener Parameter eine positive, % ganze Zahl ist. Ist dies der Fall, wird der zweite Parameter % ausgeführt, sonst der dritte. % \begin{macrocode} %<*base> -\newcommand\ifnumber[1]{% +\providecommand*{\ifnumber}{% +% \end{macrocode} +% Die Warnung darf nicht ausgegeben werden, wenn \textsf{babelbib} geladen +% wurde, weil das Paket die Anweisung ebenfalls definiert, aber nur, wenn sie +% nicht bereits definiert war. Dabei werden übrigens teilweise Makronamen mit +% dem Präfix \cs{scr@} definiert, was ich gar nicht lustig finde. Überhaupt +% geht das böse in die Hose, wenn \textsf{babelbib} vor \texttt{scrbase} +% geladen wird, was ja durchaus passieren kann. Möglichweise werde ich daher +% die Sonderbehandlung an dieser Stelle auch wieder entfernen, sobald ich die +% Anleitung von \textsf{babelbib} auf \textsf{biblatex} umgestellt habe. +% \begin{macrocode} + \scr@ifundefinedorrelax{ver@babelbib.sty}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifnumber'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifnumber' by `\string\Ifnumber'% + }% + }{}% + \Ifnumber +} +\newcommand\Ifnumber[1]{% \begingroup\@tempswafalse\let\scr@next\test@number \IfArgIsEmpty{#1}{}{\expandafter\scr@next#1\scr@next}% \if@tempswa @@ -2417,15 +2577,29 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\ifintnumber} % \changes{v3.12}{2013/10/30}{neu}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifintnumber} umbenannt in +% \cs{Ifintnumber}}%^^A +% \begin{macro}{\Ifintnumber} +% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifintnumber}} % Ist das erste Argument eine positive oder negative ganze Zahl, to wird das % zweite Argument ausgeführt, sonst das dritte. Wie bei \TeX{} auch sind % beliebig viele Vorzeichen erlaubt. % \begin{macrocode} %<*base> -\newcommand\ifintnumber[1]{% +\providecommand*{\ifintnumber}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifintnumber'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifintnumber' by `\string\Ifintnumber'% + }% + \Ifintnumber +} +\newcommand\Ifintnumber[1]{% \begingroup\@tempswafalse\let\scr@next\scr@test@sign \expandafter\scr@next#1\scr@next \if@tempswa @@ -2457,14 +2631,27 @@ % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\ifdimen} +% \changes{v3.28}{2019/11/18}{umbenannt in \cs{Ifdimen}}%^^A +% \begin{macro}{\Ifdimen} +% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifdimen}}%^^A % Dieses Makro testet, ob ein übergebener Parameter eine Dimension % ist und führt in Abhängigkeit davon den zweiten oder dritten % Parameter aus. % \begin{macrocode} %<*base> -\newcommand{\ifdimen}[1]{% +\providecommand*{\ifdimen}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifdimen'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifdimen' by `\string\Ifdimen'% + }% + \Ifdimen +} +\newcommand{\Ifdimen}[1]{% \begingroup\@tempswatrue\let\scr@next\test@posdimen \expandafter\test@dimen#1\scr@next \if@tempswa @@ -2525,24 +2712,25 @@ % \end{macrocode} % \begin{macro}{\test@@ifdimunt} % \changes{v3.21}{2016/05/27}{elf bis zwölf Einheiten nicht neun} +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Anschließend wird dann getestet, ob es sich um eine der elf bis zwölf % üblichen Einheiten handelt. % \begin{macrocode} \newcommand*\test@@ifdimunt[1]{% \@tempswafalse - \ifstr{#1}{pt}{\@tempswatrue}{% - \ifstr{#1}{pc}{\@tempswatrue}{% - \ifstr{#1}{in}{\@tempswatrue}{% - \ifstr{#1}{bp}{\@tempswatrue}{% - \ifstr{#1}{cm}{\@tempswatrue}{% - \ifstr{#1}{mm}{\@tempswatrue}{% - \ifstr{#1}{dd}{\@tempswatrue}{% - \ifstr{#1}{cc}{\@tempswatrue}{% - \ifstr{#1}{sp}{\@tempswatrue}{% - \ifstr{#1}{ex}{\@tempswatrue}{% - \ifstr{#1}{em}{\@tempswatrue}{% + \Ifstr{#1}{pt}{\@tempswatrue}{% + \Ifstr{#1}{pc}{\@tempswatrue}{% + \Ifstr{#1}{in}{\@tempswatrue}{% + \Ifstr{#1}{bp}{\@tempswatrue}{% + \Ifstr{#1}{cm}{\@tempswatrue}{% + \Ifstr{#1}{mm}{\@tempswatrue}{% + \Ifstr{#1}{dd}{\@tempswatrue}{% + \Ifstr{#1}{cc}{\@tempswatrue}{% + \Ifstr{#1}{sp}{\@tempswatrue}{% + \Ifstr{#1}{ex}{\@tempswatrue}{% + \Ifstr{#1}{em}{\@tempswatrue}{% \scr@ifpdfoutput{% - \ifstr{#1}{px}{\@tempswatrue}{}% + \Ifstr{#1}{px}{\@tempswatrue}{}% }{}% }% }% @@ -2564,19 +2752,18 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % % \begin{macro}{\ifpdftex} % \changes{v2.95}{2002/08/19}{neu}%^^A +% \changes{v3.28}{2019/11/18}{entfernt}%^^A % \begin{macro}{\scr@ifpdftex} % \changes{v2.95}{2002/08/19}{neu (intern)}%^^A % If-then-else-Konstrukt, um zu testen, ob pdf\TeX{} verwendet wird. % \begin{macrocode} %<*base> \newcommand{\scr@ifpdftex}{\ifnotundefined{pdftexversion}} -\let@as@internal@defined{ifpdftex} -\BeforePackage{pdfcprot}{\let\ifpdftex\relax} -\AfterPackage{pdfcprot}{\let@as@internal@defined{ifpdftex}} %</base> % \end{macrocode} % \end{macro} @@ -2607,7 +2794,8 @@ % % \begin{macro}{\ifVTeX} % \changes{v2.95}{2002/08/19}{neu}%^^A -% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{ifvtex}} +% \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{ifvtex}}%^^A +% \changes{v3.28}{2019/11/18}{entfernt}%^^A % \begin{macro}{\scr@ifVTeX} % \changes{v2.95}{2002/08/19}{neu}%^^A % \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{scr@ifvtex}} @@ -2615,7 +2803,6 @@ % \begin{macrocode} %<*base> \newcommand{\scr@ifVTeX}{\ifnotundefined{VTeXversion}} -\let@as@internal@defined{ifVTeX} %</base> % \end{macrocode} % \end{macro} @@ -2626,7 +2813,10 @@ % \changes{v2.8q}{2001/10/19}{\cs{pdfoutput} wird nicht mehr zu % \cs{relax}, wenn zuvor undefiniert} % \changes{v2.8q}{2001/10/19}{darf bereits definiert sein}%^^A -% \changes{v2.8q}{2001/10/19}{Verwendung von \cs{scr@ifpdfoutput}} +% \changes{v2.8q}{2001/10/19}{Verwendung von \cs{scr@ifpdfoutput}}%^^A +% \changes{v3.28}{2019/11/18}{Umbenannt in \cs{Ifpdfoutput}}%^^A +% \begin{macro}{\Ifpdfoutput} +% \changes{v3.28}{2019/11/18}{Neu aus Umbenennung von \cs{ifpdfoutput}}%^^A % \begin{macro}{\scr@ifpdfoutput} % \changes{v2.8q}{2001/10/19}{neu (intern)}%^^A % \changes{v2.8q}{2001/11/13}{funktioniert}%^^A @@ -2665,14 +2855,27 @@ \fi }% }% -\let@as@internal@defined{ifpdfoutput} +\providecommand*{\ifpdfoutput}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifpdfoutput'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifpdfoutput' by `\string\Ifpdfoutput'% + }% + \Ifpdfoutput +} +\newcommand*{\Ifpdfoutput}{\scr@ifpdfoutput} %</base> % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\ifpsoutput} % \changes{v2.95}{2002/08/21}{neu}%^^A +% \changes{v3.28}{2019/11/18}{umbenannt in \cs{Ifpsoutput}}%^^A +% \begin{macro}{\Ifpsoutput} +% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifpsoutput}}%^^A % \begin{macro}{\scr@ifpsoutput} % \changes{v2.95}{2002/08/21}{neu (intern)}%^^A % \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}%^^A @@ -2699,14 +2902,27 @@ }% }% } -\let@as@internal@defined{ifpsoutput} +\providecommand*{\ifpsoutput}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifpsoutput'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifpsoutput' by `\string\Ifpsoutput'% + }% + \Ifpsoutput +} +\newcommand*{\Ifpsoutput}{\scr@ifpsoutput} %</base> % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\ifdvioutput} % \changes{v2.95}{2002/08/21}{neu}%^^A +% \changes{v3.28}{2019/11/18}{umbenannt in \cs{Ifdvioutput}}%^^A +% \begin{macro}{\Ifdvioutput} +% \changes{v3.28}{2019/11/18}{neu aus Umbenennung von \cs{ifdvioutput}}%^^A % \begin{macro}{\scr@ifdvioutput} % \changes{v2.95}{2002/08/21}{neu (intern)}%^^A % \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}%^^A @@ -2742,11 +2958,21 @@ \fi }% } -\let@as@internal@defined{ifdvioutput} +\providecommand*{\ifdvioutput}{% + \PackageWarning{scrbase}{Usage of deprecated command + `\string\ifdvioutput'.\MessageBreak + The command has been renamed because of a\MessageBreak + recommendation of The LaTeX Project Team.\MessageBreak + Please replace `\string\ifdvioutput' by `\string\Ifdvioutput'% + }% + \Ifdvioutput +} +\newcommand*{\Ifdvioutput}{\scr@ifdvioutput} %</base> % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\scr@smashdp} % \changes{v2.97c}{2007/09/17}{neu (intern)}%^^A @@ -2841,7 +3067,9 @@ % \textsf{remreset} und \textsf{chngcntr}}%^^A % Dieser alte Bekannte aus dem Paket \textsf{remreset} wird auch von % \KOMAScript{} benötigt. Es ist einfacher, ihn selbst zu definieren, als sich -% auf andere Pakete zu verlassen. +% auf andere Pakete zu verlassen. Ab \LaTeX~2018-04-01 ist das aber auch +% Bestandteil von \LaTeX. Deshalb ist es in jedem Fall sinnvoll die Definition +% nur vorzunehmen, wenn es nicht definiert ist. % \begin{macrocode} %<*base> \providecommand*\@removefromreset[2]{% @@ -2911,6 +3139,7 @@ % \changes{v3.23}{2017/02/16}{Korrektur: Haken danach verwendet die Familie % statt des Mitglieds}%^^A % \changes{v3.27}{2019/10/02}{Fehlermeldungen verbessert}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Entspriche \cs{ExecuteOptions} jedoch \textsf{keyval}-Optionen. Insbesondere % ist die Anweisung reentrant! Es ist jedoch zu beachten, dass der hook lokal % zum jeweiligen Aufruf ist. @@ -2989,7 +3218,7 @@ }% }{% \scr@execute@option{#2}% - \ifstr{#1}{}{}{% + \Ifstr{#1}{}{}{% % \end{macrocode} % \changes{v3.20}{2015/11/18}{Memberoptionstest nach Familyoptionsausführung % korrigiert}%^^A @@ -3215,7 +3444,7 @@ % tatsächlich kein Mitglied eine solche Option oder eine % \texttt{@else@}-Option hatte. % \begin{macrocode} - \ifstr{\reserved@a}{#1}{}{% + \Ifstr{\reserved@a}{#1}{}{% \scr@ifundefinedorrelax{KV@\reserved@a @@else@}{}{% \expandafter\scr@execute@elseoption\expandafter{\reserved@a}% \ifx\FamilyKeyState\FamilyKeyStateProcessed @@ -3264,6 +3493,11 @@ \ifscr@key@found@ \ifx\scr@key@run@errors\relax\else \ifx\scr@key@run@errors\@empty\else +% \end{macrocode} +% \changes{v3.28}{2019/11/23}{Fehlermeldungen und Infos korrigiert}%^^A +% Jetzt muss gegebenenfalls noch eine \texttt{@else@} Option behandelt und +% abhängig davon entweder ein Fehler oder eine Info ausgegeben werden. +% \begin{macrocode} \scr@ifundefinedorrelax{KV@#1@@else@}{% \PackageError{scrbase}{% unknown option @@ -3277,8 +3511,7 @@ `\expandafter\detokenize\expandafter{\scr@key@value}'% \fi.\MessageBreak Here's what each member says: - \scr@key@run@errors\MessageBreak - o\expandafter\@gobble + \scr@key@run@errors }% }{% \scr@execute@elseoption{#1}% @@ -3309,8 +3542,7 @@ `\expandafter\detokenize\expandafter{\scr@key@value}'% \fi.\MessageBreak Here's what each member says: - \scr@key@run@errors\MessageBreak - o\expandafter\@gobble + \scr@key@run@errors }% \fi }% @@ -3929,18 +4161,19 @@ % \changes{v3.00}{2008/04/30}{Neue Anweisung}%^^A % \changes{v3.11a}{2012/05/25}{Argument in Fehlermeldung korrigiert}%^^A % \changes{v3.27}{2019/07/08}{Leeres Argument ist \texttt{true}}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Über diese Anweisung wird der Wert dann gesetzt. Dabei ist das erste % Argument die Familie, das zweite der Name des Schlüssels, das dritte der % Schalter und das vierte schließlich der gewünschte Wert. % \begin{macrocode} \newcommand*{\FamilySetBool}[4]{% - \ifstr{#4}{}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% - \ifstr{#4}{true}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% - \ifstr{#4}{on}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% - \ifstr{#4}{yes}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% - \ifstr{#4}{false}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% - \ifstr{#4}{off}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% - \ifstr{#4}{no}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% + \Ifstr{#4}{}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% + \Ifstr{#4}{true}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% + \Ifstr{#4}{on}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% + \Ifstr{#4}{yes}{\@nameuse{#3true}\FamilyKeyStateProcessed}{% + \Ifstr{#4}{false}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% + \Ifstr{#4}{off}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% + \Ifstr{#4}{no}{\@nameuse{#3false}\FamilyKeyStateProcessed}{% \FamilyUnknownKeyValue{#1}{#2}{#4}{% `true', `on', `yes', `false', `off', `no'% }% @@ -4090,13 +4323,13 @@ \begingroup \protected@edef\reserved@a{#4}% \def\reserved@b{\endgroup\value{#3}=#4\relax\FamilyKeyStateProcessed}% - \expandafter\ifiscount\expandafter{\reserved@a}{}{% - \expandafter\ifisdimen\expandafter{\reserved@a}{}{% - \expandafter\ifisskip\expandafter{\reserved@a}{}{% - \expandafter\ifisnumexpr\expandafter{\reserved@a}{}{% - \expandafter\ifisdimexpr\expandafter{\reserved@a}{}{% - \expandafter\ifisinteger\expandafter{\reserved@a}{}{% - \expandafter\ifiscounter\expandafter{\reserved@a}{% + \expandafter\Ifiscount\expandafter{\reserved@a}{}{% + \expandafter\Ifisdimen\expandafter{\reserved@a}{}{% + \expandafter\Ifisskip\expandafter{\reserved@a}{}{% + \expandafter\Ifisnumexpr\expandafter{\reserved@a}{}{% + \expandafter\Ifisdimexpr\expandafter{\reserved@a}{}{% + \expandafter\Ifisinteger\expandafter{\reserved@a}{}{% + \expandafter\Ifiscounter\expandafter{\reserved@a}{% \def\reserved@b{% \endgroup\value{#3}=\value{#4}\FamilyKeyStateProcessed }% @@ -4238,41 +4471,68 @@ % \begin{macrocode} \newcommand*{\FamilySetLength}[4]{% \begingroup - \protected@edef\reserved@a{#4}% - \expandafter\ifiscount\expandafter{\reserved@a}{% + \protected@edef\reserved@a{#4}% +% \end{macrocode} +% Zusammen mit \cs{@defaultsunits} (siehe unten) wäre hier das sinnvoll: +% \begin{macrocode} +%<*neveruse> + \expandafter\Ifiscount\expandafter{\reserved@a}{% \aftergroup\@firstoftwo }{% - \expandafter\ifisdimen\expandafter{\reserved@a}{% +%</neveruse> + \expandafter\Ifisdimen\expandafter{\reserved@a}{% \aftergroup\@firstoftwo }{% - \expandafter\ifisskip\expandafter{\reserved@a}{% + \expandafter\Ifisskip\expandafter{\reserved@a}{% \aftergroup\@firstoftwo }{% - \expandafter\ifisnumexpr\expandafter{\reserved@a}{% +% \end{macrocode} +% Zusammen mit \cs{@defaultsunits} (siehe unten) wäre hier das sinnvoll: +% \begin{macrocode} +%<*neveruse> + \expandafter\Ifisnumexpr\expandafter{\reserved@a}{% \aftergroup\@firstoftwo }{% - \expandafter\ifisdimexpr\expandafter{\reserved@a}{% +%</neveruse> + \expandafter\Ifisdimexpr\expandafter{\reserved@a}{% \aftergroup\@firstoftwo }{% - \expandafter\ifisglueexpr\expandafter{\reserved@a}{% + \expandafter\Ifisglueexpr\expandafter{\reserved@a}{% \aftergroup\@firstoftwo }{% - \expandafter\ifisglue\expandafter{\reserved@a}{% + \expandafter\Ifisglue\expandafter{\reserved@a}{% \aftergroup\@firstoftwo }{% \aftergroup\@secondoftwo }% }% }% +%<*neveruse> }% +%</neveruse> }% }% +%<*neveruse> }% +%</neveruse> \endgroup +% \end{macrocode} +% TODO: An der Stelle wäre etwas wie: +% \begin{macrocode} +%<*neveruse> + {\@defaultunits#3=#4pt\relax\@nnil\FamilyKeyStateProcessed} +%</neveruse> +% schön. Aber aus irgend einem Grund habe ich mich seinerzeit dafür +% entschieden, die einfacher Form zu wählen: +% \begin{macrocode} {#3=#4\FamilyKeyStateProcessed}% {% \FamilyUnknownKeyValue{#1}{#2}{#4}{% - length values, counters, lengths, skips, dimens + length values, +%<*neveruse> + counters, +%</neveruse> + lengths, skips, dimens }% }% } @@ -4846,6 +5106,7 @@ % % \begin{macro}{\ForDoHook} % \changes{v3.27}{2019/02/05}{New}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Arguments: % \begin{description} % \item[\meta{specificator}:] @@ -4861,7 +5122,7 @@ % \begin{macrocode} %<*base> \newcommand*{\ForDoHook}[2]{% - \ifstr{#1}{}{% + \Ifstr{#1}{}{% \PackageError{scrbase}{empty do-hook specificator}{% You've tried to use an empty do-hook specificator,\MessageBreak but do-hook specificators must not be empty.% @@ -4884,6 +5145,7 @@ % \end{macrocode} % \begin{macro}{\SplitDoHook} % \changes{v3.27}{2019/02/04}{New}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Arguments: % \begin{description} % \item[\meta{specificator}:] @@ -4896,7 +5158,7 @@ % command} is defined to be the rest. % \begin{macrocode} \newcommand*{\SplitDoHook}[3]{% - \ifstr{#1}{}{% + \Ifstr{#1}{}{% \PackageWarning{scrbase}{empty do-hook specificator}% \let#2\@empty\let#3\@empty }{% @@ -4989,7 +5251,7 @@ % is local to the current group. % \begin{macrocode} \newcommand*{\AddtoDoHook}[2]{% - \ifstr{#1}{}{% + \Ifstr{#1}{}{% \PackageError{scrbase}{empty hook specificator}{% As hook specificators can never be empty, the first argument\MessageBreak of \string\AddtoDoHook\space must expand to an not empty string.% @@ -5006,6 +5268,7 @@ % % \begin{macro}{\AddtoOneTimeDoHook} % \changes{v3.27}{2019/02/02}{New}%^^A +% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Arguments: % \begin{description} % \item[\meta{specificator}:] @@ -5017,7 +5280,7 @@ % is executed only once. % \begin{macrocode} \newcommand*{\AddtoOneTimeDoHook}[2]{% - \ifstr{#1}{}{% + \Ifstr{#1}{}{% \PackageError{scrbase}{empty hook specificator}{% As hook specificators can never be empty, the first argument\MessageBreak of \string\AddtoDoHook\space must expand to an not empty string.% |