diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 23:38:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 23:38:21 +0000 |
commit | 215012a8d684889983ec2c0629e1c704e6853d9c (patch) | |
tree | ebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/arabtex | |
parent | 1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff) |
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/arabtex')
14 files changed, 4213 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/hcaption.mf b/Master/texmf-dist/fonts/source/public/arabtex/hcaption.mf new file mode 100644 index 00000000000..4ddaccfd0bf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/hcaption.mf @@ -0,0 +1,199 @@ +%(c) 1990,91 by Joel M. Hoffman + +%hcaption. Modernized Fancy Classical Hebrew font. Version 0.9. +%calls the file base. +%last update: 5/15/91 by JMH +% modified for use with ArabTeX: 5/25/96 Klaus Lagally +% renamed "hcbase_pc" to "hcbase": 1999/04/10 KL + +%This calls the file ``hcbase_pc'' to create a slanted, elongated Hebrew font +%for use in captions. See that file for more information. + +%Use of this material in a commercial venture of any sort requires +%permission from me. Otherwise, you are free to use this for any +%legal, non-destructive purpose. If you find this font useful, a +%contribution to charity will be most appreciated. +% +%Send comments or complaints to: +% +%BITNET: hoffman@nyuacf.BITNET <-- this will change soon +%CompuServe: 72700,402 -or- 72700.402@compuserve.com +%SNAIL: Joel M. Hoffman +% 19 Hillcrest Lane +% Rye, NY 10580 +% U.S.A. + +if unknown mode: +mode:=localfont; fi +mode_setup; +currenttransform:= currenttransform slanted 1/5; + + + +%I used large units, and then later scaled the font down to size. -JMH +%u#:=1/100in#; %ten units to a square. +u#:=1/384.16in#; %but account for magnification.(1/384.16) +%u#:=1/295.16in#; %but account for magnification and hp vs. epson + +let_height#:=42u#; %height of a standard letter. +asc_height#:=40u#; %ascender height (for lamed). +desc_height#:=30u#; %descender height(depth?). + +let_width#:=31u#; %width of a standard letter. (31u#) + +serif_height#:=5u#; %height of a standard serif.(2.5u#) +serif_width#:=2.5u#; %width of a standard serif. (2.5u#) +chupchiklength#:=6u#; + +vowel_width#:=14u#; %width of vowels under the letters. +vowel_height#:=12u#; %How tall the vowels are. +vowel_depth#:=8u#; %the space between the baseline and the vowels. + +let_fit#:=3u#; %space to left and right of letter (.5u#) +vowel_fit#:=1.4u#; %space to the left and right of vowel(1.4u#); + +thick#:=10u#; %thickness of thick lines. (7.5u#) +thin#:=3u#; %thickness of thin lines. (2u#) +hairline#:=.5u#; %VERY thin lines (.3u#) +vowel_stroke#:=4u#; %pen to use +dot#:=4u#; %diameter of dots (dagesh, vowels, etc) +squaredot#:=10u#; + +overshoot#:=4u#; %overshoot for bet, taf. + +tightness:=.68; %tightness for right_curve; (.78) + +baseline_tilt:=45; %degrees for the tilt in baseline lines. + +head_tilt#:=.7u#; %tilt for the head on the zion, etc. + +sss:=.7; %Shrink the serif's width by this amount on a shin. + %(s)hrink (s)hin's (s)erif + +define_pixels(let_height,asc_height,desc_height,let_width,head_tilt); +define_pixels(vowel_height,vowel_width,vowel_depth,vowel_height); +define_pixels(squaredot); +define_whole_pixels(let_fit,vowel_fit); +define_pixels(serif_height,serif_width,chupchiklength); +define_pixels(overshoot); +define_whole_blacker_pixels(thick,thin,dot,hairline,vowel_stroke); + +def serifpen = pickup pencircle xscaled thin yscaled thick; enddef; +%def serifpen = pickup pencircle xscaled hairline yscaled thick; enddef; +def vowelpen = pickup pensquare scaled vowel_stroke; enddef; + + +%this is from the METAFONT book: +shrink_fit:=1+hround(2let_fit#*hppp)-2let_fit; + +def normal_adjust_fit(expr left_adjustment,right_adjustment) = + l:=-hround(left_adjustment*hppp)-let_fit; + interim xoffset:=-l; + charwd:=charwd+2let_fit#+left_adjustment+right_adjustment; + r:=l+hround(charwd*hppp)-shrink_fit; + w:=r-hround(right_adjustment*hppp)-let_fit; + enddef; +let af=normal_adjust_fit; +def negate_af = af(-let_fit#,-let_fit#); enddef; +def vowel_af = af(-let_fit#+vowel_fit#,-let_fit#+vowel_fit#); enddef; +extra_endchar := extra_endchar&"r:=r+shrink_fit;w:=r-l;"; + + + + +def top_serif (suffix i,j) = %draw a serif at point z.i, using z.j + serifpen; + x.j = x.i-serif_width; y.j = y.i + serif_height; + draw (x.i+serif_width,y.i) ... z.i .. z.j; +enddef; + +def bottom_serif (suffix i,j) = %draw an inverse serif at point z.i, with z.j + serifpen; + x.j = x.i+serif_width;y.j=y.i-serif_height; + draw (x.i-serif_width,y.i) ... z.i .. z.j; +enddef; + +def roundoff_bottom (suffix i) = %round off point z.i, assuming thin lines. + fill fullcircle scaled thin shifted z.i; +enddef; + +def right_curve(suffix i,j,k,l) = %call general_right_curve +general_right_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l); +enddef; + +def left_curve(suffix i,j,k,l) = %call general_left_curve +general_left_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l); +enddef; + + +def general_right_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) = + y.j=y.i;x.j=ta*(x.l-x.i)+x.i; + x.k=x.l;y.k=tb*(y.i-y.l)+y.l; + penpos i (sa,90); + penpos j (sb,90); + penpos k (sc,0); + penpos l (sd,0); + penstroke z.l.e{up} ... {up}z.k.e ... z.j.e{left} ...{left} z.i.e; +enddef; + +def general_left_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) = + y.j=y.i;x.j=ta*(x.l-x.i)+x.i; + x.k=x.l;y.k=tb*(y.i-y.l)+y.l; + penpos i (sa,-90); + penpos j (sb,-90); + penpos k (sc,0); + penpos l (sd,0); + penstroke z.i.e{right}...{right}z.j.e...z.k.e{up}...{up}z.l.e; +enddef; + + + +def any_curve (expr adjust,thick,thin) (suffix i,j,k,l,m) = + %draw from i to m via k, using j and l, using specified values for + % withds. + z.j=(tightness/adjust)[z.i,z.k]; + z.l=(tightness/adjust)[z.m,z.k]; + penpos i (thick,angle(z.k-z.i)+90); + penpos j (thick,angle(z.k-z.i)+90); + penpos l (thin,angle(z.m-z.k)+90); + penpos m (thin,angle(z.m-z.k)+90); + penstroke z.i.e{z.k-z.i} + ... {z.k-z.i}z.j.e + ... z.l.e{z.m-z.k} + ... {z.m-z.k}z.m.e; +enddef; + +def baseline (expr a,b) = %draw a baseline + pickup penrazor scaled thick rotated baseline_tilt; + draw a --- b; +enddef; +baselinewidth:= thick*sind(baseline_tilt);%but should be thick/sind.... + +def thickpen = pickup pencircle scaled thick; enddef; +def thinpen = pickup pencircle scaled thin; enddef; +def hairlinepen = pickup pencircle scaled hairline; enddef; +def baselinepen = pickup penrazor scaled thick rotated baseline_tilt; enddef; +def dotpen = pickup pencircle scaled dot; enddef; +def squarepen = pickup penrazor scaled squaredot rotated 45; enddef; + +def dotat (expr z) = %put at dot at z +fill fullcircle scaled dot shifted z; +enddef; + +def chupchik(suffix i,j)(expr ang) = %draw a chupchik from z at angle ang +thinpen; +z.i=z.j+dir(ang)*chupchiklength; +draw z.i--z.j; +enddef; + +def mycutoff(expr a,b) = %cutoff with culling +cullit; +cutoff(a,b); +cullit; +enddef; + +%input hcbase_pc; % KL 25.05.96 +input hcbase; % 1999/04/10 KL + +end; % KL 03.11.96 + diff --git a/Master/texmf-dist/fonts/source/public/arabtex/hcbase.mf b/Master/texmf-dist/fonts/source/public/arabtex/hcbase.mf new file mode 100644 index 00000000000..1ff4cae6710 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/hcbase.mf @@ -0,0 +1,1020 @@ +%(c) 1990,91 by Joel M. Hoffman + +%base for hclassic and hcaption. Version 0.9. +%The files hclassic.mf and hcaption.mf call this file. +%updated 5/15/91 by JMH + +%This is my first MF attempt, so a lot of this may seem silly. If so, +%please let me know. Some letters still contain bugs: _ayin_, _shin_, +%and perhaps a few others. Also, the _mem_ looks terrible. As of yet, +%there are no numbers, and very litle punctuation --- only a period, comma, +%exclamation mark and a hyphen. +% +%In addition to the 26 normal and final letters, I have included a +%aleph-lamed ligature (seldom used), and a non-descending _ayin_ for use +%with vowels. There is also a full-complement of vowels, and a general +%purpose dot (for use in _shin_ vs. _sin_, among others). The files +%dots.tex and vowels.tex contain macros for using the vowels. +% +%Use of this material in a commercial venture of any sort requires +%permission from me. Otherwise, you are free to use this for any +%legal, non-destructive purpose. If you find this font useful, a +%contribution to charity will be most appreciated. +% +%Because of the bugs and the lack of punctuation, I have numbered this +%version 0.9. If you fix the bugs or have time to add the necessary +%punctuation, please let me know! +% +%Send comments or complaints to: +% +%BITNET: hoffman@nyuacf.BITNET <-- this will change soon +%CompuServe: 72700,402 -or- 72700.402@compuserve.com +% new : joel@wam.umd.edu (Joel M. Hoffman) + +%SNAIL: Joel M. Hoffman +% 19 Hillcrest Lane +% Rye, NY 10580 +% U.S.A. + + +beginchar("-",.7let_width#,let_height#,0); "hyphen"; + +af(0,0); +baselinepen; +top lft z1=(0,h); +top rt z2 =(w,h); +draw z1---z2; +labels(1,2); +showit; +endchar; + + +beginchar(",",2dot#,2dot#,dot#); "Comma"; + +af(0,0) +dotpen; +top rt z1 = (w,h); +bot lft z2 = (0,-d); +draw z1 --- z2; +labels(1,2); +showit; +endchar; + + +beginchar(":",1.4squaredot#,let_height#,0); "Colon"; + +af(0,0); +squarepen; +top rt z1 = (w/2,1.4squaredot); +bot lft z2 = (w/2,0); +draw z1---z2; +top rt z3 = (w/2,h); +bot lft z4 = (w/2,h-1.4squaredot); +draw z3---z4; +labels(1,2,3,4); +showit; +endchar; + + +beginchar("!",1.4squaredot#,let_height#,0); "Exclamation mark"; + +af(0,0); +squarepen; +top rt z1 = (w/2,1.4squaredot); +bot lft z2 = (w/2,0); +draw z1---z2; +z3=(w/2,3/5h); +z4=(w/2,h+1.4squaredot); +draw z3---z4; +labels(1,2,3,4); +showit; +endchar; + + +beginchar(".",1.4squaredot#,1.4squaredot#,0); "Period"; + +af(0,0); +squarepen; +top rt z1 = (w/2,h); +bot lft z2 = (w/2,0); +draw z1---z2; +labels (1,2); +showit; +endchar; + + +beginchar(142,let_width#,let_height#,0); "The letter Mem"; + +af(0,0); +x1=.7w;y1r=h; +penpos1(thick,90); +x2r=w;y2=h/2; +penpos2(thin,0); +z3=(.8w,baselinewidth/2); +penpos3(baselinewidth,-90); %up to here is the right part +x4=.7w;y4l=y1l; +penpos4(thin,90); +%penstroke z3e...{up}z2e{up}...z1e...z4e; +thinpen; +%z5=(.3w,.8(y1-thin)); +z5=(2serif_width,.9(y1-thin)); +lft z6=(0,0); +penpos5(thin,135);penpos6(thin,180); +penstroke z3e...{up}z2e{up}...z1e...z5;%...{down}z6; +draw z4r{left}... z5 ... {down}z6; +z7=(.25w,baselinewidth/2); +fudge:=.05w; +baseline(z7,z3+(fudge,0)); +%and now for the upper-left bit +pickup pencircle xscaled thin yscaled thick; +z8=(serif_width,h-thick/2); +bot rt z9=(x5+thin,y5-thin); +%draw z8--z9; +top_serif(8,10); +bottom_serif(8,11); +labels(1,2,3,4,5,6,7,8,9,10,11); +showit; +endchar; + + + +beginchar(124,.85let_width#,let_height#+asc_height#,0); +"The ligature aleph-lamed"; + +af(0,0); +%adopted from the aleph: +pickup pencircle xscaled thin yscaled thick; +lft z1=(0,let_height-thick/2); +z0=(thin/2,h-3serif_height);%this has to match a thin line later +z2=(0,y1-serif_height/3); +bot z3 = (w,serif_height/3); +bot z4 = (w,0); +pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2))); +%draw z0{down}... z2{z3-z2}...{z3-z2}z3...z4; +draw z1 ... z2{z3-z2}...{z3-z2}z3...z4; +z7=(4/5w,y1); +z8=(4/5w,y7-serif_height/3); +z8-z9=whatever*(z2-z3); +x9=w; +z10=(x9,y9-serif_height); +hairlinepen; +z6-z5=whatever*(z3-z2) rotated 90; +z6= 3/4[z8,z9]; +z5=whatever[z3,z2]; +draw z5---z6; +pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2))); +draw z7...z8{z9-z8}...{z9-z8}z9...z10; +%and now the lamed-like serif, from the letter lamed +thinpen; +z11=(thin/2,h); +z12=(1.5serif_width,h-serif_height); +draw z11...z12...z0{down}...z2; +labels(1,2,3,4,5,6,7,8,9,10,11,12); +showit; +endchar; + + + +beginchar(123,let_width#,let_height#,0); +"The letter Ayin (for use with vowels)"; +%n.b.: use this ayin when a vowel appears under it. + +af(0,0); +z1=(0,-d+thick/2); +z3=(.66w,thick/2); +z5=(x3+((w-thin/2)-x3)/1.8,h/1.8); +any_curve(1.3,thick,thin,1,2,3,4,5); +fill fullcircle scaled thick shifted z1; +pickup pencircle scaled (thick*2); %cheat in the next step. +mycutoff((0,y1r-sind(angle(z3-z1))*thick/2),90+baseline_tilt); +z6=(w-w/3.5,h-thick/2); +alittle:=.05h; +z8=(w,y6-alittle); +z10=z5; +any_curve(2,thin,thick,10,9,8,7,6); +top_serif(6,11); +thinpen; +z12=whatever[z1,z3]; +(y14-y12)=(x12-x14)*(y5-y3)/(x5-x3); %i.e.,(y14-y12)/(x14-x12)=-(y5-y3)/(x5-x3) +y14=2/3h;x14=.14w; +z16=(2serif_width,h-thick/2-head_tilt); +any_curve(1,thin,thin,16,15,14,13,12); +pickup pencircle xscaled thin yscaled thick; +z17=(serif_width,y16+head_tilt); +z18=(x16+serif_width,y16-head_tilt); +draw z17--z18; +top_serif(17,19); +bottom_serif(18,20); +labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);% Wow! 20. +showit; +endchar; + + + +beginchar(136,let_width#,let_height#,0); "The letter Tet"; + +af(0,0); +%first, make somthing like a zion +nw:=w/3.5; +thinpen; +z1=(nw/2,0); +z2=(nw/2,h-thick/2-head_tilt); +%draw z1---z2; that would be a zion +pickup pencircle xscaled thin yscaled thick; +lft z3 = (0,y2+head_tilt); +rt z4 = (nw,y2-head_tilt); +draw z3 -- z4; +top_serif(3,5); +bottom_serif(4,6); +%now we've got a zion +thinpen; +z7=(thin/2,.66h); +z8=(thin/2,thick/2); +draw z8---z7---z2; +z9=(0,y8); +z12=(w-thin/2,h/2); +general_left_curve(.9tightness,tightness/2,thick,thick,thin,thin,9,10,11,12); +z13=z12; +z14=(.78w,h-thick/2); +z15=(.38w,.45h); %z15=(.35w,.5h); <--- old values +penpos13(thin,0); +penpos14(thick,90);%thick +penpos15(thin,angle(z15-z14)-90); +z16r=.2[z15r,z14r]; +z16l=.2[z15l,z14l]; +z16=.5[z16l,z16r]; +%z16=.5[z15,z14]; +%penpos16(thin/2,angle(z15-z14)-90); +penstroke z13e{up}...{left}z14e...{z15-z16}z16e{z15-z15}---z15e; +%penstroke z13e{up}...{left}z14e{z15-z15}---z15e; +fill fullcircle scaled thin shifted z15; +labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); +showit; +endchar; + + + + + +beginchar(8,vowel_stroke#,0,vowel_depth#+vowel_height#); "The mark Meteg"; + +vowel_af; +vowelpen; +top z1 = (w/2,-vowel_depth); +bot z2 = (w/2,-vowel_depth-vowel_height); +draw z1--z2; +labels(1,2); +showit; +endchar; + +beginchar(9,vowel_width#,0,vowel_depth#+vowel_height#); "The vowel tzere"; + +vowel_af; +dotpen; +top lft z1 = (0,-vowel_depth); +top rt z2 = (w,-vowel_depth); +dotat(z1); +dotat(z2); +labels(1,2); +showit; +endchar; + +beginchar(0,0,0,0); "General purpose dot"; + +negate_af; +dotpen; +z1=(0,0); +dotat(z1); +labels(1); +showit; +endchar; + + + +beginchar(7,dot#,0,vowel_depth#+vowel_height#); "The vowel Shva"; + +vowel_af; +dotpen; +top z1 = (w/2,-vowel_depth); +bot z2 = (w/2,-d); +dotat(z1); +dotat(z2); +labels(1,2); +showit; +endchar; + + + +beginchar(6,vowel_width#,0,vowel_depth#+(1.5*vowel_height#)); +"The vowel Kamatz Katan"; + +vowel_af; +vowelpen; +top lft z1 = (0,-vowel_depth); +top rt z2 = (w,-vowel_depth); +draw z1---z2; +z3=(w/2,-vowel_depth-(1.5*vowel_height)+dot/2); +fill fullcircle scaled dot shifted z3; +hairlinepen; +draw z3---.5[z1,z2]; +labels(1,2,3); +showit; +endchar; + +beginchar(5,vowel_width#,0,vowel_depth#+dot#); "The vowel chiriq"; + +vowel_af; +dotpen; +bot z1 = (w/2,-d); +dotat(z1); +labels(1); +showit; +endchar; + + +beginchar(4,vowel_width#,0,vowel_depth#+1.5vowel_height#); "The vowel Qibutz"; + +vowel_af; +dotpen; +top lft z1 = (0,-vowel_depth); +bot rt z2 = (w,-d); +z3=.5[z1,z2]; +dotat(z1); +dotat(z2); +dotat(z3); +labels(1,2,3); +showit; +endchar; + + +beginchar(3,vowel_width#,0,vowel_depth#+vowel_height#); "The vowel Segol"; + +vowel_af; +dotpen; +top lft z1 = (0,-vowel_depth); +top rt z2 = (w,-vowel_depth); +bot z3 = (w/2,-vowel_depth-vowel_height); +dotat(z1); +dotat(z2); +dotat(z3); +labels(1,2,3); +showit; +endchar; + + +beginchar(2,vowel_width#,0,vowel_depth#+vowel_height#); "The vowel Kamatz"; + +vowel_af; +vowelpen; +top lft z1 = (0,-vowel_depth); +top rt z2 = (w,-vowel_depth); +draw z1---z2; +z3=(w/2,-vowel_depth-vowel_height+dot/2); +fill fullcircle scaled dot shifted z3; +hairlinepen; +draw z3---.5[z1,z2]; +labels(1,2,3); +showit; +endchar; + +beginchar(1,vowel_width#,0,vowel_depth#+vowel_stroke#); "The vowel Patach"; + +vowel_af; +vowelpen; +bot lft z1 = (0,-d); +bot rt z2 = (w,-d); +draw z1---z2; +labels(1,2); +showit; +endchar; + + + + +beginchar(149,let_width#,let_height#,desc_height#); "The final letter Tzadi"; + +af(0,0); +%first, make a final nun: +nw:=w/3.5; +z1=(serif_width,h-thick/2); +z3=(nw,h-thick/2); +z5=(nw/1.5,.8h); +any_curve(2,thin,thick,5,4,3,2,1); +fudge:=.05nw; +z6=(nw-fudge,y3); +z8=z5; +z10=(nw/2,.6h); +any_curve(1.2,thin,thin,10,9,8,7,6); +thinpen; +z11=(nw/2,-desc_height); +draw z10---z11; +top_serif(1,0); +z12=whatever[z10,z11]; +y12=.3h; +z14=(x13-serif_width,y13+head_tilt); +z15=(x13+serif_width,y13-head_tilt); +x15=w-serif_width; +y14=h-thick/2; +thinpen; +draw z12---z13; +pickup pencircle xscaled thin yscaled thick; +draw z14---z15; +bottom_serif(15,16); +top_serif(14,17); +labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); +showit; +endchar; + + +beginchar(147,let_width#,let_height#,desc_height#); "The final letter Feh"; + +af(0,0); +z1=(serif_width,h-thick/2); +z4=(w-thin/2,-d); +top_serif(1,0); +%this is from the letter pe +right_curve(1,2,3,4); +z6=z1; +z8=(0,h/2); +z10=(w/2-thick/2,h/2); +any_curve(1.5,thin,thick,6,7,8,9,10); +fill fullcircle scaled thick shifted z10; +x12=0; +y11=h/2; +chupchik(11,12,70); +labels(0,1,2,3,4,6,7,8,9,10,11,12); +showit; +endchar; + + + + + +beginchar(146,let_width#,let_height#,.3let_height#); "The letter Ayin"; +%n.b.: This is a descending ayin, for use when there's no vowel +%under it! + +af(0,0); +z1=(0,-d); +z3=(.66w,thick/2); +z5=(x3+((w-thin/2)-x3)/1.8,h/1.8); +any_curve(1.3,thick,thin,1,2,3,4,5); +fill fullcircle scaled thick shifted z1; +pickup pencircle scaled (thick*1.5); %cheat in the next step. +mycutoff((0,y1r-sind(angle(z3-z1))*thick/2),180); +z6=(w-w/3.5,h-thick/2); +alittle:=.05h; +z8=(w,y6-alittle); +z10=z5; +any_curve(2,thin,thick,10,9,8,7,6); +top_serif(6,11); +thinpen; +z12=whatever[z1,z3]; +(y14-y12)=(x12-x14)*(y5-y3)/(x5-x3); %i.e.,(y14-y12)/(x14-x12)=-(y5-y3)/(x5-x3) +y14=2/3h;x14=.14w; +z16=(2serif_width,h-thick/2-head_tilt); +any_curve(1,thin,thin,16,15,14,13,12); +pickup pencircle xscaled thin yscaled thick; +z17=(serif_width,y16+head_tilt); +z18=(x16+serif_width,y16-head_tilt); +draw z17--z18; +top_serif(17,19); +bottom_serif(18,20); +labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);% Wow! 20. +showit; +endchar; + + + + +beginchar(153,1.1let_width#,let_height#,0); "The letter Shin"; + +af(0,0); +z1=(.1w,baselinewidth/2); +z3=(.7w,baselinewidth/2); +z5=(x3+((w-thin/2)-x3)/1.8,h/1.8); +any_curve(1,thick,thin,1,2,3,4,5); +z6=(w-2*sss*serif_width,h-thick/2); +alittle:=.05h; +z8=(w,y6-alittle); +z10=z5; +any_curve(2,thin,thick,10,9,8,7,6); +top_serif(6,11); +thinpen; +z12=(x1,0); +z14=(thin/2,2/3h); +z16=(2*sss*serif_width,h-thick/2-head_tilt); +any_curve(1,thin,thin,16,15,14,13,12); +pickup pencircle xscaled thin yscaled thick; +z17=(sss*serif_width,y16+head_tilt); +z18=(x16+sss*serif_width,y16-head_tilt); +draw z17--z18; +top_serif(17,19); +bottom_serif(18,20); +z21=((x16+x6)/2,y16); +(y21-y22)=(y5-y3)/(x5-x3)*(x21-x22); +z22=whatever[z1,z3]; +hairlinepen; +draw z21---z22; +z23=(x21-sss*serif_width,y21+head_tilt); +z24=(x21+sss*serif_width,y21-head_tilt); +pickup pencircle xscaled thin yscaled thick; +draw z23--z24; +top_serif(23,25); +bottom_serif(24,26); +labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26); +showit; +endchar; + + +beginchar(151,let_width#,let_height#,desc_height#); "The letter Koof"; + +af(0,0); +z1=(serif_width,h-thick/2); +z2=(tightness*w,h-thick/2); +z3=(w-thin/2,tightness*y2); +z4=(w-thin/2,h/3); +z6=(.33w,0); +penpos1(thick,90); +penpos2(thick,90); +penpos3(thin,0); +penpos6(thin,angle(z4-z6)-90); +z5=tightness[z6,z4]; +penpos5(thin,angle(z4-z6)-90); +penstroke z6e{z4-z6}...{z4-z6}z5e...z3e{up}...z2e{left}...{left}z1e; +top_serif(1,0); +thinpen; +z7=(serif_width,(3/5)*h); +z8=(serif_width,-d); +draw z7---z8; +fill fullcircle scaled thin shifted z6; +labels(0,1,2,3,4,5,6,7,8); +showit; +endchar; + + + + +beginchar(145,let_width#,let_height#,0); "The letter Samech"; + +af(0,0); +z1=(serif_width,h-thick/2); +penpos1(thick,90); +z2=(tightness*w,y1); +penpos2(thick,90); +z3=(w-thin/2,h/2); +penpos3(thin,0); +z4=(.55w,thick/2); +penpos4(thick,-90); +penstroke z4e{right}...{up}z3e{up}...z2e{left}...{left}z1e; +top_serif(1,0); +z5=(x4,thick/2); +z7=(thin/2,thick/2); +z9=(thin/2,.8y1); +any_curve(1,thin,thick,9,8,7,6,5); +thinpen; +draw z9---z1; +labels(0,1,2,3,4,5,6,7,8,9); +showit; +endchar; + + + +beginchar(141,let_width#,let_height#,0); "The final letter Mem"; + +af(0,0); +z1=(serif_width,h-thick/2); +z4=(w-thin/2,0); +right_curve(1,2,3,4); +top_serif(1,0); +z5=(w-thin/2,thick/2); +z7=(thin/2,thick/2); % This is for a rounded lower-left +z9=(thin/2,.8y1); % corner. A right angle is better (?) +%any_curve(1,thin,thick,9,8,7,6,5); % <-- +pickup penrazor scaled thick rotated 90; +draw z5---(0,thick/2); +pickup penrazor scaled thin rotated 0; +draw z7---z9; +thinpen; +draw z9---z1; +labels(0,1,2,3,4,5,6,7,8,9,10); +showit; +endchar; + + + + +beginchar(143,let_width#/3.5,let_height#,desc_height#); "The final letter Nun"; + +af(0,0); +z1=(serif_width,h-thick/2); +z3=(w,h-thick/2); +z5=(w/1.5,.8h); % this isn't quite a yud. +any_curve(2,thin,thick,5,4,3,2,1); %now we've got a yud. (almost) +fudge:=.05w; +z6=(w-fudge,y3); +z8=z5; +z10=(w/2,.6h); +any_curve(1.2,thin,thin,10,9,8,7,6); +thinpen; +z11=(w/2,-desc_height); +draw z10---z11; +top_serif(1,0); +labels(0,1,2,3,4,5,6,7,8,9,10); +showit; +endchar; + + + +beginchar(144,let_width#/2.2,let_height#,0); "The letter Nun"; + +af(0,0); +z1=(.2w+serif_width,h-thick/2); +z4=(w-thin/2,h/2); +general_right_curve(tightness/2.2,tightness,thick,thick,thin,thin,1,2,3,4); +top_serif(1,0); +z5=(w/2,baselinewidth/2); +z8=z4; +general_left_curve(tightness/2.2,tightness, + baselinewidth,baselinewidth,thin,thin,5,6,7,8); +baseline((0,baselinewidth/2),(.75w,baselinewidth/2)); +labels(0,1,2,3,4,5,6,7,8); +showit; +endchar; + + + + +beginchar(154,.9let_width#+overshoot#,let_height#,0); "The letter Taf"; + +af(0,0); +z1=(overshoot,h-thick/2); +z4=(w-thin/2,0); +right_curve(1,2,3,4); +roundoff_bottom(4); +top_serif(1,0); +%thinpen; +%z5=(2.5*overshoot,h-baselinewidth/2); +%z6=(2*overshoot,baselinewidth/2); +%draw z5{dir -110}...{dir -80}z6; +%baseline((x6-1.5overshoot,y6),(x6+overshoot,y6)); +z11=(2.5*overshoot,h-thick/2); %this is taken from the Aleph, q.v. +z15=(x11,thick/2); +x13l=0; +x13r=thin; +y13l=y13r=.6h; +z13=.5[z13l,z13r]; +penpos11(thin,angle(z13-z11)+90); +penpos15(thick,angle(z15-z13)+90); +z14=.3[z13,z15]; +penstroke z11e{z13-z11}...z13e...{z15-z13}z15e; +fill fullcircle scaled thick shifted z15; +z16=(0,baselinewidth/2); +baseline(z16,(x15,baselinewidth/2)); +labels(0,1,2,3,4,5,6,11,12,13,14,15,16); +showit; +endchar; + +beginchar(140,.9let_width#,let_height#+asc_height#,0); "The letter Lamed"; + +af(0,0); +z1=(w/2,let_height-thick/2); +z4=(w-thin/2,0); %we'll erase some of this later +right_curve(1,2,3,4); +z5=(x4,let_height/2); +thinpen; +erase draw z4--z5; +showit; +z6=(w/3,0); +z8=z5; +z10=(x4,.75let_height); +any_curve(1,thin,thin,6,7,8,9,10); +%and now for the ascender. +z11=(thin/2,h); +z12=(2serif_width,h-serif_height); %the lamed has it's own serif, though. +z13=(thin/2,h-3serif_height); +z14=(thin/2,y1+asc_height/2); +draw z11...z12...z13{down}...{down}z14; +showit; +z15=(x14,y1+.75asc_height); +z17=(thin/2,y1); +z19=(4/5w,y1); +any_curve(1,thick,thin,19,18,17,16,15); +labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19); +fill fullcircle scaled ((thick+thin)/2) shifted z6; +showit; +endchar; + + + +beginchar(138,let_width#,let_height#,desc_height#); "The final letter Chaf"; + +af(0,0); +thickpen; +top z1 = (serif_width,let_height); +top rt z2 = (let_width,let_height); +draw z1---z2; +mycutoff(z1,180); +top_serif(1,0); +thinpen; +rt z3=(w-overshoot,h-thick/2); +rt z4=(w-overshoot,-d); +draw z3--z4; +labels(0,1,2,3,4); +showit; +endchar; + + +beginchar(135,let_width#,let_height#,0); "The letter Chet"; + +af(0,0); +thickpen; +top z1 = (serif_width,let_height); +top rt z2 = (w,h); +draw z1 --- z2; +mycutoff(z1,180); +top_serif(1,0); +thinpen; +rt z3 = (w-overshoot,h-thick/2); +rt z4 = (w-overshoot,0); +draw z3--z4; +z5=(serif_width,h-thick/2); +z6=(serif_width,0); +draw z5--z6; +labels(1,2,3,4,5,6); +showit; +endchar; + +beginchar (137,let_width#/3.5,let_height#,0); "The letter Yud"; + +af(0,0); +z1=(serif_width,h-thick/2); +z3=(w,h-thick/2); +z5=(w/2,h/2); +any_curve(2.2,thin,thick,5,4,3,2,1); +top_serif(1,0); +labels(0,1,2,3,4,5); +showit; +endchar; + + +beginchar (134,let_width#/3.5,let_height#,0); "The letter Zion"; + +af(0,0); +thinpen; +z1=(w/2,0); +z2=(w/2,h-thick/2-head_tilt); +draw z1--z2; +pickup pencircle xscaled thin yscaled thick; +lft z3 = (0,y2+head_tilt); +rt z4 = (w,y2-head_tilt); +draw z3 -- z4; +top_serif(3,5); +bottom_serif(4,6); +labels(1,2,3,4,5,6); +showit; +endchar; + + +beginchar(130,let_width#/2.2,let_height#,0); "The letter Gimel"; + +af(serif_width#,0); +z1=(serif_width,h-thick/2); +z4=((.85w)-thin/2,baselinewidth); +top_serif(1,0); +right_curve(1,2,3,4); +thinpen; +bot rt z5 = (w,0); +draw z5--z4; +baselinepen; +z6=(-serif_width/2,baselinewidth/2); +top rt z7 = z4; +baseline(z6,z7); +labels(0,1,2,3,4,5,6,7); +showit; +endchar; + + +beginchar(148,let_width#,let_height#,0); "The letter Pe"; + +af(0,0); +z1=(serif_width,h-thick/2); +penpos1(thick,90); +z2=(tightness*w,y1); +penpos2(thick,90); +z3=(w-thin/2,h/2); +penpos3(thin,0); +z4=(tightness*w,baselinewidth/2); +penpos4(baselinewidth,-90); +z5=(serif_width,baselinewidth/2); +penpos5(baselinewidth,-90); +penstroke z5e{right}...{right}z4e...{up}z3e{up}...z2e{left}...{left}z1e; +top_serif(1,0); +baseline((0,baselinewidth/2),(w/2,baselinewidth/2)); +showit; +%so far, we've got a kaf. +z6=z1; +z8=(0,h/2); +z10=(w/2-thick/2,h/2); +any_curve(1.5,thin,thick,6,7,8,9,10); +fill fullcircle scaled thick shifted z10; +%and now for the chupchik: +x12=0; +y11=h/2; +chupchik(11,12,70); +labels(0,1,2,3,4,5,6,7,8,9,10,11); +showit; +endchar; + + + +beginchar(139,let_width#,let_height#,0); "The letter Kaf"; + +af(0,0); +z1=(serif_width,h-thick/2); +penpos1(thick,90); +z2=(tightness*w,y1); +penpos2(thick,90); +z3=(w-thin/2,h/2); +penpos3(thin,0); +z4=(tightness*w,baselinewidth/2); +penpos4(baselinewidth,-90); +z5=(serif_width,baselinewidth/2); +penpos5(baselinewidth,-90); +penstroke z5e{right}...{right}z4e...{up}z3e{up}...z2e{left}...{left}z1e; +top_serif(1,0); +baseline((0,baselinewidth/2),(w/2,baselinewidth/2)); +labels(0,1,2,3,4,5); +showit; +endchar; + + + + + + + + +beginchar(128,let_width#,let_height#,0); "The letter Aleph"; + +af(0,0); +pickup pencircle xscaled thin yscaled thick; % this pen is only approx. right +lft z1 = (0,h-thick/2); +z2 = (0,y1-serif_height/3); +bot z3 = (w,serif_height/3); +bot z4 = (w,0); +pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2))); +draw z1 ... z2{z3-z2}...{z3-z2}z3...z4;%corrected z3-z3 +z7 = (4/5w,y1); %now we make the upper right squiggle. +z8 = (4/5w,y7-serif_height/3); +z8-z9 = whatever*(z2-z3); % || to the big fat line +x9 = w; +%z9 = (w,4/5h+serif_height); +z10 = (x9,y9-serif_height/3); +hairlinepen; %and z6 the upper right part. +z6-z5=whatever*(z3-z2) rotated 90;%the line is perp. to the fat line. +z6 = 3/4[z8,z9]; %And put z6 somewhere on that squiggle. +z5 = whatever[z3,z2]; %z5 is somewhere on the big fat line. +draw z5---z6; +pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2))); +draw z7 ... z8{z9-z8}...{z9-z8}z9...z10; +pickup pencircle xscaled thin yscaled thick rotated angle(z3-z2); +z11 = .2[z2,z3]; %we're in the home stretch. +z15 = (x11,thick/2); +x13l = 0; %Try to figure out a third point for the curve +x13r = thin; %A thin line. +y13l=y13r=.55h; %touching the left edge +z13=.5[z13l,z13r]; %Just like the macro for penpos. +penpos11 (thin,angle(z13-z11)+90); +penpos15 (thick,angle(z15-z13)+90); +z14=.3[z13,z15]; +penstroke z11e{z13-z11}...z13e...{z15-z13}z15e; +fill fullcircle scaled thick shifted z15; +showit; +z16=(0,baselinewidth/2); +baseline(z16,(x15,baselinewidth/2)); +labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); +showit; +endchar; + +beginchar(150,let_width#,let_height#,0); "The letter Tzadi"; + +af(0,thick#/2); +z1=(0,baselinewidth/2); +z2=(w/2,baselinewidth/2); +z4=(w,baselinewidth/2); +z6=(w/3,h/1.8); +any_curve(1,baselinewidth,thin,2,3,4,5,6); +baseline(z1,(w/(1.5),baselinewidth/2)); +hairlinepen; +z7=whatever[z6,z4]; +x7=w/2; +z8=(w-overshoot*2,h-thick/2); +draw z7--z8; +thickpen; +%it looks better sticking out a bit, but we have to set adjust_fit (af) above +z9=(w,h-thick/2); %z9=(w-thick/2,h-thick/2); <--- old version +draw z8--z9; +mycutoff((x8-cosd(angle(z8-z7))*hairline,y8),angle(z8-z7)+90); +z10=(serif_width,let_height-thick/2); +showit; +x13=x6+thin/2; %can't reuse z6 becuase z6l and z6r are already (mis)set. +y13=y6-thin/2; +right_curve(10,11,12,13); +showit; +top_serif(10,14); +labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); +showit; +endchar; + + + + +beginchar(133,let_width#/3,let_height#,0); "The letter Vav"; + +af(0,0); +z1=(serif_width,h-thick/2); +z4=(w-thin/2,0); +general_right_curve(tightness/2,tightness,thick,thick,thin,thin,1,2,3,4); +roundoff_bottom(4); +top_serif(1,0); +labels(0,1,2,3,4); +showit; +endchar; + + + +beginchar(131,let_width#,let_height#,0); "The letter Daled"; + +af(0,0); +thickpen; +top z1 = (serif_width,h); +top rt z2 = (w,h); +draw z1 --- z2; %Draw the top line +mycutoff(z1,180); %mycutoff left part so we can make serif. +top_serif(1,0); +thinpen; +rt z3 = (w-overshoot,h-thick/2); +rt z4 = (w-overshoot,0); +draw z3--z4; +labels(0,1,2,3,4); +showit; +endchar; + + +beginchar(132,let_width#,let_height#,0); "The letter Heh"; + +af(0,0); +thickpen; +top z1 = (serif_width,h); +top rt z2 = (w,h); +draw z1 --- z2; %Draw the top line +mycutoff(z1,180); %cutoff left part so we can make serif. +top_serif(1,0); +thinpen; +rt z3 = (w-overshoot,h-thick/2); +rt z4 = (w-overshoot,0); +draw z3--z4; %Up to here we have a daled +z5=(serif_width,.55h); +z6=(serif_width,0); +draw z5--z6; %Now we've drawn the stem. +labels(1,2,3,4,5,6); +showit; +endchar; + + +beginchar(129,let_width#,let_height#,0); "The letter Bet"; + +af(0,0); +z1=(serif_width,let_height-thick/2); +z4=(let_width-thin/2-overshoot,baselinewidth/2); +right_curve(1,2,3,4); +roundoff_bottom(4); +top_serif(1,0); +baseline((0,baselinewidth/2),(let_width,baselinewidth/2)); +labels(1,2,3,4); +showit; +endchar; + + + + +beginchar(152,let_width#,let_height#,0); "The letter Resh"; + +af(0,0); +z1=(serif_width,h-thick/2); +z4=(w-thin/2,0); +right_curve(1,2,3,4); +roundoff_bottom(4); +top_serif(1,0); +labels(0,1,2,3,4); +showit; +endchar; + + + +font_normal_space 30u#; +font_normal_stretch 10u#; +font_normal_shrink 20u#; + +end; % KL 25.05.9 diff --git a/Master/texmf-dist/fonts/source/public/arabtex/hclassic.mf b/Master/texmf-dist/fonts/source/public/arabtex/hclassic.mf new file mode 100644 index 00000000000..4d54e8dd0ea --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/hclassic.mf @@ -0,0 +1,208 @@ +%(c) 1990,91 by Joel M. Hoffman + +%hclassic. Modernized Classical Hebrew font. Version 0.9. +%calls the file base. +%last update: 5/15/91 by JMH +% modified for use with ArabTeX: 5/25/96 Klaus Lagally +% renamed "hcbase_pc" to "hcbase": 1999/04/10 KL + +%This calls the file ``hcbase_pc'' to create a general purpose classical +%Hebrew font. See that file for more information. + +%Use of this material in a commercial venture of any sort requires +%permission from me. Otherwise, you are free to use this for any +%legal, non-destructive purpose. If you find this font useful, a +%contribution to charity will be most appreciated. +% +%Send comments or complaints to: +% +%BITNET: hoffman@nyuacf.BITNET <-- this will change soon +%CompuServe: 72700,402 -or- 72700.402@compuserve.com +%SNAIL: Joel M. Hoffman +% 19 Hillcrest Lane +% Rye, NY 10580 +% U.S.A. + + +mode_def testing= + pixels_per_inch:=300*4; + blacker:=.1; + o_correction:=1; + fillin:=.01; + proofing:=2; + fontmaking:=0; + tracingtitles:=1; + enddef; +if unknown mode: +mode:=localfont; fi +mode_setup; + +if mode=testing: screenstrokes; fi + + +%I used large units, and then later scaled the font down to size. -JMH +%u#:=1/100in#; %ten units to a square. +u#:=1/384.16in#; %but account for magnification.(1/384.16) +%u#:=1/295.16in#;%but account for magnification and hp vs. epson + +let_height#:=35u#; %height of a standard letter. +asc_height#:=25u#; %ascender height (for lamed). +desc_height#:=16u#; %descender height(depth?). + +let_width#:=31u#; %width of a standard letter. (31u#) + +serif_height#:=3u#; %height of a standard serif.(2.5u#) +serif_width#:=2.5u#; %width of a standard serif. (2.5u#) +chupchiklength#:=6u#; + +vowel_width#:=14u#; %width of vowels under the letters. +vowel_height#:=12u#; %How tall the vowels are. +vowel_depth#:=8u#; %the space between the baseline and the vowels. + +let_fit#:=3u#; %space to left and right of letter (.5u#) +vowel_fit#:=1.4u#; %space to the left and right of vowel(1.4u#); + +thick#:=8.5u#; %thickness of thick lines. (7.5u#) +thin#:=3u#; %thickness of thin lines. (2u#) +hairline#:=1u#; %VERY thin lines (.3u#) +vowel_stroke#:=4u#; %pen to use +dot#:=4u#; %diameter of dots (dagesh, vowels, etc) +squaredot#:=10u#; + +overshoot#:=3u#; %overshoot for bet, taf. + +tightness:=.74; %tightness for right_curve; (.78) + +baseline_tilt:=60; %degrees for the tilt in baseline lines. + +head_tilt#:=.7u#; %tilt for the head on the zion, etc. + +sss:=.7; %Shrink the serif's width by this amount on a shin. + %(s)hrink (s)hin's (s)erif + +define_pixels(let_height,asc_height,desc_height,let_width,head_tilt); +define_pixels(vowel_height,vowel_width,vowel_depth,vowel_height); +define_pixels(squaredot); +define_whole_pixels(let_fit,vowel_fit); +define_pixels(serif_height,serif_width,chupchiklength); +define_pixels(overshoot); +define_whole_blacker_pixels(thick,thin,dot,hairline,vowel_stroke); + +def serifpen = pickup pencircle xscaled thin yscaled thick; enddef; +%def serifpen = pickup pencircle xscaled hairline yscaled thick; enddef; +def vowelpen = pickup pensquare scaled vowel_stroke; enddef; + + +%this is from the METAFONT book: +shrink_fit:=1+hround(2let_fit#*hppp)-2let_fit; + +def normal_adjust_fit(expr left_adjustment,right_adjustment) = + l:=-hround(left_adjustment*hppp)-let_fit; + interim xoffset:=-l; + charwd:=charwd+2let_fit#+left_adjustment+right_adjustment; + r:=l+hround(charwd*hppp)-shrink_fit; + w:=r-hround(right_adjustment*hppp)-let_fit; + enddef; +let af=normal_adjust_fit; +def negate_af = af(-let_fit#,-let_fit#); enddef; +def vowel_af = af(-let_fit#+vowel_fit#,-let_fit#+vowel_fit#); enddef; +extra_endchar := extra_endchar&"r:=r+shrink_fit;w:=r-l;"; + + + + +def top_serif (suffix i,j) = %draw a serif at point z.i, using z.j + serifpen; + x.j = x.i-serif_width; y.j = y.i + serif_height; + draw (x.i+serif_width,y.i) ... z.i .. z.j; +enddef; + +def bottom_serif (suffix i,j) = %draw an inverse serif at point z.i, with z.j + serifpen; + x.j = x.i+serif_width;y.j=y.i-serif_height; + draw (x.i-serif_width,y.i) ... z.i .. z.j; +enddef; + +def roundoff_bottom (suffix i) = %round off point z.i, assuming thin lines. + fill fullcircle scaled thin shifted z.i; +enddef; + +def right_curve(suffix i,j,k,l) = %call general_right_curve +general_right_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l); +enddef; + +def left_curve(suffix i,j,k,l) = %call general_left_curve +general_left_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l); +enddef; + + +def general_right_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) = + y.j=y.i;x.j=ta*(x.l-x.i)+x.i; + x.k=x.l;y.k=tb*(y.i-y.l)+y.l; + penpos i (sa,90); + penpos j (sb,90); + penpos k (sc,0); + penpos l (sd,0); + penstroke z.l.e{up} ... {up}z.k.e ... z.j.e{left} ...{left} z.i.e; +enddef; + +def general_left_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) = + y.j=y.i;x.j=ta*(x.l-x.i)+x.i; + x.k=x.l;y.k=tb*(y.i-y.l)+y.l; + penpos i (sa,-90); + penpos j (sb,-90); + penpos k (sc,0); + penpos l (sd,0); + penstroke z.i.e{right}...{right}z.j.e...z.k.e{up}...{up}z.l.e; +enddef; + + + +def any_curve (expr adjust,thick,thin) (suffix i,j,k,l,m) = + %draw from i to m via k, using j and l, using specified values for + % withds. + z.j=(tightness/adjust)[z.i,z.k]; + z.l=(tightness/adjust)[z.m,z.k]; + penpos i (thick,angle(z.k-z.i)+90); + penpos j (thick,angle(z.k-z.i)+90); + penpos l (thin,angle(z.m-z.k)+90); + penpos m (thin,angle(z.m-z.k)+90); + penstroke z.i.e{z.k-z.i} + ... {z.k-z.i}z.j.e + ... z.l.e{z.m-z.k} + ... {z.m-z.k}z.m.e; +enddef; + +def baseline (expr a,b) = %draw a baseline + pickup penrazor scaled thick rotated baseline_tilt; + draw a --- b; +enddef; +baselinewidth:= sind(baseline_tilt)*thick; + +def thickpen = pickup pencircle scaled thick; enddef; +def thinpen = pickup pencircle scaled thin; enddef; +def hairlinepen = pickup pencircle scaled hairline; enddef; +def baselinepen = pickup penrazor scaled thick rotated baseline_tilt; enddef; +def dotpen = pickup pencircle scaled dot; enddef; +def squarepen = pickup penrazor scaled squaredot rotated 45; enddef; + +def dotat (expr z) = %put at dot at z +fill fullcircle scaled dot shifted z; +enddef; + +def chupchik(suffix i,j)(expr ang) = %draw a chupchik from z at angle ang +thinpen; +z.i=z.j+dir(ang)*chupchiklength; +draw z.i--z.j; +enddef; + +def mycutoff(expr a,b) = %cutoff with culling +cullit; +cutoff(a,b); +cullit; +enddef; + +%input hcbase_pc; % KL 25.05.96 +input hcbase; % 1999/04/10 KL + +end; % KL 03.11.96 diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat new file mode 100644 index 00000000000..8b46df79e2d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat @@ -0,0 +1,209 @@ +% code assignments for arabic font in ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+% 15.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {15.07.97}
+
+nashcode 1 file has been read
+
+%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%%
+
+f_iso 0 isolated
+f_end 1 final
+f_mid 2 medial
+f_beg 3 initial
+
+%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%%
+
+ttah_dia 010 for urdu
+one_dot_up 011
+two_dots_down 012
+fatha 013
+kasra 013
+damma 014
+hamza 015
+madda 016
+shadda 017
+two_dots_up 020
+three_dots_up 021
+three_dots_down 022
+fathatan 023
+kasratan 023
+dammatan 024
+sukun 025
+wasla 026
+quran_alif 027
+bow_dia 030 for kurdish
+e_dia 040 for pashto
+zwarakay 040 for pashto
+one_dot_down 056 period
+hamz_s 143 for kashmiri 0674
+bars 144 for 06fd, 06fe
+roof 145 for 06c9
+h_dia 146 for urdu
+ammad 146 for pashto
+
+f_iv 122 farsi 4
+f_v 123 farsi 5
+f_vi 124 farsi 6
+
+%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+alif 100 100,101
+alif_iso alif 100
+alif_end 101 101
+
+lam_alif 102 102,103
+lam_alif_iso lam_alif 102
+lam_alif_end 103 103
+
+bah_s 110 110-113 bah without dots
+bah bah_s 110
+bah_p 114 114-117 bah with loop
+
+rah 120 120,121
+%% zay 122 122,123
+%% zhah 124 124,125
+rah_p 126 126,127 rah with loop
+
+hamza_iso 132 132
+hamzc hamza_iso 132
+
+dal 130 130,131
+dal_p 136 136,137 dal with loop
+
+gim_close 144 147 closed gim
+%% gim 140 140-143
+hhah 150 150-153
+rah_s 156 156,157 rah with two dots
+khah 160 160-163
+%% tsah 170 170-173
+rah_k 166 166,167 kurdish rah
+
+sin 200 200-203
+sin_spec 202 204,205 short form
+%% shin_spec 204 206,207 short form
+qaf_s 206 206,207 qaf without dots
+%% shin 210 210-213
+%% sin_p 214 214,215 sin with two dots
+
+sad 220 220-223
+sad_spec 222 224,225 short form
+%% dad_spec 224 226,227 short form
+%% dad 230 230-233
+
+gaf_p_spec 224 226,227 short form of gaf with loop
+gaf_p_s 230 230-233 gaf with loop
+kaf_w 234 234-237 wide kaf
+
+ttah 240 240-243
+
+%% zzah 244 244-247
+waw_r 244 244,245 waw with ring
+waw_b 246 246,247 waw with bar
+
+ain 250 250-253
+fah_s 254 254-257 fah family
+
+kaf_p_s 260 260-263 kaf with loop
+gaf_p kaf_p_s 260
+kaf_p 264 264,265 kaf with loop and mark
+kaf_p_spec 264 266,267 short form of kaf with loop
+kaf_s 270 270-273 kaf family
+kaf 274 274,275
+kaf_spec 274 276,277 short form
+gaf_s 300 300-303 gaf family
+gaf 304 304,305
+gaf_spec 304 306,307 short form
+
+lam 310 310-313
+mim 320 320-323
+mim_sind 335 335 Sindhi final mim 06fe
+
+nun 340 340,341
+nun_p 342 342,343 nun with loop
+
+hah 350 350-354
+hah_urd 353 353,354 two-eyed hah,
+ % see hah and hah_spec_lam
+hah_spec_lam 352 354 medial hah after initial lam
+hah_spec 354 355-357 final short hah;
+h_s hah_spec 354
+ % also medial hah after sin
+
+waw 360 360,361
+%% fah 362 362,363
+qaf 364 364,365
+%% vah 366 366,367
+
+yah 370 370,371
+yah_spec 371 372 ligature for final yah
+yah_h 373 373,374 yah with hook
+yah_h_spec 374 375 ligature for yah with hook
+yah_p 376 376,377 long yah
+yah_p_s 366 366,367 long yah with loop
+
+%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%
+
+block 000 000-003
+tatwil 004 004-007
+
+rquotes 042 042
+period 056 056
+lquotes 134 134
+
+space_spec 044 046,047 carrier for dots
+smspc space_spec 044
+skip 045 047 small space, initial (!)
+no_break 046 046 no space, breaks ligatures
+break 047 047 small space, medial
+
+%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+bah_spec_gim 027 031 medial bah before gim
+bah_beg_gim 030 032 initial (!) bah before gim
+g_to_mb 031 033 medial bah to gim
+bah_high 032 034,035 before sin, sad
+bah_spec 034 036,037 bah before final rah, nun
+lam_spec_low 072 074 medial lam for 'allah'
+lam_l lam_spec_low 072
+alif_spec_mim 075 076 final alif after mim
+bah_end_hah 102 104,105 bah before final hah
+bah_spec_yah 104 106,107 bah before gim, with tie;
+ % also bah before yah
+%% gim_spec 143 144,145 from above
+hhah_spec 153 154,155 from above
+khah_spec 163 164,165 from above
+%% tsah_spec 173 174,175 from above
+lam_gim 311 314 lam on gim
+lam_on_gim 312 314 initial (!) lam before gim
+lam_long 312 315 initial lam before yah
+lam_spec_yah 314 316 before final yah ?
+lam_spec_mim 314 317 initial lam before medial mim
+mim_spec_high 322 324 from above
+mim_spec 324 325-327 final; medial after lam;
+ % also before gim
+mim_spec_mim 325 330 initial mim before mim
+mim_lam_gim 327 331 medial mim between lam and gim
+lam_spec_hah 330 333 initial lam before medial hah
+mim_spec_long 332 334 medial mim after lam, vocalized
+mm_to_b 333 335 bah to medial mim
+bah_mid_mim 334 336,337 bah before medial mim
+mim_spec_alif 342 344 medial mim before alif
+er_to_s 343 345 sin to final rah
+bah_end_mim 344 346 medial bah before final mim
+bah_beg_mim 345 347 initial (!) bah before final mim
+
+%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+g_to_s bah_spec_gim sin to gim
+em_to_s bah_end_mim sin to final mim
+mh_to_s bah_end_hah sin to medial hah or final mim
+g_to_bb bah_beg_gim initial bah to gim
+em_to_bb bah_beg_mim initial bah to final mim
+
+%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.mf b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.mf new file mode 100644 index 00000000000..031b7097ce5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.mf @@ -0,0 +1,213 @@ +%%%%%%%%%%%%%%%%%%%% xarbsymb.mf %%%%%%%%%%%%%%%%%%%% +% 15.7.1998 16:19:14 +% code assignments for arabic font in ArabTeX +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +% 15.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {15.07.97} + +nashcode := oct "1"; % file has been read + +%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%% + +f_iso := oct "0"; % isolated +f_end := oct "1"; % final +f_mid := oct "2"; % medial +f_beg := oct "3"; % initial + +%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%% + +ttah_dia := oct "010"; % for urdu +one_dot_up := oct "011"; % +two_dots_down := oct "012"; % +fatha := oct "013"; % +kasra := oct "013"; % +damma := oct "014"; % +hamza := oct "015"; % +madda := oct "016"; % +shadda := oct "017"; % +two_dots_up := oct "020"; % +three_dots_up := oct "021"; % +three_dots_down := oct "022"; % +fathatan := oct "023"; % +kasratan := oct "023"; % +dammatan := oct "024"; % +sukun := oct "025"; % +wasla := oct "026"; % +quran_alif := oct "027"; % +bow_dia := oct "030"; % for kurdish +e_dia := oct "040"; % for pashto +zwarakay := oct "040"; % for pashto +one_dot_down := oct "056"; % period +hamz_s := oct "143"; % for kashmiri 0674 +bars := oct "144"; % for 06fd, 06fe +roof := oct "145"; % for 06c9 +h_dia := oct "146"; % for urdu +ammad := oct "146"; % for pashto + +f_iv := oct "122"; % farsi 4 +f_v := oct "123"; % farsi 5 +f_vi := oct "124"; % farsi 6 + +%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%% + +alif := oct "100"; % 100,101 +alif_iso := alif; % 100 +alif_end := oct "101"; % 101 + +lam_alif := oct "102"; % 102,103 +lam_alif_iso := lam_alif; % 102 +lam_alif_end := oct "103"; % 103 + +bah_s := oct "110"; % 110-113 bah without dots +bah := bah_s; % 110 +bah_p := oct "114"; % 114-117 bah with loop + +rah := oct "120"; % 120,121 +%% zay 122 122,123 +%% zhah 124 124,125 +rah_p := oct "126"; % 126,127 rah with loop + +hamza_iso := oct "132"; % 132 +hamzc := hamza_iso; % 132 + +dal := oct "130"; % 130,131 +dal_p := oct "136"; % 136,137 dal with loop + +gim_close := oct "144"; % 147 closed gim +%% gim 140 140-143 +hhah := oct "150"; % 150-153 +rah_s := oct "156"; % 156,157 rah with two dots +khah := oct "160"; % 160-163 +%% tsah 170 170-173 +rah_k := oct "166"; % 166,167 kurdish rah + +sin := oct "200"; % 200-203 +sin_spec := oct "202"; % 204,205 short form +%% shin_spec 204 206,207 short form +qaf_s := oct "206"; % 206,207 qaf without dots +%% shin 210 210-213 +%% sin_p 214 214,215 sin with two dots + +sad := oct "220"; % 220-223 +sad_spec := oct "222"; % 224,225 short form +%% dad_spec 224 226,227 short form +%% dad 230 230-233 + +gaf_p_spec := oct "224"; % 226,227 short form of gaf with loop +gaf_p_s := oct "230"; % 230-233 gaf with loop +kaf_w := oct "234"; % 234-237 wide kaf + +ttah := oct "240"; % 240-243 + +%% zzah 244 244-247 +waw_r := oct "244"; % 244,245 waw with ring +waw_b := oct "246"; % 246,247 waw with bar + +ain := oct "250"; % 250-253 +fah_s := oct "254"; % 254-257 fah family + +kaf_p_s := oct "260"; % 260-263 kaf with loop +gaf_p := kaf_p_s; % 260 +kaf_p := oct "264"; % 264,265 kaf with loop and mark +kaf_p_spec := oct "264"; % 266,267 short form of kaf with loop +kaf_s := oct "270"; % 270-273 kaf family +kaf := oct "274"; % 274,275 +kaf_spec := oct "274"; % 276,277 short form +gaf_s := oct "300"; % 300-303 gaf family +gaf := oct "304"; % 304,305 +gaf_spec := oct "304"; % 306,307 short form + +lam := oct "310"; % 310-313 +mim := oct "320"; % 320-323 +mim_sind := oct "335"; % 335 Sindhi final mim 06fe + +nun := oct "340"; % 340,341 +nun_p := oct "342"; % 342,343 nun with loop + +hah := oct "350"; % 350-354 +hah_urd := oct "353"; % 353,354 two-eyed hah, + % see hah and hah_spec_lam +hah_spec_lam := oct "352"; % 354 medial hah after initial lam +hah_spec := oct "354"; % 355-357 final short hah; +h_s := hah_spec; % 354 + % also medial hah after sin + +waw := oct "360"; % 360,361 +%% fah 362 362,363 +qaf := oct "364"; % 364,365 +%% vah 366 366,367 + +yah := oct "370"; % 370,371 +yah_spec := oct "371"; % 372 ligature for final yah +yah_h := oct "373"; % 373,374 yah with hook +yah_h_spec := oct "374"; % 375 ligature for yah with hook +yah_p := oct "376"; % 376,377 long yah +yah_p_s := oct "366"; % 366,367 long yah with loop + +%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%% + +block := oct "000"; % 000-003 +tatwil := oct "004"; % 004-007 + +rquotes := oct "042"; % 042 +period := oct "056"; % 056 +lquotes := oct "134"; % 134 + +space_spec := oct "044"; % 046,047 carrier for dots +smspc := space_spec; % 044 +skip := oct "045"; % 047 small space, initial (!) +no_break := oct "046"; % 046 no space, breaks ligatures +break := oct "047"; % 047 small space, medial + +%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%% + +bah_spec_gim := oct "027"; % 031 medial bah before gim +bah_beg_gim := oct "030"; % 032 initial (!) bah before gim +g_to_mb := oct "031"; % 033 medial bah to gim +bah_high := oct "032"; % 034,035 before sin, sad +bah_spec := oct "034"; % 036,037 bah before final rah, nun +lam_spec_low := oct "072"; % 074 medial lam for 'allah' +lam_l := lam_spec_low; % 072 +alif_spec_mim := oct "075"; % 076 final alif after mim +bah_end_hah := oct "102"; % 104,105 bah before final hah +bah_spec_yah := oct "104"; % 106,107 bah before gim, with tie; + % also bah before yah +%% gim_spec 143 144,145 from above +hhah_spec := oct "153"; % 154,155 from above +khah_spec := oct "163"; % 164,165 from above +%% tsah_spec 173 174,175 from above +lam_gim := oct "311"; % 314 lam on gim +lam_on_gim := oct "312"; % 314 initial (!) lam before gim +lam_long := oct "312"; % 315 initial lam before yah +lam_spec_yah := oct "314"; % 316 before final yah ? +lam_spec_mim := oct "314"; % 317 initial lam before medial mim +mim_spec_high := oct "322"; % 324 from above +mim_spec := oct "324"; % 325-327 final; medial after lam; + % also before gim +mim_spec_mim := oct "325"; % 330 initial mim before mim +mim_lam_gim := oct "327"; % 331 medial mim between lam and gim +lam_spec_hah := oct "330"; % 333 initial lam before medial hah +mim_spec_long := oct "332"; % 334 medial mim after lam, vocalized +mm_to_b := oct "333"; % 335 bah to medial mim +bah_mid_mim := oct "334"; % 336,337 bah before medial mim +mim_spec_alif := oct "342"; % 344 medial mim before alif +er_to_s := oct "343"; % 345 sin to final rah +bah_end_mim := oct "344"; % 346 medial bah before final mim +bah_beg_mim := oct "345"; % 347 initial (!) bah before final mim + +%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%% + +g_to_s := bah_spec_gim; % sin to gim +em_to_s := bah_end_mim; % sin to final mim +mh_to_s := bah_end_hah; % sin to medial hah or final mim +g_to_bb := bah_beg_gim; % initial bah to gim +em_to_bb := bah_beg_mim; % initial bah to final mim + +%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%% + +endinput; diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnsh.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnsh.mf new file mode 100644 index 00000000000..825b931cadf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnsh.mf @@ -0,0 +1,43 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% xnsh.mf %%%%%%%%%%%%%%%%%%%%%%%%%%% +% Extended ArabTeX NASKH Font +% collect all characters +% 31.03.98 +% 16.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +% 16.07.1998 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% abort if cm base is loaded +if unknown xnshbase: endinput fi; + +mode_setup; + +% font parameters +em# := fs#; +ex# := 8dy#; +font_slant 0; +font_normal_space .3em#; +font_normal_stretch .5em#; +font_normal_shrink 0; +font_x_height ex#; +font_quad em#; +font_extra_space 0; +font_coding_scheme "ArabTeX Naskh extended"; + +font_setup; + +input xnshchar; + +input xnshlig; + +input xnshdia; + +input xnshdig; + +input xnshspec; + +endinput; +%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnsh14.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14.mf new file mode 100644 index 00000000000..90cf63a6ed6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14.mf @@ -0,0 +1,52 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% xnsh14.mf %%%%%%%%%%%%%%%%%%%%%%%%% +% Extended Naskh font at 14.4 pt +% 31.03.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown xnshbase: input xnshbase fi + +font_identifier "XNASKH"; + +font_size 14.4pt#; + +fs# := 14.4pt#; + +% grid units +fs# = 25.4dx#; +fs# = 25.4dy#; + +% diacritics distance +dia_d := 2; + +% normal pen +px# := 1.8dy#; py# := 0.3dx#; + +pen_angle := 70; + +diag_angle = pen_angle - angle(px#,py#); + +% dot pen +dp# := 2dy#; ap := 50; + +% dot distances +dpx := 1.5; dpy := 3; +dpx := 1.2; dpy := 2.5; + +% small pen for diacritics +spx# = dx#; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +input xnsh + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +end. + +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnsh14bf.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14bf.mf new file mode 100644 index 00000000000..315620e3ca1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14bf.mf @@ -0,0 +1,51 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% xnsh14bf.mf %%%%%%%%%%%%%%%%%%%%%%% +% Extended Nash font at 14 pt, bold +% 31.03.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown xnshbase: input xnshbase fi + +font_identifier "XNASKHBF"; + +font_size 14.4pt#; + +fs# := 14.4pt#; + +% grid units +fs# = 25.4dx#; +fs# = 25.4dy#; + +% diacritics distance +dia_d := 2; + +% normal pen +px# := 2.4dy#; py# := 0.6dx#; + +pen_angle := 50; + +diag_angle = pen_angle - angle(px#,py#); + +% dot pen +dp# := 2.2dy#; ap := 50; + +% dot distances +dpx := 1.5; dpy := 3; + +% small pen for diacritics +spx# := 1.5dx#; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +input xnsh + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +end. + +%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + 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 %%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshchar.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshchar.mf new file mode 100644 index 00000000000..b5df351e5c3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshchar.mf @@ -0,0 +1,646 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% xnshchar.mf %%%%%%%%%%%%%%%%%%%%%%% +% Extended NASH Font +% normal characters +% 15.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown xnshbase: input xnshbase fi; + +%%%%%%%%%%%%%% alif %%%%%%%%%%%%%%%%% + +arabchar(alif, f_iso, 3, 15, -1); +rt x6 = x.r; bot y6=0; +x7 = x6 - dx; y7 = 13dy; +draw z6{up}..z7{up}; +serif(7); +endchar; + +arabchar(alif, f_end, 4, 15, 0); +x6 + 2dx = x7 + 3dx = x.r; +y6 = y.r; y7 = 13dy; +z8 = 0.7[z7,z6]; draw z7---z8..z.r{right}; +endchar; + +%%%%%%%%%%%%%% bah family %%%%%%%%%%%%%%%%% + +arabchar(bah_s, f_iso, 16, 6, 1); +bah_iso; +endchar; + +arabchar(bah_s, f_end, 17, 6, 1); +bah_end; +endchar; + +arabchar(bah_s, f_mid, 5, 8, 0); +x1 = x.m; y1 = y.l + 2dy; +draw z.l{right}..z1; draw z1..z.r{right}; +endchar; + +arabchar(bah_s, f_beg, 5, 8, 0); +x2 = x1 = x.l + 3dx; y1 - 4dy = y2 - dy = y.l; +draw z1{(4dx,-11dy)}..z2..z.l{left}; +endchar; + +%%%%%%%%%%%%%% bah family with loop %%%%%%%%%%%%%%%%% + +arabchar(bah_p, f_iso, 16, 6, 3); +bah_iso; +x6 = x5; top y6 = y5; p_loop(6); +endchar; + +arabchar(bah_p, f_end, 17, 6, 3); +bah_end; +x6 = x5; top y6 = y5; p_loop(6); +endchar; + +arabchar(bah_p, f_mid, 6, 8, 2); +x1 = x2 + dx = x.r - 2dx; y1 - 2dy = y2 = y.l; +draw z.l{right}..z1{up}; draw z1..z.r{right}; +p_loop(2); +endchar; + +arabchar(bah_p, f_beg, 5, 8, 2); +x2 = x1 = x.l + 3dx; y1 - 4dy = y2 - dy = y.l; +draw z1{(4dx,-11dy)}..z2..z.l{left}; +p_loop(2); +endchar; + +%%%%%%%%%%%%%% hhah %%%%%%%%%%%%%%%%% + +arabchar(hhah, f_iso, 12, 10, 10); +hhah_iso; +endchar; + +arabchar(hhah, f_end, 13, 10, 10); +hhah_end; +endchar; + +arabchar(hhah, f_mid, 13, 10, 0); +hhah_mid; +endchar; + +arabchar(hhah, f_beg, 12, 8, 0); +hhah_beg; +endchar; + +%%%%%%%%%%%%%% khah %%%%%%%%%%%%%%%%% + +arabchar(khah, f_iso, 12, 15, 10); +hhah_iso; x.m := x.m - 2dx; one_dot(10); +endchar; + +arabchar(khah, f_end, 13, 15, 10); +hhah_end; one_dot(10); +endchar; + +arabchar(khah, f_mid, 13, 15, 0); +hhah_mid; one_dot(10); +endchar; + +arabchar(khah, f_beg, 12, 15, 0); +hhah_beg; one_dot(10); +endchar; + +%%%%%%%%%%%%%% dal, dhal %%%%%%%%%%%%%%%%% + +arabchar(dal, f_iso, 7, 10, 0); +dal_iso; +endchar; + +arabchar(dal, f_end, 10, 11, 0); +dal_end; +endchar; + +%%%%%%%%%%%%%% dal with loop %%%%%%%%%%%%%%%%% + +arabchar(dal_p, f_iso, 7, 10, 0); +dal_iso; p_loop(3); +endchar; + +arabchar(dal_p, f_end, 10, 11, 1); +dal_end; +x6 = x4 + 2dx; y6 = y4; p_loop(6); +endchar; + +%%%%%%%%%%%%%% rah %%%%%%%%%%%%%%%%% + +arabchar(rah, f_iso, 8, 5, 5); +rah_iso; +endchar; + +arabchar(rah, f_end, 8, 5, 5); +rah_end; +endchar; + +%%%%%%%%%%%%%% rah with loop %%%%%%%%%%%%%%%%% + +arabchar(rah_p, f_iso, 8, 5, 8); +rah_iso; p_loop(3l); +endchar; + +arabchar(rah_p, f_end, 8, 5, 8); +rah_end; p_loop(3l); +endchar; + +%%%%%%%%%%%%%% rah with two dots %%%%%%%%%%%%%%%%% + +arabchar(rah_s, f_end, 8, 5, 6); +rah_end; +x6 = x.r; y6 = y3l; x7 = x3l; y7 = y5 + dy; +put_dot(6); put_dot(7); +endchar; + +arabchar(rah_s, f_iso, 8, 5, 6); +rah_iso; +x6 = x.r; y6 = y3l; x7 = x3l; y7 = y5 + dy; +put_dot(6); put_dot(7); +endchar; + +%%%%%%%%%%%%%% kurdish rah %%%%%%%%%%%%%%%%% + +arabchar(rah_k, f_iso, 8, 5, 10); +rah_iso; +x6 + dx = x7 + 3dx = x.r; +y6 + 3dy = y7 + 8dy = y.r; +draw z6{(dx,-2dy)}..z7; +endchar; + +arabchar(rah_k, f_end, 8, 5, 10); +rah_end; +x6 + dx = x7 + 3dx = x.r; +y6 + 3dy = y7 + 8dy = y.r; +draw z6{(dx,-2dy)}..z7; +endchar; + +%%%%%%%%%%%%%% sin %%%%%%%%%%%%%%%%% + +arabchar(sin, f_iso, 16, 6, 0); +sin_iso; +endchar; + +arabchar(sin, f_end, 18, 6, 0); +sin_end; +endchar; + +arabchar(sin, f_mid, 13, 6, 0); +sin_mid; +endchar; + +arabchar(sin, f_beg, 11, 6, 0); +sin_beg; +endchar; + +%%%%%%%%%%%%%% sad %%%%%%%%%%%%%%%%% + +arabchar(sad, f_iso, 19, 8, 0); +sad_iso; +endchar; + +arabchar(sad, f_end, 19, 8, 0); +sad_iso; draw z.r{left}..z8; +endchar; + +arabchar(sad, f_mid, 14, 8, 0); +sad_beg; draw z.r{left}..z8; +endchar; + +arabchar(sad, f_beg, 14, 8, 0); +sad_beg; +endchar; + +%%%%%%%%%%%%%% ttah %%%%%%%%%%%%%%%%% + +arabchar(ttah, f_iso, 13, 8, 0); +ttah_iso; +endchar; + +arabchar(ttah, f_end, 13, 8, 0); +ttah_iso; draw z.r{left}..z8; +endchar; + +arabchar(ttah, f_mid, 12, 8, 0); +ttah_beg; draw z.r{left}..z8; draw z2--z.l; +endchar; + +arabchar(ttah, f_beg, 11, 8, 0); +ttah_beg; draw z2--z.l; +endchar; + +%%%%%%%%%%%%%% ain, ghain %%%%%%%%%%%%%%%%% + +arabchar(ain, f_iso, 11, 11, 10); +ain_iso; +endchar; + +arabchar(ain, f_end, 10, 7, 10); +ain_end; +endchar; + +arabchar(ain, f_mid, 9, 7, 0); +ain_mid; +endchar; + +arabchar(ain, f_beg, 9, 10, 0); +ain_beg; +endchar; + +%%%%%%%%%%%%%% fah family %%%%%%%%%%%%%%%%% + +arabchar(fah_s, f_iso, 17, 11, 0); +fah_iso; +endchar; + +arabchar(fah_s, f_end, 18, 10, 0); +fah_end; +endchar; + +arabchar(fah_s, f_mid, 8, 10, 0); +fah_mid; +endchar; + +arabchar(fah_s, f_beg, 6, 10, 0); +fah_beg; +endchar; + +%%%%%%%%%%%%%% qaf %%%%%%%%%%%%%%%%% + +arabchar(qaf_s, f_iso, 12, 10, 2); +qaf_iso; +endchar; + +arabchar(qaf_s, f_end, 12, 10, 2); +qaf_end; +endchar; + +arabchar(qaf, f_iso, 12, 15, 2); +qaf_iso; two_dots(11); +endchar; + +arabchar(qaf, f_end, 12, 15, 4); +qaf_end; two_dots(10); +endchar; + +%%%%%%%%%%%%%% kaf family %%%%%%%%%%%%%%%%% + +arabchar(kaf_s, f_iso, 16, 15, 0); +gaf_iso; +endchar; + +arabchar(kaf_s, f_end, 16, 15, 0); +gaf_iso; bow(z3, z4, z.r); +endchar; + +arabchar(kaf_s, f_mid, 12, 15, 0); +kaf_beg; draw z3{z.r-z3}..z.r{right}; +endchar; + +arabchar(kaf_s, f_beg, 9, 15, 0); +kaf_beg; +endchar; + +%%%%%%%%%%%%%% kaf %%%%%%%%%%%%%%%%% + +arabchar(kaf, f_iso, 10, 15, 0); +x1 = x.r - 2dx; x2 = x.m; x3 = x.l + dx; +y1 = 12dy; y2 = y.r; y3 = y.l + dy; +x4 = x.l + 6dx; y4 = y.l + 4dy; +bow(z1, z.r, z2); bow(z2, z.l, z3); +serif(1); kaf_mark(4); +endchar; + +arabchar(kaf, f_end, 12, 15, 0); +x1 + dx = x2 = x.r - 2dx; +x4 = x.m; lft x5 = x6 - dx = x.l; +z3 = .7[z1, z2]; +y1 = 12dy; y2 = y.r; y4 = y.r; y5 = y6 - 2dy = y.l + 2dy; +x7 = x.l + 7dx; y7 = y.l + 4dy; +draw z1--z3{z2 - z1}..z4..z5..z6; +draw z3{z2 - z3}..z.r{right}; +kaf_mark(7); +endchar; + +%%%%%%%%%%%%%% kaf family with loop %%%%%%%%%%%%%%%%% + +arabchar(kaf_p_s, f_iso, 16, 15, 0); +gaf_iso; +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +endchar; + +arabchar(kaf_p_s, f_end, 16, 15, 0); +gaf_iso; bow(z3, z4, z.r); +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +endchar; + +arabchar(kaf_p_s, f_mid, 12, 15, 0); +kaf_beg; draw z3{z.r-z3}..z.r{right}; +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +endchar; + +arabchar(kaf_p_s, f_beg, 9, 15, 0); +kaf_beg; +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +endchar; + +%%%%%%%%%%%%%% kaf with loop %%%%%%%%%%%%%%%%% + +arabchar(kaf_p, f_iso, 16, 15, 0); +gaf_iso; +x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8); +z18 = .4[z1,z2]; x9 = x18; y9 = bot y18; p_loop(9); +endchar; + +arabchar(kaf_p, f_end, 16, 15, 0); +gaf_iso; bow(z3, z4, z.r); +x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8); +z18 = .4[z1,z2]; x9 = x18; y9 = bot y18; p_loop(9); +endchar; + +%%%%%%%%%%%%%% wide kaf %%%%%%%%%%%%%%%%% + +arabchar(kaf_w, f_iso, 16, 10, 0); +serpent; ttah_tail; +endchar; + +arabchar(kaf_w, f_end, 16, 10, 0); +serpent; draw z.r{left}..z1; ttah_tail; +endchar; + +arabchar(kaf_w, f_mid, 16, 10, 0); +serpent; draw z.r{left}..z1; draw z2{left}..z.l; +endchar; + +arabchar(kaf_w, f_beg, 16, 10, 0); +serpent; draw z2{left}..z.l; +endchar; + +%%%%%%%%%%%%%% gaf family %%%%%%%%%%%%%%%%% + +arabchar(gaf_s, f_iso, 16, 16, 0); +gaf_iso; gaf_serif; +endchar; + +arabchar(gaf_s, f_end, 16, 16, 0); +gaf_iso; bow(z3, z4, z.r); +gaf_serif; +endchar; + +arabchar(gaf_s, f_mid, 12, 16, 0); +kaf_beg; draw z3{z.r-z3}..z.r{right}; +gaf_serif; +endchar; + +arabchar(gaf_s, f_beg, 9, 16, 0); +kaf_beg; gaf_serif; +endchar; + +%%%%%%%%%%%%%% gaf %%%%%%%%%%%%%%%%% + +arabchar(gaf, f_iso, 16, 16, 0); +gaf_iso; gaf_serif; +x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8); +endchar; + +arabchar(gaf, f_end, 16, 16, 0); +gaf_iso; bow(z3, z4, z.r); gaf_serif; +x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8); +endchar; + +%%%%%%%%%%%%%% gaf family with loop %%%%%%%%%%%%%%%%% + +arabchar(gaf_p_s, f_iso, 16, 18, 0); +gaf_iso; +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +gaf_serif; +endchar; + +arabchar(gaf_p_s, f_end, 16, 16, 0); +gaf_iso; bow(z3, z4, z.r); +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +gaf_serif; +endchar; + +arabchar(gaf_p_s, f_mid, 12, 16, 0); +kaf_beg; draw z3{z.r-z3}..z.r{right}; +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +gaf_serif; +endchar; + +arabchar(gaf_p_s, f_beg, 9, 16, 0); +kaf_beg; +z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +gaf_serif; +endchar; + +%%%%%%%%%%%%%% lam %%%%%%%%%%%%%%%%% + +arabchar(lam, f_iso, 9, 15, 4); +rt x4 = w; lft x5 = 0; x1 = x4 - dx; x3 = x5 + dx; +y1 = 12dy; y3 = 3dy; y4 = y5 = 0; +draw z1{down}..z4{down}..z5{up}..z3; serif(1); +endchar; + +arabchar(lam, f_end, 12, 15, 5); +x1 + 3dx = x2 + 2dx = x.r; y1 - 11dy = y2 = y.r; +z8 = 0.7[z1,z2]; draw z1---z8..z.r{right}; +s_bow(1); +endchar; + +arabchar(lam, f_mid, 5, 15, 0); +x1 + 3dx = x2 + 2dx = x.r; y1 - 11dy = y2 = y.r; +z8 = 0.7[z1,z2]; draw z1---z8..z.r{right}; +bow (z1, z2, z.l); +endchar; + +arabchar(lam, f_beg, 4, 15, 0); +x1 = x2 - dx = x.l + 2dx; +y1 = 12dy; y2 = y.l; z3 = 0.8[z1, z2]; +draw z1..z3{z2 - z3}..z.l{left}; serif(1); +endchar; + +%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%% + +arabchar(mim, f_iso, 7, 10, 5); +x2 + 6dx = x4 + 4dx = x5 + 3.5dx = x6 + 4.5dx = x1; +y2 + dy = y4 + 11dy = y5 - 2.5dy = y6 - 1.5dy = y1; +z2 = z.l; bow(z4,z2,z1); bow(z6,z5,z1); +endchar; + +arabchar(mim, f_end, 10, 10, 1); +x1 + 0.5dx = x2 - 2.5dx = x3 + 2dx = x5 - 2dx = x.m; +y1 - 3dy = y2 - 0.5dy = y3 - 1.5dy = y5 - dy = y.l; +x4 = x.l + 2dx; y4 = -8dy; +draw z.r{left}..z5..z1..tension 1.5..z3; +draw z3{down}..tension 1.2..z2; +bow(z3, z.l, z4); +endchar; + +arabchar(mim, f_mid, 8, 10, 1); +x1 + 0.5dx = x2 - 2.5dx = x3 + 2dx = x5 - 2dx = x.m; +y1 - 3dy = y2 - 0.5dy = y3 - 1.5dy = y5 - dy = y.l; +draw z.r{left}..z5..z1..tension 1.5..z3 +& z3{down}..tension 1.2..z2; l_att(3); +endchar; + +arabchar(mim, f_beg, 7, 10, 0); +x1 = x2 - dx = x3 + 2dx = x.l + 5dx; +y1 - 4dy = y2 = y3 - 2dy = y.l; +draw z3..tension 2..z2..tension 1.5..z1..z3..z.l{left}; +endchar; + +arabchar(mim_sind, f_iso, 7, 10, 0); +x1 = x2 - dx = x3 + 2dx = x.l + 5dx; +y1 - 4dy = y2 = y3 - 2dy = y.l; +x4 = x.l; y4 = y.l - 2dy; +draw z3..tension 2..z2..tension 1.5..z1..z3..z4{left}; +endchar; + +%%%%%%%%%%%%%% nun %%%%%%%%%%%%%%%%% + +arabchar(nun, f_iso, 10, 8, 4); +nun_iso; +endchar; + +arabchar(nun, f_end, 11, 4, 7); +nun_end; +endchar; + +%%%%%%%%%%%%%% nun with loop %%%%%%%%%%%%%%%%% + +arabchar(nun_p, f_iso, 10, 8, 6); +nun_iso; +x6 = x3; top y6 = y3; p_loop(6); +endchar; + +arabchar(nun_p, f_end, 11, 4, 9); +nun_end; +x6 = x5; top y6 = y5; p_loop(6); +endchar; + +%%%%%%%%%%%%%% hah, tah marbuta %%%%%%%%%%%%%%%%% + +arabchar(hah, f_iso, 5, 10, 0); +hah_iso; +endchar; + +arabchar(hah, f_end, 6, 10, 0); +hah_end; +endchar; + +arabchar(hah, f_mid, 6, 10, 4); +x1 + dx = x2 = x3 = x4 + 2dx = x.m + dx; +y1 = y2 - 4dy = y3 + 4dy = y4 = y.r; +draw z1{(7dx,-4dy)}..z3..z4{up}..z2; +draw z2{(5dx,-6dy)}..z.l{left}; draw z.r--z1; +endchar; + +arabchar(hah, f_beg, 9, 10, 0); +x1 + 0.5dx = x2 = x3 + 1.5dx = x4 - 1.5dx = x.r - 5dx; +x6 + dx = x5 - 3dx = x.r; +y1 = 7dy; y2 = 2dy; y3 = y4 = 4dy; y6 = dy; +draw z1{curl 0}..tension 1.5..z6..tension 2..z2..z3..z4..z2..z.l{left}; +endchar; + +%%%%%%%%%%%%%% waw %%%%%%%%%%%%%%%%% + +arabchar(waw, f_iso, 9, 7, 6); +waw_bow; +draw z2{(-7dx,-4dy)}..z6..z1{right}..z2{(4dx,-11dy)}; +endchar; + +arabchar(waw, f_end, 10, 7, 6); +x.r := x.r - dx; waw_bow; x.r := x.r + dx; +draw z.r{left}..z6..z1{right}..z2{(4dx,-11dy)}; +endchar; + +%%%%%%%%%%%%%% waw with ring %%%%%%%%%%%%%%%%% + +arabchar(waw_r, f_iso, 9, 7, 6); +waw_bow; +draw z2{(-7dx,-4dy)}..z6..z1{right}..z2{(4dx,-11dy)}; +%x8 = x3; y8 = y5; p_loop(8); +x8 = x3; y8 = y5 + dy; p_loop(8); +endchar; + +arabchar(waw_r, f_end, 10, 7, 6); +x.r := x.r - dx; waw_bow; x.r := x.r + dx; +draw z.r{left}..z6..z1{right}..z2{(4dx,-11dy)}; +x8 = x3; y8 = y5 + .5dy; p_loop(8); +endchar; + +%%%%%%%%%%%%%% waw with bar %%%%%%%%%%%%%%%%% + +arabchar(waw_b, f_iso, 9, 7, 6); +waw_bow; +draw z2{(-7dx,-4dy)}..z6..z1{right}..z2{(4dx,-11dy)}; +waw_bar; +endchar; + +arabchar(waw_b, f_end, 10, 7, 6); +x.r := x.r - dx; waw_bow; x.r := x.r + dx; +draw z.r{left}..z6..z1{right}..z2{(4dx,-11dy)}; +waw_bar; +endchar; + +%%%%%%%%%%%%%% yah, alif_maqsura %%%%%%%%%%%%%%%%% + +arabchar(yah, f_iso, 13, 5, 5); +yah_iso; +endchar; + +arabchar(yah, f_end, 11, 5, 7); +yah_end; +endchar; + +%%%%%%%%%%%%%% long yah %%%%%%%%%%%%%%%%% + +arabchar(yah_p, f_iso, 15, 8, 3); +yah_p_iso; +endchar; + +arabchar(yah_p, f_end, 5, 8, 3); +yah_p_end; +endchar; + +arabchar(yah_p_s, f_iso, 15, 8, 5); +yah_p_iso; +x11 = x.r - 7dx; top y11 = y8; p_loop(11); +endchar; + +arabchar(yah_p_s, f_end, 5, 8, 5); +yah_p_end; +x11 = x.r - 2dx; top y11 = y8; p_loop(11); +endchar; + +%%%%%%%%%%%%%% yah with hook %%%%%%%%%%%%%%%%% + +arabchar(yah_h, f_iso, 15, 5, 5); +yah_iso; +x7 = x5 - 3dx; y7 = y5 - 5dy; draw z5--z7; +endchar; + +arabchar(yah_h, f_end, 13, 5, 7); +yah_end; +x7 = x5 - 3dx; y7 = y5 - 5dy; draw z5--z7; +endchar; + +%%%%%%%%%%%%%% hamza %%%%%%%%%%%%%%%%% + +arabchar(hamza_iso, f_iso, 5, 8, 0); +x3 = x1 + 3.5dx = x2 + 3.5dx = x7; x8 = x2 + 0.2dx +0.3py; +y3 - 3dy = y1 + dy = y2 - 2dy = y7 = y.r + dy; y8 = y2; +lda := 0.5[pa,90]; x.m = 0.5[x1,x7]; +penpos7(px,pa); penpos3(0.3dy,90); +penpos2(px,lda); penpos8(px,lda); +fill z7l{z1-z7}..z2l{up}--z2r--z8r{down}..z7r{z7-z1}--cycle; +fill z2r{(7dx,10dy)}..z3r--z3l..z8l{(-7dx,-10dy)}--z2l--cycle; +draw z1..z7; +endchar; + +endinput; + +%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshdia.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshdia.mf new file mode 100644 index 00000000000..7aa0af856f6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshdia.mf @@ -0,0 +1,145 @@ +%%%%%%%%%%%%%%%%%%%%%%% xnshdia.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Extended NASKH Font +% 15.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown xnshbase: input xnshbase fi; + +%%%%%%%%%%%%%% diacritics %%%%%%%%%%%%%%%%% + +diachar(damma, 4, 5); +z1 = z.l; x2 = 3dx; y2 = y.r; x3 = x.r; y3 = 2dy; +draw z1{dir 30}..z2{left}..z3{dir -45}; +endchar; + +diachar(fatha, 4, 2.5); +draw z.l--z.r; +endchar; + +diachar(sukun, 4, 4); +draw (.5w, y.r){dir -45}..(.5w, y.l){left}..{dir 30}(.5w, y.r); +endchar; + +diachar(dammatan, 5, 5); +x4 = x.l; x5 = x1 = dx; y4 = y5 = 3dy; y1 = y.l; +x2 - x.l = 3dx; y2 = y.r; x3 = x.r; y3 = 2dy; +draw z1{dir 30}..z2{left}..z3{dir -45}; +draw z4..z5..z1{down}; +endchar; + +diachar(fathatan, 4, 4.5); +x1 = x.r; x2 = x.l; y1 = y.r - 2dy; y2 = y.l + 2dy; +draw z.l--z1; draw z2--z.r; +endchar; + +diachar(hamza, 4, 5); +x1 = x.r; x2 = x.l; x3 = x.r - dx; +y1 = 2dy; y2 = 2.5dy; y3 = y.r - .5dy; +draw z.l--z1; +draw z3{left}..z2..z1{z1-z.l}; +endchar; + +diachar(shadda, 5, 3); +z5 - z3 = z3 - z1 = z4 - z2 = whatever * (4dx, dy); +z5 = z.r; x1 = x.l; y2 = y.l; x2 = .5[x1, x3]; +draw z1{down}..z2..z3{up}; draw z3{down}..z4..z5{up}; +endchar; + +diachar(quran_alif, 2, 5); +x1 = x.l; x2 = .5[x.l, x.r]; +y1 = y.r; y2 = y.l; +draw z1--z2; +endchar; + +diachar(wasla, 6, 2); +x1 - .4w = x2 - .7w = x4 - .7w = x5 = dx; x3 = x.r + dx; +%x1 = .4w; x2 = x4 = .7w; x3 = x.r; +y1 = y3 = h/2; y2 = y.l; y4 = y5 = y.r; +draw z5..z1..z2..z3..z4..z1; +endchar; + +diachar(madda, 6, 1.5); +x.r - x2 = x1 - x.l = .1(x.r - x.l); +y1 = y.r + dy; y3 = y2 = y.l; x3 = x.r; +draw z.l--z1..z2..z3; +endchar; + +diachar(ttah_dia, 4, 6); +z1 = z.l; x2 = x4 = dx; y2 = dy; y4 = y.l + 4dy; x3 = x.r; y3 = 2dy; +draw z1{dir 45}..z2..z3..z1{left}; draw z2..z4; +endchar; + +arabchar(one_dot_up, 0, 2, 4, -2); +one_dot(1); +endchar; + +arabchar(two_dots_up, 0, 5, 4, -2); +two_dots(1); +endchar; + +arabchar(three_dots_up, 0, 5, 7, -2); +three_dots(1); +endchar; + +arabchar(two_dots_down, 0, 5, 2, 0); +two_dots(1); +endchar; + +arabchar(three_dots_down, 0, 5, 2, 3); +three_dots_low(1); +endchar; + +diachar(bow_dia, 4, 2); +draw (x.l,y.r)..(.5w, y.l)..z.r; +endchar; + +diachar(e_dia, 4, 2.5); +draw z.l--(x.r,y.l); +endchar; + +diachar(h_dia, 4, 5); +x1 = x2 = x3 = .5w; +y1 = y.r; y2 = y.l; y3 = .2[y2,y1]; +draw z1{z.l-z1}..z2{right}..z3{left}; +endchar; + +if false: +diachar(hamz_s, 6, 4); +%x1 = x.r; y1 = dy; +%x2 = x.r - 3dx; y2 = 1.5dy; +%x3 = x.r - dx; y3 = y.r - .5dy; +x1 = x2 + 3dx = x3 + dx = x.r; +y1 + 2.5dy = y2 + 2dy = y3 + .5dy = y.r; +draw z.l{dir 60}..z1{dir 60}; +draw z3{left}..z2..z1{dir 30}; +endchar; +fi + +diachar(hamz_s, 4, 5); +x1 = x2 + 3dx = x3 + dx = x.r; +y1 + 2.5dy = y2 + 2dy = y3 + .5dy = y.r; +x4 + dx = x.l; y4 + 2dy = y.l; +draw z4{dir 60}..z1{dir 30}; +draw z3{left}..z2..z1{dir 30}; +endchar; + +diachar(bars, 3, 5); +x1 = x.l; x2 = x.r; +y1 = y.r; y2 = y.l; +draw z1--z.l; draw z2--z.r; +endchar; + +diachar(roof, 5, 3); +x1 = .5[x.l,x.r]; x2 = x.r; +y1 = y.r; y2 = y.l; +draw z.l--z1--z2; +endchar; + +endinput; +%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%% + + diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshdig.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshdig.mf new file mode 100644 index 00000000000..53cad312373 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshdig.mf @@ -0,0 +1,100 @@ +%%%%%%%%%%%%%%%%%%%%% xnshdig.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Extended NASKH Font +% 22.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown xnshbase: input xnshbase fi; + +%%%%%%%%%%%%%% digits %%%%%%%%%%%%%%%%% + +numchar("0"); +x1 + .6pl = x4 - .6pl = 5dx; +y1 - .6pl = y4 + .6pl = bot y.l + 6dy; +penpos1(2px,pa); penpos4(2px,pa); +fill z1l--z1r--z4r--z4l--cycle; +endchar; + +numchar("1"); +x1 = 4dx; x2 = 7dx; y1 - 11dy = bot y2 = bot y.l; +draw z1..z2{down}; +endchar; + +numchar("2"); +x1 = 3dx; x2 = 6dx; x3 = 8dx; +y3 - 11dy = y1 - 11dy = bot y2 = bot y.l; +%draw z3..z1{(-4dx,7dy)}; +draw z3{down}..z1; draw z1..z2{down}; +endchar; + +numchar("3"); +x1 = 2dx; x2 = 4dx; x3 = 9dx; x4 = 6dx; +y4 = y3 = y1; y1 - 11dy = bot y2 = bot y.l; +draw z3{down}..z4; draw z4{down}..z1; draw z1..z2{down}; +endchar; + +numchar("4"); +x1 = x2 - .5dx = x3 - dx = 6dx; x4 = x5 = 2dx; +y1 - 11dy = y2 - 6dy = bot y3 = y4 - 8dy = y5 - 2dy = bot y.l; +bow(z1, z4, z2); bow(z2, z5, z3); +endchar; + +numchar("5"); +x1 = x2 - 3dx = x3 + 2dx = 5dx; +y1 - 6dy = y2 = y3; y3 - 4dy = bot y.l - dy; +draw z1{(dx,-dy)}..z2..z3..z1{(dx,dy)}; +endchar; + +numchar("6"); +x1 + 4dx = x2 = x3 - 2dx = 6dx; +y1 -10dy = y2 - 10dy = bot y3 = bot y.l; +draw z1{(7dx,-4dy)}..z2; draw z2{down}..z3; +endchar; + +numchar("7"); +x1 + 4dx = x2 = x3 - 4dx = 5dx; +y1 - 10dy = y3 - 10dy = bot y2 = bot y.l; +draw z1..z2{down}; draw z3..z2{down}; +endchar; + +numchar("8"); +x1 + 4dx = x2 = x3 - 4dx = 5dx; +y2 - 10dy = bot y1 = bot y3 = bot y.l; +draw z1..z2{up}; draw z3..z2{up}; +endchar; + +numchar("9"); +x1 = x2 + 4dx = x3 + 2dx = x4 - 2dx = 6dx; +y1 - 7dy = y2 - 7dy = y3 - 11dy = bot y4 = bot y.l; +draw z1..z2..z3..z1{down}..z4; +endchar; + +%numchar(oct "122"); +numchar(f_iv); +x2 - 2dx = x3 - 6dx = x4 - 7dx = x5 - 2dx = x1 = 2dx; +%y4 +2dy = y3 - dy = y5 = y1; y1 - 11dy = bot y2 = bot y.l; +y4 +2dy = y3 - dy = y5 = y1; y1 - 9dy = bot y2 = bot y.l; +draw z3..z5..z4; draw z4{(-dx,-dy)}..z1; draw z1..z2{down}; +endchar; + +numchar(f_v); +x1 = x2 - 2dx = x3 + 3dx = 5dx; +y1 - 6dy = y2 = y3; y3 - 4dy = bot y.l - dy; +x4 = x1; y4 = y3; +draw z1{(dx,-dy)}..z2..z4; +draw z4..z3..z1{(dx,dy)}; +endchar; + +numchar(f_vi); +x2 - 2dx = x3 - 6dx = x4 - 7dx = x5 - 2dx = x6 = x1 = 2dx; +%y4 +2dy = y3 - dy = y5 = y6 + 8dy = y1; y1 - 11dy = bot y2 = bot y.l; +y4 +2dy = y3 - dy = y5 = y6 + 8dy = y1; y1 - 9dy = bot y2 = bot y.l; +draw z3..z5..z4; draw z4{(-dx,-dy)}..z6; +endchar; + +endinput; +%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshlig.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshlig.mf new file mode 100644 index 00000000000..229073966f1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshlig.mf @@ -0,0 +1,547 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%% xnshlig.mf %%%%%%%%%%%%%%%%%%%%%%%% +% Extended NASH Font +% ligatures +% 14.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown xnshbase: input xnshbase fi; + +%%%%%%%%%%%%%% alif after mim %%%%%%%%%%%%%%%%% + +arabchar(alif_spec_mim, f_end, 3, 15, 0); % mim-alif +x1 + dx = x2 + .5dx = x.r; y1 = 13dy; y2 = y.r + .5dy; +bow(z1, z2, z.r); serif(1); +endchar; + +%%%%%%%%%%%%%% bah_high %%%%%%%%%%%%%%%%% + +arabchar(bah_high, f_beg, 5, 10, 0); +x.m := x.m + 0.5dx; +x1 - dx = x2 = x.m; y1 = y.l; y2 = y.l + 6dy; +bow(z2, z1, z.l); +endchar; + +arabchar(bah_high, f_mid, 6, 10, 0); +x5 - dx = x6 = x.m; +y6 = good.y (y.l + 6dy); y5 = y.l; +z4 = .5[z6, z5]; +l_att(4); bow(z6, z5, z.r); +endchar; + +%%%%%%%%%%%%%% bah before nun %%%%%%%%%%%%%%%%% + +arabchar(bah_spec, f_beg, 5, 10, 0); +x4 - 2dx = x.ll; y4 - 2dy = y.ll; +draw z4{(dx,-2dy)}..z.ll{left}; +r_con(ll); % measure for raising final nun, rah +endchar; + +arabchar(bah_spec, f_mid, 5, 10, 0); +x6 = x.l + 2dx; y6 = good.y (y.ll + 2dy); +draw z6..z.ll{left}; draw z6{down}..z.r{right}; +%r_con(ll); +endchar; + +%%%%%%%%%%%%%% bah over yah maqsoura %%%%%%%%%%%%%%%%% + +%arabchar(bah_spec_yah, f_beg, 5, 10, 7); +arabchar(bah_spec_yah, f_beg, 5, 10, 2); +x1 - 2dx = x2 - 3dx = x.l; y1 - 6dy = y2 - dy = y.l; +draw z1{(4dx,-7dy)}..z2..z.l{(-6dx,-dy)}; +endchar; + +arabchar(bah_spec_yah, f_mid, 4, 8, 2); +z1 = 0.5[z.ll, z.rr]; x2 = x.l; x4 = x.r; +y2 = y4 = y.r + dy; +draw z.ll..controls z1 and z2..z4; +r_con(4); +endchar; + +%%%%%%%%%%%%%% bah over middle mim %%%%%%%%%%%%%%%%% + +arabchar(bah_mid_mim, f_beg, 6, 10, 0); +x1 = x.rr - dx; y1 = y.rr + dy; +draw z.l{(-dx,dy)}..z1{(dx,-dy)}; +endchar; + +arabchar(bah_mid_mim, f_mid, 6, 10, 0); +x1 = x.rr - 3dx; y1 = y.rr + 2dy; +draw z.l{(-dx,dy)}..z1..z.rr{right}; +r_con(rr); +endchar; + +%%%%%%%%%%%%%% bah over end mim %%%%%%%%%%%%%%%%% + +arabchar(bah_beg_mim, f_mid, 5, 8, 0); +x1 = x.l + 7dx; y1 = y.r + dy; +draw z.l{(dx,dy)}..z1{(dx,-6dy)}; +endchar; + +arabchar(bah_end_mim, f_mid, 8, 8, 4); +x1 = x.r - 2dx; y1 = y.r + 2dy; +draw z.l{(dx,dy)}..z1{(dx,-6dy)}..z.r{right}; +endchar; + +%%%%%%%%%%%%%% bah over gim %%%%%%%%%%%%%%%%% + +%arabchar(bah_spec_gim, f_mid, 12, 8, 7); +arabchar(bah_spec_gim, f_mid, 12, 8, 0); +x5 = x4 = x.r - 4dx; y4 - 4dy = y5 = y.r; +z3 = 0.2[z5,z4]; z1 = 0.9[z1,z3]; z2 = 0.8[z.ll,z4]; +z6 = 0.5[z4, z.rr]; x7 = x5; x8 = x.r; y7 = y8 = y.r + dy; +draw z.l..controls z1 and z2..z4..controls z6 and z7..z8; +r_con(8); +endchar; + +arabchar(bah_beg_gim, f_mid, 8, 8, 6); +x4 - dx = x5 = x.r; y4 - 3dy = y5 - 5dy = y.r; +z3 = 0.2[z.r,z5]; z1 = 0.9[z.l,z3]; z2 = 0.8[z.ll,z5]; +draw z.l..controls z1 and z2..z5..z4{(dx,-6dy)}; +endchar; + +%%%%%%%%%%%%%% bah over hah %%%%%%%%%%%%%%%%% + +arabchar(bah_end_hah, f_mid, 6, 8, 5); +x1 = x.r - 2dx; y1 = y.r + 2dy; +draw z.l{(dx,dy)}..z1..z.r{right}; +endchar; + +arabchar(bah_end_hah, f_beg, 6, 8, 0); +x1 + 2dx = x.r; y1 = y.r; +draw z.l{(4dx,7dy)}..z1; +endchar; + +%%%%%%%%%%%%%% hhah-spec-macros %%%%%%%%%%%%%%%%% + +def hhah_spec_bar = +x1 = x2 - 9dx = x.rr; +y1 = y.rr; y2 = 0.5[y.r, y.rr]; +draw z1{right}..z2{right}; +r_con(rr); +enddef; + +def hhah_spec_beg = +hhah_spec_bar; draw z2{left}..z.l{left}; +enddef; + +def hhah_spec_iso = +hhah_spec_bar; hhah_bow; +enddef; + +if false: +%%%%%%%%%%%%%% gim ligature %%%%%%%%%%%%%%%%% + +arabchar(gim_spec, f_end, 4, 10, 10); +hhah_spec_iso; +x.m := x.r + 2dx; +one_dot(-3); +endchar; + +arabchar(gim_spec, f_mid, 2, 10, 5); +hhah_spec_beg; +x.m := x.r + 4dx; +one_dot(-4); +endchar; +fi + +%%%%%%%%%%%%%% hhah ligature %%%%%%%%%%%%%%%%% + +arabchar(hhah_spec, f_end, 4, 10, 10); +hhah_spec_iso; +endchar; + +%arabchar(hhah_spec, f_mid, 2, 10, 5); +arabchar(hhah_spec, f_mid, 2, 10, 0); +hhah_spec_beg; +endchar; + +%%%%%%%%%%%%%% khah ligature %%%%%%%%%%%%%%%%% + +arabchar(khah_spec, f_end, 4, 15, 10); +hhah_spec_iso; +x.m := x.r; +one_dot(10); +endchar; + +%arabchar(khah_spec, f_mid, 2, 15, 5); +arabchar(khah_spec, f_mid, 2, 15, 0); +hhah_spec_beg; +x.m := x.r; +one_dot(10); +endchar; + +if false: +%%%%%%%%%%%%%% tsah ligature %%%%%%%%%%%%%%%%% + +arabchar(tsah_spec, f_end, 4, 10, 10); +hhah_spec_iso; +x.m := x.r + 3dx; +three_dots_low(-3); +endchar; + +arabchar(tsah_spec, f_mid, 2, 10, 8); +hhah_spec_beg; +x.m := x.r + 4dx; +three_dots_low(-4); +endchar; +fi + +%%%%%%%%%%%%%% closed hhah %%%%%%%%%%%%%%%%% + +arabchar(gim_close, f_beg, 12, 9, 0); % closed hhah +%arabchar(gim_close, f_beg, 12, 8, 0); % closed hhah +x1 = x2 - 9dx = x.l + 2dx; y1 - 4dy = y2 - 2dy = y.r; +x3 = x7 = x1 + 7dx; y3 - 2dy = y7 = y.r; +x4 = x1 - 2dx; y4 = y.l + 2dy; +draw z4..z1{(8dx,3dy)}..z2{right}; draw z2{left}..z.l{left}; +endchar; + +%arabchar(gim_close, f_mid, 13, 8, 1); % closed hhah +%hhah_mid; draw z3{down}..z.r{right}; +%endchar; + +%%%%%%%%%%%%%% sin_spec-macros %%%%%%%%%%%%%%%%% + +def sin_spec_wave = +z5 - z.l = z3 - z2; +x3 - x2 = 2(x3 - x5) = 2dx; x.m := x2; +y5 = y2 - 2dy = y.l; +draw z3..z5..z2; draw z2{down}..z.l{left}; +enddef; + +def sin_spec_beg = +sin_spec_wave; +enddef; + +def sin_spec_mid = +sin_spec_wave; r_att(3); +enddef; + +def sin_spec_mid = +sin_spec_wave; draw z3{down}..z.r{right}; +enddef; + +%%%%%%%%%%%%%% short sin %%%%%%%%%%%%%%%%% + +arabchar(sin_spec, f_mid, 6, 6, 0); +sin_spec_mid; +endchar; + +arabchar(sin_spec, f_beg, 4, 6, 0); +sin_spec_beg; +endchar; + +if false: +%%%%%%%%%%%%%% short shin %%%%%%%%%%%%%%%%% + +arabchar(shin_spec, f_mid, 6, 15, 0); +sin_spec_mid; three_dots(8); +endchar; + +arabchar(shin_spec, f_beg, 4, 15, 0); +sin_spec_beg; three_dots(8); +endchar; +fi + +%%%%%%%%%%%%%% sad_spec-macros %%%%%%%%%%%%%%%%% + +def sad_spec_beg = +x.m := x.m - dx; +x1 = x2 - dx = x3 - 9dx = x.l; +y1 + dy = y2 = y3 - 3dy = y.l; +x8 = x2 + 3.5dx; y8 = y2 + 0.5dy; +draw z1{(5dx,6dy)}..z3{(4dx,-7dy)}..tension 2..z.l{left}; +enddef; + +%%%%%%%%%%%%%% short sad %%%%%%%%%%%%%%%%% + +%arabchar(sad_spec, f_mid, 10, 10, 0); +arabchar(sad_spec, f_mid, 10, 8, 0); +sad_spec_beg; draw z.r{left}..z8; +endchar; + +%arabchar(sad_spec, f_beg, 10, 10, 0); +arabchar(sad_spec, f_beg, 10, 8, 0); +sad_spec_beg; +endchar; + +if false: +%%%%%%%%%%%%%% short dad %%%%%%%%%%%%%%%%% + +arabchar(dad_spec, f_mid, 10, 10, 0); +sad_spec_beg; draw z.r{left}..z8; +one_dot(8); +endchar; + +arabchar(dad_spec, f_beg, 10, 10, 0); +sad_spec_beg; one_dot(8); +endchar; +fi + +%%%%%%%%%%%%%% kaf_spec-macros %%%%%%%%%%%%%%%%% + +def kaf_spec_beg = +x1 = x.l + 9dx; x2 = x.l - 3.5dx; x4 = x.l + 8dx; +%x1 = x.r - dx; x2 = x.l - 3.5dx; 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; + +%%%%%%%%%%%%%% short kaf %%%%%%%%%%%%%%%%% + +arabchar(kaf_spec, f_mid, 10, 15, 0); +kaf_spec_beg; draw z3{z.r-z3}..z.r{right}; +endchar; + +arabchar(kaf_spec, f_beg, 7, 15, 0); +%arabchar(kaf_spec, f_beg, 10, 15, 0); +kaf_spec_beg; +endchar; + +%%%%%%%%%%%%%% short gaf %%%%%%%%%%%%%%%%% + +%arabchar(gaf_spec, f_mid, 10, 16, 0); +arabchar(gaf_spec, f_mid, 10, 17, 0); +kaf_spec_beg; draw z3{z.r-z3}..z.r{right}; +gaf_serif; +endchar; + +%arabchar(gaf_spec, f_beg, 7, 16, 0); +arabchar(gaf_spec, f_beg, 7, 17, 0); +kaf_spec_beg; +gaf_serif; +endchar; + +%%%%%%%%%%%%%% short kaf with loop %%%%%%%%%%%%%%%%% + +arabchar(kaf_p_spec, f_mid, 10, 15, 0); +kaf_spec_beg; draw z3{z.r-z3}..z.r{right}; +z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +endchar; + +arabchar(kaf_p_spec, f_beg, 7, 15, 0); +kaf_spec_beg; +z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +endchar; + +%%%%%%%%%%%%%% short gaf with loop %%%%%%%%%%%%%%%%% + +%arabchar(gaf_p_spec, f_mid, 10, 15, 0); +arabchar(gaf_p_spec, f_mid, 10, 16, 0); +kaf_spec_beg; draw z3{z.r-z3}..z.r{right}; +z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +gaf_serif; +endchar; + +%arabchar(gaf_p_spec, f_beg, 7, 15, 0); +arabchar(gaf_p_spec, f_beg, 7, 16, 0); +kaf_spec_beg; +z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9); +gaf_serif; +endchar; + +%%%%%%%%%%%%%% lam_alif %%%%%%%%%%%%%%%%% + +def lam_alif_serif(suffix $) = +x.$sa = x.$sb - 2dx = x.$; +y.$sa + dy = y.$sb + 3dy = y.$; +draw z.$--z.$sa--z.$sb; +enddef; + +arabchar(lam_alif_end, 0, 12, 15, 0); +x1 + 3dx = x2 + 2dx = x.r; +x3 + 8dx = x4 = x5 + 8dx = x6 + 2dx = x1; +y1 = 12dy; y2 = y3 + 2dy = y.r; y4 = y6 + dy = 4dy; y5 = 11dy; +z7 = 0.7[z1,z2]; draw z1---z7..z.r{right}; +bow(z1, z4, z3); +draw z5{z4 - z5}..z6; lam_alif_serif(5); +endchar; + +arabchar(lam_alif_iso, 0, 11, 15, 0); +x1 + 2dx = x4 + 2dx = x3 + 6dx = x2 = x5 + 10dx = x.r; +y1 = 13dy; y4 = 3dy; y3 = y2 = y.r; y5 = 12dy; +bow(z1, z4, z3); +bow(z5, z2, z3); +serif(1); lam_alif_serif(5); +endchar; + +%%%%%%%%%%%%%% lam in 'allah' %%%%%%%%%%%%%%%%% + +arabchar(lam_spec_low, f_mid, 5, 11, 0); +x1 + .5dx = x2 - .5dx = x.m; y1 = 9dy; y2 = y.r; +bow (z1, z2, z.r); bow (z1, z2, z.l); +endchar; + +%%%%%%%%%%%%%% lam over yah %%%%%%%%%%%%%%%%% + +%arabchar(lam_spec_yah, f_mid, 7, 15, 7); +arabchar(lam_spec_yah, f_mid, 7, 15, 0); +x4 = x.r; x1 = x2 - dx = x.r - 3dx; +y1 - 11dy = y2 = y4 = y.r + 2dy; +z3 = .2[z2, z1]; +bow (z1, z3, z.l); draw z1---z3..z4{right}; +r_con (4); +endchar; + +%arabchar(lam_on_gim, f_mid, 6, 10, 5); +arabchar(lam_on_gim, f_mid, 6, 12, 0); +x1 = x2 - dx = x.l + 4dx; +y1 = 9dy; y2 = y.l; z3 = 0.7[z1, z2]; +draw z1..z3{z2 - z3}..z.l{left}; serif(1); +endchar; + +%arabchar(lam_long, f_beg, 6, 15, 3); +arabchar(lam_long, f_beg, 6, 15, 0); +x1 = x2 - dx = x.l + 4dx; +y1 = 12dy; y2 = y.l; z3 = 0.8[z1, z2]; +draw z1..z3{z2 - z3}..z.l{left}; serif(1); +endchar; + +%%%%%%%%%%%%%% lam over mim and hah %%%%%%%%%%%%%%%%% + +arabchar(lam_spec_mim, f_beg, 3, 15, 0); +x1 + dx = x2 + .5dx = x.l; y1 = 13dy; y2 = y.l + .5dy; +bow(z1, z2, z.l); serif(1); +endchar; + +arabchar(lam_spec_hah, f_beg, 3, 10, 0); +x1 + dx = x2 + .5dx = x.l; y1 - 8dy = y2 - .5dy = y.l; +bow(z1, z2, z.l); serif(1); +endchar; + +%%%%%%%%%%%%%% mim ligatures %%%%%%%%%%%%%%%%% + +%arabchar(mim_spec, f_end, 5, 5, 13); % final mim connected from above +arabchar(mim_spec, f_end, 5, 5, 8); % final mim connected from above +x2 + 6dx = x4 + 4dx = x5 + 3.5dx = x6 + 4.5dx = x1; +y2 + dy = y4 + 11dy = y5 - 2.5dy = y6 - 1.5dy = y1; +z5 = z.r; bow(z4,z2,z1); draw z5--z1; +endchar; + +arabchar(mim_spec, f_mid, 4, 10, 0); % medial mim after lam +%x2 = x.r = x1 - 2dx; y1 = y.r = y2 - dy; +x2 = x.r - dx = x1 - 2dx; y1 = y.r = y2 - dy; +draw z.l{right}..z2..z1; +r_con(2); +endchar; + +arabchar(mim_spec, f_beg, 8, 10, 5); % mim over gim +x2 = x1 = x3 + 2dx = x.l + 7dx; +y2 = y1 - 2dy = y3 - dy = y.l + 2dy; +draw z3..z1..z2{left}..z.l; +endchar; + +arabchar(mim_spec_mim, f_beg, 6, 10, 0); % mim over mim +x2 = x1 = x3 + 2dx = x.l + 3dx; +y2 = y1 - 2dy = y3 - dy = y.l + 5dy; +draw z3..z1..z2{left}..z.l{(dx,-dy)}; +endchar; + +arabchar(mim_spec_high, f_mid, 5, 10, 0); % mim after gim etc +x1 = x2 - dx = x3 + dx = x.rr; +y1 = y.rr; y2 = y3 - 3dy = y.l; +%x1 = x2 - dx = x3 + 2dx = x.rr; +%y1 = y.rr; y2 = y3 - 2dy = y.l; +draw z3..tension 2..z2..tension 2..z1..z3..z.l{left}; +%draw z3..tension 2..z2..tension 1.5..z1..z3..z.l{left}; +r_con(1); +endchar; + +%arabchar(mim_spec_long, f_mid, 9, 10, 0); % long mim after lam +arabchar(mim_spec_long, f_mid, 9, 5, 0); % long mim after lam +%x2 = x.r = x1 - 2dx; y1 = y.r = y2 - dy; +x2 = x.r - dx = x1 - 2dx; y1 = y.r = y2 - dy; +draw z.l{right}..z2..z1; +r_con(2); +endchar; + +arabchar(mim_spec_alif, f_mid, 8, 8, 3); % mim before alif +x1 = x2 = x.l + 5dx; y1 + 3dy = y2 - 3dy = y.r; +z3 = .5[z2, z.r]; +draw z.l{(4dx,-7dy)}..z1{(7dx,-4dy)}; +draw z1{(-7dx,4dy)}..z2{right}..z3{(dx,-6dy)}..z.r{right}; +endchar; + +arabchar(mim_lam_gim, f_mid, 6, 10, 2); % lam_mim over gim +x1 - 2dx = x2 = x.r; y1 + dy = y2 = y.r + 2dy; +draw z.l{(dx,dy)}..z2..z1; +r_con(2); +endchar; + +%%%%%%%%%%%%%% hah ligature %%%%%%%%%%%%%%%%% + +arabchar(hah_spec, f_end, 5, 8, 0); +x1 + 2dx = x.r; y1 - 2dy = y.r; +draw z.r{left}..z1..z.l{(-dx,-dy)}; +endchar; + +%arabchar(hah_spec, f_mid, 6, 5, 6); % sharp medial hah +arabchar(hah_spec, f_mid, 6, 8, 6); % sharp medial hah +x1 = x2 = x3 + 1.5dx = x.r - 2dx; +y1 + 6dy = y2 - 2dy = y.r; y3 = y1 + 2dy; +draw z1{up}..z.r{(dx,dy)}; +bow (z1, z3, z2); l_att(2); +endchar; + +arabchar(hah_spec, f_beg, 5, 8, 2); +x1 = x.r; x2 - 2dx = x.l; +y1 = y2 = y.r + 2dy; +draw z1..z2{up}; draw z2{down}..z.l{left}; +endchar; + +arabchar(hah_spec_lam, f_mid, 5, 15, 0); % hah after lam +x2 = x3 + 1.5dx = x4 - 1.5dx = x.l + 3dx; +x6 + dx = x5 - 3dx = x.l + 8dx; +y2 = 2dy; y3 = y4 = 4dy; y6 = dy; +draw z.rr{curl 0}..tension 1.5..z6..tension 2..z2..z3..z4..z2..z.l{left}; +r_con(rr); +endchar; + +%%%%%%%%%%%%%% yah after sin %%%%%%%%%%%%%%%%% + +arabchar(yah_spec, f_end, 9, 5, 7); % final yah connected from above +x.m := x.m + dx; x2 = x.r + 4dx; +x3 = x.m; lft x4 = lft x5 + 1.5dx - pl = x.l; +y2 - dy = y4 = y5 - 3dy = y3 + 3dy = -3dy; +draw z.r{(8dx,-3dy)}..tension 1.5 +..z2{down}..tension 1.5..z3{left}..z4{up}..z5; +endchar; + +arabchar(yah_h_spec, f_end, 11, 5, 7); % final yah with hook +x.m := x.m + 2dx; x2 = x.r + 4dx; +x3 = x.m; lft x4 = x5 - dx = x.r - 9dx; +y2 - dy = y4 = y5 - 3dy = y3 + 3dy = -3dy; +draw z.r{(8dx,-3dy)}..tension 1.5 +..z2{down}..tension 1.5..z3{left}..z4{up}..z5; +x7 = x5 - 3dx; y7 = y5 - 5dy; draw z5--z7; +endchar; + +%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%% + +%arabchar(mm_to_b, f_mid, 6, 5, 6); +%x1 = x.rr - 3dx; y1 = y.r + 2dy; +%x2 = x.l; y.l - y2 = y.rr - y.r; +%draw z2{(-dx,dy)}..z1..z.r{right}; +%r_con(rr); +%endchar; + +arabchar(er_to_s, f_mid, 5, 5, 0); +x1 + dx = x.l; x5 = x.r - 2dx; +y1 - .5dy = y5 - 2dy = y.r; +draw z1--z5; draw z5..z.r{right}; +endchar; + +arabchar(g_to_mb, f_mid, 8, 8, 6); +z3 = 0.2[z.r,z.rr]; z1 = 0.9[z1,z3]; z2 = 0.8[z.ll,z.rr]; +draw z.l..controls z1 and z2..z.rr; +endchar; + +endinput; +%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%% + diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshspec.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshspec.mf new file mode 100644 index 00000000000..97095b08d36 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshspec.mf @@ -0,0 +1,202 @@ +%%%%%%%%%%%%%%%%%%%%%%% xnshspec.mf %%%%%%%%%%%%%%%%%%%%%%%%%%% +% Extended NASH Font +% special characters +% 15.07.98 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +if unknown xnshbase: input xnshbase fi; + +%%%%%%%%%%%%%% very special characters %%%%%%%%%%%%%%%%% + +arabchar(space_spec, f_beg, 5, 8, 6); +endchar; + +arabchar(space_spec, f_mid, 0, 8, 6); +endchar; + +arabchar(tatwil, f_iso, 5, 5, 0); +draw z.r--z.l; +endchar; + +arabchar(tatwil, f_beg, 5, 5, 0); +draw z.r--z.l; +endchar; + +arabchar(tatwil, f_mid, 5, 5, 0); +draw z.r--z.l; +endchar; + +arabchar(tatwil, f_end, 5, 5, 0); +draw z.r--z.l; +endchar; + +arabchar(block, f_iso, 10, 12, 0); % block isoliert +x1 = x2 = x.l + dx; x3 = x4 = x.r - dx; +y1 = y4 = 10dy; y2 = y3 = 0; +fill z1--z2--z3--z4--cycle; +endchar; + +arabchar(block, f_beg, 10, 12, 0); % block initial +x1 = x2 = x.l + dx; x3 = x4 = x.m; +y1 = y4 = 10dy; y2 = y3 = 0; +fill z1--z2--z3--z4--cycle; +endchar; + +arabchar(block, f_mid, 10, 12, 0); % block medial +x1 = x2 = x.l + dx; x3 = x4 = x.r - dx; +y1 = y4 = 5dy; y2 = y3 = 0; +fill z1--z2--z3--z4--cycle; +endchar; + +arabchar(block, f_end, 10, 12, 0); % block final +x1 = x2 = x.m; x3 = x4 = x.r - dx; +%x1 = x2 = x.l + dx; x3 = x4 = x.r - dx; +y1 = y4 = 10dy; y2 = y3 = 0; +fill z1--z2--z3--z4--cycle; +endchar; + +%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%% + +arabchar(".", 0, 2, 2, -1.5); +x1 = x.m; y1 = dy; +put_dot(1); +endchar; + +arabchar(",", 0, 4, 10, 0); +x1 = x2 = x.m; y1 = 6dy; y2 = dy; +%x1 = x2 = x.m; y1 = 10dy; y2 = 5dy; +draw z1{(-dx,-dy)}..z2{right}; +endchar; + +arabchar(";", 0, 4, 10, 0); +x1 = x2 = x.m; y1 = 10dy; y2 = 5dy; +draw z1{(-dx,-dy)}..z2{right}; +one_dot(1); +endchar; + +arabchar(":", 0, 4, 10, 0); +x1 = x2 = x.m; y1 = dy; y2 = 6dy; +put_dot(1); put_dot(2); +endchar; + +arabchar("!", 0, 4, 15, 0); +x1 = x2 = x3 = x.m; y1 = dy; y2 = 4dy; y3 = 13dy; +%x2a - x2 = x2 - x2b = .5dx; x3a - x3 = x3 - x3b = dx; +x2a - x2 = x2 - x2b = .3px; x3a - x3 = x3 - x3b = .6px; +y2a = y2b = y2; y3a = y3b = y3; +put_dot(1); +fill z2a--z3a--z3b--z2b--cycle; +endchar; + +arabchar("?", 0, 7, 15, 0); +x1 - 2dx = x3 + 2dx = x2 = x4 = x.m; +y1 = y3 = 10dy; y2 = 13dy; y4 = 4dy; +draw z1..z2{left}..z3..z4{(-4dx,-11dy)}; +one_dot(1); +endchar; + +arabchar("$", 0, 6, 10, 5); +%x1 = x2 = x.m; x3 = x5 = x.m + 2dx; x4 = x6 = x.m - 2dx; +x1 = x2 = x.m; x3 = x5 = x.m + 3dx; x4 = x6 = x.m - 3dx; +y1 = 8dy; y2 = -6dy; y3 = y4 = 3dy; y5 = y6 = -dy; +draw z1--z2; draw z3..z4..z5..z6; +endchar; + +arabchar("*", 0, 8, 10, 0); +x1 = x2 = x.m; x3 = x5 = x.m + 3dx; x4 = x6 = x.m - 3dx; +y1 = 7dy; y3 = y6 = 5dy; y4 = y5 = dy; y2 = -dy; +draw z1--z2; draw z3--z4; draw z5--z6; +endchar; + +arabchar("%", 0, 14, 10, 5); +x1 = x5 = x6 = x.m + 4dx; +x2 = x3 = x4 = x.m - 4dx; +y1 = y3 = 8dy; y4 = 3dy; y5 = dy; y2 = y6 = -4dy; +draw z3..z4..cycle; draw z5..z6..cycle; +pickup dia_pen; draw z1--z2; +endchar; + +arabchar("/", 0, 10, 10, 5); +pickup dia_pen; +x1 + 4dx = x2 - 4dx = x.m; +y2 = 9dy; y1 = -6dy; +draw z1--z2; +endchar; + +arabchar(rquotes, 0, 8, 10, 5); % `` +x1 = x3 = x2 + 2dx = x.m - dx; +x4 = x6 = x5 + 2dx = x.m + 3dx; +y1 = y4 = 5dy; y2 = y5 = dy; y3 = y6 = -3dy; +draw z1..z2..z3; draw z4..z5..z6; +endchar; + +arabchar(lquotes, 0, 8, 10, 5); % '' +x1 = x3 = x2 - 2dx = x.m + dx; +x4 = x6 = x5 - 2dx = x.m - 3dx; +y1 = y4 = 5dy; y2 = y5 = dy; y3 = y6 = -3dy; +draw z1..z2..z3; draw z4..z5..z6; +endchar; + +arabchar("=", 0, 16, 10, 0); +x5 = x7 = x.m - 7dx; x6 = x8 = x.m + 7dx; +y5 = y6 = 3dy; y7 = y8 = -dy; +draw z5--z6; draw z7--z8; +endchar; + +arabchar("+", 0, 10, 10, 0); +x1 = x2 = x3 + 4dx = x4 - 4dx = x.m; +y1 = 5dy; y2 = -3dy; y3 = y4 = dy; +draw z1--z2; draw z3--z4; +endchar; + +arabchar("-", 0, 8, 10, 0); +x1 + 3dx = x2 - 3dx = x.m; +y1 = y2 = dy; +%y1 = y2 = 4dy; +draw z1--z2; +endchar; + +arabchar("#", 0, 16, 10, 5); +x1 = x4 = x3 - 4dx = x2 + 4dx = x.m; +x5 = x7 = x.m - 7dx; x6 = x8 = x.m + 7dx; +y1 = y3 = 7dy; y2 = y4 = -7dy; +y5 = y6 = 2dy; y7 = y8 = -2dy; +draw z5--z6; draw z7--z8; +pickup dia_pen; +draw z1--z2; draw z3--z4; +endchar; + +arabchar("(", 0, 8, 10, 5); +x1 = x2 = x.m + 3dx; x3 = x.m - 3dx; +top y1 = 10dy; bot y2 = -7dy; y3 = .5[y1,y2]; +%top y1 = 15dy; bot y2 = -7dy; y3 = 4dy; +draw z1..z3..z2; +endchar; + +arabchar(")", 0, 8, 10, 5); +x1 = x2 = x.m - 3dx; x3 = x.m + 3dx; +top y1 = 10dy; bot y2 = -7dy; y3 = .5[y1,y2]; +draw z1..z3..z2; +endchar; + +arabchar("[", 0, 6, 10, 5); +x1 = x2 = x.m + 2dx; x3 = x4 = x.m - 2dx; +y1 = y3 = 9dy; y2 = y4 = -6dy; +%y1 = y3 = 14dy; y2 = y4 = -6dy; +draw z1--z3--z4--z2; +endchar; + +arabchar("]", 0, 6, 10, 5); +x1 = x2 = x.m + 2dx; x3 = x4 = x.m - 2dx; +y1 = y3 = 9dy; y2 = y4 = -6dy; +draw z3--z1--z2--z4; +endchar; + +endinput; +%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%% + + |