跳到正文
Yukun Wang
返回

把简历搬到 Quarto 上

编辑此页

求职材料是那种「一年改两次、每次都很急」的东西。我的简历原本在 Word 里排,改到第三版才发现麻烦不在内容、在格式:调一处行距,别处的分页跟着动;中英两版各自维护,改了英文忘同步中文;想针对不同岗位换一下顺序,得手工拖一堆文本框。

于是决定搬一次家:内容用 Markdown 写,版式交给 LaTeX。

为什么是 Quarto

直接写 .tex 最可控,但那是把排版系统和内容绑死在同一份文件里——改一行经历描述都要翻一遍反斜杠。Quarto 在中间加了一层:.qmd 里是干净的 Markdown,YAML 头部和 include-in-header 里放 LaTeX 设置,一条命令出 PDF。

没有用现成的简历模板,是因为模板管得太多:它确实能排简历,但每一处都要猜作者当初怎么想的。从 ctexart 起步,样式只有我写进去的那几十行,出问题知道去哪找。

第一个坑:字体在两台机器上不一样

我的编译发生在两个地方——Windows 笔记本和一台 Linux 服务器。Windows 自带宋体和黑体,Linux 一个都没有,同一份文件在两边排出来的字不一样。

解法是让模板看菜吃饭:

\setmainfont{Times New Roman}
\IfFontExistsTF{FandolSong-Regular}{%
  \setCJKmainfont[UprightFont=FandolSong-Regular,
                  BoldFont=FandolHei-Regular,
                  Extension=.otf]{FandolSong-Regular}%
}{}

\IfFontExistsTF 做存在性判断:有 Fandol 宋体(TeX Live 自带)就用,并把粗体映射到 Fandol 黑体,效果等价于 Windows 上的「宋体+黑体」;没有就整段跳过,交给系统默认。一份源码,两个平台都对。

顺带记一条:西文要显式写 \setmainfont。ctex 只管中文,不管你的英文是不是悄悄变成了默认字体。

第二个坑:## 不是 \section

这个坑值得单独说,因为它几乎没法从报错里看出来。

Pandoc 把 Markdown 标题映射到 LaTeX 时是从 \subsection 起步的:## → \subsection,### → \subsubsection,根本没有 \section 这一层。我一开始在 \ctexset 里调 section={...} 的字号和横线——全部没生效,因为那是空的一层。

改成调 subsection 才对:

\ctexset{
  subsection={
    format=\large\bfseries,
    aftertitle={\par\vspace{-1ex}\rule{\linewidth}{0.8pt}\vspace{0.3ex}},
    beforeskip=7pt,
    afterskip=4pt,
  }
}

aftertitle 里那句 \rule 就是每个栏目标题下面那条横线的来源。它本身不难,难的是你得先知道自己正在给哪一层写样式。

第三类坑:一堆细碎的对齐

这些不值得单独成篇,但每一处都试过好几轮:

工具链和成本

TinyTeX 装在用户目录(不动系统)、Quarto 解压在 ~/opt、缺的中文字体丢进 ~/.local/share/fonts。之后每次改内容就是一条命令:

quarto render 王宇坤简历_中文.qmd --to pdf

(简历本身不需要额外字体——用的是 TeX Live 自带的 Fandol;装 Noto CJK 是给同一台机器上别的文档用的。)

代价要说清楚:头一轮调样式是二十分钟一次的编译迭代,LaTeX 报错又极不友好,经常指着一个无辜的行号说这里错了。但这笔时间只付一次,之后改一条经历、加一篇论文,都是改 Markdown、敲一条命令。

改完我把原版和成品快照一起归档在 archive/ 里,包括那份还在的 Word 版——不是留念,是为了万一要回滚。

一点题外

简历的排版目标不是好看,是让对方在三十秒里觉得你是个有条理的人。这件事上,「我用什么工具」完全不重要;重要的是当你要改一个日期时,打开的是一个人家写的、格式来路不明的文件,还是自己写的、每一毫米都解释得清的文件。

中英两份现在是同一个目录下的两个 .qmd,改一处同步两处。


编辑此页
分享这篇文章:

上一篇
服务器来了个 AI 室友
下一篇
AI 订阅的记账法