% ======================================================================
% scrlayer-scrpage-experts.tex
% Copyright (c) Markus Kohm, 2013-2017
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX 
% version 2005/12/01 or later and of this work.
%
% This work has the LPPL maintenance status "author-maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrlayer-scrpage-experts.tex
% Copyright (c) Markus Kohm, 2013-2017
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
%   http://www.latex-project.org/lppl.txt
% und Version 1.3c ist Teil aller Verteilungen von LaTeX
% Version 2005/12/01 oder spaeter und dieses Werks.
%
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
% (allein durch den Autor verwaltet).
%
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
% 
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
%
% Expert chapter about scrlayer-scrpage of the KOMA-Script guide
%
% ----------------------------------------------------------------------
%
% Expertenkapitel über scrlayer-scrpage in der KOMA-Script-Anleitung
%
% ============================================================================

\KOMAProvidesFile{scrlayer-scrpage-experts.tex}%
                 [$Date: 2017-01-02 13:30:07 +0100 (Mon, 02 Jan 2017) $
                  KOMA-Script guide (chapter: scrlayer-scrpage for experts)]

\chapter[{Zusätzliche Möglichkeiten von \Package{scrlayer-scrpage}}]
{Zusätzliche Möglichkeiten des
  Pakets\ChangedAt{v3.12}{\Package{scrlayer-scrpage}}
  \Package{scrlayer-scrpage}}
\labelbase{scrlayer-scrpage-experts}
%
\BeginIndexGroup
\BeginIndex{Package}{scrlayer-scrpage}%
Über die Erklärungen in \autoref{cha:scrlayer-scrpage} von
\autoref{part:forAuthors} diese\iffree{r Anleitung}{s Buches} hinaus bietet
das Paket \Package{scrlayer-scrpage} viele weitere Möglichkeiten. Diese
stellen jedoch entweder Erweiterungen dar, die der durchschnittliche Anwender
nicht zwingend benötigt oder die nur aus Gründen der Kompatibilität zu
\Package{scrpage2} existieren, so dass die meisten Anwender sie nicht zu
wissen brauchen. All diese Dinge werden daher hier in
\autoref{part:forExperts} dokumentiert.

\LoadCommonFile{pagestylemanipulation}% \section{Beeinflussung von definierten Seitenstilen}

\section{Definition eigener Seitenstil-Paare}
\seclabel{pagestyle.pairs}

In \autoref{sec:scrlayer-scrpage.predefined.pagestyles} wurden die beiden
Seitenstile \PageStyle{scrheadings} und \PageStyle{plain.scrheadings}
vorgestellt. Diese bilden quasi ein Paar, bei dem \PageStyle{scrheadings} als
Haupt-Seitenstil mit Kolumnentitel vorgesehen ist, während
\PageStyle{plain.scrheadings} ein dazu passender \PageStyle{plain}-Seitenstil
ohne Kolumnentitel aber üblicherweise mit Paginierung, also mit Seitenzahl
ist. Neben der Konfiguration dieses vordefinierten Paars bietet
\Package{scrlayer-scrpage} auch die Möglichkeit, zusätzliche Paare zu
definieren. Der Name des Haupt-Seitenstils \PageStyle{scrheadings} dient dabei
quasi auch als Name des Seitenstil-Paars.

Die allermeisten Anwender werden in der Regel mit dem einen vordefinierten
Seitenstil-Paar \PageStyle{scrheadings} auskommen. Die in diesem Abschnitt
dokumentierten Anweisungen sind daher eher Ergänzungen für besondere Fälle. Da
mir während des Abfassens dieser Anleitung keine handlichen
Anwendungsbeispiele eingefallen sind, gibt es auch keine ausführlichen
Beispiele. Sollte mir im Support einmal eine besonders schöne Anwendung
begegnen, werde ich solche aber in zukünftigen Fassungen gerne aufgreifen. Ich
bin jedoch gleichzeitig sicher, dass sich all diese Fälle auch mit dem einen
Paar \PageStyle{scrheadings} lösen lassen.

\begin{Declaration}
  \Macro{defpairofpagestyles}\OParameter{Eltern-Paar}
                             \Parameter{Name}\Parameter{Definition}
  \Macro{newpairofpagestyles}\OParameter{Eltern-Paar}
                             \Parameter{Name}\Parameter{Definition}
  \Macro{renewpairofpagestyles}\OParameter{Eltern-Paar}
                               \Parameter{Name}\Parameter{Definition}
  \Macro{providepairofpagestyles}\OParameter{Eltern-Paar}
                                 \Parameter{Name}\Parameter{Definition}
\end{Declaration}
Mit diesen Anweisungen können Paare von Seitenstilen vergleichbar zu
\PageStyle{scrheadings} und \PageStyle{plain.scrheadings} definiert
werden. Dabei ist \PName{Name} der Name des zu \PageStyle{scrheadings}
vergleichbaren Hauptseitenstils, der für die Verwendung mit Kolumnentiteln
ausgelegt ist. Für den Namen des zugehörigen \PageStyle{plain}-Seitenstil wird
\PName{Name} automatisch \PValue{plain.} vorangestellt. \PName{Name} ist also
gleichzeitig der Name des Paares und des Hauptseitenstils dieses Paares, während
\PValue{plain.}\PName{Name} der Name des \PageStyle{plain}-Seitenstils dieses
Paares ist.

Ist das optionale Argument \PName{Eltern-Paar} angegeben, so ist dies der Name
eines Seitenstil-Paars, mit dessen Einstellungen das neue Paar initialisiert
werden soll. Das neue Paar erbt also quasi die Konfiguration des
\PName{Eltern-Paar}s.

Während in \autoref{sec:scrlayer-scrpage.predefined.pagestyles} der Eindruck
entstanden sein mag, dass sich die dort erläuterten Anweisungen nur auf
\PageStyle{scrheadings} und \PageStyle{plain.scrheadings} beziehen, gilt das
tatsächlich nur, solange diese beiden Seitenstile das einzige Seitenstil-Paar
darstellen. Sobald es mehrere Seitenstil-Paare gibt, beziehen sich die
Anweisungen auf das zuletzt aktive Paar. Dies gilt für
\DescRef{scrlayer-scrpage.cmd.lehead}, \DescRef{scrlayer-scrpage.cmd.cehead},
\DescRef{scrlayer-scrpage.cmd.rehead}, \DescRef{scrlayer-scrpage.cmd.lohead},
\DescRef{scrlayer-scrpage.cmd.cohead}, \DescRef{scrlayer-scrpage.cmd.rohead},
\DescRef{scrlayer-scrpage.cmd.lefoot}, \DescRef{scrlayer-scrpage.cmd.cefoot},
\DescRef{scrlayer-scrpage.cmd.refoot}, \DescRef{scrlayer-scrpage.cmd.lofoot},
\DescRef{scrlayer-scrpage.cmd.cofoot}, \DescRef{scrlayer-scrpage.cmd.rofoot},
\DescRef{scrlayer-scrpage.cmd.ihead}, \DescRef{scrlayer-scrpage.cmd.chead},
\DescRef{scrlayer-scrpage.cmd.ohead}, \DescRef{scrlayer-scrpage.cmd.ifoot},
\DescRef{scrlayer-scrpage.cmd.cfoot}, \DescRef{scrlayer-scrpage.cmd.ofoot} aus
\autoref{sec:scrlayer-scrpage.predefined.pagestyles}.

{\setlength{\emergencystretch}{1em}%
  Neben den achtzehn vorgenannten sind auch die drei nachfolgend
  dokumentierten Anweisungen
  \DescRef{scrlayer-scrpage-experts.cmd.clearmainofpairofpagestyles},
  \DescRef{scrlayer-scrpage-experts.cmd.clearplainofpairofpagestyles} und
  \DescRef{scrlayer-scrpage-experts.cmd.clearpairofpagestyles} für die
  Verwendung im letzten Parameter, \PName{Definition}, gedacht. In diesem Fall
  stellen sie eine Art Grundkonfiguration des Seitenstil-Paars dar, die immer
  dann ausgeführt wird, wenn das Seitenstil-Paar aktiviert wird. Ein
  Seitenstil-Paar wird aktiviert, indem einer der beiden Seitenstile des
  Paares aktiviert wird. Dies geschieht in der Regel mit Hilfe von
  \DescRef{maincls.cmd.pagestyle}\IndexCmd{pagestyle}.\par}

Es sei darauf hingewiesen, dass die Anweisungen aus
\autoref{sec:scrlayer-scrpage.pagestyle.content} ab
\autopageref{sec:scrlayer-scrpage.pagestyle.content} ohnehin allgemeiner Natur
sind und für alle mit \PageStyle{scrlayer-scrpage} definierten Seitenstile
gelten.

Während \Macro{defpairofpagestyles} das Seitenstil-Paar unabhängig davon, ob
entsprechende Seitenstile bereits existieren, definiert, tun
\Macro{newpairofpagestyles} und \Macro{providepairofpagestyles} dies
nur, wenn die Seitenstile noch nicht definiert sind. Ist mindestens einer der
beiden Seitenstile des Paares bereits definiert, so wird die neuerliche
Definition bei \Macro{providepairofpagestyles} ignoriert, wohingegen sie bei
\Macro{newpairofpagestyles} zu einem Fehler führt. Für die Umdefinierung
bereits existierender Paare kann \Macro{renewpairofpagestyles} verwendet
werden. Hier wird ein Fehler gemeldet, wenn einer der beiden Seitenstile oder
beide Seitenstile des Paares noch nicht existieren.%
\EndIndexGroup


\begin{Declaration}
  \Macro{clearmainofpairofpagestyles}
  \Macro{clearplainofpairofpagestyles}
  \Macro{clearpairofpagestyles}
\end{Declaration}
Mit \Macro{clearmainofpairofpagestyles} wird der Hauptseitenstil
des zuletzt aktivierten Seitenstil-Paares leer konfiguriert. Dagegen wird mit
der Anweisung \Macro{clearplainofpairofpagestyles} der
\PageStyle{plain}-Seitenstil des entsprechenden Seitenstil-Paares leer
konfiguriert. Anweisung \Macro{clearpairofpagestyles} konfiguriert schließlich
beide Seitenstile des entsprechenden Paares als leer.

Es ist jedoch zu beachten\textnote{Achtung!}, dass keine dieser Anweisungen
die Definitionen aus dem Parameter \PName{Definition}, der bei der Definition
des Seitenstil-Paares angegeben wurde (siehe oben), entfernt. Bei der erneuten
Auswahl eines Seitenstils des Paares werden jene Einstellungen also erneut
ausgeführt!

Die Anweisungen können ebenfalls innerhalb von \PName{Definition} bei der
zuvor erklärten Definition eines Seitenstil-Paares verwendet werden. Sie
können aber auch jederzeit außerhalb der Definition eines Seitenstil-Paares
verwendet werden. In diesem Fall beziehen sie sich auf das zuletzt aktivierte
Paar.

\BeginIndex{Cmd}{clearscrheadings}%
\BeginIndex{Cmd}{clearscrplain}%
\BeginIndex{Cmd}{clearscrheadfoot}%
Die drei Anweisungen \Macro{clearscrheadings}, \Macro{clearscrplain} und
\Macro{clearscrheadfoot} sind Aliase für diese Anweisungen, die nur aus
Gründen der Kompatibilität mit \Package{scrpage2} existieren. Sie sollten
nicht mehr verwendet werden.%
\EndIndexGroup


\section{Definition einfacher Seitenstile mit dreigeteiltem Kopf und Fuß}
\seclabel{pagestyle.triple}

Neben den vordefinierten Seitenstilen und der Definition eigener
Seitenstil-Paare bietet \Package{scrlayer-scrpage} auch noch die Möglichkeit
der Definition von Seitenstilen, bei denen sowohl der Kopf als auch der Fuß fest
in drei Elemente aufgeteilt ist. Diese Schnittstelle existiert jedoch nur aus
Gründen der Kompatibilität mit \Package{scrpage2}. Zum
Zwecke eines konsistenteren Befehlssatzes wurde sie sogar noch
erweitert. Dennoch wird empfohlen, für neue Dokumente nicht mehr auf diese
Möglichkeit zurück zu greifen, sondern die deutlich überlegenen Möglichkeiten
der vorherigen Abschnitte oder des nachfolgenden Abschnitts zu nutzen.

\begin{Declaration}
  \Macro{deftriplepagestyle}\Parameter{Name des Seitenstils}
                            \OParameter{Dicke der äußeren Linie}
                            \OParameter{Dicke der inneren Linie}
                            \Parameter{inneres Kopfelement}
                            \Parameter{mittleres Kopfelement}
                            \Parameter{äußeres Kopfelement}
                            \Parameter{inneres Fußelement}
                            \Parameter{mittleres Fußelement}
                            \Parameter{äußeres Fußelement}
  \Macro{newtriplepagestyle}\Parameter{Name des Seitenstils}
                            \OParameter{Dicke der äußeren Linien}
                            \OParameter{Dicke der inneren Linien}
                            \Parameter{inneres Kopfelement}
                            \Parameter{mittleres Kopfelement}
                            \Parameter{äußeres Kopfelement}
                            \Parameter{inneres Fußelement}
                            \Parameter{mittleres Fußelement}
                            \Parameter{äußeres Fußelement}
  \Macro{renewtriplepagestyle}\Parameter{Name des Seitenstils}
                              \OParameter{Dicke der äußeren Linie}
                              \OParameter{Dicke der inneren Linie}
                              \Parameter{inneres Kopfelement}
                              \Parameter{mittleres Kopfelement}
                              \Parameter{äußeres Kopfelement}
                              \Parameter{inneres Fußelement}
                              \Parameter{mittleres Fußelement}
                              \Parameter{äußeres Fußelement}
  \Macro{providetriplepagestyle}\Parameter{Name des Seitenstils}
                                \OParameter{Dicke der äußeren Linie}
                                \OParameter{Dicke der inneren Linie}
                                \Parameter{inneres Kopfelement}
                                \Parameter{mittleres Kopfelement}
                                \Parameter{äußeres Kopfelement}
                                \Parameter{inneres Fußelement}
                                \Parameter{mittleres Fußelement}
                                \Parameter{äußeres Fußelement}
\end{Declaration}
Mit diesen Anweisungen kann ein einzelner Seitenstil definiert werden, bei dem
Kopf und Fuß in drei Elemente aufgeteilt sind: ein inneres Element, ein
mittleres Element und ein äußeres Element. Diese werden über jeweils drei
obligatorische Argumente angegeben.

Das jeweilige innere Element wird auf linken Seiten rechtsbündig im Kopf
respektive im Fuß platziert. Auf rechten Seiten wird es hingegen linksbündig
platziert. Entsprechend wird das mittlere Element sowohl auf linken als auch
auf rechten Seiten im Kopf respektive Fuß zentriert. Das äußere Element wird
schließlich auf linken Seiten linksbündig und auf rechten Seiten rechtsbündig
im Kopf respektive Fuß platziert.

An\textnote{Achtung!} dieser Stelle sei noch einmal daran erinnert, dass im
einseitigen Satz nur rechte Seiten existieren!

Mit den beiden optionalen Argumenten können Linien in Kopf und Fuß aktiviert
werden. Dazu gibt man die gewünschte Dicke der Linien als Argument an. Das
erste optionale Argument betrifft die \PName{Dicke der äußeren Linien}. Diese
Linien werden über dem Kopf und unter dem Fuß gezeichnet. Das zweite optionale
Argument betrifft die \PName{Dicke der inneren Linien}. Diese beiden Linien
werden unterhalb des Kopfes und oberhalb des Fußes gezeichnet. Ist nur ein
optionales Argument angegeben, so ist dies die \PName{Dicke der inneren
  Linien}. Die \PName{Dicke der äußeren Linien} ist dann Null, womit nur noch
die beiden inneren Linien gezeichnet werden. Ist keines der optionalen
Argumente angegeben, so entfallen alle Linien.

Es ist zu beachten\textnote{Achtung!}, dass leere optionale Argumente nicht
gleichbedeutend mit dem Weglassen der optionalen Argumente sind! Leere
optionale Argumente sind in diesem Fall nicht erlaubt. Dagegen sind einfache
Längenausdrücke, wie sie bereits bei Option
\DescRef{scrlayer-scrpage.option.headwidth} (siehe
\autoref{sec:scrlayer-scrpage.pagestyle.content},
\DescPageRef{scrlayer-scrpage.option.headwidth}) erklärt wurden, erlaubt.

Die Bedeutung der einzelnen Argumente ist in
\autoref{fig:scrlayer-scrpage-experts.triplepagestyle} noch einmal an einer
schematischen Doppelseite veranschaulicht. Dabei dienen »\textsl{außen}«,
»\textsl{innen}«, »\textsl{mittig}« als beispielhafte Inhalte. Die zugehörigen
Pfeile verdeutlichen die Ausbreitung dieser Inhalte. Die \iffree{farbigen
}{}Texte im Inneren der Seite sind die Namen der Argumente der Befehle. Die
zugehörigen Pfeile \iffree{in gleicher Farbe }{}weisen auf die entsprechenden
Elemente der Seite.

\begin{figure}
  \centering
  \begin{picture}(\textwidth,80mm)
    \put(0,50mm){%
      %\
      \begin{picture}(\textwidth,30mm)(0,-10mm)
        \thinlines
        \small
        % linke Seite
        \put(0,20mm){\line(1,0){.49\textwidth}}%
        \put(0,0){\line(0,1){20mm}}%
        \multiput(0,0)(0,-1mm){10}{\line(0,-1){.5mm}}%
        \put(.49\textwidth,5mm){\line(0,1){15mm}}%
        \put(.05\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}%
        \put(.05\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape außen\strut$\longrightarrow$}}%
        \put(.465\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$innen\strut}}%
        \put(.2575\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}%
        \put(.05\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}%
        % rechte Seite
        \put(0.51\textwidth,20mm){\line(1,0){.49\textwidth}}%
        \put(0.51\textwidth,5mm){\line(0,1){15mm}}%
        \multiput(\textwidth,0)(0,-1mm){10}{\line(0,-1){.5mm}}%
        \put(\textwidth,0mm){\line(0,1){20mm}}%
        \put(.535\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}%
        \put(.535\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape innen\strut$\longrightarrow$}}%
        \put(.95\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$außen\strut}}%
        \put(.7425\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}%
        \put(.535\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}%
        % Befehle für beide Seiten
        \iffree{\color{red}}{}%
        \put(.5\textwidth,0){\makebox(0,\baselineskip)[c]{\PName{inneres Kopfelement}}}%
        \put(.5\textwidth,-5mm){\makebox(0,\baselineskip)[c]{\PName{mittleres Kopfelement}}}%
        \put(.5\textwidth,-10mm){\makebox(0,\baselineskip)[c]{\PName{äußeres Kopfelement}}}%
        \put(\dimexpr.5\textwidth-2em,.5\baselineskip){%
          \put(-1.5em,.5\baselineskip){\vector(0,1){7mm}}%
          \put(-4em,-1\baselineskip){\line(-1,0){\dimexpr .25\textwidth-7em\relax}}%
          \put(-\dimexpr
          .25\textwidth-3em\relax,-1\baselineskip){\vector(0,1){\dimexpr
              7mm+1.5\baselineskip\relax}}
          \put(-3.25em,-2.25\baselineskip){\line(-1,0){\dimexpr .45\textwidth-8em\relax}}%
          \put(-\dimexpr
          .45\textwidth-4.75em\relax,-2.25\baselineskip){\vector(0,1){\dimexpr
              7mm+2.75\baselineskip\relax}}
        }%
        \put(\dimexpr.5\textwidth+2em,.5\baselineskip){%
          \put(1.5em,.5\baselineskip){\vector(0,1){7mm}}%
          \put(4em,-1\baselineskip){\line(1,0){\dimexpr .25\textwidth-7em\relax}}
          \put(\dimexpr
          .25\textwidth-3em\relax,-1\baselineskip){\vector(0,1){\dimexpr
              7mm+1.5\baselineskip\relax}}
          \put(3.25em,-2.25\baselineskip){\line(1,0){\dimexpr .45\textwidth-8em\relax}}
          \put(\dimexpr
          .45\textwidth-4.75em\relax,-2.25\baselineskip){\vector(0,1){\dimexpr
              7mm+2.75\baselineskip\relax}}
        }%
      \end{picture}
      %
    }%
    \put(0,0){%
      \begin{picture}(\textwidth,30mm)
        \thinlines
        \small
        % linke Seite
        \put(0,0){\line(1,0){.49\textwidth}}%
        \put(0,0){\line(0,1){20mm}}%
        \multiput(0,20mm)(0,1mm){10}{\line(0,1){.5mm}}%
        \put(.49\textwidth,0){\line(0,1){15mm}}%
        \put(.05\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}%
        \put(.05\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape außen\strut$\longrightarrow$}}%
        \put(.465\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$innen\strut}}%
        \put(.2575\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}%
        \put(.05\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}%
        % rechte Seite
        \put(.51\textwidth,0){\line(1,0){.49\textwidth}}%
        \put(.51\textwidth,0){\line(0,1){15mm}}%
        \put(\textwidth,0){\line(0,1){20mm}}%
        \multiput(\textwidth,20mm)(0,1mm){10}{\line(0,1){.5mm}}%
        \put(.535\textwidth,15mm){\thicklines\line(1,0){.415\textwidth}}%
        \put(.535\textwidth,10mm){\makebox(0em,5mm)[l]{\slshape innen\strut$\longrightarrow$}}%
        \put(.95\textwidth,10mm){\makebox(0em,5mm)[r]{\slshape $\longleftarrow$außen\strut}}%
        \put(.7425\textwidth,10mm){\makebox(0em,5mm)[c]{\slshape $\longleftarrow$mittig\strut$\longrightarrow$}}%
        \put(.535\textwidth,10mm){\thicklines\line(1,0){.415\textwidth}}%
        % Befehle für beide Seiten
        \iffree{\color{red}}{}%
        \put(.5\textwidth,20mm){\makebox(0,\baselineskip)[c]{\PName{inneres Fußelement}}}%
        \put(.5\textwidth,25mm){\makebox(0,\baselineskip)[c]{\PName{mittleres Fußelement}}}%
        \put(.5\textwidth,30mm){\makebox(0,\baselineskip)[c]{\PName{äußeres Fußelement}}}%
        \put(\dimexpr.5\textwidth-2em,.5\baselineskip){%
          \put(-1.5em,\dimexpr 20mm-.5\baselineskip\relax){\vector(0,-1){6mm}}%
          \put(-3.5em,25mm){\line(-1,0){\dimexpr .25\textwidth-6.5em\relax}}%
          \put(-\dimexpr .25\textwidth-3em\relax,25mm){\vector(0,-1){\dimexpr
              .5\baselineskip + 11mm\relax}}%
          \put(-3em,30mm){\line(-1,0){\dimexpr .45\textwidth-7.5em\relax}}%
          \put(-\dimexpr .45\textwidth-4.5em\relax,30mm){\vector(0,-1){\dimexpr
              .5\baselineskip + 16mm\relax}}%
        }%
        \put(\dimexpr.5\textwidth+2em,.5\baselineskip){%
          \put(1.5em,\dimexpr 20mm-.5\baselineskip\relax){\vector(0,-1){6mm}}%
          \put(3.5em,25mm){\line(1,0){\dimexpr .25\textwidth-6.5em\relax}}%
          \put(\dimexpr .25\textwidth-3em\relax,25mm){\vector(0,-1){\dimexpr
              .5\baselineskip + 11mm\relax}}%
          \put(3em,30mm){\line(1,0){\dimexpr .45\textwidth-7.5em\relax}}%
          \put(\dimexpr .45\textwidth-4.5em\relax,30mm){\vector(0,-1){\dimexpr
              .5\baselineskip + 16mm\relax}}%
        }%
      \end{picture}
    }%
    \thinlines\small\iffree{\color{blue}}{}%
    \put(0.055\textwidth,45mm){\vector(0,1){25mm}}%
    \put(0.945\textwidth,45mm){\vector(0,1){25mm}}%
    \put(0.055\textwidth,45mm){\vector(0,-1){30mm}}%
    \put(0.945\textwidth,45mm){\vector(0,-1){30mm}}%
    \put(0.055\textwidth,45mm){\line(1,0){\dimexpr
        .445\textwidth-6.5em\relax}}%
    \put(0.945\textwidth,45mm){\line(-1,0){\dimexpr
        .445\textwidth-6.5em\relax}}%
    \put(0.5\textwidth,45mm){\makebox(0,0)[c]{\PName{Dicke der inneren
          Linien}}}%
    \iffree{\color{green}}{}%
    \put(0.025\textwidth,40mm){\line(0,1){35mm}}%
    \put(0.025\textwidth,75mm){\vector(1,0){3.75mm}}%
    \put(0.975\textwidth,40mm){\line(0,1){35mm}}%
    \put(0.975\textwidth,40mm){\line(0,1){35mm}}%
    \put(0.975\textwidth,75mm){\vector(-1,0){3.75mm}}%
    \put(0.025\textwidth,40mm){\line(0,-1){30mm}}%
    \put(0.025\textwidth,10mm){\vector(1,0){3.75mm}}%
    \put(0.975\textwidth,40mm){\line(0,-1){30mm}}%
    \put(0.975\textwidth,40mm){\line(0,-1){30mm}}%
    \put(0.975\textwidth,10mm){\vector(-1,0){3.75mm}}%
    \put(0.025\textwidth,40mm){\line(1,0){\dimexpr
        .475\textwidth-6.5em\relax}}%
    \put(0.975\textwidth,40mm){\line(-1,0){\dimexpr
        .475\textwidth-6.5em\relax}}%
    \put(0.5\textwidth,40mm){\makebox(0,0)[c]{\PName{Dicke der äußeren Linien}}}%
  \end{picture}
  \caption[{Elemente dreigeteilter Seitenstile}]{Elemente einer Doppelseite
    der dreigeteilten Seitenstile mit den Anweisungen
    \Macro{deftriplepagestyle}, \Macro{newtriplepagestyle},
    \Macro{providetriplepagestyle} und \Macro{renewtriplepagestyle}}
  \label{fig:scrlayer-scrpage-experts.triplepagestyle}
\end{figure}


Mit den hier dokumentierten Anweisungen ist es nicht möglich, einzelne Linien
zu aktivieren, beispielsweise nur eine Linie unter dem Seitenkopf, aber keine
Linie über dem Seitenfuß zu haben. Verwenden Sie dafür stattdessen die
Anweisungen aus einem der vorherigen oder aus dem nachfolgenden Abschnitt.

Die\textnote{Achtung!} Länge der einzelnen Elemente ist nicht durch das
Vorhandensein eines Nachbarelements beschränkt. Dadurch kann es bei
ungünstiger Verwendung passieren, dass ein Element eines oder beide
Nachbarelemente überschreibt. Der Anwender ist selbst für die Vermeidung
dieses ungünstigen Falles verantwortlich. Bei lebenden Kolumnentiteln ist dies
beispielsweise durch Verwendung des optionalen Arguments der
Gliederungsbefehle möglich. Siehe dazu die Anleitung zu den
Gliederungsbefehlen der jeweiligen Klasse.

Während \Macro{deftriplepagestyle} einen Seitenstil unabhängig davon, ob er
bereits früher definiert wurde, immer definiert, werden mit
\Macro{newtriplepagestyle} und \Macro{providetriplepagestyle} nur Seitenstile
definiert, die derzeit noch nicht definiert sind. Ist ein Seitenstil
bereits definiert, so erhält man mit \Macro{newtriplepagestyle} eine
Fehlermeldung, während \Macro{providetriplepagestyle} die neue Definition
einfach verwirft. Ein vorhandener Seitenstil kann auch mit
\Macro{renewtriplepagestyle} umdefiniert werden. Diese Anweisung meldet einen
Fehler, falls ein Seitenstil dieses Namens noch nicht definiert war.%

\BeginIndex{Cmd}{deftripstyle}%
Die vom Paket \Package{scrpage2} bekannte Anweisung \Macro{deftripstyle}
entspricht damit der neuen Anweisung \Macro{deftriplepagestyle}. Sie wurde aus
Gründen der Vereinheitlichung der Namen der Anweisungen jedoch umbenannt und
sollte nicht mehr verwendet werden. Wird sie dennoch verwendet, resultiert
daraus eine Warnung.%
\EndIndexGroup


\section{Definition komplexer Seitenstile}
\seclabel{pagestyle.experts}

Neben den vordefinierten Seitenstilen und der Definition eigener
Seitenstil-Paare, sowie der nicht mehr empfohlenen Möglichkeit der Definition
von Seitenstilen, bei denen sowohl der Kopf als auch der Fuß fest in drei
Elemente aufgeteilt ist, bietet \Package{scrlayer-scrpage} auch noch eine eher
grundlegende Möglichkeit der Definition von Seitenstilen. Die in den
vorherigen Abschnitten erläuterten Konzepte greifen bei der Implementierung
alle auf diese Möglichkeit zurück. Aufgrund ihrer Komplexität wird diese
Schnittstelle jedoch nur erfahrenen Anwendern empfohlen. Weniger erfahrene
Anwender können mit den vorgenannten Möglichkeiten bereits nahezu alles
erreichen, was auch mit dieser grundlegenden Schnittstelle möglich
ist. Weniger erfahrene Anwender dürfen den Rest dieses Kapitels daher gerne
überspringen.

\begin{Declaration}
  \Macro{defpagestyle}\Parameter{Name}
                      \Parameter{Kopfdefinition}
                      \Parameter{Fußdefinition}
  \Macro{newpagestyle}\Parameter{Name}
                      \Parameter{Kopfdefinition}
                      \Parameter{Fußdefinition}
  \Macro{providepagestyle}\Parameter{Name}
                          \Parameter{Kopfdefinition}
                          \Parameter{Fußdefinition}
  \Macro{renewpagestyle}\Parameter{Name}
                        \Parameter{Kopfdefinition}
                        \Parameter{Fußdefinition}
\end{Declaration}
Diese Anweisungen dienen der Definition eines einzelnen Seitenstils mit
maximaler Flexibilität. Dabei ist \PName{Name} der Name des Seitenstils, der
definiert werden soll.

Die beiden Parameter \PName{Kopfdefinition} und \PName{Fußdefinition} haben
den identischen Aufbau:
\begin{flushleft}
\begin{addmargin}{1em}\raggedright\small
  \texttt{(\PName{Länge der oberen Linie},\PName{Dicke der oberen Linie})\%\\
    \Parameter{Definition für linke Seiten im doppelseitigen Layout}\%\\
    \Parameter{Definition für rechte Seiten im doppelseitigen Layout}\%\\
    \Parameter{Definition für Seiten im einseitigen Layout}\%\\
    (\PName{Länge der unteren Linie},\PName{Dicke der unteren Linie})%
  }
\end{addmargin}
\end{flushleft}
Dabei sind die Argumente in den runden Klammern optional, das heißt, sie
können zusammen mit den Klammern weggelassen
werden. In\important[i]{\DescRef{scrlayer-scrpage.option.headtopline}\\
  \DescRef{scrlayer-scrpage.option.headsepline}\\
  \DescRef{scrlayer-scrpage.option.footsepline}\\
  \DescRef{scrlayer-scrpage.option.footbotline}} diesem Fall richten sich die
Längen und Dicken je nach Linie nach den Angaben der Optionen
\DescRef{scrlayer-scrpage.option.headtopline}\IndexOption{headtopline},
\DescRef{scrlayer-scrpage.option.headsepline}\IndexOption{headsepline},
\DescRef{scrlayer-scrpage.option.footsepline}\IndexOption{footsepline} und
\DescRef{scrlayer-scrpage.option.footbotline}\IndexOption{footbotline} (siehe
\autoref{sec:scrlayer-scrpage.pagestyle.content},
\DescPageRef{scrlayer-scrpage.option.headtopline}).

Die drei Argumente mit den Definitionen sind obligatorisch und werden je nach
Seite und Layouteinstellung verwendet. Der Inhalt der Definitionen ist frei
wählbar. Für Seitenstile mit Kolumnentitel wird jedoch die Verwendung von
\DescRef{scrlayer-scrpage.cmd.headmark},
\DescRef{scrlayer-scrpage.cmd.leftmark} oder
\DescRef{scrlayer-scrpage.cmd.rightmark} innerhalb der Definitionen
empfohlen. Keinesfalls sollte man hier direkt eine Gliederungsnummer oder
einen Überschriftentext als Kolumnentitel angeben. Aufgrund des asynchronen
Seitenaufbaus von \LaTeX{} kann sonst die falsche Nummer oder der falsche Text
im Seitenkopf erscheinen.

Bei \Macro{defpagestyle} wird der Seitenstil unabhängig davon, ob er bereits
existiert oder nicht, neu definiert. Demgegenüber meldet \Macro{newpagestyle}
einen Fehler, wenn bereits ein Seitenstil gleichen Namens existiert. Im
Unterschied dazu wird die Definition bei \Macro{providepagestyle} ignoriert,
falls der \PName{Name} bereits für einen Seitenstil verwendet wurde. Umgekehrt
kann mit \Macro{renewpagestyle} nur ein bereits vorhandener Seitenstil
umdefiniert werden. Für einen neuen Namen meldet diese Anweisung dagegen einen
Fehler.

Alle vier Anweisungen basieren auf
\DescRef{scrlayer.cmd.DeclarePageStyleByLayers}%
\IndexCmd{DeclarePageStyleByLayers} des Pakets \Package{scrlayer}. Die dabei
für einen Seitenstil \PName{Name} definierten Ebenen sind in
\autoref{tab:scrlayer-scrpage-experts.layersperstyle} aufgeführt.  Näheres zu
Ebenen und Ebenen-Seitenstilen ist \autoref{cha:scrlayer} ab
\autopageref{cha:scrlayer} in \autoref{part:forExperts} zu entnehmen.%

\begin{table}
%  \KOMAoptions{captions=topbeside}
%  \setcapindent{0pt}
%  \begin{captionbeside}
  \caption
    [{Von \Package{scrlayer-scrpage} zu einem Seitenstil definierte
      Ebenen}]
    {Die von \Package{scrlayer-scrpage} zu einem Seitenstil \PName{Name}
      definierten Ebenen\label{tab:scrlayer-scrpage-experts.layersperstyle}}
%    [l]
    \begin{tabular}{ll}
      \toprule
      Name der Ebene & Bedeutung der Ebene \\
      \midrule
      \PName{Name}\PValue{.head.above.line} & die Linie über dem Kopf\\
      \PName{Name}\PValue{.head.odd} & der Kopf von rechten Seiten im
      doppelseitigen Layout\\
      \PName{Name}\PValue{.head.even} & der Kopf von linken Seiten im
      doppelseitigen Layout\\
      \PName{Name}\PValue{.head.oneside} & der Kopf von Seiten im
      einseitigen Layout\\
      \PName{Name}\PValue{.head.below.line} & die Linie unter dem Kopf\\
      \PName{Name}\PValue{.foot.above.line} & die Linie über dem Fuß\\
      \PName{Name}\PValue{.foot.odd} & der Fuß von rechten Seiten im
      doppelseitigen Layout\\
      \PName{Name}\PValue{.foot.even} & der Fuß von linken Seiten im
      doppelseitigen Layout\\
      \PName{Name}\PValue{.foot.oneside} & der Fuß von Seiten im
      einseitigen Layout\\
      \PName{Name}\PValue{.foot.below.line} & die Linie unter dem Fuß\\
      \bottomrule
    \end{tabular}
%  \end{captionbeside}
\end{table}

\begin{Example}
  Angenommen, Sie wollen den gesamten Kopf des Seitenstil
  \PageStyle{scrheadings} mit einer Farbe hinterlegen. Aufgrund der Einleitung
  zu diesem Kapitel und \autoref{tab:scrlayer-scrpage-experts.layersperstyle},
  wissen Sie, dass \PageStyle{scrheadings} ein Ebenen-Seitenstil
  ist, der unter anderem aus den Ebenen \PValue{scrheadings.head.oneside},
  \PValue{scrheadings.head.odd} und \PValue{scrheadings.head.even}
  besteht. Sie definieren nun drei weitere Ebenen für deren Hintergrund und
  fügen diese am Anfang des Seitenstils ein:
\begin{lstcode}
 \documentclass{scrartcl}
  \usepackage[automark]{scrlayer-scrpage}
  \usepackage{xcolor}
  \usepackage{blindtext}
  \DeclareLayer[clone=scrheadings.head.oneside,
    contents={%
      \color{yellow}%
      \rule[-\dp\strutbox]%
           {\layerwidth}{\layerheight}%
    }%
  ]{scrheadings.head.oneside.background}
  \DeclareLayer[clone=scrheadings.head.odd,
    contents={%
      \color{yellow}%
      \rule[-\dp\strutbox]%
           {\layerwidth}{\layerheight}%
    }%
  ]{scrheadings.head.odd.background}
  \DeclareLayer[clone=scrheadings.head.even,
    contents={%
      \color{yellow}%
      \rule[-\dp\strutbox]%
           {\layerwidth}{\layerheight}%
    }%
  ]{scrheadings.head.even.background}
  \AddLayersAtBeginOfPageStyle{scrheadings}{%
    scrheadings.head.oneside.background,%
    scrheadings.head.odd.background,%
    scrheadings.head.even.background%
  }
  \pagestyle{scrheadings}
  \begin{document}
  \blinddocument
  \end{document}
\end{lstcode}
  Wie Sie sehen, wurden in dem Beispiel drei Ebenen verwendet, damit Position
  und Größe der Hintergrund-Ebenen per Option
  \Option{clone}\important{\Option{clone}} einfach jeweils von der Ebene für
  den Kopf kopiert werden konnten. Das ist einfacher, als nur eine
  Hintergrundebene zu verwenden und für diese die Position umständlich
  dynamisch zu bestimmen.

  Der farbige Hintergrund selbst wurde in diesem Beispiel mit einer
  \Macro{rule}-Anweisung gesetzt. Für die Größe wurde dabei mit
  \DescRef{scrlayer.cmd.layerwidth}\IndexCmd{layerwidth}%
  \important[i]{\DescRef{scrlayer.cmd.layerwidth}\\
    \DescRef{scrlayer.cmd.layerheight}} und
  \DescRef{scrlayer.cmd.layerheight}\IndexCmd{layerheight} die aktuelle Breite
  und Höhe der Ebene verwendet. Diese wurde per optionalem Argument um die
  Höhe der Unterlängen \Macro{dp}\Macro{strutbox} nach unten verschoben.
\end{Example}
%
Statt wie im Beispiel für die Hintergrundfarbe neue Ebenen hinzuzufügen, hätte
man das Problem übrigens auch mit \Macro{colorbox} und
\DescRef{scrlayer-scrpage.cmd.chead} lösen können. Es wird empfohlen, eine
entsprechende Lösung als Übung zu erarbeiten. Ebenso
\iffree{}{\pagebreak}% Umbruchkorrektur
hätte man die Hintergrundebenen auch einzeln und jeweils unmittelbar vor der
entsprechenden Inhaltsebene einfügen können. Auch dies sei als Übung
empfohlen.%
\EndIndexGroup


\begin{Declaration}
  \OptionVName{hmode}{Ein-Aus-Wert}
\end{Declaration}
Bei \Package{scrpage2} wurden die Köpfe und Füße der Seitenstile noch
grundsätzlich im horizontalen Modus ausgegeben. Bei \Package{scrlayer-scrpage}
wird hingegen in der Voreinstellung erst durch entsprechende Ausgaben selbst
in den horizontalen Modus geschaltet. Aktiviert man jedoch Option
\Option{hmode} verhält sich \Package{scrlayer-scrpage} auch in dieser Hinsicht
kompatibel mit \Package{scrpage2} und schaltet bereits vor der Ausgabe in den
horizontalen Modus. Dies kann Auswirkungen sowohl auf die Verarbeitung von
Leerzeichen am Anfang der Ausgabe als auch auf die vertikale Ausrichtung
haben.

Die Option versteht die Standardwerte für einfache Schalter, die in
\autoref{tab:truefalseswitch} auf \autopageref{tab:truefalseswitch} angegeben
sind. In der Voreinstellung ist der Schalter deaktiviert.%
\EndIndexGroup
%
\EndIndexGroup

%%% Local Variables:
%%% mode: latex
%%% mode: flyspell
%%% coding: iso-latin-1
%%% ispell-local-dictionary: "de_DE"
%%% TeX-master: "../guide"
%%% End: 


%  LocalWords:  Hintergrundebene Seitenkopf Seitenstils Kopfelement
%  LocalWords:  Seitenstile
