我有一张表格,其最后两列将包含大量文本,但我不知道如何以适合的方式定义这些列。我最初的尝试如下:
\begin{tabulary}{\textwidth}{ | c | c | c | c | p{2.5 in} | l | }
这使得最后一列不会中断,并且延伸到页面边缘之外(不符合\textwidth
)。我可以做这样的事情:
\begin{tabulary}{\textwidth}{ | c | c | c | c | p{2.5 in} | p{2.5 in} | }
我不喜欢这样,因为这样一来,原始\textwidth
定义就会被完全覆盖,这意味着我还需要对前 4 列的宽度进行硬编码,而我却无法使用 LaTeX 动态调整宽度以使内容看起来美观的功能。作为参考,将所有宽度保留为未定义状态,并对最后两列使用“L”会以一种看起来很尴尬的方式压缩倒数第二列,因为最后一列包含更多文本。
答案1
您可以使用tabularx
X
要为最后一列添加“灵活宽度”列(类型),请说:
\documentclass{article}
\usepackage[margin=1cm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\noindent\begin{tabularx}{\textwidth}{|*{4}{c|}p{2.5in}|X|}
Here & is & some & text & \lipsum[1-3] & \lipsum[2-4]
\end{tabularx}
\end{document}
这不会超出页面边界。
答案2
如果您想坚持使用tabulary
,您可能想尝试通过将最后两个设置为“L”并调整长度\tymin
和来调整列宽\tymax
。我不太清楚这是如何工作的(我刚刚在制表手册中读到它)。
尝试以下方法:
\tymax=2.5in
看看会发生什么。