LaTeX子图排版进阶:从基础横竖排到复杂网格布局 1. LaTeX子图排版基础入门第一次用LaTeX排论文时我被导师打回来的第一稿里全是图片排版问题——有的子图挤成一团有的莫名跑到下一页最崩溃的是编号全部错乱。后来才发现LaTeX的图片排版就像搭积木掌握几个核心参数就能让子图乖乖听话。横排子图是最基础的需求比如对比两组实验数据。用subfloat命令配合\includegraphics就能实现\begin{figure}[!htbp] \centering \subfloat[神经网络结构]{ \includegraphics[width0.45\textwidth]{model_arch.png} } \subfloat[训练曲线]{ \includegraphics[width0.45\textwidth]{loss_curve.png} } \caption{深度学习模型可视化} \label{fig:dl_models} \end{figure}这里有几个关键点[!htbp]中的!表示强制在此位置排版0.45\textwidth确保两图之间有自然间距每个\subfloat可以单独设置子标题竖排子图常见于时间序列展示只需在subfloat之间加\\换行符\begin{figure}[!htbp] \centering \subfloat[第一阶段]{ \includegraphics[width0.8\textwidth]{phase1.png} } \\ \subfloat[第二阶段]{ \includegraphics[width0.8\textwidth]{phase2.png} } \caption{实验过程可视化} \label{fig:phases} \end{figure}注意竖排时建议统一图片宽度否则会出现左右不对齐的情况。我曾因为漏调宽度参数导致论文里的流程图像锯齿一样参差不齐。2. 多子图网格布局实战技巧当需要排列4张以上的子图时就会遇到真正的挑战。去年写毕业论文时我花了三天时间才调出完美的3×3网格。后来发现这套组合技可以应对大多数复杂场景2.1 标准2×2网格\begin{figure}[!htbp] \centering \subfloat[输入数据]{ \includegraphics[width0.48\textwidth]{input.png} } \subfloat[特征提取]{ \includegraphics[width0.48\textwidth]{feature.png} } \\ \subfloat[模型预测]{ \includegraphics[width0.48\textwidth]{predict.png} } \subfloat[结果评估]{ \includegraphics[width0.48\textwidth]{result.png} } \caption{算法全流程可视化} \label{fig:pipeline} \end{figure}关键技巧每行结尾用\\换行保持所有子图宽度一致这里用0.48让两图之间有4%的间距最后一行不需要换行符2.2 不规则网格布局有时我们需要更灵活的排列比如左侧大图配右侧两个小图。这时候minipage就派上用场了\begin{figure}[!htbp] \centering \begin{minipage}[b]{0.6\textwidth} \includegraphics[width\textwidth]{main_result.png} \end{minipage} \begin{minipage}[b]{0.35\textwidth} \includegraphics[width\textwidth]{detail1.png} \\ \vspace{0.5cm} \includegraphics[width\textwidth]{detail2.png} \end{minipage} \caption{主结果与细节展示} \label{fig:main_with_details} \end{figure}这个案例中左侧minipage占60%宽度显示主图右侧minipage内用\\和\vspace控制间距[b]参数让所有minipage底部对齐3. 三大宏包对比与选型指南LaTeX的子图排版主要有三种主流方案我在不同期刊投稿时都踩过坑这里分享第一手实测经验宏包优点缺点适用场景subfigure自动编号已停止维护简单横排/竖排subfig支持跨页配置复杂需要精细控制的论文minipage灵活度最高需手动编号不规则布局subfig宏包是目前最推荐的选择它的\subfloat命令比原生subfigure更强大\usepackage{subfig} ... \begin{figure}[!htbp] \centering \subfloat[][训练集]{ \includegraphics[width0.3\textwidth]{train.png} \label{fig:train} } \subfloat[][验证集]{ \includegraphics[width0.3\textwidth]{val.png} \label{fig:val} } \subfloat[][测试集]{ \includegraphics[width0.3\textwidth]{test.png} \label{fig:test} } \caption{数据集可视化} \label{fig:datasets} \end{figure}警告有些期刊模板会与subfig宏包冲突。去年投顶会时我因为没检查模板要求最后熬夜重写了所有图片排版代码。4. 复杂布局进阶技巧4.1 混合排版技巧当论文需要同时展示照片、曲线图和示意图时可以组合使用多种方法。这是我最近项目中的真实案例\begin{figure}[!htbp] \centering \begin{minipage}[t]{0.3\textwidth} \centering \includegraphics[width\linewidth]{real_photo.jpg} \subcaption{实物照片} \end{minipage} \hfill \begin{minipage}[t]{0.65\textwidth} \centering \includegraphics[width0.48\linewidth]{curve1.png} \includegraphics[width0.48\linewidth]{curve2.png} \\ \subcaption{性能曲线} \end{minipage} \caption{硬件实测结果} \label{fig:hardware} \end{figure}这个排版实现了左侧30%宽度显示实物照片右侧65%宽度放置两组性能曲线\hfill自动填充剩余空间[t]参数让minipage顶部对齐4.2 跨栏排版方案双栏论文中有时需要让图片横跨两栏只需将figure改为figure*环境\begin{figure*}[!htbp] \centering \subfloat[北京]{ \includegraphics[width0.3\textwidth]{beijing.png} } \subfloat[上海]{ \includegraphics[width0.3\textwidth]{shanghai.png} } \subfloat[广州]{ \includegraphics[width0.3\textwidth]{guangzhou.png} } \caption{三地气温对比} \label{fig:cities} \end{figure*}注意跨栏图片最好放在页面顶部或底部用!htbp中的t或b参数指定位置。有次我把关键结果图放在中间位置结果被排版到下一页答辩时差点翻车。5. 常见问题解决方案5.1 子图间距调整当子图间距不符合预期时可以用\hspace和\vspace微调\begin{figure}[!htbp] \centering \subfloat[]{ \includegraphics[width0.4\textwidth]{a.png} \label{fig:a} } \hspace{1cm} % 增加水平间距 \subfloat[]{ \includegraphics[width0.4\textwidth]{b.png} \label{fig:b} } \\ \vspace{0.5cm} % 增加垂直间距 \subfloat[]{ \includegraphics[width0.4\textwidth]{c.png} \label{fig:c} } \caption{可调节间距的子图排版} \label{fig:spacing} \end{figure}5.2 子图编号重置在补充材料中可能需要重新编号使用\setcounter命令\setcounter{subfigure}{0} % 重置子图计数器 \begin{figure}[!htbp] \centering \subfloat[新编号1]{ \includegraphics[width0.45\textwidth]{sm1.png} } \subfloat[新编号2]{ \includegraphics[width0.45\textwidth]{sm2.png} } \caption{补充材料图示} \label{fig:supp} \end{figure}6. 最佳实践建议经过多次论文投稿的教训我总结出这些黄金法则提前测试在写第一段正文前就先排几张复杂图片确认模板兼容性统一风格全文字图宽度尽量使用\textwidth比例值而非绝对尺寸版本控制对图片排版代码单独建立git分支方便回退修改预留空间复杂图片周围留白要充足避免被挤到奇怪的位置最后分享一个我常用的模板代码片段包含大多数常见场景% 在导言区加载这些宏包 \usepackage{graphicx} \usepackage{subfig} \usepackage{caption} % 标准2×2网格模板 \begin{figure}[!htbp] \centering \subfloat[][子图1说明]{ \includegraphics[width0.48\columnwidth]{fig1.pdf} \label{fig:sub1} } \subfloat[][子图2说明]{ \includegraphics[width0.48\columnwidth]{fig2.pdf} \label{fig:sub2} } \\ \subfloat[][子图3说明]{ \includegraphics[width0.48\columnwidth]{fig3.pdf} \label{fig:sub3} } \subfloat[][子图4说明]{ \includegraphics[width0.48\columnwidth]{fig4.pdf} \label{fig:sub4} } \caption{主标题文字} \label{fig:master} \end{figure}

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/10/1 19:32:24
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/30 21:32:07
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/10/2 15:29:32
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/10/1 19:32:23
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 19:32:35
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/30 21:32:11

日新闻

周新闻

月新闻