Babel 使用了错误的罗马字母字体

Babel 使用了错误的罗马字母字体

我使用babelwithlualatex用我们的母语希伯来语编写文档,遇到了一个奇怪的问题。尽管我为仅限希伯来语例如,当我在数学模式中使用罗马字体时,\mathrm{kg}它使用希伯来字体而不是默认的英文字体:

\documentclass[a4paper, 12pt]{extarticle}

\usepackage[bidi=basic, layout=tabular]{babel}

\babelprovide[main, import, alph=letters, Alph=letters]{hebrew}
\babelprovide[import]{english}

\babelfont[hebrew]{rm}{Calibri}
\babelfont[hebrew]{sf}{Calibri}

\begin{document}
\[ kg \qquad \mathrm{kg} \]
\end{document}

结果是: 我想要使​​用默认的英文字体来显示数学表达式。注释掉该babel设置(因为此示例不涉及任何希伯来语)可得到所需的结果:

请注意,常规斜体数学不受影响,并且在两种情况下都能正确呈现。如何配置babel使用英语的默认字体,尤其是在数学模式下(我大多数时候都不想在数学中使用希伯来语)?

答案1

这是来自 fontspec 手册第 3.2 节的内容

默认情况下,fontspec 会调整 LaTeX 的默认数学设置,以便在罗马字体更改时保持正确的 Computer Modern 符号。但是,如果加载了另一个数学字体包(例如 mathpazo 或 unicode-math 包),它将尝试避免这样做。如果您发现 fontspec 错误地更改了数学字体(不应该更改),请在此处应用 no-math 包选项手动抑制其行为。

\babelfont当使用该命令时,babel加载fontspec,因此字体会发生变化。

因此,正如所记录的,您可以加载数学字体包,或者传递选项no-mathfontspec抑制此类更改。

由于是fontspec由 隐式加载的babel,因此您必须传递减速no-math中的选项,或者或在 第一次使用 之前\documentclass添加行,如您所建议的那样。\PassOptionsToPackage{no-math}{fontspec}\babelfont

相关内容