You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

248 lines
11 KiB

% ======================================================================
% common-options.tex
% Copyright (c) Markus Kohm, 2001-2017
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later and of this work.
%
% This work has the LPPL maintenance status "author-maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% common-options.tex
% Copyright (c) Markus Kohm, 2001-2017
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
% http://www.latex-project.org/lppl.txt
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
% Version 2005/12/01 oder spaeter und dieses Werks.
%
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
% (allein durch den Autor verwaltet).
%
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
%
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
%
% Paragraphs that are common for several chapters of the KOMA-Script guide
% Maintained by Markus Kohm
%
% ----------------------------------------------------------------------
%
% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
% Verwaltet von Markus Kohm
%
% ======================================================================
\KOMAProvidesFile{common-options.tex}
[$Date: 2019-10-29 09:18:21 +0100 (Tue, 29 Oct 2019) $
KOMA-Script guide (common paragraphs)]
\section{Frühe oder späte Optionenwahl}
\seclabel{options}
\BeginIndexGroup
\BeginIndex{}{Optionen}%
\IfThisCommonFirstRun{%
In diesem Abschnitt wird eine Besonderheit von \KOMAScript{} vorgestellt, die
neben %
\IfThisCommonLabelBase{typearea}{\Package{typearea} auch andere
\KOMAScript-Pakete und "~Klassen }{%
\IfThisCommonLabelBase{maincls}{den Klassen \Class{scrbook},
\Class{scrreprt} und \Class{scrartcl} auch andere \KOMAScript-Klassen und
"~Pakete }{%
\IfThisCommonLabelBase{scrlttr2}{der Klasse \Class{scrlttr2} auch andere
\KOMAScript-Klassen und "~Pakete }{%
\IfThisCommonLabelBase{scrextend}{den Klassen und \Package{scrextend}
auch einige andere \KOMAScript-Pakete }{%
\IfThisCommonLabelBase{scrhack}{\Package{scrhack} auch andere
\KOMAScript-Pakete und "~Klassen }{%
\IfThisCommonLabelBase{scrjura}{\Package{scrjura} auch andere
\KOMAScript-Pakete und "~Klassen }{%
\IfThisCommonLabelBase{scrlayer}{\Package{scrlayer} auch andere
\KOMAScript-Pakete und "-Klassen }{%
\IfThisCommonLabelBase{scrlayer-scrpage}{%
\Package{scrlayer-scrpage} auch andere \KOMAScript-Pakete und
"-Klassen }{%
\IfThisCommonLabelBase{scrlayer-notecolumn}{%
\Package{scrlayer-notecolumn} auch andere \KOMAScript-Pakete
und "-Klassen }{%
\InternalCommonFileUsageError}}}}}}}}}%%
betrifft. %
% Umbruchvarianten:
\IfThisCommonLabelBase{typearea}{Im Sinne der
Abgeschlossenheit der Kapitel ist dieser Abschnitt nahezu identisch in
mehreren Kapiteln zu finden.%
}{Damit die Anwender alle Informationen zu einem Paket oder einer Klasse im
jeweiligen Kapitel finden, ist dieser Abschnitt nahezu gleichlautend in
mehreren Kapiteln zu finden. Anwender, die nicht nur an der Anleitung zu
einem Paket oder einer Klasse interessiert sind, sondern sich einen
Gesamtüberblick über \KOMAScript{} verschaffen wollen, brauchen diesen
Abschnitt nur in einem der Kapitel zu lesen und können ihn
\IfThisCommonLabelBase{maincls}{bei den weiteren Kapitel
überspringen.}{beim weiteren Studium der Anleitung dann überspringen.}%
}%
}{%
Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.options}
geschrieben wurde. Falls Sie also
\autoref{sec:\ThisCommonFirstLabelBase.options} bereits gelesen und
verstanden haben, können Sie auf
\autopageref{sec:\ThisCommonLabelBase.options.next} mit
\autoref{sec:\ThisCommonLabelBase.options.next} fortfahren.%
}
\begin{Declaration}
\Macro{documentclass}\OParameter{Optionenliste}%
\Parameter{\KOMAScript-Klasse}%
\Macro{usepackage}\OParameter{Optionenliste}%
\Parameter{Paket-Liste}
\end{Declaration}
Bei \LaTeX{} ist vorgesehen, dass Anwender
Klassenoptionen\textnote{Klassenoptionen} in Form einer durch Komma getrennten
Liste einfacher Schlüsselwörter als optionales Argument von
\Macro{documentclass} angeben. Außer an die Klasse werden diese Optionen auch
an alle Pakete\textnote{globale Optionen} weitergereicht, die diese Optionen
verstehen. Ebenso ist vorgesehen, dass Anwender
Paketoptionen\textnote{Paketoptionen} in Form einer durch Komma getrennten
Liste einfacher Schlüsselwörter als optionales Argument von \Macro{usepackage}
angeben. \KOMAScript{} erweitert\ChangedAt{v3.00}{\Class{scrbook}\and
\Class{scrreprt}\and \Class{scrartcl}\and \Package{typearea}} den
Mechanismus der Optionen für
\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{die \KOMAScript-Klassen und
}einige Pakete um weitere Möglichkeiten. So haben die meisten Optionen bei
\KOMAScript{} zusätzlich einen Wert. Eine Option hat also nicht unbedingt nur
die Form \PName{Option}, sondern kann auch die Form
\PName{Option}\texttt{=}\PName{Wert}%
\important{\PName{Option}\texttt{=}\PName{Wert}} haben. Bis auf diesen
Unterschied arbeiten \Macro{documentclass} und \Macro{usepackage} bei
\KOMAScript{} wie in \cite{latex:usrguide} oder jeder \LaTeX-Einführung,
beispielsweise \cite{l2kurz}, beschrieben.
\IfThisCommonLabelBaseNotOneOf{%
scrjura,scrhack,scrlayer,scrlayer-scrpage,scrlayer-notecolumn,scrextend%
}{%
Bei Verwendung einer \KOMAScript-Klasse\textnote{Achtung!} sollten
\IfThisCommonLabelBase{typearea}{beim dann ohnehin überflüssigen}{im Übrigen
beim} Laden des Pakets \Package{typearea} oder \Package{scrbase} keine
Optionen angegeben werden. \IfThisCommonLabelBase{typearea}{Diese Klassen
laden die beiden Pakete nämlich bereits ohne Optionen und \LaTeX{} meldet
einen Fehler, wenn eines der Pakete anschließend mit Optionen geladen
wird.}{Das ist darin begründet, dass die Klassen diese Pakete bereits ohne
Optionen laden und \LaTeX{} das mehrmalige Laden eines Pakets mit
unterschiedlicher Angabe von Optionen verweigert.}%
\iffalse % Umbruchoptimierung
\IfThisCommonLabelBase{scrlttr2}{ Überhaupt ist es bei Verwendung einer
\KOMAScript-Klasse nicht notwendig, eines dieser Pakete auch noch explizit
zu laden.}{}%
\fi %
\par
}{}
% Umbruchoptimierung!!!
\IfThisCommonLabelBase{typearea}{Das Setzen der Optionen mit
\Macro{documentclass} hat übrigens einen\textnote{Achtung!} entscheidenden
Nachteil: %
}{%
Gegenüber der nachfolgend vorgestellten Schnittstelle zu Einstellungen von
Optionen hat \Macro{documentclass} einen Nachteil, der unbedingt zu
beachten\textnote{Achtung!} ist: %
}%
Anweisungen, Längen, Zähler und ähnliches können darin leicht zerbrechen. So
führt die Verwendung einer \LaTeX-Länge im Wert einer Option bei dieser
Anweisung bei vielen Nicht-\KOMAScript-Klassen zu einer Fehlermeldung%
\IfThisCommonLabelBaseNotOneOf{maincls,scrlttr2}{, noch bevor der Wert an ein
\KOMAScript-Paket übergeben wird, es also die Kontrolle darüber übernehmen
könnte}{}%
. Wertzuweisungen mit \LaTeX-Längen oder \LaTeX-Zählern sollten daher nie per
\Macro{documentclass}, sondern mit den nachfolgend dokumentierten Anweisungen
\DescRef{\LabelBase.cmd.KOMAoptions} oder \DescRef{\LabelBase.cmd.KOMAoption}
vorgenommen werden.%
\EndIndexGroup
\begin{Declaration}
\Macro{KOMAoptions}\Parameter{Optionenliste}\\
\Macro{KOMAoption}\Parameter{Option}\Parameter{Werteliste}
\end{Declaration}
\KOMAScript{}\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and
\Class{scrartcl}\and \Package{typearea}} bietet bei den meisten
\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{Klassen- und }Paketoptionen
auch die Möglichkeit, den Wert der Optionen noch nach dem Laden
\IfThisCommonLabelBaseOneOf{scrextend,scrjura}{}{der Klasse beziehungsweise
}des Pakets zu ändern. Mit der Anweisung \Macro{KOMAoptions} kann man wie bei
\DescRef{\ThisCommonLabelBase.cmd.documentclass} oder
\DescRef{\ThisCommonLabelBase.cmd.usepackage} die Werte einer Reihe von
Optionen ändern. Jede Option der \PName{Optionenliste} hat dabei die Form
\PName{Option}\texttt{=}\PName{Wert}%
\important{\PName{Option}\texttt{=}\PName{Wert},\dots}.
Einige Optionen besitzen auch einen Säumniswert (engl. \emph{default
value}). Versäumt man die Angabe eines Wertes, verwendet man die Option also
einfach in der Form \PName{Option}, so wird automatisch dieser Säumniswert
angenommen.
Manche Optionen können gleichzeitig mehrere Werte besitzen. Für solche
Optionen besteht die Möglichkeit, mit \Macro{KOMAoption} der einen
\PName{Option} nacheinander eine Reihe von Werten zuzuweisen. Die einzelnen
Werte sind dabei in der
\PName{Werteliste}\important{\PName{Wert},\dots} durch Komma
voneinander getrennt.
Soll\textnote{Achtung!} ein \PName{Wert} ein Gleichheitszeichen oder ein Komma
enthalten, so ist der \PName{Wert} in geschweifte Klammern zu setzen.
\begin{Explain}
\KOMAScript{} bedient sich für die Realisierung dieser Möglichkeit der
Anweisungen \DescRef{scrbase.cmd.FamilyOptions} und
\DescRef{scrbase.cmd.FamilyOption} mit der Familie »\PValue{KOMA}«.
\IfThisCommonLabelBaseOneOf{typearea}{% Umbruchkorrektur
Näheres zu diesen Anweisungen finden fortgeschrittene Anwender in
\autoref{sec:scrbase.keyvalue} ab \DescPageRef{scrbase.cmd.FamilyOptions}.
}{%
Siehe dazu \autoref{part:forExperts}, \autoref{sec:scrbase.keyvalue},
ab \DescPageRef{scrbase.cmd.FamilyOptions}.
}%
\end{Explain}
Mit \Macro{KOMAoptions} oder \Macro{KOMAoption} gesetzte Optionen erreichen
\IfThisCommonLabelBase{scrextend}{}{sowohl die \KOMAScript-Klasse als }auch
alle bereits geladenen \KOMAScript-Pakete, die diese Optionen kennen. Ist eine
Option oder ein Wert insgesamt unbekannt, so wird die Option einschließlich
des Wertes von
\hyperref[cha:scrbase]{\Package{scrbase}}\IndexPackage{scrbase}%
\important{\hyperref[cha:scrbase]{\Package{scrbase}}} als fehlerhaft
gemeldet.%
%
\iffalse% Umbruchkorrekturtext
\iffree{}{\IfThisCommonLabelBase{scrlayer-scrpage}{\par
Das als veraltet zu betrachtende Paket
\Package{scrpage2}\IndexPackage{scrpage2}\important{\Package{scrpage2}}
besitzt diese Erweiterung übrigens nicht. Optionen können daher nur über
die zuvor erklärte Möglichkeit während des Ladens des Pakets gesetzt
werden.}{}}%
\fi%
\EndIndexGroup
%
\EndIndexGroup
\phantomsection
\label{sec:\ThisCommonLabelBase.options.end}
\endinput
%%% Local Variables:
%%% mode: latex
%%% coding: utf-8
%%% TeX-master: "../guide"
%%% End: