LaTeX 简历怎么做:模板、Overleaf 与 ATS
LaTeX 简历是什么、在 Overleaf 里怎么一步步做、常用模板(Jake's、Awesome-CV 等)及 ATS 注意事项。
LaTeX 简历是用纯文本 .tex 文件写成、再由排版引擎编译成 PDF 的简历(CV),不用在 Word 或 Google 文档里手动排版。工程师和学术界的人喜欢它,因为每次输出的效果都一样,源文件可以放进 git,模板也是免费的。大多数招聘专员既不会注意也不关心 PDF 是用什么工具做的。申请表背后的解析器有时会在意,而大多数 LaTeX 简历教程恰好跳过了这一部分。
这篇指南讲 LaTeX 简历是什么、怎么在 Overleaf 里一步步做出来、大家常用的模板(2026 年 10 月对照各自的 GitHub 仓库核实过),以及可能让你丢掉关键词匹配的文本提取问题,外加一个一分钟就能做完的测试。
什么是 LaTeX 简历?
LaTeX 是建立在 TeX 排版引擎之上的文档准备系统。你在一个标记文件里写内容和结构,用的是 \section{Experience}、\textbf{Design Engineer} 这样的命令,再由编译器(pdfLaTeX、XeLaTeX 或 LuaLaTeX)把文件变成 PDF。排版决定都写在导言区(preamble)和宏里,所以要调整条目之间的间距,改一行就行,不用逐条去拖。
LaTeX 简历就是用这套系统来写一到两页的求职文件。实际上这意味着用模板:一个别人已经调好样式的 .tex 文件,你把示例内容换成自己的。输出是一个 PDF,和其他 PDF 一样上传。
工程师和学术界为什么喜欢它
- 排版统一。 对齐、间距和字号都按规则走,页面不用手动微调就显得精致。
- 纯文本。 源文件放进 git。你可以对比两个版本,为每类岗位各开一个分支,还能找回上个月删掉的任何一条要点。
- 免费、可移植。 Overleaf 在浏览器里运行;TeX Live 能在任何操作系统上运行。模板以代码形式、在开放许可证下共享。
- 学术简历。 长长的论文列表、BibTeX 集成、多页 CV,在这些方面 LaTeX 没有真正的对手。
- 它是一种圈内暗号。 在一些工程和科研圈子里,Computer Modern 字体的简历观感会被读成「自己人」。这值多少没法衡量,所以只把它当作平局时的加分项。
代价
- 第一天要爬学习曲线,到第三十天编辑循环也更慢。改一条要点就得重新编译。
- 在屏幕上看着很漂亮的模板,提取出来可能是残缺的文本(见下文讲 ATS 的一节;ATS 即招聘管理系统 / 申请人跟踪系统)。
- 申请表坚持要
.docx时,没有干净的办法转成 Word。
怎么用 Overleaf 做 LaTeX 简历
Overleaf 是一个基于浏览器的 LaTeX 编辑器,带模板库,不用安装。做简历用免费账户就够了(Overleaf 套餐)。
1. 选一个模板
打开 Overleaf 的 CV 和简历模板库挑一个,或者直接去一个知名模板,比如 Jake’s Resume 或 sb2nov 软件工程师简历。下一节会比较几个常用模板。
2. 把它作为自己的项目打开
在模板页面点击 Open as Template。Overleaf 会把项目复制到你的账户里(Overleaf,从模板创建项目)。编辑器打开后,左边是源码,右边是编译好的 PDF。
3. 先读文件,再动手改
一个简历模板分三部分:
\documentclass那一行和导言区,在这里加载宏包、设置页边距、字体和颜色;- 一组自定义命令,比如
\resumeSubheading或\cventry,定义一份工作或一个项目怎么排版; - 正文,在
\begin{document}和\end{document}之间,示例内容就在这里。
第一遍别动前两部分,只改正文。
4. 替换内容
先换姓名和联系方式那一行,然后逐个板块改。保留模板用的宏结构,对齐能保持一致靠的就是它。一个不用模板宏的纯 LaTeX 条目长这样:
\section{Experience}
\textbf{Design Engineer} \hfill Jun 2023 to present \\
\textit{Vellore Climate Systems, Pune}
\begin{itemize}
\item Redesigned the air handler frame from 62 welded parts to 41,
cutting unit cost 11\% and assembly time by 35 minutes per unit.
\end{itemize}
正文里有五个字符前面要加反斜杠:%、&、#、$ 和 _。没转义的 % 会把这一行剩下的部分注释掉,所以「cut cost 11% and」会丢掉「and」和后面的所有内容,而且不报错。公司名里没转义的 &(「Smith & Co」)会让编译中断,报一个关于对齐的错误。
5. 重新编译并读日志
点击 Recompile。如果 PDF 没有更新,打开日志。第一次遇到的错误大多是少了一个 }、上面那五个字符之一,或者 \item 写在了列表外面。修好日志里的第一个错误再重新编译;后面的错误往往是第一个错误的连锁反应。
6. 下载 PDF
点 Recompile 按钮旁边的下载图标,或者依次点 Menu、Download、PDF(Overleaf,导出你的作品)。把文件命名为 Firstname-Lastname-Resume.pdf。
7. 测试文本层
上传到任何地方之前,先做下面 ATS 一节里的复制粘贴测试。一份读起来没问题的 LaTeX 简历和一份只是看起来好看的 LaTeX 简历,就靠这一步区分开。
8. 保留源文件
依次点 Menu、Download、Source,会得到项目的 zip 包。把它放进 git 仓库。之后你也可以用 TeX Live(pdflatex resume.tex)或 Docker 离线编译;sb2nov 的仓库为此附带了一个 Dockerfile。
常用 LaTeX 简历模板
下面每一项都在 2026 年 10 月对照它的 GitHub 仓库和 README 核实过。Star 数是约数,会有变动。
| 模板 | 仓库 | 许可证 | 引擎 | 说明 |
|---|---|---|---|---|
| Jake’s Resume | jakegut/resume | MIT | pdfLaTeX | 单栏。基于 sb2nov/resume。仓库已归档(最后一次推送在 2024 年 8 月),README 把 Overleaf 模板标为「Not updated」(未更新)。约 2.8k Star。 |
| sb2nov/resume | sb2nov/resume | MIT(指格式;示例数据归作者所有) | pdfLaTeX | 「一份面向软件开发者的单页单栏简历。」有 Overleaf 模板和 Dockerfile,2026 年仍在更新。约 7k Star。 |
| Awesome-CV | posquit0/Awesome-CV | LPPL-1.3c | XeLaTeX | CV、简历和求职信合在一个模板里,带 Font Awesome 图标。README 假定你装了完整的 TeX 发行版,用 xelatex 编译;简历和求职信都有 Overleaf 链接。约 28.7k Star。 |
| moderncv | moderncv/moderncv | LPPL-1.3c | pdfLaTeX(如果用 academicons,则用 XeLaTeX 或 LuaLaTeX) |
CTAN 上的一个文档类,TeX Live 自带,有五种风格:classic、casual、banking、oldstyle 和 fancy。这个仓库是原版 xdanaux/moderncv 仍在维护的分支。约 1k Star。 |
| RenderCV | rendercv/rendercv | MIT | Typst | 你写 YAML,运行 rendercv render,得到 PDF。它的更新日志说 2.0 版(2025 年 1 月)从 LaTeX 换成了 Typst,所以它如今是 LaTeX 的替代品,而不是 LaTeX 模板。主题包括 classic、sb2nov、moderncv 和 engineeringresumes。截至 2026 年 3 月为 2.8 版。约 17.7k Star。 |
选哪一个
- 一页纸、ATS 优先、工程或软件岗位: sb2nov/resume;如果你手上已经有 Jake’s Resume,用它也行。两者都在导言区设置了
\pdfgentounicode=1,这一点在下一节很关键。 - 学术 CV、求职信、图标和颜色: Awesome-CV 或 moderncv。两者都能按顺序提取文本,但图标和侧栏每次改版式都要做一次复制粘贴测试。
- 不学 TeX、用纯文本输入: RenderCV。你从 YAML 得到 LaTeX 风格的输出,主题模仿的就是上面那些模板。
LaTeX PDF 的 ATS 注意事项
招聘管理系统(ATS)读的是你 PDF 的文本层,不是画面。LaTeX 产出的画面非常好,出问题的是文本层,有四种情况。
连字
大多数 LaTeX 字体会把「fi」、「fl」、「ff」这类字母组合替换成一个合并的字形。如果 PDF 里没有从这个字形映射回两个字母的信息,文本提取工具就会返回一个缺失或古怪的字符,「efficient」会变成「e cient」,或者中间三个字母被一个连字字符(ffi)替代。招聘专员搜「financial」或「workflow」时就会漏掉你的简历,哪怕这个词明明在页面上。
在 pdfLaTeX 里,修复方法是在导言区加两行。Jake’s Resume 和 sb2nov/resume 都已经加了,源码里还带着一条注释「Ensure that generated PDF is machine readable/ATS parsable」(确保生成的 PDF 机器可读 / ATS 可解析)(sb2nov/resume,sourabh_bajaj_resume.tex):
\input{glyphtounicode}
\pdfgentounicode=1
在 XeLaTeX 和 LuaLaTeX 下这两条命令不适用,结果取决于引擎和 TeX Live 的版本。2018 年 TeX Live 邮件列表上的一份报告显示,同一份文档用 TeX Live 2017 生成的 PDF 里有连字映射,用 TeX Live 2018 的 XeLaTeX 编译后却没有了,而 LuaLaTeX 在两个版本里都保留了映射(tex-live 邮件列表,2018 年 5 月)。结论是:测试你要上传的那份 PDF,别轻信模板的说法。
分栏、minipage 和表格
双栏 LaTeX 模板是用 minipage、multicol 或 tabular 搭起来的。PDF 按引擎输出的顺序存储文本,这个顺序可能是横跨两栏逐行排列的。Roche 的简历解析 FAQ 从雇主的角度描述了这种效果:「由于 ATS 被设定为从左往右读,有些系统会把分栏横着直接读过去」(Roche,Resume Parsing FAQ)。同一页面还把表格和文本框列为要避免的东西。
Jake’s 和 sb2nov 的模板在标题行(左边职位、右边日期)用了 tabular*。在它们这里,这一行很短,会被提取成一行,没有害处。问题出在整个技能侧栏放在工作经历旁边的一栏里的时候。
图标
邮箱、电话和 GitHub 的 Font Awesome 图标,是图标字体里的字形。在提取出的文本里,它们会变成私用区字符,或者直接消失。只要图标旁边的文字带着信息就没关系:写成文字的 github.com/yourname,而不是只放一个图标。在粘贴出来的结果里检查一下联系方式那一行。
字体和页眉
pdfLaTeX 会嵌入标准的 Type 1 字体,配合上面的连字修复,从 Computer Modern 或 Latin Modern 复制粘贴都没问题。如果你通过 fontspec 加载了不常见的字体,要测一下。联系方式放在正文里,别放进 fancyhdr 页眉,原因 Roche 说过:「页眉和页脚里的信息有时会被 ATS 完全丢掉。」如果模板加载了 hyperref,设置好 pdftitle 和 pdfauthor,让文件的元数据带上你的名字。
一分钟测试一份 LaTeX PDF
- 用任意阅读器打开 PDF,全选、复制,粘贴到纯文本编辑器里。
- 在粘贴的文本里搜你知道页面上有的、含「fi」、「fl」、「ff」的词:「efficient」、「workflow」、「financial」、「offline」。
- 检查邮箱和电话都在,各板块按你预期的顺序从上到下出现。
- 想再确认一次,就在命令行运行
pdftotext resume.pdf -(它属于 Poppler,大多数 Linux 包管理器都能装,macOS 上可以用 Homebrew 装)。它的输出和解析器看到的很接近。 - 在输出里搜职位描述的关键术语。如果一个词在页面上却不在输出里,申请之前先改源文件。
上面讲的都是文本提取,你可以自己验证。说某个模板「能通过」某个具名 ATS,这种说法从外部无法验证,本文也不做这种声明。
不用 LaTeX 也能有 LaTeX 的样子
Resume Matcher 是一个免费开源应用(Apache 2.0),你下载后在自己的电脑上运行。它用你自己的 AI 模型(Claude、ChatGPT、Gemini、DeepSeek,或通过 Ollama 运行的本地模型),把一份主简历针对每份职位描述做定制,代码层面的护栏会锁定你的雇主、职位和日期,并撤销模型编造的任何数字。它没有托管网站,也不是 ATS 检测工具。
它的简历生成器有七套模板,其中一套叫 LaTeX,是一个 HTML 模板,有经典 LaTeX 简历的外观。和另外六套一样,它由无头 Chrome 浏览器从真实网页文本打印出文本型 PDF,支持 A4 或美式信纸(US Letter),可以调页边距、间距和字体。它不生成 .tex 文件。如果你想要这个外观又不想装编译器,这是最快的路;如果你想要源文件,就用下面的 LaTeX 版本,或者上面那些模板。预览在 PDF 模板页面。
同样七套设计的 LaTeX 模板
应用里的七套设计也都有独立的 LaTeX 项目版本,放在 resume-matcher-templates,采用 Apache 2.0 许可。每一套都能用 pdfLaTeX 编译,不需要 shell escape,也不用下载字体。在 Overleaf 上使用的步骤:
- 从仓库下载一套模板的 ZIP。在 GitHub 上打开这个 ZIP 的文件页面,点 Download raw file。
- 在 Overleaf 里选择 New project → Existing project (.zip),然后上传。
- 把主文档设为
main.tex,编译器设为 pdfLaTeX。 - 替换
resume.tex里的示例内容,包括example.com的个人资料链接,再改掉main.tex里的 PDF 标题和作者。
每个项目需要三个文件放在一起:main.tex、resume.tex 和 resume-matcher.sty。只把一个 .tex 文件粘贴进空白项目,是编译不了的。双栏设计和任何双栏版式一样有文本提取的问题,所以要用上面的复制粘贴测试检查你的 PDF。
不管走哪条路,模板都是小头。让简历在名单上往前排的,是针对每份职位描述定制内容;方法见根据职位描述定制简历,用词方面的功夫见简历关键词指南。
常见问题
LaTeX 简历对 ATS 友好吗?
可以是。用 pdfLaTeX 编译、设置了 \pdfgentounicode=1 的单栏模板,能提取出干净的文本。带图标字体的双栏模板就未必了。上面的复制粘贴测试能告诉你手上的是哪一种。
招聘专员在乎我的简历是用 LaTeX 做的吗? 他们看到的是一个 PDF。一些工程和学术背景的读者认得出这种风格;大多数读者不会去想这个问题。内容和干净的文本提取比工具重要。
pdfLaTeX、XeLaTeX 还是 LuaLaTeX?
按模板 README 说的来。Jake’s 和 sb2nov 用 pdfLaTeX 编译;Awesome-CV 用 XeLaTeX 编译;moderncv 用 pdfLaTeX 就行,除非你加了 academicons。Overleaf 可以在项目菜单里切换编译器。
能把 LaTeX 简历转成 Word 吗?
没有能保住版式的可靠办法。如果申请表要求 .docx,就另外维护一份内容相同的 Word 版本,或者用能导出 Word 的工具来做那个版本。
怎么给每个岗位各留一个版本?
把项目放进 git,每份职位用一个分支或一份 .tex 副本,共用导言区。RenderCV 的 YAML 输入让同样的流程更容易对比差异。Resume Matcher 通过它的简历生成器做同样的事,保留一份主简历,每次申请各有一份定制副本。
如果这篇指南帮到了你,给 GitHub 上的 Resume Matcher 点个 Star。它由 Saurabh Rai 开发;在 GitHub、X 和 LinkedIn 上关注他。
[本文在 AI 的帮助下完成起草、翻译和排版。产品信息已对照 Resume Matcher 源代码核实,引用的外部资料均附有链接。]
觉得有用? 在 GitHub 上为 Resume Matcher 点个 Star,并关注项目动态