如何才能使表格段落中的最后一列格式化(换行符),同时仍然受到表格总宽度的限制?

如何才能使表格段落中的最后一列格式化(换行符),同时仍然受到表格总宽度的限制?

我有一张表格,其最后两列将包含大量文本,但我不知道如何以适合的方式定义这些列。我最初的尝试如下:

\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

您可以使用tabularxX要为最后一列添加“灵活宽度”列(类型),请说:

在此处输入图片描述

\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}​

这不会超出页面边界。

geometrylipsum仅为了本例而加载。

答案2

如果您想坚持使用tabulary,您可能想尝试通过将最后两个设置为“L”并调整长度\tymin和来调整列宽\tymax。我不太清楚这是如何工作的(我刚刚在制表手册中读到它)。

尝试以下方法:

\tymax=2.5in

看看会发生什么。

相关内容