图表处理
本章介绍如何在 LaTeX 中插入和管理图片与表格。
图片插入
基本插入
需要 graphicx 宏包:
\usepackage{graphicx}
\includegraphics{image.png}
图片选项
\includegraphics[width=0.8\textwidth]{image.png} % 宽度
\includegraphics[height=5cm]{image.png} % 高度
\includegraphics[scale=0.5]{image.png} % 缩放
\includegraphics[angle=90]{image.png} % 旋转
\includegraphics[width=5cm, height=3cm]{image.png} % 同时指定
\includegraphics[keepaspectratio]{image.png} % 保持比例
图片位置
\includegraphics[trim=1cm 2cm 1cm 2cm, clip]{image.png} % 裁剪
\includegraphics[viewport=0 0 100 100]{image.png} % 视口
图片环境
figure 环境
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{image.png}
\caption{图片标题}
\label{fig:example}
\end{figure}
位置选项
| 选项 | 含义 |
|---|---|
| h | 当前位置(here) |
| t | 页面顶部(top) |
| b | 页面底部(bottom) |
| p | 单独一页(page) |
| ! | 强制忽略限制 |
引用图片
如图 \ref{fig:example} 所示。
子图
需要 subcaption 或 subfig 宏包:
\usepackage{subcaption}
\begin{figure}[htbp]
\centering
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{image1.png}
\caption{子图1}
\label{fig:sub1}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.45\textwidth}
\includegraphics[width=\textwidth]{image2.png}
\caption{子图2}
\label{fig:sub2}
\end{subfigure}
\caption{总标题}
\label{fig:total}
\end{figure}
表格
基本表格
\begin{tabular}{|c|c|c|}
\hline
列1 & 列2 & 列3 \\
\hline
数据1 & 数据2 & 数据3 \\
数据4 & 数据5 & 数据6 \\
\hline
\end{tabular}
列格式
| 格式 | 含义 |
|---|---|
| l | 左对齐 |
| c | 居中 |
| r | 右对齐 |
| p{宽度} | 指定宽度,自动换行 |
| | | 竖线 |
| @{内容} | 自定义列间内容 |
表格环境
\begin{table}[htbp]
\centering
\caption{表格标题}
\label{tab:example}
\begin{tabular}{|c|c|c|}
\hline
列1 & 列2 & 列3 \\
\hline
数据1 & 数据2 & 数据3 \\
\hline
\end{tabular}
\end{table}
表格线
\hline % 水平线
\cline{1-2} % 部分水平线(第1到第2列)
\vline % 竖直线
跨列跨行
\usepackage{multirow}
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{2}{|c|}{跨两列} & 列3 \\
\hline
\multirow{2}{*}{跨两行} & 数据1 & 数据2 \\
& 数据3 & 数据4 \\
\hline
\end{tabular}
专业表格
使用 booktabs 宏包:
\usepackage{booktabs}
\begin{tabular}{lcc}
\toprule
项目 & 数值1 & 数值2 \\
\midrule
项目1 & 100 & 200 \\
项目2 & 150 & 250 \\
项目3 & 180 & 280 \\
\bottomrule
\end{tabular}
表格宽度
\usepackage{tabularx}
\begin{tabularx}{\textwidth}{|X|c|c|}
\hline
自动宽度列 & 固定宽度 & 固定宽度 \\
\hline
长文本会自动换行 & 数据 & 数据 \\
\hline
\end{tabularx}
长表格
\usepackage{longtable}
\begin{longtable}{|c|c|c|}
\hline
列1 & 列2 & 列3 \\
\hline
\endfirsthead % 首页表头
\hline
列1 & 列2 & 列3 \\
\hline
\endhead % 后续页表头
\hline
\endfoot % 页脚
\hline
\endlastfoot % 最后一页页脚
数据1 & 数据2 & 数据3 \\
% ... 更多数据 ...
\end{longtable}
图片格式
支持的格式
- PDF:矢量图,推荐
- PNG:位图,支持透明
- JPG:照片
- EPS:矢量图(传统)
路径设置
\graphicspath{{figures/}{images/}}
\includegraphics{image.png} % 自动搜索 figures/ 和 images/
浮动体控制
防止浮动
\usepackage{float}
\begin{figure}[H] % H 表示精确位置
\centering
\includegraphics{image.png}
\caption{标题}
\end{figure}
强制输出
\clearpage % 输出所有浮动体并换页
\FloatBarrier % 输出所有浮动体
图表目录
\listoffigures % 图目录
\listoftables % 表目录
示例
完整图片示例
\documentclass{article}
\usepackage{graphicx}
\usepackage{ctex}
\begin{document}
\begin{figure}[htbp]
\centering
\includegraphics[width=0.6\textwidth]{example.png}
\caption{示例图片}
\label{fig:example}
\end{figure}
如图 \ref{fig:example} 所示,这是一个示例图片。
\end{document}
完整表格示例
\documentclass{article}
\usepackage{booktabs}
\usepackage{ctex}
\begin{document}
\begin{table}[htbp]
\centering
\caption{实验结果}
\label{tab:results}
\begin{tabular}{lccc}
\toprule
方法 & 准确率 & 召回率 & F1值 \\
\midrule
方法A & 0.85 & 0.82 & 0.83 \\
方法B & 0.88 & 0.86 & 0.87 \\
方法C & 0.91 & 0.89 & 0.90 \\
\bottomrule
\end{tabular}
\end{table}
表 \ref{tab:results} 展示了实验结果。
\end{document}
小结
本章介绍了 LaTeX 图表处理:
- 图片插入:includegraphics 命令和选项
- 图片环境:figure 环境和位置控制
- 子图:subfigure 环境
- 表格:tabular 环境和列格式
- 专业表格:booktabs 宏包
- 长表格:longtable 宏包
- 浮动体控制:防止浮动和强制输出
掌握图表处理可以创建专业的文档。下一章将介绍引用和参考文献。