跳到主要内容

图表处理

本章介绍如何在 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} 所示。

子图

需要 subcaptionsubfig 宏包:

\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 宏包
  • 浮动体控制:防止浮动和强制输出

掌握图表处理可以创建专业的文档。下一章将介绍引用和参考文献。