%% The following licence statement added by Clea F. Rees on %% behalf of Ivan A Derzhanski on 2008/10/25: %% This software consists of the files casyldoc.ps, %% casyldoc.tex, casyll10.mf and casyltex.sty. It is %% released to the Public Domain. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % casyll10.mf: Cree/Inuktitut 10 point % (based on Julian Bradfield's teng10.mf) % 22 February 1999 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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# = .8big_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 (expr p) = chardx := w; charcode := charcode + 32; clearit; draw p; if proofing > 0: makebox (proofrule); fi shipit; if displaying > 0: makebox (screenrule); showit; fi charcode := charcode + 96; clearit; draw p reflectedabout ((.5w,0), (.5w,h)); if proofing > 0: makebox (proofrule); fi shipit; if displaying > 0: makebox (screenrule); showit; fi endgroup enddef; def endsyllei (expr p) = chardx := w; charcode := charcode + 64; clearit; draw p; if proofing > 0: makebox (proofrule); fi shipit; if displaying > 0: makebox (screenrule); showit; fi charcode := charcode + 32; clearit; draw p reflectedabout ((0,.5h), (w,.5h)); if proofing > 0: makebox (proofrule); fi shipit; if displaying > 0: makebox (screenrule); showit; fi endgroup enddef; def endsyllxy (expr p) = chardx := w; charcode := charcode + 32; clearit; draw p; if proofing > 0: makebox (proofrule); fi shipit; if displaying > 0: makebox (screenrule); showit; fi charcode := charcode + 32; clearit; draw p reflectedabout ((0,.5h), (w,.5h)) reflectedabout ((.5w,0), (.5w,h)); if proofing > 0: makebox (proofrule); fi shipit; if displaying > 0: makebox (screenrule); showit; fi charcode := charcode + 32; clearit; draw p reflectedabout ((0,.5h), (w,.5h)); if proofing > 0: makebox (proofrule); fi shipit; if displaying > 0: makebox (screenrule); showit; fi charcode := charcode + 32; clearit; draw p reflectedabout ((.5w,0), (.5w,h)); 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(ex+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 = 0; y2 = h; endsyllao (z1 -- z3 -- z2 -- z1); beginsyll ("`", letter_width#); "e/i"; pickup big_nib; y1 = h; x1 = w - x2; y2 = h; x2 = straight_sidebar; x3 = .5[x1,x2]; bot y3 = round 0; endsyllei (z1 -- z3 -- z2 -- z1); beginsyll ("p", letter_width#); "pa/po"; pickup big_nib; x2 = curve_sidebar = w - x1 = w - x3; y2 = .5h; y1 = h; y3 = 0; endsyllao (z1 -- z2 -- z3); beginsyll ("p", letter_width#); "pe/pi"; pickup big_nib; y1 = h; x1 = w - x2; y2 = h; x2 = straight_sidebar; x3 = .5[x1,x2]; bot y3 = round 0; endsyllei (z1 -- z3 -- z2); 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 = 0; top y4 = top y5 = h; 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 ("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 ("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 ("n", letter_width#); "n@"; pickup big_nib; top y1 = round(ex+o); x1 = .5[x2,x4]; bot y3 = round(-o); 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 ("m", letter_width#); "m@"; pickup big_nib; lft x1 = straight_sidebar; top y1 = h; rt x2 = w - curve_sidebar; bot y2 = 0; endsyllxy (z1 -- (x1,y2) -- z2); 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, ex+o); endsyllxy (z5 -- (x5,y1) .. z1 .. z2 .. {left}z3); 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, ex+o); endsyllxy (z5 -- (x5,y1) .. z1 -- z3); beginsyll ("r", letter_width#); "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#); "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 ("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 (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 (124, 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 (125, letter_width#); "sha/sho"; pickup big_nib; top y1 = top y6 = round(ex+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 (125, letter_width#); "she/shi"; pickup big_nib; x0 = x3 = .5w; top y0 = ex+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 (126, 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 (126, 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 ("v", 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 ("v", 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)); beginchar("h",.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("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("m",.45em#,1.5ex#,0); "m"; pickup wee_nib; y1 = y2 - vround .4ex; .5[y1,y2] = ex; lft x1 = straight_sidebar = w - rt x2; draw z1 -- (x1,y2) -- z2; 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("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("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(124,.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(92,.4em#,1.5ex#,0); "lh"; currentpicture := savedimage; endchar; beginchar(125,.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(126,.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(94,.4em#,1.5ex#,0); "th"; currentpicture := savedimage; endchar; beginchar("v",.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("V",.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("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(93,.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; end.