latex 如何使表格的宽度与文本的宽度相同?

latex 如何使表格的宽度与文本的宽度相同?

我用过\begin{tabularx}或者\begin{tabular*}但是这两个都不起作用,这两个环境设法将表格的宽度增加到与文本相同的程度,但它们不能让表格内的列内容随着表格宽度的增加而增加。

答案1

环境tabular*只能作用于列间距,而tabularx可以通过列说明符决定列的宽度X。如果使用后者的环境而没有X列,则不会发生自动放大。

假设您有三列,第一列列出项目,第二列列出描述,第三列列出评论;我们希望后两列按比例放大到所需的表格宽度

\usepackage{tabularx,booktabs}
...

\begin{tabularx}{\textwidth}{l X X}
\toprule
Item & Description & Comments \\
\midrule
Item 1 & 
  this is the description of item 1 &
  these are the comments on item 1 \\
Item 2 & 
  this is the description of item 2 &
  these are the comments on item 2 \\
...
\bottomrule
\end{tabularx}

(我使用了书签包)。将环境放入table带有的环境内\centering,就大功告成了。也可以有X不同宽度的列,手册中介绍了一种方法tabularx。还有禁忌包,应该能够管理这种表。

答案2

我假设你的意思是\tabskip-glue (纯格式的示例):

\halign{\tabskip1em plus .2\hsize#\hfil&#\hfil&\tabskip0pt #\hfil\cr
  A testing&table&with\cr Some&content&booyah\cr}
\smallskip\hrule\smallskip
\halign to \hsize{\tabskip1em plus .2\hsize#\hfil&#\hfil&\tabskip0pt #\hfil\cr
  A testing&table&with\cr Some&content&booyah\cr}
\smallskip\hrule\smallskip
\halign to .5\hsize{\tabskip1em plus .2\hsize#\hfil&#\hfil&\tabskip0pt #\hfil\cr
  A testing&table&with\cr Some&content&booyah\cr}
\bye

tabskipglue

如您所见,唯一改变的是 的宽度\halign。 tabskip 粘合的正向可拉伸性使列可以展开以适应可用空间。

答案3

这是一个简单的方法:

\newlength\q
\setlength\q{\dimexpr .5\textwidth -2\tabcolsep}
\noindent\begin{tabular}{p{\q}p{\q}}
alfa & bravo \\
charlie & delta
\end{tabular}

相关内容