我想siunitx
在我的文档中使用该包,但是当我尝试使用命令打印一个角度时\ang{90}
,我收到了
90日
代替
90°
逐渐减少代码,我发现原因在于包的使用lmodern
。如何解决这个问题?似乎这种行为与问题中的描述类似:siunitx:µ 不起作用
MNWE:
\documentclass{scrbook}
\usepackage{xltxtra}
\usepackage{lmodern}
\usepackage{siunitx}
\begin{document}
Angle is \ang{90} or \(\ang[number-angle-product = \,]{2.67}\)
\end{document}
答案1
中的字体设置siunitx
试图覆盖一系列“常见”情况。在这里,我“希望”您使用 Unicode 引擎 XeTeX fontspec
(可能使用unicode-math
)。如果您刚刚加载,lmodern
一切看起来都不错(但请参阅下面的注释),但添加xltxtra
之前lmodern
完全混淆了“猜测”:这是一个远非典型的设置。一旦您“偏离轨道”,您就必须自己设置这些东西:siunitx
无法预测字体选择的所有可能组合。(加载fontspec
,xltxtra
使用 OpenType 形式的 Latin Modern,所以我不太确定您的目标是什么!)
具体来说,这里发生的事情是siunitx
检测到了fontspec
度数符号的标准定义,因此将其切换为使用 Unicode 代码点(十进制 176)。当您稍后加载时lmodern
,此位置不再是正确的字形,因为您最终在数学模式下使用的 OT1 编码字体在该位置上有所不同。
虽然可以lmodern
使用 XeTeX 加载,但字体编码(OT1 或 T1)是错误的:某些插槽不正确,并且连字符会很糟糕。您确实应该考虑fontspec
在这里使用。