Siunitx 不会根据字体样式进行更改

Siunitx 不会根据字体样式进行更改

我计划使用 opensans 字体编写文档,并希望使用 siunitx 包。我的最小代码如下:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[default,oldstyle,scale=0.95]{opensans}
\usepackage[alsoload=synchem,%
            range-phrase=--,%
            repeatunits=false%
            ]{siunitx}  
\sisetup{range-units=single}
\sisetup{separate-uncertainty}
\sisetup{detect-family}
\sisetup{detect-weight}
\sisetup{detect-all}
\begin{document}
The temperature measured was \SI{14(1)}{\kelvin} and was observed between time points \SIrange{34}{90}{\second}.

\SI{1.45(20)e-4}{\Molar}

There are 365 days in a year. And I want \SI{2.6(4)e3}{\hectare} land allocation.
\end{document}

根据 siunitx 手册(第 17 和 19 页)的说明,\sisetup{detect-family} and/or \sisetup{detect-weight} and/or \sisetup{detect-all}应使用所需的字体显示数字和单位。但事实并非如此。有什么建议可以解决此问题吗?

这是我的输出: 我的输出

PS:我曾经见过这个:数学字体改变和 siunitx?,但我不确定它是否能直接解决我的问题。

siunitx 不支持字体选择帖子\sisetup{detect-all}作为解决方案,但正如您在我的代码中看到的,我已经将它包含在内,但它似乎不起作用。

EDIT1:我使用 pdflatex 和 TexMaker 作为我的前端。

答案1

您可能已经注意到,普通数学也使用不同的字体(例如$14\pm 1$)。这是因为opensans包只更改了文本字体。siunitx默认使用数学字体。

作为解决方案,您可以使用mathastext使用当前文本字体进行数学运算的包。

梅威瑟:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[default,oldstyle,scale=0.95]{opensans}
\usepackage[alsoload=synchem,%
            range-phrase=--,%
            repeatunits=false%
            ]{siunitx}  
\sisetup{range-units=single}
\sisetup{separate-uncertainty}
\usepackage{mathastext}
\begin{document}
The temperature measured was \SI{14(1)}{\kelvin} and was observed between time points \SIrange{34}{90}{\second}.

\SI{1.45(20)e-4}{\Molar}

There are 365 days in a year. And I want \SI{2.6(4)e3}{\hectare} land allocation.
\end{document}

结果:

在此处输入图片描述

相关内容