siunitx 包与手动输入千位分隔符有关

siunitx 包与手动输入千位分隔符有关

最近我发现了这个非常有用的siunitx包,并立即考虑将它用于一些表格。不幸的是,我已经用,千位分隔符和.小数分隔符排版了所有数字。

如果我尝试类似的事情:

 \documentclass{standalone}
 \usepackage[group-separator={,}]{siunitx}
 \begin{document}
 \begin{tabular}{S[table-format=6.2]}
 300,000.12\\
 \end{tabular}
 \end{document}

我收到如下错误:

Duplicate decimal marker '.' in input.

如果我300,000.12300,000它替换它就将其视为300.000(即300)。

对于我来说这似乎很奇怪,因为该包解释300000为,300,000但它解释300,000300.000

我浏览了详细的siunitx文档,但找不到任何用于拾取输入分隔符的标志。有人知道如何siunitx参数化以优雅地处理原始输入数字(如 300,000.12)吗?

(我不想从所有输入数字中删除所有逗号。)

答案1

您可以siunitx使用 来忽略某些字符input-ignore={<list of characters>}。但是,由于逗号默认是siunitx要查找的小数分隔符之一,因此仅将其添加,到列表中input-ignore是行不通的:您还必须使用 来指定siunitx只有句点是小数标记input-decimal-markers={.}(默认情况下设置为{,.}):

\documentclass{article}
\usepackage{siunitx}
\sisetup{input-ignore={,},input-decimal-markers={.}}
\begin{document}
\num{300,000.12}
\end{document}

相关内容