9.15 符号‘数字’

9.15 符号‘数字’

siunitx我在使用该包时遇到了问题,特别是在使用该detect-all选项并尝试将\pi符号用作数字时。

最小工作示例(MWE)如下:

\documentclass{article}
\usepackage{XCharter}
\usepackage{siunitx}

\begin{document}

This works happily: \SI{2\pi e15}{\radian\per\second}

\sisetup{detect-all,}
But this gives an error : \SI{2\pi e15}{\radian\per\second}.

\end{document}

答案1

如果您运行\sisetup{detect-all},则siunitx需要整个\SI指令处于数学模式才能\pi正确处理,即它要求您运行

$\SI{2\pi e15}{\radian\per\second}$

在该软件包的用户指南第 5 页上,可以找到:

默认情况下,所有文本都以当前的直立数学字体排版。可以通过设置适当的选项来更改:\sisetup{detect-all}将使用当前字体进行排版。

这意味着,如果detect-all有效,siunitx则不自动地\SI使用数学字体来生成和的输出\si。因此需要$符号。


在此处输入图片描述

\documentclass{article}
\usepackage{XCharter,siunitx}
\begin{document}
\SI{2\pi e15}{\radian\per\second}

\sisetup{detect-all}
$\SI{2\pi e15}{\radian\per\second}$
\end{document}

答案2

siunitx 文档建议采用以下方法在“符号‘数字’”部分添加更多有效符号,如 pi:

\sisetup{input-digits = 0123456789\pi}

9.15 符号‘数字’

在某些情况下,您可能希望使用不属于通常的 0123456789 集合的“数字”。这可以通过设置输入数字选项来实现,但请记住,这将影响(阻止)例如四舍五入。

\sisetup{输入数字 = 0123456789\pi}%
\num{4\pi e-7}
4π × 10−7

每个额外条目应为单个标记,并且应具有在数学和文本模式下都安全的定义,或者仅在已知输出模式时使用。例如,可能需要使用 etoolbox 使某些标记变得健壮才能实现此目的

\robustify\dots
\sisetup{输入数字 = 0123456789\dots}%
\qty{0,4066\dots}{\metre\squared}
0.406 6 ... m^2

相关内容