如何在LaTeX表中包装文本?
我正在LaTeX中创build一个涉及几个表格的报告。 我被困在那,因为我的单元格数据在表中超过了页面的宽度。 我可以以某种方式包装文本,使其落入表格的同一单元格中的下一行?
它与桌子的宽度有什么关系? 但是,因为它超出了页面的宽度,这不会有什么不同,是吗?
使用p {width}代替你的列说明符而不是l / r / c。
\begin{tabular}{|p{1cm}|p{3cm}|} This text will be wrapped & Some more text \\ \end{tabular}
使用常规tabular
环境,您需要使用p{width}
列types,如marcog所示。 但是这迫使你给出明确的宽度。
另一个解决scheme是tabularx
环境:
\usepackage{tabularx} ... \begin{tabularx}{\linewidth}{ r X } right-aligned foo & long long line of blah blah that will wrap when the table fills the column width\\ \end{tabularx}
所有X列获得相同的宽度。 你可以通过在格式声明中设置\hsize
来影响这个:
>{\setlength\hsize{.5\hsize}} X >{\setlength\hsize{1.5\hsize}} X
但是所有的因素都必须总结为1,我想(我是从LaTeX的伴侣那里得到的)。 也有包装tabulary
,这将调整列的宽度,以平衡行高。 有关详细信息,可以使用texdoc tabulary
(TeXlive)获取每个包的文档。
另一种select是在需要文本换行的每个单元格中插入一个小型文件,例如:
\begin{table}[H] \begin{tabular}{l} \begin{minipage}[t]{0.8\columnwidth}% a very long line a very long line a very long line a very long line a very long line a very long line a very long line a very long line a very long line a very long line a very long line % \end{minipage}\tabularnewline \end{tabular} \end{table}
我喜欢tabulary
包装的简单:
\usepackage{tabulary} ... \begin{tabulary}{\linewidth}{LCL} \hline Short sentences & \# & Long sentences \\ \hline This is short. & 173 & This is much loooooooonger, because there are many more words. \\ This is not shorter. & 317 & This is still loooooooonger, because there are many more words. \\ \hline \end{tabulary}
在这个例子中,你将整个表格的宽度相对于\ textwidth进行排列。 例如0.4。 然后剩下的就由包自动完成了。
这个例子大部分来自http://en.wikibooks.org/wiki/LaTeX/Tables 。
如果要包装文本但保持alignment,则可以将该单元格包装在varwidth
或varwidth
环境中(varwidth来自varwidth包)。 Varwidth的宽度与内容一样宽但不超过X。 您可以创build一个类似“p {xx”的自定义列types,但是会缩小以适合使用
\newcolumntype{M}[1]{>{\begin{varwidth}[t]{#1}}l<{\end{varwidth}}}
这可能需要array
封装。 然后当你使用像\begin{tabular}{llM{2in}}
的东西时,前两列我们是正常的左alignment,第三列是正常的左alignment,但是如果它比2更宽,那么文本将被包装。
\begin{table} \caption{ Example of force text wrap} \begin{center} \begin{tabular}{|c|c|} \hline cell 1 & cell 2 \\ \hline cell 3 & cell 4 & & very big line that needs to be wrap. \\ \hline cell 5 & cell 6 \\ \hline \end{tabular} \label{table:example} \end{center} \end{table}