% \CheckSum{3220} % \iffalse meta-comment % ====================================================================== % scrkernel-fonts.dtx % Copyright (c) Markus Kohm, 2002-2013 % % 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-2013 % % 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 1483 2013-10-31 15:12:30Z mjk $ %<*driver> \ProvidesFile{scrkernel-fonts.dtx}[2013/10/31 v3.12 KOMA-Script (font size)] % \changes{v3.09}{2011/02/23}{Neues Paket \texttt{scrfontsizes}} % %<*package&generator&identify> %\ProvidesPackage{scrfontsizes}[% %!KOMAScriptVersion % package (font size file generator)] % %<*driver> \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} \usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrkernel-fonts.dtx} \title{\KOMAScript{} \partname\ \texttt{\filename}% \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} \date{\filedate} \author{Markus Kohm} \begin{document} \maketitle \tableofcontents \DocInput{\filename} \end{document} % % \fi % % \selectlanguage{ngerman} % % \changes{v2.95}{2002/06/25}{% % erste Version aus der Aufteilung von \texttt{scrclass.dtx}} % % \section{Schriftauswahl} % % Dieser Bereich befasst sich mit allem, was zur Schriftauswahl % gehört. Die einzelnen Elemente, für die eine Schriftauswahl möglich % ist, sind jedoch in den Dateien definiert, in denen diese Elemente % auftreten. % % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse %<*option> % \fi % % \subsection{Der Generator für Schriftgrößendateien} % % \iffalse %<*generator> % \fi % Ab Version 3.09 gibt es einen Generator für neue % Schriftgrößendateien. Dieser richtet sich vor allem an Klassenautoren und % bietet die Möglichkeit, eine eigene berechnete Schriftgrößendatei als % Grundlage für eine spezifisch angepasste Schriftgrößendateie zu erstellen. % Optionen besitzt dieser jedoch nicht. Daher reduziert sich der Optionenteil % auf ein einfaches % \begin{macrocode} \ProcessOptions\relax % \end{macrocode} % \iffalse % % \fi % % \subsection{Option zur Auswahl der Größe der Grundschrift} % % \iffalse %<*class|extend> % \fi % \begin{option}{10pt} % \begin{option}{11pt} % \begin{option}{12pt} % Diese Optionen existieren nicht mehr als explizite Optionen, sondern % werden in \texttt{scrtarea.dtx} über \cs{DeclareOption*} % ausgewertet. % \begin{macro}{\@ptsize} % \changes{v2.96}{2006/08/11}{\cs{@ptsize} hat temporär eine andere % Bedeutung} % Wir definieren \cs{@ptsize} als Grundschriftgrößee minus 10\,pt. % Hier wird die Standardeinstellung 11\,pt für alle Klassen außer der % Briefklasse gewählt. Bis zum Einstellen tatsächlichen Einstellen der % Schriftgröße wird in \cs{@ptsize} allerdings die tatsächliche Größe % angegeben, damit sich Rundungsfehler nicht so leicht summieren. % \begin{macrocode} %<*!extend> \newcommand*\@ptsize{% % 11% % 12% } % % \end{macrocode} % \end{macro} % \end{option} % \end{option} % \end{option} % % \begin{macro}{\@pt@scan} % \changes{v2.6}{2000/01/04}{neu (intern)} % \begin{macro}{\@pt@@scan} % \changes{v2.6}{2000/01/04}{neu (intern)} % \changes{v2.97c}{2007/05/12}{\cs{KOMA@UseObsolete} durch % \cs{KOMA@UseObsoleteOption} ersetzt} % \changes{v2.98c}{2008/03/22}{Verwendung von \cs{KOMA@UseObsoleteOption} % korrigiert} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch % \cs{PackageInfoNoLine} ersetzt} % \changes{v3.12}{2013/03/04}{Alle Schriftgrößen-Optionen außer % \texttt{10pt}, \texttt{11pt} und \texttt{12pt} sind überholt.} % Das Macro \cs{@pt@scan} wird benötigt, um die Schriftgröße nach der alten % Methode zu erkennen. % \begin{macrocode} %<*!extend> \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}% } % % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\@fontsizefilebase} % \changes{v2.96}{2006/08/11}{neu (intern)} % \changes{v3.00}{2008/05/01}{Definition für \textsf{scrextend} vorgezogen} % Dieses Makro speichert den Präfix der primären % Schriftgrößenoptionsdateien. Es wird nur definiert, wenn es nicht bereits % definiert ist. Damit können Wrapperklassen komplett andere Größen vorgeben, % ohne mit \cs{ReplaceInput} arbeiten zu müssen. % \begin{macrocode} \providecommand*{\@fontsizefilebase}{scrsize} % \end{macrocode} % \end{macro} % % \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}% }{% % \expandafter\@defaultunits\expandafter\@tempdima#1 pt\relax\@nnil \edef\@tempa{#1}% \setlength{\@tempdimb}{\@tempdima}% \edef\@tempb{\strip@pt\@tempdimb}% \addtolength{\@tempdimb}{-10\p@}% \edef\@ptsize{\strip@pt\@tempdimb}% \edef\@tempa{% \noexpand\makeatletter \noexpand\InputIfFileExists{\@fontsizefilebase\@tempa.clo}{% % \noexpand\ClassInfo{\KOMAClassName}{% % \noexpand\PackageInfo{scrextend}{% File `\@fontsizefilebase\@tempa.clo' used to setup font sizes}% }{% \noexpand\InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% % \noexpand\ClassInfo{\KOMAClassName}{% % \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`\@ }% % \scr@ifundefinedorrelax{changefontsizes}{% % \expandafter\AtEndOfPackage\expandafter{\@tempa}% % }{% \@tempa }% \FamilyKeyStateProcessed } % \end{macrocode} % \end{option} % % \iffalse % % \fi % % \iffalse % %<*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} % \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)} % \changes{v3.08b}{2011/02/22}{drei falsche \cs{def} durch \cs{edef} % ersetzt} % 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]{% \ifnum\scr@compatibility<\@nameuse{scr@v@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} % \begin{macrocode} \newcommand*{\changefontsizes}[2][1.2\@tempdima]{% % \ClassWarning{\KOMAClassName}{% % \PackageWarning{scrextend}{% Using fallback calculation to setup font sizes\MessageBreak for basic size `#2'}% \scr@ifundefinedorrelax{dimexpr}{% % \ClassError{\KOMAClassName}{% % \PackageError{scrextend}{% feature only allowed using e-TeX% }{% The fallback calculation to setup font sizes was implemented using e-TeX.\MessageBreak You should not continue, because the fallback calculation would fail% } }{% \@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} \ifnum\scr@compatibility<\@nameuse{scr@v@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}% \ifnum\scr@compatibility<\@nameuse{scr@v@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}% \ifnum\scr@compatibility<\@nameuse{scr@v@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 % \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} \ifnum\scr@compatibility<\@nameuse{scr@v@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} \ifnum\scr@compatibility<\@nameuse{scr@v@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} \ifnum\scr@compatibility<\@nameuse{scr@v@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} \ifnum\scr@compatibility<\@nameuse{scr@v@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} \ifnum\scr@compatibility<\@nameuse{scr@v@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} \ifnum\scr@compatibility<\@nameuse{scr@v@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} \ifnum\scr@compatibility<\@nameuse{scr@v@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 }% } % \end{macrocode} % \end{macro} % \iffalse % %<*generator> % \fi % \begin{macro}{\generatefontfile} % \changes{v3.09}{2011/02/23}{Neu} % 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} % 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} \@ifnextchar [{\@generatefontfile{#1}}{\@@generatefontfile{#1}}% }% } % \end{macrocode} % \begin{macro}{\@generatefontfile} % \changes{v3.09}{2011/02/23}{Neu (intern)} % \begin{macro}{\@@generatefontfile} % \changes{v3.09}{2011/02/23}{Neu (intern)} % 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)} % 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)} % 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)} % 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.sty\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\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\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% \@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}% }{% \InputIfFileExists{\@fontsizefilebase\@tempb pt.clo}{% \ClassInfo{\KOMAClassName}{% File `\@fontsizefilebase\@tempb pt.clo' used instead of\MessageBreak file `\@fontsizefilebase\@tempa.clo' to setup font sizes}% }{% % \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}% }{% % \InputIfFileExists{size\@tempb.clo}{% \ClassInfo{\KOMAClassName}{% File `size\@tempb.clo' used to setup font sizes}% }{% % \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} \changefontsizes{\@tempa}% % \end{macrocode} % Damit sollten nun die Schriftgrößen eingestellt sein. % \begin{macrocode} }% % }% }% } % % \end{macrocode} % % % \subsection{"`Alte"' Font-Auswahlbefehle} % % \begin{macro}{\scr@DeclareOldFontCommand} % \changes{v3.12}{2013/10/31}{neu} % 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} %<*!extend> \newcommand*{\scr@DeclareOldFontCommand}[3]{% \DeclareRobustCommand #1{\@fontswitch {% \ClassWarning{\KOMAClassName}{% Usage of deprecated font command `\string#1'!\MessageBreak You should note, that in 1994 font command `\string#1' has\MessageBreak been defined for compatiblitiy to Script 2.0 only.\MessageBreak Now, after two decades of LaTeX2e and NFSS2, you\MessageBreak shouldn't use such commands any longer and within\MessageBreak KOMA-Script usage of `\string#1' is definitely deprecated.\MessageBreak See `fntguide.pdf' for more information about\MessageBreak recommended font commands.\MessageBreak Note also, that KOMA-Script will remove the definition\MessageBreak of `\string#1' anytime until release of about version 3.20.\MessageBreak But for now, KOMA-Script will replace deprecated `\string#1'\MessageBreak by `\detokenize{#2}'% }% #2% }{% \ClassWarning{\KOMAClassName}{% Usage of deprecated font command `\string#1'!\MessageBreak You should note, that in 1994 font command `\string#1' has\MessageBreak been defined for compatiblitiy to Script 2.0 only.\MessageBreak Now, after two decades of LaTeX2e and NFSS2, you\MessageBreak shouldn't use such commands any longer and within\MessageBreak KOMA-Script usage of `\string#1' is definitely deprecated.\MessageBreak See `fntguide.pdf' for more information about\MessageBreak recommended font commands.\MessageBreak Note also, that KOMA-Script will remove the definition\MessageBreak of `\string#1' anytime until release of about version 3.20.\MessageBreak But for now, KOMA-Script will replace deprecated `\string#1'\MessageBreak by `\detokenize{#3}'% }% #3% }% }% } % % \end{macrocode} % \end{macro} % % \begin{macro}{\rm} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % \begin{macro}{\sf} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % \begin{macro}{\tt} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % \begin{macro}{\bf} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % \begin{macro}{\it} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % \begin{macro}{\sl} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % \begin{macro}{\sc} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % \begin{macro}{\sfb} % \changes{v2.2c}{1995/05/25}{nicht mehr mathematisch} % \changes{v2.3a}{1995/07/08}{keine Unterscheidung mehr für den % Kompatibilitätsmodus} % \changes{v3.12}{2013/10/13}{Anweisung ist veraltet} % 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} % 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} % \begin{macro}{\mit} % \changes{v2.3}{1995/06/25}{hier statt im \LaTeX-Kern} % 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} % % 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}{\setkomafont} % \changes{v2.8o}{2001/09/14}{neu} % \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} % \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} % \changes{v2.96}{2006/08/18}{Benutzung eines Fontalias korrigiert} % \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} % % \begin{macro}{\usesizeofkomafont} % \changes{v3.12}{2013/03/30}{neu} % \begin{macro}{\usefamilyofkomafont} % \changes{v3.12}{2013/03/30}{neu} % \begin{macro}{\useseriesofkomafont} % \changes{v3.12}{2013/03/30}{neu} % \begin{macro}{\useshapeofkomafont} % \changes{v3.12}{2013/03/30}{neu} % \begin{macro}{\useencodingofkomafont} % \changes{v3.12}{2013/03/30}{neu} % \begin{macro}{\usefontofkomafont} % \changes{v3.12}{2013/03/30}{neu} % Manchmal wollen die Leute tatsächlich gar nicht den kompletten Font eines % Elements, sondern nur einen Teilaspekt davon. Aber Version~3.12 wird das mit % Hilfe neuer Anweisungen unterstützt. % \begin{macrocode} \newcommand*{\usesizeofkomafont}[1]{% \begingroup \let\color\@gobble\let\normalcolor\relax \@tempcnta=\currentgrouplevel \usekomafont{#1}{% \ifnum \currentgrouplevel>\numexpr\@tempcnta\relax \edef\reserved@a{\noexpand\egroup\noexpand\endgroup \noexpand\fontsize{\f@size}{\f@baselineskip}% \noexpand\bgroup}% \else \edef\reserved@a{\noexpand\endgroup \noexpand\fontsize{\f@size}{\f@baselineskip}}% \fi \reserved@a }% \selectfont } \newcommand*{\usefamilyofkomafont}{\use@ofkomafont{family}} \newcommand*{\useseriesofkomafont}{\use@ofkomafont{series}} \newcommand*{\useshaperofkomafont}{\use@ofkomafont{shape}} \newcommand*{\useencodingofkomafont}{\use@ofkomafont{encoding}} \newcommand*{\usefontofkomafont}[1]{% \begingroup \let\color\@gobble\let\normalcolor\relax \@tempcnta=\currentgrouplevel \usekomafont{#1}{% \ifnum \currentgrouplevel>\numexpr\@tempcnta\relax \edef\reserved@a{\noexpand\egroup\noexpand\endgroup \noexpand\fontsize{\f@size}{\f@baselineskip}% \noexpand\fontfamily{\f@family}% \noexpand\fontseries{\f@series}% \noexpand\fontshape{\f@shape}% \noexpand\fontencoding{\f@encoding}% \noexpand\bgroup}% \else \edef\reserved@a{\noexpand\endgroup \noexpand\fontsize{\f@size}{\f@baselineskip}}% \noexpand\fontfamily{\f@family}% \noexpand\fontseries{\f@series}% \noexpand\fontshape{\f@shape}% \noexpand\fontencoding{\f@encoding}% \fi \reserved@a }% \selectfont } % \end{macrocode} % \begin{macro}{\use@ofkomafont} % \changes{v3.12}{2013/03/30}{neu (intern)} % Kleines Hilfsmakro für all diese Anweisungen bis auf die erste und die letzte. % \begin{macrocode} \newcommand*{\use@ofkomafont}[2]{% \begingroup \let\color\@gobble\let\normalcolor\relax \@tempcnta=\currentgrouplevel \usekomafont{#2}{% \ifnum \currentgrouplevel>\numexpr\@tempcnta\relax \edef\reserved@a{\noexpand\egroup\noexpand\endgroup \expandafter\noexpand\csname font#1\endcsname {\csname f@#1\endcsname}% \noexpand\bgroup}% \else \edef\reserved@a{\noexpand\endgroup \expandafter\noexpand\csname font#1\endcsname {\csname f@#1\endcsname}% }% \fi \reserved@a }% \selectfont } % \end{macrocode} % \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} % \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} % \changes{v3.11c}{2013/02/18}{die Warnung hat ein Argument} % 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]{% \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} % \changes{v3.05a}{2010/03/24}{nach \textsf{scrkbase} verschoben} % Mit \cs{aliaskomafont} wird hingegen einfach ein Alias definiert. Dieser % Befehlt kennt zwei Argumente: der Name des Elements und der Names des % Elements, das stattdessen verwendet werden soll. % \begin{macrocode} \newcommand*{\aliaskomafont}[2]{% \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: