ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Mac上LaTeX论文排版3天速成+5天实战完整笔记

Mac上LaTeX论文排版3天速成+5天实战完整笔记 上周帮学弟改一篇毕业论文他Word里图飘得抓狂公式编号全乱目录字体忽大忽小。我直接甩给他一套Mac上LaTeX的速成路线三天过语法、五天出论文初稿他一边骂骂咧咧一边真把终稿排出来了。后来他把这套笔记转给了好几个同学都说“早该用LaTeX”。今天我把这套在Mac上跑通的《LaTeX论文排版3天速成5天实战笔记》完整整理出来思路、踩坑、配置、模板、实战流程全在里头。如果你正被论文格式折磨或者刚换Mac不知道LaTeX怎么搞这篇应该能帮你少走很多弯路。这套笔记适用的人群很明确准备写毕业论文、期刊小论文、课程报告的人尤其是理工科要敲公式、插图表、管参考文献的同学。文科用LaTeX排纯文字也没问题但学习曲线稍微陡一点。整篇笔记的核心就一句话LaTeX把“排版样式”和“写作内容”拆开了你只管写内容版式交给模板和宏包。先说明一下整个学习节奏的设计是三天速成加五天实战。速成阶段解决“看得懂、能上手”的问题实战阶段解决“真写完一篇论文”的问题。下面我把每个环节拆开讲配置和代码都给全。1. 整体思路拆解先搞懂LaTeX凭什么比Word耐打1.1 论文排版的痛苦本质是“样式维护”的成本我见过太多人用Word排版论文最惨的不是打字而是每次调整字体字号、行距段距、图表编号、参考文献格式都要手动改一遍。尤其当导师说“把第三章的图重新插一下”整篇文档的图编号、交叉引用、目录页码全得跟着遭殃。LaTeX解决的就是这个问题你告诉编译器“这是一级标题”“这是题注”“这是参考文献条目”具体的编号、缩进、字形全部由宏包和模板自动处理。所以我在速成阶段的第一课不讲语法先讲思维LaTeX文档是“写代码”而不是“写字”。一个.tex文件本质上是一份带有标记的纯文本编译引擎比如macTeX自带的pdfTeX、XeTeX或LuaTeX把它翻译成排版结果。这个大前提一旦建立后面所有操作都顺了。1.2 为什么Mac上更值得用LaTeXMacOS本身是类Unix系统终端环境完整Homebrew随便装东西这比Windows上的环境配置舒服不少。LaTeX的发行版、编辑器、预览工具在Mac上都有比较成熟的选择。加上Mac的字体渲染好PDF预览体验很棒配合Skim或内置预览看编译结果非常流畅。另外Mac上还有一个隐藏优势很多期刊和学校的LaTeX模板都以Mac为默认开发环境测试过。遇到问题搜GitHubissue里Mac用户的问题回复率也高。我自己用的就是MacBook Air M2编译小文档几秒钟出结果完全不会卡。1.3 发行版选型MacTeX、BasicTeX还是TinyTeXMac上安装LaTeX本质是安装一个TeX发行版它包含编译器、宏包管理器、字体、文档等一堆东西。常见选择有这么几个发行版大小适合场景缺点MacTeX约4-5GB下载装完约10GB新手一步到位几乎所有宏包都有占用磁盘大下载时间长BasicTeX约100MB老手按需装宏包默认宏包太少新手容易缺包报错TinyTeX约200MB起喜欢折腾、想控制体积的人需要自己补齐宏包和字体配置成本高Overleaf网页版无需安装多人协作、快速模改上传大文件或图片多时卡顿离线无法使用我的建议很直接新手上Mac直接装MacTeX。虽然大但省心。别一开始就折腾BasicTeX你会发现缺了一个依赖宏包编译报错跟连环锁一样解锁半天心情全没了。网上很多教程让人用Homebrew装BasicTeX再手动补包我不反对但那更多是“洁癖用户”的玩法不是“论文要交”的玩法。1.4 三天速成与五天实战的整体路线规划这套笔记的节奏是我自己实践下来比较稳的第1天装好MacTeX和VS Code跑通第一个HelloWorld。同时熟悉文档结构、章节、段落、列表。第2天学会插图、插表格、写公式、交叉引用。第3天处理参考文献BibTeX套用学校或期刊模板完成一篇“模仿性质”的短文档。第4-8天选一个真实选题按正式论文结构从零撰写、反复编译、修正问题这就是5天实战。速成不是背语法而是遇到问题知道去哪查。LaTeX的宏包文档和StackExchange都是好地方。实战的意义在于把所有语法点串起来千万别只敲示例代码脱离真实选题你会忘得特别快。2. Mac环境搭建从安装到第一个PDF出现的完整过程2.1 用Homebrew安装MacTeX的正确姿势Mac上安装MacTeX有几种方式最快的是用Homebrew。但这里有个常见坑很多人搜到的是brew install --cask mactex装完后发现下载的是个小文件运行后又从网上下载完整安装包速度极慢还容易断。我自己试下来更稳的做法是直接去MacTeX官网tug.org/mactex下载pkg安装包或者在清华大学TUNA镜像站下载下载速度会快很多。安装过程很简单双击pkg一路下一步输入系统密码等它自己写完文件。如果你坚持用Homebrew我建议用这条命令brew install --cask mactex-no-guimactex-no-gui没有GUI辅助工具但编译论文完全够用体积也小一点。装完以后打开终端验证一下xelatex --version latexmk --version能输出版本号就说明装好了。这里提醒大家一个特别容易忽略的点用brew install装完后需要重新打开终端窗口或者执行source ~/.zshrc不然latex相关命令可能找不到。2.2 磁盘空间与系统数据清理的提醒MacTeX安装包很大装完以后磁盘空间紧张是常见问题。安装前我习惯先看眼“关于本机-存储空间”如果低于20GB剩余空间劝你先清理一下。特别是Mac上的~/Library/Caches、~/Library/Logs经常能腾出好几个GB。另外LaTeX编译过程会产生大量中间文件.aux、.log、.synctex.gz、.bbl、.blg、.out、.toc、.lof等。这些小文件多了以后在Finder里看着很乱也容易被iCloud同步白白占用空间。建议在项目目录建一个清理脚本或者用VS Code插件的清理功能。反正每次编译完看下目录里有没有不需要的中间文件果断删掉。2.3 编辑器选型VS Code LaTeX Workshop是首选组合编辑器我用过TeXShop、Sublime、Vim最终长期留在VS Code。原因很简单LaTeX Workshop插件太好用了。它把编译、预览、正反向同步、自动补全、错误跳转全包了省去大量手工切窗口的麻烦。VS Code装好以后在扩展商店搜“LaTeX Workshop”安装。然后打开用户设置JSONcmd,然后点右上角花括号图标加入下面这段核心配置{ latex-workshop.latex.tools: [ { name: xelatex, command: xelatex, args: [ -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] }, { name: latexmk, command: latexmk, args: [ -xelatex, -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] } ], latex-workshop.latex.recipes: [ { name: latexmk (xelatex), tools: [latexmk] } ], latex-workshop.view.pdf.viewer: tab, latex-workshop.latex.autoBuild.run: onFileChange }这里特别说明几个参数的意义xelatex是我日常使用的编译引擎对中文支持好推荐使用。-synctex1是为了开启源代码和PDF的正向/反向同步。编译后在PDF上按住cmd点击可以跳回.tex中对应位置。-interactionnonstopmode是遇到错误不要停下来等用户按键而是直接往日志里记录错误然后继续跑。新手看不到交互提示反而少慌一点。latexmk是一个自动判断编译次数的工具处理交叉引用、参考文献时特别有用。配合上面recipe一次按编译按钮它会自动跑多遍。配置文件改完以后打开一个.tex文件右侧预览窗口就能实时刷新PDF。LaTeX Workshop的默认PDF查看器是内置Tab如果想用Skim或其他外部PDF阅读器也可以配置我反而不太建议大家一开始就搞外部预览内置Tab已经很好用了还方便点开错误跳转。2.4 中文字体与ctex宏包Mac上中文排版的底线Mac上排中文论文核心是使用ctex宏包。它不是简单的字体切换而是把中文排版需要的字体选择、行距控制、标题中文化、首行缩进等一揽子问题都处理好了。我一般在文档类后面直接指定\documentclass[UTF8]{ctexart}这个模板默认会去找系统里的中文字体。Mac上常用的中文字体有“Songti SC”宋体、“Heiti SC”黑体、“Kaiti SC”楷体等。CTeX宏包在编译时会自动检测可用字体。如果编译时提示找不到字体或字体配置出错可以尝试在导言区手动指定\documentclass[UTF8]{ctexart} \usepackage{fontspec} \setCJKmainfont{Songti SC}[BoldFontHeiti SC, ItalicFontKaiti SC] \setCJKsansfont{Heiti SC} \setCJKmonofont{PingFang SC}上面这段是XeLaTeX配合fontspec和ctex的中文字体配置。setCJKmainfont设置正文宋体加粗用黑体斜体用楷体这样排版出来的中文论文观感比较接近期刊要求。另一个坑是编译引擎必须选XeLaTeX或LuaLaTeX不能用默认的pdfLaTeX。pdfLaTeX默认不支持系统字体中文会编译出一堆麻烦所以务必在VS Code的工具链里把recipe设置为latexmk -xelatex或直接调用xelatex。2.5 第一个HelloWorld编译一次成功的正确姿势装完环境后新建一个文件夹在里面建一个main.tex输入如下代码\documentclass[UTF8]{ctexart} \title{第一个LaTeX文档} \author{你的名字} \date{\today} \begin{document} \maketitle 你好LaTeX这是我在Mac上的第一份排版文档。 \end{document}保存后在正文输入框里点一下右侧的“▶”按钮选择Recipe为“latexmk (xelatex)”编译结束就能在预览里看到文档。如果这里卡住大概率是三种情况没有选对Recipe用了默认的pdflatex中文变成空白或乱码。字体配置有问题ctex宏包找不到中文字体。宏包缺失ctex没装全。MacTeX一般自带如果是BasicTeX需要手动安装。第一次编译成功意味着你的Mac已经正式具备了论文排版能力。后面所有语法学习都建立在这个基础之上。3. 三天速成论文排版核心语法精讲3.1 第1天文档结构与常用命令速查LaTeX文档的结构其实很像一个网页body里放内容head区做全局设置。普通论文需要掌握的文档类有这么几种article英文短文、期刊投稿最常用。ctexart中文文章类适用于中文课程论文、本科毕设初稿。report长报告、硕博论文的一部分章节。book书稿级排版页码、章节单独成页。beamer幻灯片。我建议新手直接用ctexart它和article语法兼容但中文处理是内置的。写的时候注意命令和参数的区别带方括号的参数是可选的带花括号的参数是必选的。比如\section[可选标题]{必填标题}。快速过一遍第1天必须掌握的语法点章节\section{...}、\subsection{...}、\subsubsection{...}段落空一行表示新段落单换行不会换段。这个细节很多新手踩坑。加粗/斜体\textbf{加粗}、\emph{强调斜体}、\underline{下划线}列表itemize无序、enumerate有序、description描述超链接\url{https://example.com}、\href{https://example.com}{文字}需要hyperref宏包引用\label{}定义标签\ref{}引用编号\pageref{}引用页码第1天练完记得把上面每个语法都在自己的main.tex里跑一遍。亲眼看到编号自动生成、交叉引用自动更新比背十遍命令都管用。3.2 第2天插图、表格、公式三大硬骨头论文里表格和图片是逃不掉的。先说插图。插图需要用到graphicx宏包语法非常简单\usepackage{graphicx} ... \begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{figures/result.png} \caption{实验结果对比图} \label{fig:result} \end{figure}这里我想多聊几句。[htbp]是浮动体摆放位置参数含义分别是here就在当前位置、top页面的顶部、bottom页面的底部、page单独一页。建议写作时不要纠结位置直接写[htbp]LaTeX会自动帮你找最合理的位置。你越是用[h]强制它“就在这里”越容易出现大块空白排版效果反而差。图片格式上Mac上优先用PDF和PNG矢量图最佳。用matplotlib画的图直接默认PDF输出插到LaTeX里缩放不失真。位图JPG也可以但分辨率低于300DPI的图打印出来容易糊。常见的插图坑有两个。第一是图片路径不能有中文尤其是Mac下如果文件夹叫“图 片”或者“实验结果”编译时可能会报File not found。第二是忘记加\label或引用时拼错标签名结果引用区域显示成“??”。解决方法是编译后用搜索功能全局搜一下“??”挨个排查。表格方面新手掌握tabular环境加booktabs宏包的三线表就够用了。三线表是论文正文里最常用的格式顶部和底部用粗横线栏目下用细横线没有竖线观感非常清爽\usepackage{booktabs} ... \begin{table}[htbp] \centering \caption{不同方法性能对比} \label{tab:compare} \begin{tabular}{lccc} \toprule 方法 准确率 召回率 F1 \\ \midrule 方法A 0.85 0.82 0.83 \\ 方法B 0.88 0.86 0.87 \\ 方法C 0.92 0.90 0.91 \\ \bottomrule \end{tabular} \end{table}如果表格内容太长能让它自动换行吗答案是直接用p{宽度}列类型替代c、l或者用tabularx宏包的X列类型。我习惯在长内容列的列类型写p{3cm}宽度设置成3厘米内容超了会自动折行。更粗暴的办法是把表格丢给adjustbox宏包按页面宽度整体缩放但缩放后字号会变小评审时容易被抓“小字放大看”不太推荐。公式是LaTeX碾压Word的最大优势。行内公式用$...$独立公式用\[...\]带编号的多行公式用align环境\usepackage{amsmath} ... \begin{align} loss -\sum_{i1}^{n} y_i \log \hat{y}_i \label{eq:loss}\\ error 1 - accuracy \nonumber \end{align}符号用来对齐等号的位置\\表示换行\label给公式编号。引用公式用\eqref{eq:loss}会显示成“(1)”这种带括号的编号格式比\ref更好看。数学符号方面搜“latexsymbols”或“LaTeX数学符号大全”能找到完整对照表建议保存一份PDF随时查。这里列几个最容易碰到的希腊字母\alpha、\beta、\gamma、\delta、\theta分数\frac{分子}{分母}根号\sqrt{x}求和\sum_{i1}^{n}极限\lim_{x \to 0}。记住这些大部分理工科论文的公式都能写出来了。3.3 第3天参考文献、宏包管理与模板速改参考文献是论文排版里最繁琐的一环。Word的自动编号加文献列表让人头大LaTeX用BibTeX可以做到“只管引用不管编号”。第3天的核心任务是在项目里建一个refs.bib文件里面以BibTeX格式存放文献信息article{smith2023, author {Smith, John and Lee, Alice}, title {A Novel Method for Data Analysis}, journal {Journal of Example Studies}, year {2023}, volume {12}, pages {34--56} }然后在正文引用位置写引用该文献\cite{smith2023}实验方法与之前的研究一致。最后在文档末尾\end{document}之前插入\bibliographystyle{plain} \bibliography{refs}编译顺序需要跑多遍先编译一次生成辅助文件再BibTeX生成文献列表再编译两遍让引用编号稳定。手动做很容易漏。VS Code里直接用latexmk -xelatex可以自动处理这个顺序所以前面我建议用latexmk就是为了省这一步。文献信息从哪来谷歌学术、百度学术、DBLP的引用页都能导出BibTeX条目复制粘贴到refs.bib即可。Mac上如果装了Zotero也可以装Better BibTeX插件自动导出更新的参考文献文件配合LaTeX非常顺手。宏包管理方面MacTeX自带大多数主流宏包但时不时会遇到缺包的情况。缺包时编译日志会提示File xxx.sty not found。解决方法是打开终端用tlmgr安装sudo tlmgr install 宏包名如果你的发行版是BasicTeX宏包安装这条命令会非常频繁。MacTeX用户基本不太用得到。第3天还要学会用模板。学校或期刊一般会提供模板文件夹里面通常有main.tex、.bst样式文件、figures目录等。套用模板的原则是不要从头写改增量。原模板的documentclass、宏包、页面设置都不要动只往正文区域添加内容遇到模板没有的宏包再按需添加。3.4 论文模板实战套模板时要改哪些东西拿到一个新模板先别急着写正文。打开main.tex从上到下依次看这几个位置\documentclass后面的选项纸张大小、字号、是否双面按学校要求改。页面设置geometry宏包的margin参数决定上下左右边距。标题区\title、\author、\date、\maketitle这地方最容易被忽略。摘要和关键词中文模板一般有\begin{abstract}和\keywords{...}。正文中重要的命令比如\tableofcontents目录、\listoffigures图表目录。套模板时我有个习惯先不改原文件复制一份到draft目录然后在副本上改。因为学校模板有时是只读属性或者被导师改了局部配置你直接动原文件容易把模板弄坏。副本里随便造造完没问题再搬回来。4. 五天实战从空白文档到完整论文的生产流程4.1 实战选题与项目文件组织速成阶段结束后建议马上进入实战。实战选择一个和自己专业相关的选题不用特别大只要包含图表、公式、参考文献即可。我当时让学弟选的是“某算法在测试集上的性能评估”这题目结构简单但所有LaTeX元素齐全。文件组织建议这样thesis/ ├── main.tex ├── sections/ │ ├── 01-introduction.tex │ ├── 02-method.tex │ ├── 03-experiment.tex │ └── 04-conclusion.tex ├── figures/ │ ├── pipeline.pdf │ ├── result_1.png │ └── result_2.pdf ├── refs.bib └── build/分章节放置好处是编译大论文时不用把所有文字堆在一个文件里每个章节独立编辑查找替换都方便。主文档用\input{sections/01-introduction}把章节文件“粘”进来。build目录用来放编译中间文件这样源码目录干干净净。VS Code的LaTeX Workshop默认输出到当前目录要改输出目录的话可以在配置里加latex-workshop.latex.outDir: build但注意图片路径如果相对的是主文档位置而不是输出目录位置编译时可能找不到图。建议统一使用\graphicspath{{figures/}}声明图片根目录。4.2 实战中的排版规范目录、页眉页脚、超链接样式写正式论文时目录、页眉页脚、超链接是排版细节的重灾区。一夜之间能出效果的有这么几招目录默认\tableofcontents生成的目录可能缺章节编号或者超链接不是可点击的。加hyperref宏包后目录条目自然可点击不用额外设置。页眉页脚用fancyhdr设置。中文论文的页眉常有“第 X 页”和“章节标题”并存的需求。简单配置如下\usepackage{fancyhdr} \pagestyle{fancy} \fancyhead[L]{左页眉} \fancyhead[R]{右页眉} \fancyfoot[C]{\thepage}超链接hyperref宏包有个坑默认的链接边框是彩色方框排版出来很丑。改成隐藏边框只保留颜色\usepackage[hidelinks]{hyperref}在Mac上还要注意PDF的元数据如果有中文乱码可以这样设置\hypersetup{ pdftitle{论文题目}, pdfauthor{作者姓名} }这样生成的PDF在预览里能正确显示标题和作者导师拿到PDF也不会看到一堆乱码。4.3 实战中的图片处理与Mac工具配合实战中最耗时间的往往不是写LaTeX语法而是图片尺寸和格式不对。Mac上有几个小工具能大大提升效率预览App自带“工具-调整大小”可以批量改分辨率。sips是Mac自带的命令行图片处理工具缩放一行命令搞定sips -Z 1200 input.png --out output.png用matplotlib画图时直接设置font.family为Times New Roman或serif让图内文字和正文风格统一。我自己在插每一张图前都会问三个问题格式是不是矢量宽高比符不符合设计图内文字字号放缩后是否小于正文太多如果图片字体太小导师打印出来根本看不清这是实战阶段最容易翻车的地方。4.4 实战中的LaTeX Workshop与PDF预览技巧VS Code里写LaTeX效率提升有几个小技巧cmd alt J可以快速跳转到PDF中当前源码位置。在PDF预览中按住cmd并点击可以反向跳到源码对应行。修改.tex文件后自动编译默认开启有时候写一半预览窗口疯狂刷新很烦我习惯关掉自动编译改成保存时手动编译latex-workshop.latex.autoBuild.run: onSave。LaTeX Workshop的网页预览有个常见问题第一次打开预览白屏或者PDF不刷新。多半是LaTeX Workshop服务端口没启动或者浏览器缓存问题。解决办法是关掉VS Code重新打开或者执行命令“LaTeX Workshop: Kill LaTeX Workshop server”重启。还有一个Mac专属问题输入中文时如果开了中文输入法按键盘快捷键容易误触导致VS Code里打出全角字符。比如\section的全角冒号就是编译报错重灾区。我建议写LaTeX代码时把中文输入法切换成英文模式养成好习惯能省很多排查时间。4.5 实战中的公式编号、对齐与希腊字母速查到了实战后半段公式会越来越多。建议把常用公式片段整理成一个“公式速查”笔记文件比如行内公式与独立公式如何选择对齐多行公式用align分段函数用cases矩阵用pmatrix、bmatrix方程组用\left\{ \begin{array}{...} \right.顺便把希腊字母和常用数学符号表格留在这里你能用到的时候直接抄效果命令效果命令α\alphaβ\betaγ\gammaδ\deltaθ\thetaλ\lambdaμ\muπ\piσ\sigmaφ\phiω\omegaΔ\Delta求和\sum_{i1}^{n}积分\int_{a}^{b}上标x^2下标x_i正无穷\infty偏导\partial实战中如果你发现公式多了一个空格或者少了一个括号Mac上最稳妥的检查办法是编译后看日志里有没有“Missing $ inserted”或“Extra }”之类的提示定位到行号直接修。另外VS Code的括号匹配高亮可以帮你快速找出不配对的大括号。4.6 实战中的交叉引用管理论文里“如图X所示”“参见表X”“公式X给出”这类交叉引用是我见过新手最头疼的地方。原理其实很简单在需要引用到的对象上打一个\label{...}标签然后在正文里用\ref{...}或\eqref{...}引用。标签的命名习惯非常重要。我不建议用\label{fig1}这种编译多了以后根本分不清是哪张图。我个人的命名规范是fig:实验名、tab:对比表、eq:损失函数、sec:方法论。比如\label{fig:accuracy_compare}一看就知道是准确率对比图。交叉引用编译不完备时会显示“??”。解决办法不是改代码而是多编译几遍。第一遍生成辅助文件第二遍写入编号第三遍稳定输出。这也是为什么建议用latexmk它知道要跑几遍。另一个快速排查技巧是搜索.log文件里的“undefined”关键词凡是引用错误都会留下线索。5. 常见问题与排查技巧Mac用户容易踩的坑汇总5.1 编译报错的通用排查四步法LaTeX报错信息对新手很不友好满屏红色加行号基本看不懂。我的排查习惯是按这个顺序来看VS Code底部的“问题”面板它会直接定位到出错的行和警告信息。打开.log日志文件搜索“Error”或“!”感叹号加空格从第一条错误开始看。定位错误行后优先检查括号是否配对、\begin和\end是否对应、是否缺少宏包。如果错误信息看不懂直接把错误行附近的代码复制到搜索引擎十有八九有人踩过同一个坑。特别要提醒的是错误提示里的行号可能不是真正出错的位置。比如缺少\end{document}时报错可能指向最后一行之后的随机位置。这种时候冷静点先把文档结构捋一遍。5.2 Mac上Homebrew安装LaTeX相关的典型报错Homebrew是Mac用户安装软件的重要渠道但经常出现两个问题一是“Error: Failed to download resource mactex”之类的下载失败。这种一般是网络问题或镜像问题。解决办法是换用TUNA镜像或者直接去官网下载pkg。二是“Error: Permission denied rb_sysopen - /usr/local/...”之类权限报错。Intel Mac上Homebrew默认目录是/usr/localApple Silicon上默认目录是/opt/homebrew如果权限不对建议重新安装Homebrew。最简单的确认方法是终端执行brew --prefix如果提示没有目录说明Homebrew路径配置有问题。这跟LaTeX本身无关但不少人在这里花费大量时间。我的建议是如果赶时间别在Homebrew上死磕直接下载MacTeX的pkg安装包双击安装更快。5.3 中文乱码或方块的问题中文显示成方块或者乱码几乎都是编译引擎选错导致的。必须用XeLaTeX或LuaLaTeX并在\documentclass里面加UTF8选项。如果是英文模板改中文记得加载ctex宏包而不是只改字体。另外文本文件的编码必须是UTF-8。VS Code默认UTF-8编码但如果用编辑器打开过旧模板文件被转成了GBK或GB18030编译出来也会乱码。检查方式很简单VS Code右下角会显示当前文件编码不是UTF-8就别犹豫直接“通过编码重新打开”为UTF-8。5.4 图片插入后不显示或报错图片加载不出来常见三个原因图片路径不对。注意\includegraphics用的是相对路径还是绝对路径编译目录是哪里。最简单的方法是把图片放到和main.tex同级的figures目录然后用\graphicspath{{figures/}}声明。图片格式不支持。XeLaTeX默认支持PDF、PNG、JPG、EPS等但Mac上不要使用bmp格式经常编译不过。文件名含空格或中文。比如fig result.pngLaTeX处理起来可能报错。建议文件名一律改成英文字母、数字和下划线组合。遇到插入图片报错先检查控制台输出的是File not found还是Unknown graphics extension前者是路径问题后者是格式问题对症下药很快就能解决。5.5 表格超出页面宽度与自动换行表格太宽是实战里非常普遍的问题。解决思路有几个将列类型改成p{宽度}或m{宽度}。用tabularx环境设置表格总宽度为\textwidth用X列自动分配宽度。内容太长非要换行的地方可以手动在单元格内加\makecell宏包的\\换行。另外表格内不要有超长的连续英文或数字LaTeX默认不会断行会导致表格溢出。可以在导言区加\usepackage{array} \setlength{\tabcolsep}{6pt}适当减少列间距也能让表格更紧凑。5.6 引用编号变成问号“??”的排查引用??基本就是编译次数不够或者标签不存在。先检查有没有编译两遍以上其次看标签名是否拼写一致。用latexmk可以自动解决编译次数问题。如果还出现“??”就搜索引用处前后有没有大括号写错。如果用的是BibTeX还要确认refs.bib里面确实有对应的条目以及.bib文件没有语法错误。5.7 latexmk、xelatex命令无法识别的处理Mac上终端提示command not found: xelatex一般是安装时没把路径写入shell配置文件。MacTeX默认安装路径是/Library/TeX/texbin通常安装包会帮你加环境变量但如果是通过某些特殊情况安装的需要手动添加export PATH/Library/TeX/texbin:$PATH建议把这个写进~/.zshrc然后执行source ~/.zshrc。做完这步再验证xelatex --version就正常了。5.8 构建过慢或页面卡顿的优化如果Mac配置一般编译大文档可能明显卡顿。我的应对办法是用\includeonly只编译当前编辑的章节替代\include。关闭LaTeX Workshop自动编译改成保存时才编译。不需要预览图表时可以暂时注释掉\listoffigures、\listoftables它们会消耗大量编译时间。编译时不要打开太多无关软件Mac的内存管理在编译大PDF时会有点吃紧。如果你是Apple Silicon的Mac基本不用太担心性能M系列芯片编译LaTeX文档绰绰有余。6. 进阶技巧用脚本和快捷键把LaTeX效率再拉高6.1 一键编译与清理中间文件实战后期编译和清理是高频操作。我写了一个简单的Makefile方便一键编译all: latexmk -xelatex -synctex1 main.tex clean: latexmk -c rm -rf build watch: latexmk -xelatex -pvc -synctex1 main.tex这里latexmk -c会清掉中间文件但保留PDF。-pvc是预览模式文件一改就自动编译。用make all编译make clean清理命令行操作比鼠标点按钮更顺手。如果你不喜欢Makefile也可以用VS Code的任务功能添加自定义任务绑定快捷键效果类似。6.2 VS Code片段把常用LaTeX语法变成快捷键LaTeX语法重复度高用VS Code的用户代码片段能省很多时间。打开用户代码片段添加一个latex.json把常用结构写成片段。比如输入fig加Tab自动生成一个带figure环境和includegraphics的基本框架然后跳到标签、标题、文件名三个位置依次填写。这个技巧很不起眼但每天写几十个图表时非常省力。我自己还习惯给常用宏设置快捷键ctrlshiftm插入行内数学环境$...$ctrlshifte插入独立公式环境equation*具体快捷键因人而异但核心思想是把重复劳动变成肌肉记忆。6.3 从Word搬资料到LaTeX的正确方式实战中不少人是先写了Word草稿再转LaTeX。直接复制粘贴Word里的内容格式多半会乱尤其是智能引号、全角空格、特殊符号。我一般这样处理先用Word导出为纯文本TXT再用VS Code打开配合正则替换把多余的空行和制表符清理掉然后再把内容分到对应的章节文件。图表不能直接复制需要导出为PDF或PNG再插入。公式如果是Word自带的OMML公式转起来非常麻烦建议手工重新在LaTeX里写一遍。数学公式用Visual Editor或手写识别工具快速转成LaTeX代码倒是可以。总之从Word迁移到LaTeX别强求一步到位多半要花半天到一天时间整理草稿。这也是实战阶段最容易低估耗时的地方。6.4 备份与版本管理论文写到后期最怕文件误删。LaTeX项目全都是纯文本天然适合用Git管理。在项目根目录建一个.gitignore把中间文件排除掉build/ *.aux *.log *.out *.toc *.lof *.lot *.fls *.fdb_latexmk *.synctex.gz .bbl .blg然后把整个项目推到一个Git仓库每写完一个部分commit一次。这样万一改崩了还能回滚导师或期刊要求返还修改稿时也能精确找到每一版之间的差异。Mac上自带git命令不需要额外装软件。写在最后这套路线跑下来我个人的几点体会前前后后帮人跑过好几遍这条“3天速成5天实战”的路线最大的感受是LaTeX的学习曲线不是陡而是“山路十八弯”。核心语法半天就能学会真正耗时间的是环境和模板问题。所以我不建议任何人靠背语法学LaTeX而是把语法当成字典查把精力放在搭好环境、跑通模板、处理中文这三大前置条件上。几个小技巧最后一起送给你编译前先确认引擎是xelatex中文字体别乱改先让ctex自动处理截图保存图片前先把DPI调到300以上每次编译后瞄一眼.log里的Warning最好做到无警告提交。如果这篇文章帮到了你你也可以像我一样把踩过的坑记录下来发给下一个人。LaTeX这东西越分享坑越少。
返回列表