写在前面的话
每天都做点像样的事情,每天都要保持像*程序员进阶的欲望,每天都做点*研究人员做的事情。
如果在看本文的时候有任何不懂的地方,请您告诉我,我一定帮您解答清楚。
这里我们就不针对没有任何基础的同学了。只是总结一些平时论文常会用到的表格,方便发论文的时候拿来直接用。有备无患~
1.基本语法
在Latex中我们要录入表格一般使用的是tabular 或者是array。这两者的区别就是在文本或者数学模式下tabular都支持,array只支持数学模式。
其基本语法格式如下所示:
\begin{tabular}[{垂直对齐}]{(列格式说明)}
<表项> & <表项> &...& \\
\end{tabular}
\begin{array}[{垂直对齐}]{(列格式说明)}
<表项> & <表项> &...& \\
\end{array}
列表格式的一些说明:
l 本列左对齐(小写的L)
c 本列居中
r 本列右对齐
*{(计数)} {(列格式说明)} 将给出的列的格式说明重复多次。
@{ (内容)} 添加任意的内容, 不占表项计数,取消列表间的间隔
t 顶部对齐
b 底部对齐
如果我们要构建一个行列式:
可以使用下面的代码
$\left(\begin{tabular}{ccc|c}
a11 & a12 & a13 & b1 \\
a21 & a22 & a23 & b2 \\
a31 & a32 & a33 & b3 \\
\end{tabular}\right)$
在这里一定要注意代码的书写,左括号和右括号必须紧跟表格的
显示的结果如下:
如果我们想绘制一个比较宽松看上去不那么死板的表格,可以用下面这个语句。
\begin{tabular} {|l|r|}
\hline
这是一个 & 紧凑的表格 \\ \hline
tight & table \\ \hline
\end{tabular}
\renewcommand\arraystretch{2}
\begin{tabular} {|l|r|}
\hline
这是一个 & 宽松的表格 \\ \hline
loose & table \\ \hline
\end{tabular}
在这里我们用到的语句是
\renewcommand\arraystretch{2} 这个语句作用的范围就是从开始使用该语句以下的语句这里的arraystretch{2}表示扩展的宽度。
我们来比较一下他们的效果
2.表格单元的合并与分割
现在才是要讲我们本章内容的重点,我们遇到的表格常常会有单元格的合并,这才是最头痛的地方。
2.1 列的合并
我们使用\multicolumn{项数}{新列格式}{内容} 命令将一行中的几个不同的表格合并为一项
\documentclass[UTF8]{ctexart}
\begin{document}
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{2}{|c|}{成绩} \\ \hline
语文 & 数学 \\
\hline
87 & 100 \\
\hline
\end{tabular}
\end{document}
在这里需要注意的一个地方就是当我们使用了\multicolumn{合并的列数}的时候这个时候我们在表头定义的格式就会完全对我们重新合并的单元格失去作用,所以我们自己必须重新定义新的格式。也就是我们例子中的这个样子
\multicolumn{2}{|c|}
使得新定义的列居中对齐
我们可以得到如下效果:
2.2行的合并
对于行的合并我们使用的是\cline这个命令.这个命令有点像我们的\hline这个命令。它们两者都是用来画水平的表格线,但是\cline可以用来指定画线的起始和终止位置。
比如我们要画如下效果的表格:
代码如下:
\begin{tabular}{|c|r|r|}
\hline
& \multicolumn{2}{|c|}{成绩} \\ \cline{2-3}
姓名 & 语文 & 数学 \\
\hline
张三 & 87 & 100 \\
\hline
\end{tabular}
因为\cline可以画出一条不完全的线条,所以可以产生跨行表格的选项的效果。但是我们其实可以发现这样画出来的并不是很好看,因为我们可以发现我们的表格在姓名那一栏完全就是没有居中,这样是不完美。为了使得我们的表格更加的好看,我们需要引入一个类似\multicolumn{}{}{}这样对应的代码。那就是\multirow这个命令。
但是需要注意的是,我们在使用\multirow这个命令时必须要引入它的宏包。也就是必须要在导言区增加如下的代码:
\usepackage{multirow}这个代码。重要的事情看清楚!!!!!!!!!!啥是导言区,就是文档最开头的位置。当然是在\documnetclass{} 下面,在\begin{document}的前面这个位置
我们改一下我们的代码
\documentclass[UTF8]{ctexart}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|r|r|}
\hline
\multirow{2}*{姓名} & \multicolumn{2}{c|}{成绩} \\ \cline{2-3}
& 语文 & 数学 \\
\hline
张三 & 87 & 100 \\
\hline
\end{tabular}
\end{document}
我们得到的效果如下所示:
与\multicolumn命令相反,我们使用\vline在表项内部画一条只占一行高度的竖线,用它来拆分我们的列。
但是问题又来了,还是丑,使用\vline的一个主要问题就是不易掌握间距,所以我们采取的是嵌套表格的方法。我们使用@{ }来消除间距和竖线
代码如下所示:
-
-
\begin{tabular}{|c|}
-
\hline
-
1 \\ \hline
-
\begin{tabular}{@{}c|c@{}} 1 & 2 \end{tabular} \\ \hline
-
\begin{tabular}{@{}c|c|c@{}} 1 & 2 & 3 \end{tabular} \\ \hline
-
\end{tabular}
-
得到的效果如下所示:
果真好看了很多!
我们还可以使用makecell宏包在表格中的表项进行分行。makecell宏包提供的\makecell命令可以单独控制表项单元,可以在表项中使用\\命令*换行。
写在后面的话
2016年7月30号,我的研究生生活正式开始了,我要在我研究生一年级的时候发一篇A!!!!
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程 /chichoxian
喜欢的话,请扫描二维码~