% ====================================================================== % scrlayer-scrpage-experts.tex % Copyright (c) Markus Kohm, 2013-2014 % % 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-2014 % % 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: 2014-01-31 13:18:11 +0100 (Fri, 31 Jan 2014) $ 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 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. \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 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 \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}. {\setlength{\emergencystretch}{1em}% Neben den achtzehn vorgenannten sind auch die drei nachfolgend dokumentierten Anweisungen \Macro{clearmainofpairofpagestyles}, \Macro{clearplainofpairofpagestyles} und \Macro{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 \Macro{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.% \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 \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.% \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 nachfolgenden Abschnitts zu nutzen. \begin{Declaration} \Macro{deftriplepagestyle}% \Parameter{Name des Seitenstils}\\ \hphantom{\XMacro{deftriplepagestyle}}% \OParameter{Dicke der äußeren Linie}\\ \hphantom{\XMacro{deftriplepagestyle}}% \OParameter{Dicke der inneren Linie}\\ \hphantom{\XMacro{deftriplepagestyle}}% \Parameter{inneres Kopfelement}\\ \hphantom{\XMacro{deftriplepagestyle}}% \Parameter{mittleres Kopfelement}\\ \hphantom{\XMacro{deftriplepagestyle}}% \Parameter{äußeres Kopfelement}\\ \hphantom{\XMacro{deftriplepagestyle}}% \Parameter{inneres Fußelement}\\ \hphantom{\XMacro{deftriplepagestyle}}% \Parameter{mittleres Fußelement}\\ \hphantom{\XMacro{deftriplepagestyle}}% \Parameter{äußeres Fußelement}\\ \Macro{newtriplepagestyle}% \Parameter{Name des Seitenstils}\\ \hphantom{\XMacro{newtriplepagestyle}}% \OParameter{Dicke der äußeren Linien}\\ \hphantom{\XMacro{newtriplepagestyle}}% \OParameter{Dicke der inneren Linien}\\ \hphantom{\XMacro{newtriplepagestyle}}% \Parameter{inneres Kopfelement}\\ \hphantom{\XMacro{newtriplepagestyle}}% \Parameter{mittleres Kopfelement}\\ \hphantom{\XMacro{newtriplepagestyle}}% \Parameter{äußeres Kopfelement}\\ \hphantom{\XMacro{newtriplepagestyle}}% \Parameter{inneres Fußelement}\\ \hphantom{\XMacro{newtriplepagestyle}}% \Parameter{mittleres Fußelement}\\ \hphantom{\XMacro{newtriplepagestyle}}% \Parameter{äußeres Fußelement}\\ \Macro{renewtriplepagestyle}% \Parameter{Name des Seitenstils}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \OParameter{Dicke der äußeren Linie}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \OParameter{Dicke der inneren Linie}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \Parameter{inneres Kopfelement}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \Parameter{mittleres Kopfelement}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \Parameter{äußeres Kopfelement}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \Parameter{inneres Fußelement}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \Parameter{mittleres Fußelement}\\ \hphantom{\XMacro{renewtriplepagestyle}}% \Parameter{äußeres Fußelement}\\ \Macro{providetriplepagestyle}% \Parameter{Name des Seitenstils}\\ \hphantom{\XMacro{providetriplepagestyle}}% \OParameter{Dicke der äußeren Linie}\\ \hphantom{\XMacro{providetriplepagestyle}}% \OParameter{Dicke der inneren Linie}\\ \hphantom{\XMacro{providetriplepagestyle}}% \Parameter{inneres Kopfelement}\\ \hphantom{\XMacro{providetriplepagestyle}}% \Parameter{mittleres Kopfelement}\\ \hphantom{\XMacro{providetriplepagestyle}}% \Parameter{äußeres Kopfelement}\\ \hphantom{\XMacro{providetriplepagestyle}}% \Parameter{inneres Fußelement}\\ \hphantom{\XMacro{providetriplepagestyle}}% \Parameter{mittleres Fußelement}\\ \hphantom{\XMacro{providetriplepagestyle}}% \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 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.% \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 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]{\Option{headtopline}\\ \Option{headsepline}\\ \Option{footsepline}\\ \Option{footbotline}} diesem Fall richten sich die Längen und Dicken je nach Linie nach den Angaben der Optionen \Option{headtopline}\IndexOption{headtopline}, \Option{headsepline}\IndexOption{headsepline}, \Option{footsepline}\IndexOption{footsepline} und \Option{footbotline}\IndexOption{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. Alle vier Anweisungen basieren auf \Macro{DeclareLayerPageStyle}\IndexCmd{DeclareLayerPageStyle} 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} & 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} & 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 \Macro{layerwidth}\IndexCmd{layerwidth}\important[i]{\Macro{layerwidth}\\ \Macro{layerheight}} und \Macro{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 \Macro{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.% \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: % LocalWords: Hintergrundebene Seitenkopf