From 4832d732052d6e2b43b5e3ff45aa31bfbc0cbdc2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 6 Dec 2014 23:18:10 +0000 Subject: koma-script (6dec14) git-svn-id: svn://tug.org/texlive/trunk@35754 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/koma-script/scrkernel-basics.dtx | 232 +++++++++++++-------- 1 file changed, 146 insertions(+), 86 deletions(-) (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx') 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 $ %\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|(package&option)> %\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 @@ % % \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 } % % \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 } +% % \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}{} -% -% \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 -- cgit v1.2.3