% ======================================================================
% scrlayer-scrpage-experts.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-scrpage-experts.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.
% ======================================================================
%
% 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: 2013-12-17 14:46:13 +0100 (Di, 17. Dez 2013) $
                  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}
%
\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 sie existieren nur aus Gründen der Kompatibilität zu
\Package{scrpage2}, so dass die meisten Anwender sie nicht wissen
müssen. All diese Dinge werden daher in hier in \autoref{part:forExperts}
dokumentiert.

\LoadCommon[scrlayerscrpageexperts]{21}% \section{Beeinflussung von definierten Seitenstilen}

\section{Definition eigener Seitenstil-Paare}
\label{sec:scrlayer-scrpage-experts.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}
\BeginIndex{Cmd}{defpairofpagestyles}%
\BeginIndex{Cmd}{newpairofpagestyles}%
\BeginIndex{Cmd}{renewpairofpagestyles}%
\BeginIndex{Cmd}{providepairofpagestyles}%
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 ist, dass sich die in jenem Abschnitt erläuterten Anweisungen nur
auf \Pagestyle{scrheadings} und \Pagestyle{plain.scrheadings} beziehen, gilt
das tatsächlich nur, solange diese das einzige Seitenstil-Paar
darstellen. Sobald es mehrere Seitenstil-Paare gibt, beziehen sich diese
Anweisungen auf das zuletzt aktive Seitenstil-Paar. Dies gilt für
\Macro{lehead}, \Macro{cehead}, \Macro{rehead}, \Macro{lohead},
\Macro{cohead}, \Macro{rohead}, \Macro{lefoot}, \Macro{cefoot},
\Macro{refoot}, \Macro{lofoot}, \Macro{cofoot}, \Macro{rofoot}, \Macro{ihead},
\Macro{chead}, \Macro{ohead}, \Macro{ifoot}, \Macro{cfoot}, \Macro{ofoot} aus
\autoref{sec:scrlayer-scrpage.predefined.pagestyles}. 

Genau jene Anweisung, sowie die nachfolgend dokumentierten Anweisungen
\Macro{clearmainofpairofpagestyles}, \Macro{clearplainofpairofpagestyles} und
\Macro{clearpairofpagestyles} sind auch 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 \Macro{pagestyle}\IndexCmd{pagestyle}.

Es sei darauf hingewiesen, dass die Anweisungen aus
\autoref{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 Paar unabhängig davon, ob entsprechende
Seitenstile bereits existieren, definiert, geschieht die Definition bei
\Macro{newpairofpagestyles} und \Macro{providepairofpagestyles} 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, während sie bei
\Macro{newpairofpagestyles} einen Fehler ergeben. 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.%
\EndIndex{Cmd}{providepairofpagestyles}%
\EndIndex{Cmd}{renewpairofpagestyles}%
\EndIndex{Cmd}{newpairofpagestyles}%
\EndIndex{Cmd}{defpairofpagestyles}%

\begin{Declaration}
  \Macro{clearmainofpairofpagestyles}\\
  \Macro{clearplainofpairofpagestyles}\\
  \Macro{clearpairofpagestyles}
\end{Declaration}
\BeginIndex{Cmd}{clearmainofpairofpagestyles}%
\BeginIndex{Cmd}{clearplainofpairofpagestyles}%
\BeginIndex{Cmd}{clearpairofpagestyles}%
Mit der Anweisung \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 selbst ebenfalls innerhalb von \PName{Definition}
verwendet werden. Sie können aber auch jederzeit außerhalb der Definition
eines Seitenstils verwendet werden. In diesem Fall beziehen sie sich auf das
zuletzt aktivierte Seitenstil-Paar.

\BeginIndex{Cmd}{clearscrheadings}%
\BeginIndex{Cmd}{clearscrplain}%
\BeginIndex{Cmd}{clearscrheadfoot}%
Die 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.%
\EndIndex{Cmd}{clearscrheadfoot}%
\EndIndex{Cmd}{clearscrplain}%
\EndIndex{Cmd}{clearscrheadings}%
%
\EndIndex{Cmd}{clearpairofpagestyles}%
\EndIndex{Cmd}{clearplainofpairofpagestyles}%
\EndIndex{Cmd}{clearmainofpairofpagestyles}%


\section{Definition einfacher Seitenstile mit dreigeteiltem Kopf und Fuß}
\label{sec:scrlayer-scrpage-experts.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 nachfolgende Abschnitts zu nutzen.

\begin{Declaration}
  \Macro{deftriplepagestyle}%
  \Parameter{Name des Seitenstils}\\
  \hphantom{\XMacro{deftriplepagestyle}}%
  \OParameter{Dicke der äußeren Linie}%
  \OParameter{Dicke der inneren Linie}\\
  \hphantom{\XMacro{deftriplepagestyle}}%
  \Parameter{inneres Kopfelement}%
  \Parameter{mittleres Kopfelement}%
  \Parameter{äußeres Kopfelement}\\
  \hphantom{\XMacro{deftriplepagestyle}}%
  \Parameter{inneres Fußelement}%
  \Parameter{mittleres Fußelement}%
  \Parameter{äußeres Fußelement}\\
  \Macro{newtriplepagestyle}%
  \Parameter{Name des Seitenstils}\\
  \hphantom{\XMacro{newtriplepagestyle}}%
  \OParameter{Dicke der äußeren Linien}%
  \OParameter{Dicke der inneren Linien}\\
  \hphantom{\XMacro{newtriplepagestyle}}%
  \Parameter{inneres Kopfelement}%
  \Parameter{mittleres Kopfelement}%
  \Parameter{äußeres Kopfelement}\\
  \hphantom{\XMacro{newtriplepagestyle}}%
  \Parameter{inneres Fußelement}%
  \Parameter{mittleres Fußelement}%
  \Parameter{äußeres Fußelement}\\
  \Macro{renewtriplepagestyle}%
  \Parameter{Name des Seitenstils}\\
  \hphantom{\XMacro{renewtriplepagestyle}}%
  \OParameter{Dicke der äußeren Linie}%
  \OParameter{Dicke der inneren Linie}\\
  \hphantom{\XMacro{renewtriplepagestyle}}%
  \Parameter{inneres Kopfelement}%
  \Parameter{mittleres Kopfelement}%
  \Parameter{äußeres Kopfelement}\\
  \hphantom{\XMacro{renewtriplepagestyle}}%
  \Parameter{inneres Fußelement}%
  \Parameter{mittleres Fußelement}%
  \Parameter{äußeres Fußelement}\\
  \Macro{providetriplepagestyle}%
  \Parameter{Name des Seitenstils}\\
  \hphantom{\XMacro{providetriplepagestyle}}%
  \OParameter{Dicke der äußeren Linie}%
  \OParameter{Dicke der inneren Linie}\\
  \hphantom{\XMacro{providetriplepagestyle}}%
  \Parameter{inneres Kopfelement}%
  \Parameter{mittleres Kopfelement}%
  \Parameter{äußeres Kopfelement}\\
  \hphantom{\XMacro{providetriplepagestyle}}%
  \Parameter{inneres Fußelement}%
  \Parameter{mittleres Fußelement}%
  \Parameter{äußeres Fußelement}
\end{Declaration}
\BeginIndex{Cmd}{deftriplepagestyle}%
\BeginIndex{Cmd}{newtriplepagestyle}%
\BeginIndex{Cmd}{renewtriplepagestyle}%
\BeginIndex{Cmd}{providetriplepagestyle}%
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 \Option{headwidth} (siehe
\autoref{sec:scrlayer-scrpage.pagestyle.content},
\autopageref{desc:scrlayer-scrpage.option.headwidth}) erklärt wurden, erlaubt.

Die Bedeutung der einzelnen Argumente ist in
\autoref{fig:scrlayer-scrpage.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.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 hingegen
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 bei \Package{scrpage2} vorhandene 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.%
\EndIndex{Cmd}{deftripstyle}%
\EndIndex{Cmd}{providetriplepagestyle}%
\EndIndex{Cmd}{renewtriplepagestyle}%
\EndIndex{Cmd}{newtriplepagestyle}%
\EndIndex{Cmd}{deftriplepagestyle}%


\section{Definition komplexer Seitenstile}
\label{sec:scrlayer-scrpage-experts.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}
\BeginIndex{Cmd}{defpagestyle}%
\BeginIndex{Cmd}{newpagestyle}%
\BeginIndex{Cmd}{providepagestyle}%
\BeginIndex{Cmd}{renewpagestyle}%
Diese Anweisungen dienen der Definition eines einzelnen Seitenstils mit
maximaler Flexibilität. Dabei \PName{Name} der Name des Seitenstils, der
definiert werden soll.

Die beiden Parameter \PName{Kopfdefinition} und \PName{Fußdefinition} haben
den identischen Aufbau:
\begin{quote}\raggedright
  \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{quote}
Dabei sind die Argumente in den runden Klammern optional, das heißt, sie
können zusammen mit den Klammern weggelassen werden. In diesem Fall richtigen
sich die Längen und Dicken je nach Linie nach den Angaben der Option
\Option{headtopline}, \Option{headsepline}, \Option{footsepline} oder
\Option{footbotline} (siehe \autoref{sec:scrlayer-scrpage.pagestyle.content},
\autopageref{desc: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
\Macro{headmark}, \Macro{leftmark} oder \Macro{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.

Intern basiert diese Anweisung auf der Anweisung \Macro{DeclareLayerPageStyle}
des Pakets \Package{scrlayer}. Dabei werden für einen Seitenstil \PName{Name}
die Ebenen \PName{Name}\PValue{.head.above.line} für die Linie über dem Kopf,
\PName{Name}\PValue{.head.odd} für den Kopf von rechten Seiten im
doppelseitigen Layout, \PName{Name}\PValue{.head.even} für den Kopf von linken
Seiten im doppelseitigen Layout, \PName{Name}\PValue{.head.oneside} für den
Kopf von Seiten im einseitigen Layout, \PName{Name}\PValue{.head.below} für
die Linie unter dem Kopf, \PName{Name}\PValue{.foot.above.line} für die Linie
über dem Fuß, \PName{Name}\PValue{.foot.odd} für den Fuß von rechten Seiten im
doppelseitigen Layout, \PName{Name}\PValue{.foot.even} für den Fuß von linken
Seiten im doppelseitigen Layout, \PName{Name}\PValue{.foot.oneside} für den
Fuß von Seiten im einseitigen Layout und \PName{Name}\PValue{.foot.below} für
die Linie unter dem Fuß definiert. Näheres zu Ebenen und Ebenen-Seitenstilen
ist \autoref{cha:scrlayer} ab \autopageref{cha:scrlayer} in
\autoref{part:forExperts} zu entnehmen.%
%
\begin{Example}
  Angenommen, Sie wollen den gesamten Kopf des Seitenstil
  \Pagestyle{scrheadings} mit einer Farbe hinterlegen. Da Sie die
  Einleitung zu diesem Kapitel gelesen haben, wissen Sie, dass
  \Pagestyle{scrheadings} letztlich ein Ebenen-Seitenstil ist, der unter
  anderem aus den Ebenen \PValue{scrheadings.head.even},
  \PValue{scrheadings.head.odd} und \PValue{scrheadings.head.oneside}
  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} 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
  \Macro{layerwidth} und \Macro{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 \Macro{chead} lösen
können. Es wird empfohlen, eine entsprechende Lösung als Übung zu
erarbeiten. Ebenso hätte man die Hintergrundebenen auch einzeln und jeweils
unmittelbar vor der entsprechenden Inhaltsebene einfügen können. Auch dies
sei als Übung empfohlen.%
\EndIndex{Cmd}{renewpagestyle}%
\EndIndex{Cmd}{providepagestyle}%
\EndIndex{Cmd}{newpagestyle}%
\EndIndex{Cmd}{defpagestyle}%

\begin{Declaration}
  \KOption{hmode}\PValue{Ein-Aus-Wert}
\end{Declaration}
\BeginIndex{Option}{hmode}%
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.%
\EndIndex{Option}{hmode}%
%
\EndIndex{Package}{scrlayer-scrpage}%

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