2026/5/24 14:45:00
网站建设
项目流程
网站建设科,高端网站定制开发设计制作,如何管理网站后台,什么网站容易做百度权重前言
Pandoc 的 --pdf-engine 参数用于指定外部 PDF 生成引擎#xff08;Pandoc 自身不直接生成 PDF#xff0c;需借助第三方引擎#xff09;#xff0c;核心分为「LaTeX 类引擎」#xff08;基于 TeX/LaTeX#xff0c;支持复杂排版、公式、目录等#xff09;和「非 LaT…前言Pandoc 的 --pdf-engine 参数用于指定外部 PDF 生成引擎Pandoc 自身不直接生成 PDF需借助第三方引擎核心分为「LaTeX 类引擎」基于 TeX/LaTeX支持复杂排版、公式、目录等和「非 LaTeX 类引擎」基于 HTML 转 PDF无需 LaTeX 环境两大类。以下是完整的支持列表、特点及适用场景。核心说明Pandoc 生成 PDF 有两条路径LaTeX 路径默认先将源文件转为 LaTeX 中间文件再调用 LaTeX 引擎生成 PDF支持复杂排版、公式、目录、交叉引用HTML 路径先将源文件转为 HTML再调用 HTML 转 PDF 引擎生成 PDF无需 LaTeX 环境适合简单文档 / HTML 源文件。可通过 pandoc --list-pdf-engines 查看当前版本支持的所有引擎不同 Pandoc 版本支持范围略有差异新版会新增 / 弃用部分引擎。LaTeX 类引擎推荐复杂排版 / 中文场景这类引擎依赖 TeX/LaTeX 环境如 TeX Live、MikTeX支持 Pandoc 所有高级排版特性公式、目录、图片列表等是中文 PDF 转换的核心选择。引擎名称核心特点适用场景示例命令pdflatex1.经典 LaTeX 引擎Pandoc 默认 2.不支持原生 Unicode中文需依赖 CJK 宏包配置复杂3.兼容性最好宏包生态最完善。无中文的英文文档、简单排版场景不推荐中文场景配置繁琐易出错。pandoc input.md -o output.pdf --pdf-enginepdflatexxelatex1. 基于 XeTeX原生支持 Unicode 系统字体中文 PDF 首选2.无需复杂宏包直接指定中文字体即可3.容器化需安装 texlive-xetex 中文字体。中文文档、含复杂公式 / 排版的文档Docker/Alpine 环境优先选。pandoc input.md -o output.pdf --pdf-enginexelatex --variable mainfont“WenQuanYi Zen Hei”lualatex1. 基于 LuaTeX支持 Unicode 系统字体中文支持略逊于 xelatex2.内置 Lua 脚本引擎可自定义排版逻辑3. 宏包兼容性稍弱于 xelatex。需 Lua 脚本扩展排版逻辑的场景中文场景可作为 xelatex 的备选。pandoc input.md -o output.pdf --pdf-enginelualatex --variable mainfont“SimSun”latexmk1. 不是独立引擎是 LaTeX 编译脚本2. 自动处理「多次编译」如目录、交叉引用需多次编译生效3. 底层调用 pdflatex/xelatex 等。复杂长文档如论文、手册含目录 / 交叉引用 / 公式避免手动多次编译。pandoc input.md -o output.pdf --pdf-enginelatexmk --pdf-engine-opt“-xelatex”指定底层用 xelatextectonic1. 现代轻量 LaTeX 引擎自带宏包无需系统 TeX 环境2. 体积小适合容器化Alpine 镜像可精简3. 中文支持需配置 Unicode 字体。极简容器环境不想装完整 TeX Live、轻量中文文档宏包支持不如 xelatex 全。pandoc input.md -o output.pdf --pdf-enginetectonicluatex/xetex纯 TeX 引擎非 LaTeX直接处理 TeX 源码不加载 LaTeX 宏包极少直接使用。纯 TeX 文档转换非 LaTeX普通用户无需关注。几乎不用仅 TeX 开发者场景。非 LaTeX 类引擎推荐简单 HTML 转 PDF / 无 LaTeX 环境这类引擎无需 LaTeX 环境Pandoc 先将源文件转为 HTML再调用引擎生成 PDF适合简单文档、HTML 源文件或无法安装 TeX 环境的场景。引擎名称核心特点适用场景示例命令wkhtmltopdf1. 基于 WebKit 浏览器内核HTML/CSS/JS 转 PDF2. 支持网页渲染特性如浮动、动画3. 排版精度一般复杂表格 / 公式易错位。HTML 源文件转 PDF、简单文档无复杂公式 / 目录无法安装 TeX 环境的场景。pandoc input.html -o output.pdf --pdf-enginewkhtmltopdfweasyprint1. Python 编写的 HTML/CSS 转 PDF 引擎2. CSS 标准兼容性优于 wkhtmltopdf排版更精准3. 轻量无浏览器依赖。需精准 CSS 排版的 HTML 转 PDF 场景比 wkhtmltopdf 更推荐的轻量选择。pandoc input.md -o output.pdf --pdf-engineweasyprintprince1. 商业级 HTML/CSS 转 PDF 引擎排版效果极佳接近专业出版2. 支持复杂布局、分页、跨页表格3. 需授权有试用版。商业级文档如财报、手册追求极致排版成本较高非开源免费。pandoc input.md -o output.pdf --pdf-engineprincecontextConTeXt 排版系统引擎类似 LaTeX支持 Unicode学习成本高极少使用。ConTeXt 文档转换普通用户无需关注。几乎不用仅 ConTeXt 开发者场景。pdfroff基于 groff 排版系统处理 roff/troff 文档转 PDF极小众场景。老旧 Unix 文档roff 格式转换普通用户无需关注。几乎不用。xelatexXeTeX 是支持 Unicode 字符集 和 原生系统字体 的 TeX 排版引擎xelatex 是基于 XeTeX 的 LaTeX 编译器Pandoc 生成中文 PDF 时核心依赖它。它解决了传统 TeX 引擎对中文 / 非拉丁字符支持差的问题以下是其命令行参数的 分类详解重点标注和「Pandoc 转换中文 PDF」相关的核心参数核心执行模式与交互控制自动化场景重点参数作用 说明示例 适用场景-interactionSTRING设置错误交互模式核心自动化 / 容器化必配-batchmode批量模式无交互忽略非致命错误继续执行- nonstopmode非停止模式遇错不暂停不等待用户输入Pandoc 调用默认用此模式- scrollmode遇错暂停按回车继续- errorstopmode默认遇错暂停等待用户确认自动化场景需避免。xetex -interactionnonstopmode test.texPandoc 传递pandoc input.md -o output.pdf --pdf-enginexelatex --pdf-engine-opt“-interactionnonstopmode”-halt-on-error遇到第一个错误立即停止处理而非继续执行xetex -halt-on-error test.tex适用严格校验文档避免生成不完整 PDF无参数基础调用xetex test.tex编译 test.tex默认生成 test.pdf自动调用 xdvipdfmx 转换 XDV 为 PDF最基础用法Pandoc 底层会自动拼接类似命令错误与调试辅助排查问题必备参数作用 说明示例 适用场景[-no]-file-line-error禁用 / 启用「文件行号错误」样式的报错默认启用xetex -no-file-line-error test.tex仅显示错误内容不显示行号适合批量脚本xetex -file-line-error test.tex调试时显示具体错误行排查语法 / 字体问题-kpathsea-debugNUMBER按 NUMBER 二进制位开启路径搜索调试核心排查「字体 / 宏包缺失」NUMBER1显示 XeTeX 查找字体 / 宏包的完整路径xetex -kpathsea-debug1 test.tex适用容器化环境中排查「找不到中文字体」「宏包缺失」问题-recorder生成 .fls 文件记录编译过程中「读取 / 写入的所有文件路径」xetex -recorder test.tex生成 test.fls查看依赖的字体 / 宏包文件-src-specials[WHERE]在 XDV 中间文件插入源文件标记支持 PDF 预览器如 VSCode/TeXstudio和源文件双向跳转WHERE指定标记位置math/par/hbox 等逗号分隔xetex -src-specialsmath,par test.tex-synctexNUMBER生成 SyncTeX 数据PDF ↔ 源文件双向跳转NUMBER1 启用0 禁用Pandoc 默认启用xetex -synctex1 test.tex生成 test.synctex.gz支持阅读器跳转到源行文件 / 路径与输出控制容器化场景重点参数作用 说明示例 适用场景-output-directoryDIR指定输出文件目录PDF/LOG/AUX 等都放入 DIR需提前创建xetex -output-directory./output test.tex输出 output/test.pdfPandoc 传递pandoc input.md -o output.pdf --pdf-enginexelatex --pdf-engine-opt“-output-directory./output”-jobnameSTRING自定义「作业名」替代输入文件名作为输出前缀xetex -jobnamereport test.tex编译 test.tex 生成 report.pdf而非 test.pdf-papersizeSTRING设置 PDF 页面尺寸支持标准尺寸 a4/letter/a3或自定义 100mm×200mmxetex -papersizea4 test.texPandoc 传递pandoc input.md -o output.pdf --pdf-enginexelatex --pdf-engine-opt“-papersizea4”-no-pdf只生成 XDV 中间文件不自动转 PDF需手动调用 xdvipdfmx 转换xetex -no-pdf test.tex生成 test.xdv适合手动优化中间文件-output-driverCMD指定 XDV 转 PDF 的驱动替代默认的 xdvipdfmx极少用xdvipdfmx 是 XeTeX 最佳默认驱动-output-commentSTRING用自定义字符串替换 XDV 文件的默认注释默认是当前日期仅影响中间文件对最终 PDF 无实质作用功能扩展与安全控制参数作用 说明示例 适用场景-etex启用 e-TeX 扩展增加宏包 / 语法支持xelatex 默认启用无需手动指定xetex -etex test.tex-mltex启用 MLTeX 扩展旧版多语言支持现代中文排版无需使用几乎不用[-no]-shell-escape禁用 / 启用 \write18{SHELL命令}允许 TeX 执行系统命令;-默认禁用安全- 启用后可调用外部工具如生成图表、转换图片xetex -shell-escape test.tex;Pandoc 传递需执行外部命令时pandoc input.md -o output.pdf --pdf-enginexelatex --pdf-engine-opt“-shell-escape”-shell-restricted启用「受限版」\write18仅允许执行预定义的安全命令如 xdvipdfmx比 -shell-escape 安全适合需有限外部命令的场景[-no]-mktexFMT禁用 / 启用自动生成缺失的 TeX/TFM 文件FMTtex/tfm默认启用容器化环境若依赖缺失可禁用xetex -no-mktextex test.tex-8bit使所有字符可打印不使用 ^^X 转义序列XeTeX 原生支持 Unicode无需手动指定兼容旧版 8 位编码文档时用配置与格式控制高级 / 定制场景参数作用 说明示例 适用场景-cnf-lineSTRING临时解析单行配置替代 texmf.cnf 全局配置xetex -cnf-line“TEXMFVAR/tmp/texmf” test.tex适用容器化环境临时修改 TeX 路径无需改全局配置-fmtFMTNAME使用指定的 .fmt 格式文件预编译的 TeX 格式如 xelatex.fmtxetex -fmtxelatex test.tex手动指定 xelatex 格式xelatex 命令默认用此-ini以 xeinitex 模式运行用于生成 .fmt 格式文件仅 TeX 格式开发者使用普通用户无需关注[-no]-parse-first-line禁用 / 启用解析输入文件第一行若第一行是 %fmtname自动加载指定格式默认启用无需修改-translate-fileTCXNAME忽略该参数XeTeX 原生支持 Unicode无需 TCX 字符转换文件兼容旧版 TeX 时的残留参数帮助与版本参数作用 说明示例-help显示帮助信息并退出xetex --help-version输出版本信息并退出验证容器中是否安装成功xetex --version补充容器化安装引擎注意事项xelatexAlpine 需安装 texlive-full 或 texlive-xetex font-wqy-microhei中文字体weasyprintAlpine 需安装 python3-weasyprintwkhtmltopdfAlpine 直接 apk add wkhtmltopdf 即可。