diff options
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx')
-rw-r--r-- | macros/latex/contrib/koma-script/source/scrkernel-pagestyles.dtx | 1042 |
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: |