最简单高效的方法是结合 pandoc 和 shell 脚本:1. 安装 pandoc 与 LaTeX;2. 单文件测试并解决中文乱码;3. 编写 for 循环批量转换;4. 可选优化样式、封面、过滤及并行处理。

用 Linux 批量把 Markdown 转成 PDF,最简单高效的方法是结合 pandoc 和 shell 脚本。pandoc 支持多种格式转换,能直接将 Markdown 渲染为 PDF,底层依赖 LaTeX(如 pdflatex)排版引擎。
1. 安装必要工具
确保系统已安装 pandoc 和 LaTeX 环境:
# Ubuntu/Debian sudo apt install pandoc texlive-latex-base texlive-fonts-recommended texlive-extra-utilsCentOS/RHEL
sudo yum install pandoc texlive-latex
或使用 dnf(Fedora)
sudo dnf install pandoc texlive-scheme-basic
Arch Linux
sudo pacman -S pandoc texlive-most
macOS 用户可用 Homebrew:
brew install pandoc && brew install --cask mactex
2. 单个文件测试转换
先验证单个 Markdown 是否能正常转 PDF:
pandoc example.md -o example.pdf如果中文乱码或排版异常,需指定中文字体和 LaTeX 引擎:
pandoc example.md --pdf-engine=xelatex -V mainfont="Noto Serif CJK SC" -o example.pdf3. 批量转换脚本
在 Markdown 文件目录下创建脚本:
#!/bin/bash for file in *.md; do output="${file%.md}.pdf" pandoc "$file" --pdf-engine=xelatex -V mainfont="Noto Serif CJK SC" -o "$output" echo "✅ $output 生成完成" done保存为 md2pdf.sh,添加执行权限并运行:
chmod +x md2pdf.sh && ./md2pdf.sh4. 可选优化项
- 自定义样式:通过 --css 或 LaTeX 模板控制外观
- 添加封面页:准备一个 LaTeX 模板,用 -t latex --template=custom.latex
- 忽略某些文件:在循环中加条件判断,比如跳过 README.md
- 后台批量处理:配合 find + xargs 并行转换提升速度
基本上就这些,不复杂但容易忽略字体和模板配置。










