旧式字体未应用于整个文档

旧式字体未应用于整个文档

旧式字体未应用于整个文档。问题出在哪里?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 版本开始,设置该选项只会影响文本模式下的数字,而不会影响数学模式下的数字。osfcfr-lmrm=oldstylenewtxnewpxosf

谈到如何(注意:我不是说“应该”)将旧式数字与包的宏一起使用的问题。摘自该包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}

相关内容