![如何才能使表格段落中的最后一列格式化(换行符),同时仍然受到表格总宽度的限制?](https://linux22.com/image/256350/%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E4%BD%BF%E8%A1%A8%E6%A0%BC%E6%AE%B5%E8%90%BD%E4%B8%AD%E7%9A%84%E6%9C%80%E5%90%8E%E4%B8%80%E5%88%97%E6%A0%BC%E5%BC%8F%E5%8C%96%EF%BC%88%E6%8D%A2%E8%A1%8C%E7%AC%A6%EF%BC%89%EF%BC%8C%E5%90%8C%E6%97%B6%E4%BB%8D%E7%84%B6%E5%8F%97%E5%88%B0%E8%A1%A8%E6%A0%BC%E6%80%BB%E5%AE%BD%E5%BA%A6%E7%9A%84%E9%99%90%E5%88%B6%EF%BC%9F.png)
我有一张表格,其最后两列将包含大量文本,但我不知道如何以适合的方式定义这些列。我最初的尝试如下:
\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
看看会发生什么。