cmchar "The numeral 0"; beginchar("0",8u#,x_height#,0); italcorr x_height#*slant-.2u#; adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); pickup fine.nib; pos2(vair',270); pos4(vair',90); x2=x4=.5(w-u); bot y2r=vround(-1.5oo); top y4r=h+oo; pos3(curve,0); rt x3r=w-hround max(.6u,1.35u-.5curve); y3=.5h; if serifs: pos1(hair,180); pos0(flare,180); y1=h-min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare); lft x1r=hround .7u; bulb(2,1,0); % bulb pos5(hair,180); lft x5r=hround .5u; y5=min(h-good.y(.5bar_height-.9),y4l+vair'); (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l+.5u); filldraw stroke pulled_super_arc.e(2,3)(.7superpull) & pulled_super_arc.e(3,4)(.5superpull) ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal else: pos1(4/7[vair',flare],-100); lft x1r=hround .6u; bot y1r=vround .82[bar_height,bot y2r]; filldraw stroke term.e(2,1,left,.8,4); % upper terminal pos5(.6[vair',flare],95); lft x5r=hround .5u; y5r=good.y(y5r+1/3[h,bar_height]-y5); y5l:=good.y y5l; x5l:=good.x x5l; forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e; if angle direction 1 of p.e>75: p.e:=z4e{left}..tension atleast.9 and 1..{dir-105}z5e; fi endfor filldraw stroke pulled_super_arc.e(2,3)(.7superpull) & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal penlabels(0,1,2,3,4,5); endchar; def mk_one (expr code, more) = beginchar(code,(7+4more)*u#+max(u#,.5stem#),x_height#,0); italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi; adjust_fit(0,if serifs:-.5u# else: u# fi); numeric shaved_stem; shaved_stem=hround(.4[stem,cap_stem] if hefty:-\\2stem_corr fi); pickup fine.nib; pos2(shaved_stem,180); pos3(shaved_stem,180); lft x2r=lft x3r=hround(2.5u-.5shaved_stem); top y2=h; y3=max(.5bar_height,2vair); if 0