我正在使用 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 项目,其内部文档说明不太完善),但这个问题为进一步学习提供了一个很好的起点。