LuaTeX 中的 ZWJ 打印一条条形图

LuaTeX 中的 ZWJ 打印一条条形图

以下文档在 XeTeX 中打印阿拉伯字母的中间形式,这要归功于两个 ZWJ 字符(“200D”。

\documentclass{article}

\usepackage{fontspec}
\setmainfont[Script=Arabic]{Arabic Typesetting}

\begin{document}
\char"200Dي\char"200D
\end{document}

然而,在 LuaTeX 中我得到:

ZWJ 字形

ZWJ 的两个字形实际上在字体中,但它们不应该显示。我该如何隐藏它们?

编辑。对于这种特殊情况,可以采取以下措施:

\documentclass{article}
\usepackage{luatextra}
\usepackage{fontspec}
\setmainfont[Script=Arabic]{Arabic Typesetting}

\begin{luacode*}
s = 'EU2/ArabicTypesetting(0)/m/n/10' 
local i = font.id(s)
local f = font.getfont(i)
f.characters[8205].index = 3
font.setfont(i, f)
\end{luacode*}

\begin{document}

\char"200Dي\char"200D

ي\char"200D

\char"200Dي

ي  

\end{document}

不过,我仍然想知道是否存在一种基于简单开关的更优雅、更通用的方法。

答案1

LuaTeX 现在有了 HarfBuzz。渲染正常。

zwj 示例

平均能量损失

\documentclass{article}

\usepackage{fontspec}
\setmainfont[Script=Arabic]{Arabic Typesetting}

\begin{document}
\begin{tabular}{rr}
\char"200Dي\char"200D & \textdir TRT  ي ييي \\
\char"200Dب\char"200D & \textdir TRT  ب ببب\\
\char"200Dش\char"200D & \textdir TRT ش ششش\\
\end{tabular}

\end{document}

相关内容