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 | 1931 |
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'. |