答案1
tabularx 环境有用吗?
是的。但是它不是用来替换的环境tabular
(也就是说,将每个表格都设为 tabularx 是没有意义的)。
我们什么时候应该使用 tabularx 环境?
当您需要计算列相对于总宽度的宽度时,应该使用它。请注意,如果您的列很短并且不包含换行符,则使用 不会有任何好处。您可以使用常规或说明符tabularx
获得固定宽度的列。p
wl
您有任何这个环境有用的例子吗?
- 当您需要重现文字处理器表格时,它非常有用,因为它们通常使用大小相同的列。
- 当您需要拥有几列大小相同且有换行符的列时。
- 当您很匆忙并且不想进行计算时。
答案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
不适合那些情况。
列X
是p
自动确定宽度的列,但与任何p
列一样,它是\parbox
为换行到指定宽度的文本段落而设计的。