从Overleaf模板到毕业设计:LaTeX子图排版保姆级指南(含subfigure与subcaption对比) 从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[width0.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[width0.45\textwidth]{fig1.png} \label{fig:sub_a} } \hfill \subfigure[子图B]{ \includegraphics[width0.45\textwidth]{fig2.png} \label{fig:sub_b} } \caption{使用subfigure的多图示例} \label{fig:main} \end{figure} \end{document}2.2 关键参数解析参数作用推荐值width设置子图宽度0.3-0.5\textwidthheight固定高度慎用通常留空保持比例hspace水平间距1em-2emlabel子图引用标签前缀一致如fig:sub_*注意subfigure与caption宏包存在兼容性问题可能导致编号混乱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参数可以快速测试布局而不需要实际图片文件。