diff options
author | Karl Berry <karl@freefriends.org> | 2014-12-06 23:18:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-12-06 23:18:10 +0000 |
commit | 4832d732052d6e2b43b5e3ff45aa31bfbc0cbdc2 (patch) | |
tree | 968a3b4cdf4631c0272fc725330ea28a554c8471 /Master/texmf-dist/source/latex/koma-script/doc/scrpage2.tex | |
parent | 59d9a998c6236de39603cb2ea077c5371e06b842 (diff) |
koma-script (6dec14)
git-svn-id: svn://tug.org/texlive/trunk@35754 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/scrpage2.tex')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/doc/scrpage2.tex | 3006 |
1 files changed, 3006 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/scrpage2.tex b/Master/texmf-dist/source/latex/koma-script/doc/scrpage2.tex new file mode 100644 index 00000000000..f6f57e0c497 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/doc/scrpage2.tex @@ -0,0 +1,3006 @@ +% ====================================================================== +% scrpage2.tex +% Copyright (c) Markus Kohm, 2001-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. +% ---------------------------------------------------------------------- +% scrpage2.tex +% Copyright (c) Markus Kohm, 2001-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. +% ====================================================================== +% +% Chapter about scrpage2 +% Maintained by Markus Kohm +% +% ---------------------------------------------------------------------- +% +% Kapitel über scrpage2 +% Verwaltet von Markus Kohm +% +% ============================================================================ + +\begin{filecontents*}{\jobname-ngerman.tex} +\input{ngerman/guide-ngerman.tex} +\end{filecontents*} + +\begin{filecontents*}{\jobname-english.tex} +\input{english/guide-english.tex} +\end{filecontents*} + +\documentclass[ngerman,english]{scrguide} + +\makeatletter +\renewcommand*{\@pnumwidth}{2em} +\makeatother + +\KOMAProvidesFile{scrpage2.tex}% + [$Date: 2013-07-22 $ + a user guide to obsolete package scrpage2] + +\begin{document} + +\addparttocentry{}{English} +\def\theHchapter{E.\thechapter} +\setcounter{chapter}{0} +\renewcommand*{\thepage}{E.\arabic{page}} +\title{The Obsolete Package \Package{scrpage2}} +\subtitle{Extract from former versions of the \KOMAScript{} Manual} +\author{Markus Kohm\and Jens-Uwe-Morakswi} +\date{2014-06-25} +\maketitle + +\tableofcontents + +\translator{Jens-Uwe Morawski\and Karl-Heinz Zimmer\and Christoph Bier\and + Gernot Hassenpflug\and Markus Kohm} + +\chapter{Adapting Page Headers and Footers with \Package{scrpage2}} +\labelbase{scrpage-en} + +% +\BeginIndex{Package}{scrpage2}% +From \KOMAScript{} 3.12 the completely newly implemented package +\Package{scrlayer-scrpage} replaces the old \Package{scrpage2}. The new +package is a consequently developed extension of the design of +\Package{scrpage2}. In difference to \Package{scrpage2} it provides the +extended option interface of the \KOMAScript{} classes. Because +\Package{scrlayer-scrpage} predominates \Package{scrpage2} it is recommended +to not longer use \Package{scrpage2} but \Package{scrlayer-scrpage}. Because +of this the current version of \Package{scrpage2} is the final one. All +development resources will go into \Package{scrlayer-scrpage}. For more +information about \Package{scrlayer-scrpage} see the \KOMAScript{} manual. + +\begin{Explain} + In place of \Package{scrpage2} or \Package{scrlayer-scrpage} you can of + course make use of \Package{fancyhdr}. However, \Package{scrpage2} and + especially \Package{scrlayer-scrpage} integrated markedly better with the + {\KOMAScript} bundle. For this reason, and because at the time the + forerunner to \Package{fancyhdr} was missing many features, + \Package{scrpage2} was developed. Naturally, \Package{scrpage2} and + \Package{scrlayer-scrpage} are not limited to use only with the + {\KOMAScript} classes, but can just as easily be used with other document + classes. +\end{Explain} + + +\section{Basic Functionality}\label{sec:scrpage-en.basics} + +\begin{Explain}% Introduction to headings + To understand the following description, an overview of {\LaTeX}'s fairly + involved header and footer mechanism is needed. The {\LaTeX} kernel defines + the page styles \Pagestyle{empty}, which produces a completely empty header + and footer, and \Pagestyle{plain}, which produces usually only a page number + in the footer and an empty header. Apart from these, many document classes + provide the style \Pagestyle{headings}, which allows more complex style + settings and running + headings\Index{headings>running}\Index{headings>automatic}. The + \Pagestyle{headings} style often has a related variant, + \Pagestyle{myheadings}, which is similar except for switching off the + running headings\Index{headings>manual} and reverting them to manual control + by the user. A more detailed description is given in the page style section + of the \KOMAScript{} manual where it is also noted that some {\LaTeX} + commands automatically switch to another page style\,---\,usually page style + \Pagestyle{plain}\,---\,for the current page. +\end{Explain} + + +Package \Package{scrpage2} does not distinguish between page styles with +automatic, running headings and page styles with manual headings. The way to +deal with automatic and manual headings is independent from the page style and +so the page style is independent from the choice of automatic or manual +headings. More information about this in \autoref{sec:scrpage-en.basics.mark}. + + +\subsection{Predefined Page Styles}\label{sec:scrpage-en.basics.buildIn} + +One of the basic features of \Package{scrpage2} is a set of predefined, +configurable page styles. + +% \lehead ... +% scrheadings +% \headmark \pagemark + +\begin{Declaration} + \Pagestyle{scrheadings}\\ + \Pagestyle{scrplain} +\end{Declaration}% +\BeginIndex{Pagestyle}{scrheadings}% +\BeginIndex{Pagestyle}{scrplain}% +\Index{page>style}% +% +Package \Package{scrpage2} delivers its own page style, named +\Pagestyle{scrheadings}, which can be activated with the +\Macro{pagestyle}\PParameter{scrheadings}. When this page style is in use, an +appropriate \Pagestyle{scrplain} page style is used for the plain page style. +In this case \emph{appropriate} means that this new plain page style is also +configureable by the commands introduced in +\autoref{sec:scrpage-en.basics.format}, which, for example, configure the header +and footer width and complies within the basic layout. Neither the activation +of \Pagestyle{scrheadings} nor the attendant change to the appropriate plain +page style, \Pagestyle{scrplain}, influences the mode of manual or automatic +headings\Index{headings>automatic}\Index{headings>manual} (see +\autoref{sec:scrpage-en.basics.mark}). The \Pagestyle{scrplain} page style can +also be activated directly with \Macro{pagestyle}. + +\begin{Declaration} + \Macro{lehead}% + \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}\\ + \Macro{cehead}% + \OParameter{scrplain-center-even}\Parameter{scrheadings-center-even}\\ + \Macro{rehead}% + \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}\\ + \Macro{lefoot}% + \OParameter{scrplain-left-even}\Parameter{scrheadings-left-even}\\ + \Macro{cefoot}% + \OParameter{scrplain-center-even}\Parameter{scrheadings-center-even}\\ + \Macro{refoot}% + \OParameter{scrplain-right-even}\Parameter{scrheadings-right-even}\\ + \Macro{lohead}% + \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}\\ + \Macro{cohead}% + \OParameter{scrplain-center-odd}\Parameter{scrheadings-center-odd}\\ + \Macro{rohead}% + \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}\\ + \Macro{lofoot}% + \OParameter{scrplain-left-odd}\Parameter{scrheadings-left-odd}\\ + \Macro{cofoot}% + \OParameter{scrplain-center-odd}\Parameter{scrheadings-center-odd}\\ + \Macro{rofoot}% + \OParameter{scrplain-right-odd}\Parameter{scrheadings-right-odd}\\ + \Macro{ihead}% + \OParameter{scrplain-inside}\Parameter{scrheadings-inside}\\ + \Macro{chead}% + \OParameter{scrplain-centered}\Parameter{scrheadings-centered}\\ + \Macro{ohead}% + \OParameter{scrplain-outside}\Parameter{scrheadings-outside}\\ + \Macro{ifoot}% + \OParameter{scrplain-inside}\Parameter{scrheadings-inside}\\ + \Macro{cfoot}% + \OParameter{scrplain-centered}\Parameter{scrheadings-centered}\\ + \Macro{ofoot}% + \OParameter{scrplain-outside}\Parameter{scrheadings-outside} +\end{Declaration}% +\BeginIndex{Cmd}{lehead}% +\BeginIndex{Cmd}{cehead}% +\BeginIndex{Cmd}{rehead}% +\BeginIndex{Cmd}{ihead}% +\BeginIndex{Cmd}{chead}% +\BeginIndex{Cmd}{ohead}% +\BeginIndex{Cmd}{lohead}% +\BeginIndex{Cmd}{cohead}% +\BeginIndex{Cmd}{rohead}% +\BeginIndex{Cmd}{lefoot}% +\BeginIndex{Cmd}{cefoot}% +\BeginIndex{Cmd}{refoot}% +\BeginIndex{Cmd}{ifoot}% +\BeginIndex{Cmd}{cfoot}% +\BeginIndex{Cmd}{rfoot}% +\BeginIndex{Cmd}{lofoot}% +\BeginIndex{Cmd}{cofoot}% +\BeginIndex{Cmd}{rofoot}% +The page style of \Package{scrpage2} are defined to have flexible configurable +header and footer. To achieve this, the page styles include three boxes in +both the header and the footer. The contents of these boxes may be modified +easily. The commands modifying the content of these boxes can be seen in +\autoref{fig:scrpage-en.leheadetall}. Commands in the middle column modify the +box contents on both odd and even pages. All of the commands have an optional +and a mandatory argument. The option Argument influences the content of +corresponding box of the plain page style, \Pagestyle{scrplain}. The mandatory +argument influences the content of the corresponding box of the page style +\Pagestyle{scrheadings}. + +\begin{figure} +% \centering + \setcapindent{0pt}% + \begin{captionbeside} + [Commands for modification of \Package{scrpage2} page styles elements]% + {Commands for modification of page styles \Pagestyle{scrheadings} and + \Pagestyle{scrplain} and their relationship to header and footer + elements} + [l] + \setlength{\unitlength}{.95mm}\begin{picture}(100,65)(0,8)\small + \put(0,12){\dashbox{2}(40,56){even page}} + \put(60,12){\dashbox{2}(40,56){odd page}} + % items top left + \put(1,63){\framebox(8,4){~}} + \put(16,63){\framebox(8,4){~}} + \put(31,63){\framebox(8,4){~}} + % items top right + \put(61,63){\framebox(8,4){~}} + \put(76,63){\framebox(8,4){~}} + \put(91,63){\framebox(8,4){~}} + % items bottom left + \put(1,13){\framebox(8,4){~}} + \put(16,13){\framebox(8,4){~}} + \put(31,13){\framebox(8,4){~}} + % items bottom right + \put(61,13){\framebox(8,4){~}} + \put(76,13){\framebox(8,4){~}} + \put(91,13){\framebox(8,4){~}} + % commands and arrow + % for twoside + % + \put(50,65){\makebox(0,0){\Macro{ihead}}} + \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}} + \put(50,58){\makebox(0,0){\Macro{chead}}} + \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}} + \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}} + \put(50,51){\makebox(0,0){\Macro{ohead}}} + \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}} + \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}} + % + \put(50,15){\makebox(0,0){\Macro{ifoot}}} + \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}} + \put(50,22){\makebox(0,0){\Macro{cfoot}}} + \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}} + \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}} + \put(50,29){\makebox(0,0){\Macro{ofoot}}} + \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}} + \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}} + % commands for oneside + \put(5,69){\makebox(0,0)[b]{\Macro{lehead}}} + \put(20,69){\makebox(0,0)[b]{\Macro{cehead}}} + \put(35,69){\makebox(0,0)[b]{\Macro{rehead}}} + % + \put(65,69){\makebox(0,0)[b]{\Macro{lohead}}} + \put(80,69){\makebox(0,0)[b]{\Macro{cohead}}} + \put(95,69){\makebox(0,0)[b]{\Macro{rohead}}} + % + \put(5,11){\makebox(0,0)[t]{\Macro{lefoot}}} + \put(20,11){\makebox(0,0)[t]{\Macro{cefoot}}} + \put(35,11){\makebox(0,0)[t]{\Macro{refoot}}} + % + \put(65,11){\makebox(0,0)[t]{\Macro{lofoot}}} + \put(80,11){\makebox(0,0)[t]{\Macro{cofoot}}} + \put(95,11){\makebox(0,0)[t]{\Macro{rofoot}}} + \end{picture} + \end{captionbeside} +% \caption[Commands for modification of \Package{scrpage2} page styles +% elements]% +% {Commands for modification of page styles \Pagestyle{scrheadings} and +% \Pagestyle{scrplain} and their relationship to header and footer +% elements} + \label{fig:scrpage-en.leheadetall} +\end{figure} + +\begin{Example} + If one wants the page number within \Pagestyle{scrheadings} be placed in the + middle of the footer, then following can be used: +\begin{lstcode} + \cfoot{\pagemark} +\end{lstcode} + The next example shows how to place both running heading and page + number\Index{page>number}\Index{pagination} in the header; the running + heading\Index{headings} inside and the page number outside: +\begin{lstcode} + \ohead{\pagemark} + \ihead{\headmark} + \cfoot{} +\end{lstcode} + The command \Macro{cfoot}\PParameter{} is only required in order to + empty the item in the middle of the footer, which normally contains + the page number. +\end{Example} + +The commands which are associated with only one item can be used for +more advanced settings. + +\begin{Example} + Assuming one has the order to write an annual report of a company, one could + use commands like this: +\begin{lstcode} + \ohead{\pagemark} + \rehead{Annual Report 2001} + \lohead{\headmark} + \cefoot{TheCompanyName Inc.} + \cofoot{Department: Development} +\end{lstcode} + In order to keep the data in the footer synchronized with the content + of the document, the footer has to be updated using \Macro{cofoot} + when a new department is discussed in the report. +\end{Example} + +As mentioned above, there is a new plain page style which corresponds to +\Pagestyle{scrheadings}. Since it should also be possible to customize this +style, the commands support an optional argument with which the contents of +the appropriate fields of this plain page style can be modified. + +\begin{Example} + The position of the page number for the page style \Pagestyle{scrheadings} + can be declared as follows: +\begin{lstcode} + \cfoot[\pagemark]{} + \ohead[]{\pagemark} +\end{lstcode} + When the command \Macro{chapter}, after it has started a new page, now + switches to the page style \Pagestyle{plain}, then the page number is + centered in the footer. +\end{Example} +% +\EndIndex{Pagestyle}{scrheadings}% +\EndIndex{Pagestyle}{scrplain}% + + +\begin{Declaration} + \Macro{clearscrheadings}\\ + \Macro{clearscrplain}\\ + \Macro{clearscrheadfoot} +\end{Declaration}% +\BeginIndex{Cmd}{clearscrheadings}% +\BeginIndex{Cmd}{clearscrplain}% +\BeginIndex{Cmd}{clearscrheadfoot}% +If one wants to redefine both the page style \Pagestyle{scrheadings} and +the corresponding plain page style, frequently one must empty +some already occupied page elements. Since one rarely fills all items +with new content, in most cases several instructions with empty +parameters are necessary. With the help of these three instructions +the quick and thorough deletion is possible. While +\Macro{clearscrheadings} only deletes all fields of the page style +\Pagestyle{scrheadings}, and \Macro{clearscrplain} deletes all fields of +the corresponding plain page style, \Macro{clearscrheadfoot} +sets all fields of both page styles to empty. +\begin{Example} + If one wants to reset the page style to the default {\KOMAScript} + settings, independent of the actual configuration, only these three + commands are sufficient: +\begin{lstcode} + \clearscrheadfoot + \ohead{\headmark} + \ofoot[\pagemark]{\pagemark} +\end{lstcode} + Without the commands \Macro{clearscrheadfoot}, + \Macro{clearscrheadings} and \Macro{clearscrplain}, six commands with + additional nine empty arguments would be required: +\begin{lstcode} + \ihead[]{} + \chead[]{} + \ohead[]{\headmark} + \ifoot[]{} + \cfoot[]{} + \ofoot[\pagemark]{\pagemark} +\end{lstcode} + Of course, for a specific configuration, some of them could be + dropped.% +\end{Example}% +% +\EndIndex{Cmd}{clearscrheadings}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadfoot}% +% +\EndIndex{Cmd}{lehead}\EndIndex{Cmd}{cehead}\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{ihead}\EndIndex{Cmd}{chead}\EndIndex{Cmd}{ohead}% +\EndIndex{Cmd}{lohead}\EndIndex{Cmd}{cohead}\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{lefoot}\EndIndex{Cmd}{cefoot}\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{ifoot}\EndIndex{Cmd}{cfoot}\EndIndex{Cmd}{rfoot}% +\EndIndex{Cmd}{lofoot}\EndIndex{Cmd}{cofoot}\EndIndex{Cmd}{rofoot}% + +In the previous examples two commands were used which have not been +introduced yet. The description of these commands follows. + +\begin{Declaration} + \Macro{leftmark}\\ + \Macro{rightmark} +\end{Declaration}% +\BeginIndex{Cmd}{leftmark}% +\BeginIndex{Cmd}{rightmark}% +These two instructions make it possible to access the running headings, which +are normally meant for the left or for the right page. These two instruction +are not made available by \Package{scrpage2}, but directly by the {\LaTeX} +kernel. When in this section running headings of the left page or the right +page are mentioned, this refers to the contents of \Macro{leftmark} or +\Macro{rightmark}, respectively. +% +\EndIndex{Cmd}{leftmark}% +\EndIndex{Cmd}{rightmark}% + + +\begin{Declaration} + \Macro{headmark} +\end{Declaration}% +\BeginIndex{Cmd}{headmark}% +This command gives access to the content of running headings. In +contrast to \Macro{leftmark} and \Macro{rightmark}, one need not +regard the proper assignment to left or right page.% +% +\EndIndex{Cmd}{headmark} + + +\begin{Declaration} + \Macro{pagemark} +\end{Declaration}% +\BeginIndex{Cmd}{pagemark}% +This command returns the formatted page number. The formatting can be +controlled by \Macro{pnumfont}, introduced in +\autoref{sec:scrpage-en.basics.format}, \autopageref{desc:scrpage-en.cmd.pnumfont}, +which \Macro{pagemark} heeds automatically.% +% +\EndIndex{Cmd}{pagemark} + + +\begin{Declaration} + \Pagestyle{useheadings} +\end{Declaration}% +\BeginIndex{Pagestyle}{useheadings} +The package \Package{scrpage2} is meant primarily for use of the supplied +styles or for defining one's own styles. However, it may be necessary to shift +back also to a style provided by the document class. It might appear that +this should be done with +\Macro{pagestyle}\PParameter{headings}\IndexCmd{pagestyle}, but this has the +disadvantage that commands \Macro{automark} and \Macro{manualmark}, to be +discussed shortly, do not function as expected. For this reason one should +shift back to the original styles using +\Macro{pagestyle}\PParameter{useheadings}\IndexCmd{pagestyle}, which chooses +the correct page styles automatically for both manual and automatic running +headings.% +% +\EndIndex{Pagestyle}{useheadings} + + +\subsection{Manual and Running Headings} +\label{sec:scrpage-en.basics.mark} +% \automark \manualmark +% +\BeginIndex{}{headings>running}% +\BeginIndex{}{headings>automatic}% +\BeginIndex{}{headings>manual}% +Usually there is a \emph{my}-version of the \Pagestyle{headings} +page style. If such a page style is active, then the running headings +are no longer updated no longer automatically and become manual +headings. With \Package{scrpage2} a different path is taken. Whether +the headings are running or manual is determined by the instructions +\Macro{automark} and \Macro{manualmark}, respectively. The default +can be set already while loading of the package, with the options +\Option{automark} and \Option{manualmark} (see +\autoref{sec:scrpage-en.basics.options}, +\autopageref{desc:scrpage-en.option.automark}). + + +\begin{Declaration} + \Macro{manualmark} +\end{Declaration}% +\BeginIndex{Cmd}{manualmark}% +As the name suggests, \Macro{manualmark} switches off the updating of +the running headings and makes them manual. It is left to the user to +update and provide contents for the headings. For that purpose the +instructions \Macro{markboth}\IndexCmd{markboth} and +\Macro{markright}\IndexCmd{markright} are available.% +% +\EndIndex{Cmd}{manualmark} + + +\begin{Declaration} + \Macro{automark}\OParameter{right page}\Parameter{left page} +\end{Declaration}% +\BeginIndex{Cmd}{automark}% +The macro \Macro{automark} activates the automatic updating, that is, running +headings. For the two parameters the designations of the document sectioning +level whose title is to appear in appropriate place are to be used. Valid +values for the parameters are: +\PValue{part}\ChangedAt{v2.2}{\Package{scrpage2}}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph}, and \PValue{subparagraph}. For most of the classes use of +\PValue{part} will not produce the expected result. So far only {\KOMAScript} +classes from version~2.9s up are known to support this value. The optional +argument \PName{right page} is understandably meant only for double-sided +documents. In the single-sided case one should normally not use it. With the +help of the option +\Option{autooneside}\IndexOption{autooneside}\important{\Option{autooneside}} +one can also set that the optional argument in single-sided mode is ignored +automatically (see \autoref{sec:scrpage-en.basics.options}, +\autopageref{desc:scrpage-en.option.autooneside}). +% +\begin{Example} + Assuming that the document uses a \emph{book} class, whose topmost + section level is \emph{chapter}, then after a preceding + \Macro{manualmark} +\begin{lstcode} + \automark[section]{chapter} +\end{lstcode} + restores the original behaviour. If one prefers lower section levels + in running headings, the following can be used: +\begin{lstcode} + \automark[subsection]{section} +\end{lstcode} +% How useful the last declaration is, everybody has to decide +% for themselves. +\end{Example} + +\begin{Explain} + For the upper section level, the data of the headings is set by the command + \Macro{markboth}\IndexCmd{markboth}, while that for the lower section level + by \Macro{markright}\IndexCmd{markright} or + \Macro{markleft}\IndexCmd{markleft}. These commands are called indirectly + by the sectioning commands. The macro \Macro{markleft} is provided by the + package \Package{scrpage2} and is defined similarly to \Macro{markright} in + the {\LaTeX} kernel. Although \Macro{markleft} is not defined as an + internal command, the direct use is not recommended. +\end{Explain} +\EndIndex{Cmd}{automark}% +% +\EndIndex{}{headings>manual}% +\EndIndex{}{headings>automatic}% +\EndIndex{}{headings>running}% + + +\subsection{Formatting of Header and Footer} +\label{sec:scrpage-en.basics.format} +% \headfont \pnumfont +% \setheadwidth \setfootwidth +% \set(head|foot)(top|sep|bot)line +The previous section concerned itself mainly with the contents of the +header and footer. This is of course not sufficient to satisfy +formative ambitions. Therefore we devote this section exclusively to +this topic. + +\begin{Declaration} + \Macro{headfont}\\ + \Macro{footfont}\\ + \Macro{pnumfont} +\end{Declaration}% +\BeginIndex{Cmd}{headfont}% +\BeginIndex{Cmd}{footfont}% +\BeginIndex{Cmd}{pnumfont}% +The command \Macro{headfont} contains the commands which determine the font of +header and footer lines. Command \Macro{footfont} contains the difference of +the footer to that. The difference for the style of the page number is defined +by the command \Macro{pnumfont}. +\begin{Example} + If, for example, one wants the header to be typeset in bold sans serif, the + footer in non-bold sans serif, and the page number in a slanted serif style, + then one can use the following definitions: +\begin{lstcode} + \renewcommand{\headfont}{\normalfont\sffamily\bfseries} + \renewcommand*{\footfont}{\normalfont\sffamily} + \renewcommand{\pnumfont}{\normalfont\rmfamily\slshape} +\end{lstcode} +\end{Example} +\EndIndex{Cmd}{headfont}% +\EndIndex{Cmd}{footfont}% +\EndIndex{Cmd}{pnumfont}% + +\BeginIndex{FontElement}{pagehead}% +\BeginIndex{FontElement}{pagefoot}% +\BeginIndex{FontElement}{pagenumber}% +From version 2.8p of the {\KOMAScript} classes a new unified user interface +scheme is implemented for font attributes. If \Package{scrpage2} is used +together with one of these classes, then it is recommended to set up font +attributes in the manner described in the \KOMAScript{} manual. +\begin{Example} + Instead of \Macro{renewcommand} the command \Macro{setkomafont} + should be used to configure the font attributes. The previous + definitions can then be written as: +\begin{lstcode} + \setkomafont{pagehead}\normalfont\sffamily\bfseries} + \setkomafont{pagefoot}{\normalfont\sffamily} + \setkomafont{pagenumber}{\normalfont\rmfamily\slshape} +\end{lstcode} +\end{Example} +\EndIndex{FontElement}{pagenumber}% +\EndIndex{FontElement}{pagefoot}% +\EndIndex{FontElement}{pagehead}% + + +\begin{Declaration} +\Macro{setheadwidth}\OParameter{shift}\Parameter{width}\\ +\Macro{setfootwidth}\OParameter{shift}\Parameter{width} +\end{Declaration}% +\BeginIndex{Cmd}{setheadwidth}% +\BeginIndex{Cmd}{setfootwidth}% +Normally the widths of header and footer lines correspond to the width of the +text body. The commands +\Macro{setheadwidth}\Index{header>width}\Index{head>width} and +\Macro{setfootwidth}\Index{footer>width}\Index{foot>width} enable the user to +adapt in a simple manner the widths to his needs. The mandatory argument +\PName{width} takes the value of the desired width of the page header or +footer, while \PName{shift} is a length parameter by which amount the +appropriate item is shifted toward the outside page edge. + +For the most common situations the mandatory argument \PName{width} +accepts the following symbolic values: +\begin{labeling}[\,--]{\PValue{textwithmarginpar}} +\item[\PValue{paper}] the width of the paper +\item[\PValue{page}] the width of the page +\item[\PValue{text}] the width of the text body +\item[\PValue{textwithmarginpar}] the width of the text body including margin +\item[\PValue{head}] the current header width +\item[\PValue{foot}] the current footer width +\end{labeling} +The difference between \PValue{paper} and \PValue{page} is that \PValue{page} +means the width of the paper less the binding correction if the package +\Package{typearea}\IndexPackage{typearea} is used (see the chapter about +\Package{typearea} in the \KOMAScript{} manual). Without \Package{typearea} +both values are identical. + +\begin{Example} + Assume that one wants a layout like that of \emph{The + {\LaTeX}\,Companion}, where the header projects into the + margin. This can be obtained with: +\begin{lstcode} + \setheadwidth[0pt]{textwithmarginpar} +\end{lstcode} +% + which appears like this on an odd page: +% + \begin{XmpTopPage} + \XmpHeading{10,25}{85} + \thinlines\XmpRule{10,23}{85} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} + \end{XmpTopPage} +% + If the footer line should have the same width and alignment, then two + ways to set this up are possible. The first way simply repeats the + settings for the case of the footer line: +\begin{lstcode} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstcode} +% + In the second way the symbolic value \PValue{head} is used, since the + header already has the desired settings. +\begin{lstcode} + \setfootwidth[0pt]{head} +\end{lstcode} +\end{Example} + +If no \PName{shift} is indicated, i.\,e., without the optional argument, +then the header or footer appears arranged symmetrically on the page. +In other words, a value for the \PName{shift} is determined +automatically to correspond to the current page shape. +% +\begin{Example} + Continuing with the previous example, we remove the optional + argument: +\begin{lstcode} + \setheadwidth{textwithmarginpar} +\end{lstcode} +% + which appears like this on an odd page: +% + \begin{XmpTopPage} + \XmpHeading{5,25}{85} + \thinlines\XmpRule{5,23}{85} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} + \end{XmpTopPage} +\end{Example} + +As can be seen, the header is now shifted inward, while the header +width has not changed. The shift is calculated in a way that the +configuration of the typearea become visible also here.% +% +\EndIndex{Cmd}{setheadwidth}\EndIndex{Cmd}{setfootwidth} + +\begin{Declaration} + \Macro{setheadtopline}\OParameter{length}\Parameter{thickness}% + \OParameter{commands}\\ + \Macro{setheadsepline}\OParameter{length}\Parameter{thickness}% + \OParameter{commands}\\ + \Macro{setfootsepline}\OParameter{length}\Parameter{thickness}% + \OParameter{commands}\\ + \Macro{setfootbotline}\OParameter{length}\Parameter{thickness}% + \OParameter{commands} +\end{Declaration}% +\BeginIndex{Cmd}{setheadtopline}\BeginIndex{Cmd}{setheadsepline}% +\BeginIndex{Cmd}{setfootseptline}\BeginIndex{Cmd}{setfootbotline}% +Corresponding to the size configuration parameters of header and +footer there are commands to modify the rules above and below the +header and footer. But first of all the rules should be activated. See options +\Option{headtopline}, \Option{headsepline}, +\Option{footsepline}, and \Option{footbotline} in +\autoref{sec:scrpage-en.basics.options}, +\autopageref{desc:scrpage-en.option.headsepline} for this. + +\begin{labeling}[\,--]{\Macro{setfootsepline}} +\item[\Macro{setheadtopline}] configures the line above the header +\item[\Macro{setheadsepline}] configures the line below the header +\item[\Macro{setfootsepline}] configures the line above the footer +\item[\Macro{setfootbotline}] configures the line below the footer +\end{labeling} + +The mandatory argument \PName{thickness} determines how strongly the +line is drawn. The optional argument \PName{length} accepts the same +symbolic values as \PName{width} for \Macro{setheadwidth}, as well as +also a normal length expression. As long as the optional argument +\PName{length} is not assigned a value, the appropriate line length +adapts automatically the width of the header or the footer. + +Use \PValue{auto} in the length argument to restore this automation +for the length of a line. + +\BeginIndex{FontElement}{headtopline}% +\BeginIndex{FontElement}{headsepline}% +\BeginIndex{FontElement}{footsepline}% +\BeginIndex{FontElement}{footbotline}% +\BeginIndex{FontElement}{footbottomline}% +The\ChangedAt{v2.2}{\Package{scrpage2}} optional argument \PName{commands} may +be used to specify additional commands to be executed before the respective +line is drawn. For example, such commands could be used for changing the +color\Index{header>color}\Index{footer>color}% +\Index{head>color}\Index{foot>color}% +\Index{color>in header}\Index{color>in footer} of the line. When using a +{\KOMAScript} class you could also use +\Macro{setkomafont}\IndexCmd{setkomafont} to specify commands for one of the +elements \FontElement{headtopline}\important[i]{\FontElement{headtopline}\\ + \FontElement{headsepline}\\ + \FontElement{footsepline}\\ + \FontElement{footbottomline}}, \FontElement{headsepline}, +\FontElement{footsepline}, \FontElement{footbottomline}, or +\FontElement{footbotline}. These can then be extended via +\Macro{addtokomafont}\IndexCmd{addtokomafont}. See the \KOMAScript{} manual +for details on the \Macro{setkomafont} and \Macro{addtokomafont} commands. +\EndIndex{FontElement}{footbottomline}% +\EndIndex{FontElement}{footbotline}% +\EndIndex{FontElement}{footsepline}% +\EndIndex{FontElement}{headsepline}% +\EndIndex{FontElement}{headtopline}% + + +\begin{Declaration} + \XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}% + \Parameter{\upshape\PValue{current}}\\ + \XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}% + \Parameter{}\\ + \XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}% + \Parameter{}\OParameter{} +\end{Declaration}% +The arguments shown here for the command \Macro{setheadtopline} are of +course valid for the other three configuration commands too. + +If the mandatory parameter has the value \PValue{current} or has been +left empty, then the line thickness is not changed. This may be used +to modify the length of the line without changing its thickness. + +If the optional argument \PName{commands} is omitted, then all command +settings that might have been specified before will remain active, +while an empty \PName{commands} argument will revoke any previously +valid commands. + +\begin{Example} + If the header, for example, is to be contrasted by a strong line of + 2\,pt above and a normal line of 0.4\,pt between header and body, + one can achieve this with: +\begin{lstcode} + \setheadtopline{2pt} + \setheadsepline{.4pt} +\end{lstcode} + Additionally\textnote{Attention!} the options \Option{headtopline} and + \Option{headsepline} have to be used preferably globally in the optional + argument of \Macro{documentclass}. In this case the result may be the + following. +% +\begin{XmpTopPage} + \XmpHeading{10,25}{70} + \thinlines\XmpRule{10,23}{70} + \thicklines\XmpRule{10,28}{70} + \XmpSetText[\XmpTopText]{10,21} + \XmpMarginNote{83,11.8} +\end{XmpTopPage} + + To specify that this line is to be drawn also, e.\,g., in red color, you + would change the commands like this: +\begin{lstcode} + \setheadtopline{2pt}[\color{red}] + \setheadsepline{.4pt}[\color{red}] +\end{lstcode} + In this example, as well as in the following one, line color is + activated by applying the syntax of the + \Package{color}\IndexPackage{color} package, so this package must of + course be loaded. Since \Package{scrpage2} comes without built-in + color handling, any package providing color support may be used. + + {\KOMAScript} classes also support the following way of color specification: +\begin{lstcode} + \setheadtopline{2pt} + \setheadsepline{.4pt} + \setkomafont{headtopline}[\color{red}] + \setkomafont{headsepline}[\color{red}] +\end{lstcode} + + The automatic adjustment to the header and footer width is illustrated + in the following example: +\begin{lstcode} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstcode} + +% \phantomsection for hyperref-\pageref-links jum-2001/11/24 + \phantomsection\label{page:scrpage-en.autoLineLength} + \begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{17,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24} + \end{XmpBotPage} +\end{Example} +% +Now not everyone will like the alignment of the line above the footer; +instead, one would expect the line to be left-aligned. This can only +be achieved with a global package option, which will be described +together with other package options in the next +\autoref{sec:scrpage-en.basics.options}.% +% +\EndIndex{Cmd}{setheadtopline}\EndIndex{Cmd}{setheadsepline} +\EndIndex{Cmd}{setfootseptline}\EndIndex{Cmd}{setfootbotline} + + +\subsection{Package Options} +\label{sec:scrpage-en.basics.options} +% head(in|ex)clude foot(in|ex)clude --> typearea +% headtopline headsepline footbotline footsepline (plain...) +% komastyle standardstyle +% markuppercase markusecase +% automark manualmark + +In opposite to the \KOMAScript{} classes, where the most options may be +changed using \Macro{KOMAoptions} or \Macro{KOMAoption} also after loading the +class, package \Package{scrpage2} does not provide this feature\iffree{ + currently}{}. All options to \Package{scrpage2} have to be global options, +i.\,e. be part of the optional argument of \Macro{documentclass}, or +package option, i.\,e. be part of the optional argument of \Macro{usepackage}. + +\begin{Declaration} +\Option{headinclude}\\ +\Option{headexclude}\\ +\Option{footinclude}\\ +\Option{footexclude} +\end{Declaration}% +\BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude}% +\BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude}% +Since\textnote{Attention!} \KOMAScript~3\ChangedAt{v2.3}{\Package{scrpage2}} +this options should not be passed to \Package{scrpage2} any longer using +\Macro{PassOptionsToPackage} or the optional argument of +\Macro{usepackage}. Only for compatibility reason \Package{scrpage2} still +declares them and pass them as \Option{headinclude}, +\OptionValue{headinclude}{false}, \Option{footinclude} und +\OptionValue{footinclude}{false} to package \Package{typearea} weitergereicht. +\EndIndex{Option}{headinclude}\EndIndex{Option}{footinclude}% +\EndIndex{Option}{headexclude}\EndIndex{Option}{footexclude} + + +\begin{Declaration} + \Option{headtopline}\\ + \Option{plainheadtopline}\\ + \Option{headsepline}\\ + \Option{plainheadsepline}\\ + \Option{footsepline}\\ + \Option{plainfootsepline}\\ + \Option{footbotline}\\ + \Option{plainfootbotline} +\end{Declaration}% +\BeginIndex{Option}{headtopline}\BeginIndex{Option}{plainheadtopline}% +\BeginIndex{Option}{headsepline}\BeginIndex{Option}{plainheadsepline}% +\BeginIndex{Option}{footsepline}\BeginIndex{Option}{plainfootsepline}% +\BeginIndex{Option}{footbotline}\BeginIndex{Option}{plainfootbotline}% +Basic adjustment of the lines under and over header and footer can be +made with these options. These adjustments are then considered the +default for all page styles defined with \Package{scrpage2}. If one +of these options is used, then a line thickness 0.4\,pt is set. +Since there is a corresponding plain page style to the +page style \Pagestyle{scrheadings}, the corresponding line in the plain +style can also be configured with the \Option{plain\dots} options. +These \Option{plain} options do however work only if the corresponding +options without \Option{plain} are activated. Thus, +\Option{plainheadtopline} shows no effect without the +\Option{headtopline} option set. + +With these options, it is to be noted that the appropriate page part, +header or footer, is considered as a part of the text area for the +calculation of the type area in case a line has been activated. This +means that, if the separation line between header and text is +activated with \Option{headsepline}, then the package +\Package{typearea} calculates the type area in such a way that the +page header is part of the text block automatically. + +The\textnote{Attention!} conditions for the options of the preceding paragraph +apply also to this automation. That means that the package \Package{typearea} +must be loaded after \Package{scrpage2}, or that on use of a {\KOMAScript} +class, the options \Option{headinclude} and \Option{footinclude} must be set +explicitly with \Macro{documentclass} in order to transfer header or footer +line in the text area.% +% +\EndIndex{Option}{headtopline}\EndIndex{Option}{plainheadtopline} +\EndIndex{Option}{headsepline}\EndIndex{Option}{plainheadsepline} +\EndIndex{Option}{footsepline}\EndIndex{Option}{plainfootsepline} +\EndIndex{Option}{footbotline}\EndIndex{Option}{plainfootbotline} + +\begin{Declaration} +\Option{ilines}\\ +\Option{clines}\\ +\Option{olines} +\end{Declaration}% +\BeginIndex{Option}{ilines}% +\BeginIndex{Option}{clines}% +\BeginIndex{Option}{olines}% +\Index{rule>alignment}\Index{line>alignment}% +With the definition of the line lengths the case can arise where the +lengths are set correctly, but the justification is not as desired +because the line will be centered in the header or footer area. With +the package options presented here, this specification can be modified +for all page styles defined with \Package{scrpage2}. The option +\Option{ilines} sets the justification in such a way that the lines +align to the inside edge. The option \Option{clines} behaves like the +default justification, and \Option{olines} aligns at the outside edge. + +\begin{Example} + The next example illustrates the influence of the + option \Option{ilines}. Please compare to the example for + \Macro{setfootsepline} on \autopageref{page:scrpage-en.autoLineLength}. +\begin{lstcode} + \usepackage[ilines]{scrpage2} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstcode} + The mere use of the option \Option{ilines} leads to the different + result shown below: +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{10,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,33} + \XmpMarginNote{83,24} +\end{XmpBotPage} + In contrast to the default configuration, the separation line between + text and footer is now left-aligned, not centered.% +\end{Example}% +\EndIndex{Option}{ilines}% +\EndIndex{Option}{clines}% +\EndIndex{Option}{olines}% + + +\begin{Declaration} +\Option{automark}\\ +\Option{manualmark} +\end{Declaration}% +\BeginIndex{Option}{automark}% +\BeginIndex{Option}{manualmark}% +\BeginIndex{}{headings>automatic}% +\BeginIndex{}{headings>manual}% +These options set at the beginning of the document whether to use running +headings or manual ones. The option \Option{automark} switches the automatic +updating on, \Option{manualmark} deactivates it. Without the use of one of +the two options, the setting which was valid when the package was loaded is +preserved. +% +\begin{Example} + You load the package \Package{scrpage2} directly after the document class + \Class{scrreprt} without any package options: +\begin{lstcode} + \documentclass{scrreprt} + \usepackage{scrpage2} +\end{lstcode} + Since the default page style of \Class{scrreprt} is \Pagestyle{plain}, + this page style is also now still active. Futhermore, \Pagestyle{plain} + means manual headings. If one now activates the page style + \Pagestyle{scrheadings} with +\begin{lstcode} + \pagestyle{scrheadings} +\end{lstcode} + then the manual headings are nevertheless still active. + + If you instead use the document class \Class{scrbook}, then after +\begin{lstcode} + \documentclass{scrbook} + \usepackage{scrpage2} +\end{lstcode} + the page style \Pagestyle{headings} is active and the running headings are + updated automatically. Switching to the page style + \Pagestyle{scrheadings} keeps this setting active. The marking commands + of \Class{scrbook} continue to be used. + + However, the use of +\begin{lstcode} + \usepackage[automark]{scrpage2} +\end{lstcode} + activates running headings independently of the used document class. + The option does not of course affect the used page style \Pagestyle{plain} + of the class \Class{scrreprt}. The headings are not visible until the + page style is changed to + \Pagestyle{scrheadings}\IndexPagestyle{scrheadings}, \Pagestyle{useheadings} + or another user-defined page style with headings.% +\end{Example}% +\EndIndex{Option}{automark}\EndIndex{Option}{manualmark}% + +\begin{Declaration} + \Option{autooneside} +\end{Declaration}% +\BeginIndex{Option}{autooneside}% +This option ensures that the optional parameter of +\Macro{automark}\IndexCmd{automark} will be ignored automatically in +one-sided mode. See also the explanation of the command +\Macro{automark} in \autoref{sec:scrpage-en.basics.mark}, +\autopageref{desc:scrpage-en.cmd.automark}.% +% +\EndIndex{Option}{autooneside}% +% +\EndIndex{}{headings>manual}% +\EndIndex{}{headings>automatic}% + + +\begin{Declaration} + \Option{komastyle}\\ + \Option{standardstyle} +\end{Declaration}% +\BeginIndex{Option}{komastyle}% +\BeginIndex{Option}{standardstyle}% +These options determine the look of the predefined page styles +\Pagestyle{scrheadings} and \Pagestyle{scrplain}. The option +\Option{komastyle} configures a look like that of the {\KOMAScript} classes. +This is the default for {\KOMAScript} classes and can in this way also be set +for other classes. + +The option \Option{standardstyle} configures a page style as it is +expected by the standard classes. Furthermore, the option +\Option{markuppercase} will be activated automatically, but only if +option \Option{markusedcase} is not given.% +\EndIndex{Option}{komastyle}% +\EndIndex{Option}{standardstyle} + + +\begin{Declaration} +\Option{markuppercase}\\ +\Option{markusedcase} +\end{Declaration}% +\BeginIndex{Option}{markuppercase}% +\BeginIndex{Option}{markusedcase}% +In order to achieve the functionality of \Macro{automark}, the package +\Package{scrpage2} modifies internal commands which are used by the +document structuring commands to set the running headings. Since some +classes, in contrast to the {\KOMAScript} classes, write the headings +in uppercase letters, \Package{scrpage2} has to know how the used +document class sets the headings. + +Option \Option{markuppercase} shows \Package{scrpage2} that the document class +uses uppercase letters. If the document class does not set the headings in +uppercase letters, then the option \Option{markusedcase} should be given. +These\textnote{Attention!} options are not suitable to force a representation; +thus, unexpected effects may occur if the given option does not match the +actual behaviour of the document class.% +\EndIndex{Option}{markuppercase}\EndIndex{Option}{markusedcase} + + +\begin{Declaration} + \Option{nouppercase} +\end{Declaration}% +\BeginIndex{Option}{nouppercase}% +In the previous paragraph dealing with \Option{markuppercase} and +\Option{markusedcase}, it has been already stated that some document classes +set the running headings\Index{heading} in uppercase letters using the +commands +\Macro{MakeUppercase}\IndexCmd{MakeUppercase}\important{\Macro{MakeUppercase}} +or \Macro{uppercase}\IndexCmd{uppercase}\important{\Macro{uppercase}}. +Setting the option \Option{nouppercase} allows disabling both these commands +in the headers and footers. However, this is valid only for page styles +defined by \Package{scrpage2}, including \Pagestyle{scrheadings} and its +corresponding plain page style. + +The applied method is very brutal and can cause that desired changes +of normal letters to uppercase letters \Index{uppercase letters} do +not occur. Since these cases do not occur frequently, the option +\Option{nouppercase} usually affords a useful solution. +\begin{Example} + Your document uses the standard class \Class{book}\IndexClass{book}, + but you do not want the uppercase headings but mixed case + headings. Then the preamble of your document could start with: +\begin{lstcode} + \documentclass{book} + \usepackage[nouppercase]{scrpage2} + \pagestyle{scrheadings} +\end{lstcode} + The selection of the page style \Pagestyle{scrheadings} is necessary, + since otherwise the page style \Pagestyle{headings} is active, which + does not respect the settings made by option \Option{nouppercase}. +\end{Example} + +In some cases not only classes but also packages set the running +headings in uppercase letters. +Also in these cases the option \Option{nouppercase} should be able +to switch back to the normal mixed case headings.% +% +\EndIndex{Option}{nouppercase} + + +\section{Defining Own Page Styles}\label{sec:scrpage-en.UI} +% +% +\subsection{The Interface for Beginners}\label{sec:scrpage-en.UI.user} +% \deftripstyle +\BeginIndex{Cmd}{deftripstyle}\Index{page>style} + +Now one would not like to remain bound to only the provided page +styles, but may wish to define one's own page styles. Sometimes there +will be a special need, since a specific \emph{Corporate Identity} may +require the declaration of its own page styles. The easiest way to +deal with this is: +\begin{Declaration} +\Macro{deftripstyle}\Parameter{name}% +\OParameter{LO}\OParameter{LI}% +\Parameter{HI}\Parameter{HC}\Parameter{HO}% +\Parameter{FI}\Parameter{FC}\Parameter{FO} +\end{Declaration}% +The individual parameters have the following meanings: +\begin{labeling}[\,--]{\PName{Name}} +\item[\PName{name}] the name of the page style, in order to activate it + using the command \Macro{pagestyle}\Parameter{name} +\item[\PName{LO}] the thickness of the outside lines, + i.\,e., the line above the header + and the line below the footer (optional) +\item[\PName{LI}] the thickness of the separation lines, + i.\,e., the line below the header + and the line above the foot (optional) +\item[\PName{HI}] contents of the inside box in the page header for two-sided + layout or left for one-sided layout +\item[\PName{HC}] contents of the centered box in the page header +\item[\PName{HO}] contents of the outside box in the page header for two-sided + layout or right for one-sided layout +\item[\PName{FI}] contents of the inside box in the page footer for two-sided + layout or left for one-sided layout +\item[\PName{FC}] contents of the centered box in the page footer +\item[\PName{FO}] contents of the outside box in the page footer for two-sided + layout or right for one-sided layout +\end{labeling} + +The command \Macro{deftripstyle} definitely represents the simplest +possibility of defining page styles. Unfortunately, there are also +restrictions connected with this, since in a page range using a page +style defined via deftripstyle, no modification of the lines above and +below header and footer can take place. + +\begin{Example} + Assume a two-sided layout, where the running headings are placed on + the inside. Furthermore, the document title, here ``Report'', shall + be placed outside in the header, the page number shall be centered + in the footer. +\begin{lstcode} + \deftripstyle{TheReport}% + {\headmark}{}{Report}% + {}{\pagemark}{} +\end{lstcode} + + If moreover the lines above the header and below the footer shall be + drawn with a thickness of 2\,pt, and the text body be separated from + header and footer with 0.4\,pt lines, then the definition has to be + extended: +\begin{lstcode} + \deftripstyle{TheReport}[2pt][.4pt]% + {\headmark}{}{Report}% + {}{\pagemark}{} +\end{lstcode} + See \autoref{fig:scrpage2.tomuchlines} for the result. +% +\begin{figure} + \typeout{^^J--- Ignore underfull and overfull \string\hbox:} + \setcapindent{0pt}% +% \begin{center} + \begin{captionbeside} + [{% + Example of a user defined, line dominated page style% + }]{% + example of a user defined, line dominated page style + with a static and a running heading at the page header and a page number + centered at the page footer% + \label{fig:scrpage2.tomuchlines}% + } + [l] + \iffree{\setlength{\unitlength}{1.15mm}}{\setlength{\unitlength}{1mm}}% + \begin{picture}(85,51)\scriptsize + \thinlines + \put(0,0){\line(0,1){51}} + \put(45,0){\line(0,1){51}} + \put(0,51){\line(1,0){40}} + \put(45,51){\line(1,0){40}} + % + \thicklines + \put(40,0){\line(0,1){51}} + \put(85,0){\line(0,1){51}} + \put(0,0,){\line(1,0){40}} + \put(45,0){\line(1,0){40}} + % + \XmpHeading[Report\hfill 2. The Eye]{6,47}{30} + \XmpHeading[2.1 Retina\hfill Report]{49,47}{30} + \XmpHeading[\hfill 14\hfill]{6,6.5}{30} + \XmpHeading[\hfill 15\hfill]{49,6.5}{30} + \put(6,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny% + \textbf{2.1 Retina}\\ + \XmpText[49]}}} + \put(49,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny% + \XmpText[51]}}} + % + \thinlines + \XmpRule{6,45.5}{30}\XmpRule{49,45.5}{30} + \XmpRule{6,8}{30}\XmpRule{49,8}{30} + \linethickness{1pt} + \XmpRule{6,49}{30}\XmpRule{49,49}{30} + \XmpRule{6,5}{30}\XmpRule{49,5}{30} + \end{picture} +% \end{center} + \end{captionbeside} + \typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J} +\end{figure} +\end{Example} +\EndIndex{Cmd}{deftripstyle} + + +\subsection{The Interface for Experts}\label{sec:scrpage-en.UI.expert} +% \defpagestyle \newpagestyle \providepagestyle \renewpagestyle +\Index{page>style} +Simple page styles, as they can be defined with \Macro{deftripstyle}, +are fairly rare according to experience. Either a professor requires +that the thesis looks like his or her own\,---\,and who seriously wants +to argue against such a wish?\,---\,or a company would like that half the +financial accounting emerges in the page footer. No problem, the +solution is: +% +\begin{Declaration} +\Macro{defpagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition}\\ +\Macro{newpagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition}\\ +\Macro{renewpagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition}\\ +\Macro{providepagestyle}\Parameter{name}\Parameter{header definition}\Parameter{footer definition} +\end{Declaration}% +\BeginIndex{Cmd}{defpagestyle}\BeginIndex{Cmd}{newpagestyle}% +\BeginIndex{Cmd}{renewpagestyle}\BeginIndex{Cmd}{providepagestyle}% +These four commands give full access to the capabilities of +\Package{scrpage2} to define page styles. Their structure is +indentical, they differ only in the manner of working. +\begin{labeling}[\ --]{\Macro{providepagestyle}} +\item[\Macro{defpagestyle}] defines a new page style. +If a page style with this name already exists it will be overwritten. +\item[\Macro{newpagestyle}] defines a new page style. +If a page style with this name already exists a error message will be given. +\item[\Macro{renewpagestyle}] redefines a page style. +If a page style with this name does not exist a error message will be given. +\item[\Macro{providepagestyle}] defines a new page style only if there is no page style with that name already present. +\end{labeling} + +Using \Macro{defpagestyle} as an example, the syntax of the four +commands is explained below. +\begin{labeling}[~--]{\PName{head definition}} +\item[\PName{name}] the name of the page style for + \Macro{pagestyle}\Parameter{name} +\item[\PName{header definition}] the declaration of the header, consisting + of five element; elements in round parenthesis are optional:\hfill\\ + \hspace*{1em}\AParameter{ALL,ALT}% + \Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT} +\item[\PName{footer definition}] the declaration of the footer, consisting + of five element; elements in round parenthesis are optional:\hfill\\ + \hspace*{1em}\AParameter{ALL,ALT}% + \Parameter{EP}\Parameter{OP}\Parameter{OS}\AParameter{BLL,BLT} +\end{labeling} + +As can be seen, header and footer declaration have identical +structure. The individual parameters have the following meanings: +\begin{labeling}[\ --]{\PName{OLD}} +\item[\PName{ALL}] above line length: (header = outside, footer = separation + line) +\item[\PName{ALT}] above line thickness +\item[\PName{EP}] definition for \emph{even} pages +\item[\PName{OP}] definition for \emph{odd} pages +\item[\PName{OS}] definition for \emph{one-sided} layout +\item[\PName{BLL}] below line length: (header = separation line, footer = + outside) +\item[\PName{BLT}] below line thickness +\end{labeling} + +If the optional line-parameters are omitted, then the line behaviour remains +configurable by the commands introduced in +\autoref{sec:scrpage-en.basics.format}, +\autopageref{desc:scrpage-en.cmd.setheadtopline}. + +The three elements \PName{EP}, \PName{OP} and \PName{OS} are boxes with the +width of page header or footer, as appropriate. The corresponding definitions +are set left-justified in the boxes. To set something left- \emph{and} +right-justified into the boxes, the space between two text elements can be +stretched using \Macro{hfill}: +% +\begin{lstcode}[belowskip=\dp\strutbox] + {\headmark\hfill\pagemark} +\end{lstcode} + +If one would like a third text-element centered in the box, then an +extended definition must be used. The commands \Macro{rlap} and +\Macro{llap} simply write the given arguments, but for {\LaTeX} they +take up no horizontal space. Only in this way is the middle text +really centered. +% +\begin{lstcode} + {\rlap{\headmark}\hfill centered text\hfill\llap{\pagemark}} +\end{lstcode} + +\iffalse% Umbruchkorrekturtext +This and the use of the expert interface in connection with other +commands provided by \Package{scpage2} follows now in the final +example. +\fi + +\begin{Example} + This examples uses the document class \Class{scrbook}, which means + that the default page layout is two-sided. The package + \Package{scrpage2} is loaded with options \Option{automark} and + \Option{headsepline}. The first switches on the automatic update of + running headings, the second determines that a separation line + between header and text body is drawn in the \Pagestyle{scrheadings} + page style. + +\begin{lstcode} + \documentclass{scrbook} + \usepackage[automark,headsepline]{scrpage2} +\end{lstcode} + + The expert interface is used to define two page styles. The page + style \PValue{withoutLines} does not define any line parameters. The + second page style \PValue{withLines} defines a line thicknes of 1\,pt + for the line above the header and 0\,pt for the separation line + between header and text. + +\begin{lstcode} + \defpagestyle{withoutLines}{% + {Example\hfill\headmark}{\headmark\hfill without lines} + {\rlap{Example}\hfill\headmark\hfill% + \llap{without lines}} + }{% + {\pagemark\hfill} + {\hfill\pagemark} + {\hfill\pagemark\hfill} + } +\end{lstcode} + +\begin{lstcode} + \defpagestyle{withLines}{% + (\textwidth,1pt) + {with lines\hfill\headmark}{\headmark\hfill with lines} + {\rlap{\KOMAScript}\hfill \headmark\hfill% + \llap{with lines}} + (0pt,0pt) + }{% + (\textwidth,.4pt) + {\pagemark\hfill} + {\hfill\pagemark} + {\hfill\pagemark\hfill} + (\textwidth,1pt) + } +\end{lstcode} + + Right at the beginning of the document the page style + \Pagestyle{scrheadings} is activated. The command \Macro{chapter} starts + a new chapter and automatically sets the page rstyle for this page to + \Pagestyle{plain}. Even though not a prime example, the command + \Macro{chead} shows how running headings can be created even on a + plain page. However, in principle running headings on + chapter start-pages are to be avoided, since otherwise the special + character of the \Pagestyle{plain} page style is lost. It is more + important to indicate that a new chapter starts here than that a + section of this page has a special title. + +\begin{lstcode} + \begin{document} + \pagestyle{scrheadings} + \chapter{Thermodynamics} + \chead[\leftmark]{} + \section{Main Laws} + Every system has an extensive state quantity called + Energy. In a closed system the energy is constant. +\end{lstcode} + + \begin{XmpTopPage} + \XmpHeading[\hfill\textsl{1. Thermodynamics}\hfill]{10,27}{70} + \put(10,17){\normalsize\textbf{\sffamily 1.Thermodynamics}} + \put(10,12){\textbf{\sffamily 1.1 Main Laws}} + \XmpSetText[% + Every System has an extensive state quantity]{10,9} + \end{XmpTopPage} + + After starting a new page the page style \Pagestyle{scrheadings} is + active and thus the separation line below the header is visible. +\begin{lstcode} + There is a state quatity of a system, called entropy, whose temporal + change consists of entropy flow and entropy generation. +\end{lstcode} + \begin{XmpTopPage} + \XmpHeading[\textsl{1. Thermodynamics}\hfill]{20,27}{70} + \thinlines\XmpRule{20,25}{70} + \XmpSetText[% + There is a condition unit of a system, called entropy, + whose temporal change consists of entropy flow + and entropy generation.]{20,20} + \end{XmpTopPage} + + After switching to the next page, the automatic update of the running + headings is disabled using \Macro{manualmark}, and the page style + \PValue{withoutLines} becomes active. Since no line parameters are + given in the definition of this page style, the default configuration + is used, which draws a separation line between header and text body + because \Package{scrpage2} was called with \Option{headsepline}. +\begin{lstcode} + \manualmark + \pagestyle{withoutLines} + \section{Exergy and Anergy}\markright{Energy Conversion} + During the transition of a system to an equilibrium state + with its environment, the maximum work gainable is called + exergy. +\end{lstcode} + \begin{XmpTopPage} + \XmpHeading[\slshape Energy Conversion\hfill without lines]{10,27}{70} + \thinlines\XmpRule{10,25}{70} + \XmpSetText[\setlength{\parfillskip}{0pt plus 1fil}% + \textbf{\sffamily 1.2 Exergy and Anergy}\\ + During the transition of a system to an equilibrium state + with its environment, the maximum work gainable is called + exergy.]{10,21} + \end{XmpTopPage} + + At the next page of the document, the page style \PValue{withLines} is + activated. The line settings of its definition are taken in account + and the lines are drawn accordingly. +\begin{lstcode} + \pagestyle{mitLinien} + \renewcommand{\headfont}{\itshape\bfseries} + The portion of an energy not convertible in exergy + is named anergy \Var{B}. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] + \end{document} +\end{lstcode} + \begin{XmpTopPage} + \XmpHeading[\itshape\bfseries with lines\hfill 1. Thermodynamics]{20,27}{70} + \thicklines\XmpRule{20,29}{70} + \XmpSetText[\setlength{\parfillskip}{0pt plus 1fil}% + The portion of an energy not convertible in exergy + is named anergy $B$. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,20} + \end{XmpTopPage} +\end{Example} +\EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagestyle} +\EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} + + +\subsection{Managing Page Styles}\label{sec:scrpage-en.UI.cfgFile} +% scrpage.cfg +\BeginIndex{File}{scrpage.cfg} +Before long the work with different page styles will establish a +common set of employed page styles, depending on taste and tasks. In +order to make the management of page styles easier and avoid +time-consuming copy operations each time a new project is started, +\Package{scrpage2} reads the file \File{scrpage.cfg} after +initialisation. This file can contain a set of user-defined page +styles which many projects can share. +\EndIndex{File}{scrpage.cfg} +\EndIndex{Package}{scrpage2} + +% ============================================================================ + +\cleardoubleoddpage + +\selectlanguage{ngerman} +\let\savednewcommand\newcommand +\let\newcommand\renewcommand +\input{ngerman/guide-ngerman.tex} +\let\newcommand\savednewcommand +\def\theHchapter{D.\thechapter} +\setcounter{chapter}{0} +\renewcommand*{\thepage}{D.\arabic{page}} + +\phantomsection +\addparttocentry{}{Deutsch} + +\title{Das obsolete Paket \Package{scrpage2}} +\subtitle{Auszug aus früheren Versionen der \KOMAScript-Anleitung} +\author{Markus Kohm\and Jens-Uwe-Morawski} +\date{2014-06-25} +\maketitle + + +\chapter{Kopf- und Fußzeilen mit \Package{scrpage2}} +\labelbase{scrpage-de} +% +\BeginIndex{Package}{scrpage2}% +Mit \KOMAScript~3.12 wurde das komplett neu implementierte Paket +\Package{scrlayer-scrpage} vorgestellt, das eine konsequente Weiterführung des +Designs von \Package{scrpage2} mit anderen Mitteln darstellt. Siehe dazu das +entsprechende Kapitel der \KOMAScript-Anleitung. Während +\Package{scrpage2} die erweiterte Optionen-Schnittstelle der +\KOMAScript-Klassen nicht unterstützt, kommt diese in +\Package{scrlayer-scrpage} selbstverständlich zum Einsatz. Da der Ansatz von +\Package{scrlayer-scrpage} gegenüber \Package{scrpage2} als überlegen +betrachtet wird, wird somit empfohlen, \Package{scrlayer-scrpage} an Stelle +von \Package{scrpage2} zu verwenden. Die aktuelle Version von +\Package{scrpage2} ist daher auch als final zu betrachten. Sämtliche +Entwicklungsresourcen im Bereich Kopf- und Fußzeilen werden zukünftig in +\Package{scrlayer-scrpage} einfließen. + +\begin{Explain} + An Stelle von \Package{scrpage2} oder \Package{scrlayer-scrpage} kann + natürlich auch \Package{fancyhdr} verwendet + werden. \Package{scrpage2} und insbesondere \Package{scrlayer-scrpage} + harmonieren jedoch mit den \KOMAScript-Klassen deutlich besser. Genau + deshalb und weil der Vorläufer von \Package{fancyhdr} damals viele + Möglichkeiten vermissen lies, ist \Package{scrpage2} entstanden. Natürlich + ist das Paket \Package{scrpage2} ebenso wie das Paket + \Package{scrlayer-scrpage} nicht an eine \KOMAScript-Klasse gebunden, + sondern kann auch sehr gut mit anderen Klassen verwendet werden. +\end{Explain} + +\section{Grundlegende Funktionen}\label{sec:scrpage-de.basics} + +\begin{Explain} + Um die nachfolgende Beschreibung zu verstehen, muss noch einiges zu \LaTeX{} + gesagt werden. Im \LaTeX-Kern sind die Standardseitenstile + \Pagestyle{empty}, welcher eine völlig undekorierte Seite erzeugt, und + \Pagestyle{plain}, welcher meist nur die Seitenzahl enthält, definiert. In + vielen Klassen ist der Stil \Pagestyle{headings} zu finden, welcher eine + komplexe Seitendekoration mit automatischen + Kolumnentitel\Index{Kolumnentitel>automatisch} erzeugt. Die Variante + \Pagestyle{myheadings} gleicht \Pagestyle{headings}. Die Kolumnentitel + müssen dabei aber manuell\Index{Kolumnentitel>manuell} gesetzt werden. + Ausführlicher wird das im Abschnitt über Seitenstile der + \KOMAScript-Anleitung beschrieben. Dort wird auch erläutert, dass auf + einigen Seiten der Seitenstil automatisch -- in der Regel zu + \Pagestyle{plain} -- wechselt. +\end{Explain} + +Das Paket \Package{scrpage2} unterscheidet nicht mehr zwischen Seitenstilen +mit automatischem und mit manuellem Kolumnentitel. Die Wahl des Seitenstils +erfolgt unabhängig davon, ob mit automatischem oder manuellem Kolumnentitel +gearbeitet wird. Näheres dazu finden Sie in \autoref{sec:scrpage-de.basics.mark}. + + +\subsection{Vordefinierte Seitenstile}\label{sec:scrpage-de.basics.buildIn} + +Zu den grundlegenden Funktionen von \Package{scrpage2} gehören unter anderem +vordefinierte, konfigurierbare Seitenstile. + +% \lehead ... +% scrheadings +% \headmark \pagemark + +\begin{Declaration} + \Pagestyle{scrheadings}\\ + \Pagestyle{scrplain} +\end{Declaration}% +\BeginIndex{Pagestyle}{scrheadings}% +\BeginIndex{Pagestyle}{scrplain}% +\Index{Seiten>Stil}% +Das Paket \Package{scrpage2} liefert für Seiten mit Kolumnentitel einen +eigenen Seitenstil namens \Pagestyle{scrheadings}. Dieser Seitenstil kann +mittels \Macro{pagestyle}\PParameter{scrheadings} aktiviert werden. Wird +dieser Seitenstil benutzt, dann wird gleichzeitig der plain-Stil durch den +dazu passenden Stil \Pagestyle{scrplain} ersetzt. Passend bedeutet, dass auch +der plain-Stil auf in \autoref{sec:scrpage-de.basics.format} vorgestellte +Befehle, die beispielsweise die Kopfbreite ändern, reagiert und im Grundlayout +übereinstimmt. Die Aktivierung des Seitenstils \Pagestyle{scrheadings} oder +des zugehörigen plain-Stils, \Pagestyle{scrplain}, hat keine Auswirkung +darauf, ob mit manuellen oder automatischen +Kolumnentiteln\Index{Kolumnentitel>automatisch}\Index{Kolumnentitel>manuell} +gearbeitet wird (siehe \autoref{sec:scrpage-de.basics.mark}). Der Seitenstil +\Pagestyle{scrplain} kann auch direkt per \Macro{pagestyle} aktiviert werden. + + +\begin{Declaration} + \Macro{lehead}% + \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}\\ + \Macro{cehead}% + \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}\\ + \Macro{rehead}% + \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}\\ + \Macro{lefoot}% + \OParameter{scrplain-links-gerade}\Parameter{scrheadings-links-gerade}\\ + \Macro{cefoot}% + \OParameter{scrplain-mittig-gerade}\Parameter{scrheadings-mittig-gerade}\\ + \Macro{refoot}% + \OParameter{scrplain-rechts-gerade}\Parameter{scrheadings-rechts-gerade}\\ + \Macro{lohead}% + \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}\\ + \Macro{cohead}% + \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}\\ + \Macro{rohead}% + \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}\\ + \Macro{lofoot}% + \OParameter{scrplain-links-ungerade}\Parameter{scrheadings-links-ungerade}\\ + \Macro{cofoot}% + \OParameter{scrplain-mittig-ungerade}\Parameter{scrheadings-mittig-ungerade}\\ + \Macro{rofoot}% + \OParameter{scrplain-rechts-ungerade}\Parameter{scrheadings-rechts-ungerade}\\ + \Macro{ihead}% + \OParameter{scrplain-innen}\Parameter{scrheadings-innen}\\ + \Macro{chead}% + \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}\\ + \Macro{ohead}% + \OParameter{scrplain-außen}\Parameter{scrheadings-außen}\\ + \Macro{ifoot}% + \OParameter{scrplain-innen}\Parameter{scrheadings-innen}\\ + \Macro{cfoot}% + \OParameter{scrplain-zentriert}\Parameter{scrheadings-zentriert}\\ + \Macro{ofoot}% + \OParameter{scrplain-außen}\Parameter{scrheadings-außen} +\end{Declaration}% +\BeginIndex{Cmd}{lehead}% +\BeginIndex{Cmd}{cehead}% +\BeginIndex{Cmd}{rehead}% +\BeginIndex{Cmd}{ihead}% +\BeginIndex{Cmd}{chead}% +\BeginIndex{Cmd}{ohead}% +\BeginIndex{Cmd}{lohead}% +\BeginIndex{Cmd}{cohead}% +\BeginIndex{Cmd}{rohead}% +\BeginIndex{Cmd}{lefoot}% +\BeginIndex{Cmd}{cefoot}% +\BeginIndex{Cmd}{refoot}% +\BeginIndex{Cmd}{ifoot}% +\BeginIndex{Cmd}{cfoot}% +\BeginIndex{Cmd}{rfoot}% +\BeginIndex{Cmd}{lofoot}% +\BeginIndex{Cmd}{cofoot}% +\BeginIndex{Cmd}{rofoot}% +Die Seitenstile von \Package{scrpage2} sind so definiert, dass ihr Kopf und +Fuß flexibel angepasst werden kann. Hierzu sind sowohl im Kopf als auch im Fuß +drei Felder vorhanden, deren Inhalt modifiziert werden kann. Die Befehle +zur Modifikation sind in \autoref{fig:scrpage-de.leheadetall} verdeutlicht. Die +in der Mitte dargestellten Befehle modifizieren sowohl die Felder der linken +als auch der rechten Seite. Alle Befehle haben sowohl ein optionales als auch +ein obligatorisches Argument. Das optionale Argument bestimmt jeweils das +durch den Befehl festgelegte Feld im plain-Seitenstil, +\Pagestyle{scrplain}. Das obligatorische Argument definiert das entsprechende +Feld im Seitenstil \Pagestyle{scrheadings}. + +\begin{figure} +% \centering + \setcapindent{0pt}% + \begin{captionbeside} + [Befehle zur Manipulation der \Package{scrpage2}-Seitenstile]% + {\hspace{0pt plus 1ex}% + Zuord\-nung der Befehle zur Manipulation der beiden Seiten\-stile + \Pagestyle{scrheadings} und \Pagestyle{scrplain} zu den Feldern im + Kopf und Fuß der Seiten} + [l] + \setlength{\unitlength}{.95mm}\begin{picture}(100,65)(0,8)\small + \put(0,12){\dashbox{2}(40,56){linke Seite}} + \put(60,12){\dashbox{2}(40,56){rechte Seite}} + % Felder: oben links + \put(1,63){\framebox(8,4){~}} + \put(16,63){\framebox(8,4){~}} + \put(31,63){\framebox(8,4){~}} + % Felder: oben rechts + \put(61,63){\framebox(8,4){~}} + \put(76,63){\framebox(8,4){~}} + \put(91,63){\framebox(8,4){~}} + % Felder: unten links + \put(1,13){\framebox(8,4){~}} + \put(16,13){\framebox(8,4){~}} + \put(31,13){\framebox(8,4){~}} + % Felder: unten rechts + \put(61,13){\framebox(8,4){~}} + \put(76,13){\framebox(8,4){~}} + \put(91,13){\framebox(8,4){~}} + % die Befehle und Pfeile + % für beidseitig + % + \put(50,65){\makebox(0,0){\Macro{ihead}}} + \put(44,65){\vector(-1,0){4}}\put(56,65){\vector(1,0){4}} + \put(50,58){\makebox(0,0){\Macro{chead}}} + \put(44,58){\line(-1,0){24}}\put(56,58){\line(1,0){24}} + \put(20,58){\vector(0,1){4}}\put(80,58){\vector(0,1){4}} + \put(50,51){\makebox(0,0){\Macro{ohead}}} + \put(44,51){\line(-1,0){40}}\put(56,51){\line(1,0){40}} + \put(4,51){\vector(0,1){11}}\put(96,51){\vector(0,1){11}} + % + \put(50,15){\makebox(0,0){\Macro{ifoot}}} + \put(56,15){\vector(1,0){4}}\put(44,15){\vector(-1,0){4}} + \put(50,22){\makebox(0,0){\Macro{cfoot}}} + \put(44,22){\line(-1,0){24}}\put(56,22){\line(1,0){24}} + \put(20,22){\vector(0,-1){4}}\put(80,22){\vector(0,-1){4}} + \put(50,29){\makebox(0,0){\Macro{ofoot}}} + \put(44,29){\line(-1,0){40}}\put(56,29){\line(1,0){40}} + \put(4,29){\vector(0,-1){11}}\put(96,29){\vector(0,-1){11}} + % Befehle für einseitig + \put(5,69){\makebox(0,0)[b]{\Macro{lehead}}} + \put(20,69){\makebox(0,0)[b]{\Macro{cehead}}} + \put(35,69){\makebox(0,0)[b]{\Macro{rehead}}} + % + \put(65,69){\makebox(0,0)[b]{\Macro{lohead}}} + \put(80,69){\makebox(0,0)[b]{\Macro{cohead}}} + \put(95,69){\makebox(0,0)[b]{\Macro{rohead}}} + % + \put(5,11){\makebox(0,0)[t]{\Macro{lefoot}}} + \put(20,11){\makebox(0,0)[t]{\Macro{cefoot}}} + \put(35,11){\makebox(0,0)[t]{\Macro{refoot}}} + % + \put(65,11){\makebox(0,0)[t]{\Macro{lofoot}}} + \put(80,11){\makebox(0,0)[t]{\Macro{cofoot}}} + \put(95,11){\makebox(0,0)[t]{\Macro{rofoot}}} + \end{picture} + \end{captionbeside} +% \caption[Befehle zur Manipulation der \Package{scrpage2}-Seitenstile]% +% {Zuordnung der Befehle zur Manipulation der Seitenstile +% \Pagestyle{scrheadings} und \Pagestyle{scrplain} zu den manipulierten +% Seitenelementen} + \label{fig:scrpage-de.leheadetall} +\end{figure} + +\begin{Example} + Angenommen, man möchte bei \Pagestyle{scrheadings} zentriert im Seitenfuß + die Seitenzahl dargestellt haben, dann benutzt man einfach: +\begin{lstcode} + \cfoot{\pagemark} +\end{lstcode} + Sollen die Seitenzahlen\Index{Paginierung} im Kopf außen und die + Kolumnentitel\Index{Kolumnentitel} innen stehen, dann erfolgt dies mit: +\begin{lstcode} + \ohead{\pagemark} + \ihead{\headmark} + \cfoot{} +\end{lstcode} + Das \Macro{cfoot}\PParameter{} ist nur notwendig, um eine möglicherweise in + der Mitte des Fußes vorhandene Seitenzahl zu entfernen. +\end{Example} + +Die Befehle, die direkt nur einem Feld zugeordnet sind, können für +anspruchsvollere Vorhaben genutzt werden. + +\begin{Example} + Angenommen, man hat den Auf"|trag, einen Jahresbericht einer Firma zu + erstellen, dann könnte das so angegangen werden: +\begin{lstcode} + \ohead{\pagemark} + \rehead{Jahresbericht 2001} + \lohead{\headmark} + \cefoot{Firma WasWeißIch} + \cofoot{Abteilung Entwicklung} +\end{lstcode} + Natürlich muss man hier dafür sorgen, dass mittels \Macro{cofoot} der Fuß + der rechten Seite aktualisiert wird, wenn eine neue Abteilung im Bericht + besprochen wird. +\end{Example} + +Wie oben dargestellt, gibt es einen zu \Pagestyle{scrheadings} +korrespondierenden plain-Seitenstil. Da es auch möglich sein soll, diesen +Stil anzupassen, unterstüt"-zen die Befehle ein optionales Argument. Damit +kann der Inhalt des entsprechenden Feldes im plain-Seitenstil modifiziert +werden. + +\begin{Example} + Um für die Nutzung von \Pagestyle{scrheadings} die Position der Seitenzahlen + festzulegen, kann man folgendes benutzen: +\begin{lstcode} + \cfoot[\pagemark]{} + \ohead[]{\pagemark} +\end{lstcode} + Wird anschließend der Stil \Pagestyle{plain} genutzt, beispielsweise weil + \Macro{chapter} eine neue Seite beginnt und darauf umschaltet, dann steht + die Seitenzahl zentriert im Seitenfuß. +\end{Example} +% +\EndIndex{Pagestyle}{scrheadings}% +\EndIndex{Pagestyle}{scrplain}% + + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-18 +\begin{Declaration} + \Macro{clearscrheadings}\\ + \Macro{clearscrplain}\\ + \Macro{clearscrheadfoot} +\end{Declaration}% +\BeginIndex{Cmd}{clearscrheadings}% +\BeginIndex{Cmd}{clearscrplain}% +\BeginIndex{Cmd}{clearscrheadfoot}% +Will man sowohl den Seitenstil \Pagestyle{scrheadings} als auch den dazu +gehörenden plain-Seitenstil von Grund auf neu definieren, +muss man häufig zusätzlich einige der bereits belegten Seitenelemente +löschen. Da man selten alle Elemente mit neuem Inhalt füllt, sind +dazu in den meisten Fällen mehrere Befehle mit leeren Parametern +notwendig. +Mit Hilfe dieser drei Befehle ist das Löschen schnell und +gründlich möglich. Während \Macro{clearscrheadings} lediglich alle +Felder des Seitenstils \Pagestyle{scrheadings} und \Macro{clearscrplain} +alle Felder des zugehörigen plain-Seitenstils löscht, werden +von \Macro{clearscrheadfoot} alle Felder beider Seitenstile auf leere +Inhalte gesetzt. +\begin{Example} + Sie wollen unabhängig davon, wie die Seitenstile derzeit aussehen, + die Standardform der \KOMAScript-Klassen bei zweiseitigem Satz + erreichen. Dies ist mit nur drei Befehlen möglich: +\begin{lstcode} + \clearscrheadfoot + \ohead{\headmark} + \ofoot[\pagemark]{\pagemark} +\end{lstcode} + Ohne die Befehle \Macro{clearscrheadings}, \Macro{clearscrplain} und + \Macro{clearscrheadfoot} wären doppelt so viele Anweisungen und neun weitere + leere Argumente notwendig: +\begin{lstcode} + \ihead[]{} + \chead[]{} + \ohead[]{\headmark} + \ifoot[]{} + \cfoot[]{} + \ofoot[\pagemark]{\pagemark} +\end{lstcode} + Einige davon könnten natürlich entfallen, wenn man von einer + konkreten Vorbelegung ausginge. +\end{Example} +% +\EndIndex{Cmd}{clearscrheadings}% +\EndIndex{Cmd}{clearscrplain}% +\EndIndex{Cmd}{clearscrheadfoot}% +% +\EndIndex{Cmd}{lehead}\EndIndex{Cmd}{cehead}\EndIndex{Cmd}{rehead}% +\EndIndex{Cmd}{ihead}\EndIndex{Cmd}{chead}\EndIndex{Cmd}{ohead}% +\EndIndex{Cmd}{lohead}\EndIndex{Cmd}{cohead}\EndIndex{Cmd}{rohead}% +\EndIndex{Cmd}{lefoot}\EndIndex{Cmd}{cefoot}\EndIndex{Cmd}{refoot}% +\EndIndex{Cmd}{ifoot}\EndIndex{Cmd}{cfoot}\EndIndex{Cmd}{rfoot}% +\EndIndex{Cmd}{lofoot}\EndIndex{Cmd}{cofoot}\EndIndex{Cmd}{rofoot}% + +% Satz leicht geaendert: mjk 2001-08-18 +In den vorausgehenden Beispielen wurden schon zwei Befehle benutzt, die noch +gar nicht besprochen wurden. Das soll jetzt nachgeholt werden. + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-17 +\begin{Declaration} + \Macro{leftmark}\\ + \Macro{rightmark} +\end{Declaration}% +\BeginIndex{Cmd}{leftmark}% +\BeginIndex{Cmd}{rightmark}% +Diese beiden Befehle erlauben es, auf die Kolumnentitel zuzugreifen, die +normalerweise für die linke bzw. die rechte Seite gedacht sind. Diese beiden +Befehle werden nicht von \Package{scrpage2}, sondern direkt vom \LaTeX-Kern +zur Verfügung gestellt. Wenn in diesem Kapitel vom Kolumnentitel der linken +Seite oder vom Kolumnentitel der rechten Seite die Rede ist, dann ist damit +eigentlich der Inhalt von \Macro{leftmark} und \Macro{rightmark} gemeint. +% +\EndIndex{Cmd}{leftmark}% +\EndIndex{Cmd}{rightmark}% + + +\begin{Declaration} +\Macro{headmark} +\end{Declaration}% +\BeginIndex{Cmd}{headmark}% +Dieser Befehl ermöglicht es, auf die Inhalte der Kolumnentitel zuzugreifen. +Im Gegensatz zu den originalen \LaTeX{}-Befehlen \Macro{leftmark} und +\Macro{rightmark} braucht man nicht auf die richtige Zuordnung zur linken oder +rechten Seite zu achten.% +% +\EndIndex{Cmd}{headmark} + + +\begin{Declaration} + \Macro{pagemark} +\end{Declaration}% +\BeginIndex{Cmd}{pagemark}% +Dieser Befehl ermöglicht den Zugriff auf die Seitenzahl. Im +\autoref{sec:scrpage-de.basics.format}, \autopageref{desc:scrpage-de.cmd.pnumfont} +wird der Befehl \Macro{pnumfont} zur Formatierung der Seitenzahl vorgestellt, +den \Macro{pagemark} automatisch berücksichtigt.% +% +\EndIndex{Cmd}{pagemark} + + +\begin{Declaration} + \Pagestyle{useheadings} +\end{Declaration}% +\BeginIndex{Pagestyle}{useheadings}% +Das Paket \Package{scrpage2} ist in erster Linie dafür gedacht, dass die +bereitgestellten Stile benutzt oder eigene Stile definiert werden. Jedoch +kann es notwendig sein, auch auf einen von der Dokumentklasse zur Verfügung +gestellten Stil zurückzuschalten. Es wäre nahe liegend, dieses mit +\Macro{pagestyle}\PParameter{headings} vorzunehmen. Das hätte aber den +Nachteil, dass die nachfolgend besprochenen Befehle \Macro{automark} und +\Macro{manualmark} nicht wie erwartet funktionierten. Daher sollte mit +\Macro{pagestyle}\PParameter{useheadings}\IndexCmd{pagestyle} auf die +originalen Stile umgeschaltet werden. Eine solche Umschaltung hat dann keine +Auswirkung darauf, ob mit manuellen oder automatischen Kolumnentiteln +gearbeitet wird.% +% +\EndIndex{Pagestyle}{useheadings} + + +\subsection{Manuelle und automatische Kolumnentitel} +\label{sec:scrpage-de.basics.mark} +% \automark \manualmark +% +\BeginIndex{}{Kolumnentitel>automatisch}% +\BeginIndex{}{Kolumnentitel>manuell}% +Gewöhnlich\textnote{Achtung!} gibt es zu einem \Pagestyle{headings}-Stil eine +\emph{my}-Variante. Ist ein solcher Stil aktiv, dann werden die Kolumnentitel +nicht mehr automatisch aktualisiert. Bei \Package{scrpage2} wird ein anderer +Weg beschritten. Ob die Kolumnentitel lebend sind oder nicht, bestimmen die +Befehle \Macro{automark} und \Macro{manualmark}. Die Voreinstellung kann auch +bereits beim Laden des Paketes über die Optionen \Option{automark} und +\Option{manualmark} beeinflusst werden (siehe +\autoref{sec:scrpage-de.basics.options}, +\autopageref{desc:scrpage-de.option.automark}). + + +\begin{Declaration} +\Macro{manualmark} +\end{Declaration}% +\BeginIndex{Cmd}{manualmark}% +Wie der Name bereits verdeutlicht, schaltet \Macro{manualmark} die +Aktualisierung der Kolumnentitel aus. Es bleibt somit dem Nutzer überlassen, +für eine Aktualisierung bzw. für den Inhalt der Kolumnentitel zu sorgen. Dazu +stehen die Befehle \Macro{markboth}\IndexCmd{markboth} und +\Macro{markright}\IndexCmd{markright} aus dem \LaTeX-Kern bereit. Diese +Anweisungen sind im Abschnitt über Seitenstile in der \KOMAScript-Anleitung +erklärt.% +% +\EndIndex{Cmd}{manualmark} + + +% Ergaenzt mjk 2001-07-17 +\begin{Declaration} + \Macro{automark}\OParameter{rechte Seite}\Parameter{linke Seite} +\end{Declaration}% +\BeginIndex{Cmd}{automark}% +Die Anweisung \Macro{automark} aktiviert die automatische Aktualisierung des +Kolumnentitels. Für die beiden Parameter sind die Bezeichnungen der +Gliederungsebenen\Index{Gliederungsebenen} einzusetzen, deren Titel an +entsprechender Stelle erscheinen soll. Gültige Werte für die Parameter sind: +\PValue{part}\ChangedAt{v2.2}{\Package{scrpage2}}, \PValue{chapter}, +\PValue{section}, \PValue{subsection}, \PValue{subsubsection}, +\PValue{paragraph} und \PValue{subparagraph}. Der Wert \PValue{part} führt bei +Verwendung der meisten Klassen nicht zu dem gewünschten Ergebnis. Bisher ist +nur von den \KOMAScript-Klassen ab Version~2.9s bekannt, dass dieser Wert +unterstützt wird. Das optionale Argument \PName{rechte Seite} ist +ver\-ständlicherweise nur für zweiseitigen Satz gedacht. Im einseitigen Satz +sollten Sie normalerweise darauf verzichten. Mit Hilfe der Option +\Option{autooneside}\IndexOption{autooneside}\important{\Option{autooneside}} +können Sie auch einstellen, dass das optionale Argument im +einseitigen\Index{einseitig} Satz automatisch ignoriert wird (siehe +\autoref{sec:scrpage-de.basics.options}, +\autopageref{desc:scrpage-de.option.autooneside}). +\begin{Example} + Wird beispielsweise mit einer \emph{book}-Klasse gearbeitet, deren höch\-ste + Gliederungsebene \emph{chapter} ist, dann stellt nach einem vorhergehenden + \Macro{manualmark} der Befehl +\begin{lstcode} + \automark[section]{chapter} +\end{lstcode} + den Originalzustand wieder her. Bevorzugt man stattdessen, die tieferen + Gliederungsebenen angezeigt zu bekommen, dann erfolgt dies mit: +\begin{lstcode} + \automark[subsection]{section} +\end{lstcode} +\end{Example} + +\begin{Explain} + Die Markierung der jeweils höheren Gliederungsebene wird mit Hilfe von + \Macro{markboth}\IndexCmd{markboth} gesetzt. Die Markierung der + tieferen Gliederungsebene wird mit \Macro{markright}\IndexCmd{markright} + bzw. \Macro{markleft}\IndexCmd{markleft} gesetzt. Der entsprechende Aufruf + erfolgt indirekt über die Gliederungsbefehle. Die Anweisung \Macro{markleft} + wird von \Package{scrpage2} bereitgestellt und ist vergleichbar zu + \Macro{markright} aus dem \LaTeX-Kern + definiert. Obwohl sie nicht als internes Makro definiert ist, wird von einem + direkten Gebrauch abgeraten. +\end{Explain} +\EndIndex{Cmd}{automark} +\EndIndex{}{Kolumnentitel>automatisch}% +\EndIndex{}{Kolumnentitel>manuell}% + + +\subsection{Formatierung der Kopf- und Fußzeilen} +\label{sec:scrpage-de.basics.format} +% \headfont \pnumfont +% \setheadwidth \setfootwidth +% \set(head|foot)(top|sep|bot)line +Im vorherigen Abschnitt ging es hauptsächlich um inhaltliche Dinge. Das +genügt natürlich nicht, um die gestalterischen Ambitionen zu +befriedigen. Deshalb soll es sich in diesem Abschnitt ausschließlich darum +drehen. + +\begin{Declaration} + \Macro{headfont}\\ + \Macro{footfont}\\ + \Macro{pnumfont} +\end{Declaration}% +\BeginIndex{Cmd}{headfont}% +\BeginIndex{Cmd}{footfont}% +\BeginIndex{Cmd}{pnumfont}% +Die Schriftformatierung für den Seitenkopf und -fuß übernimmt der Befehl +\Macro{headfont}, \Macro{footfont} die Abweichung davon für den Fuß und +\Macro{pnumfont} wiederum die Abweichung davon für die Seitenzahl. +\begin{Example} + Um beispielsweise den Kopf in fetter, serifenloser Schrift und den Fuß in + nicht fetter, serifenloser Schrift zu setzen und die Seitenzahl geneigt + mit Serifen erscheinen zu lassen, nutzt man folgende Definitionen: +\begin{lstcode} + \renewcommand*{\headfont}{% + \normalfont\sffamily\bfseries} + \renewcommand*{\footfont}{% + \normalfont\sffamily} + \renewcommand*{\pnumfont}{% + \normalfont\rmfamily\slshape} +\end{lstcode} +\end{Example} +\EndIndex{Cmd}{pnumfont}% +\EndIndex{Cmd}{footfont}% +\EndIndex{Cmd}{headfont}% + + +\BeginIndex{FontElement}{pagehead}% +\BeginIndex{FontElement}{pagefoot}% +\BeginIndex{FontElement}{pagenumber}% +Ab Version 2.8p der \KOMAScript{}-Klassen wurde die Schnittstelle für +Schriftattribute vereinheitlicht. Wird \Package{scrpage2} in Verbindung mit +einer dieser Klassen verwendet, dann sollte die Zuweisung in der Art erfolgen, +wie sie in der \KOMAScript-Anleitung beschrieben wird. +\begin{Example} + Statt \Macro{renewcommand} wird bei Verwendung einer \KOMAScript-Klasse + vorzugsweise der Befehl \Macro{setkomafont} verwendet. Die vorhergehenden + Definitionen lauten damit: +\begin{lstcode} + \setkomafont{pagehead}{% + \normalfont\sffamily\bfseries} + \setkomafont{pagefoot}{% + \normalfont\sffamily} + \setkomafont{pagenumber}{% + \normalfont\rmfamily\slshape} +\end{lstcode} +\end{Example} +\EndIndex{FontElement}{pagenumber}% +\EndIndex{FontElement}{pagefoot}% +\EndIndex{FontElement}{pagehead}% + + +\begin{Declaration} +\Macro{setheadwidth}\OParameter{Verschiebung}\Parameter{Breite}\\ +\Macro{setfootwidth}\OParameter{Verschiebung}\Parameter{Breite} +\end{Declaration}% +\BeginIndex{Cmd}{setheadwidth}% +\BeginIndex{Cmd}{setfootwidth}% +Normalerweise entsprechen die Breiten von Kopf- und Fußzeile der Breite des +Textbereichs.\Index{Kopf>Breite}\Index{Fuss=Fuß>Breite} Die beiden Befehle +\Macro{setheadwidth} und \Macro{setfootwidth} ermöglichen dem Anwender, auf +einfache Weise die Breiten seinen Bedürfnissen anzupassen. Das obligatorische +Argument \PName{Breite} nimmt den Wert der Breite des Kopfes bzw. des Fußes +auf, \PName{Verschiebung} ist ein Längenmaß für die Verschiebung des +entsprechenden Elements in Richtung des äußeren Seitenrandes. + +Für die möglichen Standardfälle akzeptiert das obligatorische Argument +\PName{Breite} auch folgende symbolische Werte: +\begin{labeling}[\ --]{\PValue{textwithmarginpar}} +\item[\PValue{paper}] die Breite des Papiers +\item[\PValue{page}] die Breite der Seite +\item[\PValue{text}] die Breite des Textbereichs +\item[\PValue{textwithmarginpar}] die Breite des Textbereichs inklusive +Seitenrand +\item[\PValue{head}] die aktuelle Breite des Seitenkopfes +\item[\PValue{foot}] die aktuelle Breite des Seitenfußes +\end{labeling} +Der Unterschied zwischen \PValue{paper} und \PValue{page} besteht darin, dass +\PValue{page} die Breite des Papiers abzüglich der Bindekorrektur ist, falls +das \Package{typearea}-Paket\IndexPackage{typearea} verwendet wird (siehe das +Kapitel über \Package{typearea} in der \KOMAScript-Anleitung). Ohne Verwendung +von \Package{typearea} sind \PValue{paper} und \PValue{page} +identisch.%mjk-2001-08-17 + +\begin{Example} + Angenommen, man möchte ein Seitenlayout wie im + \emph{\LaTeX-Begleiter}, bei dem die Kopfzeile in den Rand ragt, + dann geschieht das ganz einfach mit: +\begin{lstcode} + \setheadwidth[0pt]{textwithmarginpar} +\end{lstcode} +% + und sieht dann auf einer rechten Seite folgendermaßen aus: +% + \begin{XmpTopPage} + \XmpHeading{10,29}{85} + \thinlines\XmpRule{10,27}{85} + \XmpSetText[\XmpTopText]{10,24} + \XmpMarginNote{83,14} + \end{XmpTopPage} +% + Soll der Seitenfuß die gleiche Breite und Ausrichtung haben, dann hat man + jetzt zwei Wege. Der erste ist, man wiederholt das Gleiche für den + Seitenfuß mit: +\begin{lstcode} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstcode} +% + oder man greift auf den anderen symbolischen Wert \PValue{head} zurück, da + der Kopf bereits die gewünschte Breite hat. +\begin{lstcode} + \setfootwidth[0pt]{head} +\end{lstcode} +\end{Example} + +Wird keine Verschiebung angegeben, das heißt auf das optionale Argument +verzichtet, dann erscheint der Kopf bzw. der Fuß symmetrisch auf der Seite +angeordnet. Es wird somit ein Wert für die Verschiebung automatisch ermittelt, +der der aktuellen Seitengestalt entspricht. + +\begin{Example} + Entsprechend dem vorherigen Beispiel wird hier auf das optionale Argument + verzichtet: +\begin{lstcode} + \setheadwidth{textwithmarginpar} +\end{lstcode} +% + und sieht dann auf einer rechten Seite folgendermaßen aus: +% + \begin{XmpTopPage} + \XmpHeading{5,29}{85} + \thinlines\XmpRule{5,27}{85} + \XmpSetText[\XmpTopText]{10,24} + \XmpMarginNote{83,14} + \end{XmpTopPage} +\end{Example} + +Wie zu sehen, ist der Kopf jetzt nach innen verschoben, wobei die Kopfbreite +sich nicht geändert hat. Die Verschiebung ist so berechnet, dass die +Seitenproportionen auch hier sichtbar werden. +\EndIndex{Cmd}{setheadwidth}\EndIndex{Cmd}{setfootwidth} + + +\begin{Declaration} + \Macro{setheadtopline}\OParameter{Länge}\Parameter{Dicke}% + \OParameter{Anweisungen}\\ + \Macro{setheadsepline}\OParameter{Länge}\Parameter{Dicke}% + \OParameter{Anweisungen}\\ + \Macro{setfootsepline}\OParameter{Länge}\Parameter{Dicke}% + \OParameter{Anweisungen}\\ + \Macro{setfootbotline}\OParameter{Länge}\Parameter{Dicke}% + \OParameter{Anweisungen} +\end{Declaration}% +\BeginIndex{Cmd}{setheadtopline}\BeginIndex{Cmd}{setheadsepline}% +\BeginIndex{Cmd}{setfootsepline}\BeginIndex{Cmd}{setfootbotline}% +Entsprechend den Größenparametern für die Kopf- und Fußzeile gibt es auch +Befehle, die die Dimensionen der Linien im Kopf und Fuß modifizieren +können. Dazu sollten diese Linien aber zunächst erst einmal eingeschaltet +werden. Siehe hierzu die Optionen \Option{headtopline}, \Option{headsepline}, +\Option{footsepline}, \Option{footbotline} in +\autoref{sec:scrpage-de.basics.options}, +\autopageref{desc:scrpage-de.option.headsepline}. + +\begin{labeling}[\ --]{\Macro{setfootsepline}} +\item[\Macro{setheadtopline}] modifiziert die Parameter für die Linie +über dem Seitenkopf +\item[\Macro{setheadsepline}] modifiziert die Parameter für die Linie +zwischen Kopf und Textkörper +\item[\Macro{setfootsepline}] modifiziert die Parameter für die Linie +zwischen Text und Fuß +\item[\Macro{setfootbotline}] modifiziert die Parameter für die Linie +unter dem Seitenfuß +\end{labeling} + +Das obligatorische Argument \PName{Dicke} bestimmt, wie stark die Linie +gezeichnet wird. Das optionale Argument \PName{Länge} akzeptiert die gleichen +symbolischen Werte wie \PName{Breite} bei \Macro{setheadwidth}, also auch einen +normalen Längenausdruck. Solange im Dokument dem optionalen Argument +\PName{Länge} kein Wert zugewiesen wurde, passt sich die entsprechende +Linienlänge automatisch der Breite des Kopfes bzw. des Fußes an. + +Möchte man diesen Automatismus für die Länge einer Linie wieder restaurieren, +dann nutzt man im Längenargument den Wert \PValue{auto}. + +Mit\ChangedAt{v2.2}{\Package{scrpage2}} dem optionalen Argument +\PName{Anweisungen} können zusätzliche Anweisungen definiert werden, die vor +dem Zeichnen der jeweiligen Linie auszuführen sind. Das können beispielsweise +Anweisungen sein, um die +Farbe\Index{Kopf>Farbe}\Index{Fuss=Fuß>Farbe}\Index{Farbe>im + Kopf}\Index{Farbe>im Fuss=im Fuß} der Linie zu ändern. Bei Verwendung einer +\KOMAScript-Klasse können diese Anweisungen auch über +\Macro{setkomafont}\IndexCmd{setkomafont} für eines der Elemente +\FontElement{headtopline}\IndexFontElement[indexmain]{headtopline}% +\important[i]{\FontElement{headtopline}\\ + \FontElement{headsepline}\\ + \FontElement{footsepline}\\ + \FontElement{footbottomline}}, +\FontElement{headsepline}\IndexFontElement[indexmain]{headsepline}, +\FontElement{footsepline}\IndexFontElement[indexmain]{footsepline}, +\FontElement{footbottomline}\IndexFontElement[indexmain]{footbottomline} oder +auch \FontElement{footbotline}\IndexFontElement[indexmain]{footbotline} +gesetzt und mit \Macro{addtokomafont}\IndexCmd{addtokomafont} erweitert +werden. Die beiden Anweisungen \Macro{setkomafont} und \Macro{addtokomafont} +sind in der \KOMAScript-Anleitung näher beschrieben. + +\begin{Declaration} +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{\upshape\PValue{current}}\\ +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\\ +\XMacro{setheadtopline}\OParameter{\upshape\PValue{auto}}\Parameter{}\OParameter{} +\end{Declaration}% +Die hier am Befehl \Macro{setheadtopline} illustrierten Argumente +sind natürlich auch für die anderen drei Längenbefehle gültig. + +Enthält das obligatorische Argument den Wert \PValue{current} oder wird +leer gelassen, dann wird die Dicke der Linie nicht verändert. Das kann +genutzt werden, wenn die Länge der Linie, aber nicht die Dicke modifiziert +werden soll. + +Wird das optionale Argument \PName{Anweisungen} weggelassen, so bleiben +eventuell zuvor gesetzte Anweisungen erhalten. Wird hingegen ein leeres +Argument \PName{Anweisungen} gesetzt, so werden eventuell zuvor gesetzte +Anweisungen wieder gelöscht. + +\begin{Example} + Soll beispielsweise der Kopf mit einer kräftigen Linie von 2\,pt darüber und + einer normalen von 0,4\,pt zwischen Kopf und Text abgesetzt werden, dann + erfolgt das mit: +\begin{lstcode} + \setheadtopline{2pt} + \setheadsepline{.4pt} +\end{lstcode} +Zusätzlich\textnote{Achtung!} sind unbedingt die Optionen +\Option{headtopline} und \Option{headsepline} vorzugsweise global im +optionalen Argument von \Macro{documentclass} zu setzen. Das Ergebnis könnte +dann wie folgt aussehen. +% + \begin{XmpTopPage} + \XmpHeading{10,29}{70} + \thinlines\XmpRule{10,27}{70} + \thicklines\XmpRule{10,32}{70} + \XmpSetText[\XmpTopText]{10,24} + \XmpMarginNote{83,14} + \end{XmpTopPage} + + Sollen diese Linien zusätzlich in roter Farbe gesetzt werden, dann sind die + Anweisungen beispielsweise wie folgt zu ändern: +\begin{lstcode} + \setheadtopline{2pt}[\color{red}] + \setheadsepline{.4pt}[\color{red}] +\end{lstcode} + In diesem und auch dem folgenden Beispiel wurde für die Aktivierung der + Farbe die Syntax des \Package{color}\IndexPackage{color}-Pakets verwendet, + das dann natürlich auch geladen werden muss. \Package{scrpage2} selbst + bietet keine direkte Farbunterstützung. Damit ist jedes beliebige + Farbunterstützungspaket verwendbar. + + Mit einer \KOMAScript-Klasse kann alternativ +\begin{lstcode} + \setheadtopline{2pt} + \setheadsepline{.4pt} + \setkomafont{headtopline}{\color{red}} + \setkomafont{headsepline}{\color{red}} +\end{lstcode} + verwendet werden. + + Die automatische Anpassung an die Kopf- und Fußbreiten illustriert folgendes + Beispiel, für das die Optionen \Option{footbotline} und \Option{footsepline} + gesetzt sein sollten: +\begin{lstcode} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstcode} + +%\phantomsection für hyperref-\pageref-Link jum-2001/11/24 + \phantomsection\label{page:scrpage-de.autoLineLength}% + \begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{17,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,36} + \XmpMarginNote{83,26} + \end{XmpBotPage} +\end{Example} +% +Nun mag nicht jedem die Ausrichtung der Linie über der Fußzeile gefallen, +sondern es wird in einem solchen Fall erwartet, dass sie wie der Kolumnentitel +linksbündig zum Text ist. Diese Einstellung kann nur global in Form einer +Paketoption erfolgen und wird im folgenden +\autoref{sec:scrpage-de.basics.options} mit anderen Optionen beschrieben.% +% +\EndIndex{Cmd}{setheadtopline}\EndIndex{Cmd}{setheadsepline}% +\EndIndex{Cmd}{setfootsepline}\EndIndex{Cmd}{setfootbotline}% + + +\subsection{Optionen beim Laden des Paketes} +\label{sec:scrpage-de.basics.options} + +Während bei den \KOMAScript-Klassen die Mehrzahl der Optionen auch noch nach +dem Laden der Klasse mit \Macro{KOMAoptions} und \Macro{KOMAoption} geändert +werden kann, trifft dies für das Paket \Package{scrpage2} \iffree{derzeit noch +}{}nicht zu. Alle Optionen für dieses Paket müssen als globale Optionen, also +im optionalen Argument von \Macro{documentclass}, oder als Paketoptionen, also +im optionalen Argument von \Macro{usepackage}, angegeben werden. + +% head(in|ex)clude foot(in|ex)clude --> typearea +% headtopline headsepline footbotline footsepline (plain...) +% komastyle standardstyle +% markuppercase markusecase +% automark manualmark +\begin{Declaration} +\Option{headinclude}\\ +\Option{headexclude}\\ +\Option{footinclude}\\ +\Option{footexclude} +\end{Declaration}% +\BeginIndex{Option}{headinclude}\BeginIndex{Option}{footinclude}% +\BeginIndex{Option}{headexclude}\BeginIndex{Option}{footexclude}% +Diese\textnote{Achtung!} Optionen sollten bei Verwendung von +\KOMAScript~3\ChangedAt{v2.3}{\Package{scrpage2}} nicht mehr beispielsweise +per optionalem Argument von \Macro{usepackage} oder per +\Macro{PassOptionsToPackage} direkt an \Package{scrpage2} übergeben +werden. Lediglich aus Gründen der Kompatibilität sind sie noch in +\Package{scrpage2} deklariert und werden von diesem als \Option{headinclude}, +\OptionValue{headinclude}{false}, \Option{footinclude} und +\OptionValue{footinclude}{false} an das Paket \Package{typearea} +weitergereicht. +\EndIndex{Option}{headinclude}\EndIndex{Option}{footinclude}% +\EndIndex{Option}{headexclude}\EndIndex{Option}{footexclude} + + +\begin{Declaration} +\Option{headtopline}\\ +\Option{plainheadtopline}\\ +\Option{headsepline}\\ +\Option{plainheadsepline}\\ +\Option{footsepline}\\ +\Option{plainfootsepline}\\ +\Option{footbotline}\\ +\Option{plainfootbotline} +\end{Declaration}% +\BeginIndex{Option}{headtopline}\BeginIndex{Option}{plainheadtopline}% +\BeginIndex{Option}{headsepline}\BeginIndex{Option}{plainheadsepline}% +\BeginIndex{Option}{footsepline}\BeginIndex{Option}{plainfootsepline}% +\BeginIndex{Option}{footbotline}\BeginIndex{Option}{plainfootbotline}% +Eine Grundeinstellung für die Linien unter und über den Kopf- und Fußzeilen +kann mit diesen Optionen vorgenommen werden. Diese Einstellungen gelten dann +als Standard für alle mit \Package{scrpage2} definierten Seitenstile. Wird +eine von diesen Optionen verwendet, dann wird eine Linienstärke von 0,4\,pt +eingesetzt. Da es zum Seitenstil \Pagestyle{scrheadings} einen entsprechenden +plain-Stil gibt, kann mit den \Option{plain\dots}-Optionen auch die +entsprechende Linie des plain-Stils konfiguriert werden. Diese +\Option{plain}-Optionen wirken aber nur, wenn auch die korrespondierende +Option ohne \Option{plain} aktiviert wurde. Somit zeigt die Option +\Option{plainheadtopline} ohne \Option{headtopline} keine Wirkung. + +Bei diesen Optionen ist zu beachten, dass der entsprechende Seitenteil in den +Textbereich des Satzspiegels mit übernommen wird, wenn eine Linie aktiviert +wurde. Wird also mittels \Option{headsepline} die Trennlinie zwischen Kopf +und Text aktiviert, dann wird automatisch mittels \Package{typearea} der +Satzspiegel so berechnet, dass der Seitenkopf Teil des Textblocks ist. + +Die\textnote{Achtung!} Bedingungen für die Optionen des vorhergehenden +Abschnitts gelten auch für diesen Automatismus. Das bedeutet, dass das Paket +\Package{typearea} nach \Package{scrpage2} geladen werden muss, +beziehungsweise, dass bei Verwendung einer \KOMAScript{}-Klasse die Optionen +\Option{headinclude} und \Option{footinclude} explizit bei +\Macro{documentclass} gesetzt werden müssen, um Kopf- bzw. Fußzeile in den +Textblock zu übernehmen.% +% +\EndIndex{Option}{headtopline}\EndIndex{Option}{plainheadtopline}% +\EndIndex{Option}{headsepline}\EndIndex{Option}{plainheadsepline}% +\EndIndex{Option}{footsepline}\EndIndex{Option}{plainfootsepline}% +\EndIndex{Option}{footbotline}\EndIndex{Option}{plainfootbotline}% + + +\begin{Declaration} +\Option{ilines}\\ +\Option{clines}\\ +\Option{olines} +\end{Declaration}% +\BeginIndex{Option}{ilines}% +\BeginIndex{Option}{clines}% +\BeginIndex{Option}{olines}% +\Index{Linienausrichtung}% +Bei der Festlegung der Linienlängen kann es vorkommen, dass die Linie zwar die +gewünschte Länge, aber nicht die erwünschte Ausrichtung hat, da sie im Kopf- +bzw. Fußbereich zentriert wird. Mit den hier vorgestellten Paketoptionen kann +global für alle mit \Package{scrpage2} definierten Seitenstile diese Vorgabe +modifiziert werden. Dabei setzt \Option{ilines} die Ausrichtung so, dass die +Linien an den inneren Rand verschoben werden. Die Option \Option{clines} +verhält sich wie die Standardeinstellung und \Option{olines} richtet am +äußeren Rand aus. + +\begin{Example} + Hier gilt es, das Beispiel zu \Macro{setfootsepline} auf + \autopageref{page:scrpage-de.autoLineLength} mit dem folgenden zu + vergleichen, um die Wirkung der Option \Option{ilines} zu sehen. +\begin{lstcode} + \usepackage[ilines,footsepline,footbotline] + {scrpage2} + \setfootbotline{2pt} + \setfootsepline[text]{.4pt} + \setfootwidth[0pt]{textwithmarginpar} +\end{lstcode} +% Der folgende Text wurde erg"anzt um den Seitenumbruch zu verbessern, +% mjk-2001-10-05: +% \enlargethispage*{2\baselineskip} + Allein die Verwendung der Option \Option{ilines} führt dabei zu der + geänderten Ausgabe, die nachfolgend veranschaulicht wird: +% +\begin{XmpBotPage} + \XmpHeading{10,18}{85} + \thinlines\XmpRule{10,21}{70} + \thicklines\XmpRule{10,16}{85} + \XmpSetText[\XmpBotText]{10,36} + \XmpMarginNote{83,26} +\end{XmpBotPage} + Die Trennlinie zwischen Text und Fuß wird bündig innen im Fußteil + gesetzt und nicht wie bei der Standardeinstellung zentriert. +\end{Example} +\EndIndex{Option}{ilines}\EndIndex{Option}{clines}\EndIndex{Option}{olines} + + +% \phantomsection für hyperref-\pageref-Link jum-2001/11/24 +\begin{Declaration} +\Option{automark}\\ +\Option{manualmark} +\end{Declaration}% +\BeginIndex{Option}{automark}% +\BeginIndex{Option}{manualmark}% +\BeginIndex{}{Kolumnentitel>automatisch}% +\BeginIndex{}{Kolumnentitel>manuell}% +Diese Optionen bestimmen gleich zu Beginn des Dokuments, ob eine automatische +Aktualisierung der Kolumnentitel erfolgt. Die Option \Option{automark} +schaltet die automatische Aktualisierung ein, \Option{manualmark} deaktiviert +sie. +% Das Folgende wurde ergaenzt, weil dazu die haeufigsten Fragen +% bzw. falschen Bug-Reports im Support kamen. +% mjk-2001-09-21: +Ohne Verwendung einer der beiden Optionen bleibt die Einstellung +erhalten, die beim Laden des Paketes gültig war. +\begin{Example} + Sie laden das Paket \Package{scrpage2} unmittelbar nach der Klasse + \Class{scrreprt} und ohne weitere Optionen. Dazu schreiben Sie: +\begin{lstcode} + \documentclass{scrreprt} + \usepackage{scrpage2} +\end{lstcode} + Da bei \Class{scrreprt} der Seitenstil \Pagestyle{plain} voreingestellt + ist, ist dies auch jetzt noch der Fall. Außerdem entspricht die + Voreinstellung \Pagestyle{plain} manuellen Kolumnentiteln. Wenn Sie + also anschließend mit +\begin{lstcode} + \pagestyle{scrheadings} +\end{lstcode} + auf den Seitenstil \Pagestyle{scrheadings} umschalten, sind noch immer + manuelle Kolumnentitel eingestellt. + + Verwenden Sie stattdessen die Dokumentklasse \Class{scrbook}, so + ist nach +\begin{lstcode} + \documentclass{scrbook} + \usepackage{scrpage2} +\end{lstcode} + der Seitenstil \Pagestyle{headings} mit automatischen Kolumnentiteln + aktiviert. Bei anschließender Umschaltung auf den Seitenstil + \Pagestyle{scrheadings} bleiben automatische Kolumnentitel + eingeschaltet. Dabei werden dann weiterhin die Markierungsmakros von + \Class{scrbook} verwendet. + + Verwenden Sie hingegen +\begin{lstcode} + \usepackage[automark]{scrpage2} +\end{lstcode} + so wird unabhängig von der verwendeten Klasse auf automatische + Kolumnentitel umgeschaltet, wobei die Markierungsmakros von + \Package{scrpage2} genutzt werden. + Natürlich wirkt sich dies auf den Seitenstil + \Pagestyle{plain} von \Class{scrreprt} nicht aus. Die Kolumnentitel + werden erst sichtbar, wenn auf den Seitenstil + \Pagestyle{scrheadings}\IndexPagestyle{scrheadings} oder + \Pagestyle{useheadings} oder einen selbst definierten Seitenstil mit + Kolumnentiteln umgeschaltet wird. +\end{Example} +\EndIndex{Option}{automark}\EndIndex{Option}{manualmark}% + + +% Folgende Deklaration und Erklaerung wurde eingefügt von +% mjk 2001-08-17: +\begin{Declaration} + \Option{autooneside} +\end{Declaration}% +\BeginIndex{Option}{autooneside}% +Mit dieser Option wird das optionale Argument von +\Macro{automark}\IndexCmd{automark}\Index{Kolumnentitel>automatisch} im +einseitigen Satz automatisch ignoriert. Siehe hierzu auch die Erläuterung +zum Befehl \Macro{automark} in \autoref{sec:scrpage-de.basics.mark}, +\autopageref{desc:scrpage-de.cmd.automark}.% +% +\EndIndex{Option}{autooneside}% +% +\EndIndex{}{Kolumnentitel>automatisch}% +\EndIndex{}{Kolumnentitel>manuell}% + + +\begin{Declaration} +\Option{komastyle}\\ +\Option{standardstyle} +\end{Declaration}% +\BeginIndex{Option}{komastyle}% +\BeginIndex{Option}{standardstyle}% +Diese Optionen bestimmen, wie die beiden vordefinierten Seitenstile +\Pagestyle{scrheadings} und \Pagestyle{scrplain} gestaltet sind. +Bei \Option{komastyle} wird eine Definition vorgenommen, wie +sie den \KOMAScript{}-Klassen entspricht. +Bei den \KOMAScript{}-Klassen ist dies die Voreinstellung und +kann somit auch für andere Klassen gesetzt werden. + +Die Option \Option{standardstyle} definiert die beiden Seitenstile +wie es von den Standardklassen erwartet wird. +Außerdem wird hier automatisch \Option{markuppercase} aktiviert, +es sei denn, \Option{markusedcase} wird ebenfalls als Option übergeben.% +\EndIndex{Option}{komastyle}% +\EndIndex{Option}{standardstyle} + + +\begin{Declaration} +\Option{markuppercase}\\ +\Option{markusedcase} +\end{Declaration}% +\BeginIndex{Option}{markuppercase}% +\BeginIndex{Option}{markusedcase}% +Für die Funktionalität von \Macro{automark} modifiziert +\Package{scrpage2} interne Befehle, die die Gliederungsbefehle +benutzen, um die lebenden Kolumnentitel zu setzen. +Da einige Klassen, im Gegensatz +zu den \KOMAScript{}-Klassen, die Kolumnentitel in Großbuchstaben +schreiben, muss \Package{scrpage2} wissen, wie die genutzte +Dokumentklasse die lebenden Kolumnentitel darstellt. + +Die Option \Option{markuppercase} zeigt \Package{scrpage2}, dass die benutzte +Klasse die Großschreibweise benutzt. Die Option \Option{markusedcase} sollte +angegeben werden, wenn die benutzte Dokumentklasse keine Großschreibweise +verwendet. Die\textnote{Achtung!} Optionen sind nicht geeignet, eine +entsprechende Darstellung zu erzwingen. Es kann somit zu unerwünschten +Effekten kommen, wenn die Angabe nicht dem Verhalten der Dokumentklasse +entspricht.% +\EndIndex{Option}{markuppercase}\EndIndex{Option}{markusedcase} + +% Die folgende Deklaration und Erklaerung wurde eingefuegt von +% mjk 2001-08-18 +\begin{Declaration} + \Option{nouppercase} +\end{Declaration}% +\BeginIndex{Option}{nouppercase}% +Wie in obiger Erklärung zu \Option{markuppercase} und \Option{markusedcase} +bereits ausgeführt wurde, gibt es Klassen und auch Pakete, die beim Setzen der +lebenden Kolumnentitel\Index{Kolumnentitel>automatisch} mit Hilfe einer der +Anweisungen \Macro{uppercase}\IndexCmd{uppercase}\important{\Macro{uppercase}} +oder +\Macro{MakeUppercase}\IndexCmd{MakeUppercase}\important{\Macro{MakeUppercase}} +den gesamten Eintrag in Großbuchstaben wandeln. Mit der Option +\Option{nouppercase} können diese beiden Anweisungen im Kopf und im Fuß außer +Kraft gesetzt werden. Das gilt aber nur für Seitenstile, die mit Hilfe von +\Package{scrpage2} definiert werden. Dazu zählen auch \Pagestyle{scrheadings} +und der zugehörige plain-Seitenstil. + +Die verwendete Methode ist äußerst brutal und kann dazu führen, dass +auch erwünschte Änderungen von Klein- in +Großbuchstaben\Index{Grossbuchstaben=Großbuchstaben} unterbleiben. Da +diese Fälle nicht sehr häufig sind, stellt \Option{nouppercase} aber +meist eine brauchbare Lösung dar. +\begin{Example} + Sie verwenden die Standardklasse \Class{book}\IndexClass{book}, + wollen aber, dass die lebenden Kolumnentitel nicht in + Großbuchstaben, sondern in normaler gemischter Schreibweise gesetzt + werden. Die Präambel Ihres Dokuments könnte dann wie folgt beginnen: +\begin{lstcode} + \documentclass{book} + \usepackage[nouppercase]{scrpage2} + \pagestyle{scrheadings} +\end{lstcode} + Die Umschaltung auf den Seitenstil \Pagestyle{scrheadings} ist + notwendig, weil sonst der Seitenstil \Pagestyle{headings} verwendet + wird, der von der Option \Option{nouppercase} nicht behandelt wird. +\end{Example} + +In einigen Fällen setzen nicht nur Klassen, sondern auch Pakete +lebende Kolumnentitel in Großbuchstaben. Auch in diesen Fällen hilft +\Option{nouppercase} meist, um zu gemischter Schreibweise +zurückzuschalten.% +% +\EndIndex{Option}{nouppercase} + + +\section{Seitenstile selbst gestalten}\label{sec:scrpage-de.UI} +% +% +\subsection{Die Anwenderschnittstelle}\label{sec:scrpage-de.UI.user} +% \deftripstyle + +\Index{Seiten>Stil}% +Nun möchte man ja nicht immer an die vorgegebenen Seitenstile gebunden sein, +sondern auch seiner Kreativität freien Lauf lassen. +Manchmal ist man auch dazu gezwungen, weil eine bestimmte +\emph{Corporate Identity} einer Firma es verlangt. +Der einfachste Weg damit umzugehen ist +\begin{Declaration} +\Macro{deftripstyle}\Parameter{Name}% +\OParameter{LA}\OParameter{LI}% +\Parameter{KI}\Parameter{KM}\Parameter{KA}% +\Parameter{FI}\Parameter{FM}\Parameter{FA} +\end{Declaration}% +\BeginIndex{Cmd}{deftripstyle}% +Die einzelnen Felder haben folgende Bedeutung: +\begin{labeling}[~--]{\PName{Name}} +\item[\PName{Name}] die Bezeichnung des Seitenstils, die dann bei der + Aktivierung mit \Macro{pagestyle}\Parameter{Name} oder + \Macro{thispagestyle}\Parameter{Name} verwendet wird +\item[\PName{LA}] die Dicke der äußeren Linien, d.\,h. der Linien über der + Kopfzeile und unter der Fußzeile (optional) +\item[\PName{LI}] die Dicke der inneren Linie, d.\,h. der Linien die Kopf und + Fuß vom Textkörper trennen (optional) +\item[\PName{KI}] Inhalt des Feldes im Kopf innenseitig oder bei einseitigem + Layout links +\item[\PName{KM}] Inhalt des Feldes im Kopf zentriert +\item[\PName{KA}] Inhalt des Feldes im Kopf außenseitig oder bei einseitigem + Layout rechts +\item[\PName{FI}] Inhalt des Feldes im Fuß innenseitig oder bei einseitigem + Layout links +\item[\PName{FM}] Inhalt des Feldes im Fuß zentriert +\item[\PName{FA}] Inhalt des Feldes im Fuß außenseitig oder bei einseitigem + Layout rechts +\end{labeling} + +Der Befehl \Macro{deftripstyle} stellt sicherlich die einfachste +Möglichkeit dar, Seitenstile zu definieren. +Leider sind damit auch Einschränkungen verbunden, +da in einem Seitenbereich mit einem durch \Macro{deftripstyle} deklarierten +Seitenstil keine Änderung der Kopf- und Fußlinien erfolgen kann. + +\begin{Example} + Vorgegeben sei ein doppelseitiges Layout, bei dem die Kolumnentitel innen + erscheinen sollen. Weiterhin soll der Dokumenttitel, in diesem Fall kurz + \glqq Bericht\grqq, an den Außenrand in den Kopf, die Seitenzahl soll + zentriert in den Fuß. +\begin{lstcode} + \deftripstyle{DerBericht}% + {\headmark}{}{Bericht}% + {}{\pagemark}{} +\end{lstcode} + + Sollen weiterhin die Linien über dem Kopf und unter dem Fuß + mit 2\,pt erscheinen und der ganze Textkörper mit dünnen Linien + von 0,4\,pt von Kopf und Fuß abgesetzt werden, dann erweitert + man vorherige Definition. +\begin{lstcode} + \deftripstyle{DerBericht}[2pt][.4pt]% + {\headmark}{}{Bericht}% + {}{\pagemark}{} +\end{lstcode} + Das Ergebnis ist in \autoref{fig:scrpage-de2.tomuchlines} zu sehen. +% +\begin{figure} + \typeout{^^J--- Ignore underfull and overfull \string\hbox:}% + \setcapindent{0pt}% + \begin{captionbeside} + [{% + Beispiel eines selbst definierten, von Linien dominierten Seitenstils% + }]{% + Beispiel für einen selbst definierten, von Linien dominierten Seitenstil + mit einem statischen und einem lebenden Kolumnentitel im Kopf und der + Seitenzahl in der Mitte des Fußes.% + \label{fig:scrpage-de2.tomuchlines}% + } + [l] + \iffree{\setlength{\unitlength}{1.15mm}}{\setlength{\unitlength}{1mm}}% + \begin{picture}(85,51)\scriptsize + \thinlines + \put(0,0){\line(0,1){51}} + \put(45,0){\line(0,1){51}} + \put(0,51){\line(1,0){40}} + \put(45,51){\line(1,0){40}} + % + \thicklines + \put(40,0){\line(0,1){51}} + \put(85,0){\line(0,1){51}} + \put(0,0){\line(1,0){40}} + \put(45,0){\line(1,0){40}} + % + \XmpHeading[Bericht\hfill 2 Das Auge]{6,47}{30} + \XmpHeading[2.1 Netzhaut\hfill Bericht]{49,47}{30} + \XmpHeading[\hfill 14\hfill]{6,6.5}{30} + \XmpHeading[\hfill 15\hfill]{49,6.5}{30} + \put(6,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny% + \textbf{2.1 Netzhaut}\\ + \XmpText[49]}}} + \put(49,44){\makebox(0,0)[tl]{\parbox{30\unitlength}{\tiny% + \XmpText[51]}}} + % + \thinlines + \XmpRule{6,45.5}{30}\XmpRule{49,45.5}{30} + \XmpRule{6,8}{30}\XmpRule{49,8}{30} + \linethickness{1pt} + \XmpRule{6,49}{30}\XmpRule{49,49}{30} + \XmpRule{6,5}{30}\XmpRule{49,5}{30} + \end{picture} + \end{captionbeside} + \typeout{^^J--- Don't ignore underfull and overfull \string\hbox:^^J}% +\end{figure} +\end{Example} +\EndIndex{Cmd}{deftripstyle} + + +\subsection{Die Expertenschnittstelle}\label{sec:scrpage-de.UI.expert} +% \defpagestyle \newpagestyle \providepagestyle \renewpagestyle +\Index{Seiten>Stil}% +Einfache Seitenstile, wie sie mit \Macro{deftripstyle} deklariert +werden können, sind erfahrungsgemäß selten. +Entweder verlangt ein Professor, dass die Diplomarbeit so aussieht +wie seine eigene -- und wer will ihm da \emph{ernsthaft} widersprechen -- +oder eine Firma möchte, dass die halbe Finanzbuchhaltung im +Seitenfuß auf"|taucht. Alles kein Problem, denn es gibt noch: +\begin{Declaration} +\Macro{defpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{newpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{renewpagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition}\\ +\Macro{providepagestyle}\Parameter{Name}\Parameter{Kopfdefinition}\Parameter{Fußdefinition} +\end{Declaration}% +\BeginIndex{Cmd}{defpagestyle}% +\BeginIndex{Cmd}{newpagestyle}% +\BeginIndex{Cmd}{renewpagestyle}% +\BeginIndex{Cmd}{providepagestyle}% +Dies sind die Befehle, die die volle Kontrolle über die Gestaltung +eines Seitenstils ermöglichen. Der Aufbau ist bei allen vier +Definitionen gleich, sie unterscheiden sich nur hinsichtlich +der Wirkungsweise. +\begin{labeling}[\ --]{\Macro{providepagestyle}} +\item[\Macro{defpagestyle}] definiert einen neuen Seitenstil. Existiert + bereits einer mit diesem Namen, wird dieser überschrieben. +\item[\Macro{newpagestyle}] definiert einen neuen Seitenstil. Wenn schon einer + mit diesem Namen existiert, wird ein Fehler ausgegeben. +\item[\Macro{renewpagestyle}] definiert einen bestehenden Seitenstil um. Wenn + noch keiner mit diesem Namen existiert, wird ein Fehler ausgegeben. +\item[\Macro{providepagestyle}] definiert einen neuen Seitenstil nur dann, + wenn dieser vorher noch nicht existiert. +\end{labeling} + +Am Beispiel von \Macro{defpagestyle} soll die Syntax der Definitionen +im Folgenden erläutert werden. +\begin{labeling}[~--]{\PName{Kopfdefinition}\,} +\item[\PName{Name}] die Bezeichnung des Seitenstils +\item[\PName{Kopfdefinition}] die Deklaration des Seitenkopfes bestehend aus + fünf Teilen, wobei die in runden Klammern stehenden Angaben optional + sind:\hfill\\ + \hspace*{1em}\AParameter{OLL,OLD}% + \Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD} +\item[\PName{Fußdefinition}] die Deklaration des Seitenfußes bestehend aus + fünf Teilen, wobei die in runden Klammern stehenden Angaben optional + sind:\hfill\\ + \hspace*{1em}\AParameter{OLL,OLD}% + \Parameter{GS}\Parameter{US}\Parameter{ES}\AParameter{ULL,ULD} +\end{labeling} + +Wie zu sehen ist, haben Kopf- und Fußdefinition identischen Aufbau. Die +einzelnen Parameter haben folgende Bedeutung: +\begin{labeling}[\ --]{\PName{OLD}} +\item[\PName{OLL}] obere Linienlänge: Kopf = außen, Fuß = Trennlinie +\item[\PName{OLD}] obere Liniendicke +\item[\PName{GS}] Definition für die \emph{gerade} Seite +\item[\PName{US}] Definition für die \emph{ungerade} Seite +\item[\PName{ES}] Definition für \emph{einseitiges} Layout +\item[\PName{ULL}] untere Linienlänge Kopf = Trennlinie, Fuß = außen +\item[\PName{ULD}] untere Liniendicke +\end{labeling} + +Werden die optionalen Linienargumente nicht gesetzt, dann bleibt das Verhalten +weiterhin durch die in \autoref{sec:scrpage-de.basics.format}, +\autopageref{desc:scrpage-de.cmd.setheadtopline} vorgestellten Linienbefehle +konfigurierbar. + +Die drei Felder \PName{GS}, \PName{US} und \PName{ES} entsprechen Boxen, die +die Breite des Kopf- bzw. Fußteils haben. +Die entsprechenden Definitionen erscheinen in diesen Boxen linksbündig. +Um somit etwas links- \emph{und} rechtsseitig in den Boxen zu platzieren, +kann der Zwischenraum mit \Macro{hfill} gestreckt werden: +% +\begin{lstcode}[belowskip=\dp\strutbox] + {\headmark\hfill\pagemark} +\end{lstcode} + +Um zusätzlich etwas zentriert erscheinen zu lassen, ist eine erweiterte +Definition notwendig. +Die Befehle \Macro{rlap} und \Macro{llap} setzen die übergebenen Argumente. +Für \LaTeX{} erscheint es aber so, dass diese Texte eine Breite von Null +haben. Nur so erscheint der mittlere Text auch wirklich zentriert. +% +\begin{lstcode} + {\rlap{\headmark}\hfill zentriert\hfill\llap{\pagemark}} +\end{lstcode} + +\iffalse% Umbruchkorrekturtext +Dies und die Verwendung der Expertenschnittstelle in Zusammenhang mit +anderen Befehlen von \Package{scrpage2} nun als abschließendes Beispiel. +\fi + +\begin{Example} + Angenommen es wird die Dokumentklasse \Class{scrbook} genutzt. Damit + liegt ein zweiseitiges Layout vor. Für das Paket \Package{scrpage2} wird + festgelegt, dass mit automatisch aktualisierten Kolumnentiteln gearbeitet + wird und dass im Seitenstil \Pagestyle{scrheadings} eine Trennlinie zwischen + Kopf und Text gezogen wird. + +\begin{lstcode} + \documentclass{scrbook} + \usepackage[automark,headsepline]{scrpage2} +\end{lstcode} + + Mit Hilfe der Expertenschnittstelle werden zwei Seitenstile definiert. Der + erste legt keine Linienargumente fest, im zweiten wird die Linie über dem + Kopf mit einer Dicke von 1\,pt und die Linie unter dem Kopf mit 0\,pt + festgelegt. + +\begin{lstcode} + \defpagestyle{ohneLinien}{% + {Beispiel\hfill\headmark} + {\headmark\hfill ohne Linien} + {\rlap{Beispiel}\hfill\headmark\hfill% + \llap{ohne Linien}} + }{% + {\pagemark\hfill} + {\hfill\pagemark} + {\hfill\pagemark\hfill} + } + \defpagestyle{mitLinien}{% + (\textwidth,1pt) + {mit Linien\hfill\headmark} + {\headmark\hfill mit Linien} + {\rlap{\KOMAScript}\hfill \headmark\hfill% + \llap{mit Linien}} + (0pt,0pt) + }{% + (\textwidth,.4pt) + {\pagemark\hfill} + {\hfill\pagemark} + {\hfill\pagemark\hfill} + (\textwidth,1pt) + } +\end{lstcode} + + Gleich zu Beginn wird der Seitenstil \Pagestyle{scrheadings} aktiviert. Mit + \Macro{chapter} wird ein neues Kapitel begonnen. Weiterhin wird automatisch + durch \Macro{chapter} der Seitenstil für diese Seite auf \Pagestyle{plain} + gesetzt. Das folgende \Macro{chead} zeigt, wie durch Modifikation des + plain-Stils ein Kolumnentitel erzeugt werden kann. Grundsätzlich sollte + jedoch davon Abstand genommen werden, da sonst der Markierungscharakter der + plain-Seite verloren geht. Es ist wichtiger anzuzeigen, dass hier ein neues + Kapitel beginnt, als dass ein Abschnitt dieser Seite einen bestimmten Titel + trägt. + +\begin{lstcode} + \begin{document} + \pagestyle{scrheadings} + \chapter{Thermodynamik} + \chead[\leftmark]{} + \section{Hauptsätze} + Jedes System besitzt eine extensive Zustandsgröße + Energie. Sie ist in einem abgeschlossenen System + konstant. +\end{lstcode}% + \begin{XmpTopPage} + \XmpHeading[\hfill\textsl{1 Thermodynamik}\hfill]{10,27}{70} + \put(10,17){\normalsize\textbf{\sffamily 1 Thermodynamik}} + \put(10,12){\textbf{\sffamily 1.1 Hauptsätze}} + \XmpSetText[% + Jedes System besitzt eine extensive Zustands\char\defaulthyphenchar + \linebreak]{10,9} + \end{XmpTopPage} + + Nach dem Seitenwechsel ist der Seitenstil \Pagestyle{scrheadings} + aktiv, und somit auch die Trennlinie aus den Paketoptionen sichtbar. +\begin{lstcode} + Es existiert eine Zustandsgröße, genannt die + Entropie eines Systems, deren zeitliche Änderung + sich aus Entropieströmung und Entropieerzeugung + zusammensetzt. +\end{lstcode} + \begin{XmpTopPage} + \XmpHeading[\textsl{1 Thermodynamik}\hfill]{20,27}{70} + \thinlines\XmpRule{20,25}{70} + \XmpSetText[% + Es existiert eine Zustandsgröße, genannt die En"-tropie + eines Systems, deren zeitliche Änderung sich aus + Entropieströmung und Entropie\char\defaulthyphenchar\kern-1pt + \linebreak]{20,21} + \end{XmpTopPage} + + Wiederum nach einem Seitenwechsel wird auf manuelle Kolumnentitel gewechselt + und der Seitenstil \PValue{ohneLinien} aktiviert. Da keine Linienargumente + bei der Definition dieses Stils genutzt wurden, wird die + Standard-Linien\-konfiguration verwendet. Diese zeichnet hier eine Linie + zwischen Kopf und Text, da \Option{headsepline} als Argument für + \Package{scrpage2} angegeben wurde.% +\begin{lstcode} + \manualmark + \pagestyle{ohneLinien} + \section{Exergie und Anergie} + \markright{Energieumwandlung} + Man bezeichnet die bei der Einstellung des + Gleichgewichts mit der Umgebung maximal gewinnbare + Arbeit als Exergie. +\end{lstcode}% + \begin{XmpTopPage} + \XmpHeading[\slshape Energieumwandlung\hfill ohne Linien]{10,27}{70} + \thinlines\XmpRule{10,25}{70} + \XmpSetText[{% + \textbf{\sffamily 1.2 Exergie und Anergie}\\[2pt] + Man bezeichnet die bei der Einstellung des + Gleichgewichts mit der Umgebung maximal\linebreak}]{10,21} + \end{XmpTopPage} + + Nach dem Wechsel auf die folgende linke Seite wird der Seitenstil + \PValue{mitLinien} aktiviert. Die Linieneinstellungen werden hier nun + angewendet und entsprechend der Definition dargestellt. +\begin{lstcode} + \pagestyle{mitLinien} + \renewcommand{\headfont}{\itshape\bfseries} + Den nicht in Exergie umwandelbaren Anteil einer + Energie nennt man Anergie \Var{B}. + \[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] + \end{document} +\end{lstcode} + \begin{XmpTopPage} + \XmpHeading[\itshape\bfseries mit Linien\hfill 1 Thermodynamik]{20,27}{70} + \thicklines\XmpRule{20,29}{70} + \XmpSetText[% + Den nicht in Exergie umwandelbaren Anteil einer + Energie nennt man Anergie $B$. + \vspace{-.5ex}\[ B = U + T (S_1 - S_u) - p (V_1 - V_u)\] ]{20,21} + \end{XmpTopPage} +\end{Example} +\EndIndex{Cmd}{defpagestyle}\EndIndex{Cmd}{newpagestyle} +\EndIndex{Cmd}{renewpagestyle}\EndIndex{Cmd}{providepagestyle} + +\subsection{Seitenstile verwalten}\label{sec:scrpage-de.UI.cfgFile} +% scrpage.cfg +\BeginIndex{File}{scrpage.cfg} +Bei längerer Arbeit mit verschiedenen Seitenstilen wird sich, je nach +Geschmack und Aufgabenstellung, ein fester Satz an benutzten Stilen +etablieren. +Um nicht bei jedem neuen Projekt eine große Kopieraktion von den Daten +eines Projekts zum neuen Projekt starten zu müssen, liest \Package{scrpage2} +am Ende seiner Initialisierungsphase die Datei \File{scrpage.cfg} ein. +In dieser Datei können dann Seitenstile definiert sein, die viele +Projekte gemeinsam nutzen können. +\EndIndex{File}{scrpage.cfg} +\EndIndex{Package}{scrpage2} + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% coding: iso-latin-1 +%%% TeX-master: t +%%% End: |