% Mathematical symbols by Anthony Phan.
% file: matha10.mf (parameters' file for 10 points fonts)
% last modification: May 16, 2005.

% Look at rth.frac for fractions and such rule_thickness.

if unknown mathbase: input mathbase fi

numeric gen_; gen_=0;
for $=12pt#,10pt#,9pt#,8pt#,7pt#,6pt#,5pt#:
    if designsize<$: gen_:=gen_+1; fi
endfor;

vardef gen(expr unit)(text t)=
  save a,b; a=0; for $=t:
    if gen_>=a: b:=$; fi
    a:=a+1; endfor; b*unit
enddef;

superness     :=1/sqrt2;
flatness      :=0.0625;
slant         :=0.25;
beak_darkness :=11/30;
dh#           :=0.6designsize;
bigop_padding#:=1/12dh#;
astro         :=0;% 0 for san-serif, 1 for cm-like, in between...
math_spread   :=gen(1)(0,0.2,0.4,0.6,0.8,1);

u#           :=gen(1/36pt#)( 23.5, 20, 18.5, 17, 15.5, 14, 12.5);
letter_fit#  :=gen(1/36pt#)( 0, 0, 0, 0, 2, 3, 5);

body_height# :=gen(1/36pt#)(   324, 270,   243,   216,   189,   162,  135);
asc_height#  :=gen(1/36pt#)(   300, 250,   225,   200,   175,   150,  125);
cap_height#  :=gen(1/36pt#)( 295.2, 246, 221.4, 196.8, 172.2, 147.6,  123);
fig_height#  :=gen(1/36pt#)( 278.4, 232, 208.8, 185.6, 162.4, 139.2,  116);
x_height#    :=gen(1/36pt#)(   186, 155, 139.5,   124, 108.5,    93, 77.5);
math_axis#   :=gen(1/36pt#)(   108,  90,    81,    72,    63,    54,   45);
desc_depth#  :=gen(1/36pt#)(    84,  70,    63,    56,    49,    42,   35);
dtsz#        :=gen(1/36pt#)(    42,  38,    35,    32,    29,    26,   22);
ast_size#    :=gen(1/36pt#)(   140, 140,   140,   140,   140,   140,  140);
ast_curve#   :=gen(1/36pt#)(    28,  28,    28,    28,    28,    28,   28);
ast_stem#    :=gen(1/36pt#)(     8,   8,     8,     8,     8,     8,    8);

% Next parameters may affect daggers, asterisks, infinity,
% integrals, sums, similarity relations.

curve#     :=gen(1/36pt#)(   33,  30, 28, 25.5,  23, 20.5,  18);
stem#      :=gen(1/36pt#)(   28,  25, 24,   22,  20,   18,  16);
hair#      :=gen(1/36pt#)(  9.5,   9,  9,    9, 8.5,    8, 7.5);
vair#      :=gen(1/36pt#)(  8.5,   8,  8,    8,   7,    7,   6);
cap_curve# :=gen(1/36pt#)(   40,  37, 33,   30,  27,   24,  21);
cap_stem#  :=gen(1/36pt#)(   35,  32, 29, 26.5,  24, 21.5,  19);
cap_hair#  :=gen(1/36pt#)( 11.5,  11, 10,  9.5,   9,  8.5,   8);
slab#      :=gen(1/36pt#)( 12.5,  11, 10,  9.5,   9,  8.5,   8);
stem_corr# :=gen(1/36pt#)(    1,   1,  1,    1, 0.9,  0.8, 0.7);
vair_corr# :=gen(1/36pt#)(    1,   1,  1,    1, 0.9,  0.8, 0.7);
o#         :=gen(1/36pt#)( 9, 8, 7, 6, 5, 4.5, 4);
ho#        :=gen(1/36pt#)( 9, 8, 7, 6, 5, 4.5, 4);
dish#      :=gen(1/36pt#)( 1, 1, 1, 1, 0.9, 0.8, 0.7);

% RULE THICKNESSES

rth1#  :=gen(1pt#)(0.44,0.4,0.38,0.36,0.34,0.31,0.28);
rth0#  := 3/4    rth1#;
rth2#  := 4.5/4  rth1#;
rth3#  := 5/4    rth1#;
rth4#  := 5.5/4  rth1#;

rth.frac#:=0.3pt#;

crisp# :=gen(1/36pt#)( 0, 0, 0, 0, 0,   0, 0);
tiny#  :=gen(1/36pt#)( 8, 8, 8, 8, 7, 6.5, 6);
fine#  :=gen(1/36pt#)( 7, 7, 7, 7, 6,   6, 5);

% VARIOUS SPREADS

% thin space between > and _
spread0#:=math_spread[.21x_height#,.255x_height#];

% equal sign
spread1#:=math_spread[.35x_height#,.425x_height#];

% subset like symbols
spread2#:=math_spread[.87x_height#,1.01x_height#];

% infinity, asterisk, belong_to...
spread3#:=math_spread[x_height#,1.2x_height#];

% greater etc.
spread4#:=math_spread[17/16x_height#,9/8x_height#];

%
% FONT METRICS
%
% They are supposed to be the same as Computer Modern's ones.
% Please check carefully if it's true.

if font_identifier_="mathx":

% CMEX's like

  fontdimen8:
  rth0#,                                         % default_rule_thickness
  gen(40/36pt#)(1.2,1,.9,.8,.7,.6,.5),           % big_op_spacing1
  gen(60/36pt#)(1.2,1,.9,.8,.7,.6,.5),           % big_op_spacing2
  gen(72/36pt#)(1.2,1,.9,.8,.7,.6,.5),           % big_op_spacing3
  gen(216/36pt#)(1.2,1,.9,.8,.7,.6,.5),          % big_op_spacing4
  gen(1/36pt#)(36,36,36,36,36,36,36);            % big_op_spacing5

else:

% CMSY's like

  subs:=gen(1)(8/12,7/10,6/9,6/8,5/7,5/6,5/5);

  fontdimen8:

% \fontdimen8  (num1)
  math_axis#+3.51rth.frac#+gen(1/36pt#)(54,54,36,36,36,36,36)
  +subs*desc_depth#,

% \fontdimen9  (num2)
  math_axis#+1.51rth.frac#+gen(1/36pt#)(30,30,30,24,12,9,3),

% \fontdimen10 (num3)
  math_axis#+1.51rth.frac#+gen(1/36pt#)(48,48,43,38,34,29,24),

% \fontdimen11 (denom1)
  -(math_axis#-3.51rth.frac#-subs*fig_height#
    -gen(1/36pt#)(124,124,111,98,86,74,63)),

% \fontdimen12 (denom2)
  -(math_axis#-1.51rth.frac#-subs*fig_height#
    -gen(1/36pt#)(30,30,30,24,12,9,3)),

% \fontdimen13 (sup1)
  gen(1pt#)(8.99,8.99,8.49,7.49,6.99,6.49,5.99)-subs*asc_height#,

% \fontdimen14 (sup2)
  gen(1pt#)(8.49,8.49,7.99,7.99,6.49,5.99,5.49)-subs*asc_height#,

% \fontdimen15 (sup3)
  gen(1/36pt#)(104,104,93,82,72,62,53),

% \fontdimen16 (sub1)
  gen(1/36pt#)(54,54,36,36,36,36,36),

% \fontdimen17 (sub2)
  if gen_<2: -(8.49pt#-2subs*asc_height#-3.1rth.frac#)
  elseif gen_=2: -(7.99pt#-2subs*asc_height#-3.1rth.frac#)
  else: gen(1/36pt#)(72,72,72,72,72,72,72) fi,

% \fontdimen18 (sup_drop)
  subs*asc_height#-36/36pt#,

% \fontdimen19 (sub_drop)
  18/36pt#,

% \fontdimen20 (delim1)
  gen(1pt#)( 23.9, 23.9, 23.9, 11.9, 11.9, 11.9, 9.9),

% \fontdimen21 (delim2)
  gen(1pt#)( 10.1, 10.1,  9.1,  9.1,  8.1,  8.1, 7.1),

% \fontdimen22 (axis)
  math_axis#;

fi
