%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%