Tabu 将 siunitx S 列嵌入到 X 列中不起作用

Tabu 将 siunitx S 列嵌入到 X 列中不起作用

我正在尝试制作一个表格,其中 S 列嵌入 X 列。MNWE 如下。

\documentclass[a4paper,12pt]{article}
\usepackage{array,tabu}
\usepackage{siunitx}

\begin{document}

\newcolumntype W{X[c]{S[round-mode=places, round-precision=2, round-integer-to-decimal=true]}}

\begin{tabu} to \linewidth {WW}
1      &2,356\\
4,567  &1234\\
\end{tabu}

\end{document}

我收到以下错误:

Package array Error: Illegal pream-token (S[round-mode=places,
round-recision=2, round-integer-to-decimal=true]): `c' used.
\begin{tabu} to \linewidth {WW}

一旦我删除 X 列类型,如下所示:

\documentclass[a4paper,12pt]{article}
\usepackage{array,tabu}
\usepackage{siunitx}

\begin{document}

\newcolumntype W{S[round-mode=places, round-precision=2, round-integer-to-decimal=true]}

\begin{tabu} to \linewidth {WW}
1&2,356\\
4,567&1234\\
\end{tabu}

\end{document}

它可以工作。但在这种情况下,我没有得到 X 列格式。我做错了什么?我读过一些关于类似问题的主题,但从未找到该问题的解决方案。

答案1

那么这样的解决方案怎么样?(受到 David Carlisle 对此问题的回答的启发:将 dcolumn 中定义的列类型与 tabularx 结合起来)。

即使需要列标题...

\documentclass[a4paper,12pt]{article}
\usepackage{array}
\usepackage{siunitx}
\usepackage{tabularx}
\usepackage{booktabs}

\begin{document}

\newcolumntype W{S[round-mode=places, round-precision=2, round-integer-to-decimal=true]}

\begin{tabularx}{\linewidth}{*{2}{W}}   
\multicolumn{1}{X}{\centering col A} & \multicolumn{1}{X}{\centering col B} \\
\midrule %inserted only to show that the table is linewidth
1      &2,356\\
4,567  &1234\\
\end{tabularx}

\end{document}

在此处输入图片描述

相关内容