LaTeX - 表格

表格

LaTeX表格去以下几个网站制作:

表格首先要嵌入table浮动体环境中:

1
2
3
4
5
6
7
8
9
10
11
12
% 浮动体环境,[]内为浮动体位置,h表示here,t表示top,b表示bottom,p表示别的页面,!表示忽略美学标准
% 通常位置用法有:[h],[h!],[htbp],[htbp!],[H],可以逐一尝试选择效果最好的,H表示强制固定此处
% [H]需引入float宏包,其他命令不需要
\usepackage{float}
\begin{table}[htbp!] % 双栏排版时table为单栏表格,table*为跨栏表格,单栏排版时两者相同
\centering % 表格居中
\caption{name} % 表格上方显示的名称
\label{tab:xxx} % 表格交叉引用的标签
\begin{tabular}{c|lrc} % 每一列对齐方式,c表示居中,l左对齐,r右对齐,|表示表格竖线
% 此处为具体的表格内容
\end{tabular}
\end{table}

表格有两种形式,一种plain形式,一种booktabs形式。区别在于:booktabs竖线会被横线分割,且垂直间距更大,两者横线的命令不同。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
% plain形式
\begin{tabular}{c|ccc}
\hline % 插入一条横线,注意后面不加\\
1 & 2 & 3 & 4 & 5\\ % 其余文字部分需要加换行符\\
\hline
6 & 7 & 8 & 9 & 10\\
\hline\hline % 插入双横线
\end{tabular}

% booktabs形式
\begin{tabular}{c|c|c|c}
\toprule % 表格最上方的线,稍微粗一些
1 & 2 & 3 & 4 & 5\\
\midrule % 表格内部的线
6 & 7 & 8 & 9 & 10\\
\bottomrule % 表格最下方的线,稍微粗一些
\end{tabular}

表格横线类型

此处介绍常用的横线类型和分段式横线

1
2
3
4
5
6
7
\hline       % 单横线
\hline\hline % 双横线
\toprule
\midrule
\bottomrule
\cline{2-6} % 表示第2列到第9列的横线\cline{2-6}\cline{7-8}等价于\cline{2-8}
\cmidrule(r){2-6} % 表示第6-8列的非连续横线,\cmidrule(r){2-6}\cmidrule(r){7-8}中间会断开

多行和多列

1
2
\multirow{3}{*}{文字}       % 单元格跨多行,3为行数,*为占位符
\multicolumn{5}{c}{文字} % 单元格跨多列,5为列数,c为对齐方式

单元格内部换行

默认的表格中,单元格内的文字不会自动换行,加“\\”换行符也不行,可以在单元格中使用以下两种命令:

1
2
\makecell[c]{单元格内第一行文字\\单元格内第二行文字}
\begin{tabular}[c]{@{}c@{}}单元格第一行文字\\第二行文字\end{tabular}

表格缩放、间距

可在table环境内,tabular环境外加入一些调整表格间距的设置

1
2
3
4
5
6
7
8
\begin{table}[h]
\small % 调整表格字体
\linespread{1} % 调整表格行距,注意只能调整文字上方行距
\setlength{\tabcolsep}{1.5pt} % 调整表格列宽
\begin{tabular}{lccccc}
% 此处为表格内容
\end{tabular}
\end{table}

整体缩放表格,将tabular整体用resizebox或者scalebox包围起来进行表格缩放,前者参数为尺寸,后者为缩放比例:

1
2
3
4
5
6
\begin{table}[h]
\resizebox{0.5\textwidth}{!}{ % \textwidth表示文本部分宽度,!表示宽高比保持不变
\begin{tabular}{lccccc}
% 此处为表格内容
\end{tabular}} % 注意此处有}
\end{table}