You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
892 lines
35 KiB
892 lines
35 KiB
% ======================================================================
|
|
% common-lists.tex
|
|
% Copyright (c) Markus Kohm, 2001-2019
|
|
%
|
|
% This file is part of the LaTeX2e KOMA-Script bundle.
|
|
%
|
|
% This work may be distributed and/or modified under the conditions of
|
|
% the LaTeX Project Public License, version 1.3c of the license.
|
|
% The latest version of this license is in
|
|
% http://www.latex-project.org/lppl.txt
|
|
% and version 1.3c or later is part of all distributions of LaTeX
|
|
% version 2005/12/01 or later and of this work.
|
|
%
|
|
% This work has the LPPL maintenance status "author-maintained".
|
|
%
|
|
% The Current Maintainer and author of this work is Markus Kohm.
|
|
%
|
|
% This work consists of all files listed in manifest.txt.
|
|
% ----------------------------------------------------------------------
|
|
% common-lists.tex
|
|
% Copyright (c) Markus Kohm, 2001-2019
|
|
%
|
|
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
|
|
% Version 1.3c, verteilt und/oder veraendert werden.
|
|
% Die neuste Version dieser Lizenz ist
|
|
% http://www.latex-project.org/lppl.txt
|
|
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
|
|
% Version 2005/12/01 oder spaeter und dieses Werks.
|
|
%
|
|
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
|
|
% (allein durch den Autor verwaltet).
|
|
%
|
|
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
|
|
%
|
|
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
|
|
% ======================================================================
|
|
%
|
|
% Paragraphs that are common for several chapters of the KOMA-Script guide
|
|
% Maintained by Markus Kohm
|
|
%
|
|
% ----------------------------------------------------------------------
|
|
%
|
|
% Absätze, die mehreren Kapiteln der KOMA-Script-Anleitung gemeinsam sind
|
|
% Verwaltet von Markus Kohm
|
|
%
|
|
% ======================================================================
|
|
|
|
\KOMAProvidesFile{common-lists.tex}%
|
|
[$Date: 2019-11-19 12:56:28 +0100 (Tue, 19 Nov 2019) $
|
|
KOMA-Script guide (common paragraphs)]
|
|
|
|
\section{Listen}
|
|
\seclabel{lists}%
|
|
\BeginIndexGroup
|
|
\BeginIndex{}{Listen}%
|
|
|
|
\IfThisCommonFirstRun{}{%
|
|
Es gilt sinngemäß, was in \autoref{sec:\ThisCommonFirstLabelBase.lists}
|
|
geschrieben wurde. Falls Sie also
|
|
\autoref{sec:\ThisCommonFirstLabelBase.lists} bereits gelesen und verstanden
|
|
haben, können Sie auf \autopageref{sec:\ThisCommonLabelBase.lists.next} mit
|
|
\autoref{sec:\ThisCommonLabelBase.lists.next} fortfahren.%
|
|
\IfThisCommonLabelBaseOneOf{scrextend,scrlttr2}{ %
|
|
\IfThisCommonLabelBase{scrlttr2}{%
|
|
Das Paket \Package{scrletter}\OnlyAt{\Package{scrletter}} definiert
|
|
selbst keine Listenumgebungen, sondern überlässt diese der verwendeten
|
|
Klasse. Ist dies keine \KOMAScript-Klasse, so lädt es
|
|
\hyperref[cha:scrextend]{\Package{scrextend}}\IndexPackage{scrextend}%
|
|
\important{\hyperref[cha:scrextend]{\Package{scrextend}}}. %
|
|
}{}%
|
|
Allerdings werden vom Paket \Package{scrextend} nur die Umgebungen
|
|
\DescRef{\ThisCommonLabelBase.env.labeling},
|
|
\DescRef{\ThisCommonLabelBase.env.addmargin} und
|
|
\DescRef{\ThisCommonLabelBase.env.addmargin*} definiert. Alle anderen
|
|
Listenumgebungen bleiben der Verantwortung % und Kontrolle
|
|
der verwendeten Klasse überlassen.%
|
|
}{}%
|
|
}
|
|
|
|
\IfThisCommonLabelBase{scrextend}{}{%
|
|
{\LaTeX} und die Standardklassen\textnote{\KOMAScript{} vs. 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\textnote{Tipp!} in solchen
|
|
Fällen, die eine große Liste in mehrere kleinere Listen aufzuteilen.%
|
|
}
|
|
|
|
\IfThisCommonFirstRun{}{%
|
|
\IfThisCommonLabelBase{scrextend}{}{% Umbruchkorrektur
|
|
\iffalse % Umbruchkorrektur
|
|
Da Listen zu den Standardelementen von \LaTeX{} gehören, wurde in diesem
|
|
Abschnitt auf Beispiele verzichtet. %
|
|
\else%
|
|
Auf Beispiele wurde in diesem Abschnitt verzichtet. %
|
|
\fi%
|
|
Sie finden solche in \autoref{sec:\ThisCommonFirstLabelBase.lists} ab
|
|
\autopageref{sec:\ThisCommonFirstLabelBase.lists} oder in jeder
|
|
\LaTeX-Einführung.%
|
|
}%
|
|
}
|
|
|
|
|
|
\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
|
|
\begin{Declaration}
|
|
\begin{Environment}{itemize}
|
|
\begin{Body}
|
|
\Macro{item} \dots
|
|
\BodyDots
|
|
\end{Body}
|
|
\end{Environment}
|
|
\Macro{labelitemi}
|
|
\Macro{labelitemii}
|
|
\Macro{labelitemiii}
|
|
\Macro{labelitemiv}
|
|
\end{Declaration}%
|
|
\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Die einfachste
|
|
Form einer Liste ist die Stichpunkt-\textnote{Stichpunktliste} oder
|
|
\Environment{itemize}-Liste. %
|
|
\iffalse % Umbruchoptimierungstext
|
|
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. %
|
|
\fi%
|
|
Bei den \KOMAScript-Klassen werden je nach Ebene folgende Aufzählungszeichen
|
|
zur Einleitung eines Listenelements 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 diese leicht mit \Macro{renewcommand} umdefinieren. Die
|
|
einzelnen Stichpunkte werden mit \Macro{item} eingeleitet.%
|
|
\IfThisCommonFirstRun{\iftrue}{%
|
|
\ In \autoref{sec:maincls.lists} auf \PageRefxmpl{maincls.env.itemize}
|
|
finden Sie ein Beispiel für die Anwendung.%
|
|
\csname iffalse\endcsname}
|
|
\begin{Example}
|
|
\phantomsection\xmpllabel{env.itemize}%
|
|
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 zweimotorig
|
|
\begin{itemize}
|
|
\item{düsengetrieben}
|
|
\item{propellergetrieben}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\item Drehflügler
|
|
\end{itemize}
|
|
\item Motorräder
|
|
\item Automobile
|
|
\begin{itemize}
|
|
\item Rennwagen
|
|
\item Personenwagen
|
|
\item Lastwagen
|
|
\end{itemize}
|
|
\item Fahrräder
|
|
\end{itemize}
|
|
\end{lstcode}
|
|
Anschließend erhalten Sie:%
|
|
\iffree{}{\vskip 0pt plus \baselineskip}% Umbruchkorrektur
|
|
\begin{ShowOutput}[.5\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 zweimotorig
|
|
\begin{itemize}
|
|
\item{düsengetrieben}
|
|
\item{propellergetrieben}
|
|
\end{itemize}
|
|
\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
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\begin{Environment}{enumerate}\labelsuffix[enumerate]
|
|
\begin{Body}
|
|
\Macro{item} \dots
|
|
\BodyDots
|
|
\end{Body}
|
|
\end{Environment}
|
|
\Macro{theenumi}
|
|
\Macro{theenumii}
|
|
\Macro{theenumiii}
|
|
\Macro{theenumiv}
|
|
\Macro{labelenumi}
|
|
\Macro{labelenumii}
|
|
\Macro{labelenumiii}
|
|
\Macro{labelenumiv}
|
|
\end{Declaration}%
|
|
\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Die nummerierte
|
|
Liste\textnote{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.%
|
|
\IfThisCommonFirstRun{\iftrue}{%
|
|
\ In \autoref{sec:maincls.lists} auf \PageRefxmpl{maincls.env.enumerate}
|
|
finden Sie ein Beispiel für die Anwendung.%
|
|
\csname iffalse\endcsname}
|
|
\begin{Example}
|
|
\phantomsection\xmpllabel{env.enumerate}%
|
|
Verkürzen wir das vorherige Beispiel und verwenden statt der
|
|
\DescRef{\ThisCommonLabelBase.env.itemize}- eine
|
|
\Environment{enumerate}-Umgebung:
|
|
% Übernehmen wir das Beispiel der
|
|
% \DescRef{\LabelBase.env.itemize}-Umgebung,
|
|
% wobei wir jede \DescRef{\LabelBase.env.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}%
|
|
\ExampleEndFix
|
|
\fi
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\begin{Declaration}
|
|
\begin{Environment}{description}\labelsuffix[description]
|
|
\begin{Body}
|
|
\Macro{item}\OParameter{Stichwort} \dots
|
|
\BodyDots
|
|
\end{Body}
|
|
\end{Environment}
|
|
\end{Declaration}%
|
|
\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Eine weitere
|
|
Listenform ist die Stichwortliste\textnote{Stichwortliste}. Sie dient in
|
|
erster Linie der Beschreibung einzelner Begriffe. Diese werden als optionale
|
|
Parameter bei \Macro{item} angegeben. %
|
|
\BeginIndex{FontElement}{descriptionlabel}%
|
|
\LabelFontElement{descriptionlabel}%
|
|
Die Schriftart\Index{Schrift>Art}\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 \DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
|
|
\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
|
|
\autoref{sec:\ThisCommonLabelBase.textmarkup},
|
|
\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) für das Element
|
|
\FontElement{descriptionlabel}\important{\FontElement{descriptionlabel}}
|
|
(siehe \autoref{tab:\ThisCommonLabelBase.fontelements},
|
|
\autopageref{tab:\ThisCommonLabelBase.fontelements}) geändert werden. In der
|
|
Voreinstellung wird \Macro{sffamily}""\Macro{bfseries} verwendet.%
|
|
\IfThisCommonFirstRun{\iftrue}{%
|
|
\ In \autoref{sec:maincls.lists} auf \PageRefxmpl{maincls.env.description}
|
|
finden Sie ein Beispiel für die Anwendung.%
|
|
\csname iffalse\endcsname}
|
|
\begin{Example}
|
|
\phantomsection\xmpllabel{env.description}%
|
|
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
|
|
%
|
|
\EndIndexGroup%
|
|
\fi
|
|
|
|
\begin{Declaration}
|
|
\begin{Environment}{labeling}\OParameter{Trennzeichen}
|
|
\Parameter{längstes Schlüsselwort}
|
|
\labelsuffix[labeling]
|
|
\begin{Body}
|
|
\Macro{item}\OParameter{Stichwort} \dots
|
|
\BodyDots
|
|
\end{Body}
|
|
\end{Environment}
|
|
\end{Declaration}%
|
|
Eine andere Form der %
|
|
\IfThisCommonLabelBase{scrextend}{%
|
|
in vielen Klassen als
|
|
\DescRef{\ThisCommonFirstLabelBase.env.description}-Umgebung vorhandenen %
|
|
}{}%
|
|
Stichwortliste\textnote{alternative Stichwortliste} ist nur
|
|
bei\IfThisCommonLabelBase{scrextend}{}{ den} {\KOMAScript}-Klassen%
|
|
\IfThisCommonLabelBase{scrextend}{ und \Package{scrextend} }{%
|
|
\IfThisCommonLabelBase{scrlttr2}{ und
|
|
\hyperref[cha:scrextend]{\Package{scrextend}} }{}%
|
|
}%
|
|
vorhanden: die \Environment{labeling}-Umgebung. Im Unterschied
|
|
\IfThisCommonLabelBaseOneOf{maincls,scrextend}{zu}{zur zuvor vorgestellten
|
|
Umgebung} %
|
|
\IfThisCommonLabelBase{scrextend}{%
|
|
\DescRef{\ThisCommonFirstLabelBase.env.description}%
|
|
}{%
|
|
\DescRef{\ThisCommonLabelBase.env.description}%
|
|
} kann bei \Environment{labeling} ein Muster angegeben werden, dessen Länge
|
|
die Einrücktiefe aller Stichpunkte ergibt. Zwischen Stichpunkt und
|
|
Beschreibungstext kann ein optionales \PName{Trennzeichen} festgelegt
|
|
werden. %
|
|
\BeginIndexGroup
|
|
\BeginIndex{FontElement}{labelinglabel}\LabelFontElement{labelinglabel}%
|
|
\BeginIndex{FontElement}{labelingseparator}%
|
|
\LabelFontElement{labelingseparator}%
|
|
Die Schriftart\Index{Schrift>Art}%
|
|
\IfThisCommonLabelBase{maincls}{%
|
|
\ChangedAt{v3.02}{\Class{scrbook}\and \Class{scrreprt}\and
|
|
\Class{scrartcl}}%
|
|
}{%
|
|
\IfThisCommonLabelBase{scrlttr2}{%
|
|
\ChangedAt{v3.02}{\Class{scrlttr2}}%
|
|
}{%
|
|
\IfThisCommonLabelBase{scrextend}{%
|
|
\ChangedAt{v3.02}{\Package{scrextend}}%
|
|
}{\InternalCommonFileUsageError}%
|
|
}%
|
|
}%
|
|
, die für die Hervorhebung des Schlüsselworts verwendet wird, kann mit Hilfe
|
|
\IfThisCommonLabelBase{scrextend}{von}{der Anweisungen}
|
|
\DescRef{\ThisCommonLabelBase.cmd.setkomafont} und
|
|
\DescRef{\ThisCommonLabelBase.cmd.addtokomafont} (siehe
|
|
\autoref{sec:\ThisCommonLabelBase.textmarkup},
|
|
\DescPageRef{\ThisCommonLabelBase.cmd.setkomafont}) für das Element
|
|
\FontElement{labelinglabel}\IndexFontElement{labelinglabel} (siehe
|
|
\autoref{tab:\ThisCommonLabelBase.fontelements},
|
|
\autopageref{tab:\ThisCommonLabelBase.fontelements}) geändert werden. Für die
|
|
davon abweichende Schriftart der Trennzeichen ist das Element
|
|
\FontElement{labelingseparator}\IndexFontElement{labelingseparator} (siehe
|
|
ebenfalls \autoref{tab:\ThisCommonLabelBase.fontelements},
|
|
\autopageref{tab:\ThisCommonLabelBase.fontelements}) zuständig. Beide sind in
|
|
der Voreinstellung\textnote{Voreinstellung} leer, es findet also keine
|
|
Schriftumschaltung statt.%
|
|
\IfThisCommonFirstRun{\iftrue}{\csname iffalse\endcsname}
|
|
\begin{Example}
|
|
\phantomsection\xmpllabel{env.labeling}%
|
|
\IfThisCommonLabelBase{scrextend}{%
|
|
Eine einfache Liste könnte beispielsweise wie folgt definiert werden:%
|
|
}{%
|
|
Wir schreiben das Beispiel der
|
|
\DescRef{\ThisCommonLabelBase.env.description}-Umgebung etwas um:%
|
|
}%
|
|
\begin{lstcode}
|
|
\setkomafont{labelinglabel}{\ttfamily}
|
|
\setkomafont{labelingseparator}{\normalfont}
|
|
\begin{labeling}[~--]{myheadings}
|
|
\item[empty]
|
|
Seitenstil für leere Seiten ohne Kopf und Fuß
|
|
\item[plain]
|
|
Seitenstil für Kapitelanfänge ganz ohne
|
|
Kolumnentitel
|
|
\item[headings]
|
|
Seitenstil für automatische Kolumnentitel
|
|
\item[myheadings]
|
|
Seitenstil für manuelle Kolumnentitel
|
|
\end{labeling}
|
|
\end{lstcode}
|
|
Als Ergebnis erhalten wir dann:
|
|
\begin{ShowOutput}
|
|
\setkomafont{labelinglabel}{\ttfamily}
|
|
\setkomafont{labelingseparator}{\normalfont}
|
|
\begin{labeling}[~--]{myheadings}
|
|
\item[empty]
|
|
Seitenstil für leere Seiten ohne Kopf und Fuß
|
|
\item[plain]
|
|
Seitenstil für Kapitelanfänge ganz ohne
|
|
Kolumnentitel
|
|
\item[headings]
|
|
Seitenstil für automatische Kolumnentitel
|
|
\item[myheadings]
|
|
Seitenstil für manuelle Kolumnentitel
|
|
\end{labeling}
|
|
\end{ShowOutput}
|
|
Wie in diesem Beispiel zu sehen ist, kann eine eventuell geforderte
|
|
Schriftumschaltung in bei \KOMAScript{} gewohnter Weise erreicht
|
|
werden. Da sich die Schriftumschaltung für das Schlüsselwort aber auch auf
|
|
die Trennzeichen auswirkt, kann es eventuell erforderlich sein, die
|
|
Schriftumschaltung dafür explizit aufzuheben.
|
|
\end{Example}
|
|
\fi%
|
|
\EndIndexGroup%
|
|
\IfThisCommonFirstRun{%
|
|
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.%
|
|
}{%
|
|
\ In \autoref{sec:maincls.lists} auf \PageRefxmpl{maincls.env.labeling}
|
|
finden Sie ein Beispiel für die Anwendung der Umgebung.%
|
|
}%
|
|
\EndIndexGroup
|
|
|
|
|
|
\IfThisCommonLabelBase{scrextend}{\iffalse}{\csname iftrue\endcsname}
|
|
\begin{Declaration}
|
|
\begin{Environment}{verse}\end{Environment}
|
|
\end{Declaration}%
|
|
\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Die
|
|
\Environment{verse}-Umgebung\textnote{Versform} 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|\\|\IndexCmd{\textbackslash} 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\textnote{Seitenumbruch} erfolgt, so
|
|
verwendet man ganz normal \verb|\\*|\IndexCmd{\textbackslash*} anstelle von
|
|
\verb|\\|.%
|
|
\IfThisCommonFirstRun{\iftrue}{%
|
|
\par In \autoref{sec:maincls.lists} auf \PageRefxmpl{maincls.env.verse}
|
|
finden Sie ein Beispiel für die Anwendung.%
|
|
\csname iffalse\endcsname}
|
|
\begin{Example}
|
|
\phantomsection\xmpllabel{env.verse}%
|
|
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}
|
|
\iffree{}{\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}
|
|
\iffree{}{\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, kann
|
|
man zusätzlich \Macro{interlinepenalty}\IndexCmd{interlinepenalty} auf
|
|
10000 setzen:
|
|
\begin{lstcode}
|
|
\begin{verse}\interlinepenalty 10000
|
|
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}
|
|
\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{lstcode}
|
|
\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{lstcode}
|
|
\begin{ShowOutput}
|
|
\iffree{}{\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 %
|
|
\iffalse %
|
|
In diesen Beispielen wurde übrigens jeweils \Macro{bigskip} verwendet,
|
|
um zwei Sprüche voneinander zu trennen.%
|
|
\fi %
|
|
\end{Example}%
|
|
\vskip -1\ht\strutbox plus .75\strutbox% Ende Beispiel + Beschreibung
|
|
\fi
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
\iffalse% Umbruchkorrekturvarianten
|
|
\begin{Declaration}
|
|
\begin{Environment}{quote}\end{Environment}
|
|
\end{Declaration}%
|
|
\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Dies ist
|
|
intern ebenfalls eine Listenumgebung\textnote{Blockzitat mit
|
|
Absatzabstand} 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.%
|
|
\EndIndexGroup
|
|
|
|
\begin{Declaration}
|
|
\begin{Environment}{quotation}\end{Environment}
|
|
\end{Declaration}%
|
|
\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Diese
|
|
Umgebung\textnote{Blockzitat mit Absatzeinzug} ist mit
|
|
\DescRef{\ThisCommonLabelBase.env.quote} vergleichbar. Während bei
|
|
\DescRef{\ThisCommonLabelBase.env.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.%
|
|
\else %
|
|
\begin{Declaration}
|
|
\begin{Environment}{quote}\end{Environment}
|
|
\begin{Environment}{quotation}\end{Environment}
|
|
\end{Declaration}%
|
|
\IfThisCommonLabelBase{scrlttr2}{\OnlyAt{\Class{scrlttr2}}}{}Diese beiden
|
|
Umgebungen\textnote{Blockzitate} 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
|
|
\IfThisCommonLabelBase{maincls}{%
|
|
, außer es wird \Macro{noindent}\IndexCmd{noindent} vorangestellt.%
|
|
}{%
|
|
\IfThisCommonLabelBase{scrlttr2}{%
|
|
. Wollen Sie dort den Einzug verhindern, müssen Sie die
|
|
\Macro{noindent}-Anweisung\IndexCmd{noindent} voranstellen.%
|
|
}{\InternalCommonFileUsageError}%
|
|
}%
|
|
\fi % Umbruchkorrekturvarianten
|
|
\IfThisCommonFirstRun{\iftrue}{%
|
|
\ In \autoref{sec:maincls.lists} auf \PageRefxmpl{maincls.env.quote}
|
|
finden Sie ein Beispiel für die Anwendung.%
|
|
\csname iffalse\endcsname}
|
|
\begin{Example}
|
|
\phantomsection\xmpllabel{env.quote}%
|
|
Sie wollen eine kleine Anekdote hervorheben. Also schreiben Sie
|
|
unter Verwendung der Umgebung \Environment{quotation}:%
|
|
\begin{lstcode}
|
|
\documentclass[paper=a5,pagesize]{scrartcl}
|
|
\usepackage[ngerman]{babel}
|
|
\begin{document}
|
|
Ein kleines Beispiel für eine Anekdote, die sich
|
|
einst in Schwaben zugetragen haben soll:
|
|
\begin{quotation}
|
|
Es klingelt an der Tür eines Pfarrhauses in
|
|
Stuttgart. Als die Haushälterin öffnet, steht
|
|
ein unrasierter Mann in reichlich schäbigem
|
|
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,
|
|
"`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{document}
|
|
\end{lstcode}
|
|
Das Ergebnis könnte dann so aussehen:
|
|
\begin{ShowOutput}
|
|
\iftrue% 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 reichlich schäbigem
|
|
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,
|
|
\iffalse% 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}%
|
|
\iffree{}{\IfThisCommonLabelBase{maincls}{\clearpage}{}}% Umbruchkorrektur!!!!
|
|
Zum Vergleich sei das Ganze anstelle von \Environment{quotation} auch
|
|
noch mit einer \DescRef{\LabelBase.env.quote}-Umgebung gezeigt:%
|
|
\begin{ShowOutput}
|
|
\iftrue% 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 reichlich
|
|
schäbigem 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,
|
|
\iffalse% 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
|
|
%
|
|
\EndIndexGroup
|
|
\fi
|
|
|
|
\begin{Declaration}
|
|
\begin{Environment}{addmargin}\OParameter{linker Einzug}\Parameter{Einzug}
|
|
\end{Environment}
|
|
\begin{Environment}{addmargin*}\OParameter{innerer Einzug}\Parameter{Einzug}
|
|
\end{Environment}
|
|
\end{Declaration}
|
|
Wie bei %
|
|
\IfThisCommonLabelBase{scrextend}{%
|
|
den in den Standardklassen und den \KOMAScript-Klassen vorhandenen
|
|
Umgebungen \DescRef{\ThisCommonFirstLabelBase.env.quote} und
|
|
\DescRef{\ThisCommonFirstLabelBase.env.quotation}%
|
|
}{%
|
|
\DescRef{\ThisCommonLabelBase.env.quote} und
|
|
\DescRef{\ThisCommonLabelBase.env.quotation}%
|
|
} %
|
|
handelt\textnote{allgemeine Einzugsumgebung} 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 soll. 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*}\important{\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
|
|
\IfThisCommonLabelBase{scrextend}{%
|
|
Die Umgebung ragt dann entsprechend in den Rand hinein.%
|
|
}{%
|
|
Damit kann man erreichen, dass die Umgebung in den Rand hineinragt.%
|
|
}%
|
|
\IfThisCommonFirstRun{\iftrue}{%
|
|
\ Im Beispiel in \autoref{sec:maincls.lists} auf
|
|
\PageRefxmpl{maincls.env.addmargin} wird dies gezeigt.%
|
|
\csname iffalse\endcsname}%
|
|
\begin{Example}
|
|
\phantomsection\xmpllabel{env.addmargin}%
|
|
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*}%
|
|
}
|
|
Zur Demonstration sei die Definition der Umgebung in der Umgebung selbst
|
|
gesetzt:
|
|
\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}
|
|
Nicht zwingend schön, aber es zeigt den Nutzen.
|
|
\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}
|
|
\fi%
|
|
|
|
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
|
|
\DescRef{\ThisCommonLabelBase.cmd.Ifthispageodd}
|
|
(\autoref{sec:\ThisCommonLabelBase.oddOrEven},
|
|
\DescPageRef{\ThisCommonLabelBase.cmd.Ifthispageodd}) und
|
|
\iffree{\Macro{ifthispagewasodd}}{%
|
|
\DescRef{maincls-experts.cmd.ifthispagewasodd}}
|
|
(\autoref{sec:maincls-experts.addInfos},
|
|
\DescPageRef{maincls-experts.cmd.Ifthispageodd}).%
|
|
\IfThisCommonLabelBase{scrlttr2}{}{%
|
|
\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 \DescRef{maincls-experts.option.parskip} in
|
|
\autoref{sec:maincls-experts.addInfos},
|
|
\DescPageRef{maincls-experts.option.parskip} auch diesem
|
|
Thema. Ebenfalls im Expertenteil in \autoref{sec:maincls-experts.addInfos},
|
|
\DescPageRef{maincls-experts.env.addmargin*} wird die Problematik von
|
|
mehrseitigen \Environment{addmargin*}-Umgebungen behandelt.
|
|
\end{Explain}}%
|
|
%
|
|
\EndIndexGroup
|
|
%
|
|
\EndIndexGroup
|
|
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% coding: utf-8
|
|
%%% TeX-master: "../guide"
|
|
%%% End:
|
|
|