summaryrefslogtreecommitdiff
path: root/fonts/mbboard/source/mbbdigit.mf
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/mbboard/source/mbbdigit.mf')
-rw-r--r--fonts/mbboard/source/mbbdigit.mf229
1 files changed, 229 insertions, 0 deletions
diff --git a/fonts/mbboard/source/mbbdigit.mf b/fonts/mbboard/source/mbbdigit.mf
new file mode 100644
index 0000000000..a471148eeb
--- /dev/null
+++ b/fonts/mbboard/source/mbbdigit.mf
@@ -0,0 +1,229 @@
+% blackboard typefaces by Anthony Phan.
+% file: mbbdigit.mf (Arabic numerals)
+% last modification: 25.10.2001.
+
+def horizontal_rules_list=0.25h,0.5h,0.7h,
+ -body_depth,-desc_depth,x_height,cap_height,asc_height,body_height
+enddef;
+
+use_rule1;
+
+if not(known old_digits): old_digits=false; fi
+
+beginchar("0",8u#+2appr#,
+ if old_digits: x_height# else: fig_height# fi,0);
+ "The numeral 0";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ pickup circle.nib;
+ bbcircle1(apprl-ho,w-apprr+ho,h+o,-o); draw last_path;
+ bbbowl(z1b,z1a,z1d,hThick) last_path;
+ bbbowl(z1b,z1c,z1d,hThick) last_path;
+endchar;
+
+beginchar("1",8u#+2appr#,
+ if old_digits: x_height# else: fig_height# fi,0);
+ "The numeral 1";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ pickup circle.nib;
+ y3r=top y4=top y5=h+o;
+ bot y6=bot y7=0; y1r=vround(0.68h+0.5thin);
+ rt x5=rt x6=hround(0.5[apprl,w-apprr]+0.5(u+hthick+thin));
+ x6-x7=hthick; x3r=lft x4=0.25[lft x7,rt x6];
+ x1r=hround max(lft x7-2.3u,apprl+0.5u);
+ z2r=0.5[z1r,z3r]+0.08(z3r-z1r)rotated -90;
+ tmpp_path:=z1r...z2r{z3r-z1r}...z3r;
+ ortho_penpos1(thin,-direction 0 of tmpp_path);
+ ortho_penpos2(thin,z1r-z3r);
+ ortho_penpos3(thin,-direction 2 of tmpp_path);
+ tmp_path:=z1...z2{z3-z1}...z3;
+ z8=tmp_path intersectionpoint (z7..(x7,y3r));
+ penstroke z1e...z2e{z3e-z1e}...z3e; draw z7..z8;
+ pickup square.nib; draw z4--z5--z6--z7;
+ penlabels(1,2,3); labels(4,5,6,7,8);
+endchar;
+
+beginchar("2",8u#+2appr#,
+ if old_digits: x_height# else: fig_height# fi,0);
+ "The numeral 2";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ pickup circle.nib;
+ x1l=rt x7=w-apprr+ho; x2l=lft x13=apprl; x9=x12=0.5[x13,x7];
+ y1l=y2l=0; bot y7=bot y13=vround 0.7h; top y12=h+o;
+ penpos1(thin,90); penpos2(thin,90); z3l=z2r;
+ adjust_slanted_bar(3l,7,4,6l)((thick+thin)/2,-1);
+ z5r-z4=z8r-z7=z4-z3l;
+ a:=diag_width(thin,z7-z4);
+ penpos3(a,0); penpos5(a,0); penpos6(a,0); penpos8(a,0);
+ numeric a,x,y;
+ (x,y)=(z7-z4)slanted slant; a=angle((y,-x)slanted -slant);
+ z9=whatever[z3,z6];
+ z9l=whatever[z3l,z6l]; z9l=z9+whatever*dir(a);
+ z9r=whatever[z3r,z6r]; z9r=z9+whatever*dir(a);
+ z10=whatever[z5,z8]; z10=z9+whatever*dir(a);
+ z10r=whatever[z5r,z8r]; z10r=z9+whatever*dir(a);
+ z10l=whatever[z5l,z8l]; z10l=z9+whatever*dir(a);
+ x7l=x7; z7l=whatever[z5,z8]; z11-z7=z9-z10;
+ x11l=x11; z11l=whatever[z3,z6];
+ penstroke z1e..z2e; penstroke z3e..z9e; penstroke z5e..z10e;
+ draw z9..controls 2/3[z9,z11l] and 2/3[z11,z11l]..z11 up_to_left z12;
+ draw z10..controls 2/3[z10,z7l] and 2/3[z7,z7l]..z7
+ up_to_left z12 left_to_down z13;
+ square_end13(down); penlabels(range 1 thru 13);
+endchar;
+
+beginchar("3",8u#+2appr#,
+ if old_digits: x_height#,desc_depth# else: fig_height#,0 fi);
+ "The numeral 3";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ pickup circle.nib; top y2=h+o; bot y7=-d-o;
+ bot y4=bot y5=vround 0.5(h-d); y3=0.5[y2,y4];
+ bot y1=vround y3; y6=0.5[y4,y7]; top y8=0.2[-d,h];
+ lft x1-hround 0.2u=lft x8=apprl; rt x3=rt x6-ho=w-apprr;
+ x4=0.5[x8,x3]; x6-x9=hThick; x11=min(x9,x3-thin);
+ lft x5=hround min(apprl+2.75u,x11-1.5thin);
+ tmpp_path:=z5..z4 right_to_up z3 & elliptic_arc(3,2,1);
+ tmp_path:=z5..z4 left_to_down z6& elliptic_arc(6,7,8);
+ bbbowl(z4,z6,z7,hThick) tmp_path;
+ bbbowl(z2,z3,z4,max(0,x3-x.bowl.mid)) tmpp_path;
+ draw tmp_path; draw tmpp_path;
+ square_end1(z1-z1');
+ square_end5(left);
+ square_end8(z8-z8');
+ penlabels(range 1 thru 8,8');
+endchar;
+
+beginchar("4",8u#+2appr#,
+ if old_digits: x_height#,desc_depth# else: fig_height#,0 fi);
+ "The numeral 4";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ pickup circle.nib;
+ rt x2=w-apprr-hround u; top y2=h+o; x3=x2=lft x7;
+ bot y7=if old_digits:0 else: vround 0.25h fi;
+ bot y3=-d; y4=y3; x4=x3-hthick; x5=rt x8=x4; y8=y7=y9=y6;
+ rt x6=w-apprr+hround 0.5u; lft x9=x10l=apprl-hround 0.5u;
+ x11l=0.25[lft x4,rt x3]; y10l=top y9; y11l=top y2;
+ a:=diag_width(thin,z11l-z10l);
+ penpos10(a,0); penpos11(a,0); z1r=z11; penpos2(thin,90);
+ z1l=whatever[z10,z11]; y1l=y2l; z5=whatever[z10,z11];
+ draw z5..z4; penstroke z10e..z11e; penstroke z1e..z2e;
+ pickup square.nib; draw z2--z3--z4; draw z6--z7; draw z8--z9;
+ penlabels(range 1 thru 11);
+endchar;
+
+beginchar("5",8u#+2appr#,
+ if old_digits: x_height#,desc_depth# else: fig_height#,0 fi);
+ "The numeral 5";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ penpos6(thin,-90);
+ pickup circle.nib;
+ top y1=top y2=top y10=h;
+ top y6=x_height-d; bot y8=-d-o;
+ top y9=0.2[-d,h]; y7=0.5[y8,y6];
+ bot y3=bot y4=y5r=min(vround 0.5(h-d),bot y6);
+ lft x9=apprl; rt x1=w-apprr-hround 0.3u;
+ rt x7=w-apprr+ho; lft x2=lft x3=apprl+hround 0.3u;
+ x10-x2=hthick;
+ tmp_path:=elliptic_arc(7,8,9);
+ x4=0.5[x3,x10]; x6=max(0.4[x4,x7],x8);
+ x5r=x4+0.5thin*((1++slant)-slant);
+ z0=(z6r-z5r) xscaled 1/3;
+ ortho_penpos5(thin,z0);
+ tmp_path:=z3--z4--z5{z0}...z6
+ right_to_down z7 & tmp_path;
+ z11=tmp_path intersectionpoint (z10..(x10,y3));
+ bbbowl(z6,z7,z8,hThick) tmp_path;
+ draw subpath (3,infinity) of tmp_path; draw z10..z11;
+ penstroke z5e{z0}...z6e{right};
+ pickup square.nib; draw z1--z2--z3--z4;
+ square_end9(z9-z9');
+ labels(1,2,3,4,7,8,9,9',10,11);
+ penlabels(5,6);
+endchar;
+
+beginchar("6",8u#+2appr#,fig_height#,0);
+ "The numeral 6";
+ italcorr fig_height#*slant-.5u#;
+ numeric t;
+ pickup circle.nib; top y2=h+o;
+ bot y1=min(0.095[h,-d],bot y2-1); bot y4=-d-o;
+ top y6=x_height-d; y3=0.5[y2,y4]; y5=y7=0.5[y4,y6];
+ rt x1=w-apprr-0.74u; lft x3=lft x7=apprl-ho;
+ rt x5=w-apprr+ho; x4=x6=0.5[x3,x5];
+ tmp_path:=reverse elliptic_arc(3,2,1)
+ & z3 down_to_right z4 right_to_up z5
+ up_to_left z6 left_to_down z7;
+ bbbowl(z2,z3,z4,hThick) tmp_path;
+ t=8+xpart(subpath (8,12) of tmp_path intersectiontimes bowl_path);
+ bbbowl(z6,z5,z4,hThick) tmp_path;
+ draw subpath (0,t) of tmp_path;
+ square_end1(z1-z1');
+ labels(1,1',2,3,4,5,6,7);
+endchar;
+
+beginchar("7",8u#+2appr#,
+ if old_digits: x_height#,desc_depth# else: fig_height#,0 fi);
+ "The numeral 7";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ y1r=y2r=h; x1r=apprl; x2r=w-apprr+hround 0.75u;
+ penpos1(thin,90); penpos2(thin,90);
+ z3r=z2l; y6l=y4r=-d; y5l=y3r; x3r-x4r=hround 4.25u;
+ numeric a;
+ a=diag_width(1,z3r-z4r);
+ x4r-x6l=x3r-x5l=(thick+thin)*a;
+ penpos3(thin*a,0); penpos4(thin*a,0);
+ penpos5(thin*a,0); penpos6(thin*a,0);
+ y4a-y4=thin; z4a=whatever[z3,z4]; z6a-z6=z4a-z4;
+ penstroke z1e..z2e; penstroke z3e..z4e;
+ penstroke z5e..z6e; fill z4a--z6a--z6--z4--cycle;
+ penlabels(range 1 thru 8); labels(4a,6a);
+endchar;
+
+beginchar("8",8u#+2appr#,fig_height#,0);
+ "The numeral 8";
+ italcorr fig_height#*slant-.5u#;
+ pickup circle.nib;
+ rt z1=(w-apprr,0.5[y4,y2]); top z2=(0.5[x1,x3],h+o); lft z3=(apprl,y1);
+ bot z4=(x2,vround 0.5(h-d));
+ rt z5=(w-apprr+ho,0.5[y7,y4]); bot z7=(x2,-d-o); lft z6=(apprl-ho,y5);
+ tmpp_path:=superellipse(z1,z2,z3,z4,superness);
+ tmp_path:=superellipse(z5,z4,z6,z7,superness);
+ bbbowl(z4,z6,z7,hThick) tmp_path;
+ bbbowl(z2,z3,z4,max(0,x.bowl.mid-x3)) tmpp_path;
+ bbbowl(z4,z5,z7,hThick) tmp_path;
+ bbbowl(z2,z1,z4,max(0,x1-x.bowl.mid)) tmpp_path;
+ draw tmpp_path; draw tmp_path;
+ labels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("9",8u#+2appr#,
+ if old_digits: x_height#,desc_depth# else: fig_height#,0 fi);
+ "The numeral 9";
+ italcorr if old_digits: x_height#
+ else: fig_height# fi *slant-.5u#;
+ numeric t;
+ pickup circle.nib; bot y2=-d-o;
+ top y1=max(0.095[-d,h],top y2+1); top y4=h+o;
+ bot y6=h-x_height; y3=0.5[y2,y4]; y5=y7=0.5[y4,y6];
+ lft x1=apprl+0.74u; rt x3=rt x7=w-apprr+ho;
+ lft x5=apprl-ho; x4=x6=0.5[x3,x5]; x3-x8=x10-x5=hThick;
+ tmp_path:=reverse elliptic_arc(3,2,1)
+ & z3 up_to_left z4 left_to_down z5
+ down_to_right z6 right_to_up z7;
+ bbbowl(z4,z3,z2,hThick) tmp_path;
+ t=8+xpart(subpath (8,12) of tmp_path intersectiontimes bowl_path);
+ bbbowl(z4,z5,z6,hThick) tmp_path;
+ draw subpath (0,t) of tmp_path;
+ square_end1(z1-z1');
+ labels(1,1',2,3,4,5,6,7);
+endchar;
+
+
+
+