summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-01-25 17:16:35 +0000
committerKarl Berry <karl@freefriends.org>2008-01-25 17:16:35 +0000
commit333f6bf34acf5648c74266de25c378fe7a5dc671 (patch)
tree6b4cba109576ef20ba79950479e125900e4c8316 /Master/texmf-dist
parent0791b5dc212ba4f2b90eb3900f61f76500f4cbf5 (diff)
rm ocr-a, nosell
git-svn-id: svn://tug.org/texlive/trunk@6412 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf1009
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf2133
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf10
9 files changed, 0 insertions, 3204 deletions
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf
deleted file mode 100644
index 8477ca871b5..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf
+++ /dev/null
@@ -1,1009 +0,0 @@
-% OCR-A Optical Character Recognition Font
-%
-% Coded in METAFONT84 by Tor Lillqvist, VTT/ATK (Technical Research Centre
-% of Finland, Computing Services)
-% (tml@fingate.BITNET, tml@santra.UUCP, mcvax!santra!tml)
-%
-% Based on ISO Recommendation R1073, 1st ed., May 1969 (probably
-% obsolete by now).
-%
-% Labels are in French :-)
-%
-
-mode_setup;
-
-letter_fit# := 1.25T#;
-
-define_whole_pixels(W,H,L,T,letter_fit);
-
-def adjust_fit =
- l:=-letter_fit;
- interim xoffset:=-l;
- charwd:=charwd+2letter_fit#;
- r:=l+hround(charwd*hppp);
- w:=r-letter_fit;
-enddef;
-
-pickup pencircle scaled T;
-OCRpen := savepen;
-
-extra_beginchar := extra_beginchar & "adjust_fit;";
-
-extra_endchar := extra_endchar & "penlabels(range 1 thru 20);";
-
-% The join macro performs the joining of two strokes so that the
-% pen centre curvature radius is join_radius.
-
-tertiarydef p join q =
- begingroup
- pair ipq_; ipq_ := p intersectionpoint q;
-
- pair dirv[];
- dirv0 = dir angle direction (length p) of p;
- dirv1 = dir angle direction 0 of q;
- if length (dirv1 - dirv0) < 1/10:
- p .. q
- else:
- path par[];
- k_ := if ypart (dirv1 rotated -angle dirv0) > 0: 90 else: -90 fi;
- forsuffixes $=0,1:
- par$ := ((ipq_ - (20join_radius*dirv$))--
- (ipq_ + (20join_radius*dirv$)))
- shifted ((join_radius*dirv$) rotated k_);
- endfor;
- numeric pt_,qt_;
- (pt_,qt_) = par0 intersectiontimes par1;
- if pt_ < 0: errmessage "No intersection curvature center found"; fi
-
- pair icc_; icc_ = point pt_ of par0;
- numeric cp_,cpp_,cq_,cqp_;
- (cp_, cpp_) = p intersectiontimes
- (icc_--icc_+(2join_radius*dirv0 rotated -k_));
- (cq_, cqp_) = q intersectiontimes
- (icc_--icc_+(2join_radius*dirv1 rotated -k_));
-
- subpath (0,cp_) of p ..
- (icc_ + join_radius*unitvector(dirv0-dirv1)) ..
- subpath (cq_, length q) of q
- fi
- endgroup
-enddef;
-
-def fill_corners(text t) =
- begingroup
- forsuffixes $=t:
- fill unitsquare shifted (-.5,-.5) scaled T shifted z$;
- endfor
- endgroup
-enddef;
-
-% The angle_fill_corner fills the corners like in the characters M and N
-
-def angle_fill_corner(suffix a,b,c) =
- begingroup
- save p; path p.q,p.w,p.e,p.r;
- p.q = (z.a--z.b+(z.b-z.a)) shifted (T/2*unitvector (z.b-z.a) rotated 90);
- p.w = (z.a--z.b+(z.b-z.a)) shifted (T/2*unitvector (z.b-z.a) rotated -90);
- p.e = (z.b-(z.c-z.b)--z.c) shifted (T/2*unitvector (z.c-z.b) rotated 90);
- p.r = (z.b-(z.c-z.b)--z.c) shifted (T/2*unitvector (z.c-z.b) rotated -90);
-
- save q; pair q.u,q.l;
- q.u = p.q intersectionpoint p.e;
- q.l = p.w intersectionpoint p.r;
-
- fill point 0 of p.q -- q.u -- point 1 of p.e -- point 1 of p.r --
- q.l -- point 0 of p.w -- cycle;
- endgroup
-enddef;
-
-% The curvature radiuses used in some characters
-
-r1# = H#/16 * ((7H#)/(6W#) + sqrt(((7H#)/(6W#))**2 + 1));
-r2# = W#/8 * ((6W#)/(7H#) + sqrt(((6W#)/(7H#))**2 + 1));
-r3# = W#/8 * (1 - H#/(2W#) + sqrt((H#/(2W#))**2 + 1));
-r4# = H#/16 * (1 - (4W#)/(3H#) + sqrt(((4W#)/(3H#))**2 + 1));
-r5# = H#/16 * (1 - (5H#)/(6W#) + sqrt(((5H#)/(6W#))**2 + 1));
-r6# = W#/8 * (1 - (6W#)/(5H#) + sqrt(((6W#)/(5H#))**2 + 1));
-
-define_pixels(r1,r2,r3,r4,r5,r6);
-
-def OCRchar(expr code, wd, ht) =
- beginchar(code, wd, ht, 0);
- pickup OCRpen;
-enddef;
-
-OCRchar("1", W#, H#); "Chiffre UN";
- x1 = 0; y1 = 0;
- x2 = W; y2 = 0;
- x3 = W; y3 = 3/8H;
- x4 = W/2; y4 = H;
- x5 = 0; y5 = H;
-
- draw z1--z2--z3; draw .5[z1,z2]--z4--z5;
- fill_corners(4);
-endchar;
-
-OCRchar("2", W#, H#); "Chiffre DEUX";
- x1 = 0; y1 = H;
- x2 = W; y2 = H;
- x3 = W; y3 = H/2;
- x4 = 0; y4 = H/2;
- x5 = 0; y5 = 0;
- x6 = W; y6 = 0;
-
- join_radius := T/2;
- draw (z1--z2) join ((z2--z3) join
- ((z3--z4) join (z4--z5--z6)));
- fill_corners(5);
-endchar;
-
-OCRchar("3", W#, H#); "Chiffre TROIS";
- x1 = 0; y1 = H;
- x2 = W; y2 = y1;
- x3 = x2; y3 = H/2;
- x4 = W/4; y4 = y3;
- x5 = x2; y5 = 0;
- x6 = x1; y6 = y5;
-
- join_radius := T/2;
- draw (z1--z2) join (z2--.6[z2,z3]);
- join_radius := T;
- draw (.4[z2,z3]--z3) join (z3--z4);
- draw (z4--z3) join (z3--.6[z3,z5]);
- join_radius := T/2;
- draw (.4[z3,z5]--z5) join (z5--z6);
-endchar;
-
-OCRchar("4", 7/8W#, H#); "Chiffre QUATRE";
- x1 = 0; y1 = H;
- x2 = x1; y2 = 3/8H;
- x3 = 7/8W; y3 = y2;
- x4 = 3/4W; y4 = 0;
- x5 = x4; y5 = 7/8H;
-
- draw z1--z2--z3; draw z4--z5;
-endchar;
-
-OCRchar("5", W#, H#); "Chiffre CINQ";
- x1 = 0; y1 = 1/16H;
- x2 = 1/4W; y2 = 0;
- x3 = W; y3 = y2;
- x4 = x3; y4 = 1/2H;
- x5 = x2; y5 = y4;
- x6 = x2; y6 = H;
- x7 = x3; y7 = y6;
-
- join_radius := T;
- draw (z1--z2) join (z2--.6[z2,z3]);
- join_radius := T/2;
- draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
- draw (.4[z3,z4]--z4) join (z4--z5--z6--z7);
- fill_corners(5,6);
-endchar;
-
-OCRchar("6", W#, H#); "Chiffre SIX";
- x1 = 1/8W; y1 = H;
- x2 = 0; y2 = y1;
- x3 = x2; y3 = 0;
- x4 = W; y4 = y3;
- x5 = x4; y5 = 3/8H;
- x6 = x2; y6 = y5;
-
- draw z1--z2--z3--z4--z5--z6;
-endchar;
-
-OCRchar("7", W#, H#); "Chiffre SEPT";
- x1 = 0; y1 = 15/16H;
- x2 = x1; y2 = H;
- x3 = W; y3 = y2;
- x4 = x3; y4 = 5/8H;
- x5 = 1/2W; y5 = 3/8H;
- x6 = x5; y6 = 0;
-
- draw z1--z2--z3--z4--z5--z6;
- fill_corners(3);
-endchar;
-
-OCRchar("8", W#, H#); "Chiffre HUIT";
- x1 = 0; y1 = 0;
- x2 = W; y2 = y1;
- x3 = x2; y3 = 1/2H;
- x4 = x1; y4 = y3;
- x5 = 1/4W; y5 = y3;
- x6 = 3/4W; y6 = y5;
- x7 = x6; y7 = H;
- x8 = x5; y8 = y7;
-
- join_radius := T/2;
- draw (.4[z1,z2]--z2) join (z2--.6[z2,z3]);
- draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
- draw (.4[z3,z4]--z4) join (z4--.6[z4,z1]);
- draw (.4[z4,z1]--z1) join (z1--.6[z1,z2]);
- draw z6--z7--z8--z5;
-endchar;
-
-OCRchar("9", W#, H#); "Chiffre NEUF";
- x1 = 7/8W; y1 = 0;
- x2 = W; y2 = y1;
- x3 = x2; y3 = H;
- x4 = 0; y4 = y3;
- x5 = x4; y5 = 5/8H;
- x6 = x2; y6 = y5;
-
- draw z1--z2--z3--z4--z5--z6;
-endchar;
-
-OCRchar("0", W#, H#); "Chiffre ZERO";
- x1 = 0; y1 = 0;
- x2 = W; y2 = y1;
- x3 = x2; y3 = H;
- x4 = x1; y4 = y3;
-
- join_radius := T/2;
- draw (.4[z1,z2]--z2) join (z2--.6[z2,z3]);
- draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
- draw (.4[z3,z4]--z4) join (z4--.6[z4,z1]);
- draw (.4[z4,z1]--z1) join (z1--.6[z1,z2]);
-endchar;
-
-OCRchar(0, W#, H#); "Symbole CROCHET";
- x1 = 0; y1 = 3/8H;
- x2 = x1; y2 = 0;
- x3 = 1/2W; y3 = y2;
- x4 = x3; y4 = H;
- x5 = W; y5 = y4;
- x6 = x5; y6 = 5/8H;
-
- draw z1--z2--z3--z4--z5--z6;
- fill_corners(2,3,4,5);
-endchar;
-
-OCRchar(1, W#, H#); "Symbole FOURCHETTE";
- x1 = 0; y1 = H;
- x2 = x1; y2 = 1/2H;
- x3 = W; y3 = y2;
- x4 = x3; y4 = y1;
- x5 = 1/2W; y5 = y2;
- x6 = x5; y6 = 0;
-
- draw z1--z2--z3--z4;
- fill_corners(2,3);
- draw z5--z6;
-endchar;
-
-OCRchar(2, W#, H#); "Symbole CHAISE";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = 1/2H;
- x3 = W; y3 = y2;
- x4 = x3; y4 = y1;
- x5 = x3; y5 = H;
-
- draw z1--z2--z3;
- fill_corners(2);
- draw z4--z5;
-endchar;
-
-beginchar("|", 0, (H#+L#)/2, (L#-H#)/2); "Trait vertical";
- pickup OCRpen;
- x1 = 0; y1 = (H-L)/2;
- x2 = x1; y2 = (H+L)/2;
-
- cutdraw z1--z2;
-endchar;
-
-OCRchar("A", W#, H#); "Lettre A";
- x1 = 0; y1 = 0;
- x2 = 1/2W; y2 = H;
- x3 = W; y3 = y1;
- z4 = 1/4[z1,z2];
- z5 = 1/4[z3,z2];
-
- draw z1--z2--z3; draw z4--z5;
-endchar;
-
-OCRchar("B", W#, H#); "Lettre B";
- x1 = 0; y1 = 0;
- x2 = W; y2 = y1;
- x3 = x2; y3 = 1/2H;
- x4 = x1; y4 = y3;
- x5 = x2; y5 = H;
- x6 = x1; y6 = y5;
-
- join_radius := 3/2T;
- draw (z1--z2) join (z2--.5[z2,z3]);
- draw (.5[z2,z3]--z3) join (z3--z4);
- draw (z4--z3) join (z3--.5[z3,z5]);
- draw (.5[z3,z5]--z5) join (z5--z6);
- draw z1--z6;
- fill_corners(1,6);
-endchar;
-
-OCRchar("C", W#, H#); "Lettre C";
- x1 = W; y1 = H;
- x2 = 3/8W; y2 = y1;
- x3 = 0; y3 = y4 + 1/8H;
- x4 = x3; y4 = 7/16H;
- x5 = x2; y5 = 0;
- x6 = x1; y6 = y5;
- z7 = (z2--z3+(z3-z2)) intersectionpoint (z5--z4+(z4-z5));
-
- join_radius := T;
- draw (z1--z2) join (z2--.6[z2,z3]);
- draw (z6--z5) join (z5--.6[z5,z4]);
- join_radius := r1;
- draw (.4[z2,z3]--z7) join (z7--.6[z4,z5]);
-endchar;
-
-OCRchar("D", W#, H#); "Lettre D";
- x1 = 0; y1 = 0;
- x2 = 1/4W; y2 = y1;
- x3 = 5/8W; y3 = y1;
- x4 = W; y4 = 7/16H;
- x5 = x4; y5 = y4 + 1/8H;
- x6 = x3; y6 = H;
- x7 = x2; y7 = y6;
- x8 = x1; y8 = y6;
- z9 = (z3--z4+(z4-z3)) intersectionpoint (z6--z5+(z5-z6));
-
- join_radius := T;
- draw (z1--z3) join (z3--.6[z3,z4]);
- draw (z8--z6) join (z6--.6[z6,z5]);
- join_radius := r1;
- draw (.4[z3,z4]--z9) join (z9--.6[z5,z6]);
- draw z2--z7;
-endchar;
-
-OCRchar("E", W#, H#); "Lettre E";
- x1 = W; y1 = 0;
- x2 = 0; y2 = y1;
- x3 = x2; y3 = 1/2H;
- x4 = 1/2W; y4 = y3;
- x5 = x2; y5 = H;
- x6 = x1; y6 = y5;
-
- draw z1--z2--z3--z4; draw z3--z5--z6;
- fill_corners(2,5);
-endchar;
-
-OCRchar("F", W#, H#); "Lettre F";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = 5/8H;
- x3 = 3/4W; y3 = y2;
- x4 = x1; y4 = H;
- x5 = W; y5 = y4;
-
- draw z1--z2--z3; draw z2--z4--z5;
- fill_corners(4);
-endchar;
-
-OCRchar("G", W#, H#); "Lettre G";
- x1 = 5/8W; y1 = 3/8H;
- x2 = W; y2 = y1;
- x3 = x2; y3 = 0;
- x4 = 0; y4 = y3;
- x5 = x4; y5 = 5/8H;
- x6 = 1/2W; y6 = H;
- x7 = x2; y7 = y6;
-
- join_radius := T;
- draw (z1--z2--z3) join (z3--.6[z3,z4]);
- draw (.4[z3,z4]--z4) join (z4--.6[z4,z5]);
- join_radius := 3/2T;
- draw (.4[z4,z5]--z5) join (z5--.6[z5,z6]);
- join_radius := T;
- draw (.4[z5,z6]--z6) join (z6--z7);
- fill_corners(2);
-endchar;
-
-OCRchar("H", W#, H#); "Lettre H";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = H;
- x3 = W; y3 = y1;
- x4 = x3; y4 = y2;
-
- draw z1--z2; draw z3--z4; draw .5[z1,z2]--.5[z3,z4];
-endchar;
-
-OCRchar("I", W#, H#); "Lettre I";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = H;
- x3 = W; y3 = y1;
- x4 = x3; y4 = y2;
-
- draw z1--z3; draw z2--z4; draw .5[z1,z3]--.5[z2,z4];
-endchar;
-
-OCRchar("J", 3/4W#, H#); "Lettre J";
- x1 = 0; y1 = 3/8H;
- x2 = x1; y2 = 0;
- x3 = 3/4W; y3 = y2;
- x4 = x3; y4 = H;
-
- join_radius := T;
- draw (z1--z2) join ((z2--z3) join (z3--z4));
-endchar;
-
-OCRchar("K", W#, H#); "Lettre K";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = H;
- x3 = W; y3 = y1;
- x4 = x3; y4 = y2;
-
- draw z1--z2; draw .5[z1,z2]--z3; draw .5[z1,z2]--z4;
-endchar;
-
-OCRchar("L", W#, H#); "Lettre L";
- x1 = 0; y1 = H;
- x2 = x1; y2 = 0;
- x3 = W; y3 = y2;
-
- draw z1--z2--z3;
- fill_corners(2);
-endchar;
-
-OCRchar("M", W#, H#); "Lettre M";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = H;
- x3 = 1/8W; y3 = y2;
- x4 = 1/2W; y4 = y5+1/16H;
- x5 = x4; y5 = 5/8H;
- x6 = W-1/8W; y6 = y2;
- x7 = W; y7 = y2;
- x8 = x7; y8 = y1;
-
- draw z1--z2--z3--z4--z5--z4--z6--z7--z8;
- fill_corners(2,7);
- angle_fill_corner(2,3,4);
- angle_fill_corner(4,6,7);
-endchar;
-
-OCRchar("N", W#, H#); "Lettre N";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = H;
- x3 = 1/8W; y3 = y2;
- x4 = W-1/8W; y4 = y1;
- x5 = W; y5 = y1;
- x6 = x5; y6 = y2;
-
- draw z1--z2--z3--z4--z5--z6;
- fill_corners(2,5);
- angle_fill_corner(2,3,4);
- angle_fill_corner(3,4,5);
-endchar;
-
-OCRchar("O", W#, H#); "Lettre O";
- x1 = 0; y1 = 7/16H;
- x2 = 3/8W; y2 = 0;
- x3 = x2+1/4W; y3 = y2;
- x4 = W; y4 = y1;
- x5 = x4; y5 = y4+1/8H;
- x6 = x3; y6 = H;
- x7 = x2; y7 = y6;
- x8 = x1; y8 = y5;
- z10 = (z1--z2+(z2-z1)) intersectionpoint (z3+(z3-z4)--z4);
- z11 = (z3--z4+(z4-z3)) intersectionpoint (z5+(z5-z6)--z6);
- z12 = (z5--z6+(z6-z5)) intersectionpoint (z7+(z7-z8)--z8);
- z13 = (z7--z8+(z8-z7)) intersectionpoint (z1+(z1-z2)--z2);
-
- join_radius := r2;
- draw (.4[z13,z10]--z10) join (z10--.6[z10,z11]);
- draw (.4[z11,z12]--z12) join (z12--.6[z12,z13]);
- join_radius := r1;
- draw (.4[z10,z11]--z11) join (z11--.6[z11,z12]);
- draw (.4[z12,z13]--z13) join (z13--.6[z13,z10]);
- picture O_char; O_char := currentpicture;
-endchar;
-
-OCRchar("P", W#, H#); "Lettre P";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = 7/16H;
- x3 = x1; y3 = H;
- x4 = W; y4 = y3;
- x5 = x4; y5 = y2;
-
- join_radius := T;
- draw (z1--z3--z4) join (z4--.6[z4,z5]);
- draw (.4[z4,z5]--z5) join (z5--z2);
- fill_corners(3);
-endchar;
-
-OCRchar("Q", W#, H#); "Lettre Q";
- x1 = 0; y1 = 0;
- x2 = 1/4W; y2 = y1;
- x3 = W; y3 = 3/8H;
- x4 = x3; y4 = H;
- x5 = W-1/4W; y5 = y4;
- x6 = x1; y6 = 5/8H;
- x7 = 1/2W; y7 = y3;
- x8 = x5; y8 = y1;
- x9 = x3; y9 = y1;
- z10 = (z6--z1+(z1-z6)) intersectionpoint (z2-(z3-z2)--z3);
- z11 = (z3--z4+(z4-z3)) intersectionpoint (z5-(z6-z5)--z6);
-
- join_radius := r3;
- draw (.4[z6,z10]--z10) join (z10--.6[z10,z3]);
- draw (.4[z3,z11]--z11) join (z11--.6[z11,z6]);
- join_radius := T;
- draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
- draw (.4[z5,z6]--z6) join (z6--.6[z6,z1]);
- draw z7--z8--z9;
- angle_fill_corner(7,8,9);
-endchar;
-
-OCRchar("R", W#, H#); "Lettre R";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = 5/8H;
- x3 = x1; y3 = H;
- x4 = W; y4 = y3;
- x5 = x4; y5 = y2;
- x6 = W-5/8W; y6 = y2;
- x7 = x4; y7 = y1;
-
- join_radius := T;
- draw (z1--z3--z4) join (z4--.6[z4,z5]);
- draw (.4[z4,z5]--z5) join (z5--z2);
- draw z6--z7;
- fill_corners(3);
-endchar;
-
-OCRchar("S", W#, H#); "Lettre S";
- x1 = 0; y1 = 1/8H;
- x2 = x1; y2 = 0;
- x3 = W; y3 = y2;
- x4 = x3; y4 = y1;
- x5 = x1; y5 = H-1/8H;
- x6 = x1; y6 = H;
- x7 = x3; y7 = y6;
- x8 = x3; y8 = y5;
-
- path p; p = z4-(z5-z4)--z5+(z5-z4);
- z10 = (z2--z3+(z3-z2)) intersectionpoint p;
- z11 = (z6-(z7-z6)--z7) intersectionpoint p;
-
- join_radius := 1/8H;
- draw (z1--z2) join (z2--.6[z2,z3]);
- draw (.4[z6,z7]--z7) join (z7--z8);
- join_radius := r4;
- draw (.4[z2,z3]--z10) join (z10--.6[z10,z11]);
- draw (.4[z10,z11]--z11) join (z11--.6[z6,z7]);
-endchar;
-
-OCRchar("T", W#, H#); "Lettre T";
- x1 = 1/2W; y1 = 0;
- x2 = x1; y2 = H;
- x3 = 0; y3 = H-1/8H;
- x4 = x3; y4 = y2;
- x5 = W; y5 = y4;
- x6 = x5; y6 = y3;
-
- draw z1--z2;
- draw z3--z4--z5--z6;
- fill_corners(4,5);
-endchar;
-
-OCRchar("U", W#, H#); "Lettre U";
- x1 = 0; y1 = H;
- x2 = x1; y2 = 0;
- x3 = W; y3 = y2;
- x4 = x3; y4 = y1;
-
- join_radius := T;
- draw ((z1--z2) join (z2--z3)) join (z3--z4);
-endchar;
-
-OCRchar("V", W#, H#); "Lettre V";
- x1 = 0; y1 = H;
- x2 = x1; y2 = 3/4H;
- x3 = 1/2W; y3 = 0;
- x4 = W; y4 = y2;
- x5 = x4; y5 = y1;
-
- draw z1--z2--z3--z4--z5;
- angle_fill_corner(1,2,3); angle_fill_corner(3,4,5);
-endchar;
-
-OCRchar("W", W#, H#); "Lettre W";
- x1 = 0; y1 = H;
- x2 = x1; y2 = 1/8H;
- x3 = 1/8W; y3 = 0;
- x4 = 3/8W; y4 = y3;
- x5 = 1/2W; y5 = y2;
- x6 = x5; y6 = 5/8H;
- x7 = W-x4; y7 = y4;
- x8 = W-x3; y8 = y3;
- x9 = W; y9 = y2;
- x10 = x9; y10 = y1;
-
- draw z1--z2--z3--z4--z5--z6; draw z5--z7--z8--z9--z10;
- angle_fill_corner(1,2,3); angle_fill_corner(8,9,10);
-endchar;
-
-OCRchar("X", W#, H#); "Lettre X";
- x1 = 0; y1 = H;
- x2 = W; y2 = 0;
- x3 = x1; y3 = y2;
- x4 = x2; y4 = y1;
-
- draw z1--z2; draw z3--z4;
-endchar;
-
-OCRchar("Y", W#, H#); "Lettre Y";
- x1 = 0; y1 = H;
- x2 = x1; y2 = H-1/8H;
- x3 = 1/2W; y3 = 1/2H;
- x4 = x3; y4 = 0;
- x5 = W; y5 = y2;
- x6 = x5; y6 = y1;
-
- draw z1--z2--z3--z4; draw z3--z5--z6;
- angle_fill_corner(1,2,3); angle_fill_corner(3,5,6);
-endchar;
-
-OCRchar("Z", W#, H#); "Lettre Z";
- x1 = 0; y1 = H;
- x2 = W; y2 = y1;
- x3 = x1; y3 = 0;
- x4 = x2; y4 = y3;
-
- draw z1--z2--z3--z4;
- fill_corners(2,3);
- unfill unitsquare shifted (-1.5,-.5) scaled T
- rotated (angle (z2-z3) - 90) shifted z3;
- unfill unitsquare shifted (.5,-.5) scaled T
- rotated (angle (z2-z3) - 90) shifted z2;
-endchar;
-
-OCRchar(3, W#, H#); "Lettre \AA";
- x1 = 0; y1 = 0;
- x2 = 1/2W; y2 = H;
- z3 = 1/4[z1,z2];
- z4 = 3/4[z1,z2];
- x5 = W; y5 = y1;
- z6 = 1/4[z5,z2];
- z7 = 3/4[z5,z2];
- x8 = 1/8W; y8 = y4;
- x9 = x8; y9 = y2;
- x10 = 7/8W; y10 = y9;
- x11 = x10; y11 = y8;
-
- draw z1--z4; draw z5--z7; draw z3--z6;
- join_radius := T/2;
- draw (.4[z8,z9]--z9) join (z9--.6[z9,z10]);
- draw (.4[z9,z10]--z10) join (z10--.6[z10,z11]);
- draw (.4[z10,z11]--z11) join (z11--.6[z11,z8]);
- draw (.4[z11,z8]--z8) join (z8--.6[z8,z9]);
-endchar;
-
-OCRchar(4, W#, H#); "Lettre \"&ditto&"A";
- x1 = 0; y1 = 0;
- x2 = 1/2W; y2 = 3/4H;
- x3 = W; y3 = y1;
- z4 = 3/16[z1,z2];
- z5 = 3/16[z3,z2];
- x6 = x1; y6 = H;
- x7 = x6; y7 = H-1/8H;
- x8 = x3; y8 = y6;
- x9 = x8; y9 = y7;
-
- draw z1--z2--z3; draw z4--z5; draw z6--z7; draw z8--z9;
-endchar;
-
-OCRchar(29, W#, H#); "Lettre \AE";
- x1 = 0; y1 = 0;
- x2 = 1/2W; y2 = H;
- x3 = 5/8W; y3 = y2;
- x4 = x3; y4 = y1;
- z5 = 1/4[z1,z2];
- z6 = 1/4[z4,z3];
- x7 = W; y7 = y2;
- z8 = 1/2[z4,z3];
- x9 = x7; y9 = y8;
- x10 = x7; y10 = y1;
-
- draw z1--z2--z3--z4--z10; draw z5--z6;
- draw z3--z7; draw z8--z9;
-endchar;
-
-OCRchar(5, W#, H#); "Lettre \~N";
- x1 = 0; y1 = 0;
- x2 = x1; y2 = 5/8H;
- x3 = W; y3 = y1;
- x4 = x3; y4 = y2;
- x5 = x1; y5 = H-1/16H;
- x6 = x5; y6 = H;
- x7 = x3; y7 = y5;
- x8 = x7; y8 = y6;
-
- draw z1--z2--z3--z4;
- draw z5--z6--z7--z8;
-endchar;
-
-OCRchar(31, W#, H#); "Lettre \O";
- currentpicture := O_char;
- x1 = 0; y1 = 0;
- x2 = W; y2 = H;
-
- draw z1--z2;
-endchar;
-
-OCRchar(6, W#, H#); "Lettre \"&ditto&"O";
- x1 = 0; y1 = 5/16H;
- x2 = 3/8W; y2 = 0;
- x3 = x2+1/4W; y3 = y2;
- x4 = W; y4 = y1;
- x5 = x4; y5 = y4+1/8H;
- x6 = x3; y6 = 3/4H;
- x7 = x2; y7 = y6;
- x8 = x1; y8 = y5;
- z10 = (z1--z2+(z2-z1)) intersectionpoint (z3+(z3-z4)--z4);
- z11 = (z3--z4+(z4-z3)) intersectionpoint (z5+(z5-z6)--z6);
- z12 = (z5--z6+(z6-z5)) intersectionpoint (z7+(z7-z8)--z8);
- z13 = (z7--z8+(z8-z7)) intersectionpoint (z1+(z1-z2)--z2);
- x14 = x1; y14 = H-1/8H;
- x15 = x14; y15 = H;
- x16 = x4; y16 = y14;
- x17 = x16; y17 = y15;
-
- join_radius := r6;
- draw (.4[z13,z10]--z10) join (z10--.6[z10,z11]);
- draw (.4[z11,z12]--z12) join (z12--.6[z12,z13]);
- join_radius := r5;
- draw (.4[z10,z11]--z11) join (z11--.6[z11,z12]);
- draw (.4[z12,z13]--z13) join (z13--.6[z13,z10]);
- draw z14--z15; draw z16--z17;
-endchar;
-
-OCRchar(7, W#, H#); "Lettre \"&ditto&"U";
- x1 = 0; y1 = 3/4H;
- x2 = x1; y2 = 0;
- x3 = W; y3 = y2;
- x4 = x3; y4 = y1;
- x5 = 1/4W; y5 = H-1/8H;
- x6 = x5; y6 = H;
- x7 = x5+1/2W; y7 = y5;
- x8 = x7; y8 = y6;
-
- join_radius := T;
- draw (z1--z2) join (z2--.6[z2,z3]);
- draw (.4[z2,z3]--z3) join (z3--z4);
- draw z5--z6; draw z7--z8;
-endchar;
-
-OCRchar(".", 1/4W#, 3/16H#+1/8H#); "Point";
- x1 = 0; y1 = 3/16H;
- x2 = 1/4W; y2 = y1;
- x3 = x2; y3 = y1+1/8H;
- x4 = x1; y4 = y3;
-
- draw z1--z2--z3--z4--cycle;
-endchar;
-
-OCRchar(",", 1/2W#, 3/8H#); "Virgule";
- x1 = 0; y1 = 3/8H;
- x2 = 1/2W; y2 = y1;
- x3 = x2; y3 = 0;
-
- draw z1--z2--z3;
-endchar;
-
-OCRchar(":", 1/4W#, 3/16H#+1/8H#+3/8H#+1/8H#); "Deux points";
- x1 = 0; y1 = 3/16H;
- x2 = 1/4W; y2 = y1;
- x3 = x2; y3 = y2+1/8H;
- x4 = x1; y4 = y3;
- x5 = x1; y5 = y4+3/8H;
- x6 = x2; y6 = y5;
- x7 = x6; y7 = y6+1/8H;
- x8 = x5; y8 = y7;
-
- draw z1--z2--z3--z4--cycle;
- draw z5--z6--z7--z8--cycle;
-endchar;
-
-OCRchar(";", 1/2W#, 7/8H#); "Point virgule";
- x1 = 0; y1 = 3/8H;
- x2 = 1/2W; y2 = y1;
- x3 = x2; y3 = 0;
- x4 = x1; y4 = 3/4H;
- x5 = 1/4W; y5 = y4;
- x6 = x5; y6 = 7/8H;
- x7 = x4; y7 = y6;
-
- draw z1--z2--z3;
- draw z4--z5--z6--z7--cycle;
-endchar;
-
-OCRchar("=", W#, 3/8H#+5/16H#); "Egale";
- x1 = 0; y1 = 3/8H;
- x2 = W; y2 = y1;
- x3 = x1; y3 = y1+5/16H;
- x4 = x2; y4 = y3;
-
- draw z1--z2; draw z3--z4;
-endchar;
-
-OCRchar("+", W#, 1/2H#-1/2W#+W#); "Plus";
- x1 = 0; y1 = 1/2H;
- x2 = W; y2 = y1;
- x3 = 1/2W; y3 = 1/2H-1/2W;
- x4 = x3; y4 = y3+W;
-
- draw z1--z2; draw z3--z4;
-endchar;
-
-OCRchar("/", W#, H#); "Barre oblique";
- x1 = 0; y1 = 0;
- x2 = W; y2 = H;
-
- draw z1--z2;
-endchar;
-
-OCRchar("*", W#, 1/8H#+3/4H#); "Ast\'erisque";
- x1 = 0; y1 = 1/4H;
- x2 = 1/2W; y2 = 1/8H;
- x3 = W; y3 = y1;
- x4 = x3; y4 = 3/4H;
- x5 = x2; y5 = y2+3/4H;
- x6 = x1; y6 = y4;
-
- draw z1--z4; draw z2--z5; draw z3--z6;
-endchar;
-
-OCRchar(ditto, W#, H#); "Guillemet";
- x1 = 0; y1 = H;
- x2 = 1/8W; y2 = 5/8H;
- x3 = 1/4W; y3 = y1;
- x4 = 3/4W; y4 = y1;
- x5 = x4+1/8W; y5 = y2;
- x6 = W; y6 = y1;
-
- draw z3--z1--z2--z3--z4--z5--z6--z4;
- fill_corners(1,6);
- unfill unitsquare shifted (-1.5,-.5) rotated (angle (z1-z2) - 90)
- scaled T shifted z1;
- unfill unitsquare shifted (1.5,-.5) rotated (90 - angle (z6-z5))
- scaled T shifted z6;
-endchar;
-
-OCRchar("{", W#, H#); "Parenth\`ese gauche";
- x1 = 0; y1 = 1/2H;
- x2 = 1/2W; y2 = y1;
- x3 = x2; y3 = 0;
- x4 = W; y4 = y3;
- x5 = x2; y5 = H;
- x6 = x4; y6 = y5;
-
- join_radius := T;
- draw (z1--z2) join (z2--.6[z2,z3]);
- draw (z1--z2) join (z2--.6[z2,z5]);
- join_radius := 1/2T;
- draw (.4[z2,z3]--z3) join (z3--z4);
- draw (.4[z2,z5]--z5) join (z5--z6);
-endchar;
-
-OCRchar("}", W#, H#); "Parenth\`ese droite";
- x1 = W; y1 = 1/2H;
- x2 = 1/2W; y2 = y1;
- x3 = x2; y3 = 0;
- x4 = 0; y4 = y3;
- x5 = x2; y5 = H;
- x6 = x4; y6 = y5;
-
- join_radius := T;
- draw (z1--z2) join (z2--.6[z2,z3]);
- draw (z1--z2) join (z2--.6[z2,z5]);
- join_radius := 1/2T;
- draw (.4[z2,z3]--z3) join (z3--z4);
- draw (.4[z2,z5]--z5) join (z5--z6);
-endchar;
-
-OCRchar("%", W#, H#); "Pour cent";
- x1 = 0; y1 = 1/8H;
- x2 = W; y2 = y1+3/4H;
- x3 = x1; y3 = y2;
- x4 = x3+1/4W; y4 = y3;
- x5 = x4; y5 = H;
- x6 = x3; y6 = y5;
- x7 = x2-1/4W; y7 = 0;
- x8 = x2; y8 = y7;
- x9 = x8; y9 = y1;
- x10 = x7; y10 = y9;
-
- draw z1--z2;
- draw z3--z4--z5--z6--cycle;
- draw z7--z8--z9--z10--cycle;
-endchar;
-
-OCRchar("?", W#, H#); "Point d' interrogation";
- x1 = 0; y1 = H-3/8H;
- x2 = W-1/4W; y2 = H;
- x3 = W; y3 = H-1/8H;
- x4 = x3; y4 = 3/4H;
- x5 = 1/4W; y5 = y6+1/8H;
- x6 = x5; y6 = 1/4H;
- x7 = x5; y7 = 0;
-
- draw z1--z2--z3--z4--z5--z6; drawdot z7;
-endchar;
-
-OCRchar("&", W#, 7/8H#); "Perlu\`ete";
- x1 = W; y1 = 0;
- x2 = 0; y2 = y6+3/8H;
- x3 = x2; y3 = 7/8H;
- x4 = 3/4W; y4 = y3;
- x5 = x4; y5 = y2;
- x6 = x2; y6 = 1/4H;
- x7 = x2; y7 = y1;
- x8 = 1/2W; y8 = y1;
- x9 = x1; y9 = y6;
-
- join_radius := T;
- draw (z1--z2--z3) join (z3--.6[z3,z4]);
- draw (.4[z3,z4]--z4) join (z4--z5);
- draw (z5--z6--z7) join (z7--z8--z9);
-endchar;
-
-OCRchar("'", 1/4W#, H#); "Apostrophe";
- x1 = 0; y1 = H;
- x2 = 1/8W; y2 = 5/8H;
- x3 = 1/4W; y3 = y1;
-
- draw z1--z2--z3--cycle;
-endchar;
-
-OCRchar("-", W#, 1/2H#); "Moins, trait d'union";
- x1 = 0; y1 = 1/2H;
- x2 = W; y2 = y1;
-
- draw z1--z2;
-endchar;
-
-OCRchar("$", W#, H#); "Symbole dollar";
- x1 = 0; y1 = 1/4H;
- x2 = W; y2 = y1;
- x3 = x2; y3 = 1/2H;
- x4 = x1; y4 = y3;
- x5 = x1; y5 = y4+1/4H;
- x6 = x2; y6 = y5;
- x7 = 1/2W; y7 = 0;
- x8 = x7; y8 = y1;
- x9 = x7; y9 = y5;
- x10 = x7; y10 = H;
-
- draw z1--z2--z3--z4--z5--z6; draw z7--z8; draw z9--z10;
-endchar;
-
-OCRchar(8, W#, H#); "Symbole livre";
- x1 = 0; y1 = 0;
- x2 = W; y2 = y1;
- x3 = 1/4W; y3 = y1;
- x4 = x2-1/4W; y4 = H;
- x5 = x2; y5 = y4;
- x6 = x1; y6 = 1/2H;
- x7 = x2; y7 = y6;
-
- join_radius := T;
- draw z1--z2; draw (z3--z4) join (z4--z5); draw z6--z7;
-endchar;
-
-OCRchar(9, W#, H#); "Symbole yen";
- x1 = 0; y1 = H;
- x2 = 1/2W; y2 = 1/2H;
- x3 = W; y3 = y1;
- x4 = x2; y4 = 0;
- x5 = x1; y5 = 3/8H;
- x6 = x3; y6 = y5;
-
- draw z1--z2--z3; draw z2--z4; draw z5--z6;
-endchar;
-
-designsize := L#;
-
-font_slant := 0;
-font_quad := 2W#;
-font_normal_space := W#;
-font_normal_stretch := .5W#;
-font_normal_shrink := .4W#;
-font_xheight := H#;
-
-end.
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf
deleted file mode 100644
index 169c37f7d73..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf
+++ /dev/null
@@ -1,8 +0,0 @@
-% OCR-A Size I
-
-H# = 2.4mm#;
-W# = 1.4mm#;
-T# = .35mm#;
-L# = 3.73mm#;
-
-input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf
deleted file mode 100644
index 32e48f4bf86..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf
+++ /dev/null
@@ -1,8 +0,0 @@
-% OCR-A Size II
-
-H# = 2.84mm#;
-W# = 1.4mm#;
-T# = .35mm#;
-L# = 4.42mm#;
-
-input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf
deleted file mode 100644
index 33df84c7db4..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf
+++ /dev/null
@@ -1,8 +0,0 @@
-% OCR-A Size III
-
-H# = 3.20mm#;
-W# = 1.52mm#;
-T# = .38mm#;
-L# = 4.98mm#;
-
-input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf
deleted file mode 100644
index 737ab41d95b..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf
+++ /dev/null
@@ -1,8 +0,0 @@
-% OCR-A Size IV
-
-H# = 3.80mm#;
-W# = 2.04mm#;
-T# = .51mm#;
-L# = 5.91mm#;
-
-input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf
deleted file mode 100644
index 373e9c3838f..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf
+++ /dev/null
@@ -1,2133 +0,0 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% METAFONT-84 Definition for OCR-A Optical Character Recognition Font
-% (C) Copyright 1988, 1989 Richard B. Wales. All Rights Reserved.
-%
-% Coded by:
-%
-% Richard B. Wales
-% Computer Science Department
-% University of California, Los Angeles (UCLA)
-% Los Angeles, California 90024-1596 (USA)
-% +1 (213) 825-5683
-% wales@CS.UCLA.EDU
-%
-% Source of information:
-%
-% ANSI Standard X3.17-1977 (approved January 20, 1977, by the
-% American National Standards Institute, Inc.)
-%
-% Based on an earlier version by:
-%
-% Tor Lillqvist
-% Computing Services
-% Technical Research Centre of Finland
-% TML@FINGATE.BITNET; mcvax!santra!tml
-%
-% Terms of copyright:
-%
-% You may do anything you wish with this font definition, as
-% long as you retain the original copyright notice and credit
-% information intact in the source, and do not charge any fee
-% for distribution of either the source or any fonts derived
-% from it beyond a reasonable copying or communications charge.
-%
-% Disclaimer:
-%
-% While I have made every reasonable effort to make this font
-% definition correspond to the specifications in ANSI Standard
-% X3.17-1977, I do not guarantee that it conforms fully to all
-% official requirements for the OCR-A font, nor that the char-
-% acters produced from this definition will be usable by any
-% particular OCR hardware and/or software. It is the respon-
-% sibility of the user to determine the usability of this font
-% definition for his application. Use of this font definition
-% is totally at the user's own risk and without any warranty
-% whatsoever, express or implied. Neither the author nor his
-% employer will be responsible for any damages, including
-% secondary or consequential damages, arising out of the use of
-% this font definition.
-%
-% The four ASCII characters "Tilde", "Underline", "Grave Accent",
-% and "Vertical Bar" do not appear as part of ANSI X3.17-1977.
-% In order to make a complete ASCII character set, I supplemented
-% the standard with my own designs for these four characters.
-% Since these characters are not part of any standard, they will
-% presumably *NOT* be readable by any existing OCR-A equipment.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Much of the following material is copied essentially intact from
-% Lillqvist's work; specifically, the "join", "fill_corners", and
-% "angle_fill_corner" routines.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%
-% Miscellaneous stuff.
-%
-mode_setup;
-% letter_fit# := 1.25T#;
-letter_fit# := 0;
-define_whole_pixels (W, H, L, T, Y, R, letter_fit); % round off
-theta := (2*94/55)*(W/H); % 2-degree angle for some small letters
-def adjust_fit =
- l := -letter_fit;
- interim xoffset := -l;
- charwd := charwd + 2letter_fit#;
- r := l + hround (charwd*hppp);
- w := r - letter_fit;
-enddef;
-extra_beginchar := extra_beginchar & "adjust_fit;";
-extra_endchar := extra_endchar & "penlabels (range 1 thru 20);";
-
-
-%
-% Curvature radii defined in ANSI X3.17 for various characters.
-%
-r1# = H#/16 * ((7H#)/(6W#) + sqrt(((7H#)/(6W#))**2 + 1));
-r2# = W#/8 * ((6W#)/(7H#) + sqrt(((6W#)/(7H#))**2 + 1));
-r3# = W#/8 * (1 - H#/(2W#) + sqrt((H#/(2W#))**2 + 1));
-r4# = H#/16 * (1 - (4W#)/(3H#) + sqrt(((4W#)/(3H#))**2 + 1));
-r5# = H#/16 * (1 - (5H#)/(6W#) + sqrt(((5H#)/(6W#))**2 + 1));
-r6# = W#/8 * (1 - (6W#)/(5H#) + sqrt(((6W#)/(5H#))**2 + 1));
-define_pixels (r1, r2, r3, r4, r5, r6);
-
-
-%
-% ocrpen:
-% A circular pen of diameter T; used for virtually all characters.
-%
-pickup pencircle scaled T;
-ocrpen := savepen;
-
-
-%
-% "ocrchar" macro:
-% Used at the start of almost every character definition. Note
-% that the point "z0" is the lower left-hand corner of most char-
-% acters. The height of the bounding box is equal to the full
-% height of the character (including stroke thickness), and the
-% characters are all centered left-to-right within the box. This
-% requires all character point definitions to be stated relative
-% to the point "z0".
-%
-def ocrchar (expr code) =
- beginchar (code, R#, H#+T#, 0);
- pickup ocrpen;
- join_radius := T/2;
- z0 = ((R-W)/2, T/2);
-enddef;
-
-
-%
-% "join" operator:
-% Joins two strokes so that the pen center curvature radius
-% is "join_radius". ("join_radius" must already be defined.)
-%
-tertiarydef p join q =
- begingroup
- % "ipq_" is the point where the paths "p" and "q" would cross.
- pair ipq_;
- ipq_ := p intersectionpoint q;
-
- % "dirv0" is the angular direction at the end of "p";
- % "dirv1" is the angular direction at the start of "q".
- pair dirv[];
- dirv0 = dir angle direction (length p) of p;
- dirv1 = dir angle direction 0 of q;
-
- % If the directions of "p" and "q" are close enough,
- % just connect the paths without any fancy stuff.
- if length (dirv1 - dirv0) < 1/10:
- p .. q
-
- % Otherwise, compute a joining of the required curvature.
- else:
- path par[];
- k_ := if ypart (dirv1 rotated -angle dirv0) > 0:
- 90 else: -90 fi;
- forsuffixes $=0, 1:
- par$ := ((ipq_ - (20join_radius*dirv$))--
- (ipq_ + (20join_radius*dirv$)))
- shifted ((join_radius*dirv$) rotated k_);
- endfor;
- numeric pt_, qt_;
- (pt_, qt_) = par0 intersectiontimes par1;
- if pt_ < 0:
- errmessage "No intersection curvature center found";
- fi
- pair icc_; icc_ = point pt_ of par0;
- numeric cp_, cpp_, cq_, cqp_;
- (cp_, cpp_) = p intersectiontimes
- (icc_--icc_+(2join_radius*dirv0 rotated -k_));
- (cq_, cqp_) = q intersectiontimes
- (icc_--icc_+(2join_radius*dirv1 rotated -k_));
- subpath (0, cp_) of p ..
- (icc_ + join_radius*unitvector(dirv0-dirv1)) ..
- subpath (cq_, length q) of q
- fi
- endgroup
-enddef;
-
-
-%
-% "fill_corners" macro:
-% Fills in one or more corners to be sharp right-angle bends.
-%
-def fill_corners (text t) =
- begingroup
- forsuffixes $=t:
- fill unitsquare shifted (-.5, -.5) scaled T shifted z$;
- endfor
- endgroup
-enddef;
-
-
-%
-% "angle_fill_corners" macro:
-% Fills in a corner to be a sharp bend, but not a right angle.
-% The parameters are three points that define the angle, with
-% the corner specified second.
-%
-def angle_fill_corner (suffix a, b, c) =
- begingroup
- save p;
- path p.q, p.w, p.e, p.r;
- p.q = (z.a--z.b+(z.b-z.a))
- shifted (T/2*unitvector (z.b-z.a) rotated 90);
- p.w = (z.a--z.b+(z.b-z.a))
- shifted (T/2*unitvector (z.b-z.a) rotated -90);
- p.e = (z.b-(z.c-z.b)--z.c)
- shifted (T/2*unitvector (z.c-z.b) rotated 90);
- p.r = (z.b-(z.c-z.b)--z.c)
- shifted (T/2*unitvector (z.c-z.b) rotated -90);
-
- save q;
- pair q.u, q.l;
- q.u = p.q intersectionpoint p.e;
- q.l = p.w intersectionpoint p.r;
-
- fill point 0 of p.q -- q.u -- point 1 of p.e --
- point 1 of p.r -- q.l -- point 0 of p.w -- cycle;
- endgroup
-enddef;
-
-
-%
-% "to_mid" macro:
-% Defines a path starting at the first point and continuing to
-% a point between the two points (slightly past the middle).
-%
-def to_mid (expr a, b) =
- (a -- .6[a,b])
-enddef;
-
-
-%
-% "from_mid" macro:
-% Defines a path starting between two points (slightly before the
-% middle) and continuing to the second point.
-%
-def from_mid (expr a, b) =
- (.4[a,b] -- b)
-enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% CHARACTER DEFINITIONS %
-% %
-% For debugging purposes, you may wish to remove the initial "%%%" %
-% from the "def" and "enddef" lines below. This will allow you to %
-% invoke the character definitions one at a time (e.g., to inspect %
-% them on a bit-mapped display). %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Digits.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%% def draw_zero =
- ocrchar ("0"); "Number ZERO";
- z1 = (x0, y0); z2 = (x0+W, y1);
- z3 = (x2, y0+H); z4 = (x1, y3);
-
- draw from_mid (z1, z2)
- join (z2 -- z3)
- join to_mid (z3, z4);
- draw from_mid (z3, z4)
- join (z4 -- z1)
- join to_mid (z1, z2);
- endchar;
-%%% enddef;
-
-
-%%% def draw_one =
- ocrchar ("1"); "Number ONE";
- z1 = (x0, y0); z2 = (x0+W, y1); z3 = (x2, y0+3/8H);
- z4 = .5[z1,z2]; z5 = (x4, y0+H); z6 = (x1, y5);
-
- draw z1 -- z2 -- z3;
- draw z4 -- z5 -- z6;
- fill_corners (5);
- endchar;
-%%% enddef;
-
-
-%%% def draw_two =
- ocrchar ("2"); "Number TWO";
- z1 = (x0+W, y0); z2 = (x0, y1); z3 = (x2, y0+1/2H);
- z4 = (x1, y3); z5 = (x1, y0+H); z6 = (x2, y5);
-
- draw (z1 -- z2 -- z3)
- join (z3 -- z4)
- join (z4 -- z5)
- join (z5 -- z6);
- fill_corners (2);
- endchar;
-%%% enddef;
-
-
-%%% def draw_three =
- ocrchar ("3"); "Number THREE";
- z1 = (x0, y0); z2 = (x0+W, y1); z3 = (x2, y0+1/2H);
- z4 = (x0+1/4W, y3); z5 = (x0+W, y0+H); z6 = (x0, y5);
-
- draw (z1 -- z2)
- join to_mid (z2, z3);
- draw from_mid (z3, z5)
- join (z5 -- z6);
- join_radius := T;
- draw from_mid (z2, z3)
- join (z3 -- z4);
- draw (z4 -- z3)
- join to_mid (z3,z5);
- endchar;
-%%% enddef;
-
-
-%%% def draw_four =
- ocrchar ("4"); "Number FOUR";
- z1 = (x0+13/16W, y0); z2 = (x1, y0+7/8H);
- z3 = (x0+15/16W, y0+3/8H); z4 = (x0+1/16W, y3); z5 = (x4, y0+H);
-
- draw z1 -- z2;
- draw z3 -- z4 -- z5;
- fill_corners (4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_five =
- ocrchar ("5"); "Number FIVE";
- z1 = (x0+W, y0+H); z2 = (x0+1/4W, y1); z3 = (x2, y0+1/2H);
- z4 = (x1, y3); z5 = (x1, y0);
- z6 = (x0+1/4W, y5); z7 = (x0, y0+1/16H);
-
- draw z1 -- z2 -- to_mid (z3, z4);
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join to_mid (z5, z6);
- join_radius := T;
- draw from_mid (z5, z6)
- join (z6 -- z7);
- fill_corners (2, 3);
- endchar;
-%%% enddef;
-
-
-%%% def draw_six =
- ocrchar ("6"); "Number SIX";
- z1 = (x0+1/8W, y0+H); z2 = (x0, y0+H); z3 = (x0, y0);
- z4 = (x0+W, y0); z5 = (x0+W, y0+3/8H); z6 = (x0, y5);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_seven =
- ocrchar ("7"); "Number SEVEN";
- z1 = (x0, y0+15/16H); z2 = (x0, y0+H); z3 = (x0+W, y0+H);
- z4 = (x0+W, y0+5/8H); z5 = (x0+1/2W, y0+3/8H); z6 = (x5, y0);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- fill_corners (3);
- endchar;
-%%% enddef;
-
-
-%%% def draw_eight =
- ocrchar ("8"); "Number EIGHT";
- z1 = (x0+1/4W, y0+1/2H); z2 = (x1, y0+H);
- z3 = (x0+3/4W, y0+H); z4 = (x3, y1);
- z5 = (x0, y0+1/2H); z6 = (x0+W, y5);
- z7 = (x0+W, y0); z8 = (x0, y0);
-
- draw z1 -- z2 -- z3 -- z4;
- draw from_mid (z5, z6)
- join (z6 -- z7)
- join to_mid (z7, z8);
- draw from_mid (z7,z8)
- join (z8 -- z5)
- join to_mid (z5, z6);
- endchar;
-%%% enddef;
-
-
-%%% def draw_nine =
- ocrchar ("9"); "Number NINE";
- z1 = (x0+7/8W, y0); z2 = (x0+W, y0); z3 = (x0+W, y0+H);
- z4 = (x0, y0+H); z5 = (x0, y0+5/8H); z6 = (x0+W, y5);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Upper-case letters.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%% def draw_a =
- ocrchar ("A"); "Letter A";
- z1 = (x0, y0); z2 = (x0+1/2W, y0+H); z3 = (x0+W, y0);
- z4 = 1/4[z1,z2]; z5 = 1/4[z3,z2];
-
- draw z1 -- z2 -- z3;
- draw z4 -- z5;
- endchar;
-%%% enddef;
-
-
-%%% def draw_b =
- ocrchar ("B"); "Letter B";
- z1 = (x0, y0); z2 = (x0+W, y0); z3 = (x0+W, y0+1/2H);
- z4 = (x0, y3); z5 = (x0+W, y0+H); z6 = (x0, y0+H);
-
- join_radius := 3/2T;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4);
- draw (z6 -- z5)
- join (z5 -- z3)
- join (z3 -- z4);
- draw z1 -- z6;
- fill_corners (1, 6);
- endchar;
-%%% enddef;
-
-
-%%% def draw_c =
- ocrchar ("C"); "Letter C";
- z1 = (x0+W, y0); z2 = (x0+3/8W, y0); z3 = (x0, y0+7/16H);
- z4 = (x1, y0+H); z5 = (x2, y0+H); z6 = (x3, y0+9/16H);
-
- join_radius := T;
- draw (z1 -- z2)
- join to_mid (z2, z3);
- draw (z4 -- z5)
- join to_mid (z5, z6);
- join_radius := r1;
- draw from_mid (z2, z3)
- join (z3 -- z6)
- join to_mid (z6, z5);
- endchar;
-%%% enddef;
-
-
-%%% def draw_d =
- ocrchar ("D"); "Letter D";
- z1 = (x0, y0); z2 = (x0+5/8W, y0); z3 = (x0+W, y0+7/16H);
- z4 = (x1, y0+H); z5 = (x2, y0+H); z6 = (x3, y0+9/16H);
- z7 = (x0+1/4W, y0); z8 = (x7, y0+H);
-
- join_radius := T;
- draw (z1 -- z2)
- join to_mid (z2, z3);
- draw (z4 -- z5)
- join to_mid (z5, z6);
- join_radius := r1;
- draw from_mid (z2, z3)
- join (z3 -- z6)
- join to_mid (z6, z5);
- draw z7 -- z8;
- endchar;
-%%% enddef;
-
-
-%%% def draw_e =
- ocrchar ("E"); "Letter E";
- z1 = (x0+W, y0); z2 = (x0, y0);
- z3 = (x0, y0+H); z4 = (x0+W, y0+H);
- z5 = (x0, y0+1/2H); z6 = (x0+1/2W, y5);
-
- draw z1 -- z2 -- z3 -- z4;
- draw z5 -- z6;
- fill_corners (2, 3);
- endchar;
-%%% enddef;
-
-
-%%% def draw_f =
- ocrchar ("F"); "Letter F";
- z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+W, y0+H);
- z4 = (x0, y0+5/8H); z5 = (x0+3/4W, y4);
-
- draw z1 -- z2 -- z3;
- draw z4 -- z5;
- fill_corners (2);
- endchar;
-%%% enddef;
-
-
-%%% def draw_g =
- ocrchar ("G"); "Letter G";
- z1 = (x0+W, y0+H); z2 = (x0+1/2W, y0+H); z3 = (x0, y0+5/8H);
- z4 = (x0, y0); z5 = (x0+W, y0);
- z6 = (x0+W, y0+3/8H); z7 = (x0+5/8W, y6);
-
- join_radius := T;
- draw (z1 -- z2)
- join to_mid (z2, z3);
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join (z5 -- z6)
- -- z7;
- join_radius := 3/2T;
- draw from_mid (z2, z3)
- join to_mid (z3, z4);
- fill_corners (6);
- endchar;
-%%% enddef;
-
-
-%%% def draw_h =
- ocrchar ("H"); "Letter H";
- z1 = (x0, y0); z2 = (x0, y0+H);
- z3 = (x0+W, y0); z4 = (x0+W, y0+H);
- z5 = (x0, y0+1/2H); z6 = (x0+W, y5);
-
- draw z1 -- z2;
- draw z3 -- z4;
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_i =
- ocrchar ("I"); "Letter I";
- z1 = (x0+1/2W, y0); z2 = (x1, y0+H);
- z3 = (x0, y0); z4 = (x0+W, y0);
- z5 = (x0, y0+H); z6 = (x0+W, y0+H);
-
- draw z1 -- z2;
- draw z3 -- z4;
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_j =
- ocrchar ("J"); "Letter J";
- z1 = (x0+7/8W, y0+H); z2 = (x1, y0);
- z3 = (x0+1/8W, y0); z4 = (x3, y0+3/8H);
-
- join_radius := T;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_k =
- ocrchar ("K"); "Letter K";
- z1 = (x0, y0+H); z2 = (x0, y0);
- z3 = (x0+W, y0+H); z4 = (x0, y0+1/2H); z5 = (x0+W, y0);
-
- draw z1 -- z2;
- draw z3 -- z4 -- z5;
- endchar;
-%%% enddef;
-
-
-%%% def draw_l =
- ocrchar ("L"); "Letter L";
- z1 = (x0, y0+H); z2 = (x0, y0); z3 = (x0+W, y0);
-
- draw z1 -- z2 -- z3;
- fill_corners (2);
- endchar;
-%%% enddef;
-
-
-%%% def draw_m =
- ocrchar ("M"); "Letter M";
- z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+1/8W, y0+H);
- z4 = (x0+7/8W, y0+H); z5 = (x0+W, y0+H); z6 = (x0+W, y0);
- z7 = (x0+1/2W, y0+11/16H); z8 = (x7, y0+5/8H);
-
- draw z1 -- z2 -- z3 -- z7 -- z4 -- z5 -- z6;
- draw z7 -- z8;
- fill_corners (2, 5);
- angle_fill_corner (2, 3, 7);
- angle_fill_corner (7, 4, 5);
- endchar;
-%%% enddef;
-
-
-%%% def draw_n =
- ocrchar ("N"); "Letter N";
- z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+1/8W, y0+H);
- z4 = (x0+7/8W, y0); z5 = (x0+W, y0); z6 = (x0+W, y0+H);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- fill_corners (2, 5);
- angle_fill_corner (2, 3, 4);
- angle_fill_corner (3, 4, 5);
- endchar;
-%%% enddef;
-
-
-%%% def draw_o =
- ocrchar ("O"); "Letter O";
- z1 = (x0, y0+7/16H); z2 = (x1, y0+9/16H);
- z3 = (x0+3/8W, y0+H); z4 = (x0+5/8W, y3);
- z5 = (x0+W, y2); z6 = (x5, y1);
- z7 = (x4, y0); z8 = (x3, y7);
-
- join_radius := r1;
- draw from_mid (z8, z1)
- join (z1 -- z2)
- join to_mid (z2, z3);
- draw from_mid (z4, z5)
- join (z5 -- z6)
- join to_mid (z6, z7);
- join_radius := r2;
- draw from_mid (z2, z3)
- join (z3 -- z4)
- join to_mid (z4, z5);
- draw from_mid (z6, z7)
- join (z7 -- z8)
- join to_mid (z8, z1);
- endchar;
-%%% enddef;
-
-
-%%% def draw_p =
- ocrchar ("P"); "Letter P";
- z1 = (x0, y0); z2 = (x0, y0+H);
- z3 = (x0+W, y2); z4 = (x3, y0+7/16H);
- z5 = (x0, y4);
-
- join_radius := T;
- draw z1 -- z2 -- to_mid (z2, z3);
- draw from_mid (z2, z3)
- join (z3 -- z4)
- join (z4 -- z5);
- fill_corners (2);
- endchar;
-%%% enddef;
-
-
-%%% def draw_q =
- ocrchar ("Q"); "Letter Q";
- z1 = (x0+1/4W, y0); z1a = (x0, y0); z2 = (x0, y0+5/8H);
- z3 = (x0+3/4W, y0+H); z3a = (x0+W, y3); z4 = (x3a, y0+3/8H);
- z5 = (x0+1/2W, y4); z6 = (x3, y0); z7 = (x4, y0);
-
- join_radius := 3/2T;
- draw from_mid (z1a, z2)
- join to_mid (z2, z3);
- draw from_mid (z3a, z4)
- join to_mid (z4, z1);
- join_radius := r3;
- draw from_mid (z2, z3)
- join (z3 -- z3a)
- join to_mid (z3a, z4);
- draw from_mid (z4, z1)
- join (z1 -- z1a)
- join to_mid (z1a, z2);
- draw z5 -- z6 -- z7;
- angle_fill_corner (5, 6, 7);
- endchar;
-%%% enddef;
-
-
-%%% def draw_r =
- ocrchar ("R"); "Letter R";
- z1 = (x0, y0); z2 = (x0, y0+H);
- z3 = (x0+W, y2); z4 = (x3, y0+5/8H); z5 = (x0, y4);
- z6 = (x0+3/8W, y4); z7 = (x3, y1);
-
- join_radius := T;
- draw z1 -- z2 -- to_mid (z2, z3);
- draw from_mid (z2, z3)
- join (z3 -- z4)
- join (z4 -- z5);
- draw z6 -- z7;
- fill_corners (2);
- endchar;
-%%% enddef;
-
-
-%%% def draw_s =
- ocrchar ("S"); "Letter S";
- z1 = (x0, y0+1/8H); z1a = (x1, y0);
- z1b = (x0+W, y1a); z2 = (x1b, y1);
- z3 = (x1b, y0+7/8H); z3a = (x3, y0+H);
- z3b = (x0, y3a); z4 = (x3b, y3);
-
- join_radius := 1/8H;
- draw (z1 -- z1a)
- join to_mid (z1a, z1b);
- draw (z3 -- z3a)
- join to_mid (z3a, z3b);
- join_radius := r4;
- draw from_mid (z1a, z1b)
- join (z1b -- z2)
- join (z2 -- z4)
- join (z4 -- z3b)
- join to_mid (z3b, z3a);
- endchar;
-%%% enddef;
-
-
-%%% def draw_t =
- ocrchar ("T"); "Letter T";
- z1 = (x0, y0+7/8H); z2 = (x1, y0+H);
- z3 = (x0+W, y2); z4 = (x3, y1);
- z5 = (x0+1/2W, y2); z6 = (x5, y0);
-
- draw z1 -- z2 -- z3 -- z4;
- draw z5 -- z6;
- fill_corners (2, 3);
- endchar;
-%%% enddef;
-
-
-%%% def draw_u =
- ocrchar ("U"); "Letter U";
- z1 = (x0, y0+H); z2 = (x0, y0);
- z3 = (x0+W, y0); z4 = (x3, y1);
-
- join_radius := T;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_v =
- ocrchar ("V"); "Letter V";
- z1 = (x0, y0+H); z2 = (x1, y0+3/4H); z3 = (x0+1/2W, y0);
- z4 = (x0+W, y2); z5 = (x4, y1);
-
- draw z1 -- z2 -- z3 -- z4 -- z5;
- angle_fill_corner (1, 2, 3);
- angle_fill_corner (3, 4, 5);
- endchar;
-%%% enddef;
-
-
-%%% def draw_w =
- ocrchar ("W"); "Letter W";
- z1 = (x0, y0+H); z2 = (x0, y0+1/8H); z3 = (x0+1/8W, y0);
- z4 = (x0+3/8W, y0); z5 = (x0+1/2W, y2); z6 = (x0+5/8W, y0);
- z7 = (x0+7/8W, y0); z8 = (x0+W, y2); z9 = (x8, y1);
- z10 = (x5, y0+5/8H);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- z7 -- z8 -- z9;
- draw z5 -- z10;
- angle_fill_corner (1, 2, 3);
- angle_fill_corner (7, 8, 9);
- endchar;
-%%% enddef;
-
-
-%%% def draw_x =
- ocrchar ("X"); "Letter X";
- z1 = (x0, y0+H); z2 = (x0+W, y0);
- z3 = (x1, y2); z4 = (x2, y1);
-
- draw z1 -- z2;
- draw z3 -- z4;
- endchar;
-%%% enddef;
-
-
-%%% def draw_y =
- ocrchar ("Y"); "Letter Y";
- z1 = (x0, y0+H); z2 = (x1, y0+7/8H); z3 = (x0+1/2W, y0+1/2H);
- z4 = (x0+W, y2); z5 = (x4, y1); z6 = (x3, y0);
-
- draw z1 -- z2 -- z3 -- z4 -- z5;
- draw z3 -- z6;
- angle_fill_corner (1, 2, 3);
- angle_fill_corner (3, 4, 5);
- endchar;
-%%% enddef;
-
-
-%%% def draw_z =
- ocrchar ("Z"); "Letter Z";
- z1 = (x0, y0+H); z2 = (x0+W, y1);
- z3 = (x0, y0); z4 = (x2, y0);
-
- draw z1 -- z2 -- z3 -- z4;
- fill_corners (2, 3);
- unfill unitsquare
- shifted (-1.5,-0.5) scaled T
- rotated (angle (z2-z3) - 90) shifted z3;
- unfill unitsquare
- shifted (0.5,-0.5) scaled T
- rotated (angle (z2-z3) - 90) shifted z2;
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% ASCII punctuation symbols.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%
-% Note that there is also a new "alternate" period shape.
-%
-%%% def draw_period =
- ocrchar ("."); "Period";
- z1 = (x0+3/8W, y0+3/16H); z2 = (x0+5/8W, y1);
- z3 = (x2, y0+5/16H); z4 = (x1, y3);
-
- draw z1 -- z2 -- z3 -- z4 -- cycle;
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- endchar;
-%%% enddef;
-
-
-%
-% Note that there is also a new "alternate" comma shape.
-%
-%%% def draw_comma =
- ocrchar (","); "Comma";
- z1 = (x0+1/4W, y0+3/8H); z2 = (x0+3/4W, y1); z3 = (x2, y0);
-
- draw z1 -- z2 -- z3;
- endchar;
-%%% enddef;
-
-
-%%% def draw_colon =
- ocrchar (":"); "Colon";
- z1 = (x0+3/8W, y0+3/16H); z2 = (x0+5/8W, y1);
- z3 = (x2, y0+5/16H); z4 = (x1, y3);
- z5 = (x1, y1+1/2H); z6 = (x2, y2+1/2H);
- z7 = (x3, y3+1/2H); z8 = (x4, y4+1/2H);
-
- draw z1 -- z2 -- z3 -- z4 -- cycle;
- draw z5 -- z6 -- z7 -- z8 -- cycle;
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- fill z5 -- z6 -- z7 -- z8 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_semicolon =
- ocrchar (";"); "Semicolon";
- z1 = (x0+1/4W, y0+3/8H); z2 = (x0+3/4W, y1); z3 = (x2, y0);
- z4 = (x1, y0+3/4H); z5 = (x0+1/2W, y4);
- z6 = (x5, y0+7/8H); z7 = (x4, y6);
-
- draw z1 -- z2 -- z3;
- draw z4 -- z5 -- z6 -- z7 -- cycle;
- fill z4 -- z5 -- z6 -- z7 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_equals_sign =
- ocrchar ("="); "Equals Sign";
- z1 = (x0, y0+3/8H); z2 = (x0+W, y1);
- z3 = (x1, y0+11/16H); z4 = (x2, y3);
-
- draw z1 -- z2;
- draw z3 -- z4;
- endchar;
-%%% enddef;
-
-
-%%% def draw_plus_sign =
- ocrchar ("+"); "Plus Sign";
- z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
- z3 = (x0+1/2W, y1+1/2W); z4 = (x3, y3-W);
-
- draw z1 -- z2;
- draw z3 -- z4;
- endchar;
-%%% enddef;
-
-
-%%% def draw_slant =
- ocrchar ("/"); "Slant";
- z1 = (x0, y0); z2 = (x0+W, y0+H);
-
- draw z1 -- z2;
- endchar;
-%%% enddef;
-
-
-%%% def draw_asterisk =
- ocrchar ("*"); "Asterisk";
- z1 = (x0+1/2W, y0+1/8H); z2 = (x1, y0+7/8H);
- z3 = (x0, y0+1/4H); z4 = (x0+W, y0+3/4H);
- z5 = (x3, y4); z6 = (x4, y3);
-
- draw z1 -- z2;
- draw z3 -- z4;
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_quotation_mark =
- ocrchar (ditto); "Quotation Mark";
- z1 = (x0+1/4W, y0+H); z2 = (x0+1/8W, y0+5/8H);
- z3 = (x0, y1); z4 = (x0+W, y1);
- z5 = (x0+7/8W, y2); z6 = (x0+3/4W, y1);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- fill z1 -- z2 -- z3 -- cycle;
- fill z4 -- z5 -- z6 -- cycle;
- fill_corners (3, 4);
- unfill unitsquare
- shifted (-1.5,-0.5) scaled T
- rotated (angle (z3-z2) - 90) shifted z3;
- unfill unitsquare
- shifted (1.5,-0.5) scaled T
- rotated (90 - angle (z6-z5)) shifted z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_opening_brace =
- ocrchar ("{"); "Opening Brace";
- z1 = (x0+W, y0); z2 = (x0+1/2W, y0);
- z3 = (x2, y0+1/2H); z4 = (x0, y3);
- z5 = (x2, y0+H); z6 = (x1, y5);
-
- draw (z1 -- z2)
- join to_mid (z2, z3);
- draw (z6 -- z5)
- join to_mid (z5, z3);
- join_radius := T;
- draw from_mid (z2, z3)
- join (z3 -- z4);
- draw from_mid (z5, z3)
- join (z3 -- z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_closing_brace =
- ocrchar ("}"); "Closing Brace";
- z1 = (x0, y0); z2 = (x0+1/2W, y0);
- z3 = (x2, y0+1/2H); z4 = (x0+W, y3);
- z5 = (x2, y0+H); z6 = (x1, y5);
-
- draw (z1 -- z2)
- join to_mid (z2, z3);
- draw (z6 -- z5)
- join to_mid (z5, z3);
- join_radius := T;
- draw from_mid (z2, z3)
- join (z3 -- z4);
- draw from_mid (z5, z3)
- join (z3 -- z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_percent_sign =
- ocrchar ("%"); "Percent Sign";
- z1 = (x0+3/4W, y0); z2 = (x0+W, y1);
- z3 = (x2, y0+1/8H); z4 = (x1, y3);
- z5 = (x0, y0+7/8H); z6 = (x0+1/4W, y5);
- z7 = (x6, y0+H); z8 = (x5, y7);
- z9 = (x0, y3); z10 = (x0+W, y5);
-
- draw z1 -- z2 -- z3 -- z4 -- cycle;
- draw z5 -- z6 -- z7 -- z8 -- cycle;
- draw z9 -- z10;
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- fill z5 -- z6 -- z7 -- z8 -- cycle;
- endchar;
-%%% enddef;
-
-
-%
-% Note that there is also a new "alternate" question mark shape.
-%
-%%% def draw_question_mark =
- ocrchar ("?"); "Question Mark";
- z1 = (x0, y0+5/8H); z2 = (x0+3/4W, y0+H);
- z3 = (x0+W, y0+7/8H); z4 = (x3, y0+3/4H);
- z5 = (x0+1/4W, y0+3/8H); z6 = (x5, y0+1/4H);
- z7 = (x5, y0);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- drawdot z7;
- endchar;
-%%% enddef;
-
-
-%%% def draw_ampersand =
- ocrchar ("&"); "Ampersand";
- z1 = (x0+W, y0); z2 = (x0, y0+5/8H);
- z3 = (x0, y0+7/8H); z4 = (x0+3/4W, y3);
- z5 = (x4, y2); z6 = (x0, y0+1/4H);
- z7 = (x0, y0); z8 = (x0+1/2W, y0); z9 = (x1, y6);
-
- join_radius := T;
- draw z1 -- z2;
- draw (z2 -- z3)
- join (z3 -- z4)
- join (z4 -- z5);
- draw z5 -- z6;
- draw (z6 -- z7)
- join (z7 -- z8);
- draw z8 -- z9;
- endchar;
-%%% enddef;
-
-
-%
-% This is a new apostrophe shape. The older shape has been made
-% into an "alternate" form.
-%
-%%% def draw_apostrophe =
- ocrchar ("'"); "Apostrophe";
- z1 = (x0+3/8W, y0+H); z2 = (x1, y0+1/2H); z3 = (x0+5/8W, y1);
-
- draw z1 -- z2 -- z3 -- cycle;
- fill z1 -- z2 -- z3 -- cycle;
- endchar;
-%%% enddef;
-
-
-%
-% This is a new hyphen shape. The older shape has been made
-% into an "alternate" form.
-%
-%%% def draw_hyphen =
- ocrchar ("-"); "Hyphen";
- z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
- z3 = (x2, y0+7/16H); z4 = (x1, y3);
-
- draw z1 -- z2 -- z3 -- z4 -- cycle;
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_dollar_sign =
- ocrchar ("$"); "Dollar Sign";
- z1 = (x0, y0+1/4H); z2 = (x0+W, y1); z3 = (x2, y0+1/2H);
- z4 = (x1, y3); z5 = (x4, y0+3/4H); z6 = (x2, y5);
- z7 = (x0+1/2W, y0); z8 = .5[z1,z2];
- z9 = (x7, y0+H); z10 = .5[z5,z6];
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- draw z7 -- z8;
- draw z9 -- z10;
- endchar;
-%%% enddef;
-
-
-%%% def draw_upward_arrowhead =
- ocrchar ("^"); "Upward Arrowhead";
- z1 = (x0, y0+3/16H); z2 = (x0+1/2W, y0+5/8H);
- z3 = (x0+W, y1); z4 = (x2, y0+3/4H);
-
- draw z1 -- z2 -- z3 -- z4 -- cycle;
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_opening_bracket =
- ocrchar ("["); "Opening Bracket";
- z1 = (x0+W, y0); z2 = (x0, y0);
- z3 = (x2, y0+H); z4 = (x1, y3);
- z5 = (5/8[x1,x2], y1); z6 = (x5, y3);
-
- draw z1 -- z2 -- z3 -- z4;
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_closing_bracket =
- ocrchar ("]"); "Closing Bracket";
- z1 = (x0, y0); z2 = (x0+W, y0);
- z3 = (x2, y0+H); z4 = (x1, y3);
- z5 = (5/8[x1,x2], y1); z6 = (x5, y3);
-
- draw z1 -- z2 -- z3 -- z4;
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_less_than_sign =
- ocrchar ("<"); "Less Than Sign";
- z1 = (x0+W, y0+1/8H); z2 = (x0, y0+15/32H);
- z3 = (x2, y0+17/32H); z4 = (x1, y0+7/8H);
-
- draw z1 -- z2 -- z3 -- z4;
- endchar;
-%%% enddef;
-
-
-%%% def draw_greater_than_sign =
- ocrchar (">"); "Greater Than Sign";
- z1 = (x0, y0+1/8H); z2 = (x0+W, y0+15/32H);
- z3 = (x2, y0+17/32H); z4 = (x1, y0+7/8H);
-
- draw z1 -- z2 -- z3 -- z4;
- endchar;
-%%% enddef;
-
-
-%%% def draw_opening_parenthesis =
- ocrchar ("("); "Opening Parenthesis";
- z1 = (x0+3/4W, y0); z2 = (x0+3/8W, y0+9/32H);
- z3 = (x2, y0+23/32H); z4 = (x1, y0+H);
-
- join_radius := 3/2T;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_closing_parenthesis =
- ocrchar (")"); "Closing Parenthesis";
- z1 = (x0+1/4W, y0); z2 = (x0+5/8W, y0+9/32H);
- z3 = (x2, y0+23/32H); z4 = (x1, y0+H);
-
- join_radius := 3/2T;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_exclamation_point =
- ocrchar ("!"); "Exclamation Point";
- z1 = (x0+7/16W, y0); z2 = (x0+9/16W, y1);
- z3 = (x2, y0+1/16H); z4 = (x1, y3);
- z5 = (x0+1/2W, y0+7/16H); z6 = (x1, y0+H); z7 = (x2, y6);
-
- draw z1 -- z2 -- z3 -- z4 -- cycle;
- draw z5 -- z6 -- z7 -- cycle;
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- fill z5 -- z6 -- z7 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_number_sign =
- ocrchar ("#"); "Number Sign";
- z1 = (x0+1/4W, y0+3/16H); z2 = (x1, y0+H);
- z3 = (x0+3/4W, y1); z4 = (x3, y2);
- z5 = (x0, y0+7/16H); z6 = (x0+W, y5);
- z7 = (x5, y0+3/4H); z8 = (x6, y7);
-
- draw z1 -- z2;
- draw z3 -- z4;
- draw z5 -- z6;
- draw z7 -- z8;
- endchar;
-%%% enddef;
-
-
-%%% def draw_commercial_at =
- ocrchar ("@"); "Commercial At";
- z1 = (x0, y0+7/8H); z2 = (x0, y0+H); z3 = (x0+W, y2);
- z4 = (x3, y0); z5 = (x0+1/2W, y0); z6 = (x5, y0+9/16H);
- z7 = (x0, y6); z8 = (x0, y0);
-
- join_radius := 3/16H;
- draw (z1 -- z2)
- join (z2 -- z3)
- join to_mid (z3, z4);
- join_radius := 1/4W;
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join (z5 -- z6);
- draw (z6 -- z7)
- join (z7 -- z8)
- join (z8 -- z5)
- join to_mid (z5, z6);
- endchar;
-%%% enddef;
-
-
-%%% def draw_reverse_slant =
- ocrchar ("\\"); "Reverse Slant";
- z1 = (x0, y0+H); z2 = (x0+W, y0);
-
- draw z1 -- z2;
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Lower-case letters.
-% Note that ANSI X3.17-1977 defines these characters as part of OCR-A
-% only for the smallest size (Size I). Also, if lower-case letters are
-% used, the standard requires a minimum vertical line spacing of five
-% lines per inch (instead of the normal six lines per inch).
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%% def draw_small_a =
- ocrchar ("a"); "Small Letter A";
- z1 = (x0+W, y0);
- z2 = (0, H) rotated theta shifted (z1);
- z3 = ((x0, y0+1/8H) -- (x0+W, y0+1/8H))
- intersectionpoint (z1 -- z2);
- z4 = (x0+5/8W, y0);
- z5 = (x0, y0);
- z6 = (x0, y0+3/8H);
- z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
- z8 = (x0+1/4W, y0+11/16H);
- z9 = (z8 -- (x1, y8)) intersectionpoint (z1 -- z2);
-
- join_radius := 1/4W;
- draw z3 -- z4 -- to_mid (z4, z5);
- draw from_mid (z4, z5)
- join (z5 -- z6)
- join (z6 -- z7)
- join (z7 -- z3);
- draw (z8 -- z9)
- join (z9 -- z1);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_b =
- ocrchar ("b"); "Small Letter B";
- z1 = (x0, y0); z2 = (x1, y0+H);
- z3 = (x1, y0+3/16H); z4 = (x0+3/8W, y0);
- z5 = (x0+3/4W, y4); z6 = (x0+W, y0+1/8H);
- z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
- z9 = (x4, y8); z10 = (x3, y0+1/2H);
-
- join_radius := 1/4W;
- draw z1 -- z2;
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join (z5 -- z6)
- join (z6 -- z7)
- join to_mid (z7, z8);
- draw from_mid (z7, z8)
- join (z8 -- z9)
- join (z9 -- z10)
- join (z10 -- z3)
- join to_mid (z3, z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_c =
- ocrchar ("c"); "Small Letter C";
- z1 = (x0+W, y0); z2 = (x0+3/8W, y1);
- z3 = (x0, y0+3/16H); z4 = (x3, y0+1/2H);
- z5 = (x2, y0+11/16H); z6 = (x1, y5);
-
- join_radius := 1/4W;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4)
- join (z4 -- z5)
- join (z5 -- z6);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_d =
- ocrchar ("d"); "Small Letter D";
- z1 = (x0+W, y0); z2 = (x1, y0+H);
- z3 = (x2, y0+3/16H); z4 = (x0+5/8W, y0);
- z5 = (x0+1/4W, y4); z6 = (x0, y0+1/8H);
- z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
- z9 = (x4, y8); z10 = (x3, y0+1/2H);
-
- join_radius := 1/4W;
- draw z1 -- z2;
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join (z5 -- z6)
- join (z6 -- z7)
- join to_mid (z7, z8);
- draw from_mid (z7, z8)
- join (z8 -- z9)
- join (z9 -- z10)
- join (z10 -- z3)
- join to_mid (z3, z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_e =
- ocrchar ("e"); "Small Letter E";
- z1 = (x0+W, y0); z2 = (x0+1/4W, y1);
- z3 = (x0, y0+1/8H); z4 = (x3, y0+9/16H);
- z5 = (x2, y0+11/16H); z6 = (x0+3/4W, y5);
- z7 = (x1, y4); z8 = (x7, y0+5/16H); z9 = (x3, y8);
-
- join_radius := 1/4W;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4)
- join (z4 -- z5)
- join (z5 -- z6)
- join (z6 -- z7)
- join (z7 -- z8)
- -- z9;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_f =
- ocrchar ("f"); "Small Letter F";
- z1 = (x0+3/8W-1/4T, y0);
- z2 = (x1, y0+H); z3 = (x0+W-1/4T, y2);
- z4 = (x0+1/8W-1/4T, y0+11/16H);
- z5 = (x0+3/4W-1/4T, y4);
-
- join_radius := .32W;
- draw (z1 -- z2)
- join (z2 -- z3);
- draw z4 -- z5;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_g =
- ocrchar ("g"); "Small Letter G";
- z1 = (x0+W, y8); z2 = (x1, y0-3/16H);
- z2a = (x0+3/4W, y0-5/16H); z2b = (x0+1/8W, y2a);
- z3 = (x2, y0+1/4H); z4 = (x0+5/8W, y0+1/16H);
- z5 = (x0+1/4W, y4); z6 = (x0, y0+3/16H);
- z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
- z9 = (x4, y8); z10 = (x3, y0+1/2H);
-
- join_radius := 1/4W;
- draw (z1 -- z2)
- join (z2 -- z2a)
- join (z2a -- z2b);
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join (z5 -- z6)
- join (z6 -- z7)
- join to_mid (z7, z8);
- draw from_mid (z7, z8)
- join (z8 -- z9)
- join (z9 -- z10)
- join (z10 -- z3)
- join to_mid (z3, z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_h =
- ocrchar ("h"); "Small Letter H";
- z1 = (x0+W, y0);
- z2 = (0, H) rotated theta shifted (z1);
- z3 = (x0, y0); z4 = (x0, y0+H);
- z5 = (x3, y0+1/2H); z6 = (x0+1/2W, y0+11/16H);
- z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
-
- join_radius := 1/4W;
- draw z3 -- z4;
- draw (z5 -- z6)
- join (z6 -- z7)
- join (z7 -- z1);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_i =
- ocrchar ("i"); "Small Letter I";
- z1 = (x0+1/2W, y0); z2 = (x1, y0+11/16H); z3 = (x0+1/8W, y2);
- z4 = (x3, y0); z5 = (x0+7/8W, y4);
- z6 = (x1, y0+H); z7 = (x6, y0+17/16H);
- z8 = (x0+3/8W, y7); z9 = (x8, y6);
-
- draw z1 -- z2 -- z3;
- draw z4 -- z5;
- draw z6 -- z7 -- z8 -- z9 -- cycle;
- fill z6 -- z7 -- z8 -- z9 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_j =
- ocrchar ("j"); "Small Letter J";
- z1 = (x0+3/8W, y0+11/16H); z2 = (x0+7/8W, y1);
- z3 = (x2, y0-5/16H); z4 = (x0+1/8W, y3); z5 = (x4, y0-3/16H);
- z6 = (x2, y0+H); z7 = (x6, y0+17/16H);
- z8 = (x0+3/4W, y7); z9 = (x8, y6);
-
- join_radius := 1/4W;
- draw (z5 -- z4)
- join (z4 -- z3)
- join (z3 -- z2)
- -- z2 -- z1;
- draw z6 -- z7 -- z8 -- z9 -- cycle;
- fill z6 -- z7 -- z8 -- z9 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_k =
- ocrchar ("k"); "Small Letter K";
- z1 = (x0, y0); z2 = (x1, y0+H);
- z3 = (x1, y0+1/4H); z4 = (x0+7/8W, y0+11/16H);
- z5 = (x0+1/4W, y0+3/8H); z6 = (x0+W, y0);
-
- draw z1 -- z2;
- draw z3 -- z4;
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_l =
- ocrchar ("l"); "Small Letter L";
- z1 = (x0+1/2W, y0); z2 = (x1, y0+H); z3 = (x0+1/8W, y2);
- z4 = (x3, y0); z5 = (x0+7/8W, y4);
-
- draw z1 -- z2 -- z3;
- draw z4 -- z5;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_m =
- ocrchar ("m"); "Small Letter M";
- z1 = (x0-.02W, y0+11/16H); z2 = (x1, y0);
- z3 = (x1, y0+.55H); z4 = (x0+1/4W, y1);
- z5 = (x0+1/2W, y1); z6 = (x5, y0);
- z7 = (x5, y0+9/16H); z8 = (x0+3/4W, y1);
- z10 = (x0+1.02W, y0);
- z10a = (0, H) rotated theta shifted (z10);
- z9 = (z8 -- (x10, y8)) intersectionpoint (z10 -- z10a);
- z9b = (z7 -- (x10, y7)) intersectionpoint (z10 -- z10a);
-
- join_radius := 0.181W;
- draw z1 -- z2;
- draw (z3 -- z4)
- join (z4 -- z5)
- join (z5 -- z7)
- -- z6;
- join_radius := 0.176W;
- draw (z7 -- z8)
- join (z8 -- z9)
- join (z9 -- z9b)
- -- z10;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_n =
- ocrchar ("n"); "Small Letter N";
- z1 = (x0+W, y0);
- z2 = (0, H) rotated theta shifted (z1);
- z3 = (x0, y0); z4 = (x0, y6);
- z5 = (x3, y0+1/2H); z6 = (x0+1/2W, y0+11/16H);
- z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
-
- join_radius := 1/4W;
- draw z3 -- z4;
- draw (z5 -- z6)
- join (z6 -- z7)
- join (z7 -- z1);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_o =
- ocrchar ("o"); "Small Letter O";
- z1 = (x0, y0+1/8H); z2 = (x0+1/4W, y0);
- z3 = (x0+3/4W, y2); z4 = (x0+W, y1);
- z5 = (x4, y0+9/16H); z6 = (x3, y0+11/16H);
- z7 = (x2, y6); z8 = (x1, y5);
-
- join_radius := 1/4W;
- draw from_mid (z8, z1)
- join (z1 -- z2)
- join to_mid (z2, z3);
- draw from_mid (z2, z3)
- join (z3 -- z4)
- join to_mid (z4, z5);
- draw from_mid (z4, z5)
- join (z5 -- z6)
- join to_mid (z6, z7);
- draw from_mid (z6, z7)
- join (z7 -- z8)
- join to_mid (z8, z1);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_p =
- ocrchar ("p"); "Small Letter P";
- z1 = (x0, y0+23/32H); z2 = (x1, y0-5/16H);
- z3 = (x1, y0+3/16H); z4 = (x0+3/8W, y0-1/32H);
- z5 = (x0+5/8W, y4); z6 = (x0+W, y0+.157H);
- z7 = (x6, y0+.529H); z8 = (x5, y0+23/32H);
- z9 = (x4, y8); z10 = (x3, y0+1/2H);
-
- join_radius := 1/4W;
- draw z1 -- z2;
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join (z5 -- z6)
- join (z6 -- z7)
- join to_mid (z7, z8);
- draw from_mid (z7, z8)
- join (z8 -- z9)
- join (z9 -- z10)
- join (z10 -- z3)
- join to_mid (z3, z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_q =
- ocrchar ("q"); "Small Letter Q";
- z1 = (x0+W, y0+11/16H); z2 = (x1, y0-5/16H);
- z3 = (x2, y0+3/16H); z4 = (x0+5/8W, y0);
- z5 = (x0+1/4W, y4); z6 = (x0, y0+1/8H);
- z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
- z9 = (x4, y8); z10 = (x3, y0+1/2H);
-
- join_radius := 1/4W;
- draw z1 -- z2;
- draw from_mid (z3, z4)
- join (z4 -- z5)
- join (z5 -- z6)
- join (z6 -- z7)
- join to_mid (z7, z8);
- draw from_mid (z7, z8)
- join (z8 -- z9)
- join (z9 -- z10)
- join (z10 -- z3)
- join to_mid (z3, z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_r =
- ocrchar ("r"); "Small Letter R";
- z1 = (x0, y0+11/16H); z2 = (x1, y0);
- z3 = (x1, y0+7/16H); z4 = (x0+1/2W, y1);
- z5 = (x0+W, y4); z6 = (x5, y0+1/2H);
-
- join_radius := 1/4W;
- draw z1 -- z2;
- draw z3 -- z4;
- draw (z6 -- z5)
- join (z5 -- z4);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_s =
- ocrchar ("s"); "Small Letter S";
- z1 = (x0, y0+1/16H); z1a = (x0+.07W, y0+.03H);
- z2 = (x0+.20W, y0); z3 = (x0+W, y2); z4 = (x3, y0+1/4H);
- z5 = (x0+.027W, y0+1/2H); z6 = (x5, y0+11/16H);
- z6a = (x0+1/2W, y6); z7 = (x0+.92W, y6);
- z8 = (x0+.973W, y0+5/8H);
-
- join_radius := .32W;
- draw (z1 -- z1a)
- join (z1a -- z2)
- join to_mid (z2, z3);
- join_radius := .26W;
- draw from_mid (z2, z3)
- join (z3 -- z4)
- join to_mid (z4, z5);
- join_radius := .20W;
- draw from_mid (z4, z5)
- join (z5 -- z6)
- join (z6 -- z6a);
- join_radius := .25W;
- draw (z8 -- z7)
- join (z7 -- z6a);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_t =
- ocrchar ("t"); "Small Letter T";
- z1 = (x0+W, y0+1/8H); z2 = (x1, y0);
- z3 = (x0+1/4W, y2); z4 = (x3, y0+15/16H);
- z5 = (x0, y0+11/16H); z6 = (x0+7/8W, y5);
-
- join_radius := 1/4W;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4);
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_u =
- ocrchar ("u"); "Small Letter U";
- z1 = (x0, y0+11/16H);
- z2 = (0, -H) rotated theta shifted (z1);
- z3 = (x0+W, y1); z4 = (x3, y0);
- z5 = (x3, y0+3/16H); z6 = (x0+1/2W, y0);
- z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
-
- join_radius := 1/4W;
- draw z3 -- z4;
- draw (z5 -- z6)
- join (z6 -- z7)
- join (z7 -- z1);
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_v =
- ocrchar ("v"); "Small Letter V";
- z1 = (x0, y0+11/16H); z2 = (x1, y0+9/16H);
- z3 = (x0+.421W, y0); z4 = (x0+.579W, y0);
- z5 = (x0+W, y2); z6 = (x5, y1);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_w =
- ocrchar ("w"); "Small Letter W";
- z1 = (x0, y0+1/4H); z2 = (x0+1/8W, y0); z3 = (x0+1/4W, y0);
- z4 = (x0+1/2W, y1); z5 = (x4, y0+7/16H);
- z6 = (x0+3/4W, y0); z7 = (x0+7/8W, y0); z8 = (x0+W, y1);
- z9a = (0, H) rotated theta shifted (z1);
- z9b = (0, H) rotated -theta shifted (z8);
- z10a = (x0-1/4W, y0+11/16H); z10b = (x0+5/4W, y10a);
- z11a = (z10a -- z10b) intersectionpoint (z1 -- z9a);
- z11b = (z10a -- z10b) intersectionpoint (z8 -- z9b);
-
- draw z11a -- z1 -- z2 -- z3 -- z4 -- z6 -- z7 -- z8 -- z11b;
- draw z4 -- z5;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_x =
- ocrchar ("x"); "Small Letter X";
- z1 = (x0, y0); z2 = (x0+.973W, y0+11/16H);
- z3 = (x0+W, y0); z4 = (x0+.027W, y0+11/16H);
-
- draw z1 -- z2;
- draw z3 -- z4;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_y =
- ocrchar ("y"); "Small Letter Y";
- z1 = (x0, y0+11/16H); z2 = (x1, y0+9/16H);
- z3 = (x0+3/8W, y0+1/16H); z4 = (x0+5/8W, y3);
- z5 = (x0+W, y1); z6 = (x5, y2);
- z8 = (x0, y0-5/16H);
- z7 = (z6 -- z4+(z4-z6))
- intersectionpoint (z8 -- (x8+W, y8));
-
- draw z1 -- z2 -- z3 -- z4;
- draw z5 -- z6 -- z7 -- z8;
- endchar;
-%%% enddef;
-
-
-%%% def draw_small_z =
- ocrchar ("z"); "Small Letter Z";
- z1 = (x0+.061W, y0+11/16H); z2 = (x0+W, y1);
- z3 = (x2, y0+5/8H); z4 = (x0, y0+1/16H);
- z5 = (x0, y0); z6 = (x2, y5);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Alternate symbol forms.
-% These are all new shapes, except for Apostrophe and Hyphen, where
-% the "alternate" shapes are the older versions.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%
-% Alternate period was introduced because the standard character causes
-% paper punch-through on some printers.
-%
-%%% def draw_period_alt =
- ocrchar (14); "Period (Alternate)";
- z1 = (x0+5/16W, y0); z2 = (x0+11/16W, y1);
- z3 = (x2, y0+3/8W); z4 = (x1, y3);
- % NOTE: The use of "W" in the Y-coordinate of "z3"
- % is as given in the spec, to make a square period.
-
- draw z1 -- z2 -- z3 -- z4 -- cycle;
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- endchar;
-%%% enddef;
-
-
-%
-% Alternate comma was introduced because the standard character causes
-% paper punch-through on some printers.
-%
-%%% def draw_comma_alt =
- ocrchar (15); "Comma (Alternate)";
- z1 = (x0+1/4W, y0+5/16H); z2 = (x1, y0+3/8H);
- z3 = (x0+3/4W, y2); z4 = (x3, y0); z5 = (x0+5/8W, y4);
- z6 = (x5, y1);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- cycle;
- fill z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- cycle;
- endchar;
-%%% enddef;
-
-
-%
-% Alternate question mark was introduced because the small dot at the
-% bottom of the standard character is difficult or impossible to form
-% on some embossed plates/cards, and also causes paper punch-through
-% on some printers.
-%
-%%% def draw_question_mark_alt =
- ocrchar (16); "Question Mark (Alternate)";
- z1 = (x0, y0+5/8H); z2 = (x0+3/4W, y0+H);
- z3 = (x0+W, y0+7/8H); z4 = (x3, y0+3/4H);
- z5 = (x0+1/4W, y0+3/8H); z6 = (x5, y0);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%
-% A new apostrophe was introduced (and the older character changed to
-% alternate status) because the older character causes paper punch-
-% through on some printers and cannot be properly recognized by some
-% readers which do not store vertical-position data.
-%
-%%% def draw_apostrophe_alt =
- ocrchar (17); "Apostrophe (Alternate)";
- z1 = (x0+3/8W, y0+H); z2 = (x0+1/2W, y0+5/8H);
- z3 = (x0+5/8W, y1);
-
- draw z1 -- z2 -- z3 -- cycle;
- fill z1 -- z2 -- z3 -- cycle;
- endchar;
-%%% enddef;
-
-
-%
-% A new hyphen was introduced (and the older character changed to
-% alternate status) because the older character causes paper punch-
-% through on some printers.
-%
-%%% def draw_hyphen_alt =
- ocrchar (18); "Hyphen (Alternate)";
- z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
-
- draw z1 -- z2;
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Special OCR characters.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%
-% The "hook" symbol (looks sort of like a squared-off S) is defined in
-% ANSI X3.17-1977 to go into the "tilde" spot in the ASCII table.
-%
-%%% def draw_symbol_hook =
- ocrchar (19); "Symbol HOOK";
- z1 = (x0, y0+3/8H); z2 = (x0, y0); z3 = (x0+1/2W, y0);
- z4 = (x3, y0+H); z5 = (x0+W, y0+H); z6 = (x0+W, y0+5/8H);
-
- draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
- fill_corners (2, 3, 4, 5);
- endchar;
-%%% enddef;
-
-
-%
-% The "fork" symbol (looks sort of like a squared-off Y) is defined in
-% ANSI X3.17-1977 to go into the "underline" spot in the ASCII table.
-% However, a note in the standard says that this assignment should not
-% preclude use of the Underline in applications not needing the "fork".
-%
-%%% def draw_symbol_fork =
- ocrchar (20); "Symbol FORK";
- z1 = (x0, y0+H); z2 = (x0, y0+1/2H);
- z3 = (x0+W, y2); z4 = (x0+W, y0+H);
- z5 = (x0+1/2W, y2); z6 = (x5, y0);
-
- draw z1 -- z2 -- z3 -- z4;
- draw z5 -- z6;
- fill_corners (2, 3);
- endchar;
-%%% enddef;
-
-
-%
-% The "chair" symbol (looks sort of like a squared-off, backwards lower-
-% case H) is defined in ANSI X3.17-1977 to go into the "grave accent"
-% spot in the ASCII table.
-%
-%%% def draw_symbol_chair =
- ocrchar (21); "Symbol CHAIR";
- z1 = (x0+W, y0+H); z2 = (x1, y0);
- z3 = .5[z1,z2]; z4 = (x0, y3); z5 = (x0, y0);
-
- draw z1 -- z2;
- draw z3 -- z4 -- z5;
- fill_corners (4);
- endchar;
-%%% enddef;
-
-
-%
-% The "Long Vertical Mark" is not really suitable as a representation
-% of the ASCII "vertical bar" character. The "Long Vertical Mark" is
-% intended as a field separator and is significantly taller than other
-% characters in the font.
-%
-%%% def draw_long_vertical_mark =
- ocrchar (22); "Long Vertical Mark";
- z1 = (x0+1/2W, y0+L-T/2); z2 = (x1, y0-Y+T/2);
-
- draw z1 -- z2;
- fill_corners (1, 2);
- endchar;
-%%% enddef;
-
-
-%
-% "Character Erase" (a large rectangular black box) is defined in
-% ANSI X3.17-1977 only for the smallest character size (Size I).
-%
-%%% def draw_character_erase =
- ocrchar (127); "Character Erase";
- z1 = (x0-3/4T, y0-3/4T); z2 = (x0+W+3/4T, y1);
- z3 = (x2, y0+H+3/4T); z4 = (x1, y3);
-
- fill z1 -- z2 -- z3 -- z4 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Miscellaneous symbols.
-% These are not an official part of ANSI OCR-A, but were included in an
-% appendix to X3.17-1977.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%% def draw_aa =
- ocrchar (23); "Letter \AA";
- z1 = (x0, y0); z2 = (x0+3/8W, y0+3/4H);
- z3 = (x0+5/8W, y2); z4 = (x0+W, y1);
- z5 = (x0+1/8W, y2); z6 = (x0+7/8W, y2);
- z7 = (x6, y0+H); z8 = (x5, y7);
- z9 = (x5, y0+1/4H); z10 = (x6, y9);
-
- draw z1 -- z2;
- draw z3 -- z4;
- draw z9 -- z10;
- draw from_mid (z5, z6)
- join (z6 -- z7)
- join to_mid (z7, z8);
- draw from_mid (z7, z8)
- join (z8 -- z5)
- join to_mid (z5, z6);
- endchar;
-%%% enddef;
-
-
-%%% def draw_a_umlaut =
- ocrchar (24); "Letter \"&ditto&"A";
- z1 = (x0, y0); z2 = (x0+1/2W, y0+3/4H); z3 = (x0+W, y0);
- z4 = (x0+1/8W, y0+3/16H); z5 = (x0+7/8W, y4);
- z6 = (x1, y0+H); z7 = (x6, y0+7/8H);
- z8 = (x3, y6); z9 = (x8, y7);
-
- draw z1 -- z2 -- z3;
- draw z4 -- z5;
- draw z6 -- z7;
- draw z8 -- z9;
- endchar;
-%%% enddef;
-
-
-%%% def draw_ae =
- ocrchar (25); "Letter \AE";
- z1 = (x0, y0); z2 = (x0+5/8W, y0+H); z3 = (x0+W, y2);
- z4 = (x2, y0+1/2H); z5 = (x3, y4);
- z6 = (x2, y1); z7 = (x3, y1);
- z8 = 1/4[z1,z2]; z9 = 1/4[z6,z2];
-
- draw z1 -- z2 -- z3;
- draw z2 -- z6 -- z7;
- draw z4 -- z5;
- draw z8 -- z9;
- endchar;
-%%% enddef;
-
-
-%%% def draw_n_tilde =
- ocrchar (26); "Letter \~N";
- z1 = (x0, y0); z2 = (x1, y0+5/8H);
- z3 = (x0+W, y1); z4 = (x3, y2);
- z5 = (x1, y0+15/16H); z6 = (x5, y0+H);
- z7 = (x3, y5); z8 = (x3, y6);
-
- draw z1 -- z2 -- z3 -- z4;
- draw z5 -- z6 -- z7 -- z8;
- endchar;
-%%% enddef;
-
-
-%%% def draw_o_slant =
- ocrchar (27); "Letter \O";
- z1 = (x0, y0+7/16H); z2 = (x1, y0+9/16H);
- z3 = (x0+3/8W, y0+H); z4 = (x0+5/8W, y3);
- z5 = (x0+W, y2); z6 = (x5, y1);
- z7 = (x4, y0); z8 = (x3, y7);
- z9 = (x0, y0); z10 = (x0+W, y0+H);
-
- join_radius := r1;
- draw from_mid (z8, z1)
- join (z1 -- z2)
- join to_mid (z2, z3);
- draw from_mid (z4, z5)
- join (z5 -- z6)
- join to_mid (z6, z7);
- join_radius := r2;
- draw from_mid (z2, z3)
- join (z3 -- z4)
- join to_mid (z4, z5);
- draw from_mid (z6, z7)
- join (z7 -- z8)
- join to_mid (z8, z1);
- draw z9 -- z10;
- endchar;
-%%% enddef;
-
-
-%%% def draw_o_umlaut =
- ocrchar (28); "Letter \"&ditto&"O";
- z1 = (x0, y0+5/16H); z2 = (x1, y0+7/16H);
- z3 = (x0+3/8W, y0+3/4H); z4 = (x0+5/8W, y3);
- z5 = (x0+W, y2); z6 = (x5, y1);
- z7 = (x4, y0); z8 = (x3, y7);
- z9 = (x1, y0+H); z10 = (x1, y0+7/8H);
- z11 = (x5, y9); z12 = (x5, y10);
-
- join_radius := r5;
- draw from_mid (z8, z1)
- join (z1 -- z2)
- join to_mid (z2, z3);
- draw from_mid (z4, z5)
- join (z5 -- z6)
- join to_mid (z6, z7);
- join_radius := r6;
- draw from_mid (z2, z3)
- join (z3 -- z4)
- join to_mid (z4, z5);
- draw from_mid (z6, z7)
- join (z7 -- z8)
- join to_mid (z8, z1);
- draw z9 -- z10;
- draw z11 -- z12;
- endchar;
-%%% enddef;
-
-
-%%% def draw_u_umlaut =
- ocrchar (29); "Letter \"&ditto&"U";
- z1 = (x0, y0+3/4H); z2 = (x0, y0);
- z3 = (x0+W, y0); z4 = (x3, y1);
- z5 = (x0+1/4W, y0+H); z6 = (x5, y0+7/8H);
- z7 = (x0+3/4W, y5); z8 = (x7, y6);
-
- join_radius := T;
- draw (z1 -- z2)
- join (z2 -- z3)
- join (z3 -- z4);
- draw z5 -- z6;
- draw z7 -- z8;
- endchar;
-%%% enddef;
-
-
-%%% def draw_pound_sign =
- ocrchar (30); "Pound Sign";
- z1 = (x0, y0); z2 = (x0+W, y1);
- z3 = (x0+1/4W, y1); z4 = (x0+3/4W, y0+H); z5 = (x2, y4);
- z6 = (x1, y0+1/2H); z7 = (x2, y6);
-
- join_radius := T;
- draw z1 -- z2;
- draw (z3 -- z4)
- join (z4 -- z5);
- draw z6 -- z7;
- endchar;
-%%% enddef;
-
-
-%%% def draw_yen_sign =
- ocrchar (31); "Yen Sign";
- z1 = (x0, y0+H); z2 = (x0+1/2W, y0+1/2H); z3 = (x0+W, y1);
- z4 = (x2, y0); z5 = (x1, y0+3/8H); z6 = (x3, y5);
-
- draw z1 -- z2 -- z3;
- draw z2 -- z4;
- draw z5 -- z6;
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Non-standard ASCII characters.
-% I designed these characters myself in order to make a complete ASCII
-% character set. Note that these characters are *NOT* part of ANSI
-% X3.17-1977 or any other OCR-A standard, and will almost certainly
-% *NOT* be understood by any OCR-A scanner currently in existence.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%% def draw_tilde =
- ocrchar ("~"); "Tilde";
- z1 = (x0, y0+11/16H); z2 = (x1, y0+H);
- z3 = (x0+1/2W, y2); z4 = (x3, y0+5/8H);
- z5 = (x0+W, y4); z6 = (x5, y0+15/16H);
-
- join_radius := T;
- draw (z1 -- z2)
- join (z2 -- z3)
- join to_mid (z3, z4);
- draw (z6 -- z5)
- join (z5 -- z4)
- join to_mid (z4, z3);
- endchar;
-%%% enddef;
-
-
-%%% def draw_underline =
- ocrchar ("_"); "Underline";
- z1 = (x0, y0-T); z2 = (x0+W, y1);
-
- draw z1 -- z2;
- endchar;
-%%% enddef;
-
-
-%%% def draw_grave_accent =
- ocrchar ("`"); "Grave Accent";
- z1 = (x0+1/8W, y0+H); z2 = (x0+7/8W, y0+5/8H);
- z3 = (x0+3/8W, y1);
-
- draw z1 -- z2 -- z3 -- cycle;
- fill z1 -- z2 -- z3 -- cycle;
- endchar;
-%%% enddef;
-
-
-%%% def draw_vertical_bar =
- ocrchar ("|"); "Vertical Bar";
- z1 = (x0+1/2W, y0+H); z2 = (x1, y0+1/2H+T);
- z3 = (x1, y0+1/2H-T); z4 = (x1, y0);
-
- draw z1 -- z2;
- draw z3 -- z4;
- fill_corners (2, 3);
- endchar;
-%%% enddef;
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% Font parameters %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-designsize := L#;
-font_slant := 0;
-font_normal_space := R#;
-font_normal_stretch := 0; % mustn't be more than .8R#, per spec
-font_normal_shrink := 0; % mustn't be more than .1R#, per spec
-font_x_height := H#;
-font_quad := 2W#;
-font_extra_space := 0;
-
-end.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% END OF OCR-A METAFONT DEFINITION %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf
deleted file mode 100644
index a75de22c43c..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf
+++ /dev/null
@@ -1,10 +0,0 @@
-% OCR-A Size I (10-point)
-
-H# = 0.094in#; % centerline height of characters
-W# = 0.055in#; % centerline width of characters
-T# = 0.014in#; % stroke width
-L# = 0.146in#; % height of long vertical mark
-Y# = 0.021in#; % depth of long vertical mark
-R# = 0.100in#; % horizontal character spacing
-
-input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf
deleted file mode 100644
index b7a8a159ec7..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf
+++ /dev/null
@@ -1,10 +0,0 @@
-% OCR-A Size I, magnified 20% (12-point)
-
-H# = 0.112in#; % centerline height of characters
-W# = 0.066in#; % centerline width of characters
-T# = 0.017in#; % stroke width
-L# = 0.175in#; % height of long vertical mark
-Y# = 0.025in#; % depth of long vertical mark
-R# = 0.120in#; % horizontal character spacing
-
-input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf
deleted file mode 100644
index 54e18b6dcdd..00000000000
--- a/Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf
+++ /dev/null
@@ -1,10 +0,0 @@
-% OCR-A Size I, magnified 60% (16-point)
-
-H# = 0.150in#; % centerline height of characters
-W# = 0.088in#; % centerline width of characters
-T# = 0.022in#; % stroke width
-L# = 0.234in#; % height of long vertical mark
-Y# = 0.034in#; % depth of long vertical mark
-R# = 0.160in#; % horizontal character spacing
-
-input ocra;