perm filename ROMAND.MF[1,3]2 blob sn#520984 filedate 1980-07-07 generic text, type C, neo UTF8
C00001 00001
C00002 00002	% This file contains the ten digits, as well as `&' and `?',
C00003 00003	"Ampersand"
C00005 00004	"The numeral 0"
C00006 00005	"The numeral 1"
C00007 00006	"The numeral 2"
C00009 00007	"The numeral 3"
C00011 00008	"The numeral 4"
C00012 00009	"The numeral 5"
C00014 00010	"The numeral 6"
C00016 00011	"The numeral 7"
C00017 00012	"The numeral 8"
C00018 00013	"The numeral 9"
C00020 00014	"Question mark"
C00023 ENDMK
% This file contains the ten digits, as well as `&' and `?',
% in the so-called roman style.
% Codes \¬046, \¬060--\¬071, and \¬077 are used.
call charbegin('046,14,0,0,ph,0,.5pe.slant+.5pw-.5pu);
hpen; x1=r-2.5u; top0y1=m;
x2=4u; y2=.015[y3,e]; x3=3u; bot0y3=-o;
x4=good2 1.5u; y4=1/7[y3,y7]; x5=5.25u; y5=.5[y3,y7];
x6=good0 8.5u; y6=.8[y3,y7]; x7=6.5u; top0y7=h+o;
x8=good1 4u; y8=y6; x9=x8+u; y9=y5; x10=r-5u; y10=.015[y3,y7];
x11=x10+1.5u; y11=y3; x12=good0(r-u); y12=.5[y11,e];
if s=0: y0=.1[y1,y2];
else: y0=y1-s;
w0 draw 1..0;	% short diagonal
draw 0{x0-x1,y0-y1}..|w0#|2..|2/3[w0,w2]|3{-1,0}..|w2#|4{0,1}..
	6{0,1}..7{-1,0};	% lower bowl and right part of upper bowl
call `a arc(7,8,w1);	% left part of upper bowl
draw |w1|8{0,-1}..9..|w1#|10..|w0#|11{1,0}..12{0,1};	% long diagonal
if lcs≠0: call `b dserif(1,0,0,-1.25lcs);
	call `c dserif(1,0,0,1.25lcs);	% serif
"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}$
if w2>1.5u: lft2x2=round .75u;
else: x2=good2 1.5u;
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;
"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;
else: top0y3=round .9hhh; x3=x1-2.75u-eps;
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
"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 ucs≠0: 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
	hpen; w0 draw 3..4;	% serif
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-.5u; top0y7=hhh+o; y8=y9=.7hhh; bot0y11=0; y10=.4[y11,y9];
lft11x12=lft0x10; y12=y10;
w0 draw 6{0,1}..7{1,0};	% shoulder
lpen#; 2u draw 9{0,-1}..12{2(x10-x9),y10-y9}
	..11{x11-x10,4(y11-y10)};	% erase excess
hpen; w0 ddraw 7{1,0}..8{0,-1}..10{2(x10-x9),y10-y9}..11{x11-x10,4(y11-y10)},
	7{1,0}..9{0,-1}..12{2(x10-x9),y10-y9}..11{x11-x10,4(y11-y10)}.	% stroke
"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;
lft99x1=round 1.25u; w99 draw 1;	% upper bulb
if bot3y2<.1hhh: new y2; bot3y2=.1hhh;
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
"The numeral 4";
call charbegin(`4,9,0,0,phhh,0,phhh.slant-.5pu);
hpen; x1=x2;
if lcs≠0: if w2>1.5u: rt1x1=round(r-2.25u);
	else: x1=good1 6u;
else: x1=good1 6u;
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 lcs≠0: 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);
w0 draw 4..5.	% bar
"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
"The numeral 6";
call charbegin(`6,9,0,0,phhh,0,phhh.slant-.5pu);
if w2>1.5u: lft2x1=round .75u; rt2x2=round(r-.75u);
else: x1=good2 1.5u; x2=good2(r-1.5u);
new w99; w99=round .8[w0,w3];
cpen; top99y3=8/9hhh;
if y3<.8hhh: new y3; y3=.8hhh;
rt99x3=rt0x4=round(r-1.25u); y4=y3;
w99 draw 3;	% bulb
hpen; x20=good2(x1+.1u); x5=x6=x10=.5[x7,x2]; top0y5=hhh+o;
x11=.8[x5,x3]; y11=.8[y3,y5];
bot0y2=-o; top0y6=round .6hhh; y20=.5[y2,y6];
y7=y2=y10; rt0x7=rt2x20;
w0 draw 4{0,1}..11{x5-x4,y5-y4}..5{-1,0};	% shoulder
call `a darc(6,7,w0); call `b darc(6,2,w2);	% bowl
new w99; w99=.5[w0,w2];
rt99x8=rt0x22; x22=1/sqrttwo[x6,x7]; lft99x8=lft0x21; y21=y22=y8;
lft0x23=lft2x1; rt0x24=rt2x1;
y8=1/sqrttwo[y20,y7]; y23=y24=y1=.5[y5,y10];
call `c arc(5,1,w2);	% upper stroke
w0 ddraw  23{0,-1}..21{x6-x7,y7-y20}..10{1,0},
	24{0,-1}..22{x6-x7,y7-y20}..10{1,0}.	% lower stroke
"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 ucs≠0: 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
	hpen; w0 draw 3..4;	% serif
cpen; bot2y7=-o; bot2y6=1/6 m; x6=x7=good2 4u;
w2 draw 7..6;	% bulb
hpen; x5=5.5u; y5=m; 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
"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;
if w6=w98: ss=0; y1=y2; y3=y4;
else: ss=hhh/(18u); y2=y1+.02hhh; y3=y4-.02hhh;
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
"The numeral 9";
call charbegin(`9,9,0,0,phhh,0,phhh.slant-.5pu);
if w2>1.5u: rt2x1=round(r-.75u); lft2x2=round .75u;
else: x1=good2(r-1.5u); x2=good2 1.5u;
new w99; w99=round .75[w0,w3];
cpen; bot99y3=.1hhh;
if y3>1/6hhh: new y3; y3=1/6hhh;
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];
y7=y10=y2; lft0x7=lft2x20;
call `a darc(6,7,w0); call `b darc(6,2,w2);	% bowl
new w99; w99=2/3[w0,w2];	% intermediate width in \\{darc} routine
lft99x8=lft0x22; x22=1/sqrttwo[x6,x7]; rt99x8=rt0x21; y21=y22=y8;
rt0x23=rt2x1; lft0x24=lft2x1;
y8=1/sqrttwo[y20,y7]; y23=y24=y1=.5[y5,y10];
call `c arc(5,1,w2);	% lower stroke
w0 ddraw  23{0,1}..21{x6-x7,y7-y20}..10{-1,0},
	24{0,1}..22{x6-x7,y7-y20}..10{-1,0}.	% upper stroke
"Question mark";
call charbegin('077,7,0,0,ph,0,.8ph.slant+.5pwii-pu);
new w99,w98; w98=round .4[w6,w8];
if w3<w0 sqrt 2: w99=w0 sqrt2;
else: w99=w3;
cpen; bot99y1=0; x1=good0 .5(r-u);
w99 draw 1;	% dot
lft3x2=lft0x3=round u; y2=y3=.8[top99y1,h]; top6y4=h+o; 
w3 draw 2;	% bulb
hpen; x4=.5(r-u); x5=good2(r-1.5u); y5=y2;
new save; save=sqrttwo; new sqrttwo; sqrttwo=sqrt 1.3save;
w0 draw 3{0,1}..4{1,0}; call `a arc(4,5,w2);	% bowl
new sqrttwo; sqrttwo=save;
lft0x11=lft2x5; rt0x12=rt2x5; y11=y12=y5;
cpen; top6y9=top98y6; bot6y10=bot98y6;
x9=x10=x7+u; x7=x8=x13=x1; y13-y7=y10-y9;
h-y2=y2-top6y9; top6y7=top98 1/3[y6,y8]; bot6y8=.25[top99y1,m]+1;
hpen; w0 ddraw 11{0,-1}..9{-1,0}..7{0,-1},
	12{0,-1}..10{-1,0}..13{0,-1};	% link and stem
draw 13..8.	% point