% Computer Modern Roman Caps and Small Caps 10 point
if unknown cmbase: input cmbase fi

font_identifier:="CMCSC"; font_size 10pt#;

% first come parameters used to set the uppercase letters
% (including some for lowercase that aren't actually used)
u#:=21/36pt#;      % unit width
width_adj#:=0pt#;    % width adjustment for certain characters
serif_fit#:=0pt#;    % extra sidebar near lowercase serifs
cap_serif_fit#:=5/36pt#;  % extra sidebar near uppercase serifs
letter_fit#:=5/36pt#;    % extra space added to all sidebars

body_height#:=270/36pt#;  % height of tallest characters
asc_height#:=250/36pt#;    % height of lowercase ascenders
cap_height#:=246/36pt#;    % height of caps
fig_height#:=232/36pt#;    % height of numerals
x_height#:=155/36pt#;    % height of lowercase without ascenders
math_axis#:=90/36pt#;    % axis of symmetry for math symbols
bar_height#:=87/36pt#;    % height of crossbar in lowercase e
comma_depth#:=70/36pt#;    % depth of comma below baseline
desc_depth#:=70/36pt#;    % depth of lowercase descenders

crisp#:=0pt#;      % diameter of serif corners
tiny#:=8/36pt#;      % diameter of rounded corners
fine#:=7/36pt#;      % diameter of sharply rounded corners
thin_join#:=7/36pt#;    % width of extrafine details
hair#:=9/36pt#;      % lowercase hairline breadth
stem#:=25/36pt#;    % lowercase stem breadth
curve#:=30/36pt#;    % lowercase curve breadth
ess#:=27/36pt#;      % breadth in middle of lowercase s
flare#:=33/36pt#;    % diameter of bulbs or breadth of terminals
dot_size#:=38/36pt#;    % diameter of dots
cap_hair#:=11/36pt#;    % uppercase hairline breadth
cap_stem#:=32/36pt#;    % uppercase stem breadth
cap_curve#:=37/36pt#;    % uppercase curve breadth
cap_ess#:=35/36pt#;    % breadth in middle of uppercase s
rule_thickness#:=.4pt#;    % thickness of lines in math symbols

dish#:=1/36pt#;      % amount erased at top or bottom of serifs
bracket#:=20/36pt#;    % vertical distance from serik_jut#:=10/36pt#;    % horizontal protrusion of beak serifs
beak#:=70/36pt#;    % vertical protrusion of beak serifs
vair#:=8/36pt#;      % vertical diameter of hairlines
notch_cut#:=10pt#;    % maximum breadth above or below notches
bar#:=11/36pt#;      % lowercase bar thickness
slab#:=11/36pt#;    % serif and arm thickness
cap_bar#:=11/36pt#;    % uppercase bar thickness
cap_band#:=11/36pt#;    % uppercase thickness above/below lobes
cap_notch_cut#:=10pt#;    % max breadth above/below uppercase notches
serif_drop#:=4/36pt#;    % vertical drop of sloped serifs
stem_corr#:=1/36pt#;    % for small refinements of stem breadth
vair_corr#:=1/36pt#;    % for small refinements of hairline height
apex_corr#:=0pt#;    % extra width at diagonal junctions

o#:=8/36pt#;      % amount of overshoot for curves
apex_o#:=8/36pt#;    % amount of overshoot for diagonal junctions

slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
fudge:=1;      % factor applied to weights of heavy characters
math_spread:=0;      % extra openness of math symbols
superness:=1/sqrt2;    % parameter for superellipses
superpull:=1/6;      % extra openness inside bowls
beak_darkness:=11/30;    % fraction of triangle inside beak serifs
ligs:=2;      % level of ligatures to be included

square_dots:=false;    % should dots be square?
hefty:=false;      % should we try hard not to be overweight?
serifs:=true;      % should serifs and bulbs be attached?
monospace:=false;    % should all characters have the same width?
variant_g:=false;    % should an italic-style g be used?
low_asterisk:=false;    % should the asterisk be centered at the axis?
math_fitting:=false;    % should math-mode spacing be used?

generate roman      % switch to the driver file
{     âð\TeX book}, Appendix G
fontdimen 8:  % parameters $\xi_8$ through $\xi_{13}$ will now be listed
 rule_thickness#,  % default\_rule\_thickness
 40/36pt#,    % big\_op\_spacing1
 60/36pt#,    % big\_op\_spacing2
 72/36pt#,    % big\_op\_spacing3
 216/36pt#,    % big\_op\_spacing4
 36/36pt#;    % big\_op\_spacing5

generate mathex      % switch to the driver file
lseif     áxe=94: charcode:=127;    % circumflex
 elseif charcode=95: charcode:=24;    % underscore
 elseif charcode=125: charcode:=126;    % right-brace
 elseif charcode=126: charcode:=26;       % tilde
 elseif charcode=127: charcode:=11; fi enddef;  % integral

% Integral is put in position 11 because it's what DDs type out for that
% character.  Circumflex is in position 127, where it will probably never
% be used.

generate texset      % switch to the driver file
         ß im2
 math_axis#;              % axis\_height

generate mathsy      % switch to the driver file
@     ß8ower.cap_ess#:=25/36pt#;  % breadth in middle of uppercase s

lower.cap_jut#:=26/36pt#;  % protrusion of uppercase serifs
lower.beak_jut#:=0pt#;    % horizontal protrusion of beak serifs
lower.beak#:=26/36pt#;    % vertical protrusion of beak serifs
lower.slab#:=22/36pt#;    % serif and arm thickness
lower.cap_bar#:=22/36pt#;  % uppercase bar thickness
lower.cap_band#:=22/36pt#;  % uppercase thickness above/below lobes
lower.cap_notch_cut#:=24/36pt#;  % max breadth above/below uppercase notches

lower.o#:=3/36pt#;    % amount of overshoot for curves
lower.apex_o#:=2/36pt#;    % amount of overshoot for diagonal junctions

lower.fudge:=0.85;    % factor applied to weights of heavy characters

generate csc      % switch to the driver file
ight#*     Ü@u#,0);