LaTeX 入门 · 第3篇 图表与浮动体
1. 表格:tabular 环境
LaTeX 排表格的核心是 tabular 环境。基本结构:
\begin{tabular}{列说明符}单元格 & 单元格 & ... \\\hline单元格 & 单元格 & ... \\\end{tabular}- 列说明符:每个字母代表一列的对齐方式,竖线
|表示画竖线; &分隔同一行的单元格;\\结束一行;\hline画一条水平线。
1.1 列说明符
| 说明符 | 含义 |
|---|---|
l | 该列左对齐 |
c | 该列居中 |
r | 该列右对齐 |
p{宽度} | 该列固定宽度,文字自动换行(顶端对齐) |
| | 在两列之间画竖线 |
例如 {|l|c|r|} 表示三列(左/中/右对齐),列间有竖线,两侧也有竖线。
\begin{tabular}{|l|c|r|}\hline姓名 & 年龄 & 成绩 \\\hline张三 & 20 & 95 \\李四 & 21 & 88 \\王五 & 19 & 92 \\\hline\end{tabular}渲染效果:

1.2 三线表:booktabs 宏包
学术论文里最常用的是三线表——只有顶线、中线、底线,没有竖线,视觉更干净。这需要 booktabs 宏包,用三条命令替代 \hline:
| 命令 | 作用 |
|---|---|
\toprule | 顶部粗线 |
\midrule | 中线(表头与数据之间) |
\bottomrule | 底部粗线 |
\usepackage{booktabs} % 导言区加载
\begin{tabular}{lcr}\toprule姓名 & 年龄 & 成绩 \\\midrule张三 & 20 & 95 \\李四 & 21 & 88 \\王五 & 19 & 92 \\\bottomrule\end{tabular}三线表的效果见上图右半部分。booktabs 还提供 \cmidrule{2-4} 用于画部分列的下划线(类似 \cline,但更精致)。
1.3 跨列与跨行
- 跨列用
\multicolumn{列数}{列说明符}{内容},原生支持; - 跨行用
\multirow{行数}{宽度}{内容},需要multirow宏包,宽度通常用*表示自动。
\usepackage{booktabs}\usepackage{multirow}
\begin{tabular}{cccc}\toprule & \multicolumn{3}{c}{科目} \\\cmidrule{2-4}姓名 & 语文 & 数学 & 英语 \\\midrule张三 & 90 & 95 & 88 \\李四 & 85 & 92 & 91 \\\multirow{2}{*}{合计} & 175 & 187 & 179 \\ & \multicolumn{3}{c}{541} \\\bottomrule\end{tabular}渲染效果:

\multicolumn 也常用来单独修改某一格的对齐方式,如 \multicolumn{1}{c}{内容} 把当前格改为居中。
1.4 表格行距
表格行太挤时,用 \arraystretch 命令调整行高倍数:
\renewcommand{\arraystretch}{1.5} % 行高变为 1.5 倍放在表格之前即可影响其后的表格。也可以在单行用 \\[6pt] 增加该行下方的额外间距。
2. 插入图片:graphicx 宏包
插入图片用 graphicx 宏包的 \includegraphics 命令。导言区加载:
\usepackage{graphicx}正文区插入:
\includegraphics[width=0.5\textwidth]{sample-figure.pdf}\documentclass{ctexart}\usepackage{graphicx}\begin{document}\includegraphics[width=0.5\textwidth]{sample-figure.pdf}\end{document}渲染效果:

2.1 常用选项
\includegraphics 的可选参数(方括号内)控制图片大小和位置:
| 选项 | 含义 |
|---|---|
width=... | 指定宽度,高度按比例缩放。常用 \textwidth、\linewidth 的分数 |
height=... | 指定高度 |
scale=... | 缩放倍数,如 scale=0.5 |
angle=... | 旋转角度(顺时针) |
trim=L B R T | 裁剪图片四周(左下右上),需配合 clip |
实际中最常用的是 width=0.x\textwidth,按正文宽度的比例设置图片宽度。
2.2 支持的图片格式
不同编译器支持的格式:
| 编译器 | 支持格式 |
|---|---|
| pdflatex | .pdf、.png、.jpg |
| xelatex | .pdf、.png、.jpg、.eps |
传统 LaTeX(latex + dvips)使用 .eps,但现在 pdflatex / xelatex 已是主流,.pdf 和位图格式(.png、.jpg)直接可用。
2.3 图片搜索路径
如果图片放在子目录(如 figures/),可以在导言区用 \graphicspath 声明搜索路径,这样 \includegraphics 里就不用写完整路径:
\graphicspath{{figures/}{logo/}} % 注意每个路径用花括号包裹
\includegraphics{logo} % 会自动在 figures/ 和 logo/ 下查找3. 浮动体:figure 与 table
直接把图片或表格放在正文中,位置往往不理想(可能跨页、打断文字流)。LaTeX 的解决方式是浮动体——把图表交给系统,由它根据排版约束自动选择最佳位置。
3.1 figure 和 table 环境
\begin{figure}[位置选项] \centering \includegraphics[width=0.4\textwidth]{sample-figure.pdf} \caption{一张示例图}\label{fig:sample}\end{figure}\begin{table}[位置选项] \centering \caption{一张示例表}\label{tab:sample} \begin{tabular}{lc} \hline 项目 & 数值 \\ \hline A & 100 \\ \hline \end{tabular}\end{table}一个完整的浮动体示例:

浮动体的标准结构是四要素:
\begin{figure}/\begin{table}开始环境,方括号里写位置选项;\centering让内容居中;\includegraphics(图)或tabular(表)放实际内容;\caption{...}加标题——图标题在图下方,表标题在表上方(这是排版惯例);\label{...}紧跟在\caption之后,用于交叉引用。
3.2 位置选项
方括号里的位置选项告诉 LaTeX 这个浮动体允许出现在哪些位置:
| 选项 | 含义 |
|---|---|
h | here,当前位置(代码所在处) |
t | top,页面顶部 |
b | bottom,页面底部 |
p | 独立成页的浮动体页面 |
! | 忽略部分排版限制(如强制放在 h) |
组合使用如 [htbp] 表示”尽量在当前位置,否则顶部、底部、独立页都行”。顺序只是偏好,LaTeX 会综合考虑所有允许的位置。
实际经验:
[htbp]是最常用的组合。如果浮动体怎么都不听话地乱跑,多半是同一页浮动体太多,或正文太少——LaTeX 是在努力避免大面积留白。
3.3 交叉引用浮动体
浮动体必须配 \caption 和 \label 才能被引用:
\caption自动生成编号(图 1、表 1 等);\label要写在\caption之后,否则引用会出错;\ref{fig:sample}引用图号,\pageref{fig:sample}引用页码。
如上图示例中的 如图~\ref{fig:sample} 所示 会渲染成 如图 1 所示。
4. 小结
这一篇覆盖了文档中插入图表的全部要素:
- 表格:
tabular环境的列说明符(l/c/r/p)、\hline与booktabs三线表、\multicolumn/\multirow跨列跨行; - 图片:
graphicx宏包的\includegraphics、width/height/scale选项、\graphicspath搜索路径; - 浮动体:
figure/table环境的四要素(环境 +\centering+ 内容 +\caption/\label)、位置选项[htbp]、交叉引用。
下一篇进入 LaTeX 最擅长的领域——数学公式。
本系列基于《一份(不太)简短的 LaTeX2e 介绍》(lshort-zh-cn)整理,辅以实战讲解和渲染示例。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!













