% Compute the font construction parameters for the Computer
% Modern Text Italic family.  This is computed as a modification
% of Computer Modern Roman.

input c-cmr;

u#:=               % unit width
    (if design_size < 10: ((design_size*design_size*1) -
                           (design_size*5) + 134)
                    else: ((design_size*16)+24)fi)/360pt#;

letter_fit#:=      % extra space added to all sidebars
    (if design_size <  8: (-(design_size*15)+199)
 elseif design_size <  9: ((design_size*06)+31)
 elseif design_size < 10: ((design_size*7)+22)
                    else: ((design_size*8)+12)fi)/360pt#;

crisp#:=           % diameter of serif corners
    (if design_size <  7: ((design_size*5)+35)
 elseif design_size <  8: (design_size*10)
                    else: (80)fi)/360pt#;

hair#:=            % lowercase hairline breadth
    (if design_size <  8: ((design_size*5)+70)
 elseif design_size < 10: (110)
                    else: ((design_size*5)+60)fi)/360pt#;

stem#:=            % lowercase stem breadth
    (if design_size <  8: ((design_size*15)+80)
 elseif design_size <  9: ((design_size*20)+40)
 elseif design_size < 10: ((design_size*10)+130)
                    else: ((design_size*15)+80)fi)/360pt#;

curve#:=           % lowercase curve breadth
    (if design_size <  8: ((design_size*20)+75)
 elseif design_size <  9: ((design_size*25)+35)
 elseif design_size < 10: ((design_size*20)+80)
                    else: ((design_size*15)+130)fi)/360pt#;

ess#:=             % breadth in middle of lowercase s
    (if design_size <  7: (-(design_size*design_size*5) +
                           (design_size*105)-280)
 elseif design_size < 10: ((design_size*20)+70)
                    else: ((design_size*10)+170)fi)/360pt#;

flare#:=           % diameter of bulbs or breadth of terminals
    (if design_size <  8: (design_size*30)
 elseif design_size <  9: ((design_size*20)+80)
 elseif design_size < 10: ((design_size*30)-10)
                    else: ((design_size*15)+140)fi)/360pt#;    

cap_hair#:=        % uppercase hairline breadth
    (if design_size <  7: ((design_size*5)+70)
 elseif design_size < 10: (110)
                    else: ((design_size*2.5)+85)fi)/360pt#;

cap_stem#:=        % uppercase stem breadth
    (if design_size < 10: ((design_size*design_size*2.5) -
                           (design_size*17.5) + 215)
                    else: ((design_size*15)+140)fi)/360pt#;

cap_curve#:=       % uppercase curve breadth
    (if design_size <  8: ((design_size*25)+70)
 elseif design_size <  9: ((design_size*30)+30)
 elseif design_size < 10: ((design_size*40)-60)
                    else: ((design_size*15)+190)fi)/360pt#;

cap_ess#:=         % breadth in middle of uppercase s
    (if design_size <  9: (design_size*30)
 elseif design_size < 10: ((design_size*40)-90)
                    else: ((design_size*15)+160)fi)/360pt#;

jut#:=             % protrusion of lowercase serifs
    (if design_size < 10: (design_size*30)
                    else: ((design_size*25)+50)fi)/360pt#;

cap_jut#:=         % protrusion of uppercase serifs
    (if design_size <  8: ((design_size*30)+30)
 elseif design_size < 10: ((design_size*35)-10)
                    else: ((design_size*20)+140)fi)/360pt#;

beak_jut#:=        % horizontal protrusion of beak serifs
    (if design_size <  8: ((design_size*5)+39)
 elseif design_size <  9: ((design_size*6)+31)
 elseif design_size < 10: ((design_size*5)+40)
                    else: ((design_size*7)+20)fi)/360pt#;

slant:=            % tilt ratio $(\Delta x/\Delta y)$
                           0.25;

variant_g:=        % should an italic-style g be used?
                          true;
