summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/scrkernel-fonts.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/scrkernel-fonts.dtx')
-rw-r--r--macros/latex/contrib/koma-script/scrkernel-fonts.dtx2028
1 files changed, 2028 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/scrkernel-fonts.dtx b/macros/latex/contrib/koma-script/scrkernel-fonts.dtx
new file mode 100644
index 0000000000..7c4c1af971
--- /dev/null
+++ b/macros/latex/contrib/koma-script/scrkernel-fonts.dtx
@@ -0,0 +1,2028 @@
+% \iffalse meta-comment
+% ======================================================================
+% scrkernel-fonts.dtx
+% Copyright (c) Markus Kohm, 2002-2022
+%
+% This file is part of the LaTeX2e KOMA-Script bundle.
+%
+% This work may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, version 1.3c of the license.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later and of this work.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% The Current Maintainer and author of this work is Markus Kohm.
+%
+% This work consists of all files listed in MANIFEST.md.
+% ======================================================================
+%%% From File: $Id: scrkernel-fonts.dtx 3874 2022-06-05 10:38:02Z kohm $
+%<identify>%%% (run: identify)
+%<option>%%% (run: option)
+%<body>%%% (run: body)
+%<10pt>%%% (run: 10pt)
+%<11pt>%%% (run: 11pt)
+%<11pt>%%% (run: 12pt)
+%<*dtx>
+\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
+\begingroup
+ \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
+ \filedate$Date: 2022-06-05 12:38:02 +0200 (So, 05. Jun 2022) $
+ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
+ \filerevision$Revision: 3874 $
+ \edef\reserved@a{%
+ \noexpand\endgroup
+ \noexpand\ProvidesFile{scrkernel-fonts.dtx}%
+ [\filedate\space\filerevision\space
+ KOMA-Script source
+ (font size)]
+ }%
+\reserved@a
+% \changes{v3.09}{2011/02/23}{new package \pkg*{scrfontsizes}}
+%</dtx>
+%<*package&generator&identify>
+%<package&generator&identify>\ProvidesPackage{scrfontsizes}[%
+%!KOMAScriptVersion
+%<package&generator&identify> package (font size file generator)]
+%</package&generator&identify>
+%<*dtx>
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
+\begin{document}
+\DocInput{scrkernel-fonts.dtx}
+\end{document}
+%</dtx>
+% \fi
+%
+%
+% \changes{v2.95}{2002/06/25}{new by splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/22}{switch over from \cls*{scrdoc} to
+% \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/22}{implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-fonts.dtx}
+% \title{Code for the Foats of the
+% \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+% \file{scrkernel-fonts.dtx} mainly implements the font selection of
+% \KOMAScript{}. This is not only the selection of the font sizes but also
+% the implementation of font elements. Additionally it provides package
+% \pkg*{scrfontsizes} to generate new font size files.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}. The user documentation of alpha package \pkg*{scrfontsizes}
+% is still missing.
+%
+%
+% \MaybeStop{\PrintIndex}
+%
+%
+% \section{Implementation of \KOMAScript{} Font Features}
+%
+% \subsection{Options of the font size files generator package}
+%
+% From version 3.09 there exist package \pkg*{scrfontsizes}, which is currently
+% very rudimentary. However it can used to generate font size files that can
+% be modified by the user afterwards. Currently it does not provide any options.
+%
+% \begin{macrocode}
+%<*generator&option>
+\ProcessOptions\relax
+%</generator&option>
+% \end{macrocode}
+%
+% \subsection{Font size options of the \KOMAScript{} classes}
+%
+% \begin{option}{10pt,11pt,12pt}
+% These options do not exist as explicit options but are handled by
+% \cs{DeclareOption*} via \cs{@pt@scan}.
+% \end{option}
+%
+% \begin{macro}{\@ptsize}
+% \changes{v2.96}{2006/08/11}{\cs{@ptsize} different temporary meaning}
+% \changes{v3.27}{2019/03/25}{\cs{providecommand} instead of \cs{newcommand}}
+% The main meaning of \cs{@ptsize} is the base font size minus 10\,pt, or in
+% other words: base font size = \cs{@ptsize} + 10\,pt. But, until the final
+% font size has been set, we use it for the default size. \cs{providecommand}
+% is used to define it, so a wrapper class can define a different default size
+% before loading the final class.
+% \begin{macrocode}
+%<*class&option>
+\providecommand*\@ptsize{%
+%<!letter> 11%
+%<letter> 12%
+}
+%</class&option>
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@pt@scan}
+% \changes{v2.6}{2000/01/04}{added}
+% \begin{macro}{\@pt@@scan}
+% \changes{v2.6}{2000/01/04}{added}
+% \changes{v2.97c}{2007/05/12}{\cs{KOMA@UseObsolete} replaced by
+% \cs{KOMA@UseObsoleteOption}}
+% \changes{v2.98c}{2008/03/22}{Usage of \cs{KOMA@UseObsoleteOption} fixed}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by \cs{PackageInfoNoLine}}
+% \changes{v3.12}{2013/03/04}{other font size options than \opt{10pt},
+% \opt{11pt}, \opt{12pt} are deprecated}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \changes{v3.28}{2019/11/18}{\cs{ifnumber} renamed to \cs{Ifnumber}}
+% This macro scans the current option and recognizes classic font size
+% options. It is used with \cs{DeclareOption*}.
+% \begin{macrocode}
+%<*class&option>
+\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}%
+}
+%</class&option>
+% \end{macrocode}
+% \end{macro}^^A \@pt@@scan
+% \end{macro}^^A \@pt@scan
+%
+% \begin{macro}{\@fontsizefilebase}
+% \changes{v2.96}{2006/08/11}{added}
+% \changes{v3.00}{2008/05/01}{definition earlier because of \pkg*{scrextend}}
+% This is the prefix for the \KOMAScript{} font size files. Wrapper classes
+% are allowed to change it to use their own font size files.
+% \begin{macrocode}
+%<*option&(class|extend)>
+\providecommand*{\@fontsizefilebase}{scrsize}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v3.17}{2015/03/10}{die Schriftgröße wird in der internen
+% Optionenliste gespeichert}
+% \begin{option}{fontsize}
+% \changes{v2.96}{2006/08/11}{Funktion komplett geändert}
+% \changes{v2.98c}{2008/03/26}{lädt nach Möglichkeit die zugehörige
+% Schriftgrößendatei}
+% \changes{v3.12}{2013/03/05}{Status wird mit \cs{FamilyKeyStateProcessed}
+% gesetzt.}
+% Hier nun die Option, die tatsächlich verwendet wird. Es sei darauf
+% hingewiesen, dass damit auch Schriftgrößen wie \texttt{10.3pt} denkbar
+% wären.
+% \begin{macrocode}
+\KOMA@key{fontsize}{%
+%<*!extend>
+ \scr@ifundefinedorrelax{changefontsizes}{%
+ \@defaultunits\@tempdima#1pt\relax\@nnil
+ \edef\@ptsize{#1}%
+ }{%
+%</!extend>
+ \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}{%
+%<!extend> \noexpand\ClassInfo{\KOMAClassName}{%
+%<extend> \noexpand\PackageInfo{scrextend}{%
+ File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}%
+ }{%
+ \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{%
+%<!extend> \noexpand\ClassInfo{\KOMAClassName}{%
+%<extend> \noexpand\PackageInfo{scrextend}{%
+ 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`\@
+ }%
+%<extend> \scr@ifundefinedorrelax{changefontsizes}{%
+%<extend> \expandafter\AtEndOfPackage\expandafter{\@tempa}%
+%<extend> }{%
+ \@tempa
+ }%
+ \FamilyKeyStateProcessed
+ \KOMA@kav@xreplacevalue{.%
+%<class> \KOMAClassFileName
+%<extend> scrextend.\scr@pkgextension
+ }{fontsize}{#1}%
+}
+%</option&(class|extend)>
+% \end{macrocode}
+% \end{option}
+%
+%
+% \subsection{Packages required by the font size file generator package}
+%
+% \pkg*{scrfontsizes} needs command \cs{changefontsizes}. This can either be
+% provided by a \KOMAScript{} class or package \pkg*{scrextend}.
+% \begin{macrocode}
+%<*generator&body>
+\@ifundefined{changefontsizes}{\RequirePackage{scrextend}}{}
+%</generator&body>
+% \end{macrocode}
+%
+%
+% \subsection{The font size files}
+%
+% \changes{v2.6}{2000/01/04}{reading font size files works independent from size}
+% \changes{v2.98c}{2008/03/26}{using my own \file{scrsize\dots.clo} files}
+%
+% We need at least the font size files for the three base sizes 10\,pt, 11\,pt
+% and 12\,pt. From version 2.98c \KOMAScript{} prefers to use its own files,
+% because these can be loaded without problems after |\begin{document}| and
+% after another font size file has already been loaded. Nevertheless the base
+% sizes are more or less from the standard classes.
+%
+% \begin{macrocode}
+%<*10pt|11pt|12pt>
+\ProvidesFile{%
+%<10pt> scrsize10pt.clo%
+%<11pt> scrsize11pt.clo%
+%<12pt> scrsize12pt.clo%
+}[\KOMAScriptVersion\space font size class option %
+%<10pt> (10pt)%
+%<11pt> (11pt)%
+%<12pt> (12pt)%
+]
+% \end{macrocode}
+%
+% \begin{command}{\normalsize,\small,\footnotesize,\scriptsize,\tiny,\large,
+% \Large,\LARGE,\huge,\Huge}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
+% \begin{macrocode}
+\def\normalsize{%
+%<*10pt>
+ \@setfontsize\normalsize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+%</10pt>
+%<*11pt>
+ \@setfontsize\normalsize\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+%</11pt>
+%<*12pt>
+ \@setfontsize\normalsize\@xiipt{14.5}%
+ \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+%</12pt>
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI
+}
+\def\small{%
+%<*10pt>
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+%</10pt>
+%<*11pt>
+ \@setfontsize\small\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+%</11pt>
+%<*12pt>
+ \@setfontsize\small\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+%</12pt>
+ \belowdisplayskip \abovedisplayskip
+}
+\def\footnotesize{%
+%<*10pt>
+ \@setfontsize\footnotesize\@viiipt{9.5}%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+%</10pt>
+%<*11pt>
+ \@setfontsize\footnotesize\@ixpt{11}%
+ \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+%</11pt>
+%<*12pt>
+ \@setfontsize\footnotesize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+%</12pt>
+ \belowdisplayskip \abovedisplayskip
+}
+%<*10pt>
+\def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\def\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\def\large{\@setfontsize\large\@xiipt{14}}
+\def\Large{\@setfontsize\Large\@xivpt{18}}
+\def\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\def\huge{\@setfontsize\huge\@xxpt{25}}
+\def\Huge{\@setfontsize\Huge\@xxvpt{30}}
+%</10pt>
+%<*11pt>
+\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\def\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\def\large{\@setfontsize\large\@xiipt{14}}
+\def\Large{\@setfontsize\Large\@xivpt{18}}
+\def\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\def\huge{\@setfontsize\huge\@xxpt{25}}
+\def\Huge{\@setfontsize\Huge\@xxvpt{30}}
+%</11pt>
+%<*12pt>
+\def\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\def\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\def\large{\@setfontsize\large\@xivpt{18}}
+\def\Large{\@setfontsize\Large\@xviipt{22}}
+\def\LARGE{\@setfontsize\LARGE\@xxpt{25}}
+\def\huge{\@setfontsize\huge\@xxvpt{30}}
+\let\Huge=\huge
+%</12pt>
+\normalsize
+% \end{macrocode}
+% \end{command}
+%
+% \begin{length}{\footnotesep,\footins,\floatsep,\textfloatsep,\intextsep,
+% \dblfloatsep,\sbltextfloatsep,\partopsep}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
+% \begin{ilength}{\@fptop,\@fpsep,\@fpbot,\@dblfptop,\@dblfpsep,\@dblfpbot}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
+% The values are same as with the standard classes.
+% \begin{macrocode}
+%<*10pt>
+\setlength\footnotesep {6.65\p@}
+\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {8\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {8\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+%</10pt>
+%<*11pt>
+\setlength\footnotesep {7.7\p@}
+\setlength{\skip\footins} {10\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\partopsep {3\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {8\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {8\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+%</11pt>
+%<*12pt>
+\setlength\footnotesep {8.4\p@}
+\setlength{\skip\footins} {10.8\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\partopsep {3\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {10\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {10\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+%</12pt>
+% \end{macrocode}
+% \begin{macro}{\@listi,\@listii,\@listiii,\@listiv,\@listv,\@listvi}
+% \changes{v2.98c}{2008/03/26}{defined in the \file{scrsize\dots.clo} files}
+% The definitions are the same as with the standard classes.
+% \begin{macrocode}
+\def\@listi{\leftmargin\leftmargini
+%<*10pt>
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep4\p@ \@plus2\p@ \@minus\p@}
+%</10pt>
+%<*11pt>
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \itemsep4.5\p@ \@plus2\p@ \@minus\p@}
+%</11pt>
+%<*12pt>
+ \parsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \topsep 10\p@ \@plus4\p@ \@minus6\p@
+ \itemsep5\p@ \@plus2.5\p@ \@minus\p@}
+%</12pt>
+\let\@listI\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+%<*10pt>
+ \topsep 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+%</10pt>
+%<*11pt>
+ \topsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+%</11pt>
+%<*12pt>
+ \topsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \parsep 2.5\p@ \@plus\p@ \@minus\p@
+%</12pt>
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+%<10pt> \topsep 2\p@ \@plus\p@\@minus\p@
+%<11pt> \topsep 2\p@ \@plus\p@\@minus\p@
+%<12pt> \topsep 2.5\p@\@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+%</10pt|11pt|12pt>
+% \end{macrocode}
+% \end{macro}^^A \@listi … \@listvi
+% \end{ilength}^^A \@fptop … \@dblfpbot
+% \end{length}^^A \footnotesep … \partopsep
+%
+% \begin{command}{\changefontsizes}
+% \changes{v2.96}{2006/08/11}{added}
+% \changes{v3.08b}{2011/02/22}{three \cs{def} replaced by \cs{edef}}
+% \changes{v3.17}{2015/02/23}{define if undefined only}
+% \changes{v3.17}{2015/02/23}{indirect definition for Falk}
+% \begin{macro}{\simple@changefontsizes}
+% \changes{v3.17}{2015/02/23}{added}
+% \changes{v3.17}{2015/03/25}{\cs{par@updaterelative} added}
+% Fallback calculation of font size settings relative to known 10\,pt values:
+% \begin{quote}
+% \cs{changefontsizes}\oarg{baseline skip}\marg{font size}
+% \end{quote}
+% If the \meta{baseline skip} is given, it is used as \len{baselineskip} for
+% \cs{normalsize} and all other baseline skips are relative to it. If it is
+% not give, it is also calculated.
+% \begin{macro}{\scr@setlength}
+% \changes{v3.12}{2013/10/08}{added}
+% Command
+% \begin{quote}
+% \cs{scr@setlength}\marg{\LaTeX length}\marg{base dimension}\marg{plus
+% dimension}\marg{minus dimension}
+% \end{quote}
+% sets \meta{\LaTeX length} to \meta{base dimension} \texttt{plus} \meta{plus
+% dimension} \texttt{minus} \meta{minus dimension}. Minimum value for
+% \meta{plus dimension} and \meta{minus dimension} is 1\,pt.
+% \begin{macrocode}
+%<*body&(class|extend)>
+\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
+}
+% \end{macrocode}
+% \end{macro}
+% \changes{v3.17}{2015/03/10}{\eTeX{} warning removed}
+% \begin{macrocode}
+\providecommand*{\simple@changefontsizes}[2][1.2\@tempdima]{%
+ \KOMA@kav@removekey{.%
+%<class> \KOMAClassFileName
+%<extend> scrextend.\scr@pkgextension
+ }{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%
+% \end{macrocode}
+% Now, \len{@temdimc} is the wanted basic font size in pt. \cs{@tempb} is the
+% factor of the baseline skip rounded to two decimals. \len{@tempdima} is also
+% the basic font size and \len{@tempdimb} the \len{baselineskip}. But
+% \len{@tempdima} and \len{tempdimb} will change in further calculations
+% depending on the wanted font size command.
+%
+% Calculation and definition of \cs{normalsize}:
+% \begin{macrocode}
+ \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\normalsize{%
+ \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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{small}:
+% \begin{macrocode}
+ \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\small{%
+ \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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{footnotesize}:
+% \begin{macrocode}
+ \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\footnotesize{%
+ \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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{scriptsize}:
+% \begin{macrocode}
+ \setlength{\@tempdima}{.66667\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\scriptsize{%
+ \noexpand\@setfontsize\noexpand\scriptsize
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{tiny}:
+% \begin{macrocode}
+ \setlength{\@tempdima}{.5\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\tiny{%
+ \noexpand\@setfontsize\noexpand\tiny
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{large}:
+% \begin{macrocode}
+ \setlength{\@tempdima}{1.2\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\large{%
+ \noexpand\@setfontsize\noexpand\large
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{Large}:
+% \begin{macrocode}
+ \setlength{\@tempdima}{1.44\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\Large{%
+ \noexpand\@setfontsize\noexpand\Large
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{LARGE}:
+% \begin{macrocode}
+ \setlength{\@tempdima}{1.728\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\LARGE{%
+ \noexpand\@setfontsize\noexpand\LARGE
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{huge}:
+% \begin{macrocode}
+ \setlength{\@tempdima}{2.074\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\huge{%
+ \noexpand\@setfontsize\noexpand\huge
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{Huge}:
+% \begin{macrocode}
+ \setlength{\@tempdima}{2.488\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\Huge{%
+ \noexpand\@setfontsize\noexpand\Huge
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+% \end{macrocode}
+% Activation of \cs{normalsize} and calculation of additional font size
+% depending sized.
+% \begin{macrocode}
+ \normalsize
+%<!extend> \expandafter\ifnum\scr@v@is@ge{3.17}\@nameuse{par@updaterelative}\fi
+% \end{macrocode}
+% After the activation of \cs{normalsize} above, we can use \cs{f@size} and
+% \cs{f@baselineskip}. We cannot use \cs{baselineskip}, because this would be
+% influenced by \cs{baselinestretch}.
+% \begin{macrocode}
+ \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
+% \end{macrocode}
+% Calculation and definition of \cs{@listi} and \cs{@listI}:
+% \begin{macrocode}
+ \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
+% \end{macrocode}
+% Calculation and definition of \cs{@listi@small}:
+% \begin{macrocode}
+ \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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{@listi@footnotesize}:
+% \begin{macrocode}
+ \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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{@listii}:
+% \begin{macrocode}
+ \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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{@listiii}:
+% \begin{macrocode}
+ \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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{@listiv}:
+% \begin{macrocode}
+ \@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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{@listv}:
+% \begin{macrocode}
+ \@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
+ }%
+% \end{macrocode}
+% Calculation and definition of \cs{@listvi}:
+% \begin{macrocode}
+ \@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
+% \end{macrocode}
+% \changes{v2.97c}{2007/07/04}{setting \cs{intextsep}}
+% \changes{v2.97c}{2007/07/04}{setting \cs{dblfloatsep}}
+% \changes{v2.97c}{2007/07/04}{setting \cs{partopsep}}
+% \changes{v3.12}{2013/10/08}{calculation of some lengths changed}
+% Calculation and setting of \len{intextsep}, \len{dblfloatsep},
+% \len{partopsep}, \len{footnotesep}, \cs{skip}\len{footins}, \len{footsep},
+% \len{textfloatsep}, \len{@fptop}, \len{@fpsep}, \len{@fpbot},
+% \len{@dblfptop}, \len{@dblfpsep}, \len{@dblfpbot}. Setting of \len{topsep}
+% and \len{parsep} is not needed because part of \cs{@listi}.
+% \begin{macrocode}
+ \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
+}{%
+%<class> \ClassWarning{\KOMAClassName}{%
+%<package&extend> \PackageWarning{scrextend}{%
+ \string\changefontsizes\space already defined.\MessageBreak
+ I hope, the definition is compatible,\MessageBreak
+ because I do not change it%
+ }%
+}
+%</body&(class|extend)>
+% \end{macrocode}
+% \end{macro}^^A \simple@changefontsizes
+% \end{command}^^A \changefontsizes
+%
+%
+% \begin{command}{\generatefontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% \changes{v3.17}{2015/03/26}{\cs{par@updaterelative} added}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% The main command of the generator:
+% \begin{quote}
+% \cs{generatefontfile}\marg{base name}\oarg{baseline skip}\marg{font size}
+% \end{quote}
+% It writes a font size file ``\meta{base name}\meta{font
+% size}.clo''. \meta{base name} ``\texttt{scrbase}'' is protected and results
+% in an error message.
+% \begin{macrocode}
+%<*generator&body>
+\newcommand*{\generatefontfile}[1]{%
+ \Ifstr{#1}{scrsize}{%
+ \ClassError{\KOMAClassName}{%
+ Font file name `scrsize' not allowed%
+ }{%
+ Font files with name `scrsize<fontsize>.clo' are reserved for
+ KOMA-Script.\MessageBreak
+ You should use another prefix and rename \string\@fontsizefilebase\space
+ either before\MessageBreak
+ loading a KOMA-Script class using one of \string\documentclass,
+ \string\LoadClass,\MessageBreak
+ or \string\LoadClassWithOptions\space or before loading package
+ `scrextend' using another\MessageBreak
+ class.}%
+ \@@@generatefontfile
+ }{%
+% \end{macrocode}
+% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}}
+% Test for optional argument and use proper helper.
+% \begin{macrocode}
+ \kernel@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}%
+ }%
+}
+% \end{macrocode}
+% \begin{macro}{\@generatefontfile,\@@generatefontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% The helper macros are needed, because we are not using \pkg{xparse} currently.
+% \begin{macrocode}
+\newcommand*{\@generatefontfile}{}
+\def\@generatefontfile#1[#2]#3{%
+ \begingroup
+ \@ifundefined{setparsizes}{\setlength{\parskip}{0pt}}%
+ {\setparsizes{0pt}{0pt}{0pt}}%
+ \changefontsizes[{#2}]{#3}%
+ \generate@fontfile{#1}{#3}%
+ \endgroup
+}
+\newcommand\@@generatefontfile[2]{%
+ \begingroup
+ \@ifundefined{setparsizes}{\setlength{\parskip}{0pt}}%
+ {\setparsizes{0pt}{0pt}{0pt}}%
+ \changefontsizes{#2}%
+ \generate@fontfile{#1}{#2}%
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}^^A \@generatefontfile,\@@generatefontfile
+% \begin{macro}{\@@@generatefontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% Dummy used in error case to eat an optional and a mandatory argument.
+% \begin{macrocode}
+\newcommand*{\@@@generatefontfile}[2][]{}
+% \end{macrocode}
+% \end{macro}^^A \@@@generatefontfile
+% \begin{macro}{\@fontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% Because \cs{generatefontfile} is allowed in the document preamble only, when
+% the main aux file is not yet opened, we can use \cs{@mainaux} as temporary
+% file handle.
+% \begin{macrocode}
+\newcommand*{\@fontfile}{}
+\let\@fontfile\@mainaux
+% \end{macrocode}
+% \begin{macro}{\generate@fontfile}
+% \changes{v3.09}{2011/02/23}{added}
+% \changes{v3.16a}{2015/02/11}{\cs{footnotesize} fixed}
+% Output of the font size file using the current font setting. It has to be
+% used inside a local group!
+% \begin{macrocode}
+\newcommand*{\generate@fontfile}[2]{%
+ \def\@ind{\space\space}%
+ \immediate\openout\@fontfile #1#2.clo
+ \immediate\write\@fontfile{\@percentchar^^J%
+ \@percentchar\space This is file `#1#2.clo', generated with^^J%
+ \@percentchar\space scrfontsizes
+ \csname ver@scrfontsizes.\scr@pkgextension\endcsname,^^J%
+ \@percentchar\space Copyright (c) Markus Kohm.^^J%
+ \@percentchar^^J%
+ \string\ProvidesFile{#1#2.clo}[%
+ \the\year/\ifnum\month<10 0\fi\the\month/\ifnum\day<10 0\fi\the\day%
+ \space generated font size class option (#2)]}%
+ \immediate\write\@fontfile{%
+ \string\def\string\normalsize{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\normalsize{\f@size}{\f@baselineskip}%
+ \@percentchar^^J%
+ \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
+ \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
+ \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J%
+ \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
+ \@ind\string\let\string\@listi\string\@listI^^J%
+ }\@percentchar%
+ }%
+ \begingroup\small\@listi
+ \immediate\write\@fontfile{%
+ \string\def\string\small{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\small{\f@size}{\f@baselineskip}%
+ \@percentchar^^J%
+ \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
+ \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
+ \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J%
+ \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
+ \@ind\string\def\string\@listi{\@percentchar^^J%
+ \@ind\@ind\string\leftmargin\string\leftmargini^^J%
+ \@ind\@ind\string\topsep \the\topsep^^J%
+ \@ind\@ind\string\parsep \the\parsep^^J%
+ \@ind\@ind\string\itemsep \string\parsep^^J%
+ \@ind}\@percentchar^^J%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\footnotesize\@listi
+ \immediate\write\@fontfile{%
+ \string\def\string\footnotesize{\@percentchar^^J%
+ \@ind\string\@setfontsize\string\footnotesize{\f@size}{\f@baselineskip}%
+ \@percentchar^^J%
+ \@ind\string\abovedisplayskip\space \the\abovedisplayskip^^J%
+ \@ind\string\abovedisplayshortskip\space \the\abovedisplayshortskip^^J%
+ \@ind\string\belowdisplayskip\space \the\belowdisplayskip^^J%
+ \@ind\string\belowdisplayshortskip\space \the\belowdisplayshortskip^^J%
+ \@ind\string\def\string\@listi{\@percentchar^^J%
+ \@ind\@ind\string\leftmargin\string\leftmargini^^J%
+ \@ind\@ind\string\topsep \the\topsep^^J%
+ \@ind\@ind\string\parsep \the\parsep^^J%
+ \@ind\@ind\string\itemsep \string\parsep^^J%
+ \@ind}\@percentchar^^J%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\scriptsize
+ \immediate\write\@fontfile{%
+ \string\def\string\scriptsize{%
+ \string\@setfontsize\string\scriptsize{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\tiny
+ \immediate\write\@fontfile{%
+ \string\def\string\tiny{%
+ \string\@setfontsize\string\tiny{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\large
+ \immediate\write\@fontfile{%
+ \string\def\string\large{%
+ \string\@setfontsize\string\large{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\Large
+ \immediate\write\@fontfile{%
+ \string\def\string\Large{%
+ \string\@setfontsize\string\Large{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\LARGE
+ \immediate\write\@fontfile{%
+ \string\def\string\LARGE{%
+ \string\@setfontsize\string\LARGE{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\huge
+ \immediate\write\@fontfile{%
+ \string\def\string\huge{%
+ \string\@setfontsize\string\huge{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \begingroup\Huge
+ \immediate\write\@fontfile{%
+ \string\def\string\Huge{%
+ \string\@setfontsize\string\Huge{\f@size}{\f@baselineskip}%
+ }\@percentchar%
+ }%
+ \endgroup
+ \immediate\write\@fontfile{\string\normalsize}%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\footnotesep}{\the\footnotesep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\skip\string\footins}{\the\skip\footins}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\floatsep}{\the\floatsep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\textfloatsep}{\the\textfloatsep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\intextsep}{\the\intextsep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\dblfloatsep}{\the\dblfloatsep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\dbltextfloatsep}{\the\dbltextfloatsep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\@fptop}{\the\@fptop}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\@fpsep}{\the\@fpsep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\@fpbot}{\the\@fpbot}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\@dblfptop}{\the\@dblfptop}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\@dblfpsep}{\the\@dblfpsep}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\@dblfpbot}{\the\@dblfpbot}\@percentchar
+ }%
+ \immediate\write\@fontfile{%
+ \string\setlength{\string\partopsep}{\the\partopsep}\@percentchar
+ }%
+ \begingroup
+ \@listi
+ \immediate\write\@fontfile{%
+ \string\def\string\@listi{\@percentchar^^J%
+ \@ind\string\leftmargin\string\leftmargini^^J%
+ \@ind\string\topsep \the\topsep^^J%
+ \@ind\string\parsep \the\parsep^^J%
+ \@ind\string\itemsep \string\parsep^^J%
+ }\@percentchar
+ }%
+ \endgroup
+ \immediate\write\@fontfile{%
+ \string\let\string\@listI\string\@listi
+ }%
+ \begingroup
+ \@listii
+ \immediate\write\@fontfile{%
+ \string\def\string\@listii{\@percentchar^^J%
+ \@ind\string\leftmargin\string\leftmarginii^^J%
+ \@ind\string\labelwidth\string\leftmarginii^^J%
+ \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
+ \@ind\string\topsep \the\topsep^^J%
+ \@ind\string\parsep \the\parsep^^J%
+ \@ind\string\itemsep \string\parsep^^J%
+ }\@percentchar
+ }%
+ \endgroup
+ \begingroup
+ \@listiii
+ \immediate\write\@fontfile{%
+ \string\def\string\@listiii{\@percentchar^^J%
+ \@ind\string\leftmargin\string\leftmarginiii^^J%
+ \@ind\string\labelwidth\string\leftmarginiii^^J%
+ \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
+ \@ind\string\topsep \the\topsep^^J%
+ \@ind\string\parsep \the\parsep^^J%
+ \@ind\string\partopsep \the\partopsep^^J%
+ \@ind\string\itemsep \string\topsep^^J%
+ }\@percentchar
+ }%
+ \endgroup
+ \begingroup
+ \@listiv
+ \immediate\write\@fontfile{%
+ \string\def\string\@listiv{\@percentchar^^J%
+ \@ind\string\leftmargin\string\leftmarginiv^^J%
+ \@ind\string\labelwidth\string\leftmarginiv^^J%
+ \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
+ }\@percentchar
+ }%
+ \endgroup
+ \begingroup
+ \@listv
+ \immediate\write\@fontfile{%
+ \string\def\string\@listv{\@percentchar^^J%
+ \@ind\string\leftmargin\string\leftmarginv^^J%
+ \@ind\string\labelwidth\string\leftmarginv^^J%
+ \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
+ }\@percentchar
+ }%
+ \endgroup
+ \begingroup
+ \@listvi
+ \immediate\write\@fontfile{%
+ \string\def\string\@listvi{\@percentchar^^J%
+ \@ind\string\leftmargin\string\leftmarginvi^^J%
+ \@ind\string\labelwidth\string\leftmarginvi^^J%
+ \@ind\string\advance\string\labelwidth-\string\labelsep^^J%
+ }\@percentchar
+ }%
+ \endgroup
+ \immediate\write\@fontfile{%
+ \string\@ifundefined{@list@extra}{}{\@percentchar^^J%
+ \string\expandafter\string\ifnum\string\scr@v@is@ge{3.17}%
+ \string\par@updaterelative\string\fi^^J%
+ \@ind\string\l@addto@macro{\string\@listi}{\string\@list@extra}%
+ \@percentchar^^J%
+ \@ind\string\let\string\@listI=\string\@listi^^J%
+ \@ind\string\l@addto@macro{\string\@listii}{\string\@list@extra}%
+ \@percentchar^^J%
+ \@ind\string\l@addto@macro{\string\@listiii}{\string\@list@extra}%
+ \@percentchar^^J%
+ \@ind\string\l@addto@macro{\string\footnotesize}{\string\protect
+ \string\add@extra@listi{ftns}}\@percentchar^^J%
+ \@ind\string\l@addto@macro{\string\small}{\string\protect
+ \string\add@extra@listi{sml}}\@percentchar^^J%
+ }\@percentchar^^J%
+ \string\@listi^^J%
+ \string\endinput^^J%
+ \@percentchar^^J%
+ \@percentchar\space End of file `#1#2.clo'.
+ }
+ \immediate\closeout\@fontfile
+}
+\@onlypreamble\generatefontfile
+%</generator&body>
+% \end{macrocode}
+% \end{macro}^^A \generate@fontfile
+% \end{macro}^^A \@fontfile
+% \end{command}^^A \generatefontfile
+%
+% Now, we want to initially load the font size file into the class. First we
+% have to convert the \cs{@ptsize} to a length. Note, \cs{@ptsize} can already
+% have a unit or the unit is \texttt{pt}. The original value is stored in
+% \cs{@tempa} to be able to use a font size files with the original
+% unit. \cs{@tempb} is the size in \texttt{pt} without the \texttt{pt} to be
+% able to use a standard font size file. After this, \cs{@ptsize} is reduced
+% by 10\,pt and the unit is cut off.
+% \begin{macrocode}
+%<*class&body>
+\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}%
+% \end{macrocode}
+% Now, let's try to input a file
+% ``\file{\cs{fontsizefilebase}\cs{@tempa}.clo}''. This is a file with the
+% original unit.
+% \begin{macrocode}
+\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}%
+}{%
+% \end{macrocode}
+% If this is not successful, try
+% ``\file{\cs{fontsizefilebase}\cs{@tempb}pt.clo}''.
+% \begin{macrocode}
+ \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}%
+ }{%
+% \end{macrocode}
+% If this is still not successful try a font size file of the standard
+% classes.
+% \begin{macrocode}
+%<*book>
+ \InputIfFileExists{bk\@tempb.clo}{%
+ \ClassInfo{\KOMAClassName}{%
+ File `bk\@tempb.clo' used to setup font sizes}%
+ \KOMA@kav@removekey{.\KOMAClassFileName}{fontsize}%
+ \KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempb}%
+ }{%
+%</book>
+ \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}%
+ }{%
+% \end{macrocode}
+% If this is still not successful, use the fallback calculation.
+% \begin{macrocode}
+ \edef\@tempa{%
+ \noexpand\changefontsizes{\@tempa}%
+ \noexpand\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}%
+ }\@tempa
+ }%
+%<book> }%
+ }%
+}
+%</class&body>
+% \end{macrocode}
+%
+%
+% \subsection{Deprecated old font selection commands}
+%
+% \begin{option}{enabledeprecatedfontcommands}
+% \changes{v3.20}{2015/10/14}{added}
+% \changes{v3.20}{2015/10/14}{deprecated}
+% This option is deprecated by specification already when it has been defined
+% first, because it is used to define deprecated old font selection commands,
+% that should not be used any longer. So the usage of this options always
+% results in a warning. It can be used at load time only.
+% \begin{macro}{\scr@defineobsoletefonts}
+% \changes{v3.20}{2015/10/14}{added}
+% \changes{v3.20}{2015/10/14}{deprecated}
+% Depending on this command
+% \begin{itemize}
+% \item[0] an internal error message,
+% \item[1] a warning,
+% \item[2] an info message,
+% \item[3] no message
+% \end{itemize}
+% is added to the usage of any deprecated font command. Values less than 0
+% result in not defining the commands anyhow.
+% \begin{macrocode}
+%<*class&option>
+\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@@
+}
+%</class&option>
+% \end{macrocode}
+% \end{macro}^^A \scr@degineobsoletefonts
+% \end{option}^^A enabledeprecatedfontscommands
+%
+% \begin{macro}{\scr@DeclareOldFontCommand}
+% \changes{v3.12}{2013/10/31}{added}
+% \changes{v3.20}{2015/10/14}{deprecated escalation}
+% The command is similar to \cs{DeclareOldFontCommand} but adds a warning,
+% info, error to the commands.
+% \begin{macrocode}
+%<*class&body>
+\newcommand*{\scr@DeclareOldFontCommand}[3]{%
+ \ifnum\scr@defineobsoletefonts<\z@\else
+ \ifnum\scr@defineobsoletefonts>\tw@
+ \DeclareOldFontCommand{#1}{#2}{#3}%
+ \else
+ \DeclareOldFontCommand{#1}{%
+ \scr@ErrorWarningInfo{#1}{#2}#2%
+ }{%
+ \scr@ErrorWarningInfo{#1}{#3}#3%
+ }%
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \begin{macro}{\scr@ErrorWarningInfo}
+% \changes{v3.20}{2015/10/14}{added}
+% \changes{v3.22}{2016/09/28}{message fixed}
+% \begin{macrocode}
+\DeclareRobustCommand*{\scr@ErrorWarningInfo}[2]{%
+% \end{macrocode}
+% \cs{scr@defineobsoletefonts} = 0 means an error message:
+% \begin{macrocode}
+ \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
+% \end{macrocode}
+% \cs{scr@defineobsoletefonts} = 0 means a warning:
+% \begin{macrocode}
+ \or
+ \expandafter\ClassWarning
+% \end{macrocode}
+% \cs{scr@defineobsoletefonts} = 0 means an info message:
+% \begin{macrocode}
+ \or
+ \expandafter\ClassInfo
+% \end{macrocode}
+% All other values mean no message:
+% \begin{macrocode}
+ \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
+}
+%</class&body>
+% \end{macrocode}
+% \end{macro}^^A \scr@OldFontErrorWarningInfo
+% \end{macro}^^A \scr@DeclareOldFontCommand
+%
+% \begin{command}{\rm,\sf,\tt,\bf,\it,\sl,\sc}
+% \changes{v3.12}{2013/10/13}{deprecated}
+% \begin{command}{\sfb}
+% \changes{v2.2c}{1995/05/25}{not in math mode}
+% \changes{v2.3a}{1995/07/08}{independent from compatibility mode}
+% \changes{v3.12}{2013/10/13}{deprecated}
+% The old font selection commands from \LaTeX~2.09. They are not supported any
+% more. The same for the \pkg*{Script 2.0} command \cs{sfb}.
+% \begin{macrocode}
+%<*class&body>
+\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}
+%</class&body>
+% \end{macrocode}
+% \end{command}
+% \end{command}
+%
+% \begin{command}{\cal,\mit}
+% \changes{v2.3}{1995/06/25}{here instead in the \LaTeX{} kernel}
+% \changes{v2.3g}{1996/01/14}{not needed braces removed}
+% \begin{macrocode}
+%<*class&body>
+\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal}
+\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal}
+%</class&body>
+% \end{macrocode}
+% \end{command}
+%
+%
+% \subsection{Font elements}
+%
+%
+% \begin{command}{\IfExistskomafont}
+% \changes{v3.15}{2014/11/21}{added}
+% Command
+% \begin{quote}
+% \cs{IfExistskomafont}\marg{font element}\marg{then code}\marg{else code}
+% \end{quote}
+% executes \meta{then code} if the font element \meta{font element} exists
+% either as a real font element or an alias. Otherwise \meta{else code} is used.
+% \begin{macrocode}
+%<*scrkbase&body>
+\newcommand*{\IfExistskomafont}[1]{%
+ \scr@ifundefinedorrelax{scr@fnt@#1}{%
+ \scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
+ }{%
+ \@firstoftwo
+ }%
+}
+% \end{macrocode}
+% \end{command}^^A \IfExistskomafont
+%
+% \begin{command}{\IfIsAliaskomafont}
+% \changes{v3.25}{2017/12/08}{added}
+% Command
+% \begin{quote}
+% \cs{IfIsAliaskomafont}\marg{font element}\marg{then code}\marg{else code}
+% \end{quote}
+% executes \meta{then code} if the font element \meta{font element} is an alias.
+% Otherwise \meta{else code} is used.
+% \begin{macrocode}
+\newcommand*{\IfIsAliaskomafont}[1]{%
+ \scr@ifundefinedorrelax{scr@fnt@#1}{%
+ \scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}%
+ }{%
+ \@secondoftwo
+ }%
+}
+% \end{macrocode}
+% \end{command}^^A \IfIsAliaskomafont
+%
+% \begin{command}{\setkomafont}
+% \changes{v2.8o}{2001/09/14}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% Command
+% \begin{quote}
+% \cs{setkomafont}\marg{element}\marg{font settings}
+% \end{quote}
+% sets the \meta{font settings} of font element \meta{element}. Setting of an
+% unknown font element results in an error. Setting of an alias font element
+% results in an info an the setting of the real element. Note: \meta{font
+% settings} should be only font selection commands.
+% \begin{macrocode}
+\newcommand*{\setkomafont}[2]{%
+ \@ifundefined{scr@fnt@#1}{%
+ \@ifundefined{scr@fnt@instead@#1}{%
+ \PackageError{scrkbase}{%
+ font of element `#1' can't be set}{%
+ You've told me to redefine the font selection of the
+ element,\MessageBreak%
+ but either no such element is known by
+ KOMA-Script\MessageBreak%
+ or the element does not use a special font selection%
+ }%
+ }{%
+ \PackageInfo{scrkbase}{%
+ You've told me to redefine the font selection of the\MessageBreak
+ element `#1' that is an alias of element\MessageBreak
+ `\csname scr@fnt@instead@#1\endcsname'%
+ }%
+ \expandafter\setkomafont\expandafter{%
+ \csname scr@fnt@instead@#1\endcsname}{#2}%
+ }%
+ }{%
+ \expandafter\expandafter\expandafter\def\csname scr@fnt@#1\endcsname{#2}%
+ }%
+ \@ifundefined{scr@fnt@wrn@#1}{}{%
+ \PackageWarning{scrkbase}{%
+ \csname scr@fnt@wrn@#1\endcsname{#1}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{command}^^A \setkomafont
+%
+% \begin{command}{\addtokomafont}
+% \changes{v2.8p}{2001/09/22}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% Command
+% \begin{quote}
+% \cs{addtokomafont}\marg{element}\marg{font settings}
+% \end{quote}
+% adds the \meta{font settings} to the settings of font element
+% \meta{element}. Setting of an unknown font element results in an
+% error. Setting of an alias font element results in an info an the setting of
+% the real element.
+% \begin{macrocode}
+\newcommand*{\addtokomafont}[2]{%
+ \@ifundefined{scr@fnt@#1}{%
+ \@ifundefined{scr@fnt@instead@#1}{%
+ \PackageError{scrkbase}{%
+ font of element `#1' can't be extended%
+ }{%
+ You've told me to extend the font selection of the
+ element,\MessageBreak
+ but either no such element is known by
+ KOMA-Script\MessageBreak
+ or the element does not use a special font selection%
+ }%
+ }{%
+ \PackageInfo{scrkbase}{%
+ You've told me to extend the font selection of the\MessageBreak
+ element `#1' that is an alias of element\MessageBreak
+ `\csname scr@fnt@instead@#1\endcsname'%
+ }%
+ \expandafter\addtokomafont\expandafter{%
+ \csname scr@fnt@instead@#1\endcsname}{#2}%
+ }%
+ }{%
+ \expandafter\expandafter\expandafter\l@addto@macro
+ \csname scr@fnt@#1\endcsname{#2}%
+ }%
+ \@ifundefined{scr@fnt@wrn@#1}{}{%
+ \PackageWarning{scrkbase}{%
+ \csname scr@fnt@wrn@#1\endcsname{#1}%
+ }%
+ }%
+}
+% \end{macrocode}
+% \end{command}^^A \addtokomafont
+%
+% \begin{command}{\usekomafont}
+% \changes{v2.8p}{2001/09/28}{added}
+% \changes{v2.96}{2006/08/18}{alias usage fixed}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% Command
+% \begin{quote}
+% \cs{usekomafont}\marg{element}
+% \end{quote}
+% activates the font settings of the font \meta{element}.
+% \begin{macrocode}
+\newcommand*{\usekomafont}[1]{%
+ \@ifundefined{scr@fnt@#1}{%
+ \@ifundefined{scr@fnt@instead@#1}{%
+ \PackageError{scrkbase}{%
+ font of element `#1' can't be used%
+ }{%
+ You've told me to use the font selection of the
+ element,\MessageBreak
+ but either no such element is known by
+ KOMA-Script\MessageBreak
+ or the element does not use a special font selection%
+ }%
+ }{%
+ \PackageInfo{scrkbase}{%
+ You've told me to use the font selection of the
+ element\MessageBreak
+ `#1' that is an alias of element `\csname
+ scr@fnt@instead@#1\endcsname'\MessageBreak
+ }%
+ \expandafter\expandafter\expandafter\usekomafont
+ \expandafter\expandafter\expandafter{%
+ \csname scr@fnt@instead@#1\endcsname}%
+ }%
+ }{%
+ \@nameuse{scr@fnt@#1}%
+ }%
+}
+% \end{macrocode}
+% \end{command}^^A \usekomafont
+%
+%
+% \begin{command}{\usesizeofkomafont}
+% \changes{v3.12}{2013/03/30}{new}
+% \changes{v3.17}{2015/04/03}{new more robust implementation}
+% \changes{v3.24}{2017/05/06}{new more robust implementation}
+% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel change}
+% \begin{command}{\usefamilyofkomafont,\useseriesofkomafont}
+% \changes{v3.12}{2013/03/30}{new}
+% \changes{v3.17}{2015/04/03}{new more robust implementation}
+% \changes{v3.24}{2017/05/06}{new more robust implementation}
+% \begin{command}{\useshapeofkomafont}
+% \changes{v3.12}{2013/03/30}{new}
+% \changes{v3.16a}{2015/02/20}{fix of macro name}
+% \changes{v3.17}{2015/04/03}{new more robust implementation}
+% \changes{v3.24}{2017/05/06}{new more robust implementation}
+% \begin{command}{\useencodingofkomafont}
+% \changes{v3.12}{2013/03/30}{new}
+% \changes{v3.17}{2015/04/03}{new more robust implementation}
+% \changes{v3.24}{2017/05/06}{new more robust implementation}
+% \begin{command}{\usefontofkomafont}
+% \changes{v3.12}{2013/03/30}{new}
+% \changes{v3.17}{2015/04/03}{new more robust implementation}
+% \changes{v3.24}{2017/05/06}{new more robust implementation}
+% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel change}
+% Sometimes not the whole font but only single elements of a font is
+% wanted.
+% \begin{macrocode}
+\newcommand*{\usesizeofkomafont}[1]{%
+ \begingroup
+ \scr@prepareforkomafont
+ \sbox\@tempboxa{%
+ \usekomafont{#1}{%
+ \selectfont
+ \global\let\g@scr@f@size\f@size
+ \global\let\g@scr@f@baselineskip\f@baselineskip
+ \global\let\g@scr@f@linespread\f@linespread
+ }%
+ }%
+ \endgroup
+ \linespread{\g@scr@f@linespread}%
+ \fontsize{\g@scr@f@size}{\g@scr@f@baselineskip}%
+ \selectfont
+}
+\newcommand*{\usefamilyofkomafont}{\use@ofkomafont{family}}
+\newcommand*{\useseriesofkomafont}{\use@ofkomafont{series}}
+\newcommand*{\useshapeofkomafont}{\use@ofkomafont{shape}}
+\newcommand*{\useencodingofkomafont}{\use@ofkomafont{encoding}}
+\newcommand*{\usefontofkomafont}[1]{%
+ \begingroup
+ \scr@prepareforkomafont
+ \sbox\@tempboxa{%
+ \usekomafont{#1}{%
+ \selectfont
+ \global\let\g@scr@f@encoding\f@encoding
+ \global\let\g@scr@f@family\f@family
+ \global\let\g@scr@f@series\f@series
+ \global\let\g@scr@f@shape\f@shape
+ \global\let\g@scr@f@size\f@size
+ \global\let\g@scr@f@baselineskip\f@baselineskip
+ \global\let\g@scr@f@linespread\f@linespread
+ }%
+ }%
+ \endgroup
+ \linespread{\g@scr@f@linespread}%
+ \fontsize{\g@scr@f@size}{\g@scr@f@baselineskip}%
+ \usefont{\g@scr@f@encoding}{\g@scr@f@family}{\g@scr@f@series}{\g@scr@f@shape}%
+}%
+% \end{macrocode}
+% \begin{macro}{\use@ofkomafont}
+% \changes{v3.12}{2013/03/30}{new (internal)}
+% \changes{v3.17}{2015/04/03}{new more robust implementation}
+% \changes{v3.24}{2017/05/06}{new more robust implementation}
+% \changes{v3.34}{2021/05/17}{new implementation due to \LaTeX{} kernel change}
+% Helper macro for all commands above despite the first and the last one.
+% \begin{macrocode}
+\newcommand*{\use@ofkomafont}[2]{%
+ \begingroup
+ \scr@prepareforkomafont
+ \sbox\@tempboxa{%
+ \usekomafont{#2}{%
+ \selectfont
+ \global\expandafter\let\csname g@scr@f@#1\expandafter\endcsname
+ \csname f@#1\endcsname
+ }%
+ }%
+ \endgroup
+ \@nameuse{font#1}{\csname g@scr@f@#1\endcsname}%
+ \selectfont
+}
+% \end{macrocode}
+% \begin{macro}{\g@scr@usefont}
+% \changes{v3.17}{2015/04/03}{added}
+% \changes{v3.24}{2017/05/06}{removed}
+% \end{macro}^^A \g@scr@usefont
+% \begin{macro}{\g@scr@f@encoding,\g@scr@f@family,\g@scr@f@series,\g@scr@f@shape,
+% \g@scr@f@size,\g@scr@f@baselineskip,\g@scr@f@linespread}
+% \changes{v3.24}{2017/05/06}{added}
+% \begin{macrocode}
+\newcommand*{\g@scr@f@encoding}{}\let\g@scr@f@encoding\f@encoding
+\newcommand*{\g@scr@f@family}{}\let\g@scr@f@family\f@family
+\newcommand*{\g@scr@f@series}{}\let\g@scr@f@series\f@series
+\newcommand*{\g@scr@f@shape}{}\let\g@scr@f@shape\f@shape
+\newcommand*{\g@scr@f@size}{}\let\g@scr@f@size\f@size
+\newcommand*{\g@scr@f@baselineskip}{}\let\g@scr@f@baselineskip\f@baselineskip
+\newcommand*{\g@scr@f@linespread}{}\let\g@scr@f@linespread\f@linespread
+% \end{macrocode}
+% \end{macro}^^A \g@scr@f@encoding … \g@scr@f@linespread
+% \begin{macro}{\scr@komafontrelaxlist}
+% \changes{v3.17}{2015/04/03}{added}
+% \changes{v3.24}{2017/05/05}{\cs{uppercase} and \cs{lowercase} removed}
+% \changes{v3.24}{2017/05/05}{\cs{MakeUppercase} and \cs{MakeLowercase} moved to
+% \cs{scr@komafontonearglist}}
+% A \cs{do} list of all macros, that should become \cs{relax} in the previous
+% commands.
+% \begin{macrocode}
+\newcommand*{\scr@komafontrelaxlist}{%
+ \do\normalcolor
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@komafontrelaxlist
+% \begin{macro}{\scr@komafontgobblelist}
+% \changes{v3.19}{2015/08/20}{added}
+% Like \cs{scr@komafontrelaxlist} but with \cs{@gobble} instead of \cs{relax}.
+% \begin{macrocode}
+\newcommand*{\scr@komafontgobblelist}{%
+ \do\color
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@komafontgobblelist
+% \begin{macro}{\scr@komafontonearglist}
+% \changes{v3.24}{2017/05/05}{added}
+% Like \cs{scr@komafontgobblelist} but with \cs{@firstofone} instead of
+% \cs{@gobble}.
+% \begin{macrocode}
+\newcommand*{\scr@komafontonearglist}{%
+ \do\MakeUppercase \do\MakeLowercase
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@komafontonearglist
+% \begin{macro}{\scr@prepareforkomafont}
+% \changes{v3.17}{2015/04/03}{added}
+% \changes{v3.19}{2015/08/20}{using \cs{scr@komafontgobblelist}}
+% \changes{v3.24}{2017/05/05}{using \cs{scr@komafontonearglist}}
+% Process all the \cs{do} lists. Note: Should be encapsulated into a local group.
+% \begin{macrocode}
+\newcommand*{\scr@prepareforkomafont}{%
+ \long\def\do##1{\let##1\relax}\scr@komafontrelaxlist
+ \long\def\do##1{\let##1\@gobble}\scr@komafontgobblelist
+ \long\def\do##1{\let##1\@firstofone}\scr@komafontonearglist
+}
+% \end{macrocode}
+% \end{macro}^^A \scr@prepareforkomafont
+% \begin{command}{\addtokomafontrelaxlist}
+% \changes{v3.17}{2015/04/03}{added}
+% Adds exactly one macro/command to \cs{scr@komafontrelaxlist}.
+% \begin{macrocode}
+\newcommand*{\addtokomafontrelaxlist}[1]{%
+ \l@addto@macro\scr@komafontrelaxlist{\do#1}%
+}
+% \end{macrocode}
+% \end{command}^^A \addtokomafontrelaxlist
+% \begin{command}{\addtokomafontgobblelist}
+% \changes{v3.19}{2015/08/20}{added}
+% Adds exactly one macro/command to \cs{scr@komafontgobblelist}.
+% \begin{macrocode}
+\newcommand*{\addtokomafontgobblelist}[1]{%
+ \l@addto@macro\scr@komafontgobblelist{\do#1}%
+}
+% \end{macrocode}
+% \end{command}^^A \addtokomafontgobblelist
+% \begin{command}{\addtokomafontonearglist}
+% \changes{v3.24}{2017/05/05}{added}
+% Adds exactly one macro/command to \cs{scr@komafontonearglist}.
+% \begin{macrocode}
+\newcommand*{\addtokomafontonearglist}[1]{%
+ \l@addto@macro\scr@komafontonearglist{\do#1}%
+}
+% \end{macrocode}
+% \end{command}^^A \addtokonafontonearglist
+% \end{macro}^^A \use@ofkomafont
+% \end{command}^^A \usefontofkomafont
+% \end{command}^^A \useencodingofkomafont
+% \end{command}^^A \useshapeofkomafont
+% \end{command}^^A \usefamilyofkomafont,\useseriesofkomafont
+% \end{command}^^A \usesizeofkomafont
+%
+%
+% \begin{command}{\newkomafont}
+% \changes{v2.95}{2004/07/21}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% \changes{v3.11c}{2013/02/18}{the warning needs an argument}
+% \changes{v3.25}{2017/12/08}{warn if already exists as an alias}
+% Command
+% \begin{quote}
+% \cs{newkomafont}\oarg{warning}\marg{element}\marg{font settings}
+% \end{quote}
+% defines a new font \meta{element} with the given \meta{font settings} as
+% default. The optional \meta{warning} is shown whenever the font setting of
+% the element is changed, but not when the element is used. Internally a macro
+% \cs{@\meta{element}font} is defined with the \meta{font settings}. An
+% additional macro \cs{scr@fnt@\meta{element}} is defined to just execute
+% \cs{@meta{element}font}. But you also can define \cs{scr@fnt@\meta{element}}
+% to use another internal font storage macro. So several elements can share
+% the same font settings.
+% \begin{macrocode}
+\newcommand*{\newkomafont}[3][\relax]{%
+ \scr@ifundefinedorrelax{scr@fnt@instead@#2}{}{%
+ \PackageWarning{scrkbase}{%
+ Making stand-alone element `#2' from\MessageBreak
+ alias to `\@nameuse{scr@fnt@instead@#2}'
+ }%
+ \expandafter\let\csname scr@fnt@instead@#2\endcsname\relax
+ }%
+ \expandafter\newcommand\expandafter*\csname @#2font\endcsname{#3}%
+ \expandafter\expandafter\expandafter\newcommand
+ \expandafter\expandafter\expandafter*%
+ \expandafter\csname scr@fnt@#2\expandafter\endcsname\expandafter{%
+ \csname @#2font\endcsname%
+ }%
+ \ifx\relax#1\relax\else
+ \expandafter\newcommand\expandafter*\csname scr@fnt@wrn@#2\endcsname[1]{#1}%
+ \fi
+}
+% \end{macrocode}
+% \begin{command}{\aliaskomafont}
+% \changes{v2.95}{2004/07/21}{added}
+% \changes{v3.05a}{2010/03/24}{moved to \pkg*{scrkbase}}
+% \changes{v3.25}{2017/12/08}{warning if element is already defined}
+% Another possibility to share fonts is to define an
+% alias by defining \cs{scr@fnt@instead@\meta{element}} with the name of
+% another element. This can be done using
+% \begin{quote}
+% \cs{aliaskomafont}\marg{alias}\marg{element}
+% \end{quote}
+% It defines \marg{alias} to be an alias of \meta{element}.
+% \begin{macrocode}
+\newcommand*{\aliaskomafont}[2]{%
+ \scr@ifundefinedorrelax{scr@fnt@#1}{}{%
+ \PackageWarning{scrkbase}{%
+ Redefining stand alone element `#1' as\MessageBreak
+ alias to `#2'%
+ }
+ \expandafter\let\csname scr@fnt@#1\endcsname\relax
+ }%
+ \scr@ifundefinedorrelax{scr@fnt@wrn@#1}{}{%
+ \expandafter\let\csname scr@fnt@wrn@#1\encsname\relax
+ }
+ \expandafter\newcommand\expandafter*\csname scr@fnt@instead@#1\endcsname{%
+ #2%
+ }%
+}
+%</scrkbase&body>
+% \end{macrocode}
+% \end{command}
+% \end{command}
+%
+% \Finale
+% \PrintChanges
+%
+\endinput
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% TeX-engine: luatex-dev
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End: