% \CheckSum{706}
% \iffalse meta-comment
% ======================================================================
% scrkernel-pagestyles.dtx
% Copyright (c) Markus Kohm, 2002-2015
%
% 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.
% ----------------------------------------------------------------------
% scrkernel-pagestyles.dtx
% Copyright (c) Markus Kohm, 2002-2015
%
% 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.
% ======================================================================
% \fi
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \iffalse
%%% From File: $Id: scrkernel-pagestyles.dtx 2019 2015-03-20 08:35:36Z kohm $
%<*driver>
% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
  \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
  \filedate$Date: 2015-03-20 09:35:36 +0100 (Fri, 20 Mar 2015) $
  \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
  \filerevision$Revision: 2019 $
  \edef\reserved@a{%
    \noexpand\endgroup
    \noexpand\ProvidesFile{scrkernel-pagestyles.dtx}%
                          [\filedate\space\filerevision\space
                           KOMA-Script source
                           (page styles)]
  }%
\reserved@a
% \iffalse
\documentclass[halfparskip-]{scrdoc}
\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrkernel-pagestyles.dtx}
\title{\KOMAScript{} \partname\ \texttt{\filename}%
  \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
\date{\filedate}
\author{Markus Kohm}

\begin{document}
  \maketitle
  \tableofcontents
  \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.95}{2002/06/25}{%
%   erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
%
% \section{Seitenstil}
%
% Neben den Definitionen zum Seitenstil in dieser Datei gibt es auch
% noch das Paket \textsf{scrpage2} (siehe \texttt{scrpage.dtx}). 
% Es\marginline{Geplant!} ist deshalb davon auszugehen, dass zukünftig die
% Definitionen hier komplett durch \textsf{scrpage2} ersetzt werden und
% \textsf{scrpage2} von den \KOMAScript-Klassen direkt geladen wird.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \subsection{Optionen für die Trennlinien in Kopf und Fuß}
%
% \iffalse
%<*option>
% \fi
%
% \iffalse
%<*class>
% \fi
%
% \begin{option}{headsepline}
%   \changes{v2.95c}{2006/08/11}{BugFix: Argument bei
%     \cs{PassOptionsToPackage} vertauscht}^^A
%   \changes{v2.97c}{2007/04/19}{Option \texttt{headinclude} wird nicht
%     mehr an \textsf{typearea} geschickt}^^A
%   \changes{v2.98c}{2008/03/26}{Option \texttt{headinclude} wird gesetzt,
%     wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.}^^A
%   \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
%     \cs{FamilyKeyStateProcessed}}^^A
%   \changes{v3.12}{2013/03/05}{wenn \textsf{typearea} noch gar nicht geladen
%     ist, Option an dieses Paket schicken}^^A
%   \changes{v3.17}{2015/03/10}{Wert wird gespeichert}^^A
% \begin{option}{headnosepline}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}^^A
%   \changes{v3.01a}{2008/11/20}{deprecated}^^A
% Der Kopfteil kann mit einer Linie vom Textbereich getrennt werden.
% \begin{macro}{\if@hsl}
% \begin{macro}{\@hsltrue}
% \begin{macro}{\@hslfalse}
% Die Entscheidung wird in einem Schalter gespeichert.
%    \begin{macrocode}
\newif\if@hsl
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% Gleichzeitig wird dem \textsf{typearea}-Paket mitgeteilt, dass der
% Kopf zum Textbereich zu rechnen ist. Dies geschieht min. seit \KOMAScript{}
% 2.98c in beide Richtungen. Es ist leider nicht ganz klar, wie das zuvor war.
%    \begin{macrocode}
\KOMA@key{headsepline}[true]{%
  \KOMA@set@ifkey{headsepline}{@hsl}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed
    \KOMA@kav@replacebool{.\KOMAClassFileName}{headsepline}{@hsl}%
    \@ifundefined{typearea}{%
      \PassOptionsToPackage{typearea}{headinclude=#1}%
    }{%
      \KOMAoptions{headinclude=#1}{}%
    }%
  \fi
}
\KOMA@kav@add{.\KOMAClassFileName}{headsepline}{false}
\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false}
%    \end{macrocode}
% \end{option}
% \end{option}
%
%
% \begin{option}{footsepline}
%   \changes{v2.0e}{1994/08/14}{bei \cs{PassOptionsToPackage} fehlte
%     die Paket-Angabe}^^A
%   \changes{v2.95c}{2006/08/11}{BugFix: Argument bei
%     \cs{PassOptionsToPackage} vertauscht}^^A
%   \changes{v2.97c}{2007/04/19}{Option \texttt{footinclude} wird nicht
%     mehr an \textsf{typearea} geschickt}^^A
%   \changes{v2.98c}{2008/03/26}{Option \texttt{footinclude} wird gesetzt,
%     wobei kein Fehler ausgegeben wird, wenn sie nicht existiert.}^^A
%   \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
%     \cs{FamilyKeyStateProcessed}}^^A
%   \changes{v3.12}{2013/03/05}{wenn \textsf{typearea} noch gar nicht geladen
%     ist, Option an dieses Paket schicken}^^A
%   \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch
%     \cs{KOMAoptions} ersetzt}^^A
%   \changes{v3.12}{2013/08/26}{ggf. Satzspiegel neu berechnen}^^A
%   \changes{v3.13}{2014/07/07}{Satzspiegel wird nicht neu berechnet}^^A
%   \changes{v3.13}{2014/07/07}{\texttt{headinclude}-Fehler beseitigt}^^A
%   \changes{v3.17}{2015/03/10}{Wert wird gespeichert}^^A
% \begin{option}{footnosepline}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}^^A
% Der Fußteil kann mit einer Linie vom Textbereich getrennt werden.
% \begin{macro}{\if@fsl}
% \begin{macro}{\@fsltrue}
% \begin{macro}{\@fslfalse}
% Die Entscheidung wird in einem Schalter gespeichert.
%    \begin{macrocode}
\newif\if@fsl
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% Gleichzeitig wird dem \texttt{typearea}-Paket mitgeteilt, dass der
% Fuß zum Textbereich (nicht) zu rechnen ist.
%    \begin{macrocode}
\KOMA@key{footsepline}[true]{%
  \KOMA@set@ifkey{footsepline}{@fsl}{#1}%
  \ifx\FamilyKeyState\FamilyKeyStateProcessed
    \KOMA@kav@replacebool{.\KOMAClassFileName}{footsepline}{@fsl}%
    \@ifundefined{typearea}{%
      \PassOptionsToPackage{typearea}{footinclude=#1}%
    }{%
      \KOMAoptions{footinclude=#1}%
    }%
  \fi
}
\KOMA@kav@add{.\KOMAClassFileName}{footsepline}{false}
\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
%    \end{macrocode}
% \end{option}
% \end{option}
%
% In früheren Versionen wurde noch die Option \texttt{mpinclude} von
% den Klassen ausgewertet. Dies geschieht jetzt nur noch in
% \textsf{typearea}. Von den Klassen wird dann ggf. auf den dort
% definierten Schalter zugegriffen. Dieses Vorgehen ist deshalb
% sinnvoll, weil die Klassen ausnahmslos das \textsf{typearea}-Paket
% laden.
%
%
% \subsection{Optionen und Anweisungen für leere Seiten}
%
% \iffalse
%</class>
%<*class|extend>
% \fi
%
% \begin{option}{cleardoublepage}
%   \changes{v2.95}{2004/08/24}{neuer Schalter}^^A
%   \changes{v2.96a}{2007/01/03}{Wert \texttt{current} sollte nun
%     funktionieren}^^A
%   \changes{v2.98c}{2008/03/06}{verwendet \cs{def} statt \cs{let}, damit die
%     Option \texttt{open} funktioniert}^^A
%   \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
%     \cs{FamilyKeyStateProcessed}}^^A
%   \changes{v3.17}{2015/03/10}{Wert wird gespeichert}^^A
% \begin{option}{cleardoubleempty}
%   \changes{v2.8a}{2001/06/18}{neue Option}^^A
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}^^A
% \begin{option}{cleardoubleplain}
%   \changes{v2.8a}{2001/06/18}{neue Option}^^A
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}^^A
% \begin{option}{cleardoublestandard}
%   \changes{v2.8a}{2001/06/18}{neue Option}^^A
%   \changes{v2.8q}{2001/11/06}{\cs{cleardoublestandardpage} statt
%     \cs{cleardoublestandard}}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}^^A
% \begin{macro}{\cleardoublestandardpage}
%   \changes{v2.8a}{2001/06/18}{neu}^^A
%   \changes{v2.96a}{2007/01/02}{korrekter Ersatzwert gesetzt}^^A
% \begin{macro}{\cleardoubleusingstyle}
%   \changes{v2.95}{2004/08/24}{neu}^^A
%   \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
%     ersetzt}
% \begin{macro}{\cleardoubleemptypage}
%   \changes{v2.8a}{2001/06/18}{neu}^^A
% \begin{macro}{\cleardoubleplainpage}
%   \changes{v2.8a}{2001/06/18}{neu}^^A
% \begin{macro}{\cleardoubleoddpage}
%   \changes{v3.00}{2008/09/27}{neu}^^A
% \begin{macro}{\cleardoubleoddstandardpage}
%   \changes{v2.98c}{2008/03/06}{neu}^^A
% \begin{macro}{\cleardoubleoddusingstyle}
%   \changes{v2.98c}{2008/03/06}{neu}^^A
%   \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
%     ersetzt}
% \begin{macro}{\cleardoubleoddemptypage}
%   \changes{v2.98c}{2008/03/06}{neu}^^A
% \begin{macro}{\cleardoubleoddplainpage}
%   \changes{v2.98c}{2001/06/18}{neu}^^A
% \begin{macro}{\cleardoubleevenpage}
%   \changes{v3.00}{2008/09/27}{neu}^^A
% \begin{macro}{\cleardoubleevenstandardpage}
%   \changes{v2.98c}{2008/03/06}{neu}^^A
% \begin{macro}{\cleardoubleevenusingstyle}
%   \changes{v2.98c}{2008/03/06}{neu}^^A
%   \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} durch \cs{pagestyle}
%     ersetzt}
% \begin{macro}{\cleardoubleevenemptypage}
%   \changes{v2.98c}{2008/03/06}{neu}^^A
% \begin{macro}{\cleardoubleevenplainpage}
%   \changes{v2.98c}{2001/06/18}{neu}^^A
% \begin{macro}{\cleardoublepage}
%   \changes{v2.98c}{2001/06/18}{wird immer neu definiert}^^A
%   \changes{v2.98c}{2008/04/11}{neue Voreinstellung für Versionen nach 2.98c}^^A
% Bei Verwendung von \texttt{twoside} und \texttt{openright} bei den
% Klassen \textsf{scrbook} und \textsf{scrreprt} wird bei \cs{chapter}
% implizit \cs{cleardoublepage} ausgeführt. Das führt ggf. 
% normalerweise zu einer linken Seite, auf der noch der Kolumnentitel
% des vorherigen Kapitels und eine Seitenzahl steht. Häufig wird
% stattdessen nur eine Seitenzahl oder auch gar nichts gewünscht. Es
% soll also der Seitenstil \texttt{plain} oder \texttt{empty}
% verwendet werden. Dies wird mit den Optionen ermöglicht. Dazu
% werden auch gleich neue Makros definiert:
%    \begin{macrocode}
\KOMA@key{cleardoublepage}{%
  \begingroup%
    \def\@tempc{%
      \endgroup%
      \KOMA@unknown@keyval{cleardoublepage}{#1}{%
        'current' or any defined pagestyle e.g. 'empty','plain', 'headings'}%
    }%
    \ifstr{#1}{current}{%
      \def\@tempc{\endgroup%
        \def\cleardoublepage{\cleardoublestandardpage}%
        \def\cleardoubleoddpage{\cleardoubleoddstandardpage}%
        \def\cleardoubleevenpage{\cleardoubleevenstandardpage}%
        \FamilyKeyStateProcessed
        \KOMA@kav@replacevalue{.%
%<package&extend>          scrextend.\scr@pkgextension
%<class>          \KOMAClassFileName
        }{cleardoublepage}{current}%
      }%
    }{%
      \ifnotundefined{ps@#1}{%
        \def\@tempc{\endgroup%
          \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
          \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
          \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
          \FamilyKeyStateProcessed
          \KOMA@kav@xreplacevalue{.%
%<package&extend>            scrextend.\scr@pkgextension
%<class>            \KOMAClassFileName
          }{cleardoublepage}{#1}%
        }%
      }{%
%    \end{macrocode}
% \changes{v3.13}{2014/03/01}{allow page style headings as value for class
%   option}^^A
% At class loading time page style \texttt{headings} is still undefined, but
% should be allowed as value for option \texttt{cleardoublepage}.
%    \begin{macrocode}
%<*class>
        \ifx\@currname\KOMAClassName
          \ifx\@currext\@clsextension
            \ifstr{#1}{headings}{%
              \def\@tempc{\endgroup%
                \def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
                \def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
                \def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
                \FamilyKeyStateProcessed
                \KOMA@kav@xreplacevalue{.\KOMAClassFileName}%
                                       {cleardoublepage}{#1}%
              }%
            }{}%
          \fi
        \fi
%</class>
      }%
    }%
  \@tempc
}
\newcommand*{\cleardoubleoddstandardpage}{}
\let\cleardoubleoddstandardpage=\cleardoublepage
\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage
  {\pagestyle{#1}\cleardoubleoddstandardpage}}
\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}}
\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}}
\newcommand*{\cleardoubleevenstandardpage}{%
  \clearpage
  \if@twoside\ifodd\c@page
      \hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi
  \fi\fi
}
\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage
  {\pagestyle{#1}\cleardoubleevenstandardpage}}
\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}}
\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}}
\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}
\renewcommand*{\cleardoublepage}{%
  \expandafter\ifnum \@nameuse{scr@v@2.98c}<\scr@compatibility\relax
    \cleardoubleemptypage
  \else
    \cleardoublestandardpage
  \fi
}
\KOMA@kav@add{.%
%<package&extend>  scrextend.\scr@pkgextension
%<class>  \KOMAClassFileName
}{cleardoublepage}{%
  \expandafter\ifnum \scr@v@is@gt{2.98c}empty\else current\fi
}
%    \end{macrocode}
% Es ist zwar nicht unbedingt notwendig aber eventuell schöner, wenn der zuvor
% hinzugefügte, bedingte Wert am Ende noch expandiert wird. Der Umstand ist
% notwendig, weil während der Definition der Optionen die Kompatibilität noch
% nicht bekannt ist. Diese ergibt sich erst während \cs{KOMAProcessOptions}.
%    \begin{macrocode}
%<package&extend>\AtEndOfPackage{%
%<class>\AtEndOfClass{%
  \KOMAoptionOf[\expandafter\edef\expandafter\@tempa\@firstofone]%
               {%
%<package&extend>                 scrextend.\scr@pkgextension
%<class>                 \KOMAClassFileName
               }{cleardoublepage}%
  \KOMA@kav@removekey{.%
%<package&extend>    scrextend.\scr@pkgextension
%<class>    \KOMAClassFileName
  }{cleardoublepage}%
  \KOMA@kav@xadd{.%
%<package&extend>    scrextend.\scr@pkgextension
%<class>    \KOMAClassFileName
  }{cleardoublepage}{\@tempa}%
}
\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage}
\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage}
\newcommand*{\cleardoublepageusingstyle}[1]{\clearpage
  {\pagestyle{#1}\cleardoublestandardpage}}
\newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}}
\newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}}
%<*class>
\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty}
\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain}
\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current}
%</class>
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
%
%
% \iffalse
%</class|extend>
%</option>
%<*body>
%<*class>
% \fi
%
%
% \subsection{Befehle für den Kompatibilitätsmodus}
%
% \begin{macro}{\headincludeon}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% \begin{macro}{\headincludeoff}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% \begin{macro}{\headseplineon}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% \begin{macro}{\headseplineoff}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% \begin{macro}{\footincludeon}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% \begin{macro}{\footincludeoff}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% \begin{macro}{\footseplineon}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% \begin{macro}{\footseplineoff}
%   \changes{v2.95}{2004/07/21}{ersatzlos gestrichen}^^A
% Da die \KOMAScript-Klassen ohnehin nicht mehr auf Kompatibilität zu
% \textsf{Script~2.0} überprüft werden, wurde der Kompatibilitätsmodus
% ersatzlos gestrichen. Dazu gehören nach über zehn Jahren nun auch diese
% Anweisungen. Ehemals waren sie wie folgt definiert:
% \begin{verbatim}
% \if@compatibility
%   \newcommand*\headincludeon{\@hincltrue}
%   \newcommand*\headincludeoff{\@hinclfalse}
%   \newcommand*\headseplineon{\@hsltrue \@hincltrue}
%   \newcommand*\headseplineoff{\@hslfalse \@hinclfalse}
%   \newcommand*\footincludeon{\@fincltrue}
%   \newcommand*\footincludeoff{\@finclfalse}
%   \newcommand*\footseplineon{\@fsltrue \@fincltrue}
%   \newcommand*\footseplineoff{\@fslfalse \@finclfalse}
% \fi
% \end{verbatim}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \subsection{Definition der Standardseitenstile}
%
% \changes{v2.0e}{1994/08/10}{bei \textsf{scrbook} gibt es kein
%   einseitiges Layout}
% \changes{v2.3a}{1995/07/08}{da bei \textsf{book} seit Version 1.2v
%   die Option oneside wieder ein einseitiges Layout erzeugt, dieses
%   wieder eingebaut}
%
% \begin{macro}{\ps@plain}
% \begin{macro}{\ps@myheadings}
% \begin{macro}{\ps@headings}
% Es wird das Aussehen der Kopf- und Fußzeilen für die
% Standardseitenstile \texttt{empty}, \texttt{plain},
% \texttt{headings} und \texttt{myheadings} festgelegt. Diese sind
% außerdem abhängig davon, ob es sich um einseitiges oder beidseitiges
% Layout handelt.
%
% Im Gegensatz zu den Seitenstilen der Standardklassen steht die
% Seitennummer beim \KOMAScript{} Paket immer in der Fußzeile.
% Außerdem sind Trennlinien zwischen Kopf- und Textbereich sowie
% zwischen Text- und Fußbereich möglich.
%
% Die Kopfzeile wird auch nicht mehr in Großbuchstaben gewandelt.
%
%   \changes{v2.2a}{1995/02/07}{bei \textsf{scrbook} und
%      \textsf{scrreprt} Punkt hinter der section-Nummer entfernt}
%   \changes{v2.2c}{1995/05/25}{Punkt hinter der Kapitelnummer in der
%      Kopfzeile entfernt}^^A
%   \changes{v2.2c}{1995/05/25}{Nummern in der Kopfzeile auf CJK
%      umgestellt}^^A
%   \changes{v2.4f}{1996/10/08}{\cs{strut} in der Kopfzeile
%      eingefügt}
% \begin{macro}{\set@tempdima@hw}
%   \changes{v2.8q}{2002/03/28}{neu (intern)}^^A
% Um nicht ständig das Gleiche schreiben zu müssen wird hier ein
% internes Makro verwendet.
%    \begin{macrocode}
\newcommand*{\set@tempdima@hw}{%
  \setlength{\@tempdima}{\textwidth}%
  \if@mincl
    \addtolength{\@tempdima}{\marginparsep}%
    \addtolength{\@tempdima}{\marginparwidth}%
  \fi
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\pnumfont}
%   \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}
% \begin{macro}{\headfont}
%   \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt}
% \begin{macro}{\footfont}
%   \changes{v2.98c}{2008/02/14}{Neu}^^A
% Kopf- und Fußzeile sowie die Seitennummer werden in einer speziellen
% Schriftart gesetzt. Die drei Makros hier sind jedoch als interne
% Makros zu betrachten.
%    \begin{macrocode}
\newcommand*{\pnumfont}{\normalfont\normalcolor}
\newcommand*{\headfont}{\normalfont\normalcolor\slshape}
\newcommand*{\footfont}{}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \begin{KOMAfont}{pagenumber}
%   \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagenumber}}
% \begin{KOMAfont}{pagination}
%   \changes{v2.8o}{2001/09/14}{neues Alias-Element}^^A
% \begin{KOMAfont}{pageheadfoot}
%   \changes{v2.98c}{2008/02/14}{neues Element}^^A
% \begin{KOMAfont}{pagehead}
%   \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagehead}}
%   \changes{v2.98c}{2008/02/14}{neuer Alias}^^A
% \begin{macro}{\scr@fnt@wrn@pagehead}
%   \changes{v2.8o}{2001/09/14}{neue Warnung für Element \texttt{pagehead}}
%   \changes{v2.97c}{2007/09/25}{Warnung geändert}^^A
%   \changes{v2.98c}{2008/02/14}{Warnung geändert}^^A
% \begin{KOMAfont}{pagefoot}
%   \changes{v2.8o}{2001/09/14}{neues Element \texttt{pagefoot}}
%   \changes{v2.98c}{2008/02/14}{nicht länger ein Alias}^^A
% \begin{macro}{\scr@fnt@wrn@pagefoot}
%   \changes{v2.98c}{2008/02/14}{Neu (intern)}^^A
%   \changes{v3.13}{2014/01/13}{es wird \textsf{scrlayer-scrpage} an Stelle
%     von \textsf{scrpage2} empfohlen}^^A
% Hier werden die Elemente definiert, deren Schriftart dann geändert
% werden kann.
%    \begin{macrocode}
\newcommand*{\scr@fnt@pagenumber}{\pnumfont}
\aliaskomafont{pagination}{pagenumber}
\newcommand*{\scr@fnt@pageheadfoot}{\headfont}
\aliaskomafont{pagehead}{pageheadfoot}
%<*letter>
\newcommand*{\scr@fnt@wrn@pagehead}[1]{%
  `pagehead' is only an alias of `pageheadfoot'.\MessageBreak
  Font of page foot will also be changed%
}
\newcommand*{\scr@fnt@pagefoot}{\footfont}
%</letter>
%<*!letter>
\newcommand*{\scr@fnt@pagefoot}{\footfont}
\newcommand*{\scr@fnt@wrn@pagefoot}[1]{%
  This class does not use font element `pagefoot'!\MessageBreak
  Maybe you should load package `scrlayer-scrpage',\MessageBreak
  before using this element%
}
%</!letter>
%    \end{macrocode}
% \end{macro}
% \end{KOMAfont}
% \end{macro}
% \end{KOMAfont}
% \end{KOMAfont}
% \end{KOMAfont}
% \end{KOMAfont}
%
%
% \begin{macro}{\pagemark}
%   \changes{v2.95}{2006/03/15}{nun für alle Klassen}^^A
%   \changes{v3.05}{2010/02/05}{eine zusätzliche Gruppe eingefügt}^^A
% Das ist die Seitenmarke, die nun für alle Klassen verwendet wird. Damit
% wird es leichter, \textsf{fancyhdr} statt \textsf{scrpage2} zu verwenden.
% \begin{macro}{\letterpagemark}
%   \changes{v3.17}{2015/03/20}{Neu (nur Paket \textsl{scrletter})}^^A
% Für das Paket wird eine abweichende Definition verwendet, die innerhalb von
% \cs{begin{letter}} aktiviert wird.
%    \begin{macrocode}
%</class>
%<*class|letter>
\newcommand*{%
%<class>  \pagemark
%<package>  \letterpagemark
}{%
  {\usekomafont{pagenumber}{%
%<letter>    \pagename\nobreakspace
    \thepage}}}
%</class|letter>
%<*class>
%    \end{macrocode}
% \end{macro}^^A \letterpagemark
% \end{macro}^^A \pagemark
%
%   Zurück zur Definition der Seitenstile. Hier gibt es erhebliche
%   Unterschiede zwischen der Briefklasse und den anderen Klassen. Das beginnt
%   schon damit, dass es spezielle Stile für doppelseitige Briefe nicht gibt.
%   \changes{v2.1b}{1994/12/31}{im einseitigen Seitenstil \cs{markboth} durch
%     \cs{markright} ersetzt}%
%   \changes{v2.2a}{1995/02/07}{im einseitigen Seitenstil bei
%     \textsf{scrartcl} und \texttt{oneside} \cs{subsectionmark} eingefügt}%
%   \changes{v2.2a}{1995/02/07}{im einseitigen Seitenstil bei
%     \textsf{scrreprt} und \texttt{oneside} \cs{sectionmark} eingefügt}%
%   \changes{v2.0e}{1994/08/17}{im einseitigen Seitenstil \cs{markboth} durch
%     \cs{markright} ersetzt}%
%   \changes{v2.97c}{2007/07/18}{Unterscheidung auf \texttt{twoside} so spät
%     wie möglich}%
%   \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%
%   Hinweis: Die \emph{even}-Varianten werden im einseitigen Satz vom
%   \LaTeX-Kern selbst nicht verwendet. Es schadet also nicht, sie trotzdem
%   identisch zum doppelseitigen Satz zu definieren.
%    \begin{macrocode}
%<*!letter>
\renewcommand*{\ps@plain}{%
  \renewcommand*{\@oddhead}{}%
  \let\@evenhead\@oddhead
  \renewcommand*{\@evenfoot}{%
    \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
        \if@fsl \hrule \vskip 3\p@ \fi
        \hb@xt@ \@tempdima{{\pagemark\hfil}}}}}%
  \renewcommand*{\@oddfoot}{%
    \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
        \if@fsl \hrule \vskip 3\p@ \fi
        \hb@xt@ \@tempdima{{\hfil\pagemark
            \if@twoside\else\hfil\fi}}}}\hss}%
}%
\newcommand*{\ps@headings}{\let\@mkboth\markboth
  \renewcommand*{\@evenhead}{%
    \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
        \hb@xt@ \@tempdima{{\headfont\strut\leftmark\hfil}}%
        \if@hsl \vskip 1.5\p@ \hrule \fi}}}%
  \renewcommand*{\@oddhead}{%
    \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
        \hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark
            \if@twoside\else\hfil\fi}}%
        \if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}%
  \renewcommand*{\@evenfoot}{%
    \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
        \if@fsl \hrule \vskip 3\p@ \fi
        \hb@xt@ \@tempdima{{\pagemark\hfil}}}}}%
  \renewcommand*{\@oddfoot}{%
    \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
        \if@fsl \hrule \vskip 3\p@ \fi
        \hb@xt@ \@tempdima{{\hfil\pagemark
            \if@twoside\else\hfil\fi}}}}\hss}%
%<*article>
  \renewcommand*{\sectionmark}[1]{%
    \if@twoside\expandafter\markboth\else\expandafter\markright\fi
    {\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}##1}}{}}%
  \renewcommand*{\subsectionmark}[1]{%
    \if@twoside
      \markright{%
        \MakeMarkcase{\ifnumbered{subsection}{\subsectionmarkformat}{}##1}%
      }%
    \fi
  }%
%</article>
%<*report|book>
  \renewcommand*{\chaptermark}[1]{%
    \if@twoside\expandafter\markboth\else\expandafter\markright\fi
    {\MakeMarkcase{\ifnumbered{chapter}{%
%<book>        \if@mainmatter
          \chaptermarkformat
%<book>        \fi
      }{}##1}%
    }{}%
  }%
  \renewcommand*{\sectionmark}[1]{%
    \if@twoside
      \markright{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}%
        ##1}}%
    \fi
  }%
%</report|book>
}%
\newcommand*{\ps@myheadings}{\let\@mkboth\@gobbletwo
  \renewcommand*{\@evenhead}{%
    \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
        \hb@xt@ \@tempdima{{\headfont\strut\leftmark\hfil}}%
        \if@hsl \vskip 1.5\p@ \hrule \fi}}}%
  \renewcommand*{\@oddhead}{%
    \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
        \hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark
            \if@twoside\else\hfil\fi}}%
        \if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}%
  \renewcommand*{\@evenfoot}{%
    \set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
        \if@fsl \hrule \vskip 3\p@ \fi
        \hb@xt@ \@tempdima{{\pagemark\hfil}}}}}%
  \renewcommand*{\@oddfoot}{%
    \set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
        \if@fsl \hrule \vskip 3\p@ \fi
        \hb@xt@ \@tempdima{{\hfil\pagemark
            \if@twoside\else\hfil\fi}}}}\hss}%
%<!article>  \renewcommand*{\chaptermark}[1]{}%
%<article>  \renewcommand*{\subsectionmark}[1]{}%
  \renewcommand*{\sectionmark}[1]{}%
}
%</!letter>
%    \end{macrocode}
% \changes{v3.08}{2010/10/28}{\cs{noindent} added before usage of variable
%   \texttt{nexthead} or \texttt{nextfoot}}
%    \begin{macrocode}
%<*letter>
\renewcommand*{\ps@plain}{%
  \renewcommand*{\@oddhead}{%
    \vbox{\vbox{\hsize=\textwidth\hbox to\textwidth{%
          \parbox[b]{\textwidth}{\strut
            \ifnum\@pageat>-1
              \ifnum\@pageat<3
                \ifcase\@pageat\raggedright\or\centering\or\raggedleft\fi
                \pagemark
              \else
                \hfill
              \fi
            \else
              \hfill
            \fi
          }%
        }%
        \if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi
      }%
    }%
  }%
  \let\@evenhead\@oddhead%
  \renewcommand*{\@oddfoot}{%
    \parbox[t]{\textwidth}{%
      \if@fsl
        {%
          \raggedright%
          \vskip-\baselineskip\vskip.4pt
          \hrulefill\\
        }%
      \fi
      \ifnum\@pageat>2
        \ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
        \strut\pagemark
      \else
        \hfill
      \fi
    }%
  }%
  \let\@evenfoot\@oddfoot
}
\newcommand*{\ps@headings}{\let\@mkboth\markboth
  \renewcommand*{\@oddhead}{%
    \vbox{%
      \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\noindent
          \usekomavar{nexthead}}}%
      \if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi%
    }%
  }%
  \let\@evenhead\@oddhead
  \renewcommand*{\@oddfoot}{%
    \parbox[t]{\textwidth}{%
      \if@fsl
        {%
          \raggedright%
          \vskip-\baselineskip\vskip.4pt
          \hrulefill\\
        }%
      \fi
      \vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\footfont\noindent
          \usekomavar{nextfoot}}}%
    }%
  }%
  \let\@evenfoot\@oddfoot
}
\newcommand*{\ps@myheadings}{%
  \ps@headings
  \let\@mkboth\@gobbletwo
}
%</letter>
%</class>
%    \end{macrocode}
% Das Briefpaket verwendet \textsf{scrlayer-scrpage} für die Seitenstile:
%    \begin{macrocode}
%<*package&letter>
\RequirePackage{scrlayer-scrpage}
\newpairofpagestyles{letter}{%
  \clearpairofpagestyles
  \lehead[\ifnum\@pageat=\z@\pagemark\fi]%
         {\usekomavar{nexthead}}%
  \lohead[\ifnum\@pageat=\z@\pagemark\fi]%
         {\usekomavar{nexthead}}%
  \chead[\ifnum\@pageat=\@ne\pagemark\fi]%
        {}%
  \rehead[\ifnum\@pageat=\tw@\pagemark\fi]%
         {}%
  \rohead[\ifnum\@pageat=\tw@\pagemark\fi]%
         {}%
  \lefoot[\ifnum\@pageat=\thr@@\pagemark\fi]%
         {\usekomavar{nextfoot}}%
  \lofoot[\ifnum\@pageat=\thr@@\pagemark\fi]%
         {\usekomavar{nextfoot}}%
  \cfoot[\ifnum\@pageat=4 \pagemark\fi]%
        {}%
  \refoot[\ifnum\@pageat=5 \pagemark\fi]%
         {}%
  \rofoot[\ifnum\@pageat=5 \pagemark\fi]%
         {}%
}
%</package&letter>
%<*class>
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \subsection{Festlegung des Seitenstils auf besonderen Seiten}
%
% So etwas gibt es derzeit nicht für Briefe.
% \iffalse
%<*!letter>
% \fi
%
% \begin{macro}{\titlepagestyle}
%   \changes{v2.8d}{2001/07/05}{neu}^^A
% \begin{macro}{\partpagestyle}
%   \changes{v2.8d}{2001/07/05}{neu}^^A
%   \changes{v3.00}{2008/08/05}{nicht mehr in \textsf{scrartcl} definiert}
% \begin{macro}{\chapterpagestyle}
%   \changes{v2.8d}{2001/07/05}{neu}^^A
% \begin{macro}{\indexpagestyle}
%   \changes{v2.8d}{2001/07/05}{neu}^^A
% Auf verschiedenen Seiten wird automatisch mit \cs{thispagestyle} auf
% einen anderen Seitenstil umgeschaltet. Welcher das ist, ist in
% diesem Makros abgelegt und kann bei Bedarf geändert werden. 
% Voreingestellt ist der in früheren Versionen fest verdrahtete
% Seitenstil \texttt{plain}. 
%    \begin{macrocode}
\newcommand*{\titlepagestyle}{plain}
%<book|report>\newcommand*{\partpagestyle}{plain}
%<book|report>\newcommand*{\chapterpagestyle}{plain}
\newcommand*{\indexpagestyle}{plain}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \iffalse
%</!letter>
% \fi
%
% \subsection{Standardeinstellungen}
%
% Der voreingestellte Seitenstil hängt von der verwendeten Klasse ab:
%    \begin{macrocode}
%<report|article|letter>\pagestyle{plain}
%<book>\pagestyle{headings}
%    \end{macrocode}
% Die Nummerierung erfolgt hingegen immer mit arabischen Zahlen:
%    \begin{macrocode}
\pagenumbering{arabic}
%    \end{macrocode}
%
% \iffalse
%</class>
%</body>
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkernel-pagestyles.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End:
