我计划使用 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}
结果: