siunitx S 列中的中心设置列标题

siunitx S 列中的中心设置列标题

我正在使用该siunitx包在我的所有环境中自动放置千位分隔符tabular

它工作正常,但如果有列标题则不行。这个看似无害的 MWE 编译失败,并出现一个非常奇怪的错误:

\documentclass{article}
\usepackage[group-separator={,}]{siunitx} 
% Adds the S column for formatting numbers like 10,000

\begin{document}
\begin{tabular}{llSS}
&     & Trade Value &  Estimation Error \\
&     & (\$US M) &  (\$US M) \\
USA & GBR &    15574 & -5753 \\
GBR & USA &    15668 & -4127 \\
USA & JPN &     4261 &  3092 \\
GBR & LUX &     1590 &  2766 \\
\end{tabular}
\end{document}

我从以下问题中了解到答案是这样做multicolumn{1}{c}{My Header}

鉴于我的所有表格都有标题,这似乎很无聊。

所有替代方案似乎都涉及将每个数字放入类似 的环境中\num。如果您的表很大,这显然根本不是解决方案。

是否有一个包可以将千位分隔符放入我的表格中,tabulars而不需要multicolumn标题或\num{}表格中每个数字周围的东西?

答案1

通过将内容括在花括号中,S可以轻松将内容置于类型列的标题单元格中。当然,打字速度{...}要快得多\multicolumn{1}{c}{...},对吧?

为了正确地将数字材料置于第三列和第四列的中心,您可能需要分别用和替换基本S声明。最后,我将添加选项,以便将 用作千位分隔符应用于S[table-format=5.0]S[table-format=-4.0]group-minimum-digits=4,全部表中的数字。

在此处输入图片描述

\documentclass{article}
\usepackage[group-separator={,},
            group-minimum-digits = 4]  % default is 5
            {siunitx} % Adds the S column type

\begin{document}

\begin{tabular}{ll S[table-format=5.0] S[table-format=-4.0]}
&     & {Trade Value} &  {Estimation Error} \\
&     & {(\$US M)} &  {(\$US M)} \\[1ex]
USA & GBR &    15574 & -5753 \\
GBR & USA &    15668 & -4127 \\
USA & JPN &     4261 &  3092 \\
GBR & LUX &     1590 &  2766 \\
\end{tabular}

\end{document} 

相关内容