summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrkernel-basics.dtx')
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-basics.dtx695
1 files changed, 479 insertions, 216 deletions
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx b/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
index b1bf79fe8a..af70ac7217 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-basics.dtx
+++ b/macros/latex/contrib/koma-script/source/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.%