summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-07-09 22:04:04 +0000
committerKarl Berry <karl@freefriends.org>2006-07-09 22:04:04 +0000
commita8e832c98d4866efe1f10573edb04a0609ffec10 (patch)
tree19262ce3fe45b7123dee0ee5a2e1bd5582ef8633 /Master/texmf-dist/fonts/source
parenta7436def27eb5d5cf587b24638c458c835fc33e2 (diff)
arabtex update, now real ctan2tds.pl support
git-svn-id: svn://tug.org/texlive/trunk@1788 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source')
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/arabsymb.mf177
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nash.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nash14.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nash14bf.mf51
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nashbase.mf541
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nashchar.mf762
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nashdia.mf119
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nashdig.mf74
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nashlig.mf508
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/nashspec.mf206
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat209
11 files changed, 2528 insertions, 209 deletions
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/arabsymb.mf b/Master/texmf-dist/fonts/source/public/arabtex/arabsymb.mf
new file mode 100644
index 00000000000..9ce55b36a56
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/arabsymb.mf
@@ -0,0 +1,177 @@
+%%%%%%%%%%%%%%%%%%%% arabsymb.mf %%%%%%%%%%%%%%%%%%%%
+% 18.10.1998 22:33:10
+% code assignments for arabic font in ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+% 21.05.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
+h_dia := oct "146"; % for urdu
+ammad := oct "146"; % for pashto
+
+%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+hamza_iso := oct "132"; % 132 040 040
+
+alif := oct "100"; % 100,101
+alif_iso := alif; % 100
+alif_end := oct "101"; %
+bah_s := oct "110"; % 110-113
+gim := oct "140"; % 140-143
+hhah := oct "150"; % 150-153
+khah := oct "160"; % 160-163
+tsah := oct "170"; % 170-173
+dal := oct "130"; % 130,131
+rah := oct "120"; % 120,121
+zay := oct "122"; % 122,123
+zhah := oct "124"; % 124,125
+sin := oct "200"; % 200-203
+shin := oct "210"; % 210-213
+sad := oct "220"; % 220-223
+dad := oct "230"; % 230-233
+kaf_w := oct "234"; % 234-237 wide kaf
+ttah := oct "240"; % 240-243
+zzah := oct "244"; % 244-247
+ain := oct "250"; % 250-253
+fah_s := oct "254"; % 254-257 fah family
+fah := oct "362"; % 362,363
+qaf := oct "364"; % 364,365
+vah := oct "366"; % 366,367
+kaf_s := oct "270"; % 270-273 kaf family
+kaf := oct "274"; % 274,275
+gaf_s := oct "300"; % 300-303 gaf family
+gaf := oct "304"; % 304,305
+lam := oct "310"; % 310-313
+mim := oct "320"; % 320-323
+nun := oct "340"; % 340,341
+hah := oct "350"; % 350-354
+waw := oct "360"; % 360,361
+yah := oct "370"; % 370,371
+
+bah := bah_s; %
+
+%%%%%%%%%%%%%%%%%% 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
+no_break := oct "046"; % 046 no space but breaks ligatures
+break := oct "047"; % 047 small space, breaks connection
+
+%%%%%%%%%%%%%%%%%% 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'
+alif_spec_mim := oct "075"; % 076 final alif after mim
+lam_alif := oct "102"; % 102,103
+lam_alif_iso := lam_alif; % 102
+lam_alif_end := oct "103"; %
+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 := oct "143"; % 144,145 from above
+gim_close := oct "144"; % 146,147 closed gim
+hhah_spec := oct "153"; % 154,155 from above
+khah_spec := oct "163"; % 164,165 from above
+rah_k := oct "166"; % 166,167 kurdish rah
+tsah_spec := oct "173"; % 174,175 from above
+sin_spec := oct "202"; % 204,205 short form
+shin_spec := oct "204"; % 206,207 short form
+sad_spec := oct "222"; % 224,225 short form
+dad_spec := oct "224"; % 226,227 short form
+kaf_spec := oct "274"; % 276,277 short form
+gaf_spec := oct "304"; % 306,307 short form
+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
+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;
+% also medial hah after sin
+yah_spec := oct "371"; % 372 ligature for final yah
+
+%%%%%%%%%%%%%%%%%% 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
+
+%%%%%%%%%%%%%%%%%% others %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+bah_p := oct "114"; % 114-117 bah family with loop
+rah_p := oct "126"; % 126,127 rah with loop
+dal_p := oct "136"; % 136,137 dal with loop
+rah_s := oct "156"; % 156,157 rah with two dots
+sin_p := oct "214"; % 214,215 sin with two dots
+kaf_p_s := oct "260"; % 260-263 kaf family with loop
+kaf_p := oct "264"; % 264,265 kaf with loop and mark
+kaf_p_spec := oct "264"; % 266,267 short form of kaf with loop
+nun_p := oct "342"; % 342,343 nun with loop
+yah_h := oct "373"; % 373,374 yah with hook
+yah_h_spec := oct "374"; % 375 ligature for final yah with hook
+yah_p := oct "376"; % 376,377 long yah
+
+%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nash.mf b/Master/texmf-dist/fonts/source/public/arabtex/nash.mf
new file mode 100644
index 00000000000..72af764a6f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nash.mf
@@ -0,0 +1,38 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% nash.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ArabTeX NASKH Font
+% collect all characters
+% 27.01.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% abort if cm base is loaded
+if unknown nashbase: endinput fi;
+
+mode_setup;
+
+% font parameters
+em# := 25.4dx#;
+ex# := 8dy#;
+font_slant 0;
+font_normal_space .3em#;
+font_normal_stretch .5em#;
+font_normal_shrink .1em#;
+font_x_height ex#;
+font_quad em#;
+font_extra_space 0;
+font_coding_scheme "ArabTeX Naskh";
+
+font_setup;
+
+input nashchar;
+
+input nashlig;
+
+input nashdia;
+
+input nashdig;
+
+input nashspec;
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nash14.mf b/Master/texmf-dist/fonts/source/public/arabtex/nash14.mf
new file mode 100644
index 00000000000..1ce0496e719
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nash14.mf
@@ -0,0 +1,52 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% nash14.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Naskh font at 14.4 pt
+% 27.01.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown nashbase: input nashbase fi
+
+font_identifier "NASKH";
+
+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 nash
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nash14bf.mf b/Master/texmf-dist/fonts/source/public/arabtex/nash14bf.mf
new file mode 100644
index 00000000000..2e951299e5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nash14bf.mf
@@ -0,0 +1,51 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% nash14bf.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Nash font at 14 pt, bold
+% 08.04.92
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown nashbase: input nashbase fi
+
+font_identifier "NASHBF";
+
+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 nash
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nashbase.mf b/Master/texmf-dist/fonts/source/public/arabtex/nashbase.mf
new file mode 100644
index 00000000000..9126ec6e9cf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nashbase.mf
@@ -0,0 +1,541 @@
+%%%%%%%%%%%%%%%%%%%%%% nashbase.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% base file for NASH
+% 21.05.97
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (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 arabsymb fi;
+
+nashbase := 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;
+
+%%%%%%%%%%%%%% 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;
+
+%%%%%%%%%%%%%% 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;
+
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nashchar.mf b/Master/texmf-dist/fonts/source/public/arabtex/nashchar.mf
new file mode 100644
index 00000000000..94e653bcf0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nashchar.mf
@@ -0,0 +1,762 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% nashchar.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NASH Font
+% normal characters
+% 21.05.97
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown nashbase: input nashbase 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;
+
+%%%%%%%%%%%%%% gim %%%%%%%%%%%%%%%%%
+
+arabchar(gim, f_iso, 12, 10, 10);
+hhah_iso; one_dot(-3);
+endchar;
+
+arabchar(gim, f_end, 13, 10, 10);
+hhah_end; one_dot(-3);
+endchar;
+
+arabchar(gim, f_mid, 13, 10, 4);
+hhah_mid; one_dot(-4);
+endchar;
+
+arabchar(gim, f_beg, 12, 10, 4);
+hhah_beg; x.m := x.m + dx; one_dot(-4);
+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, 10, 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;
+
+%%%%%%%%%%%%%% tsah %%%%%%%%%%%%%%%%%
+
+arabchar(tsah, f_iso, 12, 10, 10);
+hhah_iso; three_dots_low(-2);
+endchar;
+
+arabchar(tsah, f_end, 13, 10, 10);
+hhah_end; three_dots_low(-2);
+endchar;
+
+arabchar(tsah, f_mid, 13, 10, 7);
+hhah_mid; x.m := x.m + dx; three_dots_low(-4);
+endchar;
+
+arabchar(tsah, f_beg, 12, 10, 7);
+hhah_beg; x.m := x.m + dx; three_dots_low(-4);
+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;
+
+%%%%%%%%%%%%%% zay %%%%%%%%%%%%%%%%%
+
+arabchar(zay, f_iso, 8, 10, 5);
+rah_iso; one_dot(7);
+endchar;
+
+arabchar(zay, f_end, 8, 10, 5);
+rah_end; one_dot(5);
+endchar;
+
+%%%%%%%%%%%%%% zhah %%%%%%%%%%%%%%%%%
+
+arabchar(zhah, f_iso, 8, 12, 5);
+rah_iso; three_dots(6);
+endchar;
+
+arabchar(zhah, f_end, 8, 12, 5);
+rah_end; three_dots(5);
+endchar;
+
+%%%%%%%%%%%%%% sin %%%%%%%%%%%%%%%%%
+
+arabchar(sin, f_iso, 16, 6, 5);
+sin_iso;
+endchar;
+
+arabchar(sin, f_end, 18, 6, 5);
+sin_end;
+endchar;
+
+arabchar(sin, f_mid, 13, 6, 0);
+sin_mid;
+endchar;
+
+arabchar(sin, f_beg, 11, 6, 0);
+sin_beg;
+endchar;
+
+%%%%%%%%%%%%%% sin with two dots %%%%%%%%%%%%%%%%%
+
+arabchar(sin_p, f_iso, 16, 15, 5);
+sin_iso; one_dot(8);
+x6 = x.m; y6 + 4dy = y.r; put_dot(6);
+endchar;
+
+arabchar(sin_p, f_end, 18, 15, 5);
+sin_end; one_dot(8);
+x6 = x.m; y6 + 4dy = y.r; put_dot(6);
+endchar;
+
+%%%%%%%%%%%%%% shin %%%%%%%%%%%%%%%%%
+
+arabchar(shin, f_iso, 16, 15, 5);
+sin_iso; three_dots(8);
+endchar;
+
+arabchar(shin, f_end, 18, 15, 5);
+sin_end; three_dots(8);
+endchar;
+
+arabchar(shin, f_mid, 13, 15, 0);
+sin_mid; three_dots(8);
+endchar;
+
+arabchar(shin, f_beg, 11, 15, 0);
+sin_beg; three_dots(8);
+endchar;
+
+%%%%%%%%%%%%%% sad %%%%%%%%%%%%%%%%%
+
+arabchar(sad, f_iso, 19, 10, 5);
+sad_iso;
+endchar;
+
+arabchar(sad, f_end, 19, 10, 5);
+sad_iso; draw z.r{left}..z8;
+endchar;
+
+arabchar(sad, f_mid, 14, 10, 0);
+sad_beg; draw z.r{left}..z8;
+endchar;
+
+arabchar(sad, f_beg, 14, 10, 0);
+sad_beg;
+endchar;
+
+%%%%%%%%%%%%%% dad %%%%%%%%%%%%%%%%%
+
+arabchar(dad, f_iso, 19, 10, 5);
+sad_iso; one_dot(8);
+endchar;
+
+arabchar(dad, f_end, 19, 10, 5);
+sad_iso; draw z.r{left}..z8;
+one_dot(8);
+endchar;
+
+arabchar(dad, f_mid, 14, 10, 0);
+sad_beg; draw z.r{left}..z8;
+one_dot(8);
+endchar;
+
+arabchar(dad, f_beg, 14, 10, 0);
+sad_beg; one_dot(8);
+endchar;
+
+%%%%%%%%%%%%%% ttah %%%%%%%%%%%%%%%%%
+
+arabchar(ttah, f_iso, 13, 15, 0);
+ttah_iso;
+endchar;
+
+arabchar(ttah, f_end, 13, 15, 0);
+ttah_iso; draw z.r{left}..z8;
+endchar;
+
+arabchar(ttah, f_mid, 12, 15, 0);
+ttah_beg; draw z.r{left}..z8; draw z2--z.l;
+endchar;
+
+arabchar(ttah, f_beg, 11, 15, 0);
+ttah_beg; draw z2--z.l;
+endchar;
+
+%%%%%%%%%%%%%% zzah %%%%%%%%%%%%%%%%%
+
+arabchar(zzah, f_iso, 13, 15, 0);
+ttah_iso; one_dot(8);
+endchar;
+
+arabchar(zzah, f_end, 13, 15, 0);
+ttah_iso; draw z.r{left}..z8;
+one_dot(8);
+endchar;
+
+arabchar(zzah, f_mid, 12, 15, 0);
+ttah_beg; draw z.r{left}..z8; draw z2--z.l;
+one_dot(8);
+endchar;
+
+arabchar(zzah, f_beg, 11, 15, 0);
+ttah_beg; draw z2--z.l;
+one_dot(8);
+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, 5);
+ain_beg;
+endchar;
+
+%%%%%%%%%%%%%% fah family %%%%%%%%%%%%%%%%%
+
+arabchar(fah_s, f_iso, 17, 10, 0);
+fah_iso;
+endchar;
+
+arabchar(fah_s, f_end, 18, 10, 0);
+fah_end;
+endchar;
+
+arabchar(fah_s, f_mid, 8, 9, 2);
+fah_mid;
+endchar;
+
+arabchar(fah_s, f_beg, 6, 10, 5);
+fah_beg;
+endchar;
+
+%%%%%%%%%%%%%% fah %%%%%%%%%%%%%%%%%
+
+arabchar(fah, f_iso, 17, 15, 0);
+fah_iso; one_dot(12);
+endchar;
+
+arabchar(fah, f_end, 18, 15, 0);
+fah_end; one_dot(10);
+endchar;
+
+%%%%%%%%%%%%%% qaf %%%%%%%%%%%%%%%%%
+
+arabchar(qaf, f_iso, 12, 15, 2);
+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;
+two_dots(11);
+endchar;
+
+arabchar(qaf, f_end, 12, 15, 4);
+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;
+two_dots(10);
+endchar;
+
+%%%%%%%%%%%%%% vah %%%%%%%%%%%%%%%%%
+
+arabchar(vah, f_iso, 17, 15, 0);
+fah_iso; three_dots(12);
+endchar;
+
+arabchar(vah, f_end, 18, 15, 2);
+fah_end; three_dots(10);
+endchar;
+
+%%%%%%%%%%%%%% kaf family %%%%%%%%%%%%%%%%%
+
+%arabchar(kaf_s, f_iso, 13, 15, 0);
+arabchar(kaf_s, f_iso, 16, 15, 0);
+gaf_iso;
+endchar;
+
+%arabchar(kaf_s, f_end, 13, 15, 0);
+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, 13, 15, 0);
+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, 13, 15, 0);
+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, 13, 15, 0);
+arabchar(kaf_p, f_iso, 16, 15, 0);
+gaf_iso;
+x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8);
+%x8 = x.l + 5dx; 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, 13, 15, 0);
+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);
+%x8 = x.l + 5dx; 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, 13, 15, 0);
+arabchar(gaf_s, f_iso, 16, 15, 0);
+gaf_iso; gaf_serif;
+endchar;
+
+%arabchar(gaf_s, f_end, 13, 15, 0);
+arabchar(gaf_s, f_end, 16, 15, 0);
+gaf_iso; bow(z3, z4, z.r);
+gaf_serif;
+endchar;
+
+arabchar(gaf_s, f_mid, 12, 15, 0);
+kaf_beg; draw z3{z.r-z3}..z.r{right};
+gaf_serif;
+endchar;
+
+arabchar(gaf_s, f_beg, 9, 15, 0);
+kaf_beg; gaf_serif;
+endchar;
+
+%%%%%%%%%%%%%% gaf %%%%%%%%%%%%%%%%%
+
+%arabchar(gaf, f_iso, 13, 15, 0);
+arabchar(gaf, f_iso, 16, 15, 0);
+gaf_iso; gaf_serif;
+x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8);
+%x8 = x.l + 5dx; y8 = y.l + 4dy; kaf_mark(8);
+endchar;
+
+%arabchar(gaf, f_end, 13, 15, 0);
+arabchar(gaf, f_end, 16, 15, 0);
+gaf_iso; bow(z3, z4, z.r);
+gaf_serif;
+x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8);
+%x8 = x.l + 5dx; y8 = y.l + 4dy; kaf_mark(8);
+endchar;
+
+%%%%%%%%%%%%%% lam %%%%%%%%%%%%%%%%%
+
+arabchar(lam, f_iso, 9, 15, 3);
+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, 7);
+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);
+%arabchar(mim, f_iso, 7, 10, 8);
+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;
+
+%%%%%%%%%%%%%% nun %%%%%%%%%%%%%%%%%
+
+arabchar(nun, f_iso, 10, 8, 3);
+nun_iso;
+endchar;
+
+arabchar(nun, f_end, 11, 4, 6);
+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;
+
+%%%%%%%%%%%%%% 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);
+x10 = x4 - dx = x5; x3 = x6 = x7 + 2dx = x4 - 8dx; x8 = x4 + 4dx = x.r;
+%x10 = x4 - dx = x5; x3 = x6 = x7 = x4 - 8dx; x8 = x4 + 5dx = 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)};
+endchar;
+
+arabchar(yah_p, f_end, 5, 8, 6);
+x8 - 7dx = x7 + 3dx = x.r; y7 = y8 = y.r - 3dy;
+draw z8--z7{left}..z.r{(4dx,dy)};
+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;
+
+%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.l + 2dx;
+%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;
+
+%%%%%%%%%%%%%% 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/nashdia.mf b/Master/texmf-dist/fonts/source/public/arabtex/nashdia.mf
new file mode 100644
index 00000000000..e4616d77110
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nashdia.mf
@@ -0,0 +1,119 @@
+%%%%%%%%%%%%%%%%%%%%%%% nashdia.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NASH Font
+% 14.03.92
+% 03.11.96
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown nashbase: input nashbase 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.l)..(.5w, y.r)..cycle;
+%draw (.5w, y.r){dir -35}..(.5w, y.l){left}..{dir 35}(.5w, y.r);
+%draw (.5w, y.r){dir -45}..(.5w, y.l){left}..{dir 45}(.5w, y.r);
+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 = .25(x.r - x.l);
+%y1 = y.r; y2 = y.l;
+%draw z.l..z1..z2..z.r;
+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, 5);
+z1 = z.l; x2 = x4 = dx; y2 = dy; y4 = y.r; 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;
+
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nashdig.mf b/Master/texmf-dist/fonts/source/public/arabtex/nashdig.mf
new file mode 100644
index 00000000000..5c2b195f6ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nashdig.mf
@@ -0,0 +1,74 @@
+%%%%%%%%%%%%%%%%%%%%% nashdig.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NASH Font
+% 07.04.92
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown nashbase: input nashbase 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;
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nashlig.mf b/Master/texmf-dist/fonts/source/public/arabtex/nashlig.mf
new file mode 100644
index 00000000000..60d6a8ba804
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nashlig.mf
@@ -0,0 +1,508 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% nashlig.mf %%%%%%%%%%%%%%%%%%%%%%%%
+% NASH Font
+% ligatures
+% 22.10.92
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown nashbase: input nashbase 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);
+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);
+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;
+
+%%%%%%%%%%%%%% 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;
+
+%%%%%%%%%%%%%% hhah ligature %%%%%%%%%%%%%%%%%
+
+arabchar(hhah_spec, f_end, 4, 10, 10);
+hhah_spec_iso;
+endchar;
+
+arabchar(hhah_spec, f_mid, 2, 10, 5);
+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);
+hhah_spec_beg;
+x.m := x.r;
+one_dot(10);
+endchar;
+
+%%%%%%%%%%%%%% 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;
+
+%%%%%%%%%%%%%% 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;
+
+%%%%%%%%%%%%%% 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;
+
+%%%%%%%%%%%%%% 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);
+sad_spec_beg; draw z.r{left}..z8;
+endchar;
+
+arabchar(sad_spec, f_beg, 10, 10, 0);
+sad_spec_beg;
+endchar;
+
+%%%%%%%%%%%%%% 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;
+
+%%%%%%%%%%%%%% 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);
+kaf_spec_beg; draw z3{z.r-z3}..z.r{right};
+gaf_serif;
+endchar;
+
+arabchar(gaf_spec, f_beg, 7, 16, 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;
+
+%%%%%%%%%%%%%% 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);
+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);
+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);
+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
+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;
+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
+x2 = x.r = 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
+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;
+
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/nashspec.mf b/Master/texmf-dist/fonts/source/public/arabtex/nashspec.mf
new file mode 100644
index 00000000000..e50b0f9a167
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/nashspec.mf
@@ -0,0 +1,206 @@
+%%%%%%%%%%%%%%%%%%%%%%% nashspec.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NASH Font
+% special characters
+% 26.02.92
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown nashbase: input nashbase 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, 10, 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, 10, 0); % block initial
+x1 = x2 = x.l + dx; x3 = x4 = x.m;
+%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_mid, 10, 10, 0); % block medial
+x1 = x2 = x.l + dx; x3 = x4 = x.r - dx;
+y1 = y4 = 5dy; y2 = y3 = 0;
+%y1 = y4 = 10dy; y2 = y3 = 0;
+fill z1--z2--z3--z4--cycle;
+endchar;
+
+arabchar(block, f_end, 10, 10, 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;
+
+%arabchar(0, 0, 10, 15, 0); % block in position 0
+%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 = 6dy; y3 = 13dy;
+put_dot(1); draw z3--z2;
+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;
+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);
+%arabchar("/", 0, 10, 15, 7);
+pickup dia_pen;
+x1 + 4dx = x2 - 4dx = x.m;
+y2 = 9dy; y1 = -6dy;
+%y2 = 14dy; 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;
+
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat
deleted file mode 100644
index 8b46df79e2d..00000000000
--- a/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat
+++ /dev/null
@@ -1,209 +0,0 @@
-% 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 %%%%%%%%%%%%%%%%%%%%%%%%%%