You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
652 lines
22 KiB
652 lines
22 KiB
%%
|
|
%% 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: `package,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-2019 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 can
|
|
%% find a complete unmodified copy of LaTeX2e at
|
|
%% <http://mirror.ctan.org/tex-archive/macros/latex/base/>.
|
|
%%
|
|
%%% From File: $Id: scrkernel-version.dtx 3510 2020-07-22 13:29:13Z 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{2020/07/22 v3.31 KOMA-Script}%
|
|
\endgroup
|
|
\providecommand*{\scr@pkgextension}{\@pkgextension}
|
|
\AtBeginDocument{%
|
|
\let\scr@pkgextension\@pkgextension
|
|
}
|
|
%%% From File: $Id: scrkernel-basics.dtx 3465 2020-03-07 10:23:56Z kohm $
|
|
%%% (run: prepare)
|
|
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
|
|
\ProvidesPackage{%
|
|
scrkbase%
|
|
}[%
|
|
2020/07/22 v3.31 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
|
|
<http://www.komascript.de/forum/20> (you need an account to do so).%
|
|
}%
|
|
}
|
|
\newcommand*{\KOMAProcessOptions}{\FamilyProcessOptions{KOMA}}
|
|
\@onlypreamble\KOMAProcessOptions
|
|
%%% From File: $Id: scrkernel-basics.dtx 3465 2020-03-07 10:23:56Z kohm $
|
|
%%% (run: option)
|
|
\KOMAProcessOptions\relax
|
|
%%% From File: $Id: scrkernel-fonts.dtx 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: option)
|
|
%%% From File: $Id: scrlfile.dtx 3447 2020-01-06 16:40:47Z kohm $
|
|
\RequirePackage{scrlfile}[%
|
|
2020/07/22 v3.31 KOMA-Script
|
|
]
|
|
%%% From File: $Id: scrkernel-basics.dtx 3465 2020-03-07 10:23:56Z kohm $
|
|
%%% (run: 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 3390 2019-11-18 17:09:35Z kohm $
|
|
%%% (run: body)
|
|
\newcommand*{\IfExistskomafont}[1]{%
|
|
\scr@ifundefinedorrelax{scr@fnt@#1}{%
|
|
\scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
|
|
}{%
|
|
\@firstoftwo
|
|
}%
|
|
}
|
|
\newcommand*{\IfIsAliaskomafont}[1]{%
|
|
\scr@ifundefinedorrelax{scr@fnt@#1}{%
|
|
\scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
|
|
}{%
|
|
\@secondoftwo
|
|
}%
|
|
}
|
|
\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
|
|
\def\selectfont{%
|
|
\global\let\g@scr@f@size\f@size
|
|
\global\let\g@scr@f@baselineskip\f@baselineskip
|
|
\global\let\g@scr@f@linespread\f@linespread
|
|
}%
|
|
\selectfont
|
|
\sbox\@tempboxa{%
|
|
\usekomafont{#1}{\relax}%
|
|
}%
|
|
\endgroup
|
|
\linespread{\g@scr@f@linespread}%
|
|
\fontsize{\g@scr@f@size}{\g@scr@f@baselineskip}%
|
|
\selectfont
|
|
}
|
|
\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
|
|
\def\selectfont{%
|
|
\global\let\g@scr@f@encoding\f@encoding
|
|
\global\let\g@scr@f@family\f@family
|
|
\global\let\g@scr@f@series\f@series
|
|
\global\let\g@scr@f@shape\f@shape
|
|
\global\let\g@scr@f@size\f@size
|
|
\global\let\g@scr@f@baselineskip\f@baselineskip
|
|
\global\let\g@scr@f@linespread\f@linespread
|
|
}%
|
|
\selectfont
|
|
\sbox\@tempboxa{%
|
|
\usekomafont{#1}{\relax}%
|
|
}%
|
|
\endgroup
|
|
\linespread{\g@scr@f@linespread}%
|
|
\fontsize{\g@scr@f@size}{\g@scr@f@baselineskip}%
|
|
\usefont{\g@scr@f@encoding}{\g@scr@f@family}{\g@scr@f@series}{\g@scr@f@shape}%
|
|
}
|
|
\newcommand*{\use@ofkomafont}[2]{%
|
|
\begingroup
|
|
\scr@prepareforkomafont
|
|
\def\selectfont{%
|
|
\global\expandafter\let\csname g@scr@f@#1\expandafter\endcsname
|
|
\csname f@#1\endcsname
|
|
}%
|
|
\selectfont
|
|
\sbox\@tempboxa{%
|
|
\usekomafont{#2}{\relax}%
|
|
}%
|
|
\endgroup
|
|
\@nameuse{font#1}{\csname g@scr@f@#1\endcsname}%
|
|
\selectfont
|
|
}
|
|
\newcommand*{\g@scr@f@encoding}{}\let\g@scr@f@encoding\f@encoding
|
|
\newcommand*{\g@scr@f@family}{}\let\g@scr@f@family\f@family
|
|
\newcommand*{\g@scr@f@series}{}\let\g@scr@f@series\f@series
|
|
\newcommand*{\g@scr@f@shape}{}\let\g@scr@f@shape\f@shape
|
|
\newcommand*{\g@scr@f@size}{}\let\g@scr@f@size\f@size
|
|
\newcommand*{\g@scr@f@baselineskip}{}\let\g@scr@f@baselineskip\f@baselineskip
|
|
\newcommand*{\g@scr@f@linespread}{}\let\g@scr@f@linespread\f@linespread
|
|
\newcommand*{\scr@komafontrelaxlist}{%
|
|
\do\normalcolor
|
|
}
|
|
\newcommand*{\scr@komafontgobblelist}{%
|
|
\do\color
|
|
}
|
|
\newcommand*{\scr@komafontonearglist}{%
|
|
\do\MakeUppercase \do\MakeLowercase
|
|
}
|
|
\newcommand*{\scr@prepareforkomafont}{%
|
|
\long\def\do##1{\let##1\relax}\scr@komafontrelaxlist
|
|
\long\def\do##1{\let##1\@gobble}\scr@komafontgobblelist
|
|
\long\def\do##1{\let##1\@firstofone}\scr@komafontonearglist
|
|
}
|
|
\newcommand*{\addtokomafontrelaxlist}[1]{%
|
|
\l@addto@macro\scr@komafontrelaxlist{\do#1}%
|
|
}
|
|
\newcommand*{\addtokomafontgobblelist}[1]{%
|
|
\l@addto@macro\scr@komafontgobblelist{\do#1}%
|
|
}
|
|
\newcommand*{\addtokomafontonearglist}[1]{%
|
|
\l@addto@macro\scr@komafontonearglist{\do#1}%
|
|
}
|
|
\newcommand*{\newkomafont}[3][\relax]{%
|
|
\scr@ifundefinedorrelax{scr@fnt@instead@#2}{}{%
|
|
\PackageWarning{scrkbase}{%
|
|
Making stand-alone element `#2' from\MessageBreak
|
|
alias to `\@nameuse{scr@fnt@instead@#2}'
|
|
}%
|
|
\expandafter\let\csname scr@fnt@instead@#2\endcsname\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]{%
|
|
\scr@ifundefinedorrelax{scr@fnt@#1}{}{%
|
|
\PackageWarning{scrkbase}{%
|
|
Redefining stand alone element `#1' as\MessageBreak
|
|
alias to `#2'%
|
|
}
|
|
\expandafter\let\csname scr@fnt@#1\endcsname\relax
|
|
}%
|
|
\scr@ifundefinedorrelax{scr@fnt@wrn@#1}{}{%
|
|
\expandafter\let\csname scr@fnt@wrn@#1\encsname\relax
|
|
}
|
|
\expandafter\newcommand\expandafter*\csname scr@fnt@instead@#1\endcsname{%
|
|
#2%
|
|
}%
|
|
}
|
|
%%% From File: $Id: scrlogo.dtx 2640 2017-05-08 09:36:55Z 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'.
|
|
|