diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/koma-script/scrlayer.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/koma-script/scrlayer.sty | 192 |
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}{} |