% \CheckSum{261} % \iffalse meta-comment % ====================================================================== % scrkfont.dtx % Copyright (c) Markus Kohm, 2002-2006 % % 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.3b of the license. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3b 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. % ---------------------------------------------------------------------- % scrkfont.dtx % Copyright (c) Markus Kohm, 2002-2006 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3b, verteilt und/oder veraendert werden. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3b 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: scrkfont.dtx %<*driver> % \fi \ProvidesFile{scrkfont.dtx}[2006/07/30 v2.95b KOMA-Script (font selection)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} \usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrkfont.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{Option zur Auswahl der Größe der Grundschrift} % % \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} % 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. % \begin{macrocode} \newcommand*\@ptsize{% % 1% % 2% } % \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)} % Das Macro \cs{@pt@scan} wird benötigt, um die Schriftgröße nach der alten % Methode zu erkennen. % \begin{macrocode} \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}{% \KOMA@UseObsolete{option}{\PackageInfo}{#1#2}{fontsize=#1#2}% }{\@headlines}% }{\@headlines}% } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{option}{fontsize} % 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 } \@onlypreamble\KV@KOMA@fontsize % \end{macrocode} % \end{option} % % % % \iffalse % %<*body> % \fi % % \subsection{Einlesen der Schriftgrößendatei} % % \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{macrocode} \@tempcnta=10 \advance\@tempcnta by\@ptsize \xdef\@tempa{% % size% % 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% }% }{% % \ClassError{\KOMAClassName}{% File `\@tempa' not found!\MessageBreak This error is fatal!% }{% To every fontsize you want to select by class option,\MessageBreak you need a corresponding % 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 % }% } % \end{macrocode} % % % \subsection{"`Alte"' Font-Auswahlbefehle} % % \begin{macro}{\rm} % \begin{macro}{\sf} % \begin{macro}{\tt} % \begin{macro}{\bf} % \begin{macro}{\it} % \begin{macro}{\sl} % \begin{macro}{\sc} % \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} % 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} \DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} \DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} \DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} \DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} \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} \DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} \DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} % \end{macrocode} % \end{macro} % \end{macro} % % % \subsection{Setzen der Schrift eines Elements} % % \begin{macro}{\setkomafont} % \changes{v2.8o}{2001/09/14}{neu} % 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}{% \ClassError{\KOMAClassName}{% 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% }% }{% \ClassInfo{\KOMAClassName}{% 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}{}{% \ClassWarning{\KOMAClassName}{% \csname scr@fnt@wrn@#1\endcsname{#1}% }% }% } % \end{macrocode} % \end{macro} % \begin{macro}{\addtokomafont} % \changes{v2.8p}{2001/09/22}{neu} % Dieses Makro funktioniert fast wie obiges, allerdings fügt es der % vorhandenen Definition etwas an. % \begin{macro}{\l@addto@macro} % \changes{v2.8p}{2001/09/22}{neu (intern)} % Damit dies lokal möglich ist, wird eine lokal arbeitende Variante % von \cs{g@addto@macro} benötigt, wie sie hier vorgestellt wird. % \changes{v2.95}{2006/06/02}{korrigiert, damit es sich bezüglich % Erweiterung um Makrodefinitonen mit Argumenten wie \cs{g@addto@macro} % verhält} % \begin{macrocode} \ifundefined{unexpanded}{% \newcommand*{\g@addto@macro@temp}{}% \newcommand{\l@addto@macro}[2]{% \begingroup% \toks@\expandafter{#1#2}% \xdef\g@addto@macro@temp{\the\toks@}% \endgroup \let#1\g@addto@macro@temp }% }{% \newcommand{\l@addto@macro}[2]{% \edef#1{\unexpanded\expandafter{#1#2}}% }% } % \end{macrocode} % \end{macro} % \begin{macrocode} \newcommand*{\addtokomafont}[2]{% \@ifundefined{scr@fnt@#1}{% \@ifundefined{scr@fnt@instead@#1}{% \ClassError{\KOMAClassName}{% 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% }% }{% \ClassInfo{\KOMAClassName}{% 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}{}{% \ClassWarning{\KOMAClassName}{% \csname scr@fnt@wrn@#1\endcsname{#1}% }% }% } % \end{macrocode} % \end{macro} % % \begin{macro}{\usekomafont} % \changes{v2.8p}{2001/09/28}{neu} % 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}{% \ClassError{\KOMAClassName}{% 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% }% }{% \ClassInfo{\KOMAClassName}{% 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 }% }% \@nameuse{scr@fnt@instead@#1}% }{% \@nameuse{scr@fnt@#1}% }% } % \end{macrocode} % \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. Also alles % eigentlich ganz einfach. Damit es noch einfacher wird, ein paar % Hilfsmakros: % % \begin{macro}{\newkomafont} % \changes{v2.95}{2004/07/21}{neu} % 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}% \fi } % \end{macrocode} % \begin{macro}{\aliaskomafont} % \changes{v2.95}{2004/07/21}{neu} % 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 % % \Finale % \endinput % % end of file `scrkfont.dtx' %%% Local Variables: %%% mode: doctex %%% TeX-master: t %%% End: