% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romsub.mf BY D E KNUTH. % IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED! % This file defines characters that go into a text font when |ligs<=1|. % Character codes \0013--\0015, \0074, and \0076 are generated when |ligs=1|; % in addition, codes \0040, \0042, \0055, \0134, \0137, and \0173--\0175 % are generated, if |ligs=0|. up_arrow=oct"013"; down_arrow=oct"014"; less=ASCII"<"; greater=ASCII">"; if ligs=0: straight_quotes=oct"042"; minus=ASCII"-"; backslash=ASCII"\"; underbar=ASCII"_"; left_brace=ASCII"{"; vertical=ASCII"|"; right_brace=ASCII"}"; fi input sym; cmchar "Straight single quote"; beginchar(oct"015",5u#,asc_height#,0); italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#; adjust_fit(0,0); x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height); if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0); y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb else: pickup fine.nib; pos1(stem,0); pos2(vair,0); top y1=h; filldraw stroke z1e--z2e; fi % stem penlabels(1,2); endchar; iff ligs=0: cmchar "Blank-space sign"; beginchar(oct"040",9u#,bar_height#,.5desc_depth#); italcorr bar_height#*slant-.25u#; adjust_fit(0,0); numeric thin_vair#; thin_vair#=.7vair#; define_whole_blacker_pixels(thin_vair); forsuffixes $=1,2,3,4: penpos$(thin_vair,0); endfor penpos0(thin_vair,90); x0=.5w; y0l=vround(-d-.5thin_vair); x1=x2; x3=x4=w-x1; lft x1l=hround .75u; y1=y4=h; y2=y3=y0; fill z1l---z2l...(x2,y0l)---(x3,y0l)...z3r---z4r ..z4l---(x3l,y0r)--(x2r,y0r)---z1r..cycle; % the stroke penlabels(0,1,2,3,4); endchar;