旧式字体未应用于整个文档。问题出在哪里?MWE:
\documentclass{article}
\usepackage{siunitx}
\usepackage[osf]{libertine}
\begin{document}
92\si{\percent}\par
$84^\star$
\end{document}
答案1
在数学写作中,使用旧式(又称“文本式”)数字并不常见,无论普通文本中是否使用旧式数字。我认为,出于两个原因,数学模式材料更倾向于使用内衬式数字。首先,在上标和下标位置使用文本式数字(其中一些有下行部分,一些有上行部分)——这在数学中经常发生,不是吗?——会很快让读者感到困惑。其次,文本式数字通常(但不一定)按比例间隔——即 a1
比 a 占用的空间更小6
——因此不太适合在表格环境中显示数字;相比之下,内衬式数字通常(但同样不一定)间隔固定,因此更适合表格材料。
即使指定了该选项,该libertine
软件包也并非唯一一个在数学模式下不使用旧式数字的软件包。例如,使用该选项加载该软件包(基于 Latin Modern 字体系列)将无法在数学中使用旧式数字。同样,从和软件包(分别基于 Times Roman 和 Palatino 字体系列)的 1.23 版本开始,设置该选项只会影响文本模式下的数字,而不会影响数学模式下的数字。osf
cfr-lm
rm=oldstyle
newtx
newpx
osf
谈到如何(注意:我不是说“应该”)将旧式数字与包的宏一起使用的问题。摘自该包siunitx
的用户手册第 5.2 节:siunitx
siunitx 包控制用于打印输出的字体,不受周围材料的干扰。标准方法是完全忽略周围材料,并使用当前的正文字体。
您可以通过设置包的选项来覆盖此设置detect-mode
(再次注意,我不会推荐你这样做了):
\documentclass{article}
\usepackage{siunitx}
\usepackage[osf]{libertine}
\begin{document}
\SI{84}{\kilogram}
\num{36.1}\%
\sisetup{detect-mode}
\SI{84}{kilogram}
\num{36.1}\%
\end{document}