结合 tabularx 和 dcolumn 并在 dcolumn 中定义列宽

结合 tabularx 和 dcolumn 并在 dcolumn 中定义列宽

问题描述
我正在尝试结合 LaTex 中的 tabularx 和 dcolumn usepackage 来格式化我的表格。我的目标是创建一个表格;

  1. 拉伸文本的宽度
  2. 对于包含数值数据的列(即第 2-4 列),列宽固定(2cm)。
  3. 将数值数据沿小数点左右对齐。

通过使用带有 \textwidth 参数的 tabularx,表格的外部尺寸是正确的。我很难将第 2 点和第 3 点结合起来。表 1 中含有数值数据的列的列宽正确,但它们在小数点附近没有对齐。使用 dcolumn 包创建 \newcolumntype 并将其插入 \multicolumn 会丢弃定义的列宽(表 2)。

我找到了两篇相关的帖子,但它们对解决这个特定问题没有帮助。
将 dcolumn 中定义的列类型与 tabularx 结合起来
dcolumn 和 tabularx,第 2 部分

欢迎提出任何想法!
谢谢

代码
-MiKTeX 2.9

\documentclass[11pt,a4paper]{article}

%preamble
\usepackage{array}
\usepackage{dcolumn}
\usepackage{tabularx}

\begin{document}

\newcolumntype{.}{D{.}{.}{-1}}

\begin{table}[!h]
\caption{correct table layout (column spacing of column 2, 3, 4)}
\begin{tabularx}{\textwidth}{| X | m{2cm} | m{2cm} | m{2cm} |}
\hline
item1   & 3.14  & 12.23 & 1.23\\
\hline
item2   & 31.4  & 0.13  & 74.25\\
\hline
\end{tabularx}
\end{table}


\begin{table}[!h]
\caption{correct cell alignment on decimal point}
\begin{tabularx}{\textwidth}{| X | m{3cm} | m{3cm} | m{3cm} |}
\hline
item1   & \multicolumn{1}{| . |}{3.14}  & \multicolumn{1}{ . |}{12.23}  & \multicolumn{1}{| . |}{1.23}\\
\hline
item2   & \multicolumn{1}{| . | }{31.4} & \multicolumn{1}{ . |}{0.13}   & \multicolumn{1}{| . |}{74.25}\\
\hline
\end{tabularx}
\end{table}

\end{document}

答案1

也许是时候开始使用siunitx包及其S列类型了。它提供table-column-width键并能够在小数点处对齐。

\documentclass[11pt,a4paper]{article}

%preamble
\usepackage{array}
\usepackage{siunitx}
\usepackage{tabularx}

\begin{document}

\begin{table}[!h]
\sisetup{
table-format = 2.2 ,
table-number-alignment = center ,
table-column-width = 2cm ,
}
\caption{correct table layout (column spacing of column 2, 3, 4) and decimal alignment using \texttt{S} column type}
\begin{tabularx}{\textwidth}{| X | S | S | S |}
\hline
item1   & 3.14  & 12.23 & 1.23\\
\hline
item2   & 31.4  & 0.13  & 74.25\\
\hline
\end{tabularx}
\end{table}

\begin{table}[!h]
\caption{correct table layout (column spacing of column 2, 3, 4)}
\begin{tabularx}{\textwidth}{| X | m{2cm} | m{2cm} | m{2cm} |}
\hline
item1   & 3.14  & 12.23 & 1.23\\
\hline
item2   & 31.4  & 0.13  & 74.25\\
\hline
\end{tabularx}
\end{table}

\end{document}

在此处输入图片描述

相关内容