summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-12-06 23:18:10 +0000
committerKarl Berry <karl@freefriends.org>2014-12-06 23:18:10 +0000
commit4832d732052d6e2b43b5e3ff45aa31bfbc0cbdc2 (patch)
tree968a3b4cdf4631c0272fc725330ea28a554c8471 /Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
parent59d9a998c6236de39603cb2ea077c5371e06b842 (diff)
koma-script (6dec14)
git-svn-id: svn://tug.org/texlive/trunk@35754 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.dtx232
1 files changed, 146 insertions, 86 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 8faf8096b23..a5d08f11a3e 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx
@@ -1,8 +1,8 @@
-% \CheckSum{2390}
+% \CheckSum{2461}
% \iffalse meta-comment
% ======================================================================
% scrkernel-basics.dtx
-% Copyright (c) Markus Kohm, 2002-2013
+% Copyright (c) Markus Kohm, 2002-2014
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -20,7 +20,7 @@
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkernel-basics.dtx
-% Copyright (c) Markus Kohm, 2002-2013
+% Copyright (c) Markus Kohm, 2002-2014
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
@@ -55,11 +55,17 @@
% Right brace \} Tilde \~}
%
% \iffalse
-%%% From File: $Id: scrkernel-basics.dtx 1502 2013-11-06 11:00:12Z mjk $
+%%% From File: $Id: scrkernel-basics.dtx 1809 2014-10-17 08:02:00Z kohm $
%<package&option>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
%<*driver>
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\ProvidesFile{scrkernel-basics.dtx}[%
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2014-10-17 10:02:00 +0200 (Fri, 17 Oct 2014) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{#2}}
+ \filerevision$Revision: 1638 $
+\endgroup
+\ProvidesFile{scrkernel-basics.dtx}[\filedate\space\filerevision\space
%</driver>
%<*driver|(package&option)>
%<package>\ProvidesPackage{%
@@ -103,7 +109,7 @@
\RecordChanges
\GetFileInfo{scrkernel-basics.dtx}
\title{\KOMAScript{} \partname\ \texttt{\filename}%
- \footnote{Dies ist Version \fileversion\ von Datei
+ \footnote{Dies ist Revision \fileversion\ von Datei
\texttt{\filename}.}}
\date{\filedate}
\author{Markus Kohm}
@@ -337,8 +343,8 @@
\expandafter{\reserved@a}{#2}{#3}%
}%
}
-\newcommand*{\scr@define@family@key}{}
-\def\scr@define@family@key#1#2#3[#4]#5{%
+\newcommand{\scr@define@family@key}{}
+\long\def\scr@define@family@key#1#2#3[#4]#5{%
\scr@if@familymember{#1}{#2}{define a key}{%
\define@key{#2#1}{#3}[{#4}]{%
\def\FamilyOfKey{#2}\def\FamilyMemberOfKey{#1}%
@@ -348,7 +354,7 @@
}%
}%
}
-\newcommand*{\scr@define@family@key@nodefault}[4]{%
+\newcommand{\scr@define@family@key@nodefault}[4]{%
\scr@if@familymember{#1}{#2}{define a key}{%
\define@key{#2#1}{#3}{%
\def\FamilyOfKey{#2}\def\FamilyMemberOfKey{#1}%
@@ -608,6 +614,8 @@
% \end{macro}^^A \scr@AtEndOfFamilyOptions
% \end{macro}^^A \AtEndOfFamilyOptions
% \begin{macro}{\scr@ifprocess@curroption}
+% \changes{v3.13}{2014/01/04}{\cs{CurrentOption} innerhalb von \cs{setkeys}
+% in Klammern gesetzt}
% Dieses Makro führt eine aktuelle \textsf{keyval}-Option für das angegebene
% Mitglied (\#1) der angegebenen Familie (\#2) aus. Falls die Option keinen
% entsprechenden Wert hat, wird das vierte Argument ausgeführt, anderenfalls
@@ -622,7 +630,7 @@
\scr@ifundefinedorrelax{KV@#2#1@\reserved@a}{%
\let\FamilyKeyState\OptionNotUsed
}{%
- \protected@edef\reserved@b{\noexpand\setkeys{#2#1}{\CurrentOption}%
+ \protected@edef\reserved@b{\noexpand\setkeys{#2#1}{{\CurrentOption}}%
\noexpand\def\noexpand\CurrentOption{\CurrentOption}}%
\reserved@b
\ifx\FamilyKeyState\FamilyKeyStateUnknown
@@ -639,7 +647,7 @@
\let\FamilyKeyState\OptionNotUsed
}%
}{%
- \proteced@edef\reserved@b{\noexpand\setkeys{#2}{\CurrentOption}%
+ \proteced@edef\reserved@b{\noexpand\setkeys{#2}{{\CurrentOption}}%
\noexpand\def\noexpand\CurrentOption{\CurrentOption}}%
\reserved@b
\ifx\FamilyKeyState\FamilyKeyStateUnknown
@@ -655,7 +663,7 @@
\def\reserved@a##1=##2\@nil{\def\reserved@a{##1}}%
\expandafter\reserved@a\CurrentOption=\@nil
\scr@ifundefinedorrelax{KV@#2#1@\reserved@a}{}{%
- \protected@edef\reserved@b{\noexpand\setkeys{#2#1}{\CurrentOption}%
+ \protected@edef\reserved@b{\noexpand\setkeys{#2#1}{{\CurrentOption}}%
\noexpand\def\noexpand\CurrentOption{\CurrentOption}}%
\ifx\FamilyKeyState\FamiliyKeyStateProcessed
\reserved@b
@@ -805,7 +813,9 @@
% \changes{v2.97c}{2007/06/20}{Herausreichen von internen Makros kann
% generell verhindert werden}
% \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
@@ -832,9 +842,9 @@
\@ifundefined{#1}{%
\begingroup
\expandafter\def\expandafter\reserved@a
- \expandafter{\csname scr@#1\endcsname}
+ \expandafter{\csname scr@#1\endcsname}%
\expandafter\def\expandafter\reserved@b
- \expandafter{\csname #1\endcsname}
+ \expandafter{\csname #1\endcsname}%
\expandafter\expandafter\expandafter\endgroup
\expandafter\expandafter\expandafter\let\expandafter\reserved@b\reserved@a
\if@atdocument\else
@@ -1184,7 +1194,8 @@
% \end{macro}
%
% \begin{macro}{\ifisinteger}
-% \changes{v3.12}{2013/11/05}{neu}
+% \changes{v3.12}{2013/11/05}{neu}%^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^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}
@@ -1193,7 +1204,7 @@
\begingroup
\edef\reserved@a{#1}\expandafter
\scr@ifintegerplusminus\reserved@a\@nil{\aftergroup\@firstoftwo}%
- {\aftergroup\@secondoftwo}
+ {\aftergroup\@secondoftwo}%
\endgroup
}
% \end{macrocode}
@@ -1225,7 +1236,8 @@
% \end{macro}
%
% \begin{macro}{\ifisdimension}
-% \changes{v3.12}{2013/11/05}{neu}
+% \changes{v3.12}{2013/11/05}{neu}%^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A
% Falls die Expansion des ersten Arguments eine (positive oder negative)
% Länge ist, wird das zweite Argument ausgeführt, sonst das dritte. Es sei
% darauf hingewiesen, dass derzeit ungültige oder fehlende Einheiten eine
@@ -1236,7 +1248,7 @@
\begingroup
\edef\reserved@a{#1\relax}\expandafter
\scr@ifdimensionplusminus\reserved@a\@nil{\aftergroup\@firstoftwo}%
- {\aftergroup\@secondoftwo}
+ {\aftergroup\@secondoftwo}%
\endgroup
}
% \end{macrocode}
@@ -1270,7 +1282,8 @@
% \end{macro}
%
% \begin{macro}{\ifisglue}
-% \changes{v3.12}{2013/11/05}{neu}
+% \changes{v3.12}{2013/11/05}{neu}%^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A
% Falls die Expansion des ersten Arguments eine (positive oder negative)
% Ausdehnung ist, wird das zweite Argument ausgeführt, sonst das dritte. Es sei
% darauf hingewiesen, dass derzeit ungültige oder fehlende Einheiten eine
@@ -1281,7 +1294,7 @@
\begingroup
\edef\reserved@a{#1\relax}\expandafter
\scr@ifglueplusminus\reserved@a\@nil{\aftergroup\@firstoftwo}%
- {\aftergroup\@secondoftwo}
+ {\aftergroup\@secondoftwo}%
\endgroup
}
% \end{macrocode}
@@ -1318,6 +1331,7 @@
% \begin{macro}{\ifnumber}
% \changes{v3.12}{2013/10/30}{using \cs{aftergroup} instead of
% \cs{endgroup}\cs{expandafter}}%^^A
+% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^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.
@@ -1339,7 +1353,7 @@
% gescannt und beurteilt.
% \begin{macrocode}
\newcommand*{\test@number}[1]{%
- \ifx \scr@next#1
+ \ifx \scr@next#1%
\let\scr@next\relax
\else
% \end{macrocode}
@@ -1704,19 +1718,26 @@
% \subsection{Definition von KOMA-\textsf{keyval}-Schlüsseln (Hauptteil)}
%
% \begin{macro}{\FamilyExecuteOptions}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}
-% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt}
-% \changes{v3.04b}{2010/02/02}{\cs{scr@key@atlist} und \cs{scr@key@name}
-% vor Überschreiben in \cs{serkeys} geschützt}
-% \changes{v3.12}{2013/03/04}{neue Implementierung}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt}^^A
+% \changes{v3.04b}{2010/02/02}{\cs{scr@key@atlist} und \cs{scr@key@name}^^A
+% vor Überschreiben in \cs{serkeys} geschützt}^^A
+% \changes{v3.12}{2013/03/04}{neue Implementierung}^^A
% \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet
-% werden}
+% werden}^^A
+% \changes{v3.14}{2014/10/17}{das dritte Argument wird \cs{long}
+% verarbeitet}^^A
+% \begin{macro}{\@FamilyExecuteOptions}
+% \changes{v3.14}{2014/10/17}{Neue streng interne Anweisung}^^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.
% \begin{macrocode}
%<*base>
-\newcommand*{\FamilyExecuteOptions}[3][.\@currname.\@currext]{%
+\newcommand*{\FamilyExecuteOptions}[2][.\@currname.\@currext]{%
+ \@FamilyExecuteOptions[{#1}]{#2}%
+}
+\newcommand{\@FamilyExecuteOptions}[3][.\@currname.\@currext]{%
\@namedef{scr@after@options@#1@hook}{\@namedef{scr@after@options@#1@hook}{}}%
\@for\scr@key@atlist:=#3\do{%
\expandafter\scr@key@split@name@value\scr@key@atlist==\@nil
@@ -1804,6 +1825,7 @@
%</base>
% \end{macrocode}
% \end{macro}^^A \scr@show@key@state@error
+% \end{macro}^^A \@FamilyExecuteOptions
% \end{macro}^^A \FamilyExecuteOptions
%
% \begin{macro}{\KOMAExecuteOptions}
@@ -1822,12 +1844,15 @@
% \end{macro}
%
% \begin{macro}{\FamilyOptions}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}
-% \changes{v3.12}{2013/03/02}{Neue Implementierung}
-% \changes{v3.12}{2013/03/02}{\cs{scr@after@options@\#1@hook}}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \changes{v3.12}{2013/03/02}{Neue Implementierung}^^A
+% \changes{v3.12}{2013/03/02}{\cs{scr@after@options@\#1@hook}}^^A
+% \changes{v3.14}{2014/10/17}{zweites Argument wird \cs{long} behandelt}^^A
+% \begin{macro}{\@FamilyOptions}
+% \changes{v3.14}[2014/10/17]{Neue streng interne Anweisung}^^A
% \begin{macro}{\Family@Options}
-% \changes{v3.00}{2008/04/30}{Neues Makro (intern)}%
-% \changes{v3.12}{2013/03/04}{entfernt}
+% \changes{v3.00}{2008/04/30}{Neues Makro (intern)}%^^A
+% \changes{v3.12}{2013/03/04}{entfernt}^^A
% \end{macro}^^A \FamilyOptions
% Es werden Schlüssel einer Familie verwendet. Existiert ein Schlüssel nicht,
% oder ist der Wert für alle Schlüssel unbekannt, so wird ein Fehler
@@ -1836,7 +1861,8 @@
% erwähnt, dass der hook dabei nur die jeweilige Anweisung umfasst.
% \begin{macrocode}
%<*base>
-\newcommand*{\FamilyOptions}[2]{%
+\newcommand{\FamilyOptions}[1]{\@FamilyOptions{#1}}
+\newcommand{\@FamilyOptions}[2]{%
\@namedef{scr@after@options@#1@hook}{\@namedef{scr@after@options@#1@hook}{}}%
% \end{macrocode}
% \begin{description}
@@ -1962,7 +1988,11 @@
}
% \end{macrocode}
% \begin{macro}{\scr@execute@option}
-% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}%
+% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}%^^A
+% \changes{v3.13}{2014/06/30}{fehlendes \cs{expandafter} in \cs{PackageInfo}
+% ergänzt}%^^A
+% \changes{v3.13a}{2014/08/13}{Leerzeichen durch fehlendes Prozentzeichen
+% beseitigt}%^^A
% Es wird die bereits gesplittete Option ausgeführt, ohne dass die dabei
% wesentlichen Macros (aber nicht \cs{reserved@a}!) verändert werden. Das
% erste Argument ist bereits der Besitzer in \textsf{keyval}-Syntax.
@@ -1977,25 +2007,31 @@
\noexpand\def\noexpand\scr@key@name{%
\unexpanded\expandafter{\scr@key@name}}%
\noexpand\def\noexpand\scr@key@value{%
- \unexpanded\expandafter{\scr@key@value}}
+ \unexpanded\expandafter{\scr@key@value}}%
\ifx\scr@key@run@errors\relax
\noexpand\let\noexpand\scr@key@run@errors\relax
\else
\noexpand\def\noexpand\scr@key@run@errors{%
\unexpanded\expandafter{\scr@key@run@errors}}%
\fi
- \noexpand\def\expandafter\noexpand
- \csname scr@after@options@#1@hook\endcsname{%
- \expandafter\unexpanded\expandafter\expandafter\expandafter{%
- \csname scr@after@options@#1@hook\endcsname
- }}%
+ \expandafter\ifx\csname scr@after@options@#1@hook\endcsname\relax
+ \noexpand\expandafter\noexpand\let\noexpand\csname
+ scr@after@options@#1@hook\endcsname\relax
+ \else
+ \noexpand\def\expandafter\noexpand
+ \csname scr@after@options@#1@hook\endcsname{%
+ \expandafter\unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@after@options@#1@hook\endcsname
+ }}%
+ \fi
}%
\let\AtEndOfFamilyOptions\scr@AtEndOfFamilyOptions
\reserved@a
\let\AtEndOfFamilyOptions\@firstofone
\ifx\FamilyKeyState\FamilyKeyStateUnknown
\PackageInfo{scrbase}{Unknown processing state.\MessageBreak
- Processing option `\scr@key@atlist'\MessageBreak
+ Processing option
+ `\expandafter\detokenize\expandafter{\scr@key@atlist}'\MessageBreak
\ifx\FamilyMemberOfKey\@empty\else
of member `\FamilyMemberOfKey'\MessageBreak
\fi
@@ -2008,6 +2044,15 @@
\fi
}
% \end{macrocode}
+% \begin{macro}{\scr@KV@err}
+% \changes{v3.12a}{2013/03/04}{missing internal command added}
+% We just have to signal, that the option needs a value, that is missing.
+% \begin{macrocode}
+\newcommand*{\scr@KV@err}[1]{%
+ \FamilyKeyStateNeedValue
+}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\scr@key@run@errors}
% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}
% Wird innerhalb von \cs{FamilyOptions} benötigt, um die Fehlermeldungen
@@ -2036,13 +2081,14 @@
% \changes{v2.97e}{2007/11/10}{verwendet \cs{KV@@sp@def} zur Entsorgung von
% Leerzeichen}
% \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@split@name@value}}
+% \changes{v3.13}{2014/10/17}{\cs{long}}
% \begin{macrocode}
\newif\ifscr@key@found@
\newcommand*{\scr@key@atlist}{}
\newcommand*{\scr@key@name}{}
\newcommand*{\scr@key@value}{}
\newcommand*{\scr@key@split@name@value}{}
-\def\scr@key@split@name@value#1=#2=#3\@nil{%
+\long\def\scr@key@split@name@value#1=#2=#3\@nil{%
\KV@@sp@def\scr@key@name{#1}%
\KV@@sp@def\scr@key@value{#2}%
}
@@ -2052,13 +2098,16 @@
% \end{macro}^^A \scr@key@value
% \end{macro}^^A \scr@key@name
% \end{macro}^^A \scr@key@atlist
+% \end{macro}^^A \@FamilyOptions
% \end{macro}^^A \FamilyOptions
%
% \begin{macro}{\FamilyOption}
-% \changes{v3.00}{2008/04/30}{Neue Anweisung}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A
+% \begin{macro}{\@FamilyOptions}
+% \changes{v3.14}[2014/10/17]{Neue streng interne Anweisung}^^A
% \begin{macro}{\Family@Option}
-% \changes{v3.00}{2008/04/30}{Neu (intern)}
-% \changes{v3.12}{2013/03/04}{entfernt}
+% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A
+% \changes{v3.12}{2013/03/04}{entfernt}^^A
% \end{macro}
% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt}
% Im Gegensatz zu \cs{FamilyOptions} kann man mit dieser Anweisung nur eine
@@ -2068,7 +2117,8 @@
% dritte, obligatorische Argument ist die Liste der Werte für diese Option.
% \begin{macrocode}
%<*base>
-\newcommand*{\FamilyOption}[3]{%
+\newcommand*{\FamilyOption}[2]{\@FamilyOption{#1}{#2}}
+\newcommand{\@FamilyOption}[3]{%
\expandafter\KV@@sp@def\expandafter\scr@key@name\expandafter{#2}%
% \end{macrocode}
% Der einfachste Weg ist nun schlicht, die Liste der Werte durchzugehen und so
@@ -2099,6 +2149,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\KOMAoptions}
% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen}
@@ -2189,12 +2240,13 @@
% \changes{v3.10}{2011/09/12}{no error while processing global options}%^^A
% \changes{v3.11a}{2012/05/28}{prevent remove from list of unused global
% options globally}%^^A
+% \changes{v3.14}{2014/10/17}{\cs{long}}^^A
% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an einen
% Schlüssel. Das erste Argument ist die Familie, das zweite der Schlüssel,
% das dritte der Wert und das vierte die Liste der möglichen Werte.
% \begin{macrocode}
%<*base>
-\newcommand*{\FamilyUnknownKeyValue}[4]{%
+\newcommand{\FamilyUnknownKeyValue}[4]{%
\FamilyKeyStateUnknownValue
\ifx\FamilyElseValues\@empty\else
\PackageWarning{scrbase}{non empty \string\FamilyElseValue
@@ -2656,31 +2708,41 @@
}
% \end{macrocode}
% \begin{macro}{\KOMA@UseDeprecatedOption}
-% \changes{v3.01a}{2008/11/20}{neu (intern)}%
-% \changes{v3.12}{2013/03/04}{Test für \texttt{version!=first}}%
+% \changes{v3.01a}{2008/11/20}{neu (intern)}%^^A
+% \changes{v3.12}{2013/03/04}{Test für \texttt{version!=first}}%^^A
+% \changes{v3.12a}{2014/01/22}{vertauschte Logic für \texttt{version!=first}
+% korrigiert}%^^A
% Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind
% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels.
% \begin{macrocode}
\newcommand*{\KOMA@UseDeprecatedOption}[3]{%
- \let\scr@sr@co\CurrentOption
\begingroup
- #1{%
- You've used obsolete option `#2'.\MessageBreak
- Usage of this option indicates an old document and\MessageBreak
- \scr@ifundefinedorrelax{KV@KOMA.\@currname.\@currext @version}{%
- changes compatibility level using\MessageBreak
- `#3,version=first'.\MessageBreak
- If you don't want this, y%
- }{%
- is deprecated.\MessageBreak
- Y%
+ \scr@ifundefinedorrelax{KV@KOMA.\@currname.\@currext @version}{%
+ \edef\reserved@a{\noexpand\endgroup
+ \noexpand#1{%
+ You've used obsolete option `#2'.\noexpand\MessageBreak
+ Usage of this option is deprecated.\noexpand\MessageBreak
+ You should simply replace `#2'\noexpand\MessageBreak
+ by `#3'%
+ }%
+ \noexpand\KOMAExecuteOptions{#3}%
+ \noexpand\def\noexpand\CurrentOption{\CurrentOption}%
+ }%
+ }{%
+ \edef\reserved@a{\noexpand\endgroup
+ \noexpand#1{%
+ You've used obsolete option `#2'.\noexpand\MessageBreak
+ Usage of this option indicates an old document\noexpand\MessageBreak
+ and changes compatibility level using\noexpand\MessageBreak
+ `#3,version=first'.\noexpand\MessageBreak
+ If you don't want this, you should simply\noexpand\MessageBreak
+ replace option `#2' by `#3'%
+ }%
+ \noexpand\KOMAExecuteOptions{#3,version=first}%
+ \noexpand\def\noexpand\CurrentOption{\CurrentOption}%
}%
- ou should simply replace\MessageBreak
- usage of option `#2' by `#3'%
}%
- \endgroup
- \KOMAExecuteOptions{#3,version=first}%
- \let\CurrentOption\scr@sr@co
+ \reserved@a
}
%</koma>
% \end{macrocode}
@@ -2722,29 +2784,27 @@
% 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels.
% \begin{macrocode}
\newcommand*{\KOMA@UseStandardOption}[3]{%
- \let\scr@sr@co\CurrentOption
- #1{%
- You've used standard option `#2'.\MessageBreak
- This is correct!\MessageBreak
- Internally I'm using `#3'.\MessageBreak
- If you'd like to set the option with \string\KOMAoptions,\MessageBreak
- you'd have to use `#3' there\MessageBreak
- instead of `#2', too%
- }%
- \KOMAExecuteOptions{#3}%
- \let\CurrentOption\scr@sr@co
+ \begingroup
+ \edef\reserved@a{\noexpand\endgroup
+ \noexpand#1{%
+ You've used standard option `#2'.\noexpand\MessageBreak
+ This is correct!\noexpand\MessageBreak
+ Internally I'm using `#3'.\noexpand\MessageBreak
+ If you'd like to set the option with \string\KOMAoptions,%
+ \noexpand\MessageBreak
+ you'd have to use `#3' there\noexpand\MessageBreak
+ instead of `#2', too%
+ }%
+ \noexpand\KOMAExecuteOptions{#3}%
+ \noexpand\def\noexpand\CurrentOption{\CurrentOption}%
+ }%
+ \reserved@a
}
+%</koma>
% \end{macrocode}
% \begin{macro}{\scr@sr@co}
% \changes{v2.96}{2006/08/20}{neu (intern)}
-% Da das \texttt{xkeyval}-Paket leider \cs{CurrentOption} vernichtet, das aber
-% innerhalb von \cs{ProcessOptions} und \cs{KOMAProcessOptions} nach dem
-% Ausführen der Option noch benötigt wird, muss die Anweisung gesichert
-% werden. Dafür wird ein Hilfsmakro benötigt.
-% \begin{macrocode}
-\newcommand*{\scr@sr@co}{}
-%</koma>
-% \end{macrocode}
+% \changes{v3.12a}{2014/01/22}{beseitigt}
% \end{macro}^^A \scr@sr@co
% \end{macro}^^A \KOMA@UseStandardOption
% \end{macro}^^A \KOMA@@@DeclareStandardOption