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.sty1931
1 files changed, 1931 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty b/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty
new file mode 100644
index 00000000000..a11742cf8b2
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/koma-script/scrlayer.sty
@@ -0,0 +1,1931 @@
+%%
+%% This is file `scrlayer.sty',
+%% generated with the docstrip utility, extended by scrdocstrip.
+%%
+%% The original source files were:
+%%
+%% scrlayer.dtx (with options: `package,trace,scrlayer,identify')
+%% scrlayer.dtx (with options: `package,trace,scrlayer,init')
+%% scrlayer.dtx (with options: `package,trace,scrlayer,options')
+%% scrlayer.dtx (with options: `package,trace,scrlayer,body')
+%% scrlayer.dtx (with options: `package,trace,scrlayer,final')
+%% scrlogo.dtx (with options: `logo')
+%%
+%% Copyright (c) 2012-2013 Markus Kohm [komascript at gmx info]
+%%
+%% This file was generated from file(s) of the KOMA-Script bundle.
+%% ---------------------------------------------------------------
+%%
+%% It may be distributed under the conditions of the
+%% LaTeX Project Public License in the version distributed together
+%% with KOMA-Script, see file `lppl.txt' or `lppl-de.txt'.
+%%
+%% This file may only be distributed together with a copy of the
+%% KOMA-Script bundle. You may however distribute the
+%% KOMA-Script bundle without all such generated files. See also
+%% `lppl.txt' or `lppl-de.txt' for additional information.
+%%
+%% The list of files belonging to KOMA-Script distribution is given in
+%% the file `manifest.txt'. See also `lppl.txt' or `lppl-de.txt' for
+%% additional information.
+%%
+%% If this file is a beta version, you may not be allowed to distribute
+%% it. Look at the comments below to see if this is the case.
+%%
+%% English and German manuals are part of KOMA-Script bundle.
+%% ----------------------------------------------------------
+%%
+%% See `README'.
+%%
+%% The KOMA-Script bundle (but maybe not this file) was based upon the
+%% LaTeX 2.09 Script family created by Frank Neukam 1993 and the LaTeX2e
+%% standard classes created by The LaTeX3 Project 1994-1996. You may
+%% find a complete unmodified copy of LaTeX2e at
+%% <http://www.ctan.org/pub/tex-archive/macros/latex/base/>.
+%%
+%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (identify)
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesPackage{scrlayer}[%
+ 31/10/2013 v0.9.1480
+ package
+ (defining layers and page styles)]
+%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (init)
+\RequirePackage{scrkbase}[2013/03/05]
+\scr@ifundefinedorrelax{scrlayer@AtEndOfPackage}{%
+ \AtEndOfPackage{\let\scrlayer@AtEndOfPackage\@firstofone}%
+}{%
+ \ifx\scrlayer@AtEndOfPackage\@firstofone
+ \AtEndOfPackage{\let\scrlayer@AtEndOfPackage\@firstofone}%
+ \fi
+}
+\let\scrlayer@AtEndOfPackage\AtEndOfPackage
+\newcommand*{\scrlayer@testunexpectedarg}[2]{%
+ \ifx\relax#2\relax\else
+ \PackageError{scrlayer}{unexpected value to `#1'}{%
+ Option `#1' doesn't expect any value.\MessageBreak
+ If you'll continue, the value `#2' will be ignored.%
+ }%
+ \fi
+}
+\scr@ifundefinedorrelax{if@chapter}{%
+ \newif\if@chapter
+ \scr@ifundefinedorrelax{chapter}{\@chapterfalse}{\@chaptertrue}%
+}{}
+\scr@ifundefinedorrelax{if@mainmatter}{%
+ \scr@ifundefinedorrelax{mainmatter}{%
+ \newif\if@mainmatter\@mainmattertrue
+ }{%
+ \PackageWarningNoLine{scrlayer}{%
+ \string\mainmatter\space defined without
+ \string\if@mainmatter!\MessageBreak
+ Note, that several packages need
+ \string\if@mainmatter\space\MessageBreak
+ to detect whether or no the main matter has been\MessageBreak
+ entered. So does scrlayer. Because of this\MessageBreak
+ it will extend \string\mainmatter, now%
+ }%
+ \newif\if@mainmatter\@mainmattertrue
+ \expandafter\def\expandafter\mainmatter\expandafter{%
+ \expandafter\@mainmattertrue\mainmatter}%
+ \scr@ifundefinedorrelax{frontmatter}{}{%
+ \expandafter\def\expandafter\frontmatter\expandafter{%
+ \expandafter\@mainmatterfalse\frontmatter}
+ }%
+ \scr@ifundefinedorrelax{backmatter}{}{%
+ \expandafter\def\expandafter\backmatter{%
+ \expandafter\@mainmatterfalse\backmattter}%
+ }%
+ }%
+}{}
+\@ifundefined{footheight}{%
+ \newlength{\footheight}%
+ \setlength{\footheight}{-12345sp}%
+}{%
+ \PackageInfo{scrlayer}{Using already defined \string\footheight\MessageBreak
+ hoping, that this is a length and\MessageBreak
+ not only a macro}%
+}
+\AtBeginDocument{%
+ \ifdim\footheight=-12345sp
+ \PackageInfo{scrlayer}{Setting magic \string\footheight\space to
+ \string\baselineskip\space while\MessageBreak
+ \string\begin{document}}%
+ \setlength{\footheight}{\baselineskip}
+ \fi
+}
+%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (options)
+\KOMA@key{markcase}{%
+ \begingroup
+ \KOMA@set@ncmdkey{markcase}{reserved@a}{%
+ {upper}{0},{lower}{1},{used}{2},%
+ {ignoreuppercase}{3},{nouppercase}{3},%
+ {ignoreupper}{3},{noupper}{3}%
+ }{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \aftergroup\FamilyKeyStateProcessed
+ \ifnum \reserved@a>\m@ne
+ \aftergroup\let\aftergroup\MakeMarkcase
+ \ifcase \reserved@a
+ \aftergroup\MakeUppercase
+ \aftergroup\scrlayer@forceignoreuppercasefalse
+ \or
+ \aftergroup\MakeLowercase
+ \aftergroup\scrlayer@forceignoreuppercasefalse
+ \or
+ \aftergroup\@firstofone
+ \aftergroup\scrlayer@forceignoreuppercasefalse
+ \else
+ \aftergroup\scrlayer@ignoreuppercase
+ \aftergroup\scrlayer@forceignoreuppercasetrue
+ \fi
+ \fi
+ \else
+ \aftergroup\FamilyKeyStateUnknownValue
+ \fi
+ \endgroup
+}
+\providecommand*{\MakeMarkcase}[1]{#1}
+\DeclareRobustCommand*{\scrlayer@ignoreuppercase}[1]{%
+ \begingroup
+ \let\uppercase\@firstofone
+ \let\MakeUppercase\@firstofone
+ \expandafter\let\csname MakeUppercase \endcsname\@firstofone
+ #1%
+ \endgroup
+}
+\newif\ifscrlayer@forceignoreuppercase
+\KOMA@ifkey{autooneside}{scrlayer@autooneside}\scrlayer@autoonesidetrue
+\KOMA@key{automark}[]{%
+ \scrlayer@testunexpectedarg{automark}{#1}%
+ \scrlayer@AtEndOfPackage{%
+ \if@chapter
+ \automark[section]{chapter}%
+ \else
+ \automark[subsection]{section}%
+ \fi
+ }%
+ \FamilyKeyStateProcessed
+}
+\KOMA@key{manualmark}[]{%
+ \scrlayer@testunexpectedarg{manualmark}{#1}%
+ \scrlayer@AtEndOfPackage{\manualmark}%
+ \FamilyKeyStateProcessed
+}
+\KOMA@key{onpsselect}{%
+ \l@addto@macro{\@ps@initialhook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@initialhook}{}
+\KOMA@key{onpsinit}{%
+ \l@addto@macro{\@ps@hook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@hook}{}
+\KOMA@key{onpsoneside}{%
+ \l@addto@macro{\@ps@onesidehook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@onesidehook}{}
+\KOMA@key{onpstwoside}{%
+ \l@addto@macro{\@ps@twosidehook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@twosidehook}{}
+\KOMA@key{onpsoddpage}{%
+ \l@addto@macro{\@ps@oddpagehook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@oddpagehook}{}
+\KOMA@key{onpsevenpage}{%
+ \l@addto@macro{\@ps@evenpagehook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@evenpagehook}{}
+\KOMA@key{onpsfloatpage}{%
+ \l@addto@macro{\@ps@floatpagehook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@floatpagehook}{}
+\KOMA@key{onpsnonfloatpage}{%
+ \l@addto@macro{\@ps@nonfloatpagehook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@nonfloatpagehook}{}
+\KOMA@key{onpsbackground}{%
+ \l@addto@macro{\@ps@backgroundhook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@backgroundhook}{}
+\KOMA@key{onpsforeground}{%
+ \l@addto@macro{\@ps@foregroundhook}{#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\@ps@foregroundhook}{}
+\KOMA@ifkey{deactivatepagestylelayers}{scrlayer@deactivate@layers}
+\KOMA@ifkey{draft}{scrlayer@draft}
+\KOMA@ifkey{forceoverwrite}{scrlayer@forceoverwrite}
+\KOMA@ifkey{autoremoveinterfaces}{scrlayer@autoremoveinterfaces}
+%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (body)
+\KOMAProcessOptions\relax
+\@ifundefined{headmark}{}{%
+ \PackageWarningNoLine{scrlayer}{%
+ \string\headmark\space detected!\MessageBreak
+ \string\headmark\space will either be set to
+ \string\rightmark\MessageBreak
+ or \string\leftmark inside of page styles.\MessageBreak
+ This means, that \string\headmark\space will be overwritten\MessageBreak
+ at every page layer usage!\MessageBreak
+ Nevertheless it will stay unchanged outside\MessageBreak
+ of page layers.\MessageBreak
+ I hope, this won't break your document%
+ }%
+}
+\@ifundefined{pagemark}{%
+ \DeclareRobustCommand\pagemark{{\pnumfont{\thepage}}}%
+}{}%
+\@ifundefined{pnumfont}{%
+ \newcommand{\pnumfont}{\normalfont}%
+}{}
+\@ifundefined{scr@fnt@pagenumber}{%
+ \newcommand{\scr@fnt@pagenumber}{\pnumfont}%
+}{}
+\providecommand*{\partmarkformat}{\partname\ \thepart. \ }%
+\if@chapter
+ \providecommand*{\@chapapp}{\chaptername}%
+ \providecommand*{\chaptermarkformat}{\@chapapp\ \thechapter. \ }%
+ \providecommand*{\sectionmarkformat}{\thesection. \ }%
+\else
+ \providecommand*{\sectionmarkformat}{\GenericMarkFormat{section}}%
+\fi
+\scr@ifundefinedorrelax{@seccntmarkformat}{%
+ \providecommand*{\GenericMarkFormat}{\@seccntformat}%
+}{%
+ \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
+}%
+\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
+}%
+\providecommand*{\@mkdouble}[1]{%
+ \@mkboth{#1}{#1}%
+}
+\providecommand*{\markleft}[1]{%
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markleft\@themark {#1}%
+ \@temptokena \expandafter{\@themark}%
+ \mark{\the\@temptokena}%
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+}
+\providecommand{\@markleft}[3]{%
+ \@temptokena {#2}%
+ \unrestored@protected@xdef\@themark{{#3}{\the\@temptokena}}%
+}
+\newcommand*{\manualmark}{%
+ \begingroup
+ \def\@elt##1{%
+ \aftergroup\let\expandafter\aftergroup\csname ##1mark\endcsname
+ \aftergroup\@gobble
+ }%
+ \scrlayer@level@list
+ \endgroup
+ \let\@mkleft\@gobble
+ \let\@mkright\@gobble
+ \let\@mkdouble\@gobble
+ \let\@mkboth\@gobbletwo
+}
+\newcommand*{\automark}{%
+ \@ifstar{\@automark}{\manualmark\@automark}%
+}
+\newcommand*{\@automark}[2][]{%
+ \ifstr{#2}{}{%
+ \ifstr{#1}{}{%
+ \automark@basics
+ }{%
+ \automark@basics
+ \automark@righthigh{#1}%
+ }%
+ }{%
+ \ifstr{#1}{}{%
+ \automark@basics
+ \automark@leftlow{#2}%
+ }{%
+ \automark@basics
+ \automark@both{#1}{#2}%
+ }%
+ }%
+}
+\newcommand*{\automark@basics}{%
+ \let\@mkleft\markleft
+ \let\@mkright\markright
+ \let\@mkboth\markboth
+ \def\@mkdouble##1{\@mkboth{##1}{##1}}%
+}
+\newcommand*{\automark@righthigh}[1]{%
+ \ifscrlayer@level@prepared{#1}{%
+ \expandafter\def\csname #1mark\endcsname##1{%
+ \begingroup
+ \@tempswafalse
+ \if@twoside\@tempswatrue
+ \else\ifscrlayer@autooneside\else\@tempswatrue\fi\fi
+ \expandafter\endgroup
+ \if@tempswa
+ \@mkright{%
+ \MakeMarkcase{%
+ \ifnum \c@secnumdepth<\numexpr \csname #1level\endcsname +0\relax
+ \else\if@mainmatter \csname #1markformat\endcsname\fi\fi
+ ##1%
+ }%
+ }%
+ \fi
+ }%
+ }{}%
+}
+\newcommand*{\automark@leftlow}[1]{%
+ \ifscrlayer@level@prepared{#1}{%
+ \expandafter\def\csname #1mark\endcsname ##1{%
+ \if@twoside
+ \expandafter\@mkboth
+ \else
+ \expandafter\@mkdouble
+ \fi
+ {%
+ \MakeMarkcase{%
+ \ifnum \c@secnumdepth<\numexpr \csname #1level\endcsname +0\relax
+ \else\if@mainmatter \csname #1markformat\endcsname\fi\fi
+ ##1%
+ }%
+ }\@empty
+ }%
+ }{}%
+}
+\newcommand*{\automark@both}[2]{%
+ \ifscrlayer@level@prepared{#1}{%
+ \ifscrlayer@level@prepared{#2}{%
+ \ifnum \numexpr \csname #1level\endcsname +0\relax
+ > \numexpr \csname #2level\endcsname +0\relax
+ \automark@leftlow{#2}%
+ \automark@righthigh{#1}%
+ \else \ifnum \numexpr \csname #1level\endcsname +0\relax
+ = \numexpr \csname #2level\endcsname +0\relax
+ \expandafter\def\csname #2mark\endcsname##1{%
+ \@mkdouble{%
+ \MakeMarkcase{%
+ \ifnum \c@secnumdepth<\numexpr
+ \csname #2level\endcsname +0\relax
+ \else
+ \if@mainmatter \csname #2markformat\endcsname\fi
+ \fi
+ ##1%
+ }%
+ }%
+ }%
+ \else
+ \expandafter\def\csname #1mark\endcsname##1{%
+ \begingroup
+ \@tempswafalse
+ \if@twoside\@tempswatrue
+ \else\ifscrlayer@autooneside\else\@tempswatrue\fi\fi
+ \expandafter\endgroup
+ \if@tempswa
+ \@mkleft{%
+ \MakeMarkcase{%
+ \ifnum \c@secnumdepth
+ < \numexpr\csname #1level\endcsname +0\relax
+ \else
+ \if@mainmatter \csname #1markformat\endcsname\fi
+ \fi
+ ##1%
+ }%
+ }%
+ \fi
+ }%
+ \expandafter\def\csname #2mark\endcsname##1{%
+ \@mkboth{}{%
+ \MakeMarkcase{%
+ \ifnum \c@secnumdepth
+ < \numexpr \csname #2level\endcsname +0\relax
+ \else\if@mainmatter \csname #2markformat\endcsname\fi\fi
+ ##1%
+ }%
+ }%
+ }%
+ \fi
+ \fi
+ }{}%
+ }{}%
+}
+\newcommand*{\ifscrlayer@level@prepared}[1]{%
+ \typeout{1: \detokenize{#1}}%
+ \scr@ifundefinedorrelax{#1level}{%
+ \PackageError{scrlayer}{numbering depth of `#1' unknown}{%
+ Someone told me to use a section mark for level `#1',\MessageBreak
+ but the numbering depth hasn't been declared before. You may solve this
+ using\MessageBreak
+ \string\DeclareSectionNumberDepth{#1}{NUMBER}.%
+ }%
+ \@secondoftwo
+ }{%
+ \@firstoftwo
+ }%
+}
+\newcommand*{\DeclareSectionNumberDepth}[2]{%
+ \expandafter\edef\csname #1level\endcsname{\the\numexpr #2\relax}%
+ \@ifundefined{#1mark}{%
+ \expandafter\let\csname #1mark\endcsname\@gobble
+ }{}%
+ \@ifundefined{#1markformat}{%
+ \@namedef{#1markformat}{\GenericMarkFormat{#1}}%
+ }{}%
+ \begingroup
+ \@tempswatrue
+ \def\@elt##1{\ifstr{#1}{##1}{\@tempswafalse}{}}%
+ \scrlayer@level@list
+ \if@tempswa
+ \aftergroup\@firstofone
+ \else
+ \aftergroup\@gobble
+ \fi
+ \endgroup
+ {%
+ \l@addto@macro\scrlayer@level@list{\@elt{#1}}%
+ }%
+}
+\newcommand*{\scrlayer@level@list}{}
+\scr@ifundefinedorrelax{part}{}{%
+ \DeclareSectionNumberDepth{part}{-1}%
+}
+\if@chapter
+ \DeclareSectionNumberDepth{chapter}{0}%
+\fi
+\newcommand*{\scrlayer@level@init}{%
+ \@tempcnta=1
+ \def\reserved@b##1{%
+ \@tempswatrue
+ \def\reserved@a{##1}%
+ \@whilesw \if@tempswa \fi {%
+ \scr@ifundefinedorrelax{\reserved@a}{%
+ \@tempswafalse
+ }{%
+ \@ifundefined{\reserved@a level}{%
+ \expandafter\DeclareSectionNumberDepth
+ \expandafter{\reserved@a}{\@tempcnta}%
+ }{}%
+ \advance \@tempcnta by \@ne
+ \edef\reserved@a{sub\reserved@a}%
+ }%
+ }%
+ }%
+ \reserved@b{section}%
+ \reserved@b{paragraph}%
+ \reserved@b{minisec}%
+}
+\scrlayer@level@init
+\AtBeginDocument{%
+ \scrlayer@level@init
+}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.definelayer]{KOMAarg}
+\newcommand*{\def@scr@l@pos}[4]{%
+ \@namedef{scr@l@\scr@current@layer @x}{#1}%
+ \@namedef{scr@l@\scr@current@layer @y}{#2}%
+ \@namedef{scr@l@\scr@current@layer @w}{#3}%
+ \@namedef{scr@l@\scr@current@layer @h}{#4}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{hoffset}{%
+ \@namedef{scr@l@\scr@current@layer @x}{\dimexpr #1\relax}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{voffset}{%
+ \@namedef{scr@l@\scr@current@layer @y}{\dimexpr #1\relax}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{width}{%
+ \@namedef{scr@l@\scr@current@layer @w}{\dimexpr #1\relax}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{height}{%
+ \@namedef{scr@l@\scr@current@layer @h}{\dimexpr #1\relax}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{align}{%
+ \@namedef{scr@l@\scr@current@layer @align}{#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{contents}{%
+ \@namedef{scr@l@\scr@current@layer @contents}{#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{background}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{background}{#1}%
+ \csname @scr@l@\scr@current@layer @backgroundtrue\endcsname
+ \csname @scr@l@\scr@current@layer @foregroundfalse\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{foreground}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{foreground}{#1}%
+ \csname @scr@l@\scr@current@layer @backgroundfalse\endcsname
+ \csname @scr@l@\scr@current@layer @foregroundtrue\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{oddpage}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{oddpage}{#1}%
+ \csname @scr@l@\scr@current@layer @oddtrue\endcsname
+ \csname @scr@l@\scr@current@layer @evenfalse\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{evenpage}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{evenpage}{#1}%
+ \csname @scr@l@\scr@current@layer @oddfalse\endcsname
+ \csname @scr@l@\scr@current@layer @eventrue\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{floatpage}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{floatpage}{#1}%
+ \csname @scr@l@\scr@current@layer @nonfloatpagefalse\endcsname
+ \csname @scr@l@\scr@current@layer @floatpagetrue\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{nonfloatpage}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{twoside}{#1}%
+ \csname @scr@l@\scr@current@layer @nonfloatpagetrue\endcsname
+ \csname @scr@l@\scr@current@layer @floatpagefalse\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{oneside}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{oneside}{#1}%
+ \csname @scr@l@\scr@current@layer @twosidefalse\endcsname
+ \csname @scr@l@\scr@current@layer @onesidetrue\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{twoside}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{twoside}{#1}%
+ \csname @scr@l@\scr@current@layer @twosidetrue\endcsname
+ \csname @scr@l@\scr@current@layer @onesidefalse\endcsname
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{page}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{page}{#1}%
+ \def@scr@l@pos{\z@}{\z@}{\paperwidth}{\paperheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{topmargin}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{topmargin}{#1}%
+ \def@scr@l@pos{\z@}{\z@}{\paperwidth}{\dimexpr \topmargin+1in\relax}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{head}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{head}{#1}%
+ \def@scr@l@pos{%
+ \dimexpr
+ \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi
+ \else\oddsidemargin\fi
+ +1in
+ \relax
+ }{%
+ \dimexpr \topmargin+1in+\headheight\relax
+ }{\textwidth}{\headheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{bl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{headsep}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{head}{#1}%
+ \def@scr@l@pos{%
+ \dimexpr
+ \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi
+ \else\oddsidemargin\fi
+ +1in
+ \relax
+ }{%
+ \dimexpr \topmargin+1in+\headheight\relax
+ }{\textwidth}{\headsep}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{textarea}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{textarea}{#1}%
+ \def@scr@l@pos{%
+ \dimexpr
+ \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi
+ \else\oddsidemargin\fi
+ +1in
+ \relax
+ }{%
+ \dimexpr \topmargin+1in+\headheight+\headsep\relax
+ }{\textwidth}{\textheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{foot}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{foot}{#1}%
+ \def@scr@l@pos{%
+ \dimexpr
+ \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi
+ \else\oddsidemargin\fi
+ +1in
+ \relax
+ }{%
+ \dimexpr \topmargin+1in+\headheight+\headsep+\textheight
+ +\footskip+\dp\strutbox-\footheight\relax
+ }{\textwidth}{\footheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{footskip}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{foot}{#1}%
+ \def@scr@l@pos{%
+ \dimexpr
+ \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi
+ \else\oddsidemargin\fi
+ +1in
+ \relax
+ }{%
+ \dimexpr \topmargin+1in+\headheight+\headsep+\textheight\relax
+ }{\textwidth}{\dimexpr\footskip+\dp\strutbox-\footheight\relax}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{bottommargin}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{bottommargin}{#1}%
+ \def@scr@l@pos{\z@}{%
+ \dimexpr \topmargin+1in+\headheight+\headsep
+ +\textheight
+ +\footskip+\dp\strutbox\relax
+ }{\paperwidth}{\dimexpr\paperheight-\layeryoffset\relax}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{leftmargin}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{leftmargin}{#1}%
+ \def@scr@l@pos{\z@}{\z@}{%
+ \dimexpr
+ \if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi
+ \else\oddsidemargin\fi
+ +1in
+ \relax
+ }{\paperheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{rightmargin}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{rightmargin}{#1}%
+ \def@scr@l@pos{\paperwidth}{\z@}{%
+ \dimexpr \paperwidth-1in-\textwidth
+ -\if@twoside\ifodd\value{page}\oddsidemargin\else\evensidemargin\fi
+ \else\oddsidemargin\fi\relax
+ }{\paperheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{tr}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{innermargin}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{innermargin}{#1}%
+ \def@scr@l@pos{%
+ \if@twoside
+ \ifodd\value{page} \z@
+ \else \dimexpr \evensidemargin+1in+\textwidth\relax
+ \fi
+ \else \z@\fi
+ }{\z@}{%
+ \dimexpr
+ \if@twoside\ifodd\value{page} \oddsidemargin+1in
+ \else \paperwidth-\layerxoffset\fi
+ \else \oddsidemargin+1in\fi
+ \relax
+ }{\paperheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{outermargin}[\relax]{%
+ \FamilyKeyStateProcessed
+ \scrlayer@testunexpectedarg{outermargin}{#1}%
+ \def@scr@l@pos{%
+ \dimexpr
+ \if@twoside\ifodd\value{page} \oddsidemargin+1in+\textwidth
+ \else \z@\fi
+ \else \oddsidemargin+1in+\textwidth\fi
+ \relax
+ }{\z@}{%
+ \dimexpr
+ \if@twoside\ifodd\value{page}\paperwidth-\layerxoffset
+ \else \evensidemargin+1in\fi
+ \else \paperwidth-\layerxoffset\fi
+ \relax
+ }{\paperheight}%
+ \@namedef{scr@l@\scr@current@layer @align}{tl}%
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{area}{%
+ \def@scr@l@pos#1
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayer]{KOMAarg}{clone}{%
+ \scr@ifundefinedorrelax{scr@l@#1@x}{%
+ \FamilyKeyStateUnknownValue
+ \PackageError{scrlayer}{layer `#1' undefined}{%
+ You can clone only already defined layers.\MessageBreak
+ If you'll continue, `clone=#1' will be ignored.%
+ }%
+ }{%
+ \FamilyKeyStateProcessed
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{x}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{y}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{w}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{h}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{align}%
+ \scrlayer@clone@attribute{\scr@current@layer}{#1}{contents}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{background}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{foreground}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{odd}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{even}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{oneside}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{twoside}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{floatpage}%
+ \scrlayer@clone@switch{\scr@current@layer}{#1}{nonfloatpage}%
+ }%
+}
+\newcommand*{\scrlayer@clone@attribute}[3]{%
+ \expandafter\let\csname scr@l@#1@#3\expandafter\endcsname
+ \csname scr@l@#2@#3\expandafter\endcsname
+}
+\newcommand*{\scrlayer@clone@switch}[3]{%
+ \expandafter\let\csname if@scr@l@#1@#3\expandafter\endcsname
+ \csname if@scr@l@#2@#3\expandafter\endcsname
+}
+\newcommand*{\DeclareLayer}[2][]{%
+ \def\scr@current@layer{#2}%
+ \@namedef{scr@l@#2@x}{\z@}%
+ \@namedef{scr@l@#2@y}{\z@}%
+ \@namedef{scr@l@#2@w}{\paperwidth}%
+ \@namedef{scr@l@#2@h}{\paperheight}%
+ \@namedef{scr@l@#2@align}{tl}%
+ \@namedef{scr@l@#2@contents}{}%
+ \expandafter\newif\csname if@scr@l@#2@background\endcsname
+ \csname @scr@l@#2@backgroundtrue\endcsname
+ \expandafter\newif\csname if@scr@l@#2@foreground\endcsname
+ \csname @scr@l@#2@foregroundtrue\endcsname
+ \expandafter\newif\csname if@scr@l@#2@odd\endcsname
+ \csname @scr@l@#2@oddtrue\endcsname
+ \expandafter\newif\csname if@scr@l@#2@even\endcsname
+ \csname @scr@l@#2@eventrue\endcsname
+ \expandafter\newif\csname if@scr@l@#2@oneside\endcsname
+ \csname @scr@l@#2@onesidetrue\endcsname
+ \expandafter\newif\csname if@scr@l@#2@twoside\endcsname
+ \csname @scr@l@#2@twosidetrue\endcsname
+ \expandafter\newif\csname if@scr@l@#2@floatpage\endcsname
+ \csname @scr@l@#2@floatpagetrue\endcsname
+ \expandafter\newif\csname if@scr@l@#2@nonfloatpage\endcsname
+ \csname @scr@l@#2@nonfloatpagetrue\endcsname
+ \FamilyExecuteOptions[.definelayer]{KOMAarg}{#1}%
+}
+\newcommand*{\scr@current@layer}{}
+\newcommand*{\IfLayerExists}[1]{%
+ \scr@ifundefinedorrelax{scr@l@#1@x}{%
+ \expandafter\@secondoftwo
+ }{%
+ \expandafter\@firstoftwo
+ }%
+}
+\newcommand*{\DeclareNewLayer}[2][]{%
+ \IfLayerExists{#2}{%
+ \PackageError{scrlayer}{layer `#2' already defined}{%
+ You may declare only layer, that haven't been declared previously
+ using\MessageBreak
+ \string\DeclareNewLayer. See also the alternatives
+ \string\RedeclareLayer,\MessageBreak
+ \string\ModifyLayer\space and \string\ProvideLayer.\MessageBreak
+ If you'll continue, declaration will be ignored.}%
+ }{\DeclareLayer[{#1}]{#2}}%
+}
+\newcommand*{\ProvideLayer}[2][]{%
+ \IfLayerExists{#2}{%
+ \PackageInfo{scrlayer}{\string\ProvideLayer{#2} ignored,\MessageBreak
+ because of already defined layer}%
+ }{\DeclareNewLayer[{#1}]{#2}}%
+}
+\newcommand*{\RedeclareLayer}[2][]{%
+ \IfLayerExists{#2}{}{%
+ \PackageError{scrlayer}{layer `#2' not yet defined}{%
+ You may declare only already declared layers using
+ \string\RedeclareLayer.\MessageBreak
+ See also the alternatives
+ \string\DeclareLayer and \string\ProvideLayer.\MessageBreak
+ Nevertheless, if you'll continue, declaration will be done.}%
+ }%
+ \DeclareLayer[{#1}]{#2}%
+}
+\newcommand*{\ModifyLayer}[2][]{%
+ \IfLayerExists{#2}{%
+ \FamilyExecuteOptions[.definelayer]{KOMAarg}{#1}%
+ }{%
+ \PackageError{scrlayer}{layer `#2' not yet defined}{%
+ You may modify only already declared layers using
+ \string\ModifyLayer.\MessageBreak
+ See also the alternatives
+ \string\DeclareLayer and \string\ProvideLayer.\MessageBreak
+ Nevertheless, if you'll continue, declaration will be done.}%
+ \DeclareLayer[{#1}]{#2}%
+ }%
+}
+\newcommand*{\DestroyLayer}[1]{%
+ \IfLayerExists{#1}{%
+ \expandafter\let\csname scr@l@#1@x\endcsname\relax
+ \expandafter\let\csname scr@l@#1@y\endcsname\relax
+ \expandafter\let\csname scr@l@#1@w\endcsname\relax
+ \expandafter\let\csname scr@l@#1@h\endcsname\relax
+ \expandafter\let\csname scr@l@#1@align\endcsname\relax
+ \expandafter\let\csname scr@l@#1@contents\endcsname\relax
+ \expandafter\let\csname if@scr@l@#1@background\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@backgroundfalse\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@backgroundtrue\endcsname\relax
+ \expandafter\let\csname if@scr@l@#1@foreground\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@foregroundfalse\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@foregroundtrue\endcsname\relax
+ \expandafter\let\csname if@scr@l@#1@odd\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@oddfalse\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@oddtrue\endcsname\relax
+ \expandafter\let\csname if@scr@l@#1@even\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@evenfalse\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@eventrue\endcsname\relax
+ \expandafter\let\csname if@scr@l@#1@oneside\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@onesidefalse\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@onesidetrue\endcsname\relax
+ \expandafter\let\csname if@scr@l@#1@twoside\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@twosidefalse\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@twosidetrue\endcsname\relax
+ \expandafter\let\csname if@scr@l@#1@floatpage\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@floatpagefalse\endcsname\relax
+ \expandafter\let\csname @scr@l@#1@floatpagetrue\endcsname\relax
+ \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
+ }{%
+ \PackageInfo{scrlayer}{\string\DestroyLayer{#1} ignored,\MessageBreak
+ because that layer doesn't exist\MessageBreak
+ (any longer)%
+ }%
+ }%
+}
+\newcommand*{\layercontentsmeasure}{%
+ \smash{\begin{picture}(0,0)
+ (0,\if t\scr@l@valign -\ht\strutbox
+ \else
+ \if b\scr@l@valign -\dimexpr\layerheight-\dp\strutbox\relax
+ \else -.5\dimexpr \layerheight+\ht\strutbox-\dp\strutbox\relax
+ \fi
+ \fi\@gobble)
+ \put(0,0){\line(1,0){\layerwidth\@gobble}}%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .5mm\relax/\dimexpr 1mm\relax\relax
+ \multiput(0,0)(1mm\@gobble,0){\@tempcnta}{%
+ \line(0,-1){1mm\@gobble}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + 2.5mm\relax/\dimexpr 5mm\relax\relax
+ \multiput(0,0)(5mm\@gobble,0){\@tempcnta}{%
+ \line(0,-1){2mm\@gobble}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .5cm\relax/\dimexpr 1cm\relax\relax
+ \multiput(0,0)(10mm\@gobble,0){\@tempcnta}{%
+ \put(0,0){\line(0,-1){3mm\@gobble}}%
+ \put(0,-3.5mm\@gobble){%
+ \makebox(0,0)[ct]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+ \put(0,-\layerheight\@gobble){\line(1,0){\layerwidth\@gobble}}%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .05in\relax/\dimexpr .1in\relax\relax
+ \multiput(0,-\layerheight\@gobble)(.1in\@gobble,0){\@tempcnta}{%
+ \line(0,1){1mm\@gobble}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .25in\relax/\dimexpr .5in\relax\relax
+ \multiput(0,-\layerheight\@gobble)(.5in\@gobble,0){\@tempcnta}{%
+ \line(0,1){2mm\@gobble}%
+ }%
+ \@tempcnta=\numexpr \dimexpr\layerwidth + .5in\relax/\dimexpr 1in\relax\relax
+ \multiput(0,-\layerheight\@gobble)(1in\@gobble,0){\@tempcnta}{%
+ \put(0,0){\line(0,1){3mm\@gobble}}%
+ \put(0,3.5mm\@gobble){%
+ \makebox(0,0)[cb]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+ \put(0,0){\line(0,-1){\layerheight\@gobble}}%
+ \@tempcnta\numexpr \dimexpr\layerheight + .5mm\relax/\dimexpr 1mm\relax\relax
+ \multiput(0,0)(0,-1mm\@gobble){\@tempcnta}{%
+ \line(1,0){1mm\@gobble}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + 2.5mm\relax/\dimexpr 5mm\relax\relax
+ \multiput(0,0)(0,-5mm\@gobble){\@tempcnta}{%
+ \line(1,0){2mm\@gobble}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + .5cm\relax/\dimexpr 1cm\relax\relax
+ \multiput(0,0)(0,-1cm\@gobble){\@tempcnta}{%
+ \put(0,0){\line(1,0){3mm\@gobble}}%
+ \put(3.5mm\@gobble,0){%
+ \makebox(0,0)[cl]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+ \put(\layerwidth\@gobble,0){\line(0,-1){\layerheight\@gobble}}%
+ \@tempcnta\numexpr \dimexpr\layerheight + .05in\relax/\dimexpr .1in\relax\relax
+ \multiput(\layerwidth\@gobble,0)(0,-.1in\@gobble){\@tempcnta}{%
+ \line(-1,0){1mm\@gobble}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + .25in\relax/\dimexpr .5in\relax\relax
+ \multiput(\layerwidth\@gobble,0)(0,-.5in\@gobble){\@tempcnta}{%
+ \line(-1,0){2mm\@gobble}%
+ }%
+ \@tempcnta\numexpr \dimexpr\layerheight + .5in\relax/\dimexpr 1in\relax\relax
+ \multiput(\layerwidth\@gobble,0)(0,-1in\@gobble){\@tempcnta}{%
+ \put(0,0){\line(-1,0){3mm\@gobble}}%
+ \put(-3.5mm\@gobble,0){%
+ \makebox(0,0)[cr]{\the\numexpr\@tempcnta-\@multicnt\relax}}%
+ }%
+ \end{picture}}%
+}
+\DefineFamily{KOMAarg}
+\DefineFamilyMember[.definelayerpagestyle]{KOMAarg}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onselect}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @initialhook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{oninit}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @hook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{ononeside}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @onesidehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{ontwoside}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @twosidehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onoddpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @oddpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onevenpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @evenpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onfloatpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @floatpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onnonfloatpage}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @nonfloatpagehook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onbackground}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @backgroundhook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\DefineFamilyKey[.definelayerpagestyle]{KOMAarg}{onforeground}{%
+ \expandafter\l@addto@macro
+ \csname @ps@\scrlayer@current@pagestyle @foregroundhook\endcsname
+ {#1}%
+ \FamilyKeyStateProcessed
+}
+\newcommand*{\DeclarePageStyleByLayers}[3][]{%
+ \edef\scrlayer@current@pagestyle{\GetRealPageStyle{#2}}%
+ \expandafter\scrlayer@declare@ps@by@layers\expandafter{%
+ \scrlayer@current@pagestyle
+ }{#1}{#3}%
+}
+\newcommand*{\scrlayer@declare@ps@by@layers}[3]{%
+ \@namedef{@ps@#1@initialhook}{\@ps@initialhook}%
+ \@namedef{@ps@#1@hook}{\@ps@hook}%
+ \@namedef{@ps@#1@backgroundhook}{\@ps@backgroundhook}%
+ \@namedef{@ps@#1@foregroundhook}{\@ps@foregroundhook}%
+ \@namedef{@ps@#1@oddpagehook}{\@ps@oddpagehook}%
+ \@namedef{@ps@#1@evenpagehook}{\@ps@evenpagehook}%
+ \@namedef{@ps@#1@onesidehook}{\@ps@onesidehook}%
+ \@namedef{@ps@#1@twosidehook}{\@ps@twosidehook}%
+ \@namedef{@ps@#1@floatpagehook}{\@ps@floatpagehook}%
+ \@namedef{@ps@#1@nonfloatpagehook}{\@ps@nonfloatpagehook}%
+ \FamilyExecuteOptions[.definelayerpagestyle]{KOMAarg}{#2}%
+ \@namedef{ps@#1}{%
+ \renewcommand*{\currentpagestyle}{#1}%
+ \@nameuse{@ps@@everystyle@@initialhook}%
+ \@nameuse{@ps@#1@initialhook}%
+ \renewcommand*{\currentpagestyle}{#1}%
+ \renewcommand*{\@oddhead}{%
+ \begingroup
+ \let\headmark\rightmark
+ \@nameuse{@ps@@everystyle@@hook}%
+ \@nameuse{@ps@#1@hook}%
+ \@nameuse{@ps@@everystyle@@\if@twoside two\else one\fi sidehook}%
+ \@nameuse{@ps@#1@\if@twoside two\else one\fi sidehook}%
+ \@nameuse{@ps@@everystyle@@oddpagehook}%
+ \@nameuse{@ps@#1@oddpagehook}%
+ \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@@everystyle@@backgroundhook}%
+ \@nameuse{@ps@#1@backgroundhook}%
+ \parbox[t][\headheight][t]{\linewidth}{%
+ \vskip \dimexpr -\topmargin-1in
+ -\headheight
+ -\ht\strutbox\relax
+ \hskip \dimexpr -\oddsidemargin-1in\relax
+ \strut\makebox[\z@][l]{%
+ \ForEachLayerOfPageStyle{@everystyle@}{%
+ \scrlayer@do@page@style@element@layer{background}{odd}%
+ {########1}%
+ }%
+ \ForEachLayerOfPageStyle{#1}{%
+ \scrlayer@do@page@style@element@layer{background}{odd}%
+ {########1}%
+ }%
+ }%
+ }%
+ \endgroup
+ }%
+ \renewcommand*{\@evenhead}{%
+ \begingroup
+ \let\headmark\leftmark
+ \@nameuse{@ps@@everystyle@@hook}%
+ \@nameuse{@ps@#1@hook}%
+ \@nameuse{@ps@@everystyle@@twosidehook}%
+ \@nameuse{@ps@#1@twosidehook}%
+ \@nameuse{@ps@@everystyle@@evenpagehook}%
+ \@nameuse{@ps@#1@evenpagehook}%
+ \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@@everystyle@@backgroundhook}%
+ \@nameuse{@ps@#1@backgroundhook}%
+ \parbox[t][\headheight][t]{\linewidth}{%
+ \vskip \dimexpr -\topmargin-1in
+ -\headheight
+ -\ht\strutbox\relax
+ \hskip \dimexpr-\evensidemargin-1in\relax
+ \strut\makebox[\z@][l]{%
+ \ForEachLayerOfPageStyle{@everystyle@}{%
+ \scrlayer@do@page@style@element@layer{background}{even}%
+ {########1}%
+ }%
+ \ForEachLayerOfPageStyle{#1}{%
+ \scrlayer@do@page@style@element@layer{background}{even}%
+ {########1}%
+ }%
+ }%
+ }%
+ \endgroup
+ }%
+ \renewcommand*{\@oddfoot}{%
+ \begingroup
+ \let\headmark\rightmark
+ \@nameuse{@ps@@everystyle@@hook}%
+ \@nameuse{@ps@#1@hook}%
+ \@nameuse{@ps@@everystyle@@\if@twoside two\else one\fi sidehook}%
+ \@nameuse{@ps@#1@\if@twoside two\else one\fi sidehook}%
+ \@nameuse{@ps@@everystyle@@oddpagehook}%
+ \@nameuse{@ps@#1@oddpagehook}%
+ \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@@everystyle@@foregroundhook}%
+ \@nameuse{@ps@#1@foregroundhook}%
+ \parbox[t][\headheight][t]{\linewidth}{%
+ \vskip \dimexpr -\topmargin-1in
+ -\headheight
+ -\headsep
+ -\textheight
+ -\footskip
+ -\ht\strutbox\relax
+ \hskip \dimexpr -\oddsidemargin-1in\relax
+ \strut\makebox[\z@][l]{%
+ \ForEachLayerOfPageStyle{@everystyle@}{%
+ \scrlayer@do@page@style@element@layer{foreground}{odd}%
+ {########1}%
+ }%
+ \ForEachLayerOfPageStyle{#1}{%
+ \scrlayer@do@page@style@element@layer{foreground}{odd}%
+ {########1}%
+ }%
+ }%
+ }%
+ \endgroup
+ }%
+ \renewcommand*{\@evenfoot}{%
+ \begingroup
+ \let\headmark\leftmark
+ \@nameuse{@ps@@everystyle@@hook}%
+ \@nameuse{@ps@#1@hook}%
+ \@nameuse{@ps@@everystyle@@twosidehook}%
+ \@nameuse{@ps@#1@twosidehook}%
+ \@nameuse{@ps@@everystyle@@evenpagehook}%
+ \@nameuse{@ps@#1@evenpagehook}%
+ \@nameuse{@ps@@everystyle@@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@#1@\if@fcolmade\else non\fi floatpagehook}%
+ \@nameuse{@ps@@everystyle@@foregroundhook}%
+ \@nameuse{@ps@#1@foregroundhook}%
+ \parbox[t][\headheight][t]{\linewidth}{%
+ \vskip \dimexpr -\topmargin-1in
+ -\headheight
+ -\headsep
+ -\textheight
+ -\footskip
+ -\ht\strutbox\relax
+ \hskip \dimexpr-\evensidemargin-1in\relax
+ \strut\makebox[\z@][l]{%
+ \ForEachLayerOfPageStyle{@everystyle@}{%
+ \scrlayer@do@page@style@element@layer{foreground}{even}%
+ {########1}%
+ }%
+ \ForEachLayerOfPageStyle{#1}{%
+ \scrlayer@do@page@style@element@layer{foreground}{even}%
+ {########1}%
+ }%
+ }%
+ }%
+ \endgroup
+ }%
+ }%
+ \@namedef{@ps@#1@layers}{}%
+ \@for \reserved@a:=#3\do {%
+ \ifstr\reserved@a\@empty{}{%
+ \expandafter\@cons\csname @ps@#1@layers\endcsname{{\reserved@a}}%
+ }%
+ }%
+}
+\newcommand*{\ForEachLayerOfPageStyle}[2]{%
+ \begingroup
+ \edef\reserved@a{\GetRealPageStyle{#1}}%
+ \def\@elt##1{\ifscrlayer@deactivate@layers\else #2\fi}%
+ \@nameuse{@ps@\reserved@a @layers}%
+ \endgroup
+}
+\newcommand*{\scrlayer@do@page@style@element@layer}[3]{%
+ \begingroup
+ \expandafter\ifx\csname if@scr@l@#3@\if@fcolmade\else non\fi floatpage%
+ \expandafter\endcsname\csname iftrue\endcsname
+ \expandafter\ifx\csname if@scr@l@#3@\if@twoside two\else one\fi side%
+ \expandafter\endcsname\csname iftrue\endcsname
+ \expandafter
+ \ifx\csname if@scr@l@#3@#1\expandafter\endcsname
+ \csname iftrue\endcsname
+ \expandafter
+ \ifx\csname if@scr@l@#3@#2\expandafter\endcsname
+ \csname iftrue\endcsname
+ \ifscrlayer@draft
+ \scr@layerbox(\csname scr@l@#3@x\endcsname,%
+ \csname scr@l@#3@y\endcsname)%
+ (\csname scr@l@#3@w\endcsname,%
+ \csname scr@l@#3@h\endcsname)%
+ [\csname scr@l@#3@align\endcsname]%
+ {\layercontentsmeasure}%
+ \fi
+ \scr@layerbox(\csname scr@l@#3@x\endcsname,%
+ \csname scr@l@#3@y\endcsname)%
+ (\csname scr@l@#3@w\endcsname,%
+ \csname scr@l@#3@h\endcsname)%
+ [\csname scr@l@#3@align\endcsname]%
+ {\csname scr@l@#3@contents\endcsname}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \endgroup
+}
+\def\scr@layerbox(#1,#2)(#3,#4){%
+ \@ifnextchar [%]
+ {\scr@@layerbox(#1,#2)(#3,#4)}{\scr@@layerbox(#1,#2)(#3,#4)[]}%
+}
+\def\scr@@layerbox(#1,#2)(#3,#4)[#5]#6{%
+ \begingroup
+ \edef\layerxoffset{#1}%
+ \edef\layeryoffset{#2}%
+ \edef\layerwidth{#3}%
+ \edef\layerheight{#4}%
+ \def\scr@l@valign{t}%
+ \def\scr@l@halign{l}%
+ \edef\reserved@b{#5}%
+ \expandafter\@tfor\expandafter\reserved@a\expandafter:\expandafter=%
+ \reserved@b\do{%
+ \if t\reserved@a
+ \def\scr@l@valign{t}%
+ \else
+ \if c\reserved@a
+ \def\scr@l@valign{c}%
+ \def\scr@l@halign{c}%
+ \else
+ \if b\reserved@a
+ \def\scr@l@valign{b}%
+ \else
+ \if l\reserved@a
+ \def\scr@l@halign{l}%
+ \else
+ \if r\reserved@a
+ \def\scr@l@halign{r}%
+ \else
+ \PackageWarning{scrlayer}{%
+ Unknown alignment `\reserved@a' ignored}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ }%
+ \parbox[t][\z@][t]{\z@}{%
+ \vskip\layeryoffset
+ \if b\scr@l@valign\vskip-\layerheight\fi
+ \if c\scr@l@valign\vskip-.5\dimexpr\layerheight\relax\fi
+ \makebox[\z@][l]{%
+ \hskip\layerxoffset
+ \makebox[\z@][\scr@l@halign]{%
+ \parbox[\scr@l@valign][\layerheight][\scr@l@valign]{\layerwidth}{%
+ \vskip\z@\strut{%
+ \ifscrlayer@forceignoreuppercase
+ \expandafter\let\csname MakeUppercase \endcsname\@firstofone
+ \let\MakeUppercase\@firstofone
+ \let\uppercase\@firstofone
+ \fi
+ #6%
+ }\strut\vskip\z@
+ }%
+ }%
+ }%
+ }%
+ \endgroup
+}
+\newcommand*{\DeclareNewPageStyleByLayers}[2][]{%
+ \@ifundefined{ps@#2}{}{%
+ \PackageError{scrlayer}{%
+ Page style `#2' already defined%
+ }{%
+ You may use \string\DeclareNewPageStyleByLayers\space to declare a new
+ page style only\MessageBreak
+ if that page style hasn't been declared or defined before.\MessageBreak
+ You may use either \string\ProvidePageStyleByLayers\space to declare the
+ page style only\MessageBreak
+ if it hasn't been declared or defined before, or
+ \string\RedeclarePageStyleByLayers\MessageBreak
+ to overwrite the former
+ declaration or definition of the page style%
+ \@ifundefined{@ps@#2@layers}{}{,\MessageBreak
+ or \string\AddLayersToPageStyle\space to add further layers to the
+ already declared\MessageBreak
+ page style, or \string\RemoveLayersFromPageStyle\space to remove
+ layers from the\MessageBreak
+ already declared page style}.\MessageBreak
+ Nevertheless, if you'll continue, the page style will be
+ overwritten\MessageBreak
+ by the new declaration.%
+ }%
+ }%
+ \DeclarePageStyleByLayers[{#1}]{#2}%
+}
+\newcommand*{\ProvidePageStyleByLayers}[3][]{%
+ \@ifundefined{ps@#2}{%
+ \DeclarePageStyleByLayers[{#1}]{#2}{#3}%
+ }{%
+ \PackageInfo{scrlayer}{%
+ \string\ProvidePageStyleByLayers{#2}{#3} ignored,\MessageBreak
+ because page style `#2'\MessageBreak
+ already exists%
+ }%
+ }%
+}
+\newcommand*{\RedeclarePageStyleByLayers}[2][]{%
+ \@ifundefined{ps@#2}{%
+ \PackageError{scrlayer}{%
+ Page style `#2' not yet defined%
+ }{%
+ You may use \string\RedeclarePageStyleByLayers\space to declare a page
+ style only\MessageBreak
+ if that page style has already been declared or defined.\MessageBreak
+ You may use either \string\DeclareNewPageStyleByLayers,
+ \string\DeclarePageStyleByLayers,\MessageBreak
+ or \string\ProvidePageStyleByLayers\space to declare that not yet
+ defined page style.\MessageBreak
+ Nevertheless, if you'll continue, the page style will be declared.%
+ }%
+ }{}%
+ \DeclarePageStyleByLayers[{#1}]{#2}%
+}
+\newcommand*{\AddLayersToPageStyle}[2]{%
+ \edef\reserved@b{\GetRealPageStyle{#1}}%
+ \IfLayerPageStyleExists{\reserved@b}{%
+ \@for \reserved@a:=#2\do {%
+ \ifstr\reserved@a\@empty{}{%
+ \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname
+ {{\reserved@a}}%
+ }%
+ }%
+ }{%
+ \scrlayer@lpm@error{#1}{adding layers}%
+ }%
+}
+\newcommand*{\AddLayersAtEndOfPageStyle}{%
+ \AddLayersToPageStyle
+}
+\newcommand*{\AddLayersAtBeginOfPageStyle}[2]{%
+ \begingroup
+ \let\@cons\@snoc
+ \AddLayersToPageStyle{#1}{#2}%
+ \endgroup
+}
+\newcommand*{\@snoc}[2]{%
+ \begingroup\let\@elt\relax\xdef#1{\@elt #2#1}\endgroup
+}
+\newcommand*{\RemoveLayersFromPageStyle}[2]{%
+ \edef\reserved@b{\GetRealPageStyle{#1}}%
+ \IfLayerPageStyleExists{#1}{%
+ \@for \reserved@a:=#2\do {%
+ \ifstr\reserved@a\@empty{}{%
+ \expandafter\remove@layer@from@page@style\expandafter{\reserved@a}%
+ {\reserved@b}%
+ }%
+ }%
+ }{%
+ \scrlayer@lpm@error{#1}{removing layers}%
+ }%
+}
+\newcommand*{\remove@layer@from@page@style}[2]{%
+ \begingroup
+ \expandafter\let\expandafter\reserved@a\csname @ps@#2@layers\endcsname
+ \@namedef{@ps@#2@layers}{}%
+ \def\@elt##1{%
+ \ifstr{#1}{##1}{}{%
+ \expandafter\@cons\csname @ps@#2@layers\endcsname{{##1}}%
+ }%
+ }\reserved@a
+ \endgroup
+}
+\newcommand*{\scrlayer@lpm@error}[2]{%
+ \PackageError{scrlayer}{`#1' is not a layer page style}{%
+ \scr@ifundefinedorrelax{ps@#1}{%
+ Page style `#1' is not defined,
+ }{%
+ Page style `#1' is not a layer page style,
+ }%
+ but #2\MessageBreak
+ may be used only for layer page styles declared using\MessageBreak
+ \string\DeclarePageStyleByLayers,
+ \string\DeclareNewPageStyleByLayers,\MessageBreak
+ of \string\ProvidePageStyleByLayers.\MessageBreak
+ If you'll continue, your operation will be ignored.%
+ }%
+}
+\newcommand*{\AddLayersToPageStyleAfterLayer}[3]{%
+ \edef\reserved@b{\GetRealPageStyle{#1}}%
+ \IfLayerPageStyleExists{\reserved@b}{%
+ \begingroup
+ \expandafter\let\expandafter\reserved@a
+ \csname @ps@\reserved@b @layers\endcsname
+ \@namedef{@ps@\reserved@b @layers}{}%
+ \def\@elt##1{%
+ \ifstr{##1}\@empty{}{%
+ \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname{{##1}}%
+ \ifstr{##1}{#3}{%
+ \@for \reserved@a:=#2\do {%
+ \ifstr\reserved@a\@empty{}{%
+ \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname
+ {{\reserved@a}}%
+ }%
+ }%
+ }{}%
+ }%
+ }%
+ \reserved@a
+ \endgroup
+ }{%
+ \scrlayer@lpm@error{#1}{adding layers}%
+ }%
+}
+\newcommand*{\AddLayersToPageStyleBeforeLayer}[3]{%
+ \edef\reserved@b{\GetRealPageStyle{#1}}%
+ \IfLayerPageStyleExists{\reserved@b}{%
+ \begingroup
+ \expandafter\let\expandafter\reserved@a
+ \csname @ps@\reserved@b @layers\endcsname
+ \@namedef{@ps@\reserved@b @layers}{}%
+ \def\@elt##1{%
+ \ifstr{##1}\@empty{}{%
+ \ifstr{##1}{#3}{%
+ \@for \reserved@a:=#2\do {%
+ \ifstr\reserved@a\@empty{}{%
+ \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname
+ {{\reserved@a}}%
+ }%
+ }%
+ }{}%
+ \expandafter\@cons\csname @ps@#1@layers\endcsname{{##1}}%
+ }%
+ }%
+ \reserved@a
+ \endgroup
+ }{%
+ \scrlayer@lpm@error{#1}{adding layers}%
+ }%
+}
+\newcommand*{\UnifyLayersAtPageStyle}[1]{%
+ \edef\reserved@b{\GetRealPageStyle{#1}}%
+ \IfLayerPageStyleExists{\reserved@b}{%
+ \expandafter\let\expandafter\reserved@a
+ \csname @ps@\reserved@b @layers\endcsname
+ \@namedef{@ps@\reserved@b @layers}{}%
+ \begingroup
+ \def\@elt##1{%
+ \ifstr{##1}\@empty{}{%
+ \remove@layer@from@page@style{##1}{\reserved@b}%
+ \expandafter\@cons\csname @ps@\reserved@b @layers\endcsname{{##1}}%
+ }%
+ }%
+ \reserved@a
+ \endgroup
+ }{%
+ \scrlayer@lpm@error{#1}{unifying}%
+ }%
+}
+\newcommand*{\ModifyLayerPageStyleOptions}[2]{%
+ \edef\reserved@a{\GetRealPageStyle{#1}}%
+ \IfLayerPageStyleExists{#1}{%
+ \expandafter\scrlayer@modify@layer@ps@options\expandafter{%
+ \reserved@a
+ }{#2}%
+ }{%
+ \scrlayer@lpm@error{#1}{modifying}%
+ }%
+}
+\newcommand*{\scrlayer@modify@layer@ps@options}[2]{%
+ \begingroup
+ \def\scrlayer@current@pagestyle{#1}%
+ \@namedef{@ps@#1@initialhook}{}%
+ \@namedef{@ps@#1@hook}{}%
+ \@namedef{@ps@#1@backgroundhook}{}%
+ \@namedef{@ps@#1@foregroundhook}{}%
+ \@namedef{@ps@#1@oddpagehook}{}%
+ \@namedef{@ps@#1@evenpagehook}{}%
+ \@namedef{@ps@#1@onesidehook}{}%
+ \@namedef{@ps@#1@twosidehook}{}%
+ \@namedef{@ps@#1@floatpagehook}{}%
+ \@namedef{@ps@#1@nonfloatpagehook}{}%
+ \FamilyExecuteOptions[.definelayerpagestyle]{KOMAarg}{#2}%
+ \def\reserved@a{\endgroup}%
+ \def\@sls@##1{%
+ \expandafter\let\expandafter\reserved@b\csname @ps@#1@##1hook\endcsname
+ \ifx\reserved@b\@empty\else
+ \l@addto@macro\reserved@a{\@namedef{@ps@#1@##1hook}}%
+ \expandafter\l@addto@macro\expandafter\reserved@a\expandafter{%
+ \expandafter{%
+ \reserved@b
+ }%
+ }%
+ \fi
+ }%
+ \@sls@{initial}%
+ \@sls@{}%
+ \@sls@{background}%
+ \@sls@{foreground}%
+ \@sls@{oddpage}%
+ \@sls@{evenpage}%
+ \@sls@{oneside}%
+ \@sls@{twoside}%
+ \@sls@{floatpage}%
+ \@sls@{nonfloatpage}%
+ \reserved@a
+}
+\newcommand*{\AddToLayerPageStyleOptions}[2]{%
+ \IfLayerPageStyleExists{#1}{%
+ \def\scrlayer@current@pagestyle{#1}%
+ \FamilyExecuteOptions[.definelayerpagestyle]{KOMAarg}{#2}%
+ }{%
+ \scrlayer@lpm@error{#1}{modifying}%
+ }%
+}
+\newcommand*{\DeclarePageStyleAlias}[2]{%
+ \edef\reserved@a{\GetRealPageStyle{#2}}%
+ \scr@ifundefinedorrelax{ps@\reserved@a}{%
+ \PackageError{scrlayer}{unknown real page style `#2'}{%
+ You've tried to declare an alias for page style `#2',\MessageBreak
+ but the real page style of `#2' is undefined.\MessageBreak
+ You can define aliases, only if the real page style has been
+ defined.\MessageBreak
+ If you'll continue, the declaration will be ignored.%
+ }%
+ \DestroyRealLayerPageStyle{#1}%
+ \DestroyLayerAlias{#1}%
+ }{%
+ \@namedef{@ps@#1@alias}{#2}%
+ \@namedef{ps@#1}{\pagestyle{\@nameuse{@ps@#1@alias}}}%
+ }%
+}
+\newcommand*{\DeclareNewPageStyleAlias}[1]{%
+ \@ifundefined{ps@#1}{}{%
+ \PackageError{scrlayer}{%
+ Page style `#1' already defined%
+ }{%
+ You may use \string\DeclareNewPageStyleAlias\space to declare a new
+ page style only\MessageBreak
+ if that page style hasn't been declared or defined before.\MessageBreak
+ You may use either \string\ProvidePageStyleAlias\space to declare the
+ page style only\MessageBreak
+ if it hasn't been declared or defined before, or
+ \string\RedeclarePageStyleAlias\MessageBreak
+ to overwrite the former declaration or definition of the page
+ style\MessageBreak
+ Nevertheless, if you'll continue, the page style will be
+ overwritten\MessageBreak
+ by the new alias.%
+ }%
+ }%
+ \DeclarePageStyleAlias{#1}%
+}
+\newcommand*{\ProvidePageStyleAlias}[2]{%
+ \@ifundefined{ps@#1}{%
+ \DeclarePageStyleAlias{#1}{#2}%
+ }{%
+ \PackageInfo{scrlayer}{%
+ \string\ProvidePageStyleAlias{#1}{#2} ignored,\MessageBreak
+ because page style `#1' already\MessageBreak
+ exists%
+ }%
+ }%
+}
+\newcommand*{\RedeclarePageStyleAlias}[1]{%
+ \@ifundefined{ps@#1}{%
+ \PackageError{scrlayer}{%
+ Page style `#1' not yet defined%
+ }{%
+ You may use \string\RedeclarePageStyleAlias\space to declare a page
+ style only\MessageBreak
+ if that page style has already been declared or defined.\MessageBreak
+ You may use either \string\DeclareNewPageStyleAlias,
+ \string\DeclarePageStyleAlias,\MessageBreak
+ or \string\ProvidePageStyleAlias\space to declare that not yet
+ defined page style.\MessageBreak
+ Nevertheless, if you'll continue, the page style will be declared.%
+ }%
+ }{}%
+ \DeclarePageStyleAlias{#1}%
+}
+\newcommand*{\DestroyPageStyleAlias}[1]{%
+ \scr@ifundefinedorrelax{@ps@#1@alias}{}{%
+ \expandafter\let\csname @ps@#1@alias\endcsname\relax
+ \expandafter\let\csname ps@#1\endcsname\relax
+ }%
+}
+\newcommand*{\GetRealPageStyle}[1]{%
+ \scr@ifundefinedorrelax{@ps@#1@alias}{#1}{%
+ \expandafter\GetRealPageStyle\expandafter{%
+ \expandafter\csname @ps@#1@alias\expandafter\endcsname\expandafter}%
+ }%
+}
+\newcommand*{\IfLayerPageStyleExists}[1]{%
+ \scr@ifundefinedorrelax{ps@#1}{%
+ \expandafter\@secondoftwo
+ }{%
+ \scr@ifundefinedorrelax{@ps@#1@layers}{%
+ \scr@ifundefinedorrelax{@ps@#1@alias}{%
+ \expandafter\@secondoftwo
+ }{%
+ \expandafter\IfLayerPageStyleExists\expandafter{%
+ \expandafter\csname @ps@#1@alias\expandafter\endcsname\expandafter}%
+ }%
+ }{%
+ \expandafter\@firstoftwo
+ }%
+ }%
+}
+\newcommand*{\IfRealLayerPageStyleExists}[1]{%
+ \scr@ifundefinedorrelax{ps@#1}{%
+ \expandafter\@secondoftwo
+ }{%
+ \scr@ifundefinedorrelax{@ps@#1@layers}{%
+ \expandafter\@secondoftwo
+ }{%
+ \expandafter\@firstoftwo
+ }%
+ }%
+}
+\newcommand*{\IfLayerAtPageStyle}[2]{%
+ \IfLayerPageStyleExists{#1}{%
+ \begingroup
+ \edef\reserved@a{\GetRealPageStyle{#1}}%
+ \@tempswafalse
+ \ifstr{#2}{}{%
+ \expandafter\ifx\csname @ps@\reserved@a @layers\endcsname\@empty
+ \@tempswatrue
+ \fi
+ }{%
+ \expandafter\ForEachLayerOfPageStyle\expandafter{%
+ \reserved@a}{\ifstr{##1}{#2}{\aftergroup\@tempswatrue}{}}%
+ }%
+ \if@tempswa \aftergroup\@firstoftwo \else \aftergroup\@secondoftwo \fi
+ \expandafter\endgroup
+ }{%
+ \scrlayer@lpm@error{#1}{testing for layers}%
+ \expandafter\@gobbletwo
+ }%
+}
+\newcommand*{\IfSomeLayersAtPageStyle}[2]{%
+ \IfLayerPageStyleExists{#1}{%
+ \begingroup
+ \@tempswafalse
+ \@for \reserved@a:=#2\do {%
+ \edef\reserved@a{\noexpand\IfLayerAtPageStyle{#1}{\reserved@a}}%
+ \reserved@a{\@tempswatrue}{}%
+ }%
+ \if@tempswa \aftergroup\@firstoftwo \else \aftergroup\@secondoftwo \fi
+ \expandafter\endgroup
+ }{%
+ \scrlayer@lpm@error{#1}{testing for layers}%
+ \expandafter\@gobbletwo
+ }%
+}
+\newcommand*{\IfLayersAtPageStyle}[2]{%
+ \IfLayerPageStyleExists{#1}{%
+ \begingroup
+ \@tempswatrue
+ \ifstr{#2}{}{%
+ \edef\reserved@a{\GetRealPageStyle{#1}}%
+ \expandafter\ifx\csname @scr@\reserved@a @layers\endcsname\@empty \else
+ \@tempswafalse
+ \fi
+ }{%
+ \@for \reserved@a:=#2\do {%
+ \edef\reserved@a{\noexpand\IfLayerAtPageStyle{#1}{\reserved@a}}%
+ \reserved@a{}{\@tempswafalse}%
+ }%
+ }%
+ \if@tempswa \aftergroup\@firstoftwo \else \aftergroup\@secondoftwo \fi
+ \expandafter\endgroup
+ }{%
+ \scrlayer@lpm@error{#1}{testing for layers}%
+ \expandafter\@gobbletwo
+ }%
+}
+\newcommand*{\DestroyRealLayerPageStyle}[1]{%
+ \IfRealLayerPageStyleExists{#1}{%
+ \expandafter\let\csname @ps@#1@initialhook\endcsname\relax
+ \expandafter\let\csname @ps@#1@hook\endcsname\relax
+ \expandafter\let\csname @ps@#1@backgroundhook\endcsname\relax
+ \expandafter\let\csname @ps@#1@foregroundhook\endcsname\relax
+ \expandafter\let\csname @ps@#1@oddpagehook\endcsname\relax
+ \expandafter\let\csname @ps@#1@evenpagehook\endcsname\relax
+ \expandafter\let\csname @ps@#1@onesidehook\endcsname\relax
+ \expandafter\let\csname @ps@#1@twosidehook\endcsname\relax
+ \expandafter\let\csname @ps@#1@floatpagehook\endcsname\relax
+ \expandafter\let\csname @ps@#1@nonfloatpagehook\endcsname\relax
+ \expandafter\let\csname @ps@#1@layers\endcsname\relax
+ \expandafter\let\csname ps@#1\endcsname\relax
+ \ifstr{\currentpagestyle}{#1}{%
+ \def\currentpagestyle{scrlayer@empty}%
+ \let\@oddhead\@empty\let\@evenhead\@empty
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ }{}%
+ \if@specialpage
+ \ifstr{\@specialstyle}{#1}{%
+ \global\let\@specialstyle\relax
+ \global\@specialpagefalse
+ }{}%
+ \fi
+ }{%
+ \PackageInfo{scrlayer}{%
+ \string\DestroyRealLayerPageStyle{#1} ignored,\MessageBreak
+ because the layer page style isn't\MessageBreak
+ defined (any longer)%
+ }%
+ }%
+}
+\newcommand*{\currentpagestyle}{}
+\PackageInfo{scrlayer}{patching LaTeX kernel macro \string\pagestyle}
+\def\reserved@a{\scrlayer@exec@before@pagestyle@hook{##1}}
+\expandafter\expandafter\expandafter\renewcommand
+\expandafter\expandafter\expandafter*%
+\expandafter\expandafter\expandafter\pagestyle
+\expandafter\expandafter\expandafter[%
+\expandafter\expandafter\expandafter1%
+\expandafter\expandafter\expandafter]%
+\expandafter\expandafter\expandafter{%
+ \expandafter\reserved@a
+ \pagestyle{#1}%
+ \edef\currentpagestyle{\GetRealPageStyle{#1}}%
+ \scrlayer@exec@after@pagestyle@hook{#1}%
+}
+\AtBeginDocument{%
+ \begingroup
+ \let\scrlayer@exec@before@pagestyle@hook\@gobble
+ \let\scrlayer@exec@after@pagestyle@hook\@gobble
+ \def\ps@test{}%
+ \pagestyle{test}%
+ \ifstr{\currentpagestyle}{test}{}{%
+ \PackageError{scrlayer}{package incompatibility detected}{%
+ Another package redefines \string\pagestyle\space incompatible with
+ scrlayer.\MessageBreak
+ This disables setting of \string\currentpagestyle\space and may
+ be serious.\MessageBreak
+ Maybe you could prevent this loading package scrlayer
+ later.\MessageBreak
+ If not you should either not use scrlayer or not the other
+ package,\MessageBreak
+ that redefines \string\pagestyle.%
+ }%
+ }%
+ \endgroup
+}
+\newcommand*{\BeforeSelectAnyPageStyle}[1]{%
+ \expandafter\renewcommand\expandafter*%
+ \expandafter\scrlayer@exec@before@pagestyle@hook
+ \expandafter[\expandafter1\expandafter]\expandafter{%
+ \scrlayer@exec@before@pagestyle@hook{##1}#1}%
+}
+\newcommand*{\scrlayer@exec@before@pagestyle@hook}[1]{}
+\newcommand*{\AfterSelectAnyPageStyle}[1]{%
+ \expandafter\renewcommand\expandafter*%
+ \expandafter\scrlayer@exec@after@pagestyle@hook
+ \expandafter[\expandafter1\expandafter]\expandafter{%
+ \scrlayer@exec@after@pagestyle@hook{##1}#1}%
+}
+\newcommand*{\scrlayer@exec@after@pagestyle@hook}[1]{}
+\newcommand*{\scrlayerAddToInterface}[2][\@currname.\@currext]{%
+ \begingroup
+ \edef\reserve@a{%
+ \noexpand\scrlayerAddCsToInterface[#1]{\expandafter\@gobble\string #2}%
+ }%
+ \expandafter\endgroup\reserve@a
+}
+\newcommand{\scrlayerAddCsToInterface}[3][\@currname.\@currext]{%
+ \@ifundefined{scrlayer@#1@commandlist}{%
+ \PackageError{scrlayer}{unkown interface `#1'}{%
+ I've been told to add a command sequence to an interface, that hasn't
+ been\MessageBreak
+ defined yet. Please initialise every interface using
+ \string\InitInterface\space before\MessageBreak
+ trying to add command sequences to it.\MessageBreak
+ If you'll continue, the command will be ignored.%
+ }%
+ }{%
+ \@ifundefined{#2}{%
+ \scrlayer@AddCsToInterface[#1]{#2}#3%
+ }{%
+ \@ifundefined{scrlayer@command@#2}{%
+ \ifscrlayer@forceoverwrite
+ \PackageWarning{scrlayer}{%
+ Overloading `\@backslashchar#2'!\MessageBreak
+ scrlayer detected, that the given command\MessageBreak
+ has been defined already, when\MessageBreak
+ `#1' tried to define it again.\MessageBreak
+ Nevertheless, while scrlayer is in force overwrite\MessageBreak
+ mode currently, the original definition will be\MessageBreak
+ removed%
+ }%
+ \expandafter\let\csname #2\endcsname\relax
+ \scrlayer@AddCsToInterface[#1]{#2}#3%
+ \else
+ \PackageError{scrlayer}{cannot define `\@backslashchar#2'}{%
+ scrlayer interface `#1' has tried to
+ define command\MessageBreak
+ `\@backslashchar#2', but this has already been defined\MessageBreak
+ and is not part of another interface. So it cannot be
+ defined.\MessageBreak
+ Before continuing you should solve this conflict.\MessageBreak
+ Nevertheless, you may use option `forceoverwrite' to get only a
+ warning instead\MessageBreak
+ of an error. But this wouldn't solve the problem at
+ all!\MessageBreak
+ This error is almost fatal, so you should abort the LaTeX
+ run.%
+ }%
+ \fi
+ }{%
+ \ifscrlayer@autoremoveinterfaces
+ \PackageInfo{scrlayer}{%
+ already define interface command\MessageBreak
+ `\@backslashchar#2' detected.\MessageBreak
+ Command has been defined by interface\MessageBreak
+ `\@nameuse{scrlayer@command@#2}'.\MessageBreak
+ To continue installation of interface\MessageBreak
+ `#1', interface\MessageBreak
+ `\@nameuse{scrlayer@command@#2}' will\MessageBreak
+ be removed%
+ }%
+ \@nameuse{scrlayer@\@nameuse{scrlayer@command@#2}@onremove}%
+ \begingroup
+ \def\@elt##1{%
+ \aftergroup\let\aftergroup##1\aftergroup\relax
+ }%
+ \@nameuse{scrlayer@\@nameuse{scrlayer@command@#2}@commandlist}%
+ \endgroup
+ \expandafter\let\csname
+ scrlayer@\@nameuse{scrlayer@command@#2}@commandlist\endcsname\relax
+ \expandafter\let\csname
+ scrlayer@\@nameuse{scrlayer@command@#2}@onremove\endcsname\relax
+ \expandafter\let\csname #2\endcsname\relax
+ \scrlayer@AddCsToInterface[#1]{#2}#3%
+ \else
+ \PackageError{scrlayer}{cannot define `\@backslashchar#2'}{%
+ Interface command `\@backslashchar#2' has already
+ been\MessageBreak
+ defined by interface
+ `\@nameuse{scrlayer@command@#2}'.\MessageBreak
+ So it cannot be defined again.\MessageBreak
+ You may try scrlayer option `autoremoveinterfaces' to
+ automatically remove\MessageBreak
+ older interfaces in such conflict situations.\MessageBreak
+ For now, it's recommended so solve the problem before you'll
+ continue.%
+ }%
+ \fi
+ }%
+ }%
+ }%
+}%
+\newcommand*\scrlayer@AddCsToInterface[2][\@currname.\@currext]{%
+ \expandafter\expandafter\expandafter\def\expandafter
+ \csname scrlayer@#1@commandlist\expandafter\expandafter\expandafter\endcsname
+ \expandafter\expandafter\expandafter{%
+ \csname scrlayer@#1@commandlist\expandafter\endcsname
+ \expandafter\@elt\csname #2\endcsname
+ }%
+ \@namedef{scrlayer@command@#2}{#1}%
+}
+\newcommand*{\scrlayerInitInterface}[1][\@currname.\@currext]{%
+ \@ifundefined{scrlayer@#1@commandlist}{%
+ \@namedef{scrlayer@#1@commandlist}{}%
+ }{%
+ \begingroup
+ \def\@elt##1{\space\space\string##1\MessageBreak}%
+ \PackageError{scrlayer}{interface `#1' already initialised}{%
+ You've tried to initialise scrlayer interface `#1',\MessageBreak
+ but an interface of this name has been initialised
+ already.\MessageBreak
+ Here's a list of all macros of the already initialised
+ interface:\MessageBreak
+ \@nameuse{scrlayer@#1@commandlist}.%
+ If you'll continue, this re-initialisation will be ignored.%
+ }%
+ \endgroup
+ }%
+}
+\newcommand*{\scrlayerOnAutoRemoveInterface}[2][\@currname.\@currext]{%
+ \@ifundefined{scrlayer@#1@onremove}{\@namedef{scrlayer@#1@onremove}{}}{}%
+ \expandafter\l@addto@macro\csname scrlayer@#1@onremove\endcsname{#2}%
+}
+%%% From File: $Id: scrlayer.dtx 1480 2013-10-31 10:00:02Z mjk $ (final)
+\DeclareNewPageStyleByLayers{@everystyle@}{}
+\RedeclarePageStyleByLayers{empty}{}
+%%% From File: $Id: scrlogo.dtx 1380 2013-10-01 15:31:55Z mjk $
+\@ifundefined{KOMAScript}{%
+ \DeclareRobustCommand{\KOMAScript}{\textsf{K\kern.05em O\kern.05em%
+ M\kern.05em A\kern.1em-\kern.1em Script}}}{}
+\endinput
+%%
+%% End of file `scrlayer.sty'.