diff options
author | Karl Berry <karl@freefriends.org> | 2015-04-24 23:19:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-04-24 23:19:31 +0000 |
commit | 0a00b3b492fd27dc12cddae602b2c43206a17d74 (patch) | |
tree | 40a09bf2208cc13bcd727626e1ee058e2caa68b1 /Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx | |
parent | 77b150bbd42aa48ba71627e09763785b26adfcfd (diff) |
koma-script (24apr15)
git-svn-id: svn://tug.org/texlive/trunk@37036 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.dtx | 835 |
1 files changed, 599 insertions, 236 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 e26ceedc923..1fd7bf5a694 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-basics.dtx @@ -1,4 +1,4 @@ -% \CheckSum{2579} +% \CheckSum{2919} % \iffalse meta-comment % ====================================================================== % scrkernel-basics.dtx @@ -55,17 +55,22 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-basics.dtx 1897 2015-01-02 12:04:12Z kohm $ +%%% From File: $Id: scrkernel-basics.dtx 2011 2015-03-17 11:39:55Z kohm $ %<package&option>\NeedsTeXFormat{LaTeX2e}[1995/06/01] %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup - \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} - \filedate$Date: 2015-01-02 13:04:12 +0100 (Fri, 02 Jan 2015) $ - \def\filerevision$#1: #2 ${\gdef\filerevision{#2}} + \def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}} + \filedate$Date: 2015-03-17 12:39:55 +0100 (Tue, 17 Mar 2015) $ + \def\filerevision$#1: #2 ${\def\filerevision{r#2}} \filerevision$Revision: 1638 $ -\endgroup -\ProvidesFile{scrkernel-basics.dtx}[\filedate\space\filerevision\space + \xdef\fileinfo{\filedate\space\filerevision\space} + \edef\reserved@a{% + \noexpand\endgroup + \noexpand\ProvidesFile{scrkernel_basics.dtx}% + [\filedate\space\filerevision\space + } +\reserved@a %</driver> %<*driver|(package&option)> %<package>\ProvidesPackage{% @@ -124,7 +129,7 @@ % % \selectlanguage{ngerman} % -% \changes{v1.0}{2002/07/06}{Beginn der ersten Version} +% \changes{v1.0}{2002/07/06}{Beginn der ersten Version}^^A % \changes{v3.12}{203/03/05}{Verwendung von \cs{@tempa}, \cs{@tempb}, % \cs{@tempc} eliminiert} % @@ -216,11 +221,11 @@ % \subsection{Test von Anweisungen} % % \begin{macro}{\scr@ifundefinedorrelax} -% \changes{v2.95c}{2006/08/12}{neu (intern)} -% \changes{v2.97b}{2007/03/08}{vermurkste Logik korrigiert} -% \changes{v2.97c}{2007/04/18}{vermurkste Funktion korrigiert} +% \changes{v2.95c}{2006/08/12}{neu (intern)}^^A +% \changes{v2.97b}{2007/03/08}{vermurkste Logik korrigiert}^^A +% \changes{v2.97c}{2007/04/18}{vermurkste Funktion korrigiert}^^A % \changes{v2.97c}{2007/04/18}{von \cs{scr@ifundefined} umbenannt} -% \changes{v3.02c}{2009/02/19}{Sonderbehandlung für nicht \eTeX entfernt} +% \changes{v3.02c}{2009/02/19}{Sonderbehandlung für nicht \eTeX entfernt}^^A % Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber % ein undefiniertes Makro nicht als \cs{relax}. Es muss bereits hier definiert % werden, weil es gleich verwendet wird. @@ -239,13 +244,13 @@ } %</base> % \end{macrocode} -% \end{macro}^^A \scr@ifundefinedorrelax +% \end{macro}^^A \scr@ifundefinedorrelax % % % \subsection{Erweiterung von Meldungen} % % \begin{macro}{\PackageErrorNoLine} -% \changes{v3.12}{2013/09/19}{neu} +% \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 @@ -270,16 +275,16 @@ % sind. % % \begin{macro}{\DefineFamily} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A % \begin{macro}{\DefineFamilyMember} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A % \begin{macro}{\DefineFamilyKey} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A % \changes{v3.12}{2013/03/04}{Setzen von \cs{FamilyKeyState}} % \begin{macro}{\scr@if@family} -% \changes{v3.00}{2008/04/30}{Neu (intern)} +% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A % \begin{macro}{\scr@if@familymember} -% \changes{v3.00}{2008/04/30}{Neu (intern)} +% \changes{v3.00}{2008/04/30}{Neu (intern)}^^A % Familie, Familienmitglied und \textsf{keyval}-Schlüssel für ein % Familienmitglied definieren. Dabei wird als Familienmitglied per Default der % (Datei-)Name des aktuellen Pakets bzw. der aktuellen Klasse verwendet. @@ -377,7 +382,7 @@ % \end{macro}^^A \DefineFamily % % \begin{macro}{\RelaxFamilyKey} -% \changes{v3.15}{2014/12/03}{neue Anweisung} +% \changes{v3.15}{2014/12/03}{neue Anweisung}^^A % Undefiniert einen Schlüssel. Irgendwelche Hilfsmakros werden dabei nicht % angetastet. Stattdessen wird nur der Schlüssel selbst und ggf. ein % Defaultwert als \cs{relax} definiert, so dass er nicht mehr verwendet werden @@ -397,9 +402,9 @@ % \end{macro} % % \begin{macro}{\FamilyKeyState} -% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A % \begin{macro}{\FamilyKeyStateProcessed} -% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A % \begin{macro}{\FamilyKeyStateUnknown} % \changes{v3.12}{2013/03/04}{Neue Anweisung}% % \begin{macro}{\FamilyKeyStateUnknownValue} @@ -441,9 +446,9 @@ % \end{macro}^^A \FamilyKeyState % % \begin{macro}{\FamilyOfKey} -% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A % \begin{macro}{\FamilyMemberOfKey} -% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A % Geben innerhalb der Verarbeitung eines Schlüssels dessen Familie bzw. das % zugehörige Familienmitglied an. % \begin{macrocode} @@ -456,7 +461,9 @@ % \end{macro}^^A \FamilyOfKey % % \begin{macro}{\KOMA@key} -% \changes{v2.97c}{2007/04/19}{neues optionales Argument} +% \changes{v2.97c}{2007/04/19}{neues optionales Argument}^^A +% \changes{v3.17}{2015/02/24}{rudimentäre Funktionalität zur Speicherung von +% Optionen}^^A % \begin{macro}{\KOMA@key@familylist} % \textsf{keyval}-Schlüssel für \KOMAScript{} werden mit \cs{KOMAkey} % definiert, damit auch die Familie korrekt gesetzt und ggf. der Liste der @@ -464,12 +471,271 @@ % \begin{macrocode} %<*koma> \newcommand*{\KOMA@key}[1][.\@currname.\@currext]{% - \DefineFamilyMember{KOMA}% - \DefineFamilyKey[#1]{KOMA}% + \DefineFamilyMember[{#1}]{KOMA}% + \@ifundefined{scr@kav@KOMA#1}{\@namedef{scr@kav@KOMA#1}{}}{}% + \DefineFamilyKey[{#1}]{KOMA}% +} +%</koma> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\KOMA@kav@add} +% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A +% Dieses Makro speichert ein \texttt{key=value}-Paar in der internen Liste. +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@add}[3]{% + \@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}}}% + }% +} +% \end{macrocode} +%</koma> +% \end{macro} +% +% \begin{macro}{\KOMA@kav@xadd} +% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A +% Dieses Makro speichert ein zuvor expandiertes \texttt{key=value}-Paar in der +% internen Liste. +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@xadd}[3]{% + \@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{\expandafter\do\expandafter{\reserved@a}}% + }% +} +% \end{macrocode} +%</koma> +% \end{macro} +% +% \begin{macro}{\KOMA@kav@remove} +% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A +% Dieses Makro entfernt ein ganz bestimmtes \texttt{key=value}-Paar aus der +% internen Liste. +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@remove}[3]{% + \@ifundefined{scr@kav@KOMA#1}{% + \KOMA@internal@error\KOMA@kav@remove{#1}% + }{% + \begingroup + \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{% + \do{##1}% + }% + }% + \fi + }% + \@nameuse{scr@kav@KOMA#1}% + \reserved@a + }% +} +%</koma> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMA@kav@removekey} +% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A +% Dieses Makro entfernt alle \texttt{key=value}-Paar mit einem gegebenen +% \texttt{key} aus der internen Liste. +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@removekey}[2]{% + \@ifundefined{scr@kav@KOMA#1}{% + \KOMA@internal@error\KOMA@kav@removekey{#1}% + }{% + \begingroup + \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{% + \do{##1}% + }% + }% + \fi + }% + \@nameuse{scr@kav@KOMA#1}% + \reserved@a + }% +} +%</koma> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMA@kav@replacevalue} +% \begin{macro}{\KOMA@kav@xreplacevalue} +% \changes{v3.17}{2015/02/25}{neu (\KOMAScript intern)}^^A +% Diese Makros dienen dazu, den Wert Schlüssels in der internen Liste +% auszutauschen. Das erste (optionale) Argument ist das Mitglied, das zweite +% ist der Name des Schlüssels, das dritte der neue Wert. Es setzt den Status +% \cs{FamilyKeyStateProcessed} voraus. Anderenfalls tut es nichts! +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@replacevalue}[3]{% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \@ifundefined{scr@kav@KOMA#1}{% + \KOMA@internal@error\KOMA@kav@replacevalue{#1}% + }{% + \KOMA@kav@removekey{#1}{#2}% + \KOMA@kav@add{#1}{#2}{#3}% + }% + \fi +} +\newcommand*{\KOMA@kav@xreplacevalue}[3]{% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \@ifundefined{scr@kav@KOMA#1}{% + \KOMA@internal@error\KOMA@kav@replacevalue{#1}% + }{% + \KOMA@kav@removekey{#1}{#2}% + \KOMA@kav@xadd{#1}{#2}{#3}% + }% + \fi +} +%</koma> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\KOMA@kav@replacebool} +% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A +% Dieses Makro dient dazu, den Wert eines if-Schlüssels in der internen Liste +% auszutauschen. Das erste (optionale) Argument ist das Mitglied, das zweite +% ist der Name des Schlüssels, das dritte der Name des Schalters. Es setzt den +% Status \cs{FamilyKeyStateProcessed} voraus. Anderenfalls tut es nichts! +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@replacebool}[3]{% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \@ifundefined{scr@kav@KOMA#1}{% + \KOMA@internal@error\KOMA@kav@replacebool{#1}% + }{% + \KOMA@kav@remove{#1}{#2}{false}% + \KOMA@kav@remove{#1}{#2}{true}% + \expandafter\ifx\csname if#3\expandafter\endcsname + \csname iftrue\endcsname + \KOMA@kav@xadd{#1}{#2}{true}% + \else + \KOMA@kav@xadd{#1}{#2}{false}% + \fi + }% + \fi +} +%</koma> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMA@kav@defall} +% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A +% Dieses Makro liefert eine \texttt{key=value}-Liste aller gespeicherten Paare. +% Das erste Argument ist die zu definierende Anweisung, das zweite ist das +% Mitglied. +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@defall}[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}% + \ifx\reserved@a\@empty + \def\reserved@b{\endgroup\let#1\@empty}% + \else + \edef\reserved@b{% + \unexpanded{\endgroup\def#1}{% + \unexpanded + \expandafter\expandafter\expandafter{% + \expandafter\@gobble\reserved@a}}}% + \fi + \reserved@b + }% +} +%</koma> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\KOMA@kav@defone} +% \changes{v3.17}{2015/02/25}{neu (\KOMAScript intern)}^^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 +% Argument ist die zu definierende Anweisung, das zweite ist das Mitglied +% und das dritte der Schlüssel. +% Es ist ausschließlich für den \KOMAScript-internen Gebrauch bestimmt. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@kav@defone}[3]{% + \@ifundefined{scr@kav@KOMA#2}{% + \KOMA@internal@error\KOMA@kav@defall{#1}% + }{% + \begingroup + \let\reserved@a\@empty + \def\reserved@b##1##2{% + \ifstr{##1}{#3}{\l@addto@macro\reserved@a{,{##2}}}{}% + }% + \def\do##1{\reserved@b##1}% + \@nameuse{scr@kav@KOMA#2}% + \ifx\reserved@a\@empty + \def\reserved@b{\endgroup\let#1\@empty}% + \else + \edef\reserved@b{% + \unexpanded{\endgroup\def#1}{% + \unexpanded + \expandafter\expandafter\expandafter{% + \expandafter\@gobble\reserved@a}}}% + \fi + \reserved@b + }% } %</koma> % \end{macrocode} % \end{macro} +% +% \begin{macro}{\KOMA@internal@error} +% \changes{v3.17}{2015/02/24}{neu (\KOMAScript intern)}^^A +% Einfach nur eine Meldung über einen internen Fehler mit der Bitte um einen +% entsprechenden Bug-Report. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMA@internal@error}[2]{% + \PackageError{scrkbase}{internal error using \string#1{#2}}{% + You've found an internal error either in KOMA-Script or a third + party\MessageBreak + definition, that uses KOMA-Script internal macros.\MessageBreak + Please send a bug report with a minimal but complete example, + 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).% + }% +} +%</koma> +% \end{macrocode} % \end{macro} % % \subsection{Optionen} @@ -482,8 +748,8 @@ % definiert wurden. % % \begin{macro}{\@globaloptionslist} -% \changes{v2.96}{2006/11/26}{new} -% \changes{v2.96}{2006/11/26}{Klassenoptionen durchsuchen} +% \changes{v2.96}{2006/11/26}{new}^^A +% \changes{v2.96}{2006/11/26}{Klassenoptionen durchsuchen}^^A % Die Lister der globalen Optionen wird teilweise benötigt. Weil % \textsl{xkeyval} dämlicherweise glaubt, es müsse alle Optionen mit % Gleichheitszeichen aus der Liste der Klassenoptionen entfernen @@ -506,8 +772,8 @@ % \begin{macro}{\FamilyProcessOptions} % \changes{v3.00}{2008/04/30}{Neue Anweisung}% % \changes{v3.11a}{2012/06/11}{Klassen melden falsche Werte nicht -% selbst als Fehler, sondern informieren nur darüber} -% \changes{v3.12}{2013/03/04}{Fehlerbehandlung} +% selbst als Fehler, sondern informieren nur darüber}^^A +% \changes{v3.12}{2013/03/04}{Fehlerbehandlung}^^A % Es ist zu beachten, dass falsche Werte für Optionen grundsätzlich nicht in % der Verarbeitung der Optionen per Info, Warnung oder Fehler gemeldet werden % sollten, sondern über setzen von \cs{FamilyKeyState}. Erst, wenn auch andere @@ -518,7 +784,7 @@ % darf. % \begin{macro}{\scr@removeunused} % \changes{v3.10}{2011/09/12}{neu (intern)}% -% \changes{v3.12}{2013/03/04}{entfernt} +% \changes{v3.12}{2013/03/04}{entfernt}^^A % \end{macro}^^A \scr@removeunused % \begin{macro}{\scr@optiontest} % \changes{v2.97c}{2007/04/18}{neu (intern)}% @@ -615,14 +881,14 @@ \@onlypreamble\FamilyProcessOptions % \end{macrocode} % \begin{macro}{\AtEndOfFamilyOptions} -% \changes{v3.12}{2013/03/04}{Neue Anweisung} +% \changes{v3.12}{2013/03/04}{Neue Anweisung}^^A % Mit dieser Option kann innerhalb der Ausführung einer Option Material auf % das Ende der aktuellen \cs{FamilyProcessOptions}, \cs{FamilyExecuteOptions}, % \cs{FamilyOptions} oder \cs{FamilyOption} verzögert werden. Als einziges % Argument wird der zu verzögernde Code erwartet, der an \cs{l@addto@macro} % delegiert wird. % \begin{macro}{\scr@AtEndOfFamilyOptions} -% \changes{v3.12}{2013/05/29}{Neue Anweisung (intern)} +% \changes{v3.12}{2013/05/29}{Neue Anweisung (intern)}^^A % \begin{macrocode} \newcommand*{\scr@AtEndOfFamilyOptions}{% \expandafter @@ -734,10 +1000,10 @@ % \end{macro} % % \begin{option}{internalonly} -% \changes{v2.96}{2006/11/26}{neu} -% \changes{v2.97c}{2007/06/20}{geht auch ohne Argument} +% \changes{v2.96}{2006/11/26}{neu}^^A +% \changes{v2.97c}{2007/06/20}{geht auch ohne Argument}^^A % \begin{macro}{\dont@let@as@internal@defined} -% \changes{v2.96}{2006/11/26}{neu (intern)} +% \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. @@ -763,8 +1029,8 @@ % \end{macro} % \end{option} % -% \changes{v2.96}{2006/08/20}{Optionen werden abgearbeitet} -% \changes{v2.97c}{2007/04/18}{Optionen werden mit \cs{KOMAProcessOptions} +% \changes{v2.96}{2006/08/20}{Optionen werden abgearbeitet}^^A +% \changes{v2.97c}{2007/04/18}{Optionen werden mit \cs{KOMAProcessOptions}^^A % abgearbeitet} % \begin{macrocode} %<koma>\KOMAProcessOptions\relax @@ -779,7 +1045,7 @@ % \subsection{Ein wenig zusätzliche Mathematik für \eTeX} % % \begin{macro}{\XdivY} -% \changes{v3.05a}{2010/03/10}{Neu} +% \changes{v3.05a}{2010/03/10}{Neu}^^A % Ergebnis ist erster Argument durch zweites abgerundet auf die nächst % kleinere ganze Zahl. % \begin{macrocode} @@ -792,7 +1058,7 @@ % \end{macro} % % \begin{macro}{\XmodY} -% \changes{v3.05a}{2010/03/10}{Neu} +% \changes{v3.05a}{2010/03/10}{Neu}^^A % Ergebnis ist erstes Argument modulo zweites Argument. % \begin{macrocode} %<*base> @@ -805,10 +1071,10 @@ % % \subsection{Häufig benötigte Befehle} % -% \begin{macro}{\if@atdocument} -% \changes{v2.95}{2002/12/05}{neuer Schalter} -% \begin{macro}{\@atdocumenttrue} -% \begin{macro}{\@atdocumentfalse} +% \begin{macro}{\if@atdocument} +% \changes{v2.95}{2002/12/05}{neuer Schalter}^^A +% \begin{macro}{\@atdocumenttrue} +% \begin{macro}{\@atdocumentfalse} % Dieser Schalter wird bei \cs{begin}\texttt{\{document\}} wahr. Er % wird von \KOMAScript{} für Befehle verwendet, die sich % unterschiedlich verhalten, je nachdem, ob sie in der Präambel oder @@ -821,21 +1087,21 @@ \@onlypreamble\@atdocumentfalse %</base> % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\let@as@internal@defined} -% \changes{v2.95}{2002/08/19}{neu (intern)} -% \changes{v2.95c}{2006/08/12}{Warnung bei Umdefinierung} +% \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} +% Benutzermakros kann verhindert werden}^^A % \changes{v2.97c}{2007/06/20}{Herausreichen von internen Makros kann -% generell verhindert werden} +% generell verhindert werden}^^A % \changes{v3.10}{2010/10/26}{\cs{ignorespaces} beim \cs{document}-Patch % ergänzt} % \changes{v3.13a}{2014/08/13}{potentielle Leerzeichen durch Zeilenumbruch -% beseitigt}%^^A +% 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 @@ -893,7 +1159,8 @@ 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.sty' earlier or find out at which\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 }% @@ -902,12 +1169,12 @@ } %</base> % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\ifundefinedorrelax} -% \changes{v2.95}{2002/08/21}{neu} -% \changes{v2.95c}{2006/08/12}{über interne Anweisung definiert} -% \changes{v2.97c}{2007/06/20}{umbenannt von \cs{ifundefined}} +% \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}} % Dieses Makro arbeitet wie \cs{@ifundefined}, definiert dabei aber % ein undefiniertes Makro nicht als \cs{relax}. % \begin{macrocode} @@ -915,10 +1182,10 @@ \let@as@internal@defined{ifundefinedorrelax} %</base> % \end{macrocode} -% \end{macro} +% \end{macro} % % \begin{macro}{\ifnotundefined} -% \changes{v2.95}{2002/08/21}{neu} +% \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} % Dieses Makro arbeitet genau umgekehrt zu \cs{ifundefined}. Manchmal @@ -935,11 +1202,11 @@ } %</base> % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\ifstr} -% \changes{v2.95}{2004/07/20}{if- und then-Teil werden nicht gefressen} -% \changes{v3.04b}{2010/01/29}{\cs{edef} durch \cs{protected@edef} ersetzt} +% \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} % Dieses Makro vergleicht zwei Tokenfolgen. Eigentlich müsste es also % eher \cs{ifequal} oder ähnlich heißen. % \begin{macrocode} @@ -954,10 +1221,10 @@ } %</base> % \end{macrocode} -% \end{macro} +% \end{macro} % % \begin{macro}{\ifstrstart} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^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} @@ -970,7 +1237,7 @@ } % \end{macrocode} % \begin{macro}{\@ifstrstart} -% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A +% \changes{v3.12}{2013/11/05}{neu (intern)}^^A % Hilfsmakro, damit die Argumente vollständig expandiert werden können. % \begin{macrocode} \newcommand*{\@ifstrstart}[2]{% @@ -989,7 +1256,7 @@ % \end{macro} % % \begin{macro}{\ifisdimen} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % Falls die Expansion des ersten Arguments eine \cs{dimen} ist, wird das % zweite Argument ausgeführt, sonst das dritte. % \begin{macrocode} @@ -1013,7 +1280,7 @@ } % \end{macrocode} % \begin{macro}{\scr@ifrelax@to@nnil} -% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A +% \changes{v3.12}{2013/11/05}{neu (intern)}^^A % Hilfsmakro, zur Verwendung beispielsweise nach Zuweissungen. Falls alles bis % zum ersten \cs{@nnil} aus genau einem \cs{relax} besteht, wird das erste % Argument ausgeführt, sonst das zweite. @@ -1035,7 +1302,7 @@ % \end{macro} % % \begin{macro}{\ifisdimexpr} -% \changes{v3.12}{2013/11/05}{neu} +% \changes{v3.12}{2013/11/05}{neu}^^A % Falls die Expansion des ersten Arguments eine \cs{dimexpr} ist, wird das % zweite Argument ausgeführt, sonst das dritte. Achtung: Falls der Ausdruck % ungültig ist, so wird ein Fehler gemeldet! @@ -1060,7 +1327,7 @@ } % \end{macrocode} % \begin{macro}{\scr@ifemptyorrelax@to@nnil} -% \changes{v3.12}{2013/11/05}{neu (intern)}%^^A +% \changes{v3.12}{2013/11/05}{neu (intern)}^^A % Hilfsmakro, zur Verwendung beispielsweise nach Zuweissungen. Falls alles bis % zum ersten \cs{@nnil} leer ist oder aus genau einem \cs{relax} besteht, wird % das erste Argument ausgeführt, sonst das zweite. @@ -1086,7 +1353,7 @@ % \end{macro} % % \begin{macro}{\ifisskip} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % Falls die Expansion des ersten Arguments ein \cs{skip} ist, wird das % zweite Argument ausgeführt, sonst das dritte. % \begin{macrocode} @@ -1113,7 +1380,7 @@ % \end{macro} % % \begin{macro}{\ifisglueexpr} -% \changes{v3.12}{2013/11/05}{neu} +% \changes{v3.12}{2013/11/05}{neu}^^A % Falls die Expansion des ersten Arguments eine \cs{glueexpr} ist, wird das % zweite Argument ausgeführt, sonst das dritte. Achtung: Falls der Ausdruck % ungültig ist, so wird ein Fehler gemeldet! @@ -1141,7 +1408,7 @@ % \end{macro} % % \begin{macro}{\ifiscount} -% \changes{v3.12}{2013/11/05}{neu} +% \changes{v3.12}{2013/11/05}{neu}^^A % Falls die Expansion des ersten Arguments ein \cs{count} ist, wird das % zweite Argument ausgeführt, sonst das dritte. Für \LaTeX-Zähler siehe % stattdessen \cs{ifiscounter}. @@ -1169,7 +1436,7 @@ % \end{macro} % % \begin{macro}{\ifisnumexpr} -% \changes{v3.12}{2013/11/05}{neu} +% \changes{v3.12}{2013/11/05}{neu}^^A % Falls die Expansion des ersten Arguments eine \cs{numexpr} ist, wird das % zweite Argument ausgeführt, sonst das dritte. Achtung: Falls der Ausdruck % ungültig ist, so wird ein Fehler gemeldet! @@ -1197,7 +1464,7 @@ % \end{macro} % % \begin{macro}{\ifiscounter} -% \changes{v3.12}{2013/11/05}{neu} +% \changes{v3.12}{2013/11/05}{neu}^^A % Falls die Expansion des ersten Arguments ein \LaTeX-Zähler ist, wird das % zweite Argument ausgeführt, sonst das dritte. % \begin{macrocode} @@ -1214,8 +1481,8 @@ % \end{macro} % % \begin{macro}{\ifisinteger} -% \changes{v3.12}{2013/11/05}{neu}%^^A -% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A +% \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} @@ -1229,7 +1496,7 @@ } % \end{macrocode} % \begin{macro}{\scr@ifintegerplusminus} -% \changes{v3.12}{2013/11/05}{neu (intern)} +% \changes{v3.12}{2013/11/05}{neu (intern)}^^A % Hilfsmakro, ausschließlich für \cs{ifisinteger}. % \begin{macrocode} \newcommand*{\scr@ifintegerplusminus}{} @@ -1256,8 +1523,8 @@ % \end{macro} % % \begin{macro}{\ifisdimension} -% \changes{v3.12}{2013/11/05}{neu}%^^A -% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A +% \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 @@ -1273,7 +1540,7 @@ } % \end{macrocode} % \begin{macro}{\scr@ifdimensionplusminus} -% \changes{v3.12}{2013/11/05}{neu (intern)} +% \changes{v3.12}{2013/11/05}{neu (intern)}^^A % Hilfsmakro, ausschließlich für \cs{ifisdimension}. % \begin{macrocode} \newcommand*{\scr@ifdimensionplusminus}{} @@ -1302,8 +1569,8 @@ % \end{macro} % % \begin{macro}{\ifisglue} -% \changes{v3.12}{2013/11/05}{neu}%^^A -% \changes{v3.12a}{2014/01/24}{Leerzeichenfehler korrigiert}%^^A +% \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 @@ -1319,7 +1586,7 @@ } % \end{macrocode} % \begin{macro}{\scr@ifglueplusminus} -% \changes{v3.12}{2013/11/05}{neu (intern)} +% \changes{v3.12}{2013/11/05}{neu (intern)}^^A % Hilfsmakro, ausschließlich für \cs{ifisglue}. % \begin{macrocode} \newcommand*{\scr@ifglueplusminus}{} @@ -1350,8 +1617,8 @@ % % \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 +% \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. @@ -1409,7 +1676,7 @@ % \end{macro} % % \begin{macro}{\ifintnumber} -% \changes{v3.12}{2013/10/30}{neu} +% \changes{v3.12}{2013/10/30}{neu}^^A % 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. @@ -1427,7 +1694,7 @@ } % \end{macrocode} % \begin{macro}{\scr@test@sign} -% \changes{v3.12}{2013/10/30}{neu (intern)} +% \changes{v3.12}{2013/10/30}{neu (intern)}^^A % \begin{macrocode} \newcommand*{\scr@test@sign}[1]{% \ifx \scr@next#1 @@ -1448,7 +1715,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\ifdimen} +% \begin{macro}{\ifdimen} % Dieses Makro testet, ob ein übergebener Parameter eine Dimension % ist und führt in Abhängigkeit davon den zweiten oder dritten % Parameter aus. @@ -1464,7 +1731,7 @@ \fi } % \end{macrocode} -% \begin{macro}{\test@dimen} +% \begin{macro}{\test@dimen} % Als erste muss ein Vorzeichen entfernt werden. % \begin{macrocode} \newcommand*{\test@dimen}[1]{% @@ -1473,7 +1740,7 @@ \scr@next } % \end{macrocode} -% \begin{macro}{\test@posdimen} +% \begin{macro}{\test@posdimen} % Dann muss getestet werden, ob es sich beim Rest um eine Dimension % handelt. Dabei werden der Einfachheit halber mehrere Dezimalkomma % und -punkte erlaubt. Natürlich könnte man es auch wirklich richtig @@ -1496,8 +1763,8 @@ \scr@next } % \end{macrocode} -% \begin{macro}{\test@dimunt} -% \begin{macro}{\test@trueunt} +% \begin{macro}{\test@dimunt} +% \begin{macro}{\test@trueunt} % Außer einer Gleitkomma- bzw. Gleitpunktzahl muss auch noch die Einheit % behandelt werden. Dabei sind sowohl die neun Standardeinheiten als auch % deren "`true"'-Variante zu berücksichtigen. Deshalb wird zuerst ein @@ -1513,7 +1780,7 @@ \ifx\reserved@a\@empty\test@@ifdimunt{#2}\else\test@@ifdimunt{#1}\fi } % \end{macrocode} -% \begin{macro}{\test@@ifdimunt} +% \begin{macro}{\test@@ifdimunt} % Anschließend wird dann getestet, ob es sich um eine der neun üblichen % Einheiten handelt. % \begin{macrocode} @@ -1539,18 +1806,18 @@ } %</base> % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % -% \begin{macro}{\ifpdftex} -% \changes{v2.95}{2002/08/19}{neu} -% \begin{macro}{\scr@ifpdftex} -% \changes{v2.95}{2002/08/19}{neu (intern)} +% \begin{macro}{\ifpdftex} +% \changes{v2.95}{2002/08/19}{neu}^^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> @@ -1560,14 +1827,14 @@ \AfterPackage{pdfcprot}{\let@as@internal@defined{ifpdftex}} %</base> % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\ifVTeX} -% \changes{v2.95}{2002/08/19}{neu} +% \changes{v2.95}{2002/08/19}{neu}^^A % \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{ifvtex}} % \begin{macro}{\scr@ifVTeX} -% \changes{v2.95}{2002/08/19}{neu} +% \changes{v2.95}{2002/08/19}{neu}^^A % \changes{v2.97c}{2007/06/20}{umdefiniert von \cs{scr@ifvtex}} % If-then-else-Konstrukt, um zu testen, ob V\TeX{} verwendet wird. % \begin{macrocode} @@ -1576,20 +1843,20 @@ \let@as@internal@defined{ifVTeX} %</base> % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\ifpdfoutput} -% \changes{v2.7g}{2001/04/17}{neu} -% \changes{v2.8q}{2001/10/19}{\cs{pdfoutput} wird nicht mehr zu +% \begin{macro}{\ifpdfoutput} +% \changes{v2.7g}{2001/04/17}{neu}^^A +% \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} -% \changes{v2.8q}{2001/10/19}{Verwendung von \cs{scr@ifpdfoutput}} -% \begin{macro}{\scr@ifpdfoutput} -% \changes{v2.8q}{2001/10/19}{neu (intern)} -% \changes{v2.8q}{2001/11/13}{funktioniert} -% \changes{v2.95}{2002/08/21}{berücksichtigt V\TeX} -% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} +% \changes{v2.8q}{2001/10/19}{darf bereits definiert sein}^^A +% \changes{v2.8q}{2001/10/19}{Verwendung von \cs{scr@ifpdfoutput}} +% \begin{macro}{\scr@ifpdfoutput} +% \changes{v2.8q}{2001/10/19}{neu (intern)}^^A +% \changes{v2.8q}{2001/11/13}{funktioniert}^^A +% \changes{v2.95}{2002/08/21}{berücksichtigt V\TeX}^^A +% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}^^A % If-then-else-Konstrukt, um abhängig davon, ob als \texttt{pdf} % ausgegeben wird oder nicht, Befehle auszuführen. Dieses Makro wird % für die Deklaration der Option \texttt{pagesize} benötigt. @@ -1617,14 +1884,14 @@ \let@as@internal@defined{ifpdfoutput} %</base> % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\ifpsoutput} -% \changes{v2.95}{2002/08/21}{neu} -% \begin{macro}{\scr@ifpsoutput} -% \changes{v2.95}{2002/08/21}{neu (intern)} -% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} +% \begin{macro}{\ifpsoutput} +% \changes{v2.95}{2002/08/21}{neu}^^A +% \begin{macro}{\scr@ifpsoutput} +% \changes{v2.95}{2002/08/21}{neu (intern)}^^A +% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}^^A % If-then-else-Konstrukt, um abhängig davon, ob früher oder später % \texttt{ps} ausgegeben wird oder nicht, Befehle auszuführen. % \begin{macrocode} @@ -1651,14 +1918,14 @@ \let@as@internal@defined{ifpsoutput} %</base> % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\ifdvioutput} -% \changes{v2.95}{2002/08/21}{neu} -% \begin{macro}{\scr@ifdvioutput} -% \changes{v2.95}{2002/08/21}{neu (intern)} -% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert} +% \begin{macro}{\ifdvioutput} +% \changes{v2.95}{2002/08/21}{neu}^^A +% \begin{macro}{\scr@ifdvioutput} +% \changes{v2.95}{2002/08/21}{neu (intern)}^^A +% \changes{v2.95}{2004/07/20}{Expandierbarkeit verbessert}^^A % If-then-else-Konstrukt, um abhängig davon, ob \texttt{dvi} % ausgegeben wird oder nicht, Befehle auszuführen. % \begin{macrocode} @@ -1685,11 +1952,11 @@ \let@as@internal@defined{ifdvioutput} %</base> % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\scr@smashdp} -% \changes{v2.97c}{2007/09/17}{neu (intern)} +% \changes{v2.97c}{2007/09/17}{neu (intern)}^^A % \changes{v3.02a}{2009/01/23}{\cs{smash} nicht direkt verwenden, weil % \textsf{amsmath} das inkompatibel umdefiniert} % Gibt Material aus, erzeugt dabei aber nur Höhe und Breite, jedoch keine @@ -1712,7 +1979,7 @@ % \end{macro} % % \begin{macro}{\PackageInfoNoLine} -% \changes{v2.97d}{2007/10/03}{neu} +% \changes{v2.97d}{2007/10/03}{neu}^^A % Arbeitet wie \cs{PackageInfo} aber ohne Ausgabe der Zeilennummer. % \begin{macrocode} %<*base> @@ -1724,7 +1991,7 @@ % \end{macro} % % \begin{macro}{\ClassInfoNoLine} -% \changes{v2.98c}{2008/02/15}{neu} +% \changes{v2.98c}{2008/02/15}{neu}^^A % Arbeitet wie \cs{ClassInfo} aber ohne Ausgabe der Zeilennummer. % \begin{macrocode} %<*base> @@ -1767,7 +2034,7 @@ % \changes{v3.12}{2013/03/04}{neue Implementierung}^^A % \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet % werden}^^A -% \changes{v3.14}{2014/10/17}{das dritte Argument wird \cs{long} +% \changes{v3.14}{2014/10/17}{das dritte Argument wird \cs{long}^^A % verarbeitet}^^A % \begin{macro}{\@FamilyExecuteOptions} % \changes{v3.14}{2014/10/17}{Neue streng interne Anweisung}^^A @@ -1871,10 +2138,10 @@ % \end{macro}^^A \FamilyExecuteOptions % % \begin{macro}{\KOMAExecuteOptions} -% \changes{v2.97c}{2007/04/19}{Neue Anweisung} -% \changes{v3.00}{2008/04/30}{Kein optionales Argument mehr} +% \changes{v2.97c}{2007/04/19}{Neue Anweisung}^^A +% \changes{v3.00}{2008/04/30}{Kein optionales Argument mehr}^^A % \changes{v3.12}{2013/03/04}{darf auch noch nach der Präambel verwendet -% werden} +% werden}^^A % Liste von Optionen für ein Mitglied der Familie \texttt{KOMA} ausführen. % \begin{macrocode} %<*koma> @@ -1893,7 +2160,7 @@ % \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)}%^^A +% \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, @@ -1937,7 +2204,7 @@ % % Wir haben jetzt also eine Option und diese aufgespaltet in Schlüssel und % Wert. -% \changes{v3.12}{2013/03/04}{der Gesamtstatus wird gespeichert} +% \changes{v3.12}{2013/03/04}{der Gesamtstatus wird gespeichert}^^A % Jetzt speichern wir den Gesamtstatus einfach, indem der Fehlerspeicher % gelöscht wird. Bei \cs{relax} wird er nicht weiter benötigt und es liegt % ebenso wie bei \cs{@empty} kein auszugebender Fehler vor. Bei anderen @@ -2030,11 +2297,11 @@ } % \end{macrocode} % \begin{macro}{\scr@execute@option} -% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}%^^A +% \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 +% ergänzt}^^A % \changes{v3.13a}{2014/08/13}{Leerzeichen durch fehlendes Prozentzeichen -% beseitigt}%^^A +% 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. @@ -2087,7 +2354,7 @@ } % \end{macrocode} % \begin{macro}{\scr@KV@err} -% \changes{v3.12a}{2013/03/04}{missing internal command added} +% \changes{v3.12a}{2013/03/04}{missing internal command added}^^A % We just have to signal, that the option needs a value, that is missing. % \begin{macrocode} \newcommand*{\scr@KV@err}[1]{% @@ -2096,7 +2363,7 @@ % \end{macrocode} % \end{macro} % \begin{macro}{\scr@key@run@errors} -% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)} +% \changes{v3.12}{2013/03/04}{Neue Anweisung (intern)}^^A % Wird innerhalb von \cs{FamilyOptions} benötigt, um die Fehlermeldungen % aufzusammeln, aber erst auszugeben, wenn tatsächlich kein Mitglied die % Option verarbeiten konnte. Wir definieren das hier, damit oben die @@ -2107,19 +2374,19 @@ % \end{macro} % \end{macro}^^A \scr@execute@option % \begin{macro}{\ifscr@key@found@} -% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)} +% \changes{v2.97c}{2007/04/19}{Neuer Schalter (intern)}^^A % \changes{v3.00}{2008/04/30}{umbenannt von \cs{ifKOMA@key@found}} % \begin{macro}{\scr@key@atlist} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A % \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@atlist}} % \begin{macro}{\scr@key@name} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A % \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@name}} % \begin{macro}{\scr@key@value} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A % \changes{v3.00}{2008/04/30}{umbenannt von \cs{KOMA@key@value}} % \begin{macro}{\scr@key@split@name@value} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A % \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}} @@ -2169,13 +2436,13 @@ \let\reserved@a\@empty \@for\reserved@b:=#3\do{% % \end{macrocode} -% \changes{v3.08}{2010/11/05}{leere Argumente in der Werteliste} +% \changes{v3.08}{2010/11/05}{leere Argumente in der Werteliste}^^A % Auf vielfachen Wunsch und entgegen meiner Überzeugung, sind auch leere % Argumente in der Werteliste erlaubt, werden jedoch ignoriert: % \begin{macrocode} \ifx\reserved@b\@empty\else % \end{macrocode} -% \changes{v3.12}{2012/03/04}{auch Leerzeichenargumente werden ignoriert} +% \changes{v3.12}{2012/03/04}{auch Leerzeichenargumente werden ignoriert}^^A % Auch Argumente, die nur aus einem Leerzeichen bestehen, werden ignoriert: % \begin{macrocode} \ifx\reserved@b\space\else @@ -2194,9 +2461,9 @@ % \end{macro} % % \begin{macro}{\KOMAoptions} -% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen} -% \changes{v2.97c}{2007/04/19}{Optionen aller KOMA-Familien abarbeiten} -% \changes{v3.12}{2013/03/04}{Hook-Mechanismus von \cs{FamilyOptions} +% \changes{v2.96}{2006/08/20}{Neuer Hook nach den Optionen}^^A +% \changes{v2.97c}{2007/04/19}{Optionen aller KOMA-Familien abarbeiten}^^A +% \changes{v3.12}{2013/03/04}{Hook-Mechanismus von \cs{FamilyOptions}^^A % verwendent} % Simple kleine Abkürzung. % \begin{macrocode} @@ -2205,13 +2472,73 @@ %</koma> % \end{macrocode} % \begin{macro}{\KOMA@options} -% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)} -% \changes{v3.12}{2013/03/04}{entfernt} +% \changes{v2.97c}{2007/04/19}{Neues Makro (intern)}^^A +% \changes{v3.12}{2013/03/04}{entfernt}^^A % \end{macro}^^A \KOMA@options % \end{macro}^^A \KOMAoptions % +% \begin{macro}{\KOMAoptionsOf} +% \changes{v3.17}{2015/02/25}{neue Anweisung}^^A +% Mit dieser Anweisung können die aktuell gesetzten \KOMAScript-Optionen +% eines Pakets oder einer Klasse abgefragt werden, sobald ein Paket oder eine +% Klasse das unterstützt. Das erste (optionale) Argument gibt dabei eine +% Anweisung an, die für die Optionenliste ausgeführt werden soll. Das zweite +% (nicht optionale Argument) ist der Name eines KOMA-Script-Pakets oder einer +% KOMA-Script-Klasse einschließlich Dateiendung. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAoptionsOf}[2][\@firstofone]{% + \scr@ifundefinedorrelax{scr@kav@KOMA.#2}{% + \PackageError{scrkbase}{\string\KOMAoptionsOf\space not supported}{% + #2 is not the name of a KOMA-Script package or\MessageBreak + KOMA-Script class, that supports \string\KOMAoptionsOf.}% + }{% + \begingroup + \def\reserved@a{#1}% + \KOMA@kav@defall\reserved@b{.#2}% + \expandafter\expandafter\expandafter\endgroup + \expandafter\reserved@a\expandafter{\reserved@b}% + }% +} +%</koma> +% \end{macrocode} +% \end{macro}^^A \KOMAoptionsOf +% +% \begin{macro}{\KOMAoptionOf} +% \changes{v3.17}{2015/02/26}{neue Anweisung}^^A +% Mit dieser Anweisung kann eine aktuell gesetzte \KOMAScript-Option +% eines Pakets oder einer Klasse abgefragt werden, sobald ein Paket oder eine +% Klasse das unterstützt. Das erste (optionale) Argument gibt dabei eine +% Anweisung an, die für die Optionenliste ausgeführt werden soll. Das zweite +% (nicht optionale Argument) ist der Name eines KOMA-Script-Pakets oder einer +% KOMA-Script-Klasse einschließlich Dateiendung, das dritte (nicht optionale +% Argument) ist der Name der Option, die abgefragt werden soll. +% \begin{macrocode} +%<*koma> +\newcommand*{\KOMAoptionOf}[3][\@firstofone]{% + \scr@ifundefinedorrelax{scr@kav@KOMA.#2}{% + \PackageError{scrkbase}{\string\KOMAoptionOf\space not supported}{% + #2 is not the name of a KOMA-Script package or\MessageBreak + KOMA-Script class, that supports \string\KOMAoptionOf.}% + }{% + \begingroup + \def\reserved@a{#1}% + \KOMA@kav@defone\reserved@b{.#2}{#3}% + \ifx\reserved@b\@empty + \PackageWarning{scrkbase}{option `#3' for `#2' unset}% + \endgroup + \else + \expandafter\expandafter\expandafter\endgroup + \expandafter\reserved@a\expandafter{\reserved@b}% + \fi + }% +} +%</koma> +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\post@kopt@hook} -% \changes{v3.12}{2013/03/04}{entfernt} +% \changes{v3.12}{2013/03/04}{entfernt}^^A % \end{macro}^^A \post@kopt@hook % \begin{macro}{\AfterKOMAoptions} % \changes{v3.12}{2013/03/04}{Verwendung von \cs{AtEndOfFamilyOptions}} @@ -2229,9 +2556,9 @@ % Damit \cs{AfterKOMAoptions} lokal möglich ist, wird eine lokal arbeitende % Variante von \cs{g@addto@macro} benötigt, wie sie hier vorgestellt wird. % \changes{v2.95}{2006/06/02}{korrigiert, damit es sich bezüglich -% Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro} +% Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro}^^A % verhält} -% \changes{v3.12}{2013/04/20}{veraltete \eTeX-freie Version entfernt} +% \changes{v3.12}{2013/04/20}{veraltete \eTeX-freie Version entfernt}^^A % \changes{v3.12}{2013/04/20}{Warnung, falls eine inkompatible Definition % von \cs{l@addto@macro} entdeckt wird} % \begin{macrocode} @@ -2269,7 +2596,7 @@ % \end{macro} % % \begin{macro}{\KOMAoption} -% \changes{v2.98c}{2008/03/12}{Neue Anweisung} +% \changes{v2.98c}{2008/03/12}{Neue Anweisung}^^A % \changes{v3.12}{2013/03/04}{Einfacher Aufruf von \cs{FamilyOption}} % \begin{macrocode} %<*koma> @@ -2279,9 +2606,9 @@ % \end{macro} % % \begin{macro}{\FamilyUnknownKeyValue} -% \changes{v3.10}{2011/09/12}{no error while processing global options}%^^A +% \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 +% 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, @@ -2303,8 +2630,8 @@ %</base> % \end{macrocode} % \begin{macro}{\FamilyElseValues} -% \changes{v3.00}{2008/05/02}{Neue Anweisung}%^^A -% \changes{v3.12}{2013/03/04}{wird intern nicht mehr verwendet}%^^A +% \changes{v3.00}{2008/05/02}{Neue Anweisung}^^A +% \changes{v3.12}{2013/03/04}{wird intern nicht mehr verwendet}^^A % Diese Anweisung konnte ursprünglich vor dem Setzen eines Wertes definiert % werden, um bei einer etwaigen Fehlermeldung weitere Werte als erlaubt % auszugeben. Am Ende von \cs{FamilySetBool} und \cs{FamilySetNumerical} @@ -2319,7 +2646,7 @@ % \end{macro}^^A \FamilyElseValue % % \begin{macro}{\FamilyBoolKey} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A % Dieses Makro definiert einen Schlüssel für eine Familie. Dieser Schlüssel % ist ein Schalter, der über diverse Werte geschaltet werden kann. % Das erste, optionale Argument ist das Familienmitglied, das zweite, @@ -2335,8 +2662,8 @@ } % \end{macrocode} % \begin{macro}{\FamilySetBool} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} -% \changes{v3.11a}{2012/05/25}{Argument in Fehlermeldung korrigiert} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A +% \changes{v3.11a}{2012/05/25}{Argument in Fehlermeldung korrigiert}^^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. @@ -2364,7 +2691,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\KOMA@unknown@keyval} +% \begin{macro}{\KOMA@unknown@keyval} % Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an % einen Schlüssel. Das erste Argument ist der Schlüssel, das zweite % der Wert und das dritte die Liste der möglichen Werte. @@ -2373,10 +2700,11 @@ \newcommand*{\KOMA@unknown@keyval}{\FamilyUnknownKeyValue{KOMA}} %</koma> % \end{macrocode} -% \end{macro} +% \end{macro} % % \begin{macro}{\KOMA@ifkey} -% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied} +% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied}^^A +% \changes{v3.17}{2015/03/02}{ersetzt den gespeicherten Wert}^^A % Dieses Makro definiert einen Schlüssel, der einen Schalter an Hand des % Wertes setzt. Als Werte sind "`\texttt{true}"', "`\texttt{false}"', % "`\texttt{on}"', "`\texttt{off}"', "`\texttt{yes}"' und @@ -2386,13 +2714,27 @@ % der Name des Schlüssels, der zweite ist der Name des Schalters. % \begin{macrocode} %<*koma> -\newcommand*{\KOMA@ifkey}{% - \DefineFamilyMember{KOMA}% - \FamilyBoolKey{KOMA}% +\newcommand*{\KOMA@ifkey}[2][.\@currname.\@currext]{% + \begingroup\edef\reserved@a{\noexpand\KOMA@@ifkey{#1}{#2}}% + \expandafter\endgroup\reserved@a +} +\newcommand*{\KOMA@@ifkey}[3]{% + \@ifundefined{if#3}{% + \expandafter\newif\csname if#3\endcsname + }{}% + \KOMA@key[{#1}]{#2}[true]{% + \KOMA@set@ifkey{#2}{#3}{##1}% + \KOMA@kav@replacebool{#1}{#2}{#3}% + }% + \csname if#3\endcsname + \KOMA@kav@xadd{#1}{#2}{true}% + \else + \KOMA@kav@xadd{#1}{#2}{false}% + \fi } %</koma> % \end{macrocode} -% \begin{macro}{\KOMA@set@ifkey} +% \begin{macro}{\KOMA@set@ifkey} % Die eigentliche Arbeit bei der ganzen Sache wird von diesem internen % Makro erledigt. Dabei wird der Name des Schlüssels zu Argument 1, der % Name des Schalters zu Argument 2 und der Wert des Schlüssels wird @@ -2402,11 +2744,11 @@ \newcommand*{\KOMA@set@ifkey}{\FamilySetBool{KOMA}} %</koma> % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}{\FamilyCounterKey} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert % unterstützt}^^A % Dieses Makro definiert einen Schlüssel, der einen \LaTeX-Zähler an Hand @@ -2436,7 +2778,7 @@ } % \end{macrocode} % \begin{macro}{\FamilySetCounter} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % Über diese Anwesiung wird der Wert dann gesetzt. Dabei ist das erste % Argument die Familie, das zweite der Name des Schlüssels, das dritte der % Name des \LaTeX-Zählers, das vierte schließlich der gewünschte Wert. @@ -2476,7 +2818,7 @@ % dritte der Schlüssel, das vierte (optionale) der Säumniswert, das fünfte das % Makro. % \begin{macro}{\FamilySetCounterMacro} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % \changes{v3.15}{2014/12/17}{\cs{aftergroup} vor % \cs{FamilyKeyStateProcessed}}^^A % Diese Anweisung arbeitet fast wie \cs{FamilySetCounter}, allerdings wird @@ -2536,7 +2878,7 @@ % \end{macro} % % \begin{macro}{\FamilyLengthKey} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert % unterstützt}^^A % Dieses Makro definiert einen Schlüssel, der eine \LaTeX-Länge an Hand @@ -2597,11 +2939,11 @@ % \end{macro} % \end{macro} % \begin{macro}{\FamilyLengthMacroKey} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % \changes{v3.15}{2014/12/03}{er wird ein (optionaler) Säumniswert % unterstützt}^^A % \begin{macro}{\FamilySetLengthMacro} -% \changes{v3.12}{2013/11/05}{neu}%^^A +% \changes{v3.12}{2013/11/05}{neu}^^A % \changes{v3.14a}{2014/11/24}{fix: \cs{@tempskipa} statt \cs{@temskipa}}^^A % \changes{v3.15}{2014/12/17}{\cs{aftergroup} vor % \cs{FamilyKeyStateProcessed}}^^A @@ -2668,9 +3010,9 @@ % % % \begin{macro}{\FamilyNumericalKey} -% \changes{v3.00}{2008/04/30}{Neue Anweisung} +% \changes{v3.00}{2008/04/30}{Neue Anweisung}^^A % \begin{macro}{\Family@Numerical@Key} -% \changes{v3.00}{2008/05/28}{Neu (intern)} +% \changes{v3.00}{2008/05/28}{Neu (intern)}^^A % \changes{v3.08b}{2011/03/31}{fehlendes Argument bei \cs{ifundefined}} % Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches Makro % auf einen bestimmten Wert setzt. Dabei können auch verschiedene symbolische @@ -2748,47 +3090,68 @@ % \end{macro} % % \begin{macro}{\KOMA@ncmdkey} -% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied} -% Ein ähnliches Makro definiert einen Schlüssel, der ein nummerisches -% Makro auf einen bestimmten Wert setzt. Dabei können auch -% verschiedene symbolische Werte auf denselben nummerischen Wert -% abgebildet werden. Das erste Argument ist obligatorisch und der Name -% des Schlüssels. Das zweite Argument ist optional und der Defaultwert -% für den Schlüssel. Das dritte Argument ist obligatorisch und der -% Name des Makros, das definiert werden soll. Der Defaultwert dafür -% ist 0. Das vierte Argument ist obligatorisch und die Liste der -% symbolischen und nummerischen Wert. Die Liste hat die Form: -% \{\emph{Symbol}\}\{\emph{Wert}\},\{\emph{Symbol}\}\{\emph{Wert}\}\dots +% \changes{v3.02c}{2009/02/04}{definiert ebenfalls das Familienmitglied}^^A +% \changes{v3.17}{2015/03/16}{neu implementiert mit Speicherung der +% Werte und optionalem erstem Argument}^^A +% Wie \cs{FamilyNumericalKey} mit zwei entscheidenden Unterschieden: +% \begin{itemize} +% \item Die Familien ist immer \texttt{KOMA} und entfällt daher als zweites +% Argument. +% \item Der gespeicherte Wert wird ausgetauscht. Daher kann es nicht nur für +% Optionen verwendet werden, bei denen die Werte exklusiv sind. +% \end{itemize} +% Wichtig: Die Voreinstellung muss anschließend noch in jedem Fall mit +% \cs{KOMA@kav@add} gesetzt werden! % \begin{macrocode} %<*koma> -\newcommand*{\KOMA@ncmdkey}{% - \DefineFamilyMember{KOMA}% - \FamilyNumericalKey{KOMA}% +\newcommand*{\KOMA@ncmdkey}[2][.\@currname.\@currext]{% + \begingroup\edef\reserved@a{\noexpand\KOMA@@ncmdkey{#1}{#2}}% + \expandafter\endgroup\reserved@a +} +\newcommand*{\KOMA@@ncmdkey}[2]{% + \@ifnextchar [%] + {\KOMA@@@ncmdkey{#1}{#2}}{\KOMA@@@ncmdkey{#1}{#2}[]} +} +\newcommand*{\KOMA@@@cmdkey}{} +\def\KOMA@@@ncmdkey#1#2[#3]#4#5{% + \@ifundefined{#4}{\@namedef{#4}{0}}{}% + \ifx\relax#3\relax + \KOMA@key[{#1}]{#2}{% + \KOMA@set@ncmdkey{#2}{#4}{#5}{##1}% + \KOMA@kav@replacevalue{#1}{#2}{##1}% + }% + \else + \KOMA@key[{#1}]{#2}[{#3}]{% + \KOMA@set@ncmdkey{#2}{#4}{#5}{##1}% + \KOMA@kav@replacevalue{#1}{#2}{##1}% + }% + \fi } %</koma> % \end{macrocode} -% \begin{macro}{\KOMA@set@ncmdkey} +% \begin{macro}{\KOMA@set@ncmdkey} % Die eigentliche Arbeit dabei wird wahlweise von diesem Makro erledigt. Dabei % wird der Name des Schlüssels zu Argument 1, der Name des Makros, % das definiert werden soll zu Argument 2, die Liste zu Argument 3 und -% der Wert, auf den gesetzt werden soll, zu Argument 4. +% der Wert, auf den gesetzt werden soll, zu Argument 4. Dabei wird allerdings +% kein gespeicherter Wert ersetzt! % \begin{macrocode} %<*koma> \newcommand*{\KOMA@set@ncmdkey}{\FamilySetNumerical{KOMA}} %</koma> % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % % % \begin{macro}{\FamilyStringKey} -% \changes{v3.08}{2010/11/05}{Neue Anweisung} +% \changes{v3.08}{2010/11/05}{Neue Anweisung}^^A % \changes{v3.08b}{2011/03/31}{\cs{Family@String@Key} und % \cs{Family@@String@@Key} vertauscht} % \begin{macro}{\Family@String@Key} -% \changes{v3.08}{2010/11/05}{Neu (intern)} +% \changes{v3.08}{2010/11/05}{Neu (intern)}^^A % \begin{macro}{\Family@@String@@Key} -% \changes{v3.08}{2010/11/05}{Neu (intern)} +% \changes{v3.08}{2010/11/05}{Neu (intern)}^^A % Ein ähnliches Makro definiert einen Schlüssel, der ein Makro auf einen % beliegigen Wert setzt. Das erste, optionale Argument ist das % Familienmitglied, das zweite, obligatorische Argument ist die Familie, das @@ -2819,11 +3182,11 @@ % % % \begin{macro}{\KOMA@DeclareDeprecatedOption} -% \changes{v3.01a}{2008/11/20}{neu (intern)} +% \changes{v3.01a}{2008/11/20}{neu (intern)}^^A % \begin{macro}{\KOMA@@DeclareDeprecatedOption} -% \changes{v3.01a}{2008/11/20}{neu (intern)} +% \changes{v3.01a}{2008/11/20}{neu (intern)}^^A % \begin{macro}{\KOMA@@@DeclareDeprecatedOption} -% \changes{v3.01a}{2008/11/20}{neu (intern)} +% \changes{v3.01a}{2008/11/20}{neu (intern)}^^A % Mit Hilfe dieses Makros kann eine Option definiert werden, die % eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel % verwendet. Das erste Argument ist optional und muss dann der Paketname @@ -2845,10 +3208,10 @@ } % \end{macrocode} % \begin{macro}{\KOMA@UseDeprecatedOption} -% \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 +% \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}^^A +% 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} @@ -2890,11 +3253,11 @@ % % % \begin{macro}{\KOMA@DeclareStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} +% \changes{v3.01a}{2008/11/21}{neu (intern)}^^A % \begin{macro}{\KOMA@@DeclareStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} +% \changes{v3.01a}{2008/11/21}{neu (intern)}^^A % \begin{macro}{\KOMA@@@DeclareStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} +% \changes{v3.01a}{2008/11/21}{neu (intern)}^^A % Mit Hilfe dieses Makros kann eine Option definiert werden, die % eigentlich obsolete ist. Statt dieser Option wird dann ein Schlüssel % verwendet. Das erste Argument ist optional und muss dann der Paketname @@ -2916,7 +3279,7 @@ } % \end{macrocode} % \begin{macro}{\KOMA@UseStandardOption} -% \changes{v3.01a}{2008/11/21}{neu (intern)} +% \changes{v3.01a}{2008/11/21}{neu (intern)}^^A % Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind % 1. Meldungsbefehl, 2. obsolete Option, 3. Setzen des Schlüssels. % \begin{macrocode} @@ -2940,8 +3303,8 @@ %</koma> % \end{macrocode} % \begin{macro}{\scr@sr@co} -% \changes{v2.96}{2006/08/20}{neu (intern)} -% \changes{v3.12a}{2014/01/22}{beseitigt} +% \changes{v2.96}{2006/08/20}{neu (intern)}^^A +% \changes{v3.12a}{2014/01/22}{beseitigt}^^A % \end{macro}^^A \scr@sr@co % \end{macro}^^A \KOMA@UseStandardOption % \end{macro}^^A \KOMA@@@DeclareStandardOption @@ -2951,19 +3314,19 @@ % % \begin{macro}{\KOMA@DeclareObsoleteOption} % \changes{v2.96}{2006/08/20}{\cs{CurrentOption wir geschützt}} -% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A % \begin{macro}{\KOMA@@DeclareObsoleteOption} -% \changes{v2.98c}{2008/02/18}{neu (intern)} -% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \changes{v2.98c}{2008/02/18}{neu (intern)}^^A +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A % \begin{macro}{\KOMA@@@DeclareObsoleteOption} -% \changes{v2.98c}{2008/02/18}{neu (intern)} -% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \changes{v2.98c}{2008/02/18}{neu (intern)}^^A +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A % \begin{macro}{\KOMA@iv@DeclareObsoleteOption} -% \changes{v2.98c}{2008/02/18}{neu (intern)} -% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \changes{v2.98c}{2008/02/18}{neu (intern)}^^A +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A % \begin{macro}{\KOMA@UseObsoleteOption} -% \changes{v2.97c}{2007/04/19}{neu (intern)} -% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt} +% \changes{v2.97c}{2007/04/19}{neu (intern)}^^A +% \changes{v3.12}{2013/03/04}{entfernt weil unbenutzt}^^A % \end{macro}^^A \KOMA@UseObsoleteOption % \end{macro}^^A \KOMA@iv@DeclareObsoleteOption % \end{macro}^^A \KOMA@iii@DeclareObsoleteOption @@ -2989,7 +3352,7 @@ } % \end{macrocode} % \begin{macro}{\KOMA@UseDeprecatedCommand} -% \changes{v2.97c}{2007/04/19}{neu (intern)} +% \changes{v2.97c}{2007/04/19}{neu (intern)}^^A % \changes{v3.12}{2013/03/04}{renamed \cs{KOMA@UseObsoleteCommand} into % \cs{KOMA@UseDeprecatedCommand}} % Die eigentliche Arbeit wird von diesem Makro erledigt. Die Argumente sind |