
最近把一套中文 PPT 模板从压缩包一路折腾到可交付 PDF中间在 MikTex 的包管理和中文编译上绕了不少弯。MikTex 是 Windows 上很轻量的 LaTeX 发行版特点是按需安装宏包平时写论文、做幻灯片不用一次性塞满硬盘但要用它编译中文 PPT 模板光点“下一步”远远不够。真正卡人的地方通常不是安装本身而是中文支持链路、字体映射、宏包自动安装策略以及模板里那些从不同环境抄来的旧配置。我把整个过程按“为什么这样做、具体怎么做、出错怎么查”捋了一遍适合刚接触 LaTeX 演示文稿的新手也适合被中文模板折磨过的老手快速对照排查。1. 先把需求拆明白MikTex、中文和PPT模板之间的关系1.1 这里的PPT模板通常不是.pptx而是LaTeX Beamer模板很多人一看到“PPT模板”就以为是 PowerPoint 的.pptx文件但 MikTex 是 LaTeX 发行版它不负责打开微软的演示文稿格式。这里的“中文 PPT 模板”通常指用 LaTeX 的 Beamer 文档类写的幻灯片模板源文件是.tex编译结果是.pdf。Beamer 做出来的 PDF 可以全屏放映支持分页、覆盖、动画效果也能插入图片、表格、公式、参考文献。它的优势是排版稳定、公式漂亮、版本可控特别适合学术报告、技术分享、课程讲义和项目答辩。缺点也很明显模板作者如果没处理好中文配置你直接拿来编译就可能遇到乱码、字体缺失、宏包找不到、目录不更新等问题。所以第一步要确认你手里那套模板到底是.tex的 Beamer 模板还是.pptx文件。如果是.pptxMikTex 帮不上忙应该用 PowerPoint、WPS 或 LibreOffice Impress。如果压缩包里既有.tex、.cls、.sty、图片目录也有main.pdf示例那基本就是 LaTeX 模板。判断方法很简单看有没有主文件main.tex、slides.tex或类似入口文件看有没有\documentclass{beamer}或\documentclass{ctexbeamer}看有没有\usepackage{ctex}、\usepackage{xeCJK}之类的中文宏包。确认这一点后面的 MikTex 安装和编译才有意义。1.2 为什么MikTex适合Windows上临时编译中文模板MikTex 最大的特点是“缺什么装什么”。TeX Live 通常是一整包安装体积大、组件全、稳定性好MikTex 初始安装体积小遇到模板里没装的宏包可以现场从镜像源拉取。对于 Windows 用户尤其是临时帮别人编译一套中文模板、不确定以后是否长期用 LaTeX 的人MikTex 的轻量策略很友好。你不需要一上来就下载几个 GB只要装好基础环境打开中文模板缺ctex就装ctex缺beamer就装beamer缺fontspec就装fontspec。但轻量也意味着依赖网络和包管理配置。如果自动安装没开编译会直接报File ctex.sty not found如果镜像源慢编译时可能卡在安装宏包半天不动如果公司网络有限制弹窗会反复出现。我的经验是MikTex 适合“有网络、能配置镜像源、愿意手动补包”的场景。如果你要做长期项目、经常换电脑、网络环境不稳定TeX Live 可能更省心。但既然标题是 MikTex下面就以 MikTex 为主线把中文模板编译跑通。1.3 安装前先确认系统、字体、模板来源安装前有三件事必须确认。第一是系统环境Windows 10 或 Windows 11 都可以建议 64 位系统磁盘至少留出 5 到 10 GB 空间因为后续宏包和字体缓存会慢慢增长。第二是中文字体Windows 一般自带宋体、黑体、微软雅黑、楷体、仿宋这些足够ctex的fontsetwindows使用。第三是模板来源从网盘、群文件、论坛下载的模板压缩包先查一遍有没有.exe、.bat、.cmd这类可执行文件。正规 LaTeX 模板通常只有.tex、.cls、.sty、图片和参考文献文件不需要运行可执行程序。如果压缩包里带可疑脚本直接删掉不要点。还要注意路径问题。安装 MikTex 时尽量用纯英文路径比如D:\MiKTeX不要放在“桌面\新建文件夹\论文模板\最终版”这种中文加空格的长路径下。LaTeX 对中文路径的支持比以前好了很多但模板里的图片路径、宏包搜索路径、辅助文件写入路径一旦叠加中文和空格排查成本会成倍增加。模板项目也建议放在纯英文目录比如D:\work\beamer-cn。文件名同理主文件用main.tex图片用fig1.png、flow.png不要用“流程图最终版.png”。这不是迷信而是减少变量。2. MikTex安装与包管理设置别急着点下一步2.1 下载与安装路径怎么选MikTex 的安装包可以在官网获取常见有两种基本安装器和网络安装器。基本安装器会带一批常用组件网络安装器体积更小但安装过程依赖网络。我的建议是新手用基本安装器省得一开始就缺太多东西。安装时选择“仅为当前用户安装”通常权限问题更少如果选“为所有用户安装”后面更新宏包可能需要管理员权限。安装路径写D:\MiKTeX或C:\MiKTeX都可以但不要用中文路径也不要在路径里带空格。安装组件类型保持默认即可后面缺什么补什么。安装完成后先不要急着打开模板。先打开 MiKTeX Console这是包管理、更新、镜像源设置的核心工具。左边一般有 Dashboard、Packages、Updates、Settings 等入口。先看 Dashboard 有没有提示更新如果有先更新miktex-dvipdfmx、miktex-xetex、miktex-bin等基础组件。然后进入 Settings找到“Package installation”相关选项把“安装缺失宏包”的策略设为“自动安装”。这一步非常关键。很多人编译中文模板时报ctex.sty not found就是因为这个选项被设成了“先询问”或“从不”而自己又没注意弹窗。2.2 镜像源和自动安装宏包设置镜像源决定了下载宏包的速度和成功率。在 MiKTeX Console 的 Packages 里找到“Change package repository”选择远程镜像。可以优先选地理位置近、响应快的镜像。如果某个镜像经常超时换一个再试。设置完以后执行一次“更新包数据库”让本地知道远程有哪些包和版本。命令行也可以操作打开 PowerShell 或 CMD输入mpm --update-db mpm --update如果提示权限不足用管理员身份打开终端再执行。自动安装策略可以通过命令行检查initexmf --set-config-value[MPM]AutoInstall1这条命令的意思是让 MikTex 在编译时自动安装缺失宏包。设置完成后可以手动装几个中文模板常用包提前避免第一次编译时弹窗太多mpm --installctex mpm --installxecjk mpm --installbeamer mpm --installfontspec mpm --installgraphicx mpm --installbooktabs这里解释一下为什么先装这几个。ctex负责中文文档类和中文字体配置xecjk是 XeLaTeX 下的中文支持核心beamer是幻灯片文档类fontspec用来调用系统字体graphicx处理图片booktabs做三线表。中文 Beamer 模板基本离不开它们。提前装好后面编译会顺畅很多。注意mpm --install一次装一个包比较稳也可以写多个包名但不同版本语法略有差异。如果某个包已经安装命令会提示已存在不用管。2.3 验证安装是否可用安装和设置完成后必须验证命令行能不能找到xelatex。打开一个新的 PowerShell 或 CMD输入xelatex --version如果能看到版本信息说明环境变量基本正常。如果提示“不是内部或外部命令”说明安装路径没加入 PATH或者你打开的是旧终端。可以重启终端或者在 MiKTeX Console 里检查“添加 MiKTeX 到 PATH”的选项。接着检查关键宏包mpm --list | findstr /I ctex xecjk beamer fontspec如果能看到包名和版本说明常用包已就位。还可以建一个最小测试文件命名为test.tex内容如下\documentclass[UTF8]{ctexart} \begin{document} 中文编译测试MikTex 正常。 \end{document}在文件所在目录打开终端执行xelatex -interactionnonstopmode -file-line-error test.tex如果目录下生成test.pdf打开后中文正常显示说明 MikTex 的中文编译链路已经通了。这一步千万别跳过。很多人直接拿复杂模板开刀结果模板本身有几十个自定义宏包和字体设置报错后根本分不清是 MikTex 问题还是模板问题。先用最小文件验证能把问题范围缩小一半。3. 中文编译链路XeLaTeX ctex 才是主线3.1 为什么中文不要用pdfLaTeX硬扛LaTeX 传统引擎是pdflatex它对英文支持极好但中文处理很别扭。早期方案用CJK宏包配合点阵字体效果差、配置复杂还容易出方框。现代中文排版的主流路线是xelatex或lualatex它们原生支持 UTF-8 和系统字体配合ctex或xeCJK就能直接调用 Windows 字体。所以编译中文 PPT 模板时第一原则是引擎选 XeLaTeX中文宏包用ctex或xeCJK。如果模板文档类写的是\documentclass{beamer}里面加\usepackage{ctex}那就用 XeLaTeX 编译。如果模板写的是\documentclass{ctexbeamer}同样用 XeLaTeX。如果模板里出现\usepackage[utf8]{inputenc}在 XeLaTeX 下通常不需要甚至可能冲突可以注释掉。为什么很多人用pdflatex编译中文模板会失败因为pdflatex不认识 UTF-8 中文字符会报Unicode character ... not set up for use with LaTeX。即使勉强用CJK宏包也要手动指定编码和字体模板一旦换字体就崩。XeLaTeX 则直接把中文当普通字符处理配合fontspec调用系统字体省心得多。你可以把pdflatex想成只会英文打字机xelatex是自带中文字库的现代排版机。做中文 PPT没必要在旧引擎上硬扛。3.2 字体配置从SimSun到Microsoft YaHei中文编译出问题十有八九和字体有关。Windows 常见字体名如下字体中文名fontspec 常用名典型用途宋体SimSun正文、论文黑体SimHei标题、强调微软雅黑Microsoft YaHei屏幕演示、PPT楷体KaiTi引用、注释仿宋FangSong公文、正式文本等线DengXian现代正文在ctex里最简单的方式是使用fontsetwindows让宏包自动配好宋体、黑体、楷体、仿宋。例如\documentclass[UTF8, fontsetwindows]{ctexbeamer}或者在导言区写\usepackage[fontsetwindows]{ctex}如果你要手动指定字体可以用fontspec\usepackage{fontspec} \setCJKmainfont{SimSun}[BoldFontSimHei, ItalicFontKaiTi] \setCJKsansfont{Microsoft YaHei} \setCJKmonofont{FangSong}这里有个常见坑字体名写中文“微软雅黑”有时不被fontspec识别写英文名Microsoft YaHei更稳。另一个坑是字体名拼写错误比如把SimSun写成Simsun大小写不一致可能找不到。还有某些精简版 Windows 或服务器系统没有微软雅黑编译会报The font Microsoft YaHei cannot be found。这时要么安装字体要么换成SimHei、SimSun。如果模板要求特殊字体比如思源黑体、Noto Sans CJK必须先把字体文件装进系统再在模板里改字体名。3.3 最小中文Beamer模板与编译命令先写一个最小可编译的中文 Beamer 示例确认环境没问题\documentclass[UTF8, aspectratio169, fontsetwindows]{ctexbeamer} \usetheme{Madrid} \title{中文PPT模板编译测试} \author{测试作者} \date{\today} \begin{document} \frame{\titlepage} \begin{frame}{中文标题测试} 这是一个中文段落用来验证 MikTex 编译中文 PPT 模板是否正常。 \begin{itemize} \item 第一点中文不乱码。 \item 第二点字体不缺失。 \item 第三点PDF 能生成。 \end{itemize} \end{frame} \end{document}保存为main.tex在终端进入该目录执行xelatex -interactionnonstopmode -file-line-error main.tex第一次编译可能会自动安装缺失宏包等它跑完。如果没有报错会生成main.pdf。如果目录里有交叉引用、目录、参考文献通常需要再编译一次xelatex -interactionnonstopmode -file-line-error main.tex xelatex -interactionnonstopmode -file-line-error main.tex为什么两遍因为 LaTeX 第一遍把章节、页码、引用信息写入辅助文件第二遍才把这些信息读回来填进正文。Beamer 的导航条、目录页、参考文献页码也依赖这个过程。只编译一遍可能看到Rerun to get cross-references right提示PDF 里的目录页码也可能是问号。所以不要嫌麻烦中文模板尤其是带导航条的至少跑两遍 XeLaTeX。4. 完整实操把一套中文PPT模板编译成PDF4.1 解压模板与检查文件结构拿到模板压缩包后先解压到纯英文目录比如D:\work\beamer-cn。不要直接在压缩包里双击打开.tex文件也不要在网盘同步目录里编译因为同步软件可能锁定文件导致main.aux写入失败。解压后先看目录结构典型模板会有main.tex主文件beamerthemeXXX.sty主题文件figures或images图片目录refs.bib参考文献README.md说明可能还有fonts字体目录。先把README看一遍里面可能写了推荐引擎和编译顺序。如果 README 说用 XeLaTeX就照做如果说用 pdfLaTeX但模板里有中文那大概率需要改成 XeLaTeX。检查主文件导言区重点看几个地方文档类是什么有没有中文宏包有没有字体设置有没有\usepackage[utf8]{inputenc}有没有图片路径。比如看到\documentclass{beamer} \usepackage[utf8]{inputenc} \usepackage{CJK}这种配置在中文 XeLaTeX 下很旧建议改成\documentclass{beamer} \usepackage{ctex}或者直接换成\documentclass[UTF8, fontsetwindows]{ctexbeamer}如果模板用了自定义主题主题里可能也写死了字体。先不要大改先按原样用 XeLaTeX 编译一次看第一个错误是什么再逐个处理。我的习惯是先备份整个模板目录再动手改。改坏了随时回退比在群里问“模板编译不过怎么办”有效得多。4.2 第一次编译用xelatex还是latexmk第一次编译建议直接用xelatex因为报错信息最直接。命令如下xelatex -interactionnonstopmode -file-line-error main.tex-interactionnonstopmode让编译遇到错误不要停下来等你按键适合自动化排查-file-line-error让错误信息带文件名和行号方便定位。如果模板带参考文献可能需要bibtex或biber编译顺序变成 XeLaTeX - BibTeX - XeLaTeX - XeLaTeX。如果想省事用latexmk一键处理latexmk -xelatex -interactionnonstopmode -file-line-error main.texlatexmk会自动判断需要编译几遍并根据.bib文件调用 BibTeX 或 Biber。它适合模板已经基本能跑通、你只想快速出 PDF 的阶段。但第一次排查问题时我还是建议先用xelatex手动跑因为latexmk会把多轮输出混在一起第一个真正的错误容易淹没在日志里。等手动跑通后再用latexmk提升效率。编译时如果弹出 MikTex 的宏包安装窗口选择“安装”即可。如果窗口反复弹出但装不上说明镜像源不通或权限有问题。可以关掉自动安装记录缺哪个包手动执行mpm --install包名。常见需要手动补的包包括ctex、xecjk、fontspec、beamer、translator、appendixnumberbeamer、pgfopts、etoolbox、booktabs、caption。缺什么装什么不要一次性装一堆不相关的包。4.3 处理目录、参考文献和多次编译中文 Beamer 模板常见结构是标题页、目录页、章节页、内容页、总结页。目录页和导航条依赖.aux、.toc、.nav等辅助文件所以必须多次编译。如果你发现 PDF 里目录页码是问号或者导航条高亮不对先执行xelatex -interactionnonstopmode -file-line-error main.tex再执行一遍通常就好了。如果用了参考文献编译顺序更要注意。传统 BibTeX 流程xelatex main.tex bibtex main xelatex main.tex xelatex main.tex如果模板用biblatex和 Biber则把bibtex main换成biber main怎么判断用哪个看导言区有没有\usepackage{biblatex}有就用 Biber看到\bibliographystyle和\bibliography通常用 BibTeX。中文参考文献还要注意编码和字段.bib文件保存为 UTF-8作者名、标题可以直接写中文。如果编译报I couldnt open database file refs.bib检查文件名和路径是否一致Windows 下大小写不敏感但 Linux 下敏感跨平台模板尤其要注意。另外Beamer 的\section和\subsection会影响导航条。如果模板导航条太挤可以改用\section*不编号或者调整主题选项。目录页一般用\begin{frame}{目录} \tableofcontents \end{frame}如果目录不显示检查是否在\begin{document}后立即生成或者是否设置了\tableofcontents[hideallsubsections]。这些细节不涉及 MikTex 本身但会决定最终 PDF 是否像一套完整的 PPT。4.4 输出文件与清理缓存编译成功后目录里会多出一堆文件.aux、.log、.nav、.snm、.toc、.out、.pdf。其中.pdf是最终交付文件.tex是源文件图片和.bib是素材其他大多是辅助文件。不要把辅助文件当垃圾全删因为下次编译还需要它们更新目录和引用。但如果辅助文件损坏可以清理后重新编译latexmk -c或者手动删除.aux、.log、.nav、.snm、.toc、.out保留.tex、.pdf、图片和参考文献。如果想把输出文件统一放到build目录可以用xelatex -output-directorybuild main.tex但注意图片路径和辅助文件路径可能因此变化模板复杂时不建议一开始就用输出目录。最简单的方式是每个模板单独一个文件夹编译产物和源文件混在一起交付时只复制.pdf。如果要发给别人建议同时打包.tex、图片、字体和编译说明不要只发 PDF否则对方改不了。5. 常见报错排查从缺包到中文方框5.1 缺包与自动安装失败最常见的错误是! LaTeX Error: File ctex.sty not found.。这说明 MikTex 没装ctex或者自动安装没开。解决方法是打开 MiKTeX Console确认自动安装策略为“自动安装”然后手动执行mpm --installctex如果报File xeCJK.sty not found装xecjk报File fontspec.sty not found装fontspec报File beamer.cls not found装beamer。如果自动安装一直失败先检查镜像源。换一个镜像更新数据库再装。公司网络可能拦截某些端口可以尝试在 MiKTeX Console 里关闭自动安装改为手动下载包。另一个坑是安装到一半断电或断网导致包状态损坏。这时可以在 Console 里执行“更新包数据库”和“修复安装”或者重新安装 MikTex。5.2 中文字体找不到和方框字中文显示成方框、问号或空白通常有三个原因。第一没用 XeLaTeX而是用了 pdfLaTeX。第二字体名写错或系统没装该字体。第三PDF 阅读器缺少字体但这种情况较少因为 XeLaTeX 会把字体嵌入 PDF。排查时先看.log里有没有Font XXX not found。如果有打开C:\Windows\Fonts确认字体存在然后在模板里改成正确的英文名。比如“微软雅黑”写Microsoft YaHei“宋体”写SimSun“黑体”写SimHei。如果模板用了\setCJKmainfont{宋体}可以改成\setCJKmainfont{SimSun}。还有一种情况是字体有但缺粗体或斜体。比如SimSun没有真正的粗体fontspec会模拟加粗效果发虚。可以指定BoldFontSimHei\setCJKmainfont{SimSun}[BoldFontSimHei, ItalicFontKaiTi]如果模板里用\textbf显示中文标题粗体发虚或变成方框就是这个原因。演示文稿建议正文用微软雅黑标题用黑体代码用等宽字体。如果系统没有合适字体可以安装思源黑体、思源宋体然后在模板里统一替换。注意字体版权商用模板要使用可商用的字体。5.3 编译中断、文件锁和缓存污染编译到一半停住常见原因有宏包安装卡在网络上、PDF 阅读器占用了输出文件、杀毒软件扫描.aux文件、路径权限不足。如果你正在用 Adobe Acrobat 或浏览器预览main.pdf它可能锁定文件导致 XeLaTeX 无法写入新的main.pdf。关闭阅读器再编译即可。如果报I cant write on file main.aux检查文件是否只读或者模板是否放在受保护的同步目录里。把项目复制到D:\work下再试。缓存污染也会导致奇怪错误。比如上一次编译中断.aux文件里残留半截命令下一次编译就报Undefined control sequence。这时清理辅助文件再编译latexmk -c如果还不行删除.aux、.toc、.nav、.snm、.out保留.tex和图片重新跑。还有一个隐蔽问题模板里图片文件名带中文或空格XeLaTeX 有时能找到有时找不到。统一改成英文数字下划线能避免很多玄学问题。5.4 常见报错速查表报错或现象可能原因处理方式File ctex.sty not found缺中文宏包mpm --installctexUnicode character ... not set up用了 pdfLaTeX改用 XeLaTeX中文显示方框字体缺失或字体名错设置fontsetwindows或改用 SimSunFont Microsoft YaHei not found系统无该字体或名字错换 SimHei 或安装字体Rerun to get cross-references right交叉引用未更新再编译一遍I cant write on file main.aux文件被占用或权限不足关闭 PDF 阅读器换目录自动安装弹窗循环镜像源不可用换镜像源手动mpm --installEmergency stop前面有更早错误从日志第一个!开始看图片不显示路径错误或格式不支持改英文路径确认扩展名目录页码是问号编译次数不够连续编译两到三次参考文献不显示编译顺序错或数据库路径错按 XeLaTeX - BibTeX - XeLaTeX 跑PDF 中文复制乱码字体嵌入或编码问题用 XeLaTeX ctex检查字体嵌入看日志有一个技巧不要从最后一行往前看要从第一个!开始看。LaTeX 报错经常是连锁反应第一个错误解决了后面几十个错误可能自动消失。-file-line-error参数会告诉你错误在哪个文件哪一行非常有用。如果日志太长可以搜!、Error、Warning三个关键词。警告不一定致命但Overfull \hbox太多说明排版溢出演示文稿里可能文字出框需要调整内容或字号。6. 编辑器与一键编译TeXworks、VS Code、Cursor怎么配6.1 TeXworks里切换XeLaTeXMikTex 自带 TeXworks 编辑器打开main.tex后注意工具栏上的编译引擎下拉框。默认可能是 pdfLaTeX要手动切成 XeLaTeX。菜单路径通常是编辑 - 首选项 - 排版 - 默认处理器选择 XeLaTeX。也可以直接在工具栏下拉里选 XeLaTeX然后点绿色播放按钮。TeXworks 的优点是轻量、和 MikTex 集成好、报错能定位到行。缺点是界面比较老项目管理弱。如果你只是偶尔编译中文 PPT 模板TeXworks 够用。在 TeXworks 里编译时如果弹出宏包安装窗口勾选“不再询问”或“始终安装”后面会省事。如果编译失败下方控制台会显示日志点错误行可以跳到源码。注意 TeXworks 的中文界面和编译中文是两码事界面语言不影响输出。有人把 TeXworks 设置成中文后发现模板还是乱码就以为设置无效其实乱码是字体和引擎问题不是编辑器界面问题。6.2 VS Code LaTeX Workshop配置如果你习惯 VS Code可以安装 LaTeX Workshop 插件然后配置 XeLaTeX 编译链。打开设置 JSON加入{ latex-workshop.latex.tools: [ { name: xelatex, command: xelatex, args: [ -synctex1, -interactionnonstopmode, -file-line-error, %DOC% ] }, { name: bibtex, command: bibtex, args: [%DOCFILE%] } ], latex-workshop.latex.recipes: [ { name: xelatex - bibtex - xelatex*2, tools: [xelatex, bibtex, xelatex, xelatex] } ] }这样按CtrlAltB就会按顺序编译。如果不用参考文献可以只保留 XeLaTeX 两遍的配方。VS Code 的好处是代码补全、语法高亮、错误列表、PDF 预览、正向反向搜索都更现代。缺点是配置项多新手容易配错。如果配完编译没反应先看 LaTeX Workshop 的输出面板确认它调用的是不是 XeLaTeX而不是默认的 latexmk 或 pdflatex。6.3 Cursor与VS Code中文界面和编译中文无关最近很多人搜“cursor怎么设置中文”“vscode设置中文”这属于编辑器界面语言设置。以 VS Code 为例按CtrlShiftP打开命令面板输入Configure Display Language选择“中文简体”重启即可。Cursor 基于 VS Code操作类似也可以在扩展里安装中文语言包。但必须强调编辑器界面设置成中文不会让 LaTeX 中文模板编译成功。编译中文靠的是 XeLaTeX、ctex、系统字体和正确的模板配置。两者不要混为一谈。你完全可以在英文界面的编辑器里编译出完美中文 PDF也可以在中文界面的编辑器里对着ctex.sty not found发愁。同样有人搜“pycharm怎么改成中文”“android studio怎么设置中文”这些工具的中文界面和 LaTeX 中文编译没有直接关系。真正相关的是模板编码保存为 UTF-8编译引擎选 XeLaTeX字体名匹配系统字体缺包时能自动安装或手动补包。把精力放在这四个点上比折腾编辑器界面有效得多。6.4 latexmk一键化与批处理脚本模板跑通后可以做一个一键编译脚本减少重复输入。在项目目录新建build.bat内容如下echo off latexmk -xelatex -interactionnonstopmode -file-line-error main.tex if errorlevel 1 ( echo 编译失败请查看 main.log pause )双击即可编译失败时暂停窗口方便看日志。如果喜欢 PowerShell可以写build.ps1latexmk -xelatex -interactionnonstopmode -file-line-error main.tex if ($LASTEXITCODE -ne 0) { Write-Host 编译失败请查看 main.log Read-Host 按回车退出 }还可以配置.latexmkrc文件让 latexmk 默认使用 XeLaTeX$pdf_mode 5; $xelatex xelatex -interactionnonstopmode -file-line-error %O %S;这样以后直接执行latexmk main.tex就会走 XeLaTeX。对于经常改模板、反复出 PDF 的人一键化能省很多时间。但注意一键化脚本不要一开始就上否则出错时你不知道它内部跑了哪几步。先手动跑通再包装成脚本。7. 个人踩坑记录与长期维护建议7.1 我踩过的五个坑第一个坑是安装路径带中文。早期我把 MikTex 装在“D:\软件\LaTeX 环境”下结果某些宏包安装时路径解析异常字体缓存也出过问题。后来换到D:\MiKTeX一切正常。第二个坑是自动安装宏包被网络拦截编译时一直弹窗点“安装”也没反应。后来在 MiKTeX Console 里换了镜像源并手动执行mpm --installctex才彻底解决。第三个坑是模板里同时有\usepackage[utf8]{inputenc}和ctexXeLaTeX 下报编码冲突。注释掉inputenc后正常。第四个坑是字体名写“微软雅黑”fontspec找不到改成Microsoft YaHei后正常。第五个坑是 PDF 阅读器占用main.pdf导致main.aux写入失败。关闭阅读器再编译即可。这些坑看起来零散但规律很一致中文编译问题大多出在“引擎、编码、字体、路径、文件锁”五个变量上。遇到报错时先检查是不是用 XeLaTeX再检查编码是不是 UTF-8再检查字体名再检查路径有没有中文空格最后检查文件有没有被占用。按这个顺序排查大部分问题十分钟内能定位。不要一上来就重装 MikTex重装成本高而且往往解决不了模板本身的问题。7.2 模板改造与备份迁移一套中文 PPT 模板跑通后建议做三件事。第一把可用配置固化下来。比如在模板导言区统一写fontsetwindows字体统一用SimSun、SimHei、Microsoft YaHei避免每次换电脑都要改。第二把编译命令写进README或build.bat注明用 XeLaTeX至少编译两遍有参考文献时加 BibTeX 或 Biber。第三用 Git 或至少用压缩包备份模板。每次大改前提交一次出问题能回退。模板里的图片、字体、参考文献最好按目录分类图片放figures字体放fonts参考文献放refs主文件保持简洁。换电脑时不要只复制.pdf要把整个项目目录复制走。新电脑上先装 MikTex再按前面的步骤配置自动安装、镜像源和 XeLaTeX然后打开main.tex编译。如果新电脑没有某款字体提前把字体文件带上或者改用 Windows 自带字体。对于重要汇报建议在最终交付前把 PDF 嵌入所有字体避免对方电脑打开时字体替换导致排版错位。可以用 PDF 阅读器的“属性”或“字体”面板检查字体是否嵌入。如果模板需要长期维护定期更新 MikTex 宏包但不要在重要汇报前一天盲目全量更新宏包升级有时会引入兼容性问题。我的做法是项目截止前一周冻结环境只做内容修改不更新宏包项目结束后再统一升级。