diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf | 578 |
1 files changed, 578 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf new file mode 100644 index 00000000000..7e966b92f46 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf @@ -0,0 +1,578 @@ +%%%%%%%%%%%%%%%%%%%%%% xnshbase.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% base file for extended NASH +% 13.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown cmbase: else: +errhelp "you are using 'cmbase'; rerun with base=&plain"; +errmessage "this font needs the 'plain' METAFONT base; run aborted"; +endinput +fi; + +if unknown nashcode: input xarbsymb fi; + +xnshbase := 1; + +def font_setup = + define_pixels(dx, dy, dp, em, ex); + define_blacker_pixels(px, py, spx); + pa := pen_angle; pl := px++py; da := pa - angle(px,py); + pickup pensquare xscaled px yscaled py rotated pa; +% pickup pencircle xscaled px yscaled py rotated pa; + nash_pen := savepen; + pickup pencircle scaled spx; + dia_pen := savepen; +enddef; + +def makegrid(text r) = + for x=0 step dx until w+.5dx: + for y=0 step dy until h+.5dy: + fill unitsquare shifted (x,y); + endfor; + for y=dy step dy until d+.5dy: + fill unitsquare shifted (x,-y); + endfor; + endfor +% for y=0,h,-d: r((0,y), (w,y)); endfor +% for x=0,w: r((x,-d), (x,h)); endfor + maketicks(r); +enddef; + +%%%%%%%%%%%%%% char-macros %%%%%%%%%%%%%%%%% + +def arabchar(expr code, form, uw, uh, ud) = + beginchar(if string code: code else: (code + form) fi, + uw*dx#, uh*dy#, (ud + dia_d)*dy#); + pickup nash_pen; + if .5w <> good.x .5w: change_width; fi + x.l = x.ll = 0; x.r = x.rr = w; x.m = 0.5w; + bot y.l = bot y.r = y.m = bot y.ll - .5ex = 0; y.rr = y.ll; +enddef; + +def diachar(expr code, uw, uh) = + beginchar(code, uw*dx#, (uh+0.5)*dy#, 0.5*dy#); +% beginchar(code, uw*dx#, uh*dy#, 0); + pickup dia_pen; + if .5w <> good.x .5w: change_width; fi + lft x.l = 0; rt x.r = w; + y.l = 0.5dy; y.r = h - dy; +% bot y.l = 0; top y.r = h; +enddef; + +def numchar(expr code) = + beginchar(code, 10*dx#, 10*dy#, 5*dy#); + pickup nash_pen; + if .5w <> good.x .5w: change_width; fi + lft x.l = 0; rt x.r = w; + bot y.l = -d; top y.r = h; +% bot y.l = 0; top y.r = h; +enddef; + +extra_endchar := +extra_endchar & "penlabels(l,m,r,ll,rr,range 1 thru 20);"; + +%%%%%%%%%%%%%% dot-macros %%%%%%%%%%%%%%%%% + +def put_dot (suffix $) = + z.$1 - z.$2 = (0, px - py) rotated pa; + z.$ = .5[z.$1, z.$2]; + draw z.$1--z.$2; + labels($1,$2); +enddef; + +def one_dot (expr n) = + x.dd := x.m; y.dd := y.m + round(n*dy); + put_dot(dd); +enddef; + +def two_dots (expr n) = + x.dr - x.m = x.m - x.dl = round(dpx*dx); + y.dl = y.dr = y.m + round(n*dy); + put_dot(dl); put_dot(dr); +enddef; + +def three_dots (expr n) = + two_dots(n); one_dot(n+dpy); +enddef; + +def three_dots_low (expr n) = + two_dots(n); one_dot(n-dpy); +enddef; + +%%%%%%%%%%%%%% stroke-macros %%%%%%%%%%%%%%%%% + +def bow (expr u, v, w) = + draw u..controls v and v..w; +enddef; + +def l_att (suffix $) = + x.$l = x.$ - dx; y.$l = y.l; + bow(z.$, z.$l, z.l); +enddef; + +def r_att (suffix $) = + x.$r = x.$ + dx; y.$r = y.r; + bow(z.$, z.$r, z.r); +enddef; + +def r_att (suffix $) = + x.$r = x.$ + dx; y.$r = y.r; +% bow(z.$, z.$r, z.r); +draw z.${z.$r-z.$}..z.r{right}; +enddef; + +def serif (suffix $) = + z.$ = 0.2[z.$2,z.$1]; +% z.$2 - z.$1 = 3dy * (-4dx,11dy); % 110 + y.$2 - y.$1 = 3dy; + z.$2 - z.$1 = whatever * (-4dx,11dy); + draw z.$1--z.$2; +enddef; + +def s_bow (suffix $) = + x.$1 - .5dx = x.$; + x.$2 - 4dx = lft x.$3 = lft x.$4 + 1.5dx - pl = x.l; + y.$1 - dy = y.$3 = y.$4 - 2dy = y.$2 + 2dy = - 2dy; + draw z.$..z.$1{down}..z.$3{up}..z.$4; +enddef; + +def p_loop (suffix $) = +pickup dia_pen; +x.$1 = x.$2 = x.$; y.$1 + spx + dy = y.$2; top y.$2 = y.$; +draw z.$1..z.$2..cycle; +pickup nash_pen; +enddef; + +def r_con (suffix $) = + charic := (y.$-y.r)/vppp; +enddef; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%% bah-macros %%%%%%%%%%%%%%%%% + +def bah_bow = +x1 = x4 + dx = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx; +%x1 = x4 = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx; +y4 - 5dy = y1 - 3dy = y2 - 2dy = y.m = y3 - 4dy; +x5 = x.m; y5 = y.m - 0.5dy; +enddef; + +def bah_end = +bah_bow; draw z1..z5{left}..z2..z3; r_att(1); +enddef; + +def bah_iso = +bah_bow; draw z4..z1..z5{left}..z2..z3; +enddef; + +def bah_mid = +x6 = x.m; y6 = good.y (y.r + 2dy); +l_att(6); r_att(6); +enddef; + +def bah_beg = +x.m := x.m + 0.5dx; +x1 - dx = x2 = x.m; y1 = y.l; y2 = y.m + 4dy; +bow(z2, z1, z.l); +enddef; + +%%%%%%%%%%%%%% hhah-macros %%%%%%%%%%%%%%%%% + +def hhah_iso_bar = +x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 4dy = y.r; +x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right}; +enddef; + +def hhah_mid_bar = +x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 3dy = y.r; +x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right}; +enddef; + +def hhah_beg_bar = +x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 2dy = y.r; +x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right}; +enddef; + +def hhah_bow = +lft x4 = x1 - 2dx = x5 - 8dx; rt x6 - 6dx = x5; +y5 = y6 - dy = -10dy; y4 = 0.6[y2,y5]; +penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90); +draw z2{left}..z4{down}; +fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle; +enddef; + +def hhah_iso = +hhah_iso_bar; hhah_bow; +enddef; + +def hhah_end = +hhah_mid_bar; hhah_bow; +draw z3{down}..z.r{right}; +enddef; + +def hhah_mid = +hhah_mid_bar; draw z2{left}..z.l{left}; +draw z3{down}..z.r{right}; +enddef; + +def hhah_beg = +hhah_beg_bar; draw z2{left}..z.l{left}; +enddef; + +%%%%%%%%%%%%%% dal-macros %%%%%%%%%%%%%%%%% + +def dal_iso = +x1 = x2 + 2dx = x3 - 3dx = x.r - 4dx; x.m := x1; +y1 - 6dy = y2 = y3 - dy = y.r; +draw z1{(7dx,-4dy)}..z3..z2{left}; +enddef; + +def dal_end = +x1 + dx = x3 - dx = x4 + 4dx = x.r - 3dx; lft x2 = x.r - 9dx; +y1 = 8dy; y2 - dy = y3 = y4 = y.l; z5 = .3[z1,z3]; +draw z1--z5{z3-z1}..z.r{right}; +draw z5{z3 - z1}..z4{left}..z2; +enddef; + +%%%%%%%%%%%%%% rah-macros %%%%%%%%%%%%%%%%% + +def rah_bow = +x5 + dx = x2 + dx = x4 + 9dx = x3 - px + 6dx = x.r; +y5 + 3dy = y2 - 0.5dy = y4 + 6dy = y3 + 6dy = y.r; +penpos2(pl,da); penpos3(pl,90); +penpos4(0.3dy,90); penpos5(0.4[py,px],0); +enddef; + +def rah_iso = +rah_bow; +y1 - 2dy = y.r; x1 + 0.5dx = x2; +penpos1(pl,da); +fill z1l..z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r..z1r--cycle; +enddef; + +def rah_end = +rah_bow; +y1 - .5dy = y.r; x1 = x2; % = x.r - dx; +fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle; +draw z1..z.r{right}; +enddef; + +%%%%%%%%%%%%%% sin-macros %%%%%%%%%%%%%%%%% + +def s_wave = +z2 - z1 = z5 - z4 = 2(z3 - z2); +x3 - x1 = 6(x3 - x5) = 6dx; x.m := x2; +y4 = y5 - 0.5dy = y2 - 2.5dy = y.r; +draw z3..z5..z2; draw z2..z4{left}; +enddef; + +def mid_wave = +x3 = x.r - 3dx; s_wave; +draw z4{left}..z1; +enddef; + +def beg_wave = +rt x3 = x.r; s_wave; +draw z4{left}..z1; +enddef; + +def sin_iso = +beg_wave; s_bow(1); +enddef; + +def sin_end = +mid_wave; +draw z3{down}..z.r{right}; s_bow(1); enddef; + +def sin_mid = +mid_wave; draw z3{down}..z.r{right}; l_att(1); +enddef; + +def sin_beg = +beg_wave; l_att(1); +enddef; + +%%%%%%%%%%%%%% sad-macros %%%%%%%%%%%%%%%%% + +def sad_bow = +x2 - dx = x3 - 9dx; x2 + 3dx = x.m; x4 = x2 - 2dx; +y2 = y3 - 3dy = y4 - 2dy = y.r; +x8 = x2 + 3.5dx; y8 = y2 + 0.5dy; +draw z2{(5dx,6dy)}..z3{(4dx,-7dy)}..tension 2..z2{left}; +enddef; + +def sad_iso = +x.m := x.m + 4dx; +sad_bow; draw z2{left}..z4; s_bow(4); +enddef; + +def sad_beg = +x.m := x.m + dx; +sad_bow; draw z2{left}..z4; l_att(4); +enddef; + +%%%%%%%%%%%%%% ttah-macros %%%%%%%%%%%%%%%%% + +def ttah_stroke = +x5 = x7 - dx = x2; y5 = 12dy; y7 = y2 + dy; +draw z5{down}..z7{down}; +serif(5); +enddef; + +def ttah_tail = +x2 - x6 = 5dx; y6 = top y2; +penpos2(pl,da); +fill z6--z2r--z2l{left}..z6..cycle; +enddef; + +def ttah_iso = +x.m := x.m + dx; +sad_bow; ttah_stroke; ttah_tail; +x.m := x.m + dx; +enddef; + +def ttah_beg = +sad_bow; ttah_stroke; +x.m := x.m + dx; +enddef; + +%%%%%%%%%%%%%% ain-macros %%%%%%%%%%%%%%%%% + +def ain_head = +x.m := x.m - 2dx; +lda := 0.5pa + angle(dx,dy); +penpos7(pl,pa); penpos3(0.3dy,90); +penpos2(px,lda); penpos8(px,lda); +x7 + 2dx = x3 + dx = x2 + 6dx; x8 = x2 + 0.3dx; +y7 = y2 - 3dy = y3 - 4dy; y8 = y2; z7 = 0.25[z1, z.l]; +fill z7l{z.l-z1}..z2l{up}--z2r--z8r{down}..z7r{z1-z.l}--cycle; +fill z2r{(7dx,10dy)}..z3r--z3l..z8l{(-7dx,-10dy)}--z2l--cycle; +enddef; + +def ain_bow = +lft x4 = x.l = x5 - 8dx; rt x6 = x5 + 6dx; +y5 = y6 - dy = -10dy; y4 = 0.6[y1,y5]; +penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90); +draw z1{z.l - z1}..z4{down}; +fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle; +enddef; + +def ain_top = +x2 = x1 = x.r - 3.5dx; y2 - 2dy = y1 = 2dy; +%x2 = x1 = x.m + 0.5dx; y2 - 2dy = y1 = 2dy; +x7 - x2 = x2 - x3 = 2dx; y7 = y3 = y2 - 0.5dy; +x8 = x3 - dx; y8 = y3; +draw z.r{left}..z1..z3; draw z8..z2..z7; +enddef; + +def ain_iso = +x1 = x.r - 3dx; y1 = 5dy; +ain_head; ain_bow; +enddef; + +def ain_end = +ain_top; draw z7..z1{z.l - z1}; ain_bow; +enddef; + +def ain_mid = +ain_top; draw z7..z1..z.l{left}; +enddef; + +def ain_beg = +rt x1 = x.r; y1 = 3dy; +ain_head; draw z1..z7..z.l{left}; +enddef; + +%%%%%%%%%%%%%% fah-macros %%%%%%%%%%%%%%%%% + +def fah_iso = +x.m := x.m + 4dx; +x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r; +y1 = y4 = 6dy; y2 = y3 = 8dy; +lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 6dx; +y5 = 3dy; y6 = y5 + 3dy; bot y7 = -0.5dy; +draw z2..z1..z3..z4{down}..z7..z5{up}..z6; +enddef; + +def fah_end = +x.m := x.m + 4dx; +x1 = x2 + dx = x.r - 2dx; lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l; +y5 = dy; y1 = 6.5dy; y2 = 2dy; y3 = 4dy; y4 = 6dy; +x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy; +draw z.r{left}..z2a..z1; +draw z1..z2b..tension 1.5..z5..z3{up}..z4; +enddef; + +def fah_mid = +x1 = x2 + dx = x.r - 2dx; y1 - 5dy = y2 - 0.5dy = y.r; +x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy; +draw z.r{left}..z2a..z1; draw z1..z2b..z.l{left}; +enddef; + +def fah_beg = +x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r; +y1 = y4 = 4dy; y2 = y3 = 6dy; +draw z2..z1..z3..z4{down}..z.l{left}; +enddef; + +%%%%%%%%%%%%%% qaf-macros %%%%%%%%%%%%%%%%% + +def qaf_iso = +x.m := x.m + 2dx; +x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r; +y1 = y4 = 4dy; y2 = y3 = 6dy; +lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 5dx; +y5 = dy; y6 = y5 + 3dy; y7 = -2dy; +draw z2..z1..z3..z4{down}..z7..z5{up}..z6; +enddef; + +def qaf_end = +x.m := x.m + 2dx; +x1 + 3dx = x2 + dx = x.r; +lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l; +y1 - 4dy = y2 = y.r = y3 + 2dy = y4 = y5 + 5dy; +draw z.r{left}..z2..z1{right}..z2..z5..z3{up}..z4; +enddef; + +%%%%%%%%%%%%%% kaf-macros %%%%%%%%%%%%%%%%% + +def kaf_mark (suffix $) = +x.$6 + dx = x.$7 + 2dx = x.$8 = x.$9 + 3dx = x.$; +y.$6 - 3dy = y.$7 - dy = y.$8 = y.$9 + dy = y.$; +pickup dia_pen; +draw z.$6{(-6dx,-5dy)}..z.$7..z.$8..z.$9{left}; +pickup nash_pen; +labels($6,$7,$9); +enddef; + +def kaf_beg = +x1 - 11dx = x2 = x4 - 10dx = x.l; +%x1 = x.r - dx; x2 = x.l; x4 = x.r - 2dx; +%y4 = y.r; y1 = 14dy; y2 = 9dy; z3 = .4[z2, z4]; +y4 = y.l = y1 - 13dy = y2 - 8dy; z3 = .4[z2, z4]; +bow (z1, z2, z3); +draw z3{z3 - z2}..z.l{left}; +enddef; + +%%%%%%%%%%%%%% gaf-macros %%%%%%%%%%%%%%%%% + +def gaf_iso = +x1 - 15dx = x2 - 6dx = x4 - 8dx = x6 - dx = x.l; +y1 - 13dy = y2 - 9dy = y4 = y6 - dy = y.l; +z3 = .7[z2, z4]; z5 = .5[z4, z.l]; +bow(z1, z2, z3); bow(z3, z4, z5); bow(z5, z.l, z6); +enddef; + +def gaf_iso = +x1 - 2dx = x2 + 7dx = x4 +5dx = x.r; +y1 - 13dy = y2 - 9dy = y4 = y.r; +z3 = .7[z2, z4]; bow(z1, z2, z3); +x6 = x7 = x.l + 0.6dx; y6 = y7 - 2dy = y.l + dx; +x5 = .5[x6, x4]; y5 = y.m; z13 = .5[z4, z3]; +draw z7 .. z6 .. z5{right} .. z13{z3-z13}--z3; +enddef; + +def gaf_serif = +x10 = x1; y10 = y1 + 2.5dy; x11 = x2 + 2dx; y11 = y2 + 3dy; +pickup dia_pen; +z12 = 0.1[z10,z11]; draw z12--z11; +pickup nash_pen; +enddef; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +def serpent = +x1 = x3 = x.r - 3dx; +x2 = x4 = x5 - dx = x.l + 4dx; +y1 = y2 = y4 - 4dy = y5 - 8dy = y.l; y3 = y4; +draw z5 .. z4{right} .. z3{right} .. z1{left} .. z2; +enddef; + +%%%%%%%%%%%%%% nun-macros %%%%%%%%%%%%%%%%% + +def nun_iso = +x1 + 2dx = rt x2 = x.r; x3 = x.m; lft x4 = lft x5 + 1.5dx - pl = x.l; +y1 - 8dy = y2 - 3dy = y4 - 3dy = y5 - 5dy = y3 + dy = y.r - 3dy; +draw z1..z2{down}..z3..z4{up}..z5; +enddef; + +def nun_end = +x1 = x.r - 2dx; y1 = y.r + dy; +x2 - .5dx = x1; lft x3 = lft x4 + 1.5dx - pl = x.l; +y2 - dy = y3 = y4 - 2dy = y.r - 3dy; +x5 = x.m; y5 = y3 - 4dy; +draw z1..z2{down}..z5..z3{up}..z4; r_att(1); +enddef; + +%%%%%%%%%%%%%% waw-macros %%%%%%%%%%%%%%%%% + +def waw_bow = +rah_bow; +x1 + 2.5dx = x2; y1 - 3dy = y2; +x6 = x1; y6 = y2; +fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle; +enddef; + +def waw_bar = +pickup dia_pen; +x7 = .3[x4,x5]; y7 = y5; draw z7--z5; +pickup nash_pen; +enddef; + +%%%%%%%%%%%%%% hah-macros %%%%%%%%%%%%%%%%% + +def hah_iso = +x1 = x.m - .5dx; rt x2 = x.r; lft x3 = x.l; +y1 = 7dy; y2 = y3 = 3dy; +%y1 = 6dy; y2 = y3 = 3dy; +%y1 = 6dy; y2 = y3 = 2dy; +draw z1..z2{down}..z3{up}..z1; +enddef; + +def hah_end = +x1 = x2 - dx = x4 + 2.5dx = x.m; +y1 = 7dy; y2 = y.r; y4 = 4dy; +z3 = .15[z1, z2]; z5 = .6[z1, z2]; +draw z1--z5{z5-z1}..z.r{right}; +draw z3{(-7dx,-4dy)}..z4{down}..z5{(7dx,4dy)}; +enddef; + +%%%%%%%%%%%%%% yah-macros %%%%%%%%%%%%%%%%% + +def yah_iso = +x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx; +lft x4 = lft x5 + 1.5dx - pl = x.r - 13dx; +%x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx; lft x4 = x5 - dx = x.r - 13dx; +y6 - 7dy = y1 - 3dy = y5 - 3dy = y2 - dy = y4 = y3 + 3dy = y.r - 2dy; +draw z6{up}..tension 1.5..z1{down}..tension 1.5 +..z2{down}..tension 1.5..z3..z4{up}..z5; +enddef; + +def yah_end = +x1 + 4dx = rt x2 = x.r = x3 + 5dx; +lft x4 = lft x5 + 1.5dx - pl = x.r - 11dx; +y1 + 2dy = y2 + 4dy = y4 + 4dy = y3 + 7dy = y5 + dy = y.r; +draw z.r{left}..z1{down}..tension 1.5 +..z2{down}..tension 1.5..z3..z4{up}..z5; +enddef; + +def yah_p_iso = +x10 = x4 - dx = x5; x3 = x6 = x7 + 2dx = x4 - 8dx; x8 = x4 + 4dx = x.r; +y10 = y6 = y4 - 3dy = y5 - 5dy = y.r; y3 = y.rr; y7 = y8 = y.r - 3dy; +z9 = 0.2[z10,z5]; z1 = 0.9[z6,z9]; z2 = 0.8[z3,z5]; +draw z8--z7{left}..z6..controls z1 and z2..z5..z4{(dx,-6dy)}; +enddef; + +def yah_p_end = +x8 - 7dx = x7 + 3dx = x.r; y7 = y8 = y.r - 3dy; +draw z8--z7{left}..z.r{(4dx,dy)}; +enddef; + +%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%% + + |