在 LuaLaTeX 中使用 Babel 包编写希伯来语时,dagesh 偏离中心

在 LuaLaTeX 中使用 Babel 包编写希伯来语时,dagesh 偏离中心

我正在使用 LuaLaTeX 中的 nikud 和 babel 包用希伯来语编写文档。我不明白为什么“dagesh”(字母内的点)始终偏离中心左侧。以下是一些示例代码:

\documentclass{article}
\usepackage[nil, bidi=basic]{babel}
\babelprovide[import=he, main]{hebrew}
\babelfont{rm}{FrankRuehl}

\begin{document}
    \noindent
בְּ שָּׁ נֵּ כָּ מָּ גָּ תַּ דִּ פְּ\\
בְּרֵאשִׁית בָּרָא אֱלֹהִים; אֵת הַשָּׁמַיִם וְאֵת הָאָרֶץ
\end{document}

输出结果如下: 偏心的希伯来字母

正如您所看到的,点在源代码中看起来很好,所以我真的不明白为什么它在输出中看起来不对。

很感谢任何形式的帮助!

答案1

您的希伯来语指向符合规范的unicode顺序(近场通信): 首先是元音,然后是 dageš。您可能忍不住要生成以这种方式编码的文本——毕竟,这是标准——但有些字体历来期望 dageš-元音的顺序(更)合乎逻辑。请参阅这个相关问题

大多数现代字体都接受(并将重新排序)这两个版本,但您的字体似乎不接受。因此,元音标记后面的 dageš 不能附加到字母上,而是会自行浮动。

最简单的解决方案是更新字体,如上所述。但是,如果这不可能,并且您正在使用 luaTeX 进行编译,那么理论上您可以通过添加自定义字体功能来即时修复字体。目前尚无适当的文档说明(LuaLaTeX 字体代码源自 ConTeXt 项目,其内部文档说明不太完善),但这个问题为进一步学习提供了一个很好的起点。

相关内容