`siunitx` 包在 Babel 中使用了错误的微符号字体

`siunitx` 包在 Babel 中使用了错误的微符号字体

我过去用babel我的母语希伯来语写文档。我还使用该siunitx软件包来格式化数字和单位。我使用希伯来语和英语的自定义字体(对于希伯来语,因为我需要一种支持该语言的字体,而对于英语,只是因为样式偏好)。似乎使用该\micro命令或任何其他涉及 mu 符号的命令都会使用我选择的没有 mu 符号的希伯来语字体:

\documentclass{article}

\usepackage{siunitx}
\usepackage{upgreek}

\PassOptionsToPackage{no-math}{fontspec}

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

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

% Font setup
\babelfont{rm}{TeX Gyre Bonum}
\babelfont{sf}{TeX Gyre Adventor}

\babelfont[hebrew]{rm}[Renderer=HarfBuzz]{David CLM}
\babelfont[hebrew]{sf}[Renderer=HarfBuzz]{Miriam CLM}
\babelfont[hebrew]{tt}[Renderer=HarfBuzz]{Miriam Mono CLM}

\babelfont{david}[Renderer=HarfBuzz]{David CLM}

\sisetup{
    group-separator = {,},
    group-digits=integer,
    uncertainty-mode=separate,
}

\begin{document}
\[ \SI{5}{\micro\meter} \]
\end{document}

此代码产生

这是错误的。如果我使用\selectlanguage{english}切换到英语,它使用风俗英文字体,其中有一个 mu 符号,但它与普通字体不同,当与其他符号(如微米)结合时看起来很奇怪:

我怎样才能siunitx使用微符号的默认数学字体?我尝试使用选项math-microtext-micro更改符号,但似乎这些选项不再存在siunitx

答案1

在 v3 中, 8 位引擎\micro使用的标准设置和Unicode 引擎文本模式中的文字字符:在大多数情况下,这是最安全的选择。但是,不可能预测所有字体组合,尤其是系统字体的使用。在当前情况下,使用的字体既没有设置文字字符,也没有设置文字字符。因此,您需要重新定义以使用您认为最合适的任何符号:从表面上看\textmuμ\textmu\micro

\DeclareSIPrefix\micro{\ensuremath{\upmu}}{-6}

相关内容