% Computer Modern Typewriter Caps and Small Caps
if unknown cmbase: input cmbase fi
font_identifier:="CMTCSC"; font_size design_size * pt#;
% first come parameters used to set the uppercase letters
% (including some for lowercase that aren't actually used)
input c-cmtt;
% now come replacements used to set the lowercase caps
lower.u#:= % unit width
u#;
lower.width_adj#:= % width adjustment for certain characters
width_adj#;
lower.cap_serif_fit#:= % extra sidebar near uppercase serifs
cap_serif_fit#;
lower.letter_fit#:= % extra space added to all sidebars
((letter_fit#*360pt#) + (design_size * 3))/360pt#;
lower.body_height#:= % height of tallest characters
(body_height#*36pt#*19)/(25*36pt#);
lower.cap_height#:= % height of caps
(cap_height#*36pt#*17)/(22*36pt#);
lower.x_height#:= % height of lowercase without ascenders
(x_height#*36pt#*12)/(15.5*36pt#);
lower.bar_height#:= % height of crossbar in lowercase e
((bar_height#*36pt#*62)+0.002)/(79*36pt#);
lower.comma_depth#:= % depth of comma below baseline
(comma_depth#*36pt#*38)/(50*36pt#);
lower.stem#:= % lowercase stem breadth
stem#;
lower.flare#:= % diameter of bulbs or breadth of terminals
(flare#*360pt#*30)/(32*360pt#);
lower.cap_hair#:= % uppercase hairline breadth
cap_hair#;
lower.cap_stem#:= % uppercase stem breadth
cap_stem#;
lower.cap_curve#:= % uppercase curve breadth
cap_curve#;
lower.cap_ess#:= % breadth in middle of uppercase s
cap_ess#;
lower.cap_jut#:= % protrusion of uppercase serifs
((cap_jut#*360pt#*26)+0.01)/(34*360pt#);
lower.beak_jut#:= % horizontal protrusion of beak serifs
beak_jut#;
lower.beak#:= % vertical protrusion of beak serifs
((beak#*360pt#*26)+0.01)/(34*360pt#);
lower.slab#:= % serif and arm thickness
slab#;
lower.cap_bar#:= % uppercase bar thickness
cap_bar#;
lower.cap_band#:= % uppercase thickness above/below lobes
cap_band#;
lower.cap_notch_cut#:= % max breadth above/below uppercase notches
(cap_notch_cut#*360pt#*24)/(25*360pt#);
lower.o#:= % amount of overshoot for curves
((o#*360pt#*3)-0.0018)/(4*360pt#);
lower.apex_o#:= % amount of overshoot for diagonal junctions
(apex_o#*360pt#*2)/(3*360pt#);
lower.fudge:= % factor applied to weights of heavy characters
((fudge*10*85)+0.001)/(81*10);
generate csc % switch to the driver file
|