什么时候应该使用或不应该使用 tabularx 环境?

什么时候应该使用或不应该使用 tabularx 环境?

我在这里问了一个问题egreg回复了tabularx 环境不是合适的工具。他用 tabular 环境解决了这个问题。 沃纳没有也可以使用它。在这个问题Mico 也说 tabularx 环境不适合。

我认为 tabularx 环境适合获取相同宽度的列,但这可以在 tabular 环境中完成,如下所示埃格雷格确实

  1. tabularx 环境有用吗?
  2. 我们什么时候应该使用 tabularx 环境?
  3. 您有任何这个环境有用的例子吗?

答案1

tabularx 环境有用吗?

是的。但是它不是用来替换的环境tabular(也就是说,将每个表格都设为 tabularx 是没有意义的)。

我们什么时候应该使用 tabularx 环境?

当您需要计算列相对于总宽度的宽度时,应该使用它。请注意,如果您的列很短并且不包含换行符,则使用 不会有任何好处。您可以使用常规或说明符tabularx获得固定宽度的列。pwl

您有任何这个环境有用的例子吗?

  • 当您需要重现文字处理器表格时,它非常有用,因为它们通常使用大小相同的列。
  • 当您需要拥有几列大小相同且有换行符的列时。
  • 当您很匆忙并且不想进行计算时。

答案2

TeXnician 已经说过什么时候有用,我想补充一下什么时候有害。

切勿tabularx在没有X柱子的情况下使用!

有时我在这里看到有这种错误用法的问题,千万不要这样做!

\documentclass{article} 
\usepackage{caption} 
\usepackage{array}
\usepackage{booktabs}
\usepackage{tabularx}  

\begin{document} 
\begin{table}\centering 
\caption{Here it is useful} 
\begin{tabularx}{\linewidth}{Xcc} 
\toprule
Column A & Column B & Column C \\ 
\midrule
\texttt{tabularx} is useful when there is one (or more) columns with long text which goes on more than one row & lions & ducks \\ 
\bottomrule
\end{tabularx}
\end{table}
\begin{table}\centering 
\caption{\label{tab:awful}Here it is useless and a bit awful (you only have short text in columns, there is too much blank space left)} 
\begin{tabularx}{\linewidth}{*3{>{\centering\arraybackslash}X}} 
\toprule
Column A & Column B & Column C \\ 
\midrule
marmots & lions & ducks \\ 
\bottomrule
\end{tabularx}
\end{table}
\begin{table}\centering 
\caption{\label{tab:wrong}Here it is detrimental and horrible (never use \texttt{tabularx} without an X column)} 
\begin{tabularx}{\linewidth}{ccc} 
\toprule
Column A & Column B & Column C \\ 
\midrule
marmots & lions & ducks \\ 
\bottomrule
\end{tabularx}
\end{table}
\begin{table}\centering 
\caption{Instead of Table \ref{tab:awful} or Table \ref{tab:wrong}, this one is much better} 
\begin{tabular}{ccc} 
\toprule
Column A & Column B & Column C \\ 
\midrule
marmots & lions & ducks \\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

在此处输入图片描述

答案3

需要注意的是tabularx,这一切都是为了自动设置目标长度换行在一列内。然而,科学文献中的绝大多数数据表(标题除外)都是数值数据表,列内没有换行符,所以我认为这tabularx不适合那些情况。

Xp自动确定宽度的列,但与任何p列一样,它是\parbox为换行到指定宽度的文本段落而设计的。

相关内容