% 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;
