从Overleaf模板到毕业设计:LaTeX子图排版保姆级指南(含subfigure与subcaption对比)
2026/6/7 22:36:21 网站建设 项目流程

从Overleaf模板到毕业设计:LaTeX子图排版保姆级指南(含subfigure与subcaption对比)

第一次在Overleaf上看到那些精美的学术论文模板时,我被LaTeX排版的严谨与美观深深吸引。但当真正开始为自己的毕业设计插入多张实验数据图时,却发现子图排版成了拦路虎——图片大小不一、标签错位、引用混乱。这促使我系统研究了LaTeX子图排版的两种主流方案:传统的subfigure与现代的subcaption宏包。

1. 准备工作:从Overleaf模板到图片上传

在开始子图排版前,需要确保开发环境配置正确。Overleaf作为最流行的在线LaTeX平台,已经预装了大多数常用宏包。新建项目时,建议选择"Academic Journal"或"Thesis"类模板,这些模板通常已包含基础图形处理设置。

1.1 图片上传规范

  • 格式选择:优先使用.png.pdf矢量图(避免.jpg压缩失真)
  • 命名规则:采用fig1_data.png等有意义的名称(禁用空格和特殊字符)
  • 目录管理:在项目根目录创建/figures文件夹集中存放图片

上传后检查文件权限,确保编译时可访问。测试单图插入代码:

\begin{figure}[ht] \centering \includegraphics[width=0.8\linewidth]{figures/sample.png} \caption{单图示例} \label{fig:single} \end{figure}

2. 传统方案:subfigure宏包实战

subfigure曾是LaTeX子图排版的唯一选择,虽然逐渐被取代,但大量旧模板仍在使用。其核心是通过\subfigure命令创建子图容器。

2.1 基础代码结构

\documentclass{article} \usepackage{graphicx} \usepackage{subfigure} \begin{document} \begin{figure}[ht] \centering \subfigure[子图A]{ \includegraphics[width=0.45\textwidth]{fig1.png} \label{fig:sub_a} } \hfill \subfigure[子图B]{ \includegraphics[width=0.45\textwidth]{fig2.png} \label{fig:sub_b} } \caption{使用subfigure的多图示例} \label{fig:main} \end{figure} \end{document}

2.2 关键参数解析

参数作用推荐值
width设置子图宽度0.3-0.5\textwidth
height固定高度(慎用)通常留空保持比例
hspace水平间距1em-2em
label子图引用标签前缀一致如fig:sub_*

注意:subfigurecaption宏包存在兼容性问题,可能导致编号混乱

3. 现代方案:subcaption最佳实践

subcaption宏包作为caption的扩展,提供了更一致的标签管理和样式控制。其优势在于:

  • hyperref等常用宏包完美兼容
  • 支持更灵活的子图排列方式
  • 提供subfigure环境替代旧命令

3.1 基础实现

\documentclass{article} \usepackage{graphicx} \usepackage{subcaption} \begin{document} \begin{figure}[ht] \begin{subfigure}{0.45\textwidth} \includegraphics[width=\linewidth]{fig1.png} \caption{子图A} \label{fig:modern_a} \end{subfigure} \hfill \begin{subfigure}{0.45\textwidth} \includegraphics[width=\linewidth]{fig2.png} \caption{子图B} \label{fig:modern_b} \end{subfigure} \caption{subcaption方案示例} \label{fig:modern} \end{figure} \end{document}

3.2 高级布局技巧

网格排列(2×2示例)

\begin{figure}[ht] \centering \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\textwidth]{fig1.png} \caption{第一行左} \end{subfigure} \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\textwidth]{fig2.png} \caption{第一行右} \end{subfigure} \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\textwidth]{fig3.png} \caption{第二行左} \end{subfigure} \begin{subfigure}[b]{0.48\textwidth} \includegraphics[width=\textwidth]{fig4.png} \caption{第二行右} \end{subfigure} \caption{网格排列示例} \end{figure}

4. 深度对比与疑难解答

4.1 两种方案核心差异

特性subfiguresubcaption
兼容性与caption冲突完美兼容caption
引用方式需单独标记子图自动继承父图编号
样式统一性需要手动调整自动匹配主标题样式
多行布局需要复杂间距控制支持自动换行

4.2 常见问题解决方案

图片尺寸不一致?

  • 使用\resizebox统一尺寸:
    \begin{subfigure}{0.3\textwidth} \resizebox{\linewidth}{!}{\includegraphics{fig1.png}} \caption{自动缩放} \end{subfigure}

子图间距异常?

  • 调整\hspace或使用\hfill自动填充
  • 对于subcaption,可设置\subcaptionmargin全局参数

引用混乱?

  • 确保标签命名系统化(如fig:group1_a
  • 使用\ref{fig:main}引用主图,\subref{fig:sub_a}引用子图

在完成毕业设计的过程中,我发现subcaption在修改维护时明显更省时。特别是当需要调整图片顺序时,其自动编号机制避免了手动更新所有标签的麻烦。一个实用技巧:在文档类选项中添加demo参数,可以快速测试布局而不需要实际图片文件。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询