diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/arabtex/arabskel.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/arabtex/arabskel.sty | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/arabtex/arabskel.sty b/Master/texmf-dist/tex/latex/arabtex/arabskel.sty new file mode 100644 index 00000000000..8790052f6d6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/arabtex/arabskel.sty @@ -0,0 +1,185 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% arabskel.sty +% ArabTeX +% character skeleton definitions for font nash14 +% called in HMODE +% Version 04.06.2000 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% (c) Klaus Lagally +% Institut fuer Informatik +% Universitaet Stuttgart +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \sklatcode = \catcode`\@ \catcode`\@ = 11 +\a@ident {arabskel.sty}{3.10 character skeleton definitions }{04.06.2000} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% dynamic definitions for Arabic +{\catcode `\^ 7 \catcode `\ =9 \catcode `\^^M=9 \catcode `\^^I=9 +\gdef \seta@skels {% define \ArabTeX character skeletons for font nash +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% pattern: class, code, connect, {iso, fin, med, ini} +\gdef \sk@@ {10 ,\a@block ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % illegal +\gdef \sk@def {10 ,\a@block ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % default + +% basic letters +\gdef \sk@a {10 ,\a@alif ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % alif +\gdef \sk@ain { 4 ,\a@ain ,1 ,{{4,0}{4,1}{0,0}{2,0}}} % `ain +\gdef \sk@b { 1 ,\a@bah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, no dot +\gdef \sk@b@p { 9 ,\a@bah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % bah, loop +\gdef \sk@d {10 ,\a@dal ,0 ,{{0,0}{0,0}{0,2}{0,0}}} % dal +\gdef \sk@d@p {10 ,\a@dal@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % dal, loop +\gdef \sk@dd { 2 ,\a@dad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ddad +\gdef \sk@f { 6 ,\a@fah ,1 ,{{0,5}{0,5}{0,0}{2,1}}} % fah +\gdef \sk@f@s { 6 ,\a@fah@s ,1 ,{{0,5}{0,5}{0,0}{2,0}}} % fah, no dot +\let \sk@g \sk@@ +\gdef \sk@g@p { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, loop +\gdef \sk@g@s { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf, bar +\let \sk@g@ps \sk@@ +\gdef \sk@h {10 ,\a@hah ,1 ,{{0,0}{0,-1}{0,0}{0,0}}} % hah +\gdef \sk@h@m {10 ,\a@hah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hah marbouta +\gdef \sk@h@s {10 ,\a@h@s ,1 ,{{1,0}{0,0}{0,0}{0,0}}} % urdu hah +\gdef \sk@hh { 3 ,\a@hhah ,1 ,{{4,0}{4,0}{0,0}{0,2}}} % hhah +\gdef \sk@j { 3 ,\a@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gim +\gdef \sk@k { 5 ,\a@kaf ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf +\gdef \sk@k@p { 5 ,\a@kaf@p@s,1,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, loop +\gdef \sk@k@s { 5 ,\a@kaf@s ,1 ,{{0,2}{0,2}{0,0}{0,-1}}} % kaf, no mark +\gdef \sk@k@w { 5 ,\a@kaf@w ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % wide kaf +\gdef \sk@kh { 3 ,\a@khah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % khah +\gdef \sk@l { 0 ,\a@lam ,1 ,{{0,3}{0,2}{0,0}{0,0}}} % lam +\gdef \sk@l@w { 0 ,\a@lam@l ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lower lam +\gdef \sk@m {10 ,\a@mim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % mim +\gdef \sk@n { 1 ,\a@nun ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, no dot +\gdef \sk@n@p { 9 ,\a@nun@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % nun, loop +\gdef \sk@q { 6 ,\a@qaf ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % qaf +\let \sk@q@s \sk@@ +\gdef \sk@r { 8 ,\a@rah ,0 ,{{0,2}{0,1}{0,0}{0,0}}} % rah +\gdef \sk@r@p { 8 ,\a@rah@p ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, loop +\gdef \sk@r@s { 8 ,\a@rah@s ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % rah, two dots +\gdef \sk@s { 2 ,\a@sin ,1 ,{{2,6}{2,4}{0,1}{0,3}}} % sin +\gdef \sk@s@p { 2 ,\a@sin@p ,1 ,{{0,6}{0,4}{0,2}{0,4}}} % sin, two dots +\gdef \sk@sh { 2 ,\a@shin ,1 ,{{2,6}{2,4}{0,2}{0,2}}} % shin +\gdef \sk@ss { 2 ,\a@sad ,1 ,{{2,4}{2,4}{0,1}{0,2}}} % ssad +\gdef \sk@ts { 3 ,\a@tsah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tchah +\gdef \sk@tt { 7 ,\a@ttah ,1 ,{{1,2}{1,2}{1,1}{1,1}}} % ttah +\gdef \sk@v { 6 ,\a@vah ,1 ,{{0,5}{0,5}{0,0}{0,0}}} % vah +\gdef \sk@w {10 ,\a@waw ,0 ,{{0,1}{0,1}{0,0}{0,0}}} % waw +\let \sk@w@r \sk@@ +\let \sk@w@b \sk@@ +\gdef \sk@y { 1 ,\a@yah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah +\gdef \sk@y@h { 1 ,\a@yah@h ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah, stroke +\gdef \sk@y@p { 1 ,\a@yah@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah bari +\let \sk@y@ps \sk@@ +\gdef \sk@z { 8 ,\a@zay ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zay +\gdef \sk@zh { 8 ,\a@zhah ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % zhah +\gdef \sk@zz { 7 ,\a@zzah ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % zzah + +% special forms +\gdef \sk@sn@s { 2 ,\a@sin@spec ,1 ,{{2,6}{2,4}{0,-2}{0,-1}}} % sin short +\gdef \sk@sd@s { 2 ,\a@sad@spec ,1 ,{{2,4}{2,4}{0,-3}{0,-2}}} % ssad short +\gdef \sk@j@cl { 3 ,\a@gim@close ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % gim closed +\gdef \sk@k@sh { 5 ,\a@kaf@spec ,1 ,{{0,2}{0,2}{0,0}{0,0}}} % kaf, short +\let \sk@k@sp \sk@@ +\gdef \sk@g@ph { 5 ,\a@gaf@p ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf' short +\gdef \sk@g@sh { 5 ,\a@gaf@s ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % gaf- short +\let \sk@g@sp \sk@@ +\gdef \sk@y@s { 1 ,\a@yah@spec ,1 ,{{0,0}{0,2}{0,0}{0,0}}} % yah lig +\gdef \sk@y@h@s { 1 ,\a@yah@h@spec ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % yah' lig +\gdef \sk@j@s { 3 ,\a@gim@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % gim short +\gdef \sk@hh@s { 3, \a@hhah@spec ,1 ,{{4,0}{4,6}{0,1}{0,0}}} % hhah short +\gdef \sk@kh@s { 3 ,\a@khah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % khah short +\gdef \sk@ts@s { 3 ,\a@tsah@spec ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % tchah short +\gdef \sk@l@a {10 ,\a@lam@alif ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % lam-alif +\let \sk@m@si \sk@@ + +% specials +\gdef \sk@B {10 ,\a@tatwil,1 ,{{0,0}{0,0}{0,0}{0,0}}} % tatwil +\gdef \sk@Q {10 ,\a@hamzc ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % hamza char +\gdef \sk@W {10 ,\a@break ,0 ,{{0,0}{0,0}{0,0}{0,0}}} % small space 34 +\gdef \sk@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 36 +\gdef \sk@skip{10 ,\a@skip ,1 ,{{0,0}{0,0}{2,0}{2,0}}} % small space 37 + +% ligatures +\gdef \sk@b@sp { 1 ,\a@bah@spec ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % r-b-? +\gdef \sk@b@g { 1 ,\a@bah@spec@gim ,1 ,{{0,0}{0,0}{0,2}{0,4}}} % j-b-? +\gdef \sk@b@h { 1 ,\a@bah@high ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % s-b-? +\gdef \sk@b@y { 1 ,\a@bah@spec@yah ,1 ,{{0,0}{0,0}{0,-1}{0,0}}} % y-b-? +\gdef \sk@b@e@m { 1 ,\a@bah@end@mim ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % m-b-? +\gdef \sk@b@m@m { 1 ,\a@bah@mid@mim ,1 ,{{0,0}{0,0}{2,2}{2,2}}} % m-b-? +\gdef \sk@b@e@h { 1 ,\a@bah@end@hah ,1 ,{{0,0}{0,0}{2,2}{0,0}}} % h-b-? +\gdef \sk@h@s@l {10 ,\a@hah@spec@lam ,1 ,{{1,0}{0,0}{1,-3}{0,0}}} % E-h-? +\gdef \sk@l@h { 0 ,\a@lam@spec@hah ,1 ,{{0,0}{0,0}{0,0}{0,-3}}} % m-l-| +\gdef \sk@l@g { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,4}}} % j-l-| +\gdef \sk@l@g@s { 0 ,\a@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % j-l-| +\gdef \sk@l@y { 0 ,\a@lam@spec@yah ,1 ,{{0,0}{0,0}{0,1}{0,0}}} % j-l-? +\gdef \sk@l@m { 0 ,\a@lam@spec@mim ,1 ,{{0,0}{0,0}{0,0}{0,-2}}} % m-l-| +\gdef \sk@l@lng { 0 ,\a@lam@long ,1 ,{{0,0}{0,0}{0,0}{0,1}}} % y-l-| +\gdef \sk@m@s {10 ,\a@mim@spec ,1 ,{{0,0}{0,-1}{0,2}{0,2}}} % ?-m-l +\gdef \sk@m@s@h {10 ,\a@mim@spec@high,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-| +\gdef \sk@m@s@l {10 ,\a@mim@spec@long,1 ,{{0,0}{0,0}{0,-2}{0,0}}} % ?-m-l +\gdef \sk@m@s@m {10 ,\a@mim@spec@mim ,1 ,{{0,0}{0,0}{0,5}{0,0}}} % m-m-| +\gdef \sk@m@l@g {10 ,\a@mim@lam@gim ,1 ,{{0,0}{0,0}{0,0}{0,0}}} % j-m-l +\gdef \sk@l@spc {10 ,\a@smspc ,1 ,{{0,0}{0,0}{0,0}{0,-4}}} % small space + +\global\let \sk@free \sk@W % phantom for outtable + +\global\let \sk@b@s \sk@b +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +}}% end of dynamic definitions for Arabic +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\seta@skels % activate skeletons + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% ACT = 1. char +\def \set@act #1{\def \act@skel {#1}\xpa \unp@ck@act #1\relax } + +\def \get@act {\xxpa \unp@ck@act \act@skel \relax } + +\def \new@act #1{\xxpa \unp@ck@act #1\relax } + +\def \unp@ck@act #1,#2,#3,#4\relax {% unpack skeleton description +\act@cls #1\act@cd #2\act@con #3\def \act@dia {#4}} + +% CHR = 2. char +\def \set@chr #1{\def \chr@skel {#1}\xpa \unp@ck@chr #1\relax } + +\def \get@chr {\xxpa \unp@ck@chr \chr@skel \relax } + +\def \new@chr #1{\xxpa \unp@ck@chr #1\relax } + +\def \unp@ck@chr #1,#2,#3,#4\relax {% unpack skeleton description +\chr@cls #1\chr@cd #2\chr@con #3\def \chr@dia {#4}} + +% SKL = 3. char +\def \set@skl #1{\def \skl@skel {#1}\xpa \unp@ck@skl #1\relax } + +\def \get@skl {\xxpa \unp@ck@skl \skl@skel \relax } + +\def \new@skl #1{\xxpa \unp@ck@skl #1\relax } + +\def \unp@ck@skl #1,#2,#3,#4\relax {% unpack skeleton description +\skl@cls #1\skl@cd #2\skl@con #3\def \skl@dia {#4}} + +\def \a@skl@init {% default attributes +\set@skel \sk@def } + +\def \dia@pos #1#2#3#4#5\relax {% unpack diacritics list +\edef \temp {\ifcase #5 #1\or #2\or #3\or #4\fi }% +\xpa \get@dia \temp \relax } + +\def \get@dia #1,#2\relax {% position of diacritic +\def \dia@mod {#1}\def \dia@hadj {#2}} + +\def \dia@mod {0} \def \dia@hadj {0} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chardef \bah@cls 1 \chardef \gim@cls 3 \chardef \kaf@cls 5 +\chardef \rah@cls 8 \chardef \other@cls 10 + +\catcode`\@ = \sklatcode +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |