我的问题是,我的文档中有许多具有相同布局的表格,我想将特定列的最大宽度指定为 5 厘米。我尝试使用 p{5cm},但它使列固定为 5 厘米宽,并且只有一个短单词,看起来很奇怪。我希望它尽可能窄,如果它的宽度超过 5 厘米,则将其分成两行。有什么办法可以解决我的问题吗?
答案1
你可以这样做varwidth
:
\documentclass{article}
\usepackage{array} % for defining a new column type
\usepackage{varwidth} %for the varwidth minipage environment
\begin{document}
\newcolumntype{M}{>{\begin{varwidth}{4cm}}l<{\end{varwidth}}} %M is for Maximal column
Table with short rows:
\begin{tabular}{|M|}
hello hello hello
\end{tabular}
Same table, with long row:
\begin{tabular}{|M|}
hello hello hello hello hello hello
\end{tabular}
\end{document}
编译结果为:
谢谢你启发我去寻找这个答案。这是一个很好的问题!
答案2
我建议使用V
的列类型varwidth
。输出与 Yossi Farjoun 的输出略有不同(参见问题)。
\documentclass{article}
\usepackage{array}
\usepackage{varwidth} % must be loaded after array
\begin{document}
Table with short rows:
\begin{tabular}{|V{4cm}|}
hello hello hello
\end{tabular}
\bigskip
Same table, with long row:
\begin{tabular}{|V{4cm}|}
hello hello hello hello hello hello
\end{tabular}
\end{document}
答案3
你也可以这样做:
\documentclass{article}
\usepackage{array} % for defining a new column type
\begin{document}
Table with short rows:
\begin{tabular}{|p{4in}|}
hello hello hello
\end{tabular}
Same table, with long row:
\begin{tabular}{|p{2in}|}
hello hello hello hello hello hello
\end{tabular}
\end{document}