summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-01-27 19:01:38 +0000
committerKarl Berry <karl@freefriends.org>2011-01-27 19:01:38 +0000
commit2b311b90f06b68e1cb123c58c3b380ea6533eea0 (patch)
tree06df1db9ecc0e0557987e581462d056ef498e1ef /Master/texmf-dist/source/latex/koma-script/scrkbase.dtx
parent7d072ac46075608b02b7af6ac92a174183cbcb32 (diff)
koma-script (26jan11)
git-svn-id: svn://tug.org/texlive/trunk@21195 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkbase.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrkbase.dtx113
1 files changed, 91 insertions, 22 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx b/Master/texmf-dist/source/latex/koma-script/scrkbase.dtx
index 1316ff4b735..46acc7cee24 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{1309}
+% \CheckSum{1342}
% \iffalse meta-comment
% ======================================================================
% scrkbase.dtx
-% Copyright (c) Markus Kohm, 2002-2010
+% Copyright (c) Markus Kohm, 2002-2011
%
% 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-2010
+% Copyright (c) Markus Kohm, 2002-2011
%
% 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}[2010/03/10 v3.05a KOMA-Script (basics)]
+\ProvidesFile{scrkbase.dtx}[2010/12/14 v3.08 KOMA-Script (basics)]
% \iffalse
%</driver>
%<package&option>\ProvidesPackage{%
@@ -1100,26 +1100,45 @@
% \begin{macrocode}
\newcommand*{\Family@Options}[3]{%
\@for\scr@key@atlist:=#2\do{%
- \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil
% \end{macrocode}
+% \changes{v3.08}{2010/11/05}{leere Argumente in der Optionenliste}
+% Auf vielfachen Wunsch und entgegen meiner Überzeugung, sind auch leere
+% Argumente in der Optionenliste erlaubt. Die erste Form wäre, wenn zwei
+% Kommas diret aufeinander folgen:
+% \begin{macrocode}
+ \ifx\scr@key@atlist\@empty\else
+% \end{macrocode}
+% Die zweite Möglichkeit wäre, dass noch Leerzeichen zwischen den Komma übrig
+% bleiben:
+% \begin{macrocode}
+ \ifx\scr@key@atlist\space\else
+ \expandafter\scr@key@split@name@value\scr@key@atlist==\@nil
+% \end{macrocode}
+% Die dritte Möglichkeit, dass auch noch ein Gleichheitszeichen übrig gelassen
+% wurde, werde ich aber nicht abfangen. Irgendwann müssen die Anwender auch
+% mal ihre Fehler einsehen und korrigieren!
+%
% Dann wird in einer Schleife über alle Familien festgestellt, ob die Option
% in einer Familie bekannt ist und ggf. ausgeführt.
% \begin{macrocode}
- \scr@key@found@false
- \edef\@tempa{\csname #1@key@familylist\endcsname}%
- \@for\@tempa:=\@tempa\do{%
- \scr@ifundefinedorrelax{KV@\@tempa @\scr@key@name}{}{%
- \scr@key@found@true
- \protected@edef\reserved@a{\noexpand\setkeys{\@tempa}{\scr@key@atlist}%
- \noexpand\def\noexpand\@tempa{\@tempa}%
- \noexpand\def\noexpand\scr@key@atlist{\scr@key@atlist}%
- \noexpand\def\noexpand\scr@key@name{\scr@key@name}%
- \noexpand\def\noexpand\scr@key@value{\scr@key@value}%
+ \scr@key@found@false
+ \edef\@tempa{\csname #1@key@familylist\endcsname}%
+ \@for\@tempa:=\@tempa\do{%
+ \scr@ifundefinedorrelax{KV@\@tempa @\scr@key@name}{}{%
+ \scr@key@found@true
+ \protected@edef\reserved@a{%
+ \noexpand\setkeys{\@tempa}{\scr@key@atlist}%
+ \noexpand\def\noexpand\@tempa{\@tempa}%
+ \noexpand\def\noexpand\scr@key@atlist{\scr@key@atlist}%
+ \noexpand\def\noexpand\scr@key@name{\scr@key@name}%
+ \noexpand\def\noexpand\scr@key@value{\scr@key@value}%
+ }%
+ \reserved@a
+ }%
}%
- \reserved@a
- }%
- }%
- \ifscr@key@found@\else#3\fi
+ \ifscr@key@found@\else#3\fi
+ \fi
+ \fi
}%
}
% \end{macrocode}
@@ -1200,7 +1219,14 @@
\let\reserved@a\@empty
\@for\@tempa:=#3\do{%
\expandafter\KV@@sp@def\expandafter\@tempa\expandafter{\@tempa}%
- \protected@edef\reserved@a{\reserved@a,\scr@key@name=\@tempa}%
+% \end{macrocode}
+% \changes{v3.08}{2010/11/05}{leere Argumente in der Werteliste}
+% Auf vielfachen Wunsch und entgegen meiner Überzeugung, sind auch leere
+% Argumente in der Werteliste erlaubt:
+% \begin{macrocode}
+ \ifx\@tempa\@empty\else
+ \protected@edef\reserved@a{\reserved@a,\scr@key@name=\@tempa}%
+ \fi
}%
\ifx\reserved@a\@empty
\protected@edef\reserved@a{\noexpand\setkeys{\@tempb}{\scr@key@name}}%
@@ -1279,8 +1305,8 @@
\ifx\post@kopt@hook\relax
\PackageWarning{scrkbase}{%
\string\AfterKOMAoptions\space can only be used inside a\MessageBreak
- KOMA-Script option that is called using \space\KOMAoptions.\MessageBreak
- Because if this, command will be ignored%
+ KOMA-Script option that is called using \string\KOMAoptions.\MessageBreak
+ Because of this, command will be ignored%
}%
\expandafter\@gobbletwo
\else
@@ -1403,6 +1429,13 @@
}{}%
\DefineFamilyKey[{#1}]{#2}{#3}[true]{\FamilySetBool{#2}{#3}{#4}{##1}}%
}
+% \end{macrocode}
+% \begin{macro}{\FamilySetBool}
+% \changes{v3.00}{2008/04/30}{Neue Anweisung}
+% Über diese Anweisung wird der Wert dann gesetzt. Dabei ist das erste
+% Argument die Familie, das zweite der Name des Schlüsselt, das dritte der
+% Schalter und das vierte schließlich der gewünschte Wert.
+% \begin{macrocode}
\newcommand*{\FamilySetBool}[4]{%
\ifstr{#4}{true}{\@nameuse{#3true}}{%
\ifstr{#4}{on}{\@nameuse{#3true}}{%
@@ -1424,6 +1457,7 @@
%</base>
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\KOMA@unknown@keyval}
% Dieses Makro berichtet über Fehler wegen unbekannter Wertübergabe an
@@ -1575,6 +1609,41 @@
% \end{macro}
%
%
+% \begin{macro}{\FamilyStringKey}
+% \changes{v3.08}{2010/11/05}{Neue Anweisung}
+% \begin{macro}{\Family@String@Key}
+% \changes{v3.08}{2010/11/05}{Neu (intern)}
+% \begin{macro}{\Family@@String@@Key}
+% \changes{v3.08}{2010/11/05}{Neu (intern)}
+% 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
+% dritte, obligatorische Argument ist der Name der Option, das vierte,
+% optionale Artument ist der Defaultwert für den Schlüssel, das fünfte,
+% obligatorische Argument ist der Name des Makros, das (in der Voreinstellung
+% als leer) definiert werden soll. Die internen Makro werden benötigt, um das
+% vierte, optionale Argument zu ermöglichen. Dabei ist dann das erste Argument
+% nicht mehr optional, sondern obligatorisch.
+% \begin{macrocode}
+%<*base>
+\newcommand*{\FamilyStringKey}[3][.\@currname.\@currext]{%
+ \@ifnextchar [%]
+ {\Family@String@Key{#1}{#2}{#3}}{\Family@@String@@Key{#1}{#2}{#3}}%
+}
+\newcommand*{\Family@@String@@Key}{}
+\long\def\Family@@Numerical@@Key#1#2#3[#4]#5{%
+ \DefineFamilyKey[{#1}]{#2}{#3}[{#4}]{\def#5{##1}}%
+}
+\newcommand{\Family@String@Key}[4]{%
+ \DefineFamilyKey[{#1}]{#2}{#3}{\def#4{##1}}%
+}
+%</base>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
% \begin{macro}{\KOMA@DeclareDeprecatedOption}
% \changes{v3.01a}{2008/11/20}{neu (intern)}
% \begin{macro}{\KOMA@@DeclareDeprecatedOption}