diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/tex/latex/mff/mfarithm.tex | 165 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/mff/mfcorfnt.tex | 492 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/mff/mfdcdata.tex | 1720 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/mff/mff.sty | 743 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/mff/mfsauter.tex | 1972 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/mff/mftricks.tex | 429 |
6 files changed, 5521 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/mff/mfarithm.tex b/Master/texmf-dist/tex/latex/mff/mfarithm.tex new file mode 100644 index 00000000000..0eb00afe20f --- /dev/null +++ b/Master/texmf-dist/tex/latex/mff/mfarithm.tex @@ -0,0 +1,165 @@ +% +% Base arithmetic functions +% + +\newdimen\MFF@dimenA +\newdimen\MFF@dimenB +\newdimen\MFF@dimenC +\newdimen\MFF@dimenD + +% +% this code convert dimen (pt) into real value assigned to \@tempa +% +\def\MFF@convert#1{\@ovxx=#1\relax \@negargfalse + \ifdim \@ovxx<0pt \@ovxx=-\@ovxx \@negargtrue \fi + \@xarg=\@ovxx \@yarg=\@xarg + \divide\@xarg by 65536\relax + \@yyarg=\@xarg \multiply\@yyarg by 65536\relax + \advance\@yarg by -\@yyarg + \multiply\@yarg by 3125 \divide\@yarg by 2048 + \ifnum \@yarg > 9999 \def\@tempa{}% + \else \ifnum \@yarg > 999 \def\@tempa{0}% + \else \ifnum \@yarg > 99 \def\@tempa{00}% + \else \ifnum \@yarg > 99 \def\@tempa{000}% + \else \def\@tempa{0000}% + \fi\fi\fi\fi + \edef\@tempa{\if@negarg -\fi \the\@xarg.\@tempa\the\@yarg}% +} + +% ************************************************************ +% *** The following macros are partially taken from PiCTeX *** +% ************************************************************ + +% DIVISION (Does long division of dimension registers) +% ** \MFF@divide{DIVIDEND}{DIVISOR}{RESULT} + +% ** \MFF@divide DIVIDEND [by] DIVISOR [to get] ANSWER +% ** Divides the dimension DIVIDEND by the dimension DIVISOR, placing the +% ** quotient in the dimension register ANSWER. Values are understood to +% ** be in points. E.g. 12.5pt/1.4pt=8.92857pt. +% ** Quotient is accurate to 1/65536pt=2**[-16]pt +% ** |DIVISOR| should be < 8192pt = 113.36in +% ** --- otherwise acciracy is decreased in 2 times +\def\MFF@divide#1#2#3{% +\ifdim #2=\z@ #3=\z@\relax +\else + \MFF@dimenB=#1\relax% ** dimB holds current remainder (r) + \MFF@dimenC=#2\relax% ** dimC holds divisor (d) + \ifdim\MFF@dimenC<\z@ + \MFF@dimenB=-\MFF@dimenB \MFF@dimenC=-\MFF@dimenC + \fi + \@negargfalse + \ifdim \MFF@dimenB<\z@ \MFF@dimenB=-\MFF@dimenB \@negargtrue \fi + \ifdim \MFF@dimenC<8192pt\relax + \else + \MFF@dimenB=0.5\MFF@dimenB + \MFF@dimenC=0.5\MFF@dimenC + \fi + \MFF@dimenD=\MFF@dimenB% ** dimD holds quotient q=r/d for this + \divide \MFF@dimenD \MFF@dimenC% ** step, in units of scaled pts + \MFF@dimenA=\MFF@dimenD% ** dimA eventually holds answer (a) + \multiply\MFF@dimenD \MFF@dimenC% ** r <-- r - dq + \advance\MFF@dimenB -\MFF@dimenD% ** First step complete. Have integer part +% ** of a, and corresponding remainder. + \MFF@dimenD=\MFF@dimenC% ** Temporarily use dimD to hold |d| + \ifdim\MFF@dimenD<64pt% ** Branch on the magnitude of |d| + \MFF@divstep[256]\MFF@divstep[256]% + \else +% ** The following code handles divisors d with +% ** (1) .88in = 64pt <= d < 256pt = 3.54in +% ** (2) 3.54in = 256pt <= d < 2048pt = 28.34in +% ** (3) 28.34in = 2048pt <= d < 8192pt = 113.36in +% ** Anything bigger than that may result in an overflow condition. +% ** For our purposes, we should never even see case (2) or (3). + \ifdim\MFF@dimenD<256pt + \MFF@divstep[64]\MFF@divstep[32]\MFF@divstep[32]% + \else + \ifdim\MFF@dimenD<2048pt + \MFF@divstep[8]\MFF@divstep[8]\MFF@divstep[8]% + \MFF@divstep[8]\MFF@divstep[4]\MFF@divstep[4]% + \else + \MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]% + \MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]% + \MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]% + \MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]\MFF@divstep[2]% + \fi + \fi + \fi + \if@negarg \MFF@dimenA=-\MFF@dimenA \fi + #3=\MFF@dimenA +\fi\ignorespaces} + +% ** The following macro does the real long division work. +\def\MFF@divstep[#1]{% ** #1 = "B" + \MFF@dimenB=#1\MFF@dimenB% ** r <-- B*r + \MFF@dimenD=\MFF@dimenB% ** dimD holds quotient q=r/d for this + \divide \MFF@dimenD by \MFF@dimenC% ** step, in units of scaled pts + \MFF@dimenA=#1\MFF@dimenA% ** a <-- B*a + q + \advance\MFF@dimenA by \MFF@dimenD% + \multiply\MFF@dimenD by \MFF@dimenC% ** r <-- r - dq + \advance\MFF@dimenB by -\MFF@dimenD} + + +% MULTIPLICATION (Does long multiplication of dimension registers) +% ** \MFF@multiply{FACTOR1}{FACTOR2}{RESULT} +% ** Result is accurate to 1/65536pt=2**[-16]pt +% ** |FACTOR2| should be < 8192pt = 113.36in +% ** --- otherwise acciracy is decreased in 2 times + +\def\MFF@multiply#1#2#3{% + \MFF@dimenB=#1\relax \MFF@dimenC=#2\relax + \ifdim\MFF@dimenC<\z@ + \MFF@dimenB=-\MFF@dimenB \MFF@dimenC=-\MFF@dimenC + \fi + \@negargfalse + \ifdim \MFF@dimenB<\z@ \MFF@dimenB=-\MFF@dimenB \@negargtrue \fi + \ifdim \MFF@dimenC<8192pt\relax + \else + \MFF@dimenB=2\MFF@dimenB + \MFF@dimenC=0.5\MFF@dimenC + \fi + % calculate integer part + \@yarg=\MFF@dimenC \@xarg=65536 + \@yyarg=\@yarg \divide\@yyarg by \@xarg + % multiplication by integer part + \MFF@dimenA=\MFF@dimenB \multiply\MFF@dimenA by \@yyarg + % prepare fraction part + \multiply\@yyarg by \@xarg \advance\@yarg by -\@yyarg + % multiplication cycle + \ifdim\MFF@dimenB<64pt% + \MFF@mulstep[256]\MFF@mulstep[256]% + \else + \ifdim\MFF@dimenB<256pt + \MFF@mulstep[64]\MFF@mulstep[32]\MFF@mulstep[32]% + \else + \ifdim\MFF@dimenB<2048pt + \MFF@mulstep[8]\MFF@mulstep[8]\MFF@mulstep[8]% + \MFF@mulstep[8]\MFF@mulstep[4]\MFF@mulstep[4]% + \else + \MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]% + \MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]% + \MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]% + \MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]\MFF@mulstep[2]% + \fi + \fi + \fi + % assign result + \if@negarg \MFF@dimenA=-\MFF@dimenA \fi + #3=\MFF@dimenA +\ignorespaces} + +% perform partial multiplication +\def\MFF@mulstep[#1]{\divide\@xarg by #1 + \@yyarg=\@yarg \divide\@yyarg by \@xarg + % calculate new additive component + \MFF@dimenC=\MFF@dimenB \multiply\MFF@dimenC by \@yyarg + \divide\MFF@dimenC by #1 \advance\MFF@dimenA by \MFF@dimenC + % update fraction data + \multiply\@yyarg by \@xarg \advance\@yarg by -\@yyarg + \divide\MFF@dimenB by #1 +} + +% ********************************************* +% ******** End of PiCTeX arith macros ********* +% ********************************************* + diff --git a/Master/texmf-dist/tex/latex/mff/mfcorfnt.tex b/Master/texmf-dist/tex/latex/mff/mfcorfnt.tex new file mode 100644 index 00000000000..3e495984354 --- /dev/null +++ b/Master/texmf-dist/tex/latex/mff/mfcorfnt.tex @@ -0,0 +1,492 @@ +% +% Macro which are responsible for correction +% of font parameters +% + +\def\MFF@corr@many#1{% + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@crisp\relax + \ifdim \@tempdimb<\MFF@dimenD + \@tempdimb=\MFF@dimenD \MFF@warncorr{#1}% + \fi + \MFF@dimenD=\MFF@temp@tiny\relax + \ifdim \@tempdimb<\MFF@dimenD + \@tempdimb=\MFF@dimenD \MFF@warncorr{#1}% + \fi + \MFF@dimenD=\MFF@temp@fine\relax + \ifdim \@tempdimb<\MFF@dimenD + \@tempdimb=\MFF@dimenD \MFF@warncorr{#1}% + \fi + \fi +} + +\def\MFF@corr@corr#1{% + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@cap_hair\relax + \ifdim \@tempdimb>0.2\MFF@dimenD + \@tempdimb=0.2\MFF@dimenD \MFF@warncorr{#1}% + \fi + \MFF@dimenD=\MFF@temp@stem\relax + \ifdim \@tempdimb>0.16666666667\MFF@dimenD + \@tempdimb=0.16666666667\MFF@dimenD \MFF@warncorr{#1}% + \fi + \MFF@dimenA=\MFF@temp@fudge\relax + \MFF@multiply{\MFF@dimenA}{\MFF@dimenD}{\MFF@dimenD}% + \ifdim \@tempdimb>0.25\MFF@dimenD + \@tempdimb=0.25\MFF@dimenD \MFF@warncorr{#1}% + \fi + \MFF@dimenD=\MFF@temp@curve\relax + \ifdim \@tempdimb>0.083333333333\MFF@dimenD + \@tempdimb=0.083333333333\MFF@dimenD \MFF@warncorr{#1}% + \fi + \fi +} + +% +% Correct font parameters +% + + +\def\MFF@correct@u{% + \@tempdimb=\MFF@scale@width\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{u}\fi +} + +%\def\MFF@correct@width_adj{% +%} + +\def\MFF@correct@serif_fit{% + \@tempdimb=\MFF@scale@width\@tempdimb +} + +\def\MFF@correct@cap_serif_fit{% + \@tempdimb=\MFF@scale@width\@tempdimb +} + +%\def\MFF@correct@letter_fit{% +%} + +\def\MFF@correct@body_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@asc\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{body_height}\fi +} + +\def\MFF@correct@asc_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@asc\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{asc_height}\fi + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@x_height\relax + \ifdim \@tempdimb<1.2\MFF@dimenD + \@tempdimb=1.2\MFF@dimenD \MFF@warncorr{asc_height}% + \fi + \fi +} + +\def\MFF@correct@cap_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@asc\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_height}\fi +} + +\def\MFF@correct@fig_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@asc\@tempdimb + \@tempdimb=\MFF@scale@math\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{fig_height}\fi +} + +\def\MFF@correct@x_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{x_height}\fi + \edef\MFF@temp@x_height{\the\@tempdimb}% +} + +\def\MFF@correct@math_axis{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@math\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{math_axis}\fi +} + +\def\MFF@correct@comma_depth{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@desc\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{comma_depth}\fi +} + +\def\MFF@correct@desc_depth{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@desc\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{desc_depth}\fi +} + +\def\MFF@correct@acc_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{acc_height}\fi +} + +\def\MFF@correct@dot_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@asc\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{dot_height}\fi +} + +\def\MFF@correct@udot_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \@tempdimb=\MFF@scale@asc\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{udot_height}\fi +} + +\def\MFF@correct@bar_height{% + \@tempdimb=\MFF@scale@height\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{bar_height}\fi + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@x_height\relax + \ifdim \@tempdimb<0.5\MFF@dimenD + \@tempdimb=0.5\MFF@dimenD \MFF@warncorr{bar_height}% + \fi + \ifdim \@tempdimb>0.55\MFF@dimenD + \@tempdimb=0.55\MFF@dimenD \MFF@warncorr{bar_height}% + \fi + \fi +} + +\def\MFF@correct@crisp{% + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{crisp}\fi + \edef\MFF@temp@crisp{\the\@tempdimb}% +} + +\def\MFF@correct@tiny{% + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{tiny}\fi + \edef\MFF@temp@tiny{\the\@tempdimb}% +} + +\def\MFF@correct@fine{% + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{fine}\fi + \edef\MFF@temp@fine{\the\@tempdimb}% +} + +\def\MFF@correct@thin_join{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \fi + \@tempdimb=\MFF@scale@join\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{thin_join}\fi + \MFF@corr@many{thin_join}% +} + +\def\MFF@correct@hair{% + \@tempdimb=\MFF@scale@thin\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@contrast\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{hair}\fi + \MFF@corr@many{hair}% + \edef\MFF@temp@hair{\the\@tempdimb}% +} + +\def\MFF@correct@vair{% + \@tempdimb=\MFF@scale@thin\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@contrast\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{vair}\fi + \MFF@corr@many{vair}% +} + +\def\MFF@correct@stem{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{stem}\fi + \MFF@corr@many{stem}% + \edef\MFF@temp@stem{\the\@tempdimb}% +} + +\def\MFF@correct@curve{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{curve}\fi + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@stem\relax + \ifdim \@tempdimb<\MFF@dimenD + \@tempdimb=\MFF@dimenD \MFF@warncorr{curve}% + \fi + \fi + \MFF@corr@many{curve}% + \edef\MFF@temp@curve{\the\@tempdimb}% +} + +\def\MFF@correct@ess{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{ess}\fi + \MFF@corr@many{ess}% +} + +\def\MFF@correct@flare{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \@tempdimb=\MFF@scale@dot\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{flare}\fi + \MFF@corr@many{flare}% +} + +\def\MFF@correct@dot_size{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \@tempdimb=\MFF@scale@dot\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{dot_size}\fi + \MFF@corr@many{dot_size}% +} + +\def\MFF@correct@cap_hair{% + \@tempdimb=\MFF@scale@thin\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@contrast\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_hair}\fi + \MFF@corr@many{cap_hair}% + \edef\MFF@temp@cap_hair{\the\@tempdimb}% +} + +\def\MFF@correct@cap_stem{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_stem}\fi + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@stem\relax + \ifdim \@tempdimb<\MFF@dimenD + \@tempdimb=\MFF@dimenD \MFF@warncorr{cap_stem}% + \fi + \fi + \MFF@corr@many{cap_stem}% + \edef\MFF@temp@cap_stem{\the\@tempdimb}% +} + +\def\MFF@correct@cap_curve{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_curve}\fi + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@curve\relax + \ifdim \@tempdimb<\MFF@dimenD + \@tempdimb=\MFF@dimenD \MFF@warncorr{cap_curve}% + \fi + \fi + \MFF@corr@many{cap_curve}% +} + +\def\MFF@correct@cap_ess{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_ess}\fi + \MFF@corr@many{cap_ess}% +} + +\def\MFF@correct@rule_thickness{% + \@tempdimb=\MFF@scale@thin\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{rule_thickness}\fi +} + +\def\MFF@correct@dish{% + \@tempdimb=\MFF@scale@dish\@tempdimb +} + +%\def\MFF@correct@bracket{% +%} + +\def\MFF@correct@jut{% + \@tempdimb=\MFF@scale@width\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{jut}\fi +} + +\def\MFF@correct@cap_jut{% + \@tempdimb=\MFF@scale@width\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_jut}\fi +} + +\def\MFF@correct@beak_jut{% + \@tempdimb=\MFF@scale@width\@tempdimb +} + +%\def\MFF@correct@beak{% +%} + +\def\MFF@correct@notch_cut{% + \@tempdimb=\MFF@scale@thin\@tempdimb + \@tempdimb=\MFF@scale@notch\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{notch_cut}\fi +} + +\def\MFF@correct@bar{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{bar}\fi + \MFF@corr@many{bar}% +} + +\def\MFF@correct@slab{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{slab}\fi + \MFF@corr@many{slab}% + \edef\MFF@temp@slab{\the\@tempdimb}% +} + +\def\MFF@correct@cap_bar{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_bar}\fi + \MFF@corr@many{cap_bar}% +} + +\def\MFF@correct@cap_band{% + \@tempdimb=\MFF@scale@bold\@tempdimb + \if n\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \if d\MFF@contrasttype + \MFF@dimenD=\MFF@temp@cap_stem\relax + \@tempdimb=\MFF@dimenD + \fi + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_band}\fi + \MFF@corr@many{cap_band}% +} + +\def\MFF@correct@cap_notch_cut{% + \@tempdimb=\MFF@scale@thin\@tempdimb + \@tempdimb=\MFF@scale@notch\@tempdimb + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{cap_notch_cut}\fi +} + +%\def\MFF@correct@serif_drop{% +%} + +\def\MFF@correct@stem_corr{% + \MFF@corr@corr{stem_cor}% + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@hair\relax + \MFF@dimenA=\MFF@temp@fudge\relax + \MFF@multiply{\MFF@dimenA}{\MFF@dimenD}{\MFF@dimenD}% + \ifdim \@tempdimb>0.0625\MFF@dimenD + \@tempdimb=0.0625\MFF@dimenD \MFF@warncorr{stem_corr}% + \fi + \fi +} + +\def\MFF@correct@vair_corr{% + \MFF@corr@corr{vair_cor}% + \if@MFF@checkit + \MFF@dimenD=\MFF@temp@slab\relax + \ifdim \@tempdimb>0.25\MFF@dimenD + \@tempdimb=0.25\MFF@dimenD \MFF@warncorr{vair_corr}% + \fi + \fi +} + +%\def\MFF@correct@apex_corr{% +%} + +%\def\MFF@correct@o{% +%} + +%\def\MFF@correct@apex_o{% +%} + +\def\MFF@correct@fudge{% + \ifdim \@tempdimb<0.5pt\relax \@tempdimb=0.5pt \MFF@warncorr{fudge}\fi + \edef\MFF@temp@fudge{\the\@tempdimb}% +} + +%\def\MFF@correct@math_spread{% +%} + +%\def\MFF@correct@superness{% +%} + +%\def\MFF@correct@superpull{% +%} + +\def\MFF@correct@beak_darkness{% + \ifdim \@tempdimb<\z@ \@tempdimb=0pt \MFF@warncorr{beak_darkness}\fi +} + + +% +% End of font correction +% diff --git a/Master/texmf-dist/tex/latex/mff/mfdcdata.tex b/Master/texmf-dist/tex/latex/mff/mfdcdata.tex new file mode 100644 index 00000000000..558f68e3c6c --- /dev/null +++ b/Master/texmf-dist/tex/latex/mff/mfdcdata.tex @@ -0,0 +1,1720 @@ +% +% Approxiomation for font parameters based on DC Fonts +% + +\def\MFF@title@DCFONT{% + \MFF@comment{Based on DC font parameter files prepared by} + \MFF@comment{J"org Knappen and Norbert Schwarz (Version 1.2 [1995])} +} + +%% +%% CMR Family +%% + +% +% this code find index (=\@tempcnta) for font size value, +% (assigned earlier to \@tempdima) +% +\def\DCFNT@findpos@CMR{\ifdim \@tempdima<\z@ \@tempdima=\z@ \fi + \@tempcnta= + \ifdim \@tempdima<5pt 0 + \else \ifdim \@tempdima<6pt 1 + \else \ifdim \@tempdima<7pt 2 + \else \ifdim \@tempdima<8pt 3 + \else \ifdim \@tempdima<9pt 4 + \else \ifdim \@tempdima<10pt 5 + \else \ifdim \@tempdima<12pt 6 + \else 7 + \fi\fi\fi\fi\fi\fi\fi} +% +% x-value and interval value for given index \@tempcntb +% +\def\DCFNT@fntsize@CMR{\@tempdimb= + \ifcase\@tempcntb 0pt \or 5pt \or 6pt \or 7pt \or 8pt \or 9pt + \or 10pt \or 12pt \else 17.28pt + \fi} + +\def\DCFNT@interval@CMR{% + \ifcase\@tempcntb 5 % 0pt-5pt + \or 1 % 5pt-6pt + \or 1 % 6pt-7pt + \or 1 % 7pt-8pt + \or 1 % 8pt-9pt + \or 1 % 9pt-10pt + \or 2 % 10pt-12pt + \or 5.28 % 12pt-17.28pt + \else 0 + \fi} + +\def\DCFNT@revint@CMR{% + \ifcase\@tempcntb 0.2 % 0pt-5pt + \or 1 % 5pt-6pt + \or 1 % 6pt-7pt + \or 1 % 7pt-8pt + \or 1 % 8pt-9pt + \or 1 % 9pt-10pt + \or 0.5 % 10pt-12pt + \or 0.18939393939 % 12pt-17.28pt + \else 0 + \fi} + +\def\DCFNT@CMR@u{\@tempdimb= + \ifcase\@tempcntb 5pt \or 12.5pt \or 14pt \or 15.5pt \or 17pt + \or 18.5pt \or 20pt \or 23.5pt \else 32.5pt + \fi} + +\def\DCFNT@CMR@width_adj{\@tempdimb=0pt} + +\def\DCFNT@CMR@serif_fit{\@tempdimb=0pt} + +\def\DCFNT@CMR@cap_serif_fit{\@tempdimb= + \ifcase\@tempcntb 0pt \or 2pt \or 2.8pt \or 3.5pt \or 4.1pt + \or 4.6pt \or 5pt \or 5.8pt \else 8pt + \fi} + +\def\DCFNT@CMR@letter_fit{\@tempdimb= + \ifcase\@tempcntb 7pt \or 5pt \or 3pt \or 2pt \or 0pt + \or 0pt \or 0pt \or 0pt \else -0.1pt + \fi} + +\def\DCFNT@CMR@body_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 135pt \or 162pt \or 189pt \or 216pt + \or 243pt \or 270pt \or 324pt \else 466pt + \fi} + +\def\DCFNT@CMR@asc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 125pt \or 150pt \or 175pt \or 200pt + \or 225pt \or 250pt \or 300pt \else 432pt + \fi} + +\def\DCFNT@CMR@cap_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 123pt \or 147.6pt \or 172.2pt \or 196.8pt + \or 221.4pt \or 246pt \or 295.2pt \else 425pt + \fi} + +\def\DCFNT@CMR@fig_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 116pt \or 139.2pt \or 162.4pt \or 185.6pt + \or 208.8pt \or 232pt \or 278.4pt \else 401pt + \fi} + +\def\DCFNT@CMR@x_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 77.5pt \or 93pt \or 108.5pt \or 124pt + \or 139.5pt \or 155pt \or 186pt \else 267.8pt + \fi} + +\def\DCFNT@CMR@math_axis{\@tempdimb= + \ifcase\@tempcntb 0pt \or 45pt \or 54pt \or 63pt \or 72pt + \or 81pt \or 90pt \or 108pt \else 155.5pt + \fi} + +\def\DCFNT@CMR@bar_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 43.5pt \or 52.2pt \or 60.9pt \or 69.6pt + \or 78.3pt \or 87pt \or 104.4pt \else 150pt + \fi} + +\def\DCFNT@CMR@comma_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 35pt \or 42pt \or 49pt \or 56pt + \or 63pt \or 70pt \or 84pt \else 121pt + \fi} + +\def\DCFNT@CMR@desc_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 35pt \or 42pt \or 49pt \or 56pt + \or 63pt \or 70pt \or 84pt \else 121pt + \fi} + +\def\DCFNT@CMR@acc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 42.5pt \or 49pt \or 55.5pt \or 62pt + \or 68.5pt \or 75pt \or 90pt \else 127.5pt + \fi} + +\def\DCFNT@CMR@dot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 42pt \or 46.6pt \or 51.2pt \or 56pt + \or 60.4pt \or 66pt \or 77.2pt \else 100pt + \fi} + +\def\DCFNT@CMR@udot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 33.5pt \or 38.5pt \or 43.3pt \or 48.4pt + \or 53.1pt \or 59pt \or 70.8pt \else 95pt + \fi} + +\def\DCFNT@CMR@crisp{\@tempdimb=0pt} + +\def\DCFNT@CMR@tiny{\@tempdimb= + \ifcase\@tempcntb 1pt \or 6pt \or 7pt \or 7pt \or 8pt + \or 8pt \or 8pt \or 8pt \else 8pt + \fi} + +\def\DCFNT@CMR@fine{\@tempdimb= + \ifcase\@tempcntb 0pt \or 5pt \or 6pt \or 6pt \or 7pt + \or 7pt \or 7pt \or 7pt \else 7pt + \fi} + +\def\DCFNT@CMR@thin_join{\@tempdimb= + \ifcase\@tempcntb 0pt \or 5pt \or 6pt \or 6pt \or 7pt + \or 7pt \or 7pt \or 7.5pt \else 9pt + \fi} + +\def\DCFNT@CMR@hair{\@tempdimb= + \ifcase\@tempcntb 5pt \or 7.5pt \or 8pt \or 8.5pt \or 9pt + \or 9pt \or 9pt \or 9.5pt \else 11pt + \fi} + +\def\DCFNT@CMR@stem{\@tempdimb= + \ifcase\@tempcntb 6pt \or 16pt \or 18pt \or 20pt \or 22pt + \or 24pt \or 25pt \or 28pt \else 33pt + \fi} + +\def\DCFNT@CMR@curve{\@tempdimb= + \ifcase\@tempcntb 5.5pt \or 18pt \or 20.5pt \or 23pt \or 25.5pt + \or 28pt \or 30pt \or 33pt \else 40pt + \fi} + +\def\DCFNT@CMR@ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 12pt \or 17pt \or 21pt \or 23pt + \or 25pt \or 27pt \or 30pt \else 35pt + \fi} + +\def\DCFNT@CMR@flare{\@tempdimb= + \ifcase\@tempcntb 9pt \or 19pt \or 21pt \or 24pt \or 27pt + \or 30pt \or 33pt \or 36pt \else 45pt + \fi} + +\def\DCFNT@CMR@dot_size{\@tempdimb= + \ifcase\@tempcntb 2pt \or 22pt \or 26pt \or 29pt \or 32pt + \or 35pt \or 38pt \or 42pt \else 51pt + \fi} + +\def\DCFNT@CMR@cap_hair{\@tempdimb= + \ifcase\@tempcntb 5.5pt \or 8pt \or 8.5pt \or 9pt \or 9.5pt + \or 10pt \or 11pt \or 11.5pt \else 13pt + \fi} + +\def\DCFNT@CMR@cap_stem{\@tempdimb= + \ifcase\@tempcntb 6.5pt \or 19pt \or 21.5pt \or 24pt \or 26.5pt + \or 29pt \or 32pt \or 35pt \else 41pt + \fi} + +\def\DCFNT@CMR@cap_curve{\@tempdimb= + \ifcase\@tempcntb 6pt \or 21pt \or 24pt \or 27pt \or 30pt + \or 33pt \or 37pt \or 40pt \else 47pt + \fi} + +\def\DCFNT@CMR@cap_ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 14pt \or 19pt \or 23pt \or 27pt + \or 31pt \or 35pt \or 38pt \else 43pt + \fi} + +\def\DCFNT@CMR@rule_thickness{\@tempdimb= + \ifcase\@tempcntb 13pt \or 28pt \or 31pt \or 34pt \or 36pt + \or 38pt \or 40pt \or 44pt \else 60pt + \fi} + +\def\DCFNT@CMR@dish{\@tempdimb= + \ifcase\@tempcntb 0.2pt \or 0.7pt \or 0.8pt \or 0.9pt \or 1pt + \or 1pt \or 1pt \or 1pt \else 1pt + \fi} + +\def\DCFNT@CMR@bracket{\@tempdimb= + \ifcase\@tempcntb 0pt \or 10pt \or 12pt \or 14pt \or 16pt + \or 18pt \or 20pt \or 24pt \else 34pt + \fi} + +\def\DCFNT@CMR@jut{\@tempdimb= + \ifcase\@tempcntb 5pt \or 15pt \or 17pt \or 19pt \or 22pt + \or 25pt \or 28pt \or 33pt \else 42pt + \fi} + +\def\DCFNT@CMR@cap_jut{\@tempdimb= + \ifcase\@tempcntb 5pt \or 20pt \or 23pt \or 26pt \or 29pt + \or 33pt \or 37pt \or 41pt \else 50pt + \fi} + +\def\DCFNT@CMR@beak_jut{\@tempdimb= + \ifcase\@tempcntb 2pt \or 6pt \or 6.8pt \or 7.6pt \or 8.4pt + \or 9.2pt \or 10pt \or 11.4pt \else 15pt + \fi} + +\def\DCFNT@CMR@beak{\@tempdimb= + \ifcase\@tempcntb 0pt \or 35pt \or 42pt \or 49pt \or 56pt + \or 63pt \or 70pt \or 84pt \else 121pt + \fi} + +\def\DCFNT@CMR@vair{\@tempdimb= + \ifcase\@tempcntb 1pt \or 6pt \or 7pt \or 7pt \or 8pt + \or 8pt \or 8pt \or 8.5pt \else 10pt + \fi} + +\def\DCFNT@CMR@notch_cut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 500pt \or 600pt \or 700pt \or 800pt + \or 900pt \or 1000pt \or 1200pt \else 1700pt + \fi} + +\def\DCFNT@CMR@bar{\@tempdimb= + \ifcase\@tempcntb 5.5pt \or 8pt \or 8.5pt \or 9pt \or 9.5pt + \or 10pt \or 11pt \or 12.5pt \else 16pt + \fi} + +\def\DCFNT@CMR@slab{\@tempdimb= + \ifcase\@tempcntb 5.5pt \or 8pt \or 8.5pt \or 9pt \or 9.5pt + \or 10pt \or 11pt \or 12.5pt \else 16pt + \fi} + +\def\DCFNT@CMR@cap_bar{\@tempdimb= + \ifcase\@tempcntb 5.5pt \or 8pt \or 8.5pt \or 9pt \or 9.5pt + \or 10pt \or 11pt \or 12.5pt \else 16pt + \fi} + +\def\DCFNT@CMR@cap_band{\@tempdimb= + \ifcase\@tempcntb 5.5pt \or 8pt \or 8.5pt \or 9pt \or 9.5pt + \or 10pt \or 11pt \or 12.5pt \else 16pt + \fi} + +\def\DCFNT@CMR@cap_notch_cut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 500pt \or 600pt \or 700pt \or 800pt + \or 900pt \or 1000pt \or 1200pt \else 1700pt + \fi} + +\def\DCFNT@CMR@serif_drop{\@tempdimb= + \ifcase\@tempcntb 0pt \or 2pt \or 2.4pt \or 2.8pt \or 3.2pt + \or 3.6pt \or 4pt \or 4.8pt \else 7pt + \fi} + +\def\DCFNT@CMR@stem_corr{\@tempdimb= + \ifcase\@tempcntb 0.2pt \or 0.7pt \or 0.8pt \or 0.9pt \or 1pt + \or 1pt \or 1pt \or 1pt \else 1pt + \fi} + +\def\DCFNT@CMR@vair_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0.5pt \or 0.7pt \or 0.9pt \or 1pt + \or 1pt \or 1pt \or 1pt \else 1pt + \fi} + +\def\DCFNT@CMR@apex_corr{\@tempdimb=0pt} + +\def\DCFNT@CMR@o{\@tempdimb= + \ifcase\@tempcntb 1.5pt \or 4pt \or 4.5pt \or 5pt \or 6pt + \or 7pt \or 8pt \or 9pt \else 10pt + \fi} + +\def\DCFNT@CMR@apex_o{\@tempdimb= + \ifcase\@tempcntb 1.5pt \or 4pt \or 4.5pt \or 5pt \or 6pt + \or 7pt \or 8pt \or 9pt \else 10pt + \fi} + +\def\DCFNT@CMR@fudge{\@tempdimb=1pt} + +\def\DCFNT@CMR@math_spread{\@tempdimb= + \ifcase\@tempcntb 2pt \or 1pt \or 0.8pt \or 0.6pt \or 0.4pt + \or 0.2pt \or 0pt \or -0.2pt \else -0.2pt + \fi} + +\def\DCFNT@CMR@superness{\@tempdimb=0.707106781186548pt} + +\def\DCFNT@CMR@superpull{\@tempdimb=0.16666666667pt} + +\def\DCFNT@CMR@beak_darkness{\@tempdimb=0.36666666667pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% +%% CMX Family +%% + +% +% this code find index (=\@tempcnta) for font size value, +% (assigned earlier to \@tempdima) +% +\def\DCFNT@findpos@CMX{% + \DCFNT@findpos@CMR + \ifnum \@tempcnta>6\relax \@tempcnta=6 \fi +} + +\def\DCFNT@fntsize@CMX{\DCFNT@fntsize@CMR} +\def\DCFNT@interval@CMX{\DCFNT@interval@CMR} +\def\DCFNT@revint@CMX{\DCFNT@revint@CMR} + +\def\DCFNT@CMX@u{\@tempdimb= + \ifcase\@tempcntb 6pt \or 14.5pt \or 16.2pt \or 17.9pt \or 19.6pt + \or 21.3pt \or 23pt \else 27pt + \fi} + +\def\DCFNT@CMX@width_adj{\@tempdimb= + \ifcase\@tempcntb 3pt \or 7pt \or 7.8pt \or 8.6pt \or 9.4pt + \or 10.2pt \or 11pt \else 13pt + \fi} + +\def\DCFNT@CMX@serif_fit{\@tempdimb=0pt} + +\def\DCFNT@CMX@cap_serif_fit{\@tempdimb= + \ifcase\@tempcntb -1pt \or 3pt \or 3.8pt \or 4.6pt \or 5.4pt + \or 6.2pt \or 7pt \else 8pt + \fi} + +\def\DCFNT@CMX@letter_fit{\@tempdimb= + \ifcase\@tempcntb 4pt \or 3pt \or 2pt \or 1pt \or 0pt + \or 0pt \or 0pt \else 0pt + \fi} + +\def\DCFNT@CMX@cap_jut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 23pt \or 27pt \or 31pt + \or 35pt \or 39pt \else 46pt + \fi} + +\def\DCFNT@CMX@body_height{\DCFNT@CMR@body_height} +\def\DCFNT@CMX@asc_height{\DCFNT@CMR@asc_height} +\def\DCFNT@CMX@acc_height{\DCFNT@CMR@acc_height} +\def\DCFNT@CMX@dot_height{\DCFNT@CMR@dot_height} +\def\DCFNT@CMX@udot_height{\DCFNT@CMR@udot_height} +\def\DCFNT@CMX@cap_height{\DCFNT@CMR@cap_height} +\def\DCFNT@CMX@fig_height{\DCFNT@CMR@fig_height} +\def\DCFNT@CMX@x_height{\DCFNT@CMR@x_height} +\def\DCFNT@CMX@math_axis{\DCFNT@CMR@math_axis} +\def\DCFNT@CMX@comma_depth{\DCFNT@CMR@comma_depth} +\def\DCFNT@CMX@desc_depth{\DCFNT@CMR@desc_depth} +\def\DCFNT@CMX@bar_height{\DCFNT@CMR@bar_height} +\def\DCFNT@CMX@crisp{\DCFNT@CMR@crisp} +\def\DCFNT@CMX@tiny{\DCFNT@CMR@tiny} +\def\DCFNT@CMX@fine{\DCFNT@CMR@fine} +\def\DCFNT@CMX@thin_join{\DCFNT@CMR@thin_join} +\def\DCFNT@CMX@hair{\DCFNT@CMR@hair} +\def\DCFNT@CMX@stem{\DCFNT@CMR@stem} +\def\DCFNT@CMX@curve{\DCFNT@CMR@curve} +\def\DCFNT@CMX@ess{\DCFNT@CMR@ess} +\def\DCFNT@CMX@flare{\DCFNT@CMR@flare} +\def\DCFNT@CMX@dot_size{\DCFNT@CMR@dot_size} +\def\DCFNT@CMX@cap_hair{\DCFNT@CMR@cap_hair} +\def\DCFNT@CMX@cap_stem{\DCFNT@CMR@cap_stem} +\def\DCFNT@CMX@cap_curve{\DCFNT@CMR@cap_curve} +\def\DCFNT@CMX@cap_ess{\DCFNT@CMR@cap_ess} +\def\DCFNT@CMX@rule_thickness{\DCFNT@CMR@rule_thickness} +\def\DCFNT@CMX@dish{\DCFNT@CMR@dish} +\def\DCFNT@CMX@bracket{\DCFNT@CMR@bracket} +\def\DCFNT@CMX@jut{\DCFNT@CMR@jut} +\def\DCFNT@CMX@beak_jut{\DCFNT@CMR@beak_jut} +\def\DCFNT@CMX@beak{\DCFNT@CMR@beak} +\def\DCFNT@CMX@vair{\DCFNT@CMR@vair} +\def\DCFNT@CMX@notch_cut{\DCFNT@CMR@notch_cut} +\def\DCFNT@CMX@bar{\DCFNT@CMR@bar} +\def\DCFNT@CMX@slab{\DCFNT@CMR@slab} +\def\DCFNT@CMX@cap_bar{\DCFNT@CMR@cap_bar} +\def\DCFNT@CMX@cap_band{\DCFNT@CMR@cap_band} +\def\DCFNT@CMX@cap_notch_cut{\DCFNT@CMR@cap_notch_cut} +\def\DCFNT@CMX@serif_drop{\DCFNT@CMR@serif_drop} +\def\DCFNT@CMX@stem_corr{\DCFNT@CMR@stem_corr} +\def\DCFNT@CMX@vair_corr{\DCFNT@CMR@vair_corr} +\def\DCFNT@CMX@apex_corr{\DCFNT@CMR@apex_corr} +\def\DCFNT@CMX@o{\DCFNT@CMR@o} +\def\DCFNT@CMX@apex_o{\DCFNT@CMR@apex_o} +\def\DCFNT@CMX@fudge{\DCFNT@CMR@fudge} +\def\DCFNT@CMX@math_spread{\DCFNT@CMR@math_spread} +\def\DCFNT@CMX@superness{\DCFNT@CMR@superness} +\def\DCFNT@CMX@superpull{\DCFNT@CMR@superpull} +\def\DCFNT@CMX@beak_darkness{\DCFNT@CMR@beak_darkness} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% +%% CMB Family (actually CMBX compressed) +%% + +\def\DCFNT@findpos@CMB{% + \DCFNT@findpos@CMR + \ifnum \@tempcnta>6\relax \@tempcnta=6 \fi +} + +% +% x-value and interval value for given index \@tempcntb +% +\def\DCFNT@fntsize@CMB{\DCFNT@fntsize@CMR} + +\def\DCFNT@interval@CMB{\DCFNT@interval@CMR} + +\def\DCFNT@revint@CMB{\DCFNT@revint@CMR} + +\def\DCFNT@CMB@u{\DCFNT@CMR@u} +\def\DCFNT@CMB@width_adj{\DCFNT@CMR@width_adj} +\def\DCFNT@CMB@serif_fit{\DCFNT@CMR@serif_fit} +\def\DCFNT@CMB@cap_serif_fit{\DCFNT@CMR@cap_serif_fit} +\def\DCFNT@CMB@letter_fit{\DCFNT@CMR@letter_fit} +\def\DCFNT@CMB@cap_jut{\DCFNT@CMR@cap_jut} + +\def\DCFNT@CMB@body_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 135pt \or 162pt \or 189pt \or 216pt + \or 243pt \or 270pt \else 324pt + \fi} + +\def\DCFNT@CMB@asc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 125pt \or 150pt \or 175pt \or 200pt + \or 225pt \or 250pt \else 300pt + \fi} + +\def\DCFNT@CMB@cap_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 123.5pt \or 148.2pt \or 172.9pt \or 197.6pt + \or 222.3pt \or 247pt \else 296.4pt + \fi} + +\def\DCFNT@CMB@fig_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 116pt \or 139.2pt \or 162.4pt \or 185.6pt + \or 208.8pt \or 232pt \else 278.4pt + \fi} + +\def\DCFNT@CMB@x_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 80pt \or 96pt \or 112pt \or 128pt + \or 144pt \or 160pt \else 192pt + \fi} + +\def\DCFNT@CMB@math_axis{\@tempdimb= + \ifcase\@tempcntb 0pt \or 45pt \or 54pt \or 63pt \or 72pt + \or 81pt \or 90pt \else 108pt + \fi} + +\def\DCFNT@CMB@bar_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 40pt \or 49pt \or 58pt \or 67pt + \or 76pt \or 85pt \else 102pt + \fi} + +\def\DCFNT@CMB@comma_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 35pt \or 42pt \or 49pt \or 56pt + \or 63pt \or 70pt \else 84pt + \fi} + +\def\DCFNT@CMB@desc_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 35pt \or 42pt \or 49pt \or 56pt + \or 63pt \or 70pt \else 84pt + \fi} + +\def\DCFNT@CMB@acc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 37.5pt \or 45pt \or 52.5pt \or 60pt + \or 67.5pt \or 75pt \else 90pt + \fi} + +\def\DCFNT@CMB@dot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 37.5pt \or 45pt \or 52.5pt \or 60pt + \or 67.5pt \or 75pt \else 90pt + \fi} + +\def\DCFNT@CMB@udot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 29.5pt \or 35.5pt \or 41.3pt \or 47.2pt + \or 53.1pt \or 59pt \else 70.8pt + \fi} + +\def\DCFNT@CMB@crisp{\@tempdimb=0pt} + +\def\DCFNT@CMB@tiny{\@tempdimb= + \ifcase\@tempcntb 4pt \or 9pt \or 10pt \or 11pt \or 12pt + \or 13pt \or 13pt \else 13pt + \fi} + +\def\DCFNT@CMB@fine{\@tempdimb= + \ifcase\@tempcntb 3pt \or 8pt \or 9pt \or 9pt \or 10pt + \or 10pt \or 10pt \else 10pt + \fi} + +\def\DCFNT@CMB@thin_join{\@tempdimb= + \ifcase\@tempcntb 3pt \or 8pt \or 9pt \or 9pt \or 10pt + \or 10pt \or 10pt \else 10.5pt + \fi} + +\def\DCFNT@CMB@hair{\@tempdimb= + \ifcase\@tempcntb 13pt \or 15pt \or 15.4pt \or 15.8pt \or 16.2pt + \or 16.6pt \or 17pt \else 18.3pt + \fi} + +\def\DCFNT@CMB@stem{\@tempdimb= + \ifcase\@tempcntb 4pt \or 24pt \or 28pt \or 32pt \or 35pt + \or 38pt \or 41pt \else 47pt + \fi} + +\def\DCFNT@CMB@curve{\@tempdimb= + \ifcase\@tempcntb 7pt \or 27pt \or 31pt \or 35pt \or 39pt + \or 43pt \or 46pt \else 52pt + \fi} + +\def\DCFNT@CMB@ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 25pt \or 29pt \or 32pt + \or 35pt \or 38pt \else 44pt + \fi} + +\def\DCFNT@CMB@flare{\@tempdimb= + \ifcase\@tempcntb 7pt \or 27pt \or 31pt \or 35pt \or 39pt + \or 42pt \or 45pt \else 51pt + \fi} + +\def\DCFNT@CMB@dot_size{\@tempdimb= + \ifcase\@tempcntb 6pt \or 31pt \or 36pt \or 41pt \or 46pt + \or 51pt \or 56pt \else 62pt + \fi} + +\def\DCFNT@CMB@cap_hair{\@tempdimb= + \ifcase\@tempcntb 12pt \or 17pt \or 18pt \or 18pt \or 19pt + \or 19pt \or 19pt \else 20pt + \fi} + +\def\DCFNT@CMB@cap_stem{\@tempdimb= + \ifcase\@tempcntb 3pt \or 28pt \or 33pt \or 38pt \or 43pt + \or 47pt \or 51pt \else 57pt + \fi} + +\def\DCFNT@CMB@cap_curve{\@tempdimb= + \ifcase\@tempcntb 6pt \or 31pt \or 36pt \or 41pt \or 46pt + \or 51pt \or 55pt \else 61pt + \fi} + +\def\DCFNT@CMB@cap_ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 24pt \or 31pt \or 37pt \or 43pt + \or 48pt \or 53pt \else 59pt + \fi} + +\def\DCFNT@CMB@rule_thickness{\@tempdimb= + \ifcase\@tempcntb 23pt \or 43pt \or 47pt \or 51pt \or 54pt + \or 57pt \or 60pt \else 66pt + \fi} + +\def\DCFNT@CMB@dish{\@tempdimb= + \ifcase\@tempcntb 0.2pt \or 0.7pt \or 0.8pt \or 0.9pt \or 1pt + \or 1pt \or 1pt \else 1pt + \fi} + +\def\DCFNT@CMB@bracket{\@tempdimb= + \ifcase\@tempcntb 0pt \or 5pt \or 6pt \or 7pt \or 8pt + \or 9pt \or 10pt \else 12pt + \fi} + +\def\DCFNT@CMB@jut{\@tempdimb= + \ifcase\@tempcntb 3pt \or 13pt \or 15pt \or 17pt \or 19pt + \or 22pt \or 25pt \else 30pt + \fi} + +\def\DCFNT@CMB@beak_jut{\@tempdimb= + \ifcase\@tempcntb 3pt \or 7pt \or 7.8pt \or 8.6pt \or 9.4pt + \or 10.2pt \or 11pt \else 12.4pt + \fi} + +\def\DCFNT@CMB@beak{\@tempdimb= + \ifcase\@tempcntb 0pt \or 25pt \or 36pt \or 46pt \or 55pt + \or 63pt \or 70pt \else 84pt + \fi} + +\def\DCFNT@CMB@vair{\@tempdimb= + \ifcase\@tempcntb 5pt \or 10pt \or 11pt \or 11.5pt \or 12pt + \or 12.5pt \or 13pt \else 14.3pt + \fi} + +\def\DCFNT@CMB@notch_cut{\@tempdimb= + \ifcase\@tempcntb 30pt \or 500pt \or 600pt \or 700pt \or 800pt + \or 900pt \or 1000pt \else 1200pt + \fi} + +\def\DCFNT@CMB@bar{\@tempdimb= + \ifcase\@tempcntb 7pt \or 12pt \or 13pt \or 14pt \or 15pt + \or 16pt \or 17pt \else 18.5pt + \fi} + +\def\DCFNT@CMB@slab{\@tempdimb= + \ifcase\@tempcntb 7pt \or 12pt \or 13pt \or 14pt \or 15pt + \or 16pt \or 17pt \else 18.5pt + \fi} + +\def\DCFNT@CMB@cap_bar{\@tempdimb= + \ifcase\@tempcntb 7pt \or 12pt \or 13pt \or 14pt \or 15pt + \or 16pt \or 17pt \else 18.5pt + \fi} + +\def\DCFNT@CMB@cap_band{\@tempdimb= + \ifcase\@tempcntb 7pt \or 12pt \or 13pt \or 14pt \or 15pt + \or 16pt \or 17pt \else 18.5pt + \fi} + +\def\DCFNT@CMB@cap_notch_cut{\@tempdimb= + \ifcase\@tempcntb 30pt \or 500pt \or 600pt \or 700pt \or 800pt + \or 900pt \or 1000pt \else 1200pt + \fi} + +\def\DCFNT@CMB@serif_drop{\@tempdimb= + \ifcase\@tempcntb 0pt \or 1.5pt \or 1.8pt \or 2.1pt \or 2.4pt + \or 2.7pt \or 3pt \else 3.6pt + \fi} + +\def\DCFNT@CMB@stem_corr{\@tempdimb= + \ifcase\@tempcntb 1pt \or 1.5pt \or 1.6pt \or 1.7pt \or 1.8pt + \or 1.9pt \or 2pt \else 2pt + \fi} + +\def\DCFNT@CMB@vair_corr{\@tempdimb= + \ifcase\@tempcntb 0.5pt \or 1pt \or 1.1pt \or 1.2pt \or 1.3pt + \or 1.4pt \or 1.5pt \else 1.5pt + \fi} + +\def\DCFNT@CMB@apex_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 9pt \or 5pt \or 2pt \or 0pt + \or 0pt \or 0pt \else 0pt + \fi} + +\def\DCFNT@CMB@o{\@tempdimb= + \ifcase\@tempcntb 1.6pt \or 3pt \or 3pt \or 3pt \or 4pt + \or 4pt \or 4pt \else 5pt + \fi} + +\def\DCFNT@CMB@apex_o{\@tempdimb= + \ifcase\@tempcntb 1.6pt \or 3pt \or 3pt \or 3pt \or 3pt + \or 3pt \or 3pt \else 4pt + \fi} + +\def\DCFNT@CMB@fudge{\@tempdimb=1pt} + +\def\DCFNT@CMB@math_spread{\@tempdimb= + \ifcase\@tempcntb 2.4pt \or 1.5pt \or 1.3pt \or 1.1pt \or 0.9pt + \or 0.7pt \or 0.5pt \else 0.5pt + \fi} + +\def\DCFNT@CMB@superness{\@tempdimb=0.72727272727pt} + +\def\DCFNT@CMB@superpull{\@tempdimb=0.125pt} + +\def\DCFNT@CMB@beak_darkness{\@tempdimb=0.4pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% +%% CMSS Family +%% + + +% +% this code find index (=\@tempcnta) for font size value, +% (assigned earlier to \@tempdima) +% +\def\DCFNT@findpos@CMS{\ifdim \@tempdima<\z@ \@tempdima=\z@ \fi + \@tempcnta= + \ifdim \@tempdima<8pt 0 + \else \ifdim \@tempdima<9pt 1 + \else \ifdim \@tempdima<10pt 2 + \else \ifdim \@tempdima<12pt 3 + \else 4 + \fi\fi\fi\fi} +% +% x-value and interval value for given index \@tempcntb +% +\def\DCFNT@fntsize@CMS{\@tempdimb= + \ifcase\@tempcntb 0pt \or 8pt \or 9pt \or 10pt + \or 12pt \else 17.28pt + \fi} + +\def\DCFNT@interval@CMS{% + \ifcase\@tempcntb 8 % 0pt-8pt + \or 1 % 8pt-9pt + \or 1 % 9pt-10pt + \or 2 % 10pt-12pt + \or 5.28 % 12pt-17.28pt + \else 0 + \fi} + +\def\DCFNT@revint@CMS{% + \ifcase\@tempcntb 0.125 % 0pt-8pt + \or 1 % 8pt-9pt + \or 1 % 9pt-10pt + \or 0.5 % 10pt-12pt + \or 0.18939393939 % 12pt-17.28pt + \else 0 + \fi} + +\def\DCFNT@CMS@u{\@tempdimb= + \ifcase\@tempcntb 5pt \or 17pt \or 18.5pt \or 20pt + \or 23.5pt \else 32.5pt + \fi} + +\def\DCFNT@CMS@width_adj{\@tempdimb= + \ifcase\@tempcntb 4pt \or 12pt \or 13pt \or 15pt + \or 17pt \else 24pt + \fi} + +\def\DCFNT@CMS@serif_fit{\@tempdimb= + \ifcase\@tempcntb -2pt \or -6pt \or -6.5pt \or -7pt + \or -9pt \else -12pt + \fi} + +\def\DCFNT@CMS@cap_serif_fit{\@tempdimb= + \ifcase\@tempcntb -4.5pt \or -8.5pt \or -9pt \or -10pt + \or -13pt \else -17pt + \fi} + +\def\DCFNT@CMS@letter_fit{\DCFNT@CMR@letter_fit} + +\def\DCFNT@CMS@body_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 216pt \or 243pt \or 270pt + \or 324pt \else 466pt + \fi} + +\def\DCFNT@CMS@asc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 205pt \or 235pt \or 260pt + \or 315pt \else 445pt + \fi} + +\def\DCFNT@CMS@cap_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 200pt \or 225pt \or 250pt + \or 300pt \else 425pt + \fi} + +\def\DCFNT@CMS@fig_height{\@tempdimb= + \ifcase\@tempcntb 5pt \or 189pt \or 212pt \or 236pt + \or 283pt \else 408pt + \fi} + +\def\DCFNT@CMS@x_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 128pt \or 144pt \or 160pt + \or 192pt \else 267.8pt + \fi} + +\def\DCFNT@CMS@math_axis{\@tempdimb= + \ifcase\@tempcntb 0pt \or 72pt \or 81pt \or 90pt + \or 108pt \else 155.5pt + \fi} + +\def\DCFNT@CMS@bar_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 63pt \or 71pt \or 79pt + \or 97pt \else 136pt + \fi} + +\def\DCFNT@CMS@comma_depth{\@tempdimb= + \ifcase\@tempcntb 5pt \or 37pt \or 41pt \or 45pt + \or 54pt \else 78pt + \fi} + +\def\DCFNT@CMS@desc_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 56pt \or 63pt \or 70pt + \or 84pt \else 121pt + \fi} + +\def\DCFNT@CMS@acc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 60pt \or 65pt \or 70pt + \or 82pt \else 110pt + \fi} + +\def\DCFNT@CMS@dot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 45.8pt \or 50.4pt \or 56pt + \or 67.2pt \else 90pt + \fi} + +\def\DCFNT@CMS@udot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 48.2pt \or 53.1pt \or 59pt + \or 70.8pt \else 100.3pt + \fi} + +\def\DCFNT@CMS@crisp{\@tempdimb=0pt} + +\def\DCFNT@CMS@tiny{\@tempdimb=0pt} + +\def\DCFNT@CMS@fine{\@tempdimb=0pt} + +\def\DCFNT@CMS@thin_join{\@tempdimb= + \ifcase\@tempcntb 0pt \or 15pt \or 16pt \or 17pt + \or 20pt \else 24pt + \fi} + +\def\DCFNT@CMS@hair{\@tempdimb= + \ifcase\@tempcntb 9pt \or 25pt \or 27pt \or 28pt + \or 33pt \else 37pt + \fi} + +\def\DCFNT@CMS@stem{\@tempdimb= + \ifcase\@tempcntb 9pt \or 25pt \or 27pt \or 28pt + \or 33pt \else 37pt + \fi} + +\def\DCFNT@CMS@curve{\@tempdimb= + \ifcase\@tempcntb 9pt \or 25pt \or 27pt \or 28pt + \or 30pt \else 33pt + \fi} + +\def\DCFNT@CMS@ess{\@tempdimb= + \ifcase\@tempcntb 9pt \or 25pt \or 27pt \or 28pt + \or 33pt \else 37pt + \fi} + +\def\DCFNT@CMS@flare{\@tempdimb= + \ifcase\@tempcntb 6pt \or 22pt \or 24pt \or 25pt + \or 30pt \else 33pt + \fi} + +\def\DCFNT@CMS@dot_size{\@tempdimb= + \ifcase\@tempcntb 10pt \or 26pt \or 28pt \or 30pt + \or 35pt \else 40pt + \fi} + +\def\DCFNT@CMS@cap_hair{\@tempdimb= + \ifcase\@tempcntb 9pt \or 25pt \or 27pt \or 28pt + \or 33pt \else 37pt + \fi} + +\def\DCFNT@CMS@cap_stem{\@tempdimb= + \ifcase\@tempcntb 13pt \or 29pt \or 31pt \or 32pt + \or 33pt \else 39pt + \fi} + +\def\DCFNT@CMS@cap_curve{\@tempdimb= + \ifcase\@tempcntb 13pt \or 29pt \or 31pt \or 32pt + \or 37pt \else 42pt + \fi} + +\def\DCFNT@CMS@cap_ess{\@tempdimb= + \ifcase\@tempcntb 4pt \or 28pt \or 31pt \or 32pt + \or 37pt \else 42pt + \fi} + +\def\DCFNT@CMS@rule_thickness{\@tempdimb= + \ifcase\@tempcntb 13pt \or 36pt \or 38pt \or 40pt + \or 44pt \else 60pt + \fi} + +\def\DCFNT@CMS@dish{\@tempdimb=0pt} + +\def\DCFNT@CMS@bracket{\@tempdimb=0pt} + +\def\DCFNT@CMS@jut{\@tempdimb=0pt} + +\def\DCFNT@CMS@cap_jut{\@tempdimb=0pt} + +\def\DCFNT@CMS@beak_jut{\@tempdimb=0pt} + +\def\DCFNT@CMS@beak{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0.4pt \or 0.5pt \or 0.5pt + \or 0.6pt \else 0.8pt + \fi} + +\def\DCFNT@CMS@vair{\@tempdimb= + \ifcase\@tempcntb 3pt \or 19pt \or 21pt \or 22pt + \or 26pt \else 31pt + \fi} + +\def\DCFNT@CMS@notch_cut{\@tempdimb= + \ifcase\@tempcntb 8pt \or 16pt \or 17pt \or 18pt + \or 22pt \else 32pt + \fi + \@tempdimb=2.7777777778\@tempdimb} + +\def\DCFNT@CMS@bar{\@tempdimb= + \ifcase\@tempcntb 2pt \or 18pt \or 20pt \or 21pt + \or 25pt \else 30pt + \fi} + +\def\DCFNT@CMS@slab{\@tempdimb= + \ifcase\@tempcntb 4pt \or 20pt \or 22pt \or 23pt + \or 27pt \else 32pt + \fi} + +\def\DCFNT@CMS@cap_bar{\@tempdimb= + \ifcase\@tempcntb 3pt \or 19pt \or 21pt \or 22pt + \or 26pt \else 31pt + \fi} + +\def\DCFNT@CMS@cap_band{\@tempdimb= + \ifcase\@tempcntb 1pt \or 17pt \or 19pt \or 20pt + \or 24pt \else 30pt + \fi} + +\def\DCFNT@CMS@cap_notch_cut{\@tempdimb= + \ifcase\@tempcntb 6pt \or 22pt \or 24pt \or 25pt + \or 31pt \else 36pt + \fi + \@tempdimb=2.7777777778\@tempdimb} + +\def\DCFNT@CMS@serif_drop{\@tempdimb=2pt} + +\def\DCFNT@CMS@stem_corr{\@tempdimb=1pt} + +\def\DCFNT@CMS@vair_corr{\@tempdimb=1pt} + +\def\DCFNT@CMS@apex_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 4pt \or 4.5pt \or 5pt + \or 6pt \else 7pt + \fi} + +\def\DCFNT@CMS@o{\@tempdimb= + \ifcase\@tempcntb 1.5pt \or 6pt \or 7pt \or 8pt + \or 9pt \else 10pt + \fi} + +\def\DCFNT@CMS@apex_o{\@tempdimb=0pt} + +\def\DCFNT@CMS@fudge{\@tempdimb= + \ifcase\@tempcntb 0.77pt \or 0.93pt \or 0.95pt \or 0.96pt + \or 0.98pt \else 0.98pt + \fi} + +\def\DCFNT@CMS@math_spread{\@tempdimb= + \ifcase\@tempcntb 2pt \or 0.4pt \or 0.2pt \or 0pt + \or -0.2pt \else -0.2pt + \fi} + +\def\DCFNT@CMS@superness{\@tempdimb=0.707106781186548pt} + +\def\DCFNT@CMS@superpull{\@tempdimb=0.05pt} + +\def\DCFNT@CMS@beak_darkness{\@tempdimb=0pt} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% +%% CMTT Family +%% + + +% +% this code find index (=\@tempcnta) for font size value, +% (assigned earlier to \@tempdima) +% +\def\DCFNT@findpos@CMT{\ifdim \@tempdima<\z@ \@tempdima=\z@ \fi + \@tempcnta= + \ifdim \@tempdima<8pt 0 + \else \ifdim \@tempdima<9pt 1 + \else \ifdim \@tempdima<10pt 2 + \else 3 + \fi\fi\fi} + +% +% x-value and interval value for given index \@tempcntb +% +\def\DCFNT@fntsize@CMT{\@tempdimb= + \ifcase\@tempcntb 0pt \or 8pt \or 9pt \or 10pt + \else 12pt + \fi} + +\def\DCFNT@interval@CMT{% + \ifcase\@tempcntb 8 % 0pt-8pt + \or 1 % 8pt-9pt + \or 1 % 9pt-10pt + \or 2 % 10pt-12pt + \else 0 + \fi} + +\def\DCFNT@revint@CMT{% + \ifcase\@tempcntb 0.125 % 0pt-8pt + \or 1 % 8pt-9pt + \or 1 % 9pt-10pt + \or 0.5 % 10pt-12pt + \else 0 + \fi} + +\def\DCFNT@CMT@u{\@tempdimb= + \ifcase\@tempcntb 9pt \or 17pt \or 18.9pt \or 21pt \else 24.7pt + \fi} + +\def\DCFNT@CMT@width_adj{\@tempdimb=0pt} + +\def\DCFNT@CMT@serif_fit{\@tempdimb=0pt} + +\def\DCFNT@CMT@cap_serif_fit{\@tempdimb=0pt} + +\def\DCFNT@CMT@letter_fit{\DCFNT@CMR@letter_fit} + +\def\DCFNT@CMT@body_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 200pt \or 225pt \or 250pt \else 300pt + \fi} + +\def\DCFNT@CMT@asc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 176pt \or 198pt \or 220pt \else 264pt + \fi} + +\def\DCFNT@CMT@cap_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 176pt \or 198pt \or 220pt \else 264pt + \fi} + +\def\DCFNT@CMT@fig_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 176pt \or 198pt \or 220pt \else 264pt + \fi} + +\def\DCFNT@CMT@x_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 124pt \or 139.5pt \or 155pt \else 186pt + \fi} + +\def\DCFNT@CMT@math_axis{\@tempdimb= + \ifcase\@tempcntb 0pt \or 88pt \or 99pt \or 110pt \else 132pt + \fi} + +\def\DCFNT@CMT@bar_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 63pt \or 71pt \or 79pt \else 95pt + \fi} + +\def\DCFNT@CMT@comma_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 40pt \or 45pt \or 50pt \else 60pt + \fi} + +\def\DCFNT@CMT@desc_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 64pt \or 72pt \or 80pt \else 96pt + \fi} + +\def\DCFNT@CMT@acc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 60pt \or 67.5pt \or 75pt \else 90pt + \fi} + +\def\DCFNT@CMT@dot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 60pt \or 67.5pt \or 75pt \else 90pt + \fi} + +\def\DCFNT@CMT@udot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 47.2pt \or 53.1pt \or 59pt \else 70.8pt + \fi} + +\def\DCFNT@CMT@crisp{\@tempdimb= + \ifcase\@tempcntb 3pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@tiny{\@tempdimb= + \ifcase\@tempcntb 3pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@fine{\@tempdimb= + \ifcase\@tempcntb 0pt \or 18pt \or 20pt \or 21pt \else 22pt + \fi} + +\def\DCFNT@CMT@thin_join{\@tempdimb= + \ifcase\@tempcntb 0pt \or 18pt \or 20pt \or 21pt \else 22pt + \fi} + +\def\DCFNT@CMT@hair{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi} + +\def\DCFNT@CMT@stem{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi} + +\def\DCFNT@CMT@curve{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi} + +\def\DCFNT@CMT@ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@flare{\@tempdimb= + \ifcase\@tempcntb 12pt \or 28pt \or 30pt \or 32pt \else 35pt + \fi} + +\def\DCFNT@CMT@dot_size{\@tempdimb= + \ifcase\@tempcntb 15pt \or 31pt \or 33pt \or 36pt \else 39pt + \fi} + +\def\DCFNT@CMT@cap_hair{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi} + +\def\DCFNT@CMT@cap_stem{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi} + +\def\DCFNT@CMT@cap_curve{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi} + +\def\DCFNT@CMT@cap_ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi} + +\def\DCFNT@CMT@rule_thickness{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi + \@tempdimb=2.7777777778\@tempdimb} + +\def\DCFNT@CMT@dish{\@tempdimb=0pt} + +\def\DCFNT@CMT@bracket{\@tempdimb=0pt} + +\def\DCFNT@CMT@jut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 27pt \or 31pt \or 34pt \else 39pt + \fi} + +\def\DCFNT@CMT@cap_jut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 27pt \or 31pt \or 34pt \else 39pt + \fi} + +\def\DCFNT@CMT@beak_jut{\@tempdimb=0pt} + +\def\DCFNT@CMT@beak{\@tempdimb= + \ifcase\@tempcntb 0pt \or 27pt \or 31pt \or 34pt \else 39pt + \fi} + +\def\DCFNT@CMT@vair{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@notch_cut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi + \@tempdimb=2.7777777778\@tempdimb} + +\def\DCFNT@CMT@bar{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@slab{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@cap_bar{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@cap_band{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMT@cap_notch_cut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 22pt \or 24pt \or 25pt \else 28pt + \fi + \@tempdimb=2.7777777778\@tempdimb} + +\def\DCFNT@CMT@serif_drop{\@tempdimb=0pt} + +\def\DCFNT@CMT@stem_corr{\@tempdimb=0pt} + +\def\DCFNT@CMT@vair_corr{\@tempdimb=0pt} + +\def\DCFNT@CMT@apex_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 8pt \or 9pt \or 10pt \else 11pt + \fi} + +\def\DCFNT@CMT@o{\@tempdimb= + \ifcase\@tempcntb 0pt \or 3pt \or 3.5pt \or 4pt \else 5pt + \fi} + +\def\DCFNT@CMT@apex_o{\@tempdimb= + \ifcase\@tempcntb 0pt \or 3pt \or 3pt \or 3pt \else 4pt + \fi} + +\def\DCFNT@CMT@fudge{\@tempdimb=0.81pt} + +\def\DCFNT@CMT@math_spread{\@tempdimb=-1pt} + +\def\DCFNT@CMT@superness{\@tempdimb=0.707106781186548pt} + +\def\DCFNT@CMT@superpull{\@tempdimb=0pt} + +\def\DCFNT@CMT@beak_darkness{\@tempdimb=0pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% +%% CM Funny Family +%% + + +% +% this code find index (=\@tempcnta) for font size value, +% (assigned earlier to \@tempdima) +% +\def\DCFNT@findpos@CMF{\ifdim \@tempdima<\z@ \@tempdima=\z@ \fi + \@tempcnta= + \ifdim \@tempdima<8pt 0 + \else \ifdim \@tempdima<9pt 1 + \else \ifdim \@tempdima<10pt 2 + \else 3 + \fi\fi\fi} + +% +% x-value and interval value for given index \@tempcntb +% +\def\DCFNT@fntsize@CMF{\DCFNT@fntsize@CMT} + +\def\DCFNT@interval@CMF{\DCFNT@interval@CMT} + +\def\DCFNT@revint@CMF{\DCFNT@revint@CMT} + +\def\DCFNT@CMF@u{\@tempdimb= + \ifcase\@tempcntb 4pt \or 12pt \or 13.9pt \or 16pt \else 19.7pt + \fi} + +\def\DCFNT@CMF@width_adj{\@tempdimb=-16pt} + +\def\DCFNT@CMF@serif_fit{\@tempdimb=-3pt} + +\def\DCFNT@CMF@cap_serif_fit{\@tempdimb=-4pt} + +\def\DCFNT@CMF@letter_fit{\@tempdimb=2pt} + +\def\DCFNT@CMF@body_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 190pt \or 215pt \or 240pt \else 290pt + \fi} + +\def\DCFNT@CMF@asc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 176pt \or 198pt \or 220pt \else 264pt + \fi} + +\def\DCFNT@CMF@cap_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 181pt \or 203pt \or 225pt \else 269pt + \fi} + +\def\DCFNT@CMF@fig_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 166pt \or 188pt \or 210pt \else 254pt + \fi} + +\def\DCFNT@CMF@x_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 159pt \or 174.5pt \or 190pt \else 221pt + \fi} + +\def\DCFNT@CMF@math_axis{\@tempdimb= + \ifcase\@tempcntb 0pt \or 33pt \or 44pt \or 55pt \else 77pt + \fi} + +\def\DCFNT@CMF@bar_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 44pt \or 52pt \or 60pt \else 76pt + \fi} + +\def\DCFNT@CMF@comma_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 54pt \or 62pt \or 70pt \else 86pt + \fi} + +\def\DCFNT@CMF@desc_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 84pt \or 92pt \or 100pt \else 116pt + \fi} + +\def\DCFNT@CMF@acc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 60pt \or 67.5pt \or 75pt \else 90pt + \fi} + +\def\DCFNT@CMF@dot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 60pt \or 67.5pt \or 75pt \else 90pt + \fi} + +\def\DCFNT@CMF@udot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 47.2pt \or 53.1pt \or 59pt \else 70.8pt + \fi} + +\def\DCFNT@CMF@crisp{\@tempdimb= + \ifcase\@tempcntb 0pt \or 8pt \or 10pt \or 11pt \else 14pt + \fi} + +\def\DCFNT@CMF@tiny{\@tempdimb=0pt} + +\def\DCFNT@CMF@fine{\@tempdimb=0pt} + +\def\DCFNT@CMF@thin_join{\@tempdimb= + \ifcase\@tempcntb 0pt \or 11pt \or 13pt \or 14pt \else 15pt + \fi} + +\def\DCFNT@CMF@hair{\@tempdimb= + \ifcase\@tempcntb 6.666666pt \or 8pt \or 10pt \or 11pt \else 14pt + \fi} + +\def\DCFNT@CMF@stem{\@tempdimb= + \ifcase\@tempcntb 3.85pt \or 13pt \or 15pt \or 16pt \else 19pt + \fi} + +\def\DCFNT@CMF@curve{\@tempdimb= + \ifcase\@tempcntb 3.66666pt \or 17pt \or 19pt \or 20pt \else 23pt + \fi} + +\def\DCFNT@CMF@ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMF@flare{\@tempdimb= + \ifcase\@tempcntb 6.55pt \or 20pt \or 22pt \or 24pt \else 27pt + \fi} + +\def\DCFNT@CMF@dot_size{\@tempdimb= + \ifcase\@tempcntb 1.37pt \or 21pt \or 23pt \or 26pt \else 29pt + \fi} + +\def\DCFNT@CMF@cap_hair{\@tempdimb= + \ifcase\@tempcntb 8pt \or 13pt \or 15pt \or 16pt \else 19pt + \fi} + +\def\DCFNT@CMF@cap_stem{\@tempdimb= + \ifcase\@tempcntb 9.46pt \or 21pt \or 23pt \or 24pt \else 27pt + \fi} + +\def\DCFNT@CMF@cap_curve{\@tempdimb= + \ifcase\@tempcntb 4.2pt \or 23pt \or 25pt \or 26pt \else 29pt + \fi} + +\def\DCFNT@CMF@cap_ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 25pt \or 27pt \or 28pt \else 31pt + \fi} + +\def\DCFNT@CMF@rule_thickness{\@tempdimb= + \ifcase\@tempcntb 16.25pt \or 46pt \or 48pt \or 50pt \else 54pt + \fi} + +\def\DCFNT@CMF@dish{\@tempdimb=5pt} + +\def\DCFNT@CMF@bracket{\@tempdimb=20pt} + +\def\DCFNT@CMF@jut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 2.4pt \or 2.7pt \or 3.0pt \else 3.6pt + \fi} + +\def\DCFNT@CMF@cap_jut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 3.2pt \or 3.6pt \or 4.0pt \else 4.8pt + \fi} + +\def\DCFNT@CMF@beak_jut{\@tempdimb=-8pt} + +\def\DCFNT@CMF@beak{\@tempdimb= + \ifcase\@tempcntb 0pt \or 8pt \or 9pt \or 10pt \else 12pt + \fi} + +\def\DCFNT@CMF@vair{\@tempdimb= + \ifcase\@tempcntb 1.75pt \or 11pt \or 13pt \or 14pt \else 17pt + \fi} + +\def\DCFNT@CMF@notch_cut{\@tempdimb=200pt} + +\def\DCFNT@CMF@bar{\@tempdimb= + \ifcase\@tempcntb 8.5pt \or 14pt \or 16pt \or 17pt \else 20pt + \fi} + +\def\DCFNT@CMF@slab{\@tempdimb= + \ifcase\@tempcntb 10pt \or 17pt \or 19pt \or 20pt \else 25pt + \fi} + +\def\DCFNT@CMF@cap_bar{\@tempdimb= + \ifcase\@tempcntb 11pt \or 19pt \or 21pt \or 22pt \else 25pt + \fi} + +\def\DCFNT@CMF@cap_band{\@tempdimb= + \ifcase\@tempcntb 8.5pt \or 14pt \or 16pt \or 17pt \else 20pt + \fi} + +\def\DCFNT@CMF@cap_notch_cut{\@tempdimb=300pt} + +\def\DCFNT@CMF@serif_drop{\@tempdimb=-10pt} + +\def\DCFNT@CMF@stem_corr{\@tempdimb=-1pt} + +\def\DCFNT@CMF@vair_corr{\@tempdimb=-1pt} + +\def\DCFNT@CMF@apex_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 4pt \or 5pt \or 6pt \else 7pt + \fi} + +\def\DCFNT@CMF@o{\@tempdimb= + \ifcase\@tempcntb 0.75pt \or 3pt \or 3.5pt \or 4pt \else 5pt + \fi} + +\def\DCFNT@CMF@apex_o{\@tempdimb= + \ifcase\@tempcntb 1.68pt \or 9pt \or 9pt \or 9pt \else 10pt + \fi} + +\def\DCFNT@CMF@fudge{\@tempdimb=1pt} + +\def\DCFNT@CMF@math_spread{\@tempdimb=0.5pt} + +\def\DCFNT@CMF@superness{\@tempdimb=0.66666666667pt} + +\def\DCFNT@CMF@superpull{\@tempdimb=-0.125pt} + +\def\DCFNT@CMF@beak_darkness{\@tempdimb=0.5pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% +%% CMFIB Family +%% + +% +% this code find index (=\@tempcnta) for font size value, +% (assigned earlier to \@tempdima) +% +\def\DCFNT@findpos@FIB{\ifdim \@tempdima<\z@ \@tempdima=\z@ \fi + \@tempcnta= + \ifdim \@tempdima<5pt 0 + \else \ifdim \@tempdima<8pt 1 + \else \ifdim \@tempdima<13pt 2 + \else \ifdim \@tempdima<21pt 3 + \else 4 + \fi\fi\fi\fi} +% +% x-value and interval value for given index \@tempcntb +% +\def\DCFNT@fntsize@FIB{\@tempdimb= + \ifcase\@tempcntb 0pt \or 5pt \or 8pt \or 13pt + \or 21pt \else 34pt + \fi} + +\def\DCFNT@interval@FIB{% + \ifcase\@tempcntb 5 % 0pt-5pt + \or 3 % 5pt-8pt + \or 5 % 8pt-13pt + \or 8 % 13pt-21pt + \or 13 % 21pt-34pt + \else 0 + \fi} + +\def\DCFNT@revint@FIB{% + \ifcase\@tempcntb 0.2 % 0pt-5pt + \or 0.33333333333 % 5pt-8pt + \or 0.2 % 8pt-13pt + \or 0.125 % 13pt-21pt + \or 0.076923076923 % 21pt-34pt + \else 0 + \fi} + +\def\DCFNT@FIB@u{\@tempdimb= + \ifcase\@tempcntb 6.1768pt \or 13pt \or 21pt + \or 34pt \or 55pt \else 144pt + \fi} + +\def\DCFNT@FIB@width_adj{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 0pt + \or 1pt \or 1pt \else 3pt + \fi} + +\def\DCFNT@FIB@serif_fit{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 0pt + \or 1pt \or 1pt \else 3pt + \fi} + +\def\DCFNT@FIB@cap_serif_fit{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 0pt + \or 1pt \or 1pt \else 3pt + \fi} + +\def\DCFNT@FIB@letter_fit{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 0pt + \or 1pt \or 1pt \else 3pt + \fi} + +\def\DCFNT@FIB@body_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 144pt \or 233pt + \or 377pt \or 610pt \else 1597pt + \fi} + +\def\DCFNT@FIB@asc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 144pt \or 233pt + \or 377pt \or 610pt \else 1597pt + \fi} + +\def\DCFNT@FIB@cap_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 144pt \or 233pt + \or 377pt \or 610pt \else 1597pt + \fi} + +\def\DCFNT@FIB@fig_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 144pt \or 233pt + \or 377pt \or 610pt \else 1597pt + \fi} + +\def\DCFNT@FIB@x_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 89pt \or 144pt + \or 233pt \or 377pt \else 610pt + \fi} + +\def\DCFNT@FIB@math_axis{\@tempdimb= + \ifcase\@tempcntb 0pt \or 55pt \or 89pt + \or 144pt \or 233pt \else 377pt + \fi} + +\def\DCFNT@FIB@bar_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 55pt \or 89pt + \or 144pt \or 233pt \else 377pt + \fi} + +\def\DCFNT@FIB@comma_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 34pt \or 55pt + \or 89pt \or 144pt \else 233pt + \fi} + +\def\DCFNT@FIB@desc_depth{\@tempdimb= + \ifcase\@tempcntb 0pt \or 34pt \or 55pt + \or 89pt \or 144pt \else 233pt + \fi} + +\def\DCFNT@FIB@acc_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 34pt \or 55pt + \or 89pt \or 144pt \else 233pt + \fi} + +\def\DCFNT@FIB@dot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 21pt \or 55pt + \or 89pt \or 144pt \else 233pt + \fi} + +\def\DCFNT@FIB@udot_height{\@tempdimb= + \ifcase\@tempcntb 0pt \or 34pt \or 55pt + \or 89pt \or 144pt \else 233pt + \fi} + +\def\DCFNT@FIB@crisp{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 0pt + \or 1pt \or 1pt \else 3pt + \fi} + +\def\DCFNT@FIB@tiny{\@tempdimb= + \ifcase\@tempcntb 1.625pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@fine{\@tempdimb= + \ifcase\@tempcntb 0pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@thin_join{\@tempdimb= + \ifcase\@tempcntb 0pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@hair{\@tempdimb= + \ifcase\@tempcntb 11.67pt \or 13pt \or 21pt + \or 34pt \or 55pt \else 144pt + \fi} + +\def\DCFNT@FIB@stem{\@tempdimb= + \ifcase\@tempcntb 9.27pt \or 21pt \or 34pt + \or 55pt \or 89pt \else 233pt + \fi} + +\def\DCFNT@FIB@curve{\@tempdimb= + \ifcase\@tempcntb 8.58pt \or 24pt \or 39pt + \or 63pt \or 102pt \else 254pt + \fi} + +\def\DCFNT@FIB@ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 21pt \or 34pt + \or 55pt \or 89pt \else 233pt + \fi} + +\def\DCFNT@FIB@flare{\@tempdimb= + \ifcase\@tempcntb 11.33pt \or 21pt \or 34pt + \or 55pt \or 89pt \else 233pt + \fi} + +\def\DCFNT@FIB@dot_size{\@tempdimb= + \ifcase\@tempcntb 2.125pt \or 21pt \or 34pt + \or 55pt \or 89pt \else 233pt + \fi} + +\def\DCFNT@FIB@cap_hair{\@tempdimb= + \ifcase\@tempcntb 6pt \or 13pt \or 21pt + \or 34pt \or 55pt \else 144pt + \fi} + +\def\DCFNT@FIB@cap_stem{\@tempdimb= + \ifcase\@tempcntb 8.34pt \or 21pt \or 34pt + \or 55pt \or 89pt \else 233pt + \fi} + +\def\DCFNT@FIB@cap_curve{\@tempdimb= + \ifcase\@tempcntb 7.8pt \or 24pt \or 39pt + \or 63pt \or 102pt \else 254pt + \fi} + +\def\DCFNT@FIB@cap_ess{\@tempdimb= + \ifcase\@tempcntb 0pt \or 21pt \or 34pt + \or 55pt \or 89pt \else 233pt + \fi} + +\def\DCFNT@FIB@rule_thickness{\@tempdimb= + \ifcase\@tempcntb 8pt \or 13pt \or 21pt + \or 34pt \or 55pt \else 144pt + \fi + \@tempdimb=2.7777777778\@tempdimb} + +\def\DCFNT@FIB@dish{\@tempdimb= + \ifcase\@tempcntb 0.2pt \or 1pt \or 1pt + \or 1pt \or 2pt \else 5pt + \fi} + +\def\DCFNT@FIB@bracket{\@tempdimb= + \ifcase\@tempcntb 0pt \or 13pt \or 21pt + \or 34pt \or 55pt \else 144pt + \fi} + +\def\DCFNT@FIB@jut{\@tempdimb= + \ifcase\@tempcntb 4.77pt \or 13pt \or 21pt + \or 34pt \or 55pt \else 144pt + \fi} + +\def\DCFNT@FIB@cap_jut{\@tempdimb= + \ifcase\@tempcntb 3.62pt \or 13pt \or 21pt + \or 34pt \or 55pt \else 144pt + \fi} + +\def\DCFNT@FIB@beak_jut{\@tempdimb= + \ifcase\@tempcntb 3.1pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@beak{\@tempdimb= + \ifcase\@tempcntb 0pt \or 34pt \or 55pt + \or 89pt \or 144pt \else 377pt + \fi} + +\def\DCFNT@FIB@vair{\@tempdimb= + \ifcase\@tempcntb 1.625pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@notch_cut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 300pt \or 800pt + \or 1300pt \or 2100pt \else 5500pt + \fi} + +\def\DCFNT@FIB@bar{\@tempdimb= + \ifcase\@tempcntb 5pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@slab{\@tempdimb= + \ifcase\@tempcntb 5pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@cap_bar{\@tempdimb= + \ifcase\@tempcntb 5pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@cap_band{\@tempdimb= + \ifcase\@tempcntb 5pt \or 8pt \or 13pt + \or 21pt \or 34pt \else 89pt + \fi} + +\def\DCFNT@FIB@cap_notch_cut{\@tempdimb= + \ifcase\@tempcntb 0pt \or 3pt \or 8pt + \or 13pt \or 21pt \else 55pt + \fi} + +\def\DCFNT@FIB@serif_drop{\@tempdimb= + \ifcase\@tempcntb 0pt \or 2pt \or 3pt + \or 5pt \or 8pt \else 21pt + \fi} + +\def\DCFNT@FIB@stem_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 1pt + \or 1pt \or 2pt \else 5pt + \fi} + +\def\DCFNT@FIB@vair_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 1pt + \or 1pt \or 2pt \else 5pt + \fi} + +\def\DCFNT@FIB@apex_corr{\@tempdimb= + \ifcase\@tempcntb 0pt \or 0pt \or 0pt + \or 1pt \or 1pt \else 3pt + \fi} + +\def\DCFNT@FIB@o{\@tempdimb= + \ifcase\@tempcntb 2pt \or 5pt \or 8pt + \or 13pt \or 21pt \else 55pt + \fi} + +\def\DCFNT@FIB@apex_o{\@tempdimb= + \ifcase\@tempcntb 2pt \or 5pt \or 8pt + \or 13pt \or 21pt \else 55pt + \fi} + +\def\DCFNT@FIB@fudge{\@tempdimb=1pt} + +\def\DCFNT@FIB@math_spread{\@tempdimb=0.375pt} + +\def\DCFNT@FIB@superness{\@tempdimb=0.707106781186548pt} + +\def\DCFNT@FIB@superpull{\@tempdimb=0.076923076923pt} + +\def\DCFNT@FIB@beak_darkness{\@tempdimb=0.38461538462pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/latex/mff/mff.sty b/Master/texmf-dist/tex/latex/mff/mff.sty new file mode 100644 index 00000000000..ca698889d2e --- /dev/null +++ b/Master/texmf-dist/tex/latex/mff/mff.sty @@ -0,0 +1,743 @@ +\def\MFF@version{1.21 [June 1996]} +\typeout{LaTeX Style file MFF.STY, ver. \MFF@version} + +\def\MFFcatcode{% + \chardef\oldatcatcode=\catcode`@ + \chardef\oldsubcatcode=\catcode`_ + \catcode`@=11 + \catcode`_=11 +} + +\def\noMFFcatcode{% + \catcode`@=\oldatcatcode + \catcode`_=\oldsubcatcode +} + +\def\otherMFFcatcode{% + \catcode`@=12 + \catcode`_=12 +} + +\def\letterMFFcatcode{% + \catcode`@=11 + \catcode`_=11 +} + +\MFFcatcode + +\newif\ifMFF@dcfont +\MFF@dcfontfalse + +% +% select approximation scheme: dcfonts, sauter +% + +\def\MFFsauter{\def\MFF@apptype{SAUTER}} +\def\MFFdcfonts{\def\MFF@apptype{DCFONT}} + +\input{mfdcdata.tex} +\input{mfsauter.tex} +\input{mfcorfnt.tex} +\input{mftricks.tex} +\input{mfarithm.tex} + +\newwrite\MFF@outfont +\newread\MFF@checkfont + +% type warning message +\def\MFF@warning#1{\immediate\write16{<MFF/line=\the\inputlineno>: #1}} +\def\MFF@warncorr#1{\MFF@warning{Variable "#1" is corrected}} + +% open new font: #1 = internal name, #2 = file name, #3 = scaling +\def\MFF@open#1#2#3{% + \immediate\openout\MFF@outfont=#2.mf + \openin\MFF@checkfont=#2.tfm + \ifeof\MFF@checkfont + \MFF@warning{No file #2.tfm -- dummy font will be used}% + \font #1=dummy\relax + \else + \font #1=#2 #3\relax + \fi + \closein\MFF@checkfont + \MFF@warning{Do not forget to process #2.mf + and reprocess this file}% +} + +% write to \MFF@outfont some string +\def\MFF@write#1{\immediate\write\MFF@outfont{#1}\ignorespaces} + +% close output file +\def\MFF@close{\MFF@write{}\immediate\closeout\MFF@outfont} + +% +% output primitives +% +\chardef\tempoldCod=\catcode`# \chardef\tempoldcoD=\catcode`^ +\chardef\tempoldCoD=\catcode37 +\catcode`#=12 \catcode`^=6 \catcode37=12 + +\def\MFF@p{#} +\def\MFF@c{%} + +\def\MFF@comment^1{\MFF@write{% \space ^1}} +\def\MFF@commstr^1^2{\MFF@write{^1 \space\space\space % ^2}} +\def\MFF@capsprmdc{\MFF@write{lower.uu#:= lower.u#;}} +\def\MFF@capsprm^1^2^3{\MFF@write{lower.^1#:= \space\space\space % ^3} + \MFF@write{ \space\space\space ^1# * (^2);}} +\def\MFF@capsval^1^2^3{\MFF@write{lower.^1:= \space\space\space % ^3} + \MFF@write{ \space\space\space ^1 * (^2) ;}} +\def\MFF@parameter^1^2^3{\MFF@write{^1:=\@tempa^2; \space\space\space % ^3}} +\def\MFF@parmreal^1^2{\MFF@parm{^1}\MFF@parameter{^1#}{/36pt#}{^2}} +\def\MFF@parmrule^1^2{\MFF@parm{^1}\MFF@parameter{^1#}{/100pt#}{^2}} +\def\MFF@parmfactor^1^2{\MFF@parm{^1}\MFF@parameter{^1}{}{^2}} +\def\MFF@parmsize^1{\MFF@convert{^1}\MFF@write{font_size \@tempa pt#;}} + +\catcode`#=\tempoldCod \catcode`^=\tempoldcoD \catcode37=\tempoldCoD + +% set slant value +\def\MFFslant#1{\global\edef\MFF@slant{#1}} +\def\MFFslantD#1{\global\edef\MFF@slant{sind(#1)/cosd(#1)}} + +% set flags +\def\MFF@setflag#1#2{% + \if y#1 \global\expandafter\edef\csname MFF@#2\endcsname{true}\fi + \if n#1 \global\expandafter\edef\csname MFF@#2\endcsname{false}\fi} + +\def\MFFflagLigs#1{% + \if s#1 \def\MFF@ligs{\ifdim \@tempdima<6pt 1 \else 2\fi}\fi + \if n#1 \def\MFF@ligs{0}\fi + \if 0#1 \def\MFF@ligs{0}\fi + \if 1#1 \def\MFF@ligs{1}\fi + \if 2#1 \def\MFF@ligs{2}\fi +} + +\def\MFFflagSquareDots#1{\MFF@setflag{#1}{squaredots}} +\def\MFFflagHefty#1{\MFF@setflag{#1}{hefty}} +\def\MFFflagSerifs#1{\MFF@setflag{#1}{serifs}} +\def\MFFflagMonospace#1{\MFF@setflag{#1}{monospace}} +\def\MFFflagVariantG#1{\MFF@setflag{#1}{variantg}} +\def\MFFflagLowAsterisk#1{\MFF@setflag{#1}{lowasterisk}} +\def\MFFflagMathSpacing#1{\MFF@setflag{#1}{mathfitting}} + +% +% set font mixture +% +\def\MFF@add@cmr#1{\global\def\MFF@frac@CMR{#1}} +\def\MFF@add@bold#1{\global\def\MFF@frac@CMB{#1}} +\def\MFF@add@x#1{\global\def\MFF@frac@CMX{#1}} +\def\MFF@add@bx#1{\MFF@add@b{#1}\MFF@add@x{#1}} +\def\MFF@add@sf#1{\global\def\MFF@frac@CMS{#1}} +\def\MFF@add@tt#1{\global\def\MFF@frac@CMT{#1}} +\def\MFF@add@fib#1{\global\def\MFF@frac@FIB{#1}} +\def\MFF@add@funny#1{\global\def\MFF@frac@CMF{#1}} + +\def\MFFmixture#1#2#3#4#5#6{\MFF@add@cmr{1}% + \MFF@add@bold{#1}\MFF@add@x{#2}\MFF@add@sf{#3}\MFF@add@tt{#4}% + \MFF@add@fib{#5}\MFF@add@funny{#6}% +} + +\def\clearMFF{\MFFmixture{0}{0}{0}{0}{0}{0}} +\def\mixMFF{\@ifnextchar[{\mixMFF@}{\mixMFF@[1.0]}} +\def\setMFF{\clearMFF\mixMFF} + +\def\mixMFF@[#1]#2{% + \ifx \relax\expandafter\csname MFF@add@#2\endcsname + \else \csname MFF@add@#2\endcsname{#1}\fi +} + +\def\MFFscaleWidth#1{\global\def\MFF@scale@width{#1}} +\def\MFFscaleHeight#1{\global\def\MFF@scale@height{#1}} +\def\MFFscaleAsc#1{\global\def\MFF@scale@asc{#1}} +\def\MFFscaleDesc#1{\global\def\MFF@scale@desc{#1}} +\def\MFFscaleMath#1{\global\def\MFF@scale@math{#1}} +\def\MFFscaleBoldLines#1{\global\def\MFF@scale@bold{#1}} +\def\MFFscaleThinLines#1{\global\def\MFF@scale@thin{#1}} +\def\MFFscaleJoinLines#1{\global\def\MFF@scale@join{#1}} +\def\MFFscaleNotchCut#1{\global\def\MFF@scale@notch{#1}} +\def\MFFscaleDotSize#1{\global\def\MFF@scale@dot{#1}} +\def\MFFscaleSerifDish#1{\global\def\MFF@scale@dish{#1}} + +\def\MFFcontrast{\@ifnextchar[{\MFF@@contrast}{\MFF@contrast}}% +\def\MFF@@contrast[#1]{\global\edef\MFF@contrasttype{#1}% + \global\edef\MFF@contrast{0.5}} +\def\MFF@contrast#1{\global\edef\MFF@contrasttype{d}% + \global\edef\MFF@contrast{#1}} + + +\newif\if@MFF@checkit +\def\MFFcheck{\@MFF@checkittrue} +\def\MFFnocheck{\@MFF@checkitfalse} + +\newif\if@MFF@tricks + +% z = empty (white), b = black, +% v = vertical, h = horizontal, r = slanted(/), l - slanted (\) +% d = dotted, g = rectangular grid, s - slanted grid +% uppercase(*) = (*) + outline + +% #1 - var name, #2 - value +\def\MFF@settrick#1#2{% + \@negargtrue + \@tfor \@temp:=zZbBvVhHrRlLdDgGsS\do + {\if \@temp#2 + \@negargfalse \expandafter\edef\csname#1\endcsname{#2}% + \fi}% + \if@negarg \MFF@warning{Illegal pattern style: #2}\fi +} + +% #1 - variable, #2 - list of legal values, #3 - command +\def\MFF@checktrick#1#2#3{% + \@tfor \@temp:=#2\do + {\if \@temp#1\relax \@negargfalse #3 \fi}% +} + +% !!! +% argument #4 is not used currently - reserved for underline effect +% !!! +\def\MFFtrick#1#2#3#4#5{% + \MFF@settrick{MFF@trickchar}{#1}% + \MFF@settrick{MFF@trickbox}{#2}% + \MFF@settrick{MFF@trickshadow}{#3}% + \edef\MFF@trick@transform{#5}% + \@MFF@trickstrue} + +\def\trickMFFshadow#1{\MFF@settrick{MFF@trickshadow}{#1}} +\def\trickMFFbox#1{\MFF@settrick{MFF@trickbox}{#1}} +\def\trickMFFchar#1{\MFF@settrick{MFF@trickchar}{#1}} +\def\trickMFFtransform#1{\edef\MFF@trick@transform{#1}} + +\def\MFFnotricks{\@MFF@tricksfalse} +\def\MFFfonttricks{\@MFF@trickstrue} + +\def\MFFstdtrick#1{\csname MFF@stdtrick@#1\endcsname\@MFF@trickstrue} + +\def\MFF@stdtrick@standard{\MFFtrick{b}{z}{z}{}{}}% +\def\MFF@stdtrick@reversed{\MFFtrick{z}{b}{z}{}{}}% +\def\MFF@stdtrick@dotted{\MFFtrick{D}{z}{z}{}{}}% +\def\MFF@stdtrick@striped{\MFFtrick{G}{z}{z}{}{}}% +\def\MFF@stdtrick@stripedH{\MFFtrick{H}{z}{z}{}{}}% +\def\MFF@stdtrick@stripedV{\MFFtrick{V}{z}{z}{}{}}% +\def\MFF@stdtrick@slanted{\MFFtrick{S}{z}{z}{}{}}% +\def\MFF@stdtrick@slantedR{\MFFtrick{R}{z}{z}{}{}}% +\def\MFF@stdtrick@slantedL{\MFFtrick{L}{z}{z}{}{}}% +\def\MFF@stdtrick@outlined{\MFFtrick{Z}{z}{z}{}{}}% +\def\MFF@stdtrick@shadowed{\MFFtrick{b}{z}{b}{}{}}% +\def\MFF@stdtrick@sHadowed{\MFFtrick{Z}{z}{Z}{}{}}% +\def\MFF@stdtrick@shadowonly{\MFFtrick{z}{z}{b}{}{}}% + +\def\stepMFFoutline#1{\def\MFF@contourstep{#1}} +\def\stepMFFshadow#1{\def\MFF@shadowstep{#1}} +\def\cornerMFFshadow#1{\def\MFF@shadowstyle{#1}} + +\def\stepMFFboxpattern#1{\def\MFF@HPenstep{#1}} +\def\penMFFboxpattern#1{\def\MFF@HPenpen{#1}} +\def\stepMFFcharpattern#1{\def\MFF@MPenstep{#1}} +\def\penMFFcharpattern#1{\def\MFF@MPenpen{#1}} +\def\stepMFFshadowpattern#1{\def\MFF@SPenstep{#1}} +\def\penMFFshadowpattern#1{\def\MFF@SPenpen{#1}} + +% +% this code calculates the parameter value: +% #1 = parameter name +% #2 = font family +% \@tempdima = size, +% output: \@tempdimb = value + +\def\MFF@calc#1#2{\csname \MFF@apptype @calc\endcsname{#1}{#2}} + +\def\SAUTER@calc#1#2{\@tempdimb=0pt \csname SAUTER@#2@#1\endcsname} + +\def\DCFONT@calc#1#2{\@tempdimb=0pt + \csname DCFNT@findpos@#2\endcsname + % calculate reference points + \@tempcntb=\@tempcnta \@tempdimb=\z@ \csname DCFNT@#2@#1\endcsname + \@ovxx=\@tempdimb + \advance\@tempcntb by 1 \@tempdimb=\z@ \csname DCFNT@#2@#1\endcsname + \@ovyy=\@tempdimb + % calculate local inclination + \MFF@dimenD=\@ovyy \advance \MFF@dimenD by -\@ovxx + \@tempcntb=\@tempcnta + \MFF@dimenD=\csname DCFNT@revint@#2\endcsname \MFF@dimenD + % calculate function + \@tempcntb=\@tempcnta \csname DCFNT@fntsize@#2\endcsname + \MFF@dimenA=\@tempdima \advance \MFF@dimenA by -\@tempdimb\relax + \MFF@multiply{\MFF@dimenA}{\MFF@dimenD}{\@tempdimb}% + \advance\@tempdimb by \@ovxx +} + +% this macro adds fraction of parameter value from other font +% #1 = parm name, #2 = font name +\def\MFF@addparm#1#2{% + \@tempdimb=\csname MFF@frac@#2\endcsname pt\relax + \ifdim \@tempdimb=\z@\relax + \else + \MFF@calc{#1}{#2}% + \advance\@tempdimb by -\@ovro + \advance\@ovri by \csname MFF@frac@#2\endcsname \@tempdimb + \fi +} + +% this macro calculates parameter value: +% #1 = variable name + +\def\MFF@parm#1{% + \MFF@calc{#1}{CMR}% + \@ovro=\@tempdimb \@ovri=\MFF@frac@CMR\@tempdimb + % add other font components + \MFF@addparm{#1}{CMX}% + \MFF@addparm{#1}{CMB}% + \MFF@addparm{#1}{CMS}% + \MFF@addparm{#1}{CMT}% + \MFF@addparm{#1}{CMF}% + \MFF@addparm{#1}{FIB}% + % correct value + \@tempdimb=\@ovri + \csname MFF@assign@#1\endcsname + \csname MFF@correct@#1\endcsname + \MFF@convert{\@tempdimb}% +} + +% +% this macro creates the parameter file for CMR font: +% #1 is (optional) scaling parameter +% #2 is internal font name +% #3 is font file name +% #4 is font size (in pt) +% +\def\MFFgener{\@ifnextchar[{\MFF@font}{\MFF@font[scaled 1000]}} + +% +% !!! attention: +% stem, cap_stem are processed before other "thickness" parms +% bar_height is processed after x_height +% asc_height is processed after x_height +% curve is processed after stem +% cap_stem is processed after stem +% cap_curve is processed after curve +% +% the variables: +% thin_join, hair, vair, stem, curve, ess, flare, dot_size, bar, +% slab, cap_hair, cap_stem, cap_curve, cap_ess, cap_bar, cap_band +% are processed after crisp, tiny, fine +% +% the variables stem_corr, vair_corr +% are processed after cap_hair, stem, fudge, curve +% +% the variable vair_corr is processed after slab, fudge, hair +% +\def\MFF@font[#1]#2#3#4{% + \MFF@open{#2}{\MFFprefix#3}{#1} + \MFF@comment{Created by MMF/LaTeX (ver. \MFF@version) at \today.} + \MFF@write{} + \csname MFF@title@\MFF@apptype\endcsname + \MFF@write{} + \MFF@comment{This font is the modification of} + \csname MFF@\MFF@class \MFF@fam @header\endcsname + \@tempdima=#4\relax \ifdim \@tempdima<\z@ \@tempdima=\z@ \fi + \MFF@parmsize{#4} + \MFF@write{} + \MFF@parmreal{u}{unit width} + \MFF@parmreal{width_adj}{width adjustment for certain characters} + \MFF@parmreal{serif_fit}{extra sidebar near lowercase serifs} + \MFF@parmreal{cap_serif_fit}{extra sidebar near uppercase serifs} + \MFF@parmreal{letter_fit}{extra space added to all sidebars} + \MFF@write{} + \MFF@parmreal{body_height}{height of tallest characters} + \MFF@parmreal{x_height}{height of lowercase without ascenders} + \MFF@parmreal{asc_height}{height of lowercase ascenders} + \MFF@parmreal{cap_height}{height of caps} + \MFF@parmreal{fig_height}{height of numerals} + \MFF@parmreal{math_axis}{axis of symmetry for math symbols} + \MFF@parmreal{bar_height}{height of crossbar in lowercase e} + \MFF@parmreal{comma_depth}{depth of comma below baseline} + \MFF@parmreal{desc_depth}{depth of lowercase descenders} + \ifMFF@dcfont + \MFF@parmreal{acc_height}{height of accents} + \MFF@parmreal{dot_height}{height of y umlaut dots} + \MFF@parmreal{udot_height}{height of u umlaut dots (skipped actually)} + \fi + \MFF@write{} + \MFF@parmreal{crisp}{diameter of serif corners} + \MFF@parmreal{tiny}{diameter of rounded corners} + \MFF@parmreal{fine}{diameter of sharply rounded corners} + \MFF@parmreal{stem}{lowercase stem breadth} + \MFF@parmreal{cap_stem}{uppercase stem breadth} + \MFF@parmreal{thin_join}{width of extrafine details} + \MFF@parmreal{hair}{lowercase hairline breadth} + \MFF@parmreal{curve}{lowercase curve breadth} + \MFF@parmreal{ess}{breadth in middle of lowercase s} + \MFF@parmreal{flare}{diameter of bulbs or breadth of terminals} + \MFF@parmreal{dot_size}{diameter of dots} + \MFF@parmreal{cap_hair}{uppercase hairline breadth} + \MFF@parmreal{cap_curve}{uppercase curve breadth} + \MFF@parmreal{cap_ess}{breadth in middle of uppercase s} + \MFF@parmrule{rule_thickness}{thickness of lines in math symbols} + \MFF@write{} + \MFF@parmreal{dish}{amount erased at top or bottom of serifs} + \MFF@parmreal{bracket}{vertical distance from serif base to tangent} + \MFF@parmreal{jut}{protrusion of lowercase serifs} + \MFF@parmreal{cap_jut}{protrusion of uppercase serifs} + \MFF@parmreal{beak_jut}{horizontal protrusion of beak serifs} + \MFF@parmreal{beak}{vertical protrusion of beak serifs} + \MFF@parmreal{vair}{vertical diameter of hairlines} + \MFF@parmrule{notch_cut}{maximum breadth above or below notches} + \MFF@parmreal{bar}{lowercase bar thickness} + \MFF@parmreal{slab}{serif and arm thickness} + \MFF@parmreal{cap_bar}{uppercase bar thickness} + \MFF@parmreal{cap_band}{uppercase thickness above/below lobes} + \MFF@parmrule{cap_notch_cut}{max breadth above/below uppercase notches} + \MFF@parmreal{serif_drop}{vertical drop of sloped serifs} + \MFF@parmreal{apex_corr}{extra width at diagonal junctions} + \MFF@write{} + \MFF@parmreal{o}{amount of overshoot for curves} + \MFF@parmreal{apex_o}{amount of overshoot for diagonal junctions} + \MFF@write{} + \edef\@tempa{\MFF@slant}% + \MFF@parameter{slant}{}{tilt ratio (Delta x/Delta y)} + \MFF@parmfactor{fudge}{factor applied to weights of heavy characters} + \MFF@parmfactor{math_spread}{extra openness of math symbols} + \MFF@parmfactor{superness}{parameter for superellipses} + \MFF@parmfactor{superpull}{extra openness inside bowls} + \MFF@parmfactor{beak_darkness}{fraction of triangle inside beak serifs} + \MFF@write{} + \MFF@parmreal{stem_corr}{for small refinements of stem breadth} + \MFF@parmreal{vair_corr}{for small refinements of hairline height} + \MFF@write{} + \edef\@tempa{\MFF@ligs}% + \MFF@commstr{ligs:=\@tempa;}{level of ligatures to be included} + \MFF@write{} + \MFF@commstr{square_dots:=\MFF@squaredots;}{should dots be square?} + \MFF@commstr{hefty:=\MFF@hefty;}{should we try hard not to be overweight?} + \MFF@commstr{serifs:=\MFF@serifs;}{should serifs and bulbs be attached?} + \MFF@commstr{monospace:=\MFF@monospace;}{should all characters have the same width?} + \MFF@commstr{variant_g:=\MFF@variantg;}{should an italic-style g be used?} + \MFF@commstr{low_asterisk:=\MFF@lowasterisk;}{should the asterisk be centered at the axis?} + \MFF@commstr{math_fitting:=\MFF@mathfitting;}{should math-mode spacing be used?} + \if@MFF@tricks + \MFF@write{} + \MFF@comment{This part is taken from "The ABC's of Special Effects"} + \MFF@comment{by Georgia K.M. Tobin in TUGBoat 9 (1988) No 1 pp. 15--18} + \MFF@comment{and from "Outline Fonts with Metafont"} + \MFF@comment{by Doug Henderson in TUGBoat 10 (1989) No 1 pp. 36--38.} + \MFF@maketrick + \fi + \MFF@write{} + \csname MFF@\MFF@class \MFF@fam @generate\endcsname + \MFF@close +} + +% +% this macro adds parameters for CAPS +\def\MFF@smallcaps{% + \MFF@comment{now come replacements used to set the lowercase caps} + \MFF@write{} + \MFF@capsprm{u}{16.0/21.0}{unit width} + \ifMFF@dcfont \MFF@capsprmdc \fi + \MFF@capsprm{width_adj}{1.0}{width adjustment for certain characters} + \MFF@capsprm{cap_serif_fit}{40.0/50.0}{extra sidebar near uppercase serifs} + \MFF@capsprm{letter_fit}{24.0/50.0}{extra space added to all sidebars} + \MFF@capsprm{body_height}{20.0/27.0}{height of tallest characters} + \MFF@capsprm{cap_height}{18.5/24.6}{height of caps} + \MFF@capsprm{x_height}{116.0/155.0}{height of lowercase without ascenders} + \MFF@capsprm{bar_height}{65.0/87.0}{height of crossbar in lowercase e} + \MFF@capsprm{comma_depth}{52.0/70.0}{depth of comma below baseline} + \MFF@capsprm{stem}{21.0/25.0}{lowercase stem breadth} + \MFF@capsprm{flare}{25.0/33.0}{diameter of bulbs or breadth of terminals} + \MFF@capsprm{cap_hair}{91.0/110.0}{uppercase hairline breadth} + \MFF@capsprm{cap_stem}{26.0/32.0}{uppercase stem breadth} + \MFF@capsprm{cap_curve}{31.0/37.0}{uppercase curve breadth} + \MFF@capsprm{cap_ess}{28.0/35.0}{breadth in middle of uppercase s} + \MFF@capsprm{cap_jut}{26.0/37.0}{protrusion of uppercase serifs} + \MFF@capsprm{beak_jut}{7.0/10.0}{horizontal protrusion of beak serifs} + \MFF@capsprm{beak}{52.0/70.0}{vertical protrusion of beak serifs} + \MFF@capsprm{slab}{91.0/110.0}{serif and arm thickness} + \MFF@capsprm{cap_bar}{91.0/110.0}{uppercase bar thickness} + \MFF@capsprm{cap_band}{91.0/110.0}{uppercase thickness above/below lobes} + \MFF@capsprm{cap_notch_cut}{1.0}{max breadth above/below uppercase notches} + \MFF@capsprm{o}{5.0/8.0}{amount of overshoot for curves} + \MFF@capsprm{apex_o}{4.0/8.0}{amount of overshoot for diagonal junctions} + \MFF@capsval{fudge}{1.0}{factor applied to weights of heavy characters} +} + +\def\MFF@setcmbas#1{\MFF@common@header + \MFF@write{}% + \MFF@commstr{if unknown cmbase: input cmbase fi}{}% + \MFF@write{}% + \MFF@write{font_identifier:="#1/MFF";}% +} + +\def\MFF@setdcbas#1{\MFF@common@header + \MFF@write{}% + \MFF@commstr{if unknown cmbase: }{}% + \MFF@commstr{\space\space\space if unknown dxbase: input dxbase; fi;}{}% + \MFF@commstr{else:}{}% + \MFF@commstr{\space\space\space show "You cannot use cmbase with DC fonts!"; }{}% + \MFF@commstr{\space\space\space endinput; }{}% + \MFF@commstr{fi;}{}% + \MFF@write{}% + \MFF@write{font_identifier:="#1/MFF";}% +} + +\def\MFF@setgener#1{% + \MFF@commstr{generate #1}{switch to the driver file}% +} + +% general header +\def\MFF@common@header{\MFF@write{} + \MFF@comment{Composition\space\space\space\space\space\space\space: + bold=\MFF@frac@CMB, x=\MFF@frac@CMX, + sf=\MFF@frac@CMS, tt=\MFF@frac@CMT, + fib=\MFF@frac@FIB, funny=\MFF@frac@CMF} + \MFF@comment{Scale char size\space\space\space: + widht=\MFF@scale@width, height=\MFF@scale@height, + asc=\MFF@scale@asc, desc=\MFF@scale@desc, + math=\MFF@scale@math} + \MFF@comment{Scale char weight : + bold line factor=\MFF@scale@bold, + thin line factor=\MFF@scale@thin} + \MFF@comment{\space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space\space\space + contrast type=\MFF@contrasttype, + contrast factor=\MFF@contrast} + \MFF@comment{Scale variables\space\space\space: + join_lines\MFF@p\space * \MFF@scale@join, + notch_cut\MFF@p\space * \MFF@scale@notch,} + \MFF@comment{\space\space\space\space\space\space + \space\space\space\space\space\space + \space\space\space\space\space\space\space\space + dot_size\MFF@p\space * \MFF@scale@dot, + dish\MFF@p\space * \MFF@scale@dish} + \if@MFF@checkit \MFF@comment{Auto correction\space\space\space: ON} + \else \MFF@comment{Auto correction\space\space\space: OFF} + \fi + \if@MFF@tricks \MFF@comment{Add font tricks\space\space\space: + foreground=\MFF@trickchar, + background=\MFF@trickbox, + shadow=\MFF@trickshadow, + transform=\MFF@trick@transform} + \else \MFF@comment{Add font tricks\space\space\space: none} + \fi +} + +% CMR family +\def\MFF@CMR@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Roman family}% + \MFF@comment{created by D.E.Knuth [driver=roman.mf]}% + \MFF@setcmbas{CMR}% +} +\def\MFF@CMR@generate{% + \MFF@setgener{roman}% +} +\def\MFF@CMI@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Text Italic family}% + \MFF@comment{created by D.E.Knuth [driver=textit.mf]}% + \MFF@setcmbas{CMTI}% +} +\def\MFF@CMI@generate{% + \MFF@setgener{textit}% +} +\def\MFF@CMC@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Caps and Small Caps family}% + \MFF@comment{created by D.E.Knuth [driver=csc.mf]}% + \MFF@setcmbas{CMCSC}% +} +\def\MFF@CMC@generate{% + \MFF@smallcaps\MFF@write{}% + \MFF@setgener{csc}% +} + +% Samarin/Glonti Roman family +\def\MFF@SGR@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Roman Cyrillic family}% + \MFF@comment{by N.Glonti and A.Samarin [driver=cyrillic.mf]}% + \MFF@setcmbas{CMRZ}% +} +\def\MFF@SGR@generate{% + \MFF@setgener{cyrillic}% +} +\def\MFF@SGI@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Text Italic Cyrillic family}% + \MFF@comment{by N.Glonti and A.Samarin [driver=cytextit.mf]}% + \MFF@setcmbas{CMRIZ}% +} +\def\MFF@SGI@generate{% + \MFF@setgener{cytextit}% +} +\def\MFF@SGC@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Small Caps Cyrillic family}% + \MFF@comment{by N.Glonti and A.Samarin [driver=cyccsc.mf]}% + \MFF@setcmbas{CMCCSC}% +} +\def\MFF@SGC@generate{% + \MFF@smallcaps\MFF@write{}% + \MFF@setgener{cyccsc}% +} + +% Lapko/Khodulev Roman family +\def\MFF@LHR@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Roman Cyrillic family}% + \MFF@comment{by A.Khodulev and O.Lapko [driver=ldrmfont.mf]}% + \MFF@setcmbas{LHR}% +} +\def\MFF@LHR@generate{% + \MFF@setgener{ldrmfont;}% + \MFF@write{bye.}% +} +\def\MFF@LHI@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Text Italic Cyrillic family}% + \MFF@comment{by A.Khodulev and O.Lapko [driver=ldrifont.mf]}% + \MFF@setcmbas{LHTI}% +} +\def\MFF@LHI@generate{% + \MFF@setgener{ldrifont;}% + \MFF@write{bye.}% +} +\def\MFF@LHC@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Small Caps Cyrillic family}% + \MFF@comment{by A.Khodulev and O.Lapko [driver=ldrcfont.mf]}% + \MFF@setcmbas{LHCSC}% +} +\def\MFF@LHC@generate{% + \MFF@smallcaps\MFF@write{}% + \MFF@setgener{ldrcfont;}% + \MFF@write{bye.}% +} +% Lapko/Khodulev Roman family (cyrillic only) +\def\MFF@LLR@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Roman Cyrillic-only family}% + \MFF@comment{by A.Khodulev and O.Lapko [driver=ldrmfont.mf]}% + \MFF@setcmbas{LLR}% +} +\def\MFF@LLR@generate{% + \MFF@commstr{vfcoding=1; }{only cyrillic characters}% + \MFF@write{}\MFF@setgener{ldrmfont;}% + \MFF@write{bye.}% +} +\def\MFF@LLI@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Text Italic Cyrillic-only family}% + \MFF@comment{by A.Khodulev and O.Lapko [driver=ldrifont.mf]}% + \MFF@setcmbas{LLTI}% +} +\def\MFF@LLI@generate{% + \MFF@commstr{vfcoding=1; }{only cyrillic characters}% + \MFF@write{}\MFF@setgener{ldrifont;}% + \MFF@write{bye.}% +} +\def\MFF@LLC@header{% + \MFF@dcfontfalse + \MFF@comment{Computer Modern Small Caps Cyrillic-only family}% + \MFF@comment{by A.Khodulev and O.Lapko [driver=ldrcfont.mf]}% + \MFF@setcmbas{LLCSC}% +} +\def\MFF@LLC@generate{% + \MFF@smallcaps\MFF@write{}% + \MFF@commstr{vfcoding=1; }{only cyrillic characters}% + \MFF@write{}\MFF@setgener{ldrcfont;}% + \MFF@write{bye.}% +} + +% DC family +\def\MFF@DCR@header{% + \MFF@dcfonttrue + \MFF@comment{European Computer Modern Roman family}% + \MFF@comment{by J"org Knappen and Norbert Schwarz [driver=dxroman.mf]}% + \MFF@setdcbas{DCR}% +} +\def\MFF@DCR@generate{% + \MFF@setgener{dxroman}% +} +\def\MFF@DCI@header{% + \MFF@dcfonttrue + \MFF@comment{European Computer Modern Text Italic family}% + \MFF@comment{by J"org Knappen and Norbert Schwarz [driver=dxtextit.mf]}% + \MFF@setdcbas{DCTI}% +} +\def\MFF@DCI@generate{% + \MFF@setgener{dxtextit}% +} +\def\MFF@DCC@header{% + \MFF@dcfonttrue + \MFF@comment{European Computer Modern Caps and Small Caps family}% + \MFF@comment{by J"org Knappen and Norbert Schwarz [driver=dxcsc.mf]}% + \MFF@setdcbas{DCCSC}% +} +\def\MFF@DCC@generate{% + \MFF@smallcaps\MFF@write{}% + \MFF@setgener{dxcsc}% +} + +\def\MFFclass@CMR{\def\MFF@class{CM}\def\MFF@fam{R}} +\def\MFFclass@LHR{\def\MFF@class{LH}\def\MFF@fam{R}} +\def\MFFclass@LLR{\def\MFF@class{LH}\def\MFF@fam{R}} +\def\MFFclass@CMRZ{\def\MFF@class{SG}\def\MFF@fam{R}} +\def\MFFclass@DCR{\def\MFF@class{DC}\def\MFF@fam{R}} + +\def\MFFclass@CMTI{\def\MFF@class{CM}\def\MFF@fam{I}} +\def\MFFclass@LHTI{\def\MFF@class{LH}\def\MFF@fam{I}} +\def\MFFclass@LLTI{\def\MFF@class{LH}\def\MFF@fam{I}} +\def\MFFclass@CMRIZ{\def\MFF@class{SG}\def\MFF@fam{I}} +\def\MFFclass@DCTI{\def\MFF@class{DC}\def\MFF@fam{I}} + +\def\MFFclass@CMCSC{\def\MFF@class{CM}\def\MFF@fam{C}} +\def\MFFclass@LHCSC{\def\MFF@class{LH}\def\MFF@fam{C}} +\def\MFFclass@LLCSC{\def\MFF@class{LH}\def\MFF@fam{C}} +\def\MFFclass@CMCCSC{\def\MFF@class{SG}\def\MFF@fam{C}} +\def\MFFclass@DCCSC{\def\MFF@class{DC}\def\MFF@fam{C}} + +\def\MFFclass#1{\csname MFFclass@#1\endcsname} + +\def\MFFdefault{\MFFnocheck +% + \MFFscaleWidth{1}% + \MFFscaleHeight{1}% + \MFFscaleAsc{1}% + \MFFscaleDesc{1}% + \MFFscaleMath{1}% + \MFFscaleBoldLines{1}% + \MFFscaleThinLines{1}% + \MFFscaleJoinLines{1}% + \MFFscaleNotchCut{1}% + \MFFscaleDotSize{1}% + \MFFscaleSerifDish{1}% + \MFFcontrast[s]% +% + \MFFslant{0}% + \MFFflagLigs{s}% + \MFFflagSquareDots{n}% + \MFFflagHefty{n}% + \MFFflagSerifs{y}% + \MFFflagMonospace{n}% + \MFFflagVariantG{n}% + \MFFflagLowAsterisk{n}% + \MFFflagMathSpacing{n}% +% + \stepMFFoutline{0.075}% + \stepMFFshadow{0.5}% + \cornerMFFshadow{A}% + \stepMFFboxpattern{0.375}\penMFFboxpattern{0.075}% + \stepMFFcharpattern{0.375}\penMFFcharpattern{0.075}% + \stepMFFshadowpattern{0.375}\penMFFshadowpattern{0.075}% + \MFFstdtrick{standard}% + \MFFnotricks% +% + \def\MFFprefix{xx}% + \MFFsauter + \MFFmixture{0}{0}{0}{0}{0}{0}% + \MFFclass{CMR}% +} + +\MFFdefault +\noMFFcatcode + diff --git a/Master/texmf-dist/tex/latex/mff/mfsauter.tex b/Master/texmf-dist/tex/latex/mff/mfsauter.tex new file mode 100644 index 00000000000..56fa9d8b2db --- /dev/null +++ b/Master/texmf-dist/tex/latex/mff/mfsauter.tex @@ -0,0 +1,1972 @@ +% +% Approxiomation for font parameters based on SAUTER +% + +\def\MFF@title@SAUTER{% + \MFF@comment{Based on ``alternate parameter files'' prepared by} + \MFF@comment{John Sauter and Karl Berry (Version 1.4 [1992])} +} + +% +% this code is for linear and quadratic +% local approximations used in SAUTER +% +\def\MFF@linear#1#2#3{% + \@tempdimb=-#1pt\relax + \advance\@tempdimb by \@tempdima + \@tempdimb=#2\@tempdimb + \advance\@tempdimb by #3pt\relax +} + +\def\MFF@quadric#1#2#3#4{% + \@tempdimb=-#1pt\relax + \advance\@tempdimb by \@tempdima + \MFF@dimenD=\@tempdimb + \@tempdimb=#2\@tempdimb + \advance\@tempdimb by #3pt\relax + \MFF@multiply{\@tempdimb}{\MFF@dimenD}{\@tempdimb}% + \advance\@tempdimb by #4pt\relax +} + +\def\SAUTER@CMR@u{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{15}{50}% + \else + \MFF@quadric{10}{-0.062437562437}{17.6248751249}{200}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@width_adj{\@tempdimb=0pt} + +\def\SAUTER@CMR@serif_fit{\@tempdimb=0pt} + +\def\SAUTER@CMR@cap_serif_fit{% + \ifdim \@tempdima<9pt\relax + \MFF@quadric{0}{-0.5}{13.5}{-35}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{4}{46}% + \else + \MFF@quadric{10}{0.022893772893}{3.95421245416}{50}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@letter_fit{% + \ifdim \@tempdima<4pt\relax + \@tempdimb=70pt\relax + \else + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{-20}{150}% + \else + \ifdim \@tempdima<7pt\relax + \MFF@linear{6}{-10}{90}% + \MFF@linear{ 6}{-10}{ 30}% + \else + \ifdim \@tempdima<8pt\relax + \MFF@linear{7}{-20}{20}% + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=0pt\relax + \else + \MFF@quadric{10}{-0.936563436562}{1.87312687301}{0}% + \fi\fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@body_height{% + \ifdim \@tempdima<6pt\relax + \@tempdimb=270\@tempdima + \else + \MFF@quadric{6}{-0.14568764568}{271.456876457}{1620}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@asc_height{\@tempdimb=25\@tempdima} + +\def\SAUTER@CMR@acc_height{\SAUTER@CMR@x_height + \@tempdimb=0.48387096774\@tempdimb} + +\def\SAUTER@CMR@dot_height{\SAUTER@CMR@cap_height + \@tempdimb=0.26829268293\@tempdimb} + +\def\SAUTER@CMR@udot_height{\SAUTER@CMR@cap_height + \@tempdimb=0.23983739837\@tempdimb} + +\def\SAUTER@CMR@cap_height{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=246\@tempdima + \else + \MFF@quadric{10}{-0.0228937728937}{246.045787545}{2460}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@fig_height{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=232\@tempdima + \else + \MFF@quadric{10}{0.0270562770562}{231.945887445}{2320}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@x_height{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=155\@tempdima + \else + \MFF@quadric{10}{-0.010406260406}{155.020812512}{1550}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@math_axis{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=90\@tempdima + \else + \MFF@quadric{10}{-0.00520313020313}{90.0104062603}{900}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@comma_depth{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=70\@tempdima + \else + \MFF@quadric{10}{0.010406260406}{69.9791874791}{700}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@desc_depth{\SAUTER@CMR@comma_depth} + +\def\SAUTER@CMR@bar_height{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=87\@tempdima + \else + \MFF@quadric{10}{-0.087412587412}{87.1748251748}{870}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@crisp{\@tempdimb=0pt} + +\def\SAUTER@CMR@tiny{% + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{10}{10}% + \else + \ifdim \@tempdima<7pt\relax + \@tempdimb=70pt\relax + \else + \ifdim \@tempdima<8pt\relax + \@tempdimb=10\@tempdima + \else + \@tempdimb=80pt\relax + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@fine{% + \ifdim \@tempdima<6pt\relax + \@tempdimb=10\@tempdima + \else + \ifdim \@tempdima<7pt\relax + \@tempdimb=60pt\relax + \else + \ifdim \@tempdima<8pt\relax + \MFF@linear{7}{10}{60}% + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=70pt\relax + \else + \MFF@quadric{10}{0.046828171828}{2.40634365626}{70}% + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@thin_join{\SAUTER@CMR@fine} + +\def\SAUTER@CMR@hair{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{5}{50}% + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=90pt\relax + \else + \MFF@quadric{10}{0.046828171828}{2.40634365626}{90}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@stem{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{60}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{240}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{15}{250}% + \else + \MFF@linear{12}{9.4696969696}{280}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@curve{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{25}{55}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{20}{100}% + \MFF@linear{9}{20}{280}% + \else + \ifdim \@tempdima<42pt\relax + \MFF@quadric{10}{-0.23934398934}{15.4786879782}{300}% + \else + \@tempdimb=550.22977022pt\relax + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@ess{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=24\@tempdima + \else + \ifdim \@tempdima<7pt\relax + \MFF@quadric{5}{-5}{55}{120}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{7}{20}{210}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{15}{270}% + \else + \MFF@linear{12}{9.4696969696}{300}% + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + + +\def\SAUTER@CMR@flare{% + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{20}{90}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{6}{30}{210}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{15}{330}% + \else + \MFF@quadric{12}{0.280969030969}{15.5619380619}{360}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@dot_size{% + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{40}{20}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{6}{30}{260}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{20}{380}% + \else + \MFF@linear{12}{17.0454545454}{420}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@cap_hair{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{5}{55}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{100}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{2.5}{110}% + \else + \MFF@quadric{12}{0.046828171828}{2.59365634357}{115}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@cap_stem{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{25}{65}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{30}{290}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{15}{320}% + \else + \ifdim \@tempdima<26pt\relax + \MFF@quadric{12}{-0.4995004995}{25.989010989}{110.059940059}% + \MFF@quadric{12}{-0.4995004995}{14.000999001}{350}% + \else + \@tempdimb=461.0989011pt\relax + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@cap_curve{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{30}{60}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{40}{330}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{15}{370}% + \else + \ifdim \@tempdima<45pt\relax + \MFF@quadric{12}{-0.23934398934}{20.265567765}{191.278721278}% + \MFF@quadric{12}{-0.23934398934}{14.5213120208}{400}% + \else + \@tempdimb=618.557692303pt\relax + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@cap_ess{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=28\@tempdima + \else + \ifdim \@tempdima<6pt\relax + \MFF@linear{5}{50}{140}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{6}{40}{190}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{15}{350}% + \else + \MFF@linear{12}{9.46969696}{380}% + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@rule_thickness{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{3}{13}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{7}{2}{34}% + \else + \MFF@linear{12}{3.0303030303}{44}% + \fi\fi +} + +\def\SAUTER@CMR@dish{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{1}{2}% + \else + \@tempdimb=10pt\relax + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@bracket{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=20\@tempdima + \else + \ifdim \@tempdima<80pt\relax + \MFF@quadric{10}{-0.145687645687}{20.2913752914}{200}% + \else + \@tempdimb=906.52680653pt\relax + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@jut{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{20}{50}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{7}{30}{190}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{25}{280}% + \else + \MFF@linear{12}{17.0454545454}{330}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@cap_jut{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{30}{50}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{8}{40}{290}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{20}{370}% + \else + \MFF@linear{12}{17.0454545454}{410}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@beak_jut{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{8}{20}% + \else + \MFF@quadric{10}{-0.024975024975}{7.0499500499}{100}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@beak{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=70\@tempdima + \else + \MFF@quadric{10}{0.010406260406}{69.9791874791}{700}% + \fi + \@tempdimb=0.1\@tempdimb +} + + +\def\SAUTER@CMR@vair{% + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{10}{10}% + \else + \ifdim \@tempdima<7pt\relax + \@tempdimb=70pt\relax + \else + \ifdim \@tempdima<8pt\relax + \@tempdimb=10\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=80pt\relax + \else + \MFF@quadric{10}{0.046828171828}{2.40634365626}{80}% + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@notch_cut{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=100\@tempdima + \else + \ifdim \@tempdima<35pt\relax + \MFF@quadric{10}{-0.728438228438}{101.456876451}{1000}% + \else + \@tempdimb=3081.1480185pt\relax + \fi\fi +} + +\def\SAUTER@CMR@bar{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{5}{55}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{100}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{7.5}{110}% + \else + \MFF@linear{12}{6.6287878787}{125}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@slab{\SAUTER@CMR@bar} + +\def\SAUTER@CMR@cap_bar{\SAUTER@CMR@bar} + +\def\SAUTER@CMR@cap_band{\SAUTER@CMR@bar} + +\def\SAUTER@CMR@cap_notch_cut{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=100\@tempdima + \else + \MFF@quadric{10}{-0.72843822843}{101.456876456}{1000}% + \fi +} + +\def\SAUTER@CMR@serif_drop{% + \ifdim \@tempdima<12pt\relax + \@tempdimb=4\@tempdima + \else + \MFF@quadric{12}{0.0228937728937}{4.04578754578}{48}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@stem_corr{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{1}{2}% + \else + \@tempdimb=10pt\relax + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@vair_corr{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{2}{-5}% + \else + \ifdim \@tempdima<8pt\relax + \MFF@quadric{7}{-0.5}{1.5}{9}% + \else + \@tempdimb=10pt\relax + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@apex_corr{\@tempdimb=0pt} + +\def\SAUTER@CMR@o{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{5}{15}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{7}{10}{50}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{5}{80}% + \else + \MFF@linear{12}{1.8939393939}{90}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMR@apex_o{\SAUTER@CMR@o} + +\def\SAUTER@CMR@fudge{\@tempdimb=1pt} + +\def\SAUTER@CMR@math_spread{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{-0.2}{2}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{-0.1}{0}% + \else + \MFF@linear{12}{-0.0378787878787}{-0.2}% + \fi\fi +} + +\def\SAUTER@CMR@superness{\@tempdimb=0.707106781186548pt} + +\def\SAUTER@CMR@superpull{\@tempdimb=0.16666666667pt} + +\def\SAUTER@CMR@beak_darkness{\@tempdimb=0.36666666667pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\SAUTER@CMX@u{\SAUTER@CMR@u \@tempdimb=1.2\@tempdimb} + +\def\SAUTER@CMX@width_adj{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{8}{30}% + \else + \MFF@linear{10}{10}{110}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMX@serif_fit{\@tempdimb=0pt} + +\def\SAUTER@CMX@cap_serif_fit{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{8}{-10}% + \else + \MFF@linear{10}{5}{70}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMX@letter_fit{% + \ifdim \@tempdima<4pt\relax + \@tempdimb=40pt\relax + \else + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{-10}{80}% + \else + \@tempdimb=0pt\relax + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMX@cap_jut{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{40}{-10}% + \else + \MFF@linear{10}{35}{390}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMX@body_height{\SAUTER@CMR@body_height} +\def\SAUTER@CMX@asc_height{\SAUTER@CMR@asc_height} +\def\SAUTER@CMX@acc_height{\SAUTER@CMR@acc_height} +\def\SAUTER@CMX@dot_height{\SAUTER@CMR@dot_height} +\def\SAUTER@CMX@udot_height{\SAUTER@CMR@udot_height} +\def\SAUTER@CMX@cap_height{\SAUTER@CMR@cap_height} +\def\SAUTER@CMX@fig_height{\SAUTER@CMR@fig_height} +\def\SAUTER@CMX@x_height{\SAUTER@CMR@x_height} +\def\SAUTER@CMX@math_axis{\SAUTER@CMR@math_axis} +\def\SAUTER@CMX@comma_depth{\SAUTER@CMR@comma_depth} +\def\SAUTER@CMX@desc_depth{\SAUTER@CMR@desc_depth} +\def\SAUTER@CMX@bar_height{\SAUTER@CMR@bar_height} +\def\SAUTER@CMX@crisp{\SAUTER@CMR@crisp} +\def\SAUTER@CMX@tiny{\SAUTER@CMR@tiny} +\def\SAUTER@CMX@fine{\SAUTER@CMR@fine} +\def\SAUTER@CMX@thin_join{\SAUTER@CMR@thin_join} +\def\SAUTER@CMX@hair{\SAUTER@CMR@hair} +\def\SAUTER@CMX@stem{\SAUTER@CMR@stem} +\def\SAUTER@CMX@curve{\SAUTER@CMR@curve} +\def\SAUTER@CMX@ess{\SAUTER@CMR@ess} +\def\SAUTER@CMX@flare{\SAUTER@CMR@flare} +\def\SAUTER@CMX@dot_size{\SAUTER@CMR@dot_size} +\def\SAUTER@CMX@cap_hair{\SAUTER@CMR@cap_hair} +\def\SAUTER@CMX@cap_stem{\SAUTER@CMR@cap_stem} +\def\SAUTER@CMX@cap_curve{\SAUTER@CMR@cap_curve} +\def\SAUTER@CMX@cap_ess{\SAUTER@CMR@cap_ess} +\def\SAUTER@CMX@rule_thickness{\SAUTER@CMR@rule_thickness} +\def\SAUTER@CMX@dish{\SAUTER@CMR@dish} +\def\SAUTER@CMX@bracket{\SAUTER@CMR@bracket} +\def\SAUTER@CMX@jut{\SAUTER@CMR@jut} +\def\SAUTER@CMX@beak_jut{\SAUTER@CMR@beak_jut} +\def\SAUTER@CMX@beak{\SAUTER@CMR@beak} +\def\SAUTER@CMX@vair{\SAUTER@CMR@vair} +\def\SAUTER@CMX@notch_cut{\SAUTER@CMR@notch_cut} +\def\SAUTER@CMX@bar{\SAUTER@CMR@bar} +\def\SAUTER@CMX@slab{\SAUTER@CMR@slab} +\def\SAUTER@CMX@cap_bar{\SAUTER@CMR@cap_bar} +\def\SAUTER@CMX@cap_band{\SAUTER@CMR@cap_band} +\def\SAUTER@CMX@cap_notch_cut{\SAUTER@CMR@cap_notch_cut} +\def\SAUTER@CMX@serif_drop{\SAUTER@CMR@serif_drop} +\def\SAUTER@CMX@stem_corr{\SAUTER@CMR@stem_corr} +\def\SAUTER@CMX@vair_corr{\SAUTER@CMR@vair_corr} +\def\SAUTER@CMX@apex_corr{\SAUTER@CMR@apex_corr} +\def\SAUTER@CMX@o{\SAUTER@CMR@o} +\def\SAUTER@CMX@apex_o{\SAUTER@CMR@apex_o} +\def\SAUTER@CMX@fudge{\SAUTER@CMR@fudge} +\def\SAUTER@CMX@math_spread{\SAUTER@CMR@math_spread} +\def\SAUTER@CMX@superness{\SAUTER@CMR@superness} +\def\SAUTER@CMX@superpull{\SAUTER@CMR@superpull} +\def\SAUTER@CMX@beak_darkness{\SAUTER@CMR@beak_darkness} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\SAUTER@CMB@u{\SAUTER@CMR@u} + +\def\SAUTER@CMB@width_adj{\@tempdimb=\@tempdima} + +\def\SAUTER@CMB@serif_fit{\@tempdimb=0pt} + +\def\SAUTER@CMB@cap_serif_fit{\@tempdimb=0.6\@tempdima} + +\def\SAUTER@CMB@letter_fit{% + \ifdim \@tempdima<4pt\relax + \@tempdimb=40pt\relax + \else + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{-10}{80}% + \else + \@tempdimb=0pt\relax + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@body_height{\@tempdimb=27\@tempdima} + +\def\SAUTER@CMB@asc_height{\@tempdimb=25\@tempdima} + +\def\SAUTER@CMB@acc_height{\SAUTER@CMB@x_height + \@tempdimb=0.46875\@tempdimb} + +\def\SAUTER@CMB@dot_height{\SAUTER@CMB@cap_height + \@tempdimb=0.3036437247\@tempdimb} + +\def\SAUTER@CMB@udot_height{\SAUTER@CMB@cap_height + \@tempdimb=0.23886639676\@tempdimb} + +\def\SAUTER@CMB@cap_height{\@tempdimb=24.7\@tempdima} + +\def\SAUTER@CMB@fig_height{% + \MFF@linear{0}{232}{0.00006}% + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@x_height{\@tempdimb=16\@tempdima} + +\def\SAUTER@CMB@math_axis{\@tempdimb=9\@tempdima} + +\def\SAUTER@CMB@comma_depth{\@tempdimb=7\@tempdima} + +\def\SAUTER@CMB@desc_depth{\@tempdimb=7\@tempdima} + +\def\SAUTER@CMB@bar_height{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{90}{-50}% + \else + \@tempdimb=85\@tempdima + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@crisp{\@tempdimb=0pt} + +\def\SAUTER@CMB@tiny{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{10}{40}% + \else + \@tempdimb=130pt\relax + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@fine{% + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{10}{30}% + \else + \ifdim \@tempdima<7pt\relax + \@tempdimb=90pt\relax + \else + \ifdim \@tempdima<8pt\relax + \MFF@linear{7}{10}{90}% + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=100pt\relax + \else + \MFF@linear{10}{2.5}{100}% + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@thin_join{\SAUTER@CMB@fine} + +\def\SAUTER@CMB@hair{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{4}{130}% + \else + \MFF@linear{10}{6.5}{170}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@stem{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{40}{40}% + \else + \ifdim \@tempdima<45pt\relax + \MFF@linear{7}{30}{320}% + \else + \@tempdimb=1460pt\relax + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@curve{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{40}{70}% + \else + \ifdim \@tempdima<45pt\relax + \MFF@linear{9}{30}{430}% + \else + \@tempdimb=1510pt\relax + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@ess{% + \ifdim \@tempdima<7pt\relax + \MFF@quadric{0}{-10}{170}{-410}% + \else + \MFF@linear{7}{30}{290}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@flare{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{40}{70}% + \else + \MFF@linear{8}{30}{390}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@dot_size{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{50}{60}% + \else + \MFF@linear{10}{30}{560}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@cap_hair{% + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{10}{120}% + \else + \ifdim \@tempdima<7pt\relax + \@tempdimb=180pt\relax + \else + \ifdim \@tempdima<8pt\relax + \MFF@linear{7}{10}{180}% + \else + \ifdim \@tempdima<9pt\relax + \@tempdimb=190pt\relax + \else + \MFF@linear{9}{5}{190}% + \fi\fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@cap_stem{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{50}{30}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{8}{40}{430}% + \else + \ifdim \@tempdima<45pt\relax + \MFF@linear{10}{30}{510}% + \else + \@tempdimb=1560pt\relax + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@cap_curve{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{50}{60}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{40}{510}% + \else + \ifdim \@tempdima<45pt\relax + \MFF@linear{10}{30}{550}% + \else + \@tempdimb=1600pt\relax + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@cap_ess{% + \ifdim \@tempdima<7pt\relax + \MFF@quadric{0}{-5}{125}{-260}% + \else + \ifdim \@tempdima<9pt\relax + \MFF@quadric{7}{-5}{135}{-330}% + \MFF@quadric{7}{-5}{65}{370}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{50}{480}% + \else + \MFF@linear{10}{30}{530}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@rule_thickness{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{4}{23}% + \else + \MFF@linear{7}{3}{51}% + \fi +} + +\def\SAUTER@CMB@dish{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{1}{2}% + \else + \@tempdimb=10pt\relax + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@bracket{\@tempdimb=\@tempdima} + +\def\SAUTER@CMB@jut{% + \ifdim \@tempdima<8pt\relax + \MFF@linear{0}{20}{30}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{8}{30}{190}% + \else + \@tempdimb=25\@tempdima + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@cap_jut{\SAUTER@CMR@cap_jut} + +\def\SAUTER@CMB@beak_jut{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{8}{30}% + \else + \MFF@linear{10}{7}{110}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@beak{% + \ifdim \@tempdima<10pt\relax + \MFF@quadric{0}{-5}{165}{-450}% + \else + \@tempdimb=70\@tempdima + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@vair{% + \ifdim \@tempdima<6pt\relax + \MFF@linear{0}{10}{50}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{6}{5}{110}% + \else + \MFF@linear{10}{6.5}{130}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@notch_cut{% + \ifdim \@tempdima<15pt\relax + \MFF@linear{0}{100}{30} + \else + \@tempdimb=1530pt\relax + \fi +} + +\def\SAUTER@CMB@bar{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{10}{70}% + \else + \MFF@linear{10}{7.5}{170}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@slab{\SAUTER@CMB@bar} + +\def\SAUTER@CMB@cap_bar{\SAUTER@CMB@bar} + +\def\SAUTER@CMB@cap_band{\SAUTER@CMB@bar} + +\def\SAUTER@CMB@cap_notch_cut{% + \ifdim \@tempdima<15pt\relax + \MFF@linear{0}{100}{30} + \else + \@tempdimb=1530pt\relax + \fi +} + +\def\SAUTER@CMB@serif_drop{\@tempdimb=0.3\@tempdima} + +\def\SAUTER@CMB@stem_corr{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{1}{10}% + \else + \@tempdimb=20pt\relax + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@vair_corr{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{1}{5}% + \else + \@tempdimb=15pt\relax + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@apex_corr{\@tempdimb=0pt\relax} + +\def\SAUTER@CMB@o{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{2}{16}% + \else + \ifdim \@tempdima<8pt\relax + \MFF@linear{7}{10}{30}% + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=40pt\relax + \else + \MFF@linear{10}{5}{40}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMB@apex_o{\SAUTER@CMB@o} + +\def\SAUTER@CMB@fudge{\@tempdimb=1pt} + +\def\SAUTER@CMB@math_spread{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{-20}{250}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{-5}{50}% + \else + \MFF@linear{12}{-3.78787878787}{40}% + \fi\fi + \@tempdimb=0.01\@tempdimb +} + +\def\SAUTER@CMB@superness{\@tempdimb=0.72727272727pt} + +\def\SAUTER@CMB@superpull{\@tempdimb=0.125pt} + +\def\SAUTER@CMB@beak_darkness{\@tempdimb=0.4pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\SAUTER@CMS@u{\SAUTER@CMR@u} + +\def\SAUTER@CMS@width_adj{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{10}{40}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{20}{130}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{10}{150}% + \else + \MFF@quadric{12}{0.44746919746}{10.8949383947}{170}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@serif_fit{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{-5}{-20}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{-10}{-70}% + \else + \MFF@linear{12}{-5.6818181818}{-90}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@cap_serif_fit{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{-5}{-45}% + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=-10\@tempdima + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{-15}{-100}% + \else + \MFF@linear{12}{-7.5757575757}{-130}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@letter_fit{\SAUTER@CMR@letter_fit} + +\def\SAUTER@CMS@body_height{\SAUTER@CMR@body_height} + +\def\SAUTER@CMS@asc_height{\SAUTER@CMR@asc_height} + +\def\SAUTER@CMS@acc_height{\SAUTER@CMS@x_height + \@tempdimb=0.4375\@tempdimb} + +\def\SAUTER@CMS@dot_height{\SAUTER@CMS@cap_height + \@tempdimb=0.224\@tempdimb} + +\def\SAUTER@CMS@udot_height{\SAUTER@CMS@cap_height + \@tempdimb=0.236\@tempdimb} + +\def\SAUTER@CMS@cap_height{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=250\@tempdima + \else + \MFF@quadric{10}{-0.0228937728937}{ 250.045787545}{2500}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@fig_height{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{230}{50}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{240}{2120}% + \else + \MFF@quadric{10}{0.23934398934}{234.521312021}{2360}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@x_height{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=160\@tempdima + \else + \MFF@quadric{10}{-2.25815850815}{164.516317016}{1600}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@math_axis{\SAUTER@CMR@math_axis} + +\def\SAUTER@CMS@comma_depth{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{40}{50}% + \else + \MFF@quadric{10}{0.0624375624375}{44.8751248748}{450}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@desc_depth{\SAUTER@CMR@desc_depth} + +\def\SAUTER@CMS@bar_height{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{80}{-10}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{90}{790}% + \else + \MFF@linear{12}{73.863636363}{970}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@crisp{\@tempdimb=0pt} + +\def\SAUTER@CMS@tiny{\@tempdimb=0pt} + +\def\SAUTER@CMS@fine{\@tempdimb=0pt} + +\def\SAUTER@CMS@thin_join{% + \ifdim \@tempdima<10pt\relax + \SAUTER@CMR@thin_join + \else + \MFF@quadric{10}{0.00208125208125}{1.49583749583}{17}% + \fi +} + +\def\SAUTER@CMS@hair{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{90}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{270}% + \else + \MFF@quadric{10}{0.20812520812}{24.5837495834}{280}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@stem{\SAUTER@CMS@hair} + +\def\SAUTER@CMS@curve{\SAUTER@CMS@hair} + +\def\SAUTER@CMS@ess{\SAUTER@CMS@hair} + +\def\SAUTER@CMS@flare{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{60}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{240}% + \else + \ifdim \@tempdima<12pt\relax + \@tempdimb=25\@tempdima + \else + \MFF@linear{12}{22.727272727}{300}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@dot_size{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{20}{100}% + \else + \MFF@quadric{10}{0.46828171828}{24.0634365626}{300}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@cap_hair{\SAUTER@CMS@hair} + +\def\SAUTER@CMS@cap_stem{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{130}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{310}% + \else + \MFF@quadric{10}{0.46828171828}{24.0634365626}{320}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@cap_curve{\SAUTER@CMS@cap_stem} + +\def\SAUTER@CMS@cap_ess{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{30}{40}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{310}% + \else + \MFF@quadric{10}{0.46828171828}{24.0634365626}{320}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@rule_thickness{\SAUTER@CMR@rule_thickness} + +\def\SAUTER@CMS@dish{\@tempdimb=0pt} + +\def\SAUTER@CMS@bracket{\@tempdimb=0pt} + +\def\SAUTER@CMS@jut{\@tempdimb=0pt} + +\def\SAUTER@CMS@cap_jut{\@tempdimb=0pt} + +\def\SAUTER@CMS@beak_jut{\@tempdimb=0pt} + +\def\SAUTER@CMS@beak{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{1}{-4}% + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=5\@tempdima + \else + \MFF@quadric{10}{-0.01665001665}{0.5333000333}{5}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@vair{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{30}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{210}% + \else + \MFF@quadric{10}{0.37462537462}{19.2507492504}{220}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@notch_cut{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{10}{80}% + \else + \MFF@quadric{10}{-0.14568764568}{20.2913752914}{180}% + \fi + \@tempdimb=0.27777777778\@tempdimb +} + +\def\SAUTER@CMS@bar{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{20}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{200}% + \else + \MFF@quadric{10}{0.11446886446}{19.7710622702}{210}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@slab{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{40}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{220}% + \else + \ifdim \@tempdima<12pt\relax + \MFF@linear{10}{20}{230}% + \else + \MFF@linear{12}{24.6212121212}{270}% + \fi\fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@cap_bar{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{30}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{210}% + \else + \MFF@quadric{10}{0.37462537462}{19.2507492504}{220}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@cap_band{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{10}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{190}% + \else + \MFF@quadric{10}{0.11446886446}{19.7710622702}{200}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@cap_notch_cut{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{60}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{240}% + \else + \MFF@quadric{10}{-0.218531468531}{30.437062937}{250}% + \fi\fi + \@tempdimb=0.27777777778\@tempdimb +} + +\def\SAUTER@CMS@serif_drop{\@tempdimb=2pt} + +\def\SAUTER@CMS@stem_corr{\@tempdimb=1pt} + +\def\SAUTER@CMS@vair_corr{\@tempdimb=1pt} + +\def\SAUTER@CMS@apex_corr{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=5\@tempdima + \else + \MFF@quadric{10}{-0.426656676656}{5.85331335328}{50}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@o{% + \ifdim \@tempdima<7pt\relax + \MFF@linear{0}{5}{15}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{7}{10}{50}% + \else + \MFF@quadric{10}{-0.42665667665}{5.853313353}{80}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMS@apex_o{\@tempdimb=0pt} + +\def\SAUTER@CMS@fudge{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{0.02}{0.77}% + \else + \ifdim \@tempdima<14pt\relax + \MFF@linear{9}{0.01}{0.95}% + \else + \@tempdimb=1pt\relax + \fi\fi +} + +\def\SAUTER@CMS@math_spread{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{-0.2}{2}% + \else + \MFF@quadric{10}{0.00853313353313}{-0.117066267065}{0}% + \fi +} + +\def\SAUTER@CMS@superness{\@tempdimb=0.707106781186548pt} + +\def\SAUTER@CMS@superpull{\@tempdimb=0.05pt} + +\def\SAUTER@CMS@beak_darkness{\@tempdimb=0pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\SAUTER@CMT@u{% + \ifdim \@tempdima<10pt\relax + \MFF@quadric{0}{1}{2}{90}% + \else + \MFF@linear{10}{18.5}{210}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@width_adj{\@tempdimb=0pt} + +\def\SAUTER@CMT@serif_fit{\@tempdimb=0pt} + +\def\SAUTER@CMT@cap_serif_fit{\@tempdimb=0pt} + +\def\SAUTER@CMT@letter_fit{\SAUTER@CMR@letter_fit} + +\def\SAUTER@CMT@body_height{\@tempdimb=25\@tempdima} + +\def\SAUTER@CMT@asc_height{\@tempdimb=22\@tempdima} + +\def\SAUTER@CMT@acc_height{\SAUTER@CMT@x_height + \@tempdimb=0.48387096774\@tempdimb} + +\def\SAUTER@CMT@dot_height{\SAUTER@CMT@cap_height + \@tempdimb=0.34090909091\@tempdimb} + +\def\SAUTER@CMT@udot_height{\SAUTER@CMT@cap_height + \@tempdimb=0.26818181818\@tempdimb} + +\def\SAUTER@CMT@cap_height{\@tempdimb=22\@tempdima} + +\def\SAUTER@CMT@fig_height{\@tempdimb=22\@tempdima} + +\def\SAUTER@CMT@x_height{\@tempdimb=15.52\@tempdima} + +\def\SAUTER@CMT@math_axis{\@tempdimb=11\@tempdima} + +\def\SAUTER@CMT@comma_depth{\@tempdimb=5\@tempdima} + +\def\SAUTER@CMT@desc_depth{\@tempdimb=8\@tempdima} + +\def\SAUTER@CMT@bar_height{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=78\@tempdima + \else + \MFF@linear{5}{80}{390}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@crisp{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{30}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{210}% + \else + \MFF@linear{10}{15}{220}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@tiny{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{30}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{10}{210}% + \else + \MFF@linear{10}{15}{220}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@fine{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=12\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \MFF@quadric{5}{-5}{55}{60}% + \else + \MFF@linear{10}{5}{210}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@thin_join{\SAUTER@CMT@fine} + +\def\SAUTER@CMT@hair{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=20\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \MFF@quadric{5}{-5}{55}{100}% + \else + \MFF@linear{10}{15}{250}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@stem{\SAUTER@CMT@hair} + +\def\SAUTER@CMT@curve{\SAUTER@CMT@hair} + +\def\SAUTER@CMT@ess{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=14\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \MFF@quadric{5}{-5}{55}{70}% + \else + \MFF@linear{10}{15}{220}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@flare{% + \ifdim \@tempdima<10pt\relax + \MFF@linear{0}{20}{120}% + \else + \MFF@linear{10}{15}{320}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@dot_size{% + \ifdim \@tempdima<9pt\relax + \MFF@linear{0}{20}{150}% + \else + \ifdim \@tempdima<10pt\relax + \MFF@linear{9}{30}{330}% + \else + \MFF@linear{10}{15}{360}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@cap_hair{\SAUTER@CMT@hair} + +\def\SAUTER@CMT@cap_stem{\SAUTER@CMT@hair} + +\def\SAUTER@CMT@cap_curve{\SAUTER@CMT@hair} + +\def\SAUTER@CMT@cap_ess{\SAUTER@CMT@hair} + +\def\SAUTER@CMT@rule_thickness{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=20\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \MFF@quadric{5}{-5}{55}{100}% + \else + \MFF@linear{10}{15}{250}% + \fi\fi + \@tempdimb=0.27777777778\@tempdimb +} + +\def\SAUTER@CMT@dish{\@tempdimb=0pt} + +\def\SAUTER@CMT@bracket{\@tempdimb=0pt} + +\def\SAUTER@CMT@jut{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=18\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \MFF@quadric{5}{-5}{75}{90}% + \else + \MFF@linear{10}{25}{340}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@cap_jut{\SAUTER@CMT@jut} + +\def\SAUTER@CMT@beak_jut{\@tempdimb=0pt} + +\def\SAUTER@CMT@beak{\SAUTER@CMT@jut} + +\def\SAUTER@CMT@vair{\SAUTER@CMT@ess} + +\def\SAUTER@CMT@notch_cut{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=20\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \MFF@quadric{5}{-5}{55}{100}% + \else + \MFF@linear{10}{15}{250}% + \fi\fi + \@tempdimb=0.27777777778\@tempdimb +} + +\def\SAUTER@CMT@bar{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=14\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \MFF@quadric{5}{-5}{55}{70}% + \else + \MFF@linear{10}{15}{220}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@slab{\SAUTER@CMT@bar} + +\def\SAUTER@CMT@cap_bar{\SAUTER@CMT@bar} + +\def\SAUTER@CMT@cap_band{\SAUTER@CMT@bar} + +\def\SAUTER@CMT@cap_notch_cut{\SAUTER@CMT@notch_cut} + +\def\SAUTER@CMT@serif_drop{\@tempdimb=0pt} + +\def\SAUTER@CMT@stem_corr{\@tempdimb=0pt} + +\def\SAUTER@CMT@vair_corr{\@tempdimb=0pt} + +\def\SAUTER@CMT@apex_corr{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=10\@tempdima + \else + \MFF@linear{10}{5}{100}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@o{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=3\@tempdima + \else + \MFF@linear{5}{5}{15}% + \fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@apex_o{% + \ifdim \@tempdima<5pt\relax + \@tempdimb=6\@tempdima + \else + \ifdim \@tempdima<10pt\relax + \@tempdimb=30pt\relax + \else + \MFF@linear{10}{5}{30}% + \fi\fi + \@tempdimb=0.1\@tempdimb +} + +\def\SAUTER@CMT@fudge{% + \ifdim \@tempdima<10pt\relax + \@tempdimb=0.81pt\relax + \else + \ifdim \@tempdima<17.6pt\relax + \MFF@linear{10}{0.025}{0.81}% + \else + \@tempdimb=1pt\relax + \fi\fi +} + +\def\SAUTER@CMT@math_spread{\@tempdimb=-1pt} + +\def\SAUTER@CMT@superness{\@tempdimb=0.707106781186548pt} + +\def\SAUTER@CMT@superpull{\@tempdimb=0pt} + +\def\SAUTER@CMT@beak_darkness{\@tempdimb=0pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\SAUTER@CMF@u{\SAUTER@CMR@u + \@tempdimb=0.8\@tempdimb} + +\def\SAUTER@CMF@width_adj{\@tempdimb=-1.6\@tempdima} + +\def\SAUTER@CMF@serif_fit{\@tempdimb=-0.3\@tempdima} + +\def\SAUTER@CMF@cap_serif_fit{\@tempdimb=-0.4\@tempdima} + +\def\SAUTER@CMF@letter_fit{\SAUTER@CMR@letter_fit + \@tempdimb=0.8\@tempdimb} + +\def\SAUTER@CMF@body_height{\SAUTER@CMR@body_height + \@tempdimb=0.88888888889\@tempdimb} + +\def\SAUTER@CMF@asc_height{\SAUTER@CMR@asc_height + \@tempdimb=0.88\@tempdimb} + +\def\SAUTER@CMF@acc_height{\SAUTER@CMF@x_height + \@tempdimb=0.39473684211\@tempdimb} + +\def\SAUTER@CMF@dot_height{\SAUTER@CMF@cap_height + \@tempdimb=0.33333333333\@tempdimb} + +\def\SAUTER@CMF@udot_height{\SAUTER@CMF@cap_height + \@tempdimb=0.26222222222\@tempdimb} + +\def\SAUTER@CMF@cap_height{\SAUTER@CMR@cap_height + \@tempdimb=0.91463414634\@tempdimb} + +\def\SAUTER@CMF@fig_height{\SAUTER@CMR@fig_height + \@tempdimb=0.90517241379\@tempdimb} + +\def\SAUTER@CMF@x_height{\SAUTER@CMR@x_height + \@tempdimb=1.2258064516\@tempdimb} + +\def\SAUTER@CMF@math_axis{\SAUTER@CMR@math_axis + \@tempdimb=0.61111111111\@tempdimb} + +\def\SAUTER@CMF@comma_depth{\SAUTER@CMR@comma_depth} + +\def\SAUTER@CMF@desc_depth{\SAUTER@CMR@desc_depth + \@tempdimb=1.4285714286\@tempdimb} + +\def\SAUTER@CMF@bar_height{\SAUTER@CMR@bar_height + \@tempdimb=0.68965517241\@tempdimb} + +\def\SAUTER@CMF@crisp{\@tempdimb=\@tempdima} + +\def\SAUTER@CMF@tiny{\@tempdimb=0pt} + +\def\SAUTER@CMF@fine{\@tempdimb=0pt} + +\def\SAUTER@CMF@thin_join{\SAUTER@CMR@thin_join + \@tempdimb=2\@tempdimb} + +\def\SAUTER@CMF@hair{\SAUTER@CMR@hair + \@tempdimb=1.3333333333\@tempdimb} + +\def\SAUTER@CMF@stem{\SAUTER@CMR@stem + \@tempdimb=0.64\@tempdimb} + +\def\SAUTER@CMF@curve{\SAUTER@CMR@curve + \@tempdimb=0.66666666667\@tempdimb} + +\def\SAUTER@CMF@ess{\SAUTER@CMR@ess + \@tempdimb=0.81481481481\@tempdimb} + +\def\SAUTER@CMF@flare{\SAUTER@CMR@flare + \@tempdimb=0.72727272727\@tempdimb} + +\def\SAUTER@CMF@dot_size{\SAUTER@CMR@dot_size + \@tempdimb=0.68421052632\@tempdimb} + +\def\SAUTER@CMF@cap_hair{\SAUTER@CMR@cap_hair + \@tempdimb=1.4545454545\@tempdimb} + +\def\SAUTER@CMF@cap_stem{\SAUTER@CMR@cap_stem + \@tempdimb=1.4545454545\@tempdimb} + +\def\SAUTER@CMF@cap_curve{\SAUTER@CMR@cap_curve + \@tempdimb=0.7027027027\@tempdimb} + +\def\SAUTER@CMF@cap_ess{\SAUTER@CMR@cap_ess + \@tempdimb=0.8\@tempdimb} + +\def\SAUTER@CMF@rule_thickness{\SAUTER@CMR@rule_thickness + \@tempdimb=1.25\@tempdimb} + +\def\SAUTER@CMF@dish{\SAUTER@CMR@dish + \@tempdimb=5\@tempdimb} + +\def\SAUTER@CMF@bracket{\SAUTER@CMR@bracket + \@tempdimb=\@tempdimb} + +\def\SAUTER@CMF@jut{\SAUTER@CMR@jut + \@tempdimb=1.0714285714\@tempdimb} + +\def\SAUTER@CMF@cap_jut{\SAUTER@CMR@cap_jut + \@tempdimb=1.0810810811\@tempdimb} + +\def\SAUTER@CMF@beak_jut{\SAUTER@CMR@beak_jut + \@tempdimb=-0.8\@tempdimb} + +\def\SAUTER@CMF@beak{\SAUTER@CMR@beak + \@tempdimb=0.14285714286\@tempdimb} + +\def\SAUTER@CMF@vair{\SAUTER@CMR@vair + \@tempdimb=1.75\@tempdimb} + +\def\SAUTER@CMF@notch_cut{\SAUTER@CMR@notch_cut + \@tempdimb=0.55555555556\@tempdimb} + +\def\SAUTER@CMF@bar{\SAUTER@CMR@bar + \@tempdimb=1.5454545455\@tempdimb} + +\def\SAUTER@CMF@slab{\SAUTER@CMR@slab + \@tempdimb=1.8181818182\@tempdimb} + +\def\SAUTER@CMF@cap_bar{\SAUTER@CMR@cap_bar + \@tempdimb=2\@tempdimb} + +\def\SAUTER@CMF@cap_band{\SAUTER@CMR@cap_band + \@tempdimb=1.5454545455\@tempdimb} + +\def\SAUTER@CMF@cap_notch_cut{\SAUTER@CMR@cap_notch_cut + \@tempdimb=0.83333333333\@tempdimb} + +\def\SAUTER@CMF@serif_drop{\SAUTER@CMR@serif_drop + \@tempdimb=-2.5\@tempdimb} + +\def\SAUTER@CMF@stem_corr{\SAUTER@CMR@stem_corr + \@tempdimb=-\@tempdimb} + +\def\SAUTER@CMF@vair_corr{\SAUTER@CMR@vair_corr + \@tempdimb=-\@tempdimb} + +\def\SAUTER@CMF@apex_corr{\@tempdimb=0.6\@tempdima} + +\def\SAUTER@CMF@o{\SAUTER@CMR@o + \@tempdimb=0.5\@tempdimb} + +\def\SAUTER@CMF@apex_o{\SAUTER@CMR@apex_o + \@tempdimb=1.125\@tempdimb} + +\def\SAUTER@CMF@fudge{\SAUTER@CMR@fudge + \@tempdimb=\@tempdimb} + +\def\SAUTER@CMF@math_spread{\@tempdimb=0.5pt} + +\def\SAUTER@CMF@superness{\@tempdimb=0.66666666667pt} + +\def\SAUTER@CMF@superpull{\@tempdimb=-0.125pt} + +\def\SAUTER@CMF@beak_darkness{\@tempdimb=0.5pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\SAUTER@FIB@u{\SAUTER@CMR@u + \@tempdimb=1.2352941176\@tempdimb} + +\def\SAUTER@FIB@width_adj{\SAUTER@CMR@width_adj} + +\def\SAUTER@FIB@serif_fit{\@tempdimb=-0.25\@tempdima} + +\def\SAUTER@FIB@cap_serif_fit{\@tempdimb=0pt} + +\def\SAUTER@FIB@letter_fit{\SAUTER@CMR@letter_fit} + +\def\SAUTER@FIB@body_height{\SAUTER@CMR@body_height + \@tempdimb=1.0787037037\@tempdimb} + +\def\SAUTER@FIB@asc_height{\SAUTER@CMR@asc_height + \@tempdimb=1.165\@tempdimb} + +\def\SAUTER@FIB@acc_height{\SAUTER@FIB@x_height + \@tempdimb=0.38197424893\@tempdimb} + +\def\SAUTER@FIB@dot_height{\SAUTER@FIB@cap_height + \@tempdimb=0.23607427056\@tempdimb} + +\def\SAUTER@FIB@udot_height{\SAUTER@FIB@cap_height + \@tempdimb=0.23607427056\@tempdimb} + +\def\SAUTER@FIB@cap_height{\SAUTER@CMR@cap_height + \@tempdimb=1.1887755102\@tempdimb} + +\def\SAUTER@FIB@fig_height{\SAUTER@CMR@fig_height + \@tempdimb=1.255387931\@tempdimb} + +\def\SAUTER@FIB@x_height{\SAUTER@CMR@x_height + \@tempdimb=1.1612903226\@tempdimb} + +\def\SAUTER@FIB@math_axis{\SAUTER@CMR@math_axis + \@tempdimb=1.2361111111\@tempdimb} + +\def\SAUTER@FIB@comma_depth{\SAUTER@CMR@comma_depth + \@tempdimb=0.98214285714\@tempdimb} + +\def\SAUTER@FIB@desc_depth{\SAUTER@CMR@desc_depth + \@tempdimb=0.98214285714\@tempdimb} + +\def\SAUTER@FIB@bar_height{\SAUTER@CMR@bar_height + \@tempdimb=1.2898550725\@tempdimb} + +\def\SAUTER@FIB@crisp{\@tempdimb=\@tempdima} + +\def\SAUTER@FIB@tiny{\SAUTER@CMR@tiny + \@tempdimb=1.625\@tempdimb} + +\def\SAUTER@FIB@fine{\SAUTER@CMR@fine + \@tempdimb=1.8571428571\@tempdimb} + + +\def\SAUTER@FIB@thin_join{\SAUTER@CMR@thin_join + \@tempdimb=1.8571428571\@tempdimb} + +\def\SAUTER@FIB@hair{\SAUTER@CMR@hair + \@tempdimb=2.3333333333\@tempdimb} + +\def\SAUTER@FIB@stem{\SAUTER@CMR@stem + \@tempdimb=1.5454545455\@tempdimb} + +\def\SAUTER@FIB@curve{\SAUTER@CMR@curve + \@tempdimb=1.56\@tempdimb} + +\def\SAUTER@FIB@ess{\SAUTER@CMR@ess + \@tempdimb=1.4782608696\@tempdimb} + +\def\SAUTER@FIB@flare{\SAUTER@CMR@flare + \@tempdimb=1.2592592593\@tempdimb} + +\def\SAUTER@FIB@dot_size{\SAUTER@CMR@dot_size + \@tempdimb=1.0625\@tempdimb} + +\def\SAUTER@FIB@cap_hair{\SAUTER@CMR@cap_hair + \@tempdimb=2.2105263158\@tempdimb} + +\def\SAUTER@FIB@cap_stem{\SAUTER@CMR@cap_stem + \@tempdimb=1.2830188679\@tempdimb} + +\def\SAUTER@FIB@cap_curve{\SAUTER@CMR@cap_curve + \@tempdimb=1.3\@tempdimb} + +\def\SAUTER@FIB@cap_ess{\SAUTER@CMR@cap_ess + \@tempdimb=1.2592592593\@tempdimb} + +\def\SAUTER@FIB@rule_thickness{\SAUTER@CMR@rule_thickness + \@tempdimb=1.6203703704\@tempdimb} + +\def\SAUTER@FIB@dish{\SAUTER@CMR@dish} + +\def\SAUTER@FIB@bracket{\SAUTER@CMR@bracket + \@tempdimb=1.3125\@tempdimb} + +\def\SAUTER@FIB@jut{\SAUTER@CMR@jut + \@tempdimb=0.95454545455\@tempdimb} + +\def\SAUTER@FIB@cap_jut{\SAUTER@CMR@cap_jut + \@tempdimb=0.72413793103\@tempdimb} + +\def\SAUTER@FIB@beak_jut{\SAUTER@CMR@beak_jut + \@tempdimb=1.5476190476\@tempdimb} + +\def\SAUTER@FIB@beak{\SAUTER@CMR@beak + \@tempdimb=0.98214285714\@tempdimb} + +\def\SAUTER@FIB@vair{\SAUTER@CMR@vair + \@tempdimb=1.625\@tempdimb} + +\def\SAUTER@FIB@notch_cut{\SAUTER@CMR@notch_cut} + +\def\SAUTER@FIB@bar{\SAUTER@CMR@bar + \@tempdimb=1.3684210526\@tempdimb} + +\def\SAUTER@FIB@slab{\SAUTER@CMR@slab + \@tempdimb=1.3684210526\@tempdimb} + +\def\SAUTER@FIB@cap_bar{\SAUTER@CMR@cap_bar + \@tempdimb=1.3684210526\@tempdimb} + +\def\SAUTER@FIB@cap_band{\SAUTER@CMR@cap_band + \@tempdimb=1.3684210526\@tempdimb} + +\def\SAUTER@FIB@cap_notch_cut{\SAUTER@CMR@cap_notch_cut} + +\def\SAUTER@FIB@serif_drop{\SAUTER@CMR@serif_drop + \@tempdimb=0.9375\@tempdimb} + +\def\SAUTER@FIB@stem_corr{\SAUTER@CMR@stem_corr} + +\def\SAUTER@FIB@vair_corr{\SAUTER@CMR@vair_corr} + +\def\SAUTER@FIB@apex_corr{\SAUTER@CMR@apex_corr} + +\def\SAUTER@FIB@o{\SAUTER@CMR@o + \@tempdimb=1.3333333333\@tempdimb} + +\def\SAUTER@FIB@apex_o{\SAUTER@CMR@apex_o + \@tempdimb=1.3333333333\@tempdimb} + +\def\SAUTER@FIB@fudge{\SAUTER@CMR@fudge} + +\def\SAUTER@FIB@math_spread{\SAUTER@CMR@math_spread + \@tempdimb=0.9375\@tempdimb} + +\def\SAUTER@FIB@superness{\@tempdimb=0.707106781186548pt} + +\def\SAUTER@FIB@superpull{\@tempdimb=0.076923076923pt} + +\def\SAUTER@FIB@beak_darkness{\@tempdimb=0.38461538462pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/tex/latex/mff/mftricks.tex b/Master/texmf-dist/tex/latex/mff/mftricks.tex new file mode 100644 index 00000000000..2680da29ac3 --- /dev/null +++ b/Master/texmf-dist/tex/latex/mff/mftricks.tex @@ -0,0 +1,429 @@ +% +% ``Font Tricks'' borrowed from: +% "The ABC's of Special Effects" by Georgia K.M. Tobin +% TUGBoat 9 (1988) No 1 pp. 15--18 +% "Outline Fonts with Metafont" by Doug Henderson +% TUGBoat 10 (1989) No 1 pp. 36--38. +% + + +\def\MFF@writetrick#1{\MFF@write{\space\space\space #1}} + +% main trick subroutine (background + main char + shadow + transform) +% z = empty (white), b = black, +% v = vertical, h = horizontal, r = slanted(/), l - slanted (\) +% d = dotted grig, g = rectangular grid, s - slanted grid +% uppercase(*) = (*) + outline +% transformations: +% "z" - XY symmetry, "x" - symmetry OX, "y" - symmetry OY +% "+" - rotate +90, "-" - rotate -90, "=" - rotate 180 + +\def\MFF@maketrick{% + % initialization + \if z\MFF@trickshadow\relax \else \MFF@shadowinit \fi + \MFF@checktrick{\MFF@trickshadow}{vVhHrRlLdDgGsS}{\MFF@patterninit{SPen}}% + \MFF@checktrick{\MFF@trickchar}{vVhHrRlLdDgGsS}{\MFF@patterninit{MPen}}% + \MFF@checktrick{\MFF@trickbox}{ZvVhHrRlLdDgGsS}{\MFF@patterninit{HPen}}% + \@negargtrue + \MFF@checktrick{\MFF@trickchar}{ZBVHRLDGS}{}% + \MFF@checktrick{\MFF@trickshadow}{ZBVHRLDGS}{}% + \if@negarg\relax \else \MFF@outlineinit \fi + % subroutine which repaces endchar + \@negargtrue \if z\MFF@trickbox \@negargfalse \fi + \MFF@trick@start{TrickChar}% + \MFF@boxinit\MFF@trick@dochar{Normal}% + \if z\MFF@trickshadow \else \MFF@trick@doshadow{Normal}{Shadow}\fi + % make background + \@negargtrue + \MFF@checktrick{\MFF@trickbox}{zZ}{% + \MFF@writetrick{clearit; picture BackChar; BackChar:=currentpicture;}% + }% + \if@negarg + \if z\MFF@trickshadow + \MFF@trick@helpdraw{Normal}{Back}{HPen}{\MFF@trickbox}% + \else + \MFF@trick@helpdraw{ShadowBox}{Back}{HPen}{\MFF@trickbox}% + \fi + \fi + \MFF@checktrick{\MFF@trickbox}{ZBVHRLDGS}{% + \MFF@writetrick{clearit; pickup HPen;} + \MFF@writetrick{draw (rbXM,rbYM)--(rbXP,rbYM); draw (rbXP,rbYM)--(rbXP,rbYP);} + \MFF@writetrick{draw (rbXP,rbYP)--(rbXM,rbYP); draw (rbXM,rbYP)--(rbXM,rbYM);} + \MFF@writetrick{cullit; BackChar:=currentpicture + BackChar;} + }% + % make character + \MFF@trick@trickhelp{\MFF@trickchar}{MPen}{Normal}{Main}% + % make shadow + \MFF@trick@trickhelp{\MFF@trickshadow}{SPen}{Shadow}{SMain}% + % combine + \MFF@writetrick{clearit; currentpicture:=BackChar+MainChar+SMainChar;}% + \MFF@trick@end{TrickChar}% + % correct char box + % transformation + \@negargfalse + \@for\@temp:=\MFF@trick@transform\do + {\csname MFF@help@transf@\@temp\endcsname}% + % final box corrections + \if z\MFF@trickbox \if@negarg \MFF@trick@makebox \fi + \else \MFF@trick@shiftbox \@negargtrue \fi + \if@negarg \MFF@trick@assignbox \fi +} + +\def\MFF@help@transf@rr{\@negargtrue + \MFF@trick@transf{FR}% + {rotatedaround ((0,0),-90) shifted (0,tmpW)}% + {tempI:=tmpW; tmpW:=tmpH; tmpH:=tempI+tmpP; tmpP:=tmpD; tmpD:=0;}% + {tmptmp:=tmpwd; tmpwd:=tmpht; tmpht:=tmptmp+tmpwp; tmpwp:=tmpdp; tmpdp:=0pt\MFF@p;}% +} + +\def\MFF@help@transf@rl{\@negargtrue + \MFF@trick@transf{FL}% + {rotatedaround ((0,0),+90) shifted (tmpH,0)}% + {tempI:=tmpH; tmpH:=tmpW; tmpW:=tempI+tmpD; tmpD:=tmpP; tmpP:=0;}% + {tmptmp:=tmpht; tmpht:=tmpwd; tmpwd:=tmptmp+tmpdp; tmpdp:=tmpwp; tmpwp:=0pt\MFF@p;}% +} + +\def\MFF@help@transf@ro{\@negargtrue + \MFF@trick@transf{FF}% + {rotatedaround ((0,0),180) shifted (tmpW,tmpH)}% + {tmpH:=tmpH+tmpD; tmpW:=tmpW+tmpP; tmpD:=0; tmpP:=0;}% + {tmpht:=tmpht+tmpdp; tmpwd:=tmpwd+tmpwp; tmpdp:=0pt\MFF@p; tmpwp:=0pt\MFF@p;}% +} + +\def\MFF@help@transf@sx{\@negargtrue + \MFF@trick@transf{FY}% + {reflectedabout ((0,0),(0,100)) shifted (tmpW,0)}% + {tmpW:=tmpW+tmpP; tmpP:=0;}% + {tmpwd:=tmpwd+tmpwp; tmpwp:=0pt\MFF@p;}% +} + +\def\MFF@help@transf@sy{\@negargtrue + \MFF@trick@transf{FX}% + {reflectedabout ((0,0),(100,0)) shifted (0,tmpH)}% + {tmpH:=tmpH+tmpD; tmpD:=0;}% + {tmpht:=tmpht+tmpdp; tmpdp:=0pt\MFF@p;}% +} + +\def\MFF@help@transf@sz{\@negargtrue + \MFF@trick@transf{FZ}% + {reflectedabout ((0,0),(100,100))}% + {tempI:=tmpW; tmpW:=tmpH; tmpH:=tempI; tempI:=tmpP; tmpP:=tmpD; tmpD:=tempI;}% + {tmptmp:=tmpwd; tmpwd:=tmpht; tmpht:=tmptmp; tmptmp:=tmpwp; tmpwp:=tmpdp; tmpdp:=tmptmp;}% +} + +\def\MFF@help@transf@st{\@negargtrue + \MFF@trick@transf{FT}% + {reflectedabout ((0,0),(100,-100)) shifted (tmpH,tmpW)}% + {tempI:=tmpW+tmpP; tmpW:=tmpH+tmpD; tmpH:=tempI; tmpP:=0; tmpD:=0;}% + {tmptmp:=tmpwd+tmpwp; tmpwd:=tmpht+tmpdp; tmpht:=tmptmp; tmpwp:=0pt\MFF@p; tmpdp:=0pt\MFF@p;}% +} + +% #1 - shift +\def\MFF@boxinit{% + \MFF@writetrick{if slant>0:} + \MFF@writetrick{\space\space\space rbXM:=hround(slant*chardp*hppp);} + \MFF@writetrick{\space\space\space rbXP:=hround(slant*charht*hppp);} + \MFF@writetrick{else:} + \MFF@writetrick{\space\space\space rbXM:=hround((-slant)*charht*hppp);} + \MFF@writetrick{\space\space\space rbXP:=hround((-slant)*chardp*hppp);} + \MFF@writetrick{fi;} + \if@negarg % background=yes + \MFF@writetrick{shiftX:=rbXM+curve; rbXM:=0;} + \MFF@writetrick{rbXP:=w+curve+rbXP+shiftX+hround(charic*hppp);} + \else % background=no + \MFF@writetrick{rbXM:=-curve-rbXM; rbXP:=w+curve+rbXP;} + \fi + \MFF@writetrick{rbYP:=body_height+curve; rbYM:=-body_depth-curve;} + \if z\MFF@trickshadow \relax \else + \if A\MFF@shadowstyle + \MFF@writetrick{rbYM:=rbYM-shadowstepV; rbXP:=rbXP+shadowstepH;} + \fi + \if B\MFF@shadowstyle + \MFF@writetrick{rbYP:=rbYP+shadowstepV; rbXP:=rbXP+shadowstepH;} + \fi + \if C\MFF@shadowstyle + \MFF@writetrick{rbYP:=rbYP+shadowstepV; rbXM:=rbXM-shadowstepH;} + \fi + \if D\MFF@shadowstyle + \MFF@writetrick{rbYM:=rbYM-shadowstepV; rbXM:=rbXM-shadowstepH;} + \fi + \fi +} + +\def\MFF@outlineinit{\MFF@write{}% + \MFF@writetrick{HCntSize\MFF@p:=\MFF@contourstep*hair\MFF@p;} + \MFF@writetrick{HCntX:=hround(HCntSize\MFF@p*hppp); if (HCntX<1): HCntX:=1; fi} + \MFF@writetrick{HCntY:=vround(HCntSize\MFF@p*hppp); if (HCntY<1): HCntY:=1; fi} +} + +% #1 - pen name (HPen for background, MPen for char, SPen for shadow) +\def\MFF@patterninit#1{\MFF@write{}% + \MFF@writetrick{#1Size\MFF@p:=\csname MFF@#1pen\endcsname *hair\MFF@p;} + \MFF@writetrick{#1X:=hround(#1Size\MFF@p*hppp); if (#1X<1): #1X:=1; fi} + \MFF@writetrick{#1Y:=vround(#1Size\MFF@p*hppp); if (#1Y<1): #1Y:=1; fi} + \MFF@writetrick{path #1Path;} + \MFF@writetrick{#1Path:=(-0.5#1X,-0.5#1Y)--(0.5#1X,-0.5#1Y)} + \MFF@writetrick{\space\space\space --(0.5#1X,0.5#1Y)--(-0.5#1X,0.5#1Y)--cycle;} + \MFF@writetrick{capsule_def(#1) makepen(#1Path);} + \MFF@writetrick{#1Step\MFF@p:=\csname MFF@#1step\endcsname *hair\MFF@p;} + \MFF@writetrick{#1StepH:=hround(#1Step\MFF@p*hppp); if (#1StepH<1): #1StepH:=1; fi} + \MFF@writetrick{#1StepV:=vround(#1Step\MFF@p*hppp); if (#1StepV<1): #1StepV:=1; fi} +} + +\def\MFF@shadowinit{\MFF@write{}% + \def\@tempa{+}\def\@tempb{-}% + \@tfor \@temp := \MFF@shadowstyle \do {% + \if A\@temp \def\@tempa{+}\def\@tempb{-}\fi + \if B\@temp \def\@tempa{+}\def\@tempb{+}\fi + \if C\@temp \def\@tempa{-}\def\@tempb{+}\fi + \if D\@temp \def\@tempa{-}\def\@tempb{-}\fi + }% + \MFF@writetrick{shadowstepH:=\@tempa hround(\MFF@shadowstep*hair\MFF@p*hppp);}% + \MFF@writetrick{shadowstepV:=\@tempb vround(\MFF@shadowstep*hair\MFF@p*hppp);}% +} + +% \@negarg = shift, #1 = picturename (Normal) +\def\MFF@trick@dochar#1{% + \MFF@writetrick{cullit; picture #1Char;} + \if@negarg % background=yes + \MFF@writetrick{#1Char:=currentpicture shifted (shiftX,0);} + \else % background=no + \MFF@writetrick{#1Char:=currentpicture;} + \fi +} + +% #1 - input char name, #2 - output char name +\def\MFF@trick@docontour#1#2{% + \MFF@writetrick{clearit;} + \MFF@writetrick{currentpicture:=#1Char;} + \MFF@writetrick{cull currentpicture keeping (1,infinity);} + \MFF@writetrick{picture TempPict; TempPict:=currentpicture;} + \MFF@writetrick{cull currentpicture keeping (1,1) withweight 3;} + \MFF@writetrick{addto currentpicture also TempPict + - TempPict shifted (-HCntX,0)} + \MFF@writetrick{\space\space\space - TempPict shifted (+HCntX,0) + - TempPict shifted (0,-HCntY) + - TempPict shifted (0,+HCntY);} + \MFF@writetrick{cull currentpicture keeping (1,4);} + \MFF@writetrick{picture #2Char; #2Char:=currentpicture;} +} + +% #1 - input char, #2 - output char +\def\MFF@trick@doshadow#1#2{% + \MFF@writetrick{clearit;} + \MFF@writetrick{currentpicture:=#1Char shifted (shadowstepH, shadowstepV);} + \MFF@writetrick{picture ShadowPict; ShadowPict:=currentpicture;} + \MFF@writetrick{clearit; currentpicture:=ShadowPict-#1Char;} + \MFF@writetrick{cullit; picture #2Char; #2Char:=currentpicture;} + \MFF@writetrick{clearit; currentpicture:=#1Char+#2Char;} + \MFF@writetrick{cullit; picture #2BoxChar; #2BoxChar:=currentpicture;} +} + +% make charactyer or shadow: +% #1 = draw subroutine, #2 - pen name, +% #3 = input char, #4 - output char +\def\MFF@trick@trickhelp#1#2#3#4{% + \if z#1 + \MFF@writetrick{clearit; picture #4Char; #4Char:=currentpicture;}% + \else + \if Z#1 + \MFF@trick@docontour{#3}{#4}% + \else + \if b#1 + \MFF@writetrick{picture #4Char; #4Char:=#3Char;}% + \else + \if B#1 + \MFF@writetrick{picture #4Char; #4Char:=#3Char;}% + \else + \MFF@trick@helpdraw{#3}{R#3}{#2}{B}% + \MFF@trick@helpdraw{R#3}{#4}{#2}{#1}% + \MFF@checktrick{#1}{ZBVHRLDGS}{% + \MFF@trick@docontour{#3}{OL#3}% + \MFF@writetrick{#4Char:=#4Char + OL#3Char;}% + }% + \fi\fi\fi\fi +} + +% black background: #1 - pen name (dummy) +\def\MFF@trick@do@b#1{\MFF@trick@do@B{#1}} +\def\MFF@trick@do@B#1{% + \MFF@writetrick{fill (rbXM,rbYM)--(rbXP,rbYM)--(rbXP,rbYP)--(rbXM,rbYP)--cycle;} +} + +% hor line background: #1 - pen name +\def\MFF@trick@do@h#1{\MFF@trick@do@H{#1}} +\def\MFF@trick@do@H#1{% + \MFF@writetrick{for f=rbYM+0.5#1Y step #1StepV until rbYP-0.5#1Y:} + \MFF@writetrick{\space\space\space draw (rbXM+0.5#1X,f)--(rbXP-0.5#1X,f);} + \MFF@writetrick{endfor;} +} + +% vert line background: #1 - pen name +\def\MFF@trick@do@v#1{\MFF@trick@do@V{#1}} +\def\MFF@trick@do@V#1{% + \MFF@writetrick{for f=rbXM+0.5#1X step #1StepH until rbXP-0.5#1X:} + \MFF@writetrick{\space\space\space draw (f,rbYM+0.5#1Y)--(f,rbYP-0.5#1Y);} + \MFF@writetrick{endfor;} +} + +% rect grid background: #1 - pen name +\def\MFF@trick@do@g#1{\MFF@trick@do@G{#1}} +\def\MFF@trick@do@G#1{\MFF@trick@do@H{#1}\MFF@trick@do@V{#1}} + +% dotted grid background: #1 - pen name +\def\MFF@trick@do@d#1{\MFF@trick@do@D{#1}} +\def\MFF@trick@do@D#1{% + \MFF@writetrick{for f=rbYM+0.5#1Y step #1StepV until rbYP-0.5#1Y:} + \MFF@writetrick{\space for g=rbXM+0.5#1X step #1StepH until rbXP-0.5#1X:} + \MFF@writetrick{\space\space\space draw (g,f);} + \MFF@writetrick{\space endfor;} + \MFF@writetrick{endfor;} +} + +% slant (\) background: #1 - pen name +\def\MFF@trick@do@r#1{\MFF@trick@do@R{#1}} +\def\MFF@trick@do@R#1{% + \MFF@writetrick{levelX:=rbXP-rbXM-#1X; levelY:=rbYP-rbYM-#1Y; f:=0;} + \MFF@writetrick{forever:} + \MFF@writetrick{\space\space\space exitif f>(levelX+levelY);} + \MFF@writetrick{\space\space\space if (f<levelY) :} + \MFF@writetrick{\space\space\space\space\space\space + pX:=rbXM + 0.5#1X; pY:=rbYM + 0.5#1Y + f;} + \MFF@writetrick{\space\space\space else:} + \MFF@writetrick{\space\space\space\space\space\space + pX:=rbXM + 0.5#1X + f - levelY; pY:=rbYP - 0.5#1Y;} + \MFF@writetrick{\space\space\space fi;} + \MFF@writetrick{\space\space\space if (f<levelX) :} + \MFF@writetrick{\space\space\space\space\space\space + qX:=rbXM + 0.5#1X + f; qY:=rbYM + 0.5#1Y;} + \MFF@writetrick{\space\space\space else:} + \MFF@writetrick{\space\space\space\space\space\space + qX:=rbXP - 0.5#1X; qY:=rbYM + 0.5#1Y + f - levelX;} + \MFF@writetrick{\space\space\space fi;} + \MFF@writetrick{\space\space\space draw (pX,pY)--(qX,qY);} + \MFF@writetrick{\space\space\space f:=f+#1StepV;} + \MFF@writetrick{endfor;} +} + +% slant (/) background: #1 - pen name +\def\MFF@trick@do@l#1{\MFF@trick@do@L{#1}} +\def\MFF@trick@do@L#1{% + \MFF@writetrick{levelX:=rbXP-rbXM-#1X; levelY:=rbYP-rbYM-#1Y; f:=0;} + \MFF@writetrick{forever:} + \MFF@writetrick{\space\space\space exitif f>(levelX+levelY);} + \MFF@writetrick{\space\space\space if (f<levelY) :} + \MFF@writetrick{\space\space\space\space\space\space + pX:=rbXP - 0.5#1X; pY:=rbYM + 0.5#1Y + f;} + \MFF@writetrick{\space\space\space else:} + \MFF@writetrick{\space\space\space\space\space\space + pX:=rbXP - 0.5#1X - f + levelY; pY:=rbYP - 0.5#1Y;} + \MFF@writetrick{\space\space\space fi;} + \MFF@writetrick{\space\space\space if (f<levelX) :} + \MFF@writetrick{\space\space\space\space\space\space + qX:=rbXP - 0.5#1X - f; qY:=rbYM + 0.5#1Y;} + \MFF@writetrick{\space\space\space else:} + \MFF@writetrick{\space\space\space\space\space\space + qX:=rbXM + 0.5#1X; qY:=rbYM + 0.5#1Y + f - levelX;} + \MFF@writetrick{\space\space\space fi;} + \MFF@writetrick{\space\space\space draw (pX,pY)--(qX,qY);} + \MFF@writetrick{\space\space\space f:=f+#1StepV;} + \MFF@writetrick{endfor;} +} + +% slanted grid background: #1 - pen name +\def\MFF@trick@do@s#1{\MFF@trick@do@S{#1}} +\def\MFF@trick@do@S#1{\MFF@trick@do@R{#1}\MFF@trick@do@L{#1}} + +% #1 - input char, #2 - output char, #3 - pen name, #4 - drawing subroutine +\def\MFF@trick@helpdraw#1#2#3#4{% + \MFF@writetrick{clearit;} + \if B#4 \else + \if b#4 \else + \if Z#4 \else + \if z#4 \else + \MFF@writetrick{pickup #3;} + \fi\fi\fi\fi + \csname MFF@trick@do@#4\endcsname{#3}% + \MFF@writetrick{cullit; currentpicture:=currentpicture-#1Char; cullit;} + \MFF@writetrick{picture #2Char; #2Char:=currentpicture;} +} + +% #1 - subroutine name +\def\MFF@trick@start#1{% + \MFF@write{}\MFF@write{def #1\space = } +} + +% #1 - subroutine name +\def\MFF@trick@end#1{% + \MFF@write{enddef;}\MFF@write{} + \MFF@write{extra_endchar := extra_endchar & "; #1";} +} + +% #1 - subroutine name, #2 - transformation +% #3 - update tmpH, tmpD, tmpW, tmpP +% #4 - update tmpht, tmpdp, tmpwd, tmpwp +\def\MFF@trick@transf#1#2#3#4{% + \MFF@trick@start{#1endchar}% + \MFF@writetrick{picture TempPict; TempPict:=currentpicture;} + \MFF@writetrick{clearit; currentpicture:=TempPict #2;} + \MFF@writetrick{clearit; currentpicture:=TempPict #2;} + \MFF@writetrick{#3} + \MFF@trick@end{#1endchar}% + \MFF@write{} + \MFF@write{def #1beginchar = } + \MFF@writetrick{#4} + \MFF@write{enddef;} + \MFF@write{extra_beginchar := extra_beginchar & "; #1beginchar";} +} + +\def\MFF@trick@dimen{% + \MFF@writetrick{tmpH:=vround(tmpht*hppp); tmpD:=vround(tmpdp*hppp);} + \MFF@writetrick{tmpW:=hround(tmpwd*hppp); tmpP:=hround(tmpwp*hppp);} +} + +\def\MFF@trick@shiftbox{% + \MFF@write{} + \MFF@write{body_depth\MFF@p:=desc_depth\MFF@p+body_height\MFF@p-asc_height\MFF@p;} + \MFF@write{def ABCbeginchar = } + \MFF@writetrick{tmpht:=body_height\MFF@p+curve\MFF@p; tmpdp:=body_depth\MFF@p+curve\MFF@p;} + \MFF@writetrick{tmpwd:=charwd+charic+2*curve\MFF@p; tmpic:=0pt\MFF@p; tmpwp:=0pt\MFF@p;} + \MFF@writetrick{if slant>0:} + \MFF@writetrick{\space\space\space tmpwd:=tmpwd+slant*(tmpdp+tmpht);} + \MFF@writetrick{else:} + \MFF@writetrick{\space\space\space tmpwd:=tmpwd-slant*(tmpdp+tmpht);} + \MFF@writetrick{fi;} + \MFF@trick@dimen + \MFF@write{enddef;} + \MFF@write{extra_beginchar := "ABCbeginchar; " & extra_beginchar;} +} + +\def\MFF@trick@makebox{% + \MFF@write{} + \MFF@write{body_depth\MFF@p:=desc_depth\MFF@p+body_height\MFF@p-asc_height\MFF@p;} + \MFF@write{def PQRbeginchar = } + \MFF@writetrick{tmpht:=body_height\MFF@p; tmpdp:=body_depth\MFF@p;} + \MFF@writetrick{tmpwd:=charwd; tmpic:=charic;} + \MFF@writetrick{if slant>0:} + \MFF@writetrick{\space\space\space tmpwp:=curve\MFF@p+slant*tmpdp;} + \MFF@writetrick{else:} + \MFF@writetrick{\space\space\space tmpwp:=curve\MFF@p-slant*tmpht;} + \MFF@writetrick{fi;} + \MFF@trick@dimen + \MFF@write{enddef;} + \MFF@write{extra_beginchar := "PQRbeginchar; " & extra_beginchar;} +} + +\def\MFF@trick@assignbox{% + \MFF@write{} + \MFF@write{def XYZbeginchar = } + \MFF@writetrick{charht:=tmpht; chardp:=tmpdp;} + \MFF@write{enddef;} + \MFF@write{def XYZendchar = } + \MFF@writetrick{charwd:=tmpwd; charic:=tmpic;} + \MFF@write{enddef;} + \MFF@write{extra_beginchar := extra_beginchar & "; XYZbeginchar";} + \MFF@write{extra_endchar := extra_endchar & "; XYZendchar";} +} + +%%%%%%% end MFF tricks %%%%%%%%%%%%%%%%%%% + |