如何让多个表的列大小相同?

如何让多个表的列大小相同?

在我的文档中,我有几个表格,每个表格都有两列。我想让所有表格的第一列宽度相同,并且每个表格的第二列应占据页面的剩余部分。

我可以使用 tabularx 和 X 实现第二个要求。但是,我不知道如何在不指定确切大小的情况下使每个表的第一列大小相同。我不想指定确切的大小,因为我希望所有表的第一列都具有显示任何表的第一列中最长文本所需的最小宽度。有没有办法在不指定具体宽度的情况下实现这一点?

答案1

我想将其添加为评论,但我没有这方面的名气。您可以尝试使用 ltxtable。它结合了 tabularx 和 longtable。您可以使用带有 X 列的 longtable,也可以使用 longtable 的 \kill 命令。使用它,您可以粘贴每个表中最长的第一列,然后将其删除。此行不会出现,但仍将用于测量表格的宽度。当然,其他行不应比第一行长。

答案2

这是 (≥ 6.25a) 的解决方案nicematrix。该包提供了一种机制,以使表格的所有列(由创建)具有{NiceTabular}相同nicematrix的宽度,但X列除外。这就是您所需要的。

\documentclass{article}
\usepackage{geometry}
\usepackage{nicematrix}

\begin{document}

\begin{NiceMatrixBlock}[auto-columns-width]
\begin{center}
\begin{NiceTabular}{@{}lX}
1 & Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus rhoncus lectus ac odio ullamcorper dignissim.
In sed nibh sed velit volutpat pellentesque quis quis mauris \\
2 & Praesent dapibus gravida arcu lacinia efficitur. In in tortor ut purus egestas facilisis. Vivamus vitae tortor
eleifend, laoreet neque non, ultricies leo 
\end{NiceTabular}
\end{center}
Now, the second table:
\begin{center}
\begin{NiceTabular}{@{}lX}
12345678 & Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus rhoncus lectus ac odio ullamcorper dignissim.
In sed nibh sed velit volutpat pellentesque quis quis mauris \\
2 & Praesent dapibus gravida arcu lacinia efficitur. In in tortor ut purus egestas facilisis. Vivamus vitae tortor
eleifend, laoreet neque non, ultricies leo 
\end{NiceTabular}
\end{center}
\end{NiceMatrixBlock}

\end{document}

上述代码的输出

相关内容