summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex1436
1 files changed, 1436 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex
new file mode 100644
index 00000000000..2bf8540ab0c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/scrlayer.tex
@@ -0,0 +1,1436 @@
+% ======================================================================
+% scrlayer.tex
+% Copyright (c) Markus Kohm, 2013
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of all files listed in manifest.txt.
+% ----------------------------------------------------------------------
+% scrlayer.tex
+% Copyright (c) Markus Kohm, 2013
+%
+% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
+% Version 1.3c, verteilt und/oder veraendert werden.
+% Die neuste Version dieser Lizenz ist
+% http://www.latex-project.org/lppl.txt
+% und Version 1.3c ist Teil aller Verteilungen von LaTeX
+% Version 2005/12/01 oder spaeter und dieses Werks.
+%
+% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
+% (allein durch den Autor verwaltet).
+%
+% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
+%
+% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
+% ======================================================================
+%
+% Chapter about scrlayer of the KOMA-Script guide
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Kapitel über scrlayer in der KOMA-Script-Anleitung
+% Verwaltet von Markus Kohm
+%
+% ============================================================================
+
+\KOMAProvidesFile{scrlayer.tex}
+ [$Date: 2013-12-10 19:50:34 +0100 (Di, 10. Dez 2013) $
+ 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}
+
+\BeginIndex{Package}{scrlayer}
+
+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 bereits 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 einfache Umschaltung zwischen der Verwendung
+unterschiedlicher Ebenen durch die Umschaltung des Seitenstils möglich.
+
+Um dies zu erreichen, stellt das Paket auf unterer Stufe zusätzlich eine
+Schnittstelle zur Definition von Seitenstilen, die auf einem Stapel oder einer
+Liste von Ebenen beruhen, zum Hinzufügen von Ebenen wahlweise am Anfang oder
+Ende einer solchen Liste von Ebenen oder unmittelbar vor oder hinter einer
+anderen Ebene in einer solchen Liste, zum Löschen einer Ebene aus einer
+solchen Liste und zum Löschen aller Dubletten einer Ebene aus einer solchen
+Liste bereit. Oder kurz und verständlich gesagt: Die Seitenstil-Schnittstelle
+von \Package{scrlayer} stellt Befehle bereit, um einen Seitenstil, der auf
+einer Liste von Ebenen basiert, zu definieren und diese Ebenenliste zu
+verwalten.
+
+Nichtsdestoweniger wird die direkte Verwendung der Ebenen nur erfahrenen
+Anwendern empfohlen. Schnittstellen für Anfänger und durchschnittliche
+Anwender werden als zusätzliche Pakete angeboten, die dann ihrerseits
+\Package{scrlayer} laden. Siehe hierzu \autoref{cha:scrlayer-scrpage} in
+\autoref{part:forAuthors} diese\iffree{r Anleitung}{s Buches}.
+
+
+\section{Hinweis zum Entwicklungsstand}
+\label{sec:scrlayer.draft}
+
+Die Entwicklung dieses Pakets ist noch nicht abgeschlossen. Teile des Pakets
+sind auch noch als experimentell einzustufen. Daher können sich in Zukunft
+insbesondere die internen Funktionalitäten und Funktionsweisen noch ändern. Es
+ist auch noch mit Erweiterungen zu rechnen. Wegen dieses noch nicht
+abgeschlossenen Entwicklungsstandes sollte der Leser auch keine abgeschlossene
+Anleitung erwarten. Dennoch gibt diese Anleitung, die sich vor allem an
+erfahrene Anwender und Entwickler richtet, den aktuellen Entwicklungsstand der
+Teile von \Package{scrlayer} wieder, die als zur Verwendung freigegeben
+eingestuft sind. Dinge, die hier nicht dokumentiert sind, sollten allenfalls
+zu Testzwecken Verwendung finden.
+
+\LoadCommon{0} % \section{Frühe oder späte Optionenwahl}
+
+\section{Einige grundlegende Informationen}
+\label{sec:scrlayer.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.
+
+Dieser Abschnitt beschreibt einige der Informationen, die Autoren von Klassen
+bereitstellen können. Anwender sollten sich im Normalfall nicht darum zu
+kümmern brauchen.
+
+\begin{Declaration}
+ \Macro{if@chapter}\ \PName{Dann-Code} \Macro{else}\ \PName{Sonst-Code}
+ \Macro{fi}
+\end{Declaration}
+\BeginIndex{Cmd}{if@chapter}%
+Wenn \Macro{if@chapter} definiert ist und \Macro{iftrue}\IndexCmd{iftrue}
+entspricht, wird \Package{scrlayer} bei seiner Arbeit die Kapitel-Ebene
+beispielsweise bei Option \Option{automark} mit berücksichtigen. Wenn es
+definiert ist, aber nicht \Macro{iftrue} entspricht, behandelt
+\Package{scrlayer} nur die Ebenen der Befehle \Macro{part}, \Macro{section},
+\Macro{subsection}, \Macro{sub\dots subsection}, \Macro{paragraph},
+\Macro{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 \Macro{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}.%
+%
+\EndIndex{Cmd}{if@chapter}%
+
+\begin{Declaration}
+ \Macro{if@mainmatter}\ \PName{Dann-Code} \Macro{else}\ \PName{Sonst-Code}
+ \Macro{fi}
+\end{Declaration}
+\BeginIndex{Cmd}{if@mainmatter}%
+Klassen wie \Class{book} definieren \Macro{frontmatter}\IndexCmd{frontmatter},
+\Macro{mainmatter}\IndexCmd{mainmatter} und
+\Macro{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 \Macro{frontmatter}, \Macro{mainmatter} oder
+\Macro{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 haben jedoch tatsächlich \Macro{frontmatter},
+\Macro{mainmatter} oder \Macro{backmatter} und trotzdem kein
+\Macro{if@mainmatter}. In diesem Fall definiert \Package{scrlayer} ebenfalls
+\Macro{if@mainmatter} als Synonym für \Macro{iftrue} und erweitert
+die gefundenen Definitionen von \Macro{frontmatter}, \Macro{mainmatter} und
+\Macro{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.%
+\EndIndex{Cmd}{if@mainmatter}%
+
+\begin{Declaration}
+ \Macro{DeclareSectionNumberDepth}%
+ \Parameter{Name der Gliederungsebene}\Parameter{Tiefe der Gliederungsebene}
+\end{Declaration}
+\BeginIndex{Cmd}{DeclareSectionNumberDepth}%
+Jeder Gliederungsebene ist normalerweise eine nummerische Tiefe
+zugeordnet. Das ist notwendig, damit \LaTeX{} die Hierarchie der
+Gliederungsebenen verwalten kann. Allerdings sind die Werte normalerweise 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.
+
+Das Paket \Package{scrlayer} benötigt ebenfalls Informationen über die
+Hierarchie. Mit Hilfe der Anweisung \Macro{DeclareSectionNumberDepth} kann
+\Package{scrlayer} zum Namen einer Gliederungsebene die zugehörige nummerische
+Tiefe bekannt gemacht werden. Für die Standardklassen wäre \Parameter{Name der
+ Gliederungsebene} beispielsweise \PValue{part}, \PValue{chapter},
+\PValue{section}, \PValue{subsection}, \PValue{subsubsection},
+\PValue{paragraph} oder \PValue{subparagraph} und die jeweils zugehörige
+\PName{Tiefe der Gliederungsebene} wäre -1, 0, 1, 2, 3, 4 oder 5.
+
+Das Paket \Package{scrlayer} versucht diese nummerischen Werte zunächst beim
+Laden des Pakets und dann 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.%
+%
+\EndIndex{Cmd}{DeclareSectionNumberDepth}%
+
+\section{Deklaration von Ebenen}
+\label{sec:scrlayer.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 erste Eigenschaft ist Antwort auf
+die Frage, ob die Ebene zum Hintergrund oder zum Vordergrund
+gehört. 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.
+
+Die zweite und dritte Eigenschaft sind die horizontale und vertikale Position
+der Ebene. Die vierte und fünfte Eigenschaft sind die horizontale und
+vertikale Größe der Ebene. Daraus ergibt sich, dass eine Ebene auch kleiner
+oder größer als das Papier sein kann.
+
+Aber wie werden die horizontale und die vertikale Position gemessen? Aus der
+Antwort ergibt sich die sechste Eigenschaft, die 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.
+
+Die siebte Eigenschaft ist, ob eine Ebene auf linken oder rechten Seiten eines
+Dokuments gedruckt werden soll. In der Voreinstellung wird eine Ebene auf
+allen Seiten gedruckt. Es ist zu beachten, dass \LaTeX{} 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 in der
+englischen Sprache entsprechend linke Seiten auch als gerade Seiten und rechte
+Seiten als ungerade Seiten.
+
+Die achte Eigenschaft ist, ob eine Ebene auf den einseitigen oder den
+doppelseitigen Modus beschränkt sein soll. 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.
+
+Die neunte Eigenschaft ist, ob eine Ebene auf Gleitseiten oder auf
+Normalseiten beschränkt ist. \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.
+
+Die zehnte und letzte Eigenschaft ist der Inhalt der Ebene. Das ist schlicht
+das, was gedruckt werden soll, wann immer die Ebene ausgegeben wird.
+
+Damit haben wir also zehn Eigenschaften. Später in dieser Anleitung werden wir
+weitere Eigenschaften sehen, die jedoch auf diese zehn Eigenschaften
+abgebildet werden können. Daher nennen wir diese zehn Eigenschaften die
+primären Eigenschaften.
+
+\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}
+\BeginIndex{Cmd}{DeclareLayer}%
+\BeginIndex{Cmd}{DeclareNewLayer}%
+\BeginIndex{Cmd}{ProvideLayer}%
+\BeginIndex{Cmd}{RedeclareLayer}%
+\BeginIndex{Cmd}{ModifyLayer}%
+Diese Anweisungen können verwendet werden, um Ebenen zu definieren. 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 nicht empfohlen.
+
+Dabei spielt es bei Verwendung von \Macro{DeclareLayer} 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}.
+
+Im Unterschied zu \Macro{DeclareLayer} meldet \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} die Ebene nur, wenn nicht bereits eine
+Ebene mit dem angegebenen Namen existiert. Ist 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} die Ebene zunächst auf die Grundeinstellungen
+zurückgesetzt und damit über die angegebene \PName{Optionenliste} komplett neu
+definiert wird, unterbleibt bei \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.
+
+\begin{desclist}
+ \desccaption{%
+ Optionen für die Definition von Seiten-Ebenen mit ihrer jeweiligen
+ Bedeutung als Ebenen-Eigenschaft\label{tab:scrlayer.layerkeys}%
+ }{%
+ Optionen für die Definition von Ebenen (\emph{Fortsetzung})%
+ }%
+ \nentry{\KOption{align}\PName{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
+ Auftretens 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
+ \KOption{hoffset}\PName{horizontaler Abstand},
+ \KOption{voffset}\PName{vertikaler Abstand},
+ \KOption{width}\PName{Breite}, \KOption{height}\PName{Höhe}.%
+ }%
+ \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{\KOption{clone}\PName{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}. Es ist zu beachten, dass \PName{Name
+ einer Ebene} voll expandierbar sein muss und zu Buchstaben expandieren
+ sollte. Einige weitere Zeichen werden toleriert, ihre Verwendung wird
+ jedoch nicht empfohlen! Die Ebene mit dem angegebenen \PName{Name einer
+ Ebene} muss außerdem bereits existieren.%
+ }%
+ \entry{\KOption{contents}\PName{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{\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 Vodergrundebene. 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{\KOption{height}\PName{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{\KOption{hoffset}\PName{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{\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{\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{\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{\KOption{voffset}\PName{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{\KOption{width}\PName{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}
+%
+\EndIndex{Cmd}{ModifyLayer}%
+\EndIndex{Cmd}{RedeclareLayer}%
+\EndIndex{Cmd}{ProvideLayer}%
+\EndIndex{Cmd}{DeclareNewLayer}%
+\EndIndex{Cmd}{DeclareLayer}%
+
+\begin{Declaration}
+ \Macro{layerxoffset}\\
+ \Macro{layeryoffset}\\
+ \Macro{layerwidth}\\
+ \Macro{layerheight}%
+\end{Declaration}
+\BeginIndex{Cmd}{layerxoffset}%
+\BeginIndex{Cmd}{layeryoffset}%
+\BeginIndex{Cmd}{layerwidth}%
+\BeginIndex{Cmd}{layerheight}%
+Diese Anweisungen sind nur innerhalb der Ausgabe des mit \Option{contents}
+angegebenen \PName{Code} gültig. In diesem Fall enthalten sie die tatsächlich
+verwendete Position und Ausdehnung der Ebene, die für die Ausgabe verwendet
+werden. 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. Eine Umdefinierung der Anweisungen und damit
+Änderung der in ihnen gespeicherten Werte ist nicht gestattet und führt zu
+unvorhersehbaren Ergebnissen.%
+\EndIndex{Cmd}{layerheight}%
+\EndIndex{Cmd}{layerwidth}%
+\EndIndex{Cmd}{layeryoffset}%
+\EndIndex{Cmd}{layerxoffset}%
+
+\begin{Declaration}
+ \Macro{IfLayerExists}%^^A
+ \Parameter{Name}\Parameter{Dann-Code}\Parameter{Sonst-Code}
+\end{Declaration}
+\BeginIndex{Cmd}{IfLayerExists}%
+Diese Anweisung kann dazu verwendet werden, Code in Abhängigkeit davon, ob ein
+eine Ebene existiert oder nicht, auszuführen. Wenn die Ebene mit dem
+angegebenen \PName{Name} 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. Nichts desto trotz: 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.%
+\EndIndex{Cmd}{IfLayerExists}
+
+\begin{Declaration}
+ \Macro{DestroyLayer}\Parameter{Name der Ebene}
+\end{Declaration}
+\BeginIndex{Cmd}{DestroyLayer}%
+Existiert eine Ebene mit dem angegebenen \PName{Name der Ebene}, so werden
+alle zu dieser Ebene gehörenden Makros zu \Macro{relax}. Anschließend kann die
+Ebene nicht länger verwendet werden. Allerdings ist es kein Problem, falls die
+Ebene Bestandteil eines mit \Package{scrlayer} definierten Seitenstils ist, da
+derart zerstörte Ebenen schlicht ignoriert werden. Nichtsdestotrotz können
+zerstörte Ebenen anschließend mit \Macro{DeclareNewLayer} oder
+\Macro{ProvideLayer} neu definiert werden. Sie können jedoch vor einer
+neuerlichen Definition nicht länger mit \Macro{RedeclareLayer} oder
+\Macro{ModifyLayer} verändert werden.
+
+Die Anweisung ist dazu bestimmt, innerhalb von
+\Macro{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.%
+%
+\EndIndex{Cmd}{DestroyLayer}%
+
+
+\begin{Declaration}
+ \Macro{layercontentsmeasure}
+\end{Declaration}
+\BeginIndex{Cmd}{layercontentsmeasure}%
+Mit Hilfe der \KOMAScript-Option
+\Option{draft}\IndexOption{draft~=\PName{Ein-Aus-Wert}} 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.%
+%
+\EndIndex{Cmd}{layercontentsmeasure}%
+
+
+\section{Deklaration und Verwaltung von Seitenstilen}
+\label{sec:scrlayer.pagestyles}
+
+Wir kennen nun Ebenen und wissen, wie diese definiert und verwaltet
+werden. Aber bisher wissen wir noch nicht, 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 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
+\Option{oddpage} und \Option{evenpage} für Ebenen vergleichbar.
+
+Der Seitenkopf wird vor dem normalen Seiteninhalt ausgegeben. Der Seitenfuß
+wird entsprechend nach dem normalen Seiteninhalt ausgegeben. Dies
+korrespondiert also unmittelbar mit den Optionen \Option{background} und
+\Option{foreground} für Ebenen.
+
+Daher liegt es nahe, Seitenstile als Listen von Ebenen zu definieren. Aber
+statt nur die genannten vier Optionen, können dabei alle Eigenschaften
+verwendet werden, die in \autoref{sec:scrlayer.layers} erklärt wurden.
+
+Als Ergebnis dieser Überlegungen ist eine Form von Seitenstilen, die
+\Package{scrlayer} bietet, der Ebenen-Seitenstil. 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
+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 \Macro{BeforeClosingMainAux} (siehe
+\autopageref{desc:scrlfile.cmd.BeforeClosingMainAux}).
+
+Eine zweite Form von Seitenstilen, die \Package{scrlayer} bietet, ist der
+Alias-Seitenstil 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} 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}
+\end{Declaration}
+\BeginIndex{Cmd}{currentpagestyle}%
+Das Paket \Package{scrlayer} erweitert die \LaTeX-Anweisung
+\Macro{pagestyle}\IndexCmd{pagestyle} so, dass diese \Macro{currentpagestyle}
+als den Namen des jeweils aktiven Seitenstils
+definiert. Es\textnote{Achtung!} ist zu beachten, dass
+\Macro{thispagestyle}\IndexCmd{thispagestyle} selbst \Macro{currentpagestyle}
+nicht verändert. Wird \Macro{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 \Macro{pagestyle} angewiesen
+sind, da sie selbst ebenfalls \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 \Macro{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 \Macro{pagestyle}-Anweisung den aktuellen
+Seitenstil auf eine Voreinstellung zu setzen.%
+\EndIndex{Cmd}{currentpagestyle}%
+
+\begin{Declaration}
+ \Macro{BeforeSelectAnyPageStyle}\Parameter{Code}\\
+ \Macro{AfterSelectAnyPageStyle}\Parameter{Code}%
+\end{Declaration}
+\BeginIndex{Cmd}{BeforeSelectAnyPageStyle}%
+\BeginIndex{Cmd}{AfterSelectAnyPageStyle}%
+Die Anweisung \Macro{BeforeSelectAnyPageStyle} fügt einem Haken
+(engl. \emph{hook}) \PName{Code} hinzu, der innerhalb der Ausführung von
+\Macro{pagestyle}, unmittelbar vor der Auswahl des Seitenstils ausgeführt
+wird. Innerhalb von \PName{Code} kann \texttt{\#1} als Platzhalter für das
+Argument von \Macro{pagestyle} verwendet werden.
+
+Die Anweisung \Macro{AfterSelectAnyPageStyle} arbeitet ähnlich. Allerdings
+wird hier \PName{Code} ausgeführt, nachdem der Seitenstil gewählt und
+\Macro{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 \Macro{pagestyle} ausgeführt wird. Wird
+ein Seitenstil auf andere Art, beispielsweise mit Hilfe von
+\Macro{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.%
+\EndIndex{Cmd}{AfterSelectAnyPageStyle}%
+\EndIndex{Cmd}{BeforeSelectAnyPageStyle}%
+
+
+\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{Cmd}{DeclarePageStyleAlias}%
+\BeginIndex{Cmd}{DeclareNewPageStyleAlias}%
+\BeginIndex{Cmd}{ProvidePageStyleAlias}%
+\BeginIndex{Cmd}{RedeclarePageStyleAlias}%
+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 mit dem Namen \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 Alias-Seitenstil
+nur, falls nicht bereits ein Seitenstil mit dem Namen
+\PName{Seitenstil-Alias-Name} existiert. Falls ein solcher Seitenstil
+existiert, bleibt dieser erhalten und die Anweisung tut schlicht nichts.
+
+Im Gegensatz zu den anderen Anweisungen erwartet
+\Macro{RedeclarePageStyleAlias}, dass bereits ein Seitenstil mit dem Namen
+\PName{Seitenstil-Alias-Name} existiert. Anderenfalls erzeugt die Anweisung
+eine Fehlermeldung.%
+\EndIndex{Cmd}{RedeclarePageStyleAlias}%
+\EndIndex{Cmd}{ProvidePageStyleAlias}%
+\EndIndex{Cmd}{DeclareNewPageStyleAlias}%
+\EndIndex{Cmd}{DeclarePageStyleAlias}
+
+\begin{Declaration}
+ \Macro{DestroyPageStyleAlias}\Parameter{Seitenstil-Alias-Name}%
+\end{Declaration}
+\BeginIndex{Cmd}{DestroyPageStyleAlias}%
+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 beispielsweise mit \Macro{DeclareNewAliasPageStyle} oder
+\Macro{ProvideAliasPageStyle} neu definiert werden.
+
+Die Anweisung ist dazu bestimmt innerhalb von
+\Macro{scrlayerOnAutoRemoveInterface} verwendet zu werden, um Seitenstile, die
+als Teil eines Endanwender-Interfaces definiert wurden, beim Entfernen dieses
+Interfaces mit zu entfernen.%
+\EndIndex{Cmd}{DestroyPageStyleAlias}%
+
+\begin{Declaration}
+ \Macro{GetRealPageStyle}\Parameter{Seitenstil-Name}%
+\end{Declaration}
+\BeginIndex{Cmd}{GetRealPageStyle}%
+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.
+%
+\EndIndex{Cmd}{GetRealPageStyle}%
+
+
+\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{Cmd}{DeclarePageStyleByLayers}%
+\BeginIndex{Cmd}{DeclareNewPageStyleByLayers}%
+\BeginIndex{Cmd}{ProvidePageStyleByLayers}%
+\BeginIndex{Cmd}{RedeclarePageStyleByLayers}%
+Diese Anweisungen deklarieren einen Seitenstil mit dem
+Namen \Parameter{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
+muss und die Expansion zu einer Reihe von Buchstaben führen sollte. Einige
+andere Zeichen werden zwar toleriert, ihre Verwendung wird jedoch nicht
+empfohlen.
+
+Die \PName{Optionenliste} ist eine mit Komma separierte Liste von
+\texttt{\PName{Schlüssel}=\PName{Wert}}-Optionen. Diese Optionen können
+verwendet werden, um zusätzliche Eigenschaften zu setzen und zusätzliche
+Möglichkeiten zu nutzen. Derzeit werden sie verwendet, um Code an bestimmten
+Stellen der Aktivierung oder Verwendung eines Seitenstils über 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.
+
+\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{\KOption{onselect}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens wird immer dann ausgeführt, wenn der
+ Seitenstil beispielsweise mit \Macro{pagestyle} ausgewählt wird. Es ist zu
+ beachten, dass \Macro{thispagestyle} selbst keinen Seitenstil unmittelbar
+ auswählt, sondern der Seitenstil in diesem Fall erst innerhalb der
+ Ausgaberoutine von \LaTeX{} aktiviert wird.%
+ }%
+ \entry{\KOption{oninit}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{ononeside}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{ontwoside}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{onoddpage}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{onevenpage}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{onfloatpage}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{onnonfloatpage}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{onbackground}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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{\KOption{onforeground}\PName{Code}}{%
+ Der \PName{Code} dieses Hakens 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}
+
+Der Unterschied zwischen \Macro{DeclarePageStyleByLayers} und
+\Macro{DeclareNewPageStyleByLayers} besteht darin, dass
+\Macro{DeclareNewPageStyleByLayers} eine Fehlermeldung erzeugt, falls bereits
+ein Seitenstil des Namens \PName{Seitenstil-Name}
+existiert. Beachten\textnote{Achtung!} Sie, dass die Deklaration eines
+Seitenstils, der bereits ein Alias für einen anderen Seitenstil ist (siehe
+\Macro{DeclareAliasPageStyle} zuvor in diesem Abschnitt) nicht zu der
+Umdefinierung des angegebenen Alias-Seitenstils, sondern des realen
+Seitenstils (siehe \Macro{GetRealPageStyle} zuvor in diesem Abschnitt) führt.
+
+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} oder
+\Macro{DeclareNewPageStyleByLayers} neu 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.
+
+Beachten Sie auch die nachfolgenden Anmerkungen zum Pseudo-Seitenstil
+\Pagestyle{@everystyle@}.%
+\EndIndex{Cmd}{RedeclarePageStyleByLayers}%
+\EndIndex{Cmd}{ProvidePageStyleByLayers}%
+\EndIndex{Cmd}{DeclareNewPageStyleByLayers}%
+\EndIndex{Cmd}{DeclarePageStyleByLayers}%
+
+
+\begin{Declaration}
+ \Pagestyle{@everystyle@}\\
+ \Pagestyle{empty}
+\end{Declaration}
+\BeginIndex{Pagestyle}{@everysel@}%
+\BeginIndex{Pagestyle}{empty}%
+Das Paket \Package{scrlayer} definiert von sich aus bereits zwei in gewisser
+Weise spezielle Seitenstile. Der erste davon ist
+\Pagestyle{@everystyle@}. Dieser Seitenstil sollte niemals als normaler
+Seitenstil beispielsweise mit \Macro{pagestyle} oder \Macro{thispagestyle}
+oder als Ziel eines Alias-Seitenstils verwendet werden. Stattdessen werden die
+Ebenen und 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
+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,
+beispielsweise \Macro{ForEachLayerOfPageStyle},
+\Macro{AddLayersToPageStyleBeforeLayer} oder
+\Macro{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}. Normalerweise
+wird bereits vom \LaTeX-Kern ein Seitenstil dieses Namens definiert. Dieser
+Seitenstil hat einen leeren Kopf und Fuß. Das Paket \Package{scrlayer}
+definiert diesen Seitenstil als Ebenen-Seitenstil ohne Ebenen
+um. Nichtsdestotrotz kann er wie jeder andere Ebenen-Seitenstil verwendet
+werden. Der Hauptvorteil dieses Ebenen-Seitenstils gegenüber dem
+ursprünglichen Seitenstil aus dem \LaTeX-Kern ist, dass er ebenfalls die Haken
+und Ebenen des Pseudo-Seitenstils \Pagestyle{@everystyle@} ausführt.%
+\EndIndex{Pagestyle}{empty}%
+\EndIndex{Pagestyle}{@everysel@}%
+
+
+\begin{Declaration}
+ \KOption{onpsselect}\PValue{Code}\\
+ \KOption{onpsinit}\PValue{Code}\\
+ \KOption{onpsoneside}\PValue{Code}\\
+ \KOption{onpstwoside}\PValue{Code}\\
+ \KOption{onpsoddpage}\PValue{Code}\\
+ \KOption{onpsevenpage}\PValue{Code}\\
+ \KOption{onpsfloatpage}\PValue{Code}\\
+ \KOption{onpsnonfloatpage}\PValue{Code}\\
+ \KOption{onpsbackground}\PValue{Code}\\
+ \KOption{onpsforeground}\PValue{Code}
+\end{Declaration}
+\BeginIndex{Option}{onpsselect~=\PName{Code}}%
+\BeginIndex{Option}{onpsinit~=\PName{Code}}%
+\BeginIndex{Option}{onpsoneside~=\PName{Code}}%
+\BeginIndex{Option}{onpstwoside~=\PName{Code}}%
+\BeginIndex{Option}{onpsoddpage~=\PName{Code}}%
+\BeginIndex{Option}{onpsevenpage~=\PName{Code}}%
+\BeginIndex{Option}{onpsfloatpage~=\PName{Code}}%
+\BeginIndex{Option}{onpsnonfloatpage~=\PName{Code}}%
+\BeginIndex{Option}{onpsbackground~=\PName{Code}}%
+\BeginIndex{Option}{onpsforeground~=\PName{Code}}%
+Für jeden der Haken aus \autoref{tab:scrlayer.pagestyle.hooks} existiert
+außerdem eine \KOMAScript-Option. 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. 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
+\Macro{ModifyLayerPageStyleOptions}, die später in diesem Abschnitt erklärt
+wird, entfernt werden.%
+\EndIndex{Option}{onpsforeground~=\PName{Code}}%
+\EndIndex{Option}{onpsbackground~=\PName{Code}}%
+\EndIndex{Option}{onpsnonfloatpage~=\PName{Code}}%
+\EndIndex{Option}{onpsfloatpage~=\PName{Code}}%
+\EndIndex{Option}{onpsevenpage~=\PName{Code}}%
+\EndIndex{Option}{onpsoddpage~=\PName{Code}}%
+\EndIndex{Option}{onpstwoside~=\PName{Code}}%
+\EndIndex{Option}{onpsoneside~=\PName{Code}}%
+\EndIndex{Option}{onpsinit~=\PName{Code}}%
+\EndIndex{Option}{onpsselect~=\PName{Code}}%
+
+\begin{Declaration}
+ \KOption{deactivatepagestylelayers}\PName{Ein-Aus-Wert}\\
+ \Macro{ForEachLayerOfPageStyle}\Parameter{Seitenstil-Name}%
+ \Parameter{Code}
+\end{Declaration}
+\BeginIndex{Option}{deactivatepagestylelayers~=\PName{Ein-Aus-Wert}}%
+\BeginIndex{Cmd}{ForEachLayerOfPageStyle}%
+Solange die \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} an Stelle von \Macro{def} ist im Beispiel
+notwendig, 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.
+
+Diverse Anweisungen von \Package{scrlayer} setzen ebenfalls
+\Macro{ForEachLayerOfPageStyle} ein. Auch deren Funktion kann daher über die
+\KOMAScript-Option \Option{deactivatepagestylelayers} verändert werden. Diese
+Option kann daher verwendet werden, um alle Ebenen aller Seitenstile temporär
+zu deaktivieren oder zu verstecken.
+%
+\EndIndex{Cmd}{ForEachLayerOfPageStyle}%
+\EndIndex{Option}{deactivatepagestylelayers~=\PName{Ein-Aus-Wert}}%
+
+\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{Cmd}{AddLayersToPageStyle}%
+\BeginIndex{Cmd}{AddLayersAtBeginOfPageStyle}%
+\BeginIndex{Cmd}{AddLayersAtEndOfPageStyle}%
+\BeginIndex{Cmd}{RemoveLayersFromPageStyle}%
+Diese Anweisungen können verwendet werden, um Ebenen zu einem Seitenstil
+hinzuzufügen oder davon zu entfernen. Der Seitenstil wird dabei über seinen
+\PName{Seitenstil-Name} referenziert. Die Ebenen werden in einer durch Komma
+separierten \PName{Ebenenliste} angegeben.
+
+Die Anweisungen \Macro{AddLayersToPageStyle} und
+\Macro{AddLayersAtEndOfPageStyle} fügen 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} 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.
+
+Der Versuch, mit Hilfe von \Macro{RemoveLayersFromPageStyle} 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.%
+\EndIndex{Cmd}{RemoveLayersFromPageStyle}%
+\EndIndex{Cmd}{AddLayersAtEndOfPageStyle}%
+\EndIndex{Cmd}{AddLayersAtBeginOfPageStyle}%
+\EndIndex{Cmd}{AddLayersToPageStyle}%
+
+\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{Cmd}{AddLayersToPageStyleBeforeLayer}%
+\BeginIndex{Cmd}{AddLayersToPageStyleAfterLayer}%
+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. Die Ebenen der \PName{Ebenenliste} werden dann vor
+respektive nach jedem Auf"|treten der Referenzebene in die Ebenen des
+Seitenstils 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.%
+\EndIndex{Cmd}{AddLayersToPageStyleAfterLayer}%
+\EndIndex{Cmd}{AddLayersToPageStyleBeforeLayer}%
+
+\begin{Declaration}
+ \Macro{UnifyLayersAtPageStyle}\Parameter{Seitenstil-Name}
+\end{Declaration}
+\BeginIndex{Cmd}{UnifyLayersAtPageStyle}%
+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. \Macro{UnifyLayersAtPageStyle} ist in einem
+solchen Fall also nicht geeignet.%
+\EndIndex{Cmd}{UnifyLayersAtPageStyle}%
+
+\begin{Declaration}
+ \Macro{ModifyLayerPageStyleOptions}%
+ \Parameter{Seitenstil-Name}\Parameter{Optionenliste}\\
+ \Macro{AddToLayerPageStyleOptions}%
+ \Parameter{Seitenstil-Name}\Parameter{Optionenliste}%
+\end{Declaration}
+\BeginIndex{Cmd}{ModifyLayerPageStyleOptions}%
+\BeginIndex{Cmd}{AddToLayerPageStyleOptions}%
+Mit diesen beiden Anweisungen können die Optionen und damit die Haken eines
+Ebenen-Seitenstils nachträglich verändert werden. Bei
+\Macro{ModifyLayerPageStyleOptions} 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 beziehungsweise
+Haken, die nicht in der \PName{Optionenliste} angegeben sind, bleiben hingegen
+unverändert. Diese Anweisung ist damit auch die einzige Möglichkeit, die
+globalen Voreinstellungen der \KOMAScript-Optionen von einem Seitenstil zu
+entfernen.
+
+Die Anweisung \Macro{AddToLayerPageStyleOptions} unterscheidet sich insofern,
+als die neuen Werte die bisher vorhandenen Werte nicht überschreiben, sondern
+diesen hinzugefügt oder -- genauer gesagt -- an diese angehängt werden.%
+\EndIndex{Cmd}{AddToLayerPageStyleOptions}%
+\EndIndex{Cmd}{ModifyLayerPageStyleOptions}%
+
+\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{Cmd}{IfLayerPageStyleExists}%
+\BeginIndex{Cmd}{IfRealLayerPageStyleExists}%
+Mit diesen 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.
+
+Die Anweisung \Macro{IfRealLayerPageStyleExists} geht einen Schritt weiter und
+führt den \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.%
+\EndIndex{Cmd}{IfRealLayerPageStyleExists}%
+\EndIndex{Cmd}{IfLayerPageStyleExists}%
+
+\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{Cmd}{IfLayerAtPageStyle}%
+\BeginIndex{Cmd}{IfSomeLayersAtPageStyle}%
+\BeginIndex{Cmd}{IfLayersAtPageStyle}%
+Mit diesen Anweisungen kann überprüft werden ob ein oder mehrere Ebenen
+Bestandteil eines Seitenstils sind. Anweisung \Macro{IfLayerAtPageStyle}
+erwartet dabei nach dem \PName{Seitenstil-Name} im ersten Argument im zweiten
+Argument genau einen \PName{Ebenen-Name}. Ist die entsprechende Ebene
+Bestandteil des Seitenstils, so wird der \PName{Dann-Code} ausgeführt,
+anderenfalls der \PName{Sonst-Code}.
+
+Die Anweisungen \Macro{IfSomeLayersAtPageStyle} und
+\Macro{IfLayersAtPageStyle} erlauben hingegen im zweiten Argument eine durch
+Komma separierte \PName{Ebenenliste}. Dabei führt
+\Macro{IfSomeLayersAtPageStyle} den \PName{Dann-Code} bereits aus, wenn
+\emph{mindestens eine} der Ebenen Bestandteil des Seitenstils ist. Dagegen
+führt \Macro{IfLayersAtPageStyle} den \PName{Dann-Code} nur aus, wenn
+\emph{alle} Ebenen Bestandteil des Seitenstils sind. Ist die Bedingung nicht
+erfüllt, so 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.%
+\EndIndex{Cmd}{IfLayersAtPageStyle}%
+\EndIndex{Cmd}{IfSomeLayersAtPageStyle}%
+\EndIndex{Cmd}{IfLayerAtPageStyle}%
+
+\begin{Declaration}
+ \Macro{DestroyRealLayerPageStyle}\Parameter{Ebenen-Seitenstil-Name}
+\end{Declaration}
+\BeginIndex{Cmd}{DestroyRealLayerPageStyle}%
+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-Seitentstil -- 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.
+
+Falls \PName{Ebenen-Seitenstil-Name} der Name des aktuellen Seitenstils ist, so
+wird der aktuelle Seitenstil auf eine Art leerer Seitenstil gesetzt. Falls der
+Spezial-Seitenstil, der durch \Macro{thispagestyle} gesetzt wurde, auf
+\PName{Ebenen-Seitenstil-Name} lautet, so wird dieser einfach nur
+zurückgesetzt. Die vorherige Anweisung \Macro{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}[belowskip=\dp\strutbox]
+ \ForEachLayerOfPageStyle{...}{\DestroyLayer{#1}}
+\end{lstcode}
+vor der Vernichtung des Seitenstils selbst erreichen.
+
+Die Anweisung ist dazu gedacht innerhalb der automatischen Entfernung einer
+Endanwender-Schnittstelle verwendet zu werden. Siehe
+\autoref{sec:scrlayer.enduserinterfaces} für weitere Informationen zu diesem
+Thema.%
+\EndIndex{Cmd}{DestroyRealLayerPageStyle}%
+
+\LoadCommon{20} % \section{Höhe von Kopf und Fuß}
+
+\LoadCommon{21} % \section{Beeinflussung der Inhalte von Seitenstilen}
+
+\section{Definition und Verwaltung von Schnittstellen für Endanwender}
+\label{sec:scrlayer.enduserinterfaces}
+
+Das Paket \Package{scrlayer} stellt eine Benutzerschnittstelle zur Verfügung
+um (konkurrierende) Schnittstellen für Endanwender definieren und verwalten zu
+können. Möglicherweise wird diese Schnittstelle langfristig wieder aus
+\Package{scrlayer} verschwinden und dann stattdessen von \Package{scrbase}
+übernommen werden. Derzeit ist diese Schnittstelle aber noch hoch
+experimentell und wird daher von eigenen Befehlen innerhalb von
+\Package{scrlayer} nur für Unterpakete von \Package{scrlayer} bereit
+gestellt. Es empfiehlt sich derzeit 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 es
+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}
+\BeginIndex{Cmd}{scrlayerInitInterface}%
+Mit dieser Anweisung wird eine neue Schnittstelle mit dem Namen
+\PName{Schnittstellen-Name} registriert. Das Argument
+\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 -- weg gelassen, 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.%
+\EndIndex{Cmd}{scrlayerInitInterface}%
+
+\begin{Declaration}
+ \KOption{forceoverwrite}\PName{Ein-Aus-Wert}\\
+ \KOption{autoremoveinterfaces}\PName{Ein-Aus-Wert}\\
+ \Macro{scrlayerAddToInterface}%
+ \OParameter{Schnittstellen-Name}\Parameter{Befehl}\Parameter{Code}\\
+ \Macro{scrlayerAddCsToInterface}%
+ \OParameter{Schnittstellen-Name}\Parameter{Befehlssequenz}\Parameter{Code}
+\end{Declaration}
+\BeginIndex{Option}{forceoverwrite}%
+\BeginIndex{Option}{autoremoveinterfaces}%
+\BeginIndex{Cmd}{scrlayerAddToInterface}%
+\BeginIndex{Cmd}{scrlayerAddCsToInterface}%
+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
+\Macro{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 \texttt{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}\PName{Befehl} definiert werden.
+
+Wann aber kann ein \PName{Befehl} 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 die \KOMAScript-Option
+\Option{autoremoveinterface} 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{autoremoveinterface} 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.}.%
+%
+\EndIndex{Cmd}{scrlayerAddCsToInterface}%
+\EndIndex{Cmd}{scrlayerAddToInterface}%
+\EndIndex{Option}{autoremoveinterfaces}%
+\EndIndex{Option}{forceoverwrite}%
+
+\begin{Declaration}
+ \Macro{scrlayerOnAutoRemoveInterface}%^^A
+ \OParameter{Schnittstellen-Name}\Parameter{Code}
+\end{Declaration}
+\BeginIndex{Cmd}{scrlayerOnAutoRemoveInterface}%
+Für den Fall, dass die Endanwender-Schnittstelle namens
+\PName{Schnittstellen-Name} automatisch entfernt wird (siehe
+\KOMAScript-Option \Option{autoremoveinterface} 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 \Macro{DestroyLayer}, \Macro{DestroyAliasPageStyle}, and
+\Macro{DestroyRealLayerPageStyle}), die auf Befehlen der
+Endanwender-Schnittstelle beruhen. Bezüglich des optionalen Arguments
+\PName{Schnittstellen-Name} sei auf die Erklärung zu
+\Macro{scrlayerInitInterface} verwiesen.%
+\EndIndex{Cmd}{scrlayerOnAutoRemoveInterface}%
+%
+\EndIndex{Package}{scrlayer}%
+
+%%% Local Variables:
+%%% mode: latex
+%%% mode: flyspell
+%%% coding: iso-latin-1
+%%% ispell-local-dictionary: "de_DE"
+%%% TeX-master: "../guide"
+%%% End: