summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkfont.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrkfont.dtx372
1 files changed, 322 insertions, 50 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx b/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx
index 8cca1c263d4..d02a5dea111 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx
@@ -1,8 +1,8 @@
-% \CheckSum{261}
+% \CheckSum{953}
% \iffalse meta-comment
% ======================================================================
% scrkfont.dtx
-% Copyright (c) Markus Kohm, 2002-2006
+% Copyright (c) Markus Kohm, 2002-2007
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
@@ -20,7 +20,7 @@
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkfont.dtx
-% Copyright (c) Markus Kohm, 2002-2006
+% Copyright (c) Markus Kohm, 2002-2007
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3b, verteilt und/oder veraendert werden.
@@ -58,7 +58,7 @@
%%% From File: scrkfont.dtx
%<*driver>
% \fi
-\ProvidesFile{scrkfont.dtx}[2006/07/30 v2.95b KOMA-Script (font selection)]
+\ProvidesFile{scrkfont.dtx}[2006/08/18 v2.96 KOMA-Script (font selection)]
% \iffalse
\documentclass[halfparskip-]{scrdoc}
\usepackage[english,ngerman]{babel}
@@ -107,13 +107,17 @@
% 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.
+% 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}
\newcommand*\@ptsize{%
-%<!letter> 1%
-%<letter> 2%
+%<!letter> 11%
+%<letter> 12%
}
% \end{macrocode}
% \end{macro}
@@ -144,19 +148,19 @@
% \end{macro}
%
% \begin{option}{fontsize}
+% \changes{v2.96}{2006/08/11}{Funktion komplett geändert}
% 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}{%
- \begingroup
- \setlength{\@tempdima}{#1}%
- \addtolength{\@tempdima}{-10\p@}%
- \edef\@tempa{\endgroup\noexpand\renewcommand*\noexpand\@ptsize{%
- \strip@pt\@tempdima}}%
- \@tempa
+ \scr@ifundefined{changefontsizes}{%
+ \@defaultunits\@tempdima#1pt\relax\@nnil
+ \edef\@ptsize{#1}%
+ }{%
+ \changefontsizes{#1}%
+ }%
}
-\@onlypreamble\KV@KOMA@fontsize
% \end{macrocode}
% \end{option}
%
@@ -172,43 +176,308 @@
% \changes{v2.6}{2000/01/04}{Einlesen der Schriftgrößen-Options-Datei
% funktioniert nun mit diversen Größen}
%
-% Dies\marginline{Geplant!} soll in einer zukünftigen Version von
-% \KOMAScript{} komplett überflüssig werden. Stattdessen werden
-% Standardeinstellung berechnet, wobei die Möglichkeit bestehen wird,
-% Abweichungen davon in einer Konfigurationsdatei abzulegen.
+% \begin{macro}{\changefontsizes}
+% \changes{v2.96}{2006/08/11}{neue Anweisung (benötigt \eTeX)}
+% 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{macrocode}
-\@tempcnta=10
-\advance\@tempcnta by\@ptsize
-\xdef\@tempa{%
-%<!book> size%
-%<book> bk%
- \the\@tempcnta.clo}
-\InputIfFileExists{\@tempa}{}{%
-%<*book>
- \xdef\@tempb{size\the\@tempcnta.clo}%
- \InputIfFileExists{\@tempb}{%
- \ClassWarning{\KOMAClassName}{%
- File `\@tempa' not found!\MessageBreak
- Used `\@tempb' instead%
- }%
+\newcommand*{\changefontsizes}[2][1.2\@tempdima]{%
+ \ClassWarning{\KOMAClassName}{%
+ Using fallback calculation to setup font sizes\MessageBreak
+ for basic size `#2'}%
+ \@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%
+ \setlength{\abovedisplayskip}{%
+ \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
+ \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
+ \setlength{\belowdisplayskip}{\abovedisplayskip}%
+ \setlength{\belowdisplayshortskip}{%
+ .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
+ \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
+ }%
+ \setlength{\@tempdima}{0.9125\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \setlength{\abovedisplayskip}{%
+ \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
+ \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
+ \setlength{\belowdisplayskip}{\abovedisplayskip}%
+ \setlength{\belowdisplayshortskip}{%
+ .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
+ \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
+ }%
+ \setlength{\@tempdima}{.83334\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \setlength{\abovedisplayskip}{%
+ \@tempdima \@plus .25\@tempdima \@minus .58\@tempdima}%
+ \setlength{\abovedisplayshortskip}{\z@ \@plus .25\@tempdima}%
+ \setlength{\belowdisplayskip}{\abovedisplayskip}%
+ \setlength{\belowdisplayshortskip}{%
+ .55\@tempdima \@plus .3\@tempdima \@minus .25\@tempdima}%
+ \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
+ }%
+ \setlength{\@tempdima}{.66667\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\scriptsize{%
+ \noexpand\@setfontsize\noexpand\scriptsize
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{.5\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\tiny{%
+ \noexpand\@setfontsize\noexpand\tiny
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{1.2\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\large{%
+ \noexpand\@setfontsize\noexpand\large
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{1.44\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\Large{%
+ \noexpand\@setfontsize\noexpand\Large
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{1.728\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\LARGE{%
+ \noexpand\@setfontsize\noexpand\LARGE
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{2.074\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\huge{%
+ \noexpand\@setfontsize\noexpand\huge
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \setlength{\@tempdima}{2.488\@tempdimc}%
+ \setlength{\@tempdimb}{\@tempb\@tempdima}%
+ \edef\Huge{%
+ \noexpand\@setfontsize\noexpand\Huge
+ {\the\@tempdima}{\the\@tempdimb}%
+ }%
+ \normalsize
+ \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}%
+ \setlength{\partopsep}{.25\@tempdimc \@plus .16667\@tempdimc \@minus
+ .16667\@tempdimc}%
+ \setlength{\topsep}{.8333\@tempdimc \@plus .3333\@tempdimc \@minus
+ .5\@tempdimc}%
+ \setlength{\parsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}%
+ \@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
+ \setlength{\topsep}{.75\@tempdimc \@plus .25\@tempdimc \@minus
+ .41667\@tempdimc}%
+ \setlength{\parsep}{.375\@tempdimc \@plus .16667\@tempdimc \@minus \p@}%
+ \@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
+ }%
+ \setlength{\topsep}{.5\@tempdimc \@plus .16667\@tempdimc \@minus
+ .16667\@tempdimc}%
+ \setlength{\parsep}{.25\@tempdimc \@plus .16667\@tempdimc \@minus \p@}%
+ \@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
+ }%
+ \setlength{\topsep}{.4167\@tempdimc \@plus .2083\@tempdimc \@minus \p@}%
+ \setlength{\parsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}%
+ \@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
+ }%
+ \setlength{\topsep}{.2083\@tempdimc \@plus \p@ \@minus \p@}%
+ \setlength{\parsep}{\p@ \@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\parsep
+ \itemsep \topsep
+ \if@tempswa\noexpand\@list@extra\fi
+ }%
+ \@tempswafalse
+ \begingroup
+ \def\@list@extra{\aftergroup\@tempswatrue}%
+ \csname @listiv\endcsname
+ \endgroup
+ \def\@listiv{\leftmargin\leftmarginiv
+ \labelwidth=\dimexpr \leftmargin-\labelsep
+ \if@tempswa\noexpand\@list@extra\fi
+ }%
+ \@tempswafalse
+ \begingroup
+ \def\@list@extra{\aftergroup\@tempswatrue}%
+ \csname @listv\endcsname
+ \endgroup
+ \def\@listv{\leftmargin\leftmarginv
+ \labelwidth=\dimexpr \leftmargin-\labelsep
+ \if@tempswa\noexpand\@list@extra\fi
+ }%
+ \@tempswafalse
+ \begingroup
+ \def\@list@extra{\aftergroup\@tempswatrue}%
+ \csname @listvi\endcsname
+ \endgroup
+ \def\@listvi{\leftmargin\leftmarginvi
+ \labelwidth=\dimexpr \leftmargin-\labelsep
+ \if@tempswa\noexpand\@list@extra\fi
+ }%
+ \@listi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@fontsizefilebase}
+% \changes{v2.96}{2006/08/11}{neu (intern)}
+% 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}
+%
+% 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}
+\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}%
}{%
-%</book>
- \ClassError{\KOMAClassName}{%
- File `\@tempa' not found!\MessageBreak
- This error is fatal!%
+% \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}%
}{%
- To every fontsize you want to select by class
- option,\MessageBreak
- you need a corresponding
-%<book> bk-class-option-file or\MessageBreak at least a
- size-class-option-file declaring all\MessageBreak
- the macros based on fontsize.\MessageBreak
- Ask a wizzard for more information or use another
- fontsize.\MessageBreak
- You cannot continue!%
- }%
- \batchmode \csname @@end\endcsname \end
-%<book> }%
+%</book>
+ \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}
+ }%
+%<book> }%
+ }%
}
% \end{macrocode}
%
@@ -330,7 +599,7 @@
% Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro}
% verhält}
% \begin{macrocode}
-\ifundefined{unexpanded}{%
+\scr@ifundefined{unexpanded}{%
\newcommand*{\g@addto@macro@temp}{}%
\newcommand{\l@addto@macro}[2]{%
\begingroup%
@@ -383,6 +652,7 @@
%
% \begin{macro}{\usekomafont}
% \changes{v2.8p}{2001/09/28}{neu}
+% \changes{v2.96}{2006/08/18}{Benutzung eines Fontalias korrigiert}
% Mit Hilfe dieses Makros kann auf die Schriftart von
% \KOMAScript-Elementen umgeschaltet werden.
% \begin{macrocode}
@@ -405,8 +675,10 @@
`#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@instead@#1}%
}{%
\@nameuse{scr@fnt@#1}%
}%