我使用babel
withlualatex
用我们的母语希伯来语编写文档,遇到了一个奇怪的问题。尽管我为仅限希伯来语例如,当我在数学模式中使用罗马字体时,\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-math
来fontspec
抑制此类更改。
由于是fontspec
由 隐式加载的babel
,因此您必须传递减速no-math
中的选项,或者或在 第一次使用 之前\documentclass
添加行,如您所建议的那样。\PassOptionsToPackage{no-math}{fontspec}
\babelfont