summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/scrlayer.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrlayer.dtx')
-rw-r--r--macros/latex/contrib/koma-script/source/scrlayer.dtx93
1 files changed, 88 insertions, 5 deletions
diff --git a/macros/latex/contrib/koma-script/source/scrlayer.dtx b/macros/latex/contrib/koma-script/source/scrlayer.dtx
index 5bc3153887..ac98a934d1 100644
--- a/macros/latex/contrib/koma-script/source/scrlayer.dtx
+++ b/macros/latex/contrib/koma-script/source/scrlayer.dtx
@@ -1,7 +1,7 @@
% \iffalse^^A meta-comment
% ======================================================================
% scrlayer.dtx
-% Copyright (c) Markus Kohm, 2012-2020
+% Copyright (c) Markus Kohm, 2012-2021
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -19,7 +19,7 @@
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrlayer.dtx
-% Copyright (c) Markus Kohm, 2012-2020
+% Copyright (c) Markus Kohm, 2012-2021
%
% Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung.
%
@@ -38,7 +38,7 @@
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
%
-%%% From File: $Id: scrlayer.dtx 3533 2020-09-11 13:32:10Z kohm $
+%%% From File: $Id: scrlayer.dtx 3560 2021-02-15 13:20:12Z kohm $
%<identify>%%% (run: identify)
%<init>%%% (run: init)
%<options>%%% (run: options)
@@ -48,9 +48,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2020-09-11 15:32:10 +0200 (Fri, 11 Sep 2020) $
+ \filedate$Date: 2021-02-15 14:20:12 +0100 (Mon, 15 Feb 2021) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3533 $
+ \filerevision$Revision: 3560 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrlayer.dtx}%
@@ -200,6 +200,70 @@
%
% Initialisation before all options.
%
+% \begin{macro}{\scrlayer@@inherited@options@cslist}
+% \changes{v3.33}{2021/02/15}{new (internal)}
+% \begin{macro}{\scrlayer@@add@inherited@option}
+% \changes{v3.33}{2021/02/15}{new (internal)}
+% \begin{macro}{\scrlayer@do@inherited@options}
+% \changes{v3.33}{2021/02/15}{new (interface command)}
+% \begin{macro}{\scrlayer@inherit@option}
+% \changes{v3.33}{2021/02/15}{new (interface command)}
+% The options of \textsf{scrlayer} should be passed to \textsf{scrlayer} while
+% loading an interface package. We use the comma-separated-list
+% \cs{scrlayer@@inherited@options@cslist} to store all of them, so the
+% interface packages are able to process them via
+% \cs{scrlayer@do@inherited@options} which has an optional command, the
+% \texttt{KOMA} member defined by the interface package. The default of the
+% optional argument is (as usual)
+% ``\texttt{.}\cs{@currname}\texttt{.}\cs{currext}''. This option is passed to
+% the command, that is used a second argument, which is the first mandatory
+% argument.
+% Last but not least \cs{scrlayer@inherit@option} is the usual inheritance
+% function. It adds a new \texttt{KOMA} option and also removes it at the end
+% of the package. It should be used \emph{before} \cs{KOMAProcessOptions}. It
+% has three arguments: the \texttt{KOMA} member and the option name.
+%
+% With this the usual execution order of an interface package would be:
+% \begin{verbatim}
+% \RequirePackage{scrlayer}[2021/02/15]
+% \scrlayer@do@inherited@options{\scrlayer@inherit@option}
+% \end{verbatim}
+% \begin{macrocode}
+%<*package>
+\newcommand*{\scrlayer@@inherited@options@cslist}{}
+\newcommand*{\scrlayer@@add@inherited@option}[1]{%
+ \ifx\scrlayer@@inherited@options@cslist\@empty
+ \g@addto@macro\scrlayer@@inherited@options@cslist{#1}%
+ \else
+ \g@addto@macro\scrlayer@@inherited@options@cslist{,#1}%
+ \fi
+}
+\newcommand*{\scrlayer@do@inherited@options}[2][.\@currname.\@currext]{%
+ \@for \reserved@a:=\scrlayer@@inherited@options@cslist \do {%
+ \edef\reserved@a{\unexpanded{#2}{#1}{\reserved@a}}%
+ \reserved@a
+ }%
+}
+\newcommand*{\scrlayer@inherit@option}[2]{%
+%<trace> \typeout{TRACE: Define key `#2' of member `#1'}%
+ \DefineFamilyMember[#1]{KOMA}%
+ \expandafter\let\csname KV@KOMA#1@#2\expandafter\endcsname
+ \csname KV@KOMA.scrlayer.sty@#2\endcsname
+ \expandafter\let\csname KV@KOMA#1@#2@default\expandafter\endcsname
+ \csname KV@KOMA.scrlayer.sty@#2@default\expandafter\endcsname
+ \AtEndOfPackage{%
+ \RelaxFamilyKey[{#1}]{KOMA}{#2}%
+ }%
+}
+\@onlypreamble\scr@do@inherited@options
+\@onlypreamble\scr@inherit@option
+%</package>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% While there are \KOMAScript{} options, we need \Package{scrkbase} to declare
% them, but the interfaces also needs \Package{scrlayer} which already
% includes \Package{scrkbase}.
@@ -369,6 +433,7 @@
\fi
%<interface&scrpage>}%
}
+%<package>\scrlayer@@add@inherited@option{markcase}
%</options>
%<*interface&body>
\expandafter\let
@@ -614,6 +679,7 @@
%<*options>
%<*package>
\KOMA@ifkey{autooneside}{scrlayer@autooneside}\scrlayer@autoonesidetrue
+\scrlayer@@add@inherited@option{autooneside}
\KOMA@kav@replacebool{.scrlayer.sty}{autooneside}{scrlayer@autooneside}
%</package>
%<*interface>
@@ -672,6 +738,7 @@
\KOMA@kav@removekey{.scrlayer.sty}{manualmark}%
\KOMA@kav@add{.scrlayer.sty}{automark}{}%
}
+%<package>\scrlayer@@add@inherited@option{automark}
%</options>
%<*interface&body>
\expandafter\let\csname KV@KOMA.\@currname.\@currext @automark\endcsname\relax
@@ -687,6 +754,7 @@
\KOMA@kav@removekey{.scrlayer.sty}{manualmark}%
\KOMA@kav@add{.scrlayer.sty}{manualmark}{}%
}
+%<package>\scrlayer@@add@inherited@option{manualmark}
%</options>
%<*interface&body>
\expandafter\let\csname KV@KOMA.\@currname.\@currext @manualmark\endcsname\relax
@@ -2303,6 +2371,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsselect}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsselect}
%<package>\newcommand*{\@ps@initialhook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsselect}{}
%</options>
@@ -2339,6 +2408,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsinit}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsinit}
%<package>\newcommand*{\@ps@hook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsinit}{}
%</options>
@@ -2379,6 +2449,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsoneside}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsoneside}
%<package>\newcommand*{\@ps@onesidehook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsoneside}{}
%</options>
@@ -2419,6 +2490,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpstwoside}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpstwoside}
%<package>\newcommand*{\@ps@twosidehook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpstwoside}{}
%</options>
@@ -2459,6 +2531,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsoddpage}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsoddpage}
%<package>\newcommand*{\@ps@oddpagehook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsoddpage}{}
%</options>
@@ -2499,6 +2572,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsevenpage}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsevenpage}
%<package>\newcommand*{\@ps@evenpagehook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsevenpage}{}
%</options>
@@ -2537,6 +2611,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsfloatpage}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsfloatpage}
%<package>\newcommand*{\@ps@floatpagehook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsfloatpage}{}
%</options>
@@ -2575,6 +2650,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsnonfloatpage}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsnonfloatpage}
%<package>\newcommand*{\@ps@nonfloatpagehook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsnonfloatpage}{}
%</options>
@@ -2615,6 +2691,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsbackground}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsbackground}
%<package>\newcommand*{\@ps@backgroundhook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsbackground}{}
%</options>
@@ -2655,6 +2732,7 @@
\FamilyKeyStateProcessed
\KOMA@kav@add{.scrlayer.sty}{onpsforeground}{#1}%
}
+%<package>\scrlayer@@add@inherited@option{onpsforeground}
%<package>\newcommand*{\@ps@foregroundhook}{}
%<package>\KOMA@kav@add{.scrlayer.sty}{onpsforeground}{}
%</options>
@@ -2688,6 +2766,7 @@
% \begin{macrocode}
%<*options>
\KOMA@ifkey{singlespacing}{@ps@singlespacing}
+%<package>\scrlayer@@add@inherited@option{singlespacing}
%</options>
% \end{macrocode}
% \end{option}
@@ -2932,6 +3011,7 @@
%<*options>
%<*package>
\KOMA@ifkey{deactivatepagestylelayers}{scrlayer@deactivate@layers}
+%<package>\scrlayer@@add@inherited@option{deactivatepagestylelayers}
%</package>
%<*interface>
\KOMA@key{deactivatepagestylelayers}[true]{%
@@ -3207,6 +3287,7 @@
%<*options>
%<*package>
\KOMA@ifkey{draft}{scrlayer@draft}
+%<package>\scrlayer@@add@inherited@option{draft}
%</package>
%<*interface>
\KOMA@key{draft}[true]{%
@@ -4261,6 +4342,7 @@
%<*options>
%<*package>
\KOMA@ifkey{forceoverwrite}{scrlayer@forceoverwrite}
+%<package>\scrlayer@@add@inherited@option{forceoverwrite}
%</package>
%<*interface>
\KOMA@key{forceoverwrite}[true]{%
@@ -4289,6 +4371,7 @@
%<*options>
%<*package>
\KOMA@ifkey{autoremoveinterfaces}{scrlayer@autoremoveinterfaces}
+%<package>\scrlayer@@add@inherited@option{autoremoveinterfaces}
%</package>
%<*interface>
\KOMA@key{autoremoveinterfaces}[true]{%