naive blog
LaTeX入门(九)——表格
在介绍完如何在LaTeX中插入图片之后,我们接下来进入表格的环节。在这个环节,我觉得首先我们需要再重新认识一下浮动体。
之前在讲图片的时候,我们就把
figure
环境叫做浮动体。那么,这个东西究竟是什么呢?
还是拿设计衣服做比较吧。我们在衣服上想加一些装饰物,比如说,加上一朵绣花。那么,我们需要的,不仅是一朵绣花,还需要一个别针,绣花串在别针上,别针别在衣服上。而且,为了颜色的搭配,不同颜色的绣花还要对应颜色的别针。绣花在衣服上的位置就是由别针决定的,而我们也可以直接由别针的颜色来推断出绣花的颜色。那么,别针就相当于一个浮动体,绣花是我们要添加的主体。在图片插入中,
figure
环境就是一个别针,
\includegraphics[]{}
就是绣花。我们插入的是图片还是表格,这就相当于绣花的颜色,但LaTeX并不是根据绣花的颜色来进行判断,而是根据别针的颜色,即浮动体的种类来进行判断的。下面,我们就来通过具体的表格语句来体会这个含义吧:
如果我们想在LaTeX中插入一个2乘2的表格,里面的元素分别是
$\displaystyle a11, a12, a21, a22$
, 那么,和图片一样,我们首先需要在导言区中使用
float
宏包,即在导言区中加入
\usepackage{float}
然后,在正文中想要插入表格的位置写上如下代码:
\begin{table}[H]
\centering
\caption{Title of table}
\begin{tabular}{|c|c|}\hline
a11&a12\\\hline
a21&a22\\\hline
\end{tabular}
\end{table}
根据这个代码和上面的讨论,我们有:
table
环境是别针,
tabular
环境是绣花,也就是主体。关于
table
环境我们没什么要重点讨论的。下面我们来看
tabular
环境。
首先,在
\begin{tabular}
后有
{|c|c|}
。这里的
|
是shift+\, 也就是回车键上方的键。这是什么意思呢?一个
|
代表表格中的一个竖线嘛,一个
c
代表一列。比如说,如果我们是
{c|c}
,那么排版出来的表格只有中间的一条竖线,没有两侧的边框线(不过标准论文里建议表格是没有最左和最右两个框线的)。此外,
c
代表对齐方式,有
l
,
c
,
r
三种,分别表示当前列左对齐,居中,右对齐。
那么,有没有对单独一个单元格的设置方法呢?方法是有的,但是不太优雅,用的是
\multicolumn{}{}{}
指令。比如说,我要设置当前单元格有左框线无右框线,内容右对齐,那么就在对应的位置写上
\multicolumn{1}{|r}{xxx}
, 其中
xxx
是当前单元格的内容。
此外,每一行还有
&
,
\hline
和
\\
. 每个
&
的作用是分列,一个
&
代表一列。而
\\
则代表断行。
\hline
的作用是在当前行的上方增加一条上框线。此外,还有
cline{}
可以指定从第几列到第几列有上框线。
此外,对于caption中的设置,我们也可以仿照图片使用
caption
宏包,只不过此时是
\captionsetup[table]{...}
.
重要!!重要!!!
这些表格具体的设置我们其实都不需要熟练掌握,只需要知道即可。这一切,多亏了 excel2latex . 运用这个插件,你就可以在Excel中编辑好表格,然后直接转化为对应的LaTeX代码。 在数学建模的过程中,我们经常会遇到数十行,内容为八位小数,还有合并的单元格的表格。这些表格手打肯定不现实,所以excel2latex这个插件是十分常用的。
接下来,就讨论一些特殊的表格
过长表格
有的表格可能有数十行,一页肯定放不下。但是,用上述的方法产生的表格只能在一页。因此,我们需要使用宏包
longtable
. 即在导言区中加入
\usepackage{longtable}
接着,我们在要插入长表格的地方加入语句
\begin{longtable}{|c|c|c|}
\caption{Title of long table}\\\hline
content of table
\end{longtable}
其中,
content of table
就是原来写在
tabular
环境中的东西。
过宽表格
对于过宽的表格,我们可以类似于过宽图片使用
adjustbox
宏包,但方法略微繁琐,可以用texdoc看该宏包的使用说明。我常用的方法则是另一种:
\begin{table}[H]
\caption{Title of too wide table}
\makebox[\textwidth][c]{
\begin{tabular}{cccccccccccccccccccc}
Content of table
\end{tabular}
}
\end{table}
即将
tabular
整个放入
makebox
的参数之中。