diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex | 593 |
1 files changed, 273 insertions, 320 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex index cbdc64ff4d9..44a4c70860a 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrbase.tex @@ -1,6 +1,6 @@ % ====================================================================== % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2016 +% Copyright (c) Markus Kohm, 2002-2017 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -18,7 +18,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrbase.tex -% Copyright (c) Markus Kohm, 2002-2016 +% Copyright (c) Markus Kohm, 2002-2017 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -46,12 +46,12 @@ % ====================================================================== \KOMAProvidesFile{scrbase.tex} - [$Date: 2016-03-09 18:09:14 +0100 (Wed, 09 Mar 2016) $ + [$Date: 2017-01-02 13:30:07 +0100 (Mon, 02 Jan 2017) $ KOMA-Script package scrbase] \chapter{Grundlegende Funktionen im Paket \Package{scrbase}} \labelbase{scrbase} - +\BeginIndexGroup \BeginIndex{Package}{scrbase}% Das Paket \Package{scrbase} stellt einige grundlegende Funktionen bereit, die @@ -81,9 +81,8 @@ Werten zuzuweisen. Auch die Optionen, die \Package{scrbase} bereitstellt, verwenden die \Package{keyval}-Syntax: \PName{Schlüssel}\texttt{=}\PName{Wert}. \begin{Declaration} - \KOption{internalonly}\PName{Wert} + \OptionVName{internalonly}{Wert} \end{Declaration} -\BeginIndex{Option}{internalonly~=\PName{Wert}}% Von \Package{scrbase} werden einige Verzweigungsanweisungen bereitgestellt. Dabei verwendet es primär die Bezeichnungen \Macro{scr@\PName{Name}}. Es handelt sich somit um interne @@ -105,7 +104,7 @@ Anwender können sie mit oder ohne Wertangabe entweder als globale Option bei \Macro{documentclass} oder per \Macro{PassOptionsToPackage} angeben. \begin{Example} Der Anwender will nicht, dass die Anweisungen \Macro{ifVTeX} und - \Macro{ifundefinedorrelax} von \Package{scrbase} definiert werden. Also + \DescRef{\LabelBase.cmd.ifundefinedorrelax} von \Package{scrbase} definiert werden. Also verwendet er beim Laden der Klasse: \begin{lstcode} \documentclass% @@ -114,13 +113,13 @@ Anwender können sie mit oder ohne Wertangabe entweder als globale Option bei \end{lstcode} Der Klassenname \Class{foo} wird hier als Platzhalter für irgendeine Klasse verwendet. Die Bedeutungen der Anweisungen \Macro{ifVTeX} und - \Macro{ifundefinedorrelax} sowie weitere Verzweigungsanweisungen sind - \autoref{sec:scrbase.if}, %\autopageref{desc:scrbase.cmd.ifVTeX} und - %\autopageref{desc:scrbase.cmd.ifundefinedorrelax} + \DescRef{\LabelBase.cmd.ifundefinedorrelax} sowie weitere Verzweigungsanweisungen sind + \autoref{sec:scrbase.if}, %\DescPageRef{scrbase.cmd.ifVTeX} und + %\DescPageRef{scrbase.cmd.ifundefinedorrelax} ab \autopageref{sec:scrbase.if} zu entnehmen. \end{Example} % -\EndIndex{Option}{internalonly~=\PName{Wert}}% +\EndIndexGroup \section{Schlüssel als Eigenschaften von Familien und deren Mitgliedern} @@ -136,11 +135,9 @@ Schlüssel eines Familienmitglieds, einem Schlüssel einer Familie oder einem Schlüssel aller Familienmitglieder zugewiesen werden. \begin{Declaration} - \Macro{DefineFamily}\Parameter{Familienname}\\ + \Macro{DefineFamily}\Parameter{Familienname} \Macro{DefineFamilyMember}\OParameter{Mitglied}\Parameter{Familienname} \end{Declaration} -\BeginIndex{Cmd}{DefineFamily}% -\BeginIndex{Cmd}{DefineFamilyMember}% \Package{scrbase} muss aus verschiedenen Gründen die Mitglieder einer Familie kennen. Daher ist es notwendig, eine neue Familie zunächst mit \Macro{DefineFamily} zu definieren und so eine leere Mitgliederliste zu @@ -187,26 +184,19 @@ Pakete im Gesamtpaket als Mitglied zu verwenden. definiert. \end{Example} % -\EndIndex{Cmd}{DefineFamilyMember}% -\EndIndex{Cmd}{DefineFamily}% +\EndIndexGroup + \begin{Declaration} \Macro{DefineFamilyKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\ - \hphantom{\Macro{DefineFamilyKey}}% - \OParameter{Säumniswert}\Parameter{Aktion}\\ - \Macro{FamilyKeyState}\\ - \Macro{FamilyKeyStateUnknown}\\ - \Macro{FamilyKeyStateProcessed}\\ - \Macro{FamilyKeyStateUnknownValue}\\ + \Parameter{Schlüssel} + \OParameter{Säumniswert}\Parameter{Aktion} + \Macro{FamilyKeyState} + \Macro{FamilyKeyStateUnknown} + \Macro{FamilyKeyStateProcessed} + \Macro{FamilyKeyStateUnknownValue} \Macro{FamilyKeyStateNeedValue} \end{Declaration} -\BeginIndex{Cmd}{DefineFamilyKey}% -\BeginIndex{Cmd}{FamilyKeyState}% -\BeginIndex{Cmd}{FamilyKeyStateUnknown}% -\BeginIndex{Cmd}{FamilyKeyStateProcessed}% -\BeginIndex{Cmd}{FamilyKeyStateUnknownValue}% -\BeginIndex{Cmd}{FamilyKeyStateNeedValue}% Mit dieser Anweisung wird ein \PName{Schlüssel} definiert. Ist ein \PName{Mitglied} angegeben, so ist der \PName{Schlüssel} eine Eigenschaft dieses Mitglieds der angegebenen \PName{Familie}. Ist kein Mitglied @@ -222,12 +212,12 @@ eingesetzt. Falls kein \PName{Säumniswert} angegeben wird, kann später der \begin{Explain} \phantomsection\label{explain:scrbase.macro.DefineFamilyKey}% Letztlich führt -\begin{lstcode}[belowskip=\dp\strutbox,escapeinside=»«] +\begin{lstcode}[escapeinside=»«] \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«} [»\PName{Säumniswert}«]{»\PName{Aktion}«} \end{lstcode} zu dem Aufruf -\begin{lstcode}[belowskip=\dp\strutbox,moretexcs={define@key},escapeinside=»«] +\begin{lstcode}[moretexcs={define@key},escapeinside=»«] \define@key{»\PName{Familie\,Mitglied}«}{»\PName{Schlüssel}«} [»\PName{Säumniswert}«]{»\PName{erweiterte Aktion}«} \end{lstcode} @@ -307,30 +297,25 @@ sollten jedoch die vier vordefinierten Zustände verwendet werden. ersetzen. \end{Example} % -\EndIndex{Cmd}{FamilyKeyStateNeedValue}% -\EndIndex{Cmd}{FamilyKeyStateUnknownValue}% -\EndIndex{Cmd}{FamilyKeyStateProcessed}% -\EndIndex{Cmd}{FamilyKeyStateUnknown}% -\EndIndex{Cmd}{FamilyKeyState}% -\EndIndex{Cmd}{DefineFamilyKey}% +\EndIndexGroup + \begin{Declaration} - \Macro{RelaxFamilyKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel} + \Macro{RelaxFamilyKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel} \end{Declaration} -\BeginIndex{Cmd}{RelaxFamilyKey}% Wurde\ChangedAt{v3.15}{\Package{scrbase}} \PName{Schlüssel} zuvor als \PName{Mitglied} der \PName{Familie} definiert, so wird diese Definition quasi aufgehoben. Der \PName{Schlüssel} ist dann für dieses \PName{Mitglied} der \PName{Familie} nicht mehr definiert. Die Verwendung für einen \PName{Schlüssel}, der für dieses \PName{Mitglied} der \PName{Familie} gar nicht definiert ist, ist ebenfalls zulässig.% -\EndIndex{Cmd}{RelaxFamilyKey}% +\EndIndexGroup + \begin{Declaration} \Macro{FamilyProcessOptions}\OParameter{Mitglied}\Parameter{Familie} \end{Declaration} -\BeginIndex{Cmd}{FamilyProcessOptions}% Grundsätzlich ist die Erweiterung der Schlüssel von Familien auf Familien und Familienmitglieder dazu gedacht, dass Schlüssel beziehungsweise die Wertzuweisung an Schlüssel als ganz normale Klassen- oder Paketoptionen @@ -375,17 +360,17 @@ verwendet werden. Es ist also insbesondere auch nicht erlaubt, innerhalb der Ausführung von Optionen Pakete zu laden.%, die selbst %\Macro{FamilyProcessOptions} verwenden.% % -\EndIndex{Cmd}{FamilyProcessOptions}% +\EndIndexGroup + \begin{Declaration} \Macro{BeforeFamilyProcessOptions}\OParameter{Mitglied}\Parameter{Familie}% \Parameter{Code}% \end{Declaration} -\BeginIndex{Cmd}{BeforeFamilyProcessOptions}% Insbesondere\ChangedAt{v3.18}{\Package{scrbase}} Autoren von Wrapper-Klassen wünschen manchmal, in ein Paket oder eine Klasse noch vor der Verarbeitung der Optionen eines zukünftig geladenen Pakets oder einer zukünftig geladenen -Klasse mit \Macro{FamilyProcessOptions} eingreifen zu können. Dies ist mit +Klasse mit \DescRef{\LabelBase.cmd.FamilyProcessOptions} eingreifen zu können. Dies ist mit \Macro{BeforeFamilyProcessOptions} möglich. Das Paket \Package{scrbase} bietet dafür einen sogenannten Haken (engl. \emph{hook}). Diesem kann man mit \Macro{BeforeFamilyProcessOptions} neuen \PName{Code} hinzufügen. Die @@ -415,17 +400,17 @@ bleibt auch über die Ausführung hinaus erhalten. meldet das Paket \Package{Mettwurst}, dass diese Option nicht bekannt ist. Wird die Option \Option{Aufschnitt} als globale Option angegeben, so ignoriert Paket \Package{Mettwurst} diese. Voreinstellungen innerhalb des - Pakets beispielsweise mit \Macro{FamilyExecuteOptions} noch vor - \Macro{FamilyProcessOptions} sind allerdings davon unabhängig. + Pakets beispielsweise mit \DescRef{\LabelBase.cmd.FamilyExecuteOptions} noch vor + \DescRef{\LabelBase.cmd.FamilyProcessOptions} sind allerdings davon + unabhängig. \end{Example} -\EndIndex{Cmd}{BeforeFamilyProcessOptions}% +\EndIndexGroup \begin{Declaration} \Macro{FamilyExecuteOptions}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Optionenliste} + \Parameter{Optionenliste} \end{Declaration} -\BeginIndex{Cmd}{FamilyExecuteOptions}% Diese Anweisung stellt eine Erweiterung von \Macro{ExecuteOptions} aus dem \LaTeX-Kern dar (siehe \cite{latex:clsguide}). Dabei verarbeitet die Anweisung nicht nur Optionen, @@ -460,13 +445,12 @@ Gliederungsbefehlen vor allen anderen auszuwerten. Diese Anweisung darf auch innerhalb der Ausführung von Optionen verwendet werden.% % -\EndIndex{Cmd}{FamilyExecuteOptions}% +\EndIndexGroup \begin{Declaration} \Macro{FamilyOptions}\Parameter{Familie}\Parameter{Optionenliste}% \end{Declaration} -\BeginIndex{Cmd}{FamilyOptions}% Die \PName{Optionenliste} hat dabei die Form: \begin{flushleft}\begin{tabular}{l} \PName{Schlüssel}\texttt{=}\PName{Wert}\texttt{,}% @@ -486,7 +470,7 @@ Mitglieder definiert wurden. Existiert ein angegebener \PName{Schlüssel} weder für die Familie noch für ein Mitglied der Familie, so wird von \Macro{FamilyOptions} ein Fehler ausgegeben. Dies geschieht ebenfalls, wenn zwar für einige Mitglieder ein Schlüssel existiert, jedoch jedes dieser -Mitglieder über \Macro{FamilyKeyState} einen Fehler zurückmeldet. +Mitglieder über \DescRef{\LabelBase.cmd.FamilyKeyState} einen Fehler zurückmeldet. \begin{Example} Sie ergänzen das Fleischermeister-Projekt um ein weiteres Paket \Package{Wurstsalat}. Wird dieses Paket verwendet, so sollen alle @@ -527,22 +511,22 @@ Mitglieder über \Macro{FamilyKeyState} einen Fehler zurückmeldet. definiert, dass sie für das Paket \Package{Wurstsalat} keine Funktion mehr ausübt. Da zu diesem Zeitpunkt \Macro{@currname} und \Macro{@currext} nicht mehr gültig sind, muss dabei das optionale Argument von - \Macro{DefineFamilyKey} verwendet werden. Bis zu dieser Umdefinierung der + \DescRef{\LabelBase.cmd.DefineFamilyKey} verwendet werden. Bis zu dieser Umdefinierung der Option wird jedoch eine Definition verwendet, die während \Macro{begin}\PParameter{document} die Option erneut für die gesamte Familie ausführt und damit auch für andere Wurstpakete setzt. \end{Example} % -\EndIndex{Cmd}{FamilyOptions}% +\EndIndexGroup + \begin{Declaration} \Macro{FamilyOption}\Parameter{Familie}% - \Parameter{Option}\Parameter{Werteliste}% + \Parameter{Option}\Parameter{Werteliste}% \end{Declaration} -\BeginIndex{Cmd}{FamilyOption}% Neben Optionen, die sich gegenseitig ausschließende Werte besitzen, kann es auch Optionen geben, die gleichzeitig mehrere Werte annehmen können. Für diese -wäre es bei Verwendung von \Macro{FamilyOptions} notwendig, der Option mehrfach +wäre es bei Verwendung von \DescRef{\LabelBase.cmd.FamilyOptions} notwendig, der Option mehrfach einen Wert zuzuweisen und dabei die Option selbst mehrfach anzugeben. Stattdessen kann man einfach mit \Macro{FamilyOption} einer einzigen \PName{Option} eine ganze \PName{Werteliste} zuweisen. Die @@ -553,7 +537,7 @@ einzigen \PName{Option} eine ganze \PName{Werteliste} zuweisen. Die In diesem Zusammenhang sei darauf hingewiesen, dass die Verwendung eines Kommas in einem Wert möglich ist, wenn man den Wert in geschweifte Klammern setzt. Die weitere Funktionsweise ist der vorhergehenden Erklärung zu -\Macro{FamilyOptions} zu entnehmen. +\DescRef{\LabelBase.cmd.FamilyOptions} zu entnehmen. \begin{Example} Das Paket \Package{Wurstsalat} soll eine Option bekommen, über die man weitere Zutaten bestimmen kann. Für jede Zutat wird dabei wieder ein @@ -583,35 +567,36 @@ setzt. Die weitere Funktionsweise ist der vorhergehenden Erklärung zu verwenden. \end{Example} % -\EndIndex{Cmd}{FamilyOption}% +\EndIndexGroup \begin{Declaration} \Macro{AtEndOfFamilyOptions}\Parameter{Aktion}% \end{Declaration} -\BeginIndex{Cmd}{AtEndOfFamilyOptions}% Manchmal\ChangedAt{v3.12}{\Package{scrbase}} ist es vorteilhafter, wenn nicht jede Wertzuweisung an eine Option unmittelbar eine \PName{Aktion} auslöst, sondern dies erst geschieht, wenn alle Wertzuweisungen innerhalb eines Aufrufs -von \Macro{FamilyProcessOptions}\IndexCmd{FamilyProcessOptions} oder -\Macro{FamilyExecuteOptions}\IndexCmd{FamilyExecuteOptions} beziehungsweise -\Macro{FamilyOptions}\IndexCmd{FamilyOptions} oder -\Macro{FamilyOption}\IndexCmd{FamilyOptions} abgeschlossen sind. Genau das ist -mit Hilfe von \Macro{AtEndOfFamilyOptions} möglich. Die Rückmeldung von -Fehlerzuständen ist über diese Anweisung jedoch ebenso wenig möglich, wie die -Verwendung dieser Anweisung außerhalb der Ausführung von Optionen. +von +\DescRef{\LabelBase.cmd.FamilyProcessOptions}\IndexCmd{FamilyProcessOptions} +oder +\DescRef{\LabelBase.cmd.FamilyExecuteOptions}\IndexCmd{FamilyExecuteOptions} +beziehungsweise \DescRef{\LabelBase.cmd.FamilyOptions}\IndexCmd{FamilyOptions} +oder \DescRef{\LabelBase.cmd.FamilyOption}\IndexCmd{FamilyOptions} +abgeschlossen sind. Genau das ist mit Hilfe von \Macro{AtEndOfFamilyOptions} +möglich. Die Rückmeldung von Fehlerzuständen ist über diese Anweisung jedoch +ebenso wenig möglich, wie die Verwendung dieser Anweisung außerhalb der +Ausführung von Optionen. % -\EndIndex{Cmd}{AtEndOfFamilyOptions}% +\EndIndexGroup \begin{Declaration} - \Macro{FamilyBoolKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\Parameter{Schaltername}\\ - \Macro{FamilySetBool}\Parameter{Familie}% - \Parameter{Schlüssel}\Parameter{Schaltername}\Parameter{Wert} + \Macro{FamilyBoolKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel}\Parameter{Schaltername} + \Macro{FamilySetBool}\Parameter{Familie} + \Parameter{Schlüssel}\Parameter{Schaltername} + \Parameter{Wert} \end{Declaration} -\BeginIndex{Cmd}{FamilyBoolKey}% -\BeginIndex{Cmd}{FamilySetBool}% In den vorherigen Beispielen wurden schon mehrfach Schalter gesetzt. Im Beispiel der Option \Option{Aufschnitt} war es dabei notwendig, dass der Anwender als Wert \PValue{true} oder \PValue{false} angibt. Es existierte @@ -619,25 +604,25 @@ keine Fehlerbehandlung, falls der Anwender einen falschen Wert verwendet. Da solche booleschen Schalter ein häufiger Anwendungsfall sind, kann man sie bei \Package{scrbase} einfach mit \Macro{FamilyBoolKey} definieren. Dabei sind die Argumente \PName{Mitglied}, \PName{Familie} und \PName{Schlüssel} die gleichen -wie bei \Macro{DefineFamilyKey} (siehe -\autopageref{desc:scrbase.cmd.DefineFamilyKey}). Das Argument +wie bei \DescRef{\LabelBase.cmd.DefineFamilyKey} (siehe +\DescPageRef{scrbase.cmd.DefineFamilyKey}). Das Argument \PName{Schaltername} ist der Name eines Schalter ohne den Präfix \Macro{if}. Existiert dieser Schalter noch nicht, so wird er automatisch definiert und mit \PName{false} voreingestellt. Intern verwendet \Macro{FamilyBoolKey} dann \Macro{FamilySetBool} als \PName{Aktion} für -\Macro{DefineFamilyKey}. Der Säumniswert für eine solche Option ist immer +\DescRef{\LabelBase.cmd.DefineFamilyKey}. Der Säumniswert für eine solche Option ist immer \PValue{true}. \Macro{FamilySetBool} wiederum versteht als \PName{Wert} neben \PValue{true} auch die Werte \PValue{on} und \PValue{yes} zum Einschalten und neben \PValue{false} auch die Werte \PValue{off} und \PValue{no} zum Ausschalten. Wird ein unbekannter Wert übergeben, so wird die Anweisung -\Macro{FamilyUnknownKeyValue} mit den Argumenten \PName{Familie}, -\PName{Schlüssel} und \PName{Wert} aufgerufen und so \Macro{FamilyKeyState} -entsprechend gesetzt. Dadurch wird dann gegebenenfalls eine Meldung über -eine unbekannte Wertzuweisung ausgegeben (siehe auch -\autopageref{desc:scrbase.cmd.FamilyUnknownKeyValue} und -\autopageref{desc:scrbase.cmd.FamilyKeyState}). +\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} mit den Argumenten +\PName{Familie}, \PName{Schlüssel} und \PName{Wert} aufgerufen und so +\DescRef{\LabelBase.cmd.FamilyKeyState} entsprechend gesetzt. Dadurch wird +dann gegebenenfalls eine Meldung über eine unbekannte Wertzuweisung ausgegeben +(siehe auch \DescPageRef{\LabelBase.cmd.FamilyUnknownKeyValue} und +\DescPageRef{\LabelBase.cmd.FamilyKeyState}). \begin{Example} Der Schlüssel \Option{Aufschnitt} soll in den Wurstpaketen etwas robuster definiert werden. Außerdem sollen alle Wurstpakete denselben Schalter @@ -676,12 +661,12 @@ eine unbekannte Wertzuweisung ausgegeben (siehe auch \end{lstcode} unter Ausnutzung des weiterführenden Hinweises auf \autopageref{explain:scrbase.macro.DefineFamilyKey}, der nicht nur für - \Macro{DefineFamilyKey}, sondern entsprechend auch für \Macro{FamilyBoolKey} + \DescRef{\LabelBase.cmd.DefineFamilyKey}, sondern entsprechend auch für \Macro{FamilyBoolKey} gilt. - Da \Macro{FamilyKeyState} bereits von \Macro{FamilySetBool} gesetzt wird, + Da \DescRef{\LabelBase.cmd.FamilyKeyState} bereits von \Macro{FamilySetBool} gesetzt wird, kann innerhalb der Definition der Option mit Hilfe von - \Macro{DefineFamilyKey} der Status gegebenenfalls auch abgefragt werden. So + \DescRef{\LabelBase.cmd.DefineFamilyKey} der Status gegebenenfalls auch abgefragt werden. So könnte man im ersten Fall beispielsweise nach \Macro{FamilySetBool} einen Test der Art: \begin{lstcode} @@ -698,23 +683,18 @@ eine unbekannte Wertzuweisung ausgegeben (siehe auch vermeiden. \end{Example} % -\EndIndex{Cmd}{FamilySetBool}% -\EndIndex{Cmd}{FamilyBoolKey} +\EndIndexGroup \begin{Declaration} - \Macro{FamilyNumericalKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\ - \hphantom{\XMacro{FamilyNumericalKey}}% + \Macro{FamilyNumericalKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel} \OParameter{Säumniswert}\Parameter{Makroname}% - \Parameter{Werteliste}\\ - \Macro{FamilySetNumerical}\Parameter{Familie}\Parameter{Schlüssel}\\ - \hphantom{\XMacro{FamilySetNumerical}}% + \Parameter{Werteliste} + \Macro{FamilySetNumerical}\Parameter{Familie}\Parameter{Schlüssel} \Parameter{Makroname}\Parameter{Werteliste}% - \Parameter{Wert} + \Parameter{Wert} \end{Declaration} -\BeginIndex{Cmd}{FamilyNumericalKey}% -\BeginIndex{Cmd}{FamilySetNumerical}% Während Schalter nur zwei Werte annehmen können, gibt es auch Schlüssel, die mehrere Werte kennen. So kann beispielsweise eine Ausrichtung nicht nur links oder nicht links, sondern beispielsweise links, mittig oder rechts @@ -786,87 +766,82 @@ expandiert wird. unterschieden werden. \end{Example} % -Intern wird von \Macro{FamilyNumericalKey} dann \Macro{DefineFamilyKey} mit -der Anweisung \Macro{FamilySetNumerical} verwendet. Wird an einen solchen -Schlüssel ein unbekannter Wert übergeben, so wird von -\Macro{FamilySetNumerical} Anweisung \Macro{FamilyUnknownKeyValue} mit den -Argumenten \PName{Familie}, \PName{Schlüssel} und \PName{Wert} -aufgerufen. Dies führt zu einer Fehlersignalisierung in \Macro{FamilyKeyState} -mit Hilfe des Status \Macro{FamilyKeyStateUnknownValue} und beispielsweise bei -der Verwendung als lokale Option zu einer Fehlermeldung. Ebenso wird beim -Aufruf von \Macro{FamilySetNumerical} auch der Erfolg via -\Macro{FamilyKeyStateProcessed} in \Macro{FamilyKeyState} signalisiert.% +Intern wird von \Macro{FamilyNumericalKey} dann +\DescRef{\LabelBase.cmd.DefineFamilyKey} mit der Anweisung +\Macro{FamilySetNumerical} verwendet. Wird an einen solchen Schlüssel ein +unbekannter Wert übergeben, so wird von \Macro{FamilySetNumerical} Anweisung +\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} mit den Argumenten +\PName{Familie}, \PName{Schlüssel} und \PName{Wert} aufgerufen. Dies führt zu +einer Fehlersignalisierung in \DescRef{\LabelBase.cmd.FamilyKeyState} mit +Hilfe des Status \DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} und +beispielsweise bei der Verwendung als lokale Option zu einer +Fehlermeldung. Ebenso wird beim Aufruf von \Macro{FamilySetNumerical} auch der +Erfolg via \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed} in +\DescRef{\LabelBase.cmd.FamilyKeyState} signalisiert.% % -\EndIndex{Cmd}{FamilySetNumerical}% -\EndIndex{Cmd}{FamilyNumericalKey}% +\EndIndexGroup + \begin{Declaration} - \Macro{FamilyCounterKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\% - \hphantom{\XMacro{FamilyCounterKey}}% - \OParameter{Säumniswert}\Parameter{\LaTeX-Zähler}\\ - \Macro{FamilySetCounter}\Parameter{Familie}% - \Parameter{Schlüssel}\Parameter{\LaTeX-Zähler}\Parameter{Wert} + \Macro{FamilyCounterKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel} + \OParameter{Säumniswert}\Parameter{\LaTeX-Zähler} + \Macro{FamilySetCounter}\Parameter{Familie} + \Parameter{Schlüssel}\Parameter{\LaTeX-Zähler} + \Parameter{Wert} \end{Declaration} -\BeginIndex{Cmd}{FamilyCounterKey}% -\BeginIndex{Cmd}{FamilySetCounter}% -Während\ChangedAt{v3.12}{\Package{scrbase}} bei \Macro{FamilyNumericalKey} ein -Makro aufgrund eines symbolischen \PName{Wert}s auf einen korrespondierenden -nummerischen Wert gesetzt wurde, gibt es natürlich auch Fälle, in denen ein -\PName{Schlüssel} direkt einen \PName{\LaTeX-Zähler} rerpäsentiert, dem -unmittelbar ein nummerischer \PName{Wert} zugewiesen werden soll. Dazu dient -die Anweisung \Macro{FamilyCounterKey}, von der intern dann -\Macro{FamilySetCounter} aufgerufen wird. Dabei finden einige grundlegende -Prüfungen des \PName{Wert}-Arguments statt um festzustellen, ob dieses -Argument für eine Zuweisung an einen Zähler in Frage kommt. Die Zuweisung -findet nur statt, wenn diese Prüfungen gelingen. Allerdings können hier nicht -alle Fehler erkannt werden, so dass eine falsche Zuweisung auch zu einer -Fehlermeldung von \TeX{} selbst führen kann. Erkannte Fehler werden hingegen -über \Macro{FamilyKeyStateUnknownValue} signalisiert. +Während\ChangedAt{v3.12}{\Package{scrbase}} bei +\DescRef{\LabelBase.cmd.FamilyNumericalKey} ein Makro aufgrund eines +symbolischen \PName{Wert}s auf einen korrespondierenden nummerischen Wert +gesetzt wurde, gibt es natürlich auch Fälle, in denen ein \PName{Schlüssel} +direkt einen \PName{\LaTeX-Zähler} rerpäsentiert, dem unmittelbar ein +nummerischer \PName{Wert} zugewiesen werden soll. Dazu dient die Anweisung +\Macro{FamilyCounterKey}, von der intern dann \Macro{FamilySetCounter} +aufgerufen wird. Dabei finden einige grundlegende Prüfungen des +\PName{Wert}-Arguments statt um festzustellen, ob dieses Argument für eine +Zuweisung an einen Zähler in Frage kommt. Die Zuweisung findet nur statt, wenn +diese Prüfungen gelingen. Allerdings können hier nicht alle Fehler erkannt +werden, so dass eine falsche Zuweisung auch zu einer Fehlermeldung von \TeX{} +selbst führen kann. Erkannte Fehler werden hingegen über +\DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} signalisiert. Wurde\ChangedAt{v3.15}{\Package{scrbase}} kein Wert übergeben, so wird stattdessen der \PName{Säumniswert} eingesetzt. Falls kein \PName{Säumniswert} angegeben wird, kann später der \PName{Schlüssel} nur mit Wertübergabe verwendet werden.% -\EndIndex{Cmd}{FamilySetCounter}% -\EndIndex{Cmd}{FamilyCounterKey}% +\EndIndexGroup + \begin{Declaration} - \Macro{FamilyCounterMacroKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\% - \hphantom{\XMacro{FamilyCounterMacroKey}}% - \OParameter{Säumniswert}\Parameter{Makro}\\ - \Macro{FamilySetCounterMacro}\Parameter{Familie}% - \Parameter{Schlüssel}\Parameter{Makro}\Parameter{Wert}% + \Macro{FamilyCounterMacroKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel} + \OParameter{Säumniswert}\Parameter{Makro} + \Macro{FamilySetCounterMacro}\Parameter{Familie} + \Parameter{Schlüssel}\Parameter{Makro} + \Parameter{Wert} \end{Declaration} -\BeginIndex{Cmd}{FamilyCounterMacroKey}% -\BeginIndex{Cmd}{FamilySetCounterMacro}% Diese\ChangedAt{v3.12}{\Package{scrbase}} beiden Anweisungen unterscheiden -sich von den zuvor erklärten \Macro{FamilyCounterKey} und -\Macro{FamilySetCounter} nur dadurch, dass nicht ein \LaTeX-Zähler auf einen +sich von den zuvor erklärten \DescRef{\LabelBase.cmd.FamilyCounterKey} und +\DescRef{\LabelBase.cmd.FamilySetCounter} nur dadurch, dass nicht ein \LaTeX-Zähler auf einen Wert gesetzt wird, sondern ein \PName{Makro} mit diesem Wert definiert wird.% -\EndIndex{Cmd}{FamilySetCounterMacro}% -\EndIndex{Cmd}{FamilyCounterMacroKey}% +\EndIndexGroup + \begin{Declaration} - \Macro{FamilyLengthKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\% - \hphantom{\XMacro{FamilyLengthKey}}% - \OParameter{Säumniswert}\Parameter{Länge}\\ + \Macro{FamilyLengthKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel} + \OParameter{Säumniswert}\Parameter{Länge} \Macro{FamilySetLength}\Parameter{Familie}% - \Parameter{Schlüssel}\Parameter{Länge}\Parameter{Wert}\\ - \Macro{FamilyLengthMacroKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\% - \hphantom{\XMacro{FamilyLengthMacroKey}}% - \OParameter{Säumniswert}\Parameter{Makro}\\ - \Macro{FamilySetLengthMacro}\Parameter{Familie}% - \Parameter{Schlüssel}\Parameter{Makro}\Parameter{Wert}% + \Parameter{Schlüssel}\Parameter{Länge} + \Parameter{Wert} + \Macro{FamilyLengthMacroKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel} + \OParameter{Säumniswert}\Parameter{Makro} + \Macro{FamilySetLengthMacro}\Parameter{Familie} + \Parameter{Schlüssel}\Parameter{Makro} + \Parameter{Wert}% \end{Declaration} -\BeginIndex{Cmd}{FamilyLengthKey}% -\BeginIndex{Cmd}{FamilySetLength}% -\BeginIndex{Cmd}{FamilyLengthMacroKey}% -\BeginIndex{Cmd}{FamilySetLengthMacro}% Über\ChangedAt{v3.12}{\Package{scrbase}} \Macro{FamilyLengthKey} kann ein \PName{Schlüssel} definiert werden, der eine \PName{Länge} repräsentiert. Dabei spielt es keine Rolle, ob eine \LaTeX-Länge, ein @@ -877,7 +852,7 @@ festzustellen, ob dieses Argument für eine Zuweisung an eine \PName{Länge} in Frage kommt. Die Zuweisung findet nur statt, wenn diese Prüfungen gelingen. Allerdings können hier nicht alle Fehler erkannt werden, so dass eine falsche Zuweisung auch zu einer Fehlermeldung von \TeX{} selbst führen -kann. Erkannte Fehler werden hingegen über \Macro{FamilyKeyStateUnknownValue} +kann. Erkannte Fehler werden hingegen über \DescRef{\LabelBase.cmd.FamilyKeyStateUnknownValue} signalisiert. Wurde\ChangedAt{v3.15}{\Package{scrbase}} kein Wert übergeben, so wird @@ -889,29 +864,25 @@ Bei Verwendung der Anweisungen \Macro{FamilyLengthMacroKey} und \Macro{FamilySetLengthMacro} findet die Speicherung des Werts nicht in einer \Macro{Länge}, sondern in einem \Macro{Makro} statt.% -\EndIndex{Cmd}{FamilySetLengthMacro}% -\EndIndex{Cmd}{FamilyLengthMacroKey}% -\EndIndex{Cmd}{FamilySetLength}% -\EndIndex{Cmd}{FamilyLengthKey}% +\EndIndexGroup + \begin{Declaration} - \Macro{FamilyStringKey}\OParameter{Mitglied}\Parameter{Familie}% - \Parameter{Schlüssel}\\ - \hphantom{\XMacro{FamilyStringKey}}% + \Macro{FamilyStringKey}\OParameter{Mitglied}\Parameter{Familie} + \Parameter{Schlüssel} \OParameter{Säumniswert}\Parameter{Makro} \end{Declaration} -\BeginIndex{Cmd}{FamilyStringKey}% Hier wird nun\ChangedAt{v3.08}{\Package{scrbase}} ein Schlüssel definiert, der jeden beliebigen Wert annehmen kann. Der Wert wird in dem angegebenen \PName{Makro} gespeichert. Wird das optionale Argument für den \PName{Säumniswert} weggelassen, so entspricht die Anweisung: -\begin{lstcode}[belowskip=\dp\strutbox plus 1pt,escapeinside=»«] +\begin{lstcode}[escapeinside=»«] \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«} {\def»\PName{Makro}«{#1}} \end{lstcode} Existiert das optionale Argument für den \PName{Säumniswert} so entspricht die Anweisung: -\begin{lstcode}[belowskip=\dp\strutbox plus 1pt,escapeinside=»«] +\begin{lstcode}[escapeinside=»«] \DefineFamilyKey[»\PName{Mitglied}«]{»\PName{Familie}«}{»\PName{Schlüssel}«} [»\PName{Säumniswert}«] {\def»\PName{Makro}«{#1}\FamilyKeyStateProcessed} @@ -943,16 +914,17 @@ In diesem Fall existieren keine unbekannten Werte, da alle Werte schlicht für eine Makrodefinition verwendet werden. Es ist jedoch zu beachten, dass in der Wertzuweisung an den Schlüssel keine Absätze enthalten sein dürfen. % -\EndIndex{Cmd}{FamilyStringKey}% +\EndIndexGroup + \begin{Declaration} - \Macro{FamilyUnknownKeyValue}\Parameter{Familie}\Parameter{Schlüssel}% - \Parameter{Wert}\Parameter{Werteliste} + \Macro{FamilyUnknownKeyValue}\Parameter{Familie}\Parameter{Schlüssel} + \Parameter{Wert}\Parameter{Werteliste} \end{Declaration} -\BeginIndex{Cmd}{FamilyUnknownKeyValue}% -Diese Anweisung signalisiert über \Macro{FamilyKeyState} einen Fehler aufgrund -eines unbekannten oder unerlaubten Werts. Dabei wird als \PName{Werteliste} -eine durch Komma separierte Liste von erlaubten Werten der Form +Diese Anweisung signalisiert über \DescRef{\LabelBase.cmd.FamilyKeyState} +einen Fehler aufgrund eines unbekannten oder unerlaubten Werts. Dabei wird als +\PName{Werteliste} eine durch Komma separierte Liste von erlaubten Werten der +Form \begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} `\PName{Wert}'\texttt{,} `\PName{Wert}' \dots \end{tabular}\vskip\dp\strutbox\end{flushleft} @@ -987,39 +959,41 @@ erwartet. Allerdings\ChangedAt{v3.12}{\Package{scrbase}} wird die }% \end{lstcode} Zunächst wird versucht, den booleschen Schalter für Aufschnitt über - \Macro{FamilySetBool} zu setzen. Gelingt dies, wurde also - \Macro{FamilyKeyState} zu \Macro{FamilyKeyStateProcessed} definiert, wird + \DescRef{\LabelBase.cmd.FamilySetBool} zu setzen. Gelingt dies, wurde also + \DescRef{\LabelBase.cmd.FamilyKeyState} zu \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed} definiert, wird der Feinschnitt abgeschaltet. Anderenfalls wird überprüft, ob an Stelle eines gültigen Werts für einen booleschen Schalter %der Wert \PValue{fein} übergeben wurde. In diesem Fall wird sowohl der Feinschnitt, als auch Aufschnitt aktiviert und mit Hilfe von - \Macro{FamilyKeyStateProcessed} der Erfolgs-Status gesetzt. Ist auch das - nicht der Fall, bleibt der von \Macro{FamilySetBool} signalisierte + \DescRef{\LabelBase.cmd.FamilyKeyStateProcessed} der Erfolgs-Status gesetzt. Ist auch das + nicht der Fall, bleibt der von \DescRef{\LabelBase.cmd.FamilySetBool} signalisierte Fehler-Zustand bestehen. Die bei den Tests verwendete Anweisung \Macro{ifstr}\IndexCmd{ifstr} ist auf - \autopageref{desc:scrbase.cmd.ifstr} in \autoref{sec:scrbase.if} erklärt. + \DescPageRef{scrbase.cmd.ifstr} in \autoref{sec:scrbase.if} erklärt. \end{Example} % -\EndIndex{Cmd}{FamilyUnknownKeyValue}% +\EndIndexGroup + \begin{Declaration} \Macro{FamilyElseValues} \end{Declaration} -\BeginIndex{Cmd}{FamilyElseValues}% In\ChangedAt{v3.12}{\Package{scrbase}} früheren Versionen von -\Package{scrbase} konnte man über die Anweisung \Macro{FamilyElseValues} weitere -erlaubte Werte für die Bearbeitung durch \Macro{FamilyUnknownValue} in der Form +\Package{scrbase} konnte man über die Anweisung \Macro{FamilyElseValues} +weitere erlaubte Werte für die Bearbeitung durch +\DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} in der Form \begin{flushleft}\vskip\dp\strutbox\begin{tabular}{l} \texttt{,} `\PName{Wert}'\texttt{,} `\PName{Wert}' \dots \end{tabular}\vskip\dp\strutbox\end{flushleft} ablegen, die dann ebenfalls in einer Fehlermeldung mit ausgegeben wurden. Seit -Version~3.12 gibt \Macro{FamilyUnknownValue} keine Fehlermeldungen mehr -aus, sondern setzt nur noch \Macro{FamilyKeyState} entsprechend. Damit ist die -Verwendung von \Macro{FamilyElseValue} ebenfalls überholt. Ihre Verwendung -wird jedoch erkannt und führt dann zu einer Aufforderung, den Code -entsprechend anzupassen.% -\EndIndex{Cmd}{FamilyElseValues}% +Version~3.12 gibt \DescRef{\LabelBase.cmd.FamilyUnknownKeyValue} keine +Fehlermeldungen mehr aus, sondern setzt nur noch +\DescRef{\LabelBase.cmd.FamilyKeyState} entsprechend. Damit ist die Verwendung +von \Macro{FamilyElseValue} ebenfalls überholt. Ihre Verwendung wird jedoch +erkannt und führt dann zu einer Aufforderung, den Code entsprechend +anzupassen.% +\EndIndexGroup \section{Verzweigungen} @@ -1028,7 +1002,7 @@ entsprechend anzupassen.% Das Paket \Package{scrbase} stellt eine ganze Reihe von Verzweigungsanweisungen zur Verfügung. Dabei wird nicht auf die \TeX-Syntax von Verzweigungen, wie beispielsweise -\begin{lstcode}[belowskip=\dp\strutbox] +\begin{lstcode} \iftrue ... \else @@ -1047,22 +1021,20 @@ zwangsläufig zu einem Problem aufgrund der unterschiedlichen Syntax führen. Deshalb definiert \Package{scrbase} einige dieser Anweisungen zunächst als interne Anweisungen mit dem Präfix \Macro{scr@}. Für den Anwender werden dann gleichbedeutende Anweisungen ohne diesen Präfix bereit -gestellt. Letzteres kann jedoch mit Hilfe der Option \Option{internalonly} -(siehe \autoref{sec:scrbase.loadit}, -\autopageref{desc:scrbase.option.internalonly}) verhindert werden. +gestellt. Letzteres kann jedoch mit Hilfe der Option +\DescRef{\LabelBase.option.internalonly} (siehe \autoref{sec:scrbase.loadit}, +\DescPageRef{scrbase.option.internalonly}) verhindert werden. Paket- und Klassenautoren sollten wie \KOMAScript{} selbst auch die internen Namen verwenden. Zur Vollständigkeit sind aber auch die Anwenderanweisungen angegeben. \begin{Declaration} - \Macro{scr@ifundefinedorrelax}% - \Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ - \Macro{ifundefinedorrelax}% + \Macro{scr@ifundefinedorrelax} + \Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifundefinedorrelax} \Parameter{Name}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{scr@ifundefinedorrelax}% -\BeginIndex{Cmd}{ifundefinedorrelax}% Diese Anweisung funktioniert prinzipiell wie \Macro{@ifundefined} aus dem \LaTeX-Kern (siehe \cite{latex:source2e}). Es wird also der \PName{Dann-Teil} ausgeführt, wenn \PName{Name} der @@ -1072,275 +1044,266 @@ allerdings \Macro{\PName{Name}} nicht als \Macro{relax} definiert, wenn es zuvor undefiniert war. Unter Verwendung von \eTeX{} wird in diesem Fall noch nicht einmal Hash-Speicher belegt. % -\EndIndex{Cmd}{ifundefinedorrelax}% -\EndIndex{Cmd}{scr@ifundefinedorrelax}% +\EndIndexGroup + \begin{Declaration} - \Macro{scr@ifpdftex}% - \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ - \Macro{ifpdftex}% + \Macro{scr@ifpdftex} + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifpdftex} \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{scr@ifpdftex}% -\BeginIndex{Cmd}{ifpdftex}% Wird mit pdf\TeX{} gearbeitet, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Dabei ist es unerheblich, ob tatsächlich eine PDF-Datei ausgegeben werden soll, oder nicht. Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. In der Regel sollte man eher auf die gewünschte Anweisung testen. % -\EndIndex{Cmd}{ifpdftex} -\EndIndex{Cmd}{scr@ifpdftex} +\EndIndexGroup + \begin{Declaration} - \Macro{scr@ifVTeX}% - \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ - \Macro{ifVTeX}% + \Macro{scr@ifVTeX} + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifVTeX} \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{scr@ifVTeX}% -\BeginIndex{Cmd}{ifVTeX}% Wird mit V\TeX{} gearbeitet, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Diese Unterscheidung ist nur sehr selten wirklich von Nutzen. In der Regel sollte man eher auf die gewünschte Anweisung testen. % -\EndIndex{Cmd}{ifVTeX} -\EndIndex{Cmd}{scr@ifVTeX} +\EndIndexGroup + \begin{Declaration} - \Macro{scr@ifpdfoutput}% - \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ - \Macro{ifpdfoutput}% + \Macro{scr@ifpdfoutput} + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifpdfoutput} \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{scr@ifpdfoutput}% -\BeginIndex{Cmd}{ifpdfoutput}% Wird eine PDF-Datei erzeugt, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Dabei ist es unerheblich, ob die PDF-Datei mit Hilfe von pdf\TeX{} oder mit Hilfe von V\TeX{} erzeugt wird. % -\EndIndex{Cmd}{ifpdfoutput} -\EndIndex{Cmd}{scr@ifpdfoutput} +\EndIndexGroup + \begin{Declaration} - \Macro{scr@ifpsoutput}% - \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ - \Macro{ifpsoutput}% + \Macro{scr@ifpsoutput} + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifpsoutput} \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{scr@ifpsoutput}% -\BeginIndex{Cmd}{ifpsoutput}% Wird eine PostScript-Datei erzeugt, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. V\TeX{} kann PostScript direkt erzeugen, was hier auch erkannt wird. Wird hingegen kein V\TeX{} verwendet, ist aber ein Schalter \Macro{if@dvips} definiert, so wird die Entscheidung darüber getroffen. \KOMAScript{} stellt \Macro{if@dvips} in \Package{typearea} bereit. % -\EndIndex{Cmd}{ifpsoutput} -\EndIndex{Cmd}{scr@ifpsoutput} +\EndIndexGroup + \begin{Declaration} - \Macro{scr@ifdvioutput}% - \Parameter{Dann-Teil}\Parameter{Sonst-Teil}\\ - \Macro{ifdvioutput}% + \Macro{scr@ifdvioutput} + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifdvioutput} \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{scr@ifdvioutput}% -\BeginIndex{Cmd}{ifdvioutput}% Wird eine DVI-Datei erzeugt, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es wird immer dann davon ausgegangen, dass eine DVI-Datei erzeugt wird, wenn keine direkte Ausgabe einer PDF- oder Postscript-Datei erkannt werden kann. % -\EndIndex{Cmd}{ifdvioutput} -\EndIndex{Cmd}{scr@ifdvioutput} +\EndIndexGroup + \begin{Declaration} \Macro{ifnotundefined}\Parameter{Name}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifnotundefined}% Unter Verwendung von \eTeX{} wird hier tatsächlich getestet, ob die Anweisung mit dem angegebenen \PName{Name} noch undefiniert ist. Von dieser Anweisung gibt es keine interne Variante. % -\EndIndex{Cmd}{ifnotundefined} +\EndIndexGroup + \begin{Declaration} \Macro{ifstr}\Parameter{Zeichenfolge}\Parameter{Zeichenfolge}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifstr}% Die beiden Argumente \PName{Zeichenfolge} werden expandiert und dann verglichen. Sind sie dabei gleich, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Von dieser Anweisung gibt es keine interne Variante. % -\EndIndex{Cmd}{ifstr} +\EndIndexGroup + \begin{Declaration} - \Macro{ifstrstart}\Parameter{Zeichenfolge}\Parameter{Zeichenfolge}\\ - \hphantom{\XMacro{ifstrstart}}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifstrstart}\Parameter{Zeichenfolge}\Parameter{Zeichenfolge} + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifstrstart}% Die\ChangedAt{v3.12}{\Package{scrbase}} beiden Argumente \PName{Zeichenfolge} werden expandiert und dann verglichen. Beginnt die erste Zeichenfolge von Leerzeichen abgesehen mit der zweiten Zeichenfolge, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifstrstart}% +% +\EndIndexGroup + \begin{Declaration} \Macro{ifisdimen}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisdimen}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in einem \Macro{dimen}, also einem \TeX-Längenregister, resultiert, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisdimen}% +\EndIndexGroup + \begin{Declaration} \Macro{ifisdimension}\Parameter{Code}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisdimension}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in etwas resultiert, das syntaktisch dem Wert einer Länge entspricht, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu beachten,\textnote{Achtung!} dass derzeit unbekannte Einheiten zu einer Fehlermeldung führen. Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisdimension}% +\EndIndexGroup + \begin{Declaration} - \Macro{ifisdimexpr}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} + \Macro{ifisdimexpr}\Parameter{Code} + \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisdimexpr}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in einer \Macro{dimexpr}, also einem \TeX-Längenausdruck resultiert, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu beachten,\textnote{Achtung!} dass fehlerhafte Ausdrücke zu Fehlermeldungen führen! Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisdimexpr}% +\EndIndexGroup + \begin{Declaration} \Macro{ifisskip}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisskip}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in einem \Macro{skip}, also einem \TeX-Abstand, resultiert, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisskip}% +\EndIndexGroup + \begin{Declaration} \Macro{ifisglue}\Parameter{Code}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisglue}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in etwas resultiert, das syntaktisch dem Wert eines Abstandes entspricht, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu beachten,\textnote{Achtung!} dass derzeit unbekannte Einheiten zu einer Fehlermeldung führen. Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisglue}% +\EndIndexGroup + \begin{Declaration} \Macro{ifisglueexpr}\Parameter{Code}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisglueexpr}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in einer \Macro{glueexpr}, also einem \TeX-Abstandsausdruck resultiert, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu beachten,\textnote{Achtung!} dass fehlerhafte Ausdrücke zu Fehlermeldungen führen! Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisglueexpr}% +\EndIndexGroup + \begin{Declaration} \Macro{ifiscount}\Parameter{Code}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifiscount}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in einem \Macro{count}, also einem \TeX-Zähler, resultiert, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die Anweisung ist nicht voll expandierbar. Für einen Test auf einen \LaTeX-Zähler -siehe \Macro{ifiscounter}. Von dieser +siehe \DescRef{\LabelBase.cmd.ifiscounter}. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifiscount}% +\EndIndexGroup + \begin{Declaration} \Macro{ifisinteger}\Parameter{Code}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisinteger}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in etwas resultiert, das syntaktisch dem Wert eines Zählers entspricht, also eine negative oder positive ganze Zahl ist, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisinteger}% +\EndIndexGroup + \begin{Declaration} \Macro{ifisnumexpr}\Parameter{Code}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifisnumexpr}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} die Expansion von \PName{Code} in einer \Macro{numexpr}, also einem \TeX-Zahlenausdruck resultiert, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Es ist zu beachten,\textnote{Achtung!} dass fehlerhafte Ausdrücke zu Fehlermeldungen führen! Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifisnumexpr}% +\EndIndexGroup + \begin{Declaration} \Macro{ifiscounter}\Parameter{Zähler}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifiscounter}% Wenn\ChangedAt{v3.12}{\Package{scrbase}} \PName{Zähler} ein definierter \LaTeX-Zähler ist, wird der \PName{Dann-Teil} ausgeführt, anderenfalls der \PName{Sonst-Teil}. Die Anweisung ist nicht voll expandierbar. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifiscounter}% +\EndIndexGroup + \begin{Declaration} \Macro{ifnumber}\Parameter{Zeichenfolge}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifnumber}% Hier werden keine Zahlen verglichen. Der \PName{Dann-Teil} wird vielmehr ausgeführt, wenn die einfache Expansion der \PName{Zeichenfolge} nur aus Ziffern besteht. Anderenfalls wird der \PName{Sonst-Teil} verwendet. Von dieser Anweisung gibt es keine interne Variante.% -\EndIndex{Cmd}{ifnumber} +\EndIndexGroup + \begin{Declaration} \Macro{ifdimen}\Parameter{Zeichenfolge}% \Parameter{Dann-Teil}\Parameter{Sonst-Teil} \end{Declaration} -\BeginIndex{Cmd}{ifdimen}% Hier werden keine Längen verglichen. Der \PName{Dann-Teil} wird vielmehr ausgeführt, wenn die einfache Expansion der \PName{Zeichenfolge} eine gültige Länge mit einer gültigen Längeneinheit ist. Anderenfalls wird der \PName{Sonst-Teil} verwendet. Von dieser Anweisung gibt es keine interne Variante. % -\EndIndex{Cmd}{ifdimen} +\EndIndexGroup + \begin{Declaration} - \Macro{if@atdocument}\ \PName{Dann-Teil} - \Macro{else}\ \PName{Sonst-Teil} \Macro{fi} + \Macro{if@atdocument}\ \PName{Dann-Teil}\ % + \textMacro{else}\ \PName{Sonst-Teil} \textMacro{fi} \end{Declaration} -\BeginIndex{Cmd}{if@atdocument}% Diese Verzweigung existiert ganz bewusst nur als interne Anweisung. Dabei entspricht \Macro{if@atdocument} in der Dokumentpräambel \Macro{iffalse}, nach \Macro{begin}\PParameter{document} entspricht \Macro{if@atdocument} hingegen @@ -1350,11 +1313,12 @@ verhalten sollen als innerhalb des Dokuments. Es\textnote{Achtung!} ist zu beachten, dass es sich bei dieser Anweisung um eine Verzweigung in \TeX-Syntax und nicht in \LaTeX-Syntax handelt! % -\EndIndex{Cmd}{if@atdocument} +\EndIndexGroup \section{Definition sprachabhängiger Bezeichner} \seclabel{languageSupport} +\BeginIndexGroup \BeginIndex{}{Sprachdefinition} Normalerweise muss man zur Definition oder zur Änderung sprachabhängiger @@ -1382,27 +1346,23 @@ selbst einige zusätzliche Anweisungen, die ihn von vielen dieser Überlegungen entlasten. \begin{Declaration} - \Macro{defcaptionname}% - \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{providecaptionname}% - \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{newcaptionname}% - \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{renewcaptionname}% - \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{defcaptionname*}% - \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{providecaptionname*}% - \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ - \Macro{newcaptionname*}% - \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt}\\ + \Macro{defcaptionname} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} + \Macro{providecaptionname} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} + \Macro{newcaptionname} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} + \Macro{renewcaptionname} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} + \Macro{defcaptionname*} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} + \Macro{providecaptionname*} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} + \Macro{newcaptionname*} + \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} \Macro{renewcaptionname*}% \Parameter{Sprachliste}\Parameter{Begriff}\Parameter{Inhalt} \end{Declaration} -\BeginIndex{Cmd}{defcaptionname}% -\BeginIndex{Cmd}{providecaptionname}% -\BeginIndex{Cmd}{newcaptionname}% -\BeginIndex{Cmd}{renewcaptionname}% Mit Hilfe dieser vier Anweisungen und ihrer Sternvarianten ist es möglich, einem \PName{Begriff} in Abhängigkeit der Sprache einen \PName{Inhalt} zuzuweisen. Mehrere Sprachen können durch Komma voneinander getrennt als @@ -1445,7 +1405,7 @@ Sprache nicht definiert zu sein. \KOMAScript{} selbst verwendet \Macro{providecaptionname} um die Begriffe aus \autoref{sec:scrlttr2-experts.languages}, -\autopageref{desc:scrlttr2-experts.cmd.yourrefname} zu definieren. +\DescPageRef{scrlttr2-experts.cmd.yourrefname} zu definieren. \begin{Example} Möchten Sie »Abb.« statt »Abbildung« in den Abbildungsunterschriften, so @@ -1600,12 +1560,9 @@ finden. }% \end{desclist} % -\EndIndex{Cmd}{renewcaptionname}% -\EndIndex{Cmd}{newcaptionname}% -\EndIndex{Cmd}{providecaptionname}% -\EndIndex{Cmd}{defcaptionname}% +\EndIndexGroup % -\EndIndex{}{Sprachdefinition}% +\EndIndexGroup \section{Identifikation von \KOMAScript} @@ -1620,20 +1577,18 @@ Pakete und Klassen verwendet werden kann, so ist es dennoch ein \begin{Declaration} \Macro{KOMAScript} \end{Declaration} -\BeginIndex{Cmd}{KOMAScript}% Diese Anweisung setzt schlicht die Wortmarke »\KOMAScript« in serifenloser Schrift und mit leichter Sperrung des in Versalien gesetzten Teils. \Macro{KOMAScript} wird übrigens bei Bedarf von allen \KOMAScript-Klassen und "~Paketen definiert. Die Definition erfolgt mit \Macro{DeclareRobustCommand}. % -\EndIndex{Cmd}{KOMAScript} +\EndIndexGroup \begin{Declaration} \Macro{KOMAScriptVersion} \end{Declaration} -\BeginIndex{Cmd}{KOMAScriptVersion}% Bei \KOMAScript{} ist in dieser Anweisung die Hauptversion von \KOMAScript{} in der Form »\PName{Datum} \PName{Version} \texttt{KOMA-Script}« abgelegt. Diese Hauptversion ist für alle \KOMAScript-Klassen und alle @@ -1642,7 +1597,7 @@ sie auch nach dem Laden von \Package{scrbase} abgefragt werden. Diese Anleitung wurde beispielsweise mit der \KOMAScript-Version »\KOMAScriptVersion« erstellt. % -\EndIndex{Cmd}{KOMAScriptVersion}% +\EndIndexGroup \section{Erweiterungen des \LaTeX-Kerns} @@ -1654,11 +1609,9 @@ oder eigentlich nahe liegen, vermissen. Einige wenige solcher Anweisungen für Klassen- und Paketautoren stellt \Package{scrbase} zur Verfügung. \begin{Declaration} - \Macro{ClassInfoNoLine}\Parameter{Klassenname}\Parameter{Information}\\ - \Macro{PackageInfoNoLine}\Parameter{Paketname}\Parameter{Information}% + \Macro{ClassInfoNoLine}\Parameter{Klassenname}\Parameter{Information} + \Macro{PackageInfoNoLine}\Parameter{Paketname}\Parameter{Information} \end{Declaration}% -\BeginIndex{Cmd}{PackageInfoNoLine}% -\BeginIndex{Cmd}{ClassInfoNoLine}% Der \LaTeX-Kern bietet dem Klassen- und Paketautor zwar Anweisungen wie \Macro{PackageInfo} und \Macro{ClassInfo}, um Informationen mit aktueller Zeilennummer in die Log-Datei zu schreiben. Er bietet neben @@ -1670,13 +1623,12 @@ Zeilennummer auszugeben. Die nahe liegenden Anweisungen ohne Zeilennummer in die Log-Datei zu schreiben, fehlen jedoch. Diese werden von \Package{scrbase} bereit gestellt. % -\EndIndex{Cmd}{ClassInfoNoLine}% -\EndIndex{Cmd}{PackageInfoNoLine} +\EndIndexGroup + \begin{Declaration} \Macro{l@addto@macro}\Parameter{Anweisung}\Parameter{Erweiterung}% \end{Declaration}% -\BeginIndex{Cmd}{l@addto@macro}% Der \LaTeX-Kern bietet mit \Macro{g@addto@macro} eine interne Anweisung, um die Definition eines Makro \PName{Anweisung} global um den Code \PName{Erweiterung} zu erweitern. Das funktioniert in dieser Form nur für @@ -1684,11 +1636,12 @@ Makros ohne Argumente. Dennoch könnte man diese Anweisung in einigen Fällen auch in einer Form benötigen, die lokal zur aktuellen Gruppe arbeitet. Diese wird mit \Macro{l@addto@macro} von \Package{scrbase} bereit gestellt. Eine Alternative stellt hier die Verwendung des Pakets -\Package{etoolbox}\IndexPackage{etoolbox} dar, das eine ganze Reihe solcher +\Package{etoolbox}\IndexPackage{etoolbox} oder +\Package{xpatch}\IndexPackage{xpatch} dar, das eine ganze Reihe solcher Anweisungen für unterschiedliche Zwecke bietet (siehe -\cite{package:etoolbox}). +\cite{package:etoolbox} beziehungsweise \cite{package:xpatch}). % -\EndIndex{Cmd}{l@addto@macro} +\EndIndexGroup \section{Erweiterungen der mathematischen Fähigkeiten von \eTeX} @@ -1702,8 +1655,8 @@ unterstützt. Bei der Division wird korrekt gerundet. Manchmal sind weitere Operationen nützlich. \begin{Declaration} - \Macro{XdivY}\Parameter{Dividend}\Parameter{Divisor}\\ - \Macro{XmodY}\Parameter{Dividend}\Parameter{Divisor}% + \Macro{XdivY}\Parameter{Dividend}\Parameter{Divisor} + \Macro{XmodY}\Parameter{Dividend}\Parameter{Divisor} \end{Declaration}% \BeginIndex{Cmd}{XdivY}% \BeginIndex{Cmd}{XmodY}% @@ -1724,10 +1677,9 @@ Der Wert kann jeweils zur Zuweisung an einen Zähler oder direkt innerhalb eines Ausdrucks mit \Macro{numexpr} verwendet werden. Zur Ausgabe als arabische Zahl ist \Macro{the} voran zu stellen.% % -\EndIndex{Cmd}{XmodY}% -\EndIndex{Cmd}{XdivY}% +\EndIndexGroup % -\EndIndex{Package}{scrbase}% +\EndIndexGroup \endinput @@ -1748,3 +1700,4 @@ arabische Zahl ist \Macro{the} voran zu stellen.% % LocalWords: AtEndOfFamilyOptions FamilyBoolKey FamilySetBool Schaltername % LocalWords: FamilyLengthKey FamilySetLength FamilyLengthMacroKey % LocalWords: FamilySetLengthMacro Wertübergabe Gliederungsbefehlen + |