diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx | 298 |
1 files changed, 212 insertions, 86 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx b/Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx index 6639164e997..958eecaa7ef 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrlayer-scrpage.dtx @@ -1,8 +1,8 @@ -% \CheckSum{2321} +% \CheckSum{2418} % \iffalse^^A meta-comment % ====================================================================== % scrlayer-scrpage.dtx -% Copyright (c) Markus Kohm, 2012-2013 +% Copyright (c) Markus Kohm, 2012-2014 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ---------------------------------------------------------------------- % scrlayer-scrpage.dtx -% Copyright (c) Markus Kohm, 2012-2013 +% Copyright (c) Markus Kohm, 2012-2014 % % Diese Datei ist Teil der LaTeX2e KOMA-Script-Sammlung. % @@ -57,25 +57,24 @@ % Right brace \} Tilde \~} % % \iffalse^^A meta-comment -%<identify>%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (identify) -%<init>%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (init) -%<options>%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (options) -%<body>%%% From File: $Id: scrlayer-scrpage.dtx 1548 2013-12-14 17:36:23Z mjk $ (body) +%<identify>%%% From File: $Id: scrlayer-scrpage.dtx 1806 2014-10-16 06:41:25Z kohm $ (identify) +%<init>%%% From File: $Id: scrlayer-scrpage.dtx 1806 2014-10-16 06:41:25Z kohm $ (init) +%<options>%%% From File: $Id: scrlayer-scrpage.dtx 1806 2014-10-16 06:41:25Z kohm $ (options) +%<body>%%% From File: $Id: scrlayer-scrpage.dtx 1806 2014-10-16 06:41:25Z kohm $ (body) %<*dtx> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup - \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#4/#3/#2}} - \filedate$Date: 2013-12-14 18:36:23 +0100 (Sa, 14 Dez 2013) $ - \def\filerevision$#1: #2 ${\gdef\filerevision{v0.9.#2}} - \filerevision$Revision: 1548 $ + \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} + \filedate$Date: 2014-10-16 08:41:25 +0200 (Thu, 16 Oct 2014) $ + \def\filerevision$#1: #2 ${\gdef\filerevision{#2}} + \filerevision$Revision: 1806 $ \endgroup -\ProvidesFile{scrlayer-scrpage.dtx}[\filedate\space\filerevision\space +\ProvidesFile{scrlayer-scrpage.dtx}[\filedate\space r\filerevision\space %</dtx> %<*identify> %<interface>\NeedsTeXFormat{LaTeX2e}[1995/12/01] %<interface>\ProvidesPackage{scrlayer-scrpage}[% -% Some time following will be replaced by !KOMASCRIPTVERSION: -%!SCRLAYERVERSION +%!KOMAScriptVersion %<interface> package %</identify> %<*dtx|identify> @@ -87,7 +86,6 @@ \@@input scrkernel-version.dtx \@@input scrstrip.inc \KOMAdefVariable{COPYRIGHTFROM}{2012} - \KOMAdefVariable{SCRLAYERVERSION}{\space\space\filedate\space\filerevision}% \generate{\usepreamble\defaultpreamble \file{scrlayer-scrpage.sty}{% \from{scrlayer-scrpage.dtx}{interface,trace,scrpage,identify}% @@ -581,7 +579,9 @@ % with \KOMAScript{} options. Those options will become the primary interface. % % \begin{option}{headwidth} +% \changes{v0.9.1757}{2014/04/09}{new: two offsets available} % \begin{option}{footwidth} +% \changes{v0.9.1757}{2014/04/09}{new: two offsets available} % \begin{description} % \item[\texttt{=\meta{special dimensional expression}:\meta{special % dimensional expression}}:] see \Macro{sls@settowidthof} for information @@ -600,11 +600,11 @@ %<*options> \KOMA@key{headwidth}{% \begingroup - \sls@split@at@colon#1::\@nil + \sls@split@at@iicolons#1:::\@nil \ifx\reserved@a\@empty \let\reserved@a\sls@headwidth\fi \edef\reserved@a{% \noexpand\endgroup - \noexpand\sls@set@hf@width{head}{\reserved@b}{\reserved@a}% + \noexpand\sls@set@hf@width{head}{\reserved@b}{\reserved@c}{\reserved@a}% }% \reserved@a \FamilyKeyStateProcessed @@ -613,11 +613,11 @@ \scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@headwidth@default} \KOMA@key{footwidth}{% \begingroup - \sls@split@at@colon#1::\@nil + \sls@split@at@iicolons#1::\@nil \ifx\reserved@a\@empty \let\reserved@a\sls@footwidth\fi \edef\reserved@a{% \noexpand\endgroup - \noexpand\sls@set@hf@width{foot}{\reserved@b}{\reserved@a}% + \noexpand\sls@set@hf@width{foot}{\reserved@b}{\reserved@c}{\reserved@a}% }% \reserved@a \FamilyKeyStateProcessed @@ -625,46 +625,51 @@ \scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footwidth} \scrlayer@AddCsToInterface{KV@KOMA.scrlayer-scrpage.sty@footwidth@default} % \end{macrocode} -% \begin{macro}{\sls@split@at@colon} +% \begin{macro}{\sls@split@at@iicolons} % \begin{description} % \item[\texttt{\meta{balanced}:^^A % \meta{balanced}:^^A % \meta{balanced}\Macro{@nil}}:] first \meta{balanced} will be stored into % \Macro{reserved@a}, second into \Macro{reserved@b}, third will be eaten -% and warn about if it es neither empty and nor a colon. +% and warn about if it is neither empty and nor a colon. % \end{description} % This little helper is used, e.g., by options \Option{headwidth} and % \Option{footwidth}. % \begin{macrocode} -\scrlayerAddToInterface\sls@split@at@colon{% - \def\sls@split@at@colon#1:#2:#3\@nil{% - \ifstr{#3}{}{}{% - \ifstr{#3}{:}{}{% - \PackageWarning{scrlayer}{extra `:' found!\MessageBreak - You've used more than one colon at the argument\MessageBreak - of a two value option.\MessageBreak - The extra value(s) will be ignored% +\scrlayerAddToInterface\sls@split@at@iicolons{% + \def\sls@split@at@iicolons#1:#2:#3:#4\@nil{% + \ifstr{#4}{}{}{% + \ifstr{#4}{:}{}{% + \ifstr{#4}{::}{}{% + \PackageWarning{scrlayer}{extra `:' found!\MessageBreak + You've used more than two colons at the argument\MessageBreak + of a two value option.\MessageBreak + The extra value(s) will be ignored% + }% }% }% }% \def\reserved@a{#1}% \def\reserved@b{#2}% + \def\reserved@c{#3}% }% } % \end{macrocode} -% \end{macro}^^A \sls@split@at@colon +% \end{macro}^^A \sls@split@at@iicolons % \begin{macro}{\sls@set@hf@width} +% \changes{v0.9.1757}{2014/04/09}{new: two offsets available} % \begin{description} % \item[\Parameter{head} or \Parameter{foot}:] to complete the macro names % for page head or footer. -% \item[\Parameter{special dimensional expression}:] the offset +% \item[\Parameter{special dimensional expression}:] the offset odd page +% \item[\Parameter{special dimensional expression}:] the offset even page % \item[\Parameter{special dimensional expression}:] the width % \end{description} % This helper will generally set up width an offset of either head or footer. % \begin{macrocode} \scrlayerAddToInterface\sls@set@hf@width{% - \newcommand*{\sls@set@hf@width}[3]{% - \sls@settowidthof{\@tempdima}{#3}% + \newcommand*{\sls@set@hf@width}[4]{% + \sls@settowidthof{\@tempdima}{#4}% \ifdim\@tempdima>\paperwidth \PackageWarning {scrlayer-scrpage}% @@ -697,8 +702,13 @@ \fi }{% \sls@settowidthof{\@tempdimb}{#2}% - } - \addtolength{\@tempdima}{-\@tempdimb}% + }% + \ifstr{#3}{}{% + \addtolength{\@tempdima}{-\@tempdimb}% + }{% + \sls@settowidthof{\@tempdima}{#3}% + \setlength{\@tempdima}{-\@tempdima}% + }% \ifdim\@tempdimb<\z@ \setlength{\@tempdimb}{-\@tempdimb}% \expandafter\edef\csname sls@odd#1shift\endcsname{-\the\@tempdimb}% @@ -967,6 +977,34 @@ } % \end{macrocode} % \end{macro}^^A \sls@set@values +% \begin{macro}{\sls@split@at@colon} +% \begin{description} +% \item[\texttt{\meta{balanced}:^^A +% \meta{balanced}:^^A +% \meta{balanced}\Macro{@nil}}:] first \meta{balanced} will be stored into +% \Macro{reserved@a}, second into \Macro{reserved@b}, third will be eaten +% and warn about if it is neither empty and nor a colon. +% \end{description} +% This little helper is used, e.g., by options \Option{headwidth} and +% \Option{footwidth}. +% \begin{macrocode} +\scrlayerAddToInterface\sls@split@at@colon{% + \def\sls@split@at@colon#1:#2:#3\@nil{% + \ifstr{#3}{}{}{% + \ifstr{#3}{:}{}{% + \PackageWarning{scrlayer}{extra `:' found!\MessageBreak + You've used more than one colon at the argument\MessageBreak + of a two value option.\MessageBreak + The extra value(s) will be ignored% + }% + }% + }% + \def\reserved@a{#1}% + \def\reserved@b{#2}% + }% +} +% \end{macrocode} +% \end{macro}^^A \sls@split@at@colon % \begin{macro}{\sls@headabove@linelength} % \begin{macro}{\sls@headabove@linethickness} % \begin{macro}{\sls@headbelow@linelength} @@ -1321,6 +1359,13 @@ % \begin{macrocode} %<*init> \AtEndOfPackage{% + \sls@auto@pagestyleset% +} +% \end{macrocode} +% \begin{macro}{\sls@auto@pagestyleset} +% \changes{v0.9}{2014/01/22}{new (internal) macro}%^^A +% \begin{macrocode} +\newcommand*{\sls@auto@pagestyleset}{% \scr@ifundefinedorrelax{KOMAClassName}{% %<trace> \PackageInfoNoLine{scrlayer-scrpage}{% %<trace> auto-selection of `pagestyleset=standard'}% @@ -1333,11 +1378,15 @@ }% } %</init> +% \end{macrocode} +% \end{macro}%^^A \sls@auto@pagestyleset +% \begin{macrocode} %<*options> \KOMA@key{pagestyleset}{% \scr@ifundefinedorrelax{sls@ps@style@#1}{% \FamilyKeyStateUnknownValue }{% + \let\sls@auto@pagestyleset\relax \@nameuse{sls@ps@style@#1}% \FamilyKeyStateProcessed }% @@ -1377,24 +1426,24 @@ % different: % \begin{macrocode} \clearpairofpagestyles - \lehead[\ifnum\@pageat\z@\pagemark\fi] - {\ifnum\@pageat\z@\pagemark\else\leftmark\fi}% - \lohead[\ifnum\@pageat\z@\pagemark\fi] - {\ifnum\@pageat\z@\pagemark\else\leftmark\fi}% - \chead[\ifnum\@pageat\@ne\pagemark\fi] + \lehead[\ifnum\@pageat=\z@\pagemark\fi] + {\ifnum\@pageat=\z@\pagemark\else\leftmark\fi}% + \lohead[\ifnum\@pageat=\z@\pagemark\fi] + {\ifnum\@pageat=\z@\pagemark\else\leftmark\fi}% + \chead[\ifnum\@pageat=\@ne\pagemark\fi] {\ifcase\@pageat \rightmark\or \pagemark\or \rightmark\fi}% - \rehead[\ifnum\@pageat\tw@\pagemark\fi] + \rehead[\ifnum\@pageat=\tw@\pagemark\fi] {\ifcase\@pageat \leftmark\or \rightmark\or \pagemark \else \rightmark\fi}% - \rohead[\ifnum\@pageat\tw@\pagemark\fi] + \rohead[\ifnum\@pageat=\tw@\pagemark\fi] {\ifcase\@pageat \leftmark\or \rightmark\or \pagemark \else \rightmark\fi}% - \lefoot[\ifnum\@pageat\thr@@\pagemark\fi] - {\ifnum\@pageat\thr@@\pagemark\fi}% - \cfoot[\ifnum\@pageat 4 \pagemark\fi] - {\ifnum\@pageat 4 \pagemark\fi}% - \refoot[\ifnum\@pageat 5 \pagemark\fi] - {\ifnum\@pageat 5 \pagemark\fi}% + \lefoot[\ifnum\@pageat=\thr@@\pagemark\fi] + {\ifnum\@pageat=\thr@@\pagemark\fi}% + \cfoot[\ifnum\@pageat=4 \pagemark\fi] + {\ifnum\@pageat=4 \pagemark\fi}% + \refoot[\ifnum\@pageat=5 \pagemark\fi] + {\ifnum\@pageat=5 \pagemark\fi}% }{}% }% }% @@ -1527,6 +1576,8 @@ % \begin{macro}{\sls@defhead} % \begin{macro}{\sls@@defhead} % \begin{macro}{\sls@@@defhead} +% \changes{v0.9}{2014/08/18}{fix names of layers \texttt{\dots head.odd} and +% \texttt{\dots head.even}}%^^A % \begin{description} % \item[\MParameter{dimensional expression}{dimensional expression}:] length % and thickness of a line (ruler) above the page head. May be omitted and @@ -1593,6 +1644,8 @@ ]{#1.head.below.line}% % \end{macrocode} % The odd side, even side and one side: +% \changes{v3.13b}{2014/10/16}{workaround: additional group added to avoid +% pdf\TeX{} color stack warnings}%^^A % \begin{macrocode} \DeclareLayer[% background,evenpage,twoside,% @@ -1601,8 +1654,8 @@ width=\sls@headwidth,% contents={% \sls@secure@box\headheight{% - \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#4}}}}% - ]{#1.head.odd}% + \normalfont{\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#4}}}}}% + ]{#1.head.even}% \DeclareLayer[% background,oddpage,twoside,% head,% @@ -1610,8 +1663,8 @@ width=\sls@headwidth,% contents={% \sls@secure@box\headheight{% - \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#5}}}}% - ]{#1.head.even}% + \normalfont{\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#5}}}}}% + ]{#1.head.odd}% \DeclareLayer[% background,oddpage,oneside,% head,% @@ -1619,7 +1672,7 @@ width=\sls@headwidth,% contents={% \sls@secure@box\headheight{% - \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#6}}}}% + \normalfont{\usekomafont{pageheadfoot}{\usekomafont{pagehead}{#6}}}}}% ]{#1.head.oneside}% }% } @@ -1627,6 +1680,8 @@ % \begin{macro}{\sls@deffoot} % \begin{macro}{\sls@@deffoot} % \begin{macro}{\sls@@@deffoot} +% \changes{v0.9}{2014/08/18}{fix names of layers \texttt{\dots foot.odd} and +% \texttt{\dots foot.even}}%^^A % \begin{description} % \item[\MParameter{dimensional expression}{dimensional expression}:] length % and thickness of a line (ruler) above the page footer. May be omitted @@ -1711,7 +1766,7 @@ contents={% \sls@secure@box\footheight{% \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{#4}}}}% - ]{#1.foot.odd}% + ]{#1.foot.even}% \DeclareLayer[% foreground,oddpage,twoside,% foot,% @@ -1720,7 +1775,7 @@ contents={% \sls@secure@box\footheight{% \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagefoot}{#5}}}}% - ]{#1.foot.even}% + ]{#1.foot.odd}% \DeclareLayer[% foreground,oddpage,oneside,% foot,% @@ -1819,21 +1874,22 @@ % \end{macro}^^A \sls@@defhead % \end{macro}^^A \sls@defhead % \begin{macro}{\headfont} +% The low level page head font command. It is deprecated to redefine or use +% this and it may already be defined. % \begin{macro}{\scr@fnt@pagehead} % \begin{macro}{\scr@fnt@wrn@pagehead} +% \changes{v0.9}{2014/01/13}{warning always deactivated} % \begin{macro}{\scr@fnt@pageheadfoot} -% The low level page head font command. It is deprecated to redefine or use -% this and it may already be defined. % \begin{macrocode} %<*body> \@ifundefined{scr@fnt@pagehead}{% + \scrlayer@AddCsToInterface{scr@fnt@pagehead}% \@ifundefined{@pageheadfont}{% \newkomafont{pagehead}{}% \scrlayer@AddCsToInterface{@pageheadfont}% }{% \newcommand*{\scr@fnt@pagehead}{\@pageheadfont}% }% - \scrlayer@AddCsToInterface{scr@fnt@pagehead}% }{} \@ifundefined{scr@fnt@pageheadfoot}{% \newcommand*{\scr@fnt@pageheadfoot}{\headfont}% @@ -1842,6 +1898,12 @@ \newcommand*{\headfont}{\normalcolor\slshape}% }{} }{} +\scr@ifundefinedorrelax{scr@wrn@pagehead}{}{% +%<trace> \PackageInfo{scrlayer-scrpage}{% +%<trace> deactivating warning for font element\MessageBreak +%<trace> `pagehead'}% + \let\scr@fnt@wrn@pagehead\relax +} % \end{macrocode} % \end{macro}^^A \scr@fnt@pageheadfoot % \end{macro}^^A \scr@fnt@wrn@pagehead @@ -1849,20 +1911,26 @@ % \end{macro}^^A \headfont % % \begin{macro}{\footfont} -% \begin{macro}{\scr@fnt@pagefoot} -% \begin{macro}{\scr@fnt@wrn@pagefoot} % The low level page footer font command. It is deprecated to redefine or use % this and it may already be defined. +% \begin{macro}{\scr@fnt@pagefoot} +% \begin{macro}{\scr@fnt@wrn@pagefoot} +% \changes{v0.9}{2014/01/13}{warning always deactivated} % \begin{macrocode} \@ifundefined{scr@fnt@pagefoot}{% - \newcommand*{\scr@fnt@pagefoot}{\footfont}% \scrlayer@AddCsToInterface{scr@fnt@pagefoot}% + \def\scr@fnt@pagefoot{\footfont}% \@ifundefined{footfont}{% \newcommand*{\footfont}{}% \scrlayer@AddCsToInterface{footfont}% }{}% - \let\scr@fnt@wrn@pagefoot\relax }{} +\scr@ifundefinedorrelax{scr@fnt@pagefoot}{}{% +%<trace> \PackageInfo{scrlayer-scrpage}{% +%<trace> deactivating warning for font element\MessageBreak +%<trace> `pagefoot'}% + \let\scr@fnt@wrn@pagefoot\relax +} % \end{macrocode} % \end{macro}^^A \scr@fnt@wrn@pagefoot % \end{macro}^^A \scr@fnt@pagefoot @@ -2573,23 +2641,41 @@ % % % \begin{macro}{\ihead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\ohead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\chead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\lehead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\lohead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\rehead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\rohead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\cehead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\cohead} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\ifoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\ofoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\cfoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\lefoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\lofoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\refoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\rofoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\cefoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % \begin{macro}{\cofoot} +% \changes{v3.14}{2014/09/19}{new star version double the argument} % We also need macros to define the contents of the three part head % and foot. Each macro defines one of the part of head or foot of the % headings page style member and optional of the plain page style @@ -2597,56 +2683,71 @@ % \begin{macrocode} %<*body> \scrlayerAddToInterface\ihead{% - \newcommand*{\ihead}{\@ifnextchar[{\@@ihead}{\@ihead}}% + \newcommand*{\ihead}{\@ifstar {\@dblarg\@@@ihead}{\@ihead}}% } % \end{macrocode} % \begin{macro}{\@ihead} % \begin{macro}{\@@ihead} +% \begin{macro}{\@@@ihead} % Two helpers for the previous one to double the command and it's arguments. % \begin{macrocode} \scrlayerAddToInterface\@ihead{% - \newcommand*{\@ihead}[1]{\rehead{#1}\lohead{#1}}% + \newcommand*{\@ihead}{\@ifnextchar[{\@@@ihead}{\@@ihead}}% } \scrlayerAddToInterface\@@ihead{% - \newcommand*{\@@ihead}[2][]{\rehead[{#1}]{#2}\lohead[{#1}]{#2}}% + \newcommand*{\@@ihead}[1]{\rehead{#1}\lohead{#1}}% +} +\scrlayerAddToInterface\@@@ihead{% + \newcommand*{\@@@ihead}[2][]{\rehead[{#1}]{#2}\lohead[{#1}]{#2}}% } % \end{macrocode} +% \end{macro}^^A \@@@ihead % \end{macro}^^A \@@ihead % \end{macro}^^A \@ihead % \begin{macrocode} \scrlayerAddToInterface\ohead{% - \newcommand*{\ohead}{\@ifnextchar[{\@@ohead}{\@ohead}}% + \newcommand*{\ohead}{\@ifstar {\@dblarg\@@@ohead}{\@ohead}}% } % \end{macrocode} % \begin{macro}{\@ohead} % \begin{macro}{\@@ohead} +% \begin{macro}{\@@@ohead} % Two helpers for the previous one to double the command and it's arguments. % \begin{macrocode} \scrlayerAddToInterface\@ohead{% - \newcommand*{\@ohead}[1]{\lehead{#1}\rohead{#1}}% + \newcommand*{\@ohead}{\@ifnextchar[{\@@@ohead}{\@@ohead}}% } \scrlayerAddToInterface\@@ohead{% - \newcommand*{\@@ohead}[2][]{\lehead[{#1}]{#2}\rohead[{#1}]{#2}}% + \newcommand*{\@@ohead}[1]{\lehead{#1}\rohead{#1}}% +} +\scrlayerAddToInterface\@@@ohead{% + \newcommand*{\@@@ohead}[2][]{\lehead[{#1}]{#2}\rohead[{#1}]{#2}}% } % \end{macrocode} +% \end{macro}^^A \@@@ohead % \end{macro}^^A \@@ohead % \end{macro}^^A \@ohead % \begin{macrocode} \scrlayerAddToInterface\chead{% - \newcommand*{\chead}{\@ifnextchar[{\@@chead}{\@chead}}% + \newcommand*{\chead}{\@ifstar {\@dblarg\@@@chead}{\@chead}}% } % \end{macrocode} % \begin{macro}{\@chead} % \begin{macro}{\@@chead} +% \begin{macro}{\@@@chead} % Two helpers for the previous one to double the command and it's arguments. % \begin{macrocode} \scrlayerAddToInterface\@chead{% - \newcommand*{\@chead}[1]{\cehead{#1}\cohead{#1}}% + \newcommand*{\@chead}{\@ifnextchar[{\@@@chead}{\@@chead}}% } \scrlayerAddToInterface\@@chead{% - \newcommand*{\@@chead}[2][]{\cehead[{#1}]{#2}\cohead[{#1}]{#2}}% + \newcommand*{\@@chead}[1]{\cehead{#1}\cohead{#1}}% +} +\scrlayerAddToInterface\@@@chead{% + \newcommand*{\@@@chead}[2][]{\cehead[{#1}]{#2}\cohead[{#1}]{#2}}% } % \end{macrocode} +% \end{macro}^^A \@@@chead % \end{macro}^^A \@@chead % \end{macro}^^A \@chead % \begin{macrocode} @@ -2668,57 +2769,74 @@ \scrlayerAddToInterface\cohead{% \newcommand*{\cohead}{\sls@renewelement{odd}{middle}{head}}% } +% \end{macrocode} +% \begin{macrocode} \scrlayerAddToInterface\ifoot{% - \newcommand*{\ifoot}{\@ifnextchar[{\@@ifoot}{\@ifoot}}% + \newcommand*{\ifoot}{\@ifstar {\@dblarg\@@@ifoot}{\@ifoot}}% } % \end{macrocode} % \begin{macro}{\@ifoot} % \begin{macro}{\@@ifoot} +% \begin{macro}{\@@@ifoot} % Two helpers for the previous one to double the command and it's arguments. % \begin{macrocode} \scrlayerAddToInterface\@ifoot{% - \newcommand*{\@ifoot}[1]{\refoot{#1}\lofoot{#1}}% + \newcommand*{\@ifoot}{\@ifnextchar[{\@@@ifoot}{\@@ifoot}}% } \scrlayerAddToInterface\@@ifoot{% - \newcommand*{\@@ifoot}[2][]{\refoot[{#1}]{#2}\lofoot[{#1}]{#2}}% + \newcommand*{\@@ifoot}[1]{\refoot{#1}\lofoot{#1}}% +} +\scrlayerAddToInterface\@@@ifoot{% + \newcommand*{\@@@ifoot}[2][]{\refoot[{#1}]{#2}\lofoot[{#1}]{#2}}% } % \end{macrocode} +% \end{macro}^^A \@@@ifoot % \end{macro}^^A \@@ifoot % \end{macro}^^A \@ifoot % \begin{macrocode} \scrlayerAddToInterface\ofoot{% - \newcommand*{\ofoot}{\@ifnextchar[{\@@ofoot}{\@ofoot}}% + \newcommand*{\ofoot}{\@ifstar {\@dblarg\@@@ofoot}{\@ofoot}}% } % \end{macrocode} % \begin{macro}{\@ofoot} % \begin{macro}{\@@ofoot} +% \begin{macro}{\@@@ofoot} % Two helpers for the previous one to double the command and it's arguments. % \begin{macrocode} \scrlayerAddToInterface\@ofoot{% - \newcommand*{\@ofoot}[1]{\lefoot{#1}\rofoot{#1}}% + \newcommand*{\@ofoot}{\@ifnextchar[{\@@@ofoot}{\@@ofoot}}% } \scrlayerAddToInterface\@@ofoot{% - \newcommand*{\@@ofoot}[2][]{\lefoot[{#1}]{#2}\rofoot[{#1}]{#2}}% + \newcommand*{\@@ofoot}[1]{\lefoot{#1}\rofoot{#1}}% +} +\scrlayerAddToInterface\@@@ofoot{% + \newcommand*{\@@@ofoot}[2][]{\lefoot[{#1}]{#2}\rofoot[{#1}]{#2}}% } % \end{macrocode} +% \end{macro}^^A \@@@ofoot % \end{macro}^^A \@@ofoot % \end{macro}^^A \@ofoot % \begin{macrocode} \scrlayerAddToInterface\cfoot{% - \newcommand*{\cfoot}{\@ifnextchar[{\@@cfoot}{\@cfoot}}% + \newcommand*{\cfoot}{\@ifstar {\@dblarg\@@@cfoot}{\@cfoot}}% } % \end{macrocode} % \begin{macro}{\@cfoot} % \begin{macro}{\@@cfoot} +% \begin{macro}{\@@@cfoot} % Two helpers for the previous one to double the command and it's arguments. % \begin{macrocode} \scrlayerAddToInterface\@cfoot{% - \newcommand*{\@cfoot}[1]{\cefoot{#1}\cofoot{#1}}% + \newcommand*{\@cfoot}{\@ifnextchar[{\@@@cfoot}{\@@cfoot}}% } \scrlayerAddToInterface\@@cfoot{% - \newcommand*{\@@cfoot}[2][]{\cefoot[{#1}]{#2}\cofoot[{#1}]{#2}}% + \newcommand*{\@@cfoot}[1]{\cefoot{#1}\cofoot{#1}}% +} +\scrlayerAddToInterface\@@@cfoot{% + \newcommand*{\@@@cfoot}[2][]{\cefoot[{#1}]{#2}\cofoot[{#1}]{#2}}% } % \end{macrocode} +% \end{macro}^^A \@@@cfoot % \end{macro}^^A \@@cfoot % \end{macro}^^A \@cfoot % \begin{macrocode} @@ -2744,18 +2862,25 @@ % \begin{macro}{\sls@renewelement} % \begin{macro}{\sls@@renewelement} % \begin{macro}{\sls@@@renewelement} +% \begin{macro}{\sls@@@@renewelement} % \begin{macro}{\sls@@renewplainelement} % Little helper for several of the above commands. % \begin{macrocode} \scrlayerAddToInterface\sls@renewelement{% \newcommand*{\sls@renewelement}[3]{% + \@ifstar{\@dblarg{\sls@@@@renewelement{#1}{#2}{#3}}}% + {\sls@@renewelement{#1}{#2}{#3}}% + }% +} +\scrlayerAddToInterface\sls@@renewelement{% + \newcommand*{\sls@@renewelement}[3]{% \@ifnextchar[%] + {\sls@@@@renewelement{#1}{#2}{#3}}% {\sls@@@renewelement{#1}{#2}{#3}}% - {\sls@@renewelement{#1}{#2}{#3}}% }% } -\scrlayerAddToInterface\sls@@renewelement{% - \newcommand*{\sls@@renewelement}[4]{% +\scrlayerAddToInterface\sls@@@renewelement{% + \newcommand*{\sls@@@renewelement}[4]{% \scr@ifundefinedorrelax{sls@ps@\sls@currentheadings @#1@#2@#3}{% \@namedef{sls@ps@scrheadings@#1@#2@#3}{#4}% }{% @@ -2763,10 +2888,10 @@ }% }% } -\scrlayerAddToInterface\sls@@@renewelement{% - \def\sls@@@renewelement#1#2#3[#4]#5{% +\scrlayerAddToInterface\sls@@@@renewelement{% + \def\sls@@@@renewelement#1#2#3[#4]#5{% \sls@@renewplainelement{#1}{#2}{#3}{#4}% - \sls@@renewelement{#1}{#2}{#3}{#5}% + \sls@@@renewelement{#1}{#2}{#3}{#5}% }% } \scrlayerAddToInterface\sls@@renewplainelement{% @@ -2781,6 +2906,7 @@ %</body> % \end{macrocode} % \end{macro}^^A \sls@@renewplainelement +% \end{macro}^^A \sls@@@@renewelement % \end{macro}^^A \sls@@@renewelement % \end{macro}^^A \sls@@renewelement % \end{macro}^^A \sls@renewelement |