برای اینکه بتوانم ریشه مشکل را نشان بدهم از بسته زیپرشین استفاده نمیکنم همینطور از لاتک استفاده نمیکنم بنابراین از فرمت Plain TeX و موتور زیتک در پائینترین سطح استفاده میکنم تا بفهمم مشکل چه زمانی و چرا رخ میدهد.
برای حروفچینی «یی» میتوان به جای وارد کردن آن بصورت مستقیم از \char"06CC\char"06CC
یا \char"06CC\char"200D\char"06CC
استفاده کرد. زمانی که بین دو کاراکتر را intrrupt میکنیم مثلا با \kern0pt
مشکل پدیدار میشود.
\TeXXeTstate=1 % enable TeX--XeT algorithm
\everypar{\beginR} % not as sophisticated as what the bidi
% package does but should be fine for the
% purpose here
\font\testfont="XB Kayhan" at 300pt
\testfont
\char"06CC\char"200D\char"06CC
\char"06CC\char"200D\kern0pt\char"200D\char"06CC
\bye
اینطور که به نظر میرسد وقتی دو کاراکتر کنار هم قرار میگیرند موتور زیتک به واسطه harfbuzz شکل متفاوتتری از «یی» را در قلم قرار میدهد که پهنای مناسبی دارد اما اگر بین دو کاراکتر را interrupt کنیم تا دو کاراکتر جدا از هم به نظر بیایند آنگاه پهنا کمتر خواهد بود و نقطهها برخورد خواهند کرد با کاراکتر بعدی. حتی اگر از initial و final form کاراکتر U+06CC
استفاده کنیم و بین دو کاراکتر را interrupt کنیم باز مشکل رخ میدهد.
\TeXXeTstate=1 % enable TeX--XeT algorithm
\everypar{\beginR} % not as sophisticated as what the bidi
% package does but should be fine for the
% purpose here
\font\testfont="XB Kayhan" at 300pt
\testfont
\char"FBFE\kern0pt\char"FBFD
\bye
اما اگر به جای کاراکتر گلیف مورد نظر را قرار دهیم مشکلی وجود نخواهد داشت.
\TeXXeTstate=1 % enable TeX--XeT algorithm
\everypar{\beginR} % not as sophisticated as what the bidi
% package does but should be fine for the
% purpose here
\font\testfont="XB Kayhan" at 300pt
\testfont
\XeTeXglyph\the\XeTeXcharglyph"FBFE\kern0pt
\XeTeXglyph\the\XeTeXcharglyph"FBFD
\bye
تا جایی که من آزمایش کردم این مشکل تنها در قلمهای XB
وجود دارد (البته همه قلمهای XB این مشکل را ندارند به عنوان نمونه قلم XB Yas
این مشکل را ندارد).
دلیل اصلی به نظر میاد این هست که دو نوع final form از U+066C
وجود داره:
\TeXXeTstate=1 % enable TeX--XeT algorithm
\everypar{\beginR} % not as sophisticated as what the bidi
% package does but should be fine for the
% purpose here
\font\testfont="XB Kayhan" at 300pt
\testfont
\char"FBFD
\XeTeXglyph\the\XeTeXcharglyph"FBFD
\bye