ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

LaTeX Overleaf多行图片排版全攻略:从单图到子图引用与排错

LaTeX Overleaf多行图片排版全攻略:从单图到子图引用与排错 用 LaTeX 写论文图片这一关很多人都会卡住尤其是想在 Overleaf 里一次插入多行图片经常碰到图排不齐、编号混乱、子图引用失效这些破事。这篇文章就是要把“LaTeX 配合 Overleaf 插入多行图片”这件事讲透从最基础的单图插入讲到多行多列网格排版再讲到子图编号、交叉引用、间距调整和报错排查所有代码都是我在实际写论文时验证过的你可以直接复制到 Overleaf 里试。如果你现在正在写毕业设计、期刊论文或者课程报告图片数量少则十几张、多则上百张那么这篇文章正好适合你。哪怕你连 LaTeX 还没装过只要打开浏览器登录 Overleaf 就能跟着操作不需要任何本地环境。1. 为什么是 Overleaf写作环境选型背后的思路很多人第一次接触 LaTeX都会纠结一个问题到底装本地环境还是用在线平台我在早期写论文时用过本地方案后来换到 Overleaf现在的大部分写作工作流已经完全跑在云端了这里说说我的选型思路。1.1 本地环境的痛点本地写 LaTeX最常见的是“TeX Live VS Code LaTeX Workshop”这套组合。配置本身不难但有几个很折腾的点第一TeX Live 完整版体积有好几个 GB下载加安装很费时间第二不同宏包散落在各个 CTAN 镜像里一旦网络不稳定宏包装不上就是灾难第三编译报错时你得自己去日志文件里翻原因对新手非常不友好。我自己第一次配置时光是让中文支持跑起来就花了大半天。当然本地方案的优势也很明显完全离线可用、编译速度快、不存在服务器排队。如果你长时间在国外没有稳定网络或者你用的是 Windows 而且懒得每次上传文件那本地环境仍然是可选项。但对大多数用户来说尤其是学生群体登录浏览器就能解决的事情没必要折腾环境。1.2 Overleaf 解决了什么问题Overleaf 是浏览器里的 LaTeX 在线编辑器核心就是把“写代码”和“看输出”合并到一个界面里左侧写代码右侧实时预览而且多人协作非常方便——你可以把一个文档链接发给导师导师直接在原文上批注和修改。对于插入图片这个场景Overleaf 最大的好处是“所见即所得”的反馈速度。你在代码里加一张图片点一下编译就能看到效果不满意就微调参数整个过程在几秒内完成。换成本地环境至少你得切换到 PDF 阅读器有些编辑器还要手动刷新。另外Overleaf 内置了绝大多数宏包不需要你手动安装。比如后面要用的 graphicx、subcaption、float 这些都是开箱即用。这一点给了我很大的选择自由度不用为了一个功能去花时间找包、装包。1.3 我的实际工作流我现在的习惯是日常使用 Overleaf 写初稿、改文章、做协作只有在提交前做最终校对、生成出版级 PDF 时才会用本地环境重新编译一遍确认宏包兼容性和字体问题。这样既享受了云端的便利又保证了最终输出的可控性。所以下面所有代码示例我都默认你在 Overleaf 里操作。不过你放心这些代码放回本地 LaTeX 环境也一样能跑LaTeX 的语法本身就是跨平台的。2. 单图插入基本功graphicx 与 figure 环境想插入多行图片先把单张图片的机制搞明白。很多人在多图排版上翻车不是因为多图语法不会写而是对“浮动体”和“图片缩放”这些基础概念理解不到位。2.1 graphicx 宏包是必须的LaTeX 本身不认识\includegraphics这个命令你得先在导言区引入 graphicx 宏包。在 Overleaf 里文档开头通常是这样的\documentclass{article} \usepackage{graphicx} \begin{document} ... \end{document}graphicx 宏包提供图片加载、缩放、旋转等功能是 LaTeX 插图的核心。它支持常见图片格式不同编译引擎下的表现略有差异默认的 pdfLaTeX 支持 PDF、PNG、JPG、EPS部分等如果你用 XeLaTeX 或 LuaLaTeX支持的格式范围还会更宽。我的建议是论文里尽量使用 PDF 格式的矢量图。矢量图放大不模糊在 PDF 输出中嵌入也最干净位图PNG/JPG只适合照片或截图类内容但如果图片本身是点阵的放大依然会糊这点别指望 LaTeX 能救你。2.2\includegraphics的参数怎么选\includegraphics最基本的用法是\includegraphics{figures/example.pdf}花括号里给的是图片路径。这里我强烈建议你把所有图片放到一个单独目录里比如figures/然后在导言区用\graphicspath{{figures/}{images/}}声明目录这样代码里就不需要每次都写完整路径。缩放图片是插入图片时最常做的操作常用参数有这么几个参数作用示例width指定图片宽度width0.8\textwidthheight指定图片高度height5cmscale按倍数缩放scale0.5angle旋转角度angle90keepaspectratio保持宽高比keepaspectratiotrue我在实际写论文时最常用的是width0.8\textwidth因为它能自动适配当前文本宽度不管你的页面是一栏还是双栏图片都不会超出边界。scale的问题在于它只按原始尺寸缩放如果原图巨大你很难估算出缩放后的实际大小用起来不够直观。如果你想让图片横跨双栏全文宽度就要用\textwidth的倍数来控制比如width\textwidth。如果是放在双栏模板的单栏里则用width0.45\textwidth或width0.8\columnwidth需要反复试几步找到最舒服的宽度。2.3 figure 浮动环境的作用\includegraphics本身只是“放一张图”但论文排版里图往往需要编号、需要加标题、需要被文中的“如图 X 所示”引用。这些功能由figure浮动环境负责\begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{figures/example.pdf} \caption{实验结果的对比} \label{fig:example} \end{figure}参数[htbp]是浮动位置的优先级h 表示 here当前位置t 表示 top页面顶部b 表示 bottom页面底部p 表示单独成页。LaTeX 会按优先级尝试放置浮动体。很多新手不理解为什么单写[h]图片还是乱跑这是因为 LaTeX 的浮动体放置规则有额外限制当页面剩余空间不够放当前浮动体时它会把这个浮动体推到下一页。我的习惯是写[htbp]让 LaTeX 有更大的调度余地这样能有效减少“图片自己跳到下一页”的现象。如果你确实想强制图片在当前位置不浮动可以引入 float 宏包然后使用[H]参数。但我不推荐在一篇文章里到处用[H]因为强制不浮动有时会在页面底部留出大片空白排版反而更难看。2.4 为什么单图成功之后才能写多图多图排版本质上就是“多个单图放到同一个浮动环境里”的组合。很多报错都出在基础命令用得不规范比如图片路径写错、宏包漏引、宽度参数设置不合理。下面两个常见错误我就见过很多人在多图排版时栽进去只写了\includegraphics但没有放进figure环境导致图片没有编号或者编译后图片根本没显示在一个figure环境里放了多张图但每张图之间没有加换行符结果所有图挤在同一行里。所以我建议你先花十几分钟把单图插入练熟再去看多图排版的方案这样出现问题时你能快速定位是“浮动体的问题”还是“并排布局的问题”。3. 多行图片排版的四种主流玩法多行图片排版严格说包括了“一行多图”“多行多图”“两行两列”“三行两列”等各种布局。这里我总结了四种最常用的实现方式你可以根据自己的需求选择。3.1 方案一minipage 手动并排最直观minipage 是最基础、最灵活的多图排版方法。它的思路是把一个figure环境内部再拆成若干个小的“页面块”每张图片放进一个 minipage 里通过控制每个 minipage 的宽度来实现并排或分多行。下面这段代码实现了两行两列的四张图布局\begin{figure}[htbp] \centering \begin{minipage}[t]{0.48\textwidth} \centering \includegraphics[width\textwidth]{figures/result1.pdf} \caption{第一个结果} \label{fig:result1} \end{minipage} \hfill \begin{minipage}[t]{0.48\textwidth} \centering \includegraphics[width\textwidth]{figures/result2.pdf} \caption{第二个结果} \label{fig:result2} \end{minipage} \vspace{1em} \begin{minipage}[t]{0.48\textwidth} \centering \includegraphics[width\textwidth]{figures/result3.pdf} \caption{第三个结果} \label{fig:result3} \end{minipage} \hfill \begin{minipage}[t]{0.48\textwidth} \centering \includegraphics[width\textwidth]{figures/result4.pdf} \caption{第四个结果} \label{fig:result4} \end{minipage} \end{figure}这段代码里有几个细节值得说明。第一minipage 的宽度我写成0.48\textwidth而不是0.5\textwidth因为两个 minipage 之间如果没有间距就会顶在一起两个0.5加起来的实际宽度已经超过一行能放下的范围了。0.48 0.48 \hfill这样的组合既能让两张图并排又能保证它们之间有一些弹性间距。第二\hfill的作用是把两个 minipage 在水平方向上尽量推开让它们分别靠向左右两侧。如果你希望两张图紧挨在一起可以把\hfill删掉换成\hspace{1em}之类的固定间距。第三每两行之间我用了一个空行加\vspace{1em}。空行在 LaTeX 里表示换段落\vspace则是显式增加垂直间距。如果你不加间距第二行的图片可能会和第一行贴得太近看起来非常拥挤。minipage 的优点是控制力强几乎什么布局都能实现缺点是代码比较长四张图的排版就有四段重复结构如果是 2×3 六张图代码量会更大。不过没关系你可以复制粘贴后改路径效率不算低。3.2 方案二subcaption 子图环境最适合论文多图如果你需要的是“一个大图编号下面有 a、b、c 多个子图”那 subcaption 宏包的subfigure环境就是标准做法。这也是期刊论文里最常见的多图排版方式。先引入宏包\usepackage{subcaption}然后这样写\begin{figure}[htbp] \centering \begin{subfigure}[t]{0.3\textwidth} \centering \includegraphics[width\textwidth]{figures/exp1.pdf} \caption{实验一} \label{fig:exp1} \end{subfigure} \hfill \begin{subfigure}[t]{0.3\textwidth} \centering \includegraphics[width\textwidth]{figures/exp2.pdf} \caption{实验二} \label{fig:exp2} \end{subfigure} \hfill \begin{subfigure}[t]{0.3\textwidth} \centering \includegraphics[width\textwidth]{figures/exp3.pdf} \caption{实验三} \label{fig:exp3} \end{subfigure} \caption{三种实验方法的性能对比} \label{fig:experiments} \end{figure}这段代码的效果是三个子图并排在一行每张图下方有独立的 (a) 实验一、(b) 实验二、(c) 实验三 这样的子图标题同时整个大图有一个总标题“三种实验方法的性能对比”。subcaption 方案的核心价值在于“层级编号”。你可以在正文里写“如图 3(a) 所示”也可以写“如图 3 所示”前者引用子图后者引用总图。这种层级结构是 minipage 方案很难优雅实现的——minipage 里虽然也可以放\caption但你只能得到几个独立的大图编号而不是 a、b、c 这样的子编号。如果你要做三行两列只需在每行三个subfigure之后用空行隔开再写第二行subfigure即可结构和 minipage 方案完全一致。3.3 方案三tabular 表格法适合严格规整的网格有时候你的多张图片尺寸完全一致彼此之间没有任何对齐偏差像矩阵一样整整齐齐这时候可以考虑用tabular环境来排版图片。\begin{figure}[htbp] \centering \begin{tabular}{ccc} \includegraphics[width0.25\textwidth]{figures/img1.pdf} \includegraphics[width0.25\textwidth]{figures/img2.pdf} \includegraphics[width0.25\textwidth]{figures/img3.pdf} \\ \includegraphics[width0.25\textwidth]{figures/img4.pdf} \includegraphics[width0.25\textwidth]{figures/img5.pdf} \includegraphics[width0.25\textwidth]{figures/img6.pdf} \end{tabular} \caption{六张结果图的网格排列} \label{fig:grid} \end{figure}{ccc}表示三列是列分隔符\\是换行符。这样图片的排列就像表格一样对齐特别适合算法结果图、对比截图这类尺寸统一的图片。这个方案的代码量是最少的但它有个先天缺陷tabular里的图片不能直接使用subfigure的 a、b 编号如果你非要子图编号就得把subfigure嵌进每个单元格里代码反而比方案二更麻烦。所以我一般只在“不需要子图编号、只要排列好看”的场景下用 tabular。另外一个需要注意的点是符号在表格里表示对齐位置但图片文件名里千万不要有或者_这种特殊字符否则会直接编译报错。LaTeX 里_是特殊字符表示下标如果在文件路径中出现my_image.png你需要写成my\_image.png要么就在命名时干脆避免使用这类字符。3.4 方案四minipage subfigure 组合拳有人会问minipage 和 subfigure 能不能混用可以的而且组合起来很强大。比如你想让左侧放一张大图右侧竖着放三张小图这种不对称布局就非常适合 minipage 内嵌 subfigure\begin{figure}[htbp] \centering \begin{minipage}[t]{0.55\textwidth} \centering \includegraphics[width\textwidth]{figures/main.pdf} \caption{主结果图} \label{fig:main} \end{minipage} \hfill \begin{minipage}[t]{0.4\textwidth} \centering \begin{subfigure}{\textwidth} \centering \includegraphics[width\textwidth]{figures/sub1.pdf} \caption{子结果一} \label{fig:sub1} \end{subfigure} \vspace{0.8em} \begin{subfigure}{\textwidth} \centering \includegraphics[width\textwidth]{figures/sub2.pdf} \caption{子结果二} \label{fig:sub2} \end{subfigure} \end{minipage} \caption{综合对比结果} \label{fig:combined} \end{figure}这种组合特别适合“整体 局部”的论文配图场景比如左侧放完整系统架构图右侧放大模块细节。当然这类复杂布局对宽度比例要求较高我在实际调试时一般会把两侧比例调成 0.55 和 0.4中间留 0.05 的间距效果比较稳妥。4. 子图编号与交叉引用让“如图 X 所示”真的能点多行图片排出来只是第一步论文里必须能引用这些图片。LaTeX 的交叉引用是强项但很多人会卡在“引用的编号不对”或者“引用出来是问号”这些问题上。4.1 大图编号的引用大图编号引用很简单在figure环境里给整个环境打一个\label然后在正文里用\ref引用即可如图~\ref{fig:experiments} 所示三种方法的性能差异明显。编译后会自动显示“如图 3 所示”数字会自动替换。这里说一下为什么我在“如图”和\ref之间加了一个~。这个~是“不可断行空格”防止“如图”和“3”被换行拆开这在排版细节上很关键。你可能觉得无关紧要但在正式文档里编号断行是一个非常不专业的表现。4.2 子图编号的引用子图的引用稍微特殊一点。如果直接\ref{fig:exp1}你得到的可能是总图编号也就是“图 3”这种而不是想要的“3(a)”。要引用子图本身的 (a) 标记需要用到\subref命令如图~\ref{fig:experiments} 所示其中 \subref{fig:exp1} 的收敛速度最快。编译后效果是“如图 3 所示其中 3(a) 的收敛速度最快”。注意这里\subref只生成子图的编号标记前面不会自动带出总图编号所以表述时需要自己把总图编号写清楚。有些模板里\ref就可以直接引用子图并显示“3(a)”这种情况多是因为模板内部重新定义了\thesubfigure或者\psubfigure等命令。我建议你先测试一下如果\ref{fig:exp1}输出的是“1”而不是“1(a)”就果断改用\subref。4.3 引用出现问号的排查Overleaf 里第一次编译时引用位置经常会显示两个问号“??”。这是因为 LaTeX 的交叉引用需要两轮编译第一轮记录标签和编号第二轮才能把编号填进去。Overleaf 默认会自动进行多次编译但如果引用还是问号你需要手动点一下“Recompile”按钮或者检查\label名称是否重复。我的一个习惯是所有 label 都采用“前缀含义”的命名方式比如fig:experiment1、fig:comparison、tab:result。前缀fig:表示图片tab:表示表格这样即使文档里 label 很多也不会混淆。4.4 子图编号的格式控制如果你不喜欢默认的 (a)(b)(c) 编号风格可以通过\renewcommand调整。比如改成大写字母\renewcommand\thesubfigure{\Alph{subfigure}}这样编号就变成 A、B、C。这里subfigure计数器是 subcaption 宏包内部自动维护的你不需要手动操作只需要知道有这个自定义能力就行。实际论文写作里默认的小写字母已经是最常见的了我一般不改。5. 多行图片排版的细节处理间距、对齐与换行当你能顺利排出多行图片后排版效果是否好看就成了关键。间距过大、对齐歪斜、换行位置不对这些都会让你的论文看起来不够专业。这一节我把最容易踩的细节问题都过一遍。5.1 子图之间的水平间距多图并排时如果图片之间没有任何间距视觉上会非常挤。上面示例中我用\hfill解决这个问题它的效果是把剩余空间均匀分配到子图之间。如果你想让间距更可控可以用\hspace加固定距离\begin{subfigure}{0.3\textwidth} ... \end{subfigure} \hspace{1cm} \begin{subfigure}{0.3\textwidth} ... \end{subfigure}\hspace{1cm}表示两张图之间固定空 1 厘米。不过我实际用下来的体验是\hfill更“聪明”一些因为它能根据页面宽度自动调整间距不会因为文本宽度变化导致图片溢出\hspace适合你明确知道需要多少间距的场景。5.2 行与行之间的垂直间距多行图片排布时行与行之间的间距同样重要。默认情况下两个相邻的subfigure之间如果只有一个空行LaTeX 会看成两个段落段落间距可能过大或者过小。我的做法是显式控制\vspace{0.6em}em是一个相对单位1em 约等于当前字体大小0.6em大概是小五号字体里一行字的 60% 高度。你也可以用cm、pt、mm等单位。我一般在 2×2 网格里用0.5em到1em六张图的三行排列里用0.8em具体数值要根据图片实际高度微调。5.3 图片宽度与行溢出的问题很多人排多图时遇到一个情况明明每一格宽度加起来不超过\textwidth但图片缩进显示时却溢出了。原因通常在于图片本身有额外的空边PDF 图片自带的白边或者 minipage/subfigure 的宽度合起来其实是超过了一行宽。我排查这类问题的方法很简单先把每一张图设成width0.2\textwidth的五图并排然后看是否溢出如果没溢出再逐次加大比例直到最合适的值。实测下来三张图并排时每张设为0.3\textwidth比较稳四张并排时每张设为0.23\textwidth到0.24\textwidth比较稳。还有一个隐藏坑如果你用了\centering但\centering只对当前分组内的内容生效。比如你把\centering写在subfigure外面、figure里面那subfigure内部的内容能不能居中就不一定。安全的做法是在每个subfigure或minipage内部都写上\centering。5.4 换行符到底怎么打你的标题里还提到一个高频词“latex 换行符怎么打”这里统一说清楚。LaTeX 里的换行方式有好几种用途完全不同命令作用使用场景\\强制换行不产生缩进表格行末、图片换行、诗歌分行\newline强制换行效果类似\\普通文本中少见空行分段产生段落缩进文本段落分隔\par分段效果等同空行命令式分段\newpage强制换页章节、页面控制在多行图片排版的语境里最常用的是\\。比如 tabular 里图片换行就是\\minipage 里换行则可以用一个空行分段来触发。但要注意\\后面不能紧跟空行否则会报错“Theres no line here to end”。5.5 双栏模板中的多图排版很多期刊要求双栏排版这时多图排版的宽度控制就不一样了。单栏宽度用\columnwidth表示全文宽度用\textwidth表示。如果你把一个figure放进某一栏里图片宽度参考\columnwidth如果你想让图片横跨两栏必须使用figure*环境\begin{figure*}[htbp] \centering \begin{subfigure}{0.32\textwidth} ... \end{subfigure} ... \end{figure*}figure*是双栏文档中专用的“跨栏浮动环境”。没有这个环境你写再宽的图片也没法占满两栏。这一点我在写双栏会议论文时经常遇到很多新手不知道figure*的存在导致大图总是被塞进半栏里排版很别扭。6. 常见错误与排查实录我在 Overleaf 里踩过的坑最后这部分是真正“花钱买不到的”经验。下面列出的问题都是我实际在 Overleaf 里遇到过、或者在帮别人改论文时见到的典型问题。我把现象、原因和解决方法整理成了速查表你可以直接收藏。6.1 图片不显示只剩一个空白区域现象编译通过但图片位置是一片空白连边框都没有。可能性一图片路径错误。检查一下文件名和路径是否完全一致注意大小写敏感。Overleaf 是在 Linux 服务器上运行的Linux 的文件名区分大小写Figure.png和figure.png是两个不同的文件这在 Windows 本地环境里可能不会出错但在 Overleaf 上会。可能性二图片格式不被编译引擎支持。默认的 pdfLaTeX 对 EPS 图片支持有限某些 PNG 的扩展名或编码方式也可能出问题。解决办法是改用 PDF 格式或者将图片转为 PNG/JPG。可能性三文件名包含空格或中文。很多人从网上保存图片时文件名可能是“实验结果 最终版.png”这种名字在 LaTeX 里非常容易出问题。我建议上传到 Overleaf 之前统一改成result-final.png这种纯英文、无空格的命名。6.2 编译报错 “File not found”这个报错通常是路径写错了。Overleaf 的左侧文件树结构要和你的\graphicspath声明保持一致。比如文件在figures/目录下代码里写\includegraphics{figures/result.pdf}但实际文件名是result2.pdf就会报 File not found。排查方法点击 Overleaf 左侧的日志按钮找到红色错误信息通常它会直接告诉你哪个文件找不到。如果日志信息不够直观双击左侧文件名检查实际名称和路径。6.3 报错 “Unknown graphics extension”看到这个错误先检查文件名里是不是有多个点。LaTeX 需要靠扩展名判断图片格式如果文件名是figure.v1.final.png这种某些情况下它会不知道用什么驱动来加载。解决办法把文件名改成纯英文加一个扩展名比如figure-final.png。还有一种情况是文件名带了下划线。LaTeX 将_视为数学模式中的下标字符出现在普通文本里会报错或显示异常。路径和文件名里尽量避免_用连字符-代替是最省心的。6.4 报错 “Float too large for page”这个错误的意思是你的整个figure环境内容太高当前页面放不下。解决方法有几个减小图片宽度让图片更小拆分成多个figure环境使用figure*占满两栏来获取更多横向空间调整浮动参数允许图片单独成页比如使用[p]。我在排六张图的 2×3 网格时就遇到过“Float too large”的问题最后我把每张图宽度从0.3\textwidth降到0.24\textwidth同时把总标题\caption的字体缩小了一点才顺利放下。6.5 子图标题跑到总标题外面现象\caption文字出现在图片上方或者和子图混在一起。原因通常是把\caption放错了位置。在figure环境里\caption必须放在所有\subfigure之后、\end{figure}之前。如果你把\caption写到了一个subfigure内部它就会被当成子图标题的一部分。另外不要在这个问题里混用subfigure宏包和subcaption宏包。老文档常写\usepackage{subfigure}或者\usepackage{subfig}但新的项目我强烈建议只用subcaption它更规范、兼容性也更好。混用很容易导致“Undefined control sequence”或标题编号混乱。6.6 编译时图片更新了但 PDF 里没变化Overleaf 有时会出现“图片覆盖上传后PDF 显示的还是旧图”的问题。最常见的原因是浏览器缓存或者 Overleaf 的编译缓存没刷干净。我的处理办法是在导言区临时加一个无意义的命令比如\newcommand{\refresh}{}这个改变会强制 Overleaf 重新编译整个文档从而让新图片生效。如果还不行就点菜单里的“清除缓存文件”再重新编译。6.7 多图时某个子图的 label 引用不上检查\label是否写在了\caption之后。LaTeX 的引用机制要求 label 必须先与 caption 建立对应关系如果你把\label写在\caption前面编号可能还没生成引用结果就会错位。我的习惯是每个subfigure的代码顺序固定为\includegraphics→\caption→\label这样永远不会乱。6.8 一个隐藏的坑subcaption与beamer的冲突如果你在做 PPT 用的 beamer 文档并且想用subcaption宏包它可能和 beamer 自带的 caption 机制冲突。我遇到过几次\subref在 beamer 里不能正常输出子图编号的情况解决方案是手动换用minipage caption组合或者用 beamer 里的\captionsetup微调。当然大部分人是在写论文而不是做 PPT所以我在这里提一句就够了真遇到了不慌就行。最后再分享一个个人习惯我在 Overleaf 里写多图排版时会先在导言区把图片路径全部声明好然后用一个“测试小文档”验证图片能否正常加载最后再粘贴进正式文档。这个小习惯帮我排除掉了很多低级的路径问题。另外每次上传新图片我都会顺手把文件名改成英文小写加连字符的格式比如comparison-2x2.pdf这样既避免了编码问题也让文件树看起来整齐后续和导师、同事协作时不会因为文件名混乱产生误解。多行图片排版这件事本质上不是语法难而是细节多。把基础命令吃透再掌握 minipage、subcaption、tabular 各自的适用场景再加上一点点耐心去调间距你的 LaTeX 配图就能做得又快又好看。
返回列表