diff options
author | Karl Berry <karl@freefriends.org> | 2011-01-27 19:01:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-01-27 19:01:38 +0000 |
commit | 2b311b90f06b68e1cb123c58c3b380ea6533eea0 (patch) | |
tree | 06df1db9ecc0e0557987e581462d056ef498e1ef /Master/texmf-dist/source/latex/koma-script/scrkbase.dtx | |
parent | 7d072ac46075608b02b7af6ac92a174183cbcb32 (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.dtx | 113 |
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} |