diff options
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrlayer.dtx')
-rw-r--r-- | macros/latex/contrib/koma-script/source/scrlayer.dtx | 93 |
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]{% |