%% %% This is file `kashida-xepersian.def', %% generated with the docstrip utility. %% %% The original source files were: %% %% xepersian.dtx (with options: `table,kashida-xepersian.def') %% %% __________________________________________________ %% %% Copyright (c) Vafa Khalighi 2007-2019 %% bidi-tex GitHub Organisation 2018-2020 %% %% %% %% It may be distributed and/or modified under the LaTeX Project Public License, %% version 1.3c or higher (your choice). The latest version of %% this license is at: http://www.latex-project.org/lppl.txt %% %% This work is “author-maintained” (as per LPPL maintenance status) %% by bidi-tex GitHub Organisation. %% %% \ProvidesFile{kashida-xepersian.def}[2018/01/04 v0.6 implementation of Kashida for xepersian package] \chardef\xepersian@zwj="200D % zero-width joiner \chardef\xepersian@kashidachar="0640 % kashida \chardef\xepersian@D=10 % dual-joiner class \chardef\xepersian@L=11 % lam \chardef\xepersian@R=12 % right-joiner \chardef\xepersian@A=13 % alef \chardef\xepersian@H=14 % heh \chardef\xepersian@V=4096 % vowel or other combining mark (to be ignored) \newif\if@Kashida@on \newif\if@Kashida@XB@fix \def\xepersian@kashida{\if@Kashida@on\xepersian@zwj\nobreak% \leaders\hrule height \XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@kashidachar depth \XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@kashidachar \hskip0pt plus 0.5em \xepersian@zwj\fi} \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{} \setclass \xepersian@A {0622,0623,0625,0627} \setclass \xepersian@R {0624,0629,062F,0630,0631,0632,0648,0698} \setclass \xepersian@D {0626,0628,062A,062B,062C,062D,062E} \setclass \xepersian@D {0633,0634,0635,0636,0637,0638,0639,063A} \setclass \xepersian@D {0640,0641,0642,0643,0645,0646,0649,064A} \setclass \xepersian@H {0647} \setclass \xepersian@D {067E,0686,06A9,06AF,06CC} \setclass \xepersian@L {0644} \setclass \xepersian@V {064B,064C,064D,064E,064F,0650,0651,0652} \XeTeXinterchartoks \xepersian@D \xepersian@D = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@H \xepersian@D = {\if@Kashida@XB@fix\else\xepersian@kashida\fi} \XeTeXinterchartoks \xepersian@D \xepersian@H = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@L \xepersian@D = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@D \xepersian@L = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@L \xepersian@H = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@H \xepersian@L = {\if@Kashida@XB@fix\else\xepersian@kashida\fi} \XeTeXinterchartoks \xepersian@L \xepersian@L = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@D \xepersian@R = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@H \xepersian@R = {\if@Kashida@XB@fix\else\xepersian@kashida\fi} \XeTeXinterchartoks \xepersian@D \xepersian@A = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@H \xepersian@A = {\if@Kashida@XB@fix\else\xepersian@kashida\fi} \XeTeXinterchartoks \xepersian@L \xepersian@R = {\xepersian@kashida} \XeTeXinterchartoks \xepersian@L \xepersian@A = {} \newcommand{\KashidaOn}{\@Kashida@ontrue} \newcommand{\KashidaOff}{\@Kashida@onfalse} \newcommand{\KashidaXBFixOn}{\@Kashida@XB@fixtrue} \newcommand{\KashidaXBFixOff}{\@Kashida@XB@fixfalse} \KashidaOn \endinput %% %% End of file `kashida-xepersian.def'.