考虑以下 MWE:
% File: test-kashida.tex
\documentclass{report}
\usepackage[Kashida]{xepersian}
\settextfont[Scale=4.5]{XB Kayhan}
\def\SampleText{راهی جایی تابی چاپی چاهی تلاشهایی شتابهایی تابی چاپی راهی تلاشهــایی که کتابهایی که کلاههایی که}
\begin{document}
\KashidaOff \SampleText \lr{\Huge(Kashida Off)}
\KashidaOn \SampleText \lr{\Huge(Kashida On)}
\end{document}
上述示例的输出为: 即使在文档中添加命令 \KashidaXBFixOn 之后,“بی”、“یی”、“پی”等等下面的点似乎仍然发生了位移。
如何修复这个问题?
答案1
KashidaXBFix=on
写入选项泽佩斯安包裹。
\usepackage[Kashida=on,KashidaXBFix=on]{xepersian}
请看这个问题
编辑:
\documentclass{report}
\usepackage[Kashida,KashidaXBFix=on]{xepersian}
\settextfont[Scale=4.5]{XB Niloofar}
\def\SampleText{راهی جایی تابی چاپی چاهی تلاشهایی شتابهایی تابی چاپی راهی تلاشهــایی که کتابهایی که کلاههایی که}
\begin{document}
\KashidaOff \SampleText \lr{\Huge(Kashida Off)}
\KashidaOn \SampleText \lr{\Huge(Kashida On)}
\end{document}
输出:
输出:字体IRX莲花
编辑: 2020-03-21 查看关联
\documentclass{report}
\usepackage{xcolor}
\usepackage[Kashida=on,KashidaXBFix=on]{xepersian}
\settextfont[Scale=4.5]{XB Kayhan}
\XeTeXinterchartokenstate = 1
\newXeTeXintercharclass\yclass
\newXeTeXintercharclass\bypclass
\XeTeXcharclass `\ی \yclass
\XeTeXcharclass `\ب \bypclass
\XeTeXcharclass `\پ \bypclass
\XeTeXinterchartoks \bypclass \yclass = {}
\XeTeXinterchartoks \yclass \yclass = {}
\def\SampleText{راهی جایی تابی چاپی چاهی تلاشهایی شتابهایی تابی چاپی راهی تلاشهــایی که کتابهایی که کلاههایی که}
\begin{document}
\KashidaOff \SampleText \lr{\Huge(Kashida Off)}
\KashidaOn \SampleText \lr{\Huge(Kashida On)}
\end{document}
输出
答案2
仔细检查后发现需要修复:
未修复:
修复后:
我不太确定,但看起来拉伸规则修复的使用在某些情况下可能需要进一步微调(因为不同的安排会产生不同的拉伸)。
红色 = 字体
非红色 = 大概是用来模拟拉伸的规则
平均能量损失
\documentclass{report}
\usepackage{xcolor}
\usepackage[Kashida=on,KashidaXBFix=on]{xepersian}
\settextfont[Scale=4.5,Colour=red]{XB Kayhan}
\def\SampleText{راهی جایی تابی چاپی چاهی تلاشهایی شتابهایی تابی چاپی راهی تلاشهــایی که کتابهایی که کلاههایی که}
\begin{document}\color{blue}
\KashidaOff \SampleText \lr{\Huge(Kashida Off)}
\KashidaOn \SampleText \lr{\Huge(Kashida On)}
\end{document}
答案3
HM 系列字体的作者已在他的新软件包“xepersian-hm”中解决了该问题,该软件包位于http://mirror.ctan.org/macros/xetex/latex/xepersian-hm更多信息请访问http://www.ctan.org/pkg/xepersian-hm。
该包的 README.txt 文件内容如下:
xepersian 中的 Kashida 功能与某些字体(如 'https://dma8hm1334.bitbucket.io' 和 XB 系列字体可在 'http://wiki.irmug.com/index.php/X_Series_2'. `xepersian-hm' 软件包修复了这个问题。
考虑以下使用 xepersian-hm 的示例:
\documentclass{report}
\usepackage{xcolor}
% \usepackage[Kashida=off,RTLdocument=on]{xepersian} % Load xepersian with a few options
\usepackage[Kashida,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm} % Succeeds
% \usepackage[Kashida,kashidastretch=noskip]{xepersian-hm} % Succeeds
% \usepackage[Kashida,kashidastretch=default]{xepersian-hm} % Succeeds
% \usepackage[Kashida,kashidastretch=kayhan]{xepersian-hm} % Succeeds
% \usepackage[Kashida,kashidastretch=khorramshahr]{xepersian-hm} % Succeeds
% \settextfont[Scale=4.5,Colour=darkgray]{XB XKayhan}
% \setlatintextfont[Scale=2.5,Colour=teal]{XB XKayhan}
\settextfont[Scale=4.5,Colour=darkgray]{HM XKayhan}
\setlatintextfont[Scale=2.5,Colour=teal]{HM XKayhan}
\def\SampleText{راهی جایی تابی چاپی چاههی تلاشهایی شتابهایی تابی چاپی راهی تلاشهــایی که کتابهایی که کلاههایی که}
\setlength\parindent{0pt}
\pagestyle{empty}
\begin{document}
\color{red}
\SampleText \\ \lr{(compiled with: xepersian-hm)~}
\end{document}