diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/oriya/mf/oriya |
Initial commit
Diffstat (limited to 'language/oriya/mf/oriya')
35 files changed, 6704 insertions, 0 deletions
diff --git a/language/oriya/mf/oriya/dotcirc.mf b/language/oriya/mf/oriya/dotcirc.mf new file mode 100644 index 0000000000..5ac4a00887 --- /dev/null +++ b/language/oriya/mf/oriya/dotcirc.mf @@ -0,0 +1,88 @@ +% dotcirc.mf -- Dotted Circle +% Copyright 1993, 1996 Jeroen Hellingman +% +% History: +% 18-NOV-1996 added crossed out box (JH) +% 29-SEP-1996 added real dotted circle (JH) +% 06-JUN-1996 adopted from mmpunct.mf (JH) +% +%%%%% dotted circle to show placement of accents/matras, etc. + +% this one is actually made up out of little curved segments, not dots. + +if old: +beginchar(c_dotted_circle, 30uw#+rm#, 25uh#, 5uh#); "U+25CC dotted circle"; + numeric n, d, db, r, rb, i, a; + z0 = (15uw, 10uh); + n:=14; + d:=360/n; db:=360/(4n); + r:=15uh; rb:=15uh - thin; + + a := 0; + forsuffixes s = 1,2,3,4,5,6,7,8,9,10,11,12,13,14 : + z.s.a = z0 + r * dir (a+db); + z.s.b = z0 + r * dir a; + z.s.c = z0 + r * dir (a-db); + z.s.d = z0 + rb * dir (a-db); + z.s.e = z0 + rb * dir a; + z.s.f = z0 + rb * dir (a+db); + fill z.s.a..z.s.b..z.s.c--z.s.d..z.s.e..z.s.f--cycle; + a := a + d; + penlabels(s.a,s.b,s.c,s.d,s.e,s.f); + endfor; + penlabels(0); +endchar; +fi; + +% dotted circle with real dots. + +beginchar(c_dotted_circle, 30uw#+rm#, 25uh#, 5uh#); "U+25CC dotted circle"; + numeric n, d, r, i, a; + z0 = (15uw, 10uh); + n:=14; + d:=360/n; + r:=15uh; + + pickup pencircle scaled thick; + a := 0; + forsuffixes s = 1,2,3,4,5,6,7,8,9,10,11,12,13,14 : + z.s = z0 + r * dir a; + drawdot(z.s); + a := a + d; + penlabels(s); + endfor; + penlabels(0); +endchar; + +%%%%%% white square, to show missing characters + +beginchar(c_white_square, 30uw#+rm#, 25uh#, 5uh#); "U+25A1 white square"; + pickup pensquare scaled thick; + z1=(0,-5uh)+.5(thick, thick); + z2=(0,25uh)+.5(thick, -thick); + z3=(30uw, 25uh)+.5(-thick, -thick); + z4=(30uw, -5uh)+.5(-thick, thick); + draw z1--z2 & z2--z3 & z3--z4 & z4--cycle; + penlabels(1,2,3,4); +endchar; + +%%%%%% crossed white square to fill empty cells + +beginchar(c_crossed_white_square, 30uw#+rm#, 25uh#, 5uh#); "crossed white square"; + pickup pensquare scaled thick; + z1=(0,-5uh)+.5(thick, thick); + z2=(0,25uh)+.5(thick, -thick); + z3=(30uw, 25uh)+.5(-thick, -thick); + z4=(30uw, -5uh)+.5(-thick, thick); + draw z1--z2 & z2--z3 & z3--z4 & z4--cycle; + pickup pensquare scaled thick rotated 45; + z1'=(0,-5uh)+(thick, thick); + z2'=(0,25uh)+(thick, -thick); + z3'=(30uw, 25uh)+(-thick, -thick); + z4'=(30uw, -5uh)+(-thick, thick); + draw z1'--z3'; + draw z2'--z4'; + penlabels(1,2,3,4,1',2',3',4'); +endchar; + +% end of dotcirc.mf diff --git a/language/oriya/mf/oriya/getcode.awk b/language/oriya/mf/oriya/getcode.awk new file mode 100644 index 0000000000..1ecffaae84 --- /dev/null +++ b/language/oriya/mf/oriya/getcode.awk @@ -0,0 +1,8 @@ + +BEGIN { FS = "%%" + } + + { if($2 != "") + { print $2 + } + }
\ No newline at end of file diff --git a/language/oriya/mf/oriya/or10.mf b/language/oriya/mf/oriya/or10.mf new file mode 100644 index 0000000000..b35d0cd681 --- /dev/null +++ b/language/oriya/mf/oriya/or10.mf @@ -0,0 +1,29 @@ +% or10.mf -- Oriya regular 10 pt parameter file +% Copyright 1996 Jeroen Hellingman +% +% History: +% 16-NOV-1996 reduced size, to fit better with 10pt Roman (JH) +% 15-MAY-1996 created from oriya.mf (Jeroen Hellingman) + +mode_setup; + +input orcode; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.21pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.8uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "OR10"; + +input oriya; + +% end of or10.mf diff --git a/language/oriya/mf/oriya/or12.mf b/language/oriya/mf/oriya/or12.mf new file mode 100644 index 0000000000..2e5a97d6c9 --- /dev/null +++ b/language/oriya/mf/oriya/or12.mf @@ -0,0 +1,25 @@ +% or12.mf -- Oriya regular 12 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; + +input orcode; +input orbase; + +gensize# := 12pt#; +uh# := 0.25pt#; % unit height, (X-height is 25uh) +uw# := 0.25pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.7uh#; % smallest diameter of pen + +font_size 12pt#; +font_identifier := "OR12"; + +input oriya; + +% end of or12.mf diff --git a/language/oriya/mf/oriya/or17.mf b/language/oriya/mf/oriya/or17.mf new file mode 100644 index 0000000000..4bedc456e7 --- /dev/null +++ b/language/oriya/mf/oriya/or17.mf @@ -0,0 +1,25 @@ +% or17.mf -- Oriya regular 17 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; + +input orcode; +input orbase; + +gensize# := 17.28pt#; +uh# := 0.36pt#; % unit height, (X-height is 25uh) +uw# := 0.34pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.6uh#; % smallest diameter of pen + +font_size 17.28pt#; +font_identifier := "OR17"; + +input oriya; + +% end of or17.mf diff --git a/language/oriya/mf/oriya/or8.mf b/language/oriya/mf/oriya/or8.mf new file mode 100644 index 0000000000..4b644310ad --- /dev/null +++ b/language/oriya/mf/oriya/or8.mf @@ -0,0 +1,23 @@ +% or8.mf -- Oriya regular 8 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 8pt#; +uh# := 0.17pt#; % unit height, (X-height is 25uh) +uw# := 0.18pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.8uh#; % smallest diameter of pen + +font_size 8pt#; +font_identifier := "OR8"; + +input oriya; + +% end of or8.mf diff --git a/language/oriya/mf/oriya/orbase.mf b/language/oriya/mf/oriya/orbase.mf new file mode 100644 index 0000000000..5379ccc9e6 --- /dev/null +++ b/language/oriya/mf/oriya/orbase.mf @@ -0,0 +1,388 @@ +% orbase.mf -- base file for the Oriya metafont +% Copyright 1996 Jeroen Hellingman +% +% History: +% 27-NOV-1996 last edit (JH) +% 07-JUN-1996 added `hints' for discretion (JH) +% 15-MAY-1996 created from oriya.mf (Jeroen Hellingman) +% +%% define the character codes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% input orcode.mf % <--- now called from parent file + +%% \section{boolean variables} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% skeleton reduces all lines to very thin lines +boolean skeleton; skeleton := false; + +%% Setting calligraphic adds some effects that +%% won't work fine with equal line thickness. +%% The effects work nice with $(30 \leq rot \leq 60)$ +boolean calligraphic; calligraphic := true; + +%% old skips all old designs of glyphs in the file +boolean old; old := false; + +%% ligs: use consonant-matra ligatures +boolean ligs; ligs := true; + +%% \section{picture variable} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +picture savepicture; + +%% \section{definitions} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% adjust the position of non-spacing characters, to be alined under or above the +% previous character. + +def adjustpos(expr w) = + if mode <> proof: + currentpicture := currentpicture shifted -(w, 0uh); + fi; +enddef; + +def eye(suffix a,b,c,d) (expr w, h) = + % define points of ellipse relative to z.a + % z.a = left point, clockwise direction + % w = width of ellipse + % h = height of ellipse + z.b = (x.a + .5w, y.a + .5h); + z.c = (x.a + w, y.a); + z.d = (x.a + .5w, y.a - .5h); +enddef; + +def draw_eye(suffix a,b,c,d) = + % draw eye through four points defined by eye + draw z.a{up}..z.b{right}..z.c{down}..z.d{left}..cycle; +enddef; + +%% tailtwo defines a tail which looks a bit like the roman numeral two +%% it is used in yya, caa, and for secondary bha + +def tailtwo(suffix a, b, c, d, e, f, g) = + z.a = z.b + (-4uw, -4uh); + z.c = z.b + (3uw, -3uh); + z.d = z.a + (0uw, -8uh); + z.e = z.d + (3.5uw, 2uh); + z.f = z.d + (7uw, -1uh); + z.g = z.d + (10uw, 1uh); + draw z.a..z.b{right}..z.c{down}..{curl0}z.d; + draw z.d{curl0}..z.e{right}..z.f{right}..{curl0}z.g; + drawdot(z.a); + drawdot(z.d); + drawdot(z.g); +enddef; + +def new_tailtwo(suffix a, b, c, d, e, f, g) = + z.a = z.b + (-4uw, -4uh); + z.c = z.b + (4uw, -4uh); + z.d = z.b + (0, -9uh); + z.e = z.d + (4.5uw, -5.5uh); + z.f = z.d + (7uw, -1uh); % not used + z.g = z.d + (10uw, 1uh); % not used + draw z.a{up}..z.b{right}..z.c{down}..{curl0}z.d; + draw z.d--z.e; + drawdot(z.a); + drawdot(z.d); + drawdot(z.e); +enddef; + +% various types of outer circles with the vowel signs attached to +% them + +def outer_circle = + pickup curvepen; + % z1 to be defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); + % x4 to be defined by caller + y4 = 16uh; + z5 = (x4-1uw, 12uh); + draw z1..z2{up}..z3{right}..z4{down}..z5; drawdot(z5); + penlabels(1,2,3,4,5); +enddef; + +def aa_circle = + pickup curvepen; + % z1 to be defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); + % x4 to be defined by caller + y4 = 25uh-joint; + draw z1..z2{up}..z3{right}..{curl0}z4; + pickup barpen; + z5 = (x4, 25uh); + z6 = (x5, 0uh); + draw z5--z6; drawdot(z5); drawdot(z6); + penlabels(1,2,3,4,5,6); +enddef; + +def i_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 14uh); + z6 = (6uw, good.y 20uh); + z7 = (15uw, 18uh); + draw z1..z2{up}..z6{right}..z7; + z8 = (8uw, 20.125uh); + z9 = (good.x 7uw, 22uh); + z3 = (14.5uw, good.y (25uh+overshoot)); + % x4 defined by caller + y4 = 16uh; + z5 = (x4-1uw, 12uh); + draw z8..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); + penlabels(1,2,3,4,5,6,7,8,9); +enddef; + +def narrow_i_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 15uh); + z6 = (5uw, good.y 20uh); + z7 = (12uw, 19uh); + draw z1..z2{up}..z6{right}..z7; + z8 = (6uw, 20.125uh); + z9 = (good.x 5uw, 22uh); + z3 = (12.5uw, good.y (25uh+overshoot)); + % x4 defined by caller + y4 = 16uh; + z5 = (x4-1uw, 12uh); + draw z8..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); + penlabels(1,2,3,4,5,6,7,8,9); +enddef; + +def u_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (0.4833[x2,x4], good.y (25uh+overshoot)); % curious value + % x4 defined by caller + y4 = 10uh; + z5 = (x4 - 14uw, good.y -10uh); + z6 = (good.x (x4 - 18uw), -7uh); + z7 = (x5, good.y -4uh); + z8 = (x4, good.y -11uh); + z9 = (x4 + 6uw, -9uh); + draw z1..z2{up}..z3{right}..tension0.9..z4{down}..tension1.1..z5{left} + ..z6{up}..z7{right}..z8{right}..z9; + drawdot(z9); + penlabels(1,2,3,4,5,6,7,8,9); +enddef; + +def uu_circle = + pickup curvepen; + % z1 to be defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); + % x4 to be defined by caller + y4 = 10uh; + z5 = (x4-6uw, -3uh); % matches z2 in "Oriya vowel sign uu" + z6 = (good.x(x5-5uw), -8uh); % z3 + z7 = (x5-2uw, good.y -11uh); % z4 + z8 = (x5+3.5uw, good.y -8.5uh); % z5 + z9 = (x5+14uw, good.y -14uh); % z6 + z9' = (x9+2uw, y9+1uh); % z7 + draw z1..z2{up}..z3{right}..tension 0.9..z4{down}..z5..z6{down}..z7{right} + ..z8{right}..z9{right}..z9'; drawdot(z9'); + penlabels(1,2,3,4,5,6,7,8,9,9'); +enddef; + +def tail_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2, x4], good.y (25uh+overshoot)); + y4 = 13uh; + z5 = (x4 - 3uw, 2uh); + z6 = (x4 + 2uw, -4uh); + draw z1..z2{up}..z3{right}..tension0.95..z4{down}..z5; drawdot(z5); + draw z5--z6; drawdot(z6); + penlabels(1,2,3,4,5,6); +enddef; + +def loop_tail_circle = % loop tail circle as on uu and ri + pickup curvepen; + % z1 = (5.5uw, 9.5uh); % z1 defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); % adjusted + % z4 = (28uw, 16uh); % adjusted (x4 defined by caller) + y4 = 16uh; + z5 = (x4-3uw, good.y 9uh); % adjusted + draw z1..z2{up}..z3{right}..z4{down}..tension 0.9..z5; + drawdot(z5); + % loop and tail + z6 = (x4 + 1uw, 6.5uh); + z7 = (x4 - 1uw, 0uh); + z8 = (x4 + 3.1667uw, -5uw); + draw z5{right}..z6..z7; draw z7--z8; drawdot(z6); + penlabels(1,2,3,4,5,6,7,8); +enddef; + +% a set of new macros, for better appearance of the letters + +def define_new_outer_circle = + % z1 to be defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); + % x4 to be defined by caller + y4 = 16uh; + z5 = (x4-1.5uw, 12uh); +enddef; + +def draw_new_outer_circle = + pickup curvepen; + draw z1{left}..z2{up}..z3{right}..z4{down}..z5; + drawdot(z5); + penlabels(1,2,3,4,5); +enddef; + +def new_outer_circle_path = + z1{left}..z2{up}..z3{right}..z4{down}..z5 +enddef; + +def new_outer_circle = + define_new_outer_circle; + draw_new_outer_circle; +enddef; + +def new_aa_circle = + pickup curvepen; + % z1 to be defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); + % x4 to be defined by caller + y4 = 25uh-joint; + draw z1{left}..z2{up}..z3{right}..{curl0}z4; + pickup barpen; + z5 = (x4, 25uh); + z6 = (x5, 0uh); + draw z5--z6; drawdot(z5); drawdot(z6); + penlabels(1,2,3,4,5,6); +enddef; + +def new_i_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 15uh); + z6 = (6uw, good.y 20uh); + z7 = (15uw, 18uh); + draw z1..z2{up}..z6{right}..z7; + z8 = (8uw, 20.125uh); + z9 = (good.x 7uw, 22uh); + z3 = (14.5uw, good.y (25uh+overshoot)); + % x4 defined by caller + y4 = 16uh; + z5 = (x4-1.5uw, 12uh); + draw z8{left}..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); + penlabels(1,2,3,4,5,6,7,8,9); +enddef; + +def new_narrow_i_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 15uh); + z6 = (5uw, good.y 20uh); + z7 = (12uw, 19uh); + draw z1{left}..z2{up}..z6{right}..z7; + z8 = (6uw, 20.125uh); + z9 = (good.x 5uw, 22uh); + z3 = (12.5uw, good.y (25uh+overshoot)); + % x4 defined by caller + y4 = 16uh; + z5 = (x4-1uw, 12uh); + draw z8..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); + penlabels(1,2,3,4,5,6,7,8,9); +enddef; + +def new_u_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (0.4833[x2,x4], good.y (25uh+overshoot)); % curious value + % x4 defined by caller + y4 = 10uh; + z5 = (x4 - 14uw, good.y -10uh); + z6 = (good.x (x4 - 18uw), -7uh); + z7 = (x5, good.y -4uh); + z8 = (x4, good.y -11uh); + z9 = (x4 + 6uw, -9uh); + draw z1{left}..z2{up}..z3{right}..tension0.9..z4{down}..tension1.1..z5{left} + ..z6{up}..z7{right}..z8{right}..z9; + drawdot(z9); + penlabels(1,2,3,4,5,6,7,8,9); +enddef; + +def new_uu_circle = + pickup curvepen; + % z1 to be defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); + % x4 to be defined by caller + y4 = 10uh; + z5 = (x4-6uw, -3uh); % matches z2 in "Oriya vowel sign uu" + z6 = (good.x(x5-5uw), -8uh); % z3 + z7 = (x5-2uw, good.y -11uh); % z4 + z8 = (x5+3.5uw, good.y -8.5uh); % z5 + z9 = (x5+14uw, good.y -14uh); % z6 + z9' = (x9+2uw, y9+1uh); % z7 + draw z1{left}..z2{up}..z3{right}..tension 0.9..z4{down}..z5..z6{down}..z7{right} + ..z8{right}..z9{right}..z9'; drawdot(z9'); + penlabels(1,2,3,4,5,6,7,8,9,9'); +enddef; + +def new_tail_circle = + pickup curvepen; + % z1 defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2, x4], good.y (25uh+overshoot)); + y4 = 13uh; + z5 = (x4 - 3uw, 2uh); + z6 = (x4 + 2uw, -4uh); + draw z1{left}..z2{up}..z3{right}..tension0.95..z4{down}..z5; drawdot(z5); + draw z5--z6; drawdot(z6); + penlabels(1,2,3,4,5,6); +enddef; + +def new_loop_tail_circle = % loop tail circle as on uu and ri + pickup curvepen; + % z1 = (5.5uw, 9.5uh); % z1 defined by caller + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); % adjusted + % z4 = (28uw, 16uh); % adjusted (x4 defined by caller) + y4 = 16uh; + z5 = (x4-3uw, good.y 9uh); % adjusted + draw z1{left}..z2{up}..z3{right}..z4{down}..tension 0.9..z5; + drawdot(z5); + % loop and tail + z6 = (x4 + 1uw, 6.5uh); + z7 = (x4 - 1uw, 0uh); + z8 = (x4 + 3.1667uw, -5uw); + draw z5{right}..z6..z7; draw z7--z8; drawdot(z6); + penlabels(1,2,3,4,5,6,7,8); +enddef; + +% top left eye, that turns the pa into a pha. + +def top_left_eye = + pickup curvepen; + z31 = (x31, 18uh); + z32 = (x31+3.5uw, good.y 16uh); + z33 = (good.x (x31+7uw), 20.5uh); + z34 = (x32, good.y 25uh); + z35 = (x31, 23uh); + draw z31..z32{right}..z33{up}..z34{left}..z35; + penlabels(31,32,33,34,35) +enddef; + +def ta_tail = + pickup curvepen; + z2 = z1 + (-3.5uw, 2uh); + z3 = z1 + (-7uw, -2uh); + z4 = z1 + (6uw, -12uh); + draw z1..z2{left}..z3{down}..{curl0}z4; + penlabels(1,2,3,4); +enddef; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% end of orbase.mf diff --git a/language/oriya/mf/oriya/orbf10.mf b/language/oriya/mf/oriya/orbf10.mf new file mode 100644 index 0000000000..b7342677eb --- /dev/null +++ b/language/oriya/mf/oriya/orbf10.mf @@ -0,0 +1,23 @@ +% orbf10.mf -- Oriya bold 10 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.22pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.7uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORBF10"; + +input oriya; + +% end of orbf10.mf diff --git a/language/oriya/mf/oriya/orbf12.mf b/language/oriya/mf/oriya/orbf12.mf new file mode 100644 index 0000000000..b8510b162f --- /dev/null +++ b/language/oriya/mf/oriya/orbf12.mf @@ -0,0 +1,23 @@ +% orbf12.mf -- Oriya bold 12 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 12pt#; +uh# := 0.25pt#; % unit height, (X-height is 25uh) +uw# := 0.26pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.6uh#; % smallest diameter of pen + +font_size 12pt#; +font_identifier := "ORBF12"; + +input oriya; + +% end of orbf12.mf diff --git a/language/oriya/mf/oriya/orbf17.mf b/language/oriya/mf/oriya/orbf17.mf new file mode 100644 index 0000000000..70e0e671d9 --- /dev/null +++ b/language/oriya/mf/oriya/orbf17.mf @@ -0,0 +1,23 @@ +% orbf17.mf -- Oriya bold 17 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 17.28pt#; +uh# := 0.36pt#; % unit height, (X-height is 25uh) +uw# := 0.36pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.5uh#; % smallest diameter of pen + +font_size 17.28pt#; +font_identifier := "ORBF17"; + +input oriya; + +% end of orbf17.mf diff --git a/language/oriya/mf/oriya/orbf8.mf b/language/oriya/mf/oriya/orbf8.mf new file mode 100644 index 0000000000..27067ff1c9 --- /dev/null +++ b/language/oriya/mf/oriya/orbf8.mf @@ -0,0 +1,23 @@ +% orbf8.mf -- Oriya bold 8 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 8pt#; +uh# := 0.17pt#; % unit height, (X-height is 25uh) +uw# := 0.19pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.7uh#; % smallest diameter of pen + +font_size 8pt#; +font_identifier := "ORBF8"; + +input oriya; + +% end of orbf8.mf diff --git a/language/oriya/mf/oriya/orbs10.mf b/language/oriya/mf/oriya/orbs10.mf new file mode 100644 index 0000000000..bf6c5e5c41 --- /dev/null +++ b/language/oriya/mf/oriya/orbs10.mf @@ -0,0 +1,23 @@ +% orbs10.mf -- Oriya bold slanted 10 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.22pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.7uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORBS10"; + +input oriya; + +% end of orbs10.mf diff --git a/language/oriya/mf/oriya/orbs12.mf b/language/oriya/mf/oriya/orbs12.mf new file mode 100644 index 0000000000..0ede6f92bd --- /dev/null +++ b/language/oriya/mf/oriya/orbs12.mf @@ -0,0 +1,23 @@ +% orbs12.mf -- Oriya bold slanted 12 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 12pt#; +uh# := 0.25pt#; % unit height, (X-height is 25uh) +uw# := 0.26pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.6uh#; % smallest diameter of pen + +font_size 12pt#; +font_identifier := "ORBS12"; + +input oriya; + +% end of orbs12.mf diff --git a/language/oriya/mf/oriya/orbs17.mf b/language/oriya/mf/oriya/orbs17.mf new file mode 100644 index 0000000000..3db4361e9b --- /dev/null +++ b/language/oriya/mf/oriya/orbs17.mf @@ -0,0 +1,23 @@ +% orbf17.mf -- Oriya bold slanted 17 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 17.28pt#; +uh# := 0.36pt#; % unit height, (X-height is 25uh) +uw# := 0.36pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.5uh#; % smallest diameter of pen + +font_size 17.28pt#; +font_identifier := "ORBS17"; + +input oriya; + +% end of orbs17.mf diff --git a/language/oriya/mf/oriya/orbs8.mf b/language/oriya/mf/oriya/orbs8.mf new file mode 100644 index 0000000000..b3cdda31fc --- /dev/null +++ b/language/oriya/mf/oriya/orbs8.mf @@ -0,0 +1,23 @@ +% orbs8.mf -- Oriya bold slanted 8 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 8pt#; +uh# := 0.17pt#; % unit height, (X-height is 25uh) +uw# := 0.19pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 4.5uh#; % longest diameter of pen +thin# := 1.7uh#; % smallest diameter of pen + +font_size 8pt#; +font_identifier := "ORBS8"; + +input oriya; + +% end of orbs8.mf diff --git a/language/oriya/mf/oriya/orcode.mf b/language/oriya/mf/oriya/orcode.mf new file mode 100644 index 0000000000..97039c2f60 --- /dev/null +++ b/language/oriya/mf/oriya/orcode.mf @@ -0,0 +1,330 @@ +% orcode.mf -- glyph codes for the Oriya metafont +% Copyright 1996, 97, 98, 99 Jeroen Hellingman +% +% History: +% 26-MAY-2002 added data for ppa (AP) +% 08-JUN-1999 added several conjuncts (JH) +% 21-MAY-1999 added skha (JH) +% 31-MAY-1998 added hma (JH) +% 30-MAY-1998 added ni, n+ta, n+ti variants (JH) +% 17-MAY-1997 fixed encoding of bracket (JH) +% 29-APR-1997 Edits (Jeroen Hellingman) +% +% the assignment of codes is totally ad hoc, and will be made more +% rational later. This file is the only place where the actual codes are +% used, everywhere else the identifiers are used. +% +% The file orcode.tex is derived from this file, using getcode.awk. +% +% used codes: (KEEP UP TO DATE!) +% +% letters A-Za-z 0-9 @/\| []<>*+.,:;?!()-#{} +% gaps used 127, 128, 94, 95, 32, 34, 36 +% upto (inc.) 0--31 +% upto (inc.) 128--249 +% downto (inc.) 255--250 +% +% gaps still free: 37, 64 +% +% naming conventions +% +% c_* full vowel/consonant +% cs_* vowel sign/secondary consonant +% +% vowels %%% TeX macros for accessing characters + %%% (automatically extracted from orcode.mf) +c_a := ASCII "a"; %%\def\orvowela{a} + %%\def\orvowelaa{aA} +c_i := ASCII "i"; %%\def\orvoweli{i} +c_ii := ASCII "I"; %%\def\orvowelii{I} +c_u := ASCII "u"; %%\def\orvowelu{u} +c_uu := ASCII "U"; %%\def\orvoweluu{U} +c_ri := 128; %%\def\orvowelri{\char128} +c_rii := 130; %%\def\orvowelrii{\char130} +c_li := 132; %%\def\orvowelli{\char132} +c_lii := 134; %%\def\orvowellii{\char134} +c_e := ASCII "e"; %%\def\orvowele{e} +c_ai := ASCII "E"; %%\def\orvowelai{E} +c_o := ASCII "o"; %%\def\orvowelo{o} +c_au := ASCII "O"; %%\def\orvowelau{O} + +% vowel signs + +cs_aa := ASCII "A"; %%\def\orsignaa{A} +cs_i := ASCII "["; %%\def\orsigni{[} +cs_i_var := 151; %%\def\orsignivar{\char151} +cs_ii := ASCII "X"; %%\def\orsignii{X} +cs_u := ASCII "]"; %%\def\orsignu{]} +cs_u_var := 145; %%\def\orsignuvar{\char145} +cs_u_low := 211; %%\def\orsignulow{\char211} +cs_u_verylow := 216; %%\def\orsignuverylow{\char216} +cs_u_center := 7; %%\def\orsignucenter{\char7} +cs_uu := ASCII "Z"; %%\def\orsignuu{Z} +cs_uu_low := 212; %%\def\orsignuulow{\char212} +cs_uu_verylow := 217; %%\def\orsignuuverylow{\char217} +cs_uu_center := 8; %%\def\orsignuucenter{\char8} +cs_ri := 129; %%\def\orsignri{\char129} +cs_ri_low := 213; %%\def\orsignrilow{\char213} +cs_ri_verylow := 218; %%\def\orsignriverylow{\char218} +cs_ri_center := 9; %%\def\orsignricenter{\char9} +cs_rii := 131; %%\def\orsignrii{\char131} +cs_li := 133; %%\def\orsignli{\char133} +cs_lii := 135; %%\def\orsignlii{\char135} +cs_e := ASCII "<"; %%\def\orsigne{<} +cs_ai := ASCII ">"; %%\def\orsignai{>} +cs_au := ASCII "*"; %%\def\orsignau{*} + +% modifiers + +c_anusvara := ASCII "M"; %%\def\oranusvara{M} +c_candrabindu := ASCII "/"; %%\def\orcandrabindu{/} +c_visarga := ASCII "H"; %%\def\orvisarga{H} +c_visarga_var := 250; %%\def\orvisargavar{\char250} + +% consonants + +c_ka := ASCII "k"; +c_kha := ASCII "K"; +c_ga := ASCII "g"; +c_gha := ASCII "G"; +c_nga := ASCII "f"; + +c_ca := ASCII "c"; +c_cha := ASCII "C"; +c_ja := ASCII "j"; +c_jha := ASCII "J"; +c_nya := ASCII "F"; +c_nya_var := 252; + +c_tta := ASCII "q"; +c_tta_var := 255; +c_ttha := ASCII "Q"; +c_dda := ASCII "w"; +c_rra := ASCII "R"; +c_ddha := ASCII "W"; +c_rrha := ASCII "@"; +c_nna := ASCII "N"; + +c_ta := ASCII "t"; +c_tha := ASCII "T"; +c_da := ASCII "d"; +c_dha := ASCII "D"; +c_na := ASCII "n"; + +c_pa := ASCII "p"; +c_pha := ASCII "P"; +c_ba := ASCII "b"; +c_bha := ASCII "B"; +c_ma := ASCII "m"; + +c_ya := ASCII "y"; +c_yya := ASCII "Y"; +c_ra := ASCII "r"; +c_la := ASCII "l"; +c_lla := ASCII "L"; +c_va := ASCII "v"; +c_badot := 20; %%\def\orbadot{\char20} +c_sha := ASCII "z"; +c_ssa := ASCII "S"; +c_sa := ASCII "s"; +c_ha := ASCII "h"; + +% secondary consonants + +cs_ddha := 175; %%\def\orsecDha{\char175} +cs_ta := 174; %%\def\orsecta{\char174} +cs_tha := 195; %%\def\orsectha{\char195}\def\orseccha{\char195} +cs_na := 240; %%\def\orsecna{\char240} +cs_pa := 143; %%\def\orsecpa{\char143} % not used +cs_bha := 239; %%\def\orsecbha{\char239} +cs_ma := 136; %%\def\orsecma{\char136} +cs_ya := 138; %%\def\orsecya{\char138} +cs_ra := 146; %%\def\orsecra{\char146} +cs_ra_low := 206; %%\def\orsecralow{\char206} +cs_la := 155; %%\def\orsecla{\char155} +cs_lla := 156; %%\def\orsecLa{\char156} +cs_va := 164; %%\def\orsecva{\char164} + +% secondary consonant vowel-sign combinations + +cs_bhu := 17; %%\def\orsecbhu{\char17} +cs_vu := 18; %%\def\orsecvu{\char18} + +% special signs + +c_halant := ASCII "+"; %%\def\orhalant{+} +c_halant_low := 142; %%\def\orhalantlow{\char142} +c_reph := 147; %%\def\orreph{\char147} +c_nukta := 144; %%\def\ornukta{\char144} +c_avagraha := 253; %%\def\oravagraha{\char253} + +% punctuation + +c_centerdot := ASCII "#"; %%\def\ordot{\#} +c_danda := ASCII "."; %%\def\ordanda{.} +c_comma := ASCII ","; +c_colon := ASCII ":"; +c_semicolon := ASCII ";"; +c_question := ASCII "?"; +c_exclamation := ASCII "!"; +c_openquote := ASCII "`"; +c_closequote := ASCII "'"; +c_dash := ASCII "-"; +c_endash := 2; % accessed via ligatures only +c_emdash := 3; +c_openparen := ASCII "("; +c_closeparen := ASCII ")"; +c_openbracket := 4; +c_closebracket := 5; +c_openbrace := ASCII "{"; +c_closebrace := ASCII "}"; +c_slash := ASCII "|"; %%\def\orslash{|} +c_backslash := ASCII "\"; + + +% figures + +c_zero := ASCII "0"; +c_one := ASCII "1"; +c_two := ASCII "2"; +c_three := ASCII "3"; +c_four := ASCII "4"; +c_five := ASCII "5"; +c_six := ASCII "6"; +c_seven := ASCII "7"; +c_eight := ASCII "8"; +c_nine := ASCII "9"; + +% consonant-vowel combinations + +c_kaa := 157; +c_ki := 141; +c_ku := 139; +c_kuu := 150; +c_caa := 137; +c_ddi := 14; +c_ddhi := 15; +c_taa := 12; +c_ti := 193; +c_tu := 194; +c_tuu := 13; +c_di := 192; +c_naa := 209; +c_ni := 22; +c_raa := 11; +c_laa := 158; +c_hi := 196; +c_hu := 140; +c_lli := 149; +c_llaa := 208; + +% conjuncts + +c_k_ka := 199; %%\def\orkka{\char199} +c_k_tta := 27; %%\def\orkTa{\char27} +c_k_ta := 182; %%\def\orkta{\char182} +c_k_ra := 176; %%\def\orkra{\char176} +c_k_la := 231; %%\def\orkla{\char231} +c_k_ssa := ASCII "x"; %%\def\orkSa{x} +c_k_ss_nna := 225; %%\def\orkSNa{\char225} +c_k_sa := 203; %%\def\orksa{\char203} +c_g_ga := 30; %%\def\orgga{\char30} +c_g_dha := 31; %%\def\orgdha{\char31} +c_ng_ka := 148; %%\def\orngka{\char148} +c_ng_kha := 159; %%\def\orngkha{\char159} +c_ng_ga := 160; %%\def\orngga{\char160} +c_ng_gha := 202; %%\def\ornggha{\char202} +c_c_ca := 152; %%\def\orcca{\char152} +c_c_cha := 210; %%\def\orccha{\char210} +c_j_ja := 153; %%\def\orjja{\char153} +c_j_jha := 36; %%\def\orjjha{\char36} +c_j_nya := 179; %%\def\orjnya{\char179} +c_ny_ca := 172; %%\def\ornyca{\char172} +c_ny_cha := 230; %%\def\ornycha{\char230} +c_ny_ja := 189; %%\def\ornyja{\char189} +c_ny_jha := 173; %%\def\ornyjha{\char173} +c_tt_tta := 161; %%\def\orTTa{\char161} +c_dd_ga := 127; %%\def\orDga{\char127} +c_rr_ga := 126; %%\def\orRga{\char126} +c_dd_dda := 236; %%\def\orDDa{\char236} +c_nn_tta := 242; %%\def\orNTa{\char242} +c_nn_ttha := 220; %%\def\orNTha{\char220} +c_nn_dda := 187; %%\def\orNDa{\char187} +c_nn_ddha := 188; %%\def\orNDha{\char188} +c_nn_nna := 186; %%\def\orNNa{\char186} +c_t_ta := 154; %%\def\ortta{\char154} +c_t_na := 162; %%\def\ortna{\char162} +c_t_pa := 28; %%\def\ortpa{\char28} +c_t_ma := 163; %%\def\ortma{\char163} +c_t_ra := 177; %%\def\ortra{\char177} +c_t_sa := 241; %%\def\ortsa{\char241} +c_d_ga := 234; %%\def\ordga{\char234} +c_d_da := 169; %%\def\ordda{\char169} +c_d_dha := 170; %%\def\orddha{\char170} +c_d_bha := 214; %%\def\ordbha{\char214} +c_dh_ya := 178; %%\def\ordhya{\char178} +c_n_ta := 226; %%\def\ornta{\char226} +c_n_ta_var := 23; %%\def\orntavar{char23} +c_n_ti_var := 24; %%\def\orntivar{char24} +c_n_t_ra := 232; %%\def\orntra{\char232} +c_n_tha := 227; %%\def\orntha{\char227} +c_n_da := 165; %%\def\ornda{\char165} +c_n_dha := 166; %%\def\orndha{\char166} +c_b_ja := 34; %%\def\orbja{\char34} +c_b_da := 167; %%\def\orbda{\char167} +c_b_dha := 29; %%\def\orbdha{\char29} +c_b_ba := 168; %%\def\orbba{\char168} +c_p_ta := 181; %%\def\orpta{\char181} +c_p_pa := 183; %%\def\orppa{\char183} +c_p_sa := 197; %%\def\orpsa{\char197} +c_m_pa := 190; %%\def\ormpa{\char190} +c_m_pha := 191; %%\def\ormpha{\char191} +c_m_bha := 244; %%\def\ormbha{\char244} +c_m_ma := 215; %%\def\ormma{\char215} +c_l_ka := 219; %%\def\orlka{\char219} +c_l_pa := 221; %%\def\orlpa{\char221} +c_l_pha := 223; %%\def\orlpha{\char223} +c_l_la := 237; %%\def\orlla{\char237} +c_sh_tta := 204; %%\def\orshTa{\char204} +c_sh_ca := 205; %%\def\orshca{\char205} +c_sh_cha := 229; %%\def\prshcha{\char229} +c_ss_ka := 200; %%\def\orSka{\char200} +c_ss_tta := 198; %%\def\orSTa{\char198} +c_ss_ttha := 207; %%\def\orSTha{\char207} +c_ss_nna := 16; %%\def\orSNa{\char16} +c_ss_pa := 184; %%\def\orSpa{\char184} +c_ss_pha := 222; %%\def\orSpha{\char222} +c_s_ka := 201; %%\def\orska{\char201} +c_s_kha := 26; %%\def\orskha{\char26} +c_s_ta := 180; %%\def\orsta{\char180} +c_s_tu := 32; %%\def\orstu{\char32} +c_s_t_ra := 233; %%\def\orstra{\char233} +c_s_tha := 228; %%\def\orstha{\char228} +c_s_pa := 185; %%\def\orspa{\char185} +c_s_pha := 224; %%\def\orspha{\char224} +c_h_na := 94; %%\def\orhna{\char94} +c_h_ba := 95; %%\def\orhba{\char95}\def\orhva{\orhba} +c_h_ma := 25; %%\def\orhma{\char25} + +% vowel sign combinations + +cs_i_candrabindu := 243; %%\def\oricandrabindu{\char243} +cs_i_reph := 171; %%\def\orireph{\char171} +cs_i_reph_var := 251; % not used +cs_i_reph_candrabindu := 245; %%\def\orirephcandrabindu{\char245} +cs_ai_candrabindu := 247; +cs_ai_reph := 246; %%\def\oraireph{\char246} +cs_ai_reph_candrabindu := 248; +cs_au_candrabindu := 249; +cs_au_reph := 19; +cs_au_reph_candrabindu := 6; + +% varia + +c_oromsign := 21; %%\def\oromsign{\char21} +c_ganesh := 254; %%\def\organesh{\char254} +c_dotted_circle := 0; %%\def\dotcircle{\char0} +c_white_square := 1; %%\def\whitesquare{\char1} +c_crossed_white_square := 10; %%\def\crossedwhitesquare{\char10} + +% end of orcode.mf diff --git a/language/oriya/mf/oriya/orcode.tex b/language/oriya/mf/oriya/orcode.tex new file mode 100644 index 0000000000..b3dbf09c33 --- /dev/null +++ b/language/oriya/mf/oriya/orcode.tex @@ -0,0 +1,146 @@ +% TeX macros for accessing characters +% (automatically extracted from orcode.mf) +\def\orvowela{a} +\def\orvowelaa{aA} +\def\orvoweli{i} +\def\orvowelii{I} +\def\orvowelu{u} +\def\orvoweluu{U} +\def\orvowelri{\char128} +\def\orvowelrii{\char130} +\def\orvowelli{\char132} +\def\orvowellii{\char134} +\def\orvowele{e} +\def\orvowelai{E} +\def\orvowelo{o} +\def\orvowelau{O} +\def\orsignaa{A} +\def\orsigni{[} +\def\orsignivar{\char151} +\def\orsignii{X} +\def\orsignu{]} +\def\orsignuvar{\char145} +\def\orsignulow{\char211} +\def\orsignuverylow{\char216} +\def\orsignuu{Z} +\def\orsignuulow{\char212} +\def\orsignuuverylow{\char217} +\def\orsignri{\char129} +\def\orsignrilow{\char213} +\def\orsignriverylow{\char218} +\def\orsignrii{\char131} +\def\orsignli{\char133} +\def\orsignlii{\char135} +\def\orsigne{<} +\def\orsignai{>} +\def\orsignau{*} +\def\oranusvara{M} +\def\orcandrabindu{/} +\def\orvisarga{H} +\def\orvisargavar{\char250} +\def\orbadot{\char20} +\def\orsecDha{\char175} +\def\orsecta{\char174} +\def\orsectha{\char195}\def\orseccha{\char195} +\def\orsecna{\char240} +\def\orsecpa{\char143} +\def\orsecbha{\char239} +\def\orsecma{\char136} +\def\orsecya{\char138} +\def\orsecra{\char146} +\def\orsecralow{\char206} +\def\orsecla{\char155} +\def\orsecLa{\char156} +\def\orsecva{\char164} +\def\orhalant{+} +\def\orhalantlow{\char142} +\def\orreph{\char147} +\def\ornukta{\char144} +\def\oravagraha{\char253} +\def\ordot{\#} +\def\ordanda{.} +\def\orkka{\char199} +\def\orkTa{\char27} +\def\orkta{\char182} +\def\orkra{\char176} +\def\orkla{\char231} +\def\orkSa{x} +\def\orkSNa{\char225} +\def\orksa{\char203} +\def\orgga{\char30} +\def\orgdha{\char31} +\def\orngka{\char148} +\def\orngkha{\char159} +\def\orngga{\char160} +\def\ornggha{\char202} +\def\orcca{\char152} +\def\orccha{\char210} +\def\orjja{\char153} +\def\orjjha{\char36} +\def\orjnya{\char179} +\def\ornyca{\char172} +\def\ornycha{\char230} +\def\ornyja{\char189} +\def\ornyjha{\char173} +\def\orTTa{\char161} +\def\orDga{\char127} +\def\orRga{\char126} +\def\orDDa{\char236} +\def\orNTa{\char242} +\def\orNTha{\char220} +\def\orNDa{\char187} +\def\orNDha{\char188} +\def\orNNa{\char186} +\def\ortta{\char154} +\def\ortna{\char162} +\def\ortpa{\char28} +\def\ortma{\char163} +\def\ortra{\char177} +\def\ortsa{\char241} +\def\ordga{\char234} +\def\ordda{\char169} +\def\orddha{\char170} +\def\ordbha{\char214} +\def\ordhya{\char178} +\def\ornta{\char226} +\def\orntra{\char232} +\def\orntha{\char227} +\def\ornda{\char165} +\def\orndha{\char166} +\def\orbja{\char34} +\def\orbda{\char167} +\def\orbdha{\char29} +\def\orbba{\char168} +\def\orpta{\char181} +\def\orpsa{\char197} +\def\ormpa{\char190} +\def\ormpha{\char191} +\def\ormma{\char215} +\def\orlka{\char219} +\def\orlpa{\char221} +\def\orlpha{\char223} +\def\orlla{\char237} +\def\orshTa{\char204} +\def\orshca{\char205} +\def\prshcha{\char229} +\def\orSka{\char200} +\def\orSTa{\char198} +\def\orSTha{\char207} +\def\orSNa{\char16} +\def\orSpa{\char184} +\def\orSpha{\char222} +\def\orska{\char201} +\def\orskha{\char26} +\def\orsta{\char180} +\def\orstra{\char233} +\def\orstha{\char228} +\def\orspa{\char185} +\def\orspha{\char224} +\def\orhma{\char25} +\def\orhna{\char94} +\def\orhba{\char95}\def\orhva{\orhba} +\def\orireph{\char171} +\def\oromsign{\char21} +\def\organesh{\char254} +\def\dotcircle{\char0} +\def\whitesquare{\char1} diff --git a/language/oriya/mf/oriya/orglyphs.mf b/language/oriya/mf/oriya/orglyphs.mf new file mode 100644 index 0000000000..67a7e06745 --- /dev/null +++ b/language/oriya/mf/oriya/orglyphs.mf @@ -0,0 +1,4364 @@ +% orglyphs.mf -- Oriya glyphs +% Copyright 1996, 1999 Jeroen Hellingman. This file may be distributed, read +% the readme file for details. +% +% History: +% 26-JAN-2003 modified k.s.na (AP) +% 26-MAY-2002 added p+pa (AP) +% 20-JUN-1999 added j+jha (JH) +% 16-JUN-1999 improved ja, j+ja, added b+ja (JH) +% 05-JUN-1999 added k+tta, b+dha, t+pa, g+ga, g+dha (JH) +% 29-MAY-1999 exchanged nn+tta and nn+ttha (JH) +% 21-MAY-1999 added s+kha (JH) +% 31-MAY-1998 added ni, variant n+ta, n+ti, h+ma (JH) +% 28-MAY-1998 added calligraphic secondary ra (JH) +% 03-MAY-1998 added vowel signs rii, li, lii (JH) +% 07-SEP-1997 added d+ga, dd+dda (JH) +% 06-SEP-1997 added ba with dot inside (JH) +% 17-MAY-1997 fixed some small things (JH) +% 29-APR-1997 added slash, backslash, secondary bhu (JH) +% 30-NOV-1996 adjusted bha (JH) +% 28-NOV-1996 added n+tha, s+tha, sh+cha, ny+cha, ss+nna (JH) +% 27-NOV-1996 redesigned da, ha, t+ta, b+dha (JH) +% 26-NOV-1996 redesigned d+da, d+dha, nga, u, uu (JH) +% 25-NOV-1996 redesigned ta (JH) +% 23-NOV-1996 added va and braces (JH) +% 19-NOV-1996 changed secondary bha and full yya (JH) +% 18-NOV-1996 corrected character widths (JH) +% 16-NOV-1996 yya: corrected pen (JH) +% 12-NOV-1996 Concatenated into a single file and re-ordered (JH) +% +% Important note: +% Many of the character programs depend on preceding programs to fill certain +% picture variables. Do not change the order of the programs in this file! +% You will probably need a BIG metafont to make this font at large magnifications. +% +% Whenever you make changes or add characters, please contact the author. +% +% Jeroen Hellingman E-mail: <jehe@kabelfoon.nl> +% Aletta Jacobsstraat 5 phone: +31-30-6875444 (19:00--21:00 MET) +% 3404 XD IJsselstein +% The Netherlands +% +%%%%% secondary consonants + +beginchar(cs_bha, 0uw#, 0uh#, 10uh#); "Oriya secondary letter bha"; + pickup subpen; + z2 = (0,0); + new_tailtwo(1,2,3,4,5,6,7); + penlabels(1,2,3,4,5,6,7); + adjustpos(rm+rb); +endchar; + +beginchar(cs_bhu, 0uw#, 0uh#, 15uh#); "Oriya secondary letter bhu"; + pickup subpen; + % first four values copied from new_tailtwo() + z1 = (-4uw, -4uh); + z2 = (0uw,0uh); + z3 = (4uw, -4uh); + z4 = (0uw, -9uh); + % joined u matra + z5 = (-5uw, -13uh); + z6 = (-10uw, .5[y5, y7]); + z7 = (x5, -8uh); + z8 = (8uw, -15uh); + draw z1{up}..z2{right}..z3{down}..tension1.1..z5{left}..z6{up} + ..z7{right}..tension1.1..{curl0}z8; + penlabels(1,2,3,4,5,6,7,8); + adjustpos(rm+rb); +endchar; + +picture sec_da_picture; + +beginchar(cs_ddha, 0uw#, 0uh#, 12uh#); "Oriya secondary letter ddha"; + z1 = (0uw, -10uh); + z2 = z1 + (4uw, 4uh); + z3 = z1 + (0uw, 8uh); + z4 = z1 + (-4uw, 4uh); + z5 = z1 + (-1uw, 0uh); + z6 = z1 + (11uw, -2uh); + + % here we make the inner area of the eye ``super white''. When + % we superimpose this shape on other characters, it remains white. + % To avoid its effects here, we have to draw the shape twice. + % (of course, this only works inside Metafont) + + pickup pencircle; + unfilldraw z1{curl0}..z2{up}..z3{left}..tension0.95..z4{down}..z5..cycle; + pickup subpen; + draw z1{curl0}..z2{up}..z3{left}..tension0.95..z4{down}..z5..{curl0}z6; + draw z1{curl0}..z2{up}..z3{left}..tension0.95..z4{down}..z5..{curl0}z6; + penlabels(1,2,3,4,5,6); + sec_da_picture := currentpicture; + adjustpos(rm+rb); +endchar; + +picture sec_ta_picture; + +beginchar(cs_ta, 0uw#, 0uh#, 12uh#); "Oriya secondary letter ta"; + z1 = (0uw, -10uh); + z2 = z1 + (-4uw, 4uh); + z3 = z1 + (0uw, 8uh); + z4 = z1 + (4uw, 4uh); + z5 = z1 + (1uw, 0uh); + z6 = z1 + (-11uw, -2uh); + + pickup pencircle; + unfilldraw z1{curl0}..z2{up}..z3{right}..tension0.95..z4{down}..z5..cycle; + pickup subpen; + draw z1{curl0}..z2{up}..z3{right}..tension0.95..z4{down}..z5..{curl0}z6; + draw z1{curl0}..z2{up}..z3{right}..tension0.95..z4{down}..z5..{curl0}z6; + penlabels(1,2,3,4,5,6); + sec_ta_picture := currentpicture; + adjustpos(rm+rb); +endchar; + +picture sec_tha_picture; + +beginchar(cs_tha, 0uw#, 0uh#, 9uh#); "Oriya secondary letter tha"; + % lower curl copied from Oriya letter cha + x3 = 0uw; + z11 = (x3 - 12uw, 7uh); + z12 = (x3, 3uh); + z13 = (x3, 2uh); + z14 = (x3 + 6uw, -overshoot); + z15 = (x3 + 9uw, 2uh); + z16 = (x14, 5uh); + z17 = (x3 - 6uw, y14); + z18 = (x3 - 9uw, y15); + z19 = (x17, y16); + pickup subpen; + draw z11{right}..z13; + draw z13..z14{right}..z15{up}..{left}z16..z13..z17{left}.. + z18{up}..z19{right}..z13; + penlabels(11,12,13,14,15,16,17,18,19); + cullit; sec_tha_picture := currentpicture; + if mode <> proof: + currentpicture := currentpicture shifted (-(9uw+rm+rb), -8uh); + fi; +endchar; + +if calligraphic: + +beginchar(cs_ra, 0uw#, 0uh#, 9uh#); "Oriya secondary letter ra"; + pickup curvepen; + z1 = (0uw, 0.5uh); + z2 = z1 + (1uw, -9uh); + z3 = (.33[x2,x5], y2 + 1uh); + z4 = (.75[x2,x5], y2 - 1uh); + z5 = z1 + (-20uw, -9uh); + draw z1{down}...z2; + draw z2..z3{left}..z4{left}..z5; + drawdot(z5); + adjustpos(rm+rb); + savepicture := currentpicture; +endchar; + +else: + +beginchar(cs_ra, 0uw#, 0uh#, 9uh#); "Oriya secondary letter ra"; + pickup curvepen; + z1 = (0uw, 0.5uh); + z2 = z1 + (0uw, -9uh); + z3 = z1 + (-20uw, -9uh); + draw z1--z2--z3; drawdot(z3); + adjustpos(rm+rb); + savepicture := currentpicture; +endchar; + +fi; + +beginchar(cs_ra_low, 0uw#, 0uh#, 15uh#); "Oriya secondary letter ra (lowered variant)"; + currentpicture := savepicture shifted (0uw, -6uh); +endchar; + +beginchar(cs_ya, 12uw#+rb#+rm#, 25uh#, 0uh#); "Oriya secondary letter ya"; + pickup curvepen; + % bow + z1 = (3uw, h); + z2 = (0uw, 19uh); + z3 = (6uw, 12.5uh); + z4 = (12uw, 16.5uh); + draw z1..z2{down}..tension0.9..z3{right}..z4; drawdot(z1); + % bar + pickup barpen; + z5 = (x4, h); + z6 = (x4, 0); + draw z5--z6; drawdot(z5); drawdot(z6); + penlabels(1,2,3,4,5); +endchar; + +beginchar(cs_va, 0uw#, 0uh#, 15uh#); "Oriya secondary letter va"; + pickup subbarpen; + z1 = (0uw, -2uh); + z2 = (0uw, -15uh); + draw z1--z2; drawdot(z1); drawdot(z2); + pickup subpen; + % z3' = z1 + (-3uw, -1uh); + % z3 = z1 + (-5uw, 0); + z3 = z1 + (-7uw, 0); + z4 = z1 + (-9uw, -4uh); + z5 = z1 + (-4uw, -9uh); + z6 = z1 + (0uw, -5uh); + % draw z3'..z3{left}..z4{down}..z5{right}..{curl0}z6; + draw z3..z4{down}..z5{right}..{curl0}z6; + penlabels(1,2,3,4,5,6); + adjustpos(rm+rb); +endchar; + +beginchar(cs_vu, 0uw#, 0uh#, 15uh#); "Oriya secondary letter vu"; + pickup subbarpen; + z1 = (0uw, -2uh); + z2 = (0uw, -13uh); + % draw z1--z2; drawdot(z1); drawdot(z2); + pickup subpen; + z3 = z1 + (-7uw, 0); + z4 = z1 + (-9uw, -3.5uh); + z5 = z1 + (-4uw, -8uh); + z6 = z1 + (0uw, -4uh); + draw z3..z4{down}..z5{right}..{curl0}z6; + z7 = z1 + (-6uw, -16uh); + z8 = (x1 - 11uw, .5[y7,y9]); + z9 = (x7, y1 - 11uh); + z10 = (x1 + 5uw, y7); + z11 = (x1 + 10uw, y7 + 3uh); + draw z1--z2{down}..z7{left}..z8{up}..z9{right}..z10{right}..{curl0}z11; + + penlabels(1,2,3,4,5,6,7,8,9,10,11); + adjustpos(rm+rb); +endchar; + +beginchar(cs_lla, 0uw#, 0uh#, 13uh#); "Oriya secondary letter lla"; + pickup subpen; + z1 = (x2 + 1.5uw, -13uh); + z2 = (-16uw, -9uh); + z3 = (x2 + 4uw, -3uh); + z4 = (x2 + 8uw, -7uh); + z5 = (x4, y1); + draw z1..z2{up}..z3{right}..z4{down}---z5; drawdot(z1); drawdot(z5); + z6 = z4 + (0, 1uh); + z7 = (x2 + 12uw, y3); + z8 = (x2 + 16uw, y2); + z9 = (x2 + 14.5uw, y1); + draw z6{curl0}..z7{right}..z8{down}..z9; drawdot(z9); + penlabels(1,2,3,4,5,6,7,8,9); + savepicture := currentpicture; + adjustpos(rm+rb); +endchar; + +beginchar(cs_la, 0uw#, 0uh#, 13uh#); "Oriya secondary letter la"; + currentpicture := savepicture; + pickup subpen; + z9 = (-1.5uw, -13uh); + z10 = (5uw, -15uh); + draw z9--z10; drawdot(z10); + penlabels(9,10); + adjustpos(rm+rb); +endchar; + +beginchar(cs_ma, 0uw#, 0uh#, 15uh#); "Oriya secondary letter ma"; + pickup subbarpen; + z1 = (0uw, 0.5uh); + z2 = (x1, -10uh); + z3 = (x1-3uw, -13uh); + z4 = (x1-6uw, y2); + z5 = (x3, -6uh); + z6 = (x1+6uw, -3uh); + z7 = (x6, -15uh); + draw z1--z2..z3{left}..z4{up}..z5--z6 & z6--z7; drawdot(z7); + penlabels(1,2,3,4,5,6,7); + adjustpos(rm+rb); +endchar; + +%%%%% dha + +picture sub_dha_picture; + +beginchar(c_dha, 20uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter dha"; + path dha_diag; + path dha_curve; + path dha_bar; + + % diagonal + z1 = (1uw, 25uh); + z2 = (12uw, 11uh); + dha_diag = z1--z2; + % bow + z3 = z2; % .95[z1,z2]; + z4 = (6uw, 15uh); + z5 = (0uw, 8uh); + z6 = (9uw, -overshoot); + z7 = (20uw, joint); + dha_curve = z3{curl0}..z4{left}..tension0.95..z5{down}..tension0.95 + ..z6{right}..{curl0}z7; + % bar + z8 = (x7, 25uh); + z9 = (x8, 0uh); + dha_bar = z8--z9; + + % subscribed dha: + transform sub; + sub := identity scaled 13/25 shifted (8uw, -9uh); + pickup subpen; + draw dha_diag transformed sub; + drawdot(z1 transformed sub); drawdot(z2 transformed sub); + draw dha_curve transformed sub; + pickup barpen; + draw dha_bar transformed sub; + drawdot(z8 transformed sub); drawdot(z9 transformed sub); + sub_dha_picture := currentpicture; + clearit; + + % draw the full size glyph + pickup curvepen; + draw dha_diag; + drawdot(z1); drawdot(z2); + draw dha_curve; + pickup barpen; + draw dha_bar; + drawdot(z8); drawdot(z9); + + penlabels(1,2,3,4,5,6,7,8,9); +endchar; + +%%%%% gha + +beginchar(c_gha, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter gha"; + pickup curvepen; + % upper bow + z1 = (3.5uw, 10uh); + z2 = (0uw, 16uh); + z3 = (12uw, 25uh+overshoot); + z4 = (24uw, 25uh-joint); + draw z1..z2{up}..z3{right}..{curl0}z4; + % left lower bow + z5 = (6uw, 14uh); + z6 = (3uw, 7uh); + z7 = (9uw, -overshoot); + z8 = (14uw, 2uw); + % right lower bow + z9 = (x8, y8+1uh); + z14 = (x9, 6uh); + z10 = (.5[x9,x11], -overshoot); + z11 = (x4, .75joint); + draw z5{curl0}..z6{down}..tension.95..z7{right}..{curl0}z8; + drawdot(z5); drawdot(z14); + draw z14---z9..z10{right}..{curl0}z11; + % bar + pickup barpen; + z12 = (x11, 25uh); + z13 = (x12, 0uh); + draw z12--z13; drawdot(z12); drawdot(z13); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); + cullit; savepicture := currentpicture; +endchar; + +beginchar(c_ng_gha, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+gha"; + currentpicture := savepicture; + x31 = 24uw; + top_left_eye; +endchar; + +%%%%% ta + +beginchar(c_ta, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ta"; + pickup curvepen; + z11 = (10uw, 13uh); + z12 = (good.x 4uw, 6uh); + z13 = (.5[x12,x14], good.y -overshoot); + z14 = (good.x 20uw, 6uh); + z15 = z14 + (-3uw, 4.5uh); + z16 = z14 + (-5.5uw, 2uh); + z17 = z14 + (-3uw, -0.5uh); + z18 = z14 + (-0.25uw, 1.5uh); + draw z11{curl0}..z12{down}..z13{right}..z14{up}..z15..z16..z17..z18; + % fill z15..z16..z17..z18..z19..cycle; + drawdot(z11); + penlabels(11,12,13,14,15,16,17,18); + cullit; savepicture := currentpicture; + z1 = (6.5uw, 11uh); + x4 = 25uw; + new_outer_circle; +endchar; + +beginchar(c_taa, 27uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination taa"; + pickup curvepen; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 27uw; + new_aa_circle; +endchar; + +beginchar(c_ti, 25uw#+rm#, 25uh#, 0uh#); "Oriya combination ti"; + pickup curvepen; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 25uw; + new_i_circle; +endchar; + +beginchar(c_tu, 28uw#+rm#, 25uh#, 10uh#); "Oriya combination tu"; + pickup curvepen; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 28uw; + new_u_circle; +endchar; + +beginchar(c_tuu, 28uw#+rm#, 25uh#, 10uh#); "Oriya combination tuu"; + pickup curvepen; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 28uw; + new_uu_circle; +endchar; + +%%%%% ka related shapes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% the first version of the letter ka was difficult to make out from the +%% letter la in small print, so we enlarge the inner details +%% +%% We store a picture of a subscribed ka in this letter. + +picture full_ka_picture; +picture sub_ka_picture; +picture sup_ka_picture; + +beginchar(c_ka, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter ka"; + path ka_left; + path ka_right; + path ka_circle; + + % inner ka shape + pickup curvepen; + z19 = if calligraphic: (x13, 6uh) else: (x13, 7uh) fi; % additional point + z10 = (x12, 3uh); + z11 = (3uw, 8.5uh); + z12 = (8uw, 14uh); + z13 = (13uw, 10uh); + z14 = (x13, 0uh); + ka_left = z19 if calligraphic: {curl 0} else: {down} .. tension 0.95 fi + ..z10{left}..z11{up}..z12{right}..z13{down}..z14; + z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; + z16 = (18uw, y12); + z17 = (22.5uw, y11); + z18 = (20.5uw, 0uh); + ka_right = z15 if calligraphic: {curl 0} ..tension 0.95 fi..z16{right} + ..z17{down}..z18; + penlabels(10,11,12,13,14,15,16,17,18,19); + + % the outer circle + z1 = (4uw, 12uh); % added (1uw, 2uh) + x4 = 28uw; + define_new_outer_circle; + ka_circle = new_outer_circle_path; + penlabels(1,2,3,4,5); + + % the raised letter ka: + transform super; + super := identity scaled 22.5/25 shifted (0, 2.5uh); + pickup curvepen; + draw ka_left transformed super; + drawdot(z14 transformed super); + draw ka_right transformed super; + drawdot(z18 transformed super); + draw ka_circle transformed super; + drawdot(z5 transformed super); + cullit; + sup_ka_picture := currentpicture; + clearit; + + % the subscribed letter ka (without the circle): + transform sub; + sub = identity scaled 12/14 shifted (7uw, -9uh); + pickup subpen; + draw ka_left transformed sub; + drawdot(z14 transformed sub); + draw ka_right transformed sub; + drawdot(z18 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + % make the eyes `super white' + unfill (z19{curl0}..z10{left}..z11{up}..z12{right}..z13--cycle) transformed sub; + unfill (z19--z15{curl0}...z16{right}...z17{down}..z18--cycle) transformed sub; + sub_ka_picture := currentpicture; + clearit; + + % the full size letter ka: + pickup curvepen; + draw ka_left; + drawdot(z14); + draw ka_right; + drawdot(z18); + cullit; + full_ka_picture := currentpicture; % save the ka shape for ki, ku, kuu, etc. + draw ka_circle; + drawdot(z5); +endchar; + +beginchar(c_k_ka, 28uw#+rm#, 25uh#, 9uh#); "Oriya conjunct k+ka"; + currentpicture := full_ka_picture + sub_ka_picture; + z1 = (4uw, 12uh); + x4 = 28uw; + new_outer_circle; +endchar; + +%% we modify the outer circle to make the ki + +beginchar(c_ki, 28uw#+rm#, 25uh#, 0uh#); "Oriya combination ki"; + currentpicture := full_ka_picture; + z1 = (4uw, 12uh); + x4 = 28uw; + new_i_circle; +endchar; + +beginchar(c_kaa, 30uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination kaa"; + currentpicture := full_ka_picture; + z1 = (4uw, 12uh); + x4 = 30uw; + new_aa_circle; +endchar; + +%% we now join the u matra with the ka to form the ku + +beginchar(c_ku, 30uw#+rm#, 25uh#, 11uh#); "Oriya combination ku"; + currentpicture := full_ka_picture; + z1 = (4uw, 12uh); + x4 = 30uw; + new_u_circle; +endchar; + +%% again with the uu for kuu + +beginchar(c_kuu, 30uw#+rm#, 25uh#, 11uh#); "Oriya combination kuu"; + currentpicture := full_ka_picture; + z1 = (4uw, 12uh); + x4 = 30uw; + new_uu_circle; +endchar; + +beginchar(c_k_ta, 28uw#+rm#, 25uh#, 8uh#); "Oriya conjunct k+ta"; + currentpicture := full_ka_picture + sec_ta_picture shifted (22uw, 4uh); + pickup curvepen; + z1 = (4uw, 12uh); + x4 = 28uw; + new_outer_circle; +endchar; + +%% we now create the lla from the ka by opening up the left loop + +picture full_lla_picture; + +beginchar(c_lla, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter lla"; + % inner bows + pickup curvepen; + z10 = (5.5uw, 0uh); + z11 = (3uw, 8.5uh); + z12 = (7.5uw, 14uh); + z13 = (12uw, 10uh); + z14 = (x13, 0uh); + draw z10..z11{up}..z12{right}..z13{down}..z14; drawdot(z14); + z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; + z16 = (16.5uw, y12); + z17 = (21uw, y11); + z18 = (19.5uw, 0uh); + pickup curvepen; + draw z15 if calligraphic: {curl 0}..tension 0.95 fi + ..z16{right}..z17{down}..z18; drawdot(z18); + penlabels(10,11,12,13,14,15,16,17,18,19); + cullit; full_lla_picture := currentpicture; + % outer circle + z1 = (4uw, 12uh); + x4 = 27uw; + new_outer_circle; +endchar; + +beginchar(c_l_ka, 28uw#+rm#, 25uh#, 9uh#); "Oriya conjunct l+ka"; + currentpicture := full_lla_picture + sub_ka_picture; + z1 = (4uw, 12uh); + x4 = 28uw; + new_outer_circle; +endchar; + +beginchar(c_llaa, 30uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination llaa"; + currentpicture := full_lla_picture; + z1 = (4uw, 12uh); + x4 = 30uw; + new_aa_circle; +endchar; + +beginchar(c_lli, 27uw#+rm#, 25uh#, 0uh#); "Oriya combination lli"; + currentpicture := full_lla_picture; + z1 = (4uw, 12uh); + x4 = 27uw; + new_i_circle; +endchar; + +%% adding a tail to the lla gives us the la + +beginchar(c_la, 29uw#+rm#, 25uh#, 0uh#); "Oriya letter la"; + currentpicture := full_lla_picture; + z1 = (4uw, 12uh); + x4 = 29uw; + new_tail_circle; +endchar; + +beginchar(c_laa, 29uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination laa"; + currentpicture := full_lla_picture; + pickup curvepen; + z18 = (19.5uw, 0); + z19 = z18 + (5uw, -6uh); + draw z18--z19; + drawdot(z19); + z1 = (4uw, 12uh); + x4 = 29uw; + new_aa_circle; + penlabels(18,19); +endchar; + +%% from the letter lla we build the letter i +%% (renumbering the points, putting the outer circle first) + +beginchar(c_i, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter i"; + pickup curvepen; + z1 = (4.5uw, 8uh); + z2 = (good.x 0uw, 15uh); + z3 = (.5[x2, x4], good.y (25uh+overshoot)); + z4 = (28uw, 13uh); + z5 = (x4 - 3uw, 2uh); + z6 = (x4 + 2uw, -4uh); + draw z1{left}..z2{up}..tension0.95..z3{right}..tension0.95..z4{down}..z5; drawdot(z5); + draw z5--z6; drawdot(z6); + penlabels(1,2,3,4,5,6); + + z10 = if calligraphic: z15 + (0uw, 1uh); else: z15; fi; + z11 = (16uw, 10uh); + z12 = (20uw, 5uh); + z13 = (x11, -overshoot); + z14 = (12uw, 4uh-overshoot); + z15 = (x14, 6uh); + z16 = (8uw, y11); + z17 = (4uw, y12); + z18 = (x16, y13); + z19 = if calligraphic: z14 - (0uw, 1uh); else: z14; fi; + draw z10 if calligraphic: {curl 0} else: {up} fi..z11{right}..z12{down} + ..z13{left}..z14{up}..z15{up}..z16{left}..z17{down} + ..z18{right}..if calligraphic: {curl 0} else: {up} fi z19; + penlabels(10,11,12,13,14,15,16,17,18,19); +endchar; + +%% the ii is just like an i with a extra curve in the outer circle + +beginchar(c_ii, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter ii"; + % first part of outer circle + pickup curvepen; + z1 = (4.5uw, 8uh); + z2 = (0uw, 13uh); + z8 = (5uw, 18uh); % (7uw, 18uh); + z20 = (13uw, 16uh); % (13uw, y8); + draw z1{left}..z2{up}..z8{right}..z20; % draw z1..z2{up}..z8---z20; + % second part of outer circle + z7 = (4.5uw, 18uh); + z9 = (4uw, 20uh); + z3 = (14uw, h+overshoot); + z4 = (28uw, 13uh); + z5 = (24uw, 2uh); + draw z7..z9{up}..z3{right}..tension0.95..z4{down}..z5; + % tail + z6 = (29uw, -4uh); + draw z5--z6; drawdot(z6); + % inner eyes + pickup curvepen; + z10 = if calligraphic: z15 + (0uw, 1uh); else: z15; fi; + z11 = (16uw, 10uh); + z12 = (20uw, 5uh); + z13 = (x11, -overshoot); + z14 = (12uw, 4uh-overshoot); + z15 = (x14, 6uh); + z16 = (8uw, y11); + z17 = (4uw, y12); + z18 = (x16, y13); + z19 = if calligraphic: z14 - (0uw, 1uh); else: z14; fi; + draw z10 if calligraphic: {curl 0} else: {up} fi..z11{right}..z12{down} + ..z13{left}..z14{up}..z15{up}..z16{left}..z17{down} + ..z18{right}..if calligraphic: {curl 0} else: {up} fi z19; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20); +endchar; + +beginchar(c_l_la, 29uw#+rm#, 25uh#, 2uh#); "Oriya conjunct l+la"; + path left_bow; + path right_bow; + + % bows + pickup curvepen; + z10 = (5uw, 6uh); + z11 = (3uw, .5[y10,y12]); + z12 = (7.5uw, 15uh); + z13 = (12uw, 11uh); + z14 = (x13, y10); + left_bow = z10..z11{up}..z12{right}..z13{down}..z14; + z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; + z16 = (16.5uw, y12); + z17 = (21uw, y11); + z18 = (19.5uw, y10); + right_bow = z15 if calligraphic: {curl 0}..tension 0.95 fi + ..z16{right}..z17{down}..z18; + z19 = z18 + (5uw, -6uh); + + z0 = (0, -8uh); + + draw left_bow; drawdot(z14); + draw right_bow; drawdot(z18); + draw left_bow shifted z0; drawdot(z14 shifted z0); + draw right_bow shifted z0; drawdot(z18 shifted z0); + draw (z18--z19) shifted z0; drawdot(z19 shifted z0); + + penlabels(10,11,12,13,14,15,16,17,18,19); + + % outer circle + z1 = (3uw, 12uh); + x4 = 29uw; + new_tail_circle; +endchar; + +beginchar(c_c_ca, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct c+ca"; + pickup curvepen; + z11 = z16 - (0, 1.5uh); + z12 = (8uw, -overshoot); + z13 = (3uw, 6uh); + z14 = (x12, 12uh); + z15 = (13uw, 8uh); + z16 = (x15, 4uh-overshoot); + z17 = (18uw, y12); + z18 = (23uw, y13); + z19 = (x17, y14); + z20 = z15 + (0, 1.5uh); + draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down} + ..z16{down}..z17{right}..z18{up}..z19{left}..{curl0}z20; + penlabels(11,12,13,14,15,16,17,18,19,20); + savepicture := currentpicture; + z1 = (5uw, 11uh); + x4 = 28uw; + new_outer_circle; +endchar; + +beginchar(c_c_cha, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct c+cha"; + % upper eyes + pickup curvepen; + z11 = z16 - (0, 1.5uh); + z12 = (8uw, 5uh); + z13 = (4uw, 0.5[y12, y14]); + z14 = (x12, 14uh); + z15 = (13uw, 10uh); + z16 = (x15, 10uh-overshoot); + z17 = (18uw, y12); + z18 = (22uw, y13); + z19 = (x17, y14); + z20 = z15 + (0, 1.5uh); + draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down} + ..z16{down}..z17{right}..z18{up}..z19{left}..{curl0}z20; + penlabels(11,12,13,14,15,16,17,18,19,20); + % lower eyes + % lower curl + z21 = (0uw, 6uh); + z22 = (x11, 3uh); + z23 = (x11, 2uh); + z24 = (x11 + 6.5uw, -overshoot); + z25 = (x11 + 10uw, 2uh); + z26 = (x24, 5uh); + z27 = (x11 - 6.5uw, y24); + z28 = (x11 - 10uw, y25); + z29 = (x27, y26); + pickup subpen; + draw z21{right}..{(2, -1)}z29; + draw z23..z24{right}..z25{up}..{left}z26..z23 + ..z27{left}..z28{up}..z29{right}..z23; + penlabels(21,22,23,24,25,26,27,28,29); + % outer circle + z1 = (4.5uw, 12uh); + x4 = 28uw; + new_outer_circle; +endchar; + +beginchar(c_ng_ga, 36uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+ga"; + currentpicture := savepicture; + z1 = (5uw, 11uh); + x31 = x4 = 30uw; + new_aa_circle; + top_left_eye; +endchar; + +beginchar(c_tt_tta, 28uw#+rb#+rm#, 25uh#, 0uh#); "Oriya conjunct tt+tta"; + currentpicture := savepicture; + pickup curvepen; + z1 = (5uw, 11uh); + z2 = (0uw, 16uh); + z3 = (.5[x2,x4], 25uh+overshoot); + z4 = (28uw, 25uh-joint); + draw z1{left}..z2{up}..z3{right}..{curl0}z4; + pickup barpen; + z5 = (x4, 25uh); + z6 = (x5, 15uh); + draw z6--z5; drawdot(z6); drawdot(z5); + penlabels(1,2,3,4,5,6); +endchar; + +beginchar(c_ng_kha, 36uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+kha"; + currentpicture := savepicture; + pickup curvepen; + z1 = (5uw, 11uh); + z2 = (0uw, 16uh); + z3 = (14uw, 25uh+overshoot); + z4 = (19.5uw, y3-.5uh); + z5 = (18uw, 21uh); + z6 = (24uw, 15uh); + z7 = (30uw, 21uh); + draw z1{left}..z2{up}..z3{right}..z4; + draw z4..z5{down}..z6{right}..{curl0}z7; + pickup barpen; + z10 = (30uw, 25uh); + z11 = (x10, 0uh); + draw z10--z11; drawdot(z10); drawdot(z11); + penlabels(1,2,3,4,5,6,7,8,9,10); + x31 = x10; + top_left_eye; +endchar; + +%% now we combine the tail of the nga with the ka to build the conjunct +%% ng+ka + +beginchar(c_ng_ka, 31uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ng+ka"; + pickup curvepen; + % outer tail, copied from nga + z1 = (4.5uw, 12uh); + z2 = (0uw, 18uh); + z3 = (10uw, h+overshoot); + z4 = (28.5uw, 19uh); + z5 = (32uw, 22.5uh); + z6 = (x4, 25uh+overshoot); + z7 = (25uw, y5); + z8 = (26.5uw, 19.25uh); + draw z1{left}..z2{up}..tension0.95..z3{right}..z4{right}..z5{up} + ..z6{left}..z7{down}..z8; + % inner parts of letter ka (shifted to left) + pickup curvepen; + z19 = if calligraphic: (x13, 6uh) else: (x13, 7uh) fi; % additional point + z10 = (x12, 3uh); + z11 = (12uw, 8.5uh); + z11a = z24 + (0uw, 1uh); % TODO conditional calligraphic adjustments + z11b = z20 + (0uw, 1uh); + z12 = (16uw, 14uh); + z13 = (20uw, 10uh); + z14 = (x13, 0uh); + z15 = if calligraphic: z13 + (0uw, 1uh); else: z13 fi; + z16 = (25uw, y12); + z17 = (29.5uw, y11); + z18 = (27.5uw, 0uh); + draw z15 if calligraphic: {curl 0} ..tension 0.95 fi..z16{right} + ..z17{down}..z18; drawdot(z18); + % extra circle left of ka + z20 = (x11, y13); + z21 = (8uw, y12); + z22 = (4uw, y11); + z23 = (x21, y10); + z24 = (x20, y19); + draw z19 if calligraphic: {curl 0} else: {down} .. tension 0.95 fi + ..z10{left}..z11a{up}..z11b; + draw z11b if calligraphic: {curl 0} fi..z12{right}..z13{down}..z14; drawdot(z14); + draw z20{up}..z21{left}..z22{down}..z23{right}..if calligraphic: {curl0} fi z24; + penlabels(1,2,3,4,5,6,7,8,9,10,11,11a,11b,12,13,14,15,16,17,18,19,20,21,22,23,24); +endchar; + +picture sub_tra_picture; + +beginchar(c_t_ra, 25uw#+rm#, 25uh#, 0uh#); "Oriya conjunct t+ra"; + path tra_top; + path tra_bot; + + % inner Oriya e like shape + pickup curvepen; + z11 = (9.5uw, 7.5uh); + z12 = (7uw, 10uh); + z13 = (16uw, 16uh); + z14 = (18uw, 14uh); + z15 = (x14, -overshoot); + z16 = (-1uw, 8uh); + tra_top = z11..z12{up}..tension1.4..z13{right}..z14{down}---z15; + tra_bot = z15--z16; + + % subscribed inner part + transform sub; + sub = identity scaled 12/15 shifted (0, -4uh); + pickup subpen; + draw tra_top transformed sub; + draw tra_bot transformed sub; + drawdot(z16 transformed sub); + drawdot(z15 transformed sub); + + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (tra_top & tra_bot -- cycle) transformed sub; + sub_tra_picture = currentpicture; + clearit; + + % full size inner part; + pickup curvepen; + draw tra_top; + draw tra_bot; + drawdot(z16); + drawdot(z15); + + penlabels(11,12,13,14,15,16); + savepicture := currentpicture; + % outer circle + pickup curvepen; + z1 = (7uw, 11uh); + z2 = (3uw, 17uh); + z3 = (.5[x2,x4], 25uh+overshoot); + z4 = (25uw, 17uh); + z5 = (23uw, 11uh); + draw z1..z2{up}..z3{right}..z4{down}..z5; + penlabels(1,2,3,4,5); +endchar; + +beginchar(c_k_ra, 32uw#+rm#, 25uh#, 0uh#); "Oriya conjunct k+ra"; + currentpicture := savepicture; + % extra tail + pickup curvepen; + z21 = (18uw, 10uh); + z22 = (23uw, 13uh); + z23 = (26uw, 9uh); + z24 = (24uw, 3uh); + draw z21{curl0}..z22{right}..z23{down}..z24; + penlabels(21,22,23,24); + % outer circle + pickup curvepen; + z1 = (7uw, 11uh); + z2 = (3uw, 17uh); + z3 = (.5[x2,x4], 25uh+overshoot); + z4 = (32uw, 17uh); + z5 = (30uw, 11uh); + draw z1..z2{up}..z3{right}..z4{down}..z5; + penlabels(1,2,3,4,5); +endchar; + +%%%%% ca and derived characters +%% +%% the first design of the letter ca had a separate eye, now we draw the whole character in +%% a single stroke. The points upto $z_{8}$ are taken from ga. The old design +%% still works better for the linear style. + +picture sub_ca_picture; + +beginchar(c_ca, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter ca"; % continuous stroke eye + path ca_path; + pickup curvepen; + z1 = (7.5uw, 9uh); + z2 = (good.x 6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (good.x 17uw, 5uh); + z5 = (12uw, good.y 10uh); + z6 = (6uw, good.y 9uh); + z7 = (0uw, 16uh); + z8 = (12uw, h+overshoot); + z9 = (good.x 24uw, 16uh); + z10 = (21.5uw, 9uh); + ca_path := z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{down}z9..z10; + + % the subscribed ca + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup subpen; + draw ca_path transformed sub; + drawdot(z10 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..cycle) transformed sub; + unfill (z5{left}..z6{left}..z7{up}..z8{right}..z9{down}..z10--cycle) transformed sub; + sub_ca_picture := currentpicture; + clearit; + + % the full size ca + pickup curvepen; + draw ca_path; + drawdot(z10); + penlabels(1,2,3,4,5,6,7,8,9,10); +endchar; + +%% the letter cha, we build from the letter ca, shifting most points +%% a bit up to accommodate the curl below it. + +beginchar(c_cha, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter cha"; + pickup curvepen; + % letter ca + z1 = (7.5uw, 12.25uh); + z2 = (6uw, 9uh); + z3 = (12uw, 4uh); + z4 = (18uw, y2); + z5 = (12uw, 14uh); + z6 = (6uw, 12uh); + z7 = (0uw, 17uh); + z8 = (12.5uw, h+overshoot); + z9 = (25uw, 17uh); + z10 = (22uw, 11uh); + draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{down}z9..z10; + drawdot(z10); + % lower curl + z11 = (0uw, 7uh); + z12 = (x3, 3uh); + z13 = (x3, 2uh); + z14 = (x3 + 6uw, -overshoot); + z15 = (x3 + 9uw, 2uh); + z16 = (x14, 5uh); + z17 = (x3 - 6uw, y14); + z18 = (x3 - 9uw, y15); + z19 = (x17, y16); + pickup subpen; + draw z11{right}..z13; + draw z13..z14{right}..z15{up}..{left}z16..z13..z17{left} + ..z18{up}..z19{right}..z13; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); +endchar; + +% we add a tail to ca to make ra + +beginchar(c_ra, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ra"; % continuous stroke eye + pickup curvepen; + z1 = (7.5uw, 9uh); + z2 = (6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); + z5 = (12uw, 10uh); + z6 = (6uw, 9uh); + z7 = (0uw, 16uh); + z8 = (12.5uw, h+overshoot); + z9 = (25uw, 13uh); + z10 = (21uw, 2uh); + z11 = (26uw, -4uh); + draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..tension0.95..{down}z9..z10; + draw z10--z11; drawdot(z11); + penlabels(1,2,3,4,5,6,7,8,9,10,11); +endchar; + +% we modify the tail of ra to make ri + +beginchar(c_ri, 26uw#+rm#, 25uh#, 0uh#); "Oriya letter ri"; % continuous stroke eye + pickup curvepen; + z1 = (7.5uw, 9uh); + z2 = (6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); + z5 = (12uw, 10uh); + z6 = (6uw, 9uh); + z7 = (0uw, 16uh); + z8 = (12.5uw, h+overshoot); + z9 = (25uw, 16uh); % adjusted + z10 = (21uw, 8uh); % adjusted + draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{down}z9..tension 0.9..z10; + % tail + z11 = (26uw, 7uh); + z12 = (24uw, 0uh); + z13 = (28.1667uw, -5uw); + draw z10..z11..z12; + draw z12--z13; + drawdot(z13); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); +endchar; + +% and again modify the tail to make rii + +beginchar(c_rii, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter rii"; % continuous stroke eye + pickup curvepen; + z1 = (7.5uw, 9uh); + z2 = (6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); + z5 = (12uw, 10uh); + z6 = (6uw, 9uh); + z7 = (0uw, 16uh); + z8 = (12.5uw, h+overshoot); + z9 = (25uw, 18uh); % adjusted + z10 = (21uw, 12.5uh); % adjusted + draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{down}z9..tension 0.9..z10; + % tail + z11 = (26uw, 11uh); + z12 = (24uw, 5.5uh); + z13 = (28uw, 4uh); + z14 = (26uw, -3uh); + z15 = (30.1667uw, -8uw); + draw z10..z11..z12; + drawdot(z12); + draw z12..z13..z14; + draw z14--z15; + drawdot(z15); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); +endchar; + +%% letter ga + +picture sup_ga_picture; +picture sub_ga_picture; + +beginchar(c_ga, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ga"; + z1 = (7.5uw, 9uh); + z2 = (6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); + z5 = (12uw, 10uh); + z6 = (6uw, 9uh); + z7 = (0uw, 16uh); + z8 = (11uw, h+overshoot); + z9 = (24uw, h - joint); + z10 = (x9, h); + z11 = (x9, 0); + + path ga_curve; + path ga_bar; + ga_curve := z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{curl0}z9; + ga_bar := z10--z11; + + % superscript ga: + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw ga_curve transformed super; + drawdot(z9 transformed super); + pickup barpen; + draw ga_bar transformed super; + drawdot(z10 transformed super); + drawdot(z11 transformed super); + cullit; + sup_ga_picture := currentpicture; + clearit; + + % subscribed ga: + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup curvepen; + draw ga_curve transformed sub; + drawdot(z9 transformed sub); + pickup barpen; + draw ga_bar transformed sub; + drawdot(z10 transformed sub); + drawdot(z11 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (z6{left}..z7{up}..z8{right}..{curl0}z9--z11--cycle) transformed sub; + sub_ga_picture := currentpicture; + clearit; + + % normal ga: + pickup curvepen; + draw ga_curve; + drawdot(z9); + pickup barpen; + draw ga_bar; + drawdot(z10); + drawdot(z11); + penlabels(1,2,3,4,5,6,7,8,9,10,11); + savepicture := currentpicture; +endchar; + +beginchar(c_g_ga, 29uw#+rm#, 25uh#, 10uh#); "Oriya conjunct g+ga"; + currentpicture := sup_ga_picture + sub_ga_picture shifted (6uw, 0); +endchar; + +beginchar(c_g_dha, 28uw#+rm#, 25uh#, 10uh#); "Oriya conjunct g+dha"; + currentpicture := sup_ga_picture + sub_dha_picture shifted (6uw, 0); +endchar; + +beginchar(c_caa, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter caa"; + pickup curvepen; + z1 = (7.5uw, 9uh); z2 = (6uw, 5uh); z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); z5 = (12uw, 10uh); z6 = (6uw, 9uh); + z7 = (0uw, 16uh); z8 = (11uw, h+overshoot); z9 = (24uw, h - joint); + draw z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{curl0}z9; drawdot(z9); + pickup barpen; + z10 = (x9, h); z11 = (x9, 3uh); + draw z10--z11; drawdot(z10); drawdot(z11); + penlabels(1,2,3,4,5,6,7,8,9,10,11); + new_tailtwo(12,11,13,14,15,16,17); +endchar; + +beginchar(c_raa, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya combination raa"; + currentpicture := savepicture; + pickup curvepen; + z1 = (15uw, .25uh); + z2 = (20uw, -5.75uh); + draw z1--z2; + drawdot(z2); + penlabels(1,2); +endchar; + +%% the \d{t} is like a ga with a short bar +%% here we also set a picture with a subscribed variant + +picture sub_tta_picture; + +beginchar(c_tta, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter tta"; + path tta_eye; + path tta_bar; + + % continuous stroke eye + pickup curvepen; + z1 = (7.5uw, 9uh); + z2 = (good.x 6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (good.x 17uw, 5uh); + z5 = (12uw, good.y 10uh); + z6 = (6uw, good.y 9uh); + z7 = (0uw, 16uh); + z8 = (10uw, 25uh+overshoot); + z9 = (22uw, 23uh-joint); + tta_eye = z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left} + ..z7{up}..z8{right}..z9; + pickup barpen; + % standing bar; + z10 = (x9, 25uh); z11 = (x9, 15uh); + tta_bar = z10--z11; + + % the subscribed variant: + transform sub; + sub = identity scaled 15/25 shifted (8uw, -9uh); + pickup subpen; + draw tta_eye transformed sub; + pickup subbarpen; + draw tta_bar transformed sub; + drawdot(z10 transformed sub); + drawdot(z11 transformed sub); + cullit; + currentpicture := currentpicture + currentpicture + currentpicture; + % unfill the interiour + unfill (z5{left}..z6{left}..z7{up}..z8{right}..z9--z11--cycle) transformed sub; + sub_tta_picture := currentpicture; + clearit; + + % the full size letter + pickup curvepen; + draw tta_eye; + pickup barpen; + draw tta_bar; + drawdot(z10); + drawdot(z11); + penlabels(1,2,3,4,5,6,7,8,9,10,11); +endchar; + +beginchar(c_k_tta, 28uw#+rm#, 25uh#, 10uh#); "Oriya conjunct k+tta"; + currentpicture := sup_ka_picture + sub_tta_picture shifted (7uw, 0); +endchar; + +%% from the ga, we create the kha + +picture sub_kha_picture; + +beginchar(c_kha, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter kha"; % continuous stroke eye + path kha_eye; + path kha_loop; + path kha_bar; + + z1 = (7.5uw, 9uh); + z2 = (6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); + z5 = (12uw, 10uh); + z6 = (6uw, 9uh); + z7 = (0uw, 16uh); + z8 = (11uw, h+overshoot); + z9 = (13.5uw, y8-.5uh); % added from here + z10 = (12uw, 21uh); + z11 = (18uw, 15uh); + z12 = (24uw, 21uh); + + kha_eye = z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left} + ..tension 0.95..z7{up}..z8{right}..z9; + kha_loop = z9..z10{down}..z11{right}..{curl0}z12; + + z13 = (x12, h); + z14 = (x13, 0); + kha_bar = z13--z14; + + % the subscribed variant: + transform sub; + sub = identity scaled 15/25 shifted (8uw, -9uh); + pickup subpen; + draw kha_eye transformed sub; + drawdot(z9 transformed sub); + draw kha_loop transformed sub; + pickup subbarpen; + draw kha_bar transformed sub; + drawdot(z13 transformed sub); + drawdot(z14 transformed sub); + cullit; + currentpicture := currentpicture + currentpicture + currentpicture; + % unfill the interiour + unfill (z5{left}..z6{left}..z7{up}..z8{right}..z9.. + z10{down}..z11{right}..{curl0}z12--z14--cycle) transformed sub; + sub_kha_picture := currentpicture; + clearit; + + % the full version + pickup curvepen; + draw kha_eye; + draw kha_loop; + drawdot(z9); + pickup barpen; + draw kha_bar; + drawdot(z13); + drawdot(z14); + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); +endchar; + +%%%%% pa and derived characters + +picture sub_ttha_picture; + +beginchar(c_ttha, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ttha"; + path ttha_path; + + pickup barpen; + z1 = (0uw, .5h); + z2 = (12.5uw, -overshoot); + z3 = (good.x 25uw, y1); + z4 = (x2, h+overshoot); + ttha_path := z1{down}..z2{right}..z3{up}..z4{left}..cycle; + + % the subscribed ttha + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup subbarpen; + draw ttha_path transformed sub; + currentpicture := currentpicture + currentpicture + currentpicture; + unfill ttha_path transformed sub; + sub_ttha_picture := currentpicture; + clearit; + + % the full size ttha + pickup barpen; + draw ttha_path; + + penlabels(1,2,3,4); +endchar; + +% from the k\d{s}a we now develop the pa +% +% here the paths are stored for later re-use, in the letter pa, we actually +% define three pictures, the letter pa itself, a slightly smaller raised +% version and a smaller lowered version, the latter two we store in +% picture variables. + +picture sup_pa_picture; +picture sup_big_pa_picture; +picture sub_pa_picture; +picture sub_pha_picture; + +beginchar(c_pa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter pa"; + path pa_top; % top left curve + path pa_bot; % bottom left curve + path pa_bar; % standing bar + pickup curvepen; + % top left curve + z1 = (6.25uw, 8.75uh); + z2 = (0uw, 17uh); + z3 = (11uw, 25uh+overshoot); + z4 = (22uw, 25uh-joint); + pa_top := z1..z2{up}..z3{right}..{curl0}z4; + % bottom left curve + z7 = (10uw, 10.5uh); + z8 = (good.x 4uw, 4.5uh); + z9 = (11uw, -overshoot); + z10 = (x4, joint); + pa_bot = z7{curl0}..z8{down}..z9{right}..{curl0}z10; + % standing bar + pickup barpen; + z13 = (x4, 25uh); z14 = (x4, 0uh); + pa_bar := z13--z14; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); + + % the raised pa: + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw pa_top transformed super; + draw pa_bot transformed super; + drawdot(z7 transformed super); + pickup barpen; + draw pa_bar transformed super; + drawdot(z13 transformed super); + drawdot(z14 transformed super); + cullit; sup_pa_picture := currentpicture; + clearit; + + % the raised pa (slightly bigger): + super := identity scaled 21.25/25 shifted (0, 3.75uh); + pickup curvepen; + draw pa_top transformed super; + draw pa_bot transformed super; + drawdot(z7 transformed super); + pickup barpen; + draw pa_bar transformed super; + drawdot(z13 transformed super); + drawdot(z14 transformed super); + cullit; sup_big_pa_picture := currentpicture; + clearit; + + % the lowered pa: + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup subpen; + draw pa_top transformed sub; + draw pa_bot transformed sub; + drawdot(z7 transformed sub); + pickup subbarpen; + draw pa_bar transformed sub; + drawdot(z13 transformed sub); + drawdot(z14 transformed sub); + % make the lines `super black' + currentpicture := currentpicture + currentpicture + currentpicture; + % make the inside `super white' + unfill (z1..z2{up}..z3{right}..{curl0}z4 & z4--z10 & z10{curl0} + ..z9{left}..z8{up}..{curl0}z7..cycle) transformed sub; + sub_pa_picture := currentpicture; + + % the lowered pha is a pa with a little eye: + z41 = (x4, 18uh); + z42 = (x4+3.5uw, 16uh); + z43 = (x4+7uw, 20.5uh); + z44 = (x42, 25uh); + z45 = (x41, 23uh); + draw (z41..z42{right}..z43{up}..z44{left}..z45) transformed sub; + sub_pha_picture := currentpicture; + clearit; + + % finally, the full size pa: + pickup curvepen; + draw pa_top; + draw pa_bot; + drawdot(z7); + pickup barpen; + draw pa_bar; + drawdot(z13); + drawdot(z14); + + cullit; savepicture := currentpicture; +endchar; + +% the pha is a pa with a little eye in the top right + +beginchar(c_pha, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter pha"; + currentpicture := savepicture; + x31 = 22uw; + top_left_eye; +endchar; + +beginchar(c_p_ta, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct p+ta"; + currentpicture := savepicture + sec_ta_picture shifted (22uw, 4uh); +endchar; + +beginchar(c_t_pa, 22uw#+rm#, 25uh#, 12uh#); "Oriya conjunct t+pa"; + currentpicture := sup_big_pa_picture; + z1 = (22uw * (21.25/25), 0uh); % = z14 in big superior pa + ta_tail; + pickup barpen; + z10 = (x1, 3.75uh); + draw z1..z10; +endchar; + +% the ssa is simply a pa with a diagonal. Here we have two variants, +% the normal one, and a sligtly raised version, for use in conjuncts. + +picture sup_ssa_picture; + +beginchar(c_ssa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ssa"; + path ssa_top; + path ssa_bot; + path ssa_dia; + path ssa_bar; + + pickup curvepen; + % top left curve + z1 = (6.25uw, 8.75uh); + z2 = (0uw, 17uh); + z3 = (11uw, h+overshoot); + z4 = (22uw, h-joint); + ssa_top = z1..z2{up}..z3{right}..{curl0}z4; + % bottom left curve + z7 = (10uw, 10.5uh); % position adjusted to accomodate diagonal bar + z8 = (4uw, 4.5uh); + z9 = (11uw, -overshoot); + z10 = (x4, joint); + ssa_bot = z7{curl0}..z8{down}..z9{right}..{curl0}z10; + % main diagonal + pickup ddiagpen; + z11 = (4.75uw, 24.25uh); z12 = z10 - (1.5uw, 1uh); + ssa_dia = z11--z12; + % standing bar + pickup barpen; + z13 = (x4, h); z14 = (x4, 0uh); + ssa_bar = z13--z14; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); + + % the superiour version + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw ssa_top transformed super; + draw ssa_bot transformed super; + drawdot(z7 transformed super); + pickup ddiagpen; + draw ssa_dia transformed super; + pickup barpen; + draw ssa_bar transformed super; + drawdot(z13 transformed super); + drawdot(z14 transformed super); + cullit; sup_ssa_picture := currentpicture; + clearit; + + % the normal size version + pickup curvepen; + draw ssa_top; + draw ssa_bot; + drawdot(z7); + pickup ddiagpen; + draw ssa_dia; + pickup barpen; + draw ssa_bar; + drawdot(z13); + drawdot(z14); + cullit; savepicture := currentpicture; +endchar; + +beginchar(c_l_pa, 30uw#+rm#, 25uh#, 10uh#); "Oriya conjunct l+pa"; + currentpicture := full_lla_picture + sub_pa_picture shifted (8uw, 0); + z1 = (4uw, 12uh); + x4 = 28uw; + new_outer_circle; +endchar; + +beginchar(c_l_pha, 32uw#+rm#, 25uh#, 10uh#); "Oriya conjunct l+pha"; + currentpicture := full_lla_picture + sub_pha_picture shifted (8uw, 0); + z1 = (4uw, 12uh); + x4 = 28uw; + new_outer_circle; +endchar; + +beginchar(c_ss_ka, 22uw#+rm#, 25uh#, 5uh#); "Oriya conjunct ss+ka"; + currentpicture := sup_ssa_picture + sub_ka_picture shifted (-4uw, 4uh); +endchar; + +beginchar(c_ss_pa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+pa"; + currentpicture := sup_ssa_picture + sub_pa_picture; +endchar; + +beginchar(c_ss_pha, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+pha"; + currentpicture := sup_ssa_picture + sub_pha_picture; +endchar; + +beginchar(c_ss_tta, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+tta"; + currentpicture := sup_ssa_picture + sub_tta_picture; +endchar; + +beginchar(c_ss_ttha, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ss+ttha"; + currentpicture := sup_ssa_picture + sub_ttha_picture; +endchar; + +picture sup_k_ssa_picture; + +beginchar(c_k_ssa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya conjunct k+ssa"; + path kssa_top; + path kssa_botdiag; + path kssa_bot; + path kssa_diag; + path kssa_bar; + + pickup curvepen; + % top left curve + z1 = (7.5uw, 6.5uh); + z2 = (0uw, 16uh); + z3 = (11uw, h+overshoot); + z4 = (22uw, h-joint); + kssa_top = z1{left}..z2{up}..z3{right}..{curl0}z4; + % bottom left diagonal + pickup udiagpen; + z5 = (10uw, 9uh); + z6 = (1uw, 0); + kssa_botdiag = z5--z6; + % bottom left curve + pickup curvepen; + z7 = z1; + z8 = (6.5uw, 3.5uh); + z9 = (11uw, -overshoot); + z10 = (x4, joint); + kssa_bot = z7..z8{down}..z9{right}..{curl0}z10; + % main diagonal + pickup ddiagpen; + % z11 = (4uw, 23uh); + % z12 = z10; + z11 = (5uw, 24uh); + z12 = z10 - (1.5uw, 1uh); + kssa_diag = z11--z12; + % standing bar + pickup barpen; + z13 = (x4, h); + z14 = (x4, 0uh); + kssa_bar = z13--z14; + + % draw the raised kssa + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + draw kssa_top transformed super; + draw kssa_bot transformed super; + pickup udiagpen; + draw kssa_botdiag transformed super; + drawdot(z6 transformed super); + pickup ddiagpen; + draw kssa_diag transformed super; + pickup barpen; + draw kssa_bar transformed super; + drawdot(z13 transformed super); + drawdot(z14 transformed super); + cullit; sup_k_ssa_picture := currentpicture; + clearit; + + % draw the full size kssa + pickup curvepen; + draw kssa_top; + draw kssa_bot; + pickup udiagpen; + draw kssa_botdiag; + drawdot(z6); + pickup ddiagpen; + draw kssa_diag; + pickup barpen; + draw kssa_bar; + drawdot(z13); + drawdot(z14); + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); +endchar; + +%% the ya is like a kssa without a diagonal + +beginchar(c_ya, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ya"; + pickup curvepen; + % top left curve + z1 = (7.5uw, 6.5uh); + z2 = (0uw, 16uh); + z3 = (11uw, 25uh+overshoot); + z4 = (22uw, 25uh-joint); + draw z1{left}..z2{up}..z3{right}..{curl0}z4; + % bottom left diagonal + pickup udiagpen; + z5 = (11uw, 10uh); % adjusted because we removed the diagonal + z6 = (1uw, 0); + draw z5--z6; + drawdot(z6); + % bottom left curve + pickup curvepen; + z7 = z1; + z8 = (6.5uw, 3.5uh); + z9 = (11uw, -overshoot); + z10 = (x4, joint); + draw z7..z8{down}..z9{right}..{curl0}z10; + % standing bar + pickup barpen; + z13 = (x4, h); + z14 = (x4, 0uh); + draw z13--z14; + drawdot(z13); + drawdot(z14); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); +endchar; + +%% the yya is like a ya with a two-like tail + +beginchar(c_yya, 25uw#+rm#, 25uh#, 10uh#); "Oriya letter yya"; + pickup curvepen; + % top left curve + z1 = (7.5uw, 6.5uh); + z2 = (0uw, 16uh); + z3 = (10.5uw, h+overshoot); % a little bit narrower than ya + z4 = (21uw, h-joint); + draw z1{left}..z2{up}..z3{right}..{curl0}z4; + % bottom left diagonal + pickup udiagpen; + z5 = (11uw, 10uh); % adjusted because we removed the diagonal + z6 = (1uw, 0); + draw z5--z6; + drawdot(z6); + pickup curvepen; + % bottom left curve + z7 = z1; + z8 = (6.5uw, 3.5uh); + z9 = (11uw, -overshoot); + z10 = (x4, joint); + draw z7..z8{down}..z9{right}..{curl0}z10; + % standing bar + pickup barpen; + z13 = (x4, h); + z14 = (x4, 3uh); + % the tail + z16 = (x4+1uw, 3uh); + pickup curvepen; + new_tailtwo(15,16,17,18,19,20,21); + draw z13--z14; + drawdot(z13); + drawdot(z14); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21); +endchar; + +%%%%% da, di, hu, ha, hi + +picture sup_da_picture; + +beginchar(c_da, 23uw#+rm#, 25uh#, 0uh#); "Oriya letter da"; + pickup curvepen; + z11 = (17uw, 0uh); + z12 = (x11, 13uh); + z13 = (7uw, 14uh); + z14 = (3.5uw, 8uh); + z15 = (10uw, 2uh); + z16 = (x11, 6uh); + z1 = (4.0uw, 11uh); + x4 = 23uw; + define_new_outer_circle; + + path da_bar; + path da_curve; + path da_circle; + da_bar := z11---z12; + da_curve := z13..z14{down}..z15{right}..{curl0}z16; + da_circle := new_outer_circle_path; + + % the superior da + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup barpen; + draw da_bar transformed super; + drawdot(z11 transformed super); + drawdot(z12 transformed super); + pickup curvepen; + draw da_curve transformed super; + draw da_circle transformed super; + drawdot(z5 transformed super); + drawdot(z13 transformed super); + cullit; sup_da_picture := currentpicture; + clearit; + + % the normal da + pickup barpen; + draw da_bar; + drawdot(z11); + drawdot(z12); + pickup curvepen; + draw da_curve; + drawdot(z13); + penlabels(11,12,13,14,15,16); + cullit; savepicture := currentpicture; + + draw_new_outer_circle; +endchar; + +beginchar(c_d_ga, 22uw#+rm#, 25uh#, 8uh#); "Oriya conjunct d+ga"; + currentpicture := sup_da_picture + sub_ga_picture shifted (-1uw, 1uh); +endchar; + +beginchar(c_di, 23uw#+rm#, 25uh#, 0uh#); "Oriya combination di"; + currentpicture := savepicture; + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_narrow_i_circle; +endchar; + +%%%%% ha + +beginchar(c_hu, 23uw#+rm#, 25uh#, 15uh#); "Oriya combination hu"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (3.5uw, -2uh); + draw z15--z16; + z17 = (7.5uw, -4uh); + z18 = (16uw, -12uh); + z19 = (12.5uw, -15uh); + z20 = (9uw, y18); + z21 = (17.5uw, y17); + z22 = (21.5uw, y16); + draw z16---z17..z18{down}..z19{left}..z20{up}..z21---z22; + penlabels(15,16,17,18,19,20,21,22,23); + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + +beginchar(c_h_ba, 23uw#+rm#, 25uh#, 12uh#); "Oriya combination h+ba"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (-1uw, -5uh); + z17 = (17uw, -14uh); + draw z15--z16--z17; + + pickup barpen; + z20 = (17uw, 0uh); + z21 = (x20, -9uh); + draw z20--z21; + + z24 = (17uw, -2.5uw); + eye(22, 23, 24, 25)(10uw, 8uh); + draw_eye(22, 23, 24, 25); % intentionally drawn with barpen + + penlabels(15,16,17, 20, 21, 22, 23, 24, 25); + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + +beginchar(c_ha, 23uw#+rm#, 25uh#, 8uh#); "Oriya letter ha"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (3.5uw, -2uh); + z17 = (17uw, -8uh); + draw z15--z16; draw z16--z17; drawdot(z17); + penlabels(15,16,17); + cullit; savepicture := currentpicture; + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + +beginchar(c_hi, 23uw#+rm#, 25uh#, 8uh#); "Oriya combination hi"; + currentpicture := savepicture; + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_narrow_i_circle; +endchar; + +beginchar(c_h_na, 32uw#+rm#, 25uh#, 8uh#); "Oriya combination h+na"; + currentpicture := savepicture; + z1 = (4.0uw, 11uh); + z2 = (good.x 0uw, 16uh); + z3 = (.5[x2,x4], good.y (25uh+overshoot)); + z4 = (31uw, y2-2uh); + z5 = (29uw, 6.5uh); + + % copied from secondary letter na + pickup curvepen; + z11 = (7uw, 0uh); % copied from letter na + z12 = (4uw, 3uh); + z13 = (16uw, 12uh); + z14 = (18uw, 10uh); + z15 = (x14, 0uh); + transform sub; + sub = identity scaled 10/12 shifted (16uw, -4uh); + draw (z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15) + transformed sub; + drawdot(z11 transformed sub); + drawdot(z12 transformed sub); + + % draw the outer circle + draw z1{left}..z2{up}..z3{right}..z4{down}..z5; + + penlabels(1, 2, 3, 4, 5, 11, 12, 13, 14, 15); +endchar; + +beginchar(c_h_ma, 23uw#+rm#, 25uh#, 16uh#); "Oriya combination h+ma"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (3.5uw, -2uh); + draw z15--z16; + z17 = (7uw, -3.5uh); + z18 = (16uw, -11uh); + z19 = (12.5uw, -15uh); + z20 = (8uw, y18); + z21 = (18.5uw, y17); + z22 = (22.5uw, y16); + z23 = (x22, -16uh); + draw z16---z17..z18{down}..z19{left}..z20{up}..z21---z22--z23; + penlabels(15,16,17,18,19,20,21,22,23); + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + +%%%%% ja + +picture sec_ja_picture; +picture sup_ja_picture; + +beginchar(c_ja, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter ja"; + path ja_curve; + path ja_bar; + path ja_circle; + z11 = (6uw, 12uh); + z12 = (3uw, 6.5uh); + z13 = (.5[x12, x14], -overshoot); + z14 = (16uw, 3.25uh); + z15 = (10uw, 9.25uh); + z16 = (13.5uw, 12uh); + z17 = (22uw, 9uh); + z18 = (x17, 0uh); + + % outer circle; + z1 = (4.5uw, 11uh); + x4 = 27uw; + define_new_outer_circle; + + ja_circle = new_outer_circle_path; + ja_bar = z17--z18; + ja_curve = z11..z12{down}..tension0.95..z13{right}..z14{up}..z15{up}..z16{right}..z17; + + transform sub; + sub := identity scaled 10/12 shifted (7.5uw, -10.75uh); + pickup curvepen; + draw ja_bar transformed sub; + draw ja_curve transformed sub; + drawdot(z11 transformed sub); + drawdot(z17 transformed sub); + drawdot(z18 transformed sub); + cullit; + sec_ja_picture = currentpicture; + clearit; + + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw ja_bar transformed super; + draw ja_curve transformed super; + draw ja_circle transformed super; + drawdot(z11 transformed super); + drawdot(z17 transformed super); + drawdot(z18 transformed super); + drawdot(z5 transformed super); + cullit; + sup_ja_picture = currentpicture; + clearit; + + draw ja_bar; + draw ja_curve; + draw ja_circle; + drawdot(z11); + drawdot(z17); + drawdot(z18); + drawdot(z5); + penlabels(1, 2, 3, 4, 5, 11,12,13,14,15,16,17,18); + savepicture := currentpicture; +endchar; + +beginchar(c_j_ja, 28uw#+rm#, 25uh#, 11uh#); "Oriya conjunct j+ja"; + currentpicture := savepicture + sec_ja_picture; +endchar; + +%%%%% jha + +picture sub_jha_picture; + +beginchar(c_jha, 24uw#+rm#, 25uh#, 6uh#); "Oriya letter jha"; % continuous stroke eye + path jha_curve; + path jha_cup; + path jha_tail; + + z1 = (7.5uw, 9uh); + z2 = (6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); + z5 = (12uw, 10uh); + z6 = (6uw, 9uh); + z7 = (0uw, 16uh); + z8 = (11uw, h+overshoot); + z9 = (13.5uw, y8-.5uh); % added from here + z10 = (12uw, 21uh); + z11 = (18uw, 15uh); + z12 = (24uw, 21uh); + z13 = (22.5uw, 25uh); + % tail at bottom + z14 = (15uw, .25uh); + z15 = (20uw, -5.75uh); + + jha_curve = z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left} + ..tension 0.95..z7{up}..z8{right}..z9; + jha_cup = z9..z10{down}..z11{right}..z12{up}..z13; + jha_tail = z14--z15; + + % subscribed jha + transform sub; + sub := identity scaled 13/25 shifted (12uw, -9uh); + pickup subpen; + draw jha_curve transformed sub; + draw jha_cup transformed sub; + drawdot(z9 transformed sub); + drawdot(z13 transformed sub); + draw jha_tail transformed sub; + drawdot(z15 transformed sub); + sub_jha_picture = currentpicture; + clearit; + + % full size jha + pickup curvepen; + draw jha_curve; + draw jha_cup; + drawdot(z9); + drawdot(z13); + draw jha_tail; + drawdot(z15); + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); +endchar; + +beginchar(c_j_jha, 26uw#+rm#, 25uh#, 11uh#); "Oriya conjunct j+jha"; + currentpicture := sup_ja_picture + sub_jha_picture; +endchar; + +%%%%% ba + +picture sup_ba_picture; +picture ba_picture; + +beginchar(c_ba, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter ba"; + path ba_curve; + path ba_circle; + + z11 = (18uw, 0uh); + z12 = (x11, 8uh); + z13 = (10.5uw, 14uh); + z14 = (3.5uw, 8uh); + z15 = (x13, 2uh); + z16 = (x11, 6uh); + ba_curve = z11---z12..z13{left}..z14{down}..z15{right}..{curl0}z16; + penlabels(11,12,13,14,15,16); + + z1 = (4.75uw, 12uh); + x4 = 24uw; + define_new_outer_circle; + ba_circle = new_outer_circle_path; + + % the superior ba + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw ba_curve transformed super; + drawdot(z11 transformed super); + draw ba_circle transformed super; + cullit; sup_ba_picture := currentpicture; + clearit; + + % the full size ba + pickup curvepen; + draw ba_curve; + drawdot(z11); + draw ba_circle; + + ba_picture := currentpicture; +endchar; + +beginchar(c_badot, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter ba with dot inside"; + currentpicture := ba_picture; + z2 = (10.5uw, 8uh + 1.75uh); + pickup barpen; + eye(1,2,3,4)(3.5uw,3.5uh); + draw_eye(1,2,3,4); + filldraw z1..z2..z3..z4..cycle; +endchar; + +beginchar(c_b_ja, 27uw#+rm#, 25uh#, 11uh#); "Oriya conjunct b+ja"; + currentpicture := ba_picture + sec_ja_picture; +endchar; + +beginchar(c_b_dha, 21uw#+rm#, 25uh#, 10uh#); "Oriya conjunct b+dha"; + currentpicture := sup_ba_picture + sub_dha_picture; +endchar; + +beginchar(c_b_ba, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct b+ba"; + pickup curvepen; + z11 = z16 - (0, 1uh); + z12 = (7.5uw, 3uh); + z13 = (3uw, 9uh); + z14 = (x12, 14uh); + z15 = (x11, 10uh); + z16 = (12uw, 7uh); + z17 = (16.5uw, y12); + z18 = (21uw, 6uh); + draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down}..z16{down} + ..z17{right}..{curl0}z18; + z19 = z15 + (0, 1uh); + z20 = (x17, y14); + z21 = (x18, y15); + z22 = (x18, 0uh); + draw z19{curl0}..z20{right}..z21{down}..z22; drawdot(z22); + penlabels(11,12,13,14,15,16,17,18,19,20,21,22); + z1 = (3.75uw, 12uh); + x4 = 27uw; + new_outer_circle; +endchar; + +beginchar(c_b_da, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct b+da"; + pickup curvepen; + z11 = z16 - (0, 1uh); + z12 = (7.5uw, 3uh); + z13 = (3uw, 9uh); + z14 = (x12, 14uh); + z15 = (x11, 10uh); + z16 = (12uw, 7uh); + z17 = (16.5uw, y12); + z18 = (21uw, 6uh); + draw z11{curl0}..z12{left}..z13{up}..z14{right}..z15{down}..z16{down} + ..z17{right}..{curl0}z18; + % z19 = z15 + (0, 1uh); % removed + % z20 = (x17, y14); % removed + z21 = (x18, 13uh); + z22 = (x18, 0uh); + draw z21--z22; drawdot(z21); drawdot(z22); + penlabels(11,12,13,14,15,16,17,18, 21,22); + z1 = (3.75uw, 12uh); + x4 = 27uw; + new_outer_circle; +endchar; + +beginchar(c_d_da, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct d+da"; + pickup curvepen; + z11 = z16 - (0, 1uh); + z12 = (7.5uw, 3uh); + z13 = (3uw, 9uh); + z14 = (6uw, 14uh); % adjusted + z15 = (x11, 13uh); % adjusted + z16 = (12uw, 7uh); + z17 = (16.5uw, y12); + z18 = (21uw, 6uh); + draw z11{curl0}..z12{left}..z13{up}..z14; drawdot(z14); + draw z15..z16{down}..z17{right}..z18{curl0}; drawdot(z15); + % z19 = z15 + (0, 1uh); % removed + % z20 = (x17, y14); % removed + z21 = (x18, 13uh); + z22 = (x18, 0uh); + draw z21--z22; drawdot(z21); drawdot(z22); + penlabels(11,12,13,14,15,16,17,18, 21,22); + z1 = (3.75uw, 12uh); + x4 = 27uw; + new_outer_circle; + savepicture := currentpicture; +endchar; + +beginchar(c_d_dha, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct d+dha"; + currentpicture := savepicture; + pickup ddiagpen; + z21 = (21uw, 13uh); + z23 = (6uw, 24uh); + draw z21--z23; + penlabels(21,23); +endchar; + +beginchar(c_n_da, 23uw#+rm#, 25uh#, 0uh#); "Oriya conjunct n+da"; + z1 = (4.5uw, 10uh); + x4 = 23uw; + outer_circle; + pickup barpen; + z11 = (6uw, 13uh); + z12 = (0uw, 0uh); + draw z11--z12; drawdot(z11); drawdot(z12); + pickup curvepen; + z13 = (4uw, 7uh); + z14 = (10.5uw, 2uh-overshoot); + z15 = (17uw, 2uh+joint); + draw z11{(z12-z11)}..z13{down}..z14{right}..{curl0}z15; + z16 = (x15, 13uh); + z17 = (x16, 0uh); + draw z16--z17; drawdot(z16); drawdot(z17); + penlabels(11,12,13,14,15,16,17); + savepicture := currentpicture; +endchar; + +beginchar(c_n_dha, 24uw#+rm#, 25uh#, 0uh#); "Oriya conjunct n+dha"; + currentpicture := savepicture; + pickup ddiagpen; + z16 = (17uw, 13uh); + z18 = (4.5uw, 23.5uh); + draw z16--z18; + penlabels(16,18); +endchar; + +beginchar(c_bha, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter bha"; + pickup curvepen; + z11 = (6uw, 13uh); + z12 = (3uw, 7uh); + z13 = (12uw, -overshoot); + z14 = (21uw, y12); + z15 = (19uw, y11); + draw z11..z12{down}..tension0.95..z13{right}..tension0.95..z14{up}..z15; + drawdot(z11); + drawdot(z15); + % inner cup + z16 = z15 - (0, 2uw); + z17 = (.5[x15,x19], 6uh); + z18 = (10.5uw, y16); + z19 = (x18, y15); + draw z15{down}..z16..tension0.95..z17{left}..tension0.95..z18..{up}z19; + drawdot(z19); + penlabels(11,12,13,14,15,16,17,18,19); + z1 = (4uw, 11uh); + x4 = 28uw; + new_tail_circle; +endchar; + +beginchar(c_d_bha, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct d+bha"; + pickup curvepen; + z11 = (6uw, 12uh); + z12 = (3uw, 7uh); + z13 = (12uw, -overshoot); + z14 = (21uw, y12); + z15 = (19uw, 12uh); + draw z11..z12{down}..tension0.95..z13{right}..tension0.95..z14{up}..z15; + drawdot(z11); + drawdot(z15); + penlabels(11,12,13,14,15); + z16 = (20.75uw, 11uh); + z17 = (16uw, 9uh); + z18 = (11uw, 10uh); + z19 = (13uw, 15uh); + z20 = (11uw, 14uh); + z21 = (10uh, 21uh); + draw z15..z17..z19; + draw z19..z20..z21; + drawdot(z19); + drawdot(z21); + penlabels(16,17,18,19,20,21); + z1 = (4uw, 11uh); + x4 = 28uw; + new_tail_circle; +endchar; + +%%%%% dda, ddi, u, uu, nga + +picture sub_dda_picture; +picture sup_dda_picture; + +beginchar(c_dda, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter dda"; + z11 = (9uw, 13uh); + z12 = (good.x 4uw, 6uh); + z13 = (.5[x12,x14], -overshoot); + z14 = (good.x 20uw, 6uh); + z15 = .5[z17,z18]; + z16 = z17 - (1uw, 2uh); + z17 = (11uw, 8uh); + z18 = (17uw, 15uh); + z19 = z18 + (1uw, 2uh); + z1 = (6.5uw, 11uh); + x4 = 25uw; + define_new_outer_circle; + + path dda_bar; + path dda_curve; + path dda_circle; + dda_bar := z16..z17---z18..z19; + dda_curve := z11{curl0}..z12{down}..z13{right}..z14{up}..z15; + dda_circle := new_outer_circle_path; + + % subscribed dda: + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup barpen; + draw dda_bar transformed sub; + drawdot(z16 transformed sub); + drawdot(z19 transformed sub); + pickup curvepen; + draw dda_curve transformed sub; + drawdot(z11 transformed sub); + draw dda_circle transformed sub; + drawdot(z5 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (dda_circle--cycle) transformed sub; + sub_dda_picture := currentpicture; + clearit; + + % the superior dda + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup barpen; + draw dda_bar transformed super; + drawdot(z16 transformed super); + drawdot(z19 transformed super); + pickup curvepen; + draw dda_curve transformed super; + drawdot(z11 transformed super); + draw dda_circle transformed super; + drawdot(z5 transformed super); + cullit; sup_dda_picture := currentpicture; + clearit; + + % normal dda: + pickup barpen; + draw dda_bar; + drawdot(z16); + drawdot(z19); + pickup curvepen; + draw dda_curve; + drawdot(z11); + penlabels(11,12,13,14,15,16,17,18,19); + cullit; savepicture := currentpicture; + + draw_new_outer_circle; +endchar; + +beginchar(c_dd_dda, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct dd+dda"; + currentpicture := sup_dda_picture + sub_dda_picture; +endchar; + +beginchar(c_dd_ga, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct dd+ga"; + currentpicture := sup_dda_picture + sub_ga_picture; +endchar; + +beginchar(c_rr_ga, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct rr+ga"; + currentpicture := sup_dda_picture + sub_ga_picture; + z2 = (2uw, 0uh); + pickup barpen; + eye(1,2,3,4)(3.5uw,2.5uh); + draw_eye(1,2,3,4); + filldraw z1..z2..z3..z4..cycle; + penlabels(1,2,3,4); +endchar; + +beginchar(c_ddi, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ddi"; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 25uw; + new_narrow_i_circle; +endchar; + +beginchar(c_u, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter u"; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 27uw; + new_tail_circle; +endchar; + +beginchar(c_uu, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter uu"; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 28uw; + new_loop_tail_circle; +endchar; + +beginchar(c_nga, 30uw#+rm#, 25uh#, 0uh#); "Oriya letter nga"; + currentpicture := savepicture; + pickup curvepen; + % outer circle + z1 = (6.5uw, 11uh); + z2 = (good.x 0uw, 17uh); + z3 = (10uw, h+overshoot); % adjusted + z4 = (27.5uw, good.y 19uh); % adjusted + z5 = (good.x 31uw, 22.5uh); % adjusted + z6 = (x4, good.y(25uh+overshoot)); % added + z7 = (good.x 24uw, y5); % added + z8 = (25.5uw, 19.25uh); % added + draw z1{left}..z2{up}..tension0.95..z3{right}..z4{right}..z5{up} + ..z6{left}..z7{down}..z8; + penlabels(1,2,3,4,5,6,7,8); +endchar; + +%%%%% ddha, ddhi + +beginchar(c_ddha, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ddha"; + pickup curvepen; + z11 = (10uw, 13uh); + z12 = (good.x 4uw, 6uh); + z13 = (.5[x12,x14], -overshoot); + z14 = (good.x 20uw, 6uh); + z15 = z14 + (-3uw, 3uw); + z16 = (8uw, 0uh); + draw z11{curl0}..z12{down}..z13{right}..z14{up}..z15{left}..{curl0}z16; + drawdot(z11); + penlabels(11,12,13,14,15,16); + cullit; savepicture := currentpicture; + z1 = (6.5uw, 11uh); + x4 = 25uw; + new_outer_circle; +endchar; + +beginchar(c_ddhi, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter ddhi"; + currentpicture := savepicture; + z1 = (6.5uw, 11uh); + x4 = 25uw; + new_narrow_i_circle; +endchar; + +%%%%% shapes related to nna + +picture sup_nna_picture; +picture sub_nna_picture; + +beginchar(c_nna, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter nna"; + path nna_top; + path nna_bot; + path nna_bar; + + pickup curvepen; + % upper curve + z1 = (24uw, 25uh-joint); + z2 = (15uw, 25uh+overshoot); + z3 = (8uw, 21uh); + z4 = (10uw, 16.75uh); + nna_top = z1{curl0}..z2{left}..z3{down}..{curl0}z4; + z5 = (14uw, 14.5uh); + z6 = (7uw, 17.5uh); + z7 = (0, 9.5uh); + z8 = (10uw, -overshoot); + z9 = (17uw, 4uh); + z10 = (11uw, 9uh); + z11 = (2.5uw, 3uh); + nna_bot = z5{curl0}..z6{left}..z7{down}..z8{right} + ..z9{up}..z10{left}..{curl0}z11; + z12 = (x1, 25uh); + z13 = (x12, 0); + pickup barpen; + nna_bar = z12--z13; + + % draw the superior version of nna + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw nna_top transformed super; + drawdot(z4 transformed super); + draw nna_bot transformed super; + pickup barpen; + draw nna_bar transformed super; + cullit; sup_nna_picture := currentpicture; + clearit; + + % draw the subscribed version of nna + transform sub; + sub := identity scaled 15/25 shifted (8uw, -5uh); + pickup subpen; + draw nna_top transformed sub; + drawdot(z4 transformed sub); + draw nna_bot transformed sub; + pickup subbarpen; + draw nna_bar transformed sub; + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (z8{left}..z7{up}..z6{right}..{curl0}z5.. + z4{curl0}..z3{up}..z2{right}..{curl0}z1-- + z13--cycle) transformed sub; + sub_nna_picture := currentpicture; + clearit; + + % draw the full size nna: + pickup curvepen; + draw nna_top; + drawdot(z4); + draw nna_bot; + pickup barpen; + draw nna_bar; + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); + cullit; savepicture := currentpicture; +endchar; + +beginchar(c_nn_dda, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+dda"; + currentpicture := savepicture + sec_ta_picture shifted (24uw, 4uh); +endchar; + +beginchar(c_nn_ddha, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+ddha"; + currentpicture := savepicture + sec_da_picture shifted (24uw, 4uh); +endchar; + +beginchar(c_nn_tta, 28uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+tta"; + currentpicture := sup_nna_picture + sub_tta_picture shifted(5uw, 0); +endchar; + +beginchar(c_nn_ttha, 28uw#+rm#, 25uh#, 8uh#); "Oriya conjunct nn+ttha"; + currentpicture := sup_nna_picture + sub_ttha_picture shifted(4uw, 0); +endchar; + +picture sec_nna_picture; + +beginchar(c_nn_nna, 30uw#+rm#, 25uh#, 13uh#); "Oriya letter nn+nna"; + % subscribed nna + pickup curvepen; + z21 = (15.75uw, 1uh); + z22 = (good.x 14uw, -5uh); + z23 = (.5[x22,x24], good.y -13uh); + z24 = (good.x 30uw, -7uh); + z25 = (26.5uw, -3uh); + draw z21..z22{down}..z23{right}..z24{up}..z25; + draw z21..z22{down}..z23{right}..z24{up}..z25; + % unfill z21..z22{down}..z23{right}..z24{up}..z25..cycle; + z26 = (22uw, -5.5uh); + z27 = (good.x 28uw, 1uh); + z28 = (25uw, good.y 4uh); + z29 = (good.x 21uw, 1uh); + z30 = z29 + (1uw, -2uh); + draw z26{curl0}..tension 1.1..z27{up}..z28{left}..z29{down}..z30; + draw z26{curl0}..tension 1.1..z27{up}..z28{left}..z29{down}..z30; + unfill z26{curl0}..tension 1.1..z27{up}..z28{left}..z29{down}..z30..cycle; + penlabels(21,22,23,24,25,26,27,28,29); + sec_nna_picture := currentpicture; + currentpicture := savepicture + sec_nna_picture; +endchar; + +beginchar(c_k_ss_nna, 25uw#+rm#, 25uh#, 7uh#); "Oriya conjunct k+ss+nna"; +% currentpicture := sup_k_ssa_picture + sub_nna_picture; + currentpicture := sup_k_ssa_picture + sec_nna_picture shifted (-6uw, 3uh); +endchar; + +beginchar(c_ss_nna, 24uw#+rm#, 25uh#, 10uh#); "Oriya conjunct ss+nna"; + currentpicture := sup_ssa_picture + sec_nna_picture shifted (-6uw, 3uh); +endchar; + +%%%%% letter nya and related shapes + +beginchar(c_j_nya, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct j+nya"; + pickup curvepen; + % upper part + z1 = (4uw, 25uh); + z2 = (1uw, 19uh); + z3 = (4.5uw, 13uh); % adjusted + z4 = (22.5uw, 13uh); % adjusted + z5 = (25uw, 20uh); + z6 = (20uw, 25uh+overshoot); + z7 = z9 + (0, 1uh); + z8 = (x9, 17uh); + z9 = (16.5uw, 23uh); + z10 = (12.5uw, y6); + z11 = (8uw, 21uh); + z12 = (9.5uw, y8); + draw z1..tension.95..z2{down}..{(3,-1)}z3; drawdot(z1); + draw z4..z5{up}..z6{left}..{curl0}z7; + draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); + % lower part + z21 = (9uw, 6uh); + z22 = (4.5uw, 3uh); + z23 = (0uw, 8uh); + z24 = (x22, 13uh); + z25 = (x21, 9uh); + z26 = z21 + (0uw, 1uh); + z27 = (13.5uw, y22); + z28 = (18uw, 6uh); + draw z21{curl0}..z22{left}..z23{up}..z24{right}..z25{down}..z26{down} + ..z27{right}..{curl0}z28; + penlabels(21,22,23,24,25,26,27,28); + z29 = z25 + (0uw, 1uh); + z30 = (x27, y24); + z31 = (x28, y25); + z32 = (x31, 0uh); + draw z29{curl0}..z30{right}..z31{down}---z32; drawdot(z32); + penlabels(29,30,31,32); + z33 = z31 + (0uw, 1uh); + z34 = (22.5uw, y24); + z35 = (27uw, 8uh); + z36 = (25.5uw, 0uh); + draw z33{curl0}..z34{right}..z35{down}..z36; drawdot(z36); + penlabels(33,34,35,36); +endchar; + +beginchar(c_ny_ja, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ny+ja"; + pickup curvepen; + % upper part (copied from Oriya letter nya) + z1 = (4uw, 25uh); + z2 = (1uw, 19uh); + z3 = (8.25uw, 13uh); + draw z1..tension.95..z2{down}..{(5,-1)}z3; drawdot(z1); + z4 = (21uw, 13.5uh); % adjusted + z5 = (25uw, 20uh); + z6 = (20uw, 25uh+overshoot); + z7 = z9 + (0, 1uh); + z8 = (x9, 17uh); + z9 = (16.5uw, 23uh); + z10 = (12.5uw, y6); + z11 = (8uw, 21uh); + z12 = (9.5uw, y8); + draw z4..z5{up}..z6{left}..{curl0}z7; + draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); + % lower part (copied from Oriya letter nya and adjusted) + z13 = (4uw, 14.5uh); + z14 = (0uw, 8uh); + z15 = (.5[x14,x16], -overshoot); + z16 = (23uw, 8uh); + z17 = (19uw, 14uh); + z18 = z20 + (0, 1uh); + z19 = (x20, 5uh); + z20 = (15uw, 11uh); + z21 = (11uw, y17); + z22 = (7uw, 9uh); + z23 = (8.5uw, 5uh); + draw z13..z14{down}..tension0.95..z15{right}..tension0.95..z16{up}..z17{left}..{curl0}z18; + draw z19---z20..z21{left}..z22{down}..z23; drawdot(z19); drawdot(z23); + % tail + pickup barpen; + z24 = (23uw, 10uh); + z25 = (30uw, 16uh); + z26 = (x25, 0uh); + draw z24--z25--z26; drawdot(z25); drawdot(z26); + penlabels(13,14,15,16,17,18,19,20,21,22,23,24,25,26); +endchar; + +beginchar(c_ny_ca, 21uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ny+ca"; + pickup curvepen; + % upper part (copied from nya and adjusted) + z1 = (2uw, 25uh); + z2 = (0uw, 19uh); + z3 = (4.75uw, 13.5uh); + draw z1..tension.95..z2{down}..tension.95..{(3,-1)}z3; drawdot(z1); + z4 = (11.5uw, 13uh); + z5 = (21uw, 20uh); + z6 = (16.5uw, 25uh+overshoot); + z7 = z9 + (0, 1uh); + z8 = (x9, 18uh); + z9 = (13.5uw, 23uh); + z10 = (10uw, y6); + z11 = (6uw, 21.5uh); + z12 = (7.5uw, y8); + draw z4{right}..z5{up}..z6{left}..{curl0}z7; + draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); + % lower part + z21 = (6uw, 7.5uh); + z22 = (4uw, 11uh); + z23 = (8uw, 15uh); + z24 = (12uw, 11uh); + z25 = (8uw, 7uh); + z26 = (3uw, 8uh); + z27 = (0uw, 4uh); + z28 = (8uw, -overshoot); + z29 = (19uw, joint); + draw z21{curl0}..z22{up}..z23{right}..z24{down}..z25{left} + ..z26..z27{down}..z28{right}..{curl0}z29; + z30 = (x29, 15.5uh); + z31 = (x30, 0uh); + draw z30--z31; drawdot(z31); + penlabels(21,22,23,24,25,26,27,28,29,30,31); + savepicture := currentpicture; +endchar; + +beginchar(c_ny_cha, 21uw#+rm#, 25uh#, 9uh#); "Oriya conjunct ny+cha"; + currentpicture := savepicture + sec_tha_picture shifted (11uw, -8uh); +endchar; + +beginchar(c_ny_jha, 27uw#+rm#, 25uh#, 0uh#); "Oriya conjunct ny+jha"; + pickup curvepen; + currentpicture := savepicture; + z32 = (19uw, 9uh); + z33 = (27.5uw, 23uh); + draw z32--z33; drawdot(z33); + z34 = whatever[z32,z33]; + x34 = x32+1.5uw; + z35 = (28uw, 0uh); + draw z34--z35; drawdot(z35); + penlabels(32,33,34,35); +endchar; + +beginchar(c_nya, 26uw#+rm#, 25uh#, 0uh#); "Oriya letter nya"; + pickup curvepen; + % upper part + z1 = (4uw, 25uh); + z2 = (1uw, 19uh); + z3 = (8.25uw, 13uh); + draw z1..tension.95..z2{down}..{(5,-1)}z3; drawdot(z1); + z4 = (22uw, 14uh); + z5 = (25uw, 20uh); + z6 = (20uw, 25uh+overshoot); + z7 = z9 + (0, 1uh); + z8 = (x9, 17uh); + z9 = (16.5uw, 23uh); + z10 = (12.5uw, y6); + z11 = (8uw, 21uh); + z12 = (9.5uw, y8); + draw z4..z5{up}..z6{left}..{curl0}z7; + draw z8---z9..z10{left}..z11{down}..z12; drawdot(z8); drawdot(z12); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); + % lower part + z13 = (4uw, 14.5uh); + z14 = (0uw, 8uh); + z15 = (.5[x14,x16], -overshoot); + z16 = (26uw, 8uh); + z17 = (20.5uw, 14uh); + z18 = z20 + (0, 1uh); + z19 = (x9, 5uh); + z20 = (x9, 11uh); + z21 = (12uw, y17); + z22 = (7uw, 9uh); + z23 = (8.5uw, 5uh); + draw z13..z14{down}..tension0.95..z15{right}..tension0.95..z16{up}..z17{left}..{curl0}z18; + draw z19---z20..z21{left}..z22{down}..z23; drawdot(z19); drawdot(z23); + penlabels(13,14,15,16,17,18,19,20,21,22,23); +endchar; + +beginchar(c_nya_var, 20uw#+rm#, 25uh#, 0uh#); "Oriya letter nya (variant)"; + pickup curvepen; + % top part, first curve + z1 = (2.5uw, 25uh); + z2 = (1uw, 22uh); + z3 = (9uw, 16uh); + z4 = (17.5uw, 22uh); + z5 = (15uw, 25uh+overshoot); + z6 = (12uw, y5-2uh); + draw z1..z2{down}..z3{right}..z4{up} + ..tension.95..z5{left}..tension0.95..{curl0}z6; + drawdot(z1); + % top part, second curve + z7 = (12uw, 20uh); + z8 = (x7, 23uh); + z9 = (9uw, 25uh+overshoot); + z10 = (6uw, 23uh); + z11 = (7uw, 20uh); + draw z7---z8{up}..z9{left}..z10{down}..z11; + % lower part, first curve + z12 = (2uw, 13.5uh); + z13 = (0uw, 8uh); + z14 = (10uw, -overshoot); + z15 = (20uw, 5uh); + z16 = (15uw, 9uh); + draw z12..z13{down}..tension.95..z14{right}..z15{up}..z16; + drawdot(z12); + % lower part, second curve + z17 = (11.5uw, 7.5uh); + % z18 = (15uw, 9uh); + z19 = (17.5uw, 12.5uh); + z20 = (13.5uw, 16uh); + z21 = (9.5uw, 13uh); + draw z17{curl0}..tension1.1..z19{up}..z20{left}..z21; + drawdot(z21); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,21); +endchar; + +%%%%% sa + +picture sup_sa_picture; +picture sub_sa_picture; + +beginchar(c_sa, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter sa"; + path sa_bar; + path sa_top; + path sa_bot; + + pickup curvepen; + z1 = (14uw, 13uh); + z2 = (2.5uw, 6uh); + z3 = (22uw, -overshoot); + sa_bot = z1--z2 & z2--z3; + z4 = (7uw, 9uh); + z5 = (0uw, 18uh); + z6 = (10uw, h+overshoot); + z7 = (x3, h-joint); + sa_top = z4{curl0}..z5{up}..z6{right}..{curl0}z7; + pickup barpen; + z8 = (x3, h); + z9 = z3; + sa_bar = z8--z9; + penlabels(1,2,3,4,5,6,7,8,9); + + % the superiour sa: + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw sa_bot transformed super; + drawdot(z1 transformed super); + drawdot(z2 transformed super); + draw sa_top transformed super; + pickup barpen; + draw sa_bar transformed super; + drawdot(z8 transformed super); + drawdot(z9 transformed super); + cullit; sup_sa_picture := currentpicture; + clearit; + + % the subscribed sa: + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup subpen; + draw sa_bot transformed sub; + drawdot(z1 transformed sub); + drawdot(z2 transformed sub); + draw sa_top transformed sub; + pickup subbarpen; + draw sa_bar transformed sub; + drawdot(z8 transformed sub); + drawdot(z9 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (z1--z2--z4{curl0}..z5{up}..z6{right}..{curl0}z7--z3--cycle) transformed sub; + sub_sa_picture := currentpicture; + clearit; + + % the full size sa: + pickup curvepen; + draw sa_bot; + drawdot(z1); + drawdot(z2); + draw sa_top; + pickup barpen; + draw sa_bar; + drawdot(z8); + drawdot(z9); + cullit; savepicture := currentpicture; +endchar; + +beginchar(c_s_ka, 22uw#+rm#, 25uh#, 5uh#); "Oriya conjunct s+ka"; + currentpicture := sup_sa_picture + sub_ka_picture shifted (-4uw, 4uh); +endchar; + +beginchar(c_s_tu, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct s+tu"; + currentpicture := sup_sa_picture + sec_nna_picture shifted (-7uw, 3uh); +endchar; + +beginchar(c_s_kha, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct s+kha"; + currentpicture := sup_sa_picture + sub_kha_picture shifted (-1.5uw, 0); +endchar; + +beginchar(c_s_tha, 21uw#+rm#, 25uh#, 3uh#); "Oriya conjunct s+tha"; + currentpicture := sup_sa_picture + sec_tha_picture shifted (11uw, -1uh); +endchar; + +beginchar(c_s_pa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct s+pa"; + currentpicture := sup_sa_picture + sub_pa_picture; +endchar; + +beginchar(c_s_pha, 24uw#+rm#, 25uh#, 9uh#); "Oriya conjunct s+pha"; + currentpicture := sup_sa_picture + sub_pha_picture; +endchar; + +beginchar(c_t_sa, 22uw#+rm#, 25uh#, 0uh#); "Oriya conjunct t+sa"; + currentpicture := sup_sa_picture shifted (4uw, 0); + % lower diagonal; + pickup subpen; + z1 = (3uw, 12uh); + z2 = (0uw, 9uh); + z3 = (4uw, 6uh); + z4 = (22uw, 0); + draw z1..z2{down}..z3---z4; + penlabels(1,2,3,4); +endchar; + +beginchar(c_s_t_ra, 22uw#+rm#, 25uh#, 5uh#); "Oriya conjunct s+t+ra"; + currentpicture := sup_sa_picture + sub_tra_picture shifted (6uw, 0); +endchar; + +beginchar(c_k_sa, 30uw#+rm#, 28uh#, 9uh#); "Oriya conjunct k+sa"; + currentpicture := full_ka_picture + sub_sa_picture shifted (9uw, 0uh); + % outer circle + z1 = (4uw, 12uh); % added (1uw, 2uh) + x4 = 28uw; + new_outer_circle; +endchar; + +beginchar(c_p_sa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct p+sa"; + currentpicture := sup_pa_picture + sub_sa_picture; +endchar; + +beginchar(c_s_ta, 26uw#+rm#, 25uh#, 8uh#); "Oriya conjunct s+ta"; + currentpicture := savepicture + sec_ta_picture shifted (22uw, 4uh); +endchar; + +beginchar(c_t_ta, 26uw#+rm#, 25uh#, 0uh#); "Oriya conjunct t+ta"; + pickup curvepen; + z11 = (5.5uw, 12uh); + z12 = (good.x 3uw, 7uh); + z13 = (.5[x12,x14], -overshoot); + z14 = (good.x 19uw, 6uh); + z15 = (14uw, 11.75uh); + z16 = (10uw, 9uh); + z17 = (good.x 16uw, 16.5uh); + z18 = (12.5uw, good.y 21uh); + z19 = (good.x 8uw, 17uh); + z20 = (9uw, 15uh); + draw z11..z12{down}..tension0.9..z13{right}..z14{up}..z15; + draw z16{curl0}..z17{up}..z18{left}..z19{down}..z20; + penlabels(11,12,13,14,15,16,17,18,19,20); + z1 = (4.25uw, 11uh); + x4 = 26uw; + new_tail_circle; +endchar; + +picture sub_ma_picture; +picture sup_ma_picture; + +beginchar(c_ma, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ma"; + path ma_top; + path ma_bot; + path ma_bar; + + pickup curvepen; + % top left bow + z1 = (5.5uw, 7.75uh); + z2 = (good.x 0uw, 17uh); + z3 = (11uw, good.y (25uh+overshoot)); + z4 = (good.x 22uw, 25uh-joint); + ma_top = z1..z2{up}..z3{right}..{curl0}z4; + % bottom curve + pickup curvepen; + z5 = (6uw, 0uh); + z6 = (good.x 3uw, 3uh); + z7 = (8uw, 8uh); + z8 = (15uw, 12uh); + ma_bot = z5..z6{up}..tension1.2..{(3,1)}z8; + % standing bar + pickup barpen; + z9 = (x4, h); + z10 = (x4, 0); + ma_bar := z9--z10; + + % the superiour ma: + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup curvepen; + draw ma_top transformed super; + pickup barpen; + draw ma_bot transformed super; + drawdot(z5 transformed super); + draw ma_bar transformed super; + drawdot(z9 transformed super); + drawdot(z10 transformed super); + cullit; sup_ma_picture := currentpicture; + clearit; + + % the subscribed sa: + transform sub; + sub := identity scaled 15/25 shifted (8uw, -7uh); + pickup subpen; + draw ma_top transformed sub; + pickup subbarpen; + draw ma_bot transformed sub; + drawdot(z5 transformed sub); + draw ma_bar transformed sub; + drawdot(z9 transformed sub); + drawdot(z10 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (z1..z2{up}..z3{right}..{curl0}z4--z10--z5..z6{up}.. + tension1.2..{(3,1)}z8..cycle) transformed sub; + sub_ma_picture := currentpicture; + clearit; + + % draw the full size ma + pickup curvepen; + draw ma_top; + pickup curvepen; + draw ma_bot; + drawdot(z5); + pickup barpen; + draw ma_bar; + drawdot(z9); + drawdot(z10); + penlabels(1,2,3,4,5,6,7,8,9,10); + cullit; savepicture := currentpicture; +endchar; + +beginchar(c_m_ma, 22uw#+rm#, 25uh#, 7uh#); "Oriya conjunct m+ma"; + currentpicture := sup_ma_picture + sub_ma_picture; +endchar; + +beginchar(c_t_ma, 22uw#+rb#+rm#, 25uh#, 12uh#); "Oriya conjunct t+ma"; + currentpicture := savepicture; + z1 = (22uw, 0uh); % z10 of letter ma + ta_tail; +endchar; + +beginchar(c_m_pa, 28uw#+rm#, 25uh#, 0uh#); "Oriya conjunct m+pa"; + pickup curvepen; + % top left bow + z1 = (5.5uw, 7.75uh); + z2 = (good.x 0uw, 17uh); + z3 = (11uw, good.y (25uh+overshoot)); + z4 = (13.5uw, y3-.5uh); + draw z1..z2{up}..z3{right}..{curl0}z4; drawdot(z4); + z11 = (good.x 12uw, 21uh); + z12 = (18uh, good.y 15uw); + z13 = (good.x 24uw, 21uh); + draw z4..z11{down}..z12{right}..{curl0}z13; + % bottom curve + pickup curvepen; + z5 = (6uw, 0uh); + z6 = (good.x 3uw, 3uh); + z7 = (8uw, 8uh); + z8 = (14uw, 11.5uh); % adjusted + draw z5..z6{up}..tension1.2..{(3,1)}z8; + drawdot(z5); + % standing bar + pickup barpen; + z9 = (x13, h); + z10 = (x13, 0); + draw z9--z10; + drawdot(z9); drawdot(z10); + % save the picture without the diagonal + cullit; savepicture := currentpicture; + % diagonal + pickup ddiagpen; + z14 = (18uw, 25uh+overshoot); + z15 = (29uw, 12uh); + draw z14--z15; drawdot(z14); drawdot(z15); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); +endchar; + +beginchar(c_m_pha, 30uw#+rm#, 25uh#, 0uh#); "Oriya conjunct m+pha"; + currentpicture := savepicture; + % diagonal + pickup ddiagpen; + z14 = (18uw, 25uh+overshoot); + z15 = (30uw, 11uh); % adjusted + draw z14--z15; drawdot(z14); drawdot(z15); + penlabels(14,15); + % top left eye + x31 = 24uw; + top_left_eye; +endchar; + +beginchar(c_dh_ya, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya conjunct dh+ya"; + pickup curvepen; + z1 = (1uw, 25uh); + z2 = (13uw, 12uh); + draw z1--z2; drawdot(z1); + z3 = z2; + z4 = (7uw, 14uh); + z5 = (0uw, 7uh); + z6 = (7uw, -overshoot); + z7 = (12.25uw, 2uh); + draw z3..tension0.9..z4{left}..z5{down}..tension0.95..z6{right}..{curl0}z7; + z8 = (11uw, 6uh); + z9 = (18uw, -overshoot); + z10 = (24uw, joint); + draw z2..z8{down}..z9{right}..{curl0}z10; + pickup barpen; + z11 = (x10, 25uh); + z12 = (x11, 0uh); + draw z11--z12; drawdot(z11); drawdot(z12); + penlabels(1,2,3,4,5,6,7,8,9,10,11); +endchar; + +%%%%% na, naa, secondary na, nta, ntra, tna + +picture napicture; + +beginchar(c_na, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter na"; + pickup curvepen; + % inner shape + z11 = (7uw, 0uh); + z12 = (4uw, 3uh); + z13 = (16uw, 12uh); + z14 = (18uw, 10uh); + z15 = (x14, 0uh); + draw z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15; + drawdot(z11); drawdot(z12); + napicture := currentpicture; + % outer circle + z1 = (6.5uw, 7uh); + z2 = (0uw, 16uh); + z3 = (12uw, 25uh+overshoot); + z4 = (25uw, 16uh); + z5 = (22uw, 9uh); + draw z1..z2{up}..z3{right}..z4{down}..z5; drawdot(z5); + penlabels(1,2,3,4,5,11,12,13,14,15); + savepicture := currentpicture; +endchar; + +beginchar(c_naa, 27uw#+rm#+rb#, 25uh#, 0uh#); "Oriya combination naa"; + pickup curvepen; + % inner shape + currentpicture := napicture; + % outer circle + z1 = (6.5uw, 7uh); + z2 = (0uw, 16uh); + z3 = (13.5uw, 25uh+overshoot); + z4 = (27uw, 25uh-joint); + z5 = (27uw, 25uh); + z6 = (27uw, 0uh); + draw z1..z2{up}..z3{right}..{curl0}z4; drawdot(z5); drawdot(z6); + pickup barpen; + draw z5--z6; + penlabels(1,2,3,4,5,6); +endchar; + +beginchar(c_ni, 25uw#+rm#, 25uh#, 0uh#); "Oriya combination ni"; + pickup curvepen; + currentpicture := napicture; + z1 = (6.5uw, 7uh); + z2 = (good.x 0uw, 14uh); + z6 = (6uw, good.y 20uh); + z7 = (15uw, 18uh); + draw z1..z2{up}..z6{right}..z7; + z8 = (8uw, 20.125uh); + z9 = (good.x 7uw, 22uh); + z3 = (14.5uw, good.y (25uh+overshoot)); + z4 = (25uw, 16uh); + z5 = (x4-2uw, 9uh); + draw z8{left}..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); + penlabels(1,2,3,4,5,6,7,8,9); +endchar; + +% more common variant of n+ti, n+ta: + +beginchar(c_n_ti_var, 27uw#+rm#, 25uh#, 7uh#); "Oriya letter n+ti (variant)"; + pickup curvepen; + % inner shape (slighlty reduced) + z11 = (7uw, 0uh); + z12 = (4uw, 3uh); + z13 = (15uw, 11uh); + z14 = (17uw, 9uh); + z15 = (x14, 0uh); + draw z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15; + drawdot(z11); drawdot(z12); + % outer circle + z1 = (6.5uw, 7uh); + z2 = (good.x 0uw, 14uh); + z6 = (6uw, good.y 20uh); + z7 = (15uw, 18uh); + draw z1..z2{up}..z6{right}..z7; + z8 = (8uw, 20.125uh); + z9 = (good.x 7uw, 22uh); + z3 = (14.5uw, good.y (25uh+overshoot)); + z4 = (26.5uw, 15uh); + z5 = (24.5uw, 8uh); + draw z8{left}..z9{up}..z3{right}..z4{down}..z5; drawdot(z5); + % ta tail + z21 = z5 - (-2uw, 5.5uh); + z22 = z5 - (3uw, 3.5uh); + z23 = z5; + z24 = z5 - (-3uw, 3uh); + z25 = z5 - (12uw, 15uh); + + draw z21..z22{up}..z23{right}..z24{down}...{curl0}z25; + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 21, 22, 23, 24, 25); +endchar; + +beginchar(c_n_ta_var, 27uw#+rm#, 25uh#, 7uh#); "Oriya letter n+ta (variant)"; + pickup curvepen; + % inner shape (slighlty reduced) + z11 = (7uw, 0uh); + z12 = (4uw, 3uh); + z13 = (15uw, 11uh); + z14 = (17uw, 9uh); + z15 = (x14, 0uh); + draw z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15; + drawdot(z11); drawdot(z12); + % outer circle + z1 = (6.5uw, 7uh); + z2 = (0uw, 16uh); + z3 = (13uw, 25uh+overshoot); + z4 = (26.5uw, 15uh); + z5 = (24.5uw, 8uh); + draw z1..z2{up}..z3{right}..z4{down}..z5; drawdot(z5); + % ta tail + z21 = z5 - (-2uw, 5.5uh); + z22 = z5 - (3uw, 3.5uh); + z23 = z5; + z24 = z5 - (-3uw, 3uh); + z25 = z5 - (12uw, 15uh); + + draw z21..z22{up}..z23{right}..z24{down}...{curl0}z25; + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 21, 22, 23, 24, 25); +endchar; + +beginchar(cs_na, 0uw#, 0uh#, 10uh#); "Oriya secondary na"; + pickup curvepen; + z11 = (7uw, 0uh); % copied from letter na + z12 = (4uw, 3uh); + z13 = (16uw, 12uh); + z14 = (18uw, 10uh); + z15 = (x14, 0uh); + transform sub; + sub = identity scaled 10/12 shifted (-(11uw+rm+rb), -10uh); + draw (z11..tension0.95..z12{up}..tension2.0..z13{right}..z14{down}---z15) + transformed sub; + drawdot(z11 transformed sub); + drawdot(z12 transformed sub); +endchar; + +beginchar(c_n_ta, 25uw#+rm#, 25uh#, 5uh#); "Oriya conjunct n+ta"; + currentpicture := savepicture + sec_ta_picture shifted (18uw, 4uh); +endchar; + +beginchar(c_n_t_ra, 25uw#+rm#, 25uh#, 12uh#); "Oriya conjunct n+t+ra"; + currentpicture := savepicture + sub_tra_picture shifted (8uh, -6uh); +endchar; + +beginchar(c_n_tha, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct n+tha"; + currentpicture := savepicture + sec_tha_picture shifted (12uw, -8uh); +endchar; + +beginchar(c_t_na, 25uw#+rm#, 25uh#, 12uh#); "Oriya conjunct t+na"; + currentpicture := savepicture; + z1 = (18uw, 0uh); % = z15 in letter na + ta_tail; +endchar; + +%%%%% tha + +beginchar(c_tha, 20uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter tha"; + pickup curvepen; + z1 = (4.5uw, 19.5uh); + z2 = (6uw, 21uh); + z3 = (7.5uw, 19.5uh); + z4 = (4uw, 18uh); + z5 = (3uw, 21uh); + z6 = (8.5uw, 25uh+overshoot); + z7 = (13uw, 20uh); + z8 = (0uw, 7uh); + z9 = (10uw, -overshoot); + z10 = (20uw, joint); + z11 = (x10, 25uh); + z12 = (x11, 0uh); + % draw z1{curl0}..z2{right}..z3{down}.. + draw z4{curl0}..z5{up}..z7{down} + ..z8{down}..z9{right}..{curl0}z10; + draw z11--z12; drawdot(z11); drawdot(z12); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); +endchar; + +%%%%% sha + +picture sup_sha_picture; + +beginchar(c_sha, 22uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter sha"; % continuous stroke eye + path sha_eye; + path sha_top; + path sha_bar; + + pickup curvepen; + z1 = (5.5uw, 9uh); z2 = (good.x 4uw, 5uh); z3 = (9.5uw, -overshoot); + z4 = (good.x 15uw, 5uh); z5 = (10uw, good.y 10uh); z6 = (4uw, good.y 9uh); + z7 = (0uw, 14uh); z8 = (5uw, 19.5uh); z9 = (11uw, 18uh); + sha_eye := z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{curl0}z9; + z10 = (7uw, 19.25uh); + z11 = (good.x 6uw, 22.5uh); + z12 = (11uw, h + overshoot); + z13 = (22uw, h - joint); + sha_top := z10..z11{up}..z12{right}..{curl0}z13; + pickup barpen; + z14 = (x13, h); z15 = (x13, 0); + sha_bar := z14--z15; + + % raised sha: + transform super; + super = identity scaled 20/25 shifted (0uw, 5uh); + pickup curvepen; + draw sha_eye transformed super; + draw sha_top transformed super; + drawdot(z9 transformed super); + pickup barpen; + draw sha_bar transformed super; + drawdot(z14 transformed super); + drawdot(z15 transformed super); + cullit; sup_sha_picture := currentpicture; + clearit; + + % full size sha: + pickup curvepen; + draw sha_eye; + draw sha_top; + drawdot(z9); + pickup barpen; + draw sha_bar; + drawdot(z14); + drawdot(z15); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); + cullit; savepicture := currentpicture; +endchar; + +beginchar(c_sh_tta, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct sh+tta"; + currentpicture := sup_sha_picture + sub_tta_picture shifted (4uw, 0uh); +endchar; + +beginchar(c_sh_ca, 25uw#+rm#, 25uh#, 9uh#); "Oriya conjunct sh+ca"; + currentpicture := sup_sha_picture + sub_ca_picture shifted (4uw, 0uh); +endchar; + +beginchar(c_sh_cha, 21uw#+rm#, 25uh#, 3uh#); "Oriya conjunct s+cha"; + currentpicture := sup_sha_picture + sec_tha_picture shifted (11uw, -1uh); +endchar; + +beginchar(c_tta_var, 24uw#+rm#, 25uh#, 0uh#); "Oriya letter tta (variant)"; + pickup curvepen; + z1 = (6uw, 5uh); z2 = (12uw, -overshoot); + z3 = (18uw, y1); z4 = (x2, 10uh+overshoot); + draw z1{down}..z2{right}..z3{up}..z4{left}..cycle; + z5 = (6.5uw, 8uh); z6 = (0uw, 15uh); + draw z5--z6; + z7 = (.5[x6,x8], y6+2.5uh); + z8 = (24uw, y6); + draw z6..z7{right}..z8; + z9 = (11uw, h+overshoot); + draw z8--z9; drawdot(z9); + penlabels(1,2,3,4,5,6,7,8,9); +endchar; + +%%%%% vowels + +beginchar(c_a, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter a"; + pickup curvepen; + z1 = (3.5uw, 17.5uh); + z2 = (2uw, 21.5uh); + z3 = (6.5uw, h+overshoot); + z4 = (10uw, 23uh); + % z4 = (10uw, 24uh); + z5 = (x4, 18uh); + draw z1..z2{up}..z3{right}..z4{down}--z5; + drawdot(z1); drawdot(z5); + if calligraphic: z6 = z4 + (0uw, 1uh); else: z6 = z4 fi; + z7 = (14uw, h+overshoot); + z8 = (18uw, 20.5uh); % (18uw, 20.5uh); + z9 = (10uw, 13.5uh); % (10uw, 14uh); + z10 = (0uw, 7.5uh); % (0uw, 8uh); + z11 = (11.5uw, -overshoot); + z12 = (24uw, 4uh); + draw z6 if calligraphic: {curl0} fi..z7{right}..z8{down}.. + z9{left}..z10{down}..z11{right}..{curl0}z12; + pickup barpen; + z13 = (x12, h); + z14 = (x12, 0uh); + draw z13--z14; + drawdot(z13); drawdot(z14); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); +endchar; + +path li_path; + +beginchar(c_li, 20uw#+rm#, 25uh#, 0uh#); "Oriya letter li"; + pickup curvepen; + z1 = (4uw, 24uh); + z2 = (7.5uw, 21uh); + z3 = (.5[x2,x4], 18uh); + z4 = (2uw, y2); + z5 = (9uw, 25uh + overshoot); + z6 = (16uw, 20uh); + z7 = (9uw, 14uh); + z8 = (0uw, 6uh); + z9 = (10uw, -overshoot); + z10 = (20uw, 5uh); + z11 = (.5[x10,x12], 8uh); + z12 = (x10-5uw, y10); + z13 = (x11, 2uh); + z14 = (x10-0.5uw, 3uh); + li_path := z1..z2{down}..z3{left}..z4{up}..z5{right}..z6{down}.. + z7..tension 0.9..z8{down}..z9{right}..z10{up}..z11{left}..z12{down}.. + z13{right}..z14; + draw li_path; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); +endchar; + +beginchar(cs_li, 0uw#, 0uh#, 16uh#); "Oriya vowel sign li"; + pickup subpen; + draw li_path scaled 14/25 shifted (-4uw, -16uw); +endchar; + +path lii_path; + +beginchar(c_lii, 20uw#+rm#, 25uh#, 7uh#); "Oriya letter lii"; + pickup curvepen; + z1 = (4uw, 24uh); + z2 = (7.5uw, 21uh); + z3 = (.5[x2,x4], 18uh); + z4 = (2uw, y2); + z5 = (9uw, 25uh + overshoot); + z6 = (16uw, 20uh); + z7 = (9uw, 14uh); + z8 = (0uw, 6uh); + z9 = (10uw, -overshoot); + z10 = (20uw, 5uh); + z11 = (.5[x10,x12], 8uh); + z12 = (x10-5.5uw, y10); + z13 = (x10-4uw, 2uh); + z14 = (x10+5uw, -7uh); + lii_path := z1..z2{down}..z3{left}..z4{up}..z5{right}..z6{down}.. + z7..tension 0.9..z8{down}..z9{right}..z10{up}..z11{left}..z12{down}.. + z13---z14; + draw lii_path; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); +endchar; + +beginchar(cs_lii, 0uw#, 0uh#, 16uh#); "Oriya vowel sign lii"; + pickup subpen; + draw lii_path scaled 14/25 shifted (-4uw, -16uh); +endchar; + +beginchar(c_e, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter e"; + pickup curvepen; + z1 = (12uw, 14uh); + z2 = z1 + (-2uw, 2uh); + z3 = z2 + (0.707uw, 1.414uh); + % y5 = 25uh; x6 = 24uw; + % z5 = z6 + (-2uw, 2uh); + z5 = (24uw, 25uh+overshoot); + % x7 = x6; y8 = 0uh; + % z8 = z7 + (-3uw, -2uh); + z7 = (x5, 0uh-overshoot); + z10 = (2uw, 12uh); + z11 = (0uw, 11.75uh); + draw z1..z2{up}..z3---z5; + draw z5---z7; + pickup curvepen; + draw z7---z10..z11; + penlabels(1,2,3,4,5,6,7,8,9,10,11); +endchar; + +%% for the letter au we add a `mantle' to the letter e + +beginchar(c_ai, 32uw#+rb#+rm#, 36uh#, 0uh#); "Oriya letter ai"; + pickup curvepen; + z1 = (13uw, 14uh); + z2 = z1 + (-2uw, 2uh); + z3 = z2 + (0.707uw, 1.414uh); + % y5 = 25uh; x6 = 24uw; + % z5 = z6 + (-2uw, 2uh); + z5 = (24uw, 24uh+overshoot); + % x7 = x6; y8 = 0uh; + % z8 = z7 + (-3uw, -2uh); + z7 = (x5, 0uh-overshoot); + z10 = (2uw, 12uh); + z11 = (0uw, 11.75uh); + draw z1..z2{up}..z3---z5; + draw z5---z7; + pickup curvepen; + draw z7---z10..z11; + % `mantle' + pickup curvepen; + z20 = (4uw, 36uh); + z21 = (17uw, 32uh); + z22 = (26uw, 32uh); + z23 = (32uw, 24uh); + z24 = (x23, 0uh); + draw z20..z21---z22{right}..{down}z23--z24; + drawdot(z20); drawdot(z24); + % connecting curve + z25 = (x5, 19uh); + z26 = (26uw, 16uh); + z27 = (x23, 18uh); + draw z25..z26..z27; + penlabels(1,2,3,4,5,6,7,8,9,10,11); +endchar; + +beginchar(c_o, 23uw#+rm#, 25uh#, 0uh#); "Oriya letter o"; + pickup curvepen; + % first curve + z1 = (6uw, 35uh); + z2 = (3.5uw, 22.5uh); + z3 = (0uw, 12.5uh); + z4 = (11.5uw, -overshoot); + z5 = (23uw, 8.5uh); + z6 = (16uw, 13.80uh); + draw z1{(1,-2)}..z2..z3{down}..tension0.95.. + z4{right}..tension0.9..z5{up}..z6; + drawdot(z1); + % top right curve + z7 = (12uw, 12uh); + z8 = (20uw, 20uh); + z9 = (15uw, 25uh+overshoot); + z10 = (10uw, 22uh); % adjusted + z11 = (11.5uw, 19uh); % adjusted + z12 = (11uw, 21uh); + z13 = (10uw, 22.5uh); + draw z7{curl0}..z8{up}..z9{left}..z10{down}..z11; % ..z12..z13; + drawdot(z7); drawdot(z11); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); +endchar; + +beginchar(c_oromsign, 23uw#+rm#, 35uh#, 0uh#); "Oriya symbol om"; + pickup curvepen; + % first curve + z1 = (7uw, 31uh); + z2 = (3.5uw, 22.5uh); + z3 = (0uw, 12.5uh); + z4 = (11.5uw, -overshoot); + z5 = (23uw, 8.5uh); + z6 = (16uw, 13.80uh); + draw z1{down}..z2..z3{down}..tension0.95..z4{right}..tension0.9..z5{up}..z6; + drawdot(z1); + % top right curve + z7 = (12uw, 12uh); + z8 = (20uw, 20uh); + z9 = (15uw, 25uh+overshoot); + z10 = (10uw, 22uh); % adjusted + z11 = (11.5uw, 19uh); % adjusted + z12 = (11uw, 21uh); + z13 = (10uw, 22.5uh); + draw z7{curl0}..z8{up}..z9{left}..z10{down}..z11; % ..z12..z13; + drawdot(z7); drawdot(z11); + % big anusvar + pickup curvepen; + z21 = (2uw, 37uh); + z22 = (.5[x21, x23], 30uh); + z23 = (21uw, 37uh); + draw z21..tension.9..z22{right}..tension.9..z23; + pickup curvepen; + z27 = (x22+.25(thick-thin), 34uh); + eye(24,25,26,27)(6uw,6uh); + draw_eye(24,25,26,27); + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13, 21,22,23,24,25,26,27); +endchar; + +%% to create the au, we lower the left-side curl of the o and add +%% the bar on the top and on the left to it. + +beginchar(c_au, 29uw#+rb#+rm#, 36uh#, 0uh#); "Oriya letter au"; + pickup curvepen; + % first curve + z1 = (5uw, 25uh); % position adjusted to accomodate top bar + z2 = (3.5uw, 22.5uh); + z3 = (0uw, 12.5uh); + z4 = (11uw, -overshoot); + z5 = (23uw, 8.5uh); + z6 = (16uw, 13.80uh); + draw z1..z3{down}..z4{right}..tension0.9..z5{up}..z6; + drawdot(z1); + % top right curve + z7 = (12uw, 12uh); + z8 = (20uw, 20uh); + z9 = (15uw, 25uh+overshoot); + z10 = (10uw, 22uh); % adjusted + z11 = (11.5uw, 19uh); % adjusted + z12 = (14.5uw, 21uh); + z13 = (11uw, 24.5uh); + draw z7{curl0}..z8{up}..z9{left}..z10{down}..z11; % {right}..z12{up}..z13; + drawdot(z7); + % `mantle' + pickup curvepen; + z14 = (0uw, 36uh); % 34uh + z15 = (13uw, 32uh); % 30uh + z16 = (22uw, 32uh); % 30uh + z17 = (29uw, 24uh); % 23uh + z18 = (x17, 0uh); + draw z14..z15{right}---z16{right}..z17{down}---z18; + drawdot(z14); drawdot(z15); + % connecting stroke + pickup curvepen; + z19 = (20uw, 19uh); + z20 = (25uw, 16uh); + z21 = (x17, 18uh); + draw z19..z20{right}..z21; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21); +endchar; + +beginchar(c_va, 16uw#+rm#, 25uh#, 0uh#); "Oriya letter va"; + pickup curvepen; + + z1 = (3uw, 25uh); + z2 = (0uw, 18uh); + z3 = (8uw, 10uh); + z4 = (16uw, 16uh); + z5 = (12.5uw, 19uh); + drawdot(z1); + draw z1..z2{down}..z3{right}..z4{up}..z5; + z6 = (8uw, 17uh); + z7 = (14uw, 22.5uh); + z8 = (10uw, 25uh+overshoot); + z9 = (7uw, 23uh); + z10 = (7.5uw, 22uh); + draw z6{curl0}..tension1.1..z7{up}..z8{left}..z9{down}..z10; + drawdot(z10); + + z11 = (4uw, 11uh); + z12 = (2uw, 7uh); + z13 = (8uw, 2uh); + z14 = (13.5uw, 6uh); + z15 = (x14, 11.5uh); + z16 = (x15, 0uh); + draw z11..z12{down}..z13{right}..z14; + draw z15--z16; + drawdot(z16); + + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); +endchar; + +%%%%% vowel signs and modifiers + + +picture reph_picture; + +beginchar(c_reph, 0uw#, 37uh#, 0uh#); "Oriya sign reph"; + pickup curvepen; + z1 = (0uw, 27uh); + z2 = z1 + (-3uw, 4uh); + z3 = z1 + (7uw, 11uh); + draw z1..z2{up}..{curl0}z3; + drawdot(z1); + drawdot(z2); + reph_picture := currentpicture; + penlabels(1,2,3); + adjustpos(rm+rb); +endchar; + +picture candrabindu_picture; + +beginchar(c_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya sign candrabindu"; + pickup curvepen; + z1 = (-7uw, 34.5uh); + z2 = (-0uw, 29uh); + z3 = (7uw, y1); + draw z1..tension0.9..z2{right}..tension0.9..z3; + pickup subpen; + eye(4,5,6,7)(5uw,5uh); + z7 = (x2+.25(thick-thin), 33uh); + draw_eye(4,5,6,7); + penlabels(1,2,3,4,5,6,7); + candrabindu_picture := currentpicture; + adjustpos(rm+rb); +endchar; + +beginchar(cs_aa, 2uw#+rb#+rm#, 25uh#, 0uh#); "Oriya vowel sign aa"; + pickup barpen; + z1 = (2uw, h); + z2 = (x1, 0uh); + draw z1--z2; drawdot(z1); drawdot(z2); + penlabels(1,2); +endchar; + +beginchar(cs_i, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i"; + pickup curvepen; + z1 = (-22uw, 31uh); + z2 = z1 + (10.5uw, good.y 6uh); + z3 = z1 + (21uw, 0uh); + penlabels(1,2,3); + draw z1..z2{right}..z3; drawdot(z1); drawdot(z3); + adjustpos(rm+rb); +endchar; + +beginchar(cs_i_var, 0uw#, 0uh#, 11uh#); "Oriya vowel sign i (subscribed variant)"; + pickup curvepen; + z1 = (-15uw, -1uh); + z2 = (-18uw, -7uh); + z3 = (0uw, -11uh); + draw z1--z2; drawdot(z1); + draw z2--z3; drawdot(z3); + penlabels(1,2,3); + adjustpos(rm+rb); +endchar; + +beginchar(cs_i_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i with candrabindu"; + pickup curvepen; + z1 = (-24uw, 31uh); + z2 = z1 + (8.125uw, 4uh); + z3 = z1 + (19.5uw, -1uh); + z4 = z1 + (26uw, 5uh); + draw z1..z2{right}..z3{right}..z4; + drawdot(z1); drawdot(z2); + pickup subpen; + eye(8,5,6,7)(5uw,5uh); + z7 = (x3+.25(thick-thin), 35uh); + draw_eye(8,5,6,7); + penlabels(1,2,3,4,5,6,7,8); + adjustpos(rm+rb); +endchar; + +beginchar(cs_i_reph, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i with reph"; + pickup curvepen; + z1 = (-22uw, 30uh); + z2 = z1 + (10.5uw, 6uh); + z3 = z1 + (21uw, 0uh); + draw z1..z2{right}..z3; drawdot(z1); drawdot(z3); + penlabels(1,2,3); + z11 = z3 + (-1.25uw, 2uh); + z11'= z11 + (-1.5uw, 1.5uh); + z12 = z11 + (-2uw, 3uh); + z13 = z11 + (7uw, 10uh); + draw z11'..z12{up}..{curl0}z13; drawdot(z11'); drawdot(z12); + penlabels(11,11',12,13); + adjustpos(rm+rb); +endchar; + +beginchar(cs_i_reph_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign i with candrabindu and reph"; + pickup curvepen; + z1 = (-24uw, 31uh); + z2 = z1 + (8.125uw, 4uh); + z3 = z1 + (19.5uw, -1uh); + z4 = z1 + (26uw, 5uh); + draw z1..z2{right}..z3{right}..z4; + drawdot(z1); drawdot(z2); + pickup subpen; + eye(8,5,6,7)(5uw,5uh); + z7 = (x3+.25(thick-thin), 35uh); + draw_eye(8,5,6,7); + penlabels(1,2,3,4,5,6,7,8); + + z11 = z3 + (-5uw, 3.5uh); + z12 = z11 + (-2uw, 3uh); + z13 = z11 + (7uw, 10uh); + draw z4..z3{left}..tension1.1..z12{up}..{curl0}z13; drawdot(z12); + penlabels(11,12,13); + adjustpos(rm+rb); +endchar; + +beginchar(cs_ii, 2uw#+rb#+rm#, 32uh#, 0uh#); "Oriya vowel sign ii"; + pickup barpen; + z1 = (-8uw, 25uh); + z2 = (2uw, 32uh); + z3 = (x2, 0uh); + draw z1--z2--z3; drawdot(z3); + penlabels(1,2,3); +endchar; + +beginchar(cs_u, 0uw#, 0uh#, 11uh#); "Oriya vowel sign u"; + pickup subpen; + z1 = (0uw, 0.5uh); + z2 = (x1, -5uh); + z3 = (x1-4uw, -11uh); + z4 = (x1-8uw, -7.5uh); + z5 = (x3, -4uh); + z6 = (x1+7uw, -12uh); + z7 = (x6+5uw, y6+2uh); + draw z1--z2{down}..z3{left}..z4{up}..z5{right}..z6{right}..z7; drawdot(z7); + penlabels(1,2,3,4,5,6,7); + adjustpos(rm+rb); + savepicture := currentpicture; +endchar; + +beginchar(cs_u_low, 0uw#, 0uh#, 17uh#); "Oriya vowel sign u (lowered version)"; + currentpicture := savepicture shifted (0, -6uh); +endchar; + +beginchar(cs_u_verylow, 0uw#, 0uh#, 20uh#); "Oriya vowel sign u (much lowered version)"; + currentpicture := savepicture shifted (0, -10uh); +endchar; + +beginchar(cs_u_center, 0uw#, 0uh#, 17uh#); "Oriya vowel sign u (centered version)"; + currentpicture := savepicture shifted (-11uw, -1uh); +endchar; + +beginchar(cs_u_var, 0uw#, 0uh#, 15uh#); "Oriya vowel sign u (variant)"; + pickup subpen; + z1 = (7.5uw, -3.5uh); + z2 = (11uw, -5.5uh); + z3 = (18uw, -12uh); + z4 = (15uw, -15uh); + z5 = (12uw, y3); + z6 = (19uw, y2); + z7 = (22.5uw, y1); + draw z1---z2..z3{down}..z4{left}..z5{up}..z6---z7; + drawdot(z1); drawdot(z7); + penlabels(1,2,3,4,5,6,7); + adjustpos(28uw+rm+rb); +endchar; + +beginchar(cs_uu, 0uw#, 0uh#, 11uh#); "Oriya vowel sign uu"; + pickup subpen; + z1 = (0uw, 0.5uh); + z2 = (x1, -2uh); + z3 = (x1-5uw, -8uh); + z4 = (x1-2uw, -11uh); + z5 = (x1+3.5uw, -8.5uh); + z6 = (x1+14uw, -14uh); + z7 = (x6+2uw, y6+1uh); + draw z1--z2{down}..z3{down}..z4{right}..z5{right}..z6{right}..z7; drawdot(z7); + penlabels(1,2,3,4,5,6,7); + adjustpos(rm+rb); + savepicture := currentpicture; +endchar; + +beginchar(cs_uu_low, 0uw#, 0uh#, 17uh#); "Oriya vowel sign uu (lowered version)"; + currentpicture := savepicture shifted (0, -6uh); +endchar; + +beginchar(cs_uu_verylow, 0uw#, 0uh#, 20uh#); "Oriya vowel sign uu (much lowered version)"; + currentpicture := savepicture shifted (0, -10uh); +endchar; + +beginchar(cs_uu_center, 0uw#, 0uh#, 17uh#); "Oriya vowel sign uu (centered version)"; + currentpicture := savepicture shifted (-11uw, -1uh); +endchar; + +beginchar(cs_ri, 0uw#, 0uh#, 14uh#); "Oriya vowel sign ri"; + pickup subpen; + z1 = (0, .5uh); + z2 = (x1, -0.5uh); + z3 = (x1 - 4uw, -9uh); + z4 = (x1 + 1uw, -14uh); + z5 = (x1 + 6uw, -10uh); + z6 = (x1 + 3.5uw, -7uh); + z7 = (x1 + 1uw, -10uh); + z8 = (x1 + 2uw, -13.75uh); + draw z1---z2..z3{down}..z4{right}..tension0.95 + ..z5{up}..z6{left}..z7{down}..z8; + penlabels(1,2,3,4,5,6,7,8); + adjustpos(rm+rb); + savepicture := currentpicture; +endchar; + +beginchar(cs_ri_low, 0uw#, 0uh#, 20uh#); "Oriya vowel sign ri (lowered version)"; + currentpicture := savepicture shifted (0, -6uh); +endchar; + +beginchar(cs_ri_verylow, 0uw#, 0uh#, 20uh#); "Oriya vowel sign ri (much lowered version)"; + currentpicture := savepicture shifted (0, -10uh); +endchar; + +beginchar(cs_ri_center, 0uw#, 0uh#, 17uh#); "Oriya vowel sign ri (centered version)"; + currentpicture := savepicture shifted (-11uw, -1uh); +endchar; + +beginchar(cs_rii, 0uw#, 0uh#, 16uh#); "Oriya vowel sign rii"; + pickup subpen; + z1 = (0, .5uh); + z2 = (x1, -0.5uh); + z3 = (x1 - 4uw, -9uh); + z4 = (x1 + 1uw, -14uh); + z5 = (x1 + 6uw, -10uh); + z6 = (x1 + 3.5uw, -7uh); + z7 = (x1 + 1uw, -10uh); + z8 = (x1 + 2uw, -13.75uh); + + draw (z1---z2..z3{down}..z4{right}..tension0.95 + ..z5{up}..z6{left}..z7{down}..z8) scaled 10/14; + z9 = .5[z2, z3]; + draw (z9..z3{down}..z4{right}..tension0.95 + ..z5{up}..z6{left}..z7{down}..z8) scaled 10/14 shifted (2uw, -7.5uh); + + penlabels(1,2,3,4,5,6,7,8); + adjustpos(rm+rb); + savepicture := currentpicture; +endchar; + +%% we purposely make the bounding box a bit narrower, so that the +%% vowel sign comes quite close to the consonant it belongs to + +beginchar(cs_e, 17uw#+rm#, 25uh#, 0uh#); "Oriya vowel sign e"; % also used for ai, o, and au + pickup curvepen; + z1 = (17uw, h-1uh); + z2 = (11uw, h+overshoot); + z3 = (0uw, .5h); + z4 = (10uw, -overshoot); + z5 = (18uw, 5.5uh); + z6 = (11uw, 11.5uh); + z7 = (0.5uw, 7.5uh); + draw z1..z2{left}..tension0.9..z3{down}..tension0.9..z4{right} + ..z5{up}..z6{left}..z7; + drawdot(z1); + penlabels(1,2,3,4,5,6,7); +endchar; + +beginchar(cs_ai, 0uw#, 37uw#, 0uh#); "Oriya vowel sign ai (second part)"; + pickup curvepen; + z1 = (0, 25uh); + z2 = (x1, 27.5uh); + z3 = (x1+1uw, 33uh); + z4 = (x1-2.5uw, 37uh); + z5 = (x1-20uw, 33uh); + z6 = (x1-23uw, 34uh); + draw z2{up}...z3{up}..z4{left}..z5{left}..z6; + penlabels(1,2,3,4,5,6); + savepicture := currentpicture; + adjustpos(rm+rb); +endchar; + +beginchar(cs_ai_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign ai with candrabindu"; + currentpicture := savepicture + candrabindu_picture shifted (4uw, 6uh); + adjustpos(rm+rb); +endchar; + +beginchar(cs_ai_reph, 0uw#, 37uh#, 0uh#); "Oriya vowel sign ai with reph"; + pickup curvepen; + z1 = (0, 25uh); + z2 = (x1, 27.5uh); + z3 = (x1+1uw, 33uh); + z4 = (x1-2.5uw, 37uh); + z5 = (x1-20uw, 33uh); + z6 = (x1-23uw, 34uh); + draw z2{up}...z3{up}..z4{left}..z5{left}..z6; + penlabels(1,2,3,4,5,6); + z12 = (0.5uw, 36uh); + z13 = (9uw, 42uh); + draw z3{up}...z12{up}..{curl0}z13; drawdot(z12); + penlabels(12,13); + savepicture := currentpicture; + adjustpos(rm+rb); +endchar; + +beginchar(cs_ai_reph_candrabindu, 0uw#, 37uh#, 0uh#); "Oriya vowel sign ai with reph and candrabindu"; + currentpicture := savepicture + candrabindu_picture shifted (7.5uw, 0.5uh); + adjustpos(rm+rb); +endchar; + +beginchar(cs_au, 2uw#+rb#+rm#, 37uh#, 0uh#) "Oriya vowel sign au (second part)"; + pickup curvepen; + z1 = (0uw, 0uh); + z2 = (0uw, 21uh); + z3 = (5uw, 33uh); + z4 = (1uw, 37uh); + z5 = (-20uw, 33uh); + z6 = (-30uw, 35uh); + draw z1---z2...z3{up}..z4{left}..z5{left}..z6; + penlabels(1,2,3,4,5,6); + savepicture := currentpicture; +endchar; + +beginchar(cs_au_candrabindu, 2uw#+rb#+rm#, 37uh#, 0uh#) "Oriya vowel sign au with candrabindu"; + currentpicture := savepicture + candrabindu_picture shifted (9uw, 6uh); +endchar; + +beginchar(cs_au_reph, 2uw#+rb#+rm#, 37uh#, 0uh#) "Oriya vowel sign au with reph"; + pickup curvepen; + z1 = (0uw, 0uh); + z2 = (0uw, 21uh); + z3 = (5uw, 33uh); + z4 = (1uw, 37uh); + z5 = (-20uw, 33uh); + z6 = (-30uw, 35uh); + draw z1---z2...z3{up}..z4{left}..z5{left}..z6; + penlabels(1,2,3,4,5,6); + z12 = (4.5uw, 36uh); + z13 = (13uw, 42uh); + draw z3{up}...z12{up}..{curl0}z13; drawdot(z12); + penlabels(12,13); + savepicture := currentpicture; +endchar; + +beginchar(cs_au_reph_candrabindu, 6uw#+rm#, 37uh#, 0uh#) "Oriya vowel sign au with reph and candrabindu"; + currentpicture := savepicture + candrabindu_picture shifted (11.5uw, 0.5uh); +endchar; + +beginchar(c_anusvara, 10uw#+rm#, 25uh#, 0uh#); "Oriya sign anusvara"; + pickup curvepen; + % top circle + z2 = (5uw, h+overshoot); + eye(1,2,3,4)(10uw,10uh); + draw_eye(1,2,3,4); + penlabels(1,2,3,4); +endchar; + +beginchar(c_visarga, 10uw#+rm#, 25uh#, 0uh#); "Oriya sign visarga"; + pickup curvepen; + % top circle + z2 = (5uw, h+overshoot); + eye(1,2,3,4)(10uw,10uh); + draw_eye(1,2,3,4); + % bottom circle + z8 = (x2, -overshoot); + eye(5,6,7,8)(10uw,10uh); + draw_eye(5,6,7,8); + penlabels(1,2,3,4,5,6,7,8); +endchar; + +beginchar(c_visarga_var, 9uw#+rm#, 25uh#, 0uh#); "Oriya sign visarga (variant)"; + pickup curvepen; + z1 = (.5[x2,x6], h+overshoot); + z2 = (good.x 8.75uw, 21uh); + z3 = (good.x 0uw, 4uh); + z4 = (x1, -overshoot); + z5 = (good.x 9uw, y3); + z6 = (good.x 0.25uw, y2); + draw z1{right}..z2{down}..z3{down}..z4{right}..z5{up}..z6{up}..cycle; + penlabels(1,2,3,4,5,6); +endchar; + +beginchar(c_halant, 0uw#, 0uh#, 10uh#); "Oriya sign halant"; + pickup curvepen; + z1 = (0,-4uh); + z2 = (5uw, -10uh); + draw z1--z2; + drawdot(z1); + drawdot(z2); + penlabels(1,2); + adjustpos(rm+rb); + savepicture := currentpicture; +endchar; + +beginchar(c_halant_low, 0uw#, 0uh#, 14uh#); "Oriya sign halant (lowered version)"; + currentpicture := savepicture shifted (0, -4uh); +endchar; + +%%%%% numerals + +beginchar(c_zero, 20uw#+rm#, 25uh#, 0uh#); "Oriya numeral zero"; + pickup curvepen; + z1 = (0uw, .5[y2,y4]); + z2 = (.5[x1,x3], 25uh+overshoot); + z3 = (20uw, y1); + z4 = (x2, -overshoot); + draw z1{up}..z2{right}..z3{down}..z4{left}..cycle; + penlabels(1,2,3,4); +endchar; + +beginchar(c_one, 18uw#+rm#, 25uh#, 0uh#); "Oriya numeral one"; + pickup curvepen; + z1 = (5.5uw, 9.5uh); + z2 = (13uw, 19uh); + z3 = (6.5uw, 25uh+overshoot); + z4 = (0uw, 18uh); + z5 = (18uw, 0uh); + draw z1{curl0}..z2{up}..z3{left}..z4{down}..{curl0}z5; + penlabels(1,2,3,4,5); +endchar; + +beginchar(c_two, 18uw#+rm#, 25uh#, 0uh#); "Oriya numeral two"; + pickup curvepen; + z1' = (17uw, 13uh); + z1 = (11uw, 9.5uh); + z2 = (4uw, 18uh); + z3 = (.5[x2,x4], 25uh+overshoot); + z4 = (18uw, 18uh); + z5 = (0uw, 0uh); + draw z1'{curl0}..z1{left}..z2{up}..z3{right}..z4{down}..{curl0}z5; + penlabels(1',1,2,3,4,5); +endchar; + +beginchar(c_three, 22uw#+rm#, 25uh#, 0uh#); "Oriya numeral three"; + pickup curvepen; + % z1 = (1uw, 22uh); % doesn't work nice with calligraphic pen + z1' = (0.5uw, 14uh); + z1 = (4uw, 16uh); + z2 = (7uw, 12uh); + z3 = (5uw, 9uh); + z4 = (0uw, 17uh); + z5 = (6uw, 25uh+overshoot); + z6 = (12uw, 21uh); + z7 = (x6, 5uh); + draw z1'{curl0}..z1{right}..z2{down}..z3{left}..z4{up}.. + z5{right}..z6{down}---z7; + drawdot(z7); + z8 = z6 + (0uw, 2uh); + z9 = (17uw, y5); + z10 = (22uw, 18uh); + z11 = (18uw, 0uh); + draw z8{curl0}..z9{right}..z10{down}..z11; drawdot(z11); + penlabels(1',1,2,3,4,5,6,7,8,9,10,11); +endchar; + +beginchar(c_four, 20uw#+rm#, 25uh#, 0uh#); "Oriya numeral four"; + pickup curvepen; + z1 = (10uw-11uw, 25uh); + z2 = (10uw-1uw, 15uh); + z3 = (10uw+6uw, 5uh); + z4 = (10uw, -overshoot); + z5 = (10uw-6uw, y3); + z6 = (10uw+1uw, y2); + z7 = (10uw+11uw, y1); + draw z1---z2..z3{down}..z4{left}..z5{up}..z6---z7; + drawdot(z1); drawdot(z7); + penlabels(1,2,3,4,5,6,7); +endchar; + +beginchar(c_five, 18uw#+rm#, 25uh#, 0uh#); "Oriya numeral five"; + pickup curvepen; + z1 = (0uw, 16uh); + z2 = (9uw, 9uh); + z3 = (13uw, 3.5uh); + z4 = (8uw, -overshoot); + z5 = (3uw, y3); + z6 = (9uw, 12.5uh); + z20 = (18uw, 25uh); + z6' = z20 - z6; + z7 = z20 - z5; + z8 = z20 - z4; + z9 = z20 - z3; + z10 = z20 - z2; + z11 = z20 - z1; + draw z1---z2..z3{down}..z4{left}..z5{up}..z6 + ..z7{up}..z8{left}..z9{down}..z10---z11; + penlabels(1,2,3,4,5,6,6',7,8,9,10,11); +endchar; + +beginchar(c_six, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral six"; + pickup curvepen; + z1 = (0uw, 12uh); + z2 = (4uw, 10uh); + z3 = (8uw, 14uh); + z4 = (0uw, 21uh); + draw z1..z2{right}..z3{up}..{left}z4; drawdot(z1); drawdot(z4); + z5 = (7uw, 25uh+overshoot); + z6 = (16uw, 17uh); + z7 = (0uw, -overshoot); + draw z4..z5{right}..z6{down}..{curl0}z7; drawdot(z7); + penlabels(1,2,3,4,5,6,7); +endchar; + +beginchar(c_seven, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral seven"; + pickup curvepen; + z1' = (.5uw, 20.5uh); + z1 = (4uw, 22uh); + z2 = (8uw, 17.5uh); + z3 = (4uw, 13uh); + z4 = (0uw, 18uh); + z5 = (7uw, 25uh+overshoot); + z6 = (16uw, 17uh); + z7 = (0uw, -overshoot); + draw z1'{curl0}..z1{right}..z2{down}..z3{left}.. + z4{up}..z5{right}..z6{down}..{curl0}z7; drawdot(z7); + penlabels(1',1,2,3,4,5,6,7); +endchar; + +beginchar(c_eight, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral eight"; + pickup curvepen; + z1 = (0uw, 0uh); + z2 = (0uw, 22uh); + z3 = (3uw, 25uh); + z4 = (17uw, 25uh); + draw z1---z2..z3---z4; + drawdot(z1); drawdot(z4); + penlabels(1,2,3,4); +endchar; + +beginchar(c_nine, 16uw#+rm#, 25uh#, 0uh#); "Oriya numeral nine"; + pickup curvepen; + z1 = (15uw, 25uh); + z2 = (x1, 12uh); + z3 = (0uw, 18uh); + z4 = (16uw, 0uh); + draw z1--z2--z3; drawdot(z1); drawdot(z2); + draw z3{down}..tension0.9..{curl0}z4; drawdot(z4); + penlabels(1,2,3,4); +endchar; + +%%%%% punctuation, special signs and symbols + +beginchar(c_centerdot, 3uw#+rm#, 12.5uh#, 0uh#); "center dot"; + pickup curvepen; + z1 = (0uw, 12.5uh); + eye(1,2,3,4)(3uw,3uh); + draw_eye(1,2,3,4); + filldraw z1..z2..z3..z4..cycle; + penlabels(1,2,3,4); +endchar; + +beginchar(c_question, 22uw#+rm#, 30uh#, 0uh#); "question mark"; + pickup curvepen; + z1 = (11uw, 22uh); + z2 = (10uw, 25uh); + z3 = (.5[x2, x4], 30uh+overshoot); + z4 = (22uw, 25uh); + z5 = (.5[x4, x6], 19uh); + z6 = (x3-2uw, 11uh); + z7 = (x3, 7uh); + draw z1..z2{up}..z3{right}..z4{down}..z5..z6{down}..z7; + + z9 = (x3, 1.5uh); + eye(8,9,10,11)(3uw, 3uh); + draw_eye(8,9,10,11); + fill z8{up}..z9{right}..z10{down}..z11{left}..cycle; + + penlabels(1,2,3,4,5,6,7,8,9,10,11); +endchar; + +beginchar(c_exclamation, 12uw#+rm#, 30uh#, 0uh#); "exclamation mark"; + pickup curvepen; + z1 = (11uw, 30uh); + z2 = (11uw, 7uh); + draw z1--z2; + z9 = (x1, 1.5uh); + eye(8,9,10,11)(3uw, 3uh); + draw_eye(8,9,10,11); + fill z8{up}..z9{right}..z10{down}..z11{left}..cycle; + penlabels(1,2,8,9,10,11); +endchar; + +beginchar(c_dash, 7uw#+rm#, 13uh#, 0uh#); "dash"; + pickup barpen; + z1 = (0, 13uh); + z2 = (7uw, y1); + draw z1--z2; drawdot(z1); drawdot(z2); + penlabels(1,2); +endchar; + +beginchar(c_endash, 14uw#+rm#, 13uh#, 0uh#); "en-dash"; + pickup barpen; + z1 = (0, 13uh); + z2 = (14uw, y1); + draw z1--z2; drawdot(z1); drawdot(z2); + penlabels(1,2); +endchar; + +beginchar(c_emdash, 24uw#+rm#, 13uh#, 0uh#); "em-dash"; + pickup barpen; + z1 = (0, 13uh); + z2 = (24uw, y1); + draw z1--z2; drawdot(z1); drawdot(z2); + penlabels(1,2); +endchar; + +beginchar(c_comma, 3uw#+rm#, 3uh#, 7uh#); "comma"; + pickup curvepen; + x1 = 0uw; + y4 = 0uh; + eye(1,2,3,4)(3uw,3uh); + z5 = (x3+.5uw,0uh); + z6 = (-1uw, -7uh); + draw z3{curl0}..z4{left}..z1{up}..z2{right}..z5{down}..{curl0}z6; + filldraw z1..z2..z3..z4..cycle; + penlabels(1,2,3,4,5,6); + savepicture := currentpicture; +endchar; + +beginchar(c_closequote, 3uw#+rm#, 31uh#, 0uh#); "closing quote"; + currentpicture := savepicture shifted (0, 28uh); +endchar; + +beginchar(c_openquote, 3uw#+rm#, 31uh#, 0uh#); "opening quote"; + currentpicture := savepicture rotated 180 shifted (3uw+rm, 24uh); +endchar; + +beginchar(c_semicolon, 3uw#+rm#, 15uh#, 7uh#); "semicolon"; + currentpicture := savepicture; + pickup curvepen; + x1 = 0uw; + y2 = 15uh; + eye(1,2,3,4)(3uw,3uh); + draw_eye(1,2,3,4); + filldraw z1..z2..z3..z4..cycle; + penlabels(1,2,3,4); +endchar; + +beginchar(c_colon, 3uw#+rm#, 15uh#, 0uh#); "colon"; + pickup curvepen; + x1 = 0uw; + y2 = 15uh; + eye(1,2,3,4)(3uw,3uh); + draw_eye(1,2,3,4); + filldraw z1..z2..z3..z4..cycle; + x5 = 0uw; + y8 = 0uw; + eye(5,6,7,8)(3uw,3uh); + draw_eye(5,6,7,8); + filldraw z5..z6..z7..z8..cycle; + penlabels(1,2,3,4,5,6,7,8); +endchar; + +beginchar(c_openparen, 5uw#+rm#, 32uh#, 7uh#); "opening parenthesis"; + pickup barpen; + z1 = (6uw, 32uh); + z2 = (0uw, .5[y1,y3]); + z3 = (x1, -7uh); + draw z1..z2{down}..z3; + penlabels(1,2,3); +endchar; + +beginchar(c_closeparen, 5uw#+rm#, 32uh#, 7uh#); "closing parenthesis"; + pickup barpen; + z1 = (-1uw, 32uh); + z2 = (5uw, .5[y1,y3]); + z3 = (x1, -7uh); + draw z1..z2{down}..z3; + penlabels(1,2,3); +endchar; + +beginchar(c_openbracket, 5uw#+rm#, 32uh#, 7uh#); "opening bracket"; + pickup barpen; + z1 = (5uw, 32uh); + z2 = (0uw, y1); + z3 = (x2, -7uh); + z4 = (x1, y3); + draw z1--z2--z3--z4; + drawdot(z1); + drawdot(z2); + penlabels(1,2,3,4); +endchar; + +beginchar(c_closebracket, 5uw#+rm#, 32uh#, 7uh#); "closing bracket"; + pickup barpen; + z1 = (0uw, 32uh); + z2 = (5uw, y1); + z3 = (x2, -7uh); + z4 = (x1, y3); + draw z1--z2--z3--z4; + drawdot(z1); + drawdot(z2); + penlabels(1,2,3,4); +endchar; + +beginchar(c_openbrace, 7uw#+rm#, 32uh#, 7uh#); "opening brace"; + pickup curvepen; + z1 = (8uw, 32uh); + z2 = (2uw, 26uh); + z3 = (3uw, 19uh); + z4 = (0uw, .5[y1,y7]); + z5 = (x3, 5uh); + z6 = (x2, -1uh); + z7 = (x1, -7uh); + draw z1{left}..z2{down}..z3{down}..z4; + drawdot(z1); + draw z4..z5{down}..z6{down}..{right}z7; + drawdot(z7); + penlabels(1,2,3,4,5,6,7); +endchar; + +beginchar(c_closebrace, 7uw#+rm#, 32uh#, 7uh#); "closing brace"; + pickup curvepen; + z1 = (-1uw, 32uh); + z2 = (5uw, 26uh); + z3 = (4uw, 19uh); + z4 = (7uw, .5[y1,y7]); + z5 = (x3, 5uh); + z6 = (x2, -1uh); + z7 = (x1, -7uh); + draw z1{right}..z2{down}..z3{down}..z4; + drawdot(z1); + draw z4..z5{down}..z6{down}..{left}z7; + drawdot(z7); + penlabels(1,2,3,4,5,6,7); +endchar; + +beginchar(c_slash, 12uw#, 32uh#, 7uh#); "slash"; + pickup barpen; + z1 = (12uw, 32uh); + z2 = (0uw, -7uh); + draw z1--z2; + drawdot(z1); + drawdot(z2); + penlabels(1,2); +endchar; + +beginchar(c_backslash, 12uw#, 32uh#, 7uh#); "backslash"; + pickup barpen; + z1 = (0uw, 32uh); + z2 = (12uw, -7uh); + draw z1--z2; + drawdot(z1); + drawdot(z2); + penlabels(1,2); +endchar; + +%% the nukta is positioned as to be placed correctly under +%% dda and ddha to make rra and rrha. + +beginchar(c_nukta, 0uw#, 0uh#, 8uh#); "Oriya sign nukta"; + z2 = (-12uw, -6uh); + pickup barpen; + eye(1,2,3,4)(3.5uw,3.5uh); + draw_eye(1,2,3,4); + filldraw z1..z2..z3..z4..cycle; + penlabels(1,2,3,4); + adjustpos(rm+rb); +endchar; + +%% the danda looks exactly like the vowel sign for aa, but this glyph +%% doesn't ligate with consonants, and has more space before it + +beginchar(c_danda, 20uw#+rb#+rm#, 25uh#, 0uh#); "Oriya danda"; + pickup barpen; + z1 = (20uw, 25uh); + z2 = (x1, 0uh); + draw z1--z2; drawdot(z1); drawdot(z2); + penlabels(1,2); +endchar; + +beginchar(c_avagraha, 5uw#+rm#, 25uh#, 0uh#); "Oriya sign avagraha"; + pickup curvepen; + z1 = (5uw, 0uh); + z2 = (0uw, 6.25uh); + z3 = (5uw, 12.5uh); + z4 = (0uw, 18.25uh); + z5 = (5uw, 25uh); + draw z1--z2--z3--z4--z5; drawdot(z1); drawdot(z2); + penlabels(1,2,3,4,5); +endchar; + +beginchar(c_ganesh, 22uw#+rm#, 33uh#, 0uh#); "Oriya symbol for Ganesh"; + pickup barpen; + z1 = (0uw, 15uh); + z2 = (10uw, -1.5uh); + z3 = (25uw, 33uh); + draw z1--z2; drawdot(z1); + draw z2--z3; drawdot(z3); + z5 = (10uw, 22uh); + eye(4,5,6,7)(4uw,4uh); + draw_eye(4,5,6,7); + filldraw z4..z5..z6..z7..cycle; + penlabels(1,2,3,4,5,6,7); +endchar; + +beginchar(c_p_pa, 22uw#+rm#, 25uh#, 9uh#); "Oriya conjunct p+pa"; + currentpicture := sup_pa_picture + sub_pa_picture; +endchar; + + +% end of orglyphs.mf diff --git a/language/oriya/mf/oriya/oriya.mf b/language/oriya/mf/oriya/oriya.mf new file mode 100644 index 0000000000..5672ecdeaf --- /dev/null +++ b/language/oriya/mf/oriya/oriya.mf @@ -0,0 +1,14 @@ +% oriya.mf -- An Oriya Metafont, driver file +% Copyright 1996 Jeroen Hellingman + +input orsetup; % set-up parameters +input orkern; % kerning table + +input ortest; + +input orglyphs; % the Oriya glyph programs +input dotcirc; % dotted circle and white box character + +end. + +% end of oriya.mf diff --git a/language/oriya/mf/oriya/oriya.mft b/language/oriya/mf/oriya/oriya.mft new file mode 100644 index 0000000000..c8b5aa07da --- /dev/null +++ b/language/oriya/mf/oriya/oriya.mft @@ -0,0 +1,27 @@ +%%%% MFT commands for the PLAIN base +%%% } ( ) ]] ! ^ %%%% tokens that need no special formatting +%%% step upto downto %%%% boldface binary operators +%%% addto fill unfill draw undraw %%%% boldface unary operators +%%% addto filldraw unfilldraw drawdot undrawdot erase pickup +%%% addto exitunless stop incr decr proofrulethickness screenrule +%%% addto define_pixels define_whole_pixels define_whole_vertical_pixels +%%% addto define_blacker_pixels define_whole_blacker_pixels +%%% addto define_corrected_pixels lowres_fix proofoffset penstroke +%%% addto beginchar italcorr font_size font_slant labels +%%% addto font_normal_space font_normal_stretch font_normal_shrink font_quad +%%% addto font_x_height font_extra_space font_identifier font_coding_scheme +%%% enddef endchar %%%% boldface closing +%%% true relax mode_setup %%%% boldface nullary operators +%%% true clearit shipit cullit openit showit clearxy clearpen +%%% true nodisplay notransforms screenchars screenstrokes imagerules +%%% .. ... -- --- %%%% path operators made of dots and dashes +%%% length flex abs dir %%%% unary operators to be in roman type +%%% length unitvector inverse ceiling round vround counterclockwise +%%% length tensepath byte reflectedabout rotatedaround magstep max min +%%% and mod dotprod intersectionpoint softjoin %%%% binary operators to be roman +%%% ++ ** %%%% binary operators made of two special characters +%%% penoffset goodval direction directionpoint %%%% operators that take "of" +%%% pausing tolerance pixels_per_inch blacker o_correction %%%% internals +%%% pausing screen_rows screen_cols currentwindow displaying +%%% pausing pen_top pen_bot pen_lft pen_rt rt lft top bot +%%% = <= >= <> %%%% conversions for the SAIL character set only diff --git a/language/oriya/mf/oriya/orkern.mf b/language/oriya/mf/oriya/orkern.mf new file mode 100644 index 0000000000..25c8349882 --- /dev/null +++ b/language/oriya/mf/oriya/orkern.mf @@ -0,0 +1,234 @@ +% orkern.mf -- kerning table for Oriya metafont +% Copyright 1996, 1997, 1998, 1999 Jeroen Hellingman +% +% Note: +% we can't use kerning tables to position the matra's correctly, as that +% will shift all following characters as well, we can, however, use kerning +% and ligatures to change or join matras to the characters -- making the +% preprocessor much simpler. For this need to create various, differently +% positioned, copies of of the matras, but that we will have to do anyway, +% when we create a PostScript version of the font for use in applications +% that assume all glyphs are on the same line. +% +% History: +% 20-JUN-1999 Added j+ja, j+jha (JH) +% 16-JUN-1999 Added s+tu +% 29-MAY-1999 Added k+tta, t+pa (JH) +% 31-MAY-1998 Added h+ma (JH) +% 30-MAY-1998 Added ni, n+ti, etc. (JH) +% 07-SEP-1997 Added d+ga (JH) +% 27-APR-1997 Added bhu combination (JH) +% 18-NOV-1996 Added centered matras under some letters (JH) +% 23-SEP-1996 Added flag to disable consonant-matra ligatures (JH) + +% define macros for variants of the vowel signs. + +def lowmatras = + cs_u |=: cs_u_low +, cs_uu |=: cs_uu_low +, cs_ri |=: cs_ri_low +, cs_ra |=: cs_ra_low +, c_halant |=: c_halant_low +enddef; + +def verylowmatras = + cs_u |=: cs_u_verylow +, cs_uu |=: cs_uu_verylow +, cs_ri |=: cs_ri_verylow +, cs_ra |=: cs_ra_low +, c_halant |=: c_halant_low +enddef; + +def centermatras = + cs_u |=: cs_u_center +, cs_uu |=: cs_uu_center +, cs_ri |=: cs_ri_center +enddef; + +% kern values: + +k# := 1uw#; +kk# := 2uw#; +kkk# := 3uw#; + +% consonant-matra ligatures +% note that the ligatures for the aa vowel sign will also be used for the +% oo vowel sign. When noligs is true, no consonant-matra ligatures will +% be use, however, the lowered variants of some matras will still be +% needed. + +if ligs: + +ligtable c_ka : cs_aa =: c_kaa + , cs_i =: c_ki + , cs_u =: c_ku + , cs_uu =: c_kuu; +ligtable c_jha : lowmatras; +ligtable c_ta : cs_aa =: c_taa + , cs_i =: c_ti + , cs_u =: c_tu + , cs_uu =: c_tuu; +ligtable c_tha : cs_i |=: cs_i_var; +ligtable c_da : cs_i =: c_di; +ligtable c_dha : cs_i |=: cs_i_var; +ligtable c_na : cs_aa =: c_naa + , cs_i =: c_ni + , cs_u |=: cs_u_var; +ligtable c_yya : lowmatras; +ligtable c_la : cs_aa =: c_laa + , cs_u |=: cs_u_var + , c_halant |=: c_halant_low; +ligtable c_ha : cs_i =: c_hi + , cs_u =: c_hu + , cs_uu |=: cs_uu_low + , cs_ri |=: cs_ri_low + , cs_ra |=: cs_ra_low; +ligtable c_lla : cs_aa =: c_llaa + , cs_i =: c_lli + , cs_u |=: cs_u_var; + +% conjunct-matra combinations: + +ligtable c_ng_ka : cs_u |=: cs_u_var; +ligtable c_ny_ca : cs_i |=: cs_i_var; +ligtable c_ny_jha : cs_i |=: cs_i_var; +ligtable c_n_ta_var : cs_i =: c_n_ti_var + , cs_u |=: cs_u_low + , cs_uu |=: cs_uu_low + , cs_ri |=: cs_ri_low + , cs_ra |=: cs_ra_low + , c_halant |=: c_halant_low; + +else: + +ligtable c_yya : lowmatras; +ligtable c_la : lowmatras; +ligtable c_ha : lowmatras; + +ligtable c_n_ta_var : lowmatras; + +fi; + +ligtable c_k_ka : verylowmatras; +ligtable c_k_tta : verylowmatras; +ligtable c_k_ta : lowmatras; +ligtable c_k_sa : lowmatras; +ligtable c_k_ss_nna : verylowmatras; +ligtable c_g_ga : verylowmatras; +ligtable c_g_dha : verylowmatras; +ligtable c_nga : centermatras; +ligtable c_ca : if ligs: + cs_aa =: c_caa + , fi centermatras; +ligtable c_cha : centermatras; +ligtable c_j_ja : verylowmatras; +ligtable c_j_jha : verylowmatras; +ligtable c_tta : centermatras + , c_ttha kern-kk#; +ligtable c_ttha : centermatras; +ligtable c_dda : if ligs: + cs_i =: c_ddi + , fi centermatras; +ligtable c_dd_ga : lowmatras; +ligtable c_rr_ga : lowmatras; +ligtable c_dd_dda : lowmatras; +ligtable c_ddha : if ligs: + cs_i =: c_ddhi + , fi centermatras; +ligtable c_nn_tta : verylowmatras; +ligtable c_nn_ttha : verylowmatras; +ligtable c_nn_dda : lowmatras; +ligtable c_nn_ddha : lowmatras; +ligtable c_nn_nna : verylowmatras; +ligtable c_t_na : lowmatras; +ligtable c_t_pa : lowmatras; +ligtable c_t_ma : lowmatras; +ligtable c_d_ga : lowmatras; +ligtable c_n_ta : lowmatras; +ligtable c_n_t_ra : verylowmatras; +ligtable c_p_ta : lowmatras; +ligtable c_p_sa : verylowmatras; +ligtable c_b_dha : verylowmatras; +ligtable c_m_ma : lowmatras; +ligtable c_ra : if ligs: + cs_aa =: c_raa + , fi centermatras; +ligtable c_l_ka : verylowmatras; +ligtable c_l_pa : verylowmatras; +ligtable c_l_pha : verylowmatras; +ligtable c_l_la : verylowmatras; +ligtable c_sh_ca : verylowmatras; +ligtable c_ss_ka : verylowmatras; +ligtable c_ss_tta : verylowmatras; +ligtable c_ss_ttha : verylowmatras; +ligtable c_ss_pa : verylowmatras; +ligtable c_ss_pha : verylowmatras; +ligtable c_s_ka : verylowmatras; +ligtable c_s_ta : cs_u =: c_s_tu + , cs_uu |=: cs_uu_low + , cs_ri |=: cs_ri_low + , cs_ra |=: cs_ra_low + , c_halant |=: c_halant_low; +ligtable c_s_kha : verylowmatras; +ligtable c_s_t_ra : verylowmatras; +ligtable c_s_pa : verylowmatras; +ligtable c_s_pha : verylowmatras; +ligtable c_h_ba : lowmatras; +ligtable c_h_ma : verylowmatras; + +ligtable c_dotted_circle: lowmatras; + +% low matras after secondary consonants + +ligtable cs_tha : lowmatras; +ligtable cs_na : verylowmatras; +ligtable cs_bha : cs_u =: cs_bhu + , cs_uu |=: cs_uu_verylow + , cs_ri |=: cs_ri_verylow + , cs_ra |=: cs_ra_low + , c_halant |=: c_halant_low; +ligtable cs_ma : verylowmatras; +ligtable cs_ra : lowmatras; +ligtable cs_ra_low : verylowmatras; +ligtable cs_la : verylowmatras; +ligtable cs_lla : verylowmatras; +ligtable cs_va : cs_u =: cs_vu + , cs_uu |=: cs_uu_verylow + , cs_ri |=: cs_ri_verylow + , cs_ra |=: cs_ra_low + , c_halant |=: c_halant_low; + +% matra-reph-candrabindu combinations: + +ligtable cs_i : c_reph =: cs_i_reph + , c_candrabindu =: cs_i_candrabindu; +ligtable cs_i_reph : c_candrabindu =: cs_i_reph_candrabindu; +ligtable cs_i_candrabindu : c_reph =: cs_i_reph_candrabindu; +ligtable cs_ai : c_reph =: cs_ai_reph + , c_candrabindu =: cs_ai_candrabindu; +ligtable cs_ai_reph : c_candrabindu =: cs_ai_reph_candrabindu; +ligtable cs_ai_candrabindu : c_reph =: cs_ai_reph_candrabindu; +ligtable cs_au : c_candrabindu =: cs_au_candrabindu + , c_reph =: cs_au_reph; +ligtable cs_au_reph : c_candrabindu =: cs_au_reph_candrabindu; +ligtable cs_au_candrabindu : c_reph =: cs_au_reph_candrabindu; + +% numerals: + +ligtable c_one : c_one kern-k# + , c_four kern-k# + , c_five kern-k#; +ligtable c_four : c_two kern-kk#; +ligtable c_eight : c_two kern-kkk# + , c_nine kern-kk#; + +% punctuation: + +ligtable c_danda : c_danda |=: cs_aa; +ligtable c_openquote : c_openquote kern-kk#; +ligtable c_closequote : c_closequote kern-kk#; + +ligtable c_dash : c_dash =: c_endash; +ligtable c_endash : c_dash =: c_emdash; + +% end of orkern.mf diff --git a/language/oriya/mf/oriya/orsetup.mf b/language/oriya/mf/oriya/orsetup.mf new file mode 100644 index 0000000000..df57c455de --- /dev/null +++ b/language/oriya/mf/oriya/orsetup.mf @@ -0,0 +1,75 @@ +% orsetup.mf -- setup things for the Oriya metafont after the parameters +% have been read. +% Copyright 1996 Jeroen Hellingman +% +% History: +% 16-NOV-1996 changed pen definitions (Jeroen Hellingman) + +%% Parameters +%% +%% here we set the remaining parameters, based on values set in the +%% parameter file. + +overshoot# := 1uh#; % overshoot of certain characters +joint# := 4uh#; % height where curves join bars + +define_pixels(rb,rm,uw,uh,joint); +define_whole_pixels(overshoot); + +currenttransform := currenttransform shifted (.5rm, 0) slanted slant; + +%% set the remaining font parameters in the {\tt .tfm} file + +font_slant := slant; +font_quad := 20uw#; +font_x_height := 25uh#; +font_normal_space := 14uw#; +font_normal_stretch := 8uw#; +font_normal_shrink := 2uw#; + +%% pens + +superthin# := 0.1pt#; +define_blacker_pixels(thin,thick,superthin); +thin := max(thin,1); +superthin := max(superthin,1); +smoothing := 0; + +% Note: slight variations in pen-thickness have undesireable effects when +% generating fonts for low resolution printers. + +% pen weight factors +if calligraphic: + if (thick > 10.0): + HH := 1.15; + H := 1.075; + L := 0.925; + LL := 0.75; + else: + HH := 1.20; + H := 1.00; + L := 1.00; + LL := 0.80; + fi +else: + HH := 1.00; + H := 1.00; + L := 1.00; + LL := 1.00; +fi; + +% curvepen % pen used for circular curves +% subpen % pen used for subscribed letters +% subbarpen % pen used for standing bars in subscribed letters +% barpen % pen used for standing bars +% ddiagpen % pen used for top-right to bottom-left diagonals +% udiagpen % pen used for bottom-right to top-left diagonals + +pickup pencircle xscaled thick yscaled thin rotated rot; curvepen := savepen; +pickup pencircle xscaled (H * thick) yscaled (H * thin) rotated rot; barpen := savepen; +pickup pencircle xscaled (HH * thick) yscaled (HH * thin) rotated rot; udiagpen := savepen; +pickup pencircle xscaled (L * thick) yscaled (L * thin) rotated rot; subpen := savepen; +pickup pencircle xscaled thick yscaled thin rotated rot; subbarpen := savepen; +pickup pencircle xscaled (LL * thick) yscaled (LL * thin) rotated rot; ddiagpen := savepen; + +% end of orsetup.mf diff --git a/language/oriya/mf/oriya/orsk10.mf b/language/oriya/mf/oriya/orsk10.mf new file mode 100644 index 0000000000..f75c900d41 --- /dev/null +++ b/language/oriya/mf/oriya/orsk10.mf @@ -0,0 +1,26 @@ +% orsk10.mf -- Oriya skeleton 10 pt parameter file +% Copyright 1996 Jeroen Hellingman +% +% Note: these parameters are intended to test the font during the design +% phase, and not for serious printing. + +mode_setup; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.21pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 0.25uh#; % longest diameter of pen +thin# := 0.25uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORSK10"; + +input oriya; + +% end of orsk10.mf diff --git a/language/oriya/mf/oriya/orsl10.mf b/language/oriya/mf/oriya/orsl10.mf new file mode 100644 index 0000000000..f2348b8aa7 --- /dev/null +++ b/language/oriya/mf/oriya/orsl10.mf @@ -0,0 +1,25 @@ +% orsl10.mf -- Oriya Slanted 10 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; + +input orcode; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.21pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.8uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORSL10"; + +input oriya; + +% end of orsl10.mf diff --git a/language/oriya/mf/oriya/orsl12.mf b/language/oriya/mf/oriya/orsl12.mf new file mode 100644 index 0000000000..ac329ec54b --- /dev/null +++ b/language/oriya/mf/oriya/orsl12.mf @@ -0,0 +1,23 @@ +% orsl12.mf -- Oriya slanted 12 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 12pt#; +uh# := 0.25pt#; % unit height, (X-height is 25uh) +uw# := 0.25pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.7uh#; % smallest diameter of pen + +font_size 12pt#; +font_identifier := "ORSL12"; + +input oriya; + +% end of or12.mf diff --git a/language/oriya/mf/oriya/orsl17.mf b/language/oriya/mf/oriya/orsl17.mf new file mode 100644 index 0000000000..107345878a --- /dev/null +++ b/language/oriya/mf/oriya/orsl17.mf @@ -0,0 +1,23 @@ +% orsl17.mf -- Oriya slanted 17 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 17.28pt#; +uh# := 0.36pt#; % unit height, (X-height is 25uh) +uw# := 0.34pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.6uh#; % smallest diameter of pen + +font_size 17.28pt#; +font_identifier := "ORSL17"; + +input oriya; + +% end of orsl17.mf diff --git a/language/oriya/mf/oriya/orsl8.mf b/language/oriya/mf/oriya/orsl8.mf new file mode 100644 index 0000000000..016f8440d1 --- /dev/null +++ b/language/oriya/mf/oriya/orsl8.mf @@ -0,0 +1,23 @@ +% orsl8.mf -- Oriya slanted 8 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 8pt#; +uh# := 0.17pt#; % unit height, (X-height is 25uh) +uw# := 0.18pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := true; % calligraphic effects +rot := 30; % angle of pen +thick# := 3uh#; % longest diameter of pen +thin# := 0.8uh#; % smallest diameter of pen + +font_size 8pt#; +font_identifier := "ORSL8"; + +input oriya; + +% end of orsl8.mf diff --git a/language/oriya/mf/oriya/orss10.mf b/language/oriya/mf/oriya/orss10.mf new file mode 100644 index 0000000000..2fb2d8943b --- /dev/null +++ b/language/oriya/mf/oriya/orss10.mf @@ -0,0 +1,24 @@ +% orss10.mf -- Oriya modern 10 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.21pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := false; % calligraphic effects +ligs := false; +rot := 30; % angle of pen +thick# := 2.0uh#; % longest diameter of pen +thin# := 2.0uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORSS10"; + +input oriya; + +% end of orss10.mf diff --git a/language/oriya/mf/oriya/orss17.mf b/language/oriya/mf/oriya/orss17.mf new file mode 100644 index 0000000000..399a91fe64 --- /dev/null +++ b/language/oriya/mf/oriya/orss17.mf @@ -0,0 +1,24 @@ +% orss17.mf -- Oriya modern regular 17 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 17.28pt#; +uh# := 0.36pt#; % unit height, (X-height is 25uh) +uw# := 0.34pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := false; % calligraphic effects +ligs := false; +rot := 30; % angle of pen +thick# := 2.0uh#; % longest diameter of pen +thin# := 2.0uh#; % smallest diameter of pen + +font_size 17.28pt#; +font_identifier := "ORSS17"; + +input oriya; + +% end of orss17.mf diff --git a/language/oriya/mf/oriya/orssbf10.mf b/language/oriya/mf/oriya/orssbf10.mf new file mode 100644 index 0000000000..eaef90c8c1 --- /dev/null +++ b/language/oriya/mf/oriya/orssbf10.mf @@ -0,0 +1,24 @@ +% orssbf10.mf -- Oriya modern bold 10 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.21pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0; % slant of characters +calligraphic := false; % calligraphic effects +ligs := false; +rot := 30; % angle of pen +thick# := 4.0uh#; % longest diameter of pen +thin# := 4.0uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORSSBF10"; + +input oriya; + +% end of orssbf10.mf diff --git a/language/oriya/mf/oriya/orssbs10.mf b/language/oriya/mf/oriya/orssbs10.mf new file mode 100644 index 0000000000..74c8de5aab --- /dev/null +++ b/language/oriya/mf/oriya/orssbs10.mf @@ -0,0 +1,24 @@ +% orssbs10.mf -- Oriya modern bold slanted 10 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.21pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := false; % calligraphic effects +ligs := false; +rot := 30; % angle of pen +thick# := 4.0uh#; % longest diameter of pen +thin# := 4.0uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORSSBS10"; + +input oriya; + +% end of orssbs10.mf diff --git a/language/oriya/mf/oriya/orsssl10.mf b/language/oriya/mf/oriya/orsssl10.mf new file mode 100644 index 0000000000..348896bd35 --- /dev/null +++ b/language/oriya/mf/oriya/orsssl10.mf @@ -0,0 +1,24 @@ +% orsssl10.mf -- Oriya modern slanted 10 pt parameter file +% Copyright 1996 Jeroen Hellingman + +mode_setup; +input orbase; + +gensize# := 10pt#; +uh# := 0.21pt#; % unit height, (X-height is 25uh) +uw# := 0.21pt#; % unit width +rm# := 6.0uw#; % space in between characters +rb# := 1.5uw#; % extra space to right of standing bars +slant := 0.17; % slant of characters +calligraphic := false; % calligraphic effects +ligs := false; +rot := 30; % angle of pen +thick# := 2.0uh#; % longest diameter of pen +thin# := 2.0uh#; % smallest diameter of pen + +font_size 10pt#; +font_identifier := "ORSSSL10"; + +input oriya; + +% end of orsssl10.mf diff --git a/language/oriya/mf/oriya/ortest.mf b/language/oriya/mf/oriya/ortest.mf new file mode 100644 index 0000000000..767d2691c7 --- /dev/null +++ b/language/oriya/mf/oriya/ortest.mf @@ -0,0 +1,437 @@ +% ortest.mf -- Oriya characters under design +% Copyright 1996, 1998 Jeroen Hellingman +% +% History: +% 29-MAY-1999 Last edit (Jeroen Hellingman) + +endinput; + +%% current version + +picture sec_ja_picture; + +beginchar(c_ja, 27uw#+rm#, 25uh#, 0uh#); "Oriya letter ja"; + path ja_curve; + path ja_bar; + z11 = (6uw, 12uh); + z12 = (3uw, 6.5uh); + z13 = (.5[x12, x14], -overshoot); + z14 = (16uw, 3.25uh); + z15 = (10uw, 9.25uh); + z16 = (13.5uw, 12uh); + z17 = (22uw, 9uh); + z18 = (x17, 0uh); + ja_bar = z17--z18; + ja_curve = z11..z12{down}..tension0.95..z13{right}..z14{up}..z15{up}..z16{right}..z17; + + transform sub; + sub := identity scaled 10/12 shifted (7.5uw, -10.75uh); + pickup curvepen; + draw ja_bar transformed sub; + draw ja_curve transformed sub; + drawdot(z11 transformed sub); + drawdot(z17 transformed sub); + drawdot(z18 transformed sub); + cullit; + sec_ja_picture = currentpicture; + clearit; + + draw ja_bar; + draw ja_curve; + drawdot(z11); + drawdot(z17); + drawdot(z18); + penlabels(11,12,13,14,15,16,17, 18); + z1 = (4.5uw, 11uh); + x4 = 27uw; + new_outer_circle; + savepicture = currentpicture; +endchar; + +beginchar(c_j_ja, 29uw#+rm#, 25uh#, 11uh#); "Oriya conjunct j+ja"; + currentpicture := savepicture + sec_ja_picture; +endchar; + + +%% old version (not so nice) + +beginchar(c_ja, 28uw#+rm#, 25uh#, 0uh#); "Oriya letter ja"; + % inner bows + pickup curvepen; + z11 = (6uw, 12uh); + z12 = (3uw, 6.5uh); + z13 = (8.5uw, -overshoot); + z14 = (14uw, 5.5uh); + z15 = (12.5uw, 10uh); + draw z11..z12{down}..z13{right}..z14{up}..z15; drawdot(z11); + z16 = (22uw, 12uh); + z17 = (x16, 0uh); + draw z15--z16; draw z16--z17; drawdot(z17); + penlabels(11,12,13,14,15,16,17); + z1 = (4.5uw, 11uh); + x4 = 28uw; + new_outer_circle; +endchar; + +beginchar(c_j_ja, 29uw#+rm#, 25uh#, 9uh#); "Oriya conjunct j+ja"; + z1 = (4uw, 11uh); + x4 = 28uw; + new_outer_circle; + % inner bows + pickup curvepen; + z11 = (6uw, 13uh); + z11' = (3.5uw, 9.5uh); % added + z12 = (3uw, 7.5uh); % adjusted + z13 = (8.5uw, 1uh-overshoot); % adjusted + z14 = (14uw, 6.5uh); % adjusted + z15 = (12.5uw, 11uh); + draw z11..z12{down}..z13{right}..z14{up}..z15; drawdot(z11); + z16 = (22uw, 13uh); + z17' = (x16, 3uh); % added + z17 = (x16, 0uh); + draw z15--z16; draw z16--z17'; + penlabels(11,11',12,13,14,15,16,17,17'); + transform subscript; + subscript = identity shifted (7.5uw, -9uh); + draw (z11'..z12{down}..z13{right}..z14{up}..z15) transformed subscript; + draw (z15--z16) transformed subscript; + draw (z16--z17) transformed subscript; + drawdot(z17 transformed subscript); +endchar; + + + +picture sup_da_picture; + +beginchar(c_da, 23uw#+rm#, 25uh#, 0uh#); "Oriya letter da"; + pickup curvepen; + z11 = (17uw, 0uh); + z12 = (x11, 13uh); + z13 = (7uw, 14uh); + z14 = (3.5uw, 8uh); + z15 = (10uw, 2uh); + z16 = (x11, 6uh); + z1 = (4.0uw, 11uh); + x4 = 23uw; + define_new_outer_circle; + + path da_bar; + path da_curve; + path da_circle; + da_bar := z11---z12; + da_curve := z13..z14{down}..z15{right}..{curl0}z16; + da_circle := new_outer_circle_path; + + % the superior da + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup barpen; + draw da_bar transformed super; + drawdot(z11 transformed super); + drawdot(z12 transformed super); + pickup curvepen; + draw da_curve transformed super; + draw da_circle transformed super; + drawdot(z5 transformed super); + drawdot(z13 transformed super); + cullit; sup_da_picture := currentpicture; + clearit; + + % the normal da + pickup barpen; + draw da_bar; + drawdot(z11); + drawdot(z12); + pickup curvepen; + draw da_curve; + drawdot(z13); + penlabels(11,12,13,14,15,16); + cullit; savepicture := currentpicture; + + draw_new_outer_circle; +endchar; + +beginchar(c_di, 23uw#+rm#, 25uh#, 0uh#); "Oriya combination di"; + currentpicture := savepicture; + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_narrow_i_circle; +endchar; + +beginchar(c_hu, 23uw#+rm#, 25uh#, 15uh#); "Oriya combination hu"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (3.5uw, -2uh); + draw z15--z16; + z17 = (7.5uw, -4uh); + z18 = (16uw, -12uh); + z19 = (12.5uw, -15uh); + z20 = (9uw, y18); + z21 = (17.5uw, y17); + z22 = (21.5uw, y16); + draw z16---z17..z18{down}..z19{left}..z20{up}..z21---z22; + penlabels(15,16,17,18,19,20,21,22,23); + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + +beginchar(c_h_ba, 23uw#+rm#, 25uh#, 12uh#); "Oriya combination h+ba"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (-1uw, -5uh); + z17 = (17uw, -14uh); + draw z15--z16--z17; + + pickup barpen; + z20 = (17uw, 0uh); + z21 = (x20, -9uh); + draw z20--z21; + + z24 = (17uw, -2.5uw); + eye(22, 23, 24, 25)(10uw, 8uh); + draw_eye(22, 23, 24, 25); % intentionally drawn with barpen + + penlabels(15,16,17, 20, 21, 22, 23, 24, 25); + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + +end. + +beginchar(c_ha, 23uw#+rm#, 25uh#, 8uh#); "Oriya letter ha"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (3.5uw, -2uh); + z17 = (17uw, -8uh); + draw z15--z16; draw z16--z17; drawdot(z17); + penlabels(15,16,17); + cullit; savepicture := currentpicture; + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + +beginchar(c_hi, 23uw#+rm#, 25uh#, 8uh#); "Oriya combination hi"; + currentpicture := savepicture; + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_narrow_i_circle; +endchar; + +beginchar(c_h_ma, 23uw#+rm#, 25uh#, 16uh#); "Oriya combination h+ma"; + currentpicture := savepicture; + pickup curvepen; + z15 = (10uw, 2uh); + z16 = (3.5uw, -2uh); + draw z15--z16; + z17 = (7uw, -3.5uh); + z18 = (16uw, -11uh); + z19 = (12.5uw, -15uh); + z20 = (8uw, y18); + z21 = (18.5uw, y17); + z22 = (22.5uw, y16); + z23 = (x22, -16uh); + draw z16---z17..z18{down}..z19{left}..z20{up}..z21---z22--z23; + penlabels(15,16,17,18,19,20,21,22,23); + z1 = (4.0uw, 11uh); + x4 = 23uw; + new_outer_circle; +endchar; + + + +end. + +endinput; + +picture sub_dda_picture; +picture sup_dda_picture; + +beginchar(c_dda, 25uw#+rm#, 25uh#, 0uh#); "Oriya letter dda"; + z11 = (9uw, 13uh); + z12 = (good.x 4uw, 6uh); + z13 = (.5[x12,x14], -overshoot); + z14 = (good.x 20uw, 6uh); + z15 = .5[z17,z18]; + z16 = z17 - (1uw, 2uh); + z17 = (11uw, 8uh); + z18 = (17uw, 15uh); + z19 = z18 + (1uw, 2uh); + z1 = (6.5uw, 11uh); + x4 = 25uw; + define_new_outer_circle; + + path dda_bar; + path dda_curve; + path dda_circle; + dda_bar := z16..z17---z18..z19; + dda_curve := z11{curl0}..z12{down}..z13{right}..z14{up}..z15; + dda_circle := new_outer_circle_path; + + % subscribed ga: + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup barpen; + draw dda_bar transformed sub; + drawdot(z16 transformed sub); + drawdot(z19 transformed sub); + pickup curvepen; + draw dda_curve transformed sub; + drawdot(z11 transformed sub); + draw dda_circle transformed sub; + drawdot(z5 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (dda_circle--cycle) transformed sub; + sub_dda_picture := currentpicture; + clearit; + + % the superior dda + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup barpen; + draw dda_bar transformed super; + drawdot(z16 transformed super); + drawdot(z19 transformed super); + pickup curvepen; + draw dda_curve transformed super; + drawdot(z11 transformed super); + draw dda_circle transformed super; + drawdot(z5 transformed super); + cullit; sup_dda_picture := currentpicture; + clearit; + + % normal dda: + pickup barpen; + draw dda_bar; + drawdot(z16); + drawdot(z19); + pickup curvepen; + draw dda_curve; + drawdot(z11); + penlabels(11,12,13,14,15,16,17,18,19); + cullit; savepicture := currentpicture; + + draw_new_outer_circle; +endchar; + +beginchar(c_d_ga, 23uw#+rm#, 25uh#, 10uh#); "Oriya conjunct dd+dda"; + currentpicture := sup_dda_picture + sub_dda_picture; +endchar; + + +end. + + + +endinput; + +picture sup_da_picture; + +beginchar(c_da, 23uw#+rm#, 25uh#, 0uh#); "Oriya letter da"; + pickup curvepen; + z11 = (17uw, 0uh); + z12 = (x11, 13uh); + z13 = (7uw, 14uh); + z14 = (3.5uw, 8uh); + z15 = (10uw, 2uh); + z16 = (x11, 6uh); + z1 = (4.0uw, 11uh); + x4 = 23uw; + define_new_outer_circle; + + path da_bar; + path da_curve; + path da_circle; + da_bar := z11---z12; + da_curve := z13..z14{down}..z15{right}..{curl0}z16; + da_circle := new_outer_circle_path; + + % the superior da + transform super; + super := identity scaled 20/25 shifted (0, 5uh); + pickup barpen; + draw da_bar transformed super; + drawdot(z11 transformed super); + drawdot(z12 transformed super); + pickup curvepen; + draw da_curve transformed super; + draw da_circle transformed super; + drawdot(z5 transformed super); + drawdot(z13 transformed super); + cullit; sup_da_picture := currentpicture; + clearit; + + % the normal da + pickup barpen; + draw da_bar; + drawdot(z11); + drawdot(z12); + pickup curvepen; + draw da_curve; + drawdot(z13); + penlabels(11,12,13,14,15,16); + cullit; savepicture := currentpicture; + + draw_new_outer_circle; +endchar; + +picture sub_ga_picture; + +beginchar(c_ga, 24uw#+rb#+rm#, 25uh#, 0uh#); "Oriya letter ga"; + z1 = (7.5uw, 9uh); + z2 = (6uw, 5uh); + z3 = (11.5uw, -overshoot); + z4 = (17uw, 5uh); + z5 = (12uw, 10uh); + z6 = (6uw, 9uh); + z7 = (0uw, 16uh); + z8 = (11uw, h+overshoot); + z9 = (24uw, h - joint); + z10 = (x9, h); + z11 = (x9, 0); + + path ga_curve; + path ga_bar; + ga_curve := z1{curl0}..z2{down}..z3{right}..z4{up}..z5{left}..z6{left}.. + z7{up}..z8{right}..{curl0}z9; + ga_bar := z10--z11; + + % subscribed ga: + transform sub; + sub := identity scaled 15/25 shifted (8uw, -9uh); + pickup curvepen; + draw ga_curve transformed sub; + drawdot(z9 transformed sub); + pickup barpen; + draw ga_bar transformed sub; + drawdot(z10 transformed sub); + drawdot(z11 transformed sub); + currentpicture := currentpicture + currentpicture + currentpicture; + unfill (z6{left}..z7{up}..z8{right}..{curl0}z9--z11--cycle) transformed sub; + sub_ga_picture := currentpicture; + clearit; + + % normal ga: + pickup curvepen; + draw ga_curve; + drawdot(z9); + pickup barpen; + draw ga_bar; + drawdot(z10); + drawdot(z11); + penlabels(1,2,3,4,5,6,7,8,9,10,11); + savepicture := currentpicture; +endchar; + +beginchar(c_d_ga, 22uw#+rm#, 25uh#, 5uh#); "Oriya conjunct d+ga"; + currentpicture := sup_da_picture + sub_ga_picture shifted (-1uw, 1uh); +endchar; + +end. + +% end of ortest.mf diff --git a/language/oriya/mf/oriya/parameters.txt b/language/oriya/mf/oriya/parameters.txt new file mode 100644 index 0000000000..9d9f017499 --- /dev/null +++ b/language/oriya/mf/oriya/parameters.txt @@ -0,0 +1,25 @@ + +Parameters for the Oriya fonts + + in points unless indicated otherwise +Font gensize uw uh rm rb slant rot thick thin + +or8 8.0 0.18 0.17 3uw 0.8uw +or10 10.0 0.21 0.21 3uw 0.8uw +or12 12.0 0.25 0.25 6.0uw 1.5uw 0 30 3uw 0.7uw +or17 17.28 0.34 0.36 3uw 0.6uw + +orsl8 0.17 +orsl10 0.17 +orsl12 0.17 + +orbf8 0 +orbf10 0 4.5uw 1.0uw +orbf12 0 4.5uw 0.9uw + +orbs8 0 +orbs10 0 +orbs12 0 + + +orss12 0 0 2.0uw 2.0uw diff --git a/language/oriya/mf/oriya/todo b/language/oriya/mf/oriya/todo new file mode 100644 index 0000000000..3b92417955 --- /dev/null +++ b/language/oriya/mf/oriya/todo @@ -0,0 +1,42 @@ +TODO in the Oriya metafont as of 07 September 1997: + +glyphs seen but not included in this font: + conjunct k+la (can be made from parts by TeX) + +Characters to create: + + improve question mark + add international numerals + +Characters done: + + combination of secondary va/ba and vowel sign u [done] + combination of secondary bha and vowel sign u [done] + slash, backslash [done] + combination chaa [done] + conjunct mbha [done] + many consonant-matra combinations [done] + centered version of matra u, uu, ri and candrabindu for use with some letters [done] + +Edit or change: + + quotes go wrong in slanted styles + + move old characters to orold.mf [done] + hu adjust to new ha shape [done] + o, oo too narrow, eye to big [done] + dha looks ugly, make lower curve smaller [done] + nya try different design [done] + gha make stroke between bottom curves straight [done] + t+ta left of outer circle looks ugly [done] + dda, etc. adjust inner bar a bit [done] + o, oo, t+ta find solution for these small eyes [done] + + make various dimensions integer with + + define_whole_pixels() + + and tactically use good.x alpha and good.y beta + (take care of picking the right pen first) + + |