summaryrefslogtreecommitdiff
path: root/language/casyl/casyll10.mf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/casyl/casyll10.mf
Initial commit
Diffstat (limited to 'language/casyl/casyll10.mf')
-rw-r--r--language/casyl/casyll10.mf984
1 files changed, 984 insertions, 0 deletions
diff --git a/language/casyl/casyll10.mf b/language/casyl/casyll10.mf
new file mode 100644
index 0000000000..3a10ffe16b
--- /dev/null
+++ b/language/casyl/casyll10.mf
@@ -0,0 +1,984 @@
+% casyll10.mf: Cree/Inuktitut 10 point
+% (based on Julian Bradfield's teng10.mf)
+% 22 March 2000
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Ivan A Derzhanski
+% Department of Mathematical Linguistics
+% Institute for Mathematics and Computer Science
+% Bulgarian Academy of Sciences
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+designsize:=10pt#;
+% parameter settings
+em#:=10pt#; asc#:=8pt#; ex#:=16/3pt#; o#:=1/8pt#;
+
+font_normal_space(.4em#); font_x_height(ex#);
+font_quad(em#); font_normal_stretch(.2em#);
+font_normal_shrink(.1em#);
+
+penangle := 45;
+big_penwidth# := 1/10em#; penthickness# := 1/70em#;
+wee_penwidth# = .7big_penwidth#;
+straight_sidebar# = 1/12em#; curve_sidebar# = 1/18em#;
+fudge# := .05 ex#; % fudge for lowering calma luva
+letter_width# := .6em#;
+
+autorounding := 1;
+mode_setup;
+define_pixels(em,asc,ex);
+define_blacker_pixels(big_penwidth,wee_penwidth,penthickness);
+define_corrected_pixels(o);
+define_whole_pixels(straight_sidebar,curve_sidebar);
+
+define_pixels(fudge, letter_width);
+pickup pencircle xscaled big_penwidth yscaled penthickness rotated penangle;
+big_nib := savepen;
+pickup pencircle xscaled wee_penwidth yscaled penthickness rotated penangle;
+wee_nib := savepen;
+
+def draw_dot(suffix i) =
+ % calculate width of pen
+ numeric penwdth;
+ 1.1penwdth = (pen_rt - pen_lft) ++ (pen_top - pen_bot);
+ z.i.$ = z.i + 1/2penwdth*dir(penangle+90);
+ z.i.$$ = z.i + 1/2penwdth*dir(penangle-90);
+ draw z.i.$$ -- z.i.$; drawdot z.i.$$; drawdot z.i.$;
+enddef;
+
+def beginsyll (expr c, w_sharp) =
+begingroup
+charcode := if known c: byte c else: 0 fi;
+charwd := w_sharp; charht := ex#; chardp := 0;
+w := hround (charwd * hppp);
+h := vround (charht * hppp);
+d := 0;
+charic := 0; clearxy; clearpen;
+enddef;
+
+def endsyllao (text ps) =
+chardx := w;
+charcode := charcode + 128;
+clearit; for p = ps: draw p; endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode - 32;
+clearit;
+for p = ps: draw p reflectedabout ((.5w,0), (.5w,h)); endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+endgroup
+enddef;
+
+def endsyllei (text ps) =
+chardx := w;
+charcode := charcode + 32;
+clearit; for p = ps: draw p; endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 32;
+clearit;
+for p = ps: draw p reflectedabout ((0,.5h), (w,.5h)); endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+endgroup
+enddef;
+
+def endsyllxy (text ps) =
+chardx := w;
+charcode := charcode + 128;
+clearit; for p = ps: draw p; endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode - 96;
+clearit;
+for p = ps:
+draw p reflectedabout ((0,.5h), (w,.5h)) reflectedabout ((.5w,0), (.5w,h));
+endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 32;
+clearit;
+for p = ps: draw p reflectedabout ((0,.5h), (w,.5h)); endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 32;
+clearit;
+for p = ps: draw p reflectedabout ((.5w,0), (.5w,h)); endfor
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+endgroup
+enddef;
+
+% now make the fount
+
+beginchar (96,letter_width#,ex#,0); "big circle";
+ pickup big_nib;
+ top y1 = round(h+o); x1 = .5w;
+ bot y3 = round(-o); x3 = x1;
+ rt x2 = w - curve_sidebar = w - lft x4;
+ y2 = y4 = .5h;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginsyll ("`", letter_width#); "a/o";
+ pickup big_nib;
+ x1 = x2 = w - straight_sidebar;
+ x3 = curve_sidebar;
+ y3 = .5h; y1 = -o; y2 = h+o;
+endsyllao (z1 -- z3 -- z2 -- z1);
+
+beginsyll ("`", letter_width#); "e/i";
+ pickup big_nib;
+ y1 = y2 = h; x2 = straight_sidebar = w - x1;
+ x3 = .5[x1,x2]; bot y3 = -o;
+endsyllei (z1 -- z3 -- z2 -- z1);
+
+beginchar (oct"001", .6em#, 1.5ex#, 0); "ai";
+ pickup wee_nib;
+ x3 = good.x .5w; lft x1 = w - rt x5 = curve_sidebar;
+ x2 = .5 [x1, x3]; x4 = .5 [x3, x5];
+ y2 = y4 = y1 - vround .45ex; .5[y1,y2] = ex; y1 = y3 = y5;
+ draw z1{down} .. z2 .. {up}z3 & z3{down} .. z4 .. {up}z5;
+endchar;
+
+beginchar(oct"000",.45em#,1.5ex#,0); "glottal stop";
+ pickup wee_nib;
+ y3 = y4 = y2 - vround .45ex; .5[y3,y2] = ex;
+ x2 = .5w;
+ lft x3 = straight_sidebar = w - rt x4;
+ draw z2 -- z3 -- z4 -- cycle;
+endchar;
+
+beginchar(oct"033",.54em#,1.5ex#,0); "Bible Cree y";
+ pickup wee_nib;
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ y1 = y3 = y5; y2 = y4;
+ x3 = .5w; x2 = .5 [x1, x3]; x4 = .5 [x3, x5];
+ lft x1 = straight_sidebar = w - rt x5;
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+endchar;
+
+beginsyll ("p", letter_width#); "pa/po";
+ pickup big_nib;
+ x2 = curve_sidebar = w - x1 = w - x3;
+ y2 = .5h; y1 = h+o; y3 = -o;
+endsyllao (z1 -- z2 -- z3);
+
+beginsyll ("p", letter_width#); "pe/pi";
+ pickup big_nib;
+ x3 = straight_sidebar = w - x1;
+ x2 = .5[x1,x3]; bot y2 = -o;
+ y1 = y3 = h;
+endsyllei (z1 -- z2 -- z3);
+
+beginsyll ("t", letter_width#); "ta/to";
+ pickup big_nib;
+ rt x1 = rt x5 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4w;
+ bot y1 = bot y2 = -o; top y4 = top y5 = h+o;
+ y3 = .5h;
+endsyllao (z1 -- z2 .. z3 .. z4 -- z5);
+
+beginsyll ("t", letter_width#); "te/ti";
+ pickup big_nib;
+ w - rt x1 = w - rt x2 = lft x4 = lft x5 = straight_sidebar;
+ x3 = .5w;
+ top y1 = top y5 = h+o;
+ bot y3 = -o; y2 = y4 = .4h;
+endsyllei (z1 -- z2 .. z3 .. z4 -- z5);
+
+beginsyll ("k", letter_width#); "k@";
+ pickup big_nib;
+ x1 = x3 = .5w;
+ bot y3 = round(-o); y1 = .6h;
+ rt x2 = w - curve_sidebar;
+ lft x4 = straight_sidebar;
+ y2 = y4 = .5[y1,y3];
+ top z5 = (x4, h+o);
+endsyllxy (z5 -- z4{down} .. z3 .. z2 .. z1{left} .. z4);
+
+beginsyll ("c", letter_width#); "c@";
+ pickup big_nib;
+ rt x2 = w - curve_sidebar;
+ lft x4 = lft x5 = straight_sidebar;
+ x3 = .5[x2,x4];
+ top y5 = h+o; bot y3 = -o; y2 = y4 = .4h;
+endsyllxy (z2 .. z3 .. {up}z4 -- z5);
+
+beginsyll ("m", letter_width#); "m@";
+ pickup big_nib;
+ lft x1 = straight_sidebar; top y1 = h;
+ rt x2 = w - curve_sidebar; bot y2 = -o;
+endsyllxy (z1 -- (x1,y2) -- z2);
+
+beginsyll ("n", letter_width#); "n@";
+ pickup big_nib;
+ top y1 = round(h+o); x1 = .5[x2,x4];
+ bot y3 = 0; x3 = x1;
+ x2 = .6w; lft x4 = curve_sidebar;
+ y2 = y4 = .5h;
+ rt z5 = (w - curve_sidebar, y3);
+endsyllxy (z5 -- z3{left} .. z4 .. z1 .. z2 .. z3);
+
+beginsyll ("l", letter_width#); "l@";
+ pickup big_nib;
+ rt x1 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4w;
+ bot y1 = bot y2 = 0; top y4 = h;
+ y3 = .5h;
+endsyllxy (z1 -- z2 .. z3 .. {right}z4);
+
+beginsyll ("s", letter_width#); "s@";
+ pickup big_nib;
+ y1 = .6h; x1 = x3 = .6w;
+ bot y3 = round(-o);
+ rt x2 = w - curve_sidebar;
+ y2 = .5[y1,y3];
+ top lft z5 = (straight_sidebar, h+o);
+endsyllxy (z5 -- (x5,y1) .. z1 .. z2 .. {left}z3);
+
+beginsyll ("f", letter_width#); "sha/sho";
+ pickup big_nib;
+ top y1 = top y6 = round(h+o); x1 = x3 = .8[x5,x2];
+ bot y3 = bot y4 = round(-o); x4 = x6 = .2[x5,x2];
+ w - rt x2 = curve_sidebar = lft x5;
+ y2 = y5 = .5h;
+endsyllao (z3{right} .. z2 .. z1 .. .5[z5,z2] .. z4 .. z5 .. {right}z6);
+
+beginsyll ("f", letter_width#); "she/shi";
+ pickup big_nib;
+ x0 = x3 = .5w; top y0 = h+o; bot y3 = -o;
+ lft x4 = lft x5 = w - rt x1 = w - rt x2 = curve_sidebar;
+ y1 = y5 = .8[y3,y0]; y2 = y4 = .2[y3,y0];
+endsyllei (z2{down} .. z3 .. z4 .. .5[z3,z0] .. z1 .. z0 .. {down}z5);
+
+beginsyll ("y", letter_width#); "y@";
+ pickup big_nib;
+ y1 = .6h; bot y3 = round(-o);
+ rt x1 = w - curve_sidebar; x3 = .4w;
+ top lft z5 = (straight_sidebar, h+o);
+endsyllxy (z5 -- (x5,y1) .. z1 -- z3);
+
+beginsyll ("r", letter_width#); "Eskimo ra/ro";
+ pickup big_nib;
+ rt x0 = rt x1 = w - straight_sidebar;
+ w - rt x5 = lft x3 = curve_sidebar;
+ x2 = x4 = .4w;
+ bot y0 = -o; y1 = y2 = .45h; top y4 = top y5 = h;
+ y3 = .5[y1,y5];
+endsyllao (z0 -- z1 -- z2{left} .. z3 .. {right}z4 -- z5);
+
+beginsyll ("r", letter_width#); "Eskimo re/ri";
+ pickup big_nib;
+ rt x0 = w - curve_sidebar;
+ x1 = x2 = .55w;
+ lft x4 = lft x5 = straight_sidebar;
+ x3 = .5w;
+ top y0 = top y1 = h; top y5 = h+o;
+ bot y3 = -o; y2 = y4 = .4h;
+endsyllei (z0 -- z1 -- z2{down} .. z3 .. {up}z4 -- z5);
+
+beginsyll ("z", letter_width#); "Cree ra/ro";
+ pickup big_nib;
+ rt x0 = rt x1 = w - straight_sidebar;
+ w - rt x5 = lft x3 = curve_sidebar;
+ x2 = x4 = .4w;
+ top y0 = h+o; y1 = y2 = .55h; bot y4 = bot y5 = 0;
+ y3 = .5[y1,y5];
+endsyllao (z0 -- z1 -- z2{left} .. z3 .. {right}z4 -- z5);
+
+beginsyll ("z", letter_width#); "Cree re/ri";
+ pickup big_nib;
+ lft x0 = curve_sidebar;
+ x1 = x2 = .45w;
+ rt x4 = rt x5 = w - straight_sidebar;
+ x3 = .5w;
+ bot y0 = bot y1 = 0; bot y5 = -o;
+ top y3 = h+o; y2 = y4 = .6h;
+endsyllei (z0 -- z1 -- z2{up} .. z3 .. {down}z4 -- z5);
+
+beginsyll ("q", letter_width#); "va/vo";
+ pickup big_nib;
+ top y0 = h; y0 - y6 = x3 - x9 = .35h;
+ lft x1 = w - rt x3 = w - rt x2 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ y1 = .5h; bot y2 = -o;
+ path p; p = z0 .. z9 .. z6 .. z3 .. cycle;
+ numeric t;
+ t = xpart ((subpath (0,1) of p)
+ intersectiontimes (quartercircle
+ scaled (2 * ((x0-x1)++(y9-y1)+-+(x0-x9))) shifted z1));
+endsyllao (((subpath (t,4) of p) & (subpath (0,t) of p) --- z1 -- z2));
+
+beginsyll ("q", letter_width#); "ve/vi";
+ pickup big_nib;
+ top y0 = top y2 = h+o; y0 - y6 = x3 - x9 = .35h;
+ lft x9 = w - rt x2 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ x1 = .5w; bot y1 = -o;
+ path p; p = z9 .. z6 .. z3 .. z0 .. cycle;
+ numeric t;
+ t = xpart ((subpath (0,1) of p)
+ intersectiontimes (quartercircle rotated 90
+ scaled (2 * ((x6-x1)++(y9-y1)+-+(x6-x9))) shifted z1));
+endsyllei (((subpath (t,4) of p) & (subpath (0,t) of p) --- z1 -- z2));
+
+beginsyll ("u", letter_width#); "tha/tho";
+ pickup big_nib;
+ top y0 = top y1 = h; y0 - y6 = x3 - x9 = .35h;
+ lft x2 = w - rt x3 = w - rt x5 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ x1 = x4 = .4w; bot y4 = bot y5 = 0; y2 = .5h;
+endsyllao (z0 .. z9 .. z6 .. z3 .. z0 -- z1 .. z2 .. z4 -- z5);
+
+beginsyll ("u", letter_width#); "the/thi";
+ pickup big_nib;
+ top y0 = top y5 = h+o; y0 - y6 = x3 - x9 = .35h;
+ lft x1 = lft x9 = w - rt x4 = w - rt x5 = straight_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ y1 = y4 = .4h; x2 = .5w; bot y2 = -o;
+endsyllei (z9 .. z6 .. z3 .. z0 .. z9 -- z1 .. z2 .. z4 -- z5);
+
+beginsyll (125, letter_width#); "ttha/ttho";
+ pickup big_nib;
+ rt x1 = rt x5 = rt x7 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4w; x6 = .6w;
+ bot y1 = bot y2 = -o; top y4 = top y5 = h+o;
+ y3 = y6 = y7 = .5h;
+endsyllao (z1 -- z2 .. z3 .. z4 -- z5, z6 -- z7);
+
+beginsyll (125, letter_width#); "tthe/tthi";
+ pickup big_nib;
+ w - rt x1 = w - rt x2 = lft x4 = lft x5 = straight_sidebar;
+ x3 = x6 = x7 = .5w;
+ top y1 = top y5 = top y7 = h+o;
+ bot y3 = -o; y2 = y4 = .4h; y6 = .6h;
+endsyllei (z1 -- z2 .. z3 .. z4 -- z5, z6 -- z7);
+
+beginsyll (124, letter_width#); "tya/tyo";
+ pickup big_nib;
+ rt x1 = rt x5 = rt x6 = rt x8 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4w; x7 = .5w;
+ bot y1 = bot y2 = -o; top y4 = top y5 = h+o;
+ y3 = y7 = .5h; y5 - y6 = y6 - y8 = y8 - y1;
+endsyllao (z1 -- z2 .. z3 .. z4 -- z5, z6{left} ... z7 ... {right}z8);
+
+beginsyll (124, letter_width#); "tye/tyi";
+ pickup big_nib;
+ w - rt x1 = w - rt x2 = lft x4 = lft x5 = straight_sidebar;
+ x3 = x7 = .5w; x5 - x6 = x6 - x8 = x8 - x1;
+ top y1 = top y5 = top y6 = top y8 = h+o;
+ bot y3 = -o; y2 = y4 = .4h; y7 = .5h;
+endsyllei (z1 -- z2 .. z3 .. z4 -- z5, z6{down} ... z7 ... {up}z8);
+
+beginsyll ("h", letter_width#); "Nunavik h@";
+ pickup big_nib;
+ x1 = x3 = .5w;
+ bot y3 = round(-o); y1 = .6h;
+ rt x2 = w - curve_sidebar;
+ lft x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3];
+ top z5 = (x4, h+o);
+ z6 = (0, .6h);
+endsyllxy (z6 -- z5 -- z4{down} .. z3 .. z2 .. z1{left} .. z4);
+
+beginchar ("H", letter_width#, ex#, 0); "Nunavut h";
+ pickup big_nib;
+ lft x1 = lft x2 = w - rt x3 = w - rt x4 = straight_sidebar;
+ top y1 = top y3 = h+o; bot y2 = bot y4 = -o;
+ draw z1 -- z2; draw z3 -- z4; draw .5 [z1, z2] -- .5 [z3, z4];
+endchar;
+
+beginsyll ("j", letter_width#); "tlh@";
+ pickup big_nib;
+ x1 = x3 = .5w;
+ bot y3 = round(-o); y1 = .6h;
+ rt x2 = w - curve_sidebar;
+ lft x4 = straight_sidebar;
+ y2 = y4 = .5[y1,y3];
+ top z5 = (x4, h+o);
+endsyllxy (z5 -- z4{down} .. z3 .. z2 .. z1{left} -- (x2,y5));
+
+beginsyll (123, letter_width#); "rh@";
+ pickup big_nib;
+ rt x2 = w - curve_sidebar;
+ lft x5 = straight_sidebar;
+ x3 = .3[x2,x5];
+ top y5 = h+o; bot y3 = -o; y2 = .4h;
+endsyllxy (z2 .. z3 .. tension 1.2 .. {up}z5 -- (x5,y3));
+
+beginsyll ("e", letter_width#); "Sayisi sh@";
+ pickup big_nib;
+ x1 = x3 = .5w;
+ bot y3 = round(-o); y1 = .6h;
+ rt x2 = w - curve_sidebar;
+ lft x4 = straight_sidebar;
+ y2 = y4 = .5[y1,y3];
+ top z5 = (x4, h+o);
+endsyllxy (z5 -- z4{down} .. z3 .. z2 .. z1{left} .. .5[z1,z3]);
+
+beginsyll ("v", letter_width#); "Woods Cree tha/tho";
+ pickup big_nib;
+ y1 = .6h; x1 = .5[x2,x4];
+ bot y3 = 0; x3 = x1;
+ x2 = .6w; lft x4 = curve_sidebar;
+ lft x6 = w - rt x7 = curve_sidebar;
+ y2 = y4 = .5 [y3, y1]; top y6 = top y7 = h;
+ rt z5 = (w - curve_sidebar, y3);
+endsyllao (z5 -- z3{left} .. z4 .. z1 .. z2 .. z3, z6 -- z7);
+
+beginsyll (54, letter_width#); "Woods Cree the/thi";
+ pickup big_nib;
+ bot y1 = -o; x1 = .5[x2,x4];
+ y3 = .6h; x3 = x1;
+ x2 = .6w; lft x4 = curve_sidebar;
+ lft x6 = w - rt x7 = curve_sidebar;
+ y2 = y4 = .5 [y3, y1]; top y6 = top y7 = h;
+ rt z5 = (w - curve_sidebar, y3);
+endsyllao (z5 -- z3{left} .. z4 .. z1 .. z2 .. z3, z6 -- z7);
+
+beginsyll ("d", letter_width#); "lh@";
+ pickup big_nib;
+ x0 = .5w; x2 = x4 = .4w;
+ rt x1 = w - straight_sidebar;
+ w - rt x5 = lft x3 = curve_sidebar;
+ bot y0 = -o; y1 = y2 = .45h; top y4 = h+o;
+ y3 = .5[y1,y4];
+endsyllxy (z0 -- z1 -- z2{left} .. z3 .. z4);
+
+beginsyll ("x", letter_width#); "th-Cree th@";
+ pickup big_nib;
+ y1 = .6h; bot y3 = round(-o);
+ rt x1 = w - curve_sidebar; x3 = .4w;
+ top lft z5 = (straight_sidebar, h+o);
+ lft x6 = 0; x7 = .5w;
+ y6 = y7 = .5 [y5, y1];
+endsyllxy (z5 -- (x5,y1) .. z1 -- z3, z6 -- z7);
+
+beginchar ("B", letter_width#, ex#, 0); "Aivilik b";
+ pickup big_nib;
+ lft x1 = lft x2 = straight_sidebar;
+ x9 = rt x1; rt x3 = w - curve_sidebar;
+ x0 = x6 = .5 [x9, x3];
+ top y1 = h+o; bot y2 = bot y6 = -o;
+ y0 = .5h; y9 = y3 = .5 [y0, y6];
+ draw z1 -- z2; draw z0 .. z3 .. z6 .. z9 .. cycle;
+endchar;
+
+beginchar (oct"347", letter_width#, ex#, 0); "Blackfoot o";
+ pickup big_nib;
+ lft x1 = lft x2 = straight_sidebar;
+ x9 = rt x1; rt x3 = w - curve_sidebar;
+ x0 = x6 = .5 [x9, x3];
+ top y1 = h+o; bot y2 = bot y6 = -o;
+ y0 = .5h; y9 = y3 = .5 [y0, y6];
+ draw z1 -- z2; filldraw z0 .. z3 .. z6 .. z9 .. cycle;
+endchar;
+
+beginchar (oct"307", letter_width#, ex#, 0); "Blackfoot i";
+ pickup big_nib;
+ rt x1 = rt x2 = w - straight_sidebar;
+ x3 = lft x1; lft x9 = curve_sidebar;
+ x0 = x6 = .5 [x9, x3];
+ top y1 = h+o; bot y2 = bot y6 = -o;
+ y0 = .5h; y9 = y3 = .5 [y0, y6];
+ draw z1 -- z2; filldraw z0 .. z3 .. z6 .. z9 .. cycle;
+endchar;
+
+beginchar (oct"347", letter_width#, ex#, 0); "Blackfoot o";
+ pickup big_nib;
+ lft x1 = lft x2 = straight_sidebar;
+ x9 = rt x1; rt x3 = w - curve_sidebar;
+ x0 = x6 = .5 [x9, x3];
+ top y1 = h+o; bot y2 = bot y6 = -o;
+ y0 = .5h; y9 = y3 = .5 [y0, y6];
+ draw z1 -- z2; filldraw z0 .. z3 .. z6 .. z9 .. cycle;
+endchar;
+
+beginchar (oct"207", letter_width#, ex#, 0); "Blackfoot a";
+ pickup big_nib;
+ rt x1 = rt x2 = w - straight_sidebar;
+ x3 = lft x1; lft x9 = curve_sidebar;
+ x0 = x6 = .5 [x9, x3];
+ top y1 = top y0 = h+o; bot y2 = -o;
+ y6 = .5h; y9 = y3 = .5 [y0, y6];
+ draw z1 -- z2; filldraw z0 .. z3 .. z6 .. z9 .. cycle;
+endchar;
+
+beginsyll ("o", letter_width#); "Blackfoot w@";
+ pickup big_nib;
+ lft x1 = straight_sidebar; top y1 = h+o;
+ rt x2 = w - curve_sidebar; bot y2 = 0;
+endsyllxy (z1 -- (x1,y2) -- z2, (x1,.5h) -- (x2,.5h));
+
+beginsyll ("w", letter_width#); "Blackfoot n@";
+ pickup big_nib;
+ lft x1 = straight_sidebar; top y1 = h+o;
+ rt x2 = w - curve_sidebar; bot y2 = 0;
+ z3 = (.3[x1,x2], y2); z4 = (.5[x2,x3], .4h);
+endsyllxy (z1 -- (x1,y2) -- z3{up} .. z4 .. {down}z2);
+
+beginsyll (127, letter_width#); "Blackfoot k@";
+ pickup big_nib;
+ lft x1 = straight_sidebar; top y1 = h+o;
+ rt x2 = w - curve_sidebar; bot y2 = -o;
+ z3 = (.5[x1,x2], .4h);
+endsyllxy (z1 -- (x1,y2) -- z3 -- z2);
+
+beginsyll ("i", letter_width#); "Sayisi h@";
+ pickup big_nib;
+ lft x1 = lft x2 = straight_sidebar;
+ bot y1 = -o; top y2 = h;
+ z3 = (.6w,.5h); rt x4 = w - curve_sidebar; y4 = .6h;
+endsyllxy (z1 -- z2{right} .. {right}z3 .. z4);
+
+beginchar(oct"100",letter_width#,ex#,0); "Chi";
+ pickup big_nib;
+ y1 = vround h; y2 = 0;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2; draw (x1,y2)--(x2,y1);
+endchar;
+
+beginchar(oct"010",.35em#,1.5ex#,0); "h";
+ pickup wee_nib;
+ y1 = y2 - vround .4ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- (x1,y2); draw (x2,y1) -- z2;
+endchar;
+
+beginchar("p",.4em#,1.5ex#,0); "p";
+ pickup wee_nib;
+ rt x1 = rt x5 = w - curve_sidebar;
+ lft x3 = curve_sidebar;
+ y1 = y5 + vround .45ex;
+ y3 = .5[y1,y5] = ex;
+ draw z5 -- z3 -- z1;
+endchar;
+
+beginchar("t",.4em#,1.5ex#,0); "t";
+ pickup wee_nib;
+ rt x1 = rt x5 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4[x3,x1]; y3 = .5[y1,y5] = ex;
+ y1 = y5 + vround .45ex; y1 = y2; y4 = y5;
+ draw z5 -- z4 .. z3 .. z2 -- z1;
+endchar;
+
+beginchar("c",.4em#,1.5ex#,0); "c";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4];
+ y0 = y3 + vround .45ex;
+ lft x0 = lft x2 = straight_sidebar;
+ w - rt x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- z2{down} .. z3 .. z4;
+endchar;
+
+beginchar(oct"003",.4em#,1.5ex#,0); "Sayisi th";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4];
+ y0 = y3 + vround .45ex;
+ rt x0 = rt x2 = w - straight_sidebar;
+ lft x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- z2{down} .. z3 .. z4;
+endchar;
+
+beginchar("k",.4em#,1.5ex#,0); "k";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4];
+ y0 = y3 + vround .45ex;
+ lft x0 = lft x2 = straight_sidebar;
+ w - rt x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- z2;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("h",.4em#,1.5ex#,0); "Nunavik h";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4];
+ y0 = y3 + vround .45ex;
+ lft x5 = 0; lft x0 = lft x2 = curve_sidebar;
+ w - rt x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3]; y5 = .6 [y3, y0];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z5 -- z0 -- z2;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar(oct"013",.4em#,1.5ex#,0); "kw";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4];
+ y0 = y3 + vround .45ex;
+ rt x0 = rt x2 = w - straight_sidebar;
+ lft x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- z2;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("m",.45em#,1.5ex#,0); "m";
+ pickup wee_nib;
+ y2 = y1 - vround .4ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- (x1,y2) -- z2;
+endchar;
+
+beginchar(oct"015",.45em#,1.5ex#,0); "mh";
+ pickup wee_nib;
+ y2 = y1 - vround .4ex; .5[y1,y2] = ex;
+ w - rt x1 = straight_sidebar = lft x2;
+ draw z1 -- (x1,y2) -- z2;
+endchar;
+
+beginchar("a",.45em#,ex#,0); "Athabaskan m";
+ pickup wee_nib;
+ lft x1 = lft x4 = w - rt x3 = w - rt x5 = curve_sidebar;
+ x2 = .5w;
+ y2 = .6h; bot y4 = bot y5 = 0; y1 = y3 = .75 [y5, y2];
+ draw z1 .. z2 .. z3 .. {z4-.5[z3,z5]}z4 -- z5;
+endchar;
+
+beginchar("A",letter_width#,ex#,0); "Sayisi m";
+ pickup big_nib;
+ lft x1 = lft x4 = w - rt x3 = w - rt x5 = curve_sidebar;
+ x2 = .5w;
+ top y2 = h+o; bot y4 = bot y5 = 0; y1 = y3 = .75 [y5, y2];
+ draw z1 .. z2 .. z3 .. {z4-.5[z3,z5]}z4 -- z5;
+endchar;
+
+beginchar("n",.4em#,1.5ex#,0); "n";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4]; x4 = .6[x2,x0];
+ y1 = y3 + vround .45ex; y0 = y3;
+ lft x2 = w - rt x0 = curve_sidebar;
+ y2 = y4 = .5[y1,y3] = ex;
+ draw z0 -- z3;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("v",.4em#,1.5ex#,0); "Woods Cree th";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4]; x4 = .6[x2,x0];
+ y5 = y6 = y3 + vround .45ex; y0 = y3;
+ lft x5 = lft x2 = w - rt x6 = w - rt x0 = curve_sidebar;
+ y2 = y4 = .5[y1,y3]; .5[y5,y0] = ex;
+ y1 = .6 [y0, y5];
+ draw z0 -- z3; draw z5 -- z6;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar(oct"016",.4em#,1.5ex#,0); "nh";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4]; x4 = .6[x2,x0];
+ y1 = y3 + vround .45ex; y0 = y3;
+ w - rt x2 = lft x0 = curve_sidebar;
+ y2 = y4 = .5[y1,y3] = ex;
+ draw z0 -- z3;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("Z",.4em#,1.5ex#,0); "West Cree l";
+ pickup wee_nib;
+ w - rt x1 = lft x2 = curve_sidebar;
+ x1 = x3 = x5; x2 = x4;
+ y1 = y5 + vround .45ex; y3 = .5 [y1, y5] = ex;
+ y2 = .5 [y1, y3]; y4 = .5 [y3, y5];
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+endchar;
+
+beginchar(oct"014",letter_width#,ex#,0); "medial l";
+ pickup big_nib;
+ w - rt x1 = lft x2 = curve_sidebar;
+ x1 = x3 = x5; x2 = x4;
+ top y1 = h+o; bot y5 = -o;
+ y2 = .5 [y1, y3]; y3 = .5 [y1, y5]; y4 = .5 [y3, y5];
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+endchar;
+
+beginchar("z",.4em#,1.5ex#,0); "West Cree r";
+ pickup wee_nib;
+ lft x1 = w - rt x2 = curve_sidebar;
+ x1 = x3 = x5; x2 = x4;
+ y1 = y5 + vround .45ex; y3 = .5 [y1, y5] = ex;
+ y2 = .5 [y1, y3]; y4 = .5 [y3, y5];
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+endchar;
+
+beginchar(oct"022",letter_width#,ex#,0); "medial r";
+ pickup big_nib;
+ lft x1 = w - rt x2 = curve_sidebar;
+ x1 = x3 = x5; x2 = x4;
+ top y1 = h+o; bot y5 = -o;
+ y2 = .5 [y1, y3]; y3 = .5 [y1, y5]; y4 = .5 [y3, y5];
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+endchar;
+
+beginchar("s",.4em#,1.5ex#,0); "s";
+ pickup wee_nib;
+ x1 = x3 = .5[x0,x4];
+ y0 = y3 + vround .45ex;
+ lft x0 = straight_sidebar;
+ w - rt x4 = curve_sidebar;
+ y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- (x0,y1) .. z1 .. z4 .. z3;
+endchar;
+
+beginchar("y",.4em#,1.5ex#,0); "y";
+ pickup wee_nib;
+ x3 = .6[x0,x1];
+ y0 = y3 + vround .45ex;
+ lft x0 = straight_sidebar;
+ w - rt x1 = curve_sidebar;
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- (x0,y1) .. z1 -- z3;
+endchar;
+
+beginchar("x",.4em#,1.5ex#,0); "th-Cree th";
+ pickup wee_nib;
+ x3 = .6[x0,x1];
+ y0 = y3 + vround .45ex;
+ lft x0 = straight_sidebar;
+ w - rt x1 = curve_sidebar;
+ lft x4 = curve_sidebar; x5 = .5w;
+ .5[y0,y3] = ex; .5[y0,y3] = y1;
+ y4 = y5 = .5 [y0, y1];
+ draw z0 -- (x0,y1) .. z1 -- z3;
+ draw z4 -- z5;
+endchar;
+
+beginchar("r",.4em#,1.5ex#,0); "r";
+ pickup wee_nib;
+ w - rt x0 = lft x3 = curve_sidebar;
+ x0 = x1 = x5; x2 = x4 = .4[x3,x1]; y3 = .5[y1,y5];
+ y5 = .5[y1,y0] = ex;
+ y1 = y0 + vround .45ex; y1 = y2; y4 = y5;
+ draw z0 -- z5 -- z4{left} .. z3 .. {right}z2 -- z1;
+endchar;
+
+beginchar("l",.4em#,1.5ex#,0); "l";
+ pickup wee_nib;
+ rt x5 = w - curve_sidebar;
+ lft x3 = curve_sidebar; x2 = x4 = .4[x3,x5];
+ y2 = y5 + vround .45ex; y4 = y5;
+ y3 = .5[y2,y5] = ex;
+ draw z5 -- z4 .. z3 .. {right}z2;
+endchar;
+
+picture savedimage;
+
+beginchar (123,.4em#,1.5ex#,0); "rh";
+ pickup wee_nib;
+ rt x2 = w - curve_sidebar;
+ lft x5 = straight_sidebar;
+ x3 = .3[x2,x5];
+ y5 = y3 + vround .45ex; .5[y3,y5] = ex; y2 = .4[y3,y5];
+ draw z2 .. z3 .. tension 1.2 .. {up}z5 -- (x5,y3);
+ savedimage := currentpicture;
+endchar;
+
+beginchar(91,.4em#,1.5ex#,0); "rh";
+ currentpicture := savedimage;
+endchar;
+
+beginchar("d",.4em#,1.5ex#,0); "lh";
+ pickup wee_nib;
+ rt x5 = w - lft x3 = w - curve_sidebar;
+ x0 = x2 = x4 = .4[x3,x5]; y3 = .5[y2,y5];
+ y5 = .5[y2,y0] = ex;
+ y2 = y0 + vround .45ex; y4 = y5;
+ draw z0 -- z5 -- z4{left} .. z3 .. z2;
+ savedimage := currentpicture;
+endchar;
+
+beginchar("D",.4em#,1.5ex#,0); "lh";
+ currentpicture := savedimage;
+endchar;
+
+beginchar("f",.4em#,1.5ex#,0); "sh";
+ pickup wee_nib;
+ x1 = x3 = .75[x5,x2];
+ x4 = x6 = .25[x5,x2];
+ y1 = y3 + vround .45ex; y6 = y1; y4 = y3;
+ lft x5 = w - rt x2 = curve_sidebar;
+ y2 = y5 = .5[y1,y3] = ex;
+ draw z3{right} .. z2 .. z1 .. .5[z5,z2] .. z4 .. z5 .. {right}z6;
+endchar;
+
+beginchar("u",.4em#,1.5ex#,0); "th";
+ pickup wee_nib;
+ y0 = y1 = y5 + vround .45ex; y0 - y6 = x3 - x9 = .45(y0-y5);
+ lft x2 = w - rt x3 = w - rt x5 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ x1 = x4 = .4w; y4 = y5; y2 = .5[y0,y5] = ex;
+ draw z0 .. z9 .. z6 .. z3 .. z0 -- z1 .. z2 .. z4 -- z5;
+ savedimage := currentpicture;
+endchar;
+
+beginchar("U",.4em#,1.5ex#,0); "th";
+ currentpicture := savedimage;
+endchar;
+
+beginchar("q",.4em#,1.5ex#,0); "v";
+ pickup wee_nib;
+ y0 = y2 + vround .45ex; y0 - y6 = x3 - x9 = .45(y0-y2);
+ lft x1 = w - rt x3 = w - rt x2 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ y1 = .5[y0,y2] = ex;
+ path p; p = z0 .. z9 .. z6 .. z3 .. cycle;
+ numeric t;
+ t = xpart ((subpath (0,1) of p)
+ intersectiontimes (quartercircle
+ scaled (2 * ((x0-x1)++(y9-y1)+-+(x0-x9))) shifted z1));
+ draw (subpath (t,4) of p) & (subpath (0,t) of p) --- z1 -- z2;
+ savedimage := currentpicture;
+endchar;
+
+beginchar("Q",.4em#,1.5ex#,0); "v";
+ currentpicture := savedimage;
+endchar;
+
+beginchar("P",.3em#,1.5ex#,0); "P";
+ pickup wee_nib;
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ x1 = x2 = .5w;
+ draw z1 -- z2;
+endchar;
+
+beginchar("T",.4em#,1.5ex#,0); "T";
+ pickup pencircle
+ xscaled wee_penwidth yscaled penthickness rotated (penangle+90);
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2;
+endchar;
+
+beginchar("C",.45em#,1.5ex#,0); "c";
+ pickup wee_nib;
+ y1 = y2 = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2;
+endchar;
+
+beginchar("K",.4em#,1.5ex#,0); "k";
+ pickup wee_nib;
+ y1 = y2 + vround .45ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2;
+endchar;
+
+beginchar("M",.4em#,1.5ex#,0); "m";
+ pickup wee_nib;
+ rt x1 = rt x5 = w - curve_sidebar;
+ lft x3 = curve_sidebar;
+ y1 = y5 + vround .45ex;
+ y3 = .5[y1,y5] = ex;
+ draw z5{left} .. z3 .. {right}z1;
+endchar;
+
+beginchar("N",.4em#,1.5ex#,0); "n";
+ pickup wee_nib;
+ lft x1 = lft x3 = curve_sidebar;
+ rt x4 = w - curve_sidebar;
+ y1 = y3 + vround .45ex;
+ y4 = .5[y1,y3] = ex;
+ draw z3{right} .. z4 .. {left}z1;
+endchar;
+
+beginchar("S",.4em#,1.5ex#,0); "s";
+ pickup wee_nib;
+ x1 = good.x .5w; lft x2 = w - rt x4 = curve_sidebar;
+ y1 = y2 + vround .45ex; .5[y1,y2] = ex; y2 = y4;
+ draw z4{up} .. z1 .. {down}z2;
+endchar;
+
+beginchar("X",.45em#,1.5ex#,0); "th-Cree th";
+ pickup wee_nib;
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ x1 = x2 = .5w;
+ lft x3 = straight_sidebar = w - rt x4;
+ x3 = x5; x4 = x6;
+ y3 = y4 = .3[y1,y2]; y5 = y6 = .7[y1,y2];
+ draw z1 -- z2; draw z3 -- z4; draw z5 -- z6;
+endchar;
+
+beginchar("Y",.45em#,1.5ex#,0); "y";
+ pickup wee_nib;
+ y1 = y2 - vround .45ex; .5[y1,y2] = y3 = y4 = ex;
+ x1 = x2 = .5w;
+ lft x3 = straight_sidebar = w - rt x4;
+ draw z1 -- z2; draw z3 -- z4;
+endchar;
+
+beginchar("L",.45em#,1.5ex#,0); "l";
+ pickup wee_nib;
+ y3 = y4 = y2 + vround .45ex; .5[y3,y2] = ex;
+ x2 = .5w;
+ lft x3 = straight_sidebar = w - rt x4;
+ draw (x2,y3) -- z2; draw z3 -- z4;
+endchar;
+
+beginchar("R",.4em#,1.5ex#,0); "r";
+ pickup pencircle
+ xscaled wee_penwidth yscaled penthickness rotated (penangle+90);
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw (x2,y1) -- z1 -- z2 -- (x1,y2);
+endchar;
+
+beginchar("F",.4em#,1.5ex#,0); "sh";
+ pickup wee_nib;
+ x1 = good.x .5w; lft x2 = w - rt x4 = curve_sidebar;
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex; y2 = y4;
+ draw z2{down} .. z1 .. {up}z4;
+endchar;
+
+beginchar("w",.4em#,1.5ex#,0); "w";
+ pickup wee_nib;
+ x1 = x3 = good.x .5w;
+ y1 = y3 + vround .45ex;
+ lft x2 = w - rt x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3] = ex;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("W",.4em#,ex#,0); "The w mark";
+ pickup big_nib;
+ x1 = good.x .5w; y1 = good.y .6h;
+ draw_dot(1);
+endchar;
+
+beginchar("'",letter_width#,1.3ex#,0); "The length mark";
+ pickup big_nib;
+ x1 = good.x (.5w); top y1 = h;
+ draw_dot(1);
+endchar;
+
+beginchar(oct"030",.4em#,1.5ex#,0); "x";
+ pickup wee_nib;
+ y1 = y2 + vround .45ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2; draw (x1,y2)--(x2,y1);
+endchar;
+
+beginchar(".",.4em#,.45ex#,0); "full stop";
+ pickup wee_nib;
+ y1 = vround h; y2 = 0;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2; draw (x1,y2)--(x2,y1);
+endchar;
+
+end.