home *** CD-ROM | disk | FTP | other *** search
- % Compute the font construction parameters for the Computer
- % Modern Bold Extended family. Some other fonts in the
- % Computer Modern family compute their parameters as
- % modifications of these.
-
-
- u#:= % unit width
- (if design_size < 10: ((design_size*17)+60)
- else: ((design_size*20)+30)fi)/360pt#;
-
- width_adj#:= % width adjustment for certain characters
- (if design_size < 10: ((design_size*8)+30)
- else: ((design_size*10)+10)fi)/360pt#;
-
- serif_fit#:= % extra sidebar near lowercase serifs
- 0pt#;
-
- cap_serif_fit#:= % extra sidebar near uppercase serifs
- (if design_size < 10: ((design_size*8)-10)
- else: ((design_size*5)+20)fi)/360pt#;
-
- letter_fit#:= % extra space added to all sidebars
- (if design_size < 8: (-(design_size*10)+80)
- else: (0)fi)/360pt#;
-
- body_height#:= % height of tallest characters
- (design_size*270)/360pt#;
-
- asc_height#:= % height of lowercase ascenders
- (design_size*250)/360pt#;
-
- cap_height#:= % height of caps
- (design_size*247)/360pt#;
-
- fig_height#:= % height of numerals
- ((design_size*232) + 0.00006)/360pt#;
-
- x_height#:= % height of lowercase without ascenders
- (design_size*160)/360pt#;
-
- math_axis#:= % axis of symmetry for math symbols
- (design_size*90)/360pt#;
-
- bar_height#:= % height of crossbar in lowercase e
- (if design_size < 10: ((design_size*90)-50)
- else: (design_size*85)fi)/360pt#;
-
- comma_depth#:= % depth of comma below baseline
- (design_size*70)/360pt#;
-
- desc_depth#:= % depth of lowercase descenders
- (design_size*70)/360pt#;
-
- crisp#:= % diameter of serif corners
- 0/360pt#;
-
- tiny#:= % diameter of rounded corners
- (if design_size < 9: ((design_size*10)+40)
- else: (130)fi)/360pt#;
-
- fine#:= % diameter of sharply rounded corners
- (if design_size < 6: ((design_size*10)+30)
- elseif design_size < 7: (90)
- elseif design_size < 8: ((design_size*10)+20)
- else: (100)fi)/360pt#;
-
- thin_join#:= % width of extrafine details
- (if design_size < 6: ((design_size*10)+30)
- elseif design_size < 7: (90)
- elseif design_size < 8: ((design_size*10)+20)
- elseif design_size < 10: (100)
- else: ((design_size*2.5)+75)fi)/360pt#;
-
- hair#:= % lowercase hairline breadth
- (if design_size < 10: ((design_size*4)+130)
- else: ((design_size*6.5)+105)fi)/360pt#;
-
- stem#:= % lowercase stem breadth
- (if design_size < 7: ((design_size*40)+40)
- else: ((design_size*30)+110)fi)/360pt#;
-
- curve#:= % lowercase curve breadth
- (if design_size < 9: ((design_size*40)+70)
- else: ((design_size*30)+160)fi)/360pt#;
-
- ess#:= % breadth in middle of lowercase s
- (if design_size < 7: (-(design_size*design_size*10) +
- (design_size*170)-410)
- else: ((design_size*30)+80)fi)/360pt#;
-
- flare#:= % diameter of bulbs or breadth of terminals
- (if design_size < 8: ((design_size*40)+70)
- else: ((design_size*30)+150)fi)/360pt#;
-
- dot_size#:= % diameter of dots
- (if design_size < 10: ((design_size*50)+60)
- else: ((design_size*30)+260)fi)/360pt#;
-
- cap_hair#:= % uppercase hairline breadth
- (if design_size < 6: ((design_size*10)+120)
- elseif design_size < 7: (180)
- elseif design_size < 8: ((design_size*10)+110)
- elseif design_size < 9: (190)
- else: ((design_size*5)+140)fi)/360pt#;
-
- cap_stem#:= % uppercase stem breadth
- (if design_size < 8: ((design_size*50)+30)
- elseif design_size < 10: ((design_size*40)+110)
- else: ((design_size*30)+210)fi)/360pt#;
-
- cap_curve#:= % uppercase curve breadth
- (if design_size < 9: ((design_size*50)+60)
- elseif design_size < 10: ((design_size*40)+150)
- else: ((design_size*30)+250)fi)/360pt#;
-
- cap_ess#:= % breadth in middle of uppercase s
- (if design_size < 7: (-(design_size*design_size*5) +
- (design_size*125) - 260)
- elseif design_size < 9: (-(design_size*design_size*5) +
- (design_size*135) - 330)
- elseif design_size < 10: ((design_size*50)+30)
- else: ((design_size*30)+230)fi)/360pt#;
-
- rule_thickness#:= % thickness of lines in math symbols
- (if design_size < 7: ((design_size*4)+23)
- else: ((design_size*3)+30)fi)/100pt#;
-
- dish#:= % amount erased at top or bottom of serifs
- (if design_size < 8: ((design_size*1)+2)
- else: (10)fi)/360pt#;
-
- bracket#:= % vertical distance from serif base to tangent
- (design_size*10)/360pt#;
-
- jut#:= % protrusion of lowercase serifs
- (if design_size < 8: ((design_size*20)+30)
- elseif design_size < 10: ((design_size*30)-50)
- else: (design_size*25)fi)/360pt#;
-
- cap_jut#:= % protrusion of uppercase serifs
- (if design_size < 10: ((design_size*40)-10)
- else: ((design_size*35)+40)fi)/360pt#;
-
- beak_jut#:= % horizontal protrusion of beak serifs
- (if design_size < 10: ((design_size*8)+30)
- else: ((design_size*7)+40)fi)/360pt#;
-
- beak#:= % vertical protrusion of beak serifs
- (if design_size < 10: (-(design_size*design_size*5) +
- (design_size*165) - 450)
- else: (design_size*70)fi)/360pt#;
-
- vair#:= % vertical diameter of hairlines
- (if design_size < 6: ((design_size*10)+50)
- elseif design_size < 10: ((design_size*5)+80)
- else: ((design_size*6.5)+65)fi)/360pt#;
-
- notch_cut#:= % maximum breadth above or below notches
- (design_size) * pt#;
-
- bar#:= % lowercase bar thickness
- (if design_size < 10: ((design_size*10)+70)
- else: ((design_size*7.5)+95)fi)/360pt#;
-
- slab#:= % serif and arm thickness
- (if design_size < 10: ((design_size*10)+70)
- else: ((design_size*7.5)+95)fi)/360pt#;
-
- cap_bar#:= % uppercase bar thickness
- (if design_size < 10: ((design_size*10)+70)
- else: ((design_size*7.5)+95)fi)/360pt#;
-
- cap_band#:= % uppercase thickness above/below lobes
- (if design_size < 10: ((design_size*10)+70)
- else: ((design_size*7.5)+95)fi)/360pt#;
-
- cap_notch_cut#:= % max breadth above/below uppercase notches
- (design_size) * pt#;
-
- serif_drop#:= % vertical drop of sloped serifs
- (design_size*3)/360pt#;
-
- stem_corr#:= % for small refinements of stem breadth
- (if design_size < 10: ((design_size*1)+10)
- else: (20)fi)/360pt#;
-
- vair_corr#:= % for small refinements of hairline height
- (if design_size < 10: ((design_size*1)+5)
- else: (15)fi)/360pt#;
-
- apex_corr#:= % extra width at diagonal junctions
- (if design_size < 8: ((design_size*design_size*5) -
- (design_size*95)+440)
- else: (0)fi)/360pt#;
-
- o#:= % amount of overshoot for curves
- (if design_size < 7: (30)
- elseif design_size < 8: ((design_size*10)-40)
- elseif design_size < 10: (40)
- else: ((design_size*5)-10)fi)/360pt#;
-
- apex_o#:= % amount of overshoot for diagonal junctions
- (if design_size < 10: (30)
- else: ((design_size*5)-20)fi)/360pt#;
-
- slant:= % tilt ratio $(\Delta x/\Delta y)$
- 0;
-
- fudge:= % factor applied to weights of heavy characters
- 1;
-
- math_spread:= % extra openness of math symbols
- (if design_size < 10: (-(design_size*20)+250)
- else: (-(design_size*5)+100)fi)/100;
-
- superness:= % parameter for superellipses
- 8/11;
-
- superpull:= % extra openness inside bowls
- 1/8;
-
- beak_darkness:= % fraction of triangle inside beak serifs
- 0.4;
-
- ligs:= % level of ligatures to be included
- 2;
-
- square_dots:= % should dots be square?
- false;
-
- hefty:= % should we try hard not to be overweight?
- false;
-
- serifs:= % should serifs and bulbs be attached?
- true;
-
- monospace:= % should all characters have the same width?
- false;
-
- variant_g:= % should an italic-style g be used?
- false;
-
- low_asterisk:= % should the asterisk be centered at the axis?
- false;
-
- math_fitting:= % should math-mode spacing be used?
- false;
-