summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/koma-script/scrbase.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrbase.sty')
-rw-r--r--Master/texmf-dist/tex/latex/koma-script/scrbase.sty455
1 files changed, 368 insertions, 87 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrbase.sty b/Master/texmf-dist/tex/latex/koma-script/scrbase.sty
index cc41be4b157..51a91eae932 100644
--- a/Master/texmf-dist/tex/latex/koma-script/scrbase.sty
+++ b/Master/texmf-dist/tex/latex/koma-script/scrbase.sty
@@ -13,7 +13,7 @@
%% scrkernel-language.dtx (with options: `package,body,base')
%% scrlogo.dtx (with options: `logo')
%%
-%% Copyright (c) 2002-2017 Markus Kohm [komascript at gmx info]
+%% Copyright (c) 2002-2019 Markus Kohm [komascript at gmx info]
%%
%% This file was generated from file(s) of the KOMA-Script bundle.
%% ---------------------------------------------------------------
@@ -41,11 +41,11 @@
%%
%% The KOMA-Script bundle (but maybe not this file) was based upon the
%% LaTeX 2.09 Script family created by Frank Neukam 1993 and the LaTeX2e
-%% standard classes created by The LaTeX3 Project 1994-1996. You may
+%% standard classes created by The LaTeX3 Project 1994-1996. You can
%% find a complete unmodified copy of LaTeX2e at
%% <http://mirror.ctan.org/tex-archive/macros/latex/base/>.
%%
-%%% From File: $Id: scrkernel-version.dtx 3063 2019-02-01 07:39:11Z kohm $
+%%% From File: $Id: scrkernel-version.dtx 3263 2019-10-12 14:50:03Z kohm $
\begingroup
\catcode`\@11\relax
\ifx\KOMAScriptVersion\undefined
@@ -67,19 +67,19 @@
\fi
}
\fi
- \@CheckKOMAScriptVersion{2019/02/01 v3.26b KOMA-Script}%
+ \@CheckKOMAScriptVersion{2019/10/12 v3.27 KOMA-Script}%
\endgroup
\providecommand*{\scr@pkgextension}{\@pkgextension}
\AtBeginDocument{%
\let\scr@pkgextension\@pkgextension
}
-%%% From File: $Id: scrkernel-basics.dtx 3063 2019-02-01 07:39:11Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 3262 2019-10-10 08:25:29Z kohm $
%%% (run: prepare)
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{%
scrbase%
}[%
- 2019/02/01 v3.26b KOMA-Script
+ 2019/10/12 v3.27 KOMA-Script
package
(%
KOMA-Script-independent
@@ -153,21 +153,25 @@
}
\newcommand*{\scr@if@familymember}[3]{%
\scr@if@family{#2}{#3}{%
- \edef\reserved@a{%
- \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}%
- \reserved@a
- \ifin@
- \expandafter\@firstofone
- \else
- \PackageError{scrbase}{%
- unknown member `#1' at family `#2'%
- }{%
- You've tried to #3 for member `#1' of family `#2'.\MessageBreak
- This my be done only for previous defined family members.\MessageBreak
- You should call `\string\DefineFamilyMember[{#1}]{#2}' first.%
- }%
- \expandafter\@gobble
- \fi
+ \IfArgIsEmpty{#1}{%
+ \@firstofone
+ }{%
+ \edef\reserved@a{%
+ \noexpand\in@{#2#1,}{\csname #2@key@familylist\endcsname}}%
+ \reserved@a
+ \ifin@
+ \expandafter\@firstofone
+ \else
+ \PackageError{scrbase}{%
+ unknown member `#1' at family `#2'%
+ }{%
+ You've tried to #3 for member `#1' of family `#2'.\MessageBreak
+ This my be done only for previous defined family members.\MessageBreak
+ You should call `\string\DefineFamilyMember[{#1}]{#2}' first.%
+ }%
+ \expandafter\@gobble
+ \fi
+ }%
}%
}
\newcommand*{\DefineFamilyKey}[3][.\@currname.\@currext]{%
@@ -418,6 +422,13 @@
}
\@tempa{ }
\long\def\scr@sp@c#1\@nil#2\relax#3{\@temptokena{#1}\edef#3{\the\@temptokena}}
+\newcommand{\IfArgIsEmpty}[1]{%
+ \if\relax\detokenize{#1}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
\@ifundefined{l@addto@macro}{}{%
\begingroup
\long\def\reserved@a#1#2{%
@@ -446,7 +457,7 @@
\long\def\l@addto@macro#1#2{%
\edef#1{\unexpanded\expandafter{#1#2}}%
}%
-%%% From File: $Id: scrkernel-basics.dtx 3063 2019-02-01 07:39:11Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 3262 2019-10-10 08:25:29Z kohm $
%%% (run: option)
\newcommand*{\dont@let@as@internal@defined}{/}
\newif\if@let@as@internalonly@defined\@let@as@internalonly@definedfalse
@@ -464,13 +475,13 @@
\fi
}
\FamilyProcessOptions{KOMA}\relax
-%%% From File: $Id: scrkernel-language.dtx 3011 2018-08-29 07:35:17Z kohm $
+%%% From File: $Id: scrkernel-language.dtx 3262 2019-10-10 08:25:29Z kohm $
%%% (run: option)
-%%% From File: $Id: scrlfile.dtx 3011 2018-08-29 07:35:17Z kohm $
+%%% From File: $Id: scrlfile.dtx 3243 2019-10-07 13:32:53Z kohm $
\RequirePackage{scrlfile}[%
- 2019/02/01 v3.26b KOMA-Script
+ 2019/10/12 v3.27 KOMA-Script
]
-%%% From File: $Id: scrkernel-basics.dtx 3063 2019-02-01 07:39:11Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 3262 2019-10-10 08:25:29Z kohm $
%%% (run: body)
\newcommand*{\XdivY}[2]{%
\numexpr ( #1 + #2 / 2 ) / #2 - 1\relax
@@ -478,6 +489,20 @@
\newcommand*{\XmodY}[2]{%
\numexpr #1 - #2 * \XdivY{#1}{#2}\relax
}
+\newcommand{\scr@ForEachTrimmedListElement}[2]{%
+ \begingroup
+ \def\reserved@a{\endgroup}%
+ \@for \reserved@b:=#1 \do {%
+ \scr@trim@spaces\reserved@b
+ \ifx\reserved@b\@empty\else
+ \edef\reserved@a{%
+ \unexpanded\expandafter{\reserved@a#2}%
+ {\unexpanded\expandafter{\reserved@b}}%
+ }%
+ \fi
+ }%
+ \reserved@a
+}
\newcommand\scr@trim@spaces[1]{%
\expandafter\scr@sp@def\expandafter#1\expandafter{#1}%
}
@@ -575,13 +600,6 @@
}%
\reserved@a#1#2\@nil
}
-\newcommand*{\IfArgIsEmpty}[1]{%
- \if\relax\detokenize{#1}\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
-}
\newcommand*{\ifislengthprimitive}[1]{%
\IfArgIsEmpty{#1}{\@secondoftwo}{\scr@ifislengthprimitive#1\@nil}%
}
@@ -1043,7 +1061,7 @@
}
\newcommand\ifnumber[1]{%
\begingroup\@tempswafalse\let\scr@next\test@number
- \expandafter\scr@next#1\scr@next
+ \IfArgIsEmpty{#1}{}{\expandafter\scr@next#1\scr@next}%
\if@tempswa
\aftergroup\@firstoftwo
\else
@@ -1301,7 +1319,8 @@
\def\markleft##1{\scr@ActiveMkBothtrue}%
\def\markboth##1{\scr@ActiveMkBothtrue}%
\def\markdouble##1{\scr@ActiveMkBothtrue}%
- \def\mark##1{\scr@ActiveMkBothtrue}
+ \def\mark##1{\scr@ActiveMkBothtrue}%
+ \def\marks##1##2{\scr@ActiveMkBothtrue}%
\scr@ActiveMkBothfalse
\setbox\@tempboxa\vbox{\@mkboth{}{}}%
\endgroup
@@ -1351,6 +1370,9 @@
\ifx\FamilyKeyState\FamilyKeyStateProcessed\else
\PackageError{scrbase}{%
unknown option
+ \ifx\FamilyKeyState\FamilyKeyStateUnknownValue
+ value at
+ \fi
`\expandafter\detokenize\expandafter{\scr@key@atlist}'%
}{%
Member `#1' of family `#2'\MessageBreak
@@ -1393,6 +1415,9 @@
\ifx\FamilyKeyState\FamilyKeyStateProcessed\else
\PackageError{scrbase}{%
unknown option
+ \ifx\FamilyKeyState\FamilyKeyStateUnknownValue
+ value at
+ \fi
`\expandafter\detokenize\expandafter{\scr@key@atlist}'%
}{%
Option
@@ -1449,9 +1474,19 @@
\expandafter\scr@key@split@name@value\scr@key@atlist==\@nil
\let\scr@key@run@errors\@empty
\scr@key@found@false
- \edef\reserved@a{\csname #1@key@familylist\endcsname}%
+ \edef\reserved@a{#1,\csname #1@key@familylist\endcsname}%
\@for\reserved@a:=\reserved@a\do{%
- \scr@ifundefinedorrelax{KV@\reserved@a @\scr@key@name}{}{%
+ \scr@ifundefinedorrelax{KV@\reserved@a @\scr@key@name}{%
+ \ifstr{\reserved@a}{#1}{}{%
+ \scr@ifundefinedorrelax{KV@\reserved@a @@else@}{}{%
+ \expandafter\scr@execute@elseoption\expandafter{\reserved@a}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \scr@key@found@true
+ \let\scr@key@run@errors\relax
+ \fi
+ }%
+ }%
+ }{%
\expandafter\scr@execute@option\expandafter{\reserved@a}%
\scr@key@found@true
\ifx\scr@key@run@errors\relax\else
@@ -1462,21 +1497,21 @@
\edef\scr@key@run@errors{%
\unexpanded\expandafter{\scr@key@run@errors}%
\noexpand\MessageBreak
- \FamilyMemberOfKey: unkown value
- `\expandafter\detokenize\expandafter{\scr@key@value}'.%
+ \space\space- `\FamilyMemberOfKey': unkown value
+ `\expandafter\detokenize\expandafter{\scr@key@value}'%
}%
\else
\ifx\FamilyKeyState\FamilyKeyStateNeedValue
\edef\scr@key@run@errors{%
\unexpanded\expandafter{\scr@key@run@errors}%
\noexpand\MessageBreak
- \FamilyMemberOfKey: value expected.
+ \space\space- `\FamilyMemberOfKey': value expected
}%
\else
\edef\scr@key@run@errors{%
\unexpanded\expandafter{\scr@key@run@errors}%
\noexpand\MessageBreak
- \FamilyMemberOfKey: \FamilyKeyState.
+ \space\space- `\FamilyMemberOfKey': \FamilyKeyState
}%
\fi
\fi
@@ -1487,34 +1522,92 @@
\ifscr@key@found@
\ifx\scr@key@run@errors\relax\else
\ifx\scr@key@run@errors\@empty\else
+ \scr@ifundefinedorrelax{KV@#1@@else@}{%
+ \PackageError{scrbase}{%
+ unknown option
+ `\expandafter\detokenize\expandafter{\scr@key@atlist}'%
+ }{%
+ The members of family `#1' cannot set option
+ `\scr@key@name'
+ \ifx\scr@key@value\@empty\else
+ \MessageBreak
+ to value
+ `\expandafter\detokenize\expandafter{\scr@key@value}'%
+ \fi.\MessageBreak
+ Here's what each member says:
+ \scr@key@run@errors\MessageBreak
+ o\expandafter\@gobble
+ }%
+ }{%
+ \scr@execute@elseoption{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \PackageInfo{scrbase}{%
+ option
+ `\expandafter\detokenize\expandafter{\scr@key@atlist}'%
+ \MessageBreak
+ processed by `@else@' option of family\MessageBreak
+ `#1', after the members said:
+ \scr@key@run@errors\MessageBreak
+ o\expandafter\@gobble
+ }%
+ \let\scr@key@run@errors\relax
+ \else
+ \PackageError{scrbase}{%
+ unknown option
+ \ifx\FamilyKeyState\FamilyKeyStateUnknownValue
+ value at
+ \fi
+ `\expandafter\detokenize\expandafter{\scr@key@atlist}'%
+ }{%
+ The members of family `#1' cannot set option
+ `\scr@key@name'
+ \ifx\scr@key@value\@empty\else
+ \MessageBreak
+ to value
+ `\expandafter\detokenize\expandafter{\scr@key@value}'%
+ \fi.\MessageBreak
+ Here's what each member says:
+ \scr@key@run@errors\MessageBreak
+ o\expandafter\@gobble
+ }%
+ \fi
+ }%
+ \fi
+ \fi
+ \else
+ \scr@ifundefinedorrelax{KV@#1@@else@}{%
+ \PackageError{scrbase}{%
+ unknown option
+ `\expandafter\detokenize\expandafter{\scr@key@atlist}'%
+ }{%
+ No one of the members of family `#1'\MessageBreak
+ can handle option `\scr@key@name'.\MessageBreak
+ So it cannot be set%
+ \ifx\scr@key@value\@empty\else
+ \space to value
+ `\expandafter\detokenize\expandafter{\scr@key@value}'%
+ \fi.%
+ }%
+ }{%
+ \scr@execute@elseoption{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \else
\PackageError{scrbase}{%
unknown option
+ \ifx\FamilyKeyState\FamilyKeyStateUnknownValue
+ value at
+ \fi
`\expandafter\detokenize\expandafter{\scr@key@atlist}'%
}{%
- The members of family `#1' cannot set option
- `\scr@key@name'
+ No one of the members of family `#1'\MessageBreak
+ can handle option `\scr@key@name'.\MessageBreak
+ So it cannot be set%
\ifx\scr@key@value\@empty\else
- \MessageBreak
- to value
+ \space to value
`\expandafter\detokenize\expandafter{\scr@key@value}'%
- \fi.\MessageBreak
- Here's what each member says:
- \scr@key@run@errors
+ \fi.%
}%
\fi
- \fi
- \else
- \PackageError{scrbase}{%
- unknown option
- `\expandafter\detokenize\expandafter{\scr@key@atlist}'%
- }{%
- No one of the members of family `#1'\MessageBreak
- can handle option `\scr@key@name'.\MessageBreak
- So it cannot be set%
- \ifx\scr@key@value\@empty\else
- \space to value
- `\expandafter\detokenize\expandafter{\scr@key@value}'%
- \fi.%
}%
\fi
\fi
@@ -1591,7 +1684,7 @@
\noexpand\def\noexpand\scr@key@name@else{%
\unexpanded\expandafter{\scr@key@name@else}%
}%
- }
+ }%
\scr@ifundefinedorrelax{scr@key@value@else}{%
\unexpanded{\let\scr@key@value@else\relax}%
}{%
@@ -1752,14 +1845,16 @@
\DefineFamilyKey[{#1}]{#2}{#3}[true]{\FamilySetBool{#2}{#3}{#4}{##1}}%
}
\newcommand*{\FamilySetBool}[4]{%
- \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'%
+ \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'%
+ }%
}%
}%
}%
@@ -1769,6 +1864,23 @@
}%
\let\FamilyElseValues\@empty
}
+\newcommand*{\FamilyInverseBoolKey}[4][.\@currname.\@currext]{%
+ \@ifundefined{if#4}{%
+ \expandafter\newif\csname if#4\endcsname
+ \@nameuse{#4true}%
+ }{}%
+ \DefineFamilyKey[{#1}]{#2}{#3}[true]{\FamilySetInverseBool{#2}{#3}{#4}{##1}}%
+}
+\newcommand*{\FamilySetInverseBool}[4]{%
+ \FamilySetBool{#1}{#2}{#3}{#4}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \expandafter\ifx\csname if#3\expandafter\endcsname\csname iftrue\endcsname
+ \@nameuse{#3false}%
+ \else
+ \@nameuse{#3true}%
+ \fi
+ \fi
+}
\newcommand*{\FamilyCounterKey}[3][.\@currname.\@currext]{%
\kernel@ifnextchar [%]
{\Family@@Counter@@Key{#1}{#2}{#3}}%
@@ -2035,14 +2147,108 @@
\newcommand{\Family@CS@Key}[4]{%
\DefineFamilyKey[{#1}]{#2}{#3}{\@namedef{#4}{##1}\FamilyKeyStateProcessed}%
}
-%%% From File: $Id: scrkernel-language.dtx 3011 2018-08-29 07:35:17Z kohm $
+\newcommand*{\ForDoHook}[2]{%
+ \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.%
+ }%
+ }{%
+ \let\scr@hookname\relax
+ \edef\scr@hookargument{#1}%
+ \loop
+ \scr@hooksplit@specificator\scr@hookname\scr@hookargument
+ \scr@hookargument
+ \begingroup\edef\reserved@a{%
+ \unexpanded{\endgroup #2}{\scr@hookname}{\scr@hookargument}%
+ }\reserved@a
+ \ifx\scr@hookargument\@empty\else
+ \repeat
+ \let\scr@hookname\relax
+ \let\scr@hookargument\relax
+ }%
+}
+\newcommand*{\SplitDoHook}[3]{%
+ \ifstr{#1}{}{%
+ \PackageWarning{scrbase}{empty do-hook specificator}%
+ \let#2\@empty\let#3\@empty
+ }{%
+ \let#2\relax
+ \edef\reserved@a{%
+ \unexpanded{\scr@hooksplit@specificator{#2}{#3}}{#1}%
+ }\reserved@a
+ }%
+}
+\newcommand*{\scr@hooksplit@specificator}[3]{%
+ \expandafter\scr@@hooksplit@specificator\expandafter#1\expandafter#2#3/\@nil
+}
+\newcommand*{\scr@@hooksplit@specificator}{}
+\def\scr@@hooksplit@specificator#1#2#3/#4\@nil{%
+ \scr@ifundefinedorrelax{scr@hookname}{\def#1{#3}}{%
+ \edef#1{#1/#3}%
+ }%
+ \def#2{#4}%
+ \ifx#2\@empty\else \scr@@hookargument#2#4\@nil\fi
+}
+\newcommand*{\scr@@hookargument}{}
+\def\scr@@hookargument#1#2/\@nil{\def#1{#2}}%
+\newcommand*{\ExecuteDoHook}[1]{%
+ \@ifundefined{scr@execute@dohook}{%
+ \def\scr@execute@dohook##1##2{%
+ \def\scr@hook@do####1{####1{##2}}%
+ \@nameuse{scr@dohook@##1}%
+ \@nameuse{scr@otdohook@##1}%
+ \expandafter\global\expandafter\let
+ \csname scr@otdohook@##1\endcsname\@empty
+ \let\scr@hook@do\relax
+ }%
+ \ForDoHook{#1}{\scr@execute@dohook}%
+ \let\scr@execute@dohook\relax
+ }{%
+ \PackageWarning{scrbase}{cascaded do-hook detected.\MessageBreak
+ It seems, that the do-hook `\detokenize{#1}'\MessageBreak
+ is be executed, while another do-hook is active.\MessageBreak
+ This is not allowed and therefore ignored%
+ }%
+ }%
+}
+\newcommand*{\AddtoDoHook}[2]{%
+ \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.%
+ }%
+ }{%
+ \scr@ifundefinedorrelax{scr@dohook@#1}{\@namedef{scr@dohook@#1}{}}{}%
+ \expandafter\l@addto@macro\csname scr@dohook@#1\endcsname{%
+ \scr@hook@do{#2}%
+ }%
+ }%
+}
+\newcommand*{\AddtoOneTimeDoHook}[2]{%
+ \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.%
+ }%
+ }{%
+ \scr@ifundefinedorrelax{scr@otdohook@#1}{\@namedef{scr@otdohook@#1}{}}{}%
+ \expandafter\l@addto@macro\csname scr@otdohook@#1\endcsname{%
+ \scr@hook@do{#2}%
+ }%
+ }%
+}
+%%% From File: $Id: scrkernel-language.dtx 3262 2019-10-10 08:25:29Z kohm $
%%% (run: body)
\newcommand*{\defcaptionname}{%
\kernel@ifstar\scr@def@scaptionname\scr@def@captionname
}
\newcommand*{\scr@def@scaptionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\def#2{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2102,9 +2308,52 @@
}%
\fi
}
+\newcommand*{\scr@ifactivelanguageisoneof}[1]{%
+ \begingroup
+ \@tempswafalse
+ \@onelevel@sanitize\languagename
+ \edef\reserved@a{#1}%
+ \@for \reserved@a:=\reserved@a\do{%
+ \scr@trim@spaces\reserved@a
+ \@onelevel@sanitize\reserved@a
+ \ifx\languagename\reserved@a
+ \@tempswatrue
+ \else
+ \edef\reserved@b{\detokenize{german}}%
+ \ifx\languagename\reserved@b
+ \edef\reserved@b{%
+ \expandafter\ifx\csname if@german@oldspelling\expandafter\endcsname
+ \csname iffalse\endcsname n\fi
+ \expandafter\ifx \csname if@austrian@locale\expandafter\endcsname
+ \csname iftrue\endcsname austrian\else
+ \expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
+ \csname iftrue\endcsname swiss\else german\fi\fi
+ }%
+ \@onelevel@sanitize\reserved@b
+ \ifx\reserved@a\reserved@b \@tempswatrue\fi
+ \fi
+ \if@tempswa\else
+ \ifcsname l@\reserved@a\endcsname
+ \expandafter\ifnum \csname l@\reserved@a\endcsname=\language
+ \@tempswatrue
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \if@tempswa
+ \aftergroup\@firstoftwo
+ \else
+ \aftergroup\@secondoftwo
+ \fi
+ \endgroup
+}
\newcommand*{\scr@def@captionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\def#2{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2121,6 +2370,8 @@
\@tempswafalse
\ifcsname extras\scr@reserved@a\endcsname
\let#2\relax
+ \expandafter\providecommand\expandafter*%
+ \csname abx@extras@\scr@reserved@a\endcsname{}%
\csname extras\scr@reserved@a\endcsname
\ifx #2\relax \else \aftergroup\@tempswatrue \fi
\fi
@@ -2174,8 +2425,11 @@
\kernel@ifstar\scr@provide@scaptionname\scr@provide@captionname
}
\newcommand*{\scr@provide@scaptionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2190,6 +2444,8 @@
\else
\begingroup
\let#2\relax
+ \expandafter\providecommand\expandafter*%
+ \csname abx@extras@\scr@reserved@a\endcsname{}%
\csname extras\scr@reserved@a\endcsname
\csname captions\scr@reserved@a\endcsname
\ifx #2\relax \aftergroup\@firstofone
@@ -2214,8 +2470,11 @@
}%
}
\newcommand*{\scr@provide@captionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2230,6 +2489,8 @@
\else
\begingroup
\let#2\relax
+ \expandafter\providecommand\expandafter*%
+ \csname abx@extras@\scr@reserved@a\endcsname{}%
\csname captions\scr@reserved@a\endcsname
\csname extras\scr@reserved@a\endcsname
\ifx #2\relax \aftergroup\@firstofone
@@ -2257,8 +2518,11 @@
\kernel@ifstar\scr@new@scaptionname\scr@new@captionname
}
\newcommand*{\scr@new@scaptionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2272,6 +2536,8 @@
\else
\begingroup
\let#2\relax
+ \expandafter\providecommand\expandafter*%
+ \csname abx@extras@\scr@reserved@a\endcsname{}%
\csname captions\scr@reserved@a\endcsname
\csname extras\scr@reserved@a\endcsname
\ifx #2\relax
@@ -2302,8 +2568,11 @@
}%
}
\newcommand*{\scr@new@captionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2317,6 +2586,8 @@
\else
\begingroup
\let#2\relax
+ \expandafter\providecommand\expandafter*%
+ \csname abx@extras@\scr@reserved@a\endcsname{}%
\csname captions\scr@reserved@a\endcsname
\csname extras\scr@reserved@a\endcsname
\ifx #2\relax
@@ -2350,8 +2621,11 @@
\kernel@ifstar\scr@renew@scaptionname\scr@renew@captionname
}
\newcommand*{\scr@renew@scaptionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\renewcommand*{#2}{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2365,6 +2639,8 @@
\else
\begingroup
\let#2\relax
+ \expandafter\providecommand\expandafter*%
+ \csname abx@extras@\scr@reserved@a\endcsname{}%
\csname captions\scr@reserved@a\endcsname
\csname extras\scr@reserved@a\endcsname
\ifx #2\relax
@@ -2394,8 +2670,11 @@
}%
}
\newcommand*{\scr@renew@captionname}[3]{%
- \if@atdocument \expandafter\@firstofone
- \else \expandafter\AtBeginDocument
+ \if@atdocument
+ \expandafter\@firstofone
+ \else
+ \scr@ifactivelanguageisoneof{#1}{\renewcommand*{#2}{#3}}{}%
+ \expandafter\AtBeginDocument
\fi
{%
\begingroup
@@ -2409,6 +2688,8 @@
\else
\begingroup
\let#2\relax
+ \expandafter\providecommand\expandafter*%
+ \csname abx@extras@\scr@reserved@a\endcsname{}%
\csname extras\scr@reserved@a\endcsname
\ifx #2\relax
\csname captions\scr@reserved@a\endcsname