% This file contains the ten digits, as well as `?', % in the so-called roman style. % Codes \060--\071, and \077 are used. "The numeral 0"; call charbegin(`0,9,0,0,phhh,0,phhh.slant-.5pu); if fixwidth=0: new save; save=sqrttwo; new sqrttwo; sqrttwo=sqrt(1.23114413save); % the constant is $2^{3/10}$ fi; hpen; if w2>1.5u: lft2x2=round .75u; else: x2=good2 1.5u; fi; x1=r-x1; % axis of left-right symmetry x3=r-x2; top0y1=hhh+o; bot0y2=-o; y3=y2; call `a darc(1,2,w2); call `b darc(1,3,w2); % bowl if fixwidth=0: new sqrttwo; sqrttwo=save; fi; if ptsize>18: if mode=2: call snip(pa); call snip(px); fi; fi. "The numeral 1"; call charbegin(`1,9,0,0,phhh,0,phhh.slant-.5pu); hpen; x1=x2=good2 .5r; top2y1=hhh+o; bot2y2=0; w2 draw 1..2; % stem call `a serif(2,2,1,-2.25); call `b serif(2,2,1,2.25); % serif if w0=w2: if lcs=0: top0y3=round .9hhh; x3=x1-2.75u-eps; else: top0y3=round .8hhh; x3=lft2x1-2u-eps; fi; else: top0y3=round .9hhh; x3=x1-2.75u-eps; fi; y4=y1; rt2x1=rt0x4; y5=1.2hhh; x4=x5; lpen#; w2 draw (5..)4..3{-1,0}; % erase excess hpen; w0 draw (5..)4..3{-1,0}; % point if ptsize>18: if mode=2: call snip(pa); call snip(px); fi; fi. "The numeral 2"; call charbegin(`2,9,0,0,phhh,0,phhh.slant-.5pu); vpen; rt8x1=round(r-u); lft8x2=round u; bot8y1=0; y1=y2; w8 draw 1..2; % bar if ucs0: x4=x1; top6y4=top8y1+ucs.u+eps; bot6y3=0; if w7=w8: x3=x4; else: x3+.5u=x4; rpen#; w0+.5u draw 3..4; % erase excess fi; hpen; w0 draw 3..4; % serif fi; cpen; bot3y5=2/3hhh; lft3x5=round u; w3 draw 5; % bulb hpen; lft3x5=lft0x6; y5=y6; rt2x20=rt0x9=round(r-u); lft2x20=lft0x8; x7=.5[x6,x9]-.25u; x11=x2; x10=x7; top0y7=hhh+o; y8=y9=.7hhh; bot0y11=0; y10=.3[w8,y9]; lft11x12=lft0x10; y12=y10; w0 draw 6{0,1}..7{1,0}; % shoulder minvr 0.75; minvs 0.75; lpen#; 2u draw 9{0,-1}..12{1.618(x10-x9),y10-y9} ..11{x11-x10,1.618(y11-y10)}; % erase excess hpen; w0 ddraw 7{1,0}..8{0,-1}..10{1.618(x10-x9),y10-y9}..11{x11-x10,1.618(y11-y10)}, 7{1,0}..9{0,-1}..12{1.618(x10-x9),y10-y9}..11{x11-x10,1.618(y11-y10)}; % stroke minvr 0.5; minvs 0.5; if ptsize>18: if mode=2: call snip(pa); call snip(px-po); fi; fi. "The numeral 3"; call charbegin(`3,9,0,0,phhh,0,phhh.slant-.5pu); new w99; w99=round .9[w0,w3]; cpen; bot99y1=.75hhh; if top99y1>.9hhh: new y1; top99y1=.9hhh; fi; lft99x1=round 1.25u; w99 draw 1; % upper bulb top3y2=.3hhh; if bot3y2<.1hhh: new y2; bot3y2=.1hhh; fi; lft3x2=round .75u; w3 draw 2; % lower bulb hpen; lft0x3=lft99x1; lft0x4=lft3x2; y3=y1; y4=y2; x5=.5[x3,x7]; x6=.5[x4,x8]; top0y5=hhh+o; bot0y6=-o; rt1x7=round(r-1.25u); rt2x8=round(r-.75u); y7=.52[y9,y5]; y8=.5[y10,y6]; y9=y10=good6 .52hhh; x10+u=x9=.5r-.25u; w0 draw 3{0,1}..5{1,0}; % shoulder call `a arc(5,7,w1); draw |w1#|7{0,-1}..|w0|10{9(x10-x7),y10-y7}; % upper bowl w0 draw 9..10; % bar call `b arc(9,8,w2); call `c arc(6,8,w2); % lower bowl w0 draw 6{-1,0}..4{0,1}; % tail if ptsize>18: if mode=2: call snip(pa); call snip(px); fi; fi. "The numeral 4"; call charbegin(`4,9,0,0,phhh,0,phhh.slant-.5pu); hpen; x1=x2; if lcs0: if w2>1.5u: rt1x1=round(r-2.25u); else: x1=good1 6u; fi; else: x1=good1 6u; fi; top1y1=hhh+o+oo; bot1y2=0; rt1x1=rt0x3+del; y1=y3; y4=y5=good6 5/6 e; lft0x4=round .5u; w1 draw 1..2; w0 draw 3..1; % stem lpen#; w1 draw 3..4; % erase excess at upper left hpen; w0 draw 3..4; % diagonal if lcs0: rt0x5=rt1x2+1.75u+eps; call `a serif(2,1,1,-1.75); call `b serif(2,1,1,1.75); % serif else: rt0x5=round(r-.75u); fi; w0 draw 4..5; % bar if ptsize>18: if mode=2: call snip(pa); call snip(px); fi; fi. "The numeral 5"; call charbegin(`5,9,0,0,phhh,0,phhh.slant-.5pu); vpen; x1=good0 2u; top8y1=hhh+o; rt6x3=round(r-1.25u); top6y3=hhh+o; x2=.5[x1,x3]; new w99; w99=round .75[w6,w8]; top99y2=round .95hhh; x0=-.5u; x4=r+1.5u; y0=y4=1.5hhh; draw (|w8|0..)1..|w99|2..|w6|3(..4); % arm hpen; x5=x6=x1; top0y5=hhh; top0y6=round .5hhh; x7=.5r-.25u; top0y7=round .61803hhh; x9=x7-.25u; bot0y9=-o; rt2x8=round(r-u); y8=.5[y7,y9]; w0 draw 5..6; % stem draw 6{x7-x6,3(y7-y6)}..7{1,0}; % left part of bowl call `a arc(7,8,w2); call `b arc(9,8,w2); % right part of bowl lft0x10=lft3x11=round u; y10=y11=1/3 y6; w0 draw 9{-1,0}..10{0,1}; % tail cpen; w3 draw 11; % bulb if ptsize>18: if mode=2: call snip(pa); call snip(px+po); fi; fi. "The numeral 6"; call charbegin(`6,9,0,0,phhh,0,phhh.slant-.5pu); hpen; if w2>1.5u: lft2x1=round .75u; rt2x2=round(r-.75u); else: x1=good2 1.5u; x2=good2(r-1.5u); fi; new w99; w99=round .8[w0,w3]; cpen; top99y3=8/9hhh; if y3<.8hhh: new y3; y3=.8hhh; fi; rt99x3=rt0x4=round(r-1.25u); y4=y3; w99 draw 3; % bulb hpen; x20=good2(x1+.1u); x5-.25u=x6=x10=.5[x20,x2]; top0y5=hhh+o; x11=.8[x5,x3]; y11=.8[y3,y5]; w0 draw 4{0,1}..11{x5-x4,y5-y4}..5{-1,0}; % shoulder bot0y2=-o; top0y6=round .6hhh; y20=.5[y2,y6]; y2=y10; rt0x7=rt2x20; y7=y20; call `a darc(6,2,w2); % right bowl new w99; w99=.5[w0,w2]; rt99x8=rt0x22; x8=1/sqrttwo[x6,x20]; lft99x8=lft0x21; y21=y22=y8; lft0x23=lft2x1; rt0x24=rt2x1; y8=1/sqrttwo[y20,y10]; y23=y24=y1=.5[y5,y10]; x9=1/sqrttwo[x5,x1]; y9=1/sqrttwo[y1,y5]; x27=x22; y27=1/sqrttwo[y7,y6]; rt0x26=rt99x9; lft0x25=lft99x9; y26=y25=y9; w0 draw 6{-1,0}..27{x7-x6,y7-y6}..7{0,-1}; % upper left bowl if w0=w2: draw 5{-1,0}..9{x20-x5,y20-y5}..20{0,-1}..8{x10-x20,y10-y20}..10{1,0}; else: ddraw 5{-1,0}..26{x7-x5,y7-y5}..7{0,-1}..22{x10-x7,y10-y7}..10{1,0}, 5{-1,0}..25{x23-x5,y23-y5}..23{0,-1}.. 21{x10-x20+.5(w2-w0),y10-y20}..10{1,0}; % stroke fi; if ptsize>18: if mode=2: call snip(pa); call snip(px+po); fi; fi. "The numeral 7"; call charbegin(`7,9,0,0,phhh,0,phhh.slant-.25pu); vpen; lft8x1=round .75u; rt8x2=round(r-.75u); top8y1=hhh; y2=y1; w8 draw 1..2; % bar if ucs0: x4=x1; bot6y4=bot8y1-ucs.u-eps; top6y3=hhh; if w7=w8: x3=x4; else: x3-.5u=x4; lpen#; w0+.5u draw 3..4; % erase excess fi; hpen; w0 draw 3..4; % serif fi; cpen; bot2y7=-o; bot2y6=1/9hhh; x6=x7=good2 4u; w2 draw 7..6; % bulb hpen; x5=5.5u; y5=2/3hhh; top0y8=hhh; x8=x2; rpen#; 2u draw 8{x5-x8,5/7(y5-y8)}..5(..6); % erase excess hpen; draw |w0|8{x5-x8,5/7(y5-y8)}..|w0#|5..|w2#|6{0,-1}; % stroke if ptsize>18: if mode=2: call snip(pa); call snip(px); fi; fi. "The numeral 8"; call charbegin(`8,9,0,0,phhh,0,phhh.slant-.5pu); new w98,w99,ss; w99=round 1/3[w0,w1]; hpen; lft99x1=round u; x2=r-x1; lft99x3=round .75u; x4=r-x3; x5=r-x5=x6=x7; top0y5=hhh+o; y6=.52hhh; bot0y7=-o; w98=2[w7,w8]; if w6=w98: ss=0; y1=y2; y3=y4; else: ss=hhh/(18u); y2=y1+.02hhh; y3=y4-.02hhh; fi; call `a sdraw(5,1,6,4,7,w99,w98,-ss); % upper left and lower right strokes w99 draw 5{1,0}..2{0,-1}..6{-1,-.618ss}.. 3{0,-1}..7{1,0}; % upper right and lower left strokes if ptsize>18: if mode=2: call snip(pa); call snip(px); fi; fi. "The numeral 9"; call charbegin(`9,9,0,0,phhh,0,phhh.slant-.5pu); hpen; if w2>1.5u: rt2x1=round(r-.75u); lft2x2=round .75u; else: x1=good2(r-1.5u); x2=good2 1.5u; fi; new w99; w99=round .75[w0,w3]; cpen; bot99y3=.1hhh; if y3>1/6hhh: new y3; y3=1/6hhh; fi; lft99x3=lft0x4=round 1.5u; y4=y3; w99 draw 3; % bulb hpen; x20=good2(x1-.1u); x5+.25u=x6=x10=.5[x20,x2]; bot0y5=-o; w0 draw 4{0,-1}..5{1,0}; % tail top0y2=hhh+o; bot0y6=round 1/3hhh; y20=.5[y2,y6]; y10=y2; lft0x7=lft2x20; y7=y20; call `a darc(6,2,w2); % left bowl new w99; w99=1/2[w0,w2]; lft99x8=lft0x22; x8=1/sqrttwo[x6,x20]; rt99x8=rt0x21; y21=y22=y8; rt0x23=rt2x1; lft0x24=lft2x1; y8=1/sqrttwo[y20,y10]; y23=y24=y1=.5[y5,y10]; x9=1/sqrttwo[x5,x1]; y9=1/sqrttwo[y1,y5]; x27=x22; y27=1/sqrttwo[y7,y6]; lft0x26=lft99x9; rt0x25=rt99x9; y26=y25=y9; w0 draw 6{1,0}..27{x7-x6,y7-y6}..7{0,1}; % lower right bowl if w0=w2: draw 5{1,0}..9{x20-x5,y20-y5}..20{0,1}..8{x10-x20,y10-y20}..10{-1,0}; else: ddraw 5{1,0}..26{x7-x5,y7-y5}..7{0,1}..22{x10-x7,y10-y7}..10{-1,0}, 5{1,0}..25{x23-x5,y23-y5}..23{0,1}.. 21{x10-x20-.5(w2-w0),y10-y20}..10{-1,0}; % stroke fi; if ptsize>18: if mode=2: call snip(pa-po-pw); call snip(px); fi; fi.