表格中强制换行

额?你想把一大段文字放进你的表格里,却得到了以下的结果?

太惨的案例。然后你居然想用\\换行?然而展现在你的眼前的是以下惨不忍睹的状况:

怎么办?总之,表格是方便我们阅读的东西,我们大概不应该把太长的段落放进去,这样就失去了表格的作用。可是,你真的真的很需要把长篇大论放进去,怎么办?解决的方法有很多,但是我准备介绍一个我觉得比较简单的。

一般情况下,我们在\begin{tabular}{}中都会选择l r或者c,来保证文字出现在表格中的位置。但我们现在为了让一个小小的表格可以容纳下几行字,我们必须限制表格的空儿(kòngr, 英文:cell)的大小,使得这长长的文字不得不换行。这样我们就把选项换成p{大小}。比如:

1
2
3
4
5
6
7
8
9
10
\begin{table}[ht]
\caption{Sir Jilliam Wones on the Brag.dbar language}
\begin{center}
\begin{tabular}{c|p{4cm}}
\hline
Antiquity & Whatever be its antiquity, is of a wonderful structure. More perfect than the Tibetan, more copious than the Chinese, yet bearing to both in th \\
\hline
\end{tabular}
\end{center}
\end{table
}

编译过后,你的表格看起来会是这样:


虽然不是很完美,但谁让你写这么多字!

但这里有一个bug,如果你的第一个单词的长度是大于你预设空儿的宽度,它就不会自动断开…… 所以必须保证你的第一个词的长度短于你设定的空儿的宽度。如以下指令码,我把空儿的宽度设为2cm,但放了俩超长单词,supercalifragilisticexpialidocious,还有Llanfair­pwllgwyngyll­gogery­chwyrn­drobwll­llan­tysilio­gogo­goch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
\begin{table}[ht]
\caption{Sir Jilliam Wones on the Brag.dbar language}
\begin{center}
\begin{tabular}{|c|p{2cm}|}
\hline
long word & supercalifragilisticexpealidocious\\
\hline
long word with ``it is" & it is supercalifragilisticexpealidocious\\
\hline
long town name & Llanfair­pwllgwyngyll­gogery­chwyrn­drobwll­llan­tysilio­gogo­goch\\
\hline
with ``it is '' & it is Llanfair­pwllgwyngyll­gogery­chwyrn­drobwll­llan­tysilio­gogo­goch\\
\hline
\end{tabular}
\end{center}
\end{table
}

出来的效果:

太难看!

所以,表格里的文字还是越精简越好。

Author: Lai, Yunfan

目前是马克斯普朗克协会人类历史科学研究所(Max-Planck Institut für Menschheitsgeschichte)的博士后。

评论