命令 \KashidaXBFixOn 在 xepersian 中无法正常工作

命令 \KashidaXBFixOn 在 xepersian 中无法正常工作

考虑以下 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}

看到这个链接1链接2链接3

请看这个问题

编辑:

\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}

输出为: 在此处输入图片描述 但是,上面使用 xepersian 的例子的输出是: 在此处输入图片描述

相关内容