diff options
author | Karl Berry <karl@freefriends.org> | 2009-01-27 02:00:27 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-01-27 02:00:27 +0000 |
commit | 990207a7872817b3d9945d710a389a0d76fe0260 (patch) | |
tree | 5cfe1dd7e1b3a5f32a086b2a4626260a46301c1e /Master/texmf-dist/source/latex/koma-script/doc/english | |
parent | 859083925d4a5369db7c4336785eab6ce24a155e (diff) |
koma-script update (26jan09)
git-svn-id: svn://tug.org/texlive/trunk@11990 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/english')
3 files changed, 4262 insertions, 873 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/common.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/common.tex new file mode 100644 index 00000000000..b9ae19be511 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/common.tex @@ -0,0 +1,3025 @@ +% ====================================================================== +% common.tex +% Copyright (c) Markus Kohm, 2001-2009 +% +% 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.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b 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.tex +% Copyright (c) Markus Kohm, 2001-2009 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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 +% +% ====================================================================== + +\ProvidesFile{common.tex}[2009/01/04 KOMA-Script guide (common paragraphs)] +\translator{Gernot Hassenpflug} + +\makeatletter +\@ifundefined{ifCommonmaincls}{\newif\ifCommonmaincls}{}% +\@ifundefined{ifCommonscrextend}{\newif\ifCommonscrextend}{}% +\@ifundefined{ifCommonscrlttr}{\newif\ifCommonscrlttr}{}% +\@ifundefined{ifIgnoreThis}{\newif\ifIgnoreThis}{}% +\makeatother + +\ifcase \value{commonpar} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<0>> + +\section{Early or late Selection of Options} +\label{sec:\csname label@base\endcsname.options} +\ifshortversion\IgnoreThisfalse\IfNotCommon{typearea}{\IgnoreThistrue}\fi +\ifIgnoreThis +All of what is described in \autoref{sec:typearea.options} is generally applicable. +\else + +\BeginIndex{}{options}% + +In this section a peculiarity of {\KOMAScript} is presented, which +apart from % +\IfCommon{typearea}{the \Package{typearea} package is also relevant to other {\KOMAScript} packages and classes}% +\IfCommon{maincls}{the classes \Class{scrbook}, \Class{scrreprt} and + \Class{scrartcl} is also relevant to other {\KOMAScript} classes and packages}% +\IfCommon{scrlttr2}{the class \Class{scrlttr2} is also relevant to other + {\KOMAScript} classes and packages}% +\IfCommon{scrextend}{the classes and the \Package{scrextend} package is also relevant to several other + {\KOMAScript} packages}% +. Such that the user can find all information corresponding to a +single package or a single class in the relevant chapter, this section +is found almost identically in several chapters. Users who are not +only interested in a particular package or class, but wish to gain an +overview of {\KOMAScript} as a whole, may read the section in one +chapter and may thereafter skip it wherever coming across it in the +document. + +\begin{Declaration} + \Macro{documentclass}\OParameter{option list}% + \Parameter{{\KOMAScript} class}\\ + \Macro{usepackage}\OParameter{option list}% + \Parameter{package list} +\end{Declaration} +\BeginIndex{Cmd}{documentclass}% +\BeginIndex{Cmd}{usepackage}% +In \LaTeX{} provision is made for the user to pass class options as a +comma-separated list of keywords as optional arguments to +\Macro{documentclass}. angeben. Apart from being passed to the class, +these options are also passed on to all packages which can understand +the options. Provision is also made for the use to pass optional +arguments as a comma-separated list of keywords as optional arguments +to \Macro{usepackage}. {\KOMAScript} +expands\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Package{scrextend}\and \Package{typearea}} the +option mechanism for die {\KOMAScript} classes und various packages to +use further possibilities. Thus, most {\KOMAScript} options can also +take a value. An option may have not only the form \PName{Option}, but +may also have the form \PName{option}\texttt{=}\PName{value}. Apart +from this difference \Macro{documentclass} and \Macro{usepackage} +function the same in {\KOMAScript} as described in +\cite{latex:usrguide} oder any introduction to \LaTeX, for example +\cite{l2short}.% +% +\IfNotCommon{scrextend}{\par% + When using a {\KOMAScript} class no options should be passed on +% Die Alternativen an dieser Stelle dienen der Verbesserung des Umbruchs + \IfCommon{typearea}{unnecessary, explicit }% + loading of the \Package{typearea} or \Package{scrbase} packages. The + reason for this is that the class already loads these packages + without options and \LaTeX{} refuses multiple loading of a package + with different option settings.% + \IfCommon{maincls}{\ Actually, it is no longer necessary when using + any {\KOMAScript} class to explicity load either one of these + packages.}% + \IfCommon{scrlttr2}{\ Actually, it is no longer necessary when using + any {\KOMAScript} class to explicity load either one of these + packages.}}% +% +\EndIndex{Cmd}{usepackage}% +\EndIndex{Cmd}{documentclass}% + + +\BeginIndex{Cmd}{KOMAoptions}% +\BeginIndex{Cmd}{KOMAoption}% +\begin{Declaration} + \Macro{KOMAoptions}\Parameter{option list}\\ + \Macro{KOMAoption}\Parameter{option}\Parameter{value list} +\end{Declaration} +\KOMAScript{}\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Package{scrextend}\and + \Package{typearea}} offers most class and package options the +opportunity to change the value of options even after loading of the +class or package. One may than change the values of a list of options +at will with the \Macro{KOMAoptions} command. Each option in the +\PName{option list} has the form +\PName{option}\texttt{=}\PName{value}. + +Some options also have a default value. If one does not give a value, +i.\,e., gives the option simply in the form \PName{option}, then the +default value will be used. + +Some options can % +\IfCommon{maincls}{also }% Umbruchkorrektur +\IfCommon{scrlttr2}{also }% Umbruchkorrektur +assume several values simultaneously. For such options there exists +the possibility, with the help of \Macro{KOMAoption}, to pass a single +\PName{option} a list of values. The individual values are given as a +comma-separated \PName{value list}. + +\begin{Explain} + If in the \PName{option list} one sets an option to a disallowed + value, or the \PName{value list} contains an invalid value, then an + error is produced. If \LaTeX{} is run in an interactive mode, then + it stops at this point. Entering ``\texttt{h}'' displays a help + screen, in which also the valid values for the corresponding option + are given. + + If a \PName{value} includes an equal sign or a comma, then the + \PName{value} must be enclosed in curly brackets. + + To implement this possibility {\KOMAScript} uses the commands + \Macro{FamilyOptions} and \Macro{FamilyOption} with the family + ``\PValue{KOMA}''. More information on these commands % + \IfCommon{maincls}{for experts }% + \IfCommon{scrlttr2}{for experts }% + is found in \autoref{sec:scrbase.keyvalue}, + \autopageref{desc:scrbase.cmd.FamilyOptions}. +\end{Explain} +% +\EndIndex{Cmd}{KOMAoption}% +\EndIndex{Cmd}{KOMAoptions}% +% +\EndIndex{}{options}% + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<1>> + +\section{Kompatibilität zu früheren Versionen von \KOMAScript} +\label{sec:\csname label@base\endcsname.compatibilityOptions} +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.compatibilityOptions} +geschrieben wurde. \IfCommon{scrlttr2}{Allerdings existiert diese Möglichkeit + bei \Class{scrlttr2} bereits seit Version~2.9t}. +\else +\BeginIndex{}{Kompatibilität} + +\IfCommon{maincls}{Wer seine Dokumente im Quellcode archiviert, legt in der + Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer + wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber + so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im + Verhalten, inbesondere beim Umbruch, führen.}% +\IfCommon{scrextend}{Wer seine Dokumente im Quellcode archiviert, legt in der + Regel allergrößten Wert darauf, dass bei zukünftigen \LaTeX{}-Läufen immer + wieder exakt dasselbe Ergebnis erzielt wird. In einigen Fällen ist es aber + so, dass Verbesserungen und Korrekturen an der Klasse zu Änderungen im + Verhalten, inbesondere beim Umbruch, führen.}% +\IfCommon{scrlttr2}{In einigen Fällen ist es so, dass Verbesserungen und + Korrekturen an der Klasse zu Änderungen im Verhalten, inbesondere beim + Umbruch, führen. Dies ist jedoch nicht immer erwünscht.}% + + +\begin{Declaration} + \KOption{version}\PName{Wert}\\ + \OptionValue{version}{first}\\ + \OptionValue{version}{last} +\end{Declaration} +\BeginIndex{Option}{version}% +\BeginIndex{Option}{version~=\PName{Wert}}% +\BeginIndex{Option}{version~=last}% +\BeginIndex{Option}{version~=first}% +\IfCommon{maincls}{\ChangedAt{v2.96a}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}}Seit Version~2.96a besteht bei \KOMAScript\ }% +\IfCommon{scrlttr2}{\ChangedAt{v2.9t}{Seit \Class{scrlttr2}} Version~2.9t + besteht bei \Class{scrlttr2} }% +\IfCommon{scrextend}{Bei \Package{scrextend} besteht }% +die Wahl, ob eine Quelldatei soweit irgend möglich auch zukünftig bei einem +\LaTeX{}-Lauf zu exakt demselben Ergebnis führen soll oder ob jeweils +entsprechend der Anpassungen der neusten Version der Klasse zu setzen ist. Zu +welcher Version Kompatibilität herzustellen ist, wird dabei über die Option +\Option{version} festgelegt. Voreingestellt ist Version~2.9t. Dasselbe +Ergebnis kann mit +% Umbruchkorrektur: Unterlängenproblem in listings! +\begin{lstcode}[belowskip=\dp\strutbox] + version=first +\end{lstcode} +oder +\begin{lstcode}[belowskip=\dp\strutbox] + version=2.9 +\end{lstcode} +oder +\begin{lstcode}[belowskip=\dp\strutbox] + version=2.9t +\end{lstcode} +erreicht werden. Bei Angabe einer unbekannten Version als \PName{Wert} wird +eine Warnung ausgegeben und sicherheitshalber \Option{version=}\PValue{first} +angenommen. Mit +\begin{lstcode}[belowskip=\dp\strutbox] + version=last +\end{lstcode} +kann die jeweils neuste Version ausgewählt werden. In diesem Fall wird also +auf zukünftige Kompatibilität verzichtet. Wird die Option ohne Wertangabe +verwendet, so wird ebenfalls \PValue{last} angenommen. + +Die Frage der Kompatibilität betrifft in erster Linie Fragen des Umbruchs. Neue +Möglichkeiten, die sich nicht auf den Umbruch auswirken, sind auch dann +verfügbar, wenn man per Option die Kompatibilität zu einer älteren Version +ausgewählt hat. Die Option hat keine Auswirkungen auf Umbruchänderungen, die +bei Verwendung einer neueren Version durch Beseitigung eindeutiger Fehler +entstehen. Wer auch im Fehlerfall unbedingte Umbruchkompatibilität benötigt, +sollte stattdessen mit dem Dokument auch die verwendete \KOMAScript-Version +archivieren. + +\IfCommon{scrlttr2}{\begin{Example} + Die Beispielbriefe dieses Kapitels sollen alle Möglichkeiten nutzen, die in + der neusten Version von \KOMAScript{} zur Verfügung stehen. Dazu muss beim + Laden der Klasse die Kompatibilität entsprechend gesetzt werden:% + \lstinputcode[xleftmargin=1em,lastline=1]{letter-0.tex}% + \iftrue% Umbruchkorrektur + Hier wurde einfach mit dem symbolischen Wert \PValue{last} die neuste + Version gewählt.% + \else% + Um nicht bei jeder neuen Version eine neue Versionsnummer angeben zu + müssen, wurde hier die Möglichkeit des symbolischen Wertes \PValue{last} + gewählt.% + \fi +\end{Example}} + +Es ist zu beachten, dass die Option \Option{version} nach dem Laden % +\IfCommon{maincls}{der Klasse }% +\IfCommon{scrlttr2}{der Klasse }% +\IfCommon{scrextend}{des Pakets \Package{scrextend} }% +nicht mehr verändert werden kann.% +% +\EndIndex{Option}{version~=\PName{Wert}}% +\EndIndex{Option}{version~=first}% +\EndIndex{Option}{version~=last}% +\EndIndex{Option}{version}% +% +\EndIndex{}{Kompatibilität} + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<2>> + +\section{Entwurfsmodus} +\label{sec:\csname label@base\endcsname.draft}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.draft} geschrieben wurde. +\else +\BeginIndex{}{Entwurf}% + +Viele Klassen und viele Pakete kennen neben dem normalen Satzmodus auch einen +Entwurfsmodus. Die Unterschiede zwischen diesen beiden sind so vielfältig wie +die Klassen und Pakete, die diese Unterscheidung anbieten. + +\begin{Declaration} + \KOption{draft}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{draft~=\PName{Ein-Aus-Wert}}% +Mit dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} wird zwischen Dokumenten im +Entwurfsstadium und fertigen Dokumenten\Index{Endfassung} unterschieden. Als +\PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache Schalter aus +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} verwendet +werden. Bei Aktivierung der Option werden im Falle überlanger Zeilen am +Zeilenende kleine, schwarze Kästchen ausgegeben. Diese Kästchen erleichtern +dem ungeübten Auge, Absätze ausfindig zu machen, die manueller Nachbearbeitung +bedürfen. Demgegenüber erscheinen in der Standardeinstellung +\OptionValue{draft}{false} keine solchen Kästchen.% +% +\EndIndex{Option}{draft~=\PName{Ein-Aus-Wert}}% +% +\EndIndex{}{Entwurf} + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<3>> + +\section{Seitenauf"|teilung} +\label{sec:\csname label@base\endcsname.typearea} +\BeginIndex{}{Seitenaufteilung=Seitenauf~"~|teilung} + +Eine Dokumentseite besteht aus unterschiedlichen Teilen, wie den Rändern, dem +Kopf, dem Fuß, dem Textbereich, einer Marginalienspalte und den Abständen +zwischen diesen Elementen. \KOMAScript{} unterscheidet dabei auch noch +zwischen der Gesamtseite oder dem Papier und der sichtbaren Seite. Ohne +Zweifel gehört die Auf"|teilung der Seite in diese unterschiedlichen Teile zu +den Grundfähigkeiten einer Klasse. Bei \KOMAScript{} wird diese Arbeit an das +Paket \Package{typearea} delegiert. Dieses Paket kann auch zusammen mit +anderen Klassen verwendet werden. Die \KOMAScript-Klassen laden +\Package{typearea} jedoch selbständig. Es ist daher weder notwendig noch +sinnvoll, das Paket bei Verwendung einer \KOMAScript-Klasse auch noch explizit +per \Macro{usepackage} zu laden. Siehe hierzu auch +\autoref{sec:\csname label@base\endcsname.options}. + +Einige Einstellungen der \KOMAScript{}-Klassen haben auch Auswirkungen auf die +Seitenauf"|teilung und umgekehrt. Diese Auswirkungen werden bei den +entsprechenden Einstellungen dokumentiert. + +Für die weitere Erklärung zur Wahl des Papierformats, der Auf"|teilung der Seite +in Ränder und Satzspiegel und die Wahl von ein- oder zweispaltigem Satz sei +auf die Anleitung des Pakets \Package{typearea} verwiesen. Diese ist in +\autoref{cha:typearea} ab \autopageref{cha:typearea} zu finden. + + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<4>> + +\label{sec:\csname label@base\endcsname.fontOptions} +\ifshortversion\IgnoreThisfalse\IfCommon{scrextend}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.fontOptions} geschrieben +wurde. +\else +\BeginIndex{}{Schrift>Groesse=Größe} + +Die Grundschrift und deren Größe sind zentrale Elemente der Gestaltung eines +Dokuments. Wie in \autoref{cha:typearea} ausgeführt wurde, hängt die +Auf"|teilung zwischen Satzspiegel und Rändern wesentlich davon ab. Die +Grundschrift ist dabei die Schrift, die für die Masse des Textes eines +Dokuments verwendet wird. Alle davon abweichenden Einstellungen, sei es in der +Form, der Dicke, der Neigung oder der Größe, stehen in einer Beziehung zur +Grundschrift. + + +\begin{Declaration} + \KOption{fontsize}\PName{Größe} +\end{Declaration} +\BeginIndex{Option}{fontsize~=\PName{Größe}}% +Während von den Standardklassen und den meisten anderen Klassen nur eine sehr +beschränkte Anzahl an Schriftgrößen unterstützt wird, bietet \KOMAScript{} die +Möglichkeit, jede beliebige \PName{Größe} für die Grundschrift +anzugeben. Dabei kann als Einheit für die \PName{Größe} auch jede bekannte +\TeX-Einheit verwendet werden. Wird die \PName{Größe} ohne Einheit angegeben, +so wird \PValue{pt} als Einheit angenommen. \iffree{}{Das genaue Verfahren, + nach dem die Schriftgröße dann eingestellt wird, ist für Experten und + interessierte Anwender in \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.option.fontsize} dokumentiert.} + +Wird die Option innerhalb des Dokuments gesetzt, so werden ab diesem Punkt die +Grundschriftgröße und alle davon abhängigen Größen geändert. Das kann +beispielsweise dann nützlich sein, wenn % +\IfCommon{maincls}{der Anhang }% +\IfCommon{scrlttr2}{ein weiterer Brief }% +\IfCommon{scrextend}{der Anhang }% +insgesamt in einer kleineren Schriftgröße gesetzt werden soll. Es wird darauf +hingewiesen, dass bei Verwendung nach dem Laden der Klasse die Auf"|teilung +zwischen Satzspiegel und Rändern nicht automatisch neu berechnet wird (siehe +\Macro{recalctypearea}\IndexCmd{recalctypearea}, +\autoref{sec:typearea.options}, +\autopageref{desc:typearea.cmd.recalctypearea}). Wird diese Neuberechnung +jedoch vorgenommen, so erfolgt sie auf Basis der jeweils gültigen +Grundschriftgröße. Die Auswirkungen des Wechsels der Grundschriftgröße auf +zusätzlich geladene Pakete % +\IfCommon{scrextend}{oder die verwendete Klasse }% +sind von diesen Paketen % +\IfCommon{scrextend}{und der Klasse }% +abhängig. % +\IfCommon{maincls}{Es können also Fehler auf"|treten, die nicht als Fehler von + \KOMAScript{} angesehen werden.}% +\IfCommon{scrlttr2}{Dabei sind Fehler möglich, die nicht als Fehler von + \KOMAScript{} betrachtet werden.}% +\IfCommon{scrextend}{Es können also Fehler auf"|treten, die nicht als Fehler von + \KOMAScript{} angesehen werden.}% + +Die Option sollte keinesfalls als Ersatz für \Macro{fontsize} (siehe +\cite{latex:fntguide}) missverstanden werden. Sie sollte auch nicht an Stelle +einer der von der Grundschrift abhängigen Schriftgrößenanweisungen, +\Macro{tiny} bis \Macro{Huge}, verwendet werden!% +\IfCommon{scrlttr2}{\ Voreingestellt ist bei \Class{scrlttr2} + \OptionValue{fontsize}{12pt}.} + +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<5>> + +\section{Textauszeichnungen} +\label{sec:\csname label@base\endcsname.textmarkup}% +\ifshortversion\IgnoreThisfalse\IfCommon{scrlttr2}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.textmarkup} geschrieben +wurde. Dabei sind Namen und Bedeutung der einzelnen Elemente in +\else +\BeginIndex{}{Text>Auszeichnung}% +\BeginIndex{}{Schriftart}% + +\LaTeX{} verfügt über eine ganze Reihe von Anweisungen zur +Textauszeichnung. Neben der Wahl der Schriftart gehören dazu auch Befehle zur +Wahl einer Textgröße oder der Textausrichtung. Näheres zu den normalerweise +definierten Möglichkeiten ist \cite{l2kurz}, \cite{latex:usrguide} und +\cite{latex:fntguide} zu entnehmen. + + +\begin{Declaration} + \Macro{textsuperscript}\Parameter{Text}\\ + \Macro{textsubscript}\Parameter{Text} +\end{Declaration} +\BeginIndex{Cmd}{textsubscript}% +\BeginIndex{Cmd}{textsuperscript}% +Im \LaTeX-Kern ist bereits die Anweisung +\Macro{textsuperscript}\IndexCmd{textsuperscript} definiert, mit der +\PName{Text} höher gestellt werden kann. Leider bietet \LaTeX{} selbst keine +entsprechende Anweisung, um Text tief\Index{Tiefstellung} statt +hoch\Index{Hochstellung} zu stellen. \KOMAScript{} definiert dafür +\Macro{textsubscript}. % +\IfCommon{scrlttr2}{Ein Anwendungsbeispiel finden Sie in + \autoref{sec:maincls.textmarkup}, + \autopageref{desc:maincls.textsubscript.example}.} +\IfCommon{scrextend}{Ein Anwendungsbeispiel finden Sie in + \autoref{sec:maincls.textmarkup}, + \autopageref{desc:maincls.textsubscript.example}.} +% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.textsubscript.example}% + Sie schreiben einen Text über den menschlichen Stoffwechsel. Darin kommen + hin und wieder einfache chemische Summenformeln vor. Dabei sind einzelne + Ziffern tief zu stellen. Im Sinne des logischen Markups definieren Sie + zunächst in der Dokumentpräambel oder einem eigenen Paket: + \begin{lstcode} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}} + \end{lstcode} + \newcommand*{\Molek}[2]{#1\textsubscript{#2}}% + Damit schreiben Sie dann: + \begin{lstcode} + Die Zelle bezieht ihre Energie unter anderem aus der + Reaktion von \Molek C6\Molek H{12}\Molek O6 und + \Molek O2 zu \Molek H2\Molek O{} und + \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{lstcode} + Das Ergebnis sieht daraufhin so aus: + \begin{ShowOutput} + Die Zelle bezieht ihre Energie unter anderem aus der Reaktion von + \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek + O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{ShowOutput} + Etwas später entscheiden Sie, dass Summenformeln grundsätzlich serifenlos + geschrieben werden sollen. Nun zeigt sich, wie gut die Entscheidung für + konsequentes logisches Markup war. Sie müssen nur die + \Macro{Molek}-Anweisung umdefinieren: + \begin{lstcode} + \newcommand*{\Molek}[2]{% + \textsf{#1\textsubscript{#2}}% + } + \end{lstcode} + \renewcommand*{\Molek}[2]{\textsf{#1\textsubscript{#2}}}% + Schon ändert sich die Ausgabe im gesamten Dokument: + \begin{ShowOutput} + Die Zelle bezieht ihr Energie unter anderem aus der Reaktion von + \Molek C6\Molek H{12}\Molek O6 und \Molek O2 zu \Molek H2\Molek + O{} und \Molek C{}\Molek O2. Arsen (\Molek{As}{}) wirkt sich + allerdings auf den Stoffwechsel sehr nachteilig aus. + \end{ShowOutput} +\end{Example} +\iffalse % vielleicht in einer späteren Auf-lage +Für Experten ist in \autoref{sec:experts.knowhow}, +\autopageref{desc:experts.macroargs} dokumentiert, warum das Beispiel +funktioniert, obwohl teilweise die Argumente von \Macro{Molek} nicht in +geschweifte Klammern gesetzt wurden.% +\fi +\fi% \ifCommonmaincls +% +\EndIndex{Cmd}{textsuperscript}% +\EndIndex{Cmd}{textsubscript}% + + +\begin{Declaration} + \Macro{setkomafont}\Parameter{Element}\Parameter{Befehle}\\ + \Macro{addtokomafont}\Parameter{Element}\Parameter{Befehle}\\ + \Macro{usekomafont}\Parameter{Element} +\end{Declaration}% +\BeginIndex{Cmd}{setkomafont}% +\BeginIndex{Cmd}{addtokomafont}% +\BeginIndex{Cmd}{usekomafont}% +Mit\ChangedAt{v2.8p}{% + \Class{scrbook}\and \Class{scrreprt}\and \Class{scrartcl}} Hilfe der beiden +Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} ist es möglich, die +\PName{Befehle} festzulegen, mit denen die Schrift eines bestimmten +\PName{Element}s umgeschaltet wird. Theoretisch könnten als \PName{Befehle} +alle möglichen Anweisungen einschließlich Textausgaben verwendet werden. Sie +sollten sich jedoch unbedingt auf solche Anweisungen beschränken, mit denen +wirklich nur ein Schriftattribut umgeschaltet wird. In der Regel werden dies +die Befehle \Macro{normalfont}, \Macro{rmfamily}, \Macro{sffamily}, +\Macro{ttfamily}, \Macro{mdseries}, \Macro{bfseries}, \Macro{upshape}, +\Macro{itshape}, \Macro{slshape}, \Macro{scshape} sowie die Größenbefehle +\Macro{Huge}, \Macro{huge}, \Macro{LARGE}, \Macro{Large}, \Macro{large}, +\Macro{normalsize}, \Macro{small}, \Macro{footnotesize} und \Macro{tiny} +sein. Die Erklärung zu diesen Befehlen entnehmen Sie bitte \cite{l2kurz}, +\cite{latex:usrguide} oder \cite{latex:fntguide}. Auch Farbumschaltungen wie +\Macro{normalcolor} sind möglich (siehe \cite{package:graphics} und +\cite{package:xcolor}). +\iffalse % Umbruchkorrekturtext +Das Verhalten bei Verwendung anderer Anweisungen, +inbesondere solcher, die zu Umdefinierungen führen oder Ausgaben tätigen, ist +nicht definiert. Seltsames Verhalten ist möglich und stellt keinen Fehler dar. +\else +Die Verwendung anderer Anweisungen, inbesondere +solcher, die Umdefinierungen vornehmen oder zu Ausgaben führen, ist nicht +vorgesehen. Seltsames Verhalten ist in diesen Fällen möglich und stellt +keinen Fehler dar. +\fi + +Mit \Macro{setkomafont} wird die Schriftumschaltung eines Elements mit einer +völlig neuen Definition versehen. Demgegenüber wird mit \Macro{addtokomafont} +die existierende Definition lediglich erweitert. Es wird empfohlen, beide +Anweisungen nicht innerhalb des Dokuments, sondern nur in der Dokumentpräambel +zu verwenden. Beispiele für die Verwendung entnehmen Sie bitte den Abschnitten +zu den jeweiligen Elementen. Namen und Bedeutung der einzelnen Elemente sind +in % +\fi % IgnoreThis +\IfNotCommon{scrextend}{\autoref{tab:\csname + label@base\endcsname.elementsWithoutText} }% +\IfCommon{scrextend}{\autoref{tab:maincls.elementsWithoutText}, + \autopageref{tab:maincls.elementsWithoutText} }% +aufgelistet. % +\IfCommon{scrextend}{Allerdings werden davon in \Package{scrextend} nur die + Elemente für den Dokumenttitel, den schlauen Spruch und die Fußnoten + behandelt. Das Element \FontElement{disposition} ist zwar auch verfügbar, + wird jedoch von \Package{scrextend} ebenfalls nur für den Dokumenttitel + verwendet. }% +Die Voreinstellungen sind den jeweiligen Abschnitten zu entnehmen. + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<6>> + +\section{Absatzauszeichnung} +\label{sec:\csname label@base\endcsname.parmarkup}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis\else +\BeginIndex{}{Absatz>Auszeichnung}% + +\IfCommon{maincls}{% + Die Standardklassen setzen Absätze\Index[indexmain]{Absatz} normalerweise + mit Absatzeinzug und ohne Absatzabstand. Bei Verwendung eines normalen + Satzspiegels, wie ihn \Package{typearea} bietet, ist dies die + vorteilhafteste Absatzauszeichnung. Würde man ohne Einzug und Abstand + arbeiten, hätte der Leser als Anhaltspunkt nur die Länge der letzten Zeile. + Im Extremfall kann es sehr schwer sein, zu erkennen, ob eine Zeile voll ist + oder nicht. Des Weiteren stellt der Typograf fest, dass die Auszeichnung des + Absatzendes am Anfang der nächsten Zeile leicht vergessen ist. Demgegenüber + ist eine Auszeichnung am Absatzanfang einprägsamer. Der Absatzabstand hat + den Nachteil, dass er in verschiedenem Zusammenhang leicht verloren geht. So + wäre nach einer abgesetzten Formel nicht mehr festzustellen, ob der Absatz + fortgesetzt wird oder ein neuer beginnt. Auch am Seitenanfang müsste + zurückgeblättert werden, um feststellen zu können, ob mit der Seite auch ein + neuer Absatz beginnt. All diese Probleme sind beim Absatzeinzug nicht + gegeben. Eine Kombination von Absatzeinzug und Absatzabstand ist wegen der + übertriebenen Redundanz abzulehnen. Der Einzug\Index[indexmain]{Einzug} + alleine ist deutlich genug. Der einzige Nachteil des Absatzeinzugs liegt in + der Verkürzung der Zeile. Damit gewinnt der + Absatzabstand\Index{Absatz>Abstand} bei ohnehin kurzen Zeilen, etwa im + Zeitungssatz, seine Berechtigung.}% +\fi% IgnoreThis +\IfCommon{scrlttr2}{% + In der Einleitung zu \autoref{sec:maincls.parmarkup} ab + \autopageref{sec:maincls.parmarkup} wird dargelegt, warum der Absatzeinzug + gegenüber dem Absatzabstand vorzuziehen ist. Die Elemente, auf die sich + diese Argumente beziehen, beispielsweise Abbildungen, Tabellen, Listen, + abgesetzte Formeln und auch neue Seiten, sind in Standardbriefen eher + selten. Auch sind Briefe normalerweise nicht so umfänglich, dass ein nicht + erkannter Absatz sich schwerwiegend auf die Lesbarkeit auswirkt. Die + Argumente sind daher bei Standardbriefen eher schwach. Dies dürfte ein Grund + dafür sein, dass der Absatzabstand bei Briefen eher gebräuchlich ist. Es + bleiben damit für Standardbriefe im Wesentlichen zwei Vorteile des + Absatzeinzugs. Zum einen hebt sich ein solcher Brief aus der Masse hervor + und zum anderen durchbricht man damit nicht nur für Briefe das einheitliche + Erscheinungsbild aller Dokumente aus einer Quelle, die so genannte + \emph{Corporate Identity}.}% +\ifIgnoreThis% +\IfCommon{scrlttr2}{\ Von dieser Unterscheidung gegenüber den anderen + \KOMAScript-Klassen abgesehen gilt, was in \autoref{sec:maincls.parmarkup} + geschrieben wurde.} +\else + +\begin{Declaration} + \KOption{parskip}\PName{Abstandsart} +\end{Declaration} +\BeginIndex{Option}{parskip~=\PName{Methode}}% +\IfCommon{maincls}{% + Hin und wieder wird ein Layout mit Absatzabstand an Stelle des + voreingestellten Absatzeinzugs gefordert. Die \KOMAScript-Klassen bietet mit + der Option \Option{parskip}\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} }% +\IfCommon{scrlttr2}{Bei Briefen findet man häufiger ein Layout mit + Absatzabstand an Stelle des voreingestellten Absatzeinzugs. Die + \KOMAScript-Klasse \Class{scrlttr2} bietet mit der Option \Option{parskip} +}% +eine Reihe von Möglichkeiten, um dies +zu erreichen. Die \PName{Methode} setzt sich dabei aus zwei Teilen +zusammen. Der erste Teil ist entweder \PValue{full} oder \PValue{half}, wobei +\PValue{full} für einen Absatzabstand von einer Zeile und \PValue{half} für +einen Absatzabstand von einer halben Zeile steht. Der zweite Teil ist eines +%der Zeichen »\PValue{*}«, »\PValue{+}«, »\PValue{-}« und kann auch +entfallen. Lässt man das Zeichen weg, so wird in der letzten Zeile des +Absatzes am Ende mindestens ein Geviert, das ist 1\Unit{em}, frei gelassen. +Mit dem Pluszeichen wird am Zeilenende mindestens ein Drittel und mit dem +Stern mindestens ein Viertel einer normalen Zeile frei gelassen. Mit der +Minus-Variante werden keine Vorkehrungen für die letzte Zeile eines Absatzes +getroffen. + +Neben den sich so ergebenden acht Kombinationen ist es noch möglich, als +\PName{Methode} die Werte für einfache Schalter aus +\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} zu +verwenden. Das Einschalten der Option entspricht dabei \PValue{full} ohne +angehängtes Zeichen für den Freiraum der letzten Absatzzeile, also mit +mindestens einem Geviert Freiraum am Ende des Absatzes. Das Ausschalten der +Option schaltet hingegen wieder auf Absatzeinzug von einem Geviert um. Dabei +darf die letzte Zeile eines Absatzes auch bis zum rechten Rand reichen. Einen +Überblick über alle möglichen Werte für \PName{Methode} bietet +\autoref{tab:maincls.parskip}% +\IfCommon{scrlttr2}{auf \autopageref{tab:maincls.parskip}}% +. + +\IfCommon{maincls}{% +\begin{desctable} + \caption[{Mögliche Werte für Option \Option{parskip}}]{Mögliche Werte für + Option \Option{parskip} zur Auswahl der Kennzeichnung von + Absätzen\label{tab:maincls.parskip}}\\ + \Endfirsthead% + \caption[]{Mögliche Werte für Option \Option{parskip} + (\emph{Fortsetzung})}\\ + \Endhead% + \standardfoot% + \entry{\PValue{false}, \PValue{off}, \PValue{no}% + \IndexOption{parskip~=false}}{% + Absätze werden durch einen Einzug der ersten Zeilen von einem Geviert + (1\Unit{em}) gekennzeichnet. Der erste Absatz eines Abschnitts wird nicht + eingezogen.}% + \entry{\PValue{full}, \PValue{true}, \PValue{on}, \PValue{yes}% + \IndexOption{parskip~=full}% + }{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet, Absatzenden durch einen Leerraum von mind. ein + Geviert (1\Unit{em}) der Grundschrift am Ende der letzten Zeile.}% + \pventry{full-}{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden nicht + gekennzeichnet.\IndexOption{parskip~=full-}}% + \pventry{full+}{% + \looseness=-1 + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Viertel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=full+}}% + \pventry{full*}{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Drittel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=full*}}% + \pventry{half}{% + Absätze werden durch einen vertikalen Abstand von einer halben Zeile + gekennzeichnet. Absatzenden durch einen Leerraum von mind. ein Geviert + (1\Unit{em}) der normalen Schrift am Ende + gekennzeichnet.\IndexOption{parskip~=half}}% + \pventry{half-}{% + Absätze werden durch einen vertikalen Abstand von einer halben Zeile + gekennzeichnet. Absatzenden werden nicht + gekennzeichnet.\IndexOption{parskip~=half-}}% + \pventry{half+}{% + Absätze werden durch einen vertikalen Abstand von einer halben Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Viertel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=half+}}% + \pventry{half*}{% + Absätze werden durch einen vertikalen Abstand von einer Zeile + gekennzeichnet. Absatzenden werden durch einen Leerraum von mind. einem + Drittel einer normalen Zeile gekennzeichnet.\IndexOption{parskip~=half*}}% +\end{desctable}} + +Wird ein Absatzabstand verwendet, so verändert sich auch der Abstand vor, nach +und innerhalb von Listenumgebungen. Dadurch wird verhindert, dass diese +Umgebungen oder Absätze innerhalb dieser Umgebungen stärker vom Text abgesetzt +werden als die Absätze des normalen Textes voneinander.% +\IfCommon{maincls}{ Inhalts"~, Abbildungs"~ und Tabellenverzeichnis werden + immer ohne zusätzlichen Absatzabstand gesetzt.}% +\IfCommon{scrlttr2}{% Umbruchkorrekturtext + \iffalse% + \ Verschiedene Elemente des Briefbogens werden immer ohne Absatzabstand + gesetzt.% + \fi}% + +Voreingestellt ist bei \KOMAScript{} das Verhalten +\OptionValue{parskip}{false}. Hierbei gibt es keinen Absatzabstand, sondern +einen Absatzeinzug von 1\Unit{em}.% +% +\EndIndex{Option}{parskip~=\PName{Methode}}% +% +\EndIndex{}{Absatz>Auszeichnung} +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<7>> + +\section{Erkennung von rechten und linken Seiten} +\label{sec:\csname label@base\endcsname.oddOrEven}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis% +Es gilt sinngemäß, was in \autoref{sec:maincls.oddOrEven} geschrieben +wurde. +\else +\BeginIndex{}{Seite>gerade}% +\BeginIndex{}{Seite>ungerade}% + +Bei doppelseitigen Dokumenten wird zwischen linken und rechten Seiten +unterschieden. Dabei hat eine linke Seite immer eine gerade Nummer und eine +rechte Seite immer eine ungerade Nummer. % +\IfCommon{maincls}{Die Erkennung von rechten und linken Seiten ist damit + gleichbedeutend mit der Erkennung von Seiten mit gerader oder ungerader + Nummer. In \iffree{dieser Anleitung}{diesem Buch} ist vereinfachend von + ungeraden und geraden Seiten die Rede.% + +% Umbruchkorrekturtext + \iftrue% + Bei einseitigen Dokumenten existiert die Unterscheidung zwischen linken und + rechten Seiten nicht. Dennoch gibt es natürlich auch bei einseitigen + Dokumenten sowohl Seiten mit gerader als auch Seiten mit ungerader Nummer.% + \fi}% +\IfCommon{scrlttr2}{In der Regel werden Briefe einseitig +gesetzt. Sollen Briefe mit einseitigem Layout jedoch auf Vorder- und Rückseite +gedruckt, oder ausnahmsweise tatsächlich doppelseitige Briefe erstellt werden, +kann unter Umständen das Wissen, ob man sich auf einer Vorder- oder einer +Rückseite befindet, nützlich sein.}% + +\begin{Declaration} + \Macro{ifthispageodd}\Parameter{Dann-Teil}\Parameter{Sonst-Teil} +\end{Declaration}% +\BeginIndex{Cmd}{ifthispageodd}% +Will man bei \KOMAScript{} feststellen, ob ein Text auf einer geraden oder +einer ungeraden Seite ausgegeben wird, so verwendet man die Anweisung +\Macro{ifthispageodd}. Dabei wird das Argument \PName{Dann-Teil} nur dann +ausgeführt, wenn man sich gerade auf einer ungeraden Seite +befindet. Anderenfalls kommt das Argument \PName{Sonst-Teil} zur Anwendung. + +\begin{Example} + Angenommen, Sie wollen einfach nur ausgeben, ob ein Text auf einer geraden + oder ungeraden Seite ausgegeben wird. Sie könnten dann beispielsweise mit + der Eingabe + \begin{lstcode} + Dies ist eine Seite mit \ifthispageodd{un}{}gerader + Seitenzahl. + \end{lstcode} + die Ausgabe + \begin{quote} + Dies ist eine Seite mit \ifthispageodd{un}{}gerader Seitenzahl. + \end{quote} + erhalten. Beachten Sie, dass in diesem Beispiel das Argument + \PName{Sonst-Teil} leer geblieben ist. +\end{Example} + +Da die Anweisung \Macro{ifthispageodd} mit einem Mechanismus arbeitet, der +einem Label und einer Referenz darauf sehr ähnlich ist, werden nach jeder +Textänderung mindestens zwei \LaTeX-Durchläufe benötigt. Erst dann ist die +Entscheidung korrekt. Im ersten Durchlauf wird eine Heuristik für die +Entscheidung verwendet. + +Näheres zur Problematik der Erkennung von linken und rechten Seiten oder +geraden und ungeraden Seitennummern ist für Experten in +\autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.ifthispageodd} zu finden.% +% +\EndIndex{Cmd}{ifthispageodd}% +% +\EndIndex{}{Seite>ungerade}% +\EndIndex{}{Seite>gerade} +\fi % IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<8>> + +\section{Vakatseiten} +\label{sec:\csname label@base\endcsname.emptypage}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.emptypage} geschrieben +wurde. +\else +\BeginIndex{}{Vakatseite}%% +\BeginIndex{}{Seitenstil}% + +\IfNotCommon{scrlttr2}{Vakatseiten sind Seiten, die beim Satz eines Dokuments + absichtlich leer bleiben. Ursprünglich sind diese Seiten wirklich komplett + leer. Bei \LaTeX{} werden sie jedoch in der Voreinstellung mit dem aktuell + gültigen Seitenstil gesetzt. \KOMAScript{} bietet hier diverse + Erweiterungen. + + Vakatseiten findet man hauptsächlich in Büchern. Da es bei Büchern üblich + ist, dass Kapitel auf einer rechten Seite beginnen, muss in dem Fall, dass + das vorherigen Kapitel ebenfalls auf einer rechten Seite endet, eine leere + linke Seite eingefügt werden. Aus dieser Erklärung ergibt sich auch, dass + Vakatseiten normalerweise nur im doppelseitigen Satz existieren. Die leeren + Rückseiten im einseitigen Druck werden eher nicht als Vakatseiten + bezeichnet, obwohl sie auf Druckbögen im Ergebnis als solche erscheinen.}% +\fi +\ifIgnoreThis +\IfCommon{scrlttr2}{Aber} +\fi +\IfCommon{scrlttr2}{Vakatseiten sind bei Briefen eher unüblich. Das liegt + nicht zuletzt daran, dass wahrhaft doppelseitige Briefe recht selten sind, + da Briefe normalerweise nicht gebunden werden. Trotzdem unterstützt auch + \Class{scrlttr2} für den Fall von doppelseitigen Briefen Einstellungen für + Vakatseiten. Da die hier vorgestellten Anweisungen aber in Briefen kaum + Verwendung finden, finden Sie hier keine Beispiele. Bei Bedarf orientieren + Sie sich bitte an den Beispielen in \autoref{sec:maincls.emptypage} ab + \autopageref{sec:maincls.emptypage}.}% +\ifIgnoreThis\else + +\begin{Declaration} + \KOption{cleardoublepage}\PName{Seitenstil}\\ + \OptionValue{cleardoublepage}{current} +\end{Declaration}% +\BeginIndex{Option}{cleardoublepage~=\PName{Seitenstil}}% +\BeginIndex{Option}{cleardoublepage~=current}% +Mit Hilfe dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} kann man den +\PName{Seitenstil} der Vakatseite bestimmen, die gegebenenfalls von der +Anweisung \Macro{cleardoublepage} eingefügt wird, um bis zur gewünschten Seite +zu umbrechen. Als \PName{Seitenstil} sind alle bereits definierten Seitenstile +(siehe \autoref{sec:\csname label@base\endcsname.pagestyle} ab +\autopageref{sec:\csname label@base\endcsname.pagestyle} und +\autoref{cha:scrpage} ab \autopageref{cha:scrpage}) verwendbar. Daneben ist +auch \OptionValue{cleardoublepage}{current} möglich. Dieser Fall entspricht +der Voreinstellung von \KOMAScript{} bis Version~2.98c und führt dazu, dass +die Vakatseite mit dem Seitenstil erzeugt wird, der beim Einfügen gerade +aktuell ist. Ab Version~3.00\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} werden in der +Voreinstellung entsprechend der typografischen Gepflogenheiten Vakatseiten mit +dem Seitenstil \Pagestyle{empty} erzeugt, wenn man nicht Kompatibilität zu +früheren \KOMAScript-Versionen eingestellt hat (siehe Option \Option{version}, +\autoref{sec:\csname label@base\endcsname.compatibilityOptions}, +\autopageref{desc:\csname label@base\endcsname.option.version}). +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.option.cleardoublepage.example} + Angenommen Sie wollen, dass die Vakatseiten bis auf die Paginierung leer + sind, also mit Seitenstil \Pagestyle{plain} erzeugt werden. Dies erreichen + Sie beispielsweise mit + \begin{lstcode} + \KOMAoption{cleardoublepage=plain} + \end{lstcode} + Näheres zum Seitenstil \Pagestyle{plain} ist in + \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain} + zu finden. +\end{Example} +\fi +\ifCommonscrextend +\begin{Example} + \phantomsection\label{desc:scrextend.option.cleardoublepage.example} + Angenommen Sie wollen, dass die Vakatseiten bis auf die Paginierung leer + sind, also mit Seitenstil \Pagestyle{plain} erzeugt werden. Dies erreichen + Sie beispielsweise mit + \begin{lstcode} + \KOMAoption{cleardoublepage=plain} + \end{lstcode} + Näheres zum Seitenstil \Pagestyle{plain} ist in + \autoref{sec:maincls.pagestyle}, \autopageref{desc:maincls.pagestyle.plain} + zu finden. +\end{Example} +\fi +\EndIndex{Option}{cleardoublepage~=current}% +\EndIndex{Option}{cleardoublepage~=\PName{Seitenstil}} + + +\begin{Declaration} + \Macro{clearpage}\\ + \Macro{cleardoublepage}\\ + \Macro{cleardoublepageusingstyle}\Parameter{Seitenstil}\\ + \Macro{cleardoubleemptypage}\\ + \Macro{cleardoubleplainpage}\\ + \Macro{cleardoublestandardpage}\\ + \Macro{cleardoubleoddusingstyle}\Parameter{Seitenstil}\\ + \Macro{cleardoubleoddemptypage}\\ + \Macro{cleardoubleoddplainpage}\\ + \Macro{cleardoubleoddstandardpage}\\ + \Macro{cleardoubleevenusingstyle}\Parameter{Seitenstil}\\ + \Macro{cleardoubleevenemptypage}\\ + \Macro{cleardoubleevenplainpage}\\ + \Macro{cleardoubleevenstandardpage} +\end{Declaration}% +\BeginIndex{Cmd}{clearpage}% +\BeginIndex{Cmd}{cleardoublepage}% +\BeginIndex{Cmd}{cleardoublepageusingstyle}% +\BeginIndex{Cmd}{cleardoublestandardpage}% +\BeginIndex{Cmd}{cleardoubleplainpage}% +\BeginIndex{Cmd}{cleardoubleemptypage}% +\BeginIndex{Cmd}{cleardoubleoddusingstyle}% +\BeginIndex{Cmd}{cleardoubleoddstandardpage}% +\BeginIndex{Cmd}{cleardoubleoddplainpage}% +\BeginIndex{Cmd}{cleardoubleoddemptypage}% +\BeginIndex{Cmd}{cleardoubleevenusingstyle}% +\BeginIndex{Cmd}{cleardoubleevenstandardpage}% +\BeginIndex{Cmd}{cleardoubleevenplainpage}% +\BeginIndex{Cmd}{cleardoubleevenemptypage}% +Im \LaTeX-Kern existiert die Anweisung \Macro{clearpage}, die dafür sorgt, +dass alle noch nicht ausgegebenen Gleitumgebungen ausgegeben werden und +anschließend eine neue Seite begonnen wird. Außerdem existiert die Anweisung +\Macro{cleardoublepage}, die wie \Macro{clearpage} arbeitet, durch die aber im +doppelseitigen Layout (siehe Option \Option{twoside} in +\autoref{sec:typearea.options}, \autopageref{desc:typearea.option.twoside}) +eine neue rechte Seite begonnen wird. Dazu wird gegebenenfalls eine linke +Vakatseite im aktuellen Seitenstil ausgegeben. + +Bei {\KOMAScript} arbeitet +\Macro{cleardoubleoddstandardpage}\ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}} genau in der +soeben für die Standardklassen beschriebenen Art und Weise. Die Anweisung +\Macro{cleardoubleoddplainpage} ändert demgegenüber den Seitenstil der leeren +linken Seite zusätzlich auf \Pagestyle{plain}\IndexPagestyle{plain}, um den % +\IfCommon{maincls}{Kolumnentitel}% +\IfCommon{scrlttr2}{Seitenkopf}% +\ zu unterdrücken. Analog dazu wird bei der Anweisung +\Macro{cleardoubleoddemptypage} der Seitenstil +\Pagestyle{empty}\IndexPagestyle{empty} verwendet, um sowohl % +\IfCommon{maincls}{Kolumnentitel als auch Seitenzahl}% +\IfCommon{scrlttr2}{Seitenkopf als auch Seitenfuß}% +\ auf der leeren linken Seite zu unterdrücken. Die Seite ist damit vollständig +leer. Will man für die Vakatseite einen eigenen \PName{Seitenstil} vorgeben, +so ist dieser als Argument von \Macro{cleardoubleoddusingstyle} +anzugeben. Dabei kann jeder bereits definierte Seitenstil (siehe auch +\autoref{cha:scrpage}) verwendet werden. + +\IfNotCommon{scrlttr2}{% + Manchmal möchte man nicht, dass Kapitel mit neuen rechten Seiten, sondern + links auf einer Doppelseite beginnen. Dies widerspricht zwar dem klassischen + Buchdruck, kann jedoch seine Berechtigung haben, wenn die Doppelseite am + Kapitelanfang einen ganz speziellen Inhalt hat. Bei \KOMAScript{} ist + deshalb die Anweisung \Macro{cleardoubleevenstandardpage} als Äquivalent zu + \Macro{cleardoubleoddstandardpage} definiert, jedoch mit dem Unterschied, + dass die nächste Seite eine linke Seite ist. Entsprechendes gilt für die + Anweisungen \Macro{cleardoubleevenplainpage}, + \Macro{cleardoubleevenemptypage} und \Macro{cleardoubleevenusingstyle}.} + +Die Arbeitsweise der neuen Anweisungen \Macro{cleardoublestandardpage}, +\Macro{cleardoubleemptypage}, \Macro{cleardoubleplainpage} und der ein +Argument erwartenden Anweisung \Macro{cleardoublepageusingstyle} ist % +\IfCommon{scrlttr2}{bei \Class{scrlttr2} }% +\IfCommon{scrextend}{bei \Package{scrextend} }% +ebenso wie die Standard-Anweisung \Macro{cleardoublepage} von der zuvor +erklärten Option \Option{cleardoublepage} abhängig und entspricht je nach +Einstellung einer der in den vorherigen Absätzen erläuterten Anweisungen. + +\IfCommon{scrlttr2}{% + Die übrigen Anweisungen sind bei \Class{scrlttr2} nur aus Gründen der + Vollständigkeit definiert. Näheres zu diesen Anweisungen ist bei Bedarf + \autoref{sec:maincls.emptypage}, + \autopageref{desc:maincls.cmd.cleardoublepage} zu entnehmen.}% +\ifCommonscrlttr2\else +\begin{Example} + \label{desc:maincls.cmd.cleardoublepage.example}% + Angenommen Sie wollen innerhalb eines Dokuments als nächstes eine + Doppelseite setzen, bei der auf der linken Seite eine Abbildung in Größe des + Satzspiegels platziert wird und rechts ein neues Kapitel beginnt. Falls das + vorherige Kapitel mit einer linken Seite endet, muss also eine Vakatseite + eingefügt werden. Diese soll komplett leer sein. Ebenso soll die linke + Bildseite weder Kopf noch Fußzeile besitzen. Zunächst wird mit + \begin{lstcode} + \KOMAoptions{cleardoublepage=empty} + \end{lstcode} + dafür gesorgt, dass Vakatseiten mit dem Seitenstil \Pagestyle{empty}, also + ohne Kopf- und Fußzeile gesetzt werden. Diese Einstellung können Sie bereits + in der Dokumentpräambel vornehmen. Die Optionen können alternativ auch als + optionale Argumente von \Macro{documentclass} angegeben werden. + + An der gewünschten Stelle im Dokument schreiben Sie nun: + \begin{lstcode} + \cleardoubleevenemptypage + \thispagestyle{empty} + \includegraphics[width=\textwidth,% + height=\textheight,% + keepaspectratio]% + {bild} + \chapter{Kapitelüberschrift} + \end{lstcode} + Die erste Zeile wechselt auf die nächste linke Seite und fügt zu diesem + Zweck bei Bedarf eine komplett leere rechte Seite ein. Die zweite Zeile + sorgt dafür, dass diese linke Seite ebenfalls mit dem Seitenstil + \Pagestyle{empty} gesetzt wird. Die dritte bis sechste Zeile lädt die + Bilddatei mit dem Namen \File{bild} und bringt sie auf die gewünschte Größe, + ohne sie dabei zu verzerren. Hierfür wird das Paket + \Package{graphicx}\IndexPackage{graphicx} benötigt (siehe + \cite{package:graphics}). Die letzte Zeile beginnt auf der nächsten -- dann + rechten -- Seite ein neues Kapitel. +\end{Example}% +\fi +% +\EndIndex{Cmd}{clearpage}% +\EndIndex{Cmd}{cleardoublepage}% +\EndIndex{Cmd}{cleardoublepageusingstyle}% +\EndIndex{Cmd}{cleardoublestandardpage}% +\EndIndex{Cmd}{cleardoubleplainpage}% +\EndIndex{Cmd}{cleardoubleemptypage}% +\EndIndex{Cmd}{cleardoubleoddusingstyle}% +\EndIndex{Cmd}{cleardoubleoddstandardpage}% +\EndIndex{Cmd}{cleardoubleoddplainpage}% +\EndIndex{Cmd}{cleardoubleoddemptypage}% +\EndIndex{Cmd}{cleardoubleevenusingstyle}% +\EndIndex{Cmd}{cleardoubleevenstandardpage}% +\EndIndex{Cmd}{cleardoubleevenplainpage}% +\EndIndex{Cmd}{cleardoubleevenemptypage}% +% +\EndIndex{}{Seitenstil}% +\EndIndex{}{Vakatseite}% +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<9>> + +\section{Fußnoten} +\label{sec:\csname label@base\endcsname.footnotes}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +\IfNotCommon{scrextend}{Es gilt sinngemäß, was in + \autoref{sec:maincls.footnotes} geschrieben wurde.} +\else +\BeginIndex{}{Fussnoten=Fußnoten}% + +\iffalse% Umbruchkorrekturtext +Selbstverständlich beherrscht \LaTeX{} auch Fußnoten. % +\fi% +\IfCommon{maincls}{Im Unterschied zu den Standardklassen bietet \KOMAScript{} + die Möglichkeit, die Form von Fußnoten zu konfigurieren.}% +\IfCommon{scrlttr2}{Die Anweisungen zum Setzen von Fußnoten sind in jeder + \LaTeX-Einführung, beispielsweise \cite{l2kurz}, zu finden. \KOMAScript{} + bietet darüber hinaus aber auch noch die Möglichkeit, die Form der Fußnoten + zu verändern.}% +\fi +\IfCommon{scrextend}{Die Fußnoten-Möglichkeiten der \KOMAScript-Klassen% +\ifIgnoreThis + , die in \autoref{sec:maincls.footnotes} beschrieben sind,% +\fi + \ werden + von \Package{scrextend} ebenfalls bereitgestellt. In der Voreinstellung wird + die Formatierung der Fußnoten jedoch der verwendeten Klasse überlassen. Dies + ändert sich, sobald die Anweisung \Macro{deffootnote} verwendet wird, die + auf + \autopageref{desc:\ifIgnoreThis maincls\else scrextend\fi.cmd.deffootnote} + näher erläutert wird.}% +\ifIgnoreThis\else + +\begin{Declaration} + \KOption{footnotes}\PName{Einstellung} +\end{Declaration} +\BeginIndex{Option}{footnotes~=\PName{Einstellung}}% +\IfCommon{scrextend}{Bei vielen Klassen werden Fußnoten }% +\IfNotCommon{scrextend}{ \ChangedAt{v3.00}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}\and \Class{scrlttr2}}Fußnoten werden +}% +im Text in der Voreinstellung mit kleinen, hochgestellten Ziffern +markiert. Werden zu einer Textstelle mehrere Fußnoten hintereinander gesetzt, +so entsteht der Eindruck, dass es sich nicht um zwei einzelne Fußnoten, +sondern um eine einzige Fußnote mit hoher Nummer handelt. Mit der Einstellung +\OptionValue{footnotes}{multiple}\IndexOption{footnotes=~multiple} werden +Fußnoten, die unmittelbar aufeinander folgen, stattdessen mit Trennzeichen +aneinander gereiht. Das in \Macro{multfootsep}\IndexCmd{multfootsep} +definierte Trennzeichen ist mit einem Komma vorbelegt. Der gesamte Mechanismus +ist kompatibel zu \Package{footmisc}\IndexPackage{footmisc}, Version~5.3d +(siehe \cite{package:footmisc}) implementiert. Er wirkt sich sowohl auf +Fußnotenmarkierungen aus, die mit \Macro{footnote}\IndexCmd{footnote} gesetzt +wurden, als auch auf solche, die direkt mit +\Macro{footnotemark}\IndexCmd{footnotemark} ausgegeben werden. + +Es ist jederzeit möglich, auf die Voreinstellung +\OptionValue{footnotes}{nomultiple} zurückzuschalten. Bei Problemen mit +anderen Paketen, die Einfluss auf die Fußnoten nehmen, sollte die Option +jedoch nicht verwendet und die Einstellung auch nicht innerhalb des Dokuments +umgeschaltet werden. + +Eine Zusammenfassung der möglichen Werte für die \PName{Einstellung} von +\Option{footnotes} bietet \autoref{tab:maincls.footnotes}% +\IfNotCommon{maincl}{, \autopageref{tab:maincls.footnotes}}% +.% +\IfCommon{maincls}{% +\begin{table} + \caption[{Mögliche Werte für Option \Option{footnotes}}]{Mögliche Werte für + Option \Option{footnotes} zur Einstellung der Fußnoten} + \label{tab:maincls.footnotes} + \begin{desctabular} + \pventry{multiple}{% + Unmittelbar aufeinander folgende Fußnotenmarkierungen werden durch + \Macro{multfootsep}\IndexCmd{multfootsep} voneinander getrennt + ausgegeben.% + \IndexOption{footnotes~=multiple}}% + \pventry{nomultiple}{% + Unmittelbar aufeinander folgende Fußnotenmarkierungen werden auch + unmittelbar aufeinander folgend ausgegeben.% + \IndexOption{footnotes~=nomultiple}}% + \end{desctabular} +\end{table}}% +% +\EndIndex{Option}{footnotes~=\PName{Einstellung}} + + +\begin{Declaration} + \Macro{footnote}\OParameter{Nummer}\Parameter{Text}\\ + \Macro{footnotemark}\OParameter{Nummer}\\ + \Macro{footnotetext}\OParameter{Nummer}\Parameter{Text}\\ + \Macro{multiplefootnoteseparator}\\ + \Macro{multfootsep} +\end{Declaration}% +\BeginIndex{Cmd}{footnote}% +\BeginIndex{Cmd}{footnotemark}% +\BeginIndex{Cmd}{footnotetext}% +\BeginIndex{Cmd}{multiplefootnoteseparator}% +\BeginIndex{Cmd}{multfootsep}% +Fußnoten werden bei {\KOMAScript} genau wie bei den Standardklassen mit der +Anweisung \Macro{footnote} oder den paarweise zu verwendenden Anweisungen +\Macro{footnotemark} und \Macro{footnotetext} erzeugt. Genau wie bei den +Standardklassen ist es möglich, dass innerhalb einer Fußnote ein +Seiten"-umbruch erfolgt. Dies geschieht in der Regel dann, wenn die zugehörige +Fußnotenmarkierung so weit unten auf der Seite gesetzt wird, dass keine andere +Wahl bleibt, als die Fußnote auf die nächste Seite zu umbrechen. Im +Unterschied\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} zu den Standardklassen bietet +\KOMAScript{} aber zusätzlich die Möglichkeit, Fußnoten, die unmittelbar +aufeinander folgen, automatisch zu erkennen und durch ein Trennzeichen +auseinander zu rücken. Siehe hierzu die zuvor dokumentierte Option +\Option{footnotes}. + +Will man dieses Trennzeichen stattdessen von Hand setzen, so erhält man es +durch Aufruf von \Macro{multiplefootnoteseparator}. Diese Anweisung sollten +Anwender jedoch nicht umdefinieren, da sie neben dem Trennzeichen auch die +Formatierung des Trennzeichen, beispielsweise die Wahl der Schriftgröße und +das Hochstellen, enthält. Das Trennzeichen selbst ist in der Anweisung +\Macro{multfootsep} gespeichert. In der Voreinstellung ist dieses als +% Umbruchkorrektur: listings korrigieren! +\begin{lstcode}[belowskip=\dp\strutbox] + \newcommand*{\multfootsep}{,} +\end{lstcode} +definiert. Dieses kann umdefiniert werden. + +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:maincls.cmd.footnote.example}% + Angenommen, Sie wollen zu einem Wort zwei Fußnoten setzen. Im ersten Ansatz + schreiben Sie dafür + \begin{lstcode} + Wort\footnote{erste Fußnote}\footnote{zweite Fußnote}. + \end{lstcode} + Nehmen wir weiter an, dass die Fußnoten mit 1 und 2 nummeriert werden. Da + die beiden Fußnotennummern direkt aufeinander folgen, entsteht jedoch der + Eindruck, dass das Wort nur eine Fußnote mit der Nummer 12 besitzt. Sie + könnten dies nun dadurch ändern, dass Sie mit + \begin{lstcode} + \KOMAoptions{footnotes=multiple} + \end{lstcode} + die automatische Erkennung von Fußnotenhäufungen aktivieren. Stattdessen + können Sie aber auch + \begin{lstcode} + Wort\footnote{erste Fußnote}\multiplefootnoteseparator + \footnote{zweite Fußnote} + \end{lstcode} + verwenden. Das sollte auch dann noch funktionieren, wenn die automatische + Erkennung aus irgendwelchen Gründen versagt oder nicht verwendet werden + kann. + + Nehmen wir nun an, dass Sie außerdem wollen, dass die Fußnotennummern + nicht nur durch ein Komma, sondern durch ein Komma gefolgt von einem + Leerzeichen getrennt werden sollen. In diesem Fall schreiben Sie + \begin{lstcode} + \renewcommand*{\multfootsep}{,\nobreakspace} + \end{lstcode} + in Ihre Dokumentpräambel. \Macro{nobreakspace}\IndexCmd{nobreakspace} wurde + hier an Stelle eines normalen Leerzeichens gewählt, damit innerhalb der + Reihung der Fußnotenzeichen kein Absatz- oder Seitenumbruch erfolgen kann. +\end{Example}% +\fi% +\IfCommon{scrlttr2}{Beispiele und ergänzende Hinweise sind + \autoref{sec:maincls.footnotes} ab + \autopageref{desc:maincls.cmd.footnote.example} zu entnehmen.}% +\EndIndex{Cmd}{footnote}% +\EndIndex{Cmd}{footnotemark}% +\EndIndex{Cmd}{footnotetext}% +\EndIndex{Cmd}{multiplefootnoteseparator}% +\EndIndex{Cmd}{multfootsep}% +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<10>> + +\ifIgnoreThis\else +\begin{Declaration} + \Macro{footref}\Parameter{Referenz} +\end{Declaration} +\BeginIndex{Cmd}{footref}% +Manchmal\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} hat man in einem Dokument eine +Fußnote, zu der es im Text mehrere Verweise geben soll. Die ungünstige Lösung +dafür wäre die Verwendung von \Macro{footnotemark} unter Angabe der +gewünschten Nummer. Ungünstig an dieser Lösung ist, dass man die Nummer kennen +muss und sich diese jederzeit ändern kann. \KOMAScript{} bietet deshalb die +Möglichkeit, den \Macro{label}-Mechanismus auch für Verweise auf Fußnoten zu +verwenden. Man setzt dabei in der entsprechenden Fußnote eine +\Macro{label}-Anweisung und kann dann mit \Macro{footref} alle weiteren +Fußnotenmarken für diese Fußnote im Text setzen. +\begin{Example} + Sie schreiben einen Text, in dem sie bei jedem Auf"|treten eines Markennamens + eine Fußnote setzen müssen, die darauf hinweist, dass es sich um einen + geschützten Markennamen handelt. Sie schreiben beispielsweise: +\ifCommonmaincls + \begin{lstcode} + Die Firma SplischSplasch\footnote{Bei diesem Namen + handelt es sich um eine registrierte Marke. Alle + Rechte daran sind dem Markeninhaber + vorbehalten.\label{refnote}} stellt neben + SplischPlumps\footref{refnote} auch noch die + verbesserte Version SplischPlatsch\footref{refnote} + her. + \end{lstcode} + Es wird dann dreimal eine Marke auf dieselbe Fußnote gesetzt, einmal mit + \Macro{footnote} direkt und zweimal mit \Macro{footref}. +\else + \begin{lstcode} + Die Firma SplischSplasch\footnote{Bei diesem Namen + handelt es sich um eine registrierte Marke. Alle + Rechte daran sind dem Markeninhaber, der Firma + SplischSplasch, vorbehalten.\label{refnote}} + stellt neben SplischPlumps\footref{refnote} auch noch + die verbesserte Version SplischPlatsch\footref{refnote} + und das sehr beliebte + SplischSplaschPlumps\footref{refnote} her. + \end{lstcode} + Es wird dann vier Mal eine Marke auf dieselbe Fußnote gesetzt, einmal mit + \Macro{footnote} direkt und drei Mal mit \Macro{footref}. +\fi +\end{Example} +Da die Fußnotenmarken mit Hilfe des \Macro{label}-Mechanismus gesetzt werden, +werden nach Änderungen, die sich auf die Fußnotennummerierung auswirken, +gegebenenfalls zwei \LaTeX-Durchläufe benötigt, bis die mit \Macro{footref} +gesetzten Marken korrekt sind.% +% +\EndIndex{Cmd}{footref}% +\IfCommon{scrlttr2}{\EndIndex{}{Fussnoten=Fußnoten}} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<11>> + +\ifIgnoreThis\else +\begin{Declaration} + \Macro{deffootnote}\OParameter{Markenbreite}\Parameter{Einzug}% + \Parameter{Absatzeinzug}\Parameter{Markendefinition}\\ + \Macro{deffootnotemark}\Parameter{Markendefinition}\\ + \Macro{thefootnotemark} +\end{Declaration}% +\BeginIndex{Cmd}{deffootnote}% +\BeginIndex{Cmd}{deffootnotemark}% +\BeginIndex{Cmd}{thefootnotemark}% +Die \KOMAScript-Klassen setzen Fußnoten etwas anders als die Standardklassen. +Die Fußnotenmarkierung im Text, also die Referenzierung der Fußnote, erfolgt +wie bei den Standardklassen durch kleine hochgestellte Zahlen. Genauso werden +die Markierungen auch in der Fußnote selbst wiedergegeben. Sie werden dabei +rechtsbündig in einem Feld der Breite \PName{Markenbreite} gesetzt. Die erste +Zeile der Fußnote schließt direkt an das Feld der Markierung an. + +Alle weiteren Zeilen werden um den Betrag von \PName{Einzug} eingezogen +ausgegeben. Wird der optionale Parameter \PName{Markenbreite} nicht angegeben, +dann entspricht er dem Wert von \PName{Einzug}. Sollte die Fußnote aus +mehreren Absätzen bestehen, dann wird die erste Zeile eines Absatzes +zusätzlich mit dem Einzug der Größe \PName{Absatzeinzug} versehen. + +\IfCommon{maincls}{% +\begin{figure} + \centering\setlength{\unitlength}{1mm} + \begin{picture}(100,22) + \thinlines + % frame of following paragraph + \put(5,0){\line(1,0){90}} + \put(5,0){\line(0,1){5}} + \put(10,5){\line(0,1){5}}\put(5,5){\line(1,0){5}} + \put(95,0){\line(0,1){10}} + \put(10,10){\line(1,0){85}} + % frame of first paragraph + \put(5,11){\line(1,0){90}} + \put(5,11){\line(0,1){5}} + \put(15,16){\line(0,1){5}}\put(5,16){\line(1,0){10}} + \put(95,11){\line(0,1){10}} + \put(15,21){\line(1,0){80}} + % box of the footnote mark + \put(0,16.5){\framebox(14.5,4.5){\mbox{}}} + % description of paragraphs + \put(45,16){\makebox(0,0)[l]{\small\textsf{erster Absatz einer Fußnote}}} + \put(45,5){\makebox(0,0)[l]{\small\textsf{folgender Absatz einer Fußnote}}} + % help lines + \thicklines + \multiput(0,0)(0,3){7}{\line(0,1){2}} + \multiput(5,0)(0,3){3}{\line(0,1){2}} + % parameters + \put(2,7){\vector(1,0){3}} + \put(5,7){\line(1,0){5}} + \put(15,7){\vector(-1,0){5}} + \put(15,7){\makebox(0,0)[l]{\small\PName{Absatzeinzug}}} + % + \put(-3,13){\vector(1,0){3}} + \put(0,13){\line(1,0){5}} + \put(10,13){\vector(-1,0){5}} + \put(10,13){\makebox(0,0)[l]{\small\PName{Einzug}}} + % + \put(-3,19){\vector(1,0){3}} + \put(0,19){\line(1,0){14.5}} + \put(19.5,19){\vector(-1,0){5}} + \put(19.5,19){\makebox(0,0)[l]{\small\PName{Markenbreite}}} + \end{picture} + \caption{Parameter für die Darstellung der Fußnoten} + \label{fig:maincls.deffootnote} +\end{figure}} + +\autoref{fig:maincls.deffootnote} % +\IfCommon{scrlttr2}{auf \autopageref{fig:maincls.deffootnote} }% +veranschaulicht die verschiedenen Parameter% +\IfCommon{maincls}{nochmals}% +. Die Voreinstellung in den \KOMAScript-Klassen entspricht folgender +Definition: +% Umbruchkorrektur: listings korrigieren! +\begin{lstcode}[belowskip=\dp\strutbox] + \deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}} +\end{lstcode} +Dabei wird mit Hilfe von \Macro{textsuperscript} sowohl die Hochstellung als +auch die Wahl einer kleineren Schrift erreicht. \Macro{thefootnotemark} ist +die aktuelle Fußnotenmarke ohne jegliche Formatierung.% +\IfCommon{scrextend}{ Das Paket \Package{scrextend} überlässt hingegen in der + Voreinstellung das Setzen der Fußnoten der verwendeten Klasse. Das Laden des + Pakets allein sollte daher noch zu keinerlei Änderungen bei der Formatierung + der Fußnoten oder der Fußnotenmarken führen. Zur Übernahme der + Voreinstellungen der \KOMAScript-Klassen muss man vielmehr obige Einstellung + selbst vornehmen. Dazu kann obige Code-Zeile beispielsweise unmittelbar nach + dem Laden von \Package{scrextend} eingefügt werden.}% + +\BeginIndex{FontElement}{footnote}% +\BeginIndex{FontElement}{footnotelabel}% +Auf\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}\and \Class{scrlttr2}} die Fußnote einschließlich der +Markierung findet außerdem die für das Element \FontElement{footnote} +eingestellte Schriftart Anwendung. Die % Umbruchkorrekturvarianten +\IfCommon{maincls}{davon abweichende }% +Schriftart der Markierung kann % +\IfNotCommon{maincls}{jedoch }% +mit Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) für das +Element \FontElement{footnotelabel} % +\IfCommon{scrlttr2}{davon abweichend }% +eingestellt werden. Siehe hierzu auch % +\IfNotCommon{scrextend}{\autoref{tab:\csname + label@base\endcsname.elementsWithoutText}, \autopageref{tab:\csname + label@base\endcsname.elementsWithoutText}}% +\IfCommon{scrextend}{\autoref{tab:maincls.elementsWithoutText}, + \autopageref{tab:maincls.elementsWithoutText}}% +. Voreingestellt ist jeweils keine Umschaltung der Schrift.% +\IfCommon{scrextend}{ Die Elemente finden bei scrextend jedoch nur dann + Anwendung, wenn die Fußnoten mit diesem Paket gesetzt werden, also + \Macro{deffootnote} verwendet wurde.}% +\EndIndex{FontElement}{footnotelabel}% +\EndIndex{FontElement}{footnote}% + +Die Fußnotenmarkierung im Text wird getrennt von der Markierung vor der +Fußnote definiert. Dies geschieht mit der Anweisung +\Macro{deffootnotemark}. Voreingestellt ist hier: +% Umbruchkorrektur: listings korrigieren! +\begin{lstcode}[belowskip=\dp\strutbox] + \deffootnotemark{\textsuperscript{\thefootnotemark}} +\end{lstcode} +Dabei findet\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} die Schriftart für das Element +\FontElement{footnotereference}\IndexFontElement{footnotereference} Anwendung +(siehe % +\IfNotCommon{scrextend}{\autoref{tab:\csname + label@base\endcsname.elementsWithoutText}, \autopageref{tab:\csname + label@base\endcsname.elementsWithoutText}}% +\IfCommon{scrextend}{\autoref{tab:maincls.elementsWithoutText}, + \autopageref{tab:maincls.elementsWithoutText}}% +). Die Markierungen im Text und in der Fußnote selbst sind also identisch. Die +Schriftart kann mit Hilfe der Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) jedoch geändert werden% +\IfCommon{scrextend}{, sobald die Anweisung \Macro{deffootnotemark} verwendet + wird}% +. + +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:maincls.cmd.deffootnote.example}% + Relativ häufig wird gewünscht, dass die Markierung in der Fußnote selbst + weder hochgestellt noch kleiner gesetzt wird. Dabei soll sie aber nicht + direkt am Text kleben, sondern geringfügig davor stehen. Dies kann zum einen + wie folgt erreicht werden: + \begin{lstcode} + \deffootnote{1em}{1em}{\thefootnotemark\ } + \end{lstcode} + Die Fußnotenmarkierung einschließlich dem folgenden Leerzeichen wird also + rechtsbündig in eine Box der Breite 1\Unit{em} gesetzt. Die folgenden + Zeilen der Fußnote werden gegenüber dem linken Rand ebenfalls um 1\Unit{em} + eingezogen. + + Eine weitere, oft gefragte Formatierung sind linksbündige + Fußnotenmarkierungen in der Fußnote. Diese können mit folgender Definition + erhalten werden: + \begin{lstcode} + \deffootnote{1.5em}{1em}{% + \makebox[1.5em][l]{\thefootnotemark}} + \end{lstcode} + + Sollen jedoch die Fußnoten insgesamt lediglich in einer anderen Schriftart, + beispielsweise serifenlos gesetzt werden, so ist dies ganz einfach mit Hilfe + der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe + \autoref{sec:maincls.textmarkup}, + \autopageref{desc:maincls.cmd.setkomafont}) zu lösen: + \begin{lstcode} + \setkomafont{footnote}{\sffamily} + \end{lstcode} +\end{Example} +Wie die Beispiele zeigen, ermöglicht {\KOMAScript} mit dieser einfachen +Benutzerschnittstelle eine große Vielfalt unterschiedlicher +Fußnotenformatierungen.% +\fi% +\IfCommon{scrlttr2}{Beispiele finden Sie in \autoref{sec:maincls.footnotes}, + \autopageref{desc:maincls.cmd.deffootnote}.}% +% +\EndIndex{Cmd}{deffootnote}% +\EndIndex{Cmd}{deffootnotemark}% +\EndIndex{Cmd}{thefootnotemark}% +\IfNotCommon{scrlttr2}{\EndIndex{}{Fussnoten=Fußnoten}} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<12>> + +\section{Listen} +\label{sec:\csname label@base\endcsname.lists}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.footnotes} geschrieben +wurde. \IfCommon{scrextend}{Allerdings werden vom Paket \Package{scrextend} + nur die Umgebungen \Environment{labeling}, \Environment{addmargin} und + \Environment{addmargin*} definiert. Alle anderen Listenumgebungen bleiben + der Verantwortung und Kontrolle der verwendeten Klasse überlassen.} +\else +\BeginIndex{}{Listen}% + +{\LaTeX} und die Standardklassen bieten verschiedene Umgebungen für +Listen. All diese Umgebungen bietet {\KOMAScript} selbstverständlich auch, +teilweise jedoch mit leichten Abwandlungen oder Erweiterungen. Grundsätzlich +gilt, dass Listen -- auch unterschiedlicher Art -- bis zu einer Tiefe von vier +Listen geschachtelt werden können. Eine tiefere Schachtelung wäre auch aus +typografischen Gründen kaum sinnvoll, da genau genommen schon mehr als drei +Ebenen nicht mehr überblickt werden können. Ich empfehle in solchen Fällen, +die eine große Liste in mehrere kleinere Listen aufzuteilen. + +\IfCommon{scrlttr2}{Da Listen zu den Standardelementen von \LaTeX{} gehören, + wurde in diesem Abschnitt auf Beispiele verzichtet. Sie finden solche in + \autoref{sec:maincls.lists} ab \autopageref{sec:maincls.lists} oder in jeder + \LaTeX-Einführung.} + +\ifCommonscrextend\else +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{itemize}}\\ + \quad\Macro{item}\\ + \quad\dots\\ + \XMacro{end}\PParameter{itemize}\\ + \Macro{labelitemi}\\ + \Macro{labelitemii}\\ + \Macro{labelitemiii}\\ + \Macro{labelitemiv} +\end{Declaration}% +\BeginIndex{Env}{itemize}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{labelitemi}% +\BeginIndex{Cmd}{labelitemii}% +\BeginIndex{Cmd}{labelitemiii}% +\BeginIndex{Cmd}{labelitemiv}% +Die einfachste Form einer Liste ist die Stichpunkt- oder +\Environment{itemize}-Liste. Die Benutzer einer unbeliebten Textverarbeitung +nennen diese Form der Liste auch gerne \emph{Bulletpoints}. Vermutlich können +sie sich nicht vorstellen, dass je nach Ebene auch ein anderes Zeichen als ein +fetter Punkt zur Einleitung eines Stichpunkts verwendet werden kann. Bei den +\KOMAScript-Klassen werden je nach Ebene folgende Zeichen verwendet: +%»{\labelitemi}«, »{\labelitemii}«, »{\labelitemiii}« und »{\labelitemiv}«. Die +Definition der Zeichen für die einzelnen Ebenen sind in den Makros +\Macro{labelitemi}, \Macro{labelitemii}, \Macro{labelitemiii} und +\Macro{labelitemiv} abgelegt. Sie können mit \Macro{renewcommand} umdefiniert +werden. Die einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.% +% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.itemize.example}% + Sie haben eine einfache Aufzählung, die in mehreren Ebenen geschachtelt + ist. Sie schreiben beispielsweise: + \begin{lstcode} + \minisec{Die Fahrzeuge im Spiel} + \begin{itemize} + \item Flugzeuge + \begin{itemize} + \item Doppeldecker + \item Jets + \item Transportmaschinen + \begin{itemize} + \item einmotorig + \begin{itemize} + \item{düsengetrieben} + \item{propellergetrieben} + \end{itemize} + \item mehrmotorig + \end{itemize} + \item Drehflügler + \end{itemize} + \item Motorräder + \begin{itemize} + \item historisch korrekt + \item futurisch nicht real + \end{itemize} + \item Automobile + \end{itemize} + \end{lstcode} + Anschließend erhalten Sie: + \begin{ShowOutput}[\baselineskip] + \minisec{Die Fahrzeuge im Spiel} + \begin{itemize} + \item Flugzeuge + \begin{itemize} + \item Doppeldecker + \item Jets + \item Transportmaschinen + \begin{itemize} + \item einmotorig + \begin{itemize} + \item{düsengetrieben} + \item{propellergetrieben} + \end{itemize} + \item mehrmotorig + \end{itemize} + \item Drehflügler + \end{itemize} + \item Motorräder + \begin{itemize} + \item historisch korrekt + \item futurisch nicht real + \end{itemize} + \item Automobile +% \begin{itemize} +% \item Rennwagen +% \item Personenwagen +% \item Lastwagen +% \end{itemize} +% \item Fahrräder + \end{itemize} + \end{ShowOutput} +\end{Example}% +\fi +% +\EndIndex{Env}{itemize}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{labelitemi}% +\EndIndex{Cmd}{labelitemii}% +\EndIndex{Cmd}{labelitemiii}% +\EndIndex{Cmd}{labelitemiv}% + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{enumerate}}\\ + \quad\XMacro{item}\\ + \quad\dots\\ + \XMacro{end}\PParameter{enumerate}\\ + \Macro{theenumi}\\ + \Macro{theenumii}\\ + \Macro{theenumiii}\\ + \Macro{theenumiv}\\ + \Macro{labelenumi}\\ + \Macro{labelenumii}\\ + \Macro{labelenumiii}\\ + \Macro{labelenumiv} +\end{Declaration}% +\BeginIndex{Env}{enumerate}% +\BeginIndex{Cmd}{item}% +\BeginIndex{Cmd}{theenumi}% +\BeginIndex{Cmd}{theenumii}% +\BeginIndex{Cmd}{theenumiii}% +\BeginIndex{Cmd}{theenumiv}% +\BeginIndex{Cmd}{labelenumi}% +\BeginIndex{Cmd}{labelenumii}% +\BeginIndex{Cmd}{labelenumiii}% +\BeginIndex{Cmd}{labelenumiv}% +Die nummerierte Liste ist ebenfalls sehr häufig zu finden und bereits vom +{\LaTeX}-Kern vorgesehen. Die Nummerierung\Index{Nummerierung} erfolgt je nach +Ebene in unterschiedlicher Art: mit arabischen Zahlen, mit Kleinbuchstaben, +mit kleinen römischen Zahlen und mit Großbuchstaben. Die Art der Nummerierung +wird dabei über die Makros \Macro{theenumi} bis \Macro{theenumiv} +festgelegt. Das Format der Ausgabe wird von den Makros \Macro{labelenumi} bis +\Macro{labelenumiv} bestimmt. Dabei folgt auf den Wert der zweiten Ebene, der +in Kleinbuchstaben ausgegeben wird, eine runde Klammer, während die Werte +aller anderen Ebenen von einem Punkt gefolgt werden. Die einzelnen +Stichpunkte werden wieder mit \Macro{item} eingeleitet.% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.enumerate.example}% + Verkürzen wir das vorherige Beispiel und verwenden statt der + \Environment{itemize}- eine + \Environment{enumerate}-Umgebung: +% Übernehmen wir das Beispiel der \Environment{itemize}-Umgebung, +% wobei wir jede \Environment{itemize}-Umgebung durch eine +% \Environment{enumerate}-Umgebung ersetzen. Das Ergebnis wäre dann: + \begin{ShowOutput}[\baselineskip] + \minisec{Die Fahrzeuge im Spiel} + \begin{enumerate} + \item Flugzeuge + \begin{enumerate} + \item Doppeldecker +% \item Jets + \item Transportmaschinen + \begin{enumerate} + \item einmotorig + \begin{enumerate} + \item{düsengetrieben}\label{xmp:maincls.jets} + \item{propellergetrieben} + \end{enumerate} + \item mehrmotorig + \end{enumerate} +% \item Drehflügler + \end{enumerate} + \item Motorräder + \begin{enumerate} + \item historisch korrekt + \item futurisch nicht real + \end{enumerate} +% \item Automobile +% \begin{enumerate} +% \item Rennwagen +% \item Personenwagen +% \item Lastwagen +% \end{enumerate} +% \item Fahrräder + \end{enumerate} + \end{ShowOutput} + Innerhalb der Aufzählung können ganz normal mit \Macro{label} Marken + gesetzt werden, auf die dann mit \Macro{ref} zugegriffen werden + kann. So wurde oben hinter den düsengetriebenen, einmotorigen +% Flugzeugen mit »\Macro{label}\PParameter{bsp:duesen}« ein Label +% gesetzt. Der \Macro{ref}-Wert ist dann »\ref{xmp:maincls.jets}«. +\end{Example}% +\fi +% +\EndIndex{Env}{enumerate}% +\EndIndex{Cmd}{item}% +\EndIndex{Cmd}{theenumi}% +\EndIndex{Cmd}{theenumii}% +\EndIndex{Cmd}{theenumiii}% +\EndIndex{Cmd}{theenumiv}% +\EndIndex{Cmd}{labelenumi}% +\EndIndex{Cmd}{labelenumii}% +\EndIndex{Cmd}{labelenumiii}% +\EndIndex{Cmd}{labelenumiv}% + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{description}}\\ + \quad\XMacro{item}\OParameter{Stichwort}\\ + \quad\dots\\ + \XMacro{end}\PParameter{description} +\end{Declaration}% +\BeginIndex{Env}{description}% +\BeginIndex{Cmd}{item}% +Eine weitere Listenform ist die Stichwortliste. Sie dient in erster Linie der +Beschreibung einzelner Begriffe. Diese werden als optionale Parameter bei +\Macro{item} angegeben. Die +Schriftart\Index{Schriftart}\ChangedAt{v2.8p}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}}, die für die Hervorhebung des +Stichworts verwendet wird, kann außerdem bei den \KOMAScript-Klassen mit Hilfe +der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) für das +Element \FontElement{descriptionlabel}\IndexFontElement{descriptionlabel} +(siehe \autoref{tab:\csname label@base\endcsname.elementsWithoutText}, +\autopageref{tab:\csname label@base\endcsname.elementsWithoutText}) geändert +werden. In der Voreinstellung wird \Macro{sffamily}""\Macro{bfseries} +verwendet.% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.description.example}% + Sie wollen, dass die Stichworte statt serifenlos und fett lediglich + fett, aber in der Standardschriftart ausgegeben werden. Mit +\begin{lstcode} + \setkomafont{descriptionlabel}{\normalfont\bfseries} +\end{lstcode} + definieren Sie daher die Schrift entsprechend um. + + Ein Beispiel für die Ausgabe einer Stichwortliste ist eine Aufzählung der + Seitenstile. Der Quelltext dazu lautet beispielsweise: +\begin{lstcode} + \begin{description} + \item[empty] ist der Seitenstil, bei dem Kopf- und + Fußzeile vollständig leer bleiben. + \item[plain] ist der Seitenstil, bei dem keinerlei + Kolumnentitel verwendet wird. + \item[headings] ist der Seitenstil für + automatische Kolumnentitel. + \item[myheadings] ist der Seitenstil für manuelle + Kolumnentitel. + \end{description} +\end{lstcode} + Diese ergibt: + \begin{ShowOutput} + \begin{description} + \item[empty] ist der Seitenstil, bei dem Kopf- und + Fußzeile vollständig leer bleiben. + \item[plain] ist der Seitenstil, bei dem keinerlei + Kolumnentitel verwendet wird. + \item[headings] ist der Seitenstil für automatische + Kolumnentitel. + \item[myheadings] ist der Seitenstil für manuelle + Kolumnentitel. + \end{description} + \end{ShowOutput} +\end{Example}% +\fi +% +\EndIndex{Env}{description}% +\EndIndex{Cmd}{item}% +\fi % \ifCommonscrextend\else + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{labeling}}% + \OParameter{Trennzeichen}\Parameter{längstes + Muster}\\ + \quad\XMacro{item}\OParameter{Schlüsselwort}\\ + \quad\dots\\ + \XMacro{end}\PParameter{labeling} +\end{Declaration}% +\BeginIndex{Env}{labeling}% +\BeginIndex{Cmd}{item}% +Eine andere Form der % +\IfCommon{scrextend}{in vielen Klassen als \Environment{description}-Umgebung +vorhandenen }% +Stichwortliste ist nur bei den {\KOMAScript}-Klassen % +\IfCommon{scrextend}{und \Package{scrextend} }% +vorhanden: die \Environment{labeling}-Umgebung. Im Unterschied zur zuvor +vorgestellten Umgebung \Environment{description} kann bei +\Environment{labeling} ein Muster angegeben werden, dessen Länge die +Einrücktiefe bei allen Stichpunkten ergibt. Darüber hinaus kann zwischen +Stichpunkt und Beschreibungstext ein optionales \PName{Trennzeichen} +festgelegt werden.% +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:\csname + label@base\endcsname.env.labeling.example}% + \IfCommon{maincls}{Wir schreiben das Beispiel der + \Environment{description}-Umgebung etwas um:}% + \IfCommon{scrextend}{Eine einfache Liste könnte beispielsweise wie folgt + definiert werden:}% + \begin{lstcode} + \begin{labeling}[~--]{% + \usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] + Seitenstil für leere Seiten ohne Kopf und Fuß + \item[\usekomafont{descriptionlabel}plain] + Seitenstil für Kapitelanfänge ganz ohne + Kolumnentitel + \item[\usekomafont{descriptionlabel}headings] + Seitenstil für automatische Kolumnentitel + \item[\usekomafont{descriptionlabel}myheadings] + Seitenstil für manuelle Kolumnentitel + \end{labeling} + \end{lstcode} + Als Ergebnis erhalten wir dann: + \begin{ShowOutput} + \begin{labeling}[~--]{\usekomafont{descriptionlabel}myheadings} + \item[\usekomafont{descriptionlabel}empty] Seitenstil für leere + Seiten ohne Kopf und Fuß + \item[\usekomafont{descriptionlabel}plain] Seitenstil für + Kapitelanfänge ganz ohne Kolumnentitel + \item[\usekomafont{descriptionlabel}headings] Seitenstil für + automatische Kolumnentitel + \item[\usekomafont{descriptionlabel}myheadings] Seitenstil für + manuelle Kolumnentitel + \end{labeling} + \end{ShowOutput} + Wie in diesem Beispiel zu sehen ist, muss eine eventuell geforderte + Schriftumschaltung bei dieser Umgebung sowohl im Muster als auch im + optionalen Parameter jeder \Macro{item}-Anweisung wiederholt werden. +\end{Example} +Gedacht war die Umgebung ursprünglich für Strukturen wie »Voraussetzung, +%Aussage, Beweis« oder »Gegeben, Gesucht, Lösung«, wie man sie in +Vorlesungsskripten häufiger findet. Inzwischen findet die Umgebung aber ganz +unterschiedliche Anwendungen. So wurde die Umgebung für Beispiele in dieser +Anleitung mit Hilfe der \Environment{labeling}-Umgebung definiert.% +\fi +% +\EndIndex{Env}{labeling}% +\EndIndex{Cmd}{item}% + + +\ifCommonscrextend\else +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{verse}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{verse} +\end{Declaration}% +\BeginIndex{Env}{verse}% +Die \Environment{verse}-Umgebung wird normalerweise nicht als Listenumgebung +wahrgenommen, da hier nicht mit \Macro{item} gearbeitet wird. Stattdessen wird +wie innerhalb der \Environment{flushleft}-Umgebung mit festen Zeilenumbrüchen +gearbeitet. Intern handelt es sich jedoch sowohl bei den Standardklassen als +auch bei {\KOMAScript} durchaus um eine Listenumgebung. + +Die \Environment{verse}-Umgebung findet hauptsächlich für +Gedichte\Index{Gedichte} Anwendung. Dabei werden die Zeilen links und rechts +eingezogen. Einzelne Verse werden mit einem festen Zeilenumbruch, also mit +\verb|\\| beendet. Strophen werden ganz normal als Absatz gesetzt, also durch +eine Leerzeile getrennt. Häufig findet stattdessen auch +\Macro{medskip}\IndexCmd{medskip} oder \Macro{bigskip}\IndexCmd{bigskip} +Verwendung. Will man verhindern, dass am Ende eines Verses ein Seitenumbruch +erfolgt, so verwendet man ganz normal \verb|\\*| an Stelle von \verb|\\|.% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.verse.example}% + Als Beispiel ein kurzes Gedicht von Wilhelm Busch: + \begin{lstcode} + \begin{verse} + Wenn einer, der mit Mühe kaum\\* + Gekrochen ist auf einen Baum,\\* + Schon meint, dass er ein Vogel wär,\\* + So irrt sich der. + \end{verse} + \end{lstcode} + Mit dem Resultat: + \begin{ShowOutput} + \vskip-.8\baselineskip% Umbruchkorrektur + \begin{verse} + Wenn einer, der mit Mühe kaum\\* + Gekrochen ist auf einen Baum,\\* + Schon meint, dass er ein Vogel wär,\\* + So irrt sich der. + \end{verse} + \end{ShowOutput} + Bei einem sehr langen Vers wie: + \begin{lstcode} + \begin{verse} + Der Philosoph wie der Hausbesitzer hat + immer Reparaturen.\\* + \bigskip + Wer dir sagt, er hätte noch nie gelogen, + dem traue nicht, mein Sohn. + \end{verse} + \end{lstcode} + bei dem ein Zeilenumbruch innerhalb des Verses erfolgt: + \begin{ShowOutput} + \vskip-.8\baselineskip% Umbruchkorrektur + \begin{verse} + Der Philosoph wie der Hausbesitzer hat immer Reparaturen.\\ + \bigskip + Wer dir sagt, er hätte noch nie gelogen, dem traue nicht, mein + Sohn. + \end{verse} + \end{ShowOutput} + kann mit \verb|\\*| allerdings nicht verhindert werden, dass am + Zeilenumbruch auch ein Seitenumbruch erfolgt. Um dies zu erreichen, müsste + innerhalb der ersten Zeile zusätzlich ein + \Macro{nopagebreak}\IndexCmd{nopagebreak} eingefügt werden: + \begin{lstcode} + \begin{verse} + Der Philosoph wie der Hausbesitzer\nopagebreak + hat immer Reparaturen.\\ + \bigskip + Wer dir sagt, er hätte noch nie\nopagebreak + gelogen, dem traue nicht, mein Sohn. + \end{verse} + \end{lstcode} +\iftrue% Umbruchkorrekturtext + Hier noch zwei Sprüche, die man immer bedenken sollte, wenn man mit + scheinbar seltsamen Fragen zu {\LaTeX} oder den dazugehörigen Antworten + konfrontiert ist: + \begin{ShowOutput} + \vskip-.8\baselineskip% Umbruchkorrektur + \begin{verse} + Wir mögen's keinem gerne gönnen,\\* + Dass er was kann, was wir nicht können.\\ + \bigskip + Wie klein ist das, was einer ist,\\* + Wenn man's mit seinem Dünkel misst. + \end{verse} + \end{ShowOutput} +\fi + In diesen Beispielen wurde übrigens jeweils \Macro{bigskip} verwendet, um + zwei Sprüche voneinander zu trennen. +\end{Example}% +\fi +% +\EndIndex{Env}{verse}% + + +\iffalse% Umbruchkorrekturvarianten +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{quote}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quote} +\end{Declaration}% +\BeginIndex{Env}{quote}% +Dies ist intern ebenfalls eine Listenumgebung und sowohl bei den +Standardklassen als auch bei {\KOMAScript} zu finden. Der Inhalt der Umgebung +wird im Blocksatz mit beidseitigem Einzug gesetzt. Die Umgebung wird häufig +verwendet, um längere Zitate\Index{Zitat} abzusetzen. Dabei werden Absätze +innerhalb der Umgebung durch einen vertikalen Abstand gekennzeichnet.% +\EndIndex{Env}{quote}% + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{quotation}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quotation} +\end{Declaration}% +\BeginIndex{Env}{quotation}% +Diese Umgebung ist mit \Environment{quote} vergleichbar. Während bei +\Environment{quote} Absätze durch vertikalen Abstand gekennzeichnet werden, +wird bei \Environment{quotation} mit horizontalem Einzug der ersten Zeile +eines Absatzes gearbeitet. Dies gilt auch für den ersten Absatz einer +\Environment{quotation}-Umgebung. Wollen Sie dort den Einzug verhindern, +müssen Sie die \Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen.% +\EndIndex{Env}{quotation}% + +\else + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{quote}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quote}\\ + \XMacro{begin}\PParameter{\Environment{quotation}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{quotation} +\end{Declaration}% +\BeginIndex{Env}{quote}% +\BeginIndex{Env}{quotation}% +Diese beiden Umgebungen sind intern ebenfalls Listenumgebungen und sowohl bei +den Standardklassen als auch bei {\KOMAScript} zu finden. Beide Umgebungen +setzen Blocksatz, der rechts und links eingezogen ist. Verwendet werden die +Umgebungen häufig, um längere Zitate\Index{Zitat} abzusetzen. Der Unterschied +zwischen beiden liegt in der Art und Weise, wie Absätze abgesetzt +werden. Während bei \Environment{quote} Absätze durch vertikalen Abstand +gekennzeichnet werden, wird bei \Environment{quotation} mit horizontalem +Einzug der ersten Zeile eines Absatzes gearbeitet. Dies gilt auch für den +ersten Absatz einer \Environment{quotation}-Umgebung% Umbruchkorrektur +\IfCommon{maincls}{, außer es wird \Macro{noindent}\IndexCmd{noindent} + vorangestellt.}% +\IfCommon{scrlttr2}{. Wollen Sie dort den Einzug verhindern, müssen Sie die + \Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen.}% +\ifCommonmaincls +\begin{Example} + \phantomsection\label{desc:maincls.env.quote.example}% + Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie + folgende \Environment{quotation}-Umgebung: + % +\begin{lstcode} + \begin{quotation} + Es klingelt an der Tür eines Pfarrhauses in Stuttgart. + Als die Haushälterin öffnet, steht ein unrasierter + Mann in einem reichlich schäbigen Mantel vor der Tür + und hält seine Strickmütze in der Hand. + + "`Gute Frau,"' verkündet der Mann in gequältem Ton, + doch bestem Hochdeutsch, während er verlegen von einem + Bein auf das andere wechselt, "`ich habe seit drei + Tagen nichts mehr gegessen."' + + Die Frau schüttelt mitleidig den Kopf und + entgegnet im Brustton vollster Überzeugung: + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quotation} +\end{lstcode} + Das Ergebnis ist dann: + \begin{ShowOutput} +\iffalse% Umbruchkorrekturtext + Ein kleines Beispiel für eine Anekdote, die sich einst + in Schwaben zugetragen haben soll: +\fi + \begin{quotation} + Es klingelt an der Tür eines Pfarrhauses in + Stuttgart. Als die Haushälterin öffnet, steht ein + unrasierter Mann in einem reichlich schäbigen + Mantel vor der Tür und hält seine Strickmütze in + der Hand. + + "`Gute Frau,"' verkündet der Mann in gequältem Ton, + doch bestem Hochdeutsch, +\iftrue% Umbruchkorrekturtext + während er verlegen von einem Bein auf das andere wechselt, +\fi + "`ich habe + seit drei Tagen nichts mehr gegessen."' + + Die Frau schüttelt mitleidig den Kopf und entgegnet + im Brustton vollster Überzeugung: + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quotation} + \end{ShowOutput} + % + Wenn Sie stattdessen eine \Environment{quote}-Umgebung + verwenden, sieht das Ganze so aus: + % + \begin{ShowOutput} +\iffalse% Umbruchkorrekturtext + Ein kleines Beispiel für eine Anekdote, die sich einst + in Schwaben zugetragen haben soll: +\fi + \begin{quote}\setlength{\parskip}{4pt plus 2pt minus 2pt} + Es klingelt an der Tür eines Pfarrhauses in Stuttgart. Als die + Haushälterin öffnet, steht ein unrasierter Mann in einem reichlich + schäbigen Mantel vor der Tür und hält seine Strickmütze in der Hand. + + "`Gute Frau,"' verkündet der Mann in gequältem Ton, doch bestem + Hochdeutsch, +\iftrue% Umbruchkorrekturtext + während er verlegen von einem Bein auf das andere wechselt, +\fi + "`ich habe seit drei Tagen nichts mehr gegessen."' + + Die Frau schüttelt mitleidig den Kopf und entgegnet im Brustton vollster + Überzeugung: + + "`Guda Moh, Sie missat sich halt zwinga!"' + \end{quote} + \end{ShowOutput} + % +\end{Example}% +\fi +% +\EndIndex{Env}{quote}% +\EndIndex{Env}{quotation}% +\fi % Umbruchkorrekturvarianten +\fi % \ifCommonscrextend\else + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{addmargin}}% + \OParameter{linker Einzug}\Parameter{Einzug}\\ + \quad\dots\\ + \XMacro{end}\PParameter{addmargin}\\ + \XMacro{begin}\PParameter{\Environment{addmargin*}}% + \OParameter{innerer Einzug}\Parameter{Einzug}\\ + \quad\dots\\ + \XMacro{end}\PParameter{addmargin*} +\end{Declaration} +\BeginIndex{Env}{addmargin}% +\BeginIndex{Env}{addmargin*}% +Wie bei % +\IfCommon{scrextend}{den in den Standardklassen und den \KOMAScript-Klassen + vorhandenen Umgebungen }% +\Environment{quote} und \Environment{quotation} handelt es sich bei +\Environment{addmargin} um eine Umgebung, die den Rand\Index{Rand} +verändert. Im Unterschied zu den beiden erstgenannten Umgebungen kann der +Anwender jedoch bei \Environment{addmargin} wählen, um welchen Wert der Rand +verändert werden kann. Des Weiteren verändert die Umgebung den Absatzeinzug +und den Absatzabstand nicht. Es wird auch kein zusätzlicher vertikaler Abstand +vor und nach der Umgebung eingefügt. + +Ist nur das obligatorische Argument \PName{Einzug} angegeben, so wird der +Inhalt der Umgebung rechts und links um diesen Wert eingezogen. Ist das +optionale Argument \PName{linker Einzug} hingegen angegeben, so wird links +abweichend von \PName{Einzug} der Wert \PName{linker Einzug} zum Rand addiert. + +Die Sternvariante \Environment{addmargin*} unterscheidet sich nur im +doppelseitigen Satz von der Variante ohne Stern, wobei der Unterschied auch +nur dann auf"|tritt, wenn das optionale Argument \PName{innerer Einzug} +verwendet wird. Dabei wird dann der Wert von \PName{innerer Einzug} zum +inneren Randanteil der Seite addiert. Dies ist bei rechten Seiten der linke +Rand der Seite, bei linken Seiten jedoch der rechte Rand der +Seite. \PName{Einzug} gilt dann für den jeweils anderen Rand. + +Bei beiden Varianten der Umgebung sind für alle Parameter auch negative Werte +erlaubt. % Umbruchkorrektur +\IfNotCommon{scrextend}{Damit kann man erreichen, dass die Umgebung in den + Rand hineinragt.}% +\IfCommon{scrextend}{Die Umgebung ragt dann entsprechend in den Rand hinein.}% +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:maincls.env.addmargin.example}% + Angenommen, Sie schreiben eine Anleitung mit kurzen + Quellcode-Beispielen. Um diese sehr stark hervorzuheben, sollen sie mit + horizontalen Linien vom Text abgesetzt und leicht in den äußeren Rand + verschoben werden. Sie definieren sich dafür zunächst eine Umgebung: + \begin{lstcode} + \newenvironment{QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } + \end{lstcode} + \begin{ShowOutput} + \newenvironment{QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% + }{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% + } + Die Umgebung in sich selbst gesetzt ergibt: + \begin{QuellcodeRahmen} +\begin{lstcode} +\newenvironment{\QuellcodeRahmen}{% + \begin{addmargin*}[1em]{-1em}% + \begin{minipage}{\linewidth}% + \rule{\linewidth}{2pt}% +}{% + \rule[.25\baselineskip]{\linewidth}{2pt}% + \end{minipage}% + \end{addmargin*}% +} +\end{lstcode} + \end{QuellcodeRahmen} + Das mag praktisch sein oder unpraktisch, zumindest jedoch zeigt es, + wie die Umgebung verwendet werden kann. + \end{ShowOutput} + Das optionale Argument der \Environment{addmargin*}-Umgebung sorgt + dafür, dass der innere Rand um den Wert + 1\Unit{em} vergrößert wird. Dafür wird der äußere + Rand um den negativen Wert vergrößert, also in Wirklichkeit um + 1\Unit{em} verkleinert. Dies resultiert in einer + Verschiebung um 1\Unit{em} nach außen. Selbstverständlich kann statt + \PValue{1em} auch eine Länge, beispielsweise + \PValue{2\Macro{parindent}}, verwendet werden. +\end{Example} + +Ob eine Seite eine linke oder eine rechte Seite ist, kann übrigens beim ersten +\LaTeX-Durchlauf nicht zuverlässig festgestellt werden. Siehe dazu die +Erklärungen zu den Anweisungen \Macro{ifthispageodd} (\autoref{sec:\csname + label@base\endcsname.oddOrEven}, \autopageref{desc:\csname + label@base\endcsname.cmd.ifthispageodd}) und \Macro{ifthispagewasodd} +(\autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.ifthispageodd}). + +\begin{Explain} + Im Zusammenspiel von Umgebungen wie Listen mit Absätzen ergeben sich für + Laien häufiger Fragen. Daher widmet sich die weiterführende Erklärung zu + Option \Option{parskip} in \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.option.parskip} auch diesem + Thema. Ebenfalls im Expertenteil in \autoref{sec:maincls-experts.addInfos}, + \autopageref{desc:maincls-experts.env.addmargin*} wird die + Problematik von mehrseitigen \Environment{addmargin*}-Umgebungen behandelt. +\end{Explain}% +\fi% \ifCommonmaincls +% +\EndIndex{Env}{addmargin}% +\EndIndex{Env}{addmargin*}% +% +\EndIndex{}{Listen} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<13>> + +\section{Randnotizen} +\label{sec:\csname label@base\endcsname.marginNotes}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.marginNotes} geschrieben +wurde. +\else +\BeginIndex{}{Randnotizen}% + +Außer dem eigentlichen Textbereich, der normalerweise den Satzspiegel +ausfüllt, existiert in Dokumenten noch die so genannte Marginalienspalte. In +dieser können Randnotizen gesetzt werden. % Umbruchkorrekturtext +\IfNotCommon{scrlttr2}{In diesem \iffree{Dokument}{Buch} wird davon ebenfalls + Gebrauch gemacht.}% +\fi +\IfCommon{scrlttr2}{Bei Briefen sind Randnotizen allerdings eher unüblich und + sollten äußerst sparsam eingesetzt werden.}% +\ifIgnoreThis\else + + +\begin{Declaration} + \Macro{marginpar}\OParameter{Randnotiz links}\Parameter{Randnotiz}\\ + \Macro{marginline}\Parameter{Randnotiz} +\end{Declaration}% +\BeginIndex{Cmd}{marginpar}% +\BeginIndex{Cmd}{marginline}% +Für Randnotizen\Index[indexmain]{Randnotizen} ist bei {\LaTeX} normalerweise die +Anweisung \Macro{marginpar} vorgesehen. Die Randnotizen werden dabei im +äußeren Rand gesetzt. Bei einseitigen Dokumenten wird der rechte Rand +verwendet. Zwar kann bei \Macro{marginpar} optional eine abweichende Randnotiz +angegeben werden, falls die Randnotiz im linken Rand landet, jedoch werden +Randnotizen immer im Blocksatz ausgegeben. Die Erfahrung zeigt, dass bei +Randnotizen statt des Blocksatzes oft je nach Rand linksbündiger oder +rechtsbündiger Flattersatz zu bevorzugen ist. {\KOMAScript} bietet hierfür +die Anweisung \Macro{marginline}. + +\ifCommonscrlttr\else +\begin{Example} + \phantomsection\label{desc:\csname + label@base\endcsname.cmd.marginline.example}% + In diesem Kapitel ist an einigen Stellen die % + \IfCommon{maincls}{Klassenangabe \Class{scrartcl} }% + \IfCommon{scrextend}{Paketangabe \Package{scrextend} }% + im Rand zu finden. Diese kann mit: +\ifCommonmaincls + \begin{lstcode} + \marginline{\texttt{scrartcl}} + \end{lstcode} +\else + \begin{lstcode} + \marginline{\texttt{scrextend}} + \end{lstcode} +\fi + erreicht werden.% +\iftrue % Umbruchkorrekturtext + \footnote{Tatsächlich wurde nicht \Macro{texttt}, + sondern eine semantische Auszeichnung verwendet. Um nicht unnötig + zu verwirren, wurde diese im Beispiel ersetzt.}% +\fi + + Statt \Macro{marginline} wäre auch die Verwendung von \Macro{marginpar} + möglich gewesen. Tatsächlich wird bei obiger Anweisung intern nichts anders + gemacht als: +\ifCommonmaincls + \begin{lstcode} + \marginpar[\raggedleft\texttt{scrartcl}] + {\raggedright\texttt{scrartcl}} + \end{lstcode} +\else + \begin{lstcode} + \marginpar[\raggedleft\texttt{scrextend}] + {\raggedright\texttt{scrextend}} + \end{lstcode} +\fi + Letztlich ist \Macro{marginline} also nur eine abkürzende Schreibweise. +\end{Example} + +Für Experten sind in \autoref{sec:maincls-experts.addInfos}, +\autopageref{desc:maincls-experts.cmd.marginpar} Probleme bei der Verwendung +von \Macro{marginpar} dokumentiert. Diese gelten ebenso für +\Macro{marginline}.% +\fi% +\IfCommon{scrlttr2}{Ein ausführliches Beispiel hierzu finden Sie in + \autoref{sec:maincls.marginNotes}, + \autopageref{desc:maincls.cmd.marginline.example}.}% +% +\EndIndex{Cmd}{marginpar}% +\EndIndex{Cmd}{marginline}% +% +\EndIndex{}{Randnotizen}% +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<14>> + +\section{Dokumenttitel} +\label{sec:\csname label@base\endcsname.titlepage}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.titlepage} geschrieben +wurde. \IfCommon{scrextend}{Es gibt jedoch einen Unterschied:} +\else +\BeginIndex{}{Titel}% + +Bei Dokumenten wird zwischen zwei verschiedenen Arten von Titeln für das +gesamte Dokument unterschieden. Zum einen gibt es die Titelseiten. Hierbei +steht der Dokumenttitel zusammen mit einigen zusätzlichen Informationen wie +dem Autor auf einer eigenen Seite. Neben der Haupttitelseite kann es dabei +weitere Titelseiten, etwa Schmutztitel, Verlagsinformationen, Widmung oder +ähnliche, geben. Zum anderen gibt es den Titelkopf. Dabei erscheint der Titel +lediglich am Anfang einer neuen -- in der Regel der ersten -- Seite. Unterhalb +dieser Titelzeilen\Index{Titel>-Zeilen} wird das Dokument beispielsweise mit +der Zusammenfassung, einem Vorwort oder dem Inhaltsverzeichnis fortgesetzt. +\fi + +\IfCommon{scrextend}{% + Die Möglichkeiten von \Package{scrextend} zum Dokumenttitel gehören zu den + optionalen, erweiterten Möglichkeiten und stehen daher nur zur Verfügung, + wenn zuvor beim Laden des Pakets \OptionValue{extendedfeature}{title} + gewählt wurde (siehe \autoref{sec:scrextend.optionalFeatures}, + \autopageref{desc:scrextend.option.extendedfeature}). Dies gilt auch für die + Paketoptionen aus diesem Abschnitt.} +\ifIgnoreThis +Darüber hinaus kann \Package{scrextend} nicht mit einer \KOMAScript-Klasse +zusammen verwendet werden. In allen Beispielen aus +\autoref{sec:maincls.titlepage} muss daher bei Verwendung von +\Package{scrextend} + \begin{lstcode} + \documentclass{scrbook} + \end{lstcode} +durch + \begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \end{lstcode} +ersetzt werden. +\else + +\begin{Declaration} + \KOption{titlepage}\PName{Ein-Aus-Wert} +\end{Declaration}% +\BeginIndex{Option}{titlepage~=\PName{Ein-Aus-Wert}}% +Mit dieser Option\ChangedAt{v3.00}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} wird ausgewählt, ob für die gesamte mit \Macro{maketitle} +(siehe \autopageref{desc:\csname label@base\endcsname.cmd.maketitle}) gesetzte +Titelei eigene Seiten\Index{Titel>-Seite} verwendet werden, oder stattdessen +die Titelei von \Macro{maketitle} als Titelkopf\Index{Titel>-Kopf} gesetzt +wird. Als \PName{Ein-Aus-Wert} kann einer der Standardwerte für einfache +Schalter aus \autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch} +verwendet werden. + +Mit \OptionValue{titlepage}{true} oder \Option{titlepage} wird die Titelei in +Form von Titelseiten ausgewählt. Die Anweisung \Macro{maketitle} verwendet +\Environment{titlepage}-Umgebungen zum Setzen dieser Seiten, die somit +normalerweise weder Seitenkopf noch Seitenfuß erhalten. Bei {\KOMAScript} +wurde die Titelei gegenüber den Standardklassen stark erweitert. + +Demgegenüber wird mit \OptionValue{titlepage}{false} erreicht, dass ein +Titelkopf (engl.: \emph{in-page title}) gesetzt wird. Das heißt, die Titelei +wird lediglich speziell hervorgehoben, auf der Seite mit dem Titel kann aber +nachfolgend weiteres Material, beispielsweise eine Zusammenfassung oder ein +Abschnitt gesetzt werden. + +\IfCommon{maincls}{Bei den Klassen \Class{scrbook} und \Class{scrreprt} sind + Titelseiten voreingestellt. Demgegenüber verwendet \Class{scrartcl} in der + Voreinstellung einen Titelkopf.}% +\IfCommon{scrextend}{Die Voreinstellung ist von der verwendeten Klasse + abhängig und wird von \Package{scrextend} kompatibel zu den Standardklassen + erkannt. Setzt eine Klasse keine entsprechende Voreinstellung, so ist der + Titelkopf voreingestellt.}% +% +\EndIndex{Option}{titlepage~=\PName{Ein-Aus-Wert}} + + +\begin{Declaration} + \XMacro{begin}\PParameter{\Environment{titlepage}}\\ + \quad\dots\\ + \XMacro{end}\PParameter{titlepage} +\end{Declaration}% +\BeginIndex{Env}{titlepage}% +Grundsätzlich werden bei den Standardklassen und bei {\KOMAScript} alle +Titelseiten in einer speziellen Umgebung, der +\Environment{titlepage}-Umgebung, gesetzt. Diese Umgebung startet immer mit +einer neuen Seite -- im zweiseitigen Layout sogar mit einer neuen rechten +Seite -- im einspaltigen Modus. Für eine Seite wird der Seitenstil mit +\Macro{thispagestyle}\PParameter{empty} geändert, so dass weder Seitenzahl +noch Kolumnentitel ausgegeben werden. Am Ende der Umgebung wird die Seite +automatisch beendet. Sollten Sie nicht das automatische Layout der Titelei, +wie es das nachfolgend beschriebene \Macro{maketitle} bietet, verwenden +können, ist zu empfehlen, eine eigene Titelei mit Hilfe dieser Umgebung zu +entwerfen. + +\begin{Example} + Angenommen, Sie wollen eine Titelseite, auf der lediglich oben links +% möglichst groß und fett das Wort »Me« steht -- kein Autor, kein Datum, + nichts weiter. Folgendes Dokument ermöglicht das: +\ifCommonmaincls +\begin{lstcode} + \documentclass{scrbook} + \begin{document} + \begin{titlepage} + \textbf{\Huge Me} + \end{titlepage} + \end{document} +\end{lstcode} +\else +\begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \begin{document} + \begin{titlepage} + \textbf{\Huge Me} + \end{titlepage} + \end{document} +\end{lstcode} +\fi + Einfach? Stimmt. +\end{Example} +% +\EndIndex{Env}{titlepage} + + +\begin{Declaration} + \Macro{maketitle}\OParameter{Seitenzahl} +\end{Declaration}% +\BeginIndex{Cmd}{maketitle}% +Während bei den Standardklassen nur maximal eine Titelseite mit den drei +Angaben Titel, Autor und Datum existiert, können bei {\KOMAScript} mit +\Macro{maketitle} bis zu sechs Titelseiten gesetzt werden. Im Gegensatz zu +den Standardklassen kennt \Macro{maketitle} bei {\KOMAScript} außerdem noch +ein optionales nummerisches Argument. Findet es Verwendung, so wird die +Nummer als Seitenzahl der ersten Titelseite benutzt. Diese Seitenzahl wird +jedoch nicht ausgegeben, sondern beeinflusst lediglich die Zählung. Sie +sollten hier unbedingt eine ungerade Zahl wählen, da sonst die gesamte Zählung +durcheinander gerät. Meiner Auf"|fassung nach gibt es nur zwei sinnvolle +Anwendungen für das optionale Argument. Zum einen könnte man dem +Schmutztitel\Index[indexmain]{Schmutztitel} die logische Seitenzahl \(-\)1 +geben, um so die Seitenzählung erst ab der Haupttitelseite mit 1 zu +beginnen. Zum anderen könnte man mit einer höheren Seitenzahl beginnen, +beispielsweise 3, 5 oder 7, um so weitere Titelseiten zu berücksichtigen, die +erst vom Verlag hinzugefügt werden. Wird ein Titelkopf verwendet, wird das +optionale Argument ignoriert. Dafür kann der Seitenstil einer solchen Titelei +durch Umdefinierung des Makros \Macro{titlepagestyle} (siehe +\autoref{sec:maincls.pagestyle}, +\autopageref{desc:maincls.cmd.titlepagestyle}) verändert werden. + +Die folgenden Anweisungen führen nicht unmittelbar zum Setzen der Titelei. Das +Setzen der Titelei erfolgt immer mit \Macro{maketitle}. Es sei an dieser +Stelle auch darauf hingewiesen, dass \Macro{maketitle} nicht innerhalb einer +\Environment{titlepage}-Umgebung zu verwenden ist. Wie in den Beispielen +angegeben, sollte man nur entweder \Macro{maketitle} oder +\Environment{titlepage} verwenden. + +Mit den nachfolgend erklärten Anweisungen werden lediglich die Inhalte der +Titelei festgelegt. Sie müssen daher auch unbedingt vor \Macro{maketitle} +verwendet werden. Es ist jedoch nicht notwendig und bei Verwendung des +\Package{babel}-Pakets\IndexPackage{babel} (siehe \cite{package:babel}) auch +nicht empfehlenswert, diese Anweisungen in der Dokumentpräambel vor +\Macro{begin}\PParameter{document} zu verwenden. Beispieldokumente finden Sie +am Ende des Abschnitts. + + +\begin{Declaration} + \Macro{extratitle}\Parameter{Schmutztitel} +\end{Declaration}% +\BeginIndex{Cmd}{extratitle}% +\begin{Explain}% + Früher war der Buchblock oftmals nicht durch einen Buchdeckel vor + Verschmutzung geschützt. Diese Aufgabe übernahm dann die erste Seite des + Buches, die meist einen Kurztitel, eben den \emph{Schmutztitel} trug. Auch + heute noch wird diese Extraseite vor dem eigentlichen Haupttitel gerne + verwendet und enthält dann Verlagsangaben, Buchreihennummer und ähnliche + Angaben. +\end{Explain} +Bei {\KOMAScript} ist es möglich, vor der eigentlichen Titelseite eine weitere +Seite zu setzen. Als \PName{Schmutztitel}\Index{Schmutztitel} kann dabei +beliebiger Text -- auch mehrere Absätze -- gesetzt werden. Der Inhalt von +\PName{Schmutztitel} wird von {\KOMAScript} ohne zusätzliche Beeinflussung der +Formatierung ausgegeben. Dadurch ist dessen Gestaltung völlig dem Anwender +überlassen. Die Rückseite des Schmutztitels bleibt leer. Der Schmutztitel +ergibt auch dann eine eigene Titelseite, wenn mit Titelköpfen gearbeitet +wird. Die Ausgabe des mit \Macro{extratitle} definierten Schmutztitels erfolgt +als Bestandteil der Titelei mit \Macro{maketitle}. + +\begin{Example} + Kommen wir auf das Beispiel von oben zurück und gehen davon aus, dass das +% spartanische »Me« nur den Schmutztitel darstellt. Nach dem Schmutztitel soll + noch der Haupttitel folgen. Dann kann wie folgt verfahren werden: +\ifCommonmaincls + \begin{lstcode} + \documentclass{scrbook} + \begin{document} + \extratitle{\textbf{\Huge Me}} + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\else + \begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \begin{document} + \extratitle{% + \textbf{\Huge Me}% + } + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\fi + Sie können den Schmutztitel aber auch horizontal zentriert und etwas + tiefer setzen: +\ifCommonmaincls + \begin{lstcode} + \documentclass{scrbook} + \begin{document} + \extratitle{\vspace*{4\baselineskip} + \begin{center}\textbf{\Huge Me}\end{center}} + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\else + \begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \begin{document} + \extratitle{% + \vspace*{4\baselineskip} + \begin{center} + \textbf{\Huge Me} + \end{center}% + } + \title{It's me} + \maketitle + \end{document} + \end{lstcode} +\fi + Die Anweisung \Macro{title} ist grundsätzlich notwendig, damit die Beispiele + fehlerfrei sind. Sie wird nachfolgend erklärt. +\end{Example} +% +\EndIndex{Cmd}{extratitle} + + +\begin{Declaration} + \Macro{titlehead}\Parameter{Kopf}\\ + \Macro{subject}\Parameter{Typisierung}\\ + \Macro{title}\Parameter{Titel}\\ + \Macro{subtitle}\Parameter{Untertitel}\\ + \Macro{author}\Parameter{Autor}\\ + \Macro{date}\Parameter{Datum}\\ + \Macro{publishers}\Parameter{Herausgeber}\\ + \Macro{and}\\ + \Macro{thanks}\Parameter{Fußnote} +\end{Declaration}% +\BeginIndex{Cmd}{titlehead}% +\BeginIndex{Cmd}{subject}% +\BeginIndex{Cmd}{title}% +\BeginIndex{Cmd}{subtitle}% +\BeginIndex{Cmd}{author}% +\BeginIndex{Cmd}{date}% +\BeginIndex{Cmd}{publishers}% +\BeginIndex{Cmd}{and}% +\BeginIndex{Cmd}{thanks}% +Für den Inhalt der Haupttitelseite stehen sieben Elemente zur Verfügung. Die +Ausgabe der Haupttitelseite erfolgt als Bestandteil der Titelei mit +\Macro{maketitle}, während die hier aufgeführten Anweisungen lediglich der +Definition der entsprechenden Elemente dienen. + +Der \PName{Kopf}\Index[indexmain]{Titel>Seitenkopf} des Haupttitels wird mit +der Anweisung \Macro{titlehead} definiert. Er wird über die gesamte Textbreite +in normalem Blocksatz am Anfang der Seite ausgegeben. Er kann vom Anwender +frei gestaltet werden. + +Die \PName{Typisierung}\Index[indexmain]{Typisierung} wird unmittelbar über +dem \PName{Titel} ausgegeben. Dabei\ChangedAt{v2.95}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} findet die Schriftumschaltung für das +Element \FontElement{subject}\IndexFontElement{subject} Anwendung. Die +Voreinstellung, die in \autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts} }% +\ zu finden ist, kann mit Hilfe der Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) verändert werden. + +Der \PName{Titel} wird in einer sehr großen Schrift ausgegeben. +Dabei\ChangedAt{v2.8p}{\Class{scrbook}\and \Class{scrreprt}\and + \Class{scrartcl}} findet abgesehen von der Größe auch die Schriftumschaltung +für das Element \FontElement{title}\IndexFontElement{title} Anwendung. +Voreingestellt ist die gleiche Schrift, die für das Element +\FontElement{disposition}\IndexFontElement{disposition} verwendet wird (siehe +\autoref{tab:maincls.elementsWithoutText}, +\autopageref{tab:maincls.elementsWithoutText}). Die Voreinstellungen können +mit Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) verändert +werden. Die Größe ist jedoch davon unabhängig (siehe +\autoref{tab:maincls.mainTitle}, \autopageref{tab:maincls.mainTitle}). + +Der \PName{Untertitel}\ChangedAt{v2.97c}{\Class{scrbook}\and + \Class{scrreprt}\and \Class{scrartcl}} wird in der über das Element +\FontElement{subtitle}\IndexFontElement{subtitle} eingestellten Schrift knapp +unter dem Titel ausgegeben. Die Voreinstellung, die +\autoref{tab:maincls.titlefonts}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.titlefonts}}% +\ zu entnehmen ist, kann mit Hilfe der Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) verändert werden. + +\IfCommon{maincls}{% +\begin{table} + \centering + \caption{Schriftvoreinstellungen für die Elemente des Titels} + \begin{tabular}{ll} + \toprule + Element-Name & Voreinstellung \\ + \midrule + \FontElement{subject} & + \Macro{normalfont}\Macro{normalcolor}\Macro{bfseries}\Macro{Large} \\ + \FontElement{title} & \Macro{usekomafont}\PParameter{disposition} \\ + \FontElement{subtitle} & + \Macro{usekomafont}\PParameter{title}\Macro{large} \\ + \bottomrule + \end{tabular} + \label{tab:maincls.titlefonts} +\end{table}} + +Unter dem \PName{Untertitel} folgt der \PName{Autor}\Index[indexmain]{Autor}. +Es kann auch durchaus mehr als ein Autor innerhalb des Arguments von +\Macro{author} angegeben werden. Die Autoren sind dann mit \Macro{and} +voneinander zu trennen. + +Unter dem Autor oder den Autoren folgt das Datum\Index{Datum}. +Dabei ist das aktuelle Datum, \Macro{today}\IndexCmd{today}, +voreingestellt. Es kann jedoch mit \Macro{date} eine beliebige +Angabe -- auch ein leere -- erreicht werden. + +Als Letztes folgt schließlich der +\PName{Herausgeber}\Index[indexmain]{Herausgeber}. Selbstverständlich +kann diese Anweisung auch für andere Angaben geringer Wichtigkeit +verwendet werden. Notfalls kann durch Verwendung einer \Macro{parbox} +über die gesamte Seitenbreite auch erreicht werden, dass diese Angabe +nicht zentriert, sondern im Blocksatz gesetzt wird. Sie ist dann als +Äquivalent zum Kopf zu betrachten. Dabei ist jedoch zu beachten, +dass sie oberhalb von eventuell vorhandenen Fußnoten ausgegeben wird. + +Fußnoten\Index{Fussnoten=Fußnoten} werden auf der Titelseite nicht mit +\Macro{footnote}, sondern mit der Anweisung \Macro{thanks} erzeugt. Sie dienen +in der Regel für Anmerkungen bei den Autoren. Als Fußnotenzeichen werden dabei +Symbole statt Zahlen verwendet. Es ist zu beachten, dass \Macro{thanks} +innerhalb des Arguments einer der übrigen Anweisungen, beispielsweise im +Argument \PName{Autor} der Anweisung \Macro{author} zu verwenden ist. + +Bis auf den \PName{Kopf} und eventuelle Fußnoten werden alle Ausgaben +horizontal zentriert. Diese Angaben sind noch einmal kurz zusammengefasst in +\autoref{tab:maincls.mainTitle}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.mainTitle} }% +\ zu finden. + +\IfCommon{maincls}{\begin{table} + \centering + \caption[Der Haupttitel]{Schriftgröße und horizontale + Ausrichtung der Elemente der Haupttitelseite in der Reihenfolge + ihrer vertikalen Position von oben nach unten bei Verwendung von + \Macro{maketitle}} + \begin{tabular}{llll} + \toprule + Element & Anweisung & Schrift & Satz \\ + \midrule + Seitenkopf & \Macro{titlehead} & \Macro{normalsize} & Blocksatz \\ + Typisierung & \Macro{subject} & \Macro{usekomafont}\PParameter{subject} + & zentriert \\ + Titel & \Macro{title} & + \Macro{huge}\Macro{usekomafont}\PParameter{title} & zentriert \\ + Untertitel & \Macro{subtitle} & + \Macro{usekomafont}\PParameter{subtitle} & zentriert \\ + Autoren & \Macro{author} & \Macro{Large} & zentriert \\ + Datum & \Macro{date} & \Macro{Large} & zentriert \\ + Herausgeber & \Macro{publishers} & \Macro{Large} & zentriert \\ + \bottomrule + \end{tabular} + \label{tab:maincls.mainTitle} +\end{table}} + +\begin{Example} + Nehmen wir nun einmal an, Sie schreiben eine Diplomarbeit. Dabei sei + vorgegeben, dass die Titelseite oben linksbündig das Institut + einschließlich Adresse und rechtsbündig das Semester wiedergibt. Wie + üblich ist ein Titel einschließlich Autor und Abgabedatum zu setzen. + Außerdem soll der Betreuer angegeben und zu erkennen sein, dass es + sich um eine Diplomarbeit handelt. Sie könnten das wie folgt + erreichen: +\ifCommonmaincls + \iffree{}{\newpage}% Umbruchkorrektur +\begin{lstcode} + \documentclass{scrbook} + \usepackage{ngerman} + \begin{document} + \titlehead{{\Large Universit"at Schlauenheim + \hfill SS~2001\\} + Institut f"ur Raumkr"ummung\\ + Hochschulstra"se~12\\ + 34567 Schlauenheim} + \subject{Diplomarbeit} + \title{Digitale Raumsimulation mit dem DSP\,56004} + \subtitle{Klein aber fein?} + \author{cand. stup. Uli Ungenau} + \date{30. Februar 2001} + \publishers{Betreut durch Prof. Dr. rer. stup. Naseweis} + \maketitle + \end{document} +\end{lstcode} +\else +\begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \usepackage{ngerman} + \begin{document} + \titlehead{{\Large Universit"at Schlauenheim + \hfill SS~2001\\} + Institut f"ur Raumkr"ummung\\ + Hochschulstra"se~12\\ + 34567 Schlauenheim} + \subject{Diplomarbeit} + \title{Digitale Raumsimulation mit dem DSP\,56004} + \subtitle{Klein aber fein?} + \author{cand. stup. Uli Ungenau} + \date{30. Februar 2001} + \publishers{Betreut durch Prof. Dr. rer. stup. + Naseweis} + \maketitle + \end{document} +\end{lstcode} +\fi +\end{Example} + +\begin{Explain} + Ein häufiges Missverständnis betrifft die Bedeutung der + Haupttitelseite. Irrtümlich wird oft angenommen, es handle sich dabei um den + Buchumschlag oder Buchdeckel. Daher wird häufig erwartet, dass die + Titelseite nicht den Randvorgaben für doppelseitige Satzspiegel gehorcht, + sondern rechts und links gleich große Ränder besitzt. Nimmt man jedoch + einmal ein Buch zur Hand und klappt es auf, trifft man sehr schnell auf + mindestens eine Titelseite unter dem Buchdeckel innerhalb des so genannten + Buchblocks. Genau diese Titelseiten werden mit \Macro{maketitle} + gesetzt. Wie beim Schmutztitel handelt es sich also auch bei der + Haupttitelseite um eine Seite innerhalb des Buchblocks, die deshalb dem + Satzspiegel des gesamten Dokuments gehorcht. Überhaupt ist ein Buchdeckel, + das \emph{Cover}, etwas, was man in einem getrennten Dokument + erstellt. Schließlich hat er oft eine sehr individuelle Gestalt. Es spricht + auch nichts dagegen, hierfür ein Grafik- oder DTP-Programm zu Hilfe zu + nehmen. Ein getrenntes Dokument sollte auch deshalb verwendet werden, weil + es später auf ein anderes Druckmedium, etwa Karton, und möglicherweise mit + einem anderen Drucker ausgegeben werden soll. +\end{Explain} +% +\EndIndex{Cmd}{titlehead}% +\EndIndex{Cmd}{subject}% +\EndIndex{Cmd}{title}% +\EndIndex{Cmd}{subtitle}% +\EndIndex{Cmd}{author}% +\EndIndex{Cmd}{date}% +\EndIndex{Cmd}{publishers}% +\EndIndex{Cmd}{and}% +\EndIndex{Cmd}{thanks}% + + +\begin{Declaration} + \Macro{uppertitleback}\Parameter{Titelrückseitenkopf}\\ + \Macro{lowertitleback}\Parameter{Titelrückseitenfuß} +\end{Declaration}% +\BeginIndex{Cmd}{uppertitleback}% +\BeginIndex{Cmd}{lowertitleback}% +Im doppelseitigen Druck bleibt bei den Standardklassen die Rückseite des +Blatts mit der Titelseite leer. Bei {\KOMAScript} lässt sich die Rückseite der +Haupttitelseite hingegen für weitere Angaben nutzen. Dabei wird zwischen genau +zwei Elementen unterschieden, die der Anwender frei gestalten kann: dem +\PName{Titelrückseitenkopf}\Index{Titel>Rueckseite=Rückseite} und dem +\PName{Titelrückseitenfuß}. Dabei kann der Kopf bis zum Fuß reichen und +umgekehrt. \iffree{Nimmt man diese Anleitung als Beispiel, so wurde der + Haftungsausschluss mit Hilfe von \Macro{uppertitleback} + gesetzt.}{Beispielsweise hätte man die Verlagsinformationen zu diesem Buch + wahlweise mit \Macro{uppertitleback} oder \Macro{lowertitleback} setzen + können.}% +% +\EndIndex{Cmd}{uppertitleback}% +\EndIndex{Cmd}{lowertitleback}% + + +\begin{Declaration} + \Macro{dedication}\Parameter{Widmung} +\end{Declaration}% +\BeginIndex{Cmd}{dedication}% +{\KOMAScript} bietet eine eigene Widmungsseite. Diese +Widmung\Index{Widmung} wird zentriert und in etwas größerer Schrift +gesetzt. Die Rückseite ist wie bei der Seite mit dem Schmutztitel +grundsätzlich leer. Die Widmungsseite wird zusammen mit der restlichen +Titelei mit \Macro{maketitle} ausgegeben und muss daher vor dieser +Anweisung definiert sein. + +\begin{Example} + Nehmen wir dieses Mal an, dass Sie einen Gedichtband schreiben, den + Sie Ihrer Frau widmen wollen. Das könnte wie folgt aussehen: +\ifCommonmaincls +\begin{lstcode} + \documentclass{scrbook} + \usepackage{ngerman} + \begin{document} + \extratitle{\textbf{\Huge In Liebe}} + \title{In Liebe} + \author{Prinz Eisenherz} + \date{1412} + \lowertitleback{Dieser Gedichtband wurde mit Hilfe + von {\KOMAScript} und {\LaTeX} gesetzt.} + \uppertitleback{Selbstverlach\par + Auf"|lage: 1 Exemplar} + \dedication{Meinem Schnuckelchen\\ + in ewiger Liebe\\ + von Deinem Hasenboppelchen.} + \maketitle + \end{document} +\end{lstcode} +\else +\begin{lstcode} + \documentclass{book} + \usepackage[extendedfeature=title]{scrextend} + \usepackage{ngerman} + \begin{document} + \extratitle{% + \textbf{\Huge In Liebe}} + \title{In Liebe} + \author{Prinz Eisenherz} + \date{1412} + \lowertitleback{% + Dieser Gedichtband wurde mit Hilfe von + {\KOMAScript} und {\LaTeX} gesetzt.} + \uppertitleback{% + Selbstverlach\par + Auf"|lage: 1 Exemplar} + \dedication{% + Meinem Schnuckelchen\\ + in ewiger Liebe\\ + von Deinem Hasenboppelchen.} + \maketitle + \end{document} +\end{lstcode} +\fi + Ich bitte, die Kosenamen entsprechend Ihren Vorlieben zu ersetzen. +\end{Example} +% +\EndIndex{Cmd}{dedication}% +% +\EndIndex{Cmd}{maketitle}% +% +\EndIndex{}{Titel} +\fi% IgnoreThis + +\or %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<15>> + +\section{Schlauer Spruch} +\label{sec:\csname label@base\endcsname.dictum}% +\ifshortversion\IgnoreThisfalse\IfNotCommon{maincls}{\IgnoreThistrue}\fi% +\ifIgnoreThis +Es gilt sinngemäß, was in \autoref{sec:maincls.dictum} geschrieben +wurde. \IfCommon{scrextend}{Allerdings werden von \Package{scrextend} die + Anweisungen \Macro{setchapterpreamble} und \Macro{setpartpreamble} nicht + definiert. Ob die verwendete Klasse eine entsprechende Anweisung bietet, ist + der Anleitung zur jeweiligen Klasse zu entnehmen.} +\else +\BeginIndex{}{Spruch}% +\BeginIndex{}{Zitat}% +\BeginIndex{}{Redewendung}% + +Ein häufiger anzutreffendes Element ist ein Zitat oder eine Redewendung, die +rechtsbündig unter oder über einer Überschrift gesetzt wird. Dabei werden der +Spruch selbst und der Quellennachweis in der Regel speziell formatiert. + + +\begin{Declaration} + \Macro{dictum}\OParameter{Urheber}\Parameter{Spruch}\\ + \Macro{dictumwidth}\\ + \Macro{dictumauthorformat}\Parameter{Urheber}\\ + \Macro{raggeddictum}\\ + \Macro{raggeddictumtext}\\ + \Macro{raggeddictumauthor} +\end{Declaration}% +\BeginIndex{Cmd}{dictum}% +\BeginIndex{Cmd}{dictumwidth}% +\BeginIndex{Cmd}{dictumauthorformat}% +\BeginIndex{Cmd}{raggeddictum}% +\BeginIndex{Cmd}{raggeddictumtext}% +\BeginIndex{Cmd}{raggeddictumauthor}% +Ein solcher Spruch kann mit der Anweisung \Macro{dictum} gesetzt werden. % +\IfCommon{maincls}{Bei \KOMAScript-Klassen wird für Kapitel oder die Teile + empfohlen, \Macro{dictum} als obligatorisches Argument einer der Anweisungen + \Macro{setchapterpreamble} oder \Macro{setpartpreamble} (siehe + \autoref{sec:maincls.structure}, + \autopageref{desc:maincls.cmd.setchapterpreamble}) zu verwenden. Dies ist + jedoch nicht zwingend.\par}% +Der Spruch wird zusammen mit einem optional anzugebenden \PName{Urheber} in +einer \Macro{parbox}\IndexCmd{parbox} (siehe \cite{latex:usrguide}) der Breite +\Macro{dictumwidth} gesetzt. Dabei ist \Macro{dictumwidth} keine Länge, die +mit \Macro{setlength} gesetzt wird. Es handelt sich um ein Makro, das mit +\Macro{renewcommand} umdefiniert werden kann. Vordefiniert ist +\lstinline;0.3333\textwidth;, also ein Drittel der jeweiligen Textbreite. Die +Box selbst wird mit der Anweisung \Macro{raggeddictum} +ausgerichtet. Voreingestellt ist dabei +\Macro{raggedleft}\IndexCmd{raggedleft}, also rechtsbündig. +\Macro{raggeddictum} kann mit Hilfe von \Macro{renewcommand} umdefiniert +werden. + +Innerhalb der Box wird der \PName{Spruch} mit \Macro{raggeddictumtext} +angeordnet. Voreingestellt ist hier \Macro{raggedright}\IndexCmd{raggedright}, +also linksbündig. Eine Umdefinierung ist auch hier mit \Macro{renewcommand} +möglich. Die Ausgabe erfolgt in der für Element \FontElement{dictumtext} +eingestellten Schriftart, die mit den Anweisungen \Macro{setkomafont} und +\Macro{addtokomafont} (siehe \autoref{sec:\csname + label@base\endcsname.textmarkup}, \autopageref{desc:\csname + label@base\endcsname.cmd.setkomafont}) geändert werden kann. Die +Voreinstellung entnehmen Sie bitte \autoref{tab:maincls.dictumfont}% +\IfNotCommon{maincls}{, \autopageref{tab:maincls.dictumfont}}% +. + +Ist ein \PName{Urheber} angegeben, so wird dieser mit einer Linie über die +gesamte Breite der \Macro{parbox} vom \PName{Spruch} abgetrennt. Mit +\Macro{raggeddictumauthor} wird die Ausrichtung vorgenommen. Voreingestellt +ist \Macro{raggedleft}. Auch diese Anweisung kann mit \Macro{renewcommand} +umdefiniert werden. Die Ausgabe erfolgt in der Form, die mit +\Macro{dictumauthorformat} festgelegt ist. Das Makro erwartet schlicht den +\Macro{Urheber} als Argument. In der Voreinstellung ist +\Macro{dictumauthorformat} als +\begin{lstcode}[aboveskip={1ex plus 2ex},belowskip={1ex plus 2ex}] + \newcommand*{\dictumauthorformat}[1]{(#1)} +\end{lstcode} +definiert. Der \PName{Urheber} wird also in runde Klammern gesetzt. Für das +Element \PName{dictumauthor} kann dabei eine Abweichung der Schrift von der +des Elementes \PName{dictumtext} definiert werden. Die Voreinstellung +entnehmen Sie bitte \autoref{tab:maincls.dictumfont}. Eine Änderung ist mit +Hilfe der Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} (siehe +\autoref{sec:\csname label@base\endcsname.textmarkup}, +\autopageref{desc:\csname label@base\endcsname.cmd.setkomafont}) möglich.% +% +\ifCommonmaincls +\begin{table} + \centering% + \caption{Schriftvoreinstellungen für die Elemente des Spruchs} + \begin{tabular}{ll} + \toprule + Element & Voreinstellung \\ + \midrule + \FontElement{dictumtext} & + \Macro{normalfont}\Macro{normalcolor}\Macro{sffamily}\Macro{small}\\ + \FontElement{dictumauthor} & + \Macro{itshape}\\ + \bottomrule + \end{tabular} + \label{tab:maincls.dictumfont} +\end{table} + +Wird \Macro{dictum} innerhalb der Anweisung \Macro{setchapterpreamble} oder +\Macro{setpartpreamble} (siehe \autoref{sec:maincls.structure}, +\autopageref{desc:maincls.cmd.setchapterpreamble}) verwendet, so ist +Folgendes zu beachten: Die horizontale Anordnung erfolgt immer mit +\Macro{raggeddictum}. Das optionale Argument zur horizontalen Anordnung, das +die beiden Anweisungen vorsehen, bleibt daher ohne Wirkung. \Macro{textwidth} +ist nicht die Breite des gesamten Textkörpers, sondern die aktuelle +Textbreite. Ist also die Breite \Macro{dictumwidth} als +\lstinline;.5\textwidth; definiert und bei \Macro{setchapterpreamble} wird als +optionales Argument für die Breite ebenfalls \lstinline;.5\textwidth; +angegeben, so erfolgt die Ausgabe in einer Box, deren Breite ein Viertel der +Breite des Textkörpers ist. Es wird empfohlen, bei Verwendung von +\Macro{dictum} auf die optionale Angabe einer Breite bei +\Macro{setchapterpreamble} oder \Macro{setpartpreamble} zu verzichten. + +Sollen mehrere schlaue Sprüche untereinander gesetzt werden, so sollten diese +durch einen zusätzlichen Abstand vertikal voneinander abgesetzt werden. Ein +solcher kann leicht mit der Anweisung \Macro{bigskip}\IndexCmd{bigskip} +gesetzt werden. + +\begin{Example} + Sie schreiben ein Kapitel über die moderne Ehe. Dabei wollen sie in der + Präambel zur Kapitelüberschrift einen schlauen Spruch setzen. Dieser soll + unter der Überschrift erscheinen. Also schreiben Sie: + \begin{lstcode} + \setchapterpreamble[u]{% + \dictum[Schiller]{Drum prüfe, + wer sich ewig bindet \dots}} + \chapter{Die moderne Ehe} + \end{lstcode} + Die Ausgabe erfolgt dann in der Form: + \begin{ShowOutput} + {\usekomafont{disposition}\usekomafont{chapter}% + 17\enskip Die moderne Ehe\par} + \vspace{\baselineskip} + \dictum[Schiller]{Drum prüfe, wer sich ewig bindet \dots} + \end{ShowOutput} + + Wenn Sie wollen, dass nicht ein Drittel, sondern nur ein Viertel der + verfügbaren Textbreite für den Spruch verwendet wird, so definieren Sie + \Macro{dictumwidth} wie folgt um: + \begin{lstcode} + \renewcommand*{\dictumwidth}{.25\textwidth} + \end{lstcode} +\end{Example} + +An dieser Stelle sei noch auf das Paket~\cite{package:ragged2e} hingewiesen, +mit dem man Flattersatz mit Trennung erreichen kann.% +\fi +% +\EndIndex{Cmd}{dictum}% +\EndIndex{Cmd}{dictumwidth}% +\EndIndex{Cmd}{dictumauthorformat}% +\EndIndex{Cmd}{raggeddictum}% +\EndIndex{Cmd}{raggeddictumtext}% +\EndIndex{Cmd}{raggeddictumauthor}% +% +\EndIndex{}{Redewendung}% +\EndIndex{}{Zitat}% +\EndIndex{}{Spruch}% +\fi % IgnoreThis + +\else %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <<Error>> + +\ClassError{scrguide}{No commen part \the\value{commonpar}\space known}{} + +\fi + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: "../guide" +%%% End: diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex index cce91366963..5fb9a757d58 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/tocbasic.tex @@ -38,7 +38,7 @@ %% standard classes created by The LaTeX3 Project 1994-1996. %% %%% From File: tocbasic.dtx -\def\tocbasicversion{2009/01/01 v3.02} +\def\tocbasicversion{2009/01/20 v3.02a} \ProvidesFile{tocbasic.tex} [\tocbasicversion (manual)% diff --git a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex index 057354beab2..6fc1f87ef3f 100644 --- a/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex +++ b/Master/texmf-dist/source/latex/koma-script/doc/english/typearea.tex @@ -45,53 +45,100 @@ % % ====================================================================== -\ProvidesFile{typearea.tex}[2008/07/10 KOMA-Script guide (chapter: typearea)] +\ProvidesFile{typearea.tex}[2009/01/02 KOMA-Script guide (chapter: typearea)] \translator{Markus Kohm\and Gernot Hassenpflug} % Date of translated german file: 2006-11-29 +% Updated: 2008-01-02 \chapter{Construction of the Page Layout with \Package{typearea}} \labelbase{typearea} -\textsc{Note:} Following commands are still missing in this chapter: -\Macro{KOMAoptions}, \Macro{KOMAoption}, \Macro{recalctypearea}. - -\textsc{Note:} Following options are still missing in this chapter: -\OptionValue{BCOR}{current}, \OptionValue{twoside}{semi}, -\KOption{headheight}\PName{height}, \OptionValue{pagesize}{automedia}. +%\textsc{Note:} Following commands are still missing in this chapter: +%\Macro{KOMAoptions}, \Macro{KOMAoption}, \Macro{recalctypearea}. +% +%\textsc{Note:} Following options are still missing in this chapter: +%\OptionValue{BCOR}{current}, \OptionValue{twoside}{semi}, +%\KOption{headheight}\PName{height}, \OptionValue{pagesize}{automedia}. +% +%% Done 2 Jan: sections 2.1, 2.2, 2.3 +%% section 2.4 skipped +%% Done 3 Jan: parts of section 2.5 +%% \OptionValue{BCOR}{current} +%% \OptionValue{twoside}{semi} +%% \OptionValue{headheight}{height} +%% Done 4 Jan: completed section 2.5 +%% \OptionValue{areaset} +%% section 2.4 (common.tex) +%% section 2.6 +%% \OptionValue{pagesize}{automedia} +%% section 2.7 + +Many {\LaTeX} classes, including the standard classes, present the user +with the largely fixed configuration of margins and typearea. With the +standard classes, the configuration determined is very much dependent +on the chosen font size. There do exist separate packages, such as +\Package{geometry}\IndexPackage{geometry} (see +\cite{package:geometry}), which give the user complete control, but +also full responsibility, for the settings of typearea and margins. + +\KOMAScript{} takes a somewhat different approach with its +\Package{typearea} package. Here the user is given several +construction setting and automatization possibilities based on +established typography standards in order to help guide him or her in +making a good choice. + +It should be noted that the \Package{typearea} package makes use of +the \Package{scrbase} package. The latter is explained in the expert +section \iffree{of this document}{of this book} in +\autoref{cha:scrbase} from \autopageref{cha:scrbase} onwards. The +majority of the rules documented there are however not directed at the +user, but rather at class- and package authors. \section{Fundamentals of Page Layout} +\label{sec:typearea.basics} \begin{Explain} If you look at a single page of a book or other printed materials, - you will see that it consists of top, foot, left and right margins, - a (running) head area, the text block and a (running) foot area. - Looking closer, there is space between the head area and the text - block and between the text block and the foot area. The relations - between these areas are called the \emph{page layout}. - - The literature offers and discusses different algorithms and - heuristic approaches for constructing a good page layout. Often, + you will see that it consists of top, bottom, left and right + margins, a (running) head area, the text block and a (running) foot + area. There is also a space between the head area and the text + block, and between the text block and the foot area. The relations + between these areas are called the \emph{page + layout}.\Index[indexmain]{page layout} + +%% +%% GH: sollte man schon Hinweise zum Buch hineinarbeiten? Auskommentiert? +%% \ifx\BUCH\undefined\cite{DANTE:TK0402:MJK}\else(siehe +%% \autoref{cha:typeareaconstruction})\fi + The literature contains much discussion of different algorithms and + heuristic approaches for constructing a good page layout. Often mentioned is an approach which involves diagonals and their - intersections. The result is a page where the text block - proportions are related to the proportions of the \emph{page}. In a + intersections. The result is a page where the text block proportions + are related to the proportions of the \emph{page}. In a single-sided document, the left and the right margin should have - equal widths. - The relation of the upper margin to the lower margin should - be 1\(:\)2. In a double-sided document (e.\,g. a book) however, - the complete inner margin (the margin at the spine) should be the same as - each of the two outer margins. - - In the previous paragraph, we mentioned and emphasized the - \emph{page}. Erroneously, it is often thought that the format of - the page means the format of the paper. However, if you look at - a bound document, it is obvious that part of the paper vanishes in - the binding and that is not part of the visible page. It is not the format of - the paper which is important in the layout of a page, it is the - impression of the visible page to the reader. Therefore, it is - clear that the calculation of the page layout must account for the - ``lost'' paper in the binding and add this amount to the width of - the inner margin. This is called the \emph{binding correction}. + equal widths. The relation of the upper margin to the lower margin + should be 1\(:\)2. In a double-sided document\Index{double-sided} + (e.\,g. a book) however, the complete inner margin (the margin at + the spine) should be the same as each of the two outer margins; in + other words, a single page contributes only half of the inner + margin. + + In the previous paragraph, we mentioned and emphasized \emph{the + page}. Erroneously, it is often thought that with the page format + the page is also meant the paper format.\Index[indexmain]{paper + format} However, if you look at a bound document, it is obvious + that part of the paper vanishes in the + binding\Index[indexmain]{binding} and is no longer part of the + visible page. For the page layout, it is not the format of the paper + which is important, it is the impression of the visible page to the + reader. Therefore, it is clear that the calculation of the page + layout must account for the ``lost'' paper in the binding and add + this amount to the width of the inner margin. This is called the + \emph{binding correction}.\Index[indexmain]{binding correction} The + binding correction is therefore calculated as part of the + \emph{gutter}\Index[indexmain]{gutter}, not however of the visible + inner margin. The binding correction depends on the process of actually producing the document and thus cannot be calculated in general. @@ -106,85 +153,112 @@ text block. Once we know one of these values, we can calculate all the other values from the paper format and the page format or the binding correction. - \begin{eqnarray*} - \Var{textblock~height} : \Var{textblock~width} &=& - \Var{page~height} : \Var{page~width}\\ + \begin{align*} + \Var{textblock~height} \Index{textblock height} : \Var{textblock~width} &= + \Var{page~height}\Index{page} : \Var{page~width}\\ + \Var{top~margin}\Index{margin} : \Var{foot~margin} &= + \text{1} : \text{2} \\ % - \Var{page~width} &=& \Var{paper~width} - \Var{binding~correction}\\ + \Var{left~margin} : \Var{right~margin} &= \text{1} : \text{1} \\ % - \Var{top~margin} + \Var{foot~margin} &=& + \Var{half~inner~margin} : \Var{outer~margin} &= \text{1} : \text{2} \\ +% + \Var{page~width} &= + \Var{paper~width}\Index{paper} - + \Var{binding~correction}\Index{binding correction}\\ +% + \Var{top~margin} + \Var{bottom~margin} &= \Var{page~height} - \Var{textblock~height} \\ % - \Var{top~margin} : \Var{foot~margin} &=& 1 : 2 \\ + \Var{left~margin} + \Var{right~margin} &= + \Var{page~width} - \Var{textblock~width} \\ % - \Var{left~margin} : \Var{right~margin} &=& 1 : 1 \\ + \Var{half~inner~margin} + \Var{outer~margin} &= + \Var{page~width} - \Var{textblock~width} \\ % - \Var{half~inner~margin} &=& - \frac{1}{2}\Var{outer~margin} + \Var{binding~correction} \\ - \end{eqnarray*} - The values \Var{left~margin} and \Var{right~margin} only - exist in a single-sided document while \Var{inner~margin} and - \Var{outer~margin} only exist in a double-sided document. In - these equations, we work with \Var{half~inner~margin} since the full - inner margin belongs to a double-page. Thus, one page has half of - the inner margin. + \Var{half~inner~margin} + \Var{binding~correction} &= + \Var{gutter}\Index{gutter} + \end{align*} + \Index[indexmain]{margin}% + The values \Var{left~margin} and \Var{right~margin} only exist in a + single-sided document while \Var{half~inner~margin} and + \Var{outer~margin} only exist in a double-sided document. In these + equations, we work with \Var{half~inner~margin} since the full inner + margin belongs to a double-page. Thus, one page has only half of the + inner margin, \Var{half~inner~margin}. The question of the width of the textblock is also discussed in the literature. The optimum width depends on several factors: \begin{itemize} - \item size, width, type of the used font % !!! - \item line spacing % !!! + \item size, width, type of the font used + \item line spacing \item word length \item available room \end{itemize} - The importance of the font becomes clear once you think about - serifs. Serifs are fine lines % !!! - finishing off the letters. Letters whose main strokes run - orthogonal to the text line disturb the flow more than they - lead the eye along the line. Those letters have serifs at - the ends of the vertical strokes, however, so the horizontal serifs - lead the eye horizontally too. In addition, it helps the eye to - find the beginning of the next line. Thus, the line length for a - serif font can be slightly longer than for a sans serif font. - - In {\LaTeX}, the line spacing is about 20\% of the font - size. With commands like \Macro{linespread} or, better, packages like - \Package{setspace}, the line spacing can be changed. A wider line - spacing helps the eye to follow the line. A very wide line - spacing, on the other hand, disturbs reading because the eye has - to move a wide distance between lines. Also, the reader gets - uncomfortable because of the visible stripe effect. The uniform - gray value of the page gets spoiled. Still, with a wider line - spacing, the lines can be longer. - - The literature gives different values for good line lengths, depending - on the author. To some extent, this is due to the native language - of the author. Since the eye jumps from word to word, short words - make this task easier. Not considering language and font, a line - length of 60 to 70 letters, including spaces and - punctuation, is a usable compromise. This requires well-chosen line - spacing, but {\LaTeX}'s default is usually good enough. - - Before looking at the actual construction of the page layout, - there are some minor things to know. {\LaTeX} doesn't start the - first line of the text block at the upper edge of the text block, - but with a defined distance from it. Also, {\LaTeX} knows the commands - \Macro{raggedbottom} and \Macro{flushbottom}. \Macro{raggedbottom} - specifies that the last line of a page should be positioned - wherever it was calculated. This means that the position of this - line can be different on each page, up to the height of one line. - In double-sided documents this is usually undesirable. - \Macro{flushbottom} makes sure that the last line is always at the - lower edge of the text block. To achieve this, {\LaTeX} sometimes - needs to stretch vertical glue more than allowed. Paragraph skip - is such a stretchable, vertical glue, even when set to zero. In - order to not stretch the paragraph skip on normal pages where it - is the only stretchable glue, the height of the text block should - be a multiple of the height of the text line, including the - distance from the upper edge of the text block to the first line. + The importance of the font becomes clear once you think about the + meaning of serifs. Serifs\Index[indexmain]{serifs} are fine strokes + finishing off the lines of the letters. Letters whose main strokes + run orthogonal to the text line disturb the flow rather than keeping + and leading the eye along the line. Those letters then have serifs + at the ends of the vertical strokes so that the horizontal serifs + can help lead the eye horizontally. In addition, they help the eye + to find the beginning of the next line more quickly. Thus, the line + length for a serif font can be slightly longer than for a sans serif + font. + + With leading\Index[indexmain]{leading} is meant the vertical + distance between individual lines of text. In {\LaTeX}, the leading + is set at about 20\% of the font size. With commands like + \Macro{linespread}\IndexCmd{linespread} or, better, packages like + \Package{setspace}\IndexPackage{setspace} (see + \cite{package:setspace}), the leading can be changed. A wider + leading helps the eye to follow the line. A very wide leading, on + the other hand, disturbs reading because the eye has to move a wide + distance between lines. Also, the reader becomes uncomfortable + because of the visible stripe effect. The uniform gray value of the + page is thereby spoiled. Still, with a wider leading, the lines can + be longer. + + The literature gives different values for good line + lengths\Index[indexmain]{line length}, depending on the author. To + some extent, this is related to the native language of the + author. Since the eye jumps from word to word, short words make this + task easier. Considering all languages and fonts, a line length of + 60 to 70 characters, including spaces and punctuation, forms a + usable compromise. This requires well-chosen leading, but {\LaTeX}'s + default is usually good enough. Longer line lengths should only be + considered for highly-developed readers who spend several hours + daily reading. However, even for such, line lengths greater than 80 + characters are unsuitable. In any case, the leading must be + appropriately chosen. An extra 5\% to 10\% are recommended as a good + rule of thumb. With fonts such as Palatino, which require some 5\% + more leading even at normal line lengths, even more can be + required. + + Before looking at the actual construction of the page layout, there + are just some minor things left to know. {\LaTeX} does not start the + first line in the text block of a page at the upper edge of the text + block, but sets the baseline at a defined distance from the top of + the text block. Also, {\LaTeX} knows the commands + \Macro{raggedbottom}\IndexCmd{raggedbottom} and + \Macro{flushbottom}\IndexCmd{flushbottom}. \Macro{raggedbottom} + specifies that the last line of a page should be positioned wherever + it was calculated. This means that the position of this line can be + different on each page, up to the height of one line\,---\,in + combination of the end of the page with titles, figures, tables or + similar, even more. In double-sided documents this is usually + undesirable. \Macro{flushbottom} makes sure that the last line is + always at the lower edge of the text block. To achieve this, + {\LaTeX} sometimes needs to stretch vertical glue more than + allowed. Paragraph skip is such a stretchable, vertical glue, even + when set to zero. In order to not stretch the paragraph skip on + normal pages where it is the only stretchable glue, the height of + the text block should be set to a multiple of the height of the text + line, including the distance from the upper edge of the text block + to the first line. This concludes the introduction to page layout as handled by - {\KOMAScript}. Now, we can begin with the actual construction.\par + {\KOMAScript}. Now, we can begin with the actual construction. \end{Explain} @@ -192,40 +266,92 @@ \label{sec:typearea.divConstruction} \begin{Explain} - The easiest way to make sure that the text area has the same - ratios as the page is as follows: First, you subtract the - binding correction \Var{BCOR} from the inner edge of the paper. - Then you divide the rest of the page vertically into - \Var{DIV} rows of equal height. Next, you divide the page - horizontally into the same number (\Var{DIV}) of columns. Then you - take the uppermost row as the upper margin and the two lowermost - rows as the lower margin. If you print double-sided, you also take - the innermost column as the inner margin and the two outermost - columns as the outer margin. Then, you add the binding correction - \Var{BCOR} to the inner margin. The remainder of - the page is the text area. The width and the height of the text area result - automatically from the number of rows and columns \Var{DIV}. Since - the margins always need three rows/columns, \Var{DIV} must - be necessarily greater than three. In order that the text area occupy at - least twice as much space as the margins, \Var{DIV} should really be equal - to or greater than 9. With this value, the construction is known as the - \emph{classical division factor of 9}. + The easiest way to make sure that the text area has the same ratios + as the page is as follows: first, one subtracts the part \Var{BCOR}, + required for the binding correction\Index{binding correction}, from + the inner edge of the paper, and divides the rest of the page + vertically into \Var{DIV} rows of equal height; next, one divides + the page horizontally into the same number (\Var{DIV}) of columns; + then, one takes the uppermost row as the upper margin and the two + lowermost rows as the lower margin (if one is printing double-sided, + one must similarly take the innermost column as the inner margin and + the two outermost columns as the outer margin); then, one adds the + binding correction \Var{BCOR} to the inner margin. What now remains + of the page is the text area.\Index{text area} The width and the + height of the text area and margins result automatically from the + number of rows and columns \Var{DIV}. Since the margins always need + three stripes, \Var{DIV} must be necessarily greater than three. In + order that the text area occupy at least twice as much space as the + margins, \Var{DIV} should really be equal to or greater than 9. With + this value, the construction is also known as the \emph{classical + division factor of 9} (see \autoref{fig:typearea.nineparts}). + + \begin{figure} + \centering + \setlength{\unitlength}{.25mm} + \definecolor{komalight}{gray}{.75} + \definecolor{komamed}{gray}{.6} + \definecolor{komadark}{gray}{.3} + \begin{picture}(420,297) + % BCOR + \put(198,0){\color{komalight}\rule{24\unitlength}{297\unitlength}} + \multiput(198,2)(0,20){15}{\thinlines\line(0,1){10}} + \multiput(222,2)(0,20){15}{\thinlines\line(0,1){10}} + % the paper + \put(0,0){\thicklines\framebox(420,297){}} +% \put(210,0){\thicklines\framebox(210,297){}} + % the page layout + \put(44,66){\color{komamed}\rule{132\unitlength}{198\unitlength}} + \put(244,66){\color{komamed}\rule{132\unitlength}{198\unitlength}} + % helper lines + \multiput(0,33)(0,33){8}{\thinlines\line(1,0){198}} + \multiput(222,33)(0,33){8}{\thinlines\line(1,0){198}} + \multiput(22,0)(22,0){8}{\thinlines\line(0,1){297}} + \multiput(244,0)(22,0){8}{\thinlines\line(0,1){297}} + % annotations + \put(198,0){\color{white}\makebox(24,297)[c]{% + \rotatebox[origin=c]{-90}{binding correction}}} + \put(44,66){\color{white}\makebox(132,198)[c]{page layout left}} + \put(244,66){\color{white}\makebox(132,198)[c]{page layout right}} + % box numbers + \makeatletter + \multiput(1,27)(0,33){9}{\footnotesize\makebox(0,0)[l]{\the\@multicnt}} + \multiput(177,291)(-22,0){9}{% + \footnotesize\makebox(0,0)[l]{\the\@multicnt}} + \multiput(419,27)(0,33){9}{% + \footnotesize\makebox(0,0)[r]{\the\@multicnt}} + \multiput(243,291)(22,0){8}{% + \footnotesize\makebox(0,0)[r]{\the\numexpr\@multicnt+1\relax}} + \makeatother + \end{picture} + \caption{Double-sided layout with the box construction of the classical division factor of 9, after subtraction of a binding correction} + \label{fig:typearea.nineparts} + \end{figure} In {\KOMAScript}, this kind of construction is implemented in the - \Package{typearea} package. For A4 paper, \Var{DIV} is predefined - according to the font size (see \autoref{tab:typearea.div}). If there is - no binding correction (\(\Var{BCOR} = 0\Unit{pt}\)), the results - roughly match the values of \autoref{tab:typearea.typearea}. - - In addition to the predefined values, you can specify \Var{BCOR} - and \Var{DIV} as options when loading the package (see - \autoref{sec:typearea.options}). There is also a command to - explicitly calculate the type area by providing these values as - parameters (also see \autoref{sec:typearea.options}). - - The \Package{typearea} package can determine the optimal value - of \Var{DIV} for the font used automatically. Again, see - \autoref{sec:typearea.options}.\par + \Package{typearea} package, where the bottom margin may drop any + fractions of a line in order to conform with the minor condition for + the text area height mentioned in the previous paragraph, and + thereby to minimize the mentioned problem with + \Macro{flushbottom}. For A4 paper, \Var{DIV} is predefined according + to the font size (see \autoref{tab:typearea.div}, + \autopageref{tab:typearea.div}). If there is no binding correction + (\(\Var{BCOR} = 0\Unit{pt}\)), the results roughly match the values + of \autoref{tab:typearea.typearea}, + \autopageref{tab:typearea.typearea}. + + In addition to the predefined values, one can specify \Var{BCOR} and + \Var{DIV} as options when loading the package (see + \autoref{sec:typearea.options}, from + \autopageref{sec:typearea.typearea} onwards). There is also a + command to explicitly calculate the type area by providing these + values as parameters (also see \autoref{sec:typearea.options}, + \autopageref{desc:typearea.cmd.typearea}). + + The \Package{typearea} package can automatically determine the + optimal value of \Var{DIV} for the font and leading used. + Again, see \autoref{sec:typearea.options}, + \autopageref{desc:typearea.option.DIV.calc}. \end{Explain} @@ -233,407 +359,417 @@ \label{sec:typearea.circleConstruction} \begin{Explain} - In addition to the construction method previously described, a somewhat more - classical method can be found in the literature. The aim of this method is - not only identical ratios in the page proportions, but it is considered - optimal when the height of the text block is the same the width of the - page. The exact method is described in \cite{JTsch87}. - - A disadvantage of this late Dark Ages method is that the width of - the text area is no longer dependent on the font. Thus, one - doesn't choose the text area to match the font, but the author or - typesetter has to choose the font according to the text area. This - can be considered a ``must''. + In addition to the page layout construction\Index{page layout} + method previously described, a somewhat more classical method can be + found in the literature. The aim of this method is not only to + obtain identical ratios in the page proportions, but it is + considered optimal when the height of the text block is the same as + the width of the page. The exact method is described in + \cite{JTsch87}. + + A disadvantage of this late Middle Age method is that the width of + the text area is no longer dependent on the font. Thus, one doesn't + choose the text area to match the font, but the author or typesetter + has to choose the font according to the text area. This can be + considered a ``must''. In the \Package{typearea} package this construction is changed slightly. By using a special (normally meaningless) \Var{DIV} value or a special package option, a \Var{DIV} value is chosen to match - the perfect values as closely as possible. See also - \autoref{sec:typearea.options}.\par + the perfect values of the late Middle Age method as closely as + possible. See also \autoref{sec:typearea.options}, + \autopageref{desc:typearea.option.DIV.calc}. \end{Explain} +\LoadCommon{0} \section{Options and Macros to Influence the Page Layout} -\label{sec:typearea.options} +\label{sec:typearea.typearea} The package \Package{typearea} offers two different user interfaces to -influence type area construction. The first method is to load the -package with options. For information on how to load packages and to -give package options, please refer to the {\LaTeX} literature, e.\,g. -\cite{lshort} and \cite{latex:usrguide}, or the examples given here. -Since the \Package{typearea} package is loaded automatically when -using the {\KOMAScript} main classes, the package options can be given -as class options (see \autoref{sec:maincls.options}). - - -\begin{Declaration} - \KOption{twoside}\PName{value} -\end{Declaration}% -\BeginIndex{Option}{twoside~=\PName{value}}% -These two options have the same effect as in the standard classes. -The option \Option{oneside} defines a one-sided document layout with a -one-sided page layout. This means in particular that normally a ragged -page bottom is used. - -The option \Option{twoside} defines a two-sided document layout with a -two-sided page layout. This means that the {\LaTeX} command -\Macro{flushbottom}\IndexCmd{flushbottom} is used to ensure that page -breaks don't leave a variable empty space at the bottom of a page. A -ragged page bottom can be obtained with the {\LaTeX} command -\Macro{raggedbottom}\IndexCmd{raggedbottom}. -% -\EndIndex{Option}{twoside~=\PName{value}}% - - -\begin{Declaration} - \KOption{twocolumn}\PName{switch} -\end{Declaration}% -\BeginIndex{Option}{twocolumn~=\PName{switch}}% -These values of the option (see \autoref{tab:truefalseswitch}, -\autopageref{tab:truefalseswitch}) have the same effect like the standard -options \Option{twocolumn} and \Option{onecolumn}. They are used to switch -between a one-column and a two-column layout. The standard {\LaTeX} -capabilities for multi-column layout are only useful for very simple uses. The -standard package \Package{multicol} is much more versatile (see -\cite{package:multicol}).\Index{columns}\IndexPackage{multicol}% -\EndIndex{Option}{twocolumn~=\PName{switch}} - -\begin{table} - \begin{minipage}{\textwidth} - \centering - \caption{Standard values for simple switches within \KOMAScript} - \begin{tabular}{ll} - Value & Description \\\hline\\[-1.75ex] - \PValue{true}\footnote{This value will be used also, if you use the option - without assigning any value.} & activates the option \\ - \PValue{on} & activates the option \\ - \PValue{false}& deactivates the option \\ - \PValue{off} & deactivates the option \\ - \end{tabular} - \label{tab:truefalseswitch} - \end{minipage} -\end{table} +influence type area construction. The more important method is to load +the package with options. For information on how to load packages and +to give package options, please refer to the {\LaTeX} literature, +e.\,g. \cite{lshort} and \cite{latex:usrguide}, or the examples given +here. Since the \Package{typearea} package is loaded automatically +when using the {\KOMAScript} main classes, the package options can be +given as class options (see \autoref{sec:maincls.options}). + +In this section the \Class{protocol} class will be used, not an +existing {\KOMAScript} class but a hypothetical one. This\iffree{ + documentation}{ book} assumes that ideally there exists a class for +every specific task. +\BeginIndex{Option}{BCOR~=\PName{value}}% \begin{Declaration} - \KOption{BCOR}\PName{Correction} + \KOption{BCOR}\PName{correction} \end{Declaration}% -\BeginIndex{Option}{BCOR~=\PName{value}}% -With the \KOption{BCOR}\PName{Correction} option you specify the -absolute value of the binding correction, i.\,e., the width of the area -that is used for the binding, thus ``lost'' from the paper width. - -This value will be used in the layout calculation automatically and -will be added to the inner or left margin respectively. You can use -any valid {\TeX} unit for \PName{Correction}. +With the aid of the option +\KOption{BCOR}\PName{correction}\ChangedAt{v3.00}{\Package{typearea}} +one may specify the absolute value of the binding +correction\Index{binding correction}, i.\,e., the width of the area +which will be lost from the paper width in the binding process. This +value is then automatically taken into account in the page layout +construction and in the final output is added to the inner (or the +left) margin. For the \PName{correction} specification any measurement +unit understood by \TeX{} is valid. \begin{Example} - Assume you want to produce a financial report, which is to be printed on A4 - paper and bound in a folder. The rim of the folder covers - \(7.5\Unit{mm}\). Since the report is thin, only an additional - \(0.75\Unit{mm}\) are lost by folding when leafing through the pages. You - would use the following commands: -\begin{lstlisting} + Assume one is creating a financial report, which should be printed + out single-sided on A4 paper, and finally kept in a clamp + folder. The clamp will hide 7.5\Unit{mm}. The stack of pages is very + thin, thus through paging at most another 0.75\Unit{mm} will be + lost. Therefore, one may write: +\begin{lstcode} \documentclass[a4paper]{report} \usepackage[BCOR=8.25mm]{typearea} -\end{lstlisting} - or, using a {\KOMAScript} class: -\begin{lstlisting} - \documentclass[a4paper,BCOR=8.25mm]{scrreprt} -\end{lstlisting} +\end{lstcode} + or +\begin{lstcode} + \documentclass[a4paper,BCOR=8.25mm]{report} + \usepackage{typearea} +\end{lstcode} + when using \Option{BCOR} as a global option. + + When using a {\KOMAScript} class, the explicit loading of the + \Package{typearea} package can be omitted: + \begin{lstcode} + \documentclass[BCOR=8.25mm]{scrreprt} + \end{lstcode} + The option \Option{a4paper} could be omittied with \Class{scrreprt}, + since this is a predefined setting for all {\KOMAScript} classes. + + If the option is only later set to a new value, one may then use, + for example, the following: + \begin{lstcode} + \documentclass{scrreprt} + \KOMAoptions{BCOR=8.25mm} + \end{lstcode} + Thus, at the loading of the \Class{scrreprt} class standard settings + will be used. When changing the setting with the use of the command + \Macro{KOMAoptions} or \Macro{KOMAoption} a new page layout with new + margins will automatically be calculated. \end{Example} -Please note: if you use one of the {\KOMAScript} classes, this option -must be given as a class option. If you use another class, this only -works if the class has explicit support for typearea. So when using -the standard classes, you need to give the option when you load -\Package{typearea}. You can also use \Macro{PassOptionsToPackage} -(see \cite{latex:clsguide}) before you are loading -\Package{typearea}, this always works. +Please note that when using this option with one of the {\KOMAScript} +classes as in the example above, it must be used either as a class +option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after +loading the class. The \Package{typearea} package should neither be +loaded explicitly with \Macro{usepackage} when using a {\KOMAScript} +class, nor should the option be given as an optional argument +thereto. If the option is changed via \Macro{KOMAoptions} or +\Macro{KOMAoption} after loading the package, the textblock and +margins are automatically recalculated anew.% % \EndIndex{Option}{BCOR~=\PName{value}} +\BeginIndex{Option}{DIV~=\PName{value}}% \begin{Declaration} \KOption{DIV}\PName{Factor} \end{Declaration}% -\BeginIndex{Option}{DIV}% -\KOption{DIV}\PName{Factor} defines the number of stripes the page -is split into when the page layout is constructed. The exact -method can be found in \autoref{sec:typearea.divConstruction}, -but the most important thing is this: the higher \PName{Factor}, the -bigger the resulting text area, and the smaller the margins. For -\PName{Factor}, you can use any integer value larger than 4. -Please note that depending on your other options a very high value -for \PName{Factor} can result in problems: for instance, in -extreme cases, the running title might be outside the actual page -area. So if you use \KOption{DIV}\PName{Factor}, it is your own -responsibility to choose a typographically acceptable line length -and to pay attention to the other parameters. - -In \autoref{tab:typearea.typearea} you'll find some page layout -values for the page format A4 without binding correction, with -varying \Var{DIV} factors. Font size is not taken into account. +With the aid of the option +\KOption{DIV}\PName{Factor}\ChangedAt{v3.00}{\Package{typearea}} the +number of stripes into which the page is divided horizontally and +vertically during the page layout construction is set. The exact +construction method is found in +\autoref{sec:typearea.divConstruction}. Of importance is that the +larger the \PName{Factor}, the larger the text block and the smaller +the margins. Any integer value greater than 4 is valid for +\PName{Factor}. Please note that large values can lead to +unfulfillment of various minor conditions in the type-area, depending +on further options chosen. Thus, in an extreme case, the header may +fall outside of the page. Users applying the option +\KOption{DIV}\PName{Factor} are themselves responsible for fulfillmen +of the marginal conditions and setting of a typographically aesthetic +line length. + +In \autoref{tab:typearea.typearea} are found the type-area sizes for +several \Var{DIV} factors for A4 page without binding correction. Here +the minor conditions dependent on font size are not considered. \begin{table} \centering - \caption{Page layout values depending on \Var{DIV} for A4} + \caption{Type-area dimensions dependent on \Var{DIV} for A4} \begin{tabular}{ccccc} \toprule - & \multicolumn{2}{c|}{Text area} & \multicolumn{2}{c}{Margins}\\ - \emph{DIV}& Width [mm] & Height [mm] & upper [mm] & inner [mm] \\ + & + \multicolumn{2}{c}{Type-area} & \multicolumn{2}{c}{Margins}\\ + %\raisebox{1.5ex}[0pt]{ + \Var{DIV} + %} + & + width [mm] & height [mm] & top [mm] & inner [mm] \\ \midrule - 6 & 105.00 & 148.50 & 49.50 & 35.00 \\ - 7 & 120.00 & 169.71 & 42.43 & 30.00 \\ - 8 & 131.25 & 185.63 & 37.13 & 26.25 \\ - 9 & 140.00 & 198.00 & 33.00 & 23.33 \\ - 10 & 147.00 & 207.90 & 29.70 & 21.00 \\ - 11 & 152.73 & 216.00 & 27.00 & 19.09 \\ - 12 & 157.50 & 222.75 & 24.75 & 17.50 \\ - 13 & 161.54 & 228.46 & 22.85 & 16.15 \\ - 14 & 165.00 & 233.36 & 21.21 & 15.00 \\ - 15 & 168.00 & 237.60 & 19.80 & 14.00 \\ + 6 & 105,00 & 148,50 & 49,50 & 35,00 \\ + 7 & 120,00 & 169,71 & 42,43 & 30,00 \\ + 8 & 131,25 & 185,63 & 37,13 & 26,25 \\ + 9 & 140,00 & 198,00 & 33,00 & 23,33 \\ + 10 & 147,00 & 207,90 & 29,70 & 21,00 \\ + 11 & 152,73 & 216,00 & 27,00 & 19,09 \\ + 12 & 157,50 & 222,75 & 24,75 & 17,50 \\ + 13 & 161,54 & 228,46 & 22,85 & 16,15 \\ + 14 & 165,00 & 233,36 & 21,21 & 15,00 \\ + 15 & 168,00 & 237,60 & 19,80 & 14,00 \\ \bottomrule \end{tabular} \label{tab:typearea.typearea} \end{table} +\iffree{}{\clearpage}% \begin{Example} - Imagine you are writing meeting minutes with the - \Class{protocol}\footnote{The class \Class{protocol} is - hypothetical. This manual considers the ideal case where you have - a special class for every use.} class. The whole thing is supposed to - be double-sided. In your company, the Bookman font in 12\Unit{pt} - is used. This standard PostScript font is activated in {\LaTeX} - with the command \Macro{usepackage}\Parameter{bookman}. Bookman runs very - wide, that means, the characters are wide in relation to its - height. Because of that, the default for the \Var{DIV} value in - \Package{typearea} is too small for you. Instead of 12, you want 15. - The minutes will not be bound but punched and filed into a folder, - so you don't need any binding correction. Thus, you write: -\begin{lstlisting} - \documentclass[a4paper,twoside]{protocol} - \usepackage{bookman} - \usepackage[DIV=15]{typearea} -\end{lstlisting} -After you are done you are told that the minutes will be collected and bound -as a book at the end of the year. The binding will be a simple glue binding -carried out in a copy shop, since it is done just for ISO\,9000 anyway and -nobody will ever bother to look at the minutes again. For binding you need -\(12\Unit{mm}\) in average. So you change the options for \Package{typearea} -accordingly and use the ISO\,9000 document class: -\begin{lstlisting} + Assume one wants to write a meeting protocol, using the + \Class{protocol} class. The document should be double-sided. In the + company 12\Unit{pt} Bookman font is used. This font, which belongs + to the standard PostScript fonts, is activated in {\LaTeX} with the + command \verb|\usepackage{bookman}|. The Bookman font is a very + wide font, meaning that the individual characters have a large width + relative to their height. Therefore, the predefined value for + \Var{DIV} in \Package{typearea} is insufficient. Instead of the + value of 12 it appears after thorough study of this entire chapter + that a value of 15 should be most suitable. The protocol will not + be bound but punched and kept in a folder. Thus, no binding + correction is necessary. One may then write: + \begin{lstcode} + \documentclass[a4paper,twoside]{protocol} + \usepackage{bookman} + \usepackage[DIV=15]{typearea} + \end{lstcode} + On completion, it is decided that the protocols will from now on be + collected and bound quarterly into book format. The binding is to be + a simple glue binding, because it is only done to conform with + ISO\,9000 and nobody is actually going to read them. For the binding + including space lost in turning the pages, an average of 12\Unit{mm} + is required. Thus, one may change the options of the + \Package{typearea} package accordingly, and use the class for + protocols conforming to ISO\,9000 regulations: + \begin{lstcode} \documentclass[a4paper,twoside]{iso9000p} \usepackage{bookman} \usepackage[DIV=15,BCOR=12mm]{typearea} -\end{lstlisting} - Of course, you can also use a {\KOMAScript} class here: -\begin{lstlisting} +\end{lstcode} + Of course, it is equally possible to use here a {\KOMAScript} class: +\begin{lstcode} \documentclass[twoside,DIV=15,BCOR=12mm]{scrartcl} \usepackage{bookman} -\end{lstlisting} - The option \Option{a4paper} was omitted using class \Class{scrartcl}, - because it is the default for all {\KOMAScript} classes. +\end{lstcode} +The \Option{a4paper} option can be left out when using the +\Class{scrartcl} class, as it is predefined in all {\KOMAScript} +classes. \end{Example} -% -Please note: if you use one of the {\KOMAScript} classes, \Option{BCOR} must -be given as a class option. If you use another class, this only works if the -class has explicit support for typearea. So when using the standard classes, -you need to give \Option{BCOR} when you load \Package{typearea}. You can use -\Macro{PassOptionsToPackage} (see \cite{latex:clsguide}) too before you are -loading \Package{typearea}, this always works. -% -\EndIndex{Option}{DIV} +Please note that when using the \Option{DIV} option with one of the +{\KOMAScript} classes as in the example above, it must be used either +as a class option, or passed via \Macro{KOMAoptions} or +\Macro{KOMAoption} after loading the class. The \Package{typearea} +package should neither be loaded explicitly with \Macro{usepackage} +when using a {\KOMAScript} class, nor should the option be given as an +optional argument thereto. If the option is changed via +\Macro{KOMAoptions} or \Macro{KOMAoption} after loading the package, +the textblock and margins are automatically recalculated anew.% + +\BeginIndex{Option}{DIV~=classic}% +\BeginIndex{Option}{DIV~=calc}% \begin{Declaration} - \Option{DIV=calc}\\ - \Option{DIV=classic} + \OptionValue{DIV}{calc}\\ + \OptionValue{DIV}{classic} \end{Declaration}% -\BeginIndex{Option}{DIV~=calc}% -\BeginIndex{Option}{DIV~=classic}% -As mentioned in \autoref{sec:typearea.divConstruction}, only -paper format A4 has fixed defaults for the \Var{DIV} value. These -are listed in \autoref{tab:typearea.div}. If you choose a -different paper format, \Package{typearea} calculates a good -\Var{DIV} value itself. Of course, you can also have it calculate -that for A4: use \Option{DIV=calc} instead of -\KOption{DIV}\PName{Factor}. This works for all other paper formats -as well. If you want to use the automatic calculation, this is -even very useful, since you can then override the defaults that -are given in a configuration file (see -\autoref{sec:typearea.cfg}) with this option. +As\ChangedAt{v3.00}{\Package{typearea}} already mentioned in +\autoref{sec:typearea.divConstruction}, for A4 paper there are fixed +predefined settings for the \Var{DIV} value. These can be found in +\autoref{tab:typearea.div}. If a different paper format is chosen, +then the \Package{typearea} package independently calculates an +appropriate \Var{DIV} value. Of course this same calculation can be +applied also to A4. To obtain this result, one simply uses the +\OptionValue{DIV}{calc} option in place of the +\KOption{DIV}\PName{Factor} option. This option can just as easily be +explicity given for other paper formats. If one desires an automatic +calculation, this also makes good sense, since the possibility exists +to configure different predefined settings in a configuration file +(see \autoref{sec:typearea-experts.cfg}). An explicit passing of the +\OptionValue{DIV}{calc} option then overwrites such configuration +settings. \begin{table} \centering - \caption{\label{tab:typearea.div}\PName{DIV} defaults for A4} + \caption{\label{tab:typearea.div}Predefined settings of \PName{DIV} for A4} \begin{tabular}{lccc} \toprule - Base font size: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ + base font size: & 10\Unit{pt} & 11\Unit{pt} & 12\Unit{pt} \\ \Var{DIV}: & 8 & 10 & 12 \\ \bottomrule \end{tabular} \end{table} -The classic construction method as described in -\autoref{sec:typearea.circleConstruction} can also be selected -(with the difference that a good \Var{DIV} value is chosen). In -this case, instead of \KOption{DIV}\PName{Factor} or -\Option{DIV=calc}, use the option \Option{DIV=classic}. +The classical page layout construction, the Middle Age book design +canon, mentioned in \autoref{sec:typearea.circleConstruction}, is +similarly selectable. Instead of the \KOption{DIV}\PName{Faktor} or +\OptionValue{DIV}{calc} option, one may use the +\OptionValue{DIV}{classic} option. A \Var{DIV} value closest to the +Middle Age book design canon is then chosen. \begin{Example} - In the example for \KOption{DIV}\PName{Factor} which used the - Bookman font, there was the problem that we needed a \Var{DIV} - value which suited the font better. As a modification of the first - example, this calculation can be left to \Package{typearea}: -\begin{lstlisting} + In the example using the Bookman font with the + \KOption{DIV}\PName{Factor} option, exactly that problem of choosing + a more appropriate \Var{DIV} value for the font arose. As a + variation on that example, one could simply leave the choice of such + a value to the \Package{typearea} package: +\begin{lstcode} \documentclass[a4paper,twoside]{protocol} \usepackage{bookman} \usepackage[DIV=calc]{typearea} -\end{lstlisting} +\end{lstcode} \end{Example} +Please note that when using this option with one of the {\KOMAScript} +classes as in the example above, it must be used either as a class +option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after +loading the class. The \Package{typearea} package should neither be +loaded explicitly with \Macro{usepackage} when using a {\KOMAScript} +class, nor should the option be given as an optional argument +thereto. If the option is changed via \Macro{KOMAoptions} or +\Macro{KOMAoption} after loading the package, the textblock and +margins are automatically recalculated anew.% +% +\EndIndex{Option}{DIV~=classic}% +\EndIndex{Option}{DIV~=calc}% +\BeginIndex{Option}{DIV~=current}% +\BeginIndex{Option}{DIV~=last}% \begin{Declaration} - \Macro{typearea}\OParameter{BCOR}\Parameter{DIV} + \OptionValue{DIV}{current}\\ + \OptionValue{DIV}{last} \end{Declaration}% -\BeginIndex{Cmd}{typearea}% -If you followed the examples till here, you'll ask yourself how -one can make the calculation of \Var{DIV} depend on the selected -font when one uses one of the {\KOMAScript} classes. In that case the -options to \Package{typearea} would have to be made before loading -the e.\,g. \Package{bookman} package. So -\Package{typearea} could only calculate the page layout for the -standard font, but not for the Bookman font which is really -to be used. Therefore, after evaluating the options, \Package{typearea} -calculates the page layout by using the -\Macro{typearea}\OParameter{BCOR}\Parameter{DIV} command. Here, -the chosen \Var{BCOR} value is given as an optional parameter and -\Var{DIV} as a parameter. With the option \Option{DIV=calc}, the -(normally invalid) value~\(1\) is given; with the option -\Option{DIV=classic} the (normally invalid) value~\(3\). You can -also call \Macro{typearea} explicitly in the preamble. +Readers\ChangedAt{v3.00}{\Package{typearea}} who have followed the +examples with acuity actually already know how to calculate a +\Var{DIV} value dependent on the chosen font, when a {\KOMAScript} +class is used together with a font package. + +\begin{Explain} + The problem is that the {\KOMAScript} class already loads the + \Package{typearea} package itself. Thus, it is not possible to pass + options as optional arguments to \Macro{usepackage}. It would also + be pointless to pass the \OptionValue{DIV}{calc} option as an + optional argument to \Macro{documentclass}. This option would be + evaluated immediately on loading the \Package{typearea} package and + as a result the text block and margin would be chosen according to + the {\LaTeX} standard font and not for the later loaded + font. However, it is quite possible to recalculate the text block + and margins anew after loading the font, with the aid of + \Macro{KOMAoptions}\PParameter{DIV=calc} or + \Macro{KOMAoption}\PParameter{DIV}\PParameter{calc}. Via + \PValue{calc} an appropriate \Var{DIV} value for an good line length + is then chosen. + + As it is often more practical to set the \Option{DIV} option not + after loading the font, but at a more visible point, such as when + loading the class, the \Package{typearea} package offers two further + symbolic valies for this option. +\end{Explain} + +With \KOption{DIV}\PName{current}\ChangedAt{v3.00}{\Package{typearea}} +a renewed calculation of text block and margin is requested, in which +the currently-set \Var{DIV} will be used. This is less of interest for +renewed type-area calculations after loading a different font; it is +rather more useful for determining, for example, after changing the +leading, while keeping \Var{DIV} the same, that the marginal condition +is fulfilled that \Length{textheight} less +\Length{topskip} is a multiple of \Length{baselineskip}. + +With \KOption{DIV}\PName{last}\ChangedAt{v3.00}{\Package{typearea}} a +renewed calculation of text block and margin is requested, where +exactly the same setting is used as in the last calculation. \begin{Example} - Let us assume again that we want to calculate a good page layout for the - Bookman font. We also want to use a {\KOMAScript} class. This is possible - using the \Macro{typearea} command with \Option{DIV=calc} = 1 as - \PName{DIV} parameter: -\begin{lstlisting} + Let us take up the previous example again, in which a good line + length is required for a type-area using the Bookman font. At the + same time, a {\KOMAScript} class is to be used. This is easily + possible using the symbolic value \PValue{last} and the command + \Macro{KOMAoptions}: +\begin{lstcode} \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl} \usepackage{bookman} - \typearea[12mm]{1}% same as class options above -\end{lstlisting} - Again option \Option{a4paper} was not used explicitly, because it's the - default of the {\KOMAScript} class \Class{scrartcl}. + \KOMAoptions{DIV=last} +\end{lstcode} +If it should later be decided that a different \Var{DIV} value is +required, then only the setting of the optional argument to +\Macro{documentclass} need be changed. \end{Example} -It would be ridiculous if one had to use the -\Macro{typearea} command with some pseudo-values, while the -\Option{DIV} option allows the use of \Option{DIV=calc} and -\Option{DIV=classic}. Thus the \Macro{typearea} also accepts -symbolic values for the parameter \PName{DIV} which are listed in -\autoref{tab:symbolicDIV}. +A summary of all possible symbolic values for the \Option{DIV} option +can be founf in \autoref{tab:symbolicDIV}. At this point it is noted +that the use of the \Package{fontenc}\IndexPackage{fontenc} package +can also lead to \LaTeX{} loading a different font. \begin{table} - \caption[{Available symbolic \PName{DIV} values for - \Macro{typearea}}]{Available symbolic \PName{DIV} values for + \caption[{Symbolic values for the \Option{DIV} option and the + \PName{DIV} argument to \Macro{typearea}}]{Possible symbolic values for the \Option{DIV} option or the \PName{DIV} argument to \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} \label{tab:symbolicDIV} \begin{desctabular} - \pventry{calc}{re-calculate page layout and determine \Var{DIV}.}% - \pventry{classic}{re-calculate page layout using the classical method - (circle).}% - \pventry{current}{re-calculate page layout with current value of - \Var{DIV}.}% - \pventry{default}{re-calculate page layout with default values for the - current page and font size. If no default values exist, apply - \PValue{calc}.}% - \pventry{last}{re-calculate page layout using the same - \PName{DIV} argument, which was set last time.}% + \pventry{areaset}{Recalculate page + layout.\IndexOption{DIV~=areaset}}% + \pventry{calc}{Recalculate type-area including choice of + appropriate \Var{DIV} value.\IndexOption{DIV~=calc}}% + \pventry{classic}{Recalculate type-area using Middle Age book + design canon (circle-based + calculation).\IndexOption{DIV~=classic}}% + \pventry{current}{Recalculate type-area using current \Var{DIV} + value.\IndexOption{DIV~=current}}% + \pventry{default}{Recalculate type-area using the standard value + for the current page format and current font size. If no + standard value exists, \PValue{calc} is + used.\IndexOption{DIV~=default}}% + \pventry{last}{Recalculate type-area using the same \PName{DIV} + argument as was used in the last call.\IndexOption{DIV~=last}}% \end{desctabular} \end{table} -The \Macro{typearea} also understands the symbolic values for the parameter -\PName{BCOR} shown in \autoref{tab:symbolicBCOR}. Thus it is not neccesary to -re-enter the current value. - -\begin{table} - \caption[{Available symbolic \PName{BCOR} values for - \Macro{typearea}}]{Available symbolic \PName{BCOR} values for - \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} - \label{tab:symbolicBCOR} - \begin{desctabular} - \pventry{current}{Re-calculate page layout using the current value for - \Var{BCOR}.}% - \end{desctabular} -\end{table} - -\begin{Example} - Thus calculating a good page layout for the Bookman font and a - {\KOMAScript} class is easy when we use symbolic parameter values for - \PName{BCOR} and \PName{DIV}: -\begin{lstlisting} - \documentclass[BCOR=12mm,DIV=calc,twoside]{scrartcl} - \usepackage{bookman} - \typearea[current]{calc} -\end{lstlisting} - If we want to use a fixed value for \Var{DIV} we can use either: -\begin{lstlisting} - \documentclass[BCOR=12mm,DIV=11,twoside]{scrartcl} - \usepackage{bookman} - \typearea[current]{last} -\end{lstlisting} - or the old method: -\begin{lstlisting} - \documentclass[a4paper,twoside]{scrartcl} - \usepackage{bookman} - \typearea[12mm]{11} -\end{lstlisting} - In the end it is a matter of personal taste which of these solutions you want - to use. -\end{Example} - -Frequently the re-calculation of the page layout is necessary -because the line spacing was changed. Since it is essential that -an integer number of lines fit into the text area, any change in -line spacing requires a re-calculation of page layout. - +Often the renewed type-area calculation is required in combination +with a change in the line spacing +(\emph{leading})\Index{leading}. Since the type-area should be +calculated such that an integer number of lines fit in the text block, +a change in the leading normally requires a recalculation of the page +layout. + \begin{Example} - Assume you want to write a thesis and university regulations require a font - size of 10\Unit{pt} with one and a half line spacing. {\LaTeX} uses by - default a line spacing of 2\Unit{pt} at font size 10\Unit{pt} (a line - spacing of 1.2). Thus a stretch-factor of 1.25 is required. Let us also - assume that binding correction needs 12\Unit{mm}. Then you might use: -\begin{lstlisting} - \documentclass[10pt,twoside,% - BCOR=12mm,DIV=calc]{scrreprt} + For a thesis document, a font of size 10\Unit{pt} and a spacing of + 1.5 lines is required. By default, {\LaTeX} sets the leading for + 10\Unit{pt} at 2\Unit{pt}, in other words 1.2 lines. Therefore, an + additional stretch factor of 1.25 is needed. Additionally, a binding + correction of \(12\Unit{mm}\) is stipulated. Then the solution could be + written as follows: +\begin{lstcode} + \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} \linespread{1.25} - \typearea[current]{last} -\end{lstlisting}\IndexCmd{linespread} - \Macro{typearea} automaticly calls \Macro{normalsize}. So it is not - neccessary to use \Macro{selectfont} after \Macro{linespread} to activate - the changed line spacing before re-calculation of the page layout. - - The same example again, using the \Package{setspace} package (see - \cite{package:setspace}): -\begin{lstlisting} - \documentclass[10pt,twoside,% - BCOR=12mm,DIV=calc]{scrreprt} + \KOMAoptions{DIV=last} +\end{lstcode}\IndexCmd{linespread} +Since \Package{typearea} always executes the command +\Macro{normalsize} itself upon calculation of a new type-area, it is +not necessary to activate the chosen leading with \Macro{selectfont} +after \Macro{linespread}, sicne this will be used already in the +recalculation. + +When using the \Package{setspace} package (see +\cite{package:setspace}), the same example would appear as follows: +\begin{lstcode} + \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} \usepackage{setspace} \onehalfspacing - \typearea[current]{last} -\end{lstlisting} - Using the \Package{setspace} package simplifies things, because you no - longer need to calculate the correct stretch-factor, and you no longer need - the \Macro{selectfont} macro. - - In this context it is appropriate to point out that the line spacing should - be reset for the title page. A complete example therefore would look like - this: -\begin{lstlisting} - \documentclass[10pt,twoside,% - BCOR=12mm,DIV=calc]{scrreprt} + \KOMAoptions{DIV=last} +\end{lstcode} +As can be seen, with the use of the \Package{setspace} package one no +longer neesds to know the correct stretch value. + +At this point it should be noted that the line spacing for the title +page should be reset to the normal value. +\iffalse% Umbruchkorrektur + A complete example would be: +\fi +\begin{lstcode} + \documentclass[10pt,twoside,BCOR=12mm,DIV=calc]{scrreprt} \usepackage{setspace} \onehalfspacing - \typearea[current]{last} + \KOMAoptions{DIV=last} \begin{document} \title{Title} \author{Markus Kohm} @@ -643,204 +779,453 @@ line spacing requires a re-calculation of page layout. \end{spacing} \chapter{Ok} \end{document} -\end{lstlisting} - See also the notes in \autoref{sec:typearea.tips}. +\end{lstcode} + See further also the notes in \autoref{sec:typearea.tips}. \end{Example} +Please note that when using this option with one of the {\KOMAScript} +classes as in the example above, it must be used either as a class +option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after +loading the class. The \Package{typearea} package should neither be +loaded explicitly with \Macro{usepackage} when using a {\KOMAScript} +class, nor should the option be given as an optional argument +thereto. If the option is changed via \Macro{KOMAoptions} or +\Macro{KOMAoption} after loading the package, the textblock and +margins are automatically recalculated anew.% +% +\EndIndex{Option}{DIV~=current}% +\EndIndex{Option}{DIV~=last}% +\EndIndex{Option}{DIV~=\PName{value}} + +\BeginIndex{Cmd}{typearea}% +\BeginIndex{Cmd}{recalctypearea}% +\begin{Declaration} + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}\\ + \Macro{recalctypearea} +\end{Declaration}% \begin{Explain} - The command \Macro{typearea} is currently defined in such a way that it is - possible to change the page layout in the middle of a text. This however - makes assumptions about the inner workings of the {\LaTeX} kernel and changes - some internal values and definitions of that kernel. There is some - probability, but no guarantee that this will also work in future versions of - {\LaTeX}. It must be assumed that this method will not give correct results - in {\LaTeX}3. However, as author of {\KOMAScript} I expect considerable - incompatibilities when we change to {\LaTeX}3.% -\end{Explain}% -\EndIndex{Cmd}{typearea}% -\EndIndex{Option}{DIV~=classic}% -\EndIndex{Option}{DIV~=calc}% + If the \Option{DIV} option or the \Option{BCOR} option is set after + loading of the \Package{typearea} package, then internally the + command \Macro{typearea} is called. When setting the \Option{DIV} + option the symbolic value \PValue{current} is used internally for + \PName{BCOR}, which for reasons of completeness is found also in + \autoref{tab:symbolicBCOR}. When setting the \Option{BCOR} option, + the symbolic value \PValue{last} is used internally for + \PName{DIV}. If it is instead desired that the text block and + margins should be recalculated using the symbolic value + \PValue{current} for \PName{DIV}, then + \Macro{typearea}\PParameter{current}\PParameter{current} can be used + directly. +\end{Explain} + +\begin{table} + \caption[{Symoblic \PName{BCOR} arguments for + \Macro{typearea}}]{Possible symbolic \PName{BCOR} arguments for + \Macro{typearea}\OParameter{BCOR}\Parameter{DIV}} + \label{tab:symbolicBCOR} + \begin{desctabular} + \pventry{current}{Recalculate type-area with the currently valid + \Var{BCOR} value.\IndexOption{BCOR~=current}} + \end{desctabular} +\end{table} + +If both \PName{BCOR} and \PName{DIV} need changing, then it is +recommended to use \Macro{typearea}, since then the text block and +margins are recalculated only once. With +\Macro{KOMAoptions}\PParameter{\KOption{DIV}\PName{DIV},% + \KOption{BCOR}\PName{BCOR}} the text block and margins are +recalculated once for the change to \PName{DIV} and again for the +change to \PName{BCOR}. \begin{Explain} + The command \Macro{typearea} is currently defined so as to make it + possible to change the type-area anywhere within a + document. Several assumptions about the structure of the {\LaTeX} + kernel are however made and internal definitions and sizes of the + kernel changed. There is a definite possibility, but no guarantee, + that this will continue to function in future versions of + \LaTeXe{}. When used within the document, a page break will result. +\end{Explain} + +Since \Macro{typearea}\PParameter{current}\PParameter{last} or +\Macro{KOMAoptions}\PParameter{DIV=last} are often needed for +recalculation of the type-area, there exists specially the +abbreviated command +\Macro{recalctypearea}\ChangedAt{v3.00}{\Package{typearea}}. + +\begin{Example} + If one finds the notation + \begin{lstcode} + \KOMAoptions{DIV=last} + \end{lstcode} + or + \begin{lstcode} + \typearea[current]{last} + \end{lstcode} + for the recalculation of text block and margins too complicated for + reasons of the many special characters, then one may use more simply + the following. + \begin{lstcode} + \recalctypearea + \end{lstcode} +\end{Example}% +\EndIndex{Cmd}{recalctypearea}% +\EndIndex{Cmd}{typearea} + +\BeginIndex{Option}{twoside~=\PName{switch}}% +\BeginIndex{Option}{twoside~=semi}% \begin{Declaration} - \KOption{headinclude}\PName{switch}\\ - \KOption{footinclude}\PName{switch} + \KOption{twoside}\PName{switch}\\ + \OptionValue{twoside}{semi} \end{Declaration}% +As already explained in \autoref{sec:typearea.basics}, the margin +configuration is dependent on whether the document is to be typeset +single- or double-sided. For single-sided typesetting, the left and +right margins are equally wide, whereas for double-sided printing the +inner margin of one page is only half as wide as the corresponding +outer margin. In order to implement this distinction, the +\Package{typearea} package must be given the \Option{twoside} option, +if the document is to be typeset double-sided. Being a \PName{switch}, +any of the standard values for simple switches in +\autoref{tab:truefalseswitch} are valid. If the option is passed +without a value, the value \PValue{true} is assumed, so double-sided +typesetting is carried out. Deactivation of the option leads to +single-sided typesetting. + +\begin{table} + \begin{minipage}{\textwidth} + \centering + \caption{Standard values for simple switches in \KOMAScript} + \begin{tabular}{ll} + \toprule + Value & Description \\ + \midrule + \PValue{true}\footnote{This value will be used also, if you use the option + without assigning any value.} & activates the option \\ + \PValue{on} & activates the option \\ + \PValue{yes} & activates the option \\ + \PValue{false}& deactivates the option \\ + \PValue{off} & deactivates the option \\ + \PValue{no} & deactivates the option \\ + \bottomrule + \end{tabular} + \label{tab:truefalseswitch} + \end{minipage} +\end{table} + +Apart from the values in \autoref{tab:truefalseswitch} the value +\PValue{semi}\ChangedAt{v3.00}{\Package{typearea}} can also be +given. The value \PValue{semi} results in a double-sided typesetting +with single-sided margins and single-sided, i.\ e., not alternating, +margin notes. + +The option can also be passed as class option in +\Macro{documentclass}, as package option to \Macro{usepackage}, or +even after loading of the \Package{typearea} package with the use of +per \Macro{KOMAoptions} or \Macro{KOMAoption}. Use of the option after +loading the \Package{typearea} package results automatically to a +recalculation of the type-area using \Macro{recalctypearea} (see +\autopageref{desc:typearea.cmd.recalctypearea}). If double-sided +typesetting was active before the option was set, then before the +recalculation a page break is made to the next odd page.% +% +\EndIndex{Option}{twoside~=semi}% +\EndIndex{Option}{twoside~=\PName{switch}} + +\BeginIndex{Option}{twocolumn~=\PName{switch}}% +\begin{Declaration} + \KOption{twocolumn}\PName{switch} +\end{Declaration} +For the calculation of a good type-area with the help of +\OptionValue{DIV}{calc} it is useful to know in advance if the +document is to be typeset one-column or two-column. Since the +observations about line length in \autoref{sec:typearea.basics} then +apply to each column, the width of a type-area in a two-column +document can be up to double that in a one-column document. + +To implement this difference, the \Package{typearea} package must be +told via the \Option{twocolumn} option whether the document is to be +two-column. Since this is a \PName{switch}, any of the standard values +for simple switches from \autoref{tab:truefalseswitch} is valid. If +the option is passed without a value, the value \PValue{true} is +assumed, i.\,e., two-column typesetting. Deactivation of the option +results in one-column typesetting. + +The option can also be passed as class option in +\Macro{documentclass}, as package option to \Macro{usepackage}, or +even after loading of the \Package{typearea} package with the use of +per \Macro{KOMAoptions} or \Macro{KOMAoption}. Use of the option after +loading the \Package{typearea} package results automatically to a +recalculation of the type-area using \Macro{recalctypearea} (see +\autopageref{desc:typearea.cmd.recalctypearea}).% +% +\EndIndex{Option}{twocolumn~=\PName{switch}} + + \BeginIndex{Option}{headinclude~=\PName{switch}}% \BeginIndex{Option}{footinclude~=\PName{switch}}% -So far we have discussed how the page layout is calculated and what the ratios -are between the borders and between borders and text area. However, one -important question has not been answered: What constitutes the borders? This -question appears trivial: Borders are those parts on the right, left, top and -bottom which remain empty. But this is only half of it. Borders are not always -empty. There could be marginals, for example (for the -\Macro{marginpar} command refer to \cite{lshort} or -\autoref{sec:maincls.marginNotes}). - -One could also ask, whether headers and footers belong to the upper -and lower borders or to the text. This can not be answered -unambiguously. Of course an empty footer or header belong to the -borders, since they can not be distinguished from the rest of the -border. A header or footer, that contains only a page number, will -optically appear more like border. For the optical appearance it is -not important whether headers or footers are easily recognised as such -during reading. Important is only, how a well filled page appears -when viewed out of focus. You could use the glasses of your -far-sighted grand parents, or, lacking those, adjust your vision to -infinity and look at the page with one eye only. Those wearing -spectacles will find this much easier, of course. If the footer -contains not only the page number, but other material like a copyright -notice, it will optically appear more like a part of the text body. -This needs to be taken into account when calculating text layout. - -For the header this is even more complicated. The header frequently -contains running headings \Index[indexother]{running heading}. In case of -running headings with long chapter and section titles the header lines -will be very long and appear to be part of the text body. This effect -becomes even more significant when the header contains not only the -chapter or section title but also the page number. With material on -the right and left side, the header will no longer appear as empty -border. If the length of the titles varies, the header may appear as -border on one page and as text on another. However, this pages should -not be treated differently under any circumstances, as this would lead -to jumping headers. In this case it is probably best to count the -header with the text. - -The decision is easy when text and header or footer are separated -from the text body by a line. This will give a ``closed'' -appearance and header or footer become part of the text body. -Remember: It is irrelevant that the line improves the optical -separation of text and header or footer, important is only the -appearance when viewed out of focus. +\begin{Declaration} + \KOption{headinclude}\PName{switch}\\ + \KOption{footinclude}\PName{switch} +\end{Declaration}% +\begin{Explain}% + So far we have discussed how the type-area is + calculated\Index{type-area} and what the relationship of the + margins\Index{margins} to one another and between margins and text + block. However, one important question has not been answered: What + constitutes the margins? + + At first glance the question appears trivial: Margins are those + parts on the right, left, top and bottom which remain empty. But + this is only half the story. Margins are not always empty. There may + be margin notes, for example (see \Macro{marginpar} command in + \cite{lshort} or \autoref{sec:maincls.marginNotes}). + + One could also ask, whether headers\Index{page header} and + footers\Index{page footer} belong to the upper and lower margins or + to the text. This can not be answered unambiguously. Of course an + empty footer or header belong to the margins, since they can not be + distinguished from the rest of the margin. A header or footer, that + contains only a page + number\Index[indexmain]{pagination}\footnote{Pagination refers to + the indication of the page number.}, will optically appear more + like a margin. For the optical appearance it is not important + whether headers or footers are easily recognized as such during + reading. Important is only, how a well filled page appears when + viewed \emph{out of focus}. One could use the glasses of one's + far-sighted grand parents, or, lacking those, adjust one's vision to + infinity and look at the page with one eye only. Those wearing + spectacles will find this much easier, of course. If the footer + contains not only the page number, but other material like a + copyright notice, it will optically appear more like a part of the + text body. This needs to be taken into account when calculating + text layout. + + For the header this is even more complicated. The header frequently + contains running headings \Index[indexmain]{running + headings}\footnote{Running headings refer to the repetition of a + title in titling font, which is more often typeset in the page + header, less often in the page footer.}. In case of running + headings with long chapter and section titles the header lines will + be very long and appear to be part of the text body. This effect + becomes even more significant when the header contains not only the + chapter or section title but also the page number. With material on + the right and left side, the header will no longer appear as an + empty margin. It is more difficult if the pagination is in the + footer, and the length of the titles varies, so that the header may + appear as a margin on one page and as text on another. However, + these pages should not be treated differently under any + circumstances, as this would lead to vertically jumping headers. In + this case it is probably best to count the header as part of the + text. + + The decision is easy when text and header or footer are separated + from the text body by a line. This will give a ``closed'' appearance + and header or footer become part of the text body. Remember: It is + irrelevant that the line improves the optical separation of text and + header or footer, important is only the appearance when viewed out + of focus. \end{Explain} -The \Package{typearea} package can not make the decision whether or not to -count headers and footers to the text body or the border. Options -\Option{headinclude} and \Option{footinclude} cause the header or footer to be -counted as text, options \OptionValue{headinclude}{false} and -\OptionValue{footinclude}{false} cause them to be counted as border (see -\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}). If you are -unsure about the correct setting, re-read above explanations. Default is -usually \OptionValue{headinclude}{false} and -\OptionValue{footinclude}{false}, but this can change depending on -{\KOMAScript} class and {\KOMAScript} packages used (see -\autoref{sec:maincls.options} and \autoref{cha:scrpage}). +The \Package{typearea} package can not make the decision whether or +not to count headers and footers as part of the text body or the +margin. Options \Option{headinclude} and \Option{footinclude} cause +the header or footer to be counted as part of the text. These +options, being a \PName{switch}\ChangedAt{v3.00}{\Package{typearea}}, +understand the standard values for simple switches in +\autoref{tab:truefalseswitch}. One may use the options without +specifying a value, in which case the value \PValue{true} is used for +the \PName{switch}, i.\,e., the header or footer is counted as part of +the text. + +Readers who are unsure about the the correct setting should re-read +the above explanations. Default is usually +\OptionValue{headinclude}{false} and \OptionValue{footinclude}{false}, +but this can change depending on {\KOMAScript} class and {\KOMAScript} +packages used (see \autoref{sec:maincls.options} and +\autoref{cha:scrpage}). + +Please note that when using these options with one of the +{\KOMAScript} classes as in the example above, they must be used +either as a class option, or passed via \Macro{KOMAoptions} or +\Macro{KOMAoption} after loading the class. Changing of these options +after loading the \Package{typearea} package does not result in an +automatic recalculation of the type-area. Instead, the changes only +take effect at the next recalculation of the type-area. For +recalculation of the type-area, refer to the \Option{DIV} option with +the values \PValue{last} or \PValue{current} (see +\autopageref{desc:typearea.option.DIV.last}) or the +\Macro{recalctypearea} command (see +\autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{headinclude~=\PName{switch}}% \EndIndex{Option}{footinclude~=\PName{switch}}% + +\BeginIndex{Option}{mpinclude~=\PName{switch}}% \begin{Declaration} \KOption{mpinclude}\PName{switch} \end{Declaration} -\BeginIndex{Option}{mpinclude~=\PName{switch}}% Besides\ChangedAt{v2.8q}{\Class{scrbook}\and \Class{scrreprt}\and - \Class{scrartcl}} documents where the head and foot is part of the text -area, there are also documents where the margin-note area must be counted to -the text body as well. The option \Option{mpinclude} (see -\autoref{tab:truefalseswitch}, \autopageref{tab:truefalseswitch}) does exactly -this. The effect is that one width-unit of the text body is taken for the -margin-note area. Using option \OptionValue{mpinclude}{false}, the default -setting, then the normal margin is used for the margin-note area. The width -of that area is one or one and a half width-unit, depending on whether -one-sided or double-sided page layout has been chosen. The option -\Option{mpinclude} is mainly for experts and so not recommended. + \Class{scrartcl}} documents where the head and foot is part of the +text area, there are also documents where the margin-note area must be +counted to the text body as well. The option \Option{mpinclude} does +exactly this. The option, as a +\PName{switch}\ChangedAt{v3.00}{\Package{typearea}}, understands the +standard values for simple switches in +\autoref{tab:truefalseswitch}. One may also pass this option without +specifying a value, in which case the value \PValue{true} for +\PName{switch} is assumed. + +The effect of \OptionValue{mpinclude}{true} is that one width-unit of +the text body is taken for the margin-note area. Using option +\OptionValue{mpinclude}{false}, the default setting, then the normal +margin is used for the margin-note area. The width of that area is +one or one and a half width-unit, depending on whether one-sided or +double-sided page layout has been chosen. The option +\Option{mpinclude}{true} is mainly for experts and so not recommended. \begin{Explain} - In the cases where the option \Option{mpinclude} is used often a wider - margin-note area is required. In many cases not the whole margin-note width - should be part of the text area, for example if the margin is used for - quotations. Such quotations are typeset as ragged text with the flushed - side where the text body is. Since ragged text gives no homogeneous optical - impression the long lines can reach right into the normal margin. This can - be done using option \Option{mpinclude} and by an enlargement of length - \Length{marginparwidth} after the type area has been setup. The length can - be easily enlarged with the command \Macro{addtolength}. How much the the - length has to be enlarged depends on the special situation and it requires - some flair. Therefore the option is primarily for experts. Of course one - can setup the margin-width to reach a third right into the normal margin, - for example using - \begin{lstlisting} + In the cases where the option \Option{mpinclude} is used often a + wider margin-note area is required. In many cases not the whole + margin-note width should be part of the text area, for example if + the margin is used for quotations. Such quotations are typeset as + ragged text with the flushed side where the text body is. Since + ragged text gives no homogeneous optical impression the long lines + can reach right into the normal margin. This can be done using + option \Option{mpinclude} and by an enlargement of length + \Length{marginparwidth} after the type-area has been setup. The + length can be easily enlarged with the command \Macro{addtolength}. + How much the the length has to be enlarged depends on the special + situation and it requires some flair. This is another reason the + \Option{mpinclude} option is primarily left for experts. Of course + one can setup the margin-width to reach a third right into the + normal margin, for example using + \begin{lstcode}[belowskip=\dp\strutbox] \setlength{\marginparwidth}{1.5\marginparwidth} - \end{lstlisting} + \end{lstcode} gives the desired result. - Currently there is no option to enlarge the margin by a given amount. The - only solution is that the option \Option{mpinclude} is not used, but after - the type area has been calculated one reduces the width of the text body - \Length{textwidth} and enlarges the margin width \Length{marginparwidth} by - the same amount. Unfortunately, this can not be attended when automatic - calculation of the \PName{DIV} value is used. In contrast - \Option{DIV=calc}\IndexOption{DIV~=calc} heeds \Option{mpinclude}. + Currently there is no option to enlarge the margin by a given + amount. The only solution is to either not use the option + \Option{mpinclude} or to set \Option{mpinclude} to \PValue{false}, + and instead after the type-area has been calculated one reduces the + width of the text body \Length{textwidth} and enlarges the margin + width \Length{marginparwidth} by the same amount. Unfortunately, + this can not be combined with automatic calculation of the + \PName{DIV} value. In contrast + \Option{DIV=calc}\IndexOption{DIV~=calc} (see + \autopageref{desc:typearea.option.DIV.calc}) heeds + \Option{mpinclude}. \end{Explain} + +Please note that when using this option with one of the {\KOMAScript} +classes as in the example above, it must be used either as a class +option, or passed via \Macro{KOMAoptions} or \Macro{KOMAoption} after +loading the class. Changing of this option after loading the +\Package{typearea} package does not result in an automatic +recalculation of the type-area. Instead, the changes only take effect +at the next recalculation of the type-area. For recalculation of the +type-area, refer to the \Option{DIV} option with the values +\PValue{last} or \PValue{current} (see +\autopageref{desc:typearea.option.DIV.last}) or the +\Macro{recalctypearea} command (see +\autopageref{desc:typearea.cmd.recalctypearea}).% % \EndIndex{Option}{mpinclude~=\PName{switch}}% +\BeginIndex{Option}{headlines~=\PName{number}}% +\BeginIndex{Option}{headheight~=\PName{height}}% \begin{Declaration} - \KOption{headlines}\PName{value} + \KOption{headlines}\PName{number of lines}\\ + \KOption{headheight}\PName{height} \end{Declaration}% -\BeginIndex{Option}{headlines}% -We have seen how to calculate the text layout and how to specify -whether header and footer are part of the text body or the -borders. However, we still have to specify the height in -particular of the header. This is achieved with the option -\Option{headlines}, which is followed by the number of lines in -the header. \Package{typearea} uses a default of 1.25. This is a -compromise, large enough for underlined headers (see -\autoref{sec:maincls.options}) and small enough that the -relative weight of the top border is not affected too much when -the header is not underlined. Thus in most cases you may leave -\Option{headlines} at its default value and adapt it only in -special cases. +We have seen how to calculate the type-area using the +\Package{typearea} package and how to specify whether header and +footer are part of the text or the margins. However, in particular for +the header, we still have to specify the height. This is achieved with +the options \Option{headlines} and +\Option{headheight}\ChangedAt{v3.00}{\Package{typearea}}. + +The option \Option{headlines} is set to the number of header +lines. The \Package{typearea} package uses a default of 1.25. This is +a compromise, large enough for underlined headers (see +\autoref{sec:maincls.options}) and small enough that the relative +weight of the top margin is not affected too much when the header is +not underlined. Thus in most cases you may leave \Option{headlines} at +its default value and adapt it only in special cases. \begin{Example} Assume that you want to use a header with two lines. Normally this would result in a ``\texttt{overfull} \Macro{vbox}'' warning for each page. To prevent this from happening, the \Package{typearea} package is told to - calculate an appropriate page layout: -\begin{lstlisting} + calculate an appropriate type-area: +\begin{lstcode} \documentclass[a4paper]{article} \usepackage[headlines=2.1]{typearea} -\end{lstlisting} - If you use a {\KOMAScript} class this must be given as a class option: -\begin{lstlisting} +\end{lstcode} +If you use a {\KOMAScript} class it is recommended to pass this option +directly as a class option: +\begin{lstcode} \documentclass[a4paper,headlines=2.1]{scrartcl} -\end{lstlisting} - A tool that can be used to define the contents of a header with two - lines is described in \autoref{cha:scrpage}. +\end{lstcode} +Commands that can be used to define the contents of a header with two +lines are described in \autoref{cha:scrpage}. \end{Example} -If you use a {\KOMAScript} class, this option must be given as -class option. With other classes this works only, if these classes explicitly -supports \Package{typearea}. If you use the standard classes, the option must -be given when loading \Package{typearea}. \Macro{PassOptionsToPackage} will -work in both cases (see also \cite{latex:clsguide}). +In some cases it is useful to be able to specift the header height not +in lines but directly as a length measurement. This is accomplished +with the aid of the alternative option \Option{headheight}. For +\PName{height} any lengths and sizes that \LaTeX{} understands are +valid. It should be noted though that when using a \LaTeX{} length +such as \Length{baselineskip} its value at the time of the calculation +of the type-area and margins, not at the time of setting of the +option, is decisive. + +Please note that when using these options with one of the +{\KOMAScript} classes as in the example above, they must be used +either as a class option, or passed via \Macro{KOMAoptions} or +\Macro{KOMAoption} after loading the class. Changing of these options +after loading the \Package{typearea} package does not result in an +automatic recalculation of the type-area. Instead, the changes only +take effect at the next recalculation of the type-area. For +recalculation of the type-area, refer to the \Option{DIV} option with +the values \PValue{last} or \PValue{current} (see +\autopageref{desc:typearea.option.DIV.last}) or the +\Macro{recalctypearea} command (see +\autopageref{desc:typearea.cmd.recalctypearea}).% % -\EndIndex{Option}{headlines} +\EndIndex{Option}{headheight~=\PName{height}}% +\EndIndex{Option}{headlines~=\PName{number}} + +\BeginIndex{Cmd}{areaset}% \begin{Declaration} \Macro{areaset}\OParameter{BCOR}\Parameter{Width}\Parameter{Height} \end{Declaration}% -\BeginIndex{Cmd}{areaset}% -So far we have seen how a good or even very good page layout is -calculated and how the \Package{typearea} package can support these -calculations, giving you at the same time the freedom to adapt the -layout to your needs. However, there are cases where the text body -has to fit exactly into specified dimensions. At the same time the -borders should be well spaced and a binding correction should be -possible. The \Package{typearea} package offers the command -\Macro{areaset} for this purpose. As parameters this command accepts -the binding correction and the width and height of the text body. -Width and position of the borders will then be calculated -automatically, taking account of the options \Option{headinclude}, -\OptionValue{headinclude}{false}, \Option{footinclude} and \OptionValue{footinclude}{false} -where needed. +So far we have seen how a good or even very good +type-area\Index{type-area} is calculated and how the +\Package{typearea} package can support these calculations, giving you +at the same time the freedom to adapt the layout to your needs. +However, there are cases where the text body has to fit exactly some +specified dimensions. At the same time the margins should be well +spaced and a binding correction should be possible. The +\Package{typearea} package offers the command \Macro{areaset} for this +purpose. As parameters this command accepts the binding correction and +the width and height of the text body. Width and position of the +margins will then be calculated automatically, taking account of the +options \Option{headinclude}, \OptionValue{headinclude}{false}, +\Option{footinclude} and \OptionValue{footinclude}{false} where +needed. On the ther hand, the options +\Option{headlines}\IndexOption{headlines} and +\Option{headheight}\IndexOption{headheight} are ignored! \begin{Example} Assume a text, printed on A4 paper, should have a width of exactly 60 characters of typewriter font and a height of exactly 30 lines. This could be achieved as follows: -\begin{lstlisting} +\begin{lstcode} \documentclass[a4paper,11pt]{article} \usepackage{typearea} \newlength{\CharsLX}% Width of 60 characters @@ -850,336 +1235,315 @@ where needed. \setlength{\LinesXXX}{\topskip} \addtolength{\LinesXXX}{29\baselineskip} \areaset{\CharsLX}{\LinesXXX} -\end{lstlisting} - You need only 29 instead of 30, because the base line of the topmost text - line is \Macro{topskip} below the top margin of the type area. +\end{lstcode} +You need only 29 instead of 30, because the base line of the topmost +text line is \Macro{topskip} below the top margin of the type area, as +long as the height of the topmost line is less than +\Macro{topskip}. Thus, the uppermost line does not require any +height. The descenders of characters on the lowermost line, on the +other hand, hang below the dimensions of the type-area. \item A poetry book with a square text body with a page length of 15\Unit{cm} and a binding correction of 1\Unit{cm} could be achieved like this: -\begin{lstlisting} - \documentclass{gedichte} +\begin{lstcode} + \documentclass{poetry} \usepackage{typearea} \areaset[1cm]{15cm}{15cm} -\end{lstlisting} +\end{lstcode} \end{Example} \EndIndex{Cmd}{areaset} -The \Package{typearea} package was not made to set up predefined margin -values. If you have to do so you may use package \Package{geometry} (see +BeginIndex{Option}{DIV~=areaset}% +\begin{Declaration} + \OptionValue{DIV}{areaset} +\end{Declaration}% +In\ChangedAt{v3.00}{\Package{typearea}} rare cases it is useful to be +able to reconstruct the current type-area anew. This is possible via +the option \OptionValue{DIV}{areaset}, where +\Macro{KOMAoptions}\PParameter{DIV=areaset} corresponds to the +\begin{lstcode}[belowskip=\dp\strutbox] + \areaset[current]{\textwidth}{\textheight} +\end{lstcode} +command. The same result is obtained if one uses +\OptionValue{DIV}{last} and the typearea was last set with +\Macro{areaset}.% +% +\EndIndex{Option}{DIV~=areaset}% + +The \Package{typearea} package was not made to set up predefined +margin values. If you have to do so you may use package +\Package{geometry}\IndexPackage{geometry} (see \cite{package:geometry}). -\section{Options and Macros for Paper Format Selection} -\label{sec:typearea.paperTypes} +\section{Paper Format Selection} +\label{sec:typearea.paperTypes}% +\BeginIndex{}{paper>format}% + +The paper format is a definitive characteristic of any document. As +already mentioned in the description of the supported page layout +constructions (see \autoref{sec:typearea.basics} to +\autoref{sec:typearea.circleConstruction} from +\autopageref{sec:typearea.basics} onwards), the entire page division +and document layout depends on the paper format. Whereas the {\LaTeX} +standard classes are restricted to a few formats, {\KOMAScript} +supports in conjunction with the \Package{typearea} package even +exotic paper sizes. -\Index{paper format}% -The {\LaTeX} standard classes support the options \Option{a4paper}, -\Option{a5paper}, \Option{b5paper}, \Option{letterpaper}, -\Option{legalpaper} and \Option{executivepaper}. These are support be -\Package{typearea} in the same way. +\BeginIndex{Option}{paper~=\PName{format}}% +\BeginIndex{Option}{paper~=\PName{orientation}}% \begin{Declaration} - \OptionValue{paper}{letter} \\ - \OptionValue{paper}{legal} \\ - \OptionValue{paper}{executive} \\ - \OptionValue{paper}{a\Var{X}} \\ - \OptionValue{paper}{b\Var{X}} \\ - \OptionValue{paper}{c\Var{X}} \\ - \OptionValue{paper}{d\Var{X}} \\ - \Option{landscape} \\ - \Macro{isopaper}\OParameter{series}\Parameter{number} + \KOption{paper}\PName{format} \end{Declaration}% -\BeginIndex{Option}{paper~=\PName{size}} -\BeginIndex{Option}{landscape} -\BeginIndex{Cmd}{isopaper}% -In addition to the paper formats of the standard classes, all ISO A-, ISO B-, -ISO C- and ISO D-formats are supported and derived from their basic sizes A0, -B0, C0 and D0. They may be selected directly with options -\OptionValue{paper}{a0}, \OptionValue{paper}{a1} and so on. Landscape -orientation is selected with the \Option{landscape} option just as in the -standard classes. - -Alternatively the paper size can be adjusted with the macro -\Macro{isopaper}. This however required re-calculation of the -text layout with \Macro{typearea} or \Macro{areaset}. I do not -recommend the use of \Macro{isopaper}. +The option \Option{paper}\ChangedAt{v3.00}{\Package{typearea}} is the +central element for format selection in \KOMAScript. \PName{Format} +supports first of all the american formats \Option{letter}, +\Option{legal} and \Option{executive}. In addition, it supports the +ISO formats of the series A, B, C and D, for example \PValue{A4} +or\,---\,written in lowercase\,---\,\PValue{a4}. Landscape formats are +supported by specifying the option again, this time with the value +\PValue{landscape}\Index{paper>orientation}. Additionally, the +\PName{format} can also be specified in the form +\PName{height}\texttt{:}\PName{width}. \begin{Example} - Assume you want to print on ISO A8 file cards in landscape - orientation. Borders should be very small, no header or footer + Assume one wishes to print on ISO A8 file cards in landscape + orientation. Margins should be very small, no header or footer will be used. -\begin{lstlisting} +\begin{lstcode} \documentclass{article} \usepackage[headinclude=false,footinclude=false, - paper=a8,landscape]{typearea} + paper=A8,landscape]{typearea} \areaset{7cm}{5cm} \pagestyle{empty} \begin{document} - \section*{Paper Size Options} - letterpaper, legalpaper, executivepaper, a4paper, - a5paper, paper=a0, paper=a1 \dots\ paper=b0, - paper=b1 \dots\ paper=c0, paper=c1 \dots\ - paper=d0, paper=d1 \dots + \section*{Supported Paper Sizes} + letter, legal, executive, a0, a1 \dots\ % + b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots + \end{document} +\end{lstcode} +If the file cards have the special format (height:width) +5\Unit{cm}\,:\,3\Unit{cm}, this can be achieved using the following +code. +\begin{lstcode} + \documentclass{article} + \usepackage[headinclude=false,footinclude=false,% + paper=A8,paper=5cm:3cm]{typearea} + \areaset{4cm}{2.4cm} + \pagestyle{empty} + \begin{document} + \section*{Supported Paper Sizes} + letter, legal, executive, a0, a1 \dots\ % + b0, b1 \dots\ c0, c1 \dots\ d0, d1 \dots \end{document} -\end{lstlisting} +\end{lstcode} \end{Example} -The options \Option{a4paper}, -\Option{a5paper}, \Option{b5paper}, \Option{letterpaper}, -\Option{legalpaper} and \Option{executivepaper} need -to be given as class options when {\KOMAScript} classes are used. The -\Option{paper}-Option may be set using \Macro{KOMAoptions} oder -\Macro{KOMAoption} instead. +As part of the predefined defaults, {\KOMAScript} uses A4 paper in +portrait orientation. This is in contrast to the standard classes, +which by default use the American letter paper format. + +Please note that when using this options with one of the {\KOMAScript} +classes, it must be used either as a class option, or passed via +\Macro{KOMAoptions} or \Macro{KOMAoption} after loading the +class. Changing of this option after loading the \Package{typearea} +package does not result in an automatic recalculation of the +type-area. Instead, the changes only take effect at the next +recalculation of the type-area. For recalculation of the type-area, +refer to the \Option{DIV} option with the values \PValue{last} or +\PValue{current} (see \autopageref{desc:typearea.option.DIV.last}) or +the \Macro{recalctypearea} command (see +\autopageref{desc:typearea.cmd.recalctypearea}).% % -\EndIndex{Option}{paper~=\PName{size}} -\EndIndex{Option}{landscape} -\EndIndex{Cmd}{isopaper} +\EndIndex{Option}{paper~=\PName{orientation}}% +\EndIndex{Option}{paper~=\PName{format}} +\BeginIndex{Option}{pagesize}% +\BeginIndex{Option}{pagesize~=\PName{output driver}}% \begin{Declaration} - \Macro{paperwidth}\\ - \Macro{paperheight} + \KOption{pagesize}\PName{output driver} \end{Declaration}% -\BeginIndex{Cmd}{paperwidth}% -\BeginIndex{Cmd}{paperheight}% -Particularly exotic paper sizes can be defined using the lengths -\Macro{paperwidth} and \Macro{paperheight}. -This requires the re-calculation of the text layout using the -commands \Macro{typearea} or \Macro{areaset}. -% -\begin{Example} -Assume you want to print on endless paper with the dimensions -\(8\frac{1}{4}\Unit{inch} \times 12\Unit{inch}\). This format is -not directly supported by \Package{typearea}. Thus you have to -define it befor calculating the text layout: -\begin{lstlisting} - \documentclass{article} - \usepackage{typearea} - \setlength{\paperwidth}{8.25in} - \setlength{\paperheight}{12in} - \typearea{1} -\end{lstlisting} -\end{Example} -\EndIndex{Cmd}{paperheight} -\EndIndex{Cmd}{paperwidth} - \begin{Explain}% -\begin{Declaration} - \Option{dvips}\\ - \Option{pdftex}\\ - \Option{pagesize} -\end{Declaration}% -\BeginIndex{Option}{dvips}% -\BeginIndex{Option}{pdftex}% -\BeginIndex{Option}{pagesize}% - These mechanisms will set internal {\LaTeX} dimensions to values that - header, text body and footer can be printed on paper of the given - size. However, the specifications of the DVI format\index{DVI} do - not allow the paper format to be specified. If DVI is translated - directly into a low level printer language like PCL (Hewlett-Packard - printers) or Esc-P (Epson), this is usually not important, because - in all these cases the origin is the upper left corner. If however - the DVI source is translated into languages like - PostScript\Index{PostScript} or PDF\Index{PDF}, that have an origin - in a different position and also contain the paper size explicitly, - the required information is not available in the DVI file. To solve - this problem the DVI driver will use the default paper size, which - the user may set per option or in the {\TeX} source. In case of the - DVI driver \File{dvips} this can be done with a - \Macro{special} command. For pdf{\TeX} two dimensions are set - instead. + The above-mentioned mechanisms for choice of paper format only + affect the output insofar as internal {\LaTeX} lengths are set. The + \Package{typearea} package then uses there in the division of the + page into type-area and margins. The specification of the DVI + formats\Index{DVI} however does not include any indications of paper + format. If printing is done directly from DVI format to a low-level + printer language such as PCL% + \iffalse% Umbruchkorrektur + \footnote{PCL is the printer language used by HP for its inkjet and + laser printers.}% + \fi \ or ESC/P2% + \iffalse% Umbruchkorrektur + \footnote{ESC/P2 is the printer language used by EPSON for its + dot-matrix, inkjet and laser printers.}% + \fi , this is usually not an issue since with this output also the + zero-position is at the top left, identical to DVI. If however + translation is made into a language such as + PostScript\Index{PostScript} or PDF\Index{PDF}, in which the + zero-position is at a different point, and in which also the paper + format should be specified in the output data, then this information + is missing. To solve this problem, the respective drivers use a + predefined paper size, which the user can change either by means of + an option or via a corresponding command in the {\TeX} source + file. When using the DVI driver \File{dvips} the information can be + given in the form of a \Macro{special} command. With {pdf\TeX} or + {V\TeX} one sets instead two lengths. \end{Explain} -The option \Option{dvips} writes the paper size as a \Macro{special} -into the DVI file. This macro is then evaluated by \File{dvips}. -\Option{pdftex} on the other hand writes the paper size into the -pdf{\TeX} page register at the beginning of the document, so that the -correct paper size is used when the resulting PDF file is viewed or -printed. The option \Option{pagesize} is more flexible and uses the -correct mechanism if either a PDF or DVI file is produced. -% +The option \OptionValue{pagesize}{dvips}\IndexOption{pagesize~=dvips} +writes the paper size as a \Macro{special} into die DVI data +file. This \Macro{special} is then evaluated by, for example, +\File{dvips}. On the other hand, the option +\OptionValue{pagesize}{pdftex} writes the paper size at the start of +the document into the {pdf\TeX} page registers +\Length{pdfpagewidth}\IndexLength{pdfpagewidth} and +\Length{pdfpageheight}\IndexLength{pdfpageheight}, so that later when +viewing the PDF file the correct format is chosen. The option +\OptionValue{pagesize}{auto} is more flexible and, depending on +whether a PDF or DVI data file is output, uses the mechanism of the +option \OptionValue{pagesize}{dvips} or +\OptionValue{pagesize}{pdftex}. With the option +\OptionValue{pagesize}{automedia} it may be that \Length{mediawidth} +and \Length{mediaheight} are also set appropriately. In this way even +the demands of {V\TeX} are supported. If the option \Option{pagesize} +is used with specifying an \PName{output driver} then \PValue{auto} is +used. \begin{Example} - Assume you want to create a DVI file from a document and an - online version in PDF. Then the preamble could look like this: -\begin{lstlisting} + Assume that a document should be available both as a DVI data file + and in PDF format for online viewing. Then the preamble might begin + as follows: +\begin{lstcode} \documentclass{article} - \usepackage[a4paper,pagesize]{typearea} -\end{lstlisting} - If the file is run through {pdf\TeX} then the lengths - \Macro{pdfpagewidth} and \Macro{pdfpageheight} will be set to - appropriate values. If on the other hand you create a DVI file\,---\, - either with {\LaTeX} or pdf{\LaTeX}\,---\,a \Macro{special} will be - written to the beginning of the file. -\end{Example}\IndexCmd{pdfpagewidth}\IndexCmd{pdfpageheight} -\EndIndex{Option}{dvips}% -\EndIndex{Option}{pdftex}% + \usepackage[paper=A4,pagesize]{typearea} +\end{lstcode} +If the {pdf\TeX} engine is used \emph{and} PDF output is +activated, then the two lengths \Macro{pdfpagewidth} and +\Macro{pdfpageheight} are set appropriately. If however a DVI data +file is created\,---\,regardless of whether by {\LaTeX} or by +{pdf\LaTeX}\,---\,then a \Macro{special} is written at the start of +this data file. +\end{Example}% +It is recommended always to specify this option. Generally the method +without \PName{output driver}, or with \PValue{auto} or +\PValue{automedia} is useful.% \EndIndex{Option}{pagesize}% - -\section{Odd Bits without Direct Relevance to Text Layout} -\label{sec:typearea.else} - -\begin{Declaration} - \Macro{ifpdfoutput}\Parameter{then}\Parameter{else} -\end{Declaration}% -\BeginIndex{Cmd}{ifpdfoutput}% -Sometimes it would be nice if certain things would be done -differently in a file, depending on output format. {\TeX} normally -uses DVI as output format. With pdf{\TeX} however we now have the -option to create PDF files directly. The command -\Macro{ifpdfoutput} is a branching command. If PDF output is -active, the \PName{then} branch will be executed, if PDF output -is inactive or {pdf\TeX} is not used at all, the -\PName{else} branch. -\begin{Example} - As you may know pdf{\LaTeX} will produce a DVI file instead of a - PDF file, if the counter \Macro{pdfoutput} is assigned the value 0. - Only is the counter is assigned a value different from 0 output is - switched to PDF. Since \Macro{pdfoutput} is unknown when {\LaTeX} is - used instead of pdf{\LaTeX}, \Macro{pdfoutput} can not be set to 0 - generally, if you want DVI output. A simple solution to this problem - is to execute following command: -\begin{lstlisting} - \ifpdfoutput{\pdfoutput=0}{} -\end{lstlisting} - This only works after loading \Package{typearea} package. If you - want the line above to be executed after a package, which sets - \Macro{pdfoutput} to 1 whenever the counter exists, you may combine - it with the \Macro{AfterPackage}\IndexCmd{AfterPackage} command - from \Package{scrlfile} package (see \autoref{cha:scrlfile}). -\end{Example}\IndexCmd{pdfoutput} -\EndIndex{Cmd}{ifpdfoutput} - -\section{Local Defaults in the File \File{typearea.cfg}} -\label{sec:typearea.cfg} -Even before the packet options are used, \Package{typearea} will check -for the presence of the file -\File{typearea.cfg}\IndexFile{typearea.cfg} and, if found, load it. -Thus it is possible to define in this file the parameters for -additional paper sizes. - -\begin{Declaration} - \Macro{SetDIVList}\Parameter{List} -\end{Declaration}% -\BeginIndex{Cmd}{SetDIVList}% -\begin{Explain}% - The \Macro{SetDIVList} parameter was also intended for use in this - file. Before the option \Option{DIV=calc} was introduced this was the - only possibility to define \Var{DIV} values for different paper and - font sizes. This list consists of a number of values in curly - parentheses. The leftmost value is the font size, \(10\Unit{pt}\), - the next for \(11\Unit{pt}\), the third for \(12\Unit{pt}\) and so - on. If you don't use \Macro{SetDIVList} the predefined - \Macro{SetDIVList}% - \PParameter{\PParameter{8}\PParameter{10}\PParameter{12}} will be - used. If no default value is given for a particular font size, - \(10\) will be used. -\end{Explain} - -This command should no longer be used, automatic calculation of text -layout is recommended instead (see -\autoref{sec:typearea.options}). +\EndIndex{Option}{pagesize~=\PName{output driver}}% % -\EndIndex{Cmd}{SetDIVList} +\EndIndex{}{paper>format} + -\section{Hints} +\section{Tips} \label{sec:typearea.tips} -\begin{Explain} - In particular for theses many rules exist that violate even the most - elementary rules of typography. The reasons for such rules include - typographical incompetence of those making them, but also the fact that they - were originally meant for mechanical typewriters. With a typewriter or a - primitive text processor dating back to the early ´80s it is not possible to - produce typographically correct output without extreme effort. Thus rules - were created that appeared to be achievable and still allowed easy - correction. To avoid short lines made worse by ragged margins the borders - were kept narrow, and the line spacing increased to 1.5 for corrections. In - a single spaced document even correction signs would have been difficult to - add. When computers became widely available for text processing, some - students tried to use a particularly ``nice'' font to make their work look - better than it really was. They forgot however that such fonts are often - more difficult to read and therefore unsuitable for this purpose. Thus two - bread-and-butter fonts became widely used which neither fit together nor are - particularly suitable for the job. In particular Times is a relatively - narrow font which was developed at the beginning of the 20$^{th}$ century - for the narrow columns of British newspapers. Modern versions usually are - somewhat improved. But still the Times font required in many rules does not - really fit to the border sizes prescribed. - - {\LaTeX} already uses sufficient line spacing, and the borders are wide - enough for corrections. Thus a page will look generous, even when quite full - of text. With \Package{typearea} this is even more true, especially if the - calculation of line length is left to \Package{typearea} too. For fonts that - are sensitive to long lines the line length can easily be reduced. - - To some extend the questionable rules are difficult to implement in - {\LaTeX}. A fixed number of characters per line can be kept only when a - non-proportional font is used. There are very few good non-proportional - fonts around. Hardly a text typeset in this way looks really good. In many - cases font designers try to increase the serifs on the `i' or `l' to - compensate for the different character width. This can not work and results - in a fragmented and agitated-looking text. If you use {\LaTeX} for your - paper, some of these rules have to be either ignored or at least interpreted - generously. For example you may interpret ``60 characters per line'' not as - a fixed, but average or maximal value.% -\end{Explain} -As executed, record regulations are usually intended to obtain a useable -result even if the author does not know what needs to be considered. Useable -means frequently: readable and correctable. In my opinion the type area of a -text set with {\LaTeX} and the \Package{typearea} package meets these criteria -well right from the beginning. Thus if you are confronted with regulations -which deviate obviously substantially from it, then I recommend to submit a -text single dump to the responsible person and inquire whether it is permitted -to supply the work despite the deviations in this form. If necessary the -type area can be moderately adapted by modification of option \Option{DIV}. I -advise against use of \Macro{areaset} for this purpose however. At worst you -may use geometry package (see \cite{package:geometry}), which is not part of -{\KOMAScript}, or change the type area parameters of {\LaTeX}. You may find the -values determined by \Package{typearea} in the log file of your document. -Thus moderate adjustments should be possible. However, make absolutely sure -that the proportions of the text area correspond approximately to those of the -page including consideration of the binding correction. - -If it should be absolutely necessary to set the text one-and-a-half-lined then -you should not redefine \Macro{baselinestretch} under any circumstances. -Although this procedure was recommended very frequently, it is obsolete since -the introduction of {\LaTeXe} in 1994. Use at least the instruction -\Macro{linespread}. I recommend package \Package{setspace} (see -\cite{package:setspace}), which is not part of {\KOMAScript}. Also you should -use \Package{typearea} to calculate a new type area after the conversion of -the line spacing. However, you should switch back to the normal line spacing -for the title, preferably also for the table contents and various -listings\,---\,as well as the bibliography and the index. The -\Package{setspace} package offers for this a special environment and its own -instructions. +In particular for theses many rules exist that violate even the most +elementary rules of typography. The reasons for such rules include +typographical incompetence of those making them, but also the fact +that they were originally meant for mechanical typewriters. With a +typewriter or a primitive text processor dating back to the early +´80s it was not possible to produce typographically correct output +without extreme effort. Thus rules were created that appeared to be +achievable and still allowed easy correction. To avoid short lines +made worse by ragged margins, the margins were kept narrow and the +line spacing was increased to 1.5 for corrections. Before the advent +of modern text processing systems, single-spaced would have been the +only alternative\,---\,other than with \TeX. In such a single-spaced +document even correction signs would have been difficult to add. When +computers became more widely available for text processing, some +students tried to use a particularly ``nice'' font to make their work +look better than it really was. They forgot however that such fonts +are often more difficult to read and therefore unsuitable for this +purpose. Thus two bread-and-butter fonts became widely used which +neither fit together nor are particularly suitable for the job. In +particular Times is a relatively narrow font which was developed at +the beginning of the 20$^{th}$ century for the narrow columns of +British newspapers. Modern versions usually are somewhat improved. But +still the Times font required in many rules does not really fit to the +margin sizes prescribed. + +{\LaTeX} already uses sufficient line spacing, and the margins are +wide enough for corrections. Thus a page will look generous, even when +quite full of text. + +To some extend the questionable rules are difficult to implement in +{\LaTeX}. A fixed number of characters per line can be kept only when +a non-proportional font is used. There are very few good +non-proportional fonts available. Hardly a text typeset in this way +looks really good. In many cases font designers try to increase the +serifs on the `i' or `l' to compensate for the different character +width. This can not work and results in a fragmented and +agitated-looking text. If one uses {\LaTeX} for one's paper, some of +these rules have to be either ignored or at least interpreted +generously. For example one may interpret ``60 characters per line'' +not as a fixed, but as an average or maximal value.% + +As executed, record regulations are usually intended to obtain a +usable result even if the author does not know what needs to be +considered. Usable means frequently: readable and correctable. In +the author's opinion the type-area of a text set with {\LaTeX} and the +\Package{typearea} package meets these criteria well right from the +start. Thus if one is confronted with regulations which deviate +obviously substantially from it, then the author recommends submitting +an extract from the text to the responsible person and inquiring +whether it is permitted to submit the work despite deviations in the +format. If necessary the type area can be moderately adapted by +modification of option \Option{DIV}. The author advises against the +use of \Macro{areaset} for this purpose however. In the worst case +one may make use of the geometry package (see +\cite{package:geometry}), which is not part of \KOMAScript, or change +the type-area parameters of \LaTeX. One may find the values +determined by \Package{typearea} in the \File{log} file of one's +document. Thus moderate adjustments should be possible. However, one +should make absolutely sure that the proportions of the text area +correspond approximately to those of the page including consideration +of the binding correction. + +If it should prove absolutely necessary to set the text with a line +spacing of 1.5, then one should not under any circumstances redefine +\Macro{baselinestretch}. Although this procedure is recommended all +too frequently, it has been obsolete since the introduction of +{\LaTeXe} in 1994. In the worst case one may use the instruction +\Macro{linespread}. The author recommends the package +\Package{setspace}\IndexPackage{setspace} (see +\cite{package:setspace}), which is not part of \KOMAScript. Also one +should let \Package{typearea} recalculate a new type-area after the +conversion of the line spacing. However, one should switch back to +the normal line spacing for the title, preferably also for the table +contents and various listings\,---\,as well as the bibliography and +the index. The \Package{setspace} package offers for this a special +environment and its own instructions. The \Package{typearea} package even with option \Option{DIV=calc} calculates a very generous text area. Many conservative typographers will state that the resulting line length is still excessive. The -calculated \Var{DIV} value may be found in the \File{log} file to the -respective document. Thus you can select a smaller value easily after +calculated \Var{DIV} value may be found in the \File{log} file for the +respective document. Thus one can select a smaller value easily after the first {\LaTeX} run. -The question is put to me not infrequently, why I actually talk -section after section about type area calculations, when it would be -very much simpler to merely give you a package with which one can -adjust the edges like during a text processing. Often also it is -stated that such a package would be anyway the better solution, since -everyone can judge how good edges are to be selected, and that the -edges calculated by {\KOMAScript} are anyway not that great. I take -the liberty of translating a suitable quotation from -\cite{TYPO:ErsteHilfe}. You may find the original German words in the -German scrguide. +The question is not infrequently put to the author, why he spends an +entire chapter discussing type-area calculations, when it would be +very much simpler to merely give the world a package with which anyone +can adjust the margins like in a word processor. Often it is added +that such a package would in any case be the better solution, since +everyone can judge for themselves how good margins are to be chosen, +and that the margins calculated by {\KOMAScript} are anyway not that +great. The author takes the liberty of translating a suitable +quotation from \cite{TYPO:ErsteHilfe}. One may find the original +German words in the German scrguide. \begin{quote} \phantomsection\label{sec:typearea.tips.cite}% - \textit{The making by oneself is quite widespread, the results are often - doubtful, because layman typographers do not see what is incorrect - and cannot not know what it important. Thus one gets - accustomed to wrong and poor typography.} [\dots] \textit{Now the - objection could be made that typography is nevertheless a taste thing. If - it concerned decoration, perhaps one could let that argument apply, - however, since it concerns primarily information with typography, - errors cannot only disturb, but may even cause damage.} + \textit{The practice of doing things oneself is long-since + widespread, but the results are often dubious because layman + typographers do not see what is incorrect and cannot know what is + important. Thus one becomes accustomed to incorrect and poor + typography.} [\dots] \textit{Now the objection could be made that + typography is dependent on taste. If it concerned decoration, + perhaps one could let that argument slip by; however, since + typography is primarily concerned with information, errors cannot + only irritate, but may even cause damage.} \end{quote} %%% Local Variables: |