summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrlayer.sty')
-rw-r--r--Master/texmf-dist/tex/latex/koma-script/scrlayer.sty192
1 files changed, 139 insertions, 53 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty b/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty
index 43d9fa36ead..1b8a86ab76d 100644
--- a/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty
+++ b/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty
@@ -43,14 +43,14 @@
%% find a complete unmodified copy of LaTeX2e at
%% <http://mirror.ctan.org/tex-archive/macros/latex/base/>.
%%
-%%% From File: $Id: scrlayer.dtx 2684 2017-10-13 13:35:13Z kohm $
+%%% From File: $Id: scrlayer.dtx 3015 2018-09-03 10:51:32Z kohm $
%%% (run: identify)
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{scrlayer}[%
- 2018/03/30 v3.25 KOMA-Script
+ 2018/12/30 v3.26a KOMA-Script
package
(defining layers and page styles)]
-%%% From File: $Id: scrlayer.dtx 2684 2017-10-13 13:35:13Z kohm $
+%%% From File: $Id: scrlayer.dtx 3015 2018-09-03 10:51:32Z kohm $
%%% (run: init)
\RequirePackage{scrkbase}[2013/03/05]
\scr@ifundefinedorrelax{scrlayer@AtEndOfPackage}{%
@@ -115,7 +115,7 @@
\setlength{\footheight}{\baselineskip}
\fi
}
-%%% From File: $Id: scrlayer.dtx 2684 2017-10-13 13:35:13Z kohm $
+%%% From File: $Id: scrlayer.dtx 3015 2018-09-03 10:51:32Z kohm $
%%% (run: options)
\KOMA@key{markcase}{%
\begingroup
@@ -281,7 +281,7 @@
\KOMA@ifkey{draft}{scrlayer@draft}
\KOMA@ifkey{forceoverwrite}{scrlayer@forceoverwrite}
\KOMA@ifkey{autoremoveinterfaces}{scrlayer@autoremoveinterfaces}
-%%% From File: $Id: scrlayer.dtx 2684 2017-10-13 13:35:13Z kohm $
+%%% From File: $Id: scrlayer.dtx 3015 2018-09-03 10:51:32Z kohm $
%%% (run: body)
\KOMAProcessOptions\relax
\newcommand*{\rightfirstmark}{\expandafter\@rightmark\firstmark\@empty\@empty}
@@ -326,52 +326,10 @@
\providecommand*{\GenericMarkFormat}[1]{\@seccntmarkformat{#1}}%
}
\providecommand*{\@mkleft}{%
- \begingroup
- \ifx\@mkboth\markboth \aftergroup\markleft
- \else
- \ifx\@mkboth\@gobbletwo \aftergroup\@gobble
- \else \def\@gobbletwo##1##2{}%
- \ifx \@mkboth\@gobbletwo \aftergroup\@gobble
- \else
- \PackageWarning{scrlayer}{%
- package incompatibility detected!\MessageBreak
- \string\@mkboth it neither \string\markboth nor any\MessageBreak
- kind of two arguments gobbling,\MessageBreak
- e.g., \string\@gobbletwo.\MessageBreak
- So I don't known, what to do\MessageBreak
- with \string\@mkleft.\MessageBreak
- Nevertheless, \string\markleft\space will be\MessageBreak
- used%
- }%
- \aftergroup\markleft
- \fi
- \fi
- \fi
- \endgroup
+ \IfActiveMkBoth{\markleft}{\@gobble}%
}%
\providecommand*{\@mkright}{%
- \begingroup
- \ifx\@mkboth\markboth \aftergroup\markright
- \else
- \ifx\@mkboth\@gobbletwo \aftergroup\@gobble
- \else \def\@gobbletwo##1##2{}%
- \ifx \@mkboth\@gobbletwo \aftergroup\@gobble
- \else
- \PackageWarning{scrlayer}{%
- package incompatibility detected!\MessageBreak
- \string\@mkboth it neither \string\markboth nor any\MessageBreak
- kind of two arguments gobbling,\MessageBreak
- e.g., \string\@gobbletwo.\MessageBreak
- So I don't known, what to do\MessageBreak
- with \string\@mkright.\MessageBreak
- Nevertheless, \string\markright\space will be\MessageBreak
- used%
- }%
- \aftergroup\markright
- \fi
- \fi
- \fi
- \endgroup
+ \IfActiveMkBoth{\markright}{\@gobble}%
}%
\providecommand*{\@mkdouble}[1]{%
\@mkboth{#1}{#1}%
@@ -755,6 +713,25 @@
\csname @scr@l@\scr@current@layer @twosidetrue\endcsname
\csname @scr@l@\scr@current@layer @onesidetrue\endcsname
}
+\FamilyCSKey[.definelayer]{KOMAarg}{beforecontents}
+ {scr@l@\scr@current@layer @precontents@hook}
+\FamilyCSKey[.definelayer]{KOMAarg}{aftercontents}
+ {scr@l@\scr@current@layer @postcontents@hook}
+\DefineFamilyKey[.definelayer]{KOMAarg}{artifact}[true]{%
+ \FamilySetBool{KOMAarg}{artifact}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \expandafter\let\csname scr@l@\scr@current@layer @artifact\endcsname
+ \@empty
+ \else
+ \expandafter\let\csname scr@l@\scr@current@layer @artifact\endcsname
+ \relax
+ \fi
+ \else
+ \FamilyKeyStateProcessed
+ \@namedef{scr@l@\scr@current@layer @artifact}{#1}%
+ \fi
+}
\DefineFamilyKey[.definelayer]{KOMAarg}{addhoffset}{%
\expandafter\edef\csname scr@l@\scr@current@layer @x\endcsname{%
\noexpand\dimexpr \unexpanded\expandafter\expandafter\expandafter{%
@@ -791,6 +768,34 @@
\csname scr@l@\scr@current@layer @contents\endcsname}}%
\FamilyKeyStateProcessed
}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addbeforecontents}{%
+ \scr@ifundefinedorrelax{scr@l@\scr@current@layer @precontents@hook}{%
+ \expandafter\def
+ \csname scr@l@\scr@current@layer @precontents@hook\endcsname{#1}%
+ }{%
+ \expandafter\edef
+ \csname scr@l@\scr@current@layer @precontents@hook\endcsname{%
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @precontents@hook\endcsname}%
+ \unexpanded{#1}
+ }%
+ }%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{addaftercontents}{%
+ \scr@ifundefinedorrelax{scr@l@\scr@current@layer @postcontents@hook}{%
+ \expandafter\def
+ \csname scr@l@\scr@current@layer @postcontents@hook\endcsname{#1}%
+ }{%
+ \expandafter\edef
+ \csname scr@l@\scr@current@layer @postcontents@hook\endcsname{%
+ \unexpanded{#1}%
+ \unexpanded\expandafter\expandafter\expandafter{%
+ \csname scr@l@\scr@current@layer @postcontents@hook\endcsname}%
+ }%
+ }%
+ \FamilyKeyStateProcessed
+}
\DefineFamilyKey[.definelayer]{KOMAarg}{page}[\relax]{%
\FamilyKeyStateProcessed
\scrlayer@testunexpectedarg{page}{#1}%
@@ -970,6 +975,9 @@
\scrlayer@clone@switch{\scr@current@layer}{#1}{twoside}%
\scrlayer@clone@switch{\scr@current@layer}{#1}{floatpage}%
\scrlayer@clone@switch{\scr@current@layer}{#1}{nonfloatpage}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{precontents@hook}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{postcontents@hook}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{artifact}%
}%
}
\newcommand*{\scrlayer@clone@attribute}[3]{%
@@ -1069,6 +1077,19 @@
\DeclareLayer[{#1}]{#2}%
}%
}
+\newcommand{\ModifyLayers}[2][]{%
+ \edef\scr@current@layer{#2}%
+ \@for\scr@current@layer:=\scr@current@layer\do{%
+ \scr@trim@spaces\scr@current@layer
+ \ifx\scr@current@layer\@emtpy\else
+ \edef\scr@current@layer{%
+ \unexpanded{\ModifyLayer[{#1}]}{\scr@current@layer}%
+ }%
+ \scr@current@layer
+ \fi
+ }%
+ \let\scr@current@layer\@empty
+}
\newcommand*{\GetLayerContents}[1]{%
\IfLayerExists{#1}{\@nameuse{scr@l@#1@contents}}{%
\PackageError{scrlayer}{unknown layer `#1'}{%
@@ -1108,6 +1129,9 @@
\expandafter\let\csname if@scr@l@#1@nonfloatpage\endcsname\relax
\expandafter\let\csname @scr@l@#1@nonfloatpagefalse\endcsname\relax
\expandafter\let\csname @scr@l@#1@nonfloatpagetrue\endcsname\relax
+ \expandafter\let\csname scr@l@#1@precontents@hook\relax
+ \expandafter\let\csname scr@l@#1@postcontents@hook\relax
+ \expandafter\let\csname scr@l@#1@artifact\relax
}{%
\PackageInfo{scrlayer}{\string\DestroyLayer{#1} ignored,\MessageBreak
because that layer doesn't exist\MessageBreak
@@ -1408,6 +1432,7 @@
}%
\@namedef{@ps@#1@layers}{}%
\@for \reserved@a:=#3\do {%
+ \scr@trim@spaces\reserved@a
\ifstr\reserved@a\@empty{}{%
\expandafter\@cons\csname @ps@#1@layers\endcsname{{\reserved@a}}%
}%
@@ -1453,7 +1478,13 @@
(\csname scr@l@#3@w\endcsname,%
\csname scr@l@#3@h\endcsname)%
[\csname scr@l@#3@align\endcsname]%
- {\layercontentsmeasure}%
+ {%
+ \scrlayer@predraftmeasure@hook
+ \scrlayer@beginartifact{}%
+ \layercontentsmeasure
+ \scrlayer@endartifact{}%
+ \scrlayer@postdraftmeasure@hook
+ }%
\fi
\scr@layerbox(\csname scr@l@#3@x\endcsname,%
\csname scr@l@#3@y\endcsname)%
@@ -1461,14 +1492,44 @@
\csname scr@l@#3@h\endcsname)%
[\csname scr@l@#3@align\endcsname]%
{\csname layer\csname scr@l@#3@mode\endcsname
- mode\expandafter\endcsname
- \csname scr@l@#3@contents\endcsname}%
+ mode\expandafter\endcsname{%
+ \csname scr@l@#3@precontents@hook\endcsname
+ \scr@ifundefinedorrelax{scr@l@#3@artifact}{}{%
+ \expandafter\expandafter\expandafter
+ \scrlayer@beginartifact
+ \expandafter\expandafter\expandafter{%
+ \csname scr@l@#3@artifact\endcsname
+ }%
+ \csname scr@l@#3@contents\endcsname
+ \expandafter\expandafter\expandafter
+ \scrlayer@endartifact
+ \expandafter\expandafter\expandafter{%
+ \csname scr@l@#3@artifact\endcsname
+ }%
+ }{%
+ \csname scr@l@#3@contents\endcsname
+ }%
+ \csname scr@l@#3@postcontents@hook\endcsname
+ }%
+ }%
\fi
\fi
\fi
\fi
\endgroup
}
+\newcommand*{\scrlayer@predraftmeasure@hook}{}
+\newcommand*{\BeforeDraftMeasuringLayer}[1]{%
+ \edef\scrlayer@predraftmeasure@hook{%
+ \unexpanded{#1}\unexpanded\expandafter{\scrlayer@predraftmeasure@hook}%
+ }%
+}
+\newcommand*{\scrlayer@postdraftmeasure@hook}{}
+\newcommand*{\AfterDraftMeasuringLayer}[1]{%
+ \expandafter\def\expandafter\scrlayer@postdraftmeasure@hook\expandafter{%
+ \scrlayer@postdraftmeasure@hook #1%
+ }%
+}
\def\scr@layerbox(#1,#2)(#3,#4){%
\kernel@ifnextchar [%]
{\scr@@layerbox(#1,#2)(#3,#4)}{\scr@@layerbox(#1,#2)(#3,#4)[]}%
@@ -1611,6 +1672,7 @@
\edef\reserved@b{\GetRealPageStyle{#1}}%
\IfLayerPageStyleExists{\reserved@b}{%
\@for \reserved@a:=#2\do {%
+ \scr@trim@spaces\reserved@a
\ifstr\reserved@a\@empty{}{%
\expandafter\@cons\csname @ps@\reserved@b @layers\endcsname
{{\reserved@a}}%
@@ -1636,6 +1698,7 @@
\edef\reserved@b{\GetRealPageStyle{#1}}%
\IfLayerPageStyleExists{#1}{%
\@for \reserved@a:=#2\do {%
+ \scr@trim@spaces\reserved@a
\ifstr\reserved@a\@empty{}{%
\expandafter\remove@layer@from@page@style\expandafter{\reserved@a}%
{\reserved@b}%
@@ -1683,6 +1746,7 @@
\expandafter\@cons\csname @ps@\reserved@b @layers\endcsname{{##1}}%
\ifstr{##1}{#3}{%
\@for \reserved@a:=#2\do {%
+ \scr@trim@spaces\reserved@a
\ifstr\reserved@a\@empty{}{%
\expandafter\@cons\csname @ps@\reserved@b @layers\endcsname
{{\reserved@a}}%
@@ -1708,6 +1772,7 @@
\ifstr{##1}\@empty{}{%
\ifstr{##1}{#3}{%
\@for \reserved@a:=#2\do {%
+ \scr@trim@spaces\reserved@a
\ifstr\reserved@a\@empty{}{%
\expandafter\@cons\csname @ps@\reserved@b @layers\endcsname
{{\reserved@a}}%
@@ -1798,6 +1863,25 @@
\scrlayer@lpm@error{#1}{modifying}%
}%
}
+\RequirePackage{scrlfile}
+\BeforePackage{tagpdf}{%
+ \let\scrlayer@beginartifact\relax
+ \let\scrlayer@endartifact\relax
+}
+\AfterPackage*{tagpdf}{%
+ \providecommand*{\scrlayer@beginartifact}[1]{%
+ \ifstr{#1}{}{%
+ \tagmcbegin{artifact}%
+ }{%
+ \tagmcbegin{artifact=#1}%
+ }%
+ }%
+ \providecommand*{\scrlayer@endartifact}[1]{%
+ \tagmcend
+ }%
+}
+\providecommand*{\scrlayer@beginartifact}[1]{}
+\providecommand*{\scrlayer@endartifact}[1]{}
\newcommand*{\DeclarePageStyleAlias}[2]{%
\edef\reserved@a{\GetRealPageStyle{#2}}%
\scr@ifundefinedorrelax{ps@\reserved@a}{%
@@ -1928,6 +2012,7 @@
\begingroup
\@tempswafalse
\@for \reserved@a:=#2\do {%
+ \scr@trim@spaces\reserved@a
\edef\reserved@a{\noexpand\IfLayerAtPageStyle{#1}{\reserved@a}}%
\reserved@a{\@tempswatrue}{}%
}%
@@ -1949,6 +2034,7 @@
\fi
}{%
\@for \reserved@a:=#2\do {%
+ \scr@trim@spaces\reserved@a
\edef\reserved@a{\noexpand\IfLayerAtPageStyle{#1}{\reserved@a}}%
\reserved@a{}{\@tempswafalse}%
}%
@@ -2172,7 +2258,7 @@
\@ifundefined{scrlayer@#1@onremove}{\@namedef{scrlayer@#1@onremove}{}}{}%
\expandafter\l@addto@macro\csname scrlayer@#1@onremove\endcsname{#2}%
}
-%%% From File: $Id: scrlayer.dtx 2684 2017-10-13 13:35:13Z kohm $
+%%% From File: $Id: scrlayer.dtx 3015 2018-09-03 10:51:32Z kohm $
%%% (run: final)
\DeclareNewPageStyleByLayers{@everystyle@}{}
\RedeclarePageStyleByLayers{empty}{}