4. LaTeX 表格样式与常用表格类型

LaTeX 表格格式与常用表格类型

  在论文写作过程中,经常需要通过表格化的方式呈现一些数据,LaTeX 所有的宏包文件都要写在 \documentclass 命令之后和 \begin{document} 之前。在本文中,会用到与 LaTeX 表格相关的宏包如下:

\documentclass{article}
\usepackage{booktabs}  %% 三线表
\usepackage{diagbox}   %% 斜线表头
\usepackage{multirow}  %% 合并单元格



\begin{document}
\title{ ... }
\author{ ... }
\date{...}
\maketitle
...
\end{document}

1. 表格的基本使用

表格的基本模板详解:

\begin{table}[!h]
    \renewcommand{\arraystretch}{1.3}
    \caption{An Example of a Table}
    \label{table_example}
    \centering
    \begin{tabular}{|c|c|}
        \hline
        One & Two \\
        \hline
        Three & Four\\
        \hline
    \end{tabular}
\end{table}

效果如下:

4. LaTeX 表格样式与常用表格类型_第1张图片

表格和图片的插入很多地方都是一致的,下面我们说一下不同的语法:

1、框架

  \begin{table}[!h]
    
  \end{table}

整体大框架明确了表格的开始 (\begin) 和结束 (\end) 的位置,table 说明插入的是图片。[!h] 是表格的摆放格式,所有的格式和图片一致。

  1. [h] 当前位置(here):h 表示你在编写的时候中在哪里,论文最终显示图片的位置就在哪里,但是如果这一页的空间不足以放下这个图片,此时图片会转到下一页;
  2. [t] 顶端(top):t 表示优先将图片放置在页面对应排的顶部;
  3. [b] 底端(bottom):b 表示优先将图片放置在页面对应排的底部;
  4. [p] 浮动:将图片设置为浮动状态,系统会自动排版图片的位置;

2、行高

\renewcommand{\arraystretch}{1.3}

这一段设置的表格的行高。如果我们将 1.3 修改成 3,就变成了如下图:

4. LaTeX 表格样式与常用表格类型_第2张图片

3、标题与标签

\caption{An Example of a Table}
\label{table_example}

caption 是图像的标题。{ } 中就是标题的具体内容,标题还会有编号,一般都是自动编号。label 是标签,标签主要是在引用的时候被用到。

4、居中展示

\centering

centering 表示将表格居中显示,用在图片里则表示图片的居中展示。

但是如果表格的宽度超过了当前排的宽度,它就会越过去。

4. LaTeX 表格样式与常用表格类型_第3张图片

如果是这样的话,我们就要讲图片设置为页面浮动格式了,需要在上面的框架table 后面添加 *,这样的话表格就会横跨论文页面的两栏。

5、表格内容

\begin{tabular}{|c||c|}
      \hline
      One & Two \\
      \hline
      Three & Four\\
      \hline
    \end{tabular}

这一整块就是表格的内容了。下面的语句表示表格内容的开始和结束:

\begin{tabular}{|c||c|}

\end{tabular}

{|c|c|} 表示的是表格中内容的样式和竖边框线。有两个 columns,说明这个表格有两列,第一个 columns 的左边有一个竖线,说明表格有左边框线,两个 columns 之间有两个竖线,说明中间的分隔线是双线,后面 columns 的右面有一个竖线,说明表格有右边框线。

我们还可以把 c 换成 l 或者 r:

  1. l:l 表示 left,即左对齐;
  2. c:c 表示 center,即居中;
  3. r:r 表示 right,即右对齐;

hline 表示该边框是有实线的,如果没有 hline,就表示这行没有边框横线。

如果我们希望部分有实线,部分没有呢?

4. LaTeX 表格样式与常用表格类型_第4张图片

我们希望在第二行的第 1 列、第 3 列 和第 5 列有横向,可以这样写:

\cline{1-1} \cline{3-3} \cline{5-5}

\begin{table*}[!h]
    \renewcommand{\arraystretch}{1.2}
    \caption{An Example of a Table}
    \label{table_example}
    \centering
    \begin{tabular}{c c c c c}
        \hline
        A & B & C & D & E \\
        \cline{1-1} \cline{3-3} \cline{5-5}
        1 & 2 & 3 & 4 & 5 \\
        1 & 2 & 3 & 4 & 5 \\
        \hline
    \end{tabular}
\end{table*}

说明:表格中的每一列的内容,要用 & 隔开,一行结束,要用 \\ 符号换行。


2. 表格的引用

表格的引用要用到命令 ref,例如我们要引用上面的表格,就可以这样调用:

As show in tabel \ref{table_example}, it explains that ...

4. LaTeX 表格样式与常用表格类型_第5张图片


3. 常用表格类型

1、三线表

三线表是常用的一类表格,根据上面介绍的表格的基础模板,我们可以很简单写出一个三线表的示例:

4. LaTeX 表格样式与常用表格类型_第6张图片

\begin{table}[!h]
    \renewcommand{\arraystretch}{1.2}
    \caption{An Example of a Table}
    \label{table_example}
    \centering
    \begin{tabular}{c c c c c}
        \hline
        A & B & C & D & E \\
        \hline
        1 & 2 & 3 & 4 & 5 \\
        1 & 2 & 3 & 4 & 5 \\
        \hline
    \end{tabular}
\end{table}

这个是最简单的三线表,如果我们希望最上面和最下面的横线更粗一些呢?

导入三线表的宏包:\usepackage{booktabs}

然后改写代码中横线的部分:

\begin{table}[!h]
    \renewcommand{\arraystretch}{1.2}
    \caption{An Example of a Table}
    \label{table_example}
    \centering
    \begin{tabular}{c c c c c}
        \toprule
        A & B & C & D & E \\
        \midrule
        1 & 2 & 3 & 4 & 5 \\
        1 & 2 & 3 & 4 & 5 \\
        \bottomrule
    \end{tabular}
\end{table}

4. LaTeX 表格样式与常用表格类型_第7张图片

2、斜线表头

斜线表头需要引入宏包:\usepackage{diagbox}

斜线表头主要是一个单元格分成两块或三块:

\diagbox{A1}{A2}      %% 分成两块,分别是A1和A2
\diagbox{A1}{A2}{A3}  %% 分成三块,分别是A1、A2和A3

然后我们把这个当成一个单元格写进去。

\begin{table}[!h]
    \renewcommand{\arraystretch}{1.2}
    \caption{An Example of a Table}
    \label{table_example}
    \centering
    \begin{tabular}{|c|c|c|c|c|}
        \hline
        \diagbox{A1}{A2}{A3} & B & C & D & E \\
        \hline
        a1 & 2 & 3 & 4 & 5 \\
        \hline
        a2 & 2 & 3 & 4 & 5 \\
        \hline
        a3 & 2 & 3 & 4 & 5 \\
        \hline
    \end{tabular}
\end{table}

执行的效果如下:

4. LaTeX 表格样式与常用表格类型_第8张图片

3、单元格的合并

单元格的合并需要用到一个包:\usepackage{multirow}

直接通过一个例子来讲解:

4. LaTeX 表格样式与常用表格类型_第9张图片

\begin{table}[!h]
    \renewcommand{\arraystretch}{1.2}
    \caption{An Example of a Table}
    \label{table_example}
    \centering
    \begin{tabular}{|c|c|c|c|c|}
        \hline
        \multicolumn{2}{|c|}{\multirow{2}{*}{A}} & \multicolumn{3}{c|}{B} \\ 
        \cline{3-5} 
        \multicolumn{2}{|c|}{}   & B1     & B2    & B3    \\ 
        \hline
         1 & 2 & 3 & 4 & 5     \\ 
        \hline
    \end{tabular}
\end{table}

从分隔符 & 与 换行符 \\ 的数目,我们就知道这个是一个三行五列的表格。我们发现,第一行只有一个 & ,说明第一行只有两个单元格,第二行有3个 & ,说明第二行有4个单元格。

\multicolumn{2}{|c|}{\multirow{2}{*}{A}}

用到了两个命令:

  1. \multicolumn{}{}{}
  2. \multirow{}{}{}

第一个命令是多列合并,第二个命令是多行合并,如果是嵌套使用,那就是多行多列合并

每个大括号内容的含义如下:

  • 第一个大括号是要合并的数量,用到第一个命令中就是要合并多少列,用到第二个命令中就是要合并多少行。
  • 第二个大括号是行中每列数据的格式及对应的边框线。合并行的格式一般都默认是遵循前面的,写*。
  • 第三个大括号是当前单元格的内容。

这种合并方式读起来很麻烦,而且很不容易理解,别说是读者了,作者写起来也感觉非常复杂,那么这种单元格合并是否有比较好的解决办法呢?有的!

在线表格生成工具:https://www.tablesgenerator.com/

Step1:选择表格大小;

4. LaTeX 表格样式与常用表格类型_第10张图片

点击【Column】和【Row】可以在选择的表格中向左、向右添加列,向上、向下添加行,还包括表格的基本样式(边框、文字居中、加粗等)

Step2:合并和分割单元格,选中对应的行或列上的单元格,【merge cells】;

4. LaTeX 表格样式与常用表格类型_第11张图片

Step3:然后点击一键生成即可;

4. LaTeX 表格样式与常用表格类型_第12张图片

这一部分的笔记整理成PDF上传到了百度网盘,提取码:6666. --来自百度网盘超级会员V2的分享

你可能感兴趣的