Markdown to PDF: Pandoc + XeLaTeX 简历导出实践

投递职位需要 PDF 版简历,但内容仍希望用 Markdown 维护。这次在 Arch Linux 上搭了一套 Pandoc + XeLaTeX 流程,把中英文简历稳定导出为 PDF,并沉淀了定制 LaTeX 模板与一键脚本。本文记录选型、依赖安装、流水线、排版分工,以及模板优化上踩过的坑。 背景 源文件是 Markdown:多级标题、表格、列表、加粗混排。需要: 中英文各一份 PDF,字体分别可调 改 Markdown 后能一条命令重新导出 排版达到简历水准(页眉、列表间距、技能表行间线等) 早期试过 cmark + Chromium headless(Markdown → HTML → 打印 PDF),能跑通,但 CSS 调版费时;最终选用 Pandoc 生成 LaTeX,再用 XeLaTeX 编译 PDF——排版可控,适合反复迭代。 工具链概览 组件 作用 LaTeX 中间排版语言(.tex);详见 LaTeX 简介 Pandoc Markdown → LaTeX(--standalone);详见 Pandoc 介绍 XeLaTeX 编译 .tex 为 PDF;详见 XeLaTeX 介绍 resume.latex 定制 Pandoc LaTeX 模板(基于默认模板,统一入口) resume-style.tex 标题层级、列表间距、页眉样式、技能表行间线 pandoc-pdf.sh 串联上述步骤的一键脚本 整体流水线: Resume.md → pandoc(--template resume.latex + resume-style.tex + 字体变量) → input.tex → xelatex × 2 → Resume.pdf 相比早期实现,已去掉 Python 后处理:表格行间 \midrule 与标题样式一并写在 LaTeX 模板层(resume-style.tex),由 Pandoc 在生成 .tex 时注入导言区。 ...

Created 22226-06-22 · Updated 23236-06-23 · 5 min · 871 words · -

XeLaTeX: Unicode 友好的 LaTeX 引擎

XeLaTeX 是 TeX Live 发行版中的一种 LaTeX 编译引擎,与 pdfLaTeX、LuaLaTeX 并列。处理中文、英文混排或需要调用系统 OpenType 字体时,XeLaTeX 是最常用的选择之一。若还不熟悉 LaTeX 本身,建议先读该文建立概念,再回来看引擎差异。 LaTeX 与引擎是什么关系 可以先这样理解: 概念 角色 LaTeX 排版语言与宏集;你写 .tex 源文件 引擎(pdfLaTeX、XeLaTeX、LuaLaTeX) 读取 .tex,输出 PDF TeX Live 引擎 + 海量宏包 + 字体的发行版 document.tex → xelatex → document.pdf Pandoc 生成 PDF 时,也是先写出 .tex,再调用你指定的 --pdf-engine(如 xelatex)完成最后一步。 为什么需要 XeLaTeX pdfLaTeX 的局限 传统的 pdfLaTeX 历史悠久,但: 字体接入方式偏旧(多为 T1 编码、内置字体) 中文等非拉丁文字支持麻烦,常要额外宏包和配置 直接调用系统里的 Noto、Inter 等 OpenType 字体不直观 XeLaTeX 的优势 XeLaTeX 原生支持 Unicode,并通过 fontspec 宏包直接加载系统字体: \usepackage{fontspec} \setmainfont{Inter} \setCJKmainfont{Noto Sans CJK SC} % via xeCJK 因此适合: ...

Created 22226-06-22 · Updated 22226-06-22 · 2 min · 283 words · -