diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx | 210 |
1 files changed, 141 insertions, 69 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx index 909be6f30c8..b7e98fc70ec 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-variables.dtx @@ -1,8 +1,8 @@ -% \CheckSum{160} +% \CheckSum{243} % \iffalse meta-comment % ====================================================================== % scrkernel-variables.dtx -% Copyright (c) Markus Kohm, 2008-2017 +% Copyright (c) Markus Kohm, 2008-2019 % % 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-variables.dtx -% Copyright (c) Markus Kohm, 2008-2017 +% Copyright (c) Markus Kohm, 2008-2019 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,7 +55,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-variables.dtx 2640 2017-05-08 09:36:55Z kohm $ +%%% From File: $Id: scrkernel-variables.dtx 3262 2019-10-10 08:25:29Z kohm $ %<option>%%% (run: option) %<body>%%% (run: body) %<*dtx> @@ -63,7 +63,7 @@ \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\def\filedate{#2/#3/#4}} - \filedate$Date: 2017-05-08 11:36:55 +0200 (Mon, 08 May 2017) $ + \filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $ \def\filerevision$#1: #2 ${\def\filerevision{r#2}} \filerevision$Revision: 1638 $ \xdef\fileinfo{\filedate\space\filerevision\space} @@ -77,7 +77,6 @@ % \iffalse \documentclass{scrdoc} \usepackage[english,ngerman]{babel} -\usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrkernel-variables.dtx} @@ -103,7 +102,7 @@ % % Bei Briefen gibt es eine ganze Reihe von speziellen Variablen. An dieser % Stelle sei als Beispiel nur das Feld "`Ihr Zeichen"' genannt. Es ist nahezu -% unmöglich alle diese Felder vorherzusehen. Daher wurde in der neuen +% unmöglich alle diese Felder vorherzusehen. Daher wurde in der neuen % Briefklasse ein neuer Mechanismus zur Definition solcher Felder geschaffen. % % \iffalse @@ -117,7 +116,7 @@ % \fi % % \subsection{Option} -% Der Mechanismus ist unabhängig von Optionen. +% Der Mechanismus ist unabhängig von Optionen. % % % \iffalse @@ -128,24 +127,24 @@ % \subsection{Anweisungen zum Anlegen und Verwenden von Variablen} % % \begin{macro}{\newkomavar} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} -% ersetzt}^^A +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} +% ersetzt}%^^A % Es wird zwischen zwei Arten von Feldern unterschieden: % \begin{itemize} -% \item Felder für die Geschäftszeile -% \item Felder für sonstige Verwendung +% \item Felder für die Geschäftszeile +% \item Felder für sonstige Verwendung % \end{itemize} -% Felder können aber auch nachträglich zur Geschäftszeile -% hinzugefügt werden. Die Sternvariante von \cs{newkomavar} führt +% Felder können aber auch nachträglich zur Geschäftszeile +% hinzugefügt werden. Die Sternvariante von \cs{newkomavar} führt % dies jedoch automatisch durch. % \begin{macro}{\@newkomavar} % Da mit einer Sternvariante gearbeitet wird, wird ein Hilfsmakro -% benötigt. Das Makro erhält ein optionales und +% benötigt. Das Makro erhält ein optionales und % ein obligatorisches Argument. Das optionale Argument ist dabei die -% Voreinstellung für den \emph{Ausgabenamen} des Feldes, der +% Voreinstellung für den \emph{Ausgabenamen} des Feldes, der % ggf. ausgegeben werden soll. Das obligatorische Argument ist -% \emph{Name} des Feldes, über den das Feld angesprochen wird. +% \emph{Name} des Feldes, über den das Feld angesprochen wird. % Das Makro definiert zwei weitere Makros: \cs{\emph{scr@Name}@var} und % \cs{scr@\emph{Name}@name}. % \begin{macrocode} @@ -188,33 +187,32 @@ % \end{macro} % % \begin{macro}{\setkomavar} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname} -% und \cs{scr@\emph{Name}@postsetvar}} -% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} -% ersetzt}^^A -% Natürlich wird auch ein Befehl benötigt, um die Feldvariablen -% zu setzen und ihnen ggf. einen neuen Namen für die Ausgabe zu -% geben. Der \emph{Name} der Feldvariable wird als obligatorisches -% erstes Argument übergeben. Zusätzlich zum Setzen von Ausgabename oder Wert -% werden ggf. auch die Hooks \cs{scr@\emph{Name}@postsetname} -% bzw. \cs{scr@\emph{Name}@postsetvar} ausgeführt. +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v3.08}{2010/10/28}{\cs{scr@\emph{Name}@postsetname} und +% \cs{scr@\emph{Name}@postsetvar}}%^^A +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} +% ersetzt}%^^A +% Natürlich wird auch ein Befehl benötigt, um die Feldvariable zu setzen und +% ihnen ggf. einen neuen Namen für die Ausgabe zu geben. Der \emph{Name} der +% Feldvariable wird als obligatorisches erstes Argument übergeben. Zusätzlich +% zum Setzen von Ausgabename oder Wert werden ggf. auch die Hooks +% \cs{scr@\emph{Name}@postsetname} bzw. \cs{scr@\emph{Name}@postsetvar} +% ausgeführt. % \begin{macro}{\@setkomavar} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by -% \cs{kernel@ifnextchar}}^^A -% Da dann zwischen einer Sternvariante und einer normalen -% unterschieden werden soll wird ein Hilfsmakro benötigt. +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by +% \cs{kernel@ifnextchar}}%^^A +% Da dann zwischen einer Sternvariante und einer normalen unterschieden werden +% soll wird ein Hilfsmakro benötigt. % \begin{macro}{\@setkomaname} -% \changes{v2.8q}{2002/01/14}{Neu}^^A +% \changes{v2.8q}{2002/01/14}{Neu}%^^A % Die Sternvariante definiert nur den Ausgabename neu. % \begin{macro}{\@@setkomavar} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% Da in der normalen Variante nach dem Stern ein optionales Argument -% folgen kann, wird mit einem weiteren Hilfsmakro gearbeitet. Der -% \emph{Ausgabename} wird dabei als optionales, zweites Argument -% übergeben. Der \emph{Inhalt} wird als obligatorisches, drittes -% Argument übergeben. +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% Da in der normalen Variante nach dem Stern ein optionales Argument folgen +% kann, wird mit einem weiteren Hilfsmakro gearbeitet. Der \emph{Ausgabename} +% wird dabei als optionales, zweites Argument übergeben. Der \emph{Inhalt} +% wird als obligatorisches, drittes Argument übergeben. % \begin{macrocode} \newcommand*{\setkomavar}{% \kernel@ifstar {\@setkomaname}{\@setkomavar}} @@ -251,7 +249,7 @@ % \end{macro} % % \begin{macro}{\@komavar@err} -% \changes{v2.8q}{2002/01/14}{Neu}^^A +% \changes{v2.8q}{2002/01/14}{Neu}%^^A % Dieses Makro wird intern in den Makros \cs{setkomavar} und % \cs{usekomavar} verwendet. % \begin{macrocode} @@ -272,26 +270,26 @@ % \end{macro} % % \begin{macro}{\usekomavar} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v2.9i}{2002/09/04}{robust}^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} -% ersetzt}^^A -% Selbstverständlich wird auch ein Makro benötigt, um auf den +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v2.9i}{2002/09/04}{robust}%^^A +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} +% ersetzt}%^^A +% Selbstverständlich wird auch ein Makro benötigt, um auf den % Inhalt oder den Ausgabename einer Variablen zugreifen zu -% können. Mit der normalen Variante wird dabei der Inhalt, mit der +% können. Mit der normalen Variante wird dabei der Inhalt, mit der % Sternvariante der Name ausgegeben. % \begin{macro}{\@usekomavar} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v2.9i}{2002/09/04}{optionales Argument}^^A -% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument -% eingefügt} +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v2.9i}{2002/09/04}{optionales Argument}%^^A +% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument +% eingefügt} % \begin{macro}{\@usekomaname} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v2.9i}{2002/09/04}{optionales Argument}^^A -% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument -% eingefügt} +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v2.9i}{2002/09/04}{optionales Argument}%^^A +% \changes{v2.9j}{2002/09/18}{\cs{@firstofone} als Defaultargument +% eingefügt} % Da mir einer Sternvariante gearbeitet wird, werden zwei Hilfsmakros -% benötigt. +% benötigt. % \begin{macrocode} \DeclareRobustCommand*{\usekomavar}{% \kernel@ifstar {\@usekomaname}{\@usekomavar}} @@ -315,8 +313,8 @@ % \end{macro} % % \begin{macro}{\ifkomavar} -% \changes{v3.03}{2009/03/04}{Neu}^^A -% Feststellen, ob eine \KOMAScript-Variable überhaupt definiert ist. +% \changes{v3.03}{2009/03/04}{Neu}%^^A +% Feststellen, ob eine \KOMAScript-Variable überhaupt definiert ist. % \begin{macrocode} \DeclareRobustCommand*{\ifkomavar}[1]{% \scr@ifundefinedorrelax{scr@#1@var}{% @@ -329,19 +327,19 @@ % \end{macro} % % \begin{macro}{\ifkomavarempty} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v2.9i}{2002/09/04}{Leerzeichen rausgeworfen}^^A -% \changes{v2.9i}{2002/09/04}{robust}^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} -% ersetzt}^^A +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v2.9i}{2002/09/04}{Leerzeichen rausgeworfen}%^^A +% \changes{v2.9i}{2002/09/04}{robust}%^^A +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} +% ersetzt}%^^A % Es gibt auch noch ein Makro, um zu testen, ob eine \KOMAScript{} -% Variable oder deren Name leer ist. Die Sternvariante ist wieder für -% den Namen zuständig. +% Variable oder deren Name leer ist. Die Sternvariante ist wieder für +% den Namen zuständig. % \begin{macro}{\if@komavarempty} -% \changes{v2.8q}{2002/01/14}{Neu}^^A -% \changes{v3.03}{2009/03/04}{die neue Anweisung \cs{ifkomavar} wird +% \changes{v2.8q}{2002/01/14}{Neu}%^^A +% \changes{v3.03}{2009/03/04}{die neue Anweisung \cs{ifkomavar} wird % verwendet} -% \changes{v3.03}{2009/03/04}{die Argumente werden nicht mehr direkt gelesen}^^A +% \changes{v3.03}{2009/03/04}{die Argumente werden nicht mehr direkt gelesen}%^^A % Da mit einer Sternvariante gearbeitet wird, wird wieder ein % Hilfsmakro verwendet. % \begin{macrocode} @@ -379,6 +377,80 @@ % \end{macro} % \end{macro} % +% \selectlanguage{english} +% \begin{macro}{\foreachkomavar} +% \changes{v3.27}{2019/03/13}{new}%^^A +% Executes \texttt{\#2} for each variable in the comma separated list +% \texttt{\#1}. An argument is appended to \texttt{\#2} which is the current +% variable to be processed. This command is short. So if you want so execute +% long code you should define a command for it. Sideeffect: \cs{reserved@a} is +% changed. +% \begin{macrocode} +\newcommand*{\foreachkomavar}[2]{% + \@for \reserved@a:=#1\do{% + \scr@trim@spaces\reserved@a + \ifx\reserved@a\@empty\else + \edef\reserved@a{\unexpanded{#2}{\reserved@a}}\expandafter\reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\foreachkomavarifempty} +% \changes{v3.27}{2019/03/13}{new}%^^A +% Same like \cs{foreachkomavar} but \texttt{\#2} is called only for empty +% variables and \texttt{\#3} is called for non empty. +% \begin{macrocode} +\newcommand*{\foreachkomavarifempty}[3]{% + \@for \reserved@a:=#1\do{% + \scr@trim@spaces\reserved@a + \ifx\reserved@a\@empty\else + \edef\reserved@a{% + \noexpand\ifkomavarempty{\reserved@a}% + {\unexpanded{#2}{\reserved@a}}% + {\unexpanded{#3}{\reserved@a}}% + }\expandafter\reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\foreachemptykomavar} +% \changes{v3.27}{2019/03/13}{new}%^^A +% Similar to \cs{foreachemptykomavar} with \texttt{\#3}=\cs{@gobble}. +% \begin{macrocode} +\newcommand*{\foreachemptykomavar}[2]{% + \@for \reserved@a:=#1\do{% + \scr@trim@spaces\reserved@a + \ifx\reserved@a\@empty\else + \edef\reserved@a{% + \noexpand\ifkomavarempty{\reserved@a}{\unexpanded{#2}{\reserved@a}}{}% + }\expandafter\reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\foreachnonemptykomavar} +% \changes{v3.27}{2019/03/13}{new}%^^A +% Similar to \cs{foreachemptykomavar} with \texttt{\#2}=\cs{@gobble}. +% \begin{macrocode} +\newcommand*{\foreachnonemptykomavar}[2]{% + \@for \reserved@a:=#1\do{% + \scr@trim@spaces\reserved@a + \ifx\reserved@a\@empty\else + \edef\reserved@a{% + \noexpand\ifkomavarempty{\reserved@a}{}{\unexpanded{#2}{\reserved@a}}% + }\expandafter\reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \selectlanguage{ngerman} % % \iffalse %</body> |