summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkbase.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrkbase.dtx118
1 files changed, 72 insertions, 46 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx b/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx
index 23dfd8f2bac..996cf3ad3d3 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx
@@ -1,8 +1,8 @@
-% \CheckSum{1349}
+% \CheckSum{1382}
% \iffalse meta-comment
% ======================================================================
% scrkbase.dtx
-% Copyright (c) Markus Kohm, 2002-2011
+% Copyright (c) Markus Kohm, 2002-2012
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -20,7 +20,7 @@
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkbase.dtx
-% Copyright (c) Markus Kohm, 2002-2011
+% Copyright (c) Markus Kohm, 2002-2012
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
@@ -58,7 +58,7 @@
%%% From File: scrkbase.dtx
%<*driver>
% \fi
-\ProvidesFile{scrkbase.dtx}[2011/06/07 v3.09a KOMA-Script (basics)]
+\ProvidesFile{scrkbase.dtx}[2011/10/26 v3.10 KOMA-Script (basics)]
% \iffalse
%</driver>
%<package&option>\ProvidesPackage{%
@@ -340,17 +340,20 @@
%
% \begin{macro}{\FamilyProcessOptions}
% \changes{v3.00}{2008/04/30}{Neue Anweisung}%
-% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch
-% \textsf{keyval}-Optionen für eine angegebene Familie (2. Argument) und das
-% aktuelle Mitglied (1. optionales Argument) in der Reihenfolge, in der sie
-% verwendet wurden aus -- zuerst globale Optionen, dann lokale Optionen. Das
-% entspricht der Verwendung von \cs{ProcessOptions*} mit dem Unterschied,
-% dass eben auch die \textsf{keyval}-Optionen abgearbeitet
-% werden. \textsf{keyval}-Optionen, die keinem Mitglied zugeordnet, sondern
-% universell sind, werden dabei vor gleichnamigen \textsf{keyval}-Optionen
-% des aktuellen Mitglieds ausgeführt.
+% \begin{macro}{\scr@removeunused}
+% \changes{v3.10}{2011/09/12}{neu (intern)}%
+% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch
+% \textsf{keyval}-Optionen für eine angegebene Familie (2. Argument) und das
+% aktuelle Mitglied (1. optionales Argument) in der Reihenfolge, in der sie
+% verwendet wurden aus -- zuerst globale Optionen, dann lokale Optionen. Das
+% entspricht der Verwendung von \cs{ProcessOptions*} mit dem Unterschied,
+% dass eben auch die \textsf{keyval}-Optionen abgearbeitet
+% werden. \textsf{keyval}-Optionen, die keinem Mitglied zugeordnet, sondern
+% universell sind, werden dabei vor gleichnamigen \textsf{keyval}-Optionen
+% des aktuellen Mitglieds ausgeführt.
% \begin{macrocode}
%<*base>
+\newcommand*{\scr@removeunused}{}
\newcommand*{\FamilyProcessOptions}[2][.\@currname.\@currext]{%
\let\ds@\@empty
\edef\@curroptions{\@ptionlist{\@currname.\@currext}}%
@@ -362,16 +365,20 @@
\@use@ption
\expandafter\let\csname ds@\CurrentOption\endcsname\@empty
\else
+ \expandafter\def\expandafter\scr@removeunused\expandafter{%
+ \expandafter\def\expandafter\CurrentOption\expandafter{%
+ \CurrentOption}\@use@ption}%
\scr@optiontest{#2}\CurrentOption{}{%
- \@use@ption
\@expandtwoargs\setkeys{#2}%
\CurrentOption
+ \scr@removeunused
}%
\scr@optiontest{#2#1}\CurrentOption{}{%
- \@use@ption
\@expandtwoargs\setkeys{#2#1}%
\CurrentOption
+ \scr@removeunused
}%
+ \let\scr@removeunused\@empty
\fi
\fi
}%
@@ -407,13 +414,15 @@
}
\@onlypreamble\FamilyProcessOptions
% \end{macrocode}
+% \end{macro}
% \begin{macro}{\scr@optiontest}
-% \changes{v2.97c}{2007/04/18}{neu (intern)}
+% \changes{v2.97c}{2007/04/18}{neu (intern)}%
% \begin{macro}{\scr@pti@ntest}
-% \changes{v2.97c}{2007/04/18}{neu (intern)}
-% Es werden zwei interne Makros benötigt, um zu testen, ob eine entsprechende
-% keyval-Option definiert ist. Grund der Übung ist, dass sowohl das
-% Familienargument als auch die Option selbst expandiert werden muss.
+% \changes{v2.97c}{2007/04/18}{neu (intern)}%
+% Es werden zwei interne Makros benötigt, um zu testen, ob eine
+% entsprechende keyval-Option definiert ist. Grund der Übung ist, dass
+% sowohl das Familienargument als auch die Option selbst expandiert werden
+% muss.
% \begin{macrocode}
\newcommand*{\scr@optiontest}[2]{%
\edef\reserved@a{\noexpand\scr@pti@ntest{#1}#2=\noexpand\@nil}%
@@ -428,16 +437,16 @@
% \end{macro}
%
% \begin{macro}{\KOMAProcessOptions}
-% \changes{v2.97c}{2007/04/18}{neu}
-% \changes{v3.00}{2008/04/30}{kein optionales Argument mehr}
-% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch
-% keyval-Optionen eines Pakets bzw. einer Klasse in der Reihenfolge, in der
-% sie verwendet wurden aus -- zuerst globale Optionen, dann lokale
-% Optionen. Das entspricht der Verwendung von \cs{ProcessOptions*} mit dem
-% Unterschied, dass eben auch die keyval-Optionen abgearbeitet
-% werden. keyval-Optionen, die keiner einzelnen Klasse und keinem einzelnen
-% Paket zugeordnet werden, werden dabei vor gleichnamigen eigenen
-% keyval-Optionen ausgeführt.
+% \changes{v2.97c}{2007/04/18}{neu}%
+% \changes{v3.00}{2008/04/30}{kein optionales Argument mehr}%
+% Diese Anweisung führt alle Optionen, sowohl normal deklarierte als auch
+% keyval-Optionen eines Pakets bzw. einer Klasse in der Reihenfolge, in der
+% sie verwendet wurden aus -- zuerst globale Optionen, dann lokale
+% Optionen. Das entspricht der Verwendung von \cs{ProcessOptions*} mit dem
+% Unterschied, dass eben auch die keyval-Optionen abgearbeitet
+% werden. keyval-Optionen, die keiner einzelnen Klasse und keinem einzelnen
+% Paket zugeordnet werden, werden dabei vor gleichnamigen eigenen
+% keyval-Optionen ausgeführt.
% \begin{macrocode}
%<*koma>
\newcommand*{\KOMAProcessOptions}{\FamilyProcessOptions{KOMA}}
@@ -545,6 +554,8 @@
% Benutzermakros kann verhindert werden}
% \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}
% 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
@@ -590,6 +601,7 @@
the manual of every package you are using\@gobble
}%
\fi
+ \ignorespaces
}%
\fi
}{%
@@ -1384,25 +1396,39 @@
% \end{macro}
%
% \begin{macro}{\FamilyUnknownKeyValue}
-% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an
-% einen Schlüssel. Das erste Argument ist die Familie, das zweit der
-% Schlüssel, das dritte der Wert und das vierte die Liste der möglichen
-% Werte.
+% \changes{v3.10}{2011/09/12}{no error while processing global options}%
+% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an einen
+% Schlüssel. Das erste Argument ist die Familie, das zweit der Schlüssel,
+% das dritte der Wert und das vierte die Liste der möglichen Werte.
% \begin{macrocode}
%<*base>
\newcommand*{\FamilyUnknownKeyValue}[4]{%
- \PackageError{%
- scrbase%
- }{%
- option `#2' of family `#1' has no value `#3'%
- }{%
- You've tried to set option `#2' of family '#1' to value `#3'.\MessageBreak
- But allowed values are only:\MessageBreak
- #4\FamilyElseValues.\MessageBreak
- See the manual of the class or package, that provides family
- `#1'\MessageBreak
- for more information about options and their values.%
- }%
+ \ifx\scr@removeunused\@empty
+ \PackageError{%
+ scrbase%
+ }{%
+ option `#2' of family `#1' has no value `#3'%
+ }{%
+ You've tried to set option `#2' of family '#1' to value `#3'.\MessageBreak
+ But allowed values are only:\MessageBreak
+ #4\FamilyElseValues.\MessageBreak
+ See the manual of the class or package, that provides family
+ `#1'\MessageBreak
+ for more information about options and their values.%
+ }%
+ \else
+ \let\scr@removeunused\@empty
+ \PackageInfo{%
+ scrbase%
+ }{%
+ option `#2' of family `#1' has no value `#3'.\MessageBreak
+ Allowed values for option `#2' of family `#1'\MessageBreak
+ would be:\MessageBreak
+ #4\FamilyElseValues.\MessageBreak
+ Maybe another class or package provides this option.\MessageBreak
+ Global option ignored
+ }%
+ \fi
}
%</base>
% \end{macrocode}