%%
%% This is file `scrkbase.sty',
%% generated with the docstrip utility, extended by scrdocstrip.
%%
%% The original source files were:
%%
%% scrkernel-version.dtx (with options: `package,scrkbase')
%% scrkernel-basics.dtx (with options: `package,option,koma')
%% scrkernel-fonts.dtx (with options: `package,option,scrkbase')
%% scrlfile.dtx (with options: `load')
%% scrkernel-basics.dtx (with options: `package,body,koma')
%% scrkernel-fonts.dtx (with options: `package,body,scrkbase')
%% scrlogo.dtx (with options: `logo')
%%
%% Copyright (c) 1994-2014 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
%% .
%%
%%% From File: $Id: scrkernel-version.dtx 2208 2015-09-29 08:13:01Z kohm $
\begingroup
\catcode`\@11\relax
\ifx\KOMAScriptVersion\undefined
\newcommand*{\@CheckKOMAScriptVersion}[1]{%
\gdef\KOMAScriptVersion{#1}%
}%
\else
\newcommand*{\@CheckKOMAScriptVersion}[1]{%
\def\@tempa{#1}%
\ifx\KOMAScriptVersion\@tempa\else
\@latex@warning@no@line{%
\noexpand\KOMAScriptVersion\space is
`\KOMAScriptVersion',\MessageBreak
but `#1' was expected!\MessageBreak
You should not use classes, packages or files
from\MessageBreak
different KOMA-Script versions%
}%
\fi
}
\fi
\@CheckKOMAScriptVersion{2015/09/29 v3.19 KOMA-Script}%
\endgroup
\providecommand*{\scr@pkgextension}{\@pkgextension}
\AtBeginDocument{%
\let\scr@pkgextension\@pkgextension
}
%%% From File: $Id: scrkernel-basics.dtx 2190 2015-08-29 17:21:55Z kohm $
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{%
scrkbase%
}[%
2015/09/29 v3.19 KOMA-Script
package (%
KOMA-Script-dependent
basics and keyval usage)]
\RequirePackage{scrbase}[\KOMAScriptVersion]
\newcommand*{\KOMA@key}[1][.\@currname.\@currext]{%
\DefineFamilyMember[{#1}]{KOMA}%
\@ifundefined{scr@kav@KOMA#1}{\@namedef{scr@kav@KOMA#1}{}}{}%
\DefineFamilyKey[{#1}]{KOMA}%
}
\newcommand*{\KOMA@kav@add}[3]{%
\@ifundefined{scr@kav@KOMA#1}{%
\KOMA@internal@error\KOMA@kav@add{#1}%
}{%
\expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{\do{{#2}{#3}}}%
}%
}
\newcommand*{\KOMA@kav@xadd}[3]{%
\@ifundefined{scr@kav@KOMA#1}{%
\KOMA@internal@error\KOMA@kav@xadd{#1}%
}{%
\protected@edef\reserved@a{{#2}{#3}}%
\expandafter\l@addto@macro\csname scr@kav@KOMA#1\expandafter\endcsname
\expandafter{\expandafter\do\expandafter{\reserved@a}}%
}%
}
\newcommand*{\KOMA@kav@remove}[3]{%
\@ifundefined{scr@kav@KOMA#1}{%
\KOMA@internal@error\KOMA@kav@remove{#1}%
}{%
\begingroup
\def\reserved@a{\endgroup\@namedef{scr@kav@KOMA#1}{}}%
\edef\reserved@b{\detokenize{{#2}{#3}}}%
\def\do##1{%
\edef\reserved@c{\detokenize{##1}}%
\ifx\reserved@b\reserved@c\else
\l@addto@macro\reserved@a{%
\expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{%
\do{##1}%
}%
}%
\fi
}%
\@nameuse{scr@kav@KOMA#1}%
\reserved@a
}%
}
\newcommand*{\KOMA@kav@removekey}[2]{%
\@ifundefined{scr@kav@KOMA#1}{%
\KOMA@internal@error\KOMA@kav@removekey{#1}%
}{%
\begingroup
\def\reserved@a{\endgroup\@namedef{scr@kav@KOMA#1}{}}%
\edef\reserved@b{\detokenize{#2}}%
\def\reserved@d##1##2{\edef\reserved@c{\detokenize{##1}}}%
\def\do##1{%
\reserved@d##1\relax
\ifx\reserved@b\reserved@c\else
\l@addto@macro\reserved@a{%
\expandafter\l@addto@macro\csname scr@kav@KOMA#1\endcsname{%
\do{##1}%
}%
}%
\fi
}%
\@nameuse{scr@kav@KOMA#1}%
\reserved@a
}%
}
\newcommand*{\KOMA@kav@replacevalue}[3]{%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\@ifundefined{scr@kav@KOMA#1}{%
\KOMA@internal@error\KOMA@kav@replacevalue{#1}%
}{%
\KOMA@kav@removekey{#1}{#2}%
\KOMA@kav@add{#1}{#2}{#3}%
}%
\fi
}
\newcommand*{\KOMA@kav@xreplacevalue}[3]{%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\@ifundefined{scr@kav@KOMA#1}{%
\KOMA@internal@error\KOMA@kav@replacevalue{#1}%
}{%
\KOMA@kav@removekey{#1}{#2}%
\KOMA@kav@xadd{#1}{#2}{#3}%
}%
\fi
}
\newcommand*{\KOMA@kav@replacebool}[3]{%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\@ifundefined{scr@kav@KOMA#1}{%
\KOMA@internal@error\KOMA@kav@replacebool{#1}%
}{%
\KOMA@kav@remove{#1}{#2}{false}%
\KOMA@kav@remove{#1}{#2}{true}%
\expandafter\ifx\csname if#3\expandafter\endcsname
\csname iftrue\endcsname
\KOMA@kav@xadd{#1}{#2}{true}%
\else
\KOMA@kav@xadd{#1}{#2}{false}%
\fi
}%
\fi
}
\newcommand*{\KOMA@kav@defall}[2]{%
\@ifundefined{scr@kav@KOMA#2}{%
\KOMA@internal@error\KOMA@kav@defall{#1}%
}{%
\begingroup
\let\reserved@a\@empty
\def\reserved@b##1##2{\l@addto@macro\reserved@a{,{##1=##2}}}%
\def\do##1{\reserved@b##1}%
\@nameuse{scr@kav@KOMA#2}%
\ifx\reserved@a\@empty
\def\reserved@b{\endgroup\let#1\@empty}%
\else
\edef\reserved@b{%
\unexpanded{\endgroup\def#1}{%
\unexpanded
\expandafter\expandafter\expandafter{%
\expandafter\@gobble\reserved@a}}}%
\fi
\reserved@b
}%
}
\newcommand*{\KOMA@kav@defone}[3]{%
\@ifundefined{scr@kav@KOMA#2}{%
\KOMA@internal@error\KOMA@kav@defall{#1}%
}{%
\begingroup
\let\reserved@a\@empty
\def\reserved@b##1##2{%
\ifstr{##1}{#3}{\l@addto@macro\reserved@a{,{##2}}}{}%
}%
\def\do##1{\reserved@b##1}%
\@nameuse{scr@kav@KOMA#2}%
\ifx\reserved@a\@empty
\def\reserved@b{\endgroup\let#1\@empty}%
\else
\edef\reserved@b{%
\unexpanded{\endgroup\def#1}{%
\unexpanded
\expandafter\expandafter\expandafter{%
\expandafter\@gobble\reserved@a}}}%
\fi
\reserved@b
}%
}
\newcommand*{\KOMA@internal@error}[2]{%
\PackageError{scrkbase}{internal error using \string#1{#2}}{%
You've found an internal error either in KOMA-Script or a third
party\MessageBreak
definition, that uses KOMA-Script internal macros.\MessageBreak
Please send a bug report with a minimal but complete example,
that\MessageBreak
shows this error, to komascript at gmx dot info or report it
at\MessageBreak
(you need an account to do so).%
}%
}
\newcommand*{\KOMAProcessOptions}{\FamilyProcessOptions{KOMA}}
\@onlypreamble\KOMAProcessOptions
\KOMAProcessOptions\relax
%%% From File: $Id: scrkernel-fonts.dtx 2181 2015-08-24 09:30:25Z kohm $
%%% From File: $Id: scrlfile.dtx 1525 2013-11-22 12:57:29Z mjk $
\RequirePackage{scrlfile}[%
2015/09/29 v3.19 KOMA-Script
]
%%% From File: $Id: scrkernel-basics.dtx 2190 2015-08-29 17:21:55Z kohm $
\newcommand*{\KOMAExecuteOptions}[1][.\@currname.\@currext]{%
\FamilyExecuteOptions[#1]{KOMA}%
}
\newcommand*{\KOMAoptions}{\FamilyOptions{KOMA}}
\newcommand*{\KOMAoptionsOf}[2][\@firstofone]{%
\scr@ifundefinedorrelax{scr@kav@KOMA.#2}{%
\PackageError{scrkbase}{\string\KOMAoptionsOf\space not supported}{%
#2 is not the name of a KOMA-Script package or\MessageBreak
KOMA-Script class, that supports \string\KOMAoptionsOf.}%
}{%
\begingroup
\def\reserved@a{#1}%
\KOMA@kav@defall\reserved@b{.#2}%
\expandafter\expandafter\expandafter\endgroup
\expandafter\reserved@a\expandafter{\reserved@b}%
}%
}
\newcommand*{\KOMAoptionOf}[3][\@firstofone]{%
\scr@ifundefinedorrelax{scr@kav@KOMA.#2}{%
\PackageError{scrkbase}{\string\KOMAoptionOf\space not supported}{%
#2 is not the name of a KOMA-Script package or\MessageBreak
KOMA-Script class, that supports \string\KOMAoptionOf.}%
}{%
\begingroup
\def\reserved@a{#1}%
\KOMA@kav@defone\reserved@b{.#2}{#3}%
\ifx\reserved@b\@empty
\PackageWarning{scrkbase}{option `#3' for `#2' unset}%
\endgroup
\else
\expandafter\expandafter\expandafter\endgroup
\expandafter\reserved@a\expandafter{\reserved@b}%
\fi
}%
}
\newcommand*{\AfterKOMAoptions}{}
\let\AfterKOMAoptions\AtEndOfFamilyOptions
\newcommand*{\KOMAoption}{\FamilyOption{KOMA}}
\newcommand*{\KOMA@unknown@keyval}{\FamilyUnknownKeyValue{KOMA}}
\newcommand*{\KOMA@ifkey}[2][.\@currname.\@currext]{%
\begingroup\edef\reserved@a{\noexpand\KOMA@@ifkey{#1}{#2}}%
\expandafter\endgroup\reserved@a
}
\newcommand*{\KOMA@@ifkey}[3]{%
\@ifundefined{if#3}{%
\expandafter\newif\csname if#3\endcsname
}{}%
\KOMA@key[{#1}]{#2}[true]{%
\KOMA@set@ifkey{#2}{#3}{##1}%
\KOMA@kav@replacebool{#1}{#2}{#3}%
}%
\csname if#3\endcsname
\KOMA@kav@xadd{#1}{#2}{true}%
\else
\KOMA@kav@xadd{#1}{#2}{false}%
\fi
}
\newcommand*{\KOMA@set@ifkey}{\FamilySetBool{KOMA}}
\newcommand*{\KOMA@ncmdkey}[2][.\@currname.\@currext]{%
\begingroup\edef\reserved@a{\noexpand\KOMA@@ncmdkey{#1}{#2}}%
\expandafter\endgroup\reserved@a
}
\newcommand*{\KOMA@@ncmdkey}[2]{%
\@ifnextchar [%]
{\KOMA@@@ncmdkey{#1}{#2}}{\KOMA@@@ncmdkey{#1}{#2}[]}
}
\newcommand*{\KOMA@@@cmdkey}{}
\def\KOMA@@@ncmdkey#1#2[#3]#4#5{%
\@ifundefined{#4}{\@namedef{#4}{0}}{}%
\ifx\relax#3\relax
\KOMA@key[{#1}]{#2}{%
\KOMA@set@ncmdkey{#2}{#4}{#5}{##1}%
\KOMA@kav@replacevalue{#1}{#2}{##1}%
}%
\else
\KOMA@key[{#1}]{#2}[{#3}]{%
\KOMA@set@ncmdkey{#2}{#4}{#5}{##1}%
\KOMA@kav@replacevalue{#1}{#2}{##1}%
}%
\fi
}
\newcommand*{\KOMA@set@ncmdkey}{\FamilySetNumerical{KOMA}}
\newcommand*{\KOMA@DeclareDeprecatedOption}{%
\@ifnextchar [%]
{\KOMA@@DeclareDeprecatedOption}%
{\KOMA@@@DeclareDeprecatedOption{\ClassWarningNoLine{\KOMAClassName}}}%
}
\newcommand*{\KOMA@@DeclareDeprecatedOption}[1][]{%
\KOMA@@@DeclareDeprecatedOption{\PackageWarningNoLine{#1}}%
}
\newcommand*{\KOMA@@@DeclareDeprecatedOption}[3]{%
\DeclareOption{#2}{\KOMA@UseDeprecatedOption{#1}{#2}{#3}}%
}
\newcommand*{\KOMA@UseDeprecatedOption}[3]{%
\begingroup
\scr@ifundefinedorrelax{KV@KOMA.\@currname.\@currext @version}{%
\edef\reserved@a{\noexpand\endgroup
\noexpand#1{%
You've used obsolete option `#2'.\noexpand\MessageBreak
Usage of this option is deprecated.\noexpand\MessageBreak
You should simply replace `#2'\noexpand\MessageBreak
by `#3'%
}%
\noexpand\KOMAExecuteOptions{#3}%
\noexpand\def\noexpand\CurrentOption{\CurrentOption}%
}%
}{%
\edef\reserved@a{\noexpand\endgroup
\noexpand#1{%
You've used obsolete option `#2'.\noexpand\MessageBreak
Usage of this option indicates an old document\noexpand\MessageBreak
and changes compatibility level using\noexpand\MessageBreak
`#3,version=first'.\noexpand\MessageBreak
If you don't want this, you should simply\noexpand\MessageBreak
replace option `#2' by `#3'%
}%
\noexpand\KOMAExecuteOptions{#3,version=first}%
\noexpand\def\noexpand\CurrentOption{\CurrentOption}%
}%
}%
\reserved@a
}
\newcommand*{\KOMA@DeclareStandardOption}{%
\@ifnextchar [%]
{\KOMA@@DeclareStandardOption}%
{\KOMA@@@DeclareStandardOption{\ClassInfoNoLine{\KOMAClassName}}}%
}
\newcommand*{\KOMA@@DeclareStandardOption}[1][]{%
\KOMA@@@DeclareStandardOption{\PackageInfoNoLine{#1}}%
}
\newcommand*{\KOMA@@@DeclareStandardOption}[3]{%
\DeclareOption{#2}{\KOMA@UseStandardOption{#1}{#2}{#3}}%
}
\newcommand*{\KOMA@UseStandardOption}[3]{%
\begingroup
\edef\reserved@a{\noexpand\endgroup
\noexpand#1{%
You've used standard option `#2'.\noexpand\MessageBreak
This is correct!\noexpand\MessageBreak
Internally I'm using `#3'.\noexpand\MessageBreak
If you'd like to set the option with \string\KOMAoptions,%
\noexpand\MessageBreak
you'd have to use `#3' there\noexpand\MessageBreak
instead of `#2', too%
}%
\noexpand\KOMAExecuteOptions{#3}%
\noexpand\def\noexpand\CurrentOption{\CurrentOption}%
}%
\reserved@a
}
\newcommand*{\KOMA@newdeprecatedcommand}[3][\@gobbletwo]{%
\newcommand*{#2}{\KOMA@UseDeprecatedCommand{#1}{\string#2}{#3}}%
}
\newcommand*{\KOMA@UseDeprecatedCommand}[3]{%
#1{%
scrkbase%
}{%
You've used deprecated command `#2'.\MessageBreak
\protect\KOMAoptions{#3} will be used instead.\MessageBreak
You should also replace `#2' by `\protect\KOMAoptions{#3}'%
}%
\KOMAoptions{#3}%
}
%%% From File: $Id: scrkernel-fonts.dtx 2181 2015-08-24 09:30:25Z kohm $
\newcommand*{\IfExistskomafont}[1]{%
\@ifundefined{scr@fnt@#1}{%
\@ifundefined{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
}{%
\@firstoftwo
}%
}
\newcommand*{\setkomafont}[2]{%
\@ifundefined{scr@fnt@#1}{%
\@ifundefined{scr@fnt@instead@#1}{%
\PackageError{scrkbase}{%
font of element `#1' can't be set}{%
You've told me to redefine the font selection of the
element,\MessageBreak%
but either no such element is known by
KOMA-Script\MessageBreak%
or the element does not use a special font selection%
}%
}{%
\PackageInfo{scrkbase}{%
You've told me to redefine the font selection of the\MessageBreak
element `#1' that is an alias of element\MessageBreak
`\csname scr@fnt@instead@#1\endcsname'%
}%
\expandafter\setkomafont\expandafter{%
\csname scr@fnt@instead@#1\endcsname}{#2}%
}%
}{%
\expandafter\expandafter\expandafter\def\csname scr@fnt@#1\endcsname{#2}%
}%
\@ifundefined{scr@fnt@wrn@#1}{}{%
\PackageWarning{scrkbase}{%
\csname scr@fnt@wrn@#1\endcsname{#1}%
}%
}%
}
\newcommand*{\addtokomafont}[2]{%
\@ifundefined{scr@fnt@#1}{%
\@ifundefined{scr@fnt@instead@#1}{%
\PackageError{scrkbase}{%
font of element `#1' can't be extended%
}{%
You've told me to extend the font selection of the
element,\MessageBreak
but either no such element is known by
KOMA-Script\MessageBreak
or the element does not use a special font selection%
}%
}{%
\PackageInfo{scrkbase}{%
You've told me to extend the font selection of the\MessageBreak
element `#1' that is an alias of element\MessageBreak
`\csname scr@fnt@instead@#1\endcsname'%
}%
\expandafter\addtokomafont\expandafter{%
\csname scr@fnt@instead@#1\endcsname}{#2}%
}%
}{%
\expandafter\expandafter\expandafter\l@addto@macro
\csname scr@fnt@#1\endcsname{#2}%
}%
\@ifundefined{scr@fnt@wrn@#1}{}{%
\PackageWarning{scrkbase}{%
\csname scr@fnt@wrn@#1\endcsname{#1}%
}%
}%
}
\newcommand*{\usekomafont}[1]{%
\@ifundefined{scr@fnt@#1}{%
\@ifundefined{scr@fnt@instead@#1}{%
\PackageError{scrkbase}{%
font of element `#1' can't be used%
}{%
You've told me to use the font selection of the
element,\MessageBreak
but either no such element is known by
KOMA-Script\MessageBreak
or the element does not use a special font selection%
}%
}{%
\PackageInfo{scrkbase}{%
You've told me to use the font selection of the
element\MessageBreak
`#1' that is an alias of element `\csname
scr@fnt@instead@#1\endcsname'\MessageBreak
}%
\expandafter\expandafter\expandafter\usekomafont
\expandafter\expandafter\expandafter{%
\csname scr@fnt@instead@#1\endcsname}%
}%
}{%
\@nameuse{scr@fnt@#1}%
}%
}
\newcommand*{\usesizeofkomafont}[1]{%
\begingroup
\scr@prepareforkomafont
\sbox\@tempboxa{%
\usekomafont{#1}{%
\xdef\g@scr@usefont{%
\noexpand\fontsize{\f@size}{\f@baselineskip}\noexpand\selectfont
}%
}%
}%
\endgroup
\g@scr@usefont
}
\newcommand*{\usefamilyofkomafont}{\use@ofkomafont{family}}
\newcommand*{\useseriesofkomafont}{\use@ofkomafont{series}}
\newcommand*{\useshapeofkomafont}{\use@ofkomafont{shape}}
\newcommand*{\useencodingofkomafont}{\use@ofkomafont{encoding}}
\newcommand*{\usefontofkomafont}[1]{%
\begingroup
\scr@prepareforkomafont
\sbox\@tempboxa{%
\usekomafont{#1}{%
\xdef\g@scr@usefont{%
\noexpand\fontsize{\f@size}{\f@baselineskip}%
\noexpand\usefont{\f@encoding}{\f@family}{\f@series}{\f@shape}%
}%
}%
}%
\endgroup
\g@scr@usefont
}
\newcommand*{\use@ofkomafont}[2]{%
\begingroup
\scr@prepareforkomafont
\sbox\@tempboxa{%
\usekomafont{#2}{%
\xdef\g@scr@usefont{%
\expandafter\noexpand
\csname font#1\endcsname{\csname f@#1\endcsname}\noexpand\selectfont
}%
}%
}%
\endgroup
\g@scr@usefont
}
\newcommand*{\g@scr@usefont}{%
\PackageError{scrkbase}{%
undefined usage of \string\g@scr@usefont
}{%
\string\g@scr@usefont\space is an internal macro of KOMA-Script and
should\MessageBreak
not be used this way.\MessageBreak
This may be an internal error of KOMA-Script, a mistake of a package
author,\MessageBreak
or a mistake of the user.%
}%
}
\newcommand*{\scr@komafontrelaxlist}{%
\do\normalcolor
\do\uppercase \do\lowercase \do\MakeUppercase \do\MakeLowercase
}
\newcommand*{\scr@komafontgobblelist}{%
\do\color
}
\newcommand*{\scr@prepareforkomafont}{%
\long\def\do##1{\let##1\relax}\scr@komafontrelaxlist
\long\def\do##1{\let##1\@gobble}\scr@komafontgobblelist
}
\newcommand*{\addtokomafontrelaxlist}[1]{%
\l@addto@macro\scr@komafontrelaxlist{\do#1}%
}
\newcommand*{\addtokomafontgobblelist}[1]{%
\l@addto@macro\scr@komafontgobblelist{\do#1}%
}
\newcommand*{\newkomafont}[3][\relax]{%
\expandafter\newcommand\expandafter*\csname @#2font\endcsname{#3}%
\expandafter\expandafter\expandafter\newcommand
\expandafter\expandafter\expandafter*%
\expandafter\csname scr@fnt@#2\expandafter\endcsname\expandafter{%
\csname @#2font\endcsname%
}%
\ifx\relax#1\relax\else
\expandafter\newcommand\expandafter*\csname scr@fnt@wrn@#2\endcsname[1]{#1}%
\fi
}
\newcommand*{\aliaskomafont}[2]{%
\expandafter\newcommand\expandafter*\csname scr@fnt@instead@#1\endcsname{%
#2%
}%
}
%%% 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 `scrkbase.sty'.