%% %% 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,prepare,koma') %% 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-2016 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 2592 2017-02-16 16:56:10Z 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{2017/04/13 v3.23 KOMA-Script}% \endgroup \providecommand*{\scr@pkgextension}{\@pkgextension} \AtBeginDocument{% \let\scr@pkgextension\@pkgextension } %%% From File: $Id: scrkernel-basics.dtx 2601 2017-02-23 16:26:09Z kohm $ (prepare) \NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{% scrkbase% }[% 2017/04/13 v3.23 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 %%% From File: $Id: scrkernel-basics.dtx 2601 2017-02-23 16:26:09Z kohm $ (option) \KOMAProcessOptions\relax %%% From File: $Id: scrkernel-fonts.dtx 2592 2017-02-16 16:56:10Z kohm $ %%% From File: $Id: scrlfile.dtx 2592 2017-02-16 16:56:10Z kohm $ \RequirePackage{scrlfile}[% 2017/04/13 v3.23 KOMA-Script ] %%% From File: $Id: scrkernel-basics.dtx 2601 2017-02-23 16:26:09Z kohm $ (body) \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}{\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]{% \kernel@ifnextchar [%] {\KOMA@@@ncmdkey{#1}{#2}}{\KOMA@@@ncmdkey{#1}{#2}[]} } \newcommand*{\KOMA@@@ncmdkey}{} \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}{% \kernel@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 `\detokenize{#2}'.\noexpand\MessageBreak Usage of this option is deprecated.\noexpand\MessageBreak You should simply replace `\detokenize{#2}'\noexpand\MessageBreak by `\detokenize{#3}'% }% \noexpand\KOMAExecuteOptions{#3}% \noexpand\def\noexpand\CurrentOption{\CurrentOption}% }% }{% \edef\reserved@a{\noexpand\endgroup \noexpand#1{% You've used obsolete option `\detokenize{#2}'.\noexpand\MessageBreak Usage of this option indicates an old document\noexpand\MessageBreak and changes compatibility level using\noexpand\MessageBreak `\detokenize{#3},version=first,\noexpand\MessageBreak enabledeprecatedfontcommands' that may result\noexpand\MessageBreak in further warnings.\noexpand\MessageBreak If you don't want this, you should simply\noexpand\MessageBreak replace option `\detokenize{#2}' by `\detokenize{#3}'% }% \noexpand\KOMAExecuteOptions{% #3,version=first}% \noexpand\ExecuteOptions{enabledeprecatedfontcommands}% \noexpand\def\noexpand\CurrentOption{\CurrentOption}% }% }% \reserved@a } \newcommand*{\KOMA@DeclareStandardOption}{% \kernel@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 2592 2017-02-16 16:56:10Z 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 2592 2017-02-16 16:56:10Z kohm $ \@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'.