我过去常常使用受保护的空格 ( ~
) 来格式化数字分组。现在我改用 siunitx 的\num
。根据软件包文档...
格式化程序删除“硬”空格(
\,
和~
)
但是当我用\num
它包围我的数字时会产生以下错误输出
! siunitx error: "invalid-token-in-number"
! Invalid token '\protect ' in numerical input.
l.5 \num{60~000}
| Numbers can only contain tokens defined using the 'input-...' options:
| the token '\protect ' is not set up as a valid part of a number.
我尝试将其包含\protect
在input-ignore
选项中,但它只是将错误消息中的无效令牌更改为\unhbox
和\voidb
。
这是 MWE(Miktex v2.9 和 siunitx v2.5s):
\documentclass{article}
\usepackage{siunitx}
%\sisetup{input-ignore={\protect }}
\begin{document}
\num{60~000}
\end{document}
当然,我们可以删除每个数字中的波浪符号,但是我该如何将其包含到忽略的输入标记中呢?我是否误解了软件包文档?
答案1
这是文档中的一个错误:目前标准设置忽略\,
但不是~
。我将在维护版本中修复此问题:目前使用
\documentclass{article}
\usepackage{siunitx}
\sisetup{input-ignore=~,
input-protect-tokens = ~\approx\dots\ge\geq\gg\le\leq\ll\mp\pi\pm\sim}
\begin{document}
\num{60\,000}
\end{document}