如何在 siunitx 数字解析中忽略硬空格 (~)

如何在 siunitx 数字解析中忽略硬空格 (~)

我过去常常使用受保护的空格 ( ~) 来格式化数字分组。现在我改用 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.

我尝试将其包含\protectinput-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}

相关内容