最近我发现了这个非常有用的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.12
用300,000
它替换它就将其视为300.000
(即300
)。
对于我来说这似乎很奇怪,因为该包解释300000
为,300,000
但它解释300,000
为300.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}