SuperAPI AI 工具集

pandoc-pdf-error-diagnosis

办公与效率

查看项目

更新于 10-15 22:13

技能介绍

用途:当 pandoc 在 PDF 转换中报出“unknown error”、输出为空或损坏,或需要判断某文档适合哪个 PDF 引擎时,可按此流程逐步定位问题;也适用于排查 CI/CD 文档生成失败。

主要能力与步骤:

  1. 确认安装与版本:pandoc --version。
  2. 检查系统已安装的 PDF 引擎:which pdflatex xelatex lualatex wkhtmltopdf。资料说明 pdflatex 速度快、适合简单文档;xelatex 对 Unicode 与字体支持更好;lualatex 支持 Lua 脚本与现代 TeX 特性;wkhtmltopdf 通过 WebKit 将 HTML 转 PDF,适合网页样式内容。
  3. 显式指定引擎重试,建议先用 xelatex:pandoc input.md -o output.pdf --pdf-engine=xelatex;并捕获完整 stderr:pandoc input.md -o output.pdf --pdf-engine=xelatex 2>&1 | tee conversion.log。
  4. 分析错误输出,常见模式包括 xelatex not found(引擎未安装)、Package xyz not found(缺 LaTeX 包)、Font xyz not found(缺字体)、LaTeX Error: File xyz.sty not found(缺样式文件)。
  5. 回退策略:依次尝试 pdflatex、lualatex、wkhtmltopdf,命令形式为 pandoc input.md -o output.pdf --pdf-engine=<引擎> 2>&1。
  6. 安装缺失依赖:Debian/Ubuntu 可用 sudo apt-get install texlive-xetex texlive-fonts-recommended;macOS 可用 brew install --cask mactex-no-gui;也可用 tlmgr install <package-name> 检查与安装。
  7. 若所有引擎均失败,简化源文档:移除复杂表格或数学公式、用标准字体替换自定义字体、拆分大文档,或先转为中间格式(如 HTML)再转 PDF。

资料还给出一个诊断脚本 pandoc-pdf-diagnose.sh,用于打印 pandoc 版本、逐个检测引擎是否存在,并用 xelatex 尝试转换。

限制:以上为诊断与排查流程,不保证解决所有转换错误;具体引擎、包与字体的可用性取决于本机环境,资料未提供各平台完整安装清单、版本兼容性细节或性能数据。