summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-04-17 19:57:41 +0000
committerKarl Berry <karl@freefriends.org>2023-04-17 19:57:41 +0000
commit0f04be16f7c95e84cd17884ce759b58426c407eb (patch)
tree013394ce9db9673010895d238eeb3dd81bfa4cb6 /Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
parent8fe5055d95cdf4749ce6010ab87f031d5bf685d4 (diff)
koma-script (17apr23)
git-svn-id: svn://tug.org/texlive/trunk@66870 c570f23f-e606-0410-a88d-b1316a301751
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.dtx100
1 files changed, 63 insertions, 37 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 44e82629b8f..a498e28eee3 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
@@ -18,7 +18,7 @@
%
% This work consists of all files listed in MANIFEST.md.
% ======================================================================
-%%% From File: $Id: scrkernel-basics.dtx 3913 2022-06-28 07:45:49Z kohm $
+%%% From File: $Id: scrkernel-basics.dtx 4004 2022-11-16 10:43:42Z kohm $
%<prepare>%%% (run: prepare)
%<option>%%% (run: option)
%<body>%%% (run: body)
@@ -28,9 +28,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}}
- \filedate$Date: 2022-06-28 09:45:49 +0200 (Di, 28. Jun 2022) $
+ \filedate$Date: 2022-11-16 11:43:42 +0100 (Mi, 16. Nov 2022) $
\def\filerevision$#1: #2 ${\def\filerevision{r#2}}
- \filerevision$Revision: 3913 $
+ \filerevision$Revision: 4004 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-basics.dtx}%
@@ -518,15 +518,16 @@
% \begin{macro}{\KOMA@key}
% \changes{v2.97c}{2007/04/19}{optional argument added}
% \changes{v3.17}{2015/02/24}{rudimentary value storage}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% \pkg{keyval} keys of \KOMAScript{} are defined with \cs{KOMAkey} to setup
% the family to ``\texttt{KOMA}'' automatically. Additionally the value
% storage is initialized.
% \begin{macrocode}
%<*koma>
-\newcommand*{\KOMA@key}[1][.\@currname.\@currext]{%
- \DefineFamilyMember[{#1}]{KOMA}%
- \@ifundefined{scr@kav@KOMA#1}{\@namedef{scr@kav@KOMA#1}{}}{}%
- \DefineFamilyKey[{#1}]{KOMA}%
+\newcommand*{\KOMA@key}[1][\@currname.\@currext]{%
+ \DefineFamilyMember[{.#1}]{KOMA}%
+ \@ifundefined{scr@kav@KOMA.#1}{\@namedef{scr@kav@KOMA.#1}{}}{}%
+ \DefineFamilyKey[{.#1}]{KOMA}%
}
%</koma>
% \end{macrocode}
@@ -534,16 +535,17 @@
%
% \begin{macro}{\KOMA@kav@add}
% \changes{v3.17}{2015/02/24}{added}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% This macro stores a \texttt{\meta{key}=\meta{value}} pair in a internal
% list. The first argument is the family member, the second the \meta{key} and
% the third the \meta{value}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@add}[3]{%
- \@ifundefined{scr@kav@KOMA#1}{%
+ \@ifundefined{scr@kav@KOMA.#1}{%
\KOMA@internal@error\KOMA@kav@add{#1}%
}{%
- \expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{\do{{#2}{#3}}}%
+ \expandafter\l@addto@macro\csname scr@kav@KOMA.#1\endcsname{\do{{#2}{#3}}}%
}%
}
%</koma>
@@ -559,11 +561,11 @@
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@xadd}[3]{%
- \@ifundefined{scr@kav@KOMA#1}{%
+ \@ifundefined{scr@kav@KOMA.#1}{%
\KOMA@internal@error\KOMA@kav@xadd{#1}%
}{%
\protected@edef\reserved@a{{#2}{#3}}%
- \expandafter\l@addto@macro\csname scr@kav@KOMA#1\expandafter\endcsname
+ \expandafter\l@addto@macro\csname scr@kav@KOMA.#1\expandafter\endcsname
\expandafter{\expandafter\do\expandafter{\reserved@a}}%
}%
}
@@ -579,23 +581,23 @@
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@remove}[3]{%
- \@ifundefined{scr@kav@KOMA#1}{%
+ \@ifundefined{scr@kav@KOMA.#1}{%
\KOMA@internal@error\KOMA@kav@remove{#1}%
}{%
\begingroup
- \def\reserved@a{\endgroup\@namedef{scr@kav@KOMA#1}{}}%
+ \def\reserved@a{\endgroup\@namedef{scr@kav@KOMA.#1}{}}%
\edef\reserved@b{\detokenize{{#2}{#3}}}%
\def\do##1{%
\edef\reserved@c{\detokenize{##1}}%
\ifx\reserved@b\reserved@c\else
\l@addto@macro\reserved@a{%
- \expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{%
+ \expandafter\l@addto@macro\csname scr@kav@KOMA.#1\endcsname{%
\do{##1}%
}%
}%
\fi
}%
- \@nameuse{scr@kav@KOMA#1}%
+ \@nameuse{scr@kav@KOMA.#1}%
\reserved@a
}%
}
@@ -605,30 +607,31 @@
%
% \begin{macro}{\KOMA@kav@removekey}
% \changes{v3.17}{2015/02/24}{added}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% This macro removes all \texttt{\meta{key}=\meta{value}} pairs of a given
% \meta{key} from the internal list. The first argument is the family member,
% the second the \meta{key}.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@removekey}[2]{%
- \@ifundefined{scr@kav@KOMA#1}{%
+ \@ifundefined{scr@kav@KOMA.#1}{%
\KOMA@internal@error\KOMA@kav@removekey{#1}%
}{%
\begingroup
- \def\reserved@a{\endgroup\@namedef{scr@kav@KOMA#1}{}}%
+ \def\reserved@a{\endgroup\@namedef{scr@kav@KOMA.#1}{}}%
\edef\reserved@b{\detokenize{#2}}%
\def\reserved@d##1##2{\edef\reserved@c{\detokenize{##1}}}%
\def\do##1{%
\reserved@d##1\relax
\ifx\reserved@b\reserved@c\else
\l@addto@macro\reserved@a{%
- \expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{%
+ \expandafter\l@addto@macro\csname scr@kav@KOMA.#1\endcsname{%
\do{##1}%
}%
}%
\fi
}%
- \@nameuse{scr@kav@KOMA#1}%
+ \@nameuse{scr@kav@KOMA.#1}%
\reserved@a
}%
}
@@ -638,6 +641,7 @@
%
% \begin{macro}{\KOMA@kav@replacevalue,\KOMA@kav@xreplacevalue}
% \changes{v3.17}{2015/02/25}{added}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% If \cs{FamilyKeyState} is \cs{FamilyKeyStateProcessed},
% these macros replace a \texttt{\meta{key}=\meta{value}} pair in the internal list.
% The first argument is the family member, the second the \meta{key} and the
@@ -647,7 +651,7 @@
%<*koma>
\newcommand*{\KOMA@kav@replacevalue}[3]{%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
- \@ifundefined{scr@kav@KOMA#1}{%
+ \@ifundefined{scr@kav@KOMA.#1}{%
\KOMA@internal@error\KOMA@kav@replacevalue{#1}%
}{%
\KOMA@kav@removekey{#1}{#2}%
@@ -657,7 +661,7 @@
}
\newcommand*{\KOMA@kav@xreplacevalue}[3]{%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
- \@ifundefined{scr@kav@KOMA#1}{%
+ \@ifundefined{scr@kav@KOMA.#1}{%
\KOMA@internal@error\KOMA@kav@replacevalue{#1}%
}{%
\KOMA@kav@removekey{#1}{#2}%
@@ -671,6 +675,7 @@
%
% \begin{macro}{\KOMA@kav@replacebool}
% \changes{v3.17}{2015/02/24}{added}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% If \cs{FamilyKeyState} is \cs{FamilyKeyStateProcessed},
% this macro replaces the value of a if key in the internal list.
% The first argument is the family member, the second the \meta{key} and the
@@ -679,7 +684,7 @@
%<*koma>
\newcommand*{\KOMA@kav@replacebool}[3]{%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
- \@ifundefined{scr@kav@KOMA#1}{%
+ \@ifundefined{scr@kav@KOMA.#1}{%
\KOMA@internal@error\KOMA@kav@replacebool{#1}%
}{%
\KOMA@kav@remove{#1}{#2}{false}%
@@ -699,20 +704,21 @@
%
% \begin{macro}{\KOMA@kav@defall}
% \changes{v3.17}{2015/02/24}{added}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% This macro defines a macro/command with the \texttt{\meta{key}=\meta{value}}
% list of all stored pairs. The first argument is the macro/command to be
% defined with the list. The second is the family member.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@defall}[2]{%
- \@ifundefined{scr@kav@KOMA#2}{%
+ \@ifundefined{scr@kav@KOMA.#2}{%
\KOMA@internal@error\KOMA@kav@defall{#1}%
}{%
\begingroup
\let\reserved@a\@empty
\def\reserved@b##1##2{\l@addto@macro\reserved@a{,{##1=##2}}}%
\def\do##1{\reserved@b##1}%
- \@nameuse{scr@kav@KOMA#2}%
+ \@nameuse{scr@kav@KOMA.#2}%
\ifx\reserved@a\@empty
\def\reserved@b{\endgroup\let#1\@empty}%
\else
@@ -732,6 +738,7 @@
% \begin{macro}{\KOMA@kav@defone}
% \changes{v3.17}{2015/02/25}{added}
% \changes{v3.28}{2019/11/18}{\cs{ifstrstart} renamed to \cs{Ifstrstart}}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% This macro defines a macro/command with all stored values of a \meta{key}
% from the internal list of \texttt{\meta{key}=\meta{value}} pairs.
% The first argument is the macro/command to be defined. The second is the
@@ -739,7 +746,7 @@
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMA@kav@defone}[3]{%
- \@ifundefined{scr@kav@KOMA#2}{%
+ \@ifundefined{scr@kav@KOMA.#2}{%
\KOMA@internal@error\KOMA@kav@defall{#1}%
}{%
\begingroup
@@ -748,7 +755,7 @@
\Ifstr{##1}{#3}{\l@addto@macro\reserved@a{,{##2}}}{}%
}%
\def\do##1{\reserved@b##1}%
- \@nameuse{scr@kav@KOMA#2}%
+ \@nameuse{scr@kav@KOMA.#2}%
\ifx\reserved@a\@empty
\def\reserved@b{\endgroup\let#1\@empty}%
\else
@@ -767,6 +774,7 @@
%
% \begin{macro}{\KOMA@internal@error}
% \changes{v3.17}{2015/02/24}{added}
+% \changes{v3.39}{2022/11/11}{bug report address changed}
% General internal error message with the recommendation to report a bug.
% \begin{macrocode}
%<*koma>
@@ -779,7 +787,7 @@
that\MessageBreak
shows this error, to komascript at gmx dot info or report it
at\MessageBreak
- <http://www.komascript.de/forum/20> (you need an account to do so).%
+ <https://sf.net/p/koma-script/tickets/> (you need an account to do so).%
}%
}
%</koma>
@@ -3370,6 +3378,8 @@
% \changes{v2.97c}{2007/04/19}{added}
% \changes{v3.00}{2008/04/30}{no optional argument}
% \changes{v3.12}{2013/03/04}{can be used after the document preamble}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
+% \changes{v3.99}{2022/11/16}{do not handle deprecated initial dot}
% Executes a \meta{list of options} (\texttt{\#3}) of a \meta{member} (optional
% \texttt{\#1}) of a \meta{family} (\texttt{\#2}). The default for the
% \meta{member} is \file{.\cs{@currname}.\cs{@currext}}. Note: If
@@ -3379,8 +3389,19 @@
% optional argument to set a definite \meta{member}.
% \begin{macrocode}
%<*koma>
-\newcommand*{\KOMAExecuteOptions}[1][.\@currname.\@currext]{%
- \FamilyExecuteOptions[#1]{KOMA}%
+\newcommand*{\KOMAExecuteOptions}[1][\@currname.\@currext]{%
+%<*!v4>
+ \Ifstrstart{#1}{.}{%
+ \PackageWarning{scrkbase}{Deprecated initial dot of member
+ argument\MessageBreak
+ of \string\KOMAExecuteOptions\space detected%
+ }%
+ \expandafter\FamilyExecuteOptions[#1]%
+ }{%
+%</!v4>
+ \FamilyExecuteOptions[.#1]%
+%<!v4> }%
+ {KOMA}%
}
%</koma>
% \end{macrocode}
@@ -3932,6 +3953,8 @@
%
% \begin{command}{\KOMAoptionsOf}
% \changes{v3.17}{2015/02/25}{added}
+% \changes{v3.39}{2022/11/11}{initial dot removed from member argument of
+% \cs{KOMA@kac@defall}}
% Ask for the currently set options of a supporting \KOMAScript{} class or
% package. The optional first argument (\texttt{\#1}) is a command or macro,
% that will be execute with the list of options as an argument. The second
@@ -3948,7 +3971,7 @@
}{%
\begingroup
\def\reserved@a{#1}%
- \KOMA@kav@defall\reserved@b{.#2}%
+ \KOMA@kav@defall\reserved@b{#2}%
\expandafter\expandafter\expandafter\endgroup
\expandafter\reserved@a\expandafter{\reserved@b}%
}%
@@ -3976,7 +3999,7 @@
}{%
\begingroup
\def\reserved@a{#1}%
- \KOMA@kav@defone\reserved@b{.#2}{#3}%
+ \KOMA@kav@defone\reserved@b{#2}{#3}%
\ifx\reserved@b\@empty
\PackageWarning{scrkbase}{option `#3' for `#2' unset}%
\endgroup
@@ -4292,6 +4315,7 @@
% \begin{macro}{\KOMA@ifkey}
% \changes{v3.02c}{2009/02/04}{defines the member if needed}
% \changes{v3.17}{2015/03/02}{replaces the value in the storage}
+% \changes{v3.39}{2022/11/11}{initial dot added automatically}
% This is an extended version of \cs{FamilyBoolKey} with static family
% |KOMA|. So the syntax is:
% \begin{quote}
@@ -4307,7 +4331,7 @@
% was not defined, the initialized value is \opt{false}.
% \begin{macrocode}
%<*koma>
-\newcommand*{\KOMA@ifkey}[2][.\@currname.\@currext]{%
+\newcommand*{\KOMA@ifkey}[2][\@currname.\@currext]{%
\begingroup\edef\reserved@a{\noexpand\KOMA@@ifkey{#1}{#2}}%
\expandafter\endgroup\reserved@a
}
@@ -4838,7 +4862,7 @@
% e.g., using \cs{KOMA@kav@add}.
% \begin{macrocode}
%<*koma>
-\newcommand*{\KOMA@ncmdkey}[2][.\@currname.\@currext]{%
+\newcommand*{\KOMA@ncmdkey}[2][\@currname.\@currext]{%
\begingroup\edef\reserved@a{\noexpand\KOMA@@ncmdkey{#1}{#2}}%
\expandafter\endgroup\reserved@a
}
@@ -4950,6 +4974,7 @@
% \changes{v3.01a}{2008/11/20}{added}
% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by
% \cs{kernel@ifnextchar}}
+% \changes{v3.99}{2022/11/16}{not with \KOMAScript~4}
% Used to define a deprecated \meta{classic option} by an up-to-date
% \meta{\pkg*{keyval} option}.
% \begin{quote}
@@ -4961,7 +4986,7 @@
% \begin{macro}{\KOMA@@DeclareDeprecatedOption,\KOMA@@@DeclareDeprecatedOption}
% \changes{v3.01a}{2008/11/20}{added}
% \begin{macrocode}
-%<*koma>
+%<*koma&!v4>
\newcommand*{\KOMA@DeclareDeprecatedOption}{%
\kernel@ifnextchar [%]
{\KOMA@@DeclareDeprecatedOption}%
@@ -5024,7 +5049,7 @@
}%
\reserved@a
}
-%</koma>
+%</koma&!v4>
% \end{macrocode}
% \end{macro}^^A \KOMA@UseDeprecatedOption
% \end{macro}^^A \KOMA@@DeclareDeprecatedOption,\KOMA@@@DeclareDeprecatedOption
@@ -5101,6 +5126,7 @@
% \begin{macro}{\KOMA@newobsoletecommand,\KOMA@newdeprecatedcommand}
% \changes{v3.12}{2013/03/04}{\cs{KOMA@newobsoletecommand} renamed to
% \cs{KOMA@newdeprecatedcommand}}
+% \changes{v3.99}{2022/11/16}{not with \KOMAScript~4}
% Defines a deprecated command or \meta{macro}, represented by a
% \meta{\pkg*{keyval} option}:
% \begin{quote}
@@ -5114,7 +5140,7 @@
% \changes{v3.12}{2013/03/04}{\cs{KOMA@UseObsoleteCommand} renamed to
% \cs{KOMA@UseDeprecatedCommand}}
% \begin{macrocode}
-%<*koma>
+%<*koma&!v4>
\newcommand*{\KOMA@newdeprecatedcommand}[3][\@gobbletwo]{%
\newcommand*{#2}{\KOMA@UseDeprecatedCommand{#1}{\string#2}{#3}}%
}
@@ -5128,7 +5154,7 @@
}%
\KOMAoptions{#3}%
}
-%</koma>
+%</koma&!v4>
% \end{macrocode}
% \end{macro}^^A \KOMA@UseDeprecatedCommand
% \end{macro}^^A \KOMA@newdeprecatedcommand