% Modify a set of "bold" parameters to make them suitable for a
% bolded math font. This is used to turn CMBX into CMBSY and CMMIB.
% AMS doubles cmbx's values for cmbsy. But we can't just multiply
% c-cmbx's value of |letter_fit| by two, since that introduces round-off
% error -- cmbsy5's value should be 0.16667, not 0.16666. So instead we
% halve the divisor.
letter_fit#:= % extra space added to all sidebars
(if design_size < 8: (-(design_size*10)+80)
else: (0)fi)/180pt#;
% Version 2.1 of the AMS fonts has confused values for this -- 5--8pt
% are whole numbers 9--12pt#, while 9pt is 13/36pt#. CM's 10pt value
% is also 13/36pt#.
crisp#:= % diameter of serif corners
(if design_size < 9: (design_size + 4pt#)
else: ((crisp#*360pt#) + (design_size * 13))/360pt#
fi);
% cmbsy5=23, cmbsy6=27, cmbsy7=31, cmbsy8=34, cmbsy9=37, cmbsy10=40.
stem#:= % lowercase stem breadth
(if design_size <= 7: ((design_size - 5pt#) * 4pt# + 23pt#)
else: ((design_size - 8pt#) * 3pt# + 34pt#)
fi) / 36pt#;
curve#:= % lowercase curve breadth
(if design_size < 10: ((design_size - 5pt#) * 4pt# + 26pt#)
else: ((design_size - 10pt#) * 3pt# + 45pt#)
fi) / 36pt#;
ess#:= % breadth in middle of lowercase s
((ess#*360pt#) - (design_size * 2))/360pt#;
flare#:= % diameter of bulbs or breadth of terminals
((flare#*360pt#) - (design_size * 3))/360pt#;
cap_stem#:= % uppercase stem breadth
((cap_stem#*360pt#) - (design_size * 1) - 0.0004)/360pt#;
cap_curve#:= % uppercase curve breadth
(if design_size < 10:
((design_size - 5pt#) * 5pt# + 30pt#)
else:
((design_size - 10pt#) * 3pt# + 53pt#)
fi) / 36pt#;
% ((cap_curve#*360pt#) - (design_size * 2) + 0.0025)/360pt#;
cap_ess#:= % breadth in middle of uppercase s
((cap_ess#*360pt#) - (design_size * 2))/360pt#;
jut#:= % protrusion of lowercase serifs
((jut#*360pt#) + (design_size * 2))/360pt#;
o#:= % amount of overshoot for curves
((o#*360pt#) + (design_size * 2))/360pt#;
apex_o#:= % amount of overshoot for diagonal junctions
((apex_o#*360pt#) + (design_size * 3) + 0.001)/360pt#;
slant:= % tilt ratio $(\Delta x/\Delta y)$
0.25;
variant_g:= % should an italic-style g be used?
true;
math_fitting:= % should math-mode spacing be used?
true;
|