summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx')
-rw-r--r--macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx1042
1 files changed, 437 insertions, 605 deletions
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx b/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
index 0c084715cb..63d02d9763 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{683}
% \iffalse meta-comment
% ======================================================================
% scrkernel-pagestyles.dtx
-% Copyright (c) Markus Kohm, 2002-2019
+% Copyright (c) Markus Kohm, 2002-2022
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -18,54 +17,17 @@
% 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-2019
-%
-% 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 3393 2019-11-19 10:33:44Z kohm $
+%%% From File: $Id: scrkernel-pagestyles.dtx 3744 2022-03-05 16:30:02Z kohm $
%<option>%%% (run: option)
%<body>%%% (run: body)
%<*dtx>
-% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-11-19 11:33:44 +0100 (Tue, 19 Nov 2019) $
+ \filedate$Date: 2022-03-05 17:30:02 +0100 (Sa, 05. Mär 2022) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3393 $
+ \filerevision$Revision: 3744 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-pagestyles.dtx}%
@@ -74,456 +36,167 @@
(page styles)]
}%
\reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\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}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{3}
\begin{document}
- \maketitle
- \tableofcontents
- \DocInput{\filename}
+\DocInput{scrkernel-pagestyles.dtx}
\end{document}
%</dtx>
% \fi
%
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/06/25}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/03/05}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/03/05}{whole implementation documentation in English}
%
-% \changes{v2.95}{2002/06/25}{%
-% erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-pagestyles.dtx}
+% \title{The Code of the Default Page Styles of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-pagestyles.dtx} provides the default page styles of the
+% \KOMAScript{} classes. As already told decades ago, there are plans to
+% remove this code and to require the \KOMAScript{} page style
+% package---namely \pkg*{scrlayer-scrpage}---instead.
+% \end{abstract}
+% \tableofcontents
%
-% \section{Seitenstil}
+% \section{User Manual}
%
-% 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.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
%
-% \StopEventually{\PrintIndex\PrintChanges}
+% \MaybeStop{\PrintIndex}
%
-% \subsection{Optionen für die Trennlinien in Kopf und Fuß}
+% \section{Implementation of the Page Styles of the \KOMAScript{} Classes}
%
-% \iffalse
-%<*option>
-% \fi
-%
-% \iffalse
+% \begin{macrocode}
%<*class>
-% \fi
+% \end{macrocode}
+%
+% \subsection{Options for the separation lines in page head and footer}
%
% \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
-% \changes{v3.18a}{2015/07/08}{BugFix: Argument bei
-% \cs{PassOptionsToPackage} erneut vertauscht}%^^A
-% \changes{v3.20}{2015/12/12}{Optionenweiterleitung an \textsf{typearea}
-% entfernt}%^^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.
+% \changes{v2.95c}{2006/08/11}{arguments of \cs{PassOptonsToPackage} fixed}
+% \changes{v2.97c}{2007/04/19}{don't pass \opt{headinclude} to \pkg*{typearea}}
+% \changes{v2.98c}{2008/03/26}{set \opt{headinclude}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/03/05}{if \pkg*{typearea} has not been loaded, pass
+% option to the package}
+% \changes{v3.17}{2015/03/10}{using value storage}
+% \changes{v3.18a}{2015/07/08}{arguments of \cs{PassOptionsToPackage} fixed
+% again}
+% \changes{v3.20}{2015/12/12}{don't pass option to \pkg*{typearea}}
+% \begin{macro}{\@hslfalse,\@hsltrue,\if@hsl}
+% Optional separation line between page head and text area---in other words:
+% below the page head.
% \begin{macrocode}
+%<*option>
\KOMA@ifkey{headsepline}{@hsl}%
\KOMA@kav@add{.\KOMAClassFileName}{headsepline}{false}
+% \end{macrocode}
+% \begin{option}{headnosepline}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macrocode}
\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{option}
-% \end{option}
+% \end{option}^^A headnosepline
+% \end{macro}^^A \if@hsl
+% \end{option}^^A headsepline
%
%
% \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
-% \changes{v3.18a}{2015/07/08}{BugFix: Argument bei
-% \cs{PassOptionsToPackage} erneut vertauscht}%^^A
-% \changes{v3.20}{2015/12/12}{Optionenweiterleitung an \textsf{typearea}
-% entfernt}%^^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.
+% \changes{v2.0e}{1994/08/14}{missing package at \cs{PassOptionsToPackage}
+% added}
+% \changes{v2.95c}{2006/08/11}{arguments of \cs{PassOptionsToPackage} fixed}
+% \changes{v2.97c}{2007/04/19}{don't pass \opt{footinclude} to
+% \pkg*{typearea}}
+% \changes{v2.98c}{2008/03/26}{set \opt{footinclude}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/03/05}{if \textsf{typearea} has not been loaded, pass
+% option to package}
+% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} replaced by \cs{KOMAoptions}}
+% \changes{v3.12}{2013/08/26}{recalculation of typing area}
+% \changes{v3.13}{2014/07/07}{no recalculation of typing area}
+% \changes{v3.13}{2014/07/07}{\opt{headinclude} mistake fixed}
+% \changes{v3.17}{2015/03/10}{using value storage}
+% \changes{v3.18a}{2015/07/08}{arguments of \cs{PassOptionsToPackage} fixed
+% again}
+% \changes{v3.20}{2015/12/12}{don't pass option to \pkg*{typearea}}
+% \begin{macro}{\@fslfalse,\@fsltrue,\if@fsl}
+% Optional separation line between text area and page footer---in other words:
+% above the page footer.
% \begin{macrocode}
\KOMA@ifkey{footsepline}{@fsl}%
\KOMA@kav@add{.\KOMAClassFileName}{footsepline}{false}
-\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \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
-% \changes{v3.28}{2019/11/18}{\cs{ifnotundefined} umbenannt in
-% \cs{Ifnotundefined}}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^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{option}{footnosepline}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/20}{deprecated}
% \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>
+\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
%</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}
-% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} umbenannt in
-% \cs{Ifnumbered}}%^^A
-% 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}
+% \end{macrocode}
+% \end{option}^^A footnosepline
+% \end{macro}^^A \if@fsl
+% \end{option}^^A footsepline
+%
+% \begin{option}{mpinclude}
+% \changes{v2.95}{2002/07/08}{moved to \pkg*{typearea}}
+% \end{option}{mpinclude}
+%
+%
+% \subsection{Definition of the standard page styles}
+%
+%
+% \begin{pgstyle}{plain,myheadings,headings}
+% \changes{v2.0e}{1994/08/10}{\cls*{scrbook} does not provide single-side page
+% styles}
+% \changes{v2.0e}{1994/08/17}{in single-side mode \cs{markboth} replaced by
+% \cs{markright}}
+% \changes{v2.1b}{1994/12/31}{in single-side mode \cs{markboth} replaced by
+% \cs{markright}}
+% \changes{v2.2a}{1995/02/07}{dot after section number in \cls*{scrbook} and
+% \cls*{scrreprt} removed}
+% \changes{v2.2a}{1995/02/07}{using \cs{subsectionmark} in single-side mode
+% with \cls*{scrartcl}}
+% \changes{v2.2a}{1995/02/07}{using \cs{sectionmark} in single-side mode with
+% \cls*{scrreprt}}
+% \changes{v2.2c}{1995/05/25}{dot after chapter number removed}
+% \changes{v2.2c}{1995/05/25}{numbers in running heads support CJK format
+% extension}
+% \changes{v2.3a}{1995/07/08}{because \cls{book} from version 1.2v provides
+% option \opt{oneside} single-side page styles added to \cls*{scrbook}}
+% \changes{v2.4f}{1996/10/08}{\cs{strut} added to page head}
+% \changes{v2.97c}{2007/07/18}{distinguish \opt{twoside} as late as possible}
+% \changes{v3.08}{2010/10/28}{\cs{noindent} added before usage of variable
+% \var{nexthead} or \var{nextfoot}}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.28}{2019/11/19}{\cs{ifnumbered} renamed to \cs{Ifnumbered}}
+% In difference to the standard classes, the \KOMAScript{} classes use
+% pagination in the page footer for all page styles. Also an optional
+% separation line below the page head and above the page footer is
+% supported. The ugly usage of pool man's upper case for the running head of
+% the standard classes is also not used, but optional.
% \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.
+% \changes{v2.8q}{2002/03/28}{added}
+% Because with \pkg*{typearea} option \opt{mpinclude} the head should be
+% extended to the margin note column, \cs{set@tempdima@hw} sets
+% \len{@tempdima} to the corresponding head width.
+% \begin{description}
+% \item[Note:] Package \pkg*{scrlayer} does not use this code, but allows
+% to configure the width of head and foot independent, which is much
+% better.
+% \end{description}
% \begin{macrocode}
+%<*body>
\newcommand*{\set@tempdima@hw}{%
\setlength{\@tempdima}{\textwidth}%
\if@mincl
@@ -532,47 +205,34 @@
\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}
+% \end{macro}^^A \set@tempdima@hw
+% \begin{fontelement}{pagenumber}
+% \changes{v2.8o}{2001/09/14}{added}
+% \begin{fontelement}{pagination}
+% \changes{v2.8o}{2001/09/14}{alias added}
+% \begin{fontelement}{pageheadfoot}
+% \changes{v2.98c}{2008/02/14}{added}
+% \begin{fontelement}{pagehead}
+% \changes{v2.8o}{2001/09/14}{added with warning added}
+% \changes{v2.98c}{2008/02/14}{changed to alias}
+% \changes{v2.97c}{2007/09/25}{warning changed}
+% \changes{v2.98c}{2008/02/14}{warning changed}
+% \begin{fontelement}{pagefoot}
+% \changes{v2.8o}{2001/09/14}{alias with warning added}
+% \changes{v2.98c}{2008/02/14}{changed to element}
+% \changes{v3.13}{2014/01/13}{warning changed}
+% \begin{macro}{\pnumfont,\headfont}
+% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} added}
% \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.
+% \changes{v2.98c}{2008/02/14}{added}
+% All these font settings are deprecated as user commands, but still valid as
+% internal macros, used to define font elements. Because of using the old
+% macros, we have to define elements manually instead of using \cs{newkomafont}.
% \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}
@@ -594,27 +254,31 @@
}
%</!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.
+% \end{macro}^^A \footfont
+% \end{macro}^^A \pnumfont,\headfont
+% \end{fontelement}^^A pagefoot
+% \end{fontelement}^^A pagehead
+% \end{fontelement}^^A pageheadfoot
+% \end{fontelement}^^A pagination
+% \end{fontelement}^^A pagenumber
+%
+% \begin{command}{\pagemark}
+% \changes{v2.95}{2006/03/15}{available for all classes}
+% \changes{v3.05}{2010/02/05}{group added}
+% \begin{command}{\letterpagemark}
+% \changes{v3.17}{2015/03/20}{added for \pkg*{scrletter}}
+% The pagination used by all classes. Originally this has been defined to
+% simplify usage of \pkg{fancyhdr} (instead of
+% \pkg[https://www.ctan.org/pkg/koma-script-obsolete]{scrpage2}), because in
+% this case you just have to use \cs{pagemark} instead of \cs{thepage} in the
+% definitions of the fancy page style to support \KOMAScript. But neither the
+% author nor the users of \pkg{fancyhdr} have used it. However, now it is
+% useful for \pkg{scrlayer-scrpage} too. And because we use another pagination
+% for letters, we define a second command for \pkg*{scrletter}.
% \begin{macrocode}
+%</body>
%</class>
-%<*class|letter>
+%<*(class|letter)&body>
\newcommand*{%
%<class> \pagemark
%<package> \letterpagemark
@@ -622,31 +286,14 @@
{\usekomafont{pagenumber}{%
%<letter> \pagename\nobreakspace
\thepage}}}
-%</class|letter>
-%<*class>
+%</(class|letter)&body>
% \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.
+% \end{command}^^A \letterpagemark
+% \end{command}^^A \pagemark
+% First of all we have to define the page styles of all classes but the letter
+% class.
% \begin{macrocode}
-%<*!letter>
+%<*class&!letter&body>
\renewcommand*{\ps@plain}{%
\renewcommand*{\@oddhead}{}%
\let\@evenhead\@oddhead
@@ -732,12 +379,11 @@
%<article> \renewcommand*{\subsectionmark}[1]{}%
\renewcommand*{\sectionmark}[1]{}%
}
-%</!letter>
+%</class&!letter&body>
% \end{macrocode}
-% \changes{v3.08}{2010/10/28}{\cs{noindent} added before usage of variable
-% \texttt{nexthead} or \texttt{nextfoot}}
+% And now the page styles of the letter class.
% \begin{macrocode}
-%<*letter>
+%<*class&letter&body>
\renewcommand*{\ps@plain}{%
\renewcommand*{\@oddhead}{%
\vbox{\vbox{\hsize=\textwidth\hbox to\textwidth{%
@@ -806,12 +452,11 @@
\ps@headings
\let\@mkboth\@gobbletwo
}
-%</letter>
-%</class>
+%</class&letter&body>
% \end{macrocode}
-% Das Briefpaket verwendet \textsf{scrlayer-scrpage} für die Seitenstile:
+% The letter package already uses \pkg*{scrlayer-scrpage}:
% \begin{macrocode}
-%<*package&letter>
+%<*package&letter&body>
\RequirePackage{scrlayer-scrpage}
\newpairofpagestyles{letter}{%
\clearpairofpagestyles
@@ -836,18 +481,14 @@
\rofoot[\ifnum\@pageat=5 \pagemark\fi]%
{}%
}
-%</package&letter>
+%</package&letter&body>
% \end{macrocode}
-% \end{macro}%^^A \ps@headings
-% \end{macro}%^^A \ps@myheadings
-% \end{macro}%^^A \ps@plain
-%
-% \selectlanguage{english}%^^A
-% \begin{macro}{\ps@notepaper}
-% \changes{v3.27}{2019/03/22}{new layer page style\texttt{notepaper}}%^^A
-% \changes{v3.27}{2019/03/22}{new layer \texttt{notepaper}}%^^A
-% From \KOMAScript~3.27 the \textsf{scrletter} package uses the layer
-% \texttt{notepaper} to define the note-paper. With this layer it is possible
+% \end{pgstyle}^^A plain,myheadings,headings
+%
+% \begin{pgstyle}{notepaper}
+% \changes{v3.27}{2019/03/22}{plan added}
+% There are plans for \pkg*{scrletter} package to use a new layer
+% \texttt{notepaper} to define the notepaper. With this layer it is possible
% to add several separated information blocks everywhere on the first
% page. A \texttt{picture} mode layer is used, because this makes the
% placement easier. It's a background layer, so the page contents are printed
@@ -862,7 +503,7 @@
contents=\scr@notepaper@printallelements
]{notepaper}
% \end{macrocode}
-% For \cs{scr@notepaper@elements} see \texttt{scrkernel-notepaper}.
+% For \cs{scr@notepaper@elements} see \file{scrkernel-notepaper.dtx}.
%
% A second layer is used for the foldmarks. Again it is a picture layer. But
% this time it is an odd-sides-only layer.
@@ -875,78 +516,269 @@
contents=\scr@foldmarks@printallelements
]{foldmarks}
% \end{macrocode}
-% For \cs{@hfoldmark} and \cs{@vfoldmark} see
-% \texttt{scrkernel-notepaper.dtx}.
+% For \cs{@hfoldmark} and \cs{@vfoldmark} see \file{scrkernel-notepaper.dtx}.
%
% Last but not least the page style. The foldmarks are below the notepaper.
% \begin{macrocode}
\DeclareNewPageStyleByLayers{notepaper}{foldmarks,notepaper}
%</package&letter&body&willbe>
% \end{macrocode}
-% \end{macro}%^^A \ps@notepaper
-% \selectlanguage{ngerman}%^^A
+% \end{pgstyle}^^A notepaper
%
%
-% \subsection{Festlegung des Seitenstils auf besonderen Seiten}
+% \subsection{Selection of page styles for special pages}
%
-% So etwas gibt es derzeit nicht für Briefe.
-% \iffalse
-%<*class>
-%<*!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}
-% \changes{v3.18}{2015/06/10}{indirekt über \cs{DeclareSectionCommand}}%^^A
-% \begin{macro}{\chapterpagestyle}
-% \changes{v2.8d}{2001/07/05}{neu}%^^A
-% \changes{v3.18}{2015/05/20}{indirekt über \cs{DeclareSectionCommand}}%^^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{command}{\titlepagestyle,\indexpagestyle}
+% \changes{v2.8d}{2001/07/05}{added}
+% For pages with the in-page title and for the first page of the index,
+% \KOMAScript{} provides configurable page styles. These are initially
+% \pstyle{plain}.
% \begin{macrocode}
+%<*class&!letter&body>
\newcommand*{\titlepagestyle}{plain}
\newcommand*{\indexpagestyle}{plain}
+%</class&!letter&body>
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
+% \begin{command}{\partpagestyle}
+% \changes{v2.8d}{2001/07/05}{added}
+% \changes{v3.00}{2008/08/05}{not with \cls*{scrartcl}}
+% \changes{v3.18}{2015/06/10}{indirect by \cs{DeclareSectionCommand}}
+% \end{command}
+% \begin{command}{\chapterpagestyle}
+% \changes{v2.8d}{2001/07/05}{added}
+% \changes{v3.18}{2015/05/20}{indirect by \cs{DeclareSectionCommand}}
+% \end{command}
%
-% \iffalse
-%</!letter>
-% \fi
%
-% \subsection{Standardeinstellungen}
+% \subsection{Selection of initial page style}
%
-% Der voreingestellte Seitenstil hängt von der verwendeten Klasse ab:
+% The initial page style depends on the class:
% \begin{macrocode}
+%<*class&body>
%<report|article|letter>\pagestyle{plain}
%<book>\pagestyle{headings}
% \end{macrocode}
-% Die Nummerierung erfolgt hingegen immer mit arabischen Zahlen:
+% But the pagination is always done using Arabic numbers.
% \begin{macrocode}
\pagenumbering{arabic}
+%</class&body>
% \end{macrocode}
%
-% \iffalse
+% \section{Implementation of Interleaf Pages}
+%
+% \begin{description}
+% \item[ToDo:] Move this code to a new file \file{scrkernel-interleaf.dtx}.
+% \end{description}
+%
+% \begin{option}{cleardoublepage}
+% \changes{v2.95}{2004/08/24}{added}
+% \changes{v2.96a}{2007/01/03}{value \opt{\quotechar=current} fixed}
+% \changes{v2.98c}{2008/03/06}{\cs{def} replaced by \cs{let}, because of
+% option \opt{open}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.17}{2015/03/10}{using value storage}
+% \begin{command}{\cleardoublestandardpage}
+% \changes{v2.8a}{2001/06/18}{added}
+% \changes{v2.96a}{2007/01/02}{default value added}
+% \begin{command}{\cleardoubleusingstyle}
+% \changes{v2.95}{2004/08/24}{added}
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} replaced by
+% \cs{pagestyle}}
+% \begin{command}{\cleardoubleemptypage,\cleardoubleplainpage}
+% \changes{v2.8a}{2001/06/18}{added}
+% \begin{command}{\cleardoubleoddpage,\cleardoubleoddstandardpage}
+% \changes{v2.98c}{2008/03/06}{added}
+% \begin{command}{\cleardoubleoddusingstyle}
+% \changes{v2.98c}{2008/03/06}{added}
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} replaced by
+% \cs{pagestyle}}
+% \begin{command}{\cleardoubleoddemptypage,\cleardoubleoddplainpage}
+% \changes{v2.98c}{2001/06/18}{added}
+% \begin{command}{\cleardoubleevenpage,\cleardoubleevenstandardpage}
+% \changes{v2.98c}{2008/03/06}{added}
+% \begin{command}{\cleardoubleevenusingstyle}
+% \changes{v2.98c}{2008/03/06}{added}
+% \changes{v3.06a}{2010/09/17}{\cs{thispagestyle} replaced by
+% \cs{pagestyle}}
+% \begin{command}{\cleardoubleevenemptypage,\cleardoubleevenplainpage}
+% \changes{v2.98c}{2001/06/18}{added}
+% \begin{command}{\cleardoublepage}
+% \changes{v2.98c}{2001/06/18}{always redefining it}
+% \changes{v2.98c}{2008/04/11}{new default from version 2.98c}
+% \changes{v3.13}{2014/03/01}{allow page style \pstyle{headings} as value for
+% class option}
+% \changes{v3.28}{2019/11/18}{\cs{ifnotundefined} replaced by
+% \cs{Ifnotundefined}}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} replaced by \cs{Ifstr}}
+% With options \opt{twoside} and \opt{openright}, which are both default with
+% \cls*{scrbook} and available with \cls*{scrreprt}, \cs{chapter} imply
+% \cs{cleardoublepage}. Usually this results in a new odd page and can insert
+% an interleaf page. With the standard classes this interleaf page has the
+% current active page style and therefore can have a running head and
+% pagination. Mainstream typography uses empty pages without running head or
+% pagination for interleaf pages. Some users also want a pagination but no
+% running head. Option \opt{cleardoublepage} can be used to select all the
+% often wishes and also every other page style. The corresponding commands are
+% also defined and the option re-defines \cs{cleardoublepage} to use one of
+% these additional commands. Similar is for \cs{cleardoubleoddpage} and
+% \cs{cleardoubleevenpage}.
+% \begin{macrocode}
+%<*(class|scrextend)&option>
+\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}
+% At class loading time page style \pstyle{headings} is still undefined, but
+% should be allowed as value for option \opt{cleardoublepage}.
+% \begin{description}
+% \item[Note:] Page style \pstyle{plain} is already defined in the \LaTeX{}
+% kernel and therefore does not need special treatment.
+% \end{description}
+% \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>
-%</body>
-% \fi
+ }%
+ }%
+ \@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}
+% We expand the value at the end of the class or package.
+% \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}}
+% \end{macrocode}
+% \end{command}^^A \cleardoublepage
+% \end{command}^^A \cleardoubleevenplainpage,\cleardoubleevenemptypage
+% \end{command}^^A \cleardoubleevenusingstyle
+% \end{command}^^A \cleardoubleevenpage,\cleardoubleevenstandardpage
+% \end{command}^^A \cleardoubleoddemptypage,\cleardoubleoddplainpage
+% \end{command}^^A \cleardoubleoddusingstyle
+% \end{command}^^A \cleardoubleoddpage,\cleardoubleoddstandardpage
+% \end{command}^^A \cleardoubleemptypage,\cleardoubleplainpage
+% \end{command}^^A \cleardoubleusingstyle
+% \end{command}^^A \cleardoublestandardpage
+% \begin{option}{cleardoubleempty,cleardoubleplain,cleardoublestandard}
+% \changes{v2.8a}{2001/06/18}{added}
+% \changes{v2.8q}{2001/11/06}{\cs{cleardoublestandardpage} replaced by
+% \cs{cleardoublestandard}}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+% \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/20}{deprecated}
+% \begin{macrocode}
+%<*class>
+\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty}
+\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain}
+\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current}
+%</class>
+%</(class|scrextend)&option>
+% \end{macrocode}
+% \end{option}^^A cleardoublestandard,cleardoubleplain,cleardoubleempty
+% \end{option}^^A cleardoublepage
%
-% \Finale
%
+% \Finale
+% \PrintChanges
+%
\endinput
-%
-% end of file `scrkernel-pagestyles.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End:
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% TeX-engine: luatex-dev
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End: