summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/doc/scrlayer-de.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/doc/scrlayer-de.tex')
-rw-r--r--macros/latex/contrib/koma-script/doc/scrlayer-de.tex1835
1 files changed, 1835 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/doc/scrlayer-de.tex b/macros/latex/contrib/koma-script/doc/scrlayer-de.tex
new file mode 100644
index 0000000000..4b10d91728
--- /dev/null
+++ b/macros/latex/contrib/koma-script/doc/scrlayer-de.tex
@@ -0,0 +1,1835 @@
+% ======================================================================
+% scrlayer-de.tex
+% Copyright (c) Markus Kohm, 2013-2022
+%
+% 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.md.
+% ======================================================================
+%
+% Chapter about scrlayer of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlayer-de.tex}%
+ [$Date: 2022-06-05 12:40:11 +0200 (So, 05. Jun 2022) $
+ KOMA-Script guide (chapter:scrlayer)]
+
+\chapter[{Definition von Ebenen und Seitenstilen mit \Package{scrlayer}}]
+ {Definition\ChangedAt{v3.12}{\Package{scrlayer}} von Ebenen und Seitenstilen
+ mit \Package{scrlayer}}
+\labelbase{scrlayer}
+
+\BeginIndexGroup
+\BeginIndex{Package}{scrlayer}%
+\BeginIndex{}{Ebenen}%
+Anwender von Grafikprogrammen sind mit dem Modell der Ebenen für eine Seite
+bereits vertraut. \LaTeX{} selbst ist ein solches Modell jedoch eher
+fremd. Dennoch gibt es bereits einige Pakete wie \Package{eso-pic} oder
+\Package{textpos}, mit denen eine Art Hintergrund- oder
+Vor\-der\-grund\-ebe\-ne in \LaTeX{} verfügbar gemacht wurden. Das Paket
+\Package{scrlayer} ist ein weiteres Paket, das solche Hintergrund- und
+Vordergrundebenen zur Verfügung stellt. Im Unterschied zu den anderen
+genannten Paketen sind die Ebenen bei \Package{scrlayer} jedoch Teil des
+Seitenstils. Dadurch ist eine Umschaltung zwischen der Verwendung
+unterschiedlicher Ebenen einfach durch die Umschaltung des Seitenstils möglich.
+
+Um dies zu erreichen, stellt das Paket eine Schnittstelle für die Verwaltung
+Seitenstilen bereit, die auf Ebenen basieren. Über diese können neue
+Seitenstil als Stapel oder Listen von Ebenen definiert werden. Ebenen können
+wahlweise am Anfang oder Ende dieser Listen eingefügt werden. Das Einfügen ist
+ebenfalls vor oder nach einer anderen Ebene in einer solchen Liste
+möglich. Ebenen können auch wieder aus den Listen entfernt oder Listen von
+Dupletten bereinigt werden. Natürlich gibt es außerdem Schnittstellen zur
+Definition und Manipulation der Ebenen selbst.
+
+Nichtsdestoweniger wird die direkte Verwendung der Ebenen nur erfahrenen
+Anwendern empfohlen. Schnittstellen für Anfänger und durchschnittliche
+Anwender werden als zusätzliche Pakete wie
+\hyperref[cha:scrlayer-scrpage]{\Package{scrlayer-scrpage}} angeboten, die
+dann ihrerseits \Package{scrlayer} laden. Siehe hierzu
+\autoref{cha:scrlayer-scrpage} ab \autopageref{cha:scrlayer-scrpage} in
+\autoref{part:forAuthors} diese\iffree{r Anleitung}{s Buches}.
+
+
+\LoadCommonFile{options} % \section{Frühe oder späte Optionenwahl}
+
+
+\section{Einige grundlegende Informationen}
+\seclabel{generic.information}
+
+Das Paket benötigt einige grundlegende Informationen über die
+verwendete Klasse. Autoren von Klassen können \Package{scrlayer} helfen, indem
+sie entsprechende Angaben machen. Anderenfalls versucht das Paket diese
+Informationen selbst zu ermitteln. Das funktioniert beispielsweise für die
+Standardklassen oder für die \KOMAScript-Klassen. Mit anderen Klassen kann es
+funktionieren oder auch ganz oder teilweise fehlschlagen.
+\iffalse \par\fi% Umbruchkorrektur
+Dieser Abschnitt beschreibt einige der Informationen, die Autoren von Klassen
+bereitstellen können.\iffalse Anwender sollten sich im Normalfall nicht darum zu
+kümmern brauchen.\fi
+
+\begin{Declaration}
+ \Macro{if@chapter}\ \PName{Dann-Code}\ %
+ \textMacro{else}\ \PName{Sonst-Code}\ \textMacro{fi}
+\end{Declaration}
+Wenn \Macro{if@chapter} definiert ist und \Macro{iftrue}\IndexCmd{iftrue}
+entspricht, berücksichtigt \Package{scrlayer} bei seiner Arbeit die
+Kapitel-Ebene beispielsweise bei Verwendung von Option
+\DescRef{\LabelBase.option.automark}. Wenn es definiert ist, aber nicht
+\Macro{iftrue} entspricht, behandelt \Package{scrlayer} nur die Ebenen der
+Befehle \DescRef{maincls.cmd.part}, \DescRef{maincls.cmd.section},
+\DescRef{maincls.cmd.subsection}, \Macro{sub\dots subsection},
+\DescRef{maincls.cmd.paragraph}, \DescRef{maincls.cmd.subparagraph},
+\Macro{sub\dots subparagraph}. Wenn das Makro nicht definiert ist, macht
+\Package{scrlayer} die Frage, ob auch die Kapitel-Ebene zu behandeln ist, an
+der Anweisung \DescRef{maincls.cmd.chapter} fest. Ist diese Anweisung
+definiert und entspricht sie nicht \Macro{relax}, dann definiert
+\Package{scrlayer} das Makro \Macro{if@chapter} selbst als Synonym für
+\Macro{iftrue}. Anderenfalls definiert es \Macro{if@chapter} als Synonym für
+\Macro{iffalse}\IndexCmd{iffalse}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{if@mainmatter}\ \PName{Dann-Code}\ %
+ \textMacro{else}\ \PName{Sonst-Code}\ \textMacro{fi}
+\end{Declaration}
+Klassen wie \Class{book} oder \Class{scrbook} bieten
+\DescRef{maincls.cmd.frontmatter}\IndexCmd{frontmatter},
+\DescRef{maincls.cmd.mainmatter}\IndexCmd{mainmatter} und
+\DescRef{maincls.cmd.backmatter}\IndexCmd{backmatter}, um zwischen Vorderteil,
+Hauptteil und Endteil eines Buches umschalten zu können. In der Regel
+verwenden diese Klassen intern \Macro{if@mainmatter}, um entscheiden zu
+können, ob gerade im Hauptteil des Dokuments gearbeitet wird oder
+nicht. Klassen wie \Class{report} oder \Class{article} haben kein
+\DescRef{maincls.cmd.frontmatter}, \DescRef{maincls.cmd.mainmatter} oder
+\DescRef{maincls.cmd.backmatter} und deshalb auch kein
+\Macro{if@mainmatter}. Stattdessen gehen sie davon aus, dass es nur einen
+Hauptteil gibt.
+
+Für \Package{scrlayer} ist es aber einfacher, nicht ständig erneut die
+Existenz und Verwendung der Umschaltanweisungen zu erkennen und damit zu
+entscheiden, ob nun gerade im Hauptteil gearbeitet wird oder nicht, sondern
+stattdessen auch bei Klassen wie \Class{report} oder \Class{article} mit
+\Macro{if@mainmatter} zu arbeiten. Das sollte bei den genannten Klassen dann
+schlicht \Macro{iftrue}\IndexCmd{iftrue} entsprechen. Wenn also
+\Macro{if@mainmatter} nicht definiert ist, dann definiert \Package{scrlayer}
+es als Synonym für \Macro{iftrue}.
+
+Einige Klassen definieren jedoch \DescRef{maincls.cmd.frontmatter},
+\DescRef{maincls.cmd.mainmatter} oder \DescRef{maincls.cmd.backmatter} und
+trotzdem kein \Macro{if@mainmatter}. In diesem Fall definiert
+\Package{scrlayer} \Macro{if@mainmatter} ebenfalls als Synonym für
+\Macro{iftrue} und erweitert darüber hinaus die gefundenen Definitionen von
+\DescRef{maincls.cmd.frontmatter}, \DescRef{maincls.cmd.mainmatter} und
+\DescRef{maincls.cmd.backmatter} so, dass diese \Macro{if@mainmatter} passend
+umdefinieren. Falls es jedoch weitere, vergleichbare Befehle zur Umschaltung
+zwischen unterschiedlichen Dokumentteilen gibt, so kennt \Package{scrlayer}
+diese nicht, testet nicht auf diese und erweitert sie daher auch nicht
+passend. In diesem Fall ist \Package{scrlayer} also auf die Mitarbeit des
+Klassenautors angewiesen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclareSectionNumberDepth}\Parameter{Name~der~Gliederungsebene}
+ \Parameter{Tiefe~der~Gliederungsebene}
+\end{Declaration}
+Jeder Gliederungsebene ist normalerweise eine numerische Tiefe
+zugeordnet. Das ist notwendig, damit \LaTeX{} die Hierarchie der
+Gliederungsebenen verwalten kann. Allerdings sind die Werte
+nur der jeweiligen Klasse bekannt, in der die Gliederungsbefehle definiert
+sind. Diese setzt dann in den entsprechenden \LaTeX-Befehlen selbst die
+zugehörigen Nummern ein.
+
+{\setlength{\emergencystretch}{1em}% Umbruchkorrektur
+Das Paket \Package{scrlayer} benötigt ebenfalls Informationen über die
+Hierarchie. Mit Hilfe von \Macro{DeclareSectionNumberDepth} kann
+\Package{scrlayer} zum Namen einer Gliederungsebene die zugehörige numerische
+Tiefe bekannt gemacht werden. Für die Standardklassen wäre \PName{Name der
+ Gliederungsebene} beispielsweise \PValue{part}, \PValue{chapter},
+\PValue{section}, \PValue{subsection}, \PValue{subsubsection},
+\PValue{paragraph}, \PValue{subparagraph} und die jeweilige
+\PName{Tiefe der Gliederungsebene} -1, 0, 1, 2, 3, 4, 5.\par}
+
+Das Paket \Package{scrlayer} versucht, diese numerischen Werte zunächst beim
+Laden des Pakets und noch einmal während \Macro{begin}\PParameter{document}
+selbst zu ermitteln. Aber für den Fall, dass dies einmal nicht zu einem
+korrekten Ergebnis führt, beispielsweise falls es vollkommen andere
+Gliederungsbefehle gibt, kann man die Zuordnung eben mit
+\Macro{DeclareSectionNumberDepth} auch explizit vornehmen.%
+%
+\EndIndexGroup
+
+
+\section{Deklaration von Ebenen}
+\seclabel{layers}
+
+Eine Ebene (engl. \emph{layer}) ist ein Denkmodell für eine Seite. Im
+Gegensatz zu echtem, physischem Papier ist diese Seite vollständig
+transparent. Üblicherweise werden mehrere Ebenen übereinander gestapelt und
+undurchsichtiges Material auf einer Ebene überdeckt Material auf den Ebenen
+darunter. Ein solcher Stapel von Ebenen wird dann auf eine reale Seite Papier
+abgebildet. Das Paket \Package{scrlayer} stellt zwei solche Stapel für jede
+Seite zur Verfügung: einen Hintergrundstapel und einen Vordergrundstapel. Der
+Hintergrundstapel befindet sich unter oder hinter dem normalen Seiteninhalt,
+während der Vordergrundstapel über oder vor dem normalen Seiteninhalt
+ausgegeben wird. Der normale Seiteninhalt ist daher eine Art von Trennebene
+zwischen den beiden Ebenenstapeln.
+
+Eine Ebene hat mehrere Eigenschaften, die als Antworten auf grundlegende
+Fragen verstanden werden können:
+\iffree{\begin{description}}{%
+ \begingroup
+ \RedeclareSectionCommand[beforeskip=.5\baselineskip plus .25\baselineskip
+ minus .1\baselineskip]{paragraph}%
+ \renewcommand*\item[4][]{\paragraph*{#3{#4}#1}}%
+}%
+\item[Gehört die Ebene zum Vordergrund oder zum Hintergrund?]%
+ \leavevmode\textnote{Vorder- oder Hintergrund}\hskip 0pt
+ Hintergrundebenen werden ausgegeben, bevor der normale Inhalt der Seite
+ gedruckt wird. Optisch erscheinen sie daher \emph{hinter} oder \emph{unter}
+ dem normalen Inhalt der Seite. Vordergrundebenen werden an den normalen
+ Inhalt anschließend ausgegeben. Optisch erscheinen sie daher \emph{vor},
+ \emph{auf} oder \emph{über} dem normalen Inhalt der Seite. In der
+ Voreinstellung ist eine Ebene sowohl eine Hintergrundebene als auch eine
+ Vordergrundebene und wird daher zweimal ausgegeben. In der Regel ist es
+ deshalb sinnvoll, dies explizit einzuschränken.
+\item[Wie groß ist die Ebene?]%
+ \leavevmode\textnote{horizontale und vertikale Größe}\hskip 0pt
+ Eine Ebene kann auch kleiner oder größer als das Papier sein. Damit werden
+ Eigenschaften für die horizontale und vertikale Ausdehnung der Ebene
+ benötigt.
+\item[An welcher Position soll die Ebene ausgegeben werden?]%
+ \leavevmode\textnote{horizontale und vertikale Position}\hskip 0pt
+ Diese Frage stellt sich nicht nur aufgrund der von der Papiergröße
+ möglichweise abweichenden Ausdehnung der Ebene. Auch gleich große Ebenen
+ können gegeneinander verschoben sein. Ihre Beantwortung führt zu
+ Eigenschaften für die Festlegung der horizontalen und vertikalen Position
+ der Ebene.
+\item[Wie werden die horizontale und die vertikale Position
+ gemessen?]%
+ \leavevmode\textnote{Ausrichtung}\hskip 0pt
+ \iftrue% Umbruchkorrektur
+ Diese Frage ergibt sich unmittelbar aus der vorherigen. Die Antwort darauf
+ \else%
+ Die Antwort auf diese Frage %
+ \fi%
+ ist die Eigenschaft der Ausrichtung. Man kann von der linken Papierkante zur
+ linken Kante der Ebene, zur Mitte der Ebene oder zur rechten Kante der Ebene
+ messen. Entsprechend kann man von der oberen Kante des Papiers zur oberen
+ Kante der Ebene, zur Mitte der Ebene oder zur unteren Kante der Ebene
+ messen.
+\item[Ist die Ebene für Textausgabe oder für Grafik vorgesehen?]%
+ \leavevmode\textnote{Text oder Grafik}\hskip 0pt
+ Auch diese Frage ist eng mit der Position verknüpft. Während der Anwender
+ bei der Grafikausgabe davon ausgeht, dass der Ursprung in der
+ linken unteren Ecke der Ebene liegt, wäre dies bei der Textausgabe eher
+ ungünstig. Daher liegt der Ursprung für Textebenen um die Höhe einer
+ Standardtextzeile unterhalb der oberen, linken Ecke der Ebene. Grafikebenen
+ wiederum spannen von sich aus bereits eine
+ \Environment{picture}-Umgebung\IndexEnv{picture} auf, in der zusätzliche
+ Befehle zur Positionierung zur Verfügung stehen.
+\item[Soll die Ebene auf linken oder rechten Seiten eines Dokuments gedruckt
+ werden?]%
+ \leavevmode\textnote{linke oder rechte Seite}\hskip 0pt
+ In der Voreinstellung wird eine Ebene auf allen Seiten gedruckt. Es ist zu
+ beachten, dass \LaTeX{} im doppelseitigen Satz Seiten mit geraden
+ Seitenzahlen als linke Seiten und Seiten mit ungeraden Seitenzahlen als
+ rechte Seiten behandelt, dass es jedoch im einseitigen Modus unabhängig von
+ der Nummer nur rechte Seiten gibt. \LaTeX{} bezeichnet, den Gepflogenheiten
+ der englischen Sprache entsprechend, linke Seiten auch als gerade Seiten
+ und rechte Seiten als ungerade Seiten. Dies erfolgt ungeachtet der Tatsache,
+ dass im einseitigen Satz ungerade Seiten dann auch gerade Nummern tragen
+ können.
+\item[Soll die Ebene in einseitigen oder in doppelseitigen Dokumenten
+ verwendet werden?]%
+ \leavevmode\textnote{einseitig oder doppelseitig}\hskip 0pt
+ In der Voreinstellung ist die Ebene diesbezüglich unbeschränkt, wird also
+ sowohl im einseitigen als auch im doppelseitigen Modus
+ ausgegeben. Nichtsdestotrotz wird eine Ebene, die auf gerade Seiten
+ beschränkt ist, im einseitigen Modus niemals ausgegeben werden und ist daher
+ auch keine einseitige Ebene.
+\item[Soll die Ebene auf Gleitseiten oder auf Normalseiten ausgegeben
+ werden?]%
+ \leavevmode\textnote{Gleitseiten oder Normalseiten}\hskip 0pt
+ \LaTeX{} erzeugt Gleitseiten für Objekte aus Umgebungen wie
+ \Environment{table} oder \Environment{figure}, wenn diesen erlaubt wurde,
+ auf eigenen Seiten ohne Teile des normalen Dokumentinhalts ausgegeben zu
+ werden (siehe Option \PValue{p} für \Environment{table} oder
+ \Environment{figure}). In gewisser Weise ist es so der gesamten Seite
+ erlaubt, im Dokument zu gleiten. Normalseiten in diesem Sinne sind alle
+ Seiten, die keine Gleitseiten sind. Normalseiten können ebenfalls
+ Gleitumgebungen am Anfang, im Inneren oder am Ende enthalten. Sehr große
+ Gleitumgebungen können auch den Eindruck einer Gleitseite erzeugen, obwohl
+ es sich bei ihnen in Wirklichkeit um oben auf einer Normalseite platzierte
+ Gleitumgebungen handelt.
+\item[Welchen Inhalt hat die Ebene?]
+ \leavevmode\textnote{Inhalt}\hskip 0pt
+ Die zugehörige Eigenschaft gibt schlicht an, was gedruckt werden soll, wann
+ immer die Ebene ausgegeben wird.
+\iffree{\end{description}}{%
+ \endgroup\par\bigskip\noindent\ignorespaces
+}%
+Damit haben wir derzeit acht Fragen an die Ebenen, aus denen sich unmittelbar
+eine Reihe von Eigenschaften ergeben. Später
+\iffree{in dieser Anleitung }{}% Umbruchkorrektur
+werden wir weitere Eigenschaften kennenlernen, die jedoch auf diese primären
+Eigenschaften abgebildet werden können.
+
+\begin{Declaration}
+ \Macro{DeclareLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}
+ \Macro{DeclareNewLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}
+ \Macro{ProvideLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}
+ \Macro{RedeclareLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}
+ \Macro{ModifyLayer}\OParameter{Optionenliste}\Parameter{Name der Ebene}
+\end{Declaration}
+Diese Anweisungen können verwendet werden, um Ebenen zu definieren oder zu
+verändern. Der \PName{Name der Ebene} muss voll expandierbar sein. Die
+Expansion sollte in ASCII-Buchstaben resultieren. Einige zusätzliche Zeichen
+werden ebenfalls akzeptiert, ihre Verwendung wird jedoch nur erfahrenen
+Anwendern empfohlen.
+
+Bei Verwendung von \Macro{DeclareLayer}\important{\Macro{DeclareLayer}} spielt
+es keine Rolle, ob eine Ebene \PName{Name der Ebene} bereits existiert oder
+nicht. Sie wird in jedem Fall mit den über die \PName{Optionenliste}
+angegebenen Eigenschaften definiert. Einzelne Optionen bestehen entweder nur
+aus einem Schlüssel oder aus einem Schlüssel, gefolgt von einem
+Gleichheitszeichen und einem Wert. Die Optionen sind durch Komma voneinander
+getrennt. Um innerhalb der Werte einer Option ein Komma oder ein Leerzeichen
+verwenden zu können, muss der entsprechende Wert in geschweifte Klammern
+gesetzt werden. Eine Übersicht über die Optionen und die Eigenschaften, die
+sie repräsentieren, findet sich in \autoref{tab:scrlayer.layerkeys}.
+%
+% Umbruchkorrektur: Tabelle verschoben
+\begin{desclist}
+ \desccaption{%
+ Optionen für die Beschreibung von Seiten-Ebenen mit ihrer jeweiligen
+ Bedeutung als Ebenen-Eigenschaft\label{tab:scrlayer.layerkeys}%
+ }{%
+ Optionen für die Beschreibung von Ebenen (\emph{Fortsetzung})%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addcontents}{Code}}{%
+ Der angegebene Wert wird an den aktuellen Wert des Attributs
+ \Option{contents} angehängt. Es wird also ein zusätzlicher Inhalt
+ generiert. Zu näheren Informationen über die Behandlung von \PName{Code}
+ siehe Option \Option{contents}.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addheight}{zusätzliche Höhe}}{%
+ Der aktuelle Wert von Attribut \Option{height} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{height} möglich.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addhoffset}{zusätzlicher horizontaler Abstand}}{%
+ Der aktuelle Wert von Attribut \Option{hoffset} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{hoffset} möglich.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addvoffset}{zusätzlicher vertikaler Abstand}}{%
+ Der aktuelle Wert von Attribut \Option{voffset} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{voffset} möglich.%
+ }%
+ \entry{%
+ \ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{addwidth}{zusätzliche Breite}}{%
+ Der aktuelle Wert von Attribut \Option{width} wird um den Wert dieser
+ Option erhöht. Als Wert sind die gleichen Angaben wie bei
+ \Option{width} möglich.%
+ }%
+ \nentry{\OptionVName{align}{Ausrichtungszeichen}}{%
+ Über die \PName{Ausrichtungszeichen} wird die gewünschte Ausrichtung der
+ Ebene bestimmt. Dabei steht jedes einzelne \PName{Ausrichtungszeichen} für
+ eine mögliche Anwendung der Werte \PName{Abstand} der Optionen
+ \Option{hoffset} oder \Option{voffset}. Mehrere
+ \PName{Ausrichtungszeichen} können ohne Leerzeichen oder Komma direkt
+ hintereinander geschrieben werden und werden in der Reihenfolge ihres
+ Auf"|tretens ausgewertet. Makros sind im Wert der Option jedoch
+ nicht zulässig. Zulässige \PName{Ausrichtungszeichen} sind:
+ \begin{description}
+ \item[\PValue{b} --] der Wert der Option \Option{voffset} ist der Abstand
+ der Unterkante der Ebene von der Oberkante des Papiers.
+ \item[\PValue{c} --] die Werte der Optionen \Option{hoffset} und
+ \Option{voffset} sind die Abstände des Zentrums der Ebene von der linken
+ und der oberen Kante des Papiers.
+ \item[\PValue{l} --] der Wert der Option \Option{hoffset} ist der Abstand
+ der linken Kante der Ebene von der linken Kante des Papiers.
+ \item[\PValue{r} --] der Wert der Option \Option{hoffset} ist der Abstand
+ der rechten Kante der Ebene von der linken Kante des Papiers.
+ \item[\PValue{t} --] der Wert der Option \Option{voffset} ist der Abstand
+ der Oberkante der Ebene von der Oberkante des Papiers.
+ \end{description}
+ }%
+ \entry{\KOption{area}\Parameter{horizontaler Abstand}\Parameter{vertikaler
+ Abstand}\Parameter{Breite}\Parameter{Höhe}}{%
+ Die zusammengesetzte Eigenschaft resultiert in den primären Eigenschaften
+ \OptionVName{hoffset}{horizontaler Abstand},
+ \OptionVName{voffset}{vertikaler Abstand},
+ \OptionVName{width}{Breite}, \KOption{height}{Höhe}.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{backandforeground}}{%
+ Mit dieser Option wird die Einschränkung der Ebene auf den Vorder- oder
+ Hintergrund wieder aufgehoben und diesbezüglich die Grundeinstellung
+ wiederhergestellt. In der Regel ist dies wenig sinnvoll, daher existiert
+ die Option nur aus Gründen der Vollständigkeit. Diese Option erwartet und
+ erlaubt keinen Wert.%
+ }%
+ \entry{\Option{background}}{%
+ Mit dieser Option wird die Ebene zu einer reinen Hintergrundebene. Sie
+ wird also im Gegensatz zur Grundeinstellung nicht mehr gleichzeitig im
+ Hintergrund und im Vordergrund, sondern nur noch im Hintergrund
+ ausgegeben. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{bottommargin}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene horizontal von der linken Kante bis zur
+ rechten Kante des Papiers reicht und vertikal den gesamten Bereich unter
+ dem Seitenfuß bis zur unteren Papierkante abdeckt. Diese Option erwartet
+ und erlaubt keinen Wert.%
+ }%
+ \entry{\OptionVName{clone}{Name einer Ebene}}{%
+ Die zusammengesetzte Eigenschaft setzt alle primären Eigenschaften
+ entsprechend der aktuellen, primären Eigenschaften der Ebene mit dem
+ angegebenen \PName{Name einer Ebene}. Bezüglich \PName{Name
+ einer Ebene} siehe die Hinweise zu \PName{Name der Ebene} am Anfang der
+ Erklärung zu \Macro{DeclareLayer}. Darüber hinaus muss die zu klonende
+ Ebene bereits definiert sein.%
+ }%
+ \entry{\OptionVName{contents}{Code}}{%
+ Der angegebene \PName{Code} wird immer dann expandiert und ausgeführt,
+ wenn die Ebene ausgegeben wird. Damit definiert \PName{Code} das, was auf
+ der Ebene zu sehen ist. Es werden keine Tests durchgeführt, ob
+ \PName{Code} gültig und korrekt ist. Fehler in \PName{Code} können daher
+ zu verschiedenen Fehlermeldungen auf jeder Seite führen, auf der die Ebene
+ ausgegeben wird.%
+ }%
+ \entry{\Option{evenpage}}{%
+ Mit dieser Option wird die Ebene zu einer Ebene für linke Seiten. Sie wird
+ also im Gegensatz zur Grundeinstellung nicht mehr sowohl auf linken als
+ auch auf rechten Seiten ausgegeben. Da es linke Seiten nur im
+ doppelseitigen Satz gibt, schließt diese Eigenschaft quasi
+ \Option{twoside} mit ein. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{everypage}}{%
+ Dies ist eine Kombination von \Option{oddorevenpage} und
+ \Option{floatornonfloatpage}. Diese Option erwartet und erlaubt keinen
+ Wert.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{everyside}}{%
+ Mit dieser Option wird die Einschränkung der Ebene auf den einseitigen
+ oder den doppelseitigen Satz aufgehoben. Sie wird damit wie in der
+ Voreinstellung wieder sowohl im einseitigen als auch im doppelseitigen
+ Satz ausgegeben. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{floatornonfloatpage}}{%
+ Mit dieser Option wird die Einschränkung der Ebene auf Gleitseiten oder
+ Seiten, die keine Gleitseiten sind, aufgehoben und diesbezüglich die
+ Voreinstellung wiederhergestellt. Diese Option erwartet und erlaubt
+ keinen Wert.%
+ }%
+ \entry{\Option{floatpage}}{%
+ Mit dieser Option wird die Ebene zu einer Gleitseitenebene. Sie wird also
+ im Gegensatz zur Grundeinstellung nicht mehr auf allen Seiten, sondern nur
+ noch auf Gleitseiten ausgegeben. Näheres zu Gleitseiten ist der Einleitung
+ zu diesem Abschnitt zu entnehmen. Diese Option erwartet und erlaubt keinen
+ Wert.%
+ }%
+ \entry{\Option{foot}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den Seitenfuß in der Breite des
+ Textbereichs überdeckt. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{footskip}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene vertikal den Bereich zwischen dem
+ Textbereich und dem Seitenfuß in Breite des Textbereichs überdeckt. Es ist
+ zu beachten, dass die Höhe dieses Bereichs zwar von der Länge
+ \Length{footskip} abhängt, dieser jedoch nicht entspricht. Diese Option
+ erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{foreground}}{%
+ Mit dieser Option wird die Ebene zu einer reinen Vordergrundebene. Sie
+ wird also im Gegensatz zur Grundeinstellung nicht mehr gleichzeitig im
+ Hintergrund und im Vordergrund, sondern nur noch im Vordergrund
+ ausgegeben. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{head}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den Seitenkopf in der Breite des
+ Textbereichs überdeckt. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{headsep}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den Abstand zwischen dem Seitenkopf und
+ dem Textbereich in der Breite des Textbereichs überdeckt. Ihre Höhe
+ entspricht damit der Länge \Length{headsep}. Diese Option erwartet und
+ erlaubt keinen Wert.%
+ }%
+ \entry{\OptionVName{height}{Höhe}}{%
+ Setzt die \PName{Höhe} der Ebene. Beachten Sie, dass \PName{Höhe}
+ wahlweise eine \LaTeX-Länge sein kann, die mit \Macro{newlength} definiert
+ wurde, eine \TeX-Länge, die mit \Macro{newdimen} oder \Macro{newskip}
+ definiert wurde, ein Längenwert wie 10\Unit{pt} oder ein Längenausdruck
+ unter Verwendung von +, -, /, *, (, und ). Die genaue Syntax eines
+ Längenausdrucks ist \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.%
+ }%
+ \entry{\OptionVName{hoffset}{Abstand}}{%
+ Setzt den \PName{Abstand} der Ebene von der linken Kante des Papiers. Wie
+ der \PName{Abstand} gemessen wird, hängt von Eigenschaft \Option{align}
+ ab. Beachten Sie, dass \PName{Abstand} wahlweise eine \LaTeX-Länge sein
+ kann, die mit \Macro{newlength} definiert wurde, eine \TeX-Länge, die mit
+ \Macro{newdimen} oder \Macro{newskip} definiert wurde, ein Längenwert wie
+ 10\Unit{pt} oder ein Längenausdruck unter Verwendung von +, -, /, *, (,
+ und ). Die genaue Syntax eines Längenausdrucks ist
+ \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.%
+ }%
+ \entry{\Option{innermargin}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den inneren Rand der Seite von der
+ Papieroberkante bis zur Papierunterkante überdeckt. Der innere Rand
+ entspricht im einseitigen Satz dem linken Rand. Diese Option erwartet und
+ erlaubt keinen Wert.%
+ }%
+ \entry{\Option{leftmargin}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den linken Rand der Seite von der
+ Papieroberkante bis zur Papierunterkante überdeckt. Diese Option erwartet
+ und erlaubt keinen Wert.%
+ }%
+ \entry{\ChangedAt{v3.19}{\Package{scrlayer}}%
+ \OptionVName{mode}{Modus}}{%
+ Diese primäre Eigenschaft bestimmt, in welchem \PName{Modus} der Inhalt der
+ Ebene ausgegeben wird. Die Voreinstellung ist \PValue{text}. Dabei wird
+ die oberste Grundlinie um die Höhe einer Standardtextzeile unterhalb der
+ Oberkante der Ebene platziert. Damit ist Text normalerweise sauber am
+ oberen Rand der Ebene ausgerichtet. Im \PValue{picture}-\PName{Modus} wird
+ hingegen eine \Environment{picture}-Umgebung mit dem Ursprung in der
+ linken, unteren Ecke der Ebene aufgespannt. Der ebenfalls vordefinierte
+ \PName{Modus} \PValue{raw} entspricht in der Voreinstellung \PValue{text}.
+
+ Die %\textnote{Achtung!}
+ Änderung des \PName{Modus} einer Ebene führt in der Regel zu einer
+ Verschiebung des Inhalts. Außerdem stehen beispielsweise im \PName{Modus}
+ \PValue{picture} zusätzliche Platzierungsbefehle zur Verfügung, die in
+ einem anderen \PName{Modus} zu Fehlermeldungen führen. Daher ist es
+ normalerweise nicht sinnvoll, den \PName{Modus} einer Ebene nachträglich
+ zu ändern!%
+ }%
+ \entry{\Option{nonfloatpage}}{%
+ Mit dieser Option wird die Ebene auf Seiten beschränkt, die keine
+ Gleitseiten sind. Sie wird also im Gegensatz zur Grundeinstellung nicht
+ mehr auf allen Seiten, sondern nur noch auf Nichtgleitseiten
+ ausgegeben. Näheres zu Gleitseiten und Nichtgleitseiten ist der Einleitung
+ zu diesem Abschnitt zu entnehmen. Diese Option erwartet und erlaubt keinen
+ Wert.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{oddorevenpage}}{%
+ Mit dieser Option werden Beschränkungen der Ebene auf rechte oder linke
+ Seiten aufgehoben. Damit wird die Ebene wie in der Voreinstellung sowohl
+ auf linken als auch rechten Seiten ausgegeben. Diese Option erwartet und
+ erlaubt keinen Wert.%
+ }%
+ \entry{\Option{oddpage}}{%
+ Mit dieser Option wird die Ebene zu einer Ebene für rechte Seiten. Sie
+ wird also im Gegensatz zur Grundeinstellung nicht mehr sowohl auf linken
+ als auch auf rechten Seiten ausgegeben. Es ist zu beachten, dass im
+ einseitigen Satz alle Seiten unabhängig von der Seitenzahl rechte Seiten
+ sind. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{oneside}}{%
+ Mit dieser Option wird die Ebene zu einer Ebene für den einseitigen
+ Satz. Sie wird also im Gegensatz zur Grundeinstellung nicht mehr sowohl im
+ einseitigen als auch im doppelseitigen Satz ausgegeben. Diese Option
+ erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{outermargin}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den äußeren Rand der Seite von der
+ Papieroberkante bis zur Papierunterkante überdeckt. Der äußere Rand
+ entspricht im einseitigen Satz dem rechten Rand. Diese Option erwartet und
+ erlaubt keinen Wert.%
+ }%
+ \entry{\Option{page}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene die komplette Seite überdeckt. Diese
+ Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\ChangedAt{v3.16}{\Package{scrlayer}}%
+ \OptionVName{pretocontents}{Code}}{%
+ Der angegebene Wert wird dem aktuellen Wert des Attributs
+ \Option{contents} vorangestellt. Es wird also ein zusätzlicher Inhalt vor
+ dem bisherigen Inhalt generiert. Zu näheren Informationen über die
+ Behandlung von \PName{Code} siehe Option \Option{contents}.%
+ }%
+ \entry{\Option{rightmargin}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den rechten Rand der Seite von der
+ Papieroberkante bis zur Papierunterkante überdeckt. Diese Option erwartet
+ und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{textarea}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den kompletten Textbereich
+ überdeckt. Diese Option erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{topmargin}}{%
+ Die zusammengesetzte Eigenschaft setzt die primären Eigenschaften
+ \Option{hoffset}, \Option{voffset}, \Option{width}, \Option{height} und
+ \Option{align} so, dass die Ebene den oberen Rand der Seite von der linken
+ Kante des Papiers bis zu dessen rechter Kante überdeckt. Diese Option
+ erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\Option{twoside}}{%
+ Mit dieser Option wird die Ebene zu einer Ebene für den doppelseitigen
+ Satz. Sie wird also im Gegensatz zur Grundeinstellung nicht mehr sowohl im
+ einseitigen als auch im doppelseitigen Satz ausgegeben. Diese Option
+ erwartet und erlaubt keinen Wert.%
+ }%
+ \entry{\ChangedAt{v3.18}{\Package{scrlayer}}%
+ \Option{unrestricted}}{%
+ Hebt alle Ausgabebeschränkungen auf. Damit ist die Option eine Kombination
+ von \Option{backandforeground}, \Option{everyside} und
+ \Option{floatornonfloatpage}. Diese Option erwartet und erlaubt keinen
+ Wert.%
+ }%
+ \entry{\OptionVName{voffset}{Abstand}}{%
+ Setzt den \PName{Abstand} der Ebene von der Papieroberkante. Wie der
+ \PName{Abstand} gemessen wird, hängt von Eigenschaft \Option{align}
+ ab. Beachten Sie, dass \PName{Abstand} wahlweise eine \LaTeX-Länge sein
+ kann, die mit \Macro{newlength} definiert wurde, eine \TeX-Länge, die mit
+ \Macro{newdimen} oder \Macro{newskip} definiert wurde, ein Längenwert wie
+ 10\Unit{pt} oder ein Längenausdruck unter Verwendung von +, -, /, *, (,
+ und ). Die genaue Syntax eines Längenausdrucks ist
+ \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.%
+ }%
+ \entry{\OptionVName{width}{Breite}}{%
+ Setzt die \PName{Breite} der Ebene. Beachten Sie, dass \PName{Breite}
+ wahlweise eine \LaTeX-Länge sein kann, die mit \Macro{newlength} definiert
+ wurde, eine \TeX-Länge, die mit \Macro{newdimen} oder \Macro{newskip}
+ definiert wurde, ein Längenwert wie 10\Unit{pt} oder ein Längenausdruck
+ unter Verwendung von +, -, /, *, (, und ). Die genaue Syntax eines
+ Längenausdrucks ist \cite[Abschnitt~3.5]{manual:eTeX} zu entnehmen.%
+ }%
+\end{desclist}
+
+\iffree{}{\clearpage}% Umbruchkorrektur
+Im Unterschied zu \Macro{DeclareLayer} meldet
+\Macro{DeclareNewLayer}\important{\Macro{DeclareNewLayer}} einen Fehler, falls
+eine Ebene mit dem angegebenen Namen bereits existiert. Damit wird der
+Anwender davor bewahrt, versehentlich mehrmals denselben Namen zu
+verwenden. Dies ist insbesondere auch dann nützlich, wenn Klassen oder Pakete
+intern ebenfalls Ebenen definieren.
+
+Dagegen definiert \Macro{ProvideLayer}\important{\Macro{ProvideLayer}} die
+Ebene nur, wenn nicht bereits eine Ebene mit dem angegebenen Namen
+existiert. Wird der Name hingegen bereits für eine andere Ebene verwendet, so
+wird die neuerliche Definition ignoriert. Die Anweisung hat also die
+Bedeutung: \emph{Definiere die Ebene, falls sie noch nicht existiert.}
+
+Soll eine bereits existierende Ebene umdefiniert werden, so kann wahlweise
+\Macro{RedeclareLayer} oder \Macro{ModifyLayer} verwendet werden. Während mit
+\Macro{RedeclareLayer}\important{\Macro{RedeclareLayer}} die Ebene zunächst
+auf die Grundeinstellungen zurückgesetzt und damit über die angegebene
+\PName{Optionenliste} komplett neu definiert wird, unterbleibt bei
+\Macro{ModifyLayer}\important{\Macro{ModifyLayer}} das Zurücksetzen. Es werden
+dann nur die Eigenschaften geändert, für die in der \PName{Optionenliste} auch
+Angaben vorhanden sind. Die Anwendung auf eine zuvor noch nicht definierte
+Ebene stellt bei beiden Anweisungen einen Fehler dar.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{ModifyLayers}\OParameter{Optionenliste}\Parameter{Ebenenliste}
+\end{Declaration}
+Diese\ChangedAt{v3.26}{\Package{scrlayer}} Anweisung führt
+\DescRef{\LabelBase.cmd.ModifyLayer}\Parameter{Optionenliste}\Parameter{Ebene}
+für jede \PName{Ebene} aus, die in der durch Komma separierten
+\PName{Ebenenliste} angegeben ist. Sie dient also dazu, die Eigenschaften
+einer ganzen Reihe von Ebenen gleichzeitig auf gleiche Weise zu ändern.%
+\EndIndexGroup
+
+\begin{Declaration}
+ \Macro{layerhalign}
+ \Macro{layervalign}
+ \Macro{layerxoffset}
+ \Macro{layeryoffset}
+ \Macro{layerwidth}
+ \Macro{layerheight}
+\end{Declaration}
+Diese Anweisungen sind nur im mit \Option{contents}, \Option{addcontents} oder
+\Option{pretocontents} angegebenen \PName{Code} gültig. Sie enthalten die
+tatsächlich verwendete Ausrichtung, Position und Ausdehnung der Ebene während
+deren Ausgabe. Dies ist jedoch nicht zwangsläufig auch die tatsächliche
+Ausdehnung des Inhalts, falls dieser beispielsweise überbreit oder überhoch
+ist oder die Ebene nicht komplett ausfüllt.
+
+Die primäre Ebeneneigenschaft \PValue{align} wird auf
+\Macro{layerhalign}\ChangedAt{v3.19}{\Package{scrlayer}} und
+\Macro{layervalign} abgebildet. Dabei werden die horizontalen Werte \PValue{l}
+und \PValue{r} nur in \Macro{layerhalign} übernommen, während die vertikalen
+Werte \PValue{t} und \PValue{b} nur in \Macro{layervalign} übernommen
+werden. \iffree{Der sowohl horizontale als auch vertikale }{}% Umbruchkorrektur
+Wert \PValue{c} wird in
+beide Anweisungen übernommen. Sind bei \PValue{align} mehrere,
+widersprüchliche Angaben zu finden, so gewinnt die jeweils letzte. Damit ist
+also \Macro{layerhalign} immer entweder \PValue{l}, \PValue{c} oder \PValue{r}
+und \Macro{layervalign} immer entweder \PValue{t}, \PValue{c} oder \PValue{b}.
+
+Eine\textnote{Achtung!} Umdefinierung der Anweisungen und damit Änderung der in
+ihnen gespeicherten Werte ist nicht gestattet und führt zu unvorhersehbaren
+Ergebnissen.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{LenToUnit}\Parameter{Länge}
+\end{Declaration}
+Diese\ChangedAt{v3.19}{\Package{scrlayer}} Anweisung stammt ursprünglich von
+\Package{eso-pic}\IndexPackage{eso-pic}\iffree{ ab
+ Version~2.0f}{}%Umbruchkorrektur
+. Sie rechnet Längen-Werte in Vielfache von \Length{unitlength} um und kann
+daher anstelle von Koordinaten oder anderen von \Length{unitlength} abhängigen
+Werten einer \Environment{picture}-Umgebung verwendet werden. Siehe dazu auch
+\cite{package:eso-pic} und die nachfolgende Erklärung zu
+\DescRef{\LabelBase.cmd.putUL} bis \DescRef{\LabelBase.cmd.putC}. Die
+Anweisung wird nur definiert, wenn sie nicht bereits, beispielsweise durch das
+Laden von \Package{eso-pic}, definiert ist.%
+\iffalse% Umbruchkorrekturtext
+\par
+Es sei an dieser Stelle darauf hingewiesen, dass man bei Verwendung von Paket
+\Package{picture}\IndexPackage{picture}\textnote{\Package{picture}} (siehe
+\cite{package:picture}) die Anweisung \Macro{LenToUnit} in der Regel nicht
+mehr benötigt. Das Paket erweitert die \Environment{picture}-Umgebung und
+deren Anweisung so, dass man für Koordinaten auch direkt \LaTeX-Längen
+verwenden kann.%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{putUL}\Parameter{Inhalt}
+ \Macro{putUR}\Parameter{Inhalt}
+ \Macro{putLL}\Parameter{Inhalt}
+ \Macro{putLR}\Parameter{Inhalt}
+ \Macro{putC}\Parameter{Inhalt}
+\end{Declaration}
+Diese\ChangedAt{v3.19}{\Package{scrlayer}} Anweisungen können innerhalb der
+primären Ebeneneigenschaft \PValue{contents} verwendet werden, wenn die Ebene
+mit \OptionValue{mode}{picture} erstellt wurde. In diesem Fall platziert
+\Macro{putUL} den \PName{Inhalt} relativ zur oberen, linken Ecke der Ebene und
+entspricht damit
+\lstinline[breaklines=false]|\put(0,\LenToUnit{\layerheight})|. \Macro{putUR}
+platziert \PName{Inhalt} relativ zur oberen, rechten Ecke der Ebene und
+entspricht damit
+\lstinline[breaklines=false]
+|\put(\LenToUnit{\layerwidth},\LenToUnit{\layerheight})|.
+\iffree{}{\unskip\linebreak}% Umbruchkorrektur
+\Macro{putLL} platziert \PName{Inhalt} relativ zur unteren, linken Ecke der
+Ebene und entspricht damit
+\lstinline[breaklines=false]|\put(0,0)|. \Macro{putLR} platziert
+\PName{Inhalt} relativ zur unteren, rechten Ecke der Ebene und entspricht
+damit
+\lstinline[breaklines=false]|\put(\LenToUnit{\layerwidth},0)|. \Macro{putC}
+schlussendlich platziert \PName{Inhalt} relativ zur Mitte der Ebene.%
+%
+\begin{Example}
+ Sie wollen feststellen, wie genau die Höhe des Textbereichs bei
+ \OptionValueRef{typearea}{DIV}{classic} tatsächlich der Breite der Seite
+ entspricht, und erstellen dazu eine Ebene, die sowohl den Textbereich
+ umrandet als auch einen Kreis mit der Papierbreite als Durchmesser im
+ Zentrum des Textbereichs platziert:
+\begin{lstcode}
+\documentclass[DIV=classic]{scrartcl}
+\usepackage{pict2e}
+\usepackage{scrlayer}
+\DeclareNewLayer[%
+ textarea,background,mode=picture,
+ contents={%
+ \putLL{\line(1,0){\LenToUnit{\layerwidth}}}%
+ \putLR{\line(0,1){\LenToUnit{\layerheight}}}%
+ \putUR{\line(-1,0){\LenToUnit{\layerwidth}}}%
+ \putUL{\line(0,-1){\LenToUnit{\layerheight}}}%
+ \putC{\circle{\LenToUnit{\paperwidth}}}%
+ }
+]{showtextarea}
+\DeclareNewPageStyleByLayers{test}{showtextarea}
+\pagestyle{test}
+\begin{document}
+\null
+\end{document}
+\end{lstcode}
+ Wie Sie sehen werden, passt die von \Package{typearea} vorgenommene
+ Abbildung auf einen ganzzahligen \PName{DIV}-Wert im Beispiel sehr gut.
+\end{Example}
+Näheres zu dem im Beispiel skizzierten spätmittelalterlichen Buchseitenkanon
+finden Sie übrigens in \autoref{sec:typearea.circleConstruction},
+\autopageref{sec:typearea.circleConstruction}.
+
+Die Anweisung
+\Macro{DeclareNewPageStyleByLayers}\IndexCmd{DeclareNewPageStyleByLayers}, die
+im Beispiel bereits verwendet wurde, dient der Definition eines Seitenstils,
+der die neu definiert Ebene ausgibt. Sie wird in
+\autoref{sec:scrlayer.pagestyles},
+\DescPageRef{scrlayer.cmd.DeclareNewPageStyleByLayers} erklärt werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{GetLayerContents}\Parameter{Name~der~Ebene}
+\end{Declaration}
+Mit\ChangedAt{v3.16}{\Package{scrlayer}} dieser Anweisung kann der aktuelle
+Inhalt einer Ebene ermittelt werden. Es\textnote{Achtung!} ist unbedingt zu
+beachten, dass bei Verwendung dieser Anweisung im \PName{Code} der
+Ebenen-Attribute \Option{contents}, \Option{addcontents} oder
+\Option{pretocontents} unendliche Rekursionen entstehen können, wenn dabei auf
+den Inhalt der aktuellen Ebene zugegriffen wird. Der Anwender ist selbst dafür
+verantwortlich, solche Situationen zu vermeiden!%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{IfLayerExists}\Parameter{Name~der~Ebene}
+ \Parameter{Dann-Code}\Parameter{Sonst-Code}
+\end{Declaration}
+Diese Anweisung kann dazu verwendet werden, Code in Abhängigkeit davon, ob
+eine Ebene existiert oder nicht, auszuführen. Wenn die Ebene \PName{Name der
+ Ebene} existiert, so wird der \PName{Dann-Code} ausgeführt, anderenfalls der
+\PName{Sonst-Code}. Bitte beachten Sie, dass die Anweisung nicht wirklich
+testen kann, ob eine Ebene existiert. Sie verwendet stattdessen Heuristiken,
+die niemals falsch-negativ sein können, jedoch im Extremfall falsch-positiv
+sein könnten. %
+\iffalse% Umbruchvarianten
+Nichtsdestotrotz: Falls der Test falsch-positiv ist, läuft etwas
+schief. Beispielsweise könnte dies ein Indikator für die Verwendung eines
+inkompatiblen Pakets oder dafür sein, dass der Anwender etwas tut, was er
+besser nicht tun sollte.%
+\else
+Falsch-positive Entscheidungen weisen auf ein Problem, beispielsweise die
+Verwendung eines inkompatiblen Pakets oder ungünstige Wahl von internen
+Makronamen durch den Anwender.%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyLayer}\Parameter{Name~der~Ebene}
+\end{Declaration}
+Existiert eine Ebene \PName{Name der Ebene}, so werden alle zu dieser Ebene
+gehörenden Makros zu \Macro{relax}. Die Ebene kann nicht länger verwendet
+werden. In bereits mit \Package{scrlayer} definierten Seitenstils werden
+derart zerstörte Ebenen ignoriert. Zerstörte Ebenen können mit
+\DescRef{\LabelBase.cmd.DeclareNewLayer} oder
+\DescRef{\LabelBase.cmd.ProvideLayer} neu definiert werden. Sie können jedoch
+vor einer neuerlichen Definition nicht länger mit
+\DescRef{\LabelBase.cmd.RedeclareLayer} oder
+\DescRef{\LabelBase.cmd.ModifyLayer} verändert werden.%
+\iffalse % Siehe Hinweis zur Interface-Schnittstelle
+\par
+Die Anweisung ist dazu bestimmt, innerhalb des Arguments \PName{Code} von
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} (siehe
+\autoref{sec:scrlayer.enduserinterfaces},
+\DescPageRef{scrlayer.cmd.scrlayerOnAutoRemoveInterface}) verwendet zu
+werden. Damit können Ebenen, die unter Verwendung von entfernbaren Anweisungen
+einer entfernbaren Benutzerschnittstelle definiert wurden, zusammen mit dieser
+Benutzerschnittstelle entfernt werden.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{draft}{Ein-Aus-Wert}
+ \Macro{layercontentsmeasure}
+\end{Declaration}
+Mit Hilfe der \KOMAScript-Option \Option{draft} kann für das Paket
+\Package{scrlayer} ein Entwurfsmodus aktiviert werden. In diesem Entwurfsmodus
+wird hinter jeder Ebene zunächst eine Bemaßung der Ebene ausgegeben. Diese
+Bemaßung erfolgt mit \Macro{layercontentsmeasure}. Diese Anweisung zeigt am
+oberen und linken Rand der Ebene ein Maßband in Zentimeter und am rechten und
+unteren Rand der Ebene ein Maßband in Zoll. Die Anweisung
+\Macro{layercontentsmeasure} kann statt über die Option auch schlicht als
+alleiniger \PName{Code} für die Eigenschaft \Option{contents} einer Ebene
+verwendet werden.%
+%
+\EndIndexGroup
+
+
+\section{Deklaration und Verwaltung von Seitenstilen}
+\seclabel{pagestyles}
+
+\BeginIndexGroup%
+\BeginIndex{}{Seiten>Stil}%
+Wir kennen nun Ebenen und wissen, wie diese definiert und verwaltet
+werden. Aber bisher wissen wir kaum, wie sie verwendet werden. Die
+möglicherweise überraschende Antwort lautet: mit Hilfe von
+Seitenstilen. Üblicherweise werden Seitenstile in \LaTeX{} zur Definition von
+Kopf und Fuß der Seite verwendet.
+
+Kopf und Fuß für ungerade oder rechte Seiten\textnote{gerade oder ungerade
+ Seite} werden im doppelseitigen Modus auf Seiten mit ungerader Seitenzahl
+ausgegeben. Im einseitigen Modus werden sie auf allen Seiten verwendet. Das
+ist unmittelbar mit den
+Optionen\important[i]{\Option{evenpage}\\\Option{oddpage}} \Option{oddpage}
+und \Option{evenpage} für Ebenen vergleichbar.
+
+Der Seitenkopf\textnote{Kopf oder Fuß} wird vor dem normalen Seiteninhalt
+ausgegeben. Der Seitenfuß wird entsprechend nach dem normalen Seiteninhalt
+ausgegeben. Dies korrespondiert also unmittelbar mit den
+Optionen\important[i]{\Option{background}\\\Option{foreground}}
+\Option{background} und \Option{foreground} für Ebenen.
+
+Daher liegt es nahe, Seitenstile als Listen von Ebenen zu definieren. Aber
+statt nur den genannten vier Optionen können dabei alle Eigenschaften
+verwendet werden, die in \autoref{sec:scrlayer.layers},
+\autoref{tab:scrlayer.layerkeys}, ab \autopageref{tab:scrlayer.layerkeys}
+erklärt wurden.
+
+Als Ergebnis dieser Überlegungen ist eine Form von Seitenstilen, die
+\Package{scrlayer} bietet, der Ebenen-Seitenstil\textnote{Ebenen-Seitenstil}%
+\Index{Seitenstil>Ebenen-}\Index{Ebenen>Seitenstil}\Index{Seiten>Stil}. Ein
+solcher Ebenen-Seitenstil besteht aus Ebenen und zusätzlich aus mehreren Haken
+(engl. \emph{hooks}). Die Ebenen wurden bereits in
+\autoref{sec:scrlayer.layers} beschrieben. Die
+Haken\Index[indexmain]{Haken}\textnote{Haken} sind Punkte in der Expansion
+oder Anwendung von Seitenstilen, zu denen zusätzlicher Code hinzugefügt werden
+kann. Erfahrene Anwender kennen dieses Konzept bereits von beispielsweise
+\Macro{AtBeginDocument} (siehe \cite{latex:usrguide}) oder
+\DescRef{scrlfile.cmd.BeforeClosingMainAux} (siehe
+\DescPageRef{scrlfile.cmd.BeforeClosingMainAux}).
+
+Eine zweite Form von Seitenstilen, die \Package{scrlayer} bietet, ist der
+Alias-Seitenstil\textnote{Alias-Seitenstil}%
+\Index{Seitenstil>Alias-}\Index{Alias>Seitenstil}\Index{Seiten>Stil} oder
+Seitenstil-Alias. Ein Seitenstil-Alias besteht in Wirklichkeit aus einem
+anderen Seitenstil. Anders ausgedrückt ist der Name eines Seitenstil-Alias ein
+Alias-Name für einen anderen Seitenstil-Alias oder einen primären
+Seitenstil. Daher führt die Manipulation an einem Seitenstil-Alias zu einer
+Manipulation am originären Seitenstil. Ist der originäre Seitenstil selbst
+ebenfalls ein Seitenstil-Alias, so führt dessen Manipulation wiederum zu einer
+Manipulation dessen originären Seitenstils und immer so weiter, bis
+schließlich ein realer Seitenstil verändert wird. Der Ausdruck \emph{realer
+ Seitenstil}\textnote{realer Seitenstil} wird zur Unterscheidung von einem
+Seitenstil-Alias verwendet. Alle Seitenstile, die kein Seitenstil-Alias sind,
+sind reale Seitenstile. Seitenstil-Aliase können nicht nur für Seitenstile
+definiert werden, die mit \Package{scrlayer} definiert wurden, sondern für
+alle Seitenstile.
+
+
+\begin{Declaration}
+ \Macro{currentpagestyle}
+ \Macro{toplevelpagestyle}
+\end{Declaration}
+Das Paket \Package{scrlayer} erweitert die \LaTeX-Anweisung
+\DescRef{maincls.cmd.pagestyle}\IndexCmd{pagestyle} so, dass diese
+\Macro{currentpagestyle} als den Namen des jeweils aktiven Seitenstils
+definiert. Es\textnote{Achtung!} ist zu beachten, dass
+\DescRef{maincls.cmd.thispagestyle}\IndexCmd{thispagestyle} selbst
+\Macro{currentpagestyle} nicht verändert. Wird
+\DescRef{maincls.cmd.thispagestyle} verwendet, so kann sich
+\Macro{currentpagestyle} aber innerhalb der \LaTeX-Ausgabefunktion
+verändern. Dies hat jedoch nur dann Auswirkungen, wenn
+\Macro{currentpagestyle} bis in die \LaTeX-Ausgabefunktion geschützt verwendet
+wird.
+
+Es sei darauf hingewiesen, dass die später in diesem Abschnitt dokumentierten
+Ebenen-Seitenstile nicht auf diese Erweiterung von
+\DescRef{maincls.cmd.pagestyle} angewiesen sind, da sie selbst auch
+\Macro{currentpagestyle} umdefinieren. Die Erweiterung wurde für die
+Verwendung von anderen Seitenstilen, die nicht auf \Package{scrlayer}
+basieren, vorgenommen. Es ist außerdem zu beachten\textnote{Achtung!}, dass
+\Macro{currentpagestyle} vor der ersten Verwendung von
+\DescRef{maincls.cmd.pagestyle} nach dem Laden von \Package{scrlayer} leer
+ist. Bei der Definition einer Endanwender-Schnittstelle dürfte es daher
+nützlich sein, mit einer impliziten \DescRef{maincls.cmd.pagestyle}-Anweisung
+den aktuellen Seitenstil auf eine Voreinstellung zu setzen.%
+
+Wird mit \DescRef{maincls.cmd.pagestyle} ein Alias-Seitenstils aktiviert, so
+liefert \Macro{currentpagestyle} nicht den Alias-Namen, sondern den des
+originären Seitenstils. Den\ChangedAt{v3.16}{\Package{scrlayer}} Alias-Namen
+kann man in diesem Fall mit \Macro{toplevelpagestyle} erhalten. Es wird davon
+abgeraten, Seitenstile zu definieren, die beispielsweise per
+\DescRef{scrbase.cmd.Ifstr} abhängig von \Macro{toplevelpagestyle}
+unterschiedliche Ergebnisse liefern, da dies bei Aktivierung per
+\DescRef{maincls.cmd.thispagestyle} zu falschen Resultaten führen kann.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{BeforeSelectAnyPageStyle}\Parameter{Code}
+ \Macro{AfterSelectAnyPageStyle}\Parameter{Code}
+\end{Declaration}
+Die Anweisung \Macro{BeforeSelectAnyPageStyle} fügt einem Haken\Index{Haken}
+(engl. \emph{hook}) \PName{Code} hinzu, der innerhalb der Ausführung von
+Anweisung \DescRef{maincls.cmd.pagestyle}%
+\important{\DescRef{maincls.cmd.pagestyle}}\IndexCmd{pagestyle}, unmittelbar
+vor der Auswahl des Seitenstils ausgeführt wird. Innerhalb von \PName{Code}
+kann \texttt{\#1} als Platzhalter für das Argument von
+\DescRef{maincls.cmd.pagestyle} verwendet werden.
+
+Die Anweisung \Macro{AfterSelectAnyPageStyle} arbeitet ähnlich. Allerdings
+wird hier \PName{Code} ausgeführt, nachdem der Seitenstil gewählt und
+\DescRef{\LabelBase.cmd.currentpagestyle} auf den Namen des realen Seitenstils
+gesetzt wurde.
+
+Es ist zu beachten\textnote{Achtung!}, dass \PName{Code} jeweils nur bei der
+Wahl eines Seitenstils mit Hilfe von \DescRef{maincls.cmd.pagestyle}
+ausgeführt wird. Wird ein Seitenstil auf andere Art, beispielsweise mit Hilfe
+von \DescRef{maincls.cmd.thispagestyle}, gewählt, so wird \PName{Code} nicht
+ausgeführt. Es ist außerdem zu beachten\textnote{Achtung!}, dass einmal
+hinzugefügter \PName{Code} nicht mehr entfernt werden kann. Allerdings wird
+der \PName{Code} lokal hinzugefügt. Sein Gültigkeitsbereich kann daher mit
+einer Gruppe beschränkt werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclarePageStyleAlias}\Parameter{Seitenstil-Alias-Name}
+ \Parameter{originärer~Seitenstil-Name}
+ \Macro{DeclareNewPageStyleAlias}\Parameter{Seitenstil-Alias-Name}
+ \Parameter{originärer~Seitenstil-Name}
+ \Macro{ProvidePageStyleAlias}\Parameter{Seitenstil-Alias-Name}
+ \Parameter{originärer~Seitenstil-Name}
+ \Macro{RedeclarePageStyleAlias}\Parameter{Seitenstil-Alias-Name}
+ \Parameter{originärer~Seitenstil-Name}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Alias-}%
+\BeginIndex{}{Alias>Seitenstil}%
+Diese Anweisungen können verwendet werden, um einen Seitenstil mit dem Namen
+\PName{Seitenstil-Alias-Name} zu definieren, der einfach nur ein Alias für
+einen bereits existierenden Seitenstil mit dem Namen \PName{originärer
+ Seitenstil-Name} ist. Falls bereits ein Seitenstil mit dem Namen
+\PName{Seitenstil-Alias-Name} existiert, wird dieser vor der Erzeugung des
+Alias mit \Macro{DeclarePageStyleAlias} oder \Macro{RedeclarePageStyleAlias}
+zerstört.
+
+Die Anweisung \Macro{DeclareNewPageStyleAlias} erzeugt eine Fehlermeldung,
+falls zuvor bereits ein Seitenstil \PName{Seitenstil-Alias-Name}
+definiert wurde. Dabei spielt es keine Rolle, ob der existierende Seitenstil
+selbst ein Alias-Seitenstil, ein Ebenen-Seitenstil oder eine andere Art von
+Seitenstil ist.
+
+Die Anweisung \Macro{ProvidePageStyleAlias} definiert den Seitenstil-Alias
+nur, falls nicht bereits ein Seitenstil
+\PName{Seitenstil-Alias-Name} existiert. Falls ein solcher Seitenstil
+existiert, bleibt dieser erhalten und die Anweisung tut schlicht nichts.
+
+Im Gegensatz zu den drei vorgenannten Anweisungen erwartet
+\Macro{RedeclarePageStyleAlias}, dass bereits ein Seitenstil mit dem Namen
+\PName{Seitenstil-Alias-Name} existiert. Anderenfalls erzeugt die Anweisung
+eine Fehlermeldung.
+\iffree{\csname @tempswafalse\endcsname}{\csname @tempswatrue\endcsname}%
+\csname if@tempswa\endcsname% Umbruchkorrekturtext
+\begin{Example}
+ Angenommen, Sie schreiben eine Klasse und verwenden darin für
+ Kapitelanfangsseiten den Seitenstil \PageStyle{chapter}. In der
+ Voreinstellung soll dieser Seitenstil dem Seitenstil \PageStyle{plain}
+ entsprechen. Daher verwenden Sie das Paket \Package{scrlayer} und definieren
+ mit
+\begin{lstcode}
+ \DeclareNewPageStyleAlias{chapter}{plain}
+\end{lstcode}
+ den Seitenstil \PageStyle{chapter} als Alias für den Seitenstil
+ \PageStyle{plain}. Will hingegen der Anwender später, dass der Seitenstil
+ \PageStyle{chapter} dem Seitenstil \PageStyle{empty} entspricht, so erreicht
+ er dies mit:
+\begin{lstcode}
+ \RedeclarePageStyleAlias{chapter}{empty}
+\end{lstcode}%
+\end{Example}%
+\ExampleEndFix%
+\fi
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyPageStyleAlias}\Parameter{Seitenstil-Alias-Name}%
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Alias-}%
+\BeginIndex{}{Alias>Seitenstil}%
+Mit dieser Anweisung wird der Seitenstil-Alias mit dem angegebenen Namen
+\PName{Seitenstil-Alias-Name} für \LaTeX{} wieder undefiniert, wenn es
+tatsächlich einen Alias-Seitenstil dieses Namens gibt. Anschließend kann der
+Seitenstil auch mit \DescRef{\LabelBase.cmd.DeclareNewPageStyleAlias} oder
+\DescRef{\LabelBase.cmd.ProvidePageStyleAlias} neu definiert werden.%
+\iffalse % Siehe Hinweis zur Interface-Schnittstelle
+\par
+Die Anweisung ist dazu bestimmt, innerhalb des Arguments \PName{Code} von
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} (siehe
+\autoref{sec:scrlayer.enduserinterfaces},
+\DescPageRef{scrlayer.cmd.scrlayerOnAutoRemoveInterface}) verwendet zu
+werden, um Seitenstile, die als Teil eines Endanwender-Interfaces definiert
+wurden, beim automatischen Entfernen dieses Interfaces mit zu entfernen.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{GetRealPageStyle}\Parameter{Seitenstil-Name}%
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Alias-}%
+\BeginIndex{}{Alias>Seitenstil}%
+Diese Anweisung sucht rekursiv nach dem tatsächlichen Namen eines
+Seitenstils, wenn der angegebene \PName{Seitenstil-Name} zu einem
+Alias-Seitenstil gehört. Ist \PName{Seitenstil-Name} nicht der Name eines
+Alias-Seitenstils, so ist das Ergebnis \PName{Seitenstil-Name} selbst. Das
+gilt auch, falls ein Seitenstil namens \PName{Seitenstil-Name} gar nicht
+existiert. Die Anweisung ist voll expandierbar und kann damit beispielsweise
+auch im zweiten Argument einer \Macro{edef}-Anweisung verwendet werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DeclarePageStyleByLayers}\OParameter{Optionenliste}
+ \Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Macro{DeclareNewPageStyleByLayers}\OParameter{Optionenliste}
+ \Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Macro{ProvidePageStyleByLayers}\OParameter{Optionenliste}
+ \Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Macro{RedeclarePageStyleByLayers}\OParameter{Optionenliste}
+ \Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Diese Anweisungen deklarieren einen Seitenstil mit dem Namen
+\PName{Seitenstil-Name}. Der Seitenstil besteht aus einer Anzahl von Ebenen,
+die in der mit Komma separierten \PName{Ebenenliste} angegeben sind. Es ist zu
+beachten\textnote{Achtung!}, dass sowohl \PName{Seitenstil-Name} als auch
+\PName{Ebenenliste} voll expandierbar sein müssen und die Expansion zu einer
+Reihe von Buchstaben führen sollte. Einige zusätzliche Zeichen werden
+ebenfalls akzeptiert, ihre Verwendung wird jedoch nur erfahrenen Anwendern
+empfohlen.
+
+Die \PName{Optionenliste} ist eine mit Komma separierte Liste von Optionen der
+Form \texttt{\PName{Schlüssel}=\PName{Code}}. Diese Optionen können verwendet
+werden, um zusätzliche Eigenschaften zu setzen und zusätzliche Möglichkeiten
+zu nutzen. Derzeit werden sie verwendet, um \mbox{Code} an bestimmten Stellen
+der Aktivierung oder Verwendung eines Seitenstils über Haken\Index{Haken}
+(engl. \emph{hooks}) auszuführen. Für allgemeine Informationen zu Haken sei
+auf die Einleitung zu diesem Abschnitt verwiesen. Details zu den Haken und
+ihrer Bedeutung sind \autoref{tab:scrlayer.pagestyle.hooks} zu entnehmen. Es
+ist zu beachten, dass die Haken auch für den nachfolgend erklärten
+Pseudo-Seitenstil
+\DescRef{\LabelBase.pagestyle.@everystyle@}\IndexPagestyle{@everystyle@}%
+\important{\DescRef{\LabelBase.pagestyle.@everystyle@}} ausgeführt werden.
+
+\begin{desclist}
+ \desccaption{%
+ Optionen und gleichnamige Haken für Ebenen-Seitenstile (in der Reihenfolge
+ ihrer Abarbeitung)\label{tab:scrlayer.pagestyle.hooks}%
+ }{%
+ Optionen für die Haken von Ebenen-Seitenstilen (\emph{Fortsetzung})%
+ }%
+ \entry{\OptionVName{onselect}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn der Seitenstil, beispielsweise mit \DescRef{maincls.cmd.pagestyle},
+ ausgewählt wird. Es ist zu beachten, dass
+ \DescRef{maincls.cmd.thispagestyle} selbst keinen Seitenstil unmittelbar
+ auswählt, sondern der Seitenstil in diesem Fall erst innerhalb der
+ Ausgaberoutine von \LaTeX{} aktiviert wird.%
+ }%
+ \entry{\OptionVName{oninit}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn die Ausgabe der Ebenen für den Seitenstil initialisiert
+ wird. Beachten Sie, dass dies für jede Seite zweimal geschieht: einmal für
+ Hintergrund-Ebenen und einmal für Vordergrund-Ebenen.%
+ }%
+ \entry{\OptionVName{ononeside}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn im einseitigen Modus die Ausgabe der Ebenen für den Seitenstil
+ initialisiert wird. Beachten Sie, dass dies für jede Seite zweimal
+ geschieht: einmal für Hintergrund-Ebenen und einmal für
+ Vordergrund-Ebenen.%
+ }%
+ \entry{\OptionVName{ontwoside}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn im doppelseitigen Modus die Ausgabe der Ebenen für den Seitenstil
+ initialisiert wird. Beachten Sie, dass dies für jede Seite zweimal
+ geschieht: einmal für Hintergrund-Ebenen und einmal für
+ Vordergrund-Ebenen.%
+ }%
+ \entry{\OptionVName{onoddpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn die Ausgabe der Ebenen für den Seitenstil auf einer rechten Seite
+ initialisiert wird. Beachten Sie, dass dies für jede Seite zweimal
+ geschieht: einmal für Hintergrund-Ebenen und einmal für
+ Vordergrund-Ebenen. Beachten Sie außerdem, dass im einseitigen Modus alle
+ Seiten rechte Seiten sind.%
+ }%
+ \entry{\OptionVName{onevenpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn die Ausgabe der Ebenen für den Seitenstil auf einer linken Seite
+ initialisiert wird. Beachten Sie, dass dies für jede Seite zweimal
+ geschieht: einmal für Hintergrund-Ebenen und einmal für
+ Vordergrund-Ebenen. Beachten Sie außerdem, dass im einseitigen Modus keine
+ linken Seiten existieren.%
+ }%
+ \entry{\OptionVName{onfloatpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn die Ausgabe der Ebenen für den Seitenstil auf einer
+ Gleitumgebungsseite initialisiert wird. Beachten Sie, dass dies für jede
+ Seite zweimal geschieht: einmal für Hintergrund-Ebenen und einmal für
+ Vordergrund-Ebenen. Beachten Sie außerdem, dass Gleitumgebungsseiten nur
+ diejenigen Seiten sind, auf denen eine oder mehrere p-platzierte
+ Gleitumgebungen ausgegeben werden.%
+ }%
+ \entry{\OptionVName{onnonfloatpage}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn die Ausgabe der Ebenen für den Seitenstil auf einer Seite
+ initialisiert wird, die keine Gleitumgebungsseite ist. Beachten Sie, dass
+ dies für jede Seite zweimal geschieht: einmal für Hintergrund-Ebenen und
+ einmal für Vordergrund-Ebenen. Beachten Sie außerdem, dass
+ Gleitumgebungsseiten nur diejenigen Seiten sind, auf denen eine oder
+ mehrere p-platzierte Gleitumgebungen ausgegeben werden, und auf anderen
+ Seiten sehr wohl t-, b- oder h-platzierte Gleitumgebungen stehen können.%
+ }%
+ \entry{\OptionVName{onbackground}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn die Ausgabe der Ebenen für den Hintergrund einer Seite initialisiert
+ wird. Beachten Sie, dass dies auf jeder Seite genau einmal der Fall ist.%
+ }%
+ \entry{\OptionVName{onforeground}{Code}}{%
+ Der \PName{Code} dieses Hakens\Index{Haken} wird immer dann ausgeführt,
+ wenn die Ausgabe der Ebenen für den Vordergrund einer Seite initialisiert
+ wird. Beachten Sie, dass dies auf jeder Seite genau einmal der Fall ist.%
+ }%
+\end{desclist}
+
+\iffalse% Umbruchvarianten
+Während die Anweisung
+\Macro{DeclarePageStyleByLayers} %\important{\Macro{DeclarePageStyleByLayers}}%
+ % Leider zu lang. Deshalb auch auf alle
+ % weiteren verzichtet.
+den Seitenstil immer definiert, erzeugt \Macro{DeclareNewPageStyleByLayers}
+eine Fehlermeldung, falls bereits ein Seitenstil gleichen Namens
+existiert. Beachten\textnote{Achtung!} Sie, dass die Deklaration eines
+Seitenstils, der bereits ein Alias für einen anderen Seitenstil ist (siehe
+beispielsweise \Macro{DeclareAliasPageStyle} zuvor in diesem Abschnitt) nicht
+zu der Umdefinierung des angegebenen Alias-Seitenstils, sondern des realen
+Seitenstils (siehe \DescRef{\LabelBase.cmd.GetRealPageStyle} zuvor in diesem
+Abschnitt) führt.%
+\else%
+Die Anweisung \Macro{DeclarePageStyleByLayers} definiert den Seitenstil
+unabhängig davon, ob bereits ein Seitenstil des Namens \PName{Seitenstil-Name}
+existiert. Gegebenenfalls wird der existierende Seitenstil komplett neu
+definiert. Falls bereits ein Alias-Seitenstil \PName{Seitenstil-Name}
+existiert wird jedoch nicht der Alias-Seitenstil selbst neu definiert, sondern
+der zugehörige reale Seitenstil (siehe
+\DescRef{\LabelBase.cmd.GetRealPageStyle} zuvor in diesem Abschnitt).
+
+Die Anweisung \Macro{DeclareNewPageStyleByLayers} unterscheidet sich in dem
+Fall, dass bereits ein gleichnamiger Seitenstil existiert. Unabhängig davon,
+ob es sich um einen realen Seitenstil oder einen Alias-Seitenstil handelt,
+wird in diesem Fall ein Fehler gemeldet.%
+\fi
+
+Im Unterschied dazu wird bei \Macro{ProvidePageStyleByLayers} der Seitenstil
+unverändert erhalten, wenn bereits ein Seitenstil des Namens
+\PName{Seitenstil-Name} existiert. Existiert kein solcher Seitenstil, so wird
+er wie bei \Macro{DeclarePageStyleByLayers} definiert.
+
+Die Anweisung \Macro{RedeclarePageStyleByLayers} wiederum erwartet, dass
+bereits ein Seitenstil des Namens \PName{Seitenstil-Name} existiert und
+definiert dessen realen Seitenstil dann um. Existiert jedoch noch kein
+Seitenstil des angegebenen Namens, so resultiert daraus eine Fehlermeldung.%
+\iffalse % Umbruchkorrektur
+\par
+Beachten Sie des Weiteren die nachfolgenden Anmerkungen zum Pseudo-Seitenstil
+\PageStyle{@everystyle@}.%
+\fi%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \PageStyle{@everystyle@}
+ \PageStyle{empty}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Das Paket \Package{scrlayer} definiert von sich aus bereits zwei in gewisser
+Weise spezielle Seitenstile. Der erste davon ist
+\PageStyle{@everystyle@}\important{\PageStyle{@everystyle@}}. Dieser
+Seitenstil sollte niemals als normaler Seitenstil, beispielsweise mit
+\DescRef{maincls.cmd.pagestyle} oder \DescRef{maincls.cmd.thispagestyle}, oder
+als Ziel eines Alias-Seitenstils verwendet werden. Stattdessen werden die
+Ebenen und Haken\Index{Haken} dieses Seitenstils von allen anderen
+Ebenen-Seitenstilen mit verwendet. Dabei werden die Haken von
+\PageStyle{@everystyle@} jeweils vor den entsprechenden Haken und die Ebenen
+jeweils vor den entsprechenden Ebenen des aktiven Seitenstils ausgeführt.
+
+Damit ist das Hinzufügen einer Ebene zum Pseudo-Seitenstil
+\PageStyle{@everystyle@} oder von Code zu einem Haken dieses Seitenstils
+vergleichbar mit dem Hinzufügen einer Ebene beziehungsweise von Haken-Code zu
+allen Ebenen-Seitenstile. Der eine entscheidende Unterschied ist: Befehle, die
+sich auf die Ebenen eines Seitenstils beziehen, das sind neben
+\DescRef{\LabelBase.cmd.ForEachLayerOfPageStyle} beispielsweise auch die
+Anweisungen \DescRef{\LabelBase.cmd.AddLayersToPageStyleBeforeLayer} oder
+\DescRef{\LabelBase.cmd.AddLayersToPageStyleAfterLayer}, lassen die Ebenen des
+Seitenstils \PageStyle{@everystyle@} unberücksichtigt, wenn sie auf einen
+anderen Ebenen-Seitenstil angewendet werden.
+
+Der zweite etwas andere Ebenen-Seitenstil ist
+\PageStyle{empty}\important{\PageStyle{empty}}. Bereits vom \LaTeX-Kern wird
+ein Seitenstil dieses Namens definiert, der einen leeren Kopf und Fuß hat. Das
+Paket \Package{scrlayer} definiert diesen Seitenstil als Ebenen-Seitenstil
+ohne Ebenen um. \iffalse % Umbruchkorrektur
+Nichtsdestotrotz kann er wie jeder andere Ebenen-Seitenstil verwendet
+werden. %
+\fi%
+Der Hauptvorteil dieses Ebenen-Seitenstils gegenüber dem ursprünglichen
+Seitenstil aus dem \LaTeX-Kern ist, dass er ebenfalls die Haken\Index{Haken}
+und Ebenen des Pseudo-Seitenstils \PageStyle{@everystyle@} ausführt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{onpsselect}{Code}
+ \OptionVName{onpsinit}{Code}
+ \OptionVName{onpsoneside}{Code}
+ \OptionVName{onpstwoside}{Code}
+ \OptionVName{onpsoddpage}{Code}
+ \OptionVName{onpsevenpage}{Code}
+ \OptionVName{onpsfloatpage}{Code}
+ \OptionVName{onpsnonfloatpage}{Code}
+ \OptionVName{onpsbackground}{Code}
+ \OptionVName{onpsforeground}{Code}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Für jeden der Haken\Index{Haken} aus \autoref{tab:scrlayer.pagestyle.hooks}
+existiert außerdem eine \KOMAScript-Option%
+\iffalse%
+. Die Namen der \KOMAScript-Optionen ähneln den Namen der Optionen für die
+Befehle zur Deklaration von Ebenen-Seitenstilen. Es wird lediglich ein
+»\texttt{ps}« nach dem »\texttt{on}« am Anfang des Namens eingefügt%
+\else%
+, in deren Namen lediglich ein \texttt{ps} eingefügt wurde%
+\fi%
+. Die Werte dieser \KOMAScript-Optionen werden als Anfangswerte für die
+entsprechenden Haken verwendet. Dieser Anfangswert wird dann um alle Werte,
+die dem entsprechenden Haken in der \PName{Optionenliste} der
+Deklarationsbefehle zugewiesen werden, erweitert. Der Anfangswert kann mit
+Hilfe der Anweisung \DescRef{\LabelBase.cmd.ModifyLayerPageStyleOptions}, die
+später in diesem Abschnitt erklärt wird, entfernt werden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{singlespacing}{Ein-Aus-Wert}
+\end{Declaration}
+Wird\ChangedAt{v3.24}{\Package{scrlayer}\and \Package{scrlayer-scrpage}} ein
+Dokument, beispielsweise mit Hilfe von Paket
+\Package{setspace}\IndexPackage{setspace}\important{\Package{setspace}}, mit
+erhöhtem Zeilenabstand gesetzt, ist es oft dennoch nicht erwünscht, dass Kopf
+und Fuß der Seite ebenfalls mit diesem erhöhten Zeilenabstand gesetzt
+werden. Das gilt umso mehr, wenn Kopf und Fuß nur aus jeweils einer Zeile
+bestehen. In diesem Fall kann man \KOMAScript-Option \Option{singlespacing}
+setzen. In der Voreinstellung\textnote{Voreinstellung} ist die Option jedoch
+nicht gesetzt! Die Option wirkt generell für alle Ebenen-Seitenstile. Will man
+hingegen nur einige Ebenen-Seitenstil einzeilig gesetzt haben, so sollte man
+stattdessen für diese Seitenstile
+\OptionValue{oninit}{\Macro{linespread}\PParameter{1}\Macro{selectfont}}
+verwenden.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{deactivatepagestylelayers}{Ein-Aus-Wert}
+ \Macro{ForEachLayerOfPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Code}
+ \Macro{ForEachLayerOfPageStyle*}\Parameter{Seitenstil-Name}
+ \Parameter{Code}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Solange \KOMAScript-Option \Option{deactivatepagestylelayers} nicht
+aktiviert ist, kann mit \Macro{ForEachLayerOfPageStyle} für jede Ebene des
+Seitenstils mit dem Namen \PName{Seitenstil-Name} beliebiger \PName{Code}
+ausgeführt werden. Innerhalb von \PName{Code} dient dabei \PValue{\#1} als
+Platzhalter für den Namen der gerade abgearbeiteten Ebene.
+\begin{Example}
+ Angenommen, Sie wollen die Namen aller Ebenen des Seitenstils
+ \PValue{scrheadings} als Komma-separierte Liste, so können Sie dies mit
+\begin{lstcode}
+ \newcommand*\commaatlist{}
+ \ForEachLayerOfPageStyle{scrheadings}{%
+ \commaatlist#1\gdef\commaatlist{, }}
+ \let\commaatlist\relax
+\end{lstcode}
+ erreichen.
+\end{Example}
+Die Verwendung von \Macro{gdef} anstelle von \Macro{def} ist im Beispiel
+notwendig\textnote{Achtung!}, weil \PName{Code} innerhalb einer Gruppe
+ausgeführt wird, um unerwünschte Seiteneffekte zu minimieren. Die Anweisung
+\Macro{gdef} definiert \Macro{commaatlist} jedoch global um, so dass beim
+Aufruf des Codes für die nächste Ebene die Änderung Bestand hat.
+
+Alternativ\ChangedAt{v3.18}{\Package{scrlayer}} hätte man auch zwar mit
+\Macro{def}, dafür aber mit der Sternvariante \Macro{ForEachLayerOfPageStyle*}
+arbeiten können. Diese Form verzichtet bei der Ausführung von \PName{Code} auf
+eine Gruppe. Allerdings muss der Anwender dann selbst
+sicherstellen, dass \PName{Code} keine unerwünschten Seiteneffekte
+hat. Insbesondere würde die Deaktivierung der Ebenen mit
+\OptionValue{deactivatepagestylelayers}{true} innerhalb von \PName{Code} dann
+über den Aufruf von \Macro{ForEachLayerOfPageStyle*} hinaus Bestand haben.
+
+Diverse Anweisungen von \Package{scrlayer} setzen intern selbst ebenfalls
+\Macro{ForEachLayerOfPageStyle} ein. Auch deren Funktion kann daher über die
+\KOMAScript-Option \Option{deactivatepagestylelayers} verändert werden. Diese
+Option kann also verwendet werden, um alle Ebenen aller Seitenstile temporär
+zu deaktivieren und damit zu verstecken.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AddLayersToPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Macro{AddLayersAtBeginOfPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Macro{AddLayersAtEndOfPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Macro{RemoveLayersFromPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Diese Anweisungen können verwendet werden, um Ebenen zu einem Seitenstil
+hinzuzufügen oder davon zu entfernen. Der Seitenstil wird dabei über
+\PName{Seitenstil-Name} referenziert. Die Ebenen werden in einer durch Komma
+separierten \PName{Ebenenliste} angegeben.
+
+Sowohl die Anweisung \Macro{AddLayersToPageStyle} als auch die Anweisung
+\Macro{AddLayersAtEndOfPageStyle}\textnote{hinzufügen am Ende} fügt die Ebenen
+am Ende der Ebenenliste des Seitenstils ein. Logisch liegen die neu
+hinzugefügten Ebenen also über oder vor den bereits vorhandenen Ebenen, wobei
+Hintergrund-Ebenen natürlich weiterhin logisch hinter der Textebene und damit
+auch hinter allen Vordergrund-Ebenen liegen.
+
+Die Anweisung \Macro{AddLayersAtBeginOfPageStyle}\textnote{hinzufügen am
+ Anfang} fügt die Ebenen hingegen am Anfang der Ebenenliste des Seitenstils
+ein. Dabei werden die Ebenen in der Reihenfolge am Anfang eingefügt, in der
+sie auch in der \PName{Ebenenliste} stehen. Damit wird die Ebene, die ganz am
+Ende von \PName{Ebenenliste} steht, nach dem Einfügen die erste und damit die
+unterste oder hinterste Ebene (jeweils entweder der Vordergrund- oder der
+Hintergrundebenen) sein.
+
+Werden\textnote{unbekannte Ebenen} nicht existente Ebenen zu einem Seitenstil
+hinzugefügt, werden diese bei der Anwendung des Stils ignoriert.
+
+\iffalse% Umbruchkorrekturtext (beim Aktiveren muss unten \textnote{entfernen}
+ % entfernt werden!)
+Die Anweisung \Macro{RemoveLayersFromPageStyle} dient dem genauen
+Gegenteil. Sie entfernt\textnote{entfernen} die angegebenen Ebenen von
+Seitenstil.%
+\fi
+
+Der Versuch, mit Hilfe von
+\Macro{RemoveLayersFromPageStyle}\textnote{entfernen} Ebenen von einem
+Seitenstil zu entfernen, die gar nicht Teil des Seitenstils sind, wird
+ignoriert, führt also nicht zu einer Fehlermeldung. Dagegen ist der Versuch,
+Ebenen zu einem Seitenstil, der kein Ebenen-Seitenstil ist und auch kein
+Alias-Seitenstil, der zu einem Ebenen-Seitenstil führt, hinzuzufügen oder von
+einem solchen zu entfernen, ein Fehler und wird als solcher gemeldet.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{AddLayersToPageStyleBeforeLayer}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Parameter{Referenzebenen-Name}
+ \Macro{AddLayersToPageStyleAfterLayer}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Parameter{Referenzebenen-Name}%
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+\iffalse% Umbruchvarianten
+Diese beiden Befehle ähneln den vorangegangenen. Allerdings wird hier
+zusätzlich ein \PName{Referenzebenen-Name} angegeben. Die Ebenen des über den
+\PName{Seitenstil-Name} angegebenen Seitenstils werden nach dieser
+Referenzebene durchsucht. %
+\else%
+Die Befehle ähneln den vorherigen. Die existierenden Ebenen des Seitenstils
+werden jedoch nach \PName{Referenzebenen-Name} durchsucht. %
+\fi%
+Die Ebenen der \PName{Ebenenliste} werden dann
+vor\textnote{hinzufügen vor/nach Ebene}
+respektive nach jedem Auf"|treten der Referenzebene %
+\iffalse% Umbruchkorrekturtext
+in die Ebenen des Seitenstils %
+\fi%
+eingefügt. Dabei bleibt die Reihenfolge der Ebenen der
+\PName{Ebenenliste} erhalten.
+
+Ist die Referenzebene nicht Bestandteil des Seitenstils, so wird auch nichts
+eingefügt. Ist der Seitenstil hingegen kein Ebenen-Seitenstil und auch kein
+Alias-Seitenstil, der zu einem Ebenen-Seitenstil führt, so wird ein Fehler
+gemeldet.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{UnifyLayersAtPageStyle}\Parameter{Seitenstil-Name}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Bei den Befehlen zur Definition eines Seitenstils oder zum Hinzufügen von
+Ebenen zu einem Seitenstil wird nicht darauf geachtet, ob eine Ebene mehrfach
+Bestandteil eines Seitenstils ist oder wird. Dies ist also durchaus
+zulässig. In den meisten Fällen hat es allerdings keinen Sinn, eine Ebene
+mehrfach als Bestandteil eines Seitenstils zu haben. Daher kann mit Hilfe von
+\Macro{UnifyLayersAtPageStyle} dafür gesorgt werden, dass alle
+Ebenen-Dubletten vom Seitenstil mit dem angegebenen \PName{Seitenstil-Name}
+entfernt werden.
+
+Es ist zu beachten\textnote{Achtung!}, dass sich dabei die Reihenfolge der
+Ebenen ändern kann. Wird also eine spezielle Reihenfolge gewünscht, sollten
+stattdessen alle Ebenen entfernt und die gewünschten Ebenen in der erwarteten
+Reihenfolge neu hinzugefügt werden. In einem solchen Fall ist
+\Macro{UnifyLayersAtPageStyle} also nicht geeignet.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{ModifyLayerPageStyleOptions}\Parameter{Seitenstil-Name}
+ \Parameter{Optionenliste}
+ \Macro{AddToLayerPageStyleOptions}\Parameter{Seitenstil-Name}
+ \Parameter{Optionenliste}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Mit diesen beiden Anweisungen können die Optionen und damit die
+Haken\Index{Haken} eines Ebenen-Seitenstils nachträglich verändert werden. Bei
+\Macro{ModifyLayerPageStyleOptions}\textnote{Seitenstil-Optionen ändern}
+werden dabei genau die Optionen, die in der durch Komma separierten
+\PName{Optionenliste} angegeben sind, auf die dortigen neuen Werte
+gesetzt. Die bisherigen Werte gehen dabei verloren. Es sind alle Optionen aus
+\autoref{tab:scrlayer.pagestyle.hooks},
+\autopageref{tab:scrlayer.pagestyle.hooks} erlaubt. Optionen
+\iffree{beziehungsweise}{oder} Haken, die nicht in der \PName{Optionenliste}
+angegeben sind, bleiben hingegen unverändert. Diese Anweisung ist
+\iffree{damit auch }{}% Umbruchkorrektur
+die einzige Möglichkeit, die globalen Voreinstellungen der
+\KOMAScript-Optionen von einem Seitenstil zu entfernen.
+
+Die Anweisung \Macro{AddToLayerPageStyleOptions}\textnote{Seitenstil-Optionen
+ erweitern} überschreibt dagegen die bisher vorhandenen Werte nicht, sondern
+fügt die neuen zu den bisherigen hinzu oder -- genauer gesagt -- hängt die
+neuen Werte an die alten an.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{IfLayerPageStyleExists}\Parameter{Seitenstil-Name}
+ \Parameter{Dann-Code}
+ \Parameter{Sonst-Code}
+ \Macro{IfRealLayerPageStyleExists}\Parameter{Seitenstil-Name}
+ \Parameter{Dann-Code}
+ \Parameter{Sonst-Code}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Mit den Anweisungen kann Code in Abhängigkeit davon ausgeführt werden, ob
+ein Seitenstil ein Ebenen-Seitenstil ist oder nicht. Dabei führt
+\Macro{IfLayerPageStyleExists} den \PName{Dann-Code} nur dann aus, wenn
+\PName{Seitenstil-Name} der Name eines Ebenen-Seitenstils oder der Name eines
+Alias-Seitenstils ist, der zu einem Ebenen-Seitenstil führt. Anderenfalls
+führt die Anweisung den \PName{Sonst-Code} aus.
+
+\iffree{Die Anweisung }{}%Umbruchvarianten
+\Macro{IfRealLayerPageStyleExists} geht einen Schritt weiter und führt
+\iffree{den }{}% Umbruchvarianten
+\PName{Dann-Code} nur dann aus, wenn der über \PName{Seitenstil-Name}
+angegebene Seitenstil selbst ein Ebenen-Seitenstil ist. Im Falle eines
+Alias-Seitenstils führt diese Anweisung also selbst dann \PName{Sonst-Code}
+aus, wenn dieser Alias-Seitenstil zu einem Ebenen-Seitenstil führt.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{IfLayerAtPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenen-Name}
+ \Parameter{Dann-Code}
+ \Parameter{Sonst-Code}
+ \Macro{IfSomeLayersAtPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Parameter{Dann-Code}
+ \Parameter{Sonst-Code}
+ \Macro{IfLayersAtPageStyle}\Parameter{Seitenstil-Name}
+ \Parameter{Ebenenliste}
+ \Parameter{Dann-Code}
+ \Parameter{Sonst-Code}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+Mit diesen Anweisungen kann überprüft werden, ob ein oder mehrere Ebenen
+Bestandteil eines Seitenstils sind. \Macro{IfLayerAtPageStyle} erwartet dabei
+den \PName{Seitenstil-Name} im ersten Argument und im zweiten Argument
+genau\textnote{genau eine Ebene} einen \PName{Ebenen-Name}. Ist die
+entsprechende Ebene Bestandteil des Seitenstils, so wird der \PName{Dann-Code}
+ausgeführt, anderenfalls der \PName{Sonst-Code}.
+
+Im Unterschied dazu erlauben \Macro{IfSomeLayersAtPageStyle} und
+\Macro{IfLayersAtPageStyle} im zweiten Argument eine durch Komma separierte
+\PName{Ebenenliste}. Dabei führt
+\Macro{IfSomeLayersAtPageStyle}\textnote{mindestens eine Ebene} den
+\PName{Dann-Code} bereits aus, wenn \emph{mindestens eine} der Ebenen
+Bestandteil des Seitenstils ist. Dagegen führt
+\Macro{IfLayersAtPageStyle}\textnote{alle Ebenen} den \PName{Dann-Code} nur
+aus, wenn \emph{alle} Ebenen Bestandteil des Seitenstils sind. \iffree{Ist die
+ Bedingung nicht erfüllt, so}{Anderenfalls} wird jeweils \PName{Sonst-Code}
+ausgeführt.
+
+Durch geeignete Schachtelung sind auch komplexe Bedingungen abbildbar. Gibt
+man statt einer \PName{Ebenenliste} jeweils nur einen \PName{Ebenen-Name} an,
+so sind alle drei Anweisungen gleichbedeutend.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{DestroyRealLayerPageStyle}\Parameter{Ebenen-Seitenstil-Name}
+\end{Declaration}
+\BeginIndex{}{Seitenstil>Ebenen-}%
+\BeginIndex{}{Ebenen>Seitenstil}%
+\iffalse% Umbruchkorrektur
+Mit der Anweisung wird ein Ebenen-Seitenstil aus \LaTeX-Sicht undefiniert.
+Wurde statt eines Ebenen-Seitenstils ein Alias-Seitenstil, ein anderer
+Seitenstil oder ein unbekannter Seitenstil angegeben, so wird die Anweisung
+ignoriert.%
+\else%
+Mit dieser Anweisung kann ein Ebenen-Seitenstil aus \LaTeX-Sicht wieder
+undefiniert werden. Dies gilt jedoch nur, wenn es einen Ebenen-Seitenstil mit
+dem Namen \PName{Ebenen-Seitenstil-Name} auch tatsächlich gibt. Handelt es sich
+stattdessen um einen Alias-Seitenstil -- auch wenn dieser zu einem
+Ebenen-Seitenstil führt -- oder um einen anderen Seitenstil oder ist gar kein
+Seitenstil mit dem Namen \PName{Ebenen-Seitenstil-Name} bekannt, so geschieht
+nichts, die Anweisung wird ignoriert.%
+\fi
+
+Falls \PName{Ebenen-Seitenstil-Name} der Name des aktuellen Seitenstils ist,
+so wird dieser auf eine Art leeren Seitenstil gesetzt. Falls der mit
+\DescRef{maincls.cmd.thispagestyle} gesetzte Seitenstil
+\PName{Ebenen-Seitenstil-Name} lautet, so wird dieser einfach nur
+zurückgesetzt. Die vorherige Anweisung \DescRef{maincls.cmd.thispagestyle}
+verliert damit ihre aktuelle Auswirkung.
+
+Es ist zu beachten\textnote{Achtung!}, dass die Ebenen des Seitenstils nicht
+automatisch mit vernichtet werden. Falls Sie die Ebenen ebenfalls vernichten
+möchten, so können Sie dies beispielsweise mit
+\begin{lstcode}
+ \ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}}
+\end{lstcode}
+vor der Vernichtung des Seitenstils selbst erreichen.%
+\iffalse % Siehe Hinweis zur Interface-Schnittstelle
+\par
+Die Anweisung ist dazu bestimmt, innerhalb des Arguments \PName{Code} von
+\DescRef{\LabelBase.cmd.scrlayerOnAutoRemoveInterface} (siehe
+\autoref{sec:scrlayer.enduserinterfaces},
+\DescPageRef{scrlayer.cmd.scrlayerOnAutoRemoveInterface}) verwendet zu
+werden, um Seitenstile, die als Teil eines Endanwender-Interfaces definiert
+wurden, beim automatischen Entfernen dieses Interfaces mit zu entfernen.%
+\fi %
+\EndIndexGroup
+\EndIndexGroup
+
+\LoadCommonFile{headfootheight}% \section{Höhe von Kopf und Fuß}
+
+\LoadCommonFile{pagestylemanipulation}% \section{Beeinflussung der Inhalte von Seitenstilen}
+
+\section{Definition und Verwaltung von Schnittstellen für Endanwender}
+\seclabel{enduserinterfaces}
+
+\iftrue% Der komplette Mechanismus ist überholt und sollte nicht mehr
+ % verwendet werden. Daher wird die Doku dazu deaktiviert.
+%\begin{sloppypar}
+Bis Version 3.27\ChangedAt{v3.28}{\Package{scrlayer}} stellte das Paket
+\Package{scrlayer} noch einen als experimentell dokumentierten Mechanismus zur
+Verwaltung konkurrierender Benutzerschnittstellen zur Verfügung. Da der Nutzen
+dieses lediglich von \KOMAScript{} selbst eingesetzten Mechanismus sehr
+begrenzt war, ist er inzwischen als überholt gekennzeichnet. Die Befehle
+\Macro{scrlayerInitInterface}\IndexCmd{scrlayerInitInterface},
+\Macro{scrlayerOnAutoRemoveInterface}\IndexCmd{scrlayerOnAutoRemoveInterface},
+\Macro{scrlayerAddToInterface}\IndexCmd{scrlayerAddToInterface} und
+\Macro{scrlayerAddCsToInterface}\IndexCmd{scrlayerAddCsToInterface} und die
+Optionen \Option{forceoverwrite}\IndexOption{forceoverwrite} und
+\Option{autoremoveinterfaces}\IndexOption{autoremoveinterfaces} sollten daher
+nicht mehr verwendet werden.%
+%\end{sloppypar}%
+\else%
+Das Paket \Package{scrlayer} stellt eine experimentelle Benutzerschnittstelle
+zur Verfügung um (konkurrierende) Schnittstellen für Endanwender definieren
+und verwalten zu können. \iffree{% Umbruchvarianten
+ Möglicherweise wird diese Schnittstelle langfristig wieder aus
+ \Package{scrlayer} verschwinden und dann stattdessen von \Package{scrbase}
+ übernommen werden. }{}%
+Derzeit ist die Schnittstelle aber noch hoch
+experimentell\iffree{% Umbruchvariante
+ und wird daher von eigenen Befehlen innerhalb von \Package{scrlayer} nur für
+ Unterpakete von \Package{scrlayer} bereit gestellt}{}%
+. Es empfiehlt sich beim aktuellen Entwicklungsstand nicht, sich darauf zu
+verlassen, dass die automatische Entfernung einer konkurrierenden
+Schnittstelle funktioniert. Stattdessen sollte die Verwendung konkurrierender
+Schnittstellen vermieden werden.
+
+Dieser Abschnitt beschreibt lediglich die Schnittstellen"=Anweisungen für die
+Definition einer Endanwender-Schnittstelle. Für Endanwender selbst ist er
+damit von geringem Interesse. Vielmehr richtet sich dieser Teil der Anleitung
+an Autoren von Paketen und Klassen, die auf \Package{scrlayer}
+aufbauen. Endanwender finden Informationen zu konkreten
+Endanwender-Schnittstellen in \autoref{cha:scrlayer-scrpage},
+\autoref{cha:scrlayer-scrpage-experts} und \autoref{cha:scrlayer-notecolumn}.
+
+
+\begin{Declaration}
+ \Macro{scrlayerInitInterface}\OParameter{Schnittstellen-Name}
+\end{Declaration}
+Mit dieser Anweisung wird eine neue Schnittstelle mit dem Namen
+\PName{Schnittstellen-Name} registriert. Der
+\PName{Schnittstellen-Name} muss einzigartig sein. Das bedeutet, dass eine
+Schnittstelle gleichen Namens noch nicht registriert sein darf. Sollte dies
+doch der Fall sein, so wird ein Fehler ausgegeben.
+
+Diese Anweisung sollte immer ganz am Anfang einer Endanwender-Schnittstelle
+stehen. Daher wird sie hier auch zuerst erklärt. Wird das optionale Argument
+-- einschließlich der eckigen Klammern -- weggelassen, so wird dafür
+\PValue{\Macro{@currname}.\Macro{@currext}} verwendet. Für Klassen und
+Pakete ist dies der Dateiname der Klasse respektive des Pakets. Aber
+selbstverständlich kann jede andere Zeichenfolge der Kategorie \emph{letter}
+oder \emph{other} verwendet werden. Dies ist beispielsweise sinnvoll, wenn
+eine Klasse oder ein Paket mehrere Endanwender-Schnittstellen definiert.%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \OptionVName{forceoverwrite}{Ein-Aus-Wert}
+ \OptionVName{autoremoveinterfaces}{Ein-Aus-Wert}
+ \Macro{scrlayerAddToInterface}\OParameter{Schnittstellen-Name}
+ \Parameter{Befehl}\Parameter{Code}
+ \Macro{scrlayerAddCsToInterface}\OParameter{Schnittstellen-Name}
+ \Parameter{Befehlssequenz}\Parameter{Code}
+\end{Declaration}
+Eine der besonderen Eigenschaften der Endanwender-Schnittstellen von
+\Package{scrlayer} ist es, dass die Schnittstelle verwendete Befehle (auch
+bekannt als \emph{Makros} oder engl. \emph{macros}) registrieren sollte. Dies
+kann mit \Macro{scrlayerAddToInterface} erfolgen. Das optionale Argument
+\PName{Schnittstellen-Name} entspricht hier dem Namen, der mit
+\DescRef{\LabelBase.cmd.scrlayerInitInterface} zuvor registriert wurde.
+
+Werden\textnote{Achtung!} Anweisungen nicht nur während des Ladens einer
+Klasse oder eines Pakets, sondern auch zur Laufzeit definiert, so ist das
+optionale Argument auch dann zu verwenden, wenn es dem Dateinamen der Klasse
+beziehungsweise des Pakets entspricht, da die Werte von \Macro{@currname} und
+\Macro{@currext} nur während des Ladens Gültigkeit besitzen.
+
+Das erste obligatorische Argument ist der
+\PName{Befehl}\footnote{\PName{Befehl} besteht aus einem umgekehrten
+ Schrägstrich (engl. \emph{backslash}), gefolgt von einer
+ \PName{Befehlssequenz}, die entweder aus Zeichen der Kategorie \emph{letter}
+ oder aus genau einem Zeichen der Kategorie \emph{other} besteht, oder aus
+ einem Zeichen der Kategorie \emph{active} (ohne umgekehrten Schrägstrich
+ davor).}, der zu der Endanwender-Schnittstelle hinzugefügt werden
+soll. Falls der Befehl definiert werden kann, erfolgt dies. Außerdem wird dann
+der Befehl auf \Macro{relax} gesetzt und \PName{Code} wird
+ausgeführt. Innerhalb von \PName{Code} kann der \PName{Befehl} dann
+beispielsweise mit Hilfe von \Macro{newcommand} definiert werden.
+
+Wann aber kann ein \PName{Befehl}\textnote{definierbare Befehle} definiert
+werden? Ist ein \PName{Befehl} undefiniert oder \Macro{relax}, so kann er
+immer definiert werden. Wurde ein \PName{Befehl} bereits definiert \emph{und}
+für eine andere Endanwender-Schnittstelle registriert \emph{und} wurde auch die
+\KOMAScript-Option \Option{autoremoveinterfaces} aktiviert, so wird diese
+andere Endanwender-Schnittstelle automatisch entfernt, der \PName{Befehl} auf
+\Macro{relax} gesetzt und für die angegebene neue Endanwender-Schnittstelle
+registriert. Damit ist \PName{Befehl} auch dann definierbar. Falls ein
+\PName{Befehl} bereits definiert ist, \emph{aber nicht} Teil einer anderen
+Endanwender-Schnittstelle ist, \emph{und} falls die \KOMAScript-Option
+\Option{forceoverwrite} aktiviert wurde, wird \PName{Befehl} ebenfalls
+\Macro{relax} und für die angegebene Endanwender-Schnittstelle
+registriert. Der \PName{Befehl} ist also auch in diesem Fall definierbar. In
+allen anderen Fällen ist er jedoch nicht definierbar, also insbesondere, falls
+er bereits definiert ist und die \KOMAScript-Optionen
+\Option{autoremoveinterfaces} und \Option{forceoverwrite} deaktiviert sind.
+
+Die Anweisung \Macro{scrlayerAddCsToInterface} arbeitet ganz ähnlich der
+vorgenannten Anweisung \Macro{scrlayerAddToInterface}. Allerdings erwartet sie
+als erstes Argument keinen \PName{Befehl}, sondern eine
+\PName{Befehlssequenz}\footnote{Eine \PName{Befehlssequenz} muss voll
+ expandierbar sein und ihre Expansion muss zu Zeichen der Kategorie
+ \emph{letter}, \emph{other} oder \emph{space} führen.}.%
+%
+\EndIndexGroup
+
+
+\begin{Declaration}
+ \Macro{scrlayerOnAutoRemoveInterface}\OParameter{Schnittstellen-Name}
+ \Parameter{Code}
+\end{Declaration}
+Für den Fall, dass die Endanwender-Schnittstelle mit dem angegebenen
+\PName{Schnittstellen-Name} automatisch entfernt wird (siehe
+\KOMAScript-Option \DescRef{\LabelBase.option.autoremoveinterfaces} zuvor in
+diesem Abschnitt) kann zusätzlich \PName{Code} ausgeführt werden. Dies kann
+beispielsweise verwendet werden, um Ebenen oder Seitenstile automatisch mit zu
+vernichten (siehe \DescRef{\LabelBase.cmd.DestroyLayer},
+\DescRef{\LabelBase.cmd.DestroyPageStyleAlias}, and
+\DescRef{\LabelBase.cmd.DestroyRealLayerPageStyle}), die auf Befehlen der
+Endanwender-Schnittstelle beruhen. Bezüglich der Voreinstellung für das
+optionale Argument sei auf die Erklärung zu
+\DescRef{\LabelBase.cmd.scrlayerInitInterface} verwiesen.%
+\EndIndexGroup%
+\fi%
+%
+\EndIndexGroup
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "scrguide-de.tex"
+%%% coding: utf-8
+%%% ispell-local-dictionary: "de_DE"
+%%% eval: (flyspell-mode 1)
+%%% End:
+
+% LocalWords: Vordergrundebene Sternvariante Gleitseiten Hintergrundebenen
+% LocalWords: Ausgabebeschränkungen Grafikausgabe Textausgabe Textebenen
+% LocalWords: Standardgrundlinie Grafikebenen Standardtextzeile überhoch
+% LocalWords: Platzierungsbefehle Ebeneneigenschaft Satzspiegelkonstruktion
+% LocalWords: Kreisschlagen Buchseitenkanon spätmittelalterlichen
+% LocalWords: Makronamen