核心用法
md2pdf 是一个将 Markdown 文档转换为 PDF 的命令行工作流,依赖 Pandoc 与 XeLaTeX 引擎。核心调用方式为脚本自动化或手动 Pandoc 命令两种模式:
- 自动化脚本:执行
bash <skill_dir>/scripts/md2pdf.sh input.md output.pdf,自动检测 CJK 内容、选择合适字体、清理 Emoji、生成目录 - 手动精细控制:直接使用 Pandoc CLI,可自定义字体、边距、高亮主题、TOC 标题等参数
显著优点
1. 数学公式原生支持:无需 MathJax/KaTeX,Pandoc 直接将 $...$ 行内公式与 $$...$$ 行间公式转换为 LaTeX 数学环境
2. CJK 完整支持:通过 xeCJK 宏包实现中日韩文字渲染,脚本内置字体回退机制(Noto Sans CJK SC → 文泉驿 → Droid Sans → AR PL UMing)
3. Emoji 兼容性处理:自动将常见 Emoji 替换为文本等效符号,避免 LaTeX 字体缺失导致的编译失败
4. 目录与样式:自动生成目录(TOC),支持代码高亮主题、彩色链接、智能引号处理
潜在局限
- 系统依赖重:必须预先安装完整的 TeX Live 发行版(
texlive-xetex等),体积通常数 GB,首次配置成本高 - 复杂表格限制:Pandoc 对复杂 Markdown 表格的 LaTeX 转换可能出现问题,需简化结构或手动引入
longtable包 - 字体管理繁琐:CJK 环境需确保系统已安装对应字体,跨平台(Linux/macOS/Windows)配置差异大
- 无实时预览:不同于浏览器端渲染方案,每次修改需重新执行完整编译流程
适合人群
- 学术研究者与技术写作者,需输出含复杂数学公式的正式 PDF 报告
- 中文/日文/韩文内容创作者,要求专业排版质量而非简易导出
- 熟悉命令行与 LaTeX 生态的进阶用户,能够处理字体与依赖问题
常规风险
- 依赖断裂风险:TeX Live 版本升级或包缺失可能导致编译失败,建议锁定环境或使用容器化方案
- 字体版权问题:商业字体需确认授权,开源替代方案(Noto CJK)为推荐选择
- 路径与权限:脚本调用依赖
<skill_dir>环境变量,路径配置错误将导致执行失败