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