diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf | 633 |
1 files changed, 633 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf new file mode 100644 index 00000000000..5c1017d55bc --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf @@ -0,0 +1,633 @@ +% mmdefs.mf -- definitions for malayalam font +% copyright 1992 Jeroen Hellingman +% last edit: 09-JAN-1993 + +%%%%%% dimensions + +uw# := 0.1u#; % unit of width +uh# := 0.05ht#; % unit of height + +define_pixels(rm,u,uw,uh); +define_whole_pixels(ht); + +currenttransform := currenttransform shifted (.5rm, 0); + +%%%%%% set the remaining font parameters + +font_slant := slant; +font_quad := 20uw#; +font_x_height := 20uh#; +font_normal_space := 14uw#; +font_normal_stretch := 8uw#; +font_normal_shrink := 2uw#; + +currenttransform := currenttransform slanted slant; + +%%%%%% pen definitions + +penwd# :=thick# * cosd(rot-90); +usthick# := thick#; +mb# := .2ht#; +define_pixels(penwd,usthick,mb); +define_blacker_pixels(thin,thick,subthick); +thin := max(thin,1); subthick := max(subthick,1); +smoothing := 0; +pickup pencircle xscaled thick yscaled thin rotated rot; +scpenwd := pen_rt - pen_lft; +frame_pen := savepen; +pickup pencircle xscaled subthick yscaled thin rotated rot; +sub_pen := savepen; + +%%%%%% character part definitions + +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; + +def large_bow(suffix a,b,c,d,e) = +% define points of full height bow in "rra", "va", "ha" +% x values relative to x.b +% y values absolute. + z.a=(x.b + 4uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b + 10uw, 20uh); + z.d=(x.b + 20uw, 10uh); + z.e=(x.d - 4uw, 0); +enddef; + +def small_bow(suffix a,b,c,d,e) = +% define points of "half" height bow in "e", "ee", "pa", "pha", "ssa", "ha" +% x values relative to x.a +% y values relative to y.a + z.b=(x.a - 4uw, y.a + 7uh); + z.c=(x.b + 7uw, y.a + 14uh); + z.d=(x.b + 14uw, y.b); + z.e=(x.d - 4uw, y.a); +enddef; + +def draw_bow (suffix a,b,c,d,e) = +% draw bow through five points + draw z.a..z.b{up}..z.c{right}..z.d{down}..z.e; +enddef; + +def end_loop(suffix a,b,c,d) = +% define points of end loop of "a", "vocalic l", "ra", etc. +% x values relative to x.a +% y values absolute. + z.b = (x.a-5uw, 0); + z.c = (x.a-8uw, 5uh); + z.d = (x.a-2uw, 16uh); +enddef; + +def upside_down_end_loop(suffix a,b,c,d) = +% define points of upside down end loop of "ddha" +% x values relative to x.a +% y values absolute. + z.b = (x.a-5uw, 20uh - 0); + z.c = (x.a-8uw, 20uh - 5uh); + z.d = (x.a-2uw, 20uh - 16uh); +enddef; + +def end_loop_tail(suffix a,b,c,d,e,f,g) = +% define points of end loop and tail of "aa", "vocalic ll", etc. +% x values relative to x.a +% y values absolute. +% adds 7uw to character width +% character depth will be at least 6uh + z.b = (x.a-5uw, 0); % was z.b = (x.a-5uw, 0); + z.c = (x.a-9uw, 5uh); % was z.c = (x.a-8uw, 5uh) + z.d = (x.a-1uw, 15uh); + z.e = (x.a+7uw, 5uh); + z.f = (x.a-1uw, -6uh); + z.g = (x.a-7uw, -4uh); +enddef; + +def loop_u(suffix a,b,c,d,e,f,g,h,i,j) = +% define points of "vowel sign u" in chu and shu +% x coordinates relative to x.a and x.h +% y coordinates absolute + z.b=(x.a-6uw, 0); + z.c=(x.a-10uw, 6uh); + z.d=(x.a-1uw, 16uh); + z.e=(x.a+8uw, 6uh); + vowel_sign_u(e,f,g,h,i,j); +enddef; + +def loop_uu(suffix a,b,c,d,e,f,g,h,i,j,k,l) = +% define points of "vowel sign uu" in chu and shu +% x coordinates relative to x.a and x.j +% y coordinates absolute + z.b=(x.a-6uw, 0); + z.c=(x.a-10uw, 6uh); + z.d=(x.a, 16uh); + z.e=(x.a+8uw, 10uh); + z.f=(x.a+5uw, 6uh); + z.g=(x.a+9uw, 1uh); + vowel_sign_u(g,h,i,j,k,l); +enddef; + +def vowel_sign_u(suffix a,b,c,d,e,f) = +% define points of "vowel sign u" in gu, tu, etc. +% x coordinates relative to x.a and x.d +% y coordinates absolute + z.b=(x.a-9uw, -4uh); + z.c=(x.d+3uw, y.b); + z.d=(x.d, -7uh); + z.e=(x.c, -10uh); + z.f=(x.a, y.e); +enddef; + +def vowel_sign_uu(suffix a,b,c,d,e,f,g,h,i) = +% define points of vowel sign uu as applied in tuu +% x coordinates relative to x.a and x.g +% y coordinates absolute + z.b=(x.a + 9uw, 13.5uh); + z.c=(x.a + 4uw, 9uh); + z.d=(x.a + 11uw, .5[y.c, y.e]); + vowel_sign_u(d,e,f,g,h,i); +enddef; + +def vowel_sign_ra_u(suffix a,b,c,d,e,f) = +% define points of "vowel sign u" in ru, etc. +% x coordinates relative to x.a +% y coordinates absolute + z.b = (x.a+9uw, 14uh); + z.c = (x.a+4uw, 10.5uh); + z.d = (x.a+11uw, 5.25uh); + z.e = (x.a+5uw, 0uh); + z.f = (x.a+3uw, .5uh); +enddef; + +def make_sub_triangle(suffix a,b,c,d) = +% define and draw subscribed triangle for double letters +% x coordinates relative to z.a + z.a=(x.a, 10uh); + z.b=(x.a, -10uh); + z.c=(x.a-26uw, y.b); + z.d=(x.c+18uw, 0.5uh); + draw z.a--z.b--z.c--z.d; + penlabels(a,b,c,d); +enddef; + +def front_eye(suffix a,b,c,d,e) = +% defines points of the eye at the start of "i", "u", "kha", "nga", etc. +% x values relative to x.e +% y values absolute. +% note that the eye is not even elliptical here! + z.a = (x.e + 1uw, 6uh); + z.b = (x.e + 6uw, 12uh); + z.c = (x.e + 11uw, y.a); + z.d = (x.b, 0); +enddef; + +def end_tha_bow(suffix a,b,c,d,e) = +% define points of the bow end of "tha", "pha", etc. +% x values relative to x.a +% y values relative to y.a + z.b=(x.a, y.a + 9.5uh); + z.c=(x.a-8uw, y.a + 19.5uh); + z.d=(x.a-16uw, y.a + 9.5uh); + z.e=(x.d, y.a); +enddef; + +def draw_end_tha_bow(suffix a,b,c,d,e) = + draw z.a---z.b{up}..z.c{left}..{down}z.d---z.e; +enddef; + +def end_ssa(suffix a,b,c,d,e,f,g) = +% define points of the end of "ssa". +% x values relative to x.a +% y values relative to y.a + z.b=(x.a, y.a + 19.5uh); + eye(d,e,f,c)(7uw,7uh); + z.f=(x.a-14uw, y.b - 3.5uh); + z.g=(x.f, y.a); +enddef; + +def draw_end_ssa(suffix a,b,c,d,e,f,g) = + draw z.a--z.b; + draw z.b..z.c{left}..z.d{up}..z.e{right}..z.f{down}---z.g; +enddef; + +def vowel_sign_vocalic_r(suffix a,b,c,d,e) = +% define points of a "vowel sign vocalic r" +% x values relative to x.a +% y values absolute + z.b=(x.a-12uw, -11uh); + z.c=(x.a-20uw, -8uh); + z.d=(x.b, -5uh); + z.e=(x.a-4.25uw, -7uh); +enddef; + +def subscribed_ra(suffix a,b,c,d,e)(expr depth) = +% define points of subscribed ra +% (some) x coordinates relative to x.a +% y coordinates absolute or relative to d + numeric sub_ra_tmp; + sub_ra_tmp := 2.1*(uw/uh)*depth; + if sub_ra_tmp > .45x.a : sub_ra_tmp := .45x.a; fi; + z.b = (x.a - sub_ra_tmp, -depth); + z.c = (sub_ra_tmp, -depth); + z.d = (0, 10uh); + z.e = (3.5uw, 20uh); +enddef; + +def virama_tail(suffix a,b,c,d,e,f,g) = +% define points of the tail for virama in "n", "nn", "r", and "ll" +% x values relative to x.a +% y values absolute + z.b = (x.a-4.5uw, 0); + z.c = (x.a-9uw, 6uh); + z.d = (x.a-7uw, 15uh); + z.e = (x.a-4uw, 24uh); + z.f = (x.a-8uw, 28uh); + z.g = (x.a-13uw, 25uh); +enddef; + +def letter_ka(suffix a,b,c,d,l,e,f,g,h,i,j,k) = +% define points of "malayalam letter ka", +% y coordinates relative to y.f +% x coordinates absolute + % middle loop + z.a=(x.f + 10uw, 11uh); + z.l=(x.f + 11uw, 4uh); + z.b=(x.f + 16uw, 20uh); + z.c=(x.f + 22uw, y.a); + z.d=(x.b, 0); + % first loop + z.e=(x.f + 5uw, 0); + z.f=(x.f, 5.5uh); + z.g=(x.f + 6uw, y.a); + % tail + z.h=(x.f + 26uw, y.a); + z.i=(x.f + 32uw, y.f); + z.j=(x.f + 27uw, 0); + z.k=(x.f + 25uw, 1uh); +enddef; + +def letter_k_ka(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) = +% define points of "malayalam letter k+ka" +% x coordinates relative to x.g +% y coordinates absolute; + letter_ka(a,b,c,d,e,f,g,h,i.tmp,j.tmp,k.tmp,l.tmp); + z.i=(x.g + 31.5uw, 11uh); + z.j=(x.g + 37uw, 5.5uh); + z.k = (.45[x.j, x.l], 0); + z.l = (x.g + 27uw, 10uh); + z.m = (x.l + 10uw, 20uh); + z.n = (x.l + 20uw, y.l); + z.o = (x.n - 4uw, 0); +enddef; + +def letter_ga(suffix a,b,c,d,e,f,g) = +% define points of "malayalam letter ga" +% x coordinates relative to x.b +% y coordinates absolute; + % first curl + z.a=(x.b+8uw, 20uh); + z.b=(x.b, 10uh); + z.c=(x.b+8uw, 0); + % middle point + z.d=(x.b+16uw, 10uh); + % second curl + z.e=(x.b+24uw, 20uh); + z.f=(x.b+32uw, 10uh); + z.g=(x.b+24uw, 0); +enddef; + +def letter_ca(suffix a,b,c,d,e,f,g,h) = +% define points of "malayalam letter ca" +% x coordinates relative to x.f +% y coordinates absolute; + % first bow, (height = 14) + z.a=(x.f+4uw, 6uh); + z.b=(x.f+4uw, 7uh); + z.c=(x.f+11uw, 14uh); + z.d=(x.f+18uw, y.b); + z.e=(x.f+9uw, .5uh); + % hook + z.f=(x.f, y.e); + z.g=(x.f+36uw, y.e); + z.h=(x.f+36uw, 19.5uh); +enddef; + +def letter_cha(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n) = +% define points of "malayalam letter cha" +% x coordinates relative to x.f +% y coordinates absolute; + letter_ca(a,b,c,d,e,f,g.tmp,h.tmp); + z.g=(x.h-3uw, y.e); + z.h=(x.f+30uw, 0); + letter_ra(h,i,j,k,l,m,n); +enddef; + +def letter_ja(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) = +% define points of "malayalam letter ja" +% x coordinates relative to x.a +% y coordinates absolute; + % first eye + z.a=(x.a, 12uh); + eye(a,b,c,d)(8uw, 8uh); + % first bow + z.e=(x.a, 14uh); + z.f=(x.a+7uw, 20uh); + z.g=(x.a+14uw, 13uh); + z.h=(x.g, 8uh); + % second bow + z.i=(x.a+21uw, 20uh); + z.j=(x.a+26uw, 14uh); + % tail + z.k=(x.a+13uw, 4uh); + z.l=(x.a+.5uw, -2uh); + z.m=(x.a+7uw, -6uh); + z.n=(x.a+15uw, -3uh); + % second eye (diameter = 6) + z.p=(x.a+22.5uw, 0); + eye(o,p,q,r)(6uw, 6uh); +enddef; + +def letter_jha(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n) = +% define points of "malayalam letter jha" +% x coordinates relative to x.b +% y coordinates absolute; + % first bow + z.a=(x.b+4uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b+10uw, 20uh); + z.d=(x.b+20uw, 8uh); + z.e=(x.b+15uw, 0); + % second bow + z.f=(x.b+10uw, y.d); + z.g=(x.b+20uw, 20uh); + z.h=(x.b+28uw, 10uh); + z.i=(x.b+35uw, 0); + z.j=(x.b+42uw, 10uh); + z.k=(x.j, 19.5uh); + z.l=(x.b+50uw, 0); + z.m=(x.b+58uw, 10uh); + z.n=(x.b+54uw, 20uh); +enddef; + +def letter_nya(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) = +% define points of letter nya +% x coordinates relative to x.e +% y coordinates absolute + front_eye(a,b,c,d,e); + z.e=(x.e, 10uh); + z.f=(x.e + 9uw, 20uh); + z.g=(x.e + 17uw, 10uh); + z.h=(x.g, .5uh); + % second bow + z.i=(x.e + 26uw, 20uh); + z.j=(x.e + 36uw, 8uh); + z.k=(x.e + 31uw, 0); + z.l=(x.e + 26uw, 8uh); + % third bow + z.m=(x.e + 36uw, 20uh); + z.n=(x.e + 46uw, 10uh); + z.o=(x.e + 42uw, 0); +enddef; + +def letter_tta(suffix a,b,c,d,e,f,g) = +% define points of "malayalam letter tta" (looks like "latin letter s") +% x coordinates relative to x.c +% y coordinates absolute; + z.a=(x.c+18uw, 18uh); + z.b=(x.c+9uw, 20uh); + z.c=(x.c, 15uh); + z.d=(x.c+9uw, 10uh); + z.e=(x.c+18uw, 5uh); + z.f=(x.c+9uw, 0); + z.g=(x.c, 2uh); +enddef; + +def letter_dda(suffix a,b,c,d,e,f,g,h,i,j) = +% define points of "malayalam letter dda" +% x coordinates relative to x.b +% y coordinates absolute; + % (almost) upside down mirror image of "malayalam letter sa" + z.a=(x.b+4uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b+7uw, 20uh); + z.d=(x.b+14uw, 10uh); + z.e=(x.b+21uw, 0); + z.f=(x.b+28uw, 10uh); + z.g=(x.f, 19.5uh); + z.h=(x.b+36uw, 0); + z.i=(x.b+44uw, 10uh); + z.j=(x.b+40uw, 20uh); +enddef; + +def letter_ta(suffix a,b,c,d,e,f,g,h,i) = +% define points of "malayalam letter ta" +% x coordinates relative to x.b +% y coordinates absolute; + % first bow + z.a=(x.b+4uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b+10uw, 20uh); + z.d=(x.b+20uw, 8uh); + z.e=(x.b+15uw, 0); + % second bow + z.f=(x.b+10uw, y.d); + z.g=(x.b+20uw, 20uh); + z.h=(x.b+30uw, 10uh); + z.i=(x.b+26uw, 0); +enddef; + +def letter_da(suffix a,b,c,d,e,f,g,h,i) = +% define points of "malayalam letter da" +% x coordinates relative to x.b +% y coordinates absolute; + z.a=(x.b+2uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b+9uw, 20uh); + z.d=(x.b+17uw, 15uh); + z.e=(x.b+8uw, 10uh); + z.f=(x.b+7uw, y.e); + z.g=(x.b+18uw, 5uh); + z.h=(x.b+12uw, 0); + z.i=(x.b+6uw, 1uh); +enddef; + +def letter_dha(suffix a,b,c,d,e,f,g,h) = +% define points of "malayalam letter dha" +% x coordinates relative to x.b +% y coordinates absolute; + z.a=(x.b+4uw, 20uh); + z.b=(x.b, 10uh); + z.c=(x.b+8uw, 0); + z.d=(x.b+16uw, 10uh); + z.e=(x.d, 19.5uh); + z.f=(x.b+24uw, 0); + z.g=(x.b+32uw, 10uh); + z.h=(x.b+28uw, 20uh); +enddef; + +def letter_na(suffix a,b,c,d,e,f,g,h) = +% define points of "malayalam letter na" +% x coordinates relative to x.b +% y coordinates absolute; + z.a=(x.b+4uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b+8uw, 20uh); + z.d=(x.b+16uw, 10uh); + z.e=(x.d, .5uh); + z.f=(x.b+24uw, 20uh); + z.g=(x.b+32uw, 10uh); + z.h=(x.b+28uw, 0); +enddef; + +def draw_letter_na(suffix a,b,c,d,e,f,g,h) = + draw z.a..z.b{up}..z.c{right}..{down}z.d---z.e; + draw z.e---z.d{up}..z.f{right}..z.g{down}..z.h; +enddef; + +def letter_n_na(suffix a,b,c,d,e,f,g,h,i,j,k) = +% define points of "malayalam letter na" +% x coordinates relative to x.b +% y coordinates absolute; + letter_na(a,b,c,d,e,f,g,h'); + letter_na(d',e',f',g,h,i,j,k); +enddef; + +def half_ba(suffix a,b,c,d,e,f,g,h,i,j,k) = +% define points of first half of letter ba (32uw wide) +% x coordinates relative to x.e +% y coordinates absolute + front_eye(a,b,c,d,e); + % first bow + z.e=(x.e, 10uh); + z.f=(x.e+9uw, 20uh); + z.g=(x.e+17uw, 10uh); + z.h=(x.g, 0); + % second bow + z.i=(x.e+24uw, 20uh); + z.j=(x.e+32uw, 10uh); + z.k=(x.e+28uw, 0); +enddef; + +def letter_bha(suffix a,b,c,d,e,f,g,h,i,j,k,l) = +% define points of "malayalam letter bha" +% x coordinates relative to x.b +% y coordinates absolute; + z.a=(x.b+2uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b+11uw, 20uh); + z.d=(x.b+19uw, 16uh); + z.e=(x.d-3uw, y.d-3uh); + z.f=(x.g+3uw, y.g+3uh); + z.g=(x.b+6uw, 10uh); + z.h=(x.g+3uw, y.g-3uh); + z.i=(x.j-3uw, y.j+3uh); + z.j=(x.b+20uw, 4uh); + z.k=(x.b+14uw, 0); + z.l=(x.b+6uw, 1uh); +enddef; + +def letter_ma(suffix a,b,c,d,e,f,g,h) = +% define points of "malayalam letter ma" +% x coordinates relative to x.a +% y coordinates absolute; + z.a=(x.a, .5uh); + z.b=(x.a+12uw, 14uh); + z.c=(x.a+7uw, 19uh); + z.d=(x.a+3uw, 17uh); + % outer loop + z.e=(x.a, 10uh); + z.f=(x.a+10uw, 20uh); + z.g=(x.a+20uw, y.e); + z.h=(x.g, y.a); +enddef; + +def draw_letter_ma(suffix a,b,c,d,e,f,g,h) = + draw z.a..z.b{up}..z.c{left}..z.d; + draw z.a--z.h & z.h---z.g{up}..z.f{left}..{down}z.e---z.a; +enddef; + +def letter_ya(suffix a,b,c,d,e,f,g,h,i,j) = +% define points of "malayalam letter ya" +% x coordinates relative to x.e +% y coordinates absolute; + z.a=(x.e+11.5uw, 14uh); + z.b=(.5[x.a,x.c], 20uh); + z.c=(x.e+24uw, 12uw); + z.d=(.5[x.c,x.e], 0); + z.e=(x.e, 12uh); + z.f=(x.e+6uw, 20uh); + z.g=(x.e+11.5uw, 12uh); + z.h=(.5[x.g,x.i], 0); + z.i=(x.e+32uw, 10uh); + z.j=(x.e+28uw, 20uh); +enddef; + +def letter_ra(suffix a,b,c,d,e,f,g) = +% define points of "malayalam letter ra" +% x coordinates relative to x.b +% y coordinates absolute; + large_bow(a,b,c,d,e.tmp); + end_loop(d,e,f,g); +enddef; + +def letter_la(suffix a,b,c,d,e,f) = +% define points of "malayalam letter la" +% x coordinates relative to x.a +% y coordinates absolute; + z.a=(x.a, 8.5uh); + z.b=(x.a+18uw, y.a); + z.c=(x.a+9uw, 20uh); + z.d=(x.a, .5uh); + z.e=(x.a+32uw, y.d); + z.f=(x.e, 19.5uh); +enddef; + +def letter_sha(suffix a,b,c,d,e,f,g,h,i) = +% define points of "malayalam letter sha" +% x coordinates relative to x.b +% y coordinates absolute; + letter_ga(a,b,c,d,e,f,g.tmp); + end_loop(f,g,h,i); +enddef; + +def letter_sa(suffix a,b,c,d,e,f,g,h,i,j) = +% define points of "malayalam letter sa" +% x coordinates relative to x.b +% y coordinates absolute; + z.a=(x.b+4uw, 0); + z.b=(x.b, 10uh); + z.c=(x.b+8uw, 20uh); + z.d=(x.b+16uw, 10uh); + z.e=(x.d, .5uh); + z.f=(x.b+23uw, 20uh); + z.g=(x.b+30uw, 10uh); + z.h=(x.b+37uw, 0); + z.i=(x.b+44uw, 10uh); + z.j=(x.b+40uw, 20uh); +enddef; + +def letter_ha(suffix a,b,c,d,e,f,g,h,i,j,k,l) = +% define points of "malayalam letter ha" +% x coordinates relative to x.b +% y coordinates absolute; + y.a = y.h = 0; + small_bow(a,b,c,d,e); + z.f = z.e + (3uw, .5uh); + z.g = z.h + (-3uw, .5uh); + x.k = x.b+42uw; + large_bow(h,i,j,k,l); +enddef; + +endinput; + +% end of mmdefs.mf
\ No newline at end of file |