新 siunitx 中的摄氏度问题

新 siunitx 中的摄氏度问题

最近有一些变化siunitx,其中之一就是单位的排版。最明显的变化是摄氏度。

在新版本中,度数符号不再与文本的其余部分很好地匹配。您可以在以下示例中看到这一点。

\usepackage{siunitx}

\begin{document}
\SI{15}{\celsius}{\tiny\SI{15}{\celsius}}
\end{document}

在此处输入图片描述

这是一个错误还是我做错了什么?

附言:很重要\celsius:如果您决定按照答案中的建议重新定义,请不要忘记重新定义\degree以保持一致性:

\DeclareSIUnit[quantity-product = ]\degree{\text{\textdegree}}

答案1

标准设置会siunitx尽力根据“参考渲染”选择合理的内容。在这里,您处于数学模式,并且没有加载 Unicode 数学代码,因此度数符号的参考是{}^{\circ}如果您在演示中尝试这样做,您会发现它的大小与您拥有的大小相同。您可能更喜欢文本模式\textdegree,或者如果合适,直接使用°(例如,如果您加载了unicode-math合适的字体)。


一般来说,预期的方法siunitx是为您的文档选择合适的字体,并根据需要调整定义以使其正常工作。

另一种方法是从本质上改变相关单位的定义。这似乎是这里想要的结果,\textdegree即使在数学模式下也使用文本模式符号(),因此

\DeclareSIUnit\degreeCelsius{\text{\textdegree}C}

会工作。

(当然,根据可用的字体设置,可能需要对两者进行调整,因为siunitx在单位定义方面可能只是“猜错”。)

相关内容