%%
%% This is file `scrlttr2.cls',
%% generated with the docstrip utility, extended by scrdocstrip.
%%
%% The original source files were:
%%
%% scrkernel-version.dtx (with options: `class,letter')
%% scrkernel-basics.dtx (with options: `class,load')
%% scrkernel-compatibility.dtx (with options: `class,letter,init')
%% scrkernel-typearea.dtx (with options: `class,scrlttr2,init')
%% scrkernel-compatibility.dtx (with options: `class,letter,option')
%% scrkernel-miscellaneous.dtx (with options: `class,letter,option')
%% scrkernel-letterclassoptions.dtx (with options: `class,letter,option')
%% scrkernel-language.dtx (with options: `class,letter,option')
%% scrkernel-fonts.dtx (with options: `class,letter,option')
%% scrkernel-variables.dtx (with options: `class,letter,option')
%% scrkernel-pseudolengths.dtx (with options: `class,letter,option')
%% scrkernel-typearea.dtx (with options: `class,letter,options')
%% scrkernel-paragraphs.dtx (with options: `class,letter,option')
%% scrkernel-pagestyles.dtx (with options: `class,letter,option')
%% scrkernel-floats.dtx (with options: `class,letter,option')
%% scrkernel-footnotes.dtx (with options: `class,letter,option')
%% scrkernel-listsandtabulars.dtx (with options: `class,letter,option')
%% scrkernel-notepaper.dtx (with options: `class,letter,option')
%% scrkernel-addressfiles.dtx (with options: `class,letter,option')
%% scrkernel-miscellaneous.dtx (with options: `class,letter,execoption')
%% scrkernel-compatibility.dtx (with options: `class,letter,body')
%% scrkernel-fonts.dtx (with options: `class,letter,body')
%% scrkernel-miscellaneous.dtx (with options: `class,letter,body')
%% scrkernel-letterclassoptions.dtx (with options: `class,letter,body')
%% scrkernel-language.dtx (with options: `class,letter,body')
%% scrkernel-variables.dtx (with options: `class,letter,body')
%% scrkernel-pseudolengths.dtx (with options: `class,letter,body')
%% scrkernel-typearea.dtx (with options: `class,letter,body')
%% scrkernel-paragraphs.dtx (with options: `class,letter,body')
%% scrkernel-pagestyles.dtx (with options: `class,letter,body')
%% scrkernel-floats.dtx (with options: `class,letter,body')
%% scrkernel-footnotes.dtx (with options: `class,letter,body')
%% scrkernel-listsandtabulars.dtx (with options: `class,letter,body')
%% scrkernel-notepaper.dtx (with options: `class,letter,body')
%% scrkernel-addressfiles.dtx (with options: `class,letter,body')
%% scrlogo.dtx (with options: `logo')
%%
%% Copyright (c) 1994-2022 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.md'. 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
%% .
%%
%%% From File: $Id: scrkernel-version.dtx 4070 2023-07-07 07:08:40Z 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{2023/07/07 v3.41 KOMA-Script}%
\endgroup
\providecommand*{\scr@clsextension}{\@clsextension}
\AtBeginDocument{%
\let\scr@clsextension\@clsextension
}
\newcommand*{\KOMAClassName}{scrlttr2}
\newcommand*{\KOMAClassFileName}{\KOMAClassName.\@clsextension}
\edef\KOMAClassFileName{\KOMAClassFileName}
\newcommand*{\ClassName}{%
letter%
}
\ProvidesClass{\KOMAClassName}[%
2023/07/07 v3.41 KOMA-Script
document class (\ClassName)%
]
%%% From File: $Id: scrkernel-basics.dtx 4051 2023-04-26 16:01:28Z kohm $
%%% (run: load)
\RequirePackage{scrkbase}[\KOMAScriptVersion]
%%% From File: $Id: scrkernel-compatibility.dtx 4054 2023-05-10 14:35:36Z kohm $
%%% (run: init)
\newcommand*
{\scr@compatibility}{\scr@v@last}
\@namedef{scr@v@first}{0}
\@namedef{scr@v@2.9}{0}
\@namedef{scr@v@2.9t}{0}
\@namedef{scr@v@2.9u}{1}
\@namedef{scr@v@2.95}{2}
\@namedef{scr@v@2.95a}{2}
\@namedef{scr@v@2.95b}{2}
\@namedef{scr@v@2.96}{2}
\@namedef{scr@v@2.96a}{3}
\@namedef{scr@v@2.97}{3}
\@namedef{scr@v@2.97a}{3}
\@namedef{scr@v@2.97b}{3}
\@namedef{scr@v@2.97c}{4}
\@namedef{scr@v@2.97d}{5}
\@namedef{scr@v@2.97e}{6}
\@namedef{scr@v@2.98}{6}
\@namedef{scr@v@2.98a}{6}
\@namedef{scr@v@2.98b}{6}
\@namedef{scr@v@2.98c}{7}
\@namedef{scr@v@3.00}{8}
\@namedef{scr@v@3.01}{8}
\@namedef{scr@v@3.01a}{8}
\@namedef{scr@v@3.01b}{9}
\@namedef{scr@v@3.01c}{9}
\@namedef{scr@v@3.02}{9}
\@namedef{scr@v@3.02b}{9}
\@namedef{scr@v@3.02c}{10}
\@namedef{scr@v@3.03}{10}
\@namedef{scr@v@3.03a}{10}
\@namedef{scr@v@3.03b}{10}
\@namedef{scr@v@3.04}{10}
\@namedef{scr@v@3.04a}{10}
\@namedef{scr@v@3.05}{10}
\@namedef{scr@v@3.05a}{10}
\@namedef{scr@v@3.06}{10}
\@namedef{scr@v@3.07}{10}
\@namedef{scr@v@3.08}{10}
\@namedef{scr@v@3.08a}{10}
\@namedef{scr@v@3.08b}{10}
\@namedef{scr@v@3.09}{10}
\@namedef{scr@v@3.09a}{10}
\@namedef{scr@v@3.10}{10}
\@namedef{scr@v@3.10a}{10}
\@namedef{scr@v@3.10b}{10}
\@namedef{scr@v@3.11}{10}
\@namedef{scr@v@3.11a}{10}
\@namedef{scr@v@3.11b}{10}
\@namedef{scr@v@3.12}{11}
\@namedef{scr@v@3.13}{12}
\@namedef{scr@v@3.13a}{13}
\@namedef{scr@v@3.14}{13}
\@namedef{scr@v@3.15}{14}
\@namedef{scr@v@3.16}{14}
\@namedef{scr@v@3.17}{15}
\@namedef{scr@v@3.17a}{15}
\@namedef{scr@v@3.17c}{15}
\@namedef{scr@v@3.18}{15}
\@namedef{scr@v@3.18a}{15}
\@namedef{scr@v@3.19}{15}
\@namedef{scr@v@3.19a}{15}
\@namedef{scr@v@3.20}{15}
\@namedef{scr@v@3.21}{15}
\@namedef{scr@v@3.22}{16}
\@namedef{scr@v@3.23}{16}
\@namedef{scr@v@3.24}{16}
\@namedef{scr@v@3.25}{17}
\@namedef{scr@v@3.26}{17}
\@namedef{scr@v@3.26a}{17}
\@namedef{scr@v@3.26b}{17}
\@namedef{scr@v@3.27}{17}
\@namedef{scr@v@3.27a}{17}
\@namedef{scr@v@3.28}{17}
\@namedef{scr@v@3.29}{17}
\@namedef{scr@v@3.30}{17}
\@namedef{scr@v@3.31}{18}
\@namedef{scr@v@3.32}{18}
\@namedef{scr@v@3.33}{18}
\@namedef{scr@v@3.34}{18}
\@namedef{scr@v@3.35}{19}
\@namedef{scr@v@3.36}{20}
\@namedef{scr@v@3.37}{20}
\@namedef{scr@v@3.38}{20}
\@namedef{scr@v@3.39}{20}
\@namedef{scr@v@3.40}{20}
\@namedef{scr@v@3.41}{21}
\@namedef{scr@v@last}{21}
%%% From File: $Id: scrkernel-typearea.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: init)
%%% From File: $Id: scrkernel-compatibility.dtx 4054 2023-05-10 14:35:36Z kohm $
%%% (run: option)
\KOMA@key{version}[last]{%
\scr@ifundefinedorrelax{scr@v@#1}{%
\def\scr@compatibility{0}%
\ClassWarningNoLine{\KOMAClassName}{%
You have set option `version' to value `#1', but\MessageBreak
this value of version is not supported.\MessageBreak
Because of this, version was set to `first'%
}%
\FamilyKeyStateProcessed
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{version}{first}%
}{%
\ClassInfoNoLine{\KOMAClassName}{%
Switching compatibility level to `#1'%
}%
\edef\scr@compatibility{\@nameuse{scr@v@#1}}%
\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{version}{#1}%
\ifnum\scr@compatibility<\scr@v@last
\ClassWarningNoLine{\KOMAClassName}{%
Switching back to an old KOMA-Script release does\MessageBreak
not mean, that KOMA-Script is fully compatible with\MessageBreak
the old release. If you need full compatibility\MessageBreak
to an old KOMA-Script release, you should use that\MessageBreak
old KOMA-Script release. However, in that case you\MessageBreak
could also need old releases of other packages and\MessageBreak
even of the LaTeX kernel.\MessageBreak
You should also note, that the KOMA-Script developers\MessageBreak
refuse support for documents using `version=#1'.\MessageBreak
We recommend to eliminate all deprecated options\MessageBreak
and commands. We also recommend to not use option\MessageBreak
`version', i.e., with other values than `last'%
}%
\fi
}%
}
\KOMA@kav@add{\KOMAClassFileName}{version}{last}
\AtEndOfClass{%
\KOMA@key{version}[]{%
\ClassError{\KOMAClassName}{%
Option `version' too late%
}{%
Option `version' may be set only while loading the
class.\MessageBreak
But you've tried to set it up later.%
}%
\FamilyKeyStateProcessed
}%
}
\newcommand*{\scr@v@is@lt}[1]{%
\scr@compatibility<\@nameuse{scr@v@#1}
}
\newcommand*{\scr@v@is@gt}[1]{%
\scr@compatibility>\@nameuse{scr@v@#1}
}
\newcommand*{\scr@v@is@le}[1]{%
\numexpr\scr@compatibility-\@ne\relax<\@nameuse{scr@v@#1}
}
\newcommand*{\scr@v@is@ge}[1]{%
\numexpr\scr@compatibility+\@ne\relax>\@nameuse{scr@v@#1}
}
\newcommand*{\scr@v@is@eq}[1]{%
\scr@compatibility=\@nameuse{scr@v@#1}
}
%%% From File: $Id: scrkernel-miscellaneous.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
\KOMA@key{draft}[true]{%
\KOMA@set@ifkey{draft}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\if@tempswa
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{draft}{@tempswa}%
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{overfullrule}{@tempswa}%
\setlength{\overfullrule}{5pt}%
\else
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{draft}{@tempswa}%
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{overfullrule}{@tempswa}%
\setlength{\overfullrule}{\z@}%
\fi
\fi
}
\KOMA@kav@add{\KOMAClassFileName}{draft}{false}
\KOMA@DeclareStandardOption
{final}{draft=false}
\KOMA@key{overfullrule}[true]{%
\KOMA@set@ifkey{overfullrule}{@tempswa}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\if@tempswa
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{draft}{@tempswa}%
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{overfullrule}{@tempswa}%
\setlength{\overfullrule}{5pt}%
\else
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{draft}{@tempswa}%
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{overfullrule}{@tempswa}%
\setlength{\overfullrule}{\z@}%
\fi
\fi
}
\KOMA@kav@add{\KOMAClassFileName}{overfullrule}{false}
%%% From File: $Id: scrkernel-letterclassoptions.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
\newcommand*{\lco@test}{%
\IfFileExists{\CurrentOption.lco}{%
\ClassWarningNoLine{\KOMAClassName}{%
loading of LCO via class option
`\CurrentOption'.\MessageBreak
Note: Loading a LCO via class option is deprecated.\MessageBreak
\space\space\space\space\space\space
You should use
`\string\LoadLetterOption\string{\CurrentOption\string}'\MessageBreak
instead%
}%
\expandafter\AtEndOfClass\expandafter{%
\expandafter\LoadLetterOption\expandafter{\CurrentOption}%
}%
\expandafter\def\expandafter\scr@pti@nerr@r\expandafter{%
\expandafter\def\expandafter\scr@pti@nerr@r\expandafter{%
\scr@pti@nerr@r
}%
}%
}{}%
}
\AtEndOfClass
{\LoadLetterOption{DIN}}
%%% From File: $Id: scrkernel-language.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
\newif\if@orgdate\@orgdatetrue
\KOMA@key{numericaldate}[true]{%
\if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
\KOMA@set@ifkey{numericaldate}{@orgdate}{#1}%
\KOMA@kav@replacebool{%
\KOMAClassFileName
}{numericaldate}{@orgdate}%
\if@orgdate\@orgdatefalse\else\@orgdatetrue\fi
}
\KOMA@kav@add{%
\KOMAClassFileName
}{numericaldate}{true}
\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true}
\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false}
%%% From File: $Id: scrkernel-fonts.dtx 4034 2023-04-20 08:03:46Z kohm $
%%% (run: option)
\providecommand*\@ptsize{%
12%
}
\newcommand*{\@pt@scan}{%
\expandafter\@pt@@scan\CurrentOption pt\@pt@@scan%
}
\newcommand*{\@pt@@scan}{}
\def\@pt@@scan #1pt#2\@pt@@scan{%
\Ifstr{#2}{pt}{%
\Ifnumber{#1}{%
\Ifstr{#1}{10}{%
\KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}%
{#1#2}{fontsize=#1#2}%
}{%
\Ifstr{#1}{11}{%
\KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}%
{#1#2}{fontsize=#1#2}%
}{%
\Ifstr{#1}{12}{%
\KOMA@UseStandardOption{\PackageInfoNoLine{\KOMAClassName}}%
{#1#2}{fontsize=#1#2}%
}{%
\KOMA@UseDeprecatedOption{\PackageWarningNoLine{\KOMAClassName}}%
{#1#2}{fontsize=#1#2}%
}%
}%
}
}{\@headlines}%
}{\@headlines}%
}
\providecommand*{\@fontsizefilebase}{scrsize}
\KOMA@key{fontsize}{%
\scr@ifundefinedorrelax{changefontsizes}{%
\@defaultunits\@tempdima#1pt\relax\@nnil
\edef\@ptsize{#1}%
}{%
\ifvmode\else
\par
\ClassError{\KOMAClassName}{%
Option `fontsize' inside paragraph not allowed%
}{%
Option `fontsize' has been designed to change the base font size of
a\MessageBreak
document. It has not been made to change the current font
size. Moreover\MessageBreak
using it inside a paragraph mostly will not have the intended result,
because\MessageBreak
TeX always uses the setting of `\string\baselineskip' and other
parameters from the\MessageBreak
end of a paragraph for the whole paragraph. Therefore using option
`fontsize'\MessageBreak
in TeX's horizontal mode does not make sense and is not
permitted.\MessageBreak
You should use font size commands like `\string\Huge'…`\string\tiny'
or `\string\fontsize' here.\MessageBreak
See a LaTeX introduction for more information.\MessageBreak
But maybe you've just forgotten to make a paragraph. So if you'd
continue,\MessageBreak
I'll add `\expandafter\string\csname par\endcsname'.%
}%
\fi
\expandafter\@defaultunits\expandafter\@tempdima#1 pt\relax\@nnil
\edef\@tempa{#1}%
\setlength{\@tempdimb}{\@tempdima}%
\edef\@tempb{\strip@pt\@tempdimb}%
\addtolength{\@tempdimb}{-10\p@}%
\edef\@ptsize{\strip@pt\@tempdimb}%
\edef\@tempa{%
\noexpand\makeatletter
\noexpand\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{%
\noexpand\ClassInfo{\KOMAClassName}{%
File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}%
}{%
\noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{%
\noexpand\ClassInfo{\KOMAClassName}{%
File `\@fontsizefilebase\@tempb pt.clo' used instead of%
\noexpand\MessageBreak
file `\@fontsizefilebase\@tempa.clo' to setup font sizes}%
}{%
\noexpand\changefontsizes{#1}%
}%
}%
\noexpand\catcode`\noexpand\@=\the\catcode`\@
}%
\@tempa
}%
\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{fontsize}{#1}%
}
\DeclareOption{enabledeprecatedfontcommands}{%
\ClassWarningNoLine{\KOMAClassName}{%
deprecated option `enabledeprecatedfontcommands'.\MessageBreak
Note, that this option was already depreacted when\MessageBreak
it has been defined. Support for old font commands\MessageBreak
has been removed from KOMA-Script more than one\MessageBreak
decade ago. It is not recommended to use them any\MessageBreak
longer. Therefore usage of this class option also\MessageBreak
is not recommended%
}%
\let\scr@defineobsoletefonts\@ne
}
\scr@ifundefinedorrelax{scr@defineobsoletefonts}{%
\let\scr@defineobsoletefonts\z@
}{}
\BeforePackage{tex4ht}{%
\let\scr@defineobsoletefonts\thr@@
}
\newif\if@sfdefaults\@sfdefaultstrue
\KOMA@ifkey{sfdefaults}{@sfdefaults}
\newcommand*{\maybesffamily}{\if@sfdefaults \sffamily \fi}
\newcommand*{\textmaybesf}{%
\if@sfdefaults \expandafter\textsf \else \expandafter\@firstofone \fi
}
%% \begin{option}{egegdoesnotlikesansseriftitles}
\KOMA@key{egregdoesnotlikesansseriftitles}[true]{%
\ClassWarningNoLine{\KOMAClassName}%
{%
You've used deprecated option `egregdoesnotlikesansseriftitles'.\MessageBreak
In 2016 this option has been implemented as a joke\MessageBreak
answer to egreg's comment:\MessageBreak
\space\space ``In my opinion there should be a document class\MessageBreak
\space\space option for it, instead of the
\string\setkomafont\MessageBreak
\space\space statement. And yes, I find imposing sans serif
for\MessageBreak
\space\space titles is not the best choice (one of the
reasons\MessageBreak
\space\space why I don't use Koma-script classes).''\MessageBreak
to question https://tex.stackexchange.com/q/289853\MessageBreak
at TeX.SX.\MessageBreak
The option has never been documented in the official\MessageBreak
user manuals and therefore should never have been\MessageBreak
used in real live documents. It was intended to be\MessageBreak
removed after some month.\MessageBreak
However, it has been used and also almost forgotten\MessageBreak
by the author.\MessageBreak
For this the author apologizes both to users but\MessageBreak
especially to egreg.\MessageBreak
Rightly, egreg has criticized the permanent retention\MessageBreak
of the option as unfunny to inappropriate and has\MessageBreak
asked that it be removed or replaced.\MessageBreak
It will be removed soon!\MessageBreak
You should use `sfdefaults=false` instead%
}%
\KOMA@set@ifkey{egregdoesnotlikesansseriftitles}%
{@sfdefaults}%
{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\if@sfdefault \@sfdefaultsfalse \else \@sfdefaulttrue \fi
\KOMA@kav@xreplacevalue{\KOMAClassFileName}%
{sfdefaults}{\if@sfdefaults true\else false\fi}%
\fi
}
%%% From File: $Id: scrkernel-variables.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
%%% From File: $Id: scrkernel-pseudolengths.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
%%% From File: $Id: scrkernel-typearea.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: options)
\KOMA@key{twoside}[true]{%
\if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi%
\Ifstr{#1}{semi}{%
\@twosidetrue
\FamilyKeyStateProcessed
}{%
\def\FamilyElseValue{, `semi'}%
\KOMA@set@ifkey{twoside}{%
@twoside%
}{#1}%
}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\expandafter\ifnum\scr@v@is@ge{3.17}%
\if@twoside\flushbottom
\else
\if@twocolumn\sloppy\flushbottom\else\raggedbottom\fi
\fi
\fi
\KOMA@kav@xreplacevalue
{\KOMAClassFileName}%
{twoside}{#1}%
\fi
}
\KOMAExecuteOptions{twoside=false}
\KOMA@DeclareStandardOption%
{oneside}{twoside=false}
\KOMA@key{twocolumn}[true]{%
\if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi%
\KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\KOMA@kav@replacebool
{\KOMAClassFileName}%
{twocolumn}{@twocolumn}%
\if@atdocument\expandafter\@firstofone
\else\@ifpackageloaded{typearea}{\expandafter\@firstofone}
{\expandafter\AtEndOfClass}\fi
{%
\expandafter\ifnum\scr@v@is@ge{3.17}%
\if@twocolumn\twocolumn\sloppy\flushbottom
\else
\onecolumn
\if@twoside\flushbottom\else
\raggedbottom
\fi
\fi
\fi
}%
\fi
}
\AtEndOfClass{%
\expandafter\ifnum\scr@v@is@lt{3.17}%
\raggedbottom
\fi
}
\KOMAExecuteOptions{twocolumn=false}
\KOMA@DeclareStandardOption%
{onecolumn}{twocolumn=false}
\newcommand*{\@BCOR}{\expandafter\@@BCOR\CurrentOption BCORBCOR\@@BCOR}
\newcommand*{\@@BCOR}{}
\def\@@BCOR #1BCOR#2BCOR#3\@@BCOR{%
\Ifstr{#1}{}{%
\Ifstr{#3}{BCOR}{%
\Ifstrstart{#2}{=}{%
\edef\reserved@a{\noexpand\Ifdimen{\@gobble#2}}%
\reserved@a{\PassOptionsToPackage{BCOR#2}{typearea}}{\OptionNotUsed}%
}{%
\Ifdimen{#2}{\PassOptionsToPackage{BCOR#2}{typearea}}{\OptionNotUsed}%
}%
}{\scr@pti@nerr@r}%
}{\scr@pti@nerr@r}%
}
\newcommand*{\@DIV}{\expandafter\@@DIV\CurrentOption DIVDIV\@@DIV}
\newcommand*{\@@DIV}{}
\def\@@DIV #1DIV#2DIV#3\@@DIV{%
\edef\@tempa{#1}\ifx\@tempa\@empty
\edef\@tempa{#3}\def\@tempb{DIV}\ifx\@tempa\@tempb
\Ifstrstart{#2}{=}{%
\edef\reserved@a{\noexpand\Ifnumber{\@gobble#2}}%
\reserved@a{\PassOptionsToPackage{DIV#2}{typearea}}{\OptionNotUsed}%
}{%
\Ifnumber{#2}{\PassOptionsToPackage{DIV#2}{typearea}}{\OptionNotUsed}%
}%
\else\scr@pti@nerr@r\fi
\else\@BCOR\fi
}
\newcommand{\@headlines}{%
\expandafter\@@headlines\CurrentOption headlines\@@headlines%
}
\newcommand*{\@@headlines}{}
\def\@@headlines #1headlines#2\@@headlines{
\edef\@tempa{#2}\edef\@tempb{headlines}\ifx\@tempa\@tempb
\PassOptionsToPackage{#1headlines}{typearea}
\else\@DIV\fi
}
\newcommand*{\x@paper}{%
\expandafter\x@@paper\CurrentOption paper\x@@paper%
}
\newcommand*{\x@@paper}{}
\def\x@@paper #1#2paper#3\x@@paper{%
\Ifstr{#3}{paper}{%
\Ifnumber{#2}{%
\Ifstr{#1}{a}{%
\PassOptionsToPackage{#3=#1#2}{typearea}%
}{%
\Ifstr{#1}{b}{%
\PassOptionsToPackage{#3=#1#2}{typearea}%
}{%
\Ifstr{#1}{c}{%
\PassOptionsToPackage{#3=#1#2}{typearea}%
}{%
\Ifstr{#1}{d}{%
\PassOptionsToPackage{#3=#1#2}{typearea}%
}{\scr@pti@nerr@r}%
}%
}%
}%
}{\scr@pti@nerr@r}%
}{%
\@pt@scan
}%
}
\newcommand*{\scr@pti@nerr@r}{
\OptionNotUsed
}
\DeclareOption*{%
\lco@test
\x@paper}
%%% From File: $Id: scrkernel-paragraphs.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
\newcommand*{\setparsizes}[3]{%
\edef\f@parindent{\the\parindent}%
\edef\f@parskip{\the\parskip}%
\edef\f@parfillskip{\the\parfillskip}%
\def\scr@parindent{#1}%
\def\scr@parskip{#2}%
\def\scr@parfillskip{#3}%
\def\par@update{%
\if@atdocument\let\par@update\default@par@update\fi
\par@updaterelative
}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{false}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{never}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{full}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{full-}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{full+}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{full*}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{half}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{half-}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{half+}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{half*}%
}
\newcommand*{\f@parindent}{\the\parindent}
\newcommand*{\f@parskip}{\the\parskip}
\newcommand*{\f@parfillskip}{\the\parfillskip}
\newcommand*{\scr@parindent}{1em}
\newcommand*{\scr@parskip}{\z@}
\newcommand*{\scr@parfillskip}{\z@ \@plus 1fil}
\AtEndOfClass{%
\edef\f@parindent{\the\parindent}%
\edef\f@parskip{\the\parskip}%
\edef\f@parfillskip{\the\parfillskip}%
}
\newcommand*{\par@update}{}
\let\par@update\relax
\newcommand*{\default@par@update}{}
\let\default@par@update\relax
\AtBeginDocument{\par@update}
\KOMA@key{parskip}[true]{%
\begingroup
\KOMA@set@ncmdkey{parskip}{@tempa}{%
{never}{0},%
{false}{1},{off}{1},{no}{1},%
{full-}{2},%
{half-}{3},%
{full}{4},{true}{4},{on}{4},{yes}{4},%
{half}{5},%
{full+}{6},%
{half+}{7},%
{full*}{8},%
{half*}{9},%
{relative}{10},%
{absolute}{11}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\aftergroup\FamilyKeyStateProcessed
\ifcase\number\@tempa% 0
\endgroup
\setparsizes{1em}{\z@}{\z@ \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{never}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 1
\endgroup
\setparsizes{1em}{\z@ \@plus \p@}{\z@ \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{false}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 2
\endgroup
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
\z@ \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{full-}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 3
\endgroup
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
\z@ \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{half-}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 4
\endgroup
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
1em \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{full}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 5
\endgroup
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
1em \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{half}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 6
\endgroup
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
.3333\linewidth\@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{full+}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 7
\endgroup
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
.3333\linewidth \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{half+}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 8
\endgroup
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
.25\linewidth \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{full*}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 9
\endgroup
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
.25\linewidth \@plus 1fil}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{half*}%
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
\or% 10
\endgroup
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{absolute}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{relative}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{relative}%
\ifx\par@updaterelative\undefined
\expandafter\AtEndOfClass
\else
\expandafter\@firstofone
\fi
{%
\ifx\par@update\default@par@update
\let\par@update\par@updaterelative
\fi
\let\default@par@update=\par@updaterelative
}%
\or%11
\endgroup
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{absolute}%
\KOMA@kav@remove{\KOMAClassFileName}{parskip}{relative}%
\KOMA@kav@add{\KOMAClassFileName}{parskip}{absolute}%
\ifx\par@updaterelative\undefined
\expandafter\AtEndOfClass
\else
\expandafter\@firstofone
\fi
{%
\ifx\par@update\default@par@update
\let\par@update\relax
\fi
\let\default@par@update=\relax
}%
\else% should never be
\endgroup
\fi
\else
\endgroup
\FamilyKeyStateUnknownValue
\fi
}
\KOMA@DeclareDeprecatedOption{parskip-}{parskip=full-}
\KOMA@DeclareDeprecatedOption{parskip+}{parskip=full+}
\KOMA@DeclareDeprecatedOption{parskip*}{parskip=full*}
\KOMA@DeclareDeprecatedOption{halfparskip}{parskip=half}
\KOMA@DeclareDeprecatedOption{halfparskip-}{parskip=half-}
\KOMA@DeclareDeprecatedOption{halfparskip+}{parskip=half+}
\KOMA@DeclareDeprecatedOption{halfparskip*}{parskip=half*}
\KOMA@DeclareDeprecatedOption{parindent}{parskip=false}
\KOMA@kav@add{\KOMAClassFileName}{parskip}{false}
\KOMA@kav@add{\KOMAClassFileName}{parskip}{absolute}
%%% From File: $Id: scrkernel-pagestyles.dtx 4058 2023-06-16 08:32:27Z kohm $
%%% (run: option)
\KOMA@ifkey{headsepline}{@hsl}%
\KOMA@kav@add{\KOMAClassFileName}{headsepline}{false}
\KOMA@DeclareDeprecatedOption{headnosepline}{headsepline=false}
\KOMA@ifkey{footsepline}{@fsl}%
\KOMA@kav@add{\KOMAClassFileName}{footsepline}{false}
\KOMA@DeclareDeprecatedOption{footnosepline}{footsepline=false}
\KOMA@key{cleardoublepage}{%
\begingroup
\def\@tempc{%
\endgroup
\KOMA@unknown@keyval{cleardoublepage}{#1}{%
'current' or any defined pagestyle e.g. 'empty','plain', 'headings'}%
}%
\Ifstr{#1}{current}{%
\def\@tempc{\endgroup
\def\cleardoublepage{\cleardoublestandardpage}%
\def\cleardoubleoddpage{\cleardoubleoddstandardpage}%
\def\cleardoubleevenpage{\cleardoubleevenstandardpage}%
\FamilyKeyStateProcessed
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{cleardoublepage}{current}%
}%
}{%
\Ifnotundefined{ps@#1}{%
\def\@tempc{\endgroup
\def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
\def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
\def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{cleardoublepage}{#1}%
}%
}{%
\ifx\@currname\KOMAClassName
\ifx\@currext\@clsextension
\Ifstr{#1}{headings}{%
\def\@tempc{\endgroup
\def\cleardoublepage{\cleardoublepageusingstyle{#1}}%
\def\cleardoubleoddpage{\cleardoubleoddpageusingstyle{#1}}%
\def\cleardoubleevenpage{\cleardoubleevenpageusingstyle{#1}}%
\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{\KOMAClassFileName}%
{cleardoublepage}{#1}%
}%
}{}%
\fi
\fi
}%
}%
\@tempc
}
\newcommand*{\cleardoubleoddstandardpage}{}
\let\cleardoubleoddstandardpage=\cleardoublepage
\newcommand*{\cleardoubleoddpageusingstyle}[1]{\clearpage
{\pagestyle{#1}\cleardoubleoddstandardpage}}
\newcommand*{\cleardoubleoddemptypage}{\cleardoubleoddpageusingstyle{empty}}
\newcommand*{\cleardoubleoddplainpage}{\cleardoubleoddpageusingstyle{plain}}
\newcommand*{\cleardoubleevenstandardpage}{%
\clearpage
\if@twoside\ifodd\c@page
\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi
\fi\fi
}
\newcommand*{\cleardoubleevenpageusingstyle}[1]{\clearpage
{\pagestyle{#1}\cleardoubleevenstandardpage}}
\newcommand*{\cleardoubleevenemptypage}{\cleardoubleevenpageusingstyle{empty}}
\newcommand*{\cleardoubleevenplainpage}{\cleardoubleevenpageusingstyle{plain}}
\newcommand*{\cleardoublestandardpage}{\cleardoubleoddstandardpage}
\renewcommand*{\cleardoublepage}{%
\expandafter\ifnum \scr@v@is@gt{2.98c}%
\cleardoubleemptypage
\else
\cleardoublestandardpage
\fi
}
\KOMA@kav@add{%
\KOMAClassFileName
}{cleardoublepage}{%
\expandafter\ifnum \scr@v@is@gt{2.98c}
empty%
\else current\fi
}
\AtEndOfClass{%
\KOMAoptionOf[\expandafter\edef\expandafter\@tempa\@firstofone]%
{%
\KOMAClassFileName
}{cleardoublepage}%
\KOMA@kav@removekey{%
\KOMAClassFileName
}{cleardoublepage}%
\KOMA@kav@xadd{%
\KOMAClassFileName
}{cleardoublepage}{\@tempa}%
}
\newcommand*{\cleardoubleoddpage}{\cleardoubleoddemptypage}
\newcommand*{\cleardoubleevenpage}{\cleardoubleevenemptypage}
\newcommand*{\cleardoublepageusingstyle}[1]{\clearpage
{\pagestyle{#1}\cleardoublestandardpage}}
\newcommand*{\cleardoubleemptypage}{\cleardoublepageusingstyle{empty}}
\newcommand*{\cleardoubleplainpage}{\cleardoublepageusingstyle{plain}}
\KOMA@DeclareDeprecatedOption{cleardoubleempty}{cleardoublepage=empty}
\KOMA@DeclareDeprecatedOption{cleardoubleplain}{cleardoublepage=plain}
\KOMA@DeclareDeprecatedOption{cleardoublestandard}{cleardoublepage=current}
%%% From File: $Id: scrkernel-floats.dtx 4054 2023-05-10 14:35:36Z kohm $
%%% (run: option)
%%% From File: $Id: scrkernel-footnotes.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
\KOMA@key{footnotes}{%
\ifx\@footnotemark\scr@saved@footnotemark
\else
\ifx\@footnotemark\scr@footnotemark
\else
\ClassWarning{\KOMAClassName}{%
Change of `\string\@footnotemark' detected!\MessageBreak
Use of `footnotes=#1' may break\MessageBreak
another package!\MessageBreak
Maybe you should remove the usage of\MessageBreak
option `footnotes=#1'}%
\fi
\fi
\Ifstr{#1}{multiple}{%
\let\@footnotemark\scr@footnotemark
\def\FN@mf@prepare{\scr@mf@prepare}%
\def\scr@footmisc@options{multiple}%
\FamilyKeyStateProcessed
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{footnotes}{multiple}%
}{%
\Ifstr{#1}{nomultiple}{%
\let\@footnotemark\scr@saved@footnotemark
\let\FN@mf@prepare\relax
\let\scr@footmisc@options\@empty
\FamilyKeyStateProcessed
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{footnotes}{nomultiple}%
}{%
\KOMA@unknown@keyval{footnotes}{#1}{`multiple' and `nomultiple'}%
}%
}%
}
\AtBeginDocument{%
\ifx\@footnotemark\scr@saved@footnotemark
\KOMA@kav@removekey{%
\KOMAClassFileName
}{footnotes}%
\KOMA@kav@add{%
\KOMAClassFileName
}{footnotes}{nomultiple}%
\else\ifx\@footnotemark\scr@footnotemark
\KOMA@kav@removekey{%
\KOMAClassFileName
}{footnotes}%
\KOMA@kav@add{%
\KOMAClassFileName
}{footnotes}{multiple}%
\fi\fi
}
\newcommand*{\scr@footmisc@options}{}
\PassOptionsToPackage{\noexpand\scr@footmisc@options}{footmisc}
\newcommand*{\scr@saved@footnotemark}{%
\leavevmode
\ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
\@makefnmark
\ifhmode\spacefactor\@x@sf\fi
\relax}
\expandafter\CheckCommand\expandafter*\expandafter\@footnotemark
\expandafter{\scr@saved@footnotemark}
\newcommand*{\scr@footnotemark}{%
\leavevmode
\ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi
\@makefnmark
\csname FN@mf@prepare\endcsname
\ifhmode\spacefactor\@x@sf\fi
\relax}
%%% From File: $Id: scrkernel-listsandtabulars.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
%%% From File: $Id: scrkernel-notepaper.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
\KOMA@ifkey{firsthead}{@firsthead}
\KOMAExecuteOptions{firsthead=true}
\newcommand*{\@alignfrom}{0}
\KOMA@key{fromalign}{%
\KOMA@set@ncmdkey{fromalign}{@alignfrom}{%
{left}{0},%
{center}{1},{centered}{1},{middle}{1},%
{right}{2},%
{locationleft}{3},{leftlocation}{3},%
{locationright}{4},{rightlocation}{4},{location}{4},%
{no}{10000},{false}{10000},{off}{10000}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{fromalign}{#1}%
\ifcase\@alignfrom\or\or\or\@firstheadfalse\or\@firstheadfalse\fi
\fi
}
\KOMA@kav@add{%
\KOMAClassFileName
}{fromalign}{left}
\KOMA@ncmdkey{fromrule}[below]{@rulefrom}{%
{false}{0},{no}{0},{off}{0},{aftername}{1},%
{below}{2},{afteraddress}{2},{true}{2},{yes}{2},{on}{2}%
}
\KOMA@kav@add{%
\KOMAClassFileName
}{fromrule}{false}
\KOMA@ifkey{fromphone}{@phone}
\KOMA@ifkey{frommobilephone}{@mobilephone}
\KOMA@ifkey{fromfax}{@fax}
\KOMA@ifkey{fromemail}{@email}
\KOMA@ifkey{fromurl}{@www}
\KOMA@ifkey{fromlogo}{@logo}
\newcommand*{\@afieldmode}{\@ne}
\KOMA@ncmdkey{addrfield}[true]{@afieldmode}{%
{false}{0},{off}{0},{no}{0},%
{true}{1},{on}{1},{yes}{1},%
{PP}{2},{pp}{2},%
{PPexplicite}{2},{PPExplicite}{2},%
{ppexplicite}{2},{ppExplicite}{2},%
{backgroundimage}{3},%
{PPbackgroundimage}{3},{PPBackgroundImage}{3},{PPBackGroundImage}{3},%
{ppbackgroundimage}{3},{ppBackgroundImage}{3},{ppBackGroundImage}{3},%
{image}{4},{Image}{4},%
{PPimage}{4},{PPImage}{4},%
{ppimage}{4},{ppImage}{4},%
{topaligned}{5},{alignedtop}{5}%
}
\KOMA@kav@add{%
\KOMAClassFileName
}{addrfield}{true}
\KOMA@ncmdkey{priority}[A]{ltr@priority}{%
{no}{0},{off}{0},{false}{0},{manual}{0},%
{B}{1},{b}{1},%
{economy}{1},{Economy}{1},{ECONOMY}{1},%
{B-ECONOMY}{1},{B-Economy}{1},{b-economy}{1},%
{A}{2},{a}{2},%
{priority}{2},{Priority}{2},{PRIORITY}{2},%
{A-PRIORITY}{2},{A-Priority}{2},{a-priority}{2}%
}%
\KOMA@kav@add{%
\KOMAClassFileName
}{priority}{false}
\newcommand{\backaddr@format}[1]{}
\let\backaddr@format\underline
\newif\if@baddr\@baddrtrue
\KOMA@key{backaddress}[true]{%
\begingroup
\KOMA@set@ncmdkey{backaddress}{@tempa}{%
{false}{0},{off}{0},{no}{0},%
{true}{1},{on}{1},{yes}{1},%
{underlined}{2},%
{plain}{3}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\aftergroup\FamilyKeyStateProcessed
\ifcase\@tempa
\endgroup
\@baddrfalse
\or
\endgroup
\@baddrtrue
\or
\endgroup
\@baddrtrue
\let\backaddr@format\underline
\or
\endgroup
\@baddrtrue
\let\backaddr@format\@firstofone
\else
\endgroup
\fi
\if@baddr
\ifx\backaddr@format\underline
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{backaddress}{underlined}%
\else
\ifx\backaddr@format\@firstofone
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{backaddress}{plain}%
\else
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{backaddress}{true}%
\fi
\fi
\else
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{backaddress}{false}%
\fi
\else
\endgroup
\FamilyKeyStateUnknownValue
\fi
}
\newif\if@bigloc
\KOMA@key{locfield}[wide]{%
\begingroup
\KOMA@set@ncmdkey{locfield}{@tempa}{{wide}{0},{narrow}{1}}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\ifcase\@tempa
\endgroup
\@bigloctrue
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{locfield}{wide}%
\else
\endgroup
\@biglocfalse
\KOMA@kav@replacevalue{%
\KOMAClassFileName
}{locfield}{narrow}%
\fi
\else
\endgroup
\FamilyKeyStateUnknownValue
\fi
}
\KOMA@kav@add{%
\KOMAClassFileName
}{locfield}{narrow}
\KOMA@DeclareDeprecatedOption{wlocfield}{locfield=wide}
\KOMA@DeclareDeprecatedOption{slocfield}{locfield=narrow}
\newif\if@fold\@foldtrue
\newcommand*{\@usefolds}{TMBPL}
\KOMA@key{foldmarks}[true]{%
\begingroup
\KOMA@set@ifkey\@empty{@fold}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\if@fold\aftergroup\@foldtrue\else\aftergroup\@foldfalse\fi
\aftergroup\FamilyKeyStateProcessed
\else
\aftergroup\FamilyKeyStateProcessed
\def\sc@nf@ldch@rs##1{%
\ifx ##1\@nil\else
\if ##1T\g@addto@macro\@usefolds{##1}\else
\if ##1M\g@addto@macro\@usefolds{##1}\else
\if ##1B\g@addto@macro\@usefolds{##1}\else
\if ##1P\g@addto@macro\@usefolds{##1}\else
\if ##1L\g@addto@macro\@usefolds{##1}\else
\if ##1V\g@addto@macro\@usefolds{L}\else
\if ##1H\g@addto@macro\@usefolds{TMBP}\else
\if ##1t\scr@removechar\@usefolds{T}\else
\if ##1m\scr@removechar\@usefolds{M}\else
\if ##1b\scr@removechar\@usefolds{B}\else
\if ##1p\scr@removechar\@usefolds{P}\else
\if ##1l\scr@removechar\@usefolds{L}\else
\if ##1v%
\scr@removechar\@usefolds{L}%
\else
\if ##1h%
\scr@removechar\@usefolds{T}%
\scr@removechar\@usefolds{M}%
\scr@removechar\@usefolds{B}%
\else
\aftergroup\FamilyKeyStateUnknownValue
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\fi
\expandafter\sc@nf@ldch@rs
\fi
}%
\expandafter\sc@nf@ldch@rs#1\@nil
\fi
\endgroup
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{foldmarks}{\@usefolds}%
\KOMA@kav@xadd{%
\KOMAClassFileName
}{foldmarks}{\if@fold true\else false\fi}%
\fi
}
\KOMA@kav@xadd{%
\KOMAClassFileName
}{foldmarks}{\@usefolds}%
\KOMA@kav@add{%
\KOMAClassFileName
}{foldmarks}{true}%
\newcommand*{\scr@removechar}[2]{%
\def\in@@##1#2##2##3\in@@{%
\ifx\in@##2\else
\def\in@@####1#2\in@{\gdef#1{##1####1}}%
\in@@##2##3%
\fi}%
\expandafter\in@@#1#2\in@\in@@
}
\newif\if@refwide
\newcommand*{\@datepos}{1}
\KOMA@key{refline}[wide]{%
\begingroup
\KOMA@set@ncmdkey{refline}{@tempa}{{wide}{0},{narrow}{1},%
{dateleft}{2},{leftdate}{2},%
{dateright}{3},{rightdate}{3},%
{nodate}{4}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\aftergroup\FamilyKeyStateProcessed
\ifcase\@tempa% wide
\endgroup
\@refwidetrue
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{wide}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{narrow}%
\KOMA@kav@add{%
\KOMAClassFileName
}{refline}{wide}%
\or% narrow
\endgroup
\@refwidefalse
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{wide}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{narrow}%
\KOMA@kav@add{%
\KOMAClassFileName
}{refline}{narrow}%
\or% dateleft
\endgroup
\def\@datepos{2}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{dateleft}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{dateright}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{nodate}%
\KOMA@kav@add{%
\KOMAClassFileName
}{refline}{dateleft}%
\or% dateright
\endgroup
\def\@datepos{1}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{dateleft}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{dateright}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{nodate}%
\KOMA@kav@add{%
\KOMAClassFileName
}{refline}{dateright}%
\or% nodate
\endgroup
\def\@datepos{0}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{dateleft}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{dateright}%
\KOMA@kav@remove{%
\KOMAClassFileName
}{refline}{nodate}%
\KOMA@kav@add{%
\KOMAClassFileName
}{refline}{nodate}%
\fi
\else
\endgroup
\FamilyKeyStateUnknownValue
\fi
}
\KOMA@kav@add{%
\KOMAClassFileName
}{refline}{dateright}%
\KOMA@kav@add{%
\KOMAClassFileName
}{refline}{narrow}%
\newcommand{\subject@format}[1]{#1}
\newcommand*{\raggedsubject}{}
\newif\if@subj
\newif\if@subjafter
\KOMA@key{subject}{%
\begingroup
\KOMA@set@ncmdkey{subject}{@tempa}{%
{titled}{0},%
{untitled}{1},%
{afteropening}{2},%
{beforeopening}{3},%
{underlined}{4},%
{left}{5},%
{right}{6},%
{centered}{7}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\aftergroup\FamilyKeyStateProcessed
\ifcase\@tempa
\aftergroup\@subjtrue
\or
\aftergroup\@subjfalse
\or
\aftergroup\@subjaftertrue
\or
\aftergroup\@subjafterfalse
\or
\aftergroup\let\aftergroup\subject@format\aftergroup\underline
\or
\aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedright
\or
\aftergroup\let\aftergroup\raggedsubject\aftergroup\raggedleft
\or
\aftergroup\let\aftergroup\raggedsubject\aftergroup\centering
\fi
\else
\aftergroup\FamilyKeyStateUnknownValue
\fi
\endgroup
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{subject}{\if@subj titled\else untitled\fi}%
\KOMA@kav@xadd{%
\KOMAClassFileName
}{subject}{\if@subjafter after\else before\fi opening}%
\ifx\subject@format\underline
\KOMA@kav@add{%
\KOMAClassFileName
}{subject}{underlined}%
\fi
\ifx\raggedsubject\raggedright
\KOMA@kav@add{%
\KOMAClassFileName
}{subject}{left}%
\else
\ifx\raggedsubject\raggedleft
\KOMA@kav@add{%
\KOMAClassFileName
}{subject}{right}%
\else
\ifx\raggedsubject\centering
\KOMA@kav@add{%
\KOMAClassFileName
}{subject}{centered}%
\fi
\fi
\fi
\fi
}
\KOMA@kav@add{%
\KOMAClassFileName
}{subject}{untitled}%
\KOMA@kav@add{%
\KOMAClassFileName
}{subject}{beforeopening}%
\KOMA@ifkey{enlargefirstpage}{@enlargefp}
\KOMA@ifkey{firstfoot}{@firstfoot}\@firstfoottrue
\newcommand*{\@pageat}{4}
\KOMA@key{pagenumber}{%
\begingroup
\KOMA@set@ncmdkey{pagenumber}{@tempa}{%
{no}{-1},{off}{-1},{false}{-1},%
{topleft}{0},{headleft}{0},%
{topmiddle}{1},{topcenter}{1},{topcentered}{1},%
{headmiddle}{1},{headcenter}{1},{headcentered}{1},%
{topright}{2},{headright}{2},%
{botleft}{3},{footleft}{3},%
{botmiddle}{4},{botcenter}{4},{botcentered}{4},%
{footmiddle}{4},{footcenter}{4},{footcentered}{4},%
{botright}{5},{footright}{5},%
{top}{10},{head}{10},{bot}{11},{foot}{11},%
{left}{20},{middle}{21},{center}{21},{centered}{21},{right}{22}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\aftergroup\FamilyKeyStateProcessed
\ifnum\@tempa<10
\edef\@tempa{\endgroup\edef\noexpand\@pageat{\@tempa}}%
\else
\ifnum\@tempa<20
\@tempcnta\@pageat\relax
\ifnum\@tempcnta>2
\advance\@tempcnta by -3
\fi
\ifnum\@tempa=11
\advance\@tempcnta by 3
\fi
\edef\@tempa{\endgroup\edef\noexpand\@pageat{\the\@tempcnta}}%
\else
\ifnum\@pageat>2
\edef\@pageat{3}%
\else
\edef\@pageat{0}%
\fi
\@tempcnta\@tempa
\advance\@tempcnta by -20
\advance\@tempcnta by\@pageat
\edef\@tempa{\endgroup\edef\noexpand\@pageat{\the\@tempcnta}}%
\fi
\fi
\else
\def\@tempa{\endgroup\FamilyKeyStateUnknownValue}%
\fi
\@tempa
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{pagenumber}{%
\ifcase \@pageat
topleft%
\or
topmiddle%
\or
topright%
\or
botleft%
\or
botmiddle%
\or
botright%
\else
false%
\fi
}%
}
\KOMA@kav@add{%
\KOMAClassFileName
}{pagenumber}{botmiddle}
\newif\if@scrsymbols
\KOMA@key{symbolicnames}[true]{%
\KOMA@set@ifkey{symbolicnames}{@scrsymbols}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\def\scr@symbols@font{marvosym}%
\else
\KOMA@set@ncmdkey{symbolicnames}{reserved@a}{%
{marvosym}{0},%
{fontawesome}{1},{awesome}{1},%
}{#1}%
\ifx \FamilyKeyState\FamilyKeyStateProcessed
\@scrsymbolstrue
\ifcase \number\reserved@a
\def\scr@symbols@font{marvosym}%
\else
\def\scr@symbols@font{fontawesome}%
\fi
\fi
\fi
\ifx \FamilyKeyState\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{%
\KOMAClassFileName
}{symbolicnames}{#1}%
\if@scrsymbols
\Ifstr{\scr@symbols@font}{marvosym}{%
\def\scr@symbol@phone{\Telefon}%
\def\scr@symbol@fax{\FAX}%
\def\scr@symbol@email{\Email}%
\def\scr@symbol@mobilephone{\Mobilefone}%
\def\scr@symbol@www{\@empty}%
}{%
\def\scr@symbol@phone{\faPhone}%
\def\scr@symbol@fax{\faFax}%
\def\scr@symbol@email{\faEnvelopeO}%
\def\scr@symbol@mobilephone{\faMobilePhone}%
\def\scr@symbol@www{\faGlobe}%
}%
\if@atdocument
\begingroup
\@tempswafalse
\expandafter\ifdefined\scr@symbol@phone\else\@tempswatrue\fi
\expandafter\ifdefined\scr@symbol@fax\else\@tempswatrue\fi
\expandafter\ifdefined\scr@symbol@email\else\@tempswatrue\fi
\expandafter\ifdefined\scr@symbol@mobilephone\else\@tempswatrue\fi
\expandafter\ifdefined\scr@symbol@www\else\@tempswatrue\fi
\if@tempswa
\aftergroup\@scrsymbolsfalse
\ClassWarning{\KOMAClassName}{%
Option `symbolicnames=#1'
ignorred.\MessageBreak
You've tried to set option `symbolicnames'\MessageBreak
after \string\begin{document}, but without\MessageBreak
loading package `\scr@symbols@font' before.\MessageBreak
You should either switch on option\MessageBreak
`symbolicnames' before \string\begin{document}\MessageBreak
or load package `\scr@letter@symbols@font' in the
document\MessageBreak
preamble to avoid this warning%
}%
\fi
\endgroup
\else
\ifx\@fileswith@pti@ns\@badrequireerror
\Ifstr{\@currext}{\@clsextension}{%
\expandafter\AtEndOfClass
}{%
\Ifstr{\@currext}{\@pkgextension}{%
\expandafter\AtEndOfPackage
}{%
\expandafter\AtBeginDocument
}%
}%
\else
\expandafter\@firstofone
\fi
{\RequirePackage{\scr@symbols@font}}%
\fi
\fi
\fi
}
\KOMA@kav@add{%
\KOMAClassFileName
}{symbolicnames}{false}%
\newcommand*{\scr@symbols@font}{}
\newcommand*{\scr@symbol@phone}{\undefined}
\newcommand*{\scr@symbol@fax}{\undefined}
\newcommand*{\scr@symbol@email}{\undefined}
\newcommand*{\scr@symbol@mobilephone}{\undefined}
\newcommand*{\scr@symbol@www}{\undefined}
%%% From File: $Id: scrkernel-addressfiles.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: option)
%%% From File: $Id: scrkernel-miscellaneous.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: execoption)
\KOMAExecuteOptions{%
parskip=false,%
}
\KOMAProcessOptions\relax
%%% From File: $Id: scrkernel-compatibility.dtx 4054 2023-05-10 14:35:36Z kohm $
%%% (run: body)
\AtBeginDocument{%
\begingroup
\def\reserved@a#1/#2/#3 #4\@nil{\@tempcnta=#1\relax\@tempcntb=#2\relax}%
\expandafter\reserved@a\KOMAScriptVersion\@nil
\edef\reserved@a{\the\numexpr\@tempcnta+2\relax/%
\ifnum\@tempcntb<10 0\fi\the\@tempcntb/01}%
\expandafter\IfLTXAtLeastTF\expandafter{\reserved@a}{%
\ClassWarningNoLine{\KOMAClassName}{%
Your are using a KOMA-Script version, that has not\MessageBreak
been tested with your more than one year newer\MessageBreak
LaTeX release `\fmtversion'.\MessageBreak
Because of the high speed of LaTeX kernel development,\MessageBreak
this could result in a lot of issues.\MessageBreak
Please have a look at\MessageBreak
and if this\MessageBreak
shows a newer KOMA-Script version than\MessageBreak
`\KOMAScriptVersion', we suggest to do\MessageBreak
an update of KOMA-Script or maybe even the whole\MessageBreak
TeX distribution%
}%
}{%
\edef\reserved@a{\the\numexpr\@tempcnta-4\relax/%
\ifnum\@tempcntb<10 0\fi\the\@tempcntb/01}%
\expandafter\IfLTXAtLeastTF\expandafter{\reserved@a}{}{%
\ClassWarningNoLine{\KOMAClassName}{%
You are using a KOMA-Script version, that has not been\MessageBreak
tested with your more than four years older LaTeX\MessageBreak
release `\fmtversion'.\MessageBreak
Because of the high speed of LaTeX kernel development,\MessageBreak
KOMA-Script releases cannot be tested with all past\MessageBreak
LaTeX releases.\MessageBreak
\ifnum\scr@compatibility<\scr@v@last
So even if you are using option `version' implicitly\MessageBreak
or explicitly, this
\else
So this
\fi
could result in a lot of issues.\MessageBreak
We recommend, to update the whole TeX distribution.\MessageBreak
If this could not be done, we suggest to use at\MessageBreak
least an older KOMA-Script release, e.g., from\MessageBreak
%
}%
}%
}%
\endgroup
}
\expandafter\ifnum \@nameuse{scr@v@2.95}>\scr@compatibility\relax
\newcommand*{\@setif}[2][]{%
\begingroup
\edef\@tempa{#1}\ifx\@tempa\@empty
\def\@tempa{\KOMA@set@ifkey{#2}{@#2}}%
\else
\def\@tempa{\KOMA@set@ifkey{#2}{#1}}%
\fi
\expandafter\endgroup\@tempa
}%
\fi
%%% From File: $Id: scrkernel-fonts.dtx 4034 2023-04-20 08:03:46Z kohm $
%%% (run: body)
\newcommand*\scr@setlength[4]{%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{#1}{#2 \@plus#3 \@minus#4}%
\else
\ifdim #2<\ifdim #2=\z@ \z@ \else \p@\fi
\ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
\setlength{#1}{\p@ \@plus\p@ \@minus\p@}%
\else
\setlength{#1}{\p@ \@plus\p@ \@minus#4}%
\fi
\else
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
\setlength{#1}{\p@ \@plus#3 \@minus\p@}%
\else
\setlength{#1}{\p@ \@plus#3 \@minus#4}%
\fi
\fi
\else
\ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
\setlength{#1}{#2 \@plus\p@ \@minus\p@}%
\else
\setlength{#1}{#2 \@plus\p@ \@minus#4}%
\fi
\else
\ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
\setlength{#1}{#2 \@plus#3 \@minus\p@}%
\else
\setlength{#1}{#2 \@plus#3 \@minus#4}%
\fi
\fi
\fi
\fi
}
\providecommand*{\simple@changefontsizes}[2][1.2\@tempdima]{%
\KOMA@kav@removekey{%
\KOMAClassFileName
}{fontsize}%
\@defaultunits\@tempdima#2pt\relax\@nnil
\setlength{\@tempdimc}{\@tempdima}%
\addtolength{\@tempdimc}{-10\p@}%
\edef\@ptsize{\strip@pt\@tempdimc}%
\@defaultunits\@tempdimb#1pt\relax\@nnil
\setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}%
\edef\@tempb{\the\@tempdimc}%
\setlength{\@tempdimc}{\@tempdima}%
\def\@tempa##1##2##3##4##5\@nnil{\def##1{##2.##3##4}}%
\expandafter\@tempa\expandafter\@tempb\@tempb\@nnil%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\abovedisplayskip}{%
\@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
\setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
\setlength{\belowdisplayshortskip}{%
.55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
\else
\scr@setlength{\abovedisplayskip}%
{.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
\scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
\scr@setlength{\belowdisplayshortskip}%
{.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
\fi
\setlength{\belowdisplayskip}{\abovedisplayskip}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\normalsize
{\the\@tempdima}{\the\@tempdimb}%
\abovedisplayskip \the\abovedisplayskip
\abovedisplayshortskip \the\abovedisplayshortskip
\belowdisplayskip \the\belowdisplayskip
\belowdisplayshortskip \the\belowdisplayshortskip
\let\noexpand\@listi\noexpand\@listI
}%
\let\normalsize\@undefined
\expandafter\DeclareRobustCommand\expandafter\normalsize\expandafter{\reserved@a}%
\setlength{\@tempdima}{0.9125\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\abovedisplayskip}{%
\@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
\setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
\setlength{\belowdisplayshortskip}{%
.55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
\else
\scr@setlength{\abovedisplayskip}%
{.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
\scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
\scr@setlength{\belowdisplayshortskip}%
{.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
\fi
\setlength{\belowdisplayskip}{\abovedisplayskip}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\small
{\the\@tempdima}{\the\@tempdimb}%
\abovedisplayskip \the\abovedisplayskip
\abovedisplayshortskip \the\abovedisplayshortskip
\belowdisplayskip \the\belowdisplayskip
\belowdisplayshortskip \the\belowdisplayshortskip
\let\noexpand\@listi\noexpand\@listi@small
}%
\let\small\@undefined
\expandafter\DeclareRobustCommand\expandafter\small\expandafter{\reserved@a}%
\setlength{\@tempdima}{.83334\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\abovedisplayskip}{%
\@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
\setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
\setlength{\belowdisplayshortskip}{%
.55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
\else
\scr@setlength{\abovedisplayskip}%
{.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
\scr@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
\scr@setlength{\belowdisplayshortskip}%
{.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
\fi
\setlength{\belowdisplayskip}{\abovedisplayskip}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\footnotesize
{\the\@tempdima}{\the\@tempdimb}%
\abovedisplayskip \the\abovedisplayskip
\abovedisplayshortskip \the\abovedisplayshortskip
\belowdisplayskip \the\belowdisplayskip
\belowdisplayshortskip \the\belowdisplayshortskip
\let\noexpand\@listi\noexpand\@listi@footnotesize
}%
\let\footnotesize\@undefined
\expandafter\DeclareRobustCommand\expandafter\footnotesize\expandafter{\reserved@a}%
\setlength{\@tempdima}{.66667\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\scriptsize
{\the\@tempdima}{\the\@tempdimb}%
}%
\let\scriptsize\@undefined
\expandafter\DeclareRobustCommand\expandafter\scriptsize\expandafter{\reserved@a}%
\setlength{\@tempdima}{.5\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\tiny
{\the\@tempdima}{\the\@tempdimb}%
}%
\let\tiny\@undefined
\expandafter\DeclareRobustCommand\expandafter\tiny\expandafter{\reserved@a}%
\setlength{\@tempdima}{1.2\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\large
{\the\@tempdima}{\the\@tempdimb}%
}%
\let\large\@undefined
\expandafter\DeclareRobustCommand\expandafter\large\expandafter{\reserved@a}%
\setlength{\@tempdima}{1.44\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\Large
{\the\@tempdima}{\the\@tempdimb}%
}%
\let\Large\@undefined
\expandafter\DeclareRobustCommand\expandafter\Large\expandafter{\reserved@a}%
\setlength{\@tempdima}{1.728\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\LARGE
{\the\@tempdima}{\the\@tempdimb}%
}%
\let\LARGE\@undefined
\expandafter\DeclareRobustCommand\expandafter\LARGE\expandafter{\reserved@a}%
\setlength{\@tempdima}{2.074\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\huge
{\the\@tempdima}{\the\@tempdimb}%
}%
\let\huge\@undefined
\expandafter\DeclareRobustCommand\expandafter\huge\expandafter{\reserved@a}%
\setlength{\@tempdima}{2.488\@tempdimc}%
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\edef\reserved@a{%
\noexpand\@setfontsize\noexpand\Huge
{\the\@tempdima}{\the\@tempdimb}%
}%
\let\Huge\@undefined
\expandafter\DeclareRobustCommand\expandafter\Huge\expandafter{\reserved@a}%
\normalsize
\expandafter\ifnum\scr@v@is@ge{3.17}
\@nameuse{par@updaterelative}%
\fi
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\footnotesep}{.7\@tempdimc}%
\setlength{\skip\footins}{.9\@tempdimc \@plus .3333\@tempdimc \@minus
.6\@tempdimc}%
\setlength{\floatsep}{\@tempdimc \@plus .1667\@tempdimc \@minus
.3333\@tempdimc}%
\setlength{\textfloatsep}{1.6667\@tempdimc \@plus .1667\@tempdimc \@minus
.3333\@tempdimc}%
\setlength{\intextsep}{\@tempb\@tempdimc \@plus .3333\@tempdimc \@minus
.3333\@tempdimc}%
\setlength{\dblfloatsep}{\@tempb\@tempdimc \@plus .1667\@tempdimc \@minus
.3333\@tempdimc}%
\setlength{\dbltextfloatsep}{\textfloatsep}%
\setlength{\@fptop}{0\p@ \@plus 1fil}%
\setlength{\@fpsep}{.8333\@tempdimc \@plus 2fil}%
\setlength{\@fpbot}{\@fptop}%
\setlength{\@dblfptop}{0\p@ \@plus 1fil}%
\setlength{\@dblfpsep}{.8333\@tempdimc \@plus 2fil}%
\setlength{\@dblfpbot}{\@fptop}%
\fi
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.8333\@tempdimc \@plus .3333\@tempdimc \@minus
.5\@tempdimc}%
\setlength{\parsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}%
\else
\setlength{\@tempdimb}{\f@baselineskip}%
\scr@setlength{\parsep}%
{.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}%
\scr@setlength{\topsep}%
{.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}%
\fi
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listi\endcsname
\endgroup
\edef\@listi{\leftmargin\leftmargini
\topsep \the\topsep
\parsep \the\parsep
\itemsep \parsep
\if@tempswa\noexpand\@list@extra\fi
}%
\let\@listI\@listi
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.75\@tempdimc \@plus .25\@tempdimc \@minus
.41667\@tempdimc}%
\setlength{\parsep}{.375\@tempdimc \@plus .16667\@tempdimc \@minus \p@}%
\else
\scr@setlength{\parsep}%
{.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
\scr@setlength{\topsep}%
{.3333\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}%
\fi
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listi\endcsname
\endgroup
\edef\@listi@small{\leftmargin\leftmargini
\topsep \the\topsep
\parsep \the\parsep
\itemsep \parsep
\if@tempswa\noexpand\@list@extra\fi
}%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.5\@tempdimc \@plus .16667\@tempdimc \@minus
.16667\@tempdimc}%
\setlength{\parsep}{.25\@tempdimc \@plus .16667\@tempdimc \@minus \p@}%
\else
\scr@setlength{\parsep}%
{.125\@tempdimb}{.0625\@tempdimb}{.0625\@tempdimb}%
\scr@setlength{\topsep}%
{.25\@tempdimb}{.125\@tempdimb}{.125\@tempdimb}%
\fi
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listi\endcsname
\endgroup
\edef\@listi@footnotesize{\leftmargin\leftmargini
\topsep \the\topsep
\parsep \the\parsep
\itemsep \parsep
\if@tempswa\noexpand\@list@extra\fi
}%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}%
\setlength{\parsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}%
\else
\scr@setlength{\parsep}%
{.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
\scr@setlength{\topsep}%
{.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}%
\fi
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listii\endcsname
\endgroup
\edef\@listii{\leftmargin\leftmarginii
\labelwidth=\dimexpr \leftmargin-\labelsep
\topsep \the\topsep
\parsep \the\parsep
\itemsep \parsep
\if@tempswa\noexpand\@list@extra\fi
}%
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\topsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}%
\else
\scr@setlength{\topsep}%
{.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
\fi
\setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}%
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listiii\endcsname
\endgroup
\edef\@listiii{\leftmargin\leftmarginiii
\labelwidth=\dimexpr \leftmargin-\labelsep
\topsep \the\topsep
\parsep \z@
\partopsep \the\partopsep
\itemsep \topsep
\if@tempswa\noexpand\@list@extra\fi
}%
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listiv\endcsname
\endgroup
\edef\@listiv{\leftmargin\leftmarginiv
\labelwidth=\dimexpr \leftmargin-\labelsep\relax
\if@tempswa\noexpand\@list@extra\fi
}%
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listv\endcsname
\endgroup
\edef\@listv{\leftmargin\leftmarginv
\labelwidth=\dimexpr \leftmargin-\labelsep\relax
\if@tempswa\noexpand\@list@extra\fi
}%
\@tempswafalse
\begingroup
\def\@list@extra{\aftergroup\@tempswatrue}%
\csname @listvi\endcsname
\endgroup
\edef\@listvi{\leftmargin\leftmarginvi
\labelwidth=\dimexpr \leftmargin-\labelsep\relax
\if@tempswa\noexpand\@list@extra\fi
}%
\@listi
\expandafter\ifnum\scr@v@is@lt{3.12}\relax
\setlength{\@tempdimb}{\@tempb\@tempdima}%
\setlength{\@tempdima}{\dimexpr \@tempdimb-\@tempdimc}%
\setlength\intextsep{\@tempdimb \@plus.2\@tempdima \@minus.2\@tempdima}%
\setlength\dblfloatsep\intextsep
\setlength\partopsep{.2\@tempdimc \@plus.1\@tempdimc \@minus.1\@tempdimc}%
\else
\setlength{\@tempdimb}{\f@baselineskip}%
\setlength{\footnotesep}{.555\@tempdimb}%
\scr@setlength{\skip\footins}%
{.75\@tempdimb}{.3333\@tempdimb}{.1667\@tempdimb}%
\scr@setlength{\floatsep}%
{\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}%
\scr@setlength{\textfloatsep}%
{1.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}%
\setlength{\intextsep}{\floatsep}%
\setlength{\dblfloatsep}{\floatsep}%
\setlength{\dbltextfloatsep}{\textfloatsep}%
\setlength{\@fptop}{\z@ \@plus 1fil}%
\setlength{\@fpsep}{.6667\@tempdimb \@plus 2fil}%
\setlength{\@fpbot}{\@fptop}%
\setlength{\@dblfptop}{\@fptop}%
\setlength{\@dblfpsep}{\@fpsep}%
\setlength{\@dblfpbot}{\@fptop}%
\scr@setlength{\partopsep}{.2\@tempdimb}{.1\@tempdimb}{.1\@tempdimb}%
\fi
}
\scr@ifundefinedorrelax{changefontsizes}{%
\let\changefontsizes\simple@changefontsizes
}{%
\ClassWarning{\KOMAClassName}{%
\string\changefontsizes\space already defined.\MessageBreak
I hope, the definition is compatible,\MessageBreak
because I do not change it%
}%
}
\expandafter\@defaultunits\expandafter\@tempdima\@ptsize pt\relax\@nnil
\edef\@tempa{\@ptsize}%
\setlength{\@tempdimb}{\@tempdima}%
\edef\@tempb{\strip@pt\@tempdimb}%
\addtolength{\@tempdimb}{-10\p@}%
\edef\@ptsize{\strip@pt\@tempdimb}%
\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{%
\ClassInfo{\KOMAClassName}{%
File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}%
\KOMA@kav@removekey{\KOMAClassFileName}{fontsize}%
\KOMA@kav@xadd{\KOMAClassFileName}{fontsize}{\@tempa}%
}{%
\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{%
\ClassInfo{\KOMAClassName}{%
File `\@fontsizefilebase\@tempb pt.clo' used instead of\MessageBreak
file `\@fontsizefilebase\@tempa.clo' to setup font sizes}%
\KOMA@kav@removekey{\KOMAClassFileName}{fontsize}%
\KOMA@kav@xadd{\KOMAClassFileName}{fontsize}{\@tempb pt}%
}{%
\InputIfFileExists{size\@tempb.clo}{%
\ClassInfo{\KOMAClassName}{%
File `size\@tempb.clo' used to setup font sizes}%
\KOMA@kav@removekey{\KOMAClassFileName}{fontsize}%
\KOMA@kav@xadd{\KOMAClassFileName}{fontsize}{\@tempb}%
}{%
\edef\@tempa{%
\noexpand\changefontsizes{\@tempa}%
\noexpand\KOMA@kav@xadd{\KOMAClassFileName}{fontsize}{\@tempa}%
}\@tempa
}%
}%
}
\newcommand*{\scr@DeclareOldFontCommand}[3]{%
\ifnum\scr@defineobsoletefonts<\z@\else
\ifnum\scr@defineobsoletefonts>\tw@
\DeclareOldFontCommand{#1}{#2}{#3}%
\else
\AtBeginDocument{%
\ifdefined#1\else
\DeclareOldFontCommand{#1}{%
\scr@ErrorWarningInfo{#1}{#2}#2%
}{%
\scr@ErrorWarningInfo{#1}{#3}#3%
}%
\fi
}%
\fi
\fi
}
\DeclareRobustCommand*{\scr@ErrorWarningInfo}[2]{%
\ifnum \scr@defineobsoletefonts=\z@
\ClassError{\KOMAClassName}{undefined old font command `\string#1'}{%
You should note that since 1994 LaTeX2e provides a new font selection
scheme\MessageBreak
called NFSS2 with several new, combinable font commands.
KOMA-Script\MessageBreak
classes had defined the old font commands like `\string#1'
only for compatibility\MessageBreak
with old LaTeX 2.09 document styles of Script 2.0. Nevertheless,
these\MessageBreak
commands are deprecated and undocumented at least since 2003. Since
2013\MessageBreak
KOMA-Script classes warned about soon removement of these deprecated
commands.\MessageBreak
Now, after two decades of LaTeX2e and NFSS2, these commands will not
work any\MessageBreak
more. If loading a package results in this error message, you should
contact\MessageBreak
the author of that package and ask him to replace the deprecated font
command\MessageBreak
`\string#1', e.g., by `\detokenize{#2}`. Otherwise you should
reconfigure\MessageBreak
or replace the package. If you have used the old font command
`\string#1' yourself,\MessageBreak
you should replace it, e.g., by `\detokenize{#2}'.\MessageBreak
To make it work for now, you can use the already also deprecated class
option\MessageBreak
`enabledeprecatedfontcommands'.%
}%
\else
\ifcase \scr@defineobsoletefonts
\or
\expandafter\ClassWarning
\or
\expandafter\ClassInfo
\else
\expandafter\@gobbletwo
\fi
{\KOMAClassName}{deprecated old font command `\string#1' used.\MessageBreak
You should note, that since 1994 LaTeX2e provides a\MessageBreak
new font selection scheme called NFSS2 with several\MessageBreak
new, combinable font commands. New KOMA-Script classes\MessageBreak
defined the old font commands like `\string#1' only for\MessageBreak
compatibility with LaTeX 2.09 document styles of\MessageBreak
Script 2.0. These commands are deprecated and\MessageBreak
undocumented at least since 2003. Since 2013,\MessageBreak
KOMA-Script classes warned about soon removement of\MessageBreak
these deprecated commands. Now, after two decades of\MessageBreak
LaTeX2e, NFSS2, and KOMA-Script these commands will\MessageBreak
not work any longer. If loading a package results in\MessageBreak
this message you should contact the author of that\MessageBreak
package and ask him to replace the depracted font\MessageBreak
command `\string#1', e.g., by `\detokenize{#2}'.\MessageBreak
Otherwise you should reconfigure or replace the\MessageBreak
package. If you have used the old font command\MessageBreak
`\string #1' yourself you should replace it, e.g., by\MessageBreak
`\detokenize{#2}'%
}%
\fi
}
\scr@DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\scr@DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\scr@DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\scr@DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\scr@DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\scr@DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\scr@DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\scr@DeclareOldFontCommand{\sfb}{\normalfont\sffamily\bfseries}{%
\@nomath\sfb}
\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal}
\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal}
%%% From File: $Id: scrkernel-miscellaneous.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\setlength{\skip\@mpfootins}{\skip\footins}
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
\newcommand*{\new@tpo@label}{\@newl@bel{tpo}}
\AtBeginDocument{%
\if@filesw
\immediate\write\@auxout{%
\string\providecommand*\string\new@tpo@label[2]{}%
}%
\fi
}
\newcommand*{\scr@tpo}{0}
\newcommand*{\is@thispageodd}[1][\is@thispageodd@setlabel]{%
\@bsphack
\begingroup
\@tempcnta=\scr@tpo
\advance\@tempcnta by\@ne
\xdef\scr@tpo{\the\@tempcnta}%
\expandafter\ifx\csname tpo@\scr@tpo\endcsname\relax
\protect\G@refundefinedtrue
\ClassWarning{\KOMAClassName}{%
odd/even page label number \scr@tpo\space undefined}%
\edef\@tempa{\the\value{page}}%
\else
\edef\@tempa{\csname tpo@\scr@tpo\endcsname}%
\fi
\ifodd\number\@tempa
\aftergroup\thispagewasoddtrue
\else
\aftergroup\thispagewasoddfalse
\fi
\endgroup
\edef\is@thispageodd@setlabel{%
\if@filesw
\unexpanded{\protected@write\@auxout{\let\arabic\relax}}{%
\noexpand\string
\noexpand\new@tpo@label{\scr@tpo}{\noexpand\arabic{page}}}%
\fi
\noexpand\def\noexpand\is@thispageodd@setlabel
{\unexpanded\expandafter{\is@thispageodd@setlabel}}%
}%
#1%
\@esphack
}
\newcommand*{\is@thispageodd@setlabel}{}
\newif\ifthispagewasodd
\providecommand*{\ifthispageodd}{%
\ClassWarning{\KOMAClassName}{%
Usage of deprecated command
`\string\ifthispageodd'.\MessageBreak
The command has been renamed because of a\MessageBreak
recommendation of The LaTeX Project Team.\MessageBreak
Please replace `\string\ifthispageodd' by `\string\Ifthispageodd'%
}%
\Ifthispageodd
}
\newcommand{\Ifthispageodd}{%
\is@thispageodd
\ifthispagewasodd
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}
\newcommand\marginline[1]{%
\marginpar[{\raggedleft #1}]{\raggedright #1}%
}
\scr@ifundefinedorrelax{textsubscript}{%
\DeclareRobustCommand*\textsubscript[1]{%
\@textsubscript{\selectfont#1}%
}%
}{%
\scr@ifundefinedorrelax{textsubscript }{%
\DeclareRobustCommand*\textsubscript[1]{%
\@textsubscript{\selectfont#1}%
}%
}{}%
}
\providecommand*{\@textsubscript}[1]{%
{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}%
}
\providecommand*{\scr@endstrut}{\unskip\ifhmode\nobreak\strut\fi}
\newcommand*{\scr@package@not@recommended}[2]{%
\scr@ifundefinedorrelax{class@shoulddisablepackagewarning@list}{%
\@firstofone
}{%
\edef\reserved@a{%
\noexpand\in@{#1}{\class@shoulddisablepackagewarning@list}}%
\reserved@a
\ifin@\expandafter\@gobble\else\expandafter\@firstofone\fi
}{%
\BeforePackage{#1}{%
\ClassWarning{\KOMAClassName}{%
Usage of package `#1' together\MessageBreak
with a KOMA-Script class is not recommended.\MessageBreak
\if\relax\detokenize{#2}\relax\else
I'd suggest to use #2.\MessageBreak
\fi
Nevertheless, using requested\MessageBreak
package `#1'%
}%
}%
}%
}%
\scr@package@not@recommended{emptypage}{%
option\MessageBreak
`cleardoublepage' with one of it's\MessageBreak
several values}
\scr@package@not@recommended{fancyhdr}{%
\MessageBreak
package `scrlayer' or `scrlayer-scrpage', because\MessageBreak
they support KOMA-Script classes.\MessageBreak
With `fancyhdr' several features of class `\KOMAClassName'\MessageBreak
like options `headsepline', `footsepline' or command\MessageBreak
`\string\MakeMarkcase' and the commands `\string\setkomafont' and\MessageBreak
`\string\addtokomafont' for the page style elements need\MessageBreak
explicite user intervention to work}
\scr@package@not@recommended{parskip}{%
option\MessageBreak
`parskip' with one of it's several values}
\scr@package@not@recommended{titleps}{%
package `scrlayer-scrpage'}
%%% From File: $Id: scrkernel-letterclassoptions.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\newcommand*{\LoadLetterOption}[1]{%
\@ifundefined{@restore@catcode@level}%
{\let\@restore@catcode@level=\z@}{}%
\ifnum\@restore@catcode@level =\z@
\ifnum\catcode`\@=11
\let\@restore@catcode\relax
\else
\@tempcnta=\catcode`\@
\edef\@restore@catcode{%
\noexpand\catcode`\noexpand\@=\the\@tempcnta}%
\makeatletter
\fi
\fi
\@tempcnta=\@restore@catcode@level\relax
\advance\@tempcnta by \@ne\relax
\edef\@restore@catcode@level{\the\@tempcnta}%
\scr@sp@def\reserved@a{#1}%
\edef\reserved@a{%
\noexpand\edef\noexpand\scr@currentlco{\reserved@a}%
\noexpand\InputIfFileExists{\reserved@a.lco}{%
\noexpand\ClassInfo{scrlttr2}%
{Letter-Class-Option `#1' loaded}%
}{%
\noexpand\ClassError{scrlttr2}%
{%
Letter-Class-Option file `#1.lco' not found%
}{%
You've told me to load the Letter-Class-Option `#1'. So I have
to load\noexpand\MessageBreak
the file `#1.lco'. But the file isn't available.}%
}%
\scr@ifundefinedorrelax{scr@currentlco}{%
\unexpanded{\let\scr@currentlco\relax}%
}{%
\noexpand\def\noexpand\scr@currentlco{\scr@currentlco}%
}%
}%
\if@atdocument
\edef\reserved@a{%
\unexpanded\expandafter{\reserved@a}%
\ifx\RequirePackage\@notprerr
\unexpanded{\let\RequirePackage\@notprerr}%
\else
\noexpand\def\noexpand\RequirePackage{%
\unexpanded\expandafter{\RequirePackage}%
}%
\fi
\ifx\usepackage\@notprerr
\unexpanded{\let\usepackage\@notprerr}%
\else
\noexpand\def\noexpand\usepackage{%
\unexpanded\expandafter{\usepackage}%
}%
\fi
}%
\let\RequirePackage\lco@RequirePackage
\let\usepackage\lco@RequirePackage
\expandafter\reserved@a
\else \expandafter\reserved@a
\fi
\@tempcnta=\@restore@catcode@level\relax
\advance\@tempcnta by \m@ne\relax
\edef\@restore@catcode@level{\the\@tempcnta}%
\ifnum\@tempcnta =\z@
\@restore@catcode
\fi
}
\newcommand*{\lco@RequirePackage}[2][]{%
\begingroup
\@for\reserved@a:=#2\do{%
\scr@trim@spaces\reserved@a
\scr@ifundefinedorrelax{ver@\reserved@a.\scr@pkgextension}{%
\ClassError{\KOMAClassName}{%
lco-file `\scr@currentlco' can be used only in preamble%
}{%
The lco-file `\scr@currentlco' uses \string\RequirePackage\space or
\string\usepackage\space to load\MessageBreak
package `\reserved@a'. This means you have to either load
`\reserved@a'\MessageBreak
or lco-file `\scr@currentlco' in the document preamble.
}%
}{}%
}%
\endgroup
\scr@gobbleopt
}
\newcommand*{\LoadLetterOptions}[1]{%
\begingroup
\def\reserved@a{\endgroup}%
\@for\reserved@b:=#1\do{%
\scr@trim@spaces\reserved@b
\ifx\reserved@b\@empty\else
\edef\reserved@a{\expandafter\unexpanded\expandafter{\reserved@a
\LoadLetterOption}{\reserved@b}\relax}%
\fi
}%
\reserved@a
}
\newcommand*{\LOPNP@option}{}
\newcommand*{\LOPNP@size}{}
\newcommand*{\@PapersizeWarning}{%
\begingroup%
\edef\@tempc{\noexpand\@tempswafalse
\noexpand\ifdim\paperwidth<\the\dimexpr\paperwidth-.1mm\relax
\relax
\noexpand\else
\noexpand\ifdim\paperwidth>\the\dimexpr\paperwidth+.1mm\relax
\relax
\noexpand\else
\noexpand\ifdim\paperheight<\the\dimexpr\paperheight-.1mm\relax
\relax
\noexpand\else
\noexpand\ifdim\paperheight>\the\dimexpr\paperheight+.1mm\relax
\relax
\noexpand\else
\noexpand\@tempswatrue
\noexpand\fi
\noexpand\fi
\noexpand\fi
\noexpand\fi
\noexpand\@@PapersizeWarning
}%
\def\@tempb{letter}\ifx\LOPNP@size\@tempb%
\setlength{\paperheight}{11in}\setlength{\paperwidth}{8.5in}%
\else\def\@tempb{legal}\ifx\LOPNP@size\@tempb%
\setlength{\paperheight}{14in}\setlength{\paperwidth}{8.5in}%
\else\def\@tempb{executive}\ifx\LOPNP@size\@tempb%
\setlength{\paperheight}{10.5in}\setlength{\paperwidth}{7.25in}%
\else%
\PaperNameToSize[letter]{\LOPNP@size}%
\fi
\fi
\fi
\@tempc
\endgroup%
}
\AfterPackage*{typearea}{%
\ProvideUnknownPaperSizeError{letter}{%
\ClassError{scrlttr2}{%
papersize `\LOPNP@size' undefined}{%
You've told me to check for paper size
`\LOPNP@size'\MessageBreak
at letter option file `\LOPNP@option.lco',\MessageBreak
but this paper size is not supported.\MessageBreak
See the KOMA-Script manual for informations about known
paper sizes.}%
}
}
\newcommand*{\@@PapersizeWarning}{%
\if@tempswa\else%
\ClassWarningNoLine{scrlttr2}%
{%
Letter option file `\LOPNP@option.lco'\MessageBreak
needs paper size `\LOPNP@size'.\MessageBreak
Current paper size is not `\LOPNP@size'!\MessageBreak
\scr@ifundefinedorrelax{KOMAClassName}{%
You should load package `typearea' either\MessageBreak
with option `paper=\LOPNP@size,paper=portrait' or
additionally\MessageBreak
}{%
You should add `paper=\LOPNP@size,paper=portrait' at the\MessageBreak
option list of `\string\documentclass' or\MessageBreak
}%
add `\string\KOMAoptions{paper=\LOPNP@size,paper=portrait}'\MessageBreak
before starting this letter!\MessageBreak
Maybe you know what you are doing,\MessageBreak
so I do not change this myself%
}%
\fi
}
\newcommand*{\LetterOptionNeedsPapersize}[2]{%
\edef\LOPNP@size{#2}\edef\LOPNP@option{#1}%
}
%%% From File: $Id: scrkernel-language.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\newcommand*{\g@addnumerical@date}[2]{%
\@ifundefined{date#1}{%
\ClassInfo{scrlttr2}
{%
no date found for language `#1'\MessageBreak
--> skipped%
}%
}{%
\expandafter\g@addto@macro\csname date#1\endcsname{%
\let\sym@date=\today%
\def\num@date{#2}%
\def\today{\if@orgdate\sym@date\else\num@date\fi}%
}%
}%
}
\AtBeginDocument{%
\@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}%
\@ifundefined{dateenglish}{\def\dateenglish{%
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}%
}%
}{}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\yourrefname{Your ref.}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\yourmailname{Your letter of}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\myrefname{Our ref.}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\customername{Customer no.}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\invoicename{Invoice no.}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\subjectname{Subject}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\ccname{cc}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\enclname{encl}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\headtoname{To}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\headfromname{From}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\datename{Date}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\pagename{Page}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\phonename{Phone}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\mobilephonename{Mobile phone}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\faxname{Fax}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\emailname{Email}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\wwwname{Url}%
\providecaptionname{american,australian,british,canadian,%
english,newzealand,%
UKenglish,ukenglish,USenglish,usenglish}\bankname{Bank account}%
\g@addnumerical@date{american}{\number\month/\number\day/\number\year}%
\g@addnumerical@date{australian}{\number\day/\number\month/\number\year}%
\g@addnumerical@date{british}{\number\day/\number\month/\number\year}%
\g@addnumerical@date{canadian}{\number\year/\number\month/\number\day}%
\g@addnumerical@date{english}{\number\day/\number\month/\number\year}%
\g@addnumerical@date{newzealand}{\number\day/\number\month/\number\year}%
\g@addnumerical@date{UKenglish}{\number\day/\number\month/\number\year}%
\g@addnumerical@date{ukenglish}{\number\day/\number\month/\number\year}%
\g@addnumerical@date{USenglish}{\number\month/\number\day/\number\year}%
\g@addnumerical@date{usenglish}{\number\month/\number\day/\number\year}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\yourrefname{Ihr Zeichen}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\yourmailname{Ihr Schreiben vom}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\myrefname{Unser Zeichen}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\customername{Kundennummer}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\invoicename{Rechnungsnummer}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\subjectname{Betrifft}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\ccname{Kopien an}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\enclname{Anlage}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\headtoname{An}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\headfromname{Von}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\datename{Datum}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\pagename{Seite}%
\providecaptionname{german}\phonename{Telephon}%
\providecaptionname{ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\phonename{Telefon}%
\providecaptionname{german}\mobilephonename{Mobiltelephon}%
\providecaptionname{ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\mobilephonename{Mobiltelefon}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\faxname{Fax}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\emailname{E-Mail}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\wwwname{URL}%
\providecaptionname{german,ngerman,austrian,naustrian,%
swissgerman,nswissgerman}\bankname{Bankverbindung}%
\g@addnumerical@date{german}{\number\day.\,\number\month.\,\number\year}%
\g@addnumerical@date{ngerman}{\number\day.\,\number\month.\,\number\year}%
\g@addnumerical@date{austrian}{\number\day.\,\number\month.\,\number\year}%
\g@addnumerical@date{naustrian}{\number\day.\,\number\month.\,\number\year}%
\g@addnumerical@date{swissgerman}{\number\day.\,\number\month.\,\number\year}%
\g@addnumerical@date{nswissgerman}{%
\number\day.\,\number\month.\,\number\year}%
\providecaptionname{%
acadian,canadien,francais,french}\yourrefname{Vos r\'ef\'erences}%
\providecaptionname{%
acadian,canadien,francais,french}\yourmailname{Votre lettre du}%
\providecaptionname{%
acadian,canadien,francais,french}\myrefname{Nos r\'ef\'erences}%
\providecaptionname{%
acadian,canadien,francais,french}\customername{Num\'ero de client}%
\providecaptionname{%
acadian,canadien,francais,french}\invoicename{Num\'ero de facture}%
\providecaptionname{%
acadian,canadien,francais,french}\subjectname{Concernant}%
\providecaptionname{%
acadian,canadien,francais,french}\ccname{Copie \`a}%
\providecaptionname{%
acadian,canadien,francais,french}\enclname{Annexes}%
\providecaptionname{%
acadian,canadien,francais,french}\headtoname{A}%
\providecaptionname{%
acadian,canadien,francais,french}\headfromname{De}%
\providecaptionname{%
acadian,canadien,francais,french}\datename{Date}%
\providecaptionname{%
acadian,canadien,francais,french}\pagename{Page}%
\providecaptionname{%
acadian,canadien,francais,french}\phonename{T\'el\'ephone}%
\providecaptionname{%
acadian,canadien,francais,french}\mobilephonename{Portable}%
\providecaptionname{%
acadian,canadien,francais,french}\faxname{T\'el\'efax}%
\providecaptionname{%
acadian,canadien,francais,french}\emailname{E-mail}%
\providecaptionname{%
acadian,canadien,francais,french}\wwwname{URL}%
\providecaptionname{%
acadian,canadien,francais,french}\bankname{Compte en banque}%
\g@addnumerical@date{acadian}{\number\day.\,\number\month.\,\number\year}%
\g@addnumerical@date{canadien}{\number\year/\number\month/\number\day}%
\g@addnumerical@date{francais}{\number\day.\,\number\month.\,\number\year}%
\g@addnumerical@date{french}{\number\day.\,\number\month.\,\number\year}%
\providecaptionname{italian}\yourrefname{Vs./Rif.}% or Vostro Riferimento
\providecaptionname{italian}\yourmailname{Vs.~lettera del}% or Vostra
% lettera del
\providecaptionname{italian}\myrefname{Ns./Rif.}% or Nostro Riferimento
\providecaptionname{italian}\customername{Nr.~cliente}% or Cliente num.
\providecaptionname{italian}\invoicename{Nr.~fattura}% or Fattura num.
\providecaptionname{italian}\subjectname{Oggetto}%
\providecaptionname{italian}\ccname{Per conoscenza}% or Copia a
\providecaptionname{italian}\enclname{Allegato}% or (plural) Allegati
\providecaptionname{italian}\headtoname{A}%
\providecaptionname{italian}\headfromname{Da}%
\providecaptionname{italian}\datename{Data}%
\providecaptionname{italian}\pagename{Pagina}%
\providecaptionname{italian}\phonename{Telefono}%
\providecaptionname{italian}\mobilephonename{Telefonino}%
\providecaptionname{italian}\faxname{Fax}%
\providecaptionname{italian}\emailname{Email}%
\providecaptionname{italian}\wwwname{Sito Web}%
\providecaptionname{italian}\bankname{Conto bancario}%
\g@addnumerical@date{italian}{\number\day.\,\number\month.\,\number\year}%
\providecaptionname{spanish}\yourrefname{Su ref.}%
\providecaptionname{spanish}\yourmailname{Su carta de}%
\providecaptionname{spanish}\myrefname{Nuestra ref.}%
\providecaptionname{spanish}\customername{No. de cliente}%
\providecaptionname{spanish}\invoicename{No. de factura}%
\providecaptionname{spanish}\subjectname{Asunto}%
\providecaptionname{spanish}\ccname{Copias}%
\providecaptionname{spanish}\enclname{Adjunto}%
\providecaptionname{spanish}\headtoname{A}%
\providecaptionname{spanish}\headfromname{De}%
\providecaptionname{spanish}\datename{Fecha}%
\providecaptionname{spanish}\pagename{P\'agina}%
\providecaptionname{spanish}\phonename{Tel\'efono}%
\providecaptionname{spanish}\mobilephonename{M\'ovil}%
\providecaptionname{spanish}\faxname{Fax}%
\providecaptionname{spanish}\emailname{Email}% or Correo electr\'onico
\providecaptionname{spanish}\wwwname{URL}% or P\`agina web
\providecaptionname{spanish}\bankname{Cuenta bancaria}%
\g@addnumerical@date{spanish}{\number\day.\,\number\month.\,\number\year}%
\providecaptionname{croatian}\yourrefname{Va\v{s} znak}%
\providecaptionname{croatian}\yourmailname{Va\v{s}e pismo od}%
\providecaptionname{croatian}\myrefname{Na\v{s} znak}%
\providecaptionname{croatian}\customername{Broj kupca}%
\providecaptionname{croatian}\invoicename{Broj fakture}%
\providecaptionname{croatian}\subjectname{Predmet}%
\providecaptionname{croatian}\ccname{Kopija}%
\providecaptionname{croatian}\enclname{Privitak}%
\providecaptionname{croatian}\headtoname{Prima}%
\providecaptionname{croatian}\headfromname{\v{S}alje}%
\providecaptionname{croatian}\datename{Nadnevak}%
\providecaptionname{croatian}\pagename{Stranica}%
\providecaptionname{croatian}\phonename{Telefon}%
\providecaptionname{croatian}\mobilphonename{Mobitel}%
\providecaptionname{croatian}\faxname{Fax}%
\providecaptionname{croatian}\emailname{E-Mail}%
\providecaptionname{croatian}\wwwname{URL}%
\providecaptionname{croatian}\bankname{Bankovna veza}%
\g@addnumerical@date{croatian}{\number\day.\,\number\month.\,\number\year.}%
\providecaptionname{dutch}\yourrefname{Uw kenmerk}%
\providecaptionname{dutch}\yourmailname{Uw brief van}%
\providecaptionname{dutch}\myrefname{Ons kenmerk}%
\providecaptionname{dutch}\customername{Klant No.}%
\providecaptionname{dutch}\invoicename{Rekening No.}%
\providecaptionname{dutch}\subjectname{Onderwerp}%
\providecaptionname{dutch}\ccname{Kopie aan}%
\providecaptionname{dutch}\enclname{Bijlage(n)}%
\providecaptionname{dutch}\headtoname{Aan}%
\providecaptionname{dutch}\headfromname{Van}%
\providecaptionname{dutch}\datename{Datum}%
\providecaptionname{dutch}\pagename{Pagina}%
\providecaptionname{dutch}\phonename{Telefoon}%
\providecaptionname{dutch}\mobilephonename{Mobieltje}%
\providecaptionname{dutch}\faxname{Fax}%
\providecaptionname{dutch}\emailname{E--mail}%
\providecaptionname{dutch}\wwwname{URL}%
\providecaptionname{dutch}\bankname{Bankrekening}%
\g@addnumerical@date{dutch}{\number\day.\,\number\month.\,\number\year}%
\providecaptionname{finnish}\yourrefname{Viitteenne}%
\providecaptionname{finnish}\yourmailname{Kirjeenne}%
\providecaptionname{finnish}\myrefname{Viitteemme}%
\providecaptionname{finnish}\customername{Asiakasnumero}%
\providecaptionname{finnish}\invoicename{Laskun numero}%
\providecaptionname{finnish}\subjectname{Asia}%
\providecaptionname{finnish}\ccname{Jakelu}%
\providecaptionname{finnish}\enclname{Liitteet}%
\providecaptionname{finnish}\headtoname{Vastaanottaja}%
\providecaptionname{finnish}\headfromname{L\"ahett\"aj\"a}%
\providecaptionname{finnish}\datename{P\"aiv\"a}%
\providecaptionname{finnish}\pagename{Sivu}%
\providecaptionname{finnish}\phonename{Puhelin}%
\providecaptionname{finnish}\mobilephonename{Matkapuhelin}%
\providecaptionname{finnish}\faxname{Faksi}%
\providecaptionname{finnish}\emailname{S\"ahk\"oposti}%
\providecaptionname{finnish}\wwwname{URL}%
\providecaptionname{finnish}\bankname{Pankkitilin numero}%
\g@addnumerical@date{finnish}{\number\day.\number\month.\number\year}%
\providecaptionname{norsk}\yourrefname{Deres ref.}%
\providecaptionname{norsk}\yourmailname{Deres brev av:}%
\providecaptionname{norsk}\myrefname{V\aa{}r ref:}%
\providecaptionname{norsk}\customername{Kundenummer}%
\providecaptionname{norsk}\invoicename{Fakturanummer}%
\providecaptionname{norsk}\subjectname{Emne}%
\providecaptionname{norsk}\ccname{Kopi til}%
\providecaptionname{norsk}\enclname{Vedlegg}%
\providecaptionname{norsk}\headtoname{Til}%
\providecaptionname{norsk}\headfromname{Fra}%
\providecaptionname{norsk}\datename{Dato}%
\providecaptionname{norsk}\pagename{Side}%
\providecaptionname{norsk}\phonename{Telefon}%
\providecaptionname{norsk}\mobilephonename{Mobiltelefon}%
\providecaptionname{norsk}\faxname{Telefaks}%
\providecaptionname{norsk}\emailname{E-post}%
\providecaptionname{norsk}\wwwname{Url}%
\providecaptionname{norsk}\bankname{Bankkontonummer}%
\g@addnumerical@date{norsk}{\number\day.\number\month.\number\year}%
\providecaptionname{swedish}\yourrefname{Er ref}%
\providecaptionname{swedish}\yourmailname{Ert brev av}%
\providecaptionname{swedish}\myrefname{V\aa{}r ref}%
\providecaptionname{swedish}\customername{Kundnummer}%
\providecaptionname{swedish}\invoicename{Fakturanummer}%
\providecaptionname{swedish}\subjectname{\"Amne}%
\providecaptionname{swedish}\ccname{Kopia till}%
\providecaptionname{swedish}\enclname{Bilagor}% Singular: Bilaga
\providecaptionname{swedish}\headtoname{Till}%
\providecaptionname{swedish}\headfromname{Fr\aa{}n}%
\providecaptionname{swedish}\datename{Datum}%
\providecaptionname{swedish}\pagename{Sida}%
\providecaptionname{swedish}\phonename{Telefon}%
\providecaptionname{swedish}\mobilephonename{Mobiltelefon}%
\providecaptionname{swedish}\faxname{Telefax}%
\providecaptionname{swedish}\emailname{E-post}%
\providecaptionname{swedish}\wwwname{Hemsida}%
\providecaptionname{swedish}\bankname{Bankgiro}% PlusGiro
\g@addnumerical@date{swedish}{\number\day/\number\month~\number\year}%
\providecaptionname{polish}\yourrefname{Wasz znak}%
\providecaptionname{polish}\yourmailname{Wasze pismo z dnia}%
\providecaptionname{polish}\myrefname{Nasz znak}%
\providecaptionname{polish}\customername{Numer klienta}%
\providecaptionname{polish}\invoicename{Numer rachunku}%
\providecaptionname{polish}\subjectname{Dotyczy}%
\providecaptionname{polish}\ccname{Rozdzielnik}%
\providecaptionname{polish}\enclname{Za\l\aob{}czniki}%
\providecaptionname{polish}\headtoname{Do}%
\providecaptionname{polish}\headfromname{Od}%
\providecaptionname{polish}\datename{Data}%
\providecaptionname{polish}\pagename{Strona}%
\providecaptionname{polish}\phonename{Telefon}%
\providecaptionname{polish}\mobilephonename{Numer mobilny}%
\providecaptionname{polish}\faxname{Fax}%
\providecaptionname{polish}\emailname{E-mail}%
\providecaptionname{polish}\wwwname{URL}%
\providecaptionname{polish}\bankname{Konto}%
\g@addnumerical@date{polish}{\number\day.\,\number\month.\,\number\year}%
\providecaptionname{czech}\yourrefname{Va\v{s}e zna\v{c}ka}%
\providecaptionname{czech}\yourmailname{V\'{a}\v{s} dopis ze dne}%
\providecaptionname{czech}\myrefname{Na\v{s}e zna\v{c}ka}%
\providecaptionname{czech}\customername{Z\'akaznick\'e \v{c}\'{\i}slo}%
\providecaptionname{czech}\invoicename{Fakura\v{c}n\'{\i} \v{c}\'{\i}slo}%
\providecaptionname{czech}\subjectname{Pr\v{e}dm\v{e}t}%
\providecaptionname{czech}\ccname{Kopie}%
\providecaptionname{czech}\enclname{P\v{r}\'{\i}loha}%
\providecaptionname{czech}\headtoname{Komu}%
\providecaptionname{czech}\headfromname{Od}%
\providecaptionname{czech}\datename{Datum}%
\providecaptionname{czech}\pagename{Strana}%
\providecaptionname{czech}\phonename{Telefon}%
\providecaptionname{czech}\mobilephonename{Mobil}%
\providecaptionname{czech}\faxname{Fax}%
\providecaptionname{czech}\emailname{E-Mail}%
\providecaptionname{czech}\wwwname{URL}%
\providecaptionname{czech}\bankname{Bankovn\'{\i} spojen\'{\i}}%
\g@addnumerical@date{czech}{\number\day.\,\number\month.\,\number\year}%
\providecaptionname{slovak}\yourrefname{Va\v{s}a zna\v{c}ka}%
\providecaptionname{slovak}\yourmailname{V\'{a}\v{s} list zo d\v{n}a}%
\providecaptionname{slovak}\myrefname{Na\v{s}a zna\v{c}ka}%
\providecaptionname{slovak}\customername{Z\'akazn\'{\i}cke \v{c}\'{\i}slo}%
\providecaptionname{slovak}\invoicename{\'{C}\'{\i}slo fakt\'ury}%
\providecaptionname{slovak}\subjectname{Predmet}%
\providecaptionname{slovak}\ccname{K\'{o}pia pre koho}%
\providecaptionname{slovak}\enclname{Pr\'{\i}loha}%
\providecaptionname{slovak}\headtoname{Komu}%
\providecaptionname{slovak}\headfromname{Od}%
\providecaptionname{slovak}\datename{D\'{a}tum}%
\providecaptionname{slovak}\pagename{Strana}%
\providecaptionname{slovak}\phonename{Telef\'{o}n}%
\providecaptionname{slovak}\mobilephonename{Mobil}%
\providecaptionname{slovak}\faxname{Fax}%
\providecaptionname{slovak}\emailname{E-Mail}%
\providecaptionname{slovak}\wwwname{URL}%
\providecaptionname{slovak}\bankname{Bankov\'{e} spojenie}%
\g@addnumerical@date{slovak}{\number\day.\,\number\month.\,\number\year}%
\captionsenglish
\dateenglish
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname date\languagename\endcsname\relax
\ClassWarningNoLine{scrlttr2}
{%
\string\language\space is \the\language, \string\languagename\space is
`\languagename'\MessageBreak
but \expandafter\string\csname
date\languagename\endcsname\space not defined!\MessageBreak
This seems to be a bug at you're `hyphen.cfg'.\MessageBreak
Undefining macro \string\languagename\space to avoid errors%
}%
\let\languagename=\undefined
\fi
\ifx\languagename\undefined
\ClassWarningNoLine{scrlttr2}
{\string\languagename\space not
defined, using \string\language.\MessageBreak
This may result in use of wrong language!\MessageBreak
You should use a compatible language
package\MessageBreak
(e.g. `Babel', `german', `ngerman', ...)}%
\ifx\l@american\undefined\else\ifnum\language=\l@american
\@nameuse{captionsamerican}%
\@nameuse{extrasamerican}%
\@nameuse{dateamerican}%
\fi\fi
\ifx\l@australian\undefined\else\ifnum\language=\l@australian
\@nameuse{captionsaustralian}%
\@nameuse{extrasaustralian}%
\@nameuse{dateaustralian}%
\fi\fi
\ifx\l@british\undefined\else\ifnum\language=\l@british
\@nameuse{captionsbritish}%
\@nameuse{extrasbritish}%
\@nameuse{datebritish}%
\fi\fi
\ifx\l@canadian\undefined\else\ifnum\language=\l@canadian
\@nameuse{captionscanadian}%
\@nameuse{extrascanadian}%
\@nameuse{datecanadian}%
\fi\fi
\ifx\l@newzealand\undefined\else\ifnum\language=\l@newzealand
\@nameuse{captionsnewzealand}%
\@nameuse{extrasnewzealand}%
\@nameuse{datenewzealand}%
\fi\fi
\ifx\l@UKenglish\undefined\else\ifnum\language=\l@UKenglish
\@nameuse{captionsUKenglish}%
\@nameuse{extrasUKenglish}%
\@nameuse{dateUKenglish}%
\fi\fi
\ifx\l@ukenglish\undefined\else\ifnum\language=\l@ukenglish
\@nameuse{captionsukenglish}%
\@nameuse{extrasukenglish}%
\@nameuse{dateukenglish}%
\fi\fi
\ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish
\@nameuse{captionsUSenglish}%
\@nameuse{extrasUSenglish}%
\@nameuse{dateUSenglish}%
\fi\fi
\ifx\l@usenglish\undefined\else\ifnum\language=\l@usenglish
\@nameuse{captionsusenglish}%
\@nameuse{extrasusenglish}%
\@nameuse{dateusenglish}%
\fi\fi
\ifx\l@austrian\undefined\else\ifnum\language=\l@austrian
\@nameuse{captionsaustrian}%
\@nameuse{extrasaustrian}%
\@nameuse{dateaustrian}%
\fi\fi
\ifx\l@naustrian\undefined\else\ifnum\language=\l@naustrian
\@nameuse{captionsnaustrian}%
\@nameuse{extrasnaustrian}%
\@nameuse{datenaustrian}%
\fi\fi
\ifx\l@german\undefined\else\ifnum\language=\l@german
\@nameuse{captionsgerman}%
\@nameuse{extrasgerman}%
\@nameuse{dategerman}%
\fi\fi
\ifx\l@ngerman\undefined\else\ifnum\language=\l@ngerman
\@nameuse{captionsngerman}%
\@nameuse{extrasngerman}%
\@nameuse{datengerman}%
\fi\fi
\ifx\l@swissgerman\undefined\else\ifnum\language=\l@swissgerman
\@nameuse{captionsswissgerman}%
\@nameuse{extrasswissgerman}%
\@nameuse{dateswissgerman}%
\fi\fi
\ifx\l@nswissgerman\undefined\else\ifnum\language=\l@nswissgerman
\@nameuse{captionsnswissgerman}%
\@nameuse{extrasnswissgerman}%
\@nameuse{datenswissgerman}%
\fi\fi
\ifx\l@acadian\undefined\else\ifnum\language=\l@acadian
\@nameuse{captionsacadian}%
\@nameuse{extrasacadian}%
\@nameuse{dateacadian}%
\fi\fi
\ifx\l@canadien\undefined\else\ifnum\language=\l@canadien
\@nameuse{captionscanadien}%
\@nameuse{extrascanadien}%
\@nameuse{datecanadien}%
\fi\fi
\ifx\l@francais\undefined\else\ifnum\language=\l@francais
\@nameuse{captionsfrancais}%
\@nameuse{extrasfrancais}%
\@nameuse{datefrancais}%
\fi\fi
\ifx\l@french\undefined\else\ifnum\language=\l@french
\@nameuse{captionsfrench}%
\@nameuse{extrasfrench}%
\@nameuse{datefrench}%
\fi\fi
\ifx\l@italian\undefined\else\ifnum\language=\l@italian
\@nameuse{captionsitalian}%
\@nameuse{extrasitalian}%
\@nameuse{dateitalian}%
\fi\fi
\ifx\l@spanish\undefined\else\ifnum\language=\l@spanish
\@nameuse{captionsspanish}%
\@nameuse{extrasspanish}%
\@nameuse{datespanish}%
\fi\fi
\ifx\l@croatian\undefined\else\ifnum\language=\l@croatian
\@nameuse{captionscroatian}%
\@nameuse{extrascroatian}%
\@nameuse{datecroatian}%
\fi\fi
\ifx\l@dutch\undefined\else\ifnum\language=\l@dutch
\@nameuse{captionsdutch}%
\@nameuse{extrasdutch}%
\@nameuse{datedutch}%
\fi\fi
\ifx\l@finnish\undefined\else\ifnum\language=\l@finnish
\@nameuse{captionsfinnish}%
\@nameuse{extrasfinnish}%
\@nameuse{datefinnish}%
\fi\fi
\ifx\l@norsk\undefined\else\ifnum\language=\l@norsk
\@nameuse{captionsnorsk}%
\@nameuse{extrasnorsk}%
\@nameuse{datenorsk}%
\fi\fi
\ifx\l@swedish\undefined\else\ifnum\language=\l@swedish
\@nameuse{captionsswedish}%
\@nameuse{extrasswedish}%
\@nameuse{dateswedish}%
\fi\fi
\ifx\l@polish\undefined\else\ifnum\language=\l@polish
\@nameuse{captionspolish}%
\@nameuse{extraspolish}%
\@nameuse{datepolish}%
\fi\fi
\ifx\l@czech\undefined\else\ifnum\language=\l@czech
\@nameuse{captionsczech}%
\@nameuse{extrasczech}%
\@nameuse{dateczech}%
\fi\fi
\ifx\l@slovak\undefined\else\ifnum\language=\l@slovak
\@nameuse{captionsslovak}%
\@nameuse{extrasslovak}%
\@nameuse{dateslovak}%
\fi\fi
\else
\edef\@tempa{nohyphenation}%
\ifx\languagename\@tempa
\ClassWarningNoLine{scrlttr2}
{%
You've selected language `\languagename'.\MessageBreak
Maybe your LaTeX format contains Babel extension\MessageBreak
but you have not selected a language using\MessageBreak
Babel package.\MessageBreak
Please select another language!\MessageBreak
Only as a workaround english captions and date\MessageBreak
will be used%
}%
\else
\ClassInfo{scrlttr2}
{%
trying to activate captions and date\MessageBreak
of language `\languagename'%
}%
\csname date\languagename\endcsname
\csname captions\languagename\endcsname
\ClassInfo{scrlttr2}
{%
used language is `\languagename'.\MessageBreak
Supported languages are: `english', `UKenglish',\MessageBreak
`ukenglish', `british', `american', `USenglish',\MessageBreak
`usenglish', `australian`,`canadian', `newzealand',\MessageBreak
`german', `ngerman', `austrian', `naustrian',\MessageBreak
`swissgerman', `nswissgermsn',\MessageBreak
`acadian', `canadien', `francais', `french', \MessageBreak
`dutch', `italian', `spanish', `polish',\MessageBreak
`croatian', `finnish', `norsk', `swedish',\MessageBreak
`czech', `slovak'%
}%
\fi
\fi
}
%%% From File: $Id: scrkernel-variables.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\newcommand*{\newkomavar}{%
\kernel@ifstar {\@tempswatrue\@newkomavar}{\@tempswafalse\@newkomavar}}
\newcommand*{\@newkomavar}[2][\relax]{%
\@ifundefined{scr@#2@name}{%
\@ifundefined{scr@#2@var}{%
\begingroup
\def\@tempa{#1}\def\@tempb{\relax}%
\ifx\@tempa\@tempb\endgroup\else
\endgroup\@namedef{scr@#2@name}{#1}%
\fi%
\expandafter\let\csname scr@#2@var\endcsname=\@empty
\if@tempswa\addtoreffields{#2}\fi
}{%
\ClassError{scrlttr2}
{%
This should never happen%
}{%
The contents of the KOMA-Script variable `#2'\MessageBreak
is undefined, but the name of the variable is
defined.\MessageBreak
This should never happen. So someone crashs me!%
}%
}%
}{%
\ClassError{scrlttr2}
{%
Variable `#2' already defined%
}{%
I'll ignore this command, if you'll continue.%
}%
}%
}
\newcommand*{\setkomavar}{%
\kernel@ifstar {\@setkomaname}{\@setkomavar}}
\newcommand*{\@setkomavar}[1]{%
\kernel@ifnextchar [%]
{\@@setkomavar{#1}}{\@@setkomavar{#1}[\relax]}}
\newcommand*{\@setkomaname}[2]{%
\@ifundefined{scr@#1@var}{%
\@komavar@err{set}{#1}%
}{%
\@namedef{scr@#1@name}{#2}%
\csname scr@#1@postsetname\endcsname
}%
}
\newcommand*{\@@setkomavar}{}
\long\def\@@setkomavar#1[#2]#3{%
\@ifundefined{scr@#1@var}{%
\@komavar@err{set}{#1}%
}{%
\@namedef{scr@#1@var}{#3}%
\csname scr@#1@postsetvar\endcsname
\begingroup
\def\@tempa{#2}\def\@tempb{\relax}%
\ifx\@tempa\@tempb\endgroup\else
\endgroup\@namedef{scr@#1@name}{#2}%
\csname scr@#1@postsetname\endcsname
\fi
}%
}
\newcommand*{\@komavar@err}[2]{%
\ClassError{scrlttr2}
{%
KOMA-Script variable not defined%
}{%
You've tried to #1 the not defined KOMA-Script variable
`#2'.\MessageBreak
You have to define the variable using \string\newkomavar\space
before\MessageBreak
you do this.%
}%
}
\DeclareRobustCommand*{\usekomavar}{%
\kernel@ifstar {\@usekomaname}{\@usekomavar}}
\newcommand*{\@usekomavar}[2][\@firstofone]{%
\@ifundefined{scr@#2@var}{%
\@komavar@err{use}{#2}%
}{%
#1{\@nameuse{scr@#2@var}}%
}%
}
\newcommand*{\@usekomaname}[2][\@firstofone]{%
\@ifundefined{scr@#2@var}{%
\@komavar@err{use}{#2}%
}{%
#1{\@nameuse{scr@#2@name}}%
}%
}
\newcommand*{\ifkomavar}{%
\ClassWarning{\KOMAClassName}{%
Usage of deprecated command `\string\ifkomavar'.\MessageBreak
The command has been renamed to because of a\MessageBreak
recommendation of LaTeX3 team members.\MessageBreak
Please replace `\string\ifkomavar' by `\string\Ifkomavar'%
}%
\Ifkomavar
}
\DeclareRobustCommand*{\Ifkomavar}[1]{%
\scr@ifundefinedorrelax{scr@#1@var}{%
\expandafter\@secondoftwo
}{%
\expandafter\@firstoftwo
}%
}
\newcommand*{\ifkomavarempty}{%
\ClassWarning{\KOMAClassName}{%
Usage of deprecated command `\string\ifkomavarempty'.\MessageBreak
The command has been renamed to because of a\MessageBreak
recommendation of LaTeX3 team members.\MessageBreak
Please replace `\string\ifkomavarempty' by `\string\Ifkomavarempty'%
}%
\Ifkomavarempty
}
\DeclareRobustCommand*{\Ifkomavarempty}{%
\begingroup
\kernel@ifstar {\@tempswatrue\@ifkomavarempty}%
{\@tempswafalse\@ifkomavarempty}%
}
\newcommand{\@ifkomavarempty}[1]{%
\Ifkomavar{#1}{%
\if@tempswa
\@ifundefined{scr@#1@name}{%
\aftergroup\@firstoftwo
}{%
\expandafter\ifx\csname scr@#1@name\endcsname\@empty
\aftergroup\@firstoftwo
\else
\aftergroup\@secondoftwo
\fi
}%
\else
\expandafter\ifx\csname scr@#1@var\endcsname\@empty
\aftergroup\@firstoftwo
\else
\aftergroup\@secondoftwo
\fi
\fi
}{%
\@komavar@err{use}{#1}%
\aftergroup\@gobbletwo
}%
\endgroup
}
\newcommand*{\foreachkomavar}[2]{%
\@for \reserved@a:=#1\do{%
\scr@trim@spaces\reserved@a
\ifx\reserved@a\@empty\else
\edef\reserved@a{\unexpanded{#2}{\reserved@a}}\expandafter\reserved@a
\fi
}%
}
\newcommand*{\foreachkomavarifempty}[3]{%
\@for \reserved@a:=#1\do{%
\scr@trim@spaces\reserved@a
\ifx\reserved@a\@empty\else
\edef\reserved@a{%
\noexpand\Ifkomavarempty{\reserved@a}%
{\unexpanded{#2}{\reserved@a}}%
{\unexpanded{#3}{\reserved@a}}%
}\expandafter\reserved@a
\fi
}%
}
\newcommand*{\foreachemptykomavar}[2]{%
\@for \reserved@a:=#1\do{%
\scr@trim@spaces\reserved@a
\ifx\reserved@a\@empty\else
\edef\reserved@a{%
\noexpand\Ifkomavarempty{\reserved@a}{\unexpanded{#2}{\reserved@a}}{}%
}\expandafter\reserved@a
\fi
}%
}
\newcommand*{\foreachnonemptykomavar}[2]{%
\@for \reserved@a:=#1\do{%
\scr@trim@spaces\reserved@a
\ifx\reserved@a\@empty\else
\edef\reserved@a{%
\noexpand\Ifkomavarempty{\reserved@a}{}{\unexpanded{#2}{\reserved@a}}%
}\expandafter\reserved@a
\fi
}%
}
%%% From File: $Id: scrkernel-pseudolengths.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\newcommand*{\Ifplength}[1]{%
\@ifundefined{ltr@len@#1}{\@secondoftwo}{\@firstoftwo}%
}
\newcommand*{\if@plength}{%
\ClassWarning{\KOMAClassName}{%
Internal macro `\string\if@plength' is deprecated.\MessageBreak
Please use `\string\Ifplength' instead}%
\Ifplength
}
\newcommand*{\newplength}[1]{%
\@ifundefined{ltr@len@#1}{%
\expandafter\let\csname ltr@len@#1\endcsname=\z@%
}{%
\ClassError{scrlttr2}%
{%
pseudo-length \expandafter\string\csname ltr@len@#1\endcsname
already defined%
}{%
You've tried to define a new pseudo-length using\MessageBreak
\string\@newplength\space
or \string\newplength.\MessageBreak
Please, try another name%
}%
}%
}
\newcommand*{\@newplength}{%
\ClassWarning{\KOMAClassName}{%
Internal macro `\string\@newplength' is deprecated.\MessageBreak
Please use `\string\newplength' instead}%
\newplength
}
\newcommand*{\useplength}[1]{%
\glueexpr \csname ltr@len@#1\endcsname\relax}%
\newcommand*{\setlengthtoplength}[3][]{%
\setlength{#2}{\useplength{#3}}%
\setlength{#2}{#1#2}}
\newcommand*{\setplength}[3][]{%
\begingroup%
\setlength{\@tempskipa}{\glueexpr #3\relax}%
\setlength{\@tempskipa}{#1\@tempskipa}%
\edef\@tempa{\noexpand\endgroup%
\noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
\noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}%
}%
\@tempa
}
\newcommand*{\@setplength}{%
\ClassWarning{\KOMAClassName}{%
Internal macro `\string\@setplength' is deprecated.\MessageBreak
Please use `\string\setplength' instead}%
\setplength
}
\newcommand*{\setplengthtowidth}[3][]{%
\begingroup
\settowidth{\@tempdima}{#3}%
\setlength{\@tempdima}{#1\@tempdima}%
\edef\@tempa{\noexpand\endgroup
\noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
\noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
}%
\@tempa
}
\newcommand*{\setplengthtoheight}[3][]{%
\begingroup
\settoheight{\@tempdima}{#3}%
\setlength{\@tempdima}{#1\@tempdima}%
\edef\@tempa{\noexpand\endgroup
\noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
\noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
}%
\@tempa
}
\newcommand*{\setplengthtodepth}[3][]{%
\begingroup
\settodepth{\@tempdima}{#3}%
\setlength{\@tempdima}{#1\@tempdima}%
\edef\@tempa{\noexpand\endgroup
\noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
\noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
}%
\@tempa
}
\newcommand*{\setplengthtototalheight}[3][]{%
\begingroup
\settoheight{\@tempdima}{#3}%
\settodepth{\@tempdimb}{#3}%
\addtolength{\@tempdima}{\@tempdimb}%
\setlength{\@tempdima}{#1\@tempdima}%
\edef\@tempa{\noexpand\endgroup
\noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
\noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempdima}%
}%
\@tempa
}
\newcommand*{\addtolengthplength}[3][]{%
\begingroup%
\setlengthtoplength[{#1}]{\@tempskipa}{#3}%
\edef\@tempa{\endgroup%
\noexpand\addtolength{#2}{\the\@tempskipa}}%
\@tempa%
}
\newcommand*{\addtoplength}[3][]{%
\begingroup%
\setlength{\@tempskipa}{\glueexpr #3\relax}%
\setlength{\@tempskipa}{#1\@tempskipa}%
\addtolengthplength{\@tempskipa}{#2}%
\edef\@tempa{\noexpand\endgroup%
\noexpand\expandafter\noexpand\renewcommand\noexpand\expandafter*%
\noexpand\csname ltr@len@#2\noexpand\endcsname{\the\@tempskipa}%
}%
\@tempa%
}
\newcommand*{\@addtoplength}{%
\ClassWarning{\KOMAClassName}{%
Internal macro `\string\@addtoplength' is deprecated.\MessageBreak
Please use `\string\addtoplength' instead}%
\addtoplength}
%%% From File: $Id: scrkernel-typearea.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\let\@BCOR =\relax
\let\@@BCOR =\relax
\let\@DIV =\relax
\let\@@DIV =\relax
\let\@headlines =\relax
\let\@@headlines =\relax
\let\x@paper =\relax
\let\x@@paper =\relax
\let\scr@pti@nerr@r =\relax
\RequirePackage{typearea}[\KOMAScriptVersion]
%%% From File: $Id: scrkernel-paragraphs.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\newcommand*{\par@updaterelative}{%
\begingroup
\edef\reserved@a{\the\parindent}\ifx\reserved@a\f@parindent
\aftergroup\parindent@update
\fi
\edef\reserved@a{\the\parskip}\ifx\reserved@a\f@parskip
\aftergroup\parskip@update
\fi
\edef\reserved@a{\the\parfillskip}\ifx\reserved@a\f@parfillskip
\aftergroup\parfillskip@update
\fi
\endgroup
}
\newcommand*{\parindent@update}{%
\scr@defaultunits\parindent\scr@parindent
\begingroup
\let\reserved@b\endgroup
\edef\reserved@a{\the\parindent}\ifx\reserved@a\f@parindent\else
\def\reserved@b{\endgroup\edef\f@parindent{\the\parindent}}%
\fi
\reserved@b
}
\newcommand*{\parskip@update}{%
\scr@defaultunits\parskip\scr@parskip
\begingroup
\let\reserved@b\endgroup
\edef\reserved@a{\the\parskip}\ifx\reserved@a\f@parskip\else
\def\reserved@b{\endgroup\edef\f@parskip{\the\parskip}}%
\fi
\reserved@b
}
\newcommand*{\parfillskip@update}{%
\scr@defaultunits\parfillskip\scr@parfillskip
\begingroup
\let\reserved@b\endgroup
\edef\reserved@a{\the\parfillskip}\ifx\reserved@a\f@parfillskip\else
\def\reserved@b{\endgroup\edef\f@parfillskip{\the\parfillskip}}%
\fi
\reserved@b
}
\setlength{\lineskip}{\p@}
\setlength{\normallineskip}{\p@}
\IfLTXAtLeastTF{2021/05/01}{%
\AddToHook{selectfont}{\par@update}%
\AfterPackage{everysel}{%
\IfPackageAtLeastTF{everysel}{2021/01/18}{}{%
\ClassError{\KOMAClassName}{%
incompatible `everysel' detected
}{%
You are using an old version of `everysel' in combination with a
LaTeX\MessageBreak
version >= 2021/06/01 and KOMA-Script >= 3.33. This combination
is\MessageBreak
not supported.\MessageBreak
You could switch back to an older LaTeX using package
`latexrelease'.\MessageBreak
But I recommend to update `everysel'%
}%
}%
}%
\AfterPackage{tracefnt}{%
\IfPackageAtLeastTF{tracefnt}{2020/12/22}{}{%
\ClassError{\KOMAClassName}{%
incompatible `tracefnt' detected
}{%
`tracefnt' is a LaTeX base package and therefore should be updated
together\MessageBreak
with LaTeX kernel. So this should never happen! Please check
your\MessageBreak
LaTeX installation%
}%
}%
}%
}{%
\newcommand*{\scr@selectfont}{}
\expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname
\BeforePackage{everysel}{%
\AtBeginDocument{%
\expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont\else
\ClassWarningNoLine{\KOMAClassName}{%
discard change of \string\selectfont}%
\fi
\expandafter\let\csname selectfont \endcsname\scr@selectfont
}%
}%
\AfterPackage{everysel}{%
\scr@ifundefinedorrelax{@EverySelectfont@Init}{%
\expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont
\ClassWarningNoLine{\KOMAClassName}{%
\string\selectfont\space already changed}%
\else
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}%
\expandafter\let\expandafter\scr@new@selectfont
\csname selectfont \endcsname
\fi
}{%
\g@addto@macro\@EverySelectfont@Init{%
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}%
\expandafter\let\expandafter\scr@new@selectfont
\csname selectfont \endcsname
}%
}%
}%
\AfterPackage{tracefnt}{%
\expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}%
\expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname
}%
\expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}
\newcommand*{\scr@new@selectfont}{}
\expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname
}
\newcommand*{\scr@defaultunits}[2]{%
\begingroup
\edef\@tempa{#2}%
\expandafter\scr@@defaultunits\expandafter#1\@tempa plusplus\@nnil
\edef\@tempa{\noexpand\endgroup\noexpand#1\the\glueexpr #1\relax}%
\@tempa
}
\newcommand*{\scr@@defaultunits}{}
\def\scr@@defaultunits#1#2plus#3plus#4\@nnil{%
\ifx\relax#3\relax
\scr@@@defaultunits#1{}#2minusminus\@nnil
\else
\scr@@@defaultunits#1{#2}#3minusminus\@nnil
\fi
}
\newcommand*{\scr@@@defaultunits}{}
\def\scr@@@defaultunits#1#2#3minus#4minus#5\@nnil{%
\ifx\relax#2\relax
\@defaultunits\@tempskipa#3pt\relax\@nnil
#1\@tempskipa
\else
\@defaultunits\@tempskipa\z@\@plus#3pt\relax\@nnil
#1\@tempskipa
\@defaultunits\@tempskipa#2pt\relax\@nnil
\advance#1\@tempskipa
\fi
\ifx\relax#4\relax\else
\@defaultunits\@tempskipa\z@\@minus #4pt\relax\@nnil
\advance#1\@tempskipa
\fi
}
\newcommand*{\@list@extra}{%
\ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi
}
\newcommand*{\add@extra@listi}[1]{%
\expandafter\let\csname #1@listi\endcsname=\@listi
\def\@listi{\csname #1@listi\endcsname\@list@extra}%
}
\AfterPackage{amsthm}{%
\RequirePackage{xpatch}%
\xpatchcmd{\deferred@thm@head}{\addvspace{-\parskip}}{}{%
\ClassInfoNoLine{\KOMAClassName}{%
amsthm's \string\deferred@thm@head\space patched}%
}{%
\ClassWarningNoLine{\KOMAClassName}{%
cannot patch amsthm's \string\deferred@thm@head.\MessageBreak
This could result in wrong spacing before theorem\MessageBreak
environments defined by package `amsthm'%
}%
}%
}
\l@addto@macro{\@listi}{\@list@extra}%
\let\@listI=\@listi
\l@addto@macro{\@listii}{\@list@extra}%
\l@addto@macro{\@listiii}{\@list@extra}%
\l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
\l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
\@lowpenalty = 51
\@medpenalty =151
\@highpenalty =301
%%% From File: $Id: scrkernel-pagestyles.dtx 4058 2023-06-16 08:32:27Z kohm $
%%% (run: body)
\newcommand*{\set@tempdima@hw}{%
\setlength{\@tempdima}{\textwidth}%
\if@mincl
\addtolength{\@tempdima}{\marginparsep}%
\addtolength{\@tempdima}{\marginparwidth}%
\fi
}
\newcommand*{\pnumfont}{\normalfont\normalcolor}
\newcommand*{\headfont}{\normalfont\normalcolor\slshape}
\newcommand*{\footfont}{}
\newcommand*{\scr@fnt@pagenumber}{\pnumfont}
\aliaskomafont{pagination}{pagenumber}
\newcommand*{\scr@fnt@pageheadfoot}{\headfont}
\aliaskomafont{pagehead}{pageheadfoot}
\newcommand*{\scr@fnt@wrn@pagehead}[1]{%
`pagehead' is only an alias of `pageheadfoot'.\MessageBreak
Font of page foot will also be changed%
}
\newcommand*{\scr@fnt@pagefoot}{\footfont}
\newcommand*{%
\pagemark
}{%
{\usekomafont{pagenumber}{%
\pagename\nobreakspace
\thepage}}}
\renewcommand*{\ps@plain}{%
\renewcommand*{\@oddhead}{%
\vbox{\vbox{\hsize=\textwidth\hbox to\textwidth{%
\parbox[b]{\textwidth}{\strut
\ifnum\@pageat>-1
\ifnum\@pageat<3
\ifcase\@pageat\raggedright\or\centering\or\raggedleft\fi
\pagemark
\else
\hfill
\fi
\else
\hfill
\fi
}%
}%
\if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi
}%
}%
}%
\let\@evenhead\@oddhead%
\renewcommand*{\@oddfoot}{%
\parbox[t]{\textwidth}{%
\if@fsl
{%
\raggedright%
\vskip-\baselineskip\vskip.4pt
\hrulefill\\
}%
\fi
\ifnum\@pageat>2
\ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
\strut\pagemark
\else
\hfill
\fi
}%
}%
\let\@evenfoot\@oddfoot
}
\newcommand*{\ps@headings}{\let\@mkboth\markboth
\renewcommand*{\@oddhead}{%
\vbox{%
\vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\noindent
\usekomavar{nexthead}}}%
\if@hsl\kern1pt\rule{\textwidth}{.4pt}\fi%
}%
}%
\let\@evenhead\@oddhead
\renewcommand*{\@oddfoot}{%
\parbox[t]{\textwidth}{%
\if@fsl
{%
\raggedright%
\vskip-\baselineskip\vskip.4pt
\hrulefill\\
}%
\fi
\vbox{\hsize=\textwidth\hbox to\textwidth{\headfont\footfont\noindent
\usekomavar{nextfoot}}}%
}%
}%
\let\@evenfoot\@oddfoot
}
\newcommand*{\ps@myheadings}{%
\ps@headings
\let\@mkboth\@gobbletwo
}
\pagestyle{plain}
\pagenumbering{arabic}
%%% From File: $Id: scrkernel-floats.dtx 4054 2023-05-10 14:35:36Z kohm $
%%% (run: body)
%%% From File: $Id: scrkernel-footnotes.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\renewcommand*\footnoterule{%
\normalsize\ftn@rule@test@values
\kern-\dimexpr 2.6\p@+\ftn@rule@height\relax
\ifx\@textbottom\relax\else\vskip \z@ \@plus.05fil\fi
{\usekomafont{footnoterule}{%
\hrule \@height\ftn@rule@height \@width\ftn@rule@width}}%
\kern 2.6\p@}
\newcommand*{\ftn@rule@test@values}{%
\ifdim\ftn@rule@height <\z@
\ClassWarning{\KOMAClassName}{%
You might get into trouble, because the\MessageBreak
height of the footnote rule has a value\MessageBreak
less than 0%
}%
\else
\ifdim\ftn@rule@height >\dimexpr\skip\footins -2.6\p@\relax
\ClassWarning{\KOMAClassName}{%
You might get into trouble, because the\MessageBreak
height of the footnote rule has a value\MessageBreak
greater than \the\dimexpr\skip\footins -2.6\p@\relax
}%
\fi
\fi
\ifdim\ftn@rule@width <\z@
\ClassWarning{\KOMAClassName}{%
You might get into trouble, because the width\MessageBreak
or length of the footnote rule has a value\MessageBreak
less than 0pt%
}%
\else
\ifdim\ftn@rule@width >\columnwidth
\ClassWarning{\KOMAClassName}{%
You might get into trouble, because the width\MessageBreak
or length of the footnote rule has a value\MessageBreak
greater than \string\columnwidth
}%
\fi
\fi
}
\newkomafont{footnoterule}{}
\newcommand*{\ftn@rule@width}{.4\columnwidth}
\newcommand*{\ftn@rule@height}{.4\p@}
\newcommand*{\setfootnoterule}[2][]{%
\IfArgIsEmpty{#1}{}{%
\renewcommand*{\ftn@rule@height}{#1}%
}%
\IfArgIsEmpty{#2}{}{%
\renewcommand*{\ftn@rule@width}{#2}%
}%
\ftn@rule@test@values
}
\newcommand\deffootnote[4][]{%
\expandafter\ifnum\scr@v@is@ge{3.22}\relax
\long\def\@makefntext##1{%
\ExecuteDoHook{footnote/text/begin}%
\raggedfootnote
\leftskip #2
\l@addto@macro\@trivlist{%
\ifnum\@listdepth=\@ne\advance\leftmargin #2\relax\fi
}%
\parindent #3\noindent
\IfArgIsEmpty{#1}{}{%
\hskip \dimexpr #1-#2\relax
}%
\ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
\ExecuteDoHook{footnote/text/end}%
}%
\else
\ClassInfo{\KOMAClassName}{%
Using old \string\@makefntext\space due to compatibility
level\MessageBreak
less than 3.22}%
\long\def\@makefntext##1{%
\setlength{\@tempdimc}{#3}%
\def\@tempa{#1}\ifx\@tempa\@empty
\@setpar{\@@par
\@tempdima = \hsize
\addtolength{\@tempdima}{-#2}%
\parshape \@ne #2 \@tempdima}%
\else
\addtolength{\@tempdimc}{#2}%
\addtolength{\@tempdimc}{-#1}%
\@setpar{\@@par
\@tempdima = \hsize
\addtolength{\@tempdima}{-#1}%
\@tempdimb = \hsize
\addtolength{\@tempdimb}{-#2}%
\parshape \tw@ #1 \@tempdima #2 \@tempdimb
}%
\fi
\par
\parindent\@tempdimc\noindent
\ftn@font\hbox to \z@{\hss\@@makefnmark}##1%
}%
\fi
\def\@@makefnmark{\hbox{\ftnm@font{#4}}}%
}
\newcommand*{\raggedfootnote}{}
\newcommand*{\ftn@font}{\normalfont}
\newcommand*{\scr@fnt@footnote}{\ftn@font}
\newcommand*{\ftnm@font}{}
\aliaskomafont{footnotenumber}{footnotelabel}
\newcommand*{\scr@fnt@footnotelabel}{\ftnm@font}
\aliaskomafont{footnotetext}{footnote}
\newcommand*\deffootnotemark[1]{%
\def\@makefnmark{\hbox{\ftntm@font{#1}}}%
}
\newcommand*{\ftntm@font}{}
\newcommand*{\scr@fnt@footnotereference}{\ftntm@font}
\aliaskomafont{footnoteref}{footnotereference}
\aliaskomafont{footnotemark}{footnotereference}
\newcommand*{\FN@mf@check}{%
\ifdim\lastkern=\multiplefootnotemarker\relax
\edef\@x@sf{\the\spacefactor}%
\unkern\multiplefootnoteseparator
\spacefactor\@x@sf\relax
\fi
}
\newcommand*{\scr@mf@prepare}{%
\kern-\multiplefootnotemarker
\kern\multiplefootnotemarker\relax
}
\@ifundefined{FN@mf@prepare}{\let\FN@mf@prepare\relax}{}
\newcommand{\scr@saved@footnotetext}{}
\let\scr@saved@footnotetext\@footnotetext
\renewcommand{\@footnotetext}[1]{%
\scr@saved@footnotetext{#1}%
\csname FN@mf@prepare\endcsname
}
\BeforePackage{footmisc}{%
\ifx\@footnotemark\scr@footnotemark
\let\@footnotemark\scr@saved@footnotemark
\fi
\let\@footnotetext\scr@saved@footnotetext
}
\BeforePackage{setspace}{%
\let\@footnotetext\scr@saved@footnotetext
}
\AfterPackage{setspace}{%
\let\scr@saved@footnotetext\@footnotetext
\renewcommand{\@footnotetext}[1]{%
\scr@saved@footnotetext{#1}%
\csname FN@mf@prepare\endcsname
}%
}
\newcommand*{\multiplefootnoteseparator}{%
\begingroup\let\thefootnotemark\multfootsep\@makefnmark\endgroup
}
\newcommand*{\multfootsep}{,}
\newcommand*{\multiplefootnotemarker}{3sp}
\newcommand*{\thefootnotemark}{\@thefnmark}
\deffootnote[1em]{1.5em}{1em}{\textsuperscript{\thefootnotemark}}
\deffootnotemark{\textsuperscript{\thefootnotemark}}
\providecommand*{\footref}[1]{%
\begingroup
\unrestored@protected@xdef\@thefnmark{\ref{#1}}%
\endgroup
\@footnotemark
}
%%% From File: $Id: scrkernel-listsandtabulars.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\setlength{\leftmargini}{2.5em}
\setlength{\leftmarginii}{2.2em}
\setlength{\leftmarginiii}{1.87em}
\setlength{\leftmarginiv}{1.7em}
\setlength{\leftmarginv}{1em}
\setlength{\leftmarginvi}{1em}
\setlength{\leftmargin}{\leftmargini}
\setlength{\labelsep}{.5em}
\setlength{\labelwidth}{\leftmargini}
\addtolength{\labelwidth}{-\labelsep}
\@beginparpenalty=-\@lowpenalty
\@endparpenalty =-\@lowpenalty
\@itempenalty =-\@lowpenalty
\renewcommand*\theenumi{\@arabic\c@enumi}
\renewcommand*\theenumii{\@alph\c@enumii}
\renewcommand*\theenumiii{\@roman\c@enumiii}
\renewcommand*\theenumiv{\@Alph\c@enumiv}
\newcommand*\labelenumi{\theenumi.}
\newcommand*\labelenumii{\theenumii)}
\newcommand*\labelenumiii{\theenumiii.}
\newcommand*\labelenumiv{\theenumiv.}
\renewcommand*\p@enumii{\theenumi}
\renewcommand*\p@enumiii{\p@enumii(\theenumii)}
\renewcommand*\p@enumiv{\p@enumiii\theenumiii}
\newcommand*\labelitemi{\usekomafont{labelitemi}{\textbullet}}
\newcommand*\labelitemii{\usekomafont{labelitemii}{\textendash}}
\newcommand*\labelitemiii{\usekomafont{labelitemiii}{\textasteriskcentered}}
\newcommand*\labelitemiv{\usekomafont{labelitemiv}{\textperiodcentered}}
\newenvironment{description}{%
\list{}{\labelwidth\z@ \itemindent-\leftmargin
\let\makelabel\descriptionlabel}%
}{%
\endlist
}
\newcommand*{\descriptionlabel}[1]{%
\hspace{\labelsep}\usekomafont{descriptionlabel}{#1}%
}
\newenvironment{labeling}[2][]{%
\def\sc@septext{#1}%
\list{}{\settowidth{\labelwidth}{{%
\usekomafont{labelinglabel}{#2%
\usekomafont{labelingseparator}{\sc@septext}}%
}}%
\leftmargin\labelwidth \advance\leftmargin by \labelsep
\let\makelabel\labelinglabel
}%
}{%
\endlist
}
\newcommand\labelinglabel[1]{%
\usekomafont{labelinglabel}{#1\hfil
\usekomafont{labelingseparator}{\sc@septext}}%
}
\newenvironment{verse}{%
\let\\=\@centercr
\list{}{\itemsep=\z@
\itemindent=-1.5em
\listparindent=\itemindent
\rightmargin=\leftmargin
\advance\leftmargin by1.5em
}%
\item\relax
}{%
\endlist
}
\newenvironment{quotation}{%
\list{}{\listparindent 1em%
\itemindent \listparindent
\rightmargin \leftmargin
\parsep \z@ \@plus\p@
}%
\item\relax
}{%
\endlist
}
\newenvironment{quote}{%
\list{}{\rightmargin\leftmargin}%
\item\relax
}{%
\endlist
}
\newenvironment{addmargin}{%
\@tempswafalse\@addmargin
}{%
\advance\@listdepth\@ne
\endlist
}
\newenvironment{addmargin*}{%
\@tempswafalse
\if@twoside\is@thispageodd[]\ifthispagewasodd\else\@tempswatrue\fi
\edef\scr@addmargin@startpage{\csname tpo@\scr@tpo\endcsname}\fi
\@addmargin
}{%
\if@twoside
\unskip\nobreak\Ifthispageodd{}{}%
\expandafter\ifx\csname tpo@\scr@tpo\endcsname\scr@addmargin@startpage\else
\ClassWarning{\KOMAClassName}{%
page break inside `addmargin*' environment.\MessageBreak
A `addmargin*' environment starting on page
\scr@addmargin@startpage\MessageBreak
ends on page \csname tpo@\scr@tpo\endcsname.\MessageBreak
This will result in potential wrong margins on\MessageBreak
every other page.\MessageBreak
So maybe you should change the `addmargin*'\MessageBreak
environment, that ends%
}%
\fi
\fi
\advance\@listdepth\@ne
\endlist
}
\newcommand*{\@addmargin}[2][\@tempa]{%
\list{}{%
\if@tempswa
\def\@tempa{\leftmargin}%
\setlength{\leftmargin}{#2}%
\setlength{\rightmargin}{#1}%
\else
\def\@tempa{\rightmargin}%
\setlength{\rightmargin}{#2}%
\setlength{\leftmargin}{#1}%
\fi
\setlength{\listparindent}{\parindent}%
\setlength{\itemsep}{\parskip}%
\setlength{\itemindent}{\z@}%
\setlength{\@tempskipa}{\topsep}%
\setlength{\topsep}{\z@}%
\setlength{\parsep}{\parskip}%
\setlength{\@tempskipb}{\partopsep}%
\setlength{\partopsep}{\z@}%
\let\makelabel\@gobble
\setlength{\labelwidth}{\z@}%
\advance\@listdepth\m@ne
}%
\expandafter\ifnum\scr@v@is@ge{3.22}%
\setlength{\topsep}{\@tempskipa}%
\setlength{\partopsep}{\@tempskipb}%
\fi
\item\is@thispageodd@setlabel\nobreak\ignorespaces
}
\newcommand*\descfont{\maybesffamily\bfseries}
\newcommand*{\scr@fnt@descriptionlabel}{\descfont}
\newcommand*{\labelitemfont}{\normalfont}
\newcommand*\scr@fnt@itemizelabel{\labelitemfont}
\newkomafont{labelitemi}{\usekomafont{itemizelabel}}
\newkomafont{labelitemii}{\usekomafont{itemizelabel}\bfseries}
\newkomafont{labelitemiii}{\usekomafont{itemizelabel}}
\newkomafont{labelitemiv}{\usekomafont{itemizelabel}}
\newkomafont{labelinglabel}{}
\newkomafont{labelingseparator}{}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
%%% From File: $Id: scrkernel-notepaper.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\newkomavar{firsthead}
\setkomavar{firsthead}{%
\parbox[b]{\useplength{firstheadwidth}}%
{\centering\usekomafont{fromaddress}{%
\Ifkomavarempty{fromname}{}{%
{\usekomafont{fromname}%
{\ignorespaces\usekomavar{fromname}}\\[-8pt]}
{\usekomafont{fromrule}{\rule{\useplength{firstheadwidth}}{.4pt}}}\\
}%
\Ifkomavarempty{fromaddress}{}{%
\ignorespaces\usekomavar{fromaddress}%
}%
}%
}%
}
\newcommand*{\scr@firsthead@postsetvar}{%
\KOMAExecuteOptions[%
\KOMAClassFileName
]{fromalign=no}%
}
\newcommand*{\@gen@firsthead}{%
\ifcase\@alignfrom
\setkomavar{firsthead}{%
\parbox[b]{\textwidth}{\raggedright
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\textwidth}%
\if@logo
\settowidth{\@tempdimb}{\usekomavar{fromlogo}}%
\addtolength{\@tempdima}{-\@tempdimb}%
\fi
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
}%
\\
}%
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
\if@mobilephone
\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
\fi%
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\textwidth}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
\\
}%
}%
\if@logo
\llap{\usekomavar{fromlogo}}%
\fi
}%
\renewcommand*{\@alignfrom}{0}%
\or
\setkomavar{firsthead}{%
\parbox[b]{\textwidth}{\centering
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\textwidth}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
}%
\\
}%
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
\if@mobilephone
\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
\fi%
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\textwidth}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
\\
}%
}%
}%
\renewcommand*{\@alignfrom}{1}%
\or
\setkomavar{firsthead}{%
\if@logo
\rlap{\usekomavar{fromlogo}}%
\fi
\parbox[b]{\textwidth}{\raggedleft
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\textwidth}%
\if@logo
\settowidth{\@tempdimb}{\usekomavar{fromlogo}}%
\addtolength{\@tempdima}{-\@tempdimb}%
\fi
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
}%
\\
}%
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
\if@mobilephone
\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
\fi%
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\textwidth}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
\\
}%
}%
}%
\renewcommand*{\@alignfrom}{2}%
\fi
}
\newcommand*{\@firsthead}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\@firsthead.\MessageBreak
\string\usekomavar{firsthead} should be used\MessageBreak
instead of \string\@firsthead
}%
\usekomavar{firsthead}%
}
\newcommand{\firsthead}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\firsthead.\MessageBreak
You should use \string\setkomavar{firsthead}\MessageBreak
instead of \string\firsthead
}
\setkomavar{firsthead}%
}
\newkomafont{foldmark}{}
\newkomafont{fromname}{}
\newkomafont{fromaddress}{}
\newkomafont{fromrule}{}
\newkomafont{backaddress}{\maybesffamily}
\newkomafont{specialmail}{}
\newkomafont{priority}{\fontsize{10pt}{10pt}\sffamily\bfseries}
\newkomafont{prioritykey}{\fontsize{24.88pt}{24.88pt}\selectfont}
\newkomafont{PPlogo}{\sffamily\bfseries}
\newkomafont{PPdata}{\sffamily}
\newkomafont{addressee}{}
\newkomafont{toname}{}
\newkomafont{toaddress}{}
\newkomafont{refname}{\maybesffamily\scriptsize}
\expandafter\ifnum\scr@v@is@eq{2.97}%
\newkomafont{refvalue}{\sffamily\scriptsize}
\else
\newkomafont{refvalue}{}
\fi
\newkomafont{placeanddate}{}
\newkomafont{lettertitle}{\normalcolor\maybesffamily\bfseries}
\aliaskomafont{title}{lettertitle}%
\newkomafont{lettersubject}{\normalfont\bfseries}
\aliaskomafont{subject}{lettersubject}%
\newplength{foldmarkhpos}
\newplength{foldmarkvpos}
\newplength{tfoldmarkvpos}
\newplength{mfoldmarkvpos}
\newplength{bfoldmarkvpos}
\newplength{lfoldmarkhpos}
\newplength{pfoldmarklength}
\newplength{tfoldmarklength}
\newplength{mfoldmarklength}
\newplength{bfoldmarklength}
\newplength{lfoldmarklength}
\newplength{foldmarkthickness}
\setplength{foldmarkthickness}{.2pt}
\newplength{toaddrvpos}
\newplength{backaddrheight}
\newplength{toaddrhpos}
\newplength{specialmailindent}
\newplength{specialmailrightindent}
\newplength{toaddrindent}
\newplength{PPheadheight}
\newplength{PPheadwidth}
\newplength{PPdatamatrixvskip}
\newplength{toaddrwidth}
\newplength{toaddrheight}
\newplength{locvpos}
\newplength{locwidth}
\newplength{lochpos}
\newplength{locheight}
\newplength{refvpos}
\newplength{refwidth}
\newplength{refhpos}
\newplength{refaftervskip}
\newplength{sigbeforevskip}
\newplength{sigindent}
\newplength{firstfootvpos}
\newplength{firstfootwidth}
\newplength{firstfoothpos}
\setplength{firstfoothpos}{\maxdimen}
\newplength{firstheadvpos}
\newplength{firstheadwidth}
\newplength{firstheadhpos}
\setplength{firstheadhpos}{\maxdimen}
\newplength{fromrulewidth}
\setplength{fromrulewidth}{0pt}
\newplength{fromrulethickness}
\setplength{fromrulethickness}{.4pt}
\newkomavar{firstfoot}
\newcommand*{\@firstfoot}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\@firstfoot.\MessageBreak
\string\usekomavar{firstfoot} should be used\MessageBreak
instead of \string\@firstfoot
}%
\usekomavar{firstfoot}%
}
\newcommand{\firstfoot}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\firstfoot.\MessageBreak
You should use \string\setkomavar{firstfoot}\MessageBreak
instead of \string\firstfoot
}
\setkomavar{firstfoot}%
}
\newcommand*{\move@topt}{%
\null\vskip -1in\vskip -\topmargin%
\vskip -\headheight\vskip -\headsep%
\vskip -\topskip%
\ignorespaces%
}
\newcommand*{\move@frompt}{%
\vskip 1in\vskip \topmargin%
\vskip \headheight\vskip \headsep%
\vskip \topskip%
\vskip -\baselineskip%
\ignorespaces%
}
\newcommand*{\move@topl}{%
\null\hskip -1in%
\ifodd\value{page}\hskip -\oddsidemargin\else\hskip -\evensidemargin\fi
\ignorespaces%
}
\newcommand*{\move@frompl}{%
\hskip 1in%
\ifodd\value{page}\hskip \oddsidemargin\else\hskip \evensidemargin\fi%
\ignorespaces%
}
\newcommand{\vb@t@z}[1]{{%
\setbox\z@\vbox to\z@{\color@begingroup #1\color@endgroup\vss}%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\setlength{\baselineskip}{\z@}%
\setlength{\@tempdima}{\ht0}\addtolength{\@tempdima}{\dp0}%
\box\z@\vskip-\@tempdima%
}%
}
\newcommand*{\@foldmark}[2]{%
\vb@t@z{\setlength{\@tempdima}{#1}%
\addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}%
\vskip \@tempdima
\rlap{\move@topl\hskip\useplength{foldmarkhpos}%
\usekomafont{foldmark}{%
\rule{#2}{\useplength{foldmarkthickness}}}}}%
\ignorespaces
}
\newcommand*{\@hfoldmark}[1]{%
\begingroup
\@expandtwoargs\in@{#1}{\@usefolds}%
\ifin@
\lowercase{%
\edef\@tempa{%
\noexpand\ifdim \noexpand\useplength{#1foldmarkvpos}=\noexpand\z@
\noexpand\else
\noexpand\@foldmark{%
\noexpand\useplength{#1foldmarkvpos}%
}{%
\noexpand\useplength{#1foldmarklength}%
}%
\noexpand\fi
}%
}%
\@tempa
\fi
\endgroup
}
\newcommand*{\@vfoldmark}[1]{%
\begingroup
\ifdim \useplength{lfoldmarkhpos}=\z@\else
\@expandtwoargs\in@{#1}{\@usefolds}%
\ifin@
\vb@t@z{%
\ifdim \useplength{foldmarkvpos}<\z@
\nobreak\vskip \paperheight\nobreak
\fi
\vskip \useplength{foldmarkvpos}%
\vskip \useplength{foldmarkthickness}%
\rlap{\move@topl
\setlength{\@tempdima}{\useplength{lfoldmarkhpos}}%
\addtolengthplength[-.5]{\@tempdima}{foldmarkthickness}%
\hskip\@tempdima
\usekomafont{foldmark}{%
\rule{\useplength{foldmarkthickness}}%
{\useplength{lfoldmarklength}}%
}%
}%
}%
\ignorespaces
\fi
\fi
\endgroup
}
\newcommand*{\@foldmarks}{%
\if@fold%
\typeout{Foldmarks: yes}%
\move@topt
\ifdim \useplength{pfoldmarklength}=\z@
\setplength{pfoldmarklength}{4mm}%
\fi
\ifdim \useplength{tfoldmarklength}=\z@
\setplength{tfoldmarklength}{2mm}%
\fi
\ifdim \useplength{mfoldmarklength}=\z@
\setplength{mfoldmarklength}{2mm}%
\fi
\ifdim \useplength{bfoldmarklength}=\z@
\setplength{bfoldmarklength}{2mm}%
\fi
\ifdim \useplength{lfoldmarklength}=\z@
\setplength{lfoldmarklength}{4mm}%
\fi
\begingroup
\@expandtwoargs\in@{P}{\@usefolds}%
\ifin@
\@foldmark{.5\paperheight}{\useplength{pfoldmarklength}}%
\fi
\endgroup
\@hfoldmark{T}%
\@hfoldmark{M}%
\@hfoldmark{B}%
\@vfoldmark{L}%
\move@frompt
\else
\typeout{Foldmarks: no}%
\fi%
}
\newif\if@savevbox@warning\@savevbox@warningtrue
\newcommand{\@savevbox}[6][]{%
\begingroup%
\vbox to #2{#1#3}%
\if@savevbox@warning\@savevbox@warningfalse%
\setbox\z@\vbox{\color@begingroup #3\color@endgroup}%
\setlength{\@tempdima}{#2}%
\setlength{\@tempdimb}{\ht0}\addtolength{\@tempdimb}{\dp0}%
\ifdim \@tempdimb>\@tempdima%
\addtolength{\@tempdimb}{-\@tempdima}%
\ClassWarning{scrlttr2}{%
#4 is \the\@tempdimb\space too high.\MessageBreak
You have to change `\string#5'\MessageBreak
or you have to define a smaller\MessageBreak
#4 using \string#6.\MessageBreak
Because of this too high #4\MessageBreak
you've got an overfull \string\vbox\space message%
}%
\fi%
\fi%
\endgroup%
}
\newcommand*{\@firstheadfootfield}{%
\if@firsthead
\typeout{Head of first page}%
\move@topt\vskip\useplength{firstheadvpos}%
\vb@t@z{%
\rlap{\move@topl
\ifdim\useplength{firstheadhpos}<\paperwidth
\ifdim \useplength{firstheadhpos}>-\paperwidth
\ifdim \useplength{firstheadhpos}<\z@
\setlength\@tempskipa{\paperwidth}%
\addtolengthplength{\@tempskipa}{firstheadhpos}%
\addtolengthplength[-]{\@tempskipa}{firstheadwidth}%
\else
\setlength{\@tempskipa}{\useplength{firstheadhpos}}%
\fi
\else
\setlength\@tempskipa{\oddsidemargin}%
\addtolength\@tempskipa{1in}%
\fi
\else
\setlength\@tempskipa{.5\paperwidth}%
\addtolengthplength[-.5]{\@tempskipa}{firstheadwidth}%
\fi
\hskip\@tempskipa
\vbox{\hsize\useplength{firstheadwidth}%
\setlength{\@tempskipa}{\useplength{toaddrvpos}}%
\addtolengthplength[-1]{\@tempskipa}{firstheadvpos}%
\addtolength{\@tempskipa}{-\baselineskip}%
\setlength{\textwidth}{\useplength{firstheadwidth}}%
\setlength{\parfillskip}{\z@ \@plus 1fil}%
\@savevbox{\@tempskipa}{\noindent\usekomavar{firsthead}%
\vskip \z@ \@plus .00001fil}%
{head of first page}{firstheadvpos}{\setkomavar}%
}%
}%
}%
\vskip-\useplength{firstheadvpos}\move@frompt
\else
\typeout{No head at first page}%
\fi
\move@topt
\if@firstfoot
\typeout{Foot of first page}%
\vb@t@z{%
\rlap{\move@topl
\ifdim\useplength{firstfoothpos}<\paperwidth
\ifdim \useplength{firstfoothpos}>-\paperwidth
\ifdim \useplength{firstfoothpos}<\z@
\setlength\@tempskipa{\paperwidth}%
\addtolengthplength{\@tempskipa}{firstfoothpos}%
\addtolengthplength[-]{\@tempskipa}{firstfootwidth}%
\else
\setlength{\@tempskipa}{\useplength{firstfoothpos}}%
\fi
\else
\setlength\@tempskipa{\oddsidemargin}%
\addtolength\@tempskipa{1in}%
\fi
\else
\setlength\@tempskipa{.5\paperwidth}%
\addtolengthplength[-.5]{\@tempskipa}{firstfootwidth}%
\fi
\hskip\@tempskipa
\vbox{\hsize\useplength{firstfootwidth}%
\vskip\useplength{firstfootvpos}%
\setlength{\textwidth}{\useplength{firstfootwidth}}%
\setlength{\parfillskip}{\z@ \@plus 1fil}%
\vbox{\hsize\useplength{firstfootwidth}\noindent
\usekomavar{firstfoot}}%
}%
}%
}%
\else
\typeout{No foot at first page}%
\fi
\move@frompt%
{%
\setlength{\@tempdima}{1in}\addtolength{\@tempdima}{\topmargin}%
\addtolength{\@tempdima}{\headheight}%
\addtolength{\@tempdima}{\headsep}%
\addtolength{\@tempdima}{\textheight}%
\addtolength{\@tempdima}{\footskip}%
\if@firstfoot
\addtolengthplength[-1]{\@tempdima}{firstfootvpos}%
\else
\addtolength{\@tempdima}{-\paperheight}%
\fi
\ifdim\@tempdima>\z@\enlargethispage{-\@tempdima}%
\else\if@enlargefp\enlargethispage{-\@tempdima}\fi\fi
}%
}
\newcommand*{\@addrfield}{%
\ifcase \ifnum\@afieldmode=5 \@ne\else\@afieldmode\fi\relax
\typeout{Address: No}%
\or
\begingroup%
\if@baddr
\Ifkomavarempty{backaddress}{%
\let\@tempa\@empty\let\@tempb\@empty
}{%
\def\@tempa{backaddress}\def\@tempb{,\space}%
}%
\else
\let\@tempa\@empty\let\@tempb\@empty
\fi
\ifcase \ltr@priority
\Ifkomavarempty{specialmail}{}{%
\edef\@tempa{\@tempa\@tempb specialmail}\def\@tempb{,\space}%
}%
\or
\edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}%
\or
\edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
\fi
\typeout{Address (\@tempa\@tempb addressee)}%
\endgroup%
\move@topt\vskip\useplength{toaddrvpos}%
\vb@t@z{{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\rlap{\move@topl
\setlengthtoplength{\@tempskipa}{toaddrhpos}%
\ifdim \@tempskipa<\z@
\addtolength{\@tempskipa}{\paperwidth}%
\addtolengthplength[-]{\@tempskipa}{toaddrwidth}%
\fi
\hskip\@tempskipa
\@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}%
\@savevbox[\vss]{\useplength{backaddrheight}}{%
\hsize\useplength{toaddrwidth}%
\if@baddr
\Ifkomavarempty{backaddress}{}{{%
\noindent%
\backaddr@format{\scriptsize
{%
\def\\{\usekomavar{backaddressseparator}\@ogobble}%
\usekomafont{backaddress}%
{\usekomavar{backaddress}}%
}}}}%
\fi
}{backaddress}{backaddrheight}{\setkomavar}%
\ifcase \ltr@priority
\or
\setkomavar{specialmail}{%
{\usekomafont{priority}{%
{\usekomafont{prioritykey}{B}}%
-ECONOMY}}%
}%
\or
\setkomavar{specialmail}{%
{\usekomafont{priority}{%
{\usekomafont{prioritykey}{A}}%
-PRIORITY}}%
}%
\fi
\Ifkomavarempty{specialmail}{}{%
\vbox{\hsize\useplength{toaddrwidth}%
\noindent\hspace*{\useplength{specialmailindent}}%
\specialmail@format{%
\usekomafont{specialmail}\usekomavar{specialmail}}%
\hspace*{\useplength{specialmailrightindent}}}%
}%
\ifnum\@afieldmode=\@ne\vfil\fi%
\noindent\hskip\useplength{toaddrindent}%
\setlength{\@tempdima}{\useplength{toaddrwidth}}%
\addtolengthplength[-2]{\@tempdima}{toaddrindent}%
\vbox{\hsize\@tempdima\raggedright
\usekomafont{addressee}{%
{\usekomafont{toname}{\usekomavar{toname}\\}}%
{\usekomafont{toaddress}{\usekomavar{toaddress}\endgraf}}}}%
\vfil\null\vskip-\baselineskip}%
{address field}{toaddrheight}%
{\begin{letter} or you\MessageBreak
have to define a smaller special purpose using\MessageBreak
\string\specialmail}%
}}}%
\vskip-\useplength{toaddrvpos}\move@frompt
\else
\begingroup%
\if@baddr
\let\@tempa\@empty\let\@tempb\@empty
\ifcase \@afieldmode\relax\or\or
\def\@tempa{PP-mode}\def\@tempb{,\space}%
\or
\def\@tempa{backgroundimage-mode}\def\@tempb{,\space}%
\or
\def\@tempa{image-mode}\def\@tempb{,\space}%
\fi
\Ifkomavarempty{backaddress}{}{%
\edef\@tempa{\@tempa\@tempb backaddress ignored}\def\@tempb{,\space}%
}%
\else
\let\@tempa\@empty\let\@tempb\@empty
\fi
\ifcase \ltr@priority
\Ifkomavarempty{specialmail}{}{%
\edef\@tempa{\@tempa\@tempb specialmail ignored}\def\@tempb{,\space}%
}%
\or
\edef\@tempa{\@tempa\@tempb B-Economy}\def\@tempb{,\space}%
\or
\edef\@tempa{\@tempa\@tempb A-Priority}\def\@tempb{,\space}%
\fi
\typeout{Address (\@tempa\@tempb addressee)}%
\endgroup%
\move@topt\vskip\useplength{toaddrvpos}%
\vb@t@z{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\ifdim \useplength{toaddrindent}=\z@
\setplength{toaddrindent}{8mm}%
\fi
\ifdim \useplength{PPheadheight}=\z@
\setplength{PPheadheight}{20.74pt}%
\fi
\ifdim \useplength{PPheadwidth}=\z@
\setplength{PPheadwidth}{42mm}%
\fi
\ifdim \useplength{PPdatamatrixvskip}=\z@
\setplength{PPdatamatrixvskip}{9mm}%
\fi
\rlap{\move@topl
\setlengthtoplength{\@tempskipa}{toaddrhpos}%
\ifdim \@tempskipa<\z@
\addtolength{\@tempskipa}{\paperwidth}%
\addtolengthplength[-]{\@tempskipa}{toaddrwidth}%
\fi
\hskip\@tempskipa
\@savevbox{\useplength{toaddrheight}}{\hsize\useplength{toaddrwidth}%
\ifnum\@afieldmode=\tw@
\vskip 2pt\relax
\hskip \useplength{toaddrindent}\relax
\fbox{%
\vbox to \dimexpr \useplength{PPheadheight}-2\fboxsep\relax{%
\setlength{\parindent}{0pt}%
\hsize \dimexpr \useplength{PPheadwidth}-2\fboxsep\relax
\sbox\@tempboxa{%
{\fontsize{20.74pt}{20.74pt}\selectfont
\usekomafont{PPlogo}{P.P.}}\hskip 2mm%
}%
\dp\@tempboxa\z@
\setlength{\@tempdima}{\hsize}%
\addtolength{\@tempdima}{-\wd\@tempboxa}%
\hbox{\box\@tempboxa
\vbox to \dimexpr
\useplength{PPheadheight}-2\fboxsep\relax{%
\vss\hsize\@tempdima
\raggedright
\fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}%
\usekomavar*{fromzipcode}\usekomavar{zipcodeseparator}%
\usekomavar{fromzipcode}\scr@endstrut\\
\usekomavar{place}\scr@endstrut
\hfill
}%
}%
\vss
}%
}%
\hskip 1mm
\mbox{%
\vbox to \useplength{PPheadheight}{%
\addtolengthplength[-]{\hsize}{PPheadwidth}%
\addtolength{\hsize}{-1mm}%
\addtolengthplength[-2]{\hsize}{toaddrindent}%
\setlength{\parindent}{0pt}%
\fontsize{8pt}{9pt}\selectfont\usekomafont{PPdata}%
\hfill\usekomavar{PPcode}
\vss
\ifcase \ltr@priority
\or
\usekomafont{priority}{%
{\usekomafont{prioritykey}{B}}%
-ECONOMY\hss\vskip-\dp\strutbox
}%
\or
\usekomafont{priority}{%
{\usekomafont{prioritykey}{A}}%
-PRIORITY\hss\vskip-\dp\strutbox
}%
\fi
\vss
}%
}%
\vskip 1mm
\vskip-\ht\strutbox
\noindent\hskip\useplength{toaddrindent}%
\hrulefill%
\hskip\useplength{toaddrindent}%
\vbox to\z@{\hsize\z@
\vskip \useplength{PPdatamatrixvskip}\relax
\llap{\usekomavar{PPdatamatrix}\hskip\useplength{toaddrindent}}%
\vss
}%
\else
\vskip 1mm
\noindent\expandafter\hskip\useplength{toaddrindent}%
\vbox to \useplength{PPheadheight}{%
\addtolengthplength[-2]{\hsize}{toaddrindent}%
\setlength{\parindent}{0pt}%
\usekomavar{addresseeimage}%
\vss
}%
\vskip 1mm
\vskip\dp\strutbox
\fi
\ifnum \@afieldmode=4 \else
\vfil%
\noindent\hskip\useplength{toaddrindent}%
\setlength{\@tempdima}{\useplength{toaddrwidth}}%
\addtolengthplength[-2]{\@tempdima}{toaddrindent}%
\vbox{\hsize\@tempdima
\Ifkomavarempty{PPdatamatrix}{}{%
\addtolength{\hsize}{-2mm}%
\settowidth\@tempdima{\usekomavar{PPdatamatrix}}%
\addtolength{\hsize}{-\@tempdima}%
}%
\raggedright
\usekomafont{addressee}{%
{\usekomafont{toname}{\usekomavar{toname}\\}}%
{\usekomafont{toaddress}{\usekomavar{toaddress}\endgraf}}}}%
\fi
\vss\null}%
{address field}{toaddrheight}%
{\string\begin{letter}}%
}}}%
\vskip-\useplength{toaddrvpos}\move@frompt
\fi
}
\newcommand*{\specialmail@format}[1]{}
\let\specialmail@format\underline
\newcommand*{\@ogobble}[1][]{}
\newcommand*{\@locfield}{%
\ifdim \useplength{locwidth}=\z@%
\setplength{locwidth}{\paperwidth}%
\ifdim \useplength{toaddrhpos}>\z@
\addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}%
\else
\addtoplength[2]{locwidth}{\useplength{toaddrhpos}}%
\fi
\addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}%
\if@bigloc%
\setplength[.66667]{locwidth}{\useplength{locwidth}}%
\else%
\setplength[.5]{locwidth}{\useplength{locwidth}}%
\fi%
\fi%
\ifcase\@alignfrom
\or
\if@logo
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
\fi
\or
\or
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
\or
\Ifkomavarempty{location}{\setkomavar{location}{\null}}{}%
\fi
\Ifkomavarempty{location}{%
\typeout{Location field: empty}%
}{%
\typeout{Location field: yes}%
\ifdim \useplength{lochpos}=\z@%
\setplength{lochpos}{\useplength{toaddrhpos}}%
\fi
\ifdim \useplength{locvpos}=\z@%
\setplength{locvpos}{\useplength{toaddrvpos}}%
\fi
\ifdim \useplength{locheight}=\z@%
\setplength{locheight}{\useplength{toaddrheight}}%
\fi
\move@topt\vskip\useplength{locvpos}%
\vb@t@z{\noindent\makebox[0pt][l]{%
\move@topl
\setlengthtoplength[-]{\@tempskipa}{lochpos}%
\ifdim \@tempskipa<\z@
\addtolength{\@tempskipa}{\paperwidth}%
\else
\addtolengthplength{\@tempskipa}{locwidth}%
\fi
\hskip\@tempskipa
\makebox[0pt][r]{%
\@savevbox{\useplength{locheight}}{%
\noindent\hsize\useplength{locwidth}%
\ifcase\@alignfrom
\or
\if@logo
\Ifkomavarempty{fromlogo}{\null}{%
{\raggedleft\noindent\usekomavar{fromlogo}\\
\vskip\parskip}\noindent}%
\fi
\or
\or
\if@logo
\Ifkomavarempty{fromlogo}{}{%
\raggedleft\usekomavar{fromlogo}\par}%
\fi
\raggedright
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\useplength{locwidth}}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}%
}%
\fi
}%
\\
}%
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
\if@mobilephone
\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
\fi%
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\useplength{locwidth}}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
\\
}%
\or
\raggedleft
\if@logo
\Ifkomavarempty{fromlogo}{}{\usekomavar{fromlogo}\par}%
\fi
{\usekomafont{fromname}\strut\ignorespaces
\usekomavar{fromname}%
{%
\ifnum\@rulefrom=1\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\useplength{locwidth}}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}%
}%
\fi
}%
\\
}%
{\usekomafont{fromaddress}\strut\ignorespaces
\usekomavar{fromaddress}%
\if@phone\\\usekomavar*{fromphone}\usekomavar{fromphone}\fi%
\if@mobilephone%
\\\usekomavar*{frommobilephone}\usekomavar{frommobilephone}%
\fi%
\if@fax\\\usekomavar*{fromfax}\usekomavar{fromfax}\fi%
\if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi%
\if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi%
\ifnum\@rulefrom=2\\[-.5\baselineskip]%
\usekomafont{fromrule}{%
\setlength{\@tempdima}{\useplength{fromrulewidth}}%
\ifdim\@tempdima=\z@
\setlength{\@tempdima}{\useplength{locwidth}}%
\fi
\expandafter\rule\expandafter{\the\@tempdima}{%
\useplength{fromrulethickness}}}%
\fi
\\
}%
\fi
\usekomavar{location}%
\vskip \z@ \@plus .00001fil}%
{location field}{locheight}{\setkomavar}%
}}%
}%
\vskip-\useplength{locvpos}\move@frompt
}%
}
\newcommand*{\do@set@reffield}{}
\newcommand*{\@set@reffield}[1]{%
\Ifkomavarempty{#1}{}{%
\settowidth{\@tempdima}{\strut\usekomafont{refvalue}\usekomavar{#1}}%
\sbox\z@{\strut\usekomafont{refname}\usekomavar*{#1}}%
\ifdim \@tempdima<\wd0\setlength{\@tempdima}{\wd0}\fi
\if@tempswa\enskip\hfill\fi
\parbox[t]{\@tempdima}{\noindent\raggedright
\strut\box\z@\\\usekomafont{refvalue}\strut\usekomavar{#1}}%
\@tempswatrue
}%
}
\newcommand*{\@test@reffield}[1]{%
\Ifkomavarempty{#1}{}{%
\@tempswatrue
}%
}
\newcommand*{\@set@reffields}{}%
\newcommand*{\addtoreffields}[1]{%
\l@addto@macro{\@set@reffields}{\do@set@reffield{#1}}%
}
\newcommand*{\removereffields}{%
\renewcommand*{\@set@reffields}{}%
}
\newcommand*{\defaultreffields}{%
\removereffields
\addtoreffields{yourref}%
\addtoreffields{yourmail}%
\addtoreffields{myref}%
\addtoreffields{customer}%
\addtoreffields{invoice}%
}
\defaultreffields
\newcommand*{\@datefield}{%
{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\ifdim\useplength{refwidth}=\z@
\if@refwide
\setplength{refwidth}{\paperwidth}%
\ifdim \useplength{toaddrhpos}>\z@
\setplength{refhpos}{\useplength{toaddrhpos}}%
\else
\setplength[-]{refhpos}{\useplength{toaddrhpos}}%
\fi
\addtoplength[-2]{refwidth}{\useplength{refhpos}}%
\else
\setplength{refwidth}{\textwidth}%
\setplength{refhpos}{\oddsidemargin}%
\addtoplength{refhpos}{1in}%
\fi
\else
\ifdim\useplength{refhpos}=\z@
\begingroup
\setlength\@tempdima{\textwidth}%
\addtolengthplength[-]{\@tempdima}{refwidth}%
\setlength\@tempdimb{\oddsidemargin}%
\addtolength\@tempdimb{1in}%
\setlength{\@tempdimc}{\paperwidth}%
\addtolength{\@tempdimc}{-\textwidth}%
\divide\@tempdimb by 32768\relax
\divide\@tempdimc by 32768\relax
\ifdim\@tempdimc=\z@\else
\multiply\@tempdima by\@tempdimb
\divide\@tempdima by\@tempdimc
\fi
\edef\@tempa{\noexpand\endgroup
\noexpand\setplength{refhpos}{\the\@tempdima}}%
\@tempa
\fi\fi
\@tempswafalse
\move@topt\vskip\useplength{refvpos}%
\@tempswafalse
\let\do@set@reffield\@test@reffield
\@set@reffields
\ifcase \@datepos\else\@test@reffield{date}\fi
\if@tempswa
\@tempswafalse
\rlap{\noindent\move@topl\hskip\useplength{refhpos}%
\vbox{\hsize\useplength{refwidth}%
\noindent
\ifnum \@datepos=2
\@set@reffields
\if@tempswa
\@tempswafalse
\@set@reffield{date}%
\fi
\fi
\let\do@set@reffield\@set@reffield
\@set@reffields%
\if@tempswa
\ifnum \@datepos=1 \@set@reffield{date}\fi%
\sbox\z@{\usekomafont{refname}\strutbox}%
\ifdim\ht\z@>\ht\strutbox
\ClassWarningNoLine{scrlttr2}{%
Font element `refname' should not be larger than
\string\normalsize!}%
\fi
\sbox\z@{\usekomafont{refvalue}\strutbox}%
\ifdim\ht\z@>\ht\strutbox
\ClassWarningNoLine{scrlttr2}{%
Font element `refvalue' should not be larger than
\string\normalsize!}%
\fi
\else
\ifcase \@datepos\else
\ifnum \@datepos=1 \enskip\hfill\fi
{\usekomafont{placeanddate}{\Ifkomavarempty{place}{}{%
\usekomavar{place}\usekomavar{placeseparator}}%
\usekomavar{date}}}%
\fi
\fi
}%
}%
\fi
\vskip\useplength{refaftervskip}%
}%
}
\newcommand*{\@makelettertitle}{%
\Ifkomavarempty{title}{%
\typeout{Title: no}%
}{%
\typeout{Title: yes}%
{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\centering\LARGE\usekomafont{lettertitle}\usekomavar{title}\par}%
\vskip\baselineskip%
}%
}
\newcommand*{\@subjfield}{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
\Ifkomavarempty{subject}{%
\typeout{Subject: no}%
}{%
\ifx\raggedsubject\@empty
\ifdim\useplength{subjectvpos}=\z@
\if@subjafter%
\typeout{Subject: after opening}%
\let\raggedsubject\centering%
\else
\typeout{Subject: before opening}%
\def\raggedsubject{\noindent\@hangfrom}%
\fi
\else
\typeout{Subject: at absolute vertical position}%
\def\raggedsubject{\noindent\@hangfrom}%
\fi
\fi
\ifdim\useplength{subjectvpos}=\z@
\vskip\useplength{subjectbeforevskip}%
\begingroup
\else
\move@topt\vskip\useplength{subjectvpos}%
\expandafter\vb@t@z\expandafter{%
\fi
\usekomafont{lettersubject}%
\raggedsubject{\if@subj \subject@format{\strut\ignorespaces
\usekomavar*{subject}}\fi}%
\subject@format{\strut\ignorespaces\usekomavar{subject}}\par
\ifdim\useplength{subjectvpos}=\z@
\endgroup
\vskip\useplength{subjectaftervskip}%
\else
}%
\vskip-\useplength{subjectvpos}\move@frompt
\fi
}%
}%
}
\newplength{subjectvpos}
\setplength{subjectvpos}{0pt}
\newplength{subjectaftervskip}
\setplength{subjectaftervskip}{2\baselineskip}
\newplength{subjectbeforevskip}
\setplength{subjectbeforevskip}{0pt}
\newkomavar{nexthead}
\setkomavar{nexthead}{%
\rlap{\parbox[c]{\textwidth}{\raggedright\strut
\ifnum\@pageat=0\pagemark\else\leftmark\fi\strut}}%
\parbox[c]{\textwidth}{%
\centering\strut
\ifcase\@pageat
\rightmark
\or
\pagemark
\or
\rightmark
\fi\strut}%
\llap{\parbox[c]{\textwidth}{\raggedleft\strut
\ifcase\@pageat
\leftmark
\or
\rightmark
\or
\pagemark
\else
\rightmark
\fi\strut}}%
}%
\newcommand{\nexthead}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\nexthead.\MessageBreak
You should use \string\setkomavar{nexthead}\MessageBreak
instead of \string\nexthead
}
\setkomavar{nexthead}%
}
\newcommand*{\@nexthead}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\@nexthead.\MessageBreak
\string\usekomavar{nexthead} should be used\MessageBreak
instead of \string\@nexthead
}%
\usekomavar{nexthead}%
}
\newkomavar{nextfoot}
\setkomavar{nextfoot}{%
\ifnum\@pageat>2
\parbox[c]{\textwidth}{%
\ifcase\@pageat\or\or\or\raggedright\or\centering\or\raggedleft\fi
\strut\pagemark%
}%
\fi
}
\newcommand{\nextfoot}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\nextfoot.\MessageBreak
You should use \string\setkomavar{nextfoot}\MessageBreak
instead of \string\nextfoot
}
\setkomavar{nextfoot}%
}
\newcommand*{\@nextfoot}{%
\ClassWarning{scrlttr2}{%
Deprecated usage of \string\@nextfoot.\MessageBreak
\string\usekomavar{nextfoot} should be used\MessageBreak
instead of \string\@nextfoot
}%
\usekomavar{nextfoot}%
}
\newenvironment{letter}[2][]{%
\if@twocolumn
\ClassWarning{\KOMAClassName}{%
twocolumn mode not supported.\MessageBreak
If you really want a twocolumned letter, you should\MessageBreak
use package `multicol' and add a `multicols'\MessageBreak
environment inside your letter.\MessageBreak
Switching back to oneside%
}%
\letter@restonecoltrue
\expandafter\onecolumn
\else
\letter@restonecolfalse
\fi
\cleardoubleoddemptypage
\raggedbottom
\scr@ifundefinedorrelax{letterpagestyle}{}{%
\ifx\letterpagestyle\@empty\else
\pagestyle{\letterpagestyle}%
\fi
}%
\refstepcounter{letter}%
\let\thisletter\@currentlabel
\setcounter{page}{\@ne}%
\setcounter{footnote}{0}%
\interlinepenalty=200\@processto{#2}%
\KOMAoptions{#1}%
\@beginletterhook
}{%
\stopletter
\let\@currentlabel\thisletter
\label{\thisletter.lastpage}%
\@@par\pagebreak\@@par%
\ifletter@restonecol\twocolumn\fi
}
\newif\ifletter@restonecol
\newcommand*{\thisletter}{outside.letter.undefined}
\newcommand*{\letterlastpage}{\pageref{\thisletter.lastpage}}
\newcommand*{\stopletter}{}
\newcommand{\@processto}[1]{%
\IfArgIsEmpty{#1}{%
}{%
\expandafter\@xproc#1\\\@nil
\ifx\reserved@b\@empty\else\expandafter\@xproc#1\@nil\fi
\edef\reserved@a{%
\noexpand\setkomavar{toname}{\unexpanded\expandafter{\reserved@a}}%
\noexpand\setkomavar{toaddress}{\unexpanded\expandafter{\reserved@b}}%
}\reserved@a
}%
}
\newcommand*{\@xproc}{}
\long\def\@xproc#1\\#2\@nil{%
\def\reserved@a{#1}\def\reserved@b{#2}%
}
\g@addto@macro\flushbottom{%
\AtEndLetter{\vskip \z@\@plus.0001fil\relax}%
}
\newcounter{letter}
\newcommand*{\letterpagestyle}{%
}
\newcommand{\AtBeginLetter}{\g@addto@macro\@beginletterhook}
\newcommand{\@beginletterhook}{}
\newcommand{\AtEndLetter}{\g@addto@macro\stopletter}
\newcommand*{\stopbreaks}{\interlinepenalty \@M
\def\par{\@@par\nobreak}\let\\=\@nobreakcr
\let\vspace\@nobreakvspace}
\DeclareRobustCommand*{\@nobreakvspace}{%
\kernel@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
\newcommand*{\@nobreakvspacex}[1]{\ifvmode\nobreak\vskip #1\relax\else
\@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
\newcommand*{\@nobreakcr}{\kernel@ifstar{\@normalcr*}{\@normalcr*}}
\newcommand*{\startbreaks}{\let\\=\@normalcr
\interlinepenalty 200\def\par{\@@par\penalty 200\relax}}
\newcommand{\opening}[1]{%
\@PapersizeWarning
\@gen@firsthead
\@mkboth{\scr@fromname@var}{\scr@subject@var}%
\thispagestyle{empty}%
\noindent
\@foldmarks\@firstheadfootfield
\@addrfield\@locfield
\ifdim\useplength{subjectvpos}=\z@\else\@subjfield\fi
\@datefield
\@makelettertitle
\ifdim\useplength{subjectvpos}=\z@\if@subjafter\else\@subjfield\fi\fi
{\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative#1\par}%
{\setlength{\@tempdima}{\baselineskip}%
\addtolength{\@tempdima}{-\parskip}%
\ifdim \@tempdima>\z@\vskip\@tempdima\fi}%
\ifdim\useplength{subjectvpos}=\z@\if@subjafter\@subjfield\fi\fi
\@afterindentfalse\@afterheading
}
\newcommand*{\closing}[1]{{%
\setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative\nobreak\par
\nobreak\vskip\baselineskip
\stopbreaks\noindent
\settowidth{\@tempdima}{%
\begin{tabular}{@{}l@{}}
#1\tabularnewline
\usekomavar{signature}\tabularnewline
\end{tabular}%
}%
\setlength{\@tempdimb}{\hsize}%
\addtolength{\@tempdimb}{-\useplength{sigindent}}%
\ifdim\@tempdima>\@tempdimb\setlength{\@tempdima}{\@tempdimb}\fi
\hspace{\useplength{sigindent}}%
\parbox{\@tempdima}{\raggedsignature\strut\ignorespaces
#1\ifhmode\scr@endstrut\\[\useplength{sigbeforevskip}]
\else\vskip \useplength{sigbeforevskip}\fi
\strut\ignorespaces
\usekomavar{signature}\ifhmode\scr@endstrut\fi}}\par
\nobreak\vskip\baselineskip
}
\newcommand\ps{\par%
\ifdim\parskip=\z@
\vskip\baselineskip
\fi\startbreaks\noindent\ignorespaces
}
\newcommand*{\cc}[1]{\par%
\ifdim\parskip=\z@%
\vskip\baselineskip%
\fi\noindent%
\begingroup
\parbox[t]{\textwidth}{%
\Ifkomavarempty*{ccseparator}{}{%
\@hangfrom{%
\strut\usekomavar*{ccseparator}\usekomavar{ccseparator}}%
}%
\ignorespaces #1\strut}%
\setlength{\parfillskip}{\z@ \@plus 1fil}\par
\endgroup
}
\newcommand*{\encl}[1]{\par%
\ifdim\parskip=\z@%
\vskip\baselineskip%
\fi\noindent%
\begingroup
\parbox[t]{\textwidth}{%
\Ifkomavarempty*{enclseparator}{}{%
\@hangfrom{%
\strut\usekomavar*{enclseparator}\usekomavar{enclseparator}}%
}%
\ignorespaces #1\strut}%
\setlength{\parfillskip}{\z@ \@plus 1fil}\par
\endgroup
}
\newkomavar{place}
\newkomavar{location}
\newkomavar{specialmail}
\newkomavar{title}
\newkomavar{fromlogo}
\newkomavar{fromzipcode}
\newkomavar{PPcode}
\newkomavar{PPdatamatrix}
\newkomavar{addresseeimage}
\newkomavar{signature}
\setkomavar{signature}{\usekomavar{fromname}}
\newkomavar{backaddress}
\setkomavar{backaddress}{%
\Ifkomavarempty{fromname}{}{%
\strut\ignorespaces\usekomavar{fromname}%
\Ifkomavarempty{fromaddress}{}{\\}}%
\Ifkomavarempty{fromaddress}{}{%
\strut\ignorespaces\usekomavar{fromaddress}}%
}
\newkomavar[\usekomavar{place}]{placeseparator}
\setkomavar{placeseparator}{,\nobreakspace}
\newkomavar[\subjectname]{subjectseparator}
\setkomavar{subjectseparator}{: }
\newkomavar[\ccname]{ccseparator}
\setkomavar{ccseparator}{: }
\newkomavar[\enclname]{enclseparator}
\setkomavar{enclseparator}{: }
\newkomavar{backaddressseparator}
\setkomavar{backaddressseparator}{,\nobreakspace}
\newkomavar[\if@scrsymbols\scr@symbol@phone\else\phonename\fi]{phoneseparator}
\setkomavar{phoneseparator}{\if@scrsymbols\else:\fi\nobreakspace}
\newkomavar[%
\if@scrsymbols\scr@symbol@mobilephone\else\mobilephonename\fi
]{mobilephoneseparator}
\setkomavar{mobilephoneseparator}{\usekomavar{phoneseparator}}
\newkomavar[\if@scrsymbols\scr@symbol@fax\else\faxname\fi]{faxseparator}
\setkomavar{faxseparator}{\if@scrsymbols\else:\fi\nobreakspace}
\newkomavar[\if@scrsymbols\scr@symbol@email\else\emailname\fi]{emailseparator}
\setkomavar{emailseparator}{\if@scrsymbols\else:\fi\nobreakspace}
\newkomavar[\if@scrsymbols\scr@symbol@www\else\wwwname\fi]{urlseparator}
\setkomavar{urlseparator}{\if@scrsymbols\else:\nobreakspace\fi}
\newkomavar{zipcodeseparator}
\setkomavar{zipcodeseparator}{\,--\,}
\newkomavar[\headfromname]{fromname}
\newkomavar[\usekomavar{fromname}]{fromaddress}
\newkomavar[\headtoname]{toname}
\newkomavar[\usekomavar{toname}]{toaddress}
\newkomavar[\usekomavar*{phoneseparator}%
\usekomavar{phoneseparator}]{fromphone}
\newkomavar[\usekomavar*{mobilephoneseparator}%
\usekomavar{mobilephoneseparator}]{frommobilephone}
\newkomavar[\usekomavar*{faxseparator}%
\usekomavar{faxseparator}]{fromfax}
\newkomavar[\usekomavar*{emailseparator}%
\usekomavar{emailseparator}]{fromemail}
\newkomavar[\usekomavar*{urlseparator}%
\usekomavar{urlseparator}]{fromurl}
\newkomavar[\bankname]{frombank}
\newkomavar[\yourrefname]{yourref}
\newkomavar[\yourmailname]{yourmail}
\newkomavar[\myrefname]{myref}
\newkomavar[\customername]{customer}
\newkomavar[\invoicename]{invoice}
\newkomavar[\usekomavar*{subjectseparator}%
\usekomavar{subjectseparator}]{subject}
\newkomavar[\datename]{date}
\setkomavar{date}{\@date}
\newcommand*{\scr@saved@date}{}
\let\scr@saved@date\date
\renewcommand*{\date}[1]{%
\ClassWarning{\KOMAClassName}{%
\string\date\space changes the internal \string\LaTeX\space date
only.\MessageBreak
You should note that this changes the default\MessageBreak
value of variable `date' only as long as nobody\MessageBreak
uses `\string\setkomavar` to change the content of\MessageBreak
variable `date'.\MessageBreak
Therefore, usage of `\string\setkomavar' is recommended\MessageBreak
to change the letter's date%
}%
\scr@saved@date{#1}%
}
%%% From File: $Id: scrkernel-addressfiles.dtx 4032 2023-04-17 09:45:11Z kohm $
%%% (run: body)
\newcommand*{\adrentry}[7]{%
\ClassWarning{\KOMAClassName}{%
command `\string\adrentry' is deprecated.\MessageBreak
You should use `\string\addrentry' with additional\MessageBreak
empty 8th argument}%
\addrentry{#1}{#2}{#3}{#4}{#5}{#6}{#7}{}}
\newcommand*{\addrentry}[9]{\def\@tempa{#1}\ifx \@tempa\@empty \else
\def\@tempa{#2}\ifx \@tempa\@empty
\expandafter\def\csname #9\endcsname{#1\\#3}%
\else
\expandafter\def\csname #9\endcsname{#2 #1\\#3}%
\fi \fi}
\newcommand*{\adrchar}{%
\ClassWarning{\KOMAClassName}{%
command `\string\adrchar' is deprecated.\MessageBreak
You should use `\string\addrchar'}
\addrchar}
\newcommand*{\addrchar}[1]{}
%%% From File: $Id: scrlogo.dtx 4032 2023-04-17 09:45:11Z kohm $
\RequirePackage{scrlogo}
\endinput
%%
%% End of file `scrlttr2.cls'.