多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

macOS LaTeX论文写作全流程:中英文混排与编译优化指南

macOS LaTeX论文写作全流程:中英文混排与编译优化指南 如果你在 macOS 上写过毕业论文大概率经历过这样的场景Word 排中文版面还可以但一插公式、一碰参考文献就抓狂目录、编号、图表浮动能把人逼疯。我大约七年前第一次在 Mac 上装 LaTeX折腾了好几个晚上才把环境彻底配好后来陆续帮实验室同学配过近十台机器。这篇笔记就是一套完整的 macOS 下 LaTeX 论文写作流程重点解决中英文混排的兼容问题也覆盖了环境安装、模板结构、自动编译、辅助文件清理这些实操细节。这套方案适合谁准备写本科或研究生毕业论文的准备给期刊投稿的以及受不了 Word 排版但还没下定决心迁移的人。全文按我实际操作的顺序来写不会讲太多玄学理论尽量每一步都给出能直接复制的代码和配置。如果你之前只碰过 Overleaf 没配过本地环境这篇可以作为第一次完整落地的参考。1. 环境准备macOS 上搭建 LaTeX 写作环境1.1 发行版选型MacTeX 全量、BasicTeX 与 HomebrewmacOS 上最主流的 LaTeX 发行版是 MacTeX它本质上是 TeX Live 的 macOS 原生打包版。MacTeX 官网提供两种安装包全量版和 BasicTeX。全量版安装文件大约 5.5 GB装完占用接近 8 GB里面包含了 TeX Live 几乎全部宏包还附带 TeXShop、LaTeXiT、BibDesk 这些辅助工具BasicTeX 只有一百多兆相当于一个极简内核大多数宏包都要事后用tlmgr手动补装。我给你的建议是新手直接装全量版不要碰 BasicTeX。原因很现实中英文论文写作要用的ctex、xeCJK、biblatex、booktabs、longtable在 BasicTeX 里全都不是预装的你会在某个深夜连续执行一串tlmgr install还会遇到依赖缺失、包版本不匹配的问题。我在帮同学配环境时用 BasicTeX 踩过一次坑光补ctex相关依赖就补了二十多个包最后想想完全不值得。如果你习惯命令行也可以用 Homebrew 安装brew install --cask mactex-no-gui末尾的mactex-no-gui表示不安装 TeXShop、LaTeXiT 这些图形工具只保留命令行编译环境。这个变体对 VS Code 工作流来说刚刚好既不占多余空间也不会在启动台里多出一排用不上的图标。装完记得先验证一下xelatex --version latexmk --version能看到版本号就说明 TeX Live 已经进入 PATH。如果终端提示找不到命令通常是安装包没有自动刷新环境变量重开一个终端窗口即可。1.2 编辑器选择VS Code LaTeX Workshop 为什么是最优选macOS 上能写 LaTeX 的编辑器不少我实际用过 TeXShop、Overleaf、VS Code最后长期稳定用的是 VS Code 加 LaTeX Workshop 扩展。TeXShop 是 MacTeX 自带的编辑器打开即用但它更像一个“能用”的工具没有目录大纲、没有代码补全、没有正反定位的顺滑体验写长论文时效率偏低。Overleaf 也很优秀免配置、在线协作、模板库丰富但本地环境始终绕不开有些学校的模板需要本地编译才能通过投期刊时往往还要自己处理图片路径、字体、宏包版本而且 Overleaf 的免费版编译队列在高峰时期经常要排队几十页的论文编译一次要等很久。VS Code 的优势在于它把“编写、编译、预览、清理”整合在同一个界面里。LaTeX Workshop 扩展提供语法高亮、自动补全、错误提示、PDF 预览、SyncTeX 正反向定位还能自定义编译配方。最关键的是一份settings.json配置可以跟着项目走换台电脑也能快速还原环境。这套组合在 macOS 上的体验基本达到了本地写作的上限。1.3 30 分钟完成安装并出第一份 PDF下面是一条完整流程照着走一遍你就能从零到一看到第一份 PDF 出现在屏幕上。安装 MacTeX 全量版或者执行brew install --cask mactex-no-gui。国内下载慢的话可以从国内高校开源镜像站拉取安装包速度会快很多。安装 VS Code扩展市场里搜索 LaTeX Workshop 并安装。创建一个测试目录新建文件test.tex写入下面这段最小代码\documentclass[UTF8, fontsetmac]{ctexart} \begin{document} 中文 LaTeX 测试中英文混排 OK。 \end{document}在 VS Code 里按下Cmd Alt B编译。第一次编译如果没反应先确认 LaTeX Workshop 的默认配方选的是 XeLaTeX或者稍后按第 4 章的方式配置配方。编译完成后右侧会弹出 PDF 预览。看到中文正常渲染出来环境就算通了。这一步值得多说一句很多人在ctexart文档类上翻车是因为fontsetmac需要 macOS 系统预装的宋体、黑体、楷体。如果你用的是精简版系统或者缺少中文字体编译会直接报字体不可用。遇到这种情况可以把fontset改成fandol这是 ctex 宏包提供的开源中文字体方案不依赖系统字体后面第 2 章会细讲。2. 中英文混排XeLaTeX 与 ctex 的正确打开方式2.1 为什么必须用 XeLaTeX从 CJK 时代到 Unicode 时代老用户都知道LaTeX 早年处理中文是一场灾难。CCT、CJK、这些方案要么需要特殊格式的字体要么需要复杂的转码工具公式和中文标点还经常打架。2008 年之后情况完全变了XeTeX 引擎可以直接调用 macOS 或 Windows 系统里的 TrueType、OpenType 字体再加上xeCJK和ctex宏包的成熟中文排版不再需要任何预处理源文件直接用 UTF-8 保存即可。编译论文的时候一定要明确告诉引擎使用 XeLaTeX而不是默认的 pdfLaTeX。这里我列一个简单对比编译引擎中文支持系统字体调用适用场景pdfLaTeX需要 CJK 宏包兼容性差不支持纯英文旧模板不推荐新文档使用XeLaTeX原生支持配合 ctex/xeCJK 效果极佳支持中英文混排论文、学位论文、期刊投稿LuaLaTeX原生支持功能更强支持复杂排版需要 Lua 脚本时实际写作中xelatex是最稳妥的选择因为ctex宏包对 XeLaTeX 的支持最完善学校模板里要求的宋体、黑体、Times New Roman 都可以直接映射到系统字体。不要因为听说 LuaLaTeX 很强大就一头扎进去论文写作这种场景稳定压倒一切。2.2 ctex 宏包的工作方式与中文字体ctex宏包的核心价值是把“中文字体选择、标点压缩、段落缩进、章节标题中文化、国标字号”这些事一次性做完。最基础的用法是\documentclass[UTF8, fontsetmac, zihao-4]{ctexart}这里几个选项拆开讲UTF8源文件编码现代 macOS 上保存的.tex文件默认就是 UTF-8显式声明能让编辑器和其他协作工具都明确这一点。fontsetmac让 ctex 自动使用 macOS 的系统字体宋体对应 Songti SC黑体对应 Heiti SC楷体对应 Kaiti SC。如果你没有完整的中文字体库把这里改成fontsetfandolctex 会自动改用 Fandol 开源字体效果也完全能打。zihao-4让正文使用“小四”字号。\zihao是 ctex 提供的中文字号命令-4表示小四4表示四号这对国内学位论文的版式要求特别友好比12pt这种西文字号表达更精确。如果你需要单独控制中文字体和西文字体比如中文宋体、英文 Times New Roman可以在 preamble 里这样写\usepackage{fontspec} \setmainfont{Times New Roman} \usepackage{xeCJK} \setCJKmainfont{Songti SC}这里最容易犯的错是“只设置了\setmainfont却不设置\setCJKmainfont”。结果英文正常、中文变成系统默认字体甚至直接报错因为\setmainfont只会影响西文字体中文字体必须交给xeCJK去处理。你可以把xeCJK理解为“中文字体分流器”它在 XeLaTeX 编译时把每个汉字按你指定的话字体渲染英文部分仍然走fontspec的路线。2.3 论文常见的页面版式参数速查写论文时学校给的版式要求通常是“上 2.5 cm下 2.5 cm左 3 cm右 2.5 cm正文小四行距 1.5 倍”。这些要求可以精确地用geometry和setspace实现\usepackage[a4paper, top2.5cm, bottom2.5cm, left3cm, right2.5cm]{geometry} \usepackage{setspace} \onehalfspacing下面这个表是我自己在多个学校模板里整理出来的版式参数可以直接对应成 LaTeX 配置版式要求Word 里的说法LaTeX 里的写法正文大小小四号字\documentclass[zihao-4]{ctexart}章节标题黑体三号\zihao{3}\heiti{...}页边距上2.5 下2.5 左3 右2.5\usepackage[margin...]{geometry}行距1.5 倍行距\usepackage{setspace}\onehalfspacing段首缩进首行缩进两字符\parindent2em需要提醒的是右2.5cm并不是所有学校都要求有的模板要求“左 2.5、右 2.5、上 3、下 3”所以写模板时最好先确认学校的规范文档再调整geometry参数不要直接抄别人的数值。另外一个细节是ctexart默认已经为章节标题做了中文字号处理不要画蛇添足地再加载titlesec去手工改格式除非你很清楚自己在干什么。3. 论文结构标题、摘要、正文、图表与参考文献3.1 推荐的项目目录结构本地写论文不是写 Hello World几十章内容堆在一个文件里编译速度会变慢定位问题也会很痛苦。我长期使用的结构是这样的thesis/ ├── main.tex ├── refs.bib ├── chapters/ │ ├── ch01-introduction.tex │ ├── ch02-related-work.tex │ ├── ch03-method.tex │ ├── ch04-experiment.tex │ └── ch05-conclusion.tex ├── figures/ │ ├── architecture.png │ └── result.pdf └── settings.jsonmain.tex只放文档类和 preamble正文用\include按章引入这样每一章可以独立编辑编译时也可以只编译当前章节来做局部调试。figures/单独放图方便统一管理图片格式和命名。refs.bib放参考文献条目使用 BibLaTeX 管理后面 3.5 小节会细说。3.2 主文档模板一份可以直接套用的 preamble下面这份 preamble 覆盖了前两章讲到的中文字体、页边距、行距、图表宏包和参考文献配置你可以直接复制到main.tex里使用\documentclass[UTF8, fontsetmac, zihao-4]{ctexart} \usepackage[a4paper, top2.5cm, bottom2.5cm, left3cm, right2.5cm]{geometry} \usepackage{setspace} \onehalfspacing \usepackage{amsmath, amssymb} \usepackage{graphicx} \usepackage{booktabs} \usepackage{longtable} \usepackage{caption} \usepackage[backendbiber, stylegb7714-2015]{biblatex} \addbibresource{refs.bib} \title{你的论文标题} \author{你的姓名} \date{\today} \begin{document} \maketitle \include{chapters/ch01-introduction} \include{chapters/ch02-related-work} \include{chapters/ch03-method} \include{chapters/ch04-experiment} \include{chapters/ch05-conclusion} \printbibliography[headingbibliography] \end{document}这段代码有一个细节需要特别留意\include会在每个被引入文件前自动执行\clearpage章节会从新的一页开始。如果学校要求章节之间不换页比如有些期刊投稿需要单栏连续排版那你应该用\input而不是\include。\input只是把文件内容“拼接”进来不会分页适合要求紧凑排版的模板。我在给期刊投稿时通常用\input写学位论文时用\include这两者之间的选择本身就是排版需求的一部分。3.3 中英文标题、作者、机构、摘要与关键词国内期刊投稿最常见的排版要求是“标题、作者、机构、摘要、关键词单栏排版正文单栏或双栏”。ctexart默认就是单栏排版所以直接按顺序写就行。很多学校或期刊要求同时提供中英文双摘要我的做法是直接复用abstract环境写两次中文一段、英文一段\begin{abstract} 本文提出了一种基于……的方法。实验结果表明…… \textbf{关键词}中文关键词A中文关键词B中文关键词C \end{abstract} \begin{abstract} This paper proposes a method based on ... Experimental results show ... \textbf{Key words:} keyword A; keyword B; keyword C \end{abstract}\textbf{关键词}这种写法比较朴素但很稳定。如果你希望“关键词”三个字和后续内容之间有更规范的间距可以自定义一个简单的关键词环境\newcommand{\keywords}[1]{\par\noindent{\bfseries 关键词}#1\par} % 使用时 \keywords{中文关键词A中文关键词B中文关键词C}页面顶部作者信息如果有多位作者、多个机构常见做法是使用\thanks{}或者自定义\affiliation命令。简单场景下用\author{姓名}就够了多机构场景我建议直接在小标题后面加脚注或者改用学校的 LaTeX 模板因为期刊对不同机构的编排格式差异很大自己硬造很容易不符合要求。这里有一个很实用的技巧如果你的模板要求“标题、作者、机构”居中而摘要和关键词要左对齐或单栏显示可以用\begin{center}包裹标题块摘要与关键词则放在普通段落里不需要额外塞center环境。3.4 图表排版图片位置、跨页表格与三线表图片和表格是 LaTeX 新手最容易失控的地方。我在知乎上看到的提问里十个有八个是“图片为什么不在我放的位置”。图片默认是浮动体LaTeX 有一套自己的排版算法图片会按htbp优先级移动到合适的位置而不是你代码里写哪就是哪。正确用法是\begin{figure}[!htbp] \centering \includegraphics[width0.8\linewidth]{figures/architecture.png} \caption{系统架构图} \label{fig:architecture} \end{figure}这里的!htbp含义是优先放在当前位置here如果放不下就放到顶部top、底部bottom最后再放到单独的一页page。加上!是让 LaTeX 放宽位置限制。完全不建议使用[H]强制固定位置虽然float宏包提供了这个选项但很容易导致浮动对象顺序错乱图表编号和正文引用对不上这在长论文里是灾难性的体验。实在需要强制位置我建议检查图表大小或者用\clearpage控制当前页内容而不是硬卡浮动物体。表格方面中文学位论文普遍要求“三线表”也就是只有顶线、栏目线、底线没有纵向分隔线。用booktabs宏包实现\begin{table}[!htbp] \centering \caption{实验结果对比} \label{tab:result} \begin{tabular}{lccc} \toprule 方法 准确率 召回率 F1 \\ \midrule 方法A 0.82 0.79 0.80 \\ 方法B 0.85 0.83 0.84 \\ \bottomrule \end{tabular} \end{table}跨页长表格使用longtable宏包它能自动把表格拆分到多页并重复表头这是tabular做不到的。用法也简单把table环境换成longtable然后写\endhead声明重复表头的内容即可。如果你需要在表格里插入公式直接在单元格里写$...$没有问题但如果整列表格都需要比较宽的公式建议缩小字号或改用p{}参数控制列宽。3.5 参考文献biblatex biber gb7714-2015参考文献是论文写作里最不能出错的环节。老式的BibTeX配合\bibliographystyle也能用但对中文参考文献和著者-出版年制的支持很差。我强烈建议新项目直接使用biblatex加biber后端配合中文期刊常用的gb7714-2015样式\usepackage[backendbiber, stylegb7714-2015]{biblatex} \addbibresource{refs.bib}refs.bib里的内容直接用 BibTeX 格式维护article{li2023method, author {李雷 and 韩梅梅}, title {基于深度学习的自然语言处理方法}, journal {计算机学报}, year {2023}, volume {46}, number {2}, pages {123-135} }正文里用\cite{li2023method}引用文末用\printbibliography输出参考文献表。这个组合最核心的优势是引用数据与正文完全分离改引用样式只需要改style参数不用动正文。比如从著者-出版年制换成顺序编码制只需要把stylegb7714-2015换成stylegb7714-2015ay再重新编译即可。需要特别注意的是biber不是bibtex编译链不要搞混。我第一次配这个组合时默认跑的是bibtex结果refs.bib解析失败所有引用都变成[?]排查了好一会儿才发现是编译配方里少了biber。后面第 4 章的自动编译配方会把biber加进去这里先记住用了 biblatex就必须跑 biber。3.6 图表编号与交叉引用图表插入后一定要用\label和\ref做交叉引用。比如你在正文里写“如图\ref{fig:architecture}所示”编译后会自动显示“如图 1 所示”。这个机制是 LaTeX 相比 Word 最大的效率优势你插入一张图片、调整章节顺序、删掉一个表格编号会自动更新绝不会出现“图 3 引用指向图 5”的乌龙。使用\ref有一个前提编译至少两遍。第一遍写.aux文件记录编号第二遍才能读取编号并替换引用。所以新手如果看到??第一反应不应该是代码写错而是“我只编译了一遍”。后面用latexmk自动多次编译就能彻底解决这个问题。交叉引用还有一个进阶技巧使用cleveref宏包可以自动生成“图 1”“表 2”这样的前缀中英文文档都支持但需要注意它和个别模板宏包的兼容性我通常只会在自己没有强模板要求的小项目里用。4. 编译提效自动化编译与辅助文件清理4.1 LaTeX 为什么要编译多次latexmk 自动化解法上面提到交叉引用需要多编几次实际上一次常规编译产生的文件之间是有依赖关系的。引用、目录、参考文献、图表列表都会生成.aux文件再被下一次编译读取。如果没有自动工具我会运行xelatex main.tex、biber main、xelatex main.tex、xelatex main.tex四连击非常容易漏。latexmk就是解决这个问题的工具。它会在后台监听你的.tex文件变化自动判断需要执行多少次编译器调用。直接命令行运行latexmk -xelatex -synctex1 -interactionnonstopmode main.tex-xelatex让它调用 XeLaTeX-synctex1开启源码与 PDF 的同步定位-nonstopmode让编译遇到错误时不弹交互窗口直接退出。如果参考文献使用biber你需要在latexmkrc配置文件里加一行$biblatex 1;这样latexmk就会自动把biber加入编译链全程无需手动干预。4.2 LaTeX Workshop 自动化配置实操VS Code 里最舒服的用法是把latexmk或四连击固化为配方然后一键编译。以下是一份我长期使用的settings.json配置{ latex-workshop.latex.recipes: [ { name: xelatex - biber - xelatex - xelatex, tools: [xelatex, biber, xelatex, xelatex] } ], latex-workshop.latex.tools: [ { name: xelatex, command: xelatex, args: [ -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] }, { name: biber, command: biber, args: [%DOC%] } ], latex-workshop.latex.clean.fileTypes: [ *.aux, *.log, *.bbl, *.blg, *.out, *.toc, *.lof, *.lot, *.fls, *.fdb_latexmk, *.synctex.gz ], latex-workshop.view.pdf.viewer: tab }%DOC%是 LaTeX Workshop 的占位符代表当前打开的.tex文件路径。编译时它会按顺序执行xelatex编译、biber解析参考文献、再一次xelatex读取引用编号、最后一次xelatex稳定目录。之后每次保存文件扩展都会自动重新编译并刷新 PDF 预览基本把“编译”这件事变成了下意识动作。工具栏里的清理命令对应上面第 5 个配置项它会在项目目录中删除列出的辅助文件让整个目录恢复到无编译残留的状态。这里我要特别推荐你在打完最终版 PDF 后执行一次清理原因下面细说。4.3 辅助文件清理那些 .aux、.log、.synctex 是干嘛的每次编译都会生成一堆“辅助文件”它们不是论文内容但却是 LaTeX 正常工作所必需的中间产物后缀用途能否删除.aux交叉引用信息可删编译会重新生成.log编译日志可删.toc/.lof/.lot目录、图表目录可删编译重新生成.bbl/.blg参考文献排版与日志可删.synctex.gz源码与 PDF 双向定位可删失去正反定位而已.fdb_latexmk/.flslatexmk 状态记录可删这些文件看起来无害但有两个真实痛点。第一如果你用 Git 管理论文目录提交时没清理就把.aux、.log全传上去了仓库会越来越乱别人克隆下来还会因为本地版本不同产生一堆无意义的 diff。第二学校提交论文时通常要求的是.zip压缩包没清理的文件夹里会混进大量中间文件压缩包体积变大不说导师打开后还会看到一堆不明所以的文件。我的习惯是每次提交前执行latexmk -c或者直接在 VS Code 命令面板里搜索LaTeX Workshop: Clean up auxiliary files。如果用的命令行可以执行latexmk -c-c只删除辅助文件保留最终 PDF-CA会连 PDF 一起删掉适合你确认最终版已经另存在别处时使用。4.4 正反向定位SyncTeX 提升编辑效率写长论文时经常需要在 PDF 里看到某段文字然后立刻跳回源码修改或者改完源码想直接看 PDF 对应位置。SyncTeX 就是干这个用的。编译参数里已经加了-synctex1所以 PDF 已经携带同步数据。在 VS Code 的 LaTeX Workshop 预览窗口里按住Cmd键点击 PDF 任意位置光标会自动跳到源码对应行反过来在源码界面按Cmd Option J或者使用扩展命令 “SyncTeX from cursor”可以将当前行高亮并跳转到 PDF 对应位置。正反向定位对论文调试的意义很大尤其是图表编号、参考文献引用这类需要来回核对的内容。我在改第三章实验数据时几乎全程用这个功能省去了反复滚动查找的体力劳动。如果你用的是 TeXShop 或其他编辑器Cmd 鼠标点击的基本逻辑也大同小异核心都是生成.synctex.gz文件。5. 常见问题与避坑实录5.1 中英文适配类报错速查错误信息原因解决方案Package ctex Error: CTeX fontset mac is unavailable系统缺少指定中文字体把fontsetmac改成fontsetfandol或安装中文字体xeCJK Error: \setCJKmainfont not supported忘记使用 XeLaTeX/LuaLaTeX 编译编译配方里的引擎换成xelatex中文正常但英文怪怪只设置了\setCJKmainfont没设置西文字体用fontspec的\setmainfont{Times New Roman}中文引号、标点显示为半角字体不支持全角标点或ctex选项被覆盖不要手写全角标点直接用中文输入法不要加载冲突的标点宏包“CTeX fontset mac is unavailable” 是我见过最多的一个报错。这一般不是代码问题而是系统里真的没有对应字体。macOS 宋体族的 PostScript 名称是Songti SC但如果你的系统是精简版或者字体被清理过XeLaTeX 就搜不到。最省事的解决办法是fontsetfandolfandol字体是 ctex 宏包内置的开源中文字体方案无需自己安装离线也能用。唯一的代价是字体观感和系统宋体略有差异但论文评审判断不出区别。5.2 编译过程类报错速查错误信息原因解决方案File xxx.cls not found没有安装或找不到文档类用tlmgr install ctex或路径没包含模板文件夹LaTeX Error: Unknown option UTF8文档类不支持 UTF8 选项换用ctexart或删掉UTF8选项新版本默认 UTF-8Citation xxx undefined.bib条目不存在或biber没跑检查refs.bib内 key 是否一致确保编译链含biberReference fig:xx undefined没编译两遍或\label没写用latexmk多次编译检查\label是否在\caption之后Runaway argument?等解析错误大括号未闭合用编辑器的括号高亮逐层检查最典型的“Citation undefined”问题我在第 3.5 小节已经预告过用biblatex就必须在编译链中插入biber。很多人把 Overleaf 的全自动编译习惯搬到本地以为自己执行了一次xelatex就万事大吉结果参考文献全部变成[?]。所以我倾向于不用默认的 “latexmk” 配方而是明确写上xelatex - biber - xelatex - xelatex每一步都在日志里能看到出问题也好排查。5.3 字体与模板类报错速查错误提示原因解决方案The font ... cannot be found指定了系统中不存在的字体名用fc-list查看实际字体名确认大小写和空格Undefined control sequence \keywords文档类不提供关键词命令自己定义\keywords命令或用abstract环境自写Creating PDF failed编译链路中断或宏包报错查看.log文件定位真正错误行不要只看最终提示字体名大小写问题非常隐蔽。macOS系统字体在“字体册”里显示的是 “Songti SC”但在 XeLaTeX 的字体搜索列表里名称可能全部小写为 “Songti SC” 不一定可靠。我可以教大家一个验证命令fc-list | grep -i songti如果没有任何输出说明系统字体库中找不到宋体如果有输出看第一列的字体路径和字体名把实际显示的名字写进\setCJKmainfont。这里有个坑是某些字体族可能叫 “Songti SC” 也可能叫 “Songti SC Regular”原则上应该填写族名而不是字重全名fc-list输出的通常是族名和字重的组合你需要把 “Regular” 去掉再试。我在这上面浪费过半小时最后发现只是字体名多写了一个 “Regular”。5.4 我的几则真实踩坑经验再分享两个没写在报错表里的经验。第一个是关于“模板路径”的。很多期刊会给一个.cls文件比如ieeeconf.cls。新手往往把它放到和main.tex同一级目录下然后写\documentclass{ieeeconf}理论上没问题。但如果模板解压出来的.cls和.sty文件很多放在根目录会让项目混乱而且如果\include的章节里有相对路径图片经常加载失败。我的做法是保持模板文件结构不动在main.tex里用\documentclass{./template/ieeeconf}这种方式指定相对路径或者把模板目录加入TEXINPUTS环境变量。前者直观后者一劳永逸。建议你拿到模板后先花五分钟读下README看看有没有安装说明不要硬猜。第二个经验是“中英文期刊模板的字体替换”。部分 CCF 推荐期刊的中文模板已经默认配置好了一切但英文模板里如果包含\usepackage{times}在 XeLaTeX 下会失效因为times宏包是针对 pdfLaTeX 的。正确做法是改用fontspec\usepackage{fontspec} \setmainfont{Times New Roman}这就是我前文反复强调的西文字体统一交给 fontspec中文字体统一交给 xeCJK两者不要混用。一旦理解了这个分工绝大多数中英文排版问题都能靠调整这两个包的配置来解决。最后再分享一个我个人的小习惯每次交论文前我会在项目目录里跑一遍latexmk -c清理所有辅助文件再把整个文件夹打包发给对方。收到的人解压后直接编译就能出 PDF。这套流程帮我在三个实验室之间传模板时几乎没出过差错。如果你也打算在 macOS 上长期写论文把这套流程跑通以后从开题到投稿都能把精力放在内容本身而不是排版工具上。
返回列表