diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkfont.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkfont.dtx | 404 |
1 files changed, 397 insertions, 7 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx b/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx index 6cb3ee15055..33a90b2bc48 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkfont.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1835} +% \CheckSum{2688} % \iffalse meta-comment % ====================================================================== % scrkfont.dtx @@ -58,8 +58,14 @@ %%% From File: scrkfont.dtx %<*driver> % \fi -\ProvidesFile{scrkfont.dtx}[2010/10/24 v3.05a KOMA-Script (font selection)] +\ProvidesFile{scrkfont.dtx}[2011/02/23 v3.09 KOMA-Script (font selection)] +% \changes{v3.09}{2011/02/23}{Neues Paket \texttt{scrfontsizes}} % \iffalse +%</driver> +%<package&generator&identify>\ProvidesPackage{scrfontsizes}[% +%<package&generator&identify> \KOMAScriptVersion\space package +%<package&generator&identify> (font size file generator)] +%<*driver> \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} \usepackage[latin1]{inputenc} @@ -97,6 +103,23 @@ %<*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 +%</generator> +% \fi % % \subsection{Option zur Auswahl der Größe der Grundschrift} % @@ -231,18 +254,33 @@ %<*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 +%</generator> +% \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}{Eigener \texttt{scrsize}-Datei definiert} +% \changes{v2.98c}{2008/03/26}{Eigene \texttt{scrsize}-Dateien definiert} % % \iffalse %</body> %<*10pt|11pt|12pt> % \fi % -% Trotzdem werden min. drei Schriftgrößendateien benötigt. Ab Version 2.98c +% 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} @@ -555,6 +593,8 @@ % % \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. @@ -778,7 +818,7 @@ \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listiv\endcsname \endgroup - \def\@listiv{\leftmargin\leftmarginiv + \edef\@listiv{\leftmargin\leftmarginiv \labelwidth=\dimexpr \leftmargin-\labelsep \if@tempswa\noexpand\@list@extra\fi }% @@ -787,7 +827,7 @@ \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listv\endcsname \endgroup - \def\@listv{\leftmargin\leftmarginv + \edef\@listv{\leftmargin\leftmarginv \labelwidth=\dimexpr \leftmargin-\labelsep \if@tempswa\noexpand\@list@extra\fi }% @@ -796,7 +836,7 @@ \def\@list@extra{\aftergroup\@tempswatrue}% \csname @listvi\endcsname \endgroup - \def\@listvi{\leftmargin\leftmarginvi + \edef\@listvi{\leftmargin\leftmarginvi \labelwidth=\dimexpr \leftmargin-\labelsep \if@tempswa\noexpand\@list@extra\fi }% @@ -816,6 +856,356 @@ } % \end{macrocode} % \end{macro} +% \iffalse +%</class|extend> +%<*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<fontsize>.clo' are reserved for + KOMA-Script.\MessageBreak + You should use another prefix and rename \string\@fontsizefilebase\space + either before\MessageBreak + loading a KOMA-Script class using one of \string\documentclass, + \string\LoadClass,\MessageBreak + or \string\LoadClassWithOptions\space or before loading package + `scrextend' using another\MessageBreak + class.}% + \@@@generatefontfile + }{% +% \end{macrocode} +% 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 +%</generator> +%<*class|extend> +% \fi % \end{macro} % \end{macro} % \end{macro} |