%% %% This is file `scrkbase.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% scrkvers.dtx (with options: `package,scrkbase') %% scrkbase.dtx (with options: `package,option') %% scrlfile.dtx (with options: `load') %% scrkbase.dtx (with options: `package,body') %% scrlogo.dtx (with options: `logo') %% %% Copyright (c) 1994-2007 %% Markus Kohm and any individual authors listed elsewhere in this file. %% %% 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 are not allowed to distribute it. %% %% 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 %% LaTeX2.09 Script family created by Frank Neukam 1993 and the LaTeX2e %% standard classes created by The LaTeX3 Project 1994-1996. %% %%% From File: scrkvers.dtx \begingroup \makeatletter \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{2007/03/07 v2.97a KOMA-Script}% \endgroup %%% From File: scrkbase.dtx \ProvidesPackage{scrkbase}[% \KOMAScriptVersion\space package (basics and keyval use)] \RequirePackage{keyval} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname ifcsname\endcsname \newcommand{\scr@ifundefined}[1]{% \ifcsname #1\endcsname \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi } \else \newcommand{\scr@ifundefined}[1]{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname #1\endcsname\relax \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi } \fi \newcommand*{\DeclareKeyValOption}[2][% \ifx\@currext\@clsextension\OptionNotUsed\else\@unkownoptionerror\fi ]{% \DeclareOption*{% \def\@tempa##1=##2=##3\@nil{% \scr@ifundefined{KV@#2@##1}{#1}{% \@expandtwoargs\setkeys{#2}\CurrentOption }% }% \expandafter\@tempa\CurrentOption==\@nil }% } \newcommand*{\KOMA@key}{\define@key{KOMA}} \newcommand*{\dont@let@as@internal@defined}{/} \KOMA@key{internalonly}{% \begingroup \@expandtwoargs\in@{#1}\dont@let@as@internal@defined \expandafter\endgroup \ifin@\else\g@addto@macro\dont@let@as@internal@defined{#1/}\fi } \DeclareKeyValOption{KOMA} \ProcessOptions\relax \newcommand*{\@globaloptionslist}{} \scr@ifundefined{XKV@classooptionslist}{% \let\@globaloptionslist\@classoptionslist }{% \let\@globaloptionslist\XKV@classoptionslist } \@expandtwoargs\in@{,internalonly=}{,\@globaloptionslist} \ifin@ \begingroup \catcode`\=12\catcode`\:=12 \def\@do@internalonly #1internalonly=#2\@nil{% \ifx\relax#1\relax\setkeys{KOMA}{internalonly=#2}\fi \@expandtwoargs\@removeelement{internalonly=#2}\@unusedoptionlist \@unusedoptionlist }% \expandafter\@for\expandafter\@tempa\expandafter:\expandafter=% \@globaloptionslist\do{% \expandafter\@do@internalonly\@tempa\@nil }% \global\let\@unusedoptionlist\@unusedoptionlist \endgroup \fi %%% From File: scrlfile.dtx \def\scrlfileversion{2007/03/07 v2.97a} \edef\@tempa{\noexpand\RequirePackage{scrlfile}[\scrlfileversion]} \@tempa %%% From File: scrkbase.dtx \newif\if@atdocument \AtBeginDocument{\@atdocumenttrue} \@onlypreamble\@atdocumentrue \@onlypreamble\@atdocumentfalse \newcommand*{\let@as@internal@defined}[1]{% \begingroup \@expandtwoargs\in@{/#1/}\dont@let@as@internal@defined \expandafter\endgroup \ifin@ \PackageInfo{% scrkbase% }{% \expandafter\string\csname #1\endcsname\space excluded from being defined% }% \else \@ifundefined{#1}{% \begingroup \expandafter\def\expandafter\@tempa \expandafter{\csname scr@#1\endcsname} \expandafter\def\expandafter\@tempb \expandafter{\csname #1\endcsname} \expandafter\expandafter\expandafter\endgroup \expandafter\expandafter\expandafter\let\expandafter\@tempb\@tempa \if@atdocument\else \g@addto@macro\document{% \expandafter\ifx\csname #1\expandafter\endcsname \csname scr@#1\endcsname \else \PackageWarning{scrkbase}{% \expandafter\string\csname #1\endcsname\space was redefined\MessageBreak at the document preamble.\MessageBreak If you did not redefine it by yourself, have a\MessageBreak a look at the description of this command at\MessageBreak the manual of every package you are using\@gobble }% \fi }% \fi }{% \PackageInfo{% scrkbase% }{% \expandafter\string\csname #1\endcsname\space already defined.\MessageBreak If \expandafter\string\csname #1\endcsname\space does not behave like\MessageBreak it was described at the KOMA-Script manual, try to\MessageBreak load `scrkbase.sty' earlier or find out at which\MessageBreak package or class \expandafter\string\csname #1\endcsname\space was defined before\@gobble }% }% \fi } \let@as@internal@defined{ifundefined} \scr@ifundefined{ifcsname}{% \newcommand{\ifnotundefined}[1]{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname #1\endcsname\relax \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi }% }{% \newcommand{\ifnotundefined}[1]{% \ifcsname #1\endcsname \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% } \newcommand\ifstr[2]{% \begingroup\edef\@tempa{#1}\edef\@tempb{#2}% \ifx\@tempa\@tempb \endgroup\expandafter\@firstoftwo \else \endgroup\expandafter\@secondoftwo \fi } \newcommand\ifnumber[1]{% \begingroup\@tempswafalse\let\scr@next\test@number \expandafter\scr@next#1\scr@next \if@tempswa \endgroup\expandafter\@firstoftwo \else \endgroup\expandafter\@secondoftwo \fi } \newcommand*{\test@number}[1]{% \ifx \scr@next#1 \let\scr@next\relax \else \@tempcnta=\expandafter\expandafter\expandafter\number \expandafter`#1\relax \ifnum \@tempcnta>47 \ifnum \@tempcnta<58 \@tempswatrue \else\@tempswafalse\fi \else\@tempswafalse\fi \if@tempswa\else\let\scr@next\gobble@till@scr@next\fi \fi \scr@next } \newcommand*{\gobble@till@scr@next}{} \def\gobble@till@scr@next#1\scr@next{} \newcommand{\ifdimen}[1]{% \begingroup\@tempswatrue\let\scr@next\test@posdimen \expandafter\test@dimen#1\scr@next \if@tempswa \endgroup\expandafter\@firstoftwo \else \endgroup\expandafter\@secondoftwo \fi } \newcommand*{\test@dimen}[1]{% \ifx -#1\else\ifx +#1\else \def\scr@next{\let\scr@next\test@posdimen\scr@next#1}\fi\fi \scr@next } \newcommand*{\test@posdimen}[1]{% \ifx \scr@next#1% \@tempswafalse\let\scr@next\relax \else \if .#1\else\if ,#1\else \@tempcnta=% \expandafter\expandafter\expandafter\number\expandafter`#1\relax \ifnum \@tempcnta>47 \ifnum \@tempcnta<58 \else\def\scr@next{\test@dimunt#1}\fi \else\def\scr@next{\test@dimunt#1}\fi \fi\fi \fi \scr@next } \newcommand*{\test@dimunt}{} \def\test@dimunt#1\scr@next{% \expandafter\test@trueunt#1truetrue\test@trueunt } \newcommand*{\test@trueunt}{} \def\test@trueunt#1true#2true#3\test@trueunt{% \edef\@tempa{#1} \ifx\@tempa\@empty\test@@ifdimunt{#2}\else\test@@ifdimunt{#1}\fi } \newcommand*\test@@ifdimunt[1]{% \@tempswafalse \ifstr{#1}{pt}{\@tempswatrue}{% \ifstr{#1}{pc}{\@tempswatrue}{% \ifstr{#1}{in}{\@tempswatrue}{% \ifstr{#1}{bp}{\@tempswatrue}{% \ifstr{#1}{cm}{\@tempswatrue}{% \ifstr{#1}{mm}{\@tempswatrue}{% \ifstr{#1}{dd}{\@tempswatrue}{% \ifstr{#1}{cc}{\@tempswatrue}{% \ifstr{#1}{sp}{\@tempswatrue}{}% }% }% }% }% }% }% }% }% } \newcommand{\scr@ifpdftex}{\ifnotundefined{pdftexversion}} \let@as@internal@defined{ifpdftex} \BeforePackage{pdfcprot}{\let\ifpdftex\relax} \AfterPackage{pdfcprot}{\let@as@internal@defined{ifpdftex}} \newcommand{\scr@ifvtex}{\ifnotundefined{VTeXversion}} \let@as@internal@defined{ifvtex} \newcommand{\scr@ifpdfoutput}{% \scr@ifundefined{pdfoutput}{% \scr@ifundefined{OpMode}{% \expandafter\@secondoftwo% }{% \ifnum\OpMode=1 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% }{% \ifnum\pdfoutput>0 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% }% \let@as@internal@defined{ifpdfoutput} \newcommand*{\scr@ifpsoutput}{% \ifnotundefined{if@dvips}{% \if@dvips \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }{% \ifnotundefined{OpMode}{% \ifnum\OpMode=2 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }{% \expandafter\@secondoftwo }% }% } \let@as@internal@defined{ifpsoutput} \newcommand*{\scr@ifdvioutput}{% \scr@ifundefined{pdfoutput}{% \scr@ifundefined{OpMode}{% \expandafter\@firstoftwo }{% \ifnum\OpMode=0 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% }{% \ifnum\pdfoutput=0 \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi }% } \let@as@internal@defined{ifdvioutput} \newcommand*{\KOMAoptions}[1]{% \let\post@kopt@hook\@empty \setkeys{KOMA}{#1}% \post@kopt@hook\let\post@kopt@hook\relax } \newcommand*{\post@kopt@hook}{} \let\post@kopt@hook\relax \newcommand*{\AfterKOMAoptions}{% \ifx\post@kopt@hook\relax \PackageWarning{scrkbase}{% \string\AfterKOMAoptions\space can only be used inside a\MessageBreak KOMA-Script option that is called using \space\KOMAoptions.\MessageBreak Because if this, command will be ignored% }% \expandafter\@gobbletwo \else \expandafter\l@addto@macro \fi \post@kopt@hook } \KOMA@key{nokey}{% \PackageError{% scrkeyval% }{% unknown KOMA option `#1'% }{% You've tried to use the KOMA option `#1'.\MessageBreak But there is no KOMA option with that name.\MessageBreak See the manual of KOMA-Script for information about known KOMA options.% }% }% \KOMA@key{noval}{% \PackageError{% scrkbase% }{% KOMA option `#1' needs a value% }{% You've tried to use the KOMA option `#1' without a value.\MessageBreak But this option has no default value, so you have to set a value.\MessageBreak See the manual of KOMA-Script for information about the option and all known\MessageBreak values.% }% }% \newcommand*{\KOMA@unknown@keyval}[3]{% \PackageError{% scrkbase% }{% KOMA option `#1' has no value `#2'% }{% You've tried to set option `#1' to value `#2'.\MessageBreak But allowed values are only:\MessageBreak #3.\MessageBreak See the KOMA-Script manual for more information.% }% } \newcommand*{\KOMA@ifkey}[2]{% \@ifundefined{if#2}{% \expandafter\newif\csname if#2\endcsname }{}% \KOMA@key{#1}[true]{\KOMA@set@ifkey{#1}{#2}{##1}}% } \newcommand*{\KOMA@set@ifkey}[3]{% \ifstr{#3}{true}{\@nameuse{#2true}}{% \ifstr{#3}{on}{\@nameuse{#2true}}{% \ifstr{#3}{yes}{\@nameuse{#2true}}{% \ifstr{#3}{false}{\@nameuse{#2false}}{% \ifstr{#3}{off}{\@nameuse{#2false}}{% \ifstr{#3}{no}{\@nameuse{#2false}}{% \KOMA@unknown@keyval{#1}{#3}{% `true', `on', `yes', `false', `off', `no'% }% }% }% }% }% }% }% } \newcommand*{\KOMA@ncmdkey}[1]{% \@ifnextchar [%] {\KOMA@@ncmdkey{#1}}{\KOMA@@ncmdkey{#1}[]}% } \newcommand*{\KOMA@@ncmdkey}{} \def\KOMA@@ncmdkey#1[#2]#3#4{% \ifx\relax#2\relax\else \@namedef{KV@KOMA@#1@default\expandafter}\expandafter{% \csname KV@KOMA@#1\endcsname{#2}% }% \fi \@ifundefined{#3}{\@namedef{#3}{0}}% \KOMA@key{#1}{\KOMA@set@ncmdkey{#1}{#3}{#4}{##1}}% } \newcommand*{\KOMA@set@ncmdkey}[4]{% \begingroup \edef\@searched{#4}% \let\@tempa=\@empty \let\@tempb=\@empty \@tempswafalse \@for\@valuelist:=#3\do{% \if@tempswa\else \edef\@tempc{\expandafter\@firstoftwo\@valuelist}% \edef\@tempa{\@tempa\@tempb`\@tempc'}% \edef\@tempb{, }% \ifx\@tempc\@searched \@tempswatrue \edef\@tempa{\expandafter\@secondoftwo\@valuelist}% \fi \fi }% \if@tempswa \edef\@tempa{\endgroup \noexpand\@namedef{#2}{\@tempa}% }% \else \KOMA@unknown@keyval{#1}{#4}{\@tempa}% \let\@tempa=\endgroup \fi \@tempa } \newcommand*{\scr@sr@co}{} \newcommand*{\KOMA@DeclareObsoleteOption}[3][\@gobbletwo]{% \DeclareOption{#2}{% \let\scr@sr@co\CurrentOption \KOMA@UseObsolete{option}{#1}{#2}{#3}% \let\CurrentOption\scr@sr@co }% } \newcommand*{\KOMA@UseObsolete}[4]{% #2{% scrkbase% }{% You've used the obsolete #1 `#3'.\MessageBreak \protect\KOMAoptions{#4} will be used instead.\MessageBreak You should do this change too% }% \KOMAoptions{#4}% } \newcommand*{\KOMA@newobsoletecommand}[3][\@gobbletwo]{% \newcommand*{#2}{\KOMA@UseObsolete{command}{#1}{\string#2}{#3}}% } %%% From File: scrlogo.dtx \@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'.