% \iffalse meta-comment % ====================================================================== % scrkernel-fonts.dtx % Copyright (c) Markus Kohm, 2002-2021 % % 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.txt. % ---------------------------------------------------------------------- % scrkernel-fonts.dtx % Copyright (c) Markus Kohm, 2002-2021 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3c ist Teil aller Verteilungen von LaTeX % Version 2005/12/01 oder spaeter und dieses Werks. % % Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" % (allein durch den Autor verwaltet). % % Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. % % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== % \fi % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \iffalse %%% From File: $Id: scrkernel-fonts.dtx 3597 2021-05-17 12:54:47Z kohm $ %%%% (run: identify) % %<*body> % \fi % % \subsection{Sicherstellen der Umgebung des Generators} % % \iffalse %<*generator> % \fi % Der Generator benötigt die Anweisung \cs{changefontsizes}, die entweder von % einer \KOMAScript-Klasse oder vom Paket \texttt{scrextend} bereitgestellt % wird: % \begin{macrocode} \@ifundefined{changefontsizes}{\RequirePackage{scrextend}}{} % \end{macrocode} % \iffalse % % \fi % % \subsection{Einlesen der Schriftgrößendatei} % % \changes{v2.6}{2000/01/04}{Einlesen der Schriftgrößen-Options-Datei % funktioniert nun mit diversen Größen}%^^A % \changes{v2.98c}{2008/03/26}{Eigene \texttt{scrsize}-Dateien definiert} % % \iffalse % %<*10pt|11pt|12pt> % \fi % % Es werden min. drei Schriftgrößendateien benötigt. Ab Version 2.98c % verwendet \KOMAScript{} vorzugsweise eigene Dateien, die auch noch zu einem % späteren Zeitpunkt geladen werden können. Ansonsten sind diese Dateien % weitestgehend dem Quellcode der Standardklassen \texttt{classes.dtx} % entnommen. % % \begin{macrocode} \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{macro}{\normalsize} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\small} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\footnotesize} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\scriptsize} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\tiny} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\large} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\Large} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\LARGE} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\huge} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\Huge} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % Siehe \texttt{classes.dtx}. % \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@ % %<*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@ % %<*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@ % \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}% % %<*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}% % %<*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}% % \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}% % %<*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}% % %<*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}% % \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}} % %<*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}} % %<*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 % \normalsize % \end{macrocode} % \begin{Length}{\footnotesep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\footins} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\floatsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\textfloatsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\intextsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\dblfloatsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\sbltextfloatsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\@fptop} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\@fpsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\@fpbot} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\@dblfptop} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\@dblfpsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\@dblfpbot} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{Length}{\partopsep} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % Siehe \texttt{classes.dtx}. % \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\@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} \setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@} % %<*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\@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} \setlength\partopsep {3\p@ \@plus 1\p@ \@minus 1\p@} % %<*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\@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} \setlength\partopsep {3\p@ \@plus 2\p@ \@minus 2\p@} % % \end{macrocode} % \begin{macro}{\@listi} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\@listii} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\@listiii} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\@listiv} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\@listv} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % \begin{macro}{\@listvi} % \changes{v2.98c}{2008/03/26}{in eigener \texttt{scrsize}-Datei definiert} % Siehe \texttt{classes.dtx}. % \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@} % %<*11pt> \parsep 4.5\p@ \@plus2\p@ \@minus\p@ \topsep 9\p@ \@plus3\p@ \@minus5\p@ \itemsep4.5\p@ \@plus2\p@ \@minus\p@} % %<*12pt> \parsep 5\p@ \@plus2.5\p@ \@minus\p@ \topsep 10\p@ \@plus4\p@ \@minus6\p@ \itemsep5\p@ \@plus2.5\p@ \@minus\p@} % \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@ % %<*11pt> \topsep 4.5\p@ \@plus2\p@ \@minus\p@ \parsep 2\p@ \@plus\p@ \@minus\p@ % %<*12pt> \topsep 5\p@ \@plus2.5\p@ \@minus\p@ \parsep 2.5\p@ \@plus\p@ \@minus\p@ % \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} % \end{macrocode} % \iffalse % %<*body> % \fi % % \iffalse %<*class|extend> % \fi % % \begin{macro}{\changefontsizes} % \changes{v2.96}{2006/08/11}{neue Anweisung (benötigt \eTeX)}%^^A % \changes{v3.08b}{2011/02/22}{drei falsche \cs{def} durch \cs{edef} % ersetzt}%^^A % \changes{v3.17}{2015/02/23}{wird nur definiert, wenn nicht vorhanden}%^^A % \begin{macro}{\simple@changefontsizes} % \changes{v3.17}{2015/02/23}{auf speziellen Wunsch von Falk}%^^A % \changes{v3.17}{2015/03/25}{\cs{par@updaterelative} hinzugefügt}%^^A % Diese Anweisung bietet berechnete Schriftgrößen als Fallbacklösung an. Das % optionale erste Argument ist dabei der Grundlinienabstand. Das zweite % Argument ist die gewünschte Grundschriftgröße. % \begin{macro}{\scr@setlength} % \changes{v3.12}{2013/10/08}{neue Anweisung (intern)}%^^A % Setzt die Länge in |#1| auf den Wert |#2| plus |#3| minus |#4|, wobei % allerdings für |#2|, |#3| und |#4| Mindestwerte von 1\,pt verwendet werden. % \begin{macrocode} \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}{e-\TeX-Warnung entfernt}%^^A % \begin{macrocode} \providecommand*{\simple@changefontsizes}[2][1.2\@tempdima]{% \KOMA@kav@removekey{.% % \KOMAClassFileName % 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} % Ab hier ist \cs{@tempdimc} die gewünschte Grundschriftgröße in pt und % \cs{@tempb} der Faktor für den Grundlinienabstand auf 2 Stellen hinter dem % Komma. Zunächst ist auch \cs{@tempdima} noch die geforderte % Grundschriftgröße und \cs{@tempdimb} der geforderte % Grundlinienabstand. Allerdings verändern sich \cs{@tempdima} und % \cs{@tempdimb} im Laufe der nachfolgenden Definitionen abhängig von der zu % definierenden Schriftgröße. % % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \cs{scriptsize}: % \begin{macrocode} \setlength{\@tempdima}{.66667\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\scriptsize{% \noexpand\@setfontsize\noexpand\scriptsize {\the\@tempdima}{\the\@tempdimb}% }% % \end{macrocode} % Berechnungen für und Definition von \cs{tiny}: % \begin{macrocode} \setlength{\@tempdima}{.5\@tempdimc}% \setlength{\@tempdimb}{\@tempb\@tempdima}% \edef\tiny{% \noexpand\@setfontsize\noexpand\tiny {\the\@tempdima}{\the\@tempdimb}% }% % \end{macrocode} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Wechsel zu \cs{normalsize} und Berechnung weiterer schriftabhängigen % Abstände für diese Schriftgröße. % \begin{macrocode} \normalsize % \expandafter\ifnum\scr@v@is@ge{3.17}\@nameuse{par@updaterelative}\fi % \end{macrocode} % Ab hier kann nun \cs{f@size} für die Schriftgröße und \cs{f@baselineskip} % für den normalen Grundlinienabstand (ohne \cs{baselinestretch}) verwendet % werden. Allerdings ist das keine Länge! % \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} % Berechnungen für und Definition von \cs{@listi} und \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Berechnungen für und Definition von \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} % Einige Platzierungsabstände sind ebenfalls schriftgrößenabhängig. ^^A % \changes{v2.97c}{2007/07/04}{\cs{intextsep} setzen}%^^A % \changes{v2.97c}{2007/07/04}{\cs{dblfloatsep} setzen}%^^A % \changes{v2.97c}{2007/07/04}{\cs{partopsep} setzen}%^^A % \changes{v3.12}{2013/10/08}{Berechnung einiger Größen verändert}%^^A % Ab Version~3.12 wird deren Berechnung korrigiert. Viele der Größen sind nun % nicht mehr von der Schriftgröße, sondern dem Grundlinienabstand abhängig. % \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}% % \end{macrocode} % Hinweis: \cs{topsep} und \cs{parsep} werden hier nicht gesetzt, weil dies % bereits durch das \cs{@listi} zurvor erfolgte. % \begin{macrocode} \fi } \scr@ifundefinedorrelax{changefontsizes}{% \let\changefontsizes\simple@changefontsizes }{% % \ClassWarning{\KOMAClassName}{% % \PackageWarning{scrextend}{% \string\changefontsizes\space already defined.\MessageBreak I hope, the definition is compatible,\MessageBreak because I do not change it% }% } % \end{macrocode} % \end{macro}%^^A \simple@changefontsizes % \end{macro}%^^A \changefontsizes % \iffalse % %<*generator> % \fi % \begin{macro}{\generatefontfile} % \changes{v3.09}{2011/02/23}{Neu}%^^A % \changes{v3.17}{2015/03/26}{\cs{par@updaterelative} added}%^^A % \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A % Dies ist die zentrale Anweisung des neuen Generators. Es wird eine neue % Schriftgrößendatei ausgegeben. Der Name dieser Datei setzt sich aus dem % ersten obligaorischen Argument gefolgt von der Schriftgröße und der % Erweiterung \texttt{.clo} zusammen. Da Schriftgrößendateien, die mit % "`\texttt{scrsize}"' beginnen, \KOMAScript{} vorbehalten sind wird dieses % erste Argument verweigert. % \begin{macrocode} \newcommand*{\generatefontfile}[1]{% \Ifstr{#1}{scrsize}{% \ClassError{\KOMAClassName}{% Font file name `scrsize' not allowed% }{% Font files with name `scrsize.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}}%^^A % Das zweite Argument ist optional. Ist es angegeben, so gibt es den % gewünschten Zeilenabstand an. Ist es nicht angegeben, so wird der % Zeilenabstand |\changefontsized| überlassen. Das dritte Argument ist % schließlich die gewünschte Schriftgröße. % \begin{macrocode} \kernel@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}% }% } % \end{macrocode} % \begin{macro}{\@generatefontfile} % \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A % \begin{macro}{\@@generatefontfile} % \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A % Diese beiden Hilfsmakros werden benötigt, um Aufrufe von |\generatefontfile| % mit oder ohne optionales, zweites Argument zu behandeln. In jedem Fall wird % die gewünschte Schriftgröße innerhalb einer Gruppe mit Hilfe von % |\changefontsizes| bestimmt und dann eine Datei mit den dabei ermittelten % Einstellungen ausgegeben. % \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} % \end{macro} % \begin{macro}{\@@@generatorfontfile} % \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A % Dieses Hilfsmakro wird hingegen im Fehlerfall aufgerufen, um die Ausgabe % einer Schriftgrößendatei zu verhindern. % \begin{macrocode} \newcommand*{\@@@generatefontfile}[2][]{} % \end{macrocode} % \end{macro} % \begin{macro}{\@fontfile} % \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A % Da später die Verwendung von |\generatefontfile| noch auf die Präambel % beschränkt werden wird, ist es kein Problem hier |\@mainaux| für die Ausgabe % zu missbrauchen. Das funktioniert aber nur, weil |\@mainaux| erst innerhalb % von |\begin{document}| tatsächlich geöffnet wird. Die Dateisparsamkeit an % dieser Stelle ist also eigentlich ein ziemlich unsauberer Hack! % \begin{macrocode} \newcommand*{\@fontfile}{} \let\@fontfile\@mainaux % \end{macrocode} % \begin{macro}{\generate@fontfile} % \changes{v3.09}{2011/02/23}{Neu (intern)}%^^A % \changes{v3.16a}{2015/02/11}{\cs{footnotesize} korrigiert} % Es wird nun eine Schriftgrößendatei ausgegeben. Dabei werden die aktuellen % Einstellungen verwendet. Dabei wird die Tatsache ausgenutzt, dass diese % Anweisung immer innerhalb einer Gruppe aufgerufen wird. Das erste Argument % ist der Dateinamenpräfix (also so etwas wie "`\texttt{scrsize}"', das zweite % Argument die gewünschte Schriftgröße. Es ist zu beachten, dass alle Werte in % der Datei in pt angegeben werden, auch wenn die gewünschte Schriftgröße eine % ganz andere Einheit besitzt. Das macht schlicht die Arbeit etwas einfacher. % \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 % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \iffalse % %<*class|extend> % \fi % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{Length} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % Zunächst wird die gewünschte Größe, die in \cs{@ptsize} abgelegt ist, als % Länge ermittelt. In \cs{@tempa} wird die ursprünglich gewünschte Größe % abgelegt, damit zwischen \texttt{10pt}, \texttt{10} und \texttt{10dd} % unterschieden werden kann. In \cs{@tempb} wird hingegen die Größe in pt % abgelegt, damit die Standard-Dateien verwendet werden können. Dann wird % \cs{@ptsize} schon einmal richtig eingestellt. % \begin{macrocode} %<*!extend> \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} % Jetzt wird zunächst versucht, ob eine Datei % "`\texttt{\cs{fontsizefilebase}\cs{@tempa}.clo}"' vorhanden ist, also eine, % bei der die ursprünliche Einheit im Namen angegeben ist. Wenn das der Fall % ist, wird diese verwendet. Wenn nicht wird das Ganze für \cs{@tempb} um die % Einheit pt erweitert wiederholt. % \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}% }{% \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} % Wurde bis hier noch keine Datei geladen, wird nun versucht, die % Größendateien der Standardklassen zu verwenden. % \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}% }{% % \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} % Sind auch diese Dateien nicht vorhanden, so wird als Fallback eine % Berechnung der Schriftgrößen verwendet. Es sei darauf hingewiesen, dass % dabei auch \cs{@tempa}, \cs{@tempb} und \cs{@ptsize} neu gesetzt werden. % \begin{macrocode} \edef\@tempa{% \noexpand\changefontsizes{\@tempa}% \noexpand\KOMA@kav@xadd{.\KOMAClassFileName}{fontsize}{\@tempa}% }\@tempa % \end{macrocode} % Damit sollten nun die Schriftgrößen eingestellt sein. % \begin{macrocode} }% % }% }% } % % % % \end{macrocode} % % % \subsection{"`Alte"' Font-Auswahlbefehle} % % \begin{option}{enabledeprecatedfontcommands} % \changes{v3.20}{2015/10/14}{neue (veraltete) Option}%^^A % Diese Option ist bereits bei ihrer Definition veraltet. Sie stellt quasi die % nächste Eskalation für die veralteten Font-Auswahlbefehle dar. Man kann mit % ihrer Hilfe notfalls noch einmal die alten Befehle zurück holen. Dabei wird % in der Voreinstellung weiterhin eine Warnung ausgegeben. % \begin{macro}{\scr@defineobsoletefonts} % \changes{v3.20}{2015/10/14}{neue (veraltete) Anweisung (intern)}%^^A % Über diese Anweisung wird eingestellt, ob die veralteten Befehle mit % Fehlermeldung, Warnung, Info oder gar nicht gemeldet werden. % Negative Werte bedeuten, dass die Befehle nicht definiert werden. Null steht % für interne Fehlermeldung. Eins ist eine Warnung. Zwei ist eine Info und % darüber hinaus werden die Befehle einfach definiert. Voreingestellt ist % derzeit noch Null. In naher Zukunft wird das aber -1 werden. % \begin{macrocode} %<*option> %<*class> \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@@ } % % % \end{macrocode} % \end{macro}%^^A \scr@degineobsoletefonts % \end{option}%^^A enabledeprecatedfontscommands % % \begin{macro}{\scr@DeclareOldFontCommand} % \changes{v3.12}{2013/10/31}{neu}%^^A % \changes{v3.20}{2015/10/14}{veraltet eskaliert}%^^A % Diese Anweisung arbeitet prinzipiell wie die \LaTeX-Kern-Anweisung % \cs{DeclareOldFontCommand}, wirft aber zusätzlich mit Warnungen um sich, um % dem Anwender die Verwendung der alten Befehle zu versauern. % \begin{macrocode} %<*body> %<*class|extend> %<*!extend> \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}{neu (intern)}%^^A % \changes{v3.22}{2016/09/28}{message fixed}%^^A % \begin{macrocode} \DeclareRobustCommand*{\scr@ErrorWarningInfo}[2]{% % \end{macrocode} % Wenn \cs{scr@defineobsoletefonts} Null ist, wird eine Fehlermeldung % ausgegeben. % \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} % Bei Eins gibt es eine Warnung: % \begin{macrocode} \or \expandafter\ClassWarning % \end{macrocode} % Bei Zwei gibt es eine Info: % \begin{macrocode} \or \expandafter\ClassInfo % \end{macrocode} % Sonst gibt es nichts: % \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 } % % \end{macrocode} % \end{macro}%^^A \scr@OldFontErrorWarningInfo % \end{macro}%^^A \scr@DeclareOldFontCommand % % \begin{macro}{\rm} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % \begin{macro}{\sf} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % \begin{macro}{\tt} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % \begin{macro}{\bf} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % \begin{macro}{\it} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % \begin{macro}{\sl} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % \begin{macro}{\sc} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % \begin{macro}{\sfb} % \changes{v2.2c}{1995/05/25}{nicht mehr mathematisch}%^^A % \changes{v2.3a}{1995/07/08}{keine Unterscheidung mehr für den % Kompatibilitätsmodus}%^^A % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet}%^^A % Um die Umstellung von \LaTeX\ auf \LaTeXe\ zu erleichtern, gibt es % die alten Font-Auswahlbefehle \cs{rm}, \cs{sf}, \cs{tt}, \cs{bf}, % \cs{it}, \cs{sl} und \cs{sc} auch in den Klassen. Es ist zu % beachten, dass diese Befehle hier nach dem alten % Fontauswahlverfahren arbeiten. Es werden also immer alle Parameter % zugleich geändert. Somit ist zu empfehlen, dass statt dieser Befehle % zukünftig in der Regel die neuen \cs{text\dots}-Befehle verwendet % werden. % % Der aus der \textsf{Script 2.0}-Familie bekannte Befehl \cs{sfb} ist % hier ebenfalls definiert. % \begin{macrocode} %<*!extend> \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} % % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\cal} % \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern}%^^A % Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun % neu und gleich robust deklariert. Dafür fällt \cs{pcal} weg. % \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt}%^^A % \begin{macro}{\mit} % \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern}%^^A % Der Befehl ist in \LaTeX{} nicht mehr definiert. Deshalb wird er nun % neu und gleich robust deklariert. Dafür fällt \cs{pmit} weg. % \changes{v2.3g}{1996/01/14}{überflüssige Klammerpaare entfernt}%^^A % % Die beiden Befehle \cs{cal} und \cs{mit} war bis zur \LaTeX-Version % vom 1.12.1994 patch level 3 noch im Kernal definiert. Jetzt sind die % beiden den Klassen überlassen. Hier ist die Definition aus den % Standard-classes übernommen. % \begin{macrocode} %<*!extend> \DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} \DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} % % \end{macrocode} % \end{macro} % \end{macro} % % \iffalse % % \fi % % \subsection{Setzen der Schrift eines Elements} % % \iffalse %<*scrkbase> % \fi % % \begin{macro}{\IfExistskomafont} % \changes{v3.15}{2014/11/21}{neue Anweisung}%^^A % Führe das zweite Argument aus, wenn ein Fontelement existiert, sonst das % dritte. % \begin{macrocode} \newcommand*{\IfExistskomafont}[1]{% \scr@ifundefinedorrelax{scr@fnt@#1}{% \scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}% }{% \@firstoftwo }% } % \end{macrocode} % \end{macro} % % \begin{macro}{\IfIsAliaskomafont} % \changes{v3.25}{2017/12/08}{neue Anweisung}%^^A % Führe das zweite Argument aus, wenn ein Fontelement ein Alias is, sonst das % dritte. % \begin{macrocode} \newcommand*{\IfIsAliaskomafont}[1]{% \scr@ifundefinedorrelax{scr@fnt@#1}{% \scr@ifundefinedorrelax{scr@fnt@instead@#1}{\@secondoftwo}{\@firstoftwo}% }{% \@secondoftwo }% } % \end{macrocode} % \end{macro} % % \begin{macro}{\setkomafont} % \changes{v2.8o}{2001/09/14}{neu}%^^A % \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} % Mit Hilfe dieses Makros kann die Schriftart von % \KOMAScript-Elementen gesetzt werden. % \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{macro} % \begin{macro}{\addtokomafont} % \changes{v2.8p}{2001/09/22}{neu}%^^A % \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} % Dieses Makro funktioniert fast wie obiges, allerdings fügt es der % vorhandenen Definition etwas an. Dazu wird \cs{l@addto@macro} aus % \textsf{scrkbase} verwendet. % \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{macro} % % \begin{macro}{\usekomafont} % \changes{v2.8p}{2001/09/28}{neu}%^^A % \changes{v2.96}{2006/08/18}{Benutzung eines Fontalias korrigiert}%^^A % \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} % Mit Hilfe dieses Makros kann auf die Schriftart von % \KOMAScript-Elementen umgeschaltet werden. % \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{macro} % % \selectlanguage{english} % \begin{macro}{\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{macro}{\usefamilyofkomafont} % \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{macro}{\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{macro}{\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{macro}{\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{macro}{\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} % \selectlanguage{ngerman} % \begin{macro}{\g@scr@usefont} % \changes{v3.17}{2015/04/03}{neu (intern)}%^^A % \changes{v3.24}{2017/05/06}{entfernt}%^^A % \end{macro}%^^A \g@scr@usefont % \begin{macro}{\g@scr@f@encoding} % \changes{v3.24}{2017/05/06}{neu (intern)}%^^A % \begin{macro}{\g@scr@f@family} % \changes{v3.24}{2017/05/06}{neu (intern)}%^^A % \begin{macro}{\g@scr@f@series} % \changes{v3.24}{2017/05/06}{neu (intern)}%^^A % \begin{macro}{\g@scr@f@shape} % \changes{v3.24}{2017/05/06}{neu (intern)}%^^A % \begin{macro}{\g@scr@f@size} % \changes{v3.24}{2017/05/06}{neu (intern)}%^^A % \begin{macro}{\g@scr@f@baselineskip} % \changes{v3.24}{2017/05/06}{neu (intern)}%^^A % \begin{macro}{\g@scr@f@linespread} % \changes{v3.24}{2017/05/06}{neu (intern)}%^^A % \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@linespread % \end{macro}%^^A \g@scr@f@family % \end{macro}%^^A \g@scr@f@series % \end{macro}%^^A \g@scr@f@shape % \end{macro}%^^A \g@scr@f@size % \end{macro}%^^A \g@scr@f@baselineskip % \end{macro}%^^A \g@scr@f@linespread % \begin{macro}{\scr@komafontrelaxlist} % \changes{v3.17}{2015/04/03}{neu (intern)}%^^A % \changes{v3.24}{2017/05/05}{\cs{uppercase} und \cs{lowercase} entfernt}%^^A % \changes{v3.24}{2017/05/05}{\cs{MakeUppercase} und \cs{MakeLowercase} nach % \cs{scr@komafontonearglist} verschoben}%^^A % Hilfsmakro mit einer |\do|-Liste aller Makros, die in obigen Font-Makros vor % der Anwendung des Fonts |\relax| verwenden sollen. % \begin{macrocode} \newcommand*{\scr@komafontrelaxlist}{% \do\normalcolor } % \end{macrocode} % \end{macro}%^^A \scr@komafontrelaxlist % \begin{macro}{\scr@komafontgobblelist} % \changes{v3.19}{2015/08/20}{neu (intern)}%^^A % Wie \cs{scr@komafontrelaxlist} nur dass |\@gobble| statt |\relax| verwendet % wird. % \begin{macrocode} \newcommand*{\scr@komafontgobblelist}{% \do\color } % \end{macrocode} % \end{macro}%^^A \scr@komafontgobblelist % \begin{macro}{\scr@komafontonearglist} % \changes{v3.24}{2017/05/05}{neu (intern)}%^^A % Hilfsmakro mit einer |\do|-Liste aller Makros, die in obige Font-Makros % vor der Anwendung des Fonts |\@firstofone| verwenden sollen. % \begin{macrocode} \newcommand*{\scr@komafontonearglist}{% \do\MakeUppercase \do\MakeLowercase } % \end{macrocode} % \end{macro} % \begin{macro}{\scr@prepareforkomafont} % \changes{v3.17}{2015/04/03}{neu (intern)}%^^A % \changes{v3.19}{2015/08/20}{abarbeiten von \cs{scr@komafontgobblelist}}%^^A % \changes{v3.24}{2017/05/05}{abarbeiten von \cs{scr@komafontonearglist}}%^^A % Hilfsmakro, das die Vorbereitungen für die obigen Font-Makros trifft. In der % Voreinstellung ist das lediglich die Anwendung der |\do|-Liste, so dass die % dort angegebenen Makros alle |\relax| bzw. |\@gobble| werden. Da die % Anweisung dazu |\do| umdefiniert, sollte die Anweisung immer in einer Gruppe % eingeschlossen werden. % \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{macro}{\addtokomafontrelaxlist} % \changes{v3.17}{2015/04/03}{Neu} % Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste % hinzuzufügen. % \begin{macrocode} \newcommand*{\addtokomafontrelaxlist}[1]{% \l@addto@macro\scr@komafontrelaxlist{\do#1}% } % \end{macrocode} % \end{macro}%^^A \addtokomafontrelaxlist % \begin{macro}{\addtokomafontgobblelist} % \changes{v3.19}{2015/08/20}{Neu} % Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste % hinzuzufügen. % \begin{macrocode} \newcommand*{\addtokomafontgobblelist}[1]{% \l@addto@macro\scr@komafontgobblelist{\do#1}% } % \end{macrocode} % \end{macro}%^^A \addtokomafontgobblelist % \begin{macro}{\addtokomafontonearglist} % \changes{v3.24}{2017/05/05}{Neu} % Diese Anweisung erlaubt es genau ein Makro der obigen |\do|-Liste % hinzuzufügen % \begin{macrocode} \newcommand*{\addtokomafontonearglist}[1]{% \l@addto@macro\scr@komafontonearglist{\do#1}% } % \end{macrocode} % \end{macro}%^^A \addtokonafontonearglist % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % Um dann ein Element zu definieren, definiert man zunächst ein % Makro, das die Schriftart enthält. Dann definiert man % \cs{scr@fnt@\emph{Elementname}}. Wobei der Inhalt dieses Makros das % Makro ist, das die Schriftart speichert. Damit ist das Element % definiert. Soll ein Element durch ein anderes Element gesteuert % werden, so definiert man stattdessen % \cs{scr@fnt@instead@\emph{Elementname}}, wobei der Inhalt des Makros % dann der Name jenes anderen Elements ist. Soll beim Ändern der % Schrift eines Elements eine zusätzliche Warnung ausgegeben werden, % so kann der Text dieser Warnung in % \cs{scr@fnt@wrn@\emph{Elementname}} abgelegt werden. Die Warnung wird dann % als Befehl mit einem Argument definiert. Also alles % eigentlich ganz einfach. Damit es noch einfacher wird, ein paar % Hilfsmakros: % % \begin{macro}{\newkomafont} % \changes{v2.95}{2004/07/21}{neu}%^^A % \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} % \changes{v3.11c}{2013/02/18}{die Warnung hat ein Argument}%^^A % \changes{v3.25}{2017/12/08}{Warnung, wenn bereits als Alias definiert}%^^A % Mit \cs{newkomafont} wird ein neues Element definiert. Das erste optionale % Argument ist dabei die optionale Warnung. Ist dieses nicht gesetzt oder % \cs{relax}, so wird keine Warnung definiert. Das erste obligatorische % Argument ist der Name des Elements. Als letztes folgt die Voreinstellung für % die Schrift dieses Elements. Als Fontmakro wird übrigens % \cs{@\emph{Elementname}font} definiert. % \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{macro}{\aliaskomafont} % \changes{v2.95}{2004/07/21}{neu}%^^A % \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben}%^^A % \changes{v3.25}{2017/12/08}{Warnung, wenn bereits als Font definiert}%^^A % Mit \cs{aliaskomafont} wird hingegen einfach ein Alias definiert. Dieser % Befehl kennt zwei Argumente: der Name des Elements und der Names des % Elements, das stattdessen verwendet werden soll. % \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% }% } % \end{macrocode} % \end{macro} % \end{macro} % % \iffalse % % \fi % % \iffalse % % \fi % % \Finale % \endinput % % end of file `scrkernel-fonts.dtx' %%% Local Variables: %%% mode: doctex %%% TeX-master: t %%% End: