% sfss.cd % Anders G S Svensson % Source: sfss.nw % $Revision: 1.21 $ % $Date: 1996/06/08 00:33:27 $ \def\@fnlet@#1#2{\@let@{fn@#1@#2}} \def\@famdef@#1{\@def@{fam@#1}} \def\usefs{\bgroup\@ignorespaces@\f@usefs} \def\f@usefs#1{\egroup \f@pickfs#1,@} \def\f@pickfs#1,#2@{% \@ifundefined@{fs@#1}% {\f@loadfs{#1}}% {}% \@ifempty@{#2}% {}% {\f@pickfs#2@}} \def\f@loadfs#1{% \IfFileExists{#1.fs}% {\@let@{fs@#1}\@empty@ \edef\@action@{\noexpand\@makeatletter@ \noexpand\input #1.fs\relax \noexpand\@restoreat@{\the\catcode`\@}}\@action@}% {\@Warning@{No font selection file: #1.fs}}} \def\DeclareFont#1{\bgroup\@ignorespaces@\f@DeclareFont{#1}} \def\f@DeclareFont#1#2{\egroup \let\f@size\@empty@ \f@ExpandSizes #2,@% \@edef@{font@#1}{\f@size}} \def\f@ExpandSizes#1,#2@{% \@ifempty@{#1}% {}% {\f@ExpandRange#1-@\@ifempty@{#2}{}{\f@ExpandSizes#2@}}} \def\f@ExpandRange#1-#2@{% \@ifempty@{#2}{\edef\f@size{\f@size{#1}}}{\f@SizeRange#1-#2}} \def\f@SizeRange#1-#2-{\relax \ifnum#1>#2 \let\@action@\relax \else \edef\f@size{\f@size{#1}}% \@c@=#1 \advance\@c@ by 1 \def\@action@{\expandafter\f@SizeRange\the\@c@-#2-}% \fi \@action@} \def\DeclareMathFamily#1#2{% \edef\f@families{\f@families{#1}}% \@ifundefined@{family@#1}{\@gdef@{family@#1}{#2}}{}} \def\f@families{} \def\DeclareShapeMap#1#2#3{\@def@{shape@#2@#1}{#3}} \def\DeclareWeightMap#1#2#3{\@def@{weight@#2@#1}{#3}} \def\FontName{\def\f@currentfont} \def\FontShape{\def\f@currentshape} \def\FontWeight{\def\f@currentweight} \let\f@font\font \def\fontname#1{\FontName{#1}\currentfont} \def\fontshape#1{\FontShape{#1}\currentfont} \def\fontweight#1{\FontWeight{#1}\currentfont} \def\SelectTextFont{\f@selecttextfont} \def\currentfont{\SelectTextFont\f@currentfont} \def\SelectMathFamily{\f@selectmathfamily} \def\f@selecttextfont#1{% \f@loadfont{#1}\f@currentsize\f@currentshape\f@currentweight {\@cs@{fn@\f@name @\f@size}}} \def\f@loadfont#1#2#3#4#5{% \edef\f@name{#1}% \edef\f@size{#2}% \def\f@shape{#3}% \def\f@weight{#4}% \def\f@sizespec{ at #2pt}% \@ifundefined@{shape@\f@name @#3}% {}% {\edef\f@name{\@cs@{shape@\f@name @#3}}}% \@ifundefined@{weight@\f@name @#4}% {}% {\edef\f@name{\@cs@{weight@\f@name @#4}}}% \@ifundefined@{font@\f@name}% {\@Warning@{Font \f@name\@space@ not declared.}}% {\@ifundefined@{fn@\f@name @\f@size}{\f@load}{}#5}} \def\f@loadmathfont#1#2#3#4#5{% \edef\f@name{#1}% \edef\f@size{#2}% \def\f@shape{#3}% \def\f@weight{#4}% \def\f@sizespec{ at #2pt}% \@ifundefined@{weight@\f@name @#4}% {}% {\edef\f@name{\@cs@{weight@\f@name @#4}}}% \@ifundefined@{font@\f@name}% {\@Warning@{Font \f@name\@space@ not declared.}}% {\@ifundefined@{fn@\f@name @\f@size}{\f@load}{}#5}} \def\f@load{% \expandafter\expandafter\expandafter \f@lookup\csname font@\f@name\endcsname{}% \global\@csafter@\f@font{fn@\f@name @\f@size}=\f@name\f@sizespec\relax} \def\f@lookup#1{% \@ifempty@{#1}% {\let\@action@\relax}% {\def\f@sizespec{#1 at \f@size pt}% \let\@action@\@gobble@ \ifdim#1\p@>\f@size\p@\relax \else \ifdim#1\p@=\f@size\p@\relax \let\f@sizespec\f@size \else \let\@action@\f@lookup \fi \fi \@action@}} \def\f@selectmathfamily#1{% \@ifundefined@{family@#1}% {\@Warning@{Math family #1 not declared.}}% {\f@loadfamily{#1}\f@currentsize\f@currentshape\f@currentweight \@csafter@\fam{fam@#1}\relax}} \def\f@loadfamily#1#2#3#4{% \@ifundefined@{fam@#1}% {\@csafter@\f@newfamily{fam@#1}}% {}% \f@loadmathfont{\@cs@{family@#1}}{\@cs@{textsize@#2}}{#3}{#4}% {\@csafter@\textfont{fam@#1}=\@cs@{fn@\f@name @\f@size}}% \f@loadmathfont{\@cs@{family@#1}}{\@cs@{scriptsize@#2}}{#3}{#4}% {\@csafter@\scriptfont{fam@#1}=\@cs@{fn@\f@name @\f@size}}% \f@loadmathfont{\@cs@{family@#1}}{\@cs@{scriptscriptsize@#2}}{#3}{#4}% {\@csafter@\scriptscriptfont{fam@#1}=\@cs@{fn@\f@name @\f@size}}} \let\f@newfam\newfam \edef\f@newfamily{\noexpand\f@newfam} \def\FontSize#1{% \@ifnextchar@\bgroup {\f@FontSize{#1}}% {\f@FontSizeNoBaselineskip{#1}}} \newskip\f@baselineskip \def\f@FontSize#1#2{% \def\f@currentsize{#1}% \f@baselineskip=#2\p@ \f@MathSize} \def\f@FontSizeNoBaselineskip#1{% \def\f@currentsize{#1}% \f@baselineskip=#1\p@ \f@baselineskip=\f@openbaselines\f@baselineskip \f@MathSize} \def\f@MathSize{% \baselineskip=\f@baselinestretch\f@baselineskip \@ifundefined@{textsize@\f@currentsize}% {\@xdef@{textsize@\f@currentsize}{\f@currentsize}}% {}% \@ifundefined@{scriptsize@\f@currentsize}% {\@xdef@{scriptsize@\f@currentsize}{\f@currentsize}}% {}% \@ifundefined@{scriptscriptsize@\f@currentsize}% {\@xdef@{scriptscriptsize@\f@currentsize}{\f@currentsize}}% {}} \def\fontsize#1{% \@ifnextchar@\bgroup {\f@fontsize{#1}}% {\f@fontsizenobaselineskip{#1}}} \def\f@fontsize#1#2{% \f@FontSize{#1}{#2}\selectmathfonts*\currentfont} \def\f@fontsizenobaselineskip#1{% \f@FontSizeNoBaselineskip{#1}\selectmathfonts*\currentfont} \def\selectmathfonts{% \@ifnextchar@*% {\expandafter\f@SelectMathFonts\f@families{}\@eat@}% \f@selectmathfonts} \def\f@selectmathfonts#1{% \f@loadfamily{#1}\f@currentsize\f@currentshape\f@currentweight} \def\baselinestretch#1{% \def\f@baselinestretch{#1}% \baselineskip=#1\f@baselineskip} \def\f@baselinestretch{1} \def\openbaselines{\def\f@openbaselines} \openbaselines{1.2} \def\f@SelectMathFonts#1{% \@ifempty@{#1}% {}% {\f@selectmathfonts{#1}\f@SelectMathFonts}} \def\DeclareMathSizes#1#2#3#4{% \@def@{textsize@#1}{#2}% \@def@{scriptsize@#1}{#3}% \@def@{scriptscriptsize@#1}{#4}} \input sfss.df