Hi everyone:Well, I think I've got an environment for kashida. Please test it out and change whatever is necessary. It seems to work here with the attached example. Please note that I am no programmer and know very little of the TeX or XeTeX internals. I got lucky with modifying just a couple things from Jonathan's code.
I hope this helps you, Gareth. --United in adoration of Jesus,
fr. michael gilmary, mma Most Holy Trinity Monastery 67 Dugway Road Petersham, MA 01366-9725 www.MaroniteMonks.org
%% %% This is file `kashida.sty' %% %% %% Configure xetex to do "kashida" justification in Persian text --- from Jonathan Kew. Mapping for Syriac added. \NeedsTeXFormat{LaTeX2e} \def\kashidadate{2010/09/17} \def\kashidaversion{v0.1} \ProvidesPackage{kashida}[\kashidadate\space \kashidaversion] \chardef\zwj="200D % zero-width joiner \chardef\ksh="0640 % kashida = "tatweel" \chardef\D=10 % dual-joiner class \chardef\L=11 % lam \chardef\R=12 % right-joiner \chardef\A=13 % alef \chardef\V=256 % vowel or other combining mark (to be ignored) %\def\kashida{\zwj\nobreak \setbox0=\hbox{\ksh}% % \leaders\hrule height\ht0 \hskip0pt plus 0.5em \zwj} \def\stretch{\zwj\nobreak \setbox0=\hbox{\ksh}% \leaders\hrule height\ht0 \hskip0pt plus 0.5em \zwj} \def\setclass#1#2{\def\theclass{#1}\def\charlist{#2}% \expandafter\dosetclass\charlist,\end} \def\dosetclass#1,#2\end{% \def\test{#1}\def\charlist{#2}% \ifx\test\empty\let\next\finishsetclass \else \XeTeXcharclass "\test = \theclass \let\next\dosetclass \fi \expandafter\next\charlist,,\end} \def\finishsetclass#1,,\end{} %% code for Melthofonts = Syriac fonts \setclass \A {710} \setclass \R {0715,0717,0718,0721,0728,072A,072C} \setclass \D {0712,0713,071A,071B,071D,071F} \setclass \D {0722,0723,0725,0729,072B} \setclass \L {0720} \setclass \V {0730,0731,0732,0733,0734,0735} \setclass \V {0736,0737,0738,0739,073A,073B,073C} \setclass \V {073D,073E,073F,0740,0741,0742,0743} \setclass \V {0744,0745,0746,0747,0748} % JK's code for Farsi fonts \setclass \A {0622,0623,0625,0627} \setclass \R {0624,0629,062F,0630,0631,0632,0648,0698} \setclass \D {0626,0628,062A,062B,062C,062D,062E} \setclass \D {0633,0634,0635,0636,0637,0638,0639,063A} \setclass \D {0640,0641,0642,0643,0645,0646,0647,0649,064A} \setclass \D {067E,0686,06A9,06AF,06CC} \setclass \L {0644} \setclass \V {064B,064C,064D,064E,064F,0650,0651,0652} \newenvironment{kashida}[1]{ \XeTeXinterchartoks \D \D = {\stretch} \XeTeXinterchartoks \L \D = {\stretch} \XeTeXinterchartoks \D \L = {\stretch} \XeTeXinterchartoks \L \L = {\stretch} \XeTeXinterchartoks \D \R = {\stretch} \XeTeXinterchartoks \D \A = {\stretch} \XeTeXinterchartoks \L \R = {\stretch} \XeTeXinterchartoks \L \A = {} \XeTeXinterchartokenstate=1 }{\XeTeXinterchartokenstate=-1} \endinput %% End of file `kashida.sty'.
kashidatest.tex
Description: TeX document
-------------------------------------------------- Subscriptions, Archive, and List information, etc.: http://tug.org/mailman/listinfo/xetex