PDF引擎
概述
Pandoc支持使用各种TeX发行版和PDF编译引擎,包括pdflatex、xelatex、lualatex、tectonic和latexmk。
虽然你可以使用任何喜欢的工具链进行LaTeX编译,但我们强烈推荐使用TinyTeX,这是一个TeX Live的发行版,提供了合理的初始下载大小(约100 MB),包含了Pandoc文档中最常用的约200个TeX包。
我们还推荐使用Quarto内置的PDF编译引擎,它能够自动安装任何缺失的TeX包。
安装TeX
要安装TinyTeX,请使用以下命令:
终端
quarto install tinytex
TinyTeX不会安装到系统的PATH
中,因此不会影响使用TeX的其他应用程序。如果你想在其他应用程序中使用TinyTeX,请在安装时添加--update-path
标志(这将把TinyTex添加到系统路径中):
终端
quarto install tinytex --update-path
如果你已经安装了其他TeX版本,并且希望与Quarto一起使用,请在你的项目或文档前言中添加latex-tinytex: false
,以防止Quarto使用其内部版本。
如果你更喜欢TeX Live,可以在这里找到安装说明:https://tug.org/texlive/。
请注意,Quarto自动安装缺失TeX包的功能适用于TinyTeX和TeX Live,但不适用于其他TeX发行版(因为它依赖于TeX Live的tlmgr命令)。
管理TeX
除了安装TinyTeX,你还可以更新或删除TinyTex的安装。要查看当前安装的TinyTex版本,请使用以下命令:
终端
quarto list tools
这将提供可用工具的列表、已安装的版本和最新可用版本:
[✓] 检查工具
工具 状态 已安装 最新
chromium 未安装 --- 869685
tinytex 最新 v2022.10 v2022.10
要更新到最新版本,请使用以下命令:
终端
quarto update tinytex
这将下载并安装最新版本的TinyTex(遵循与上述安装TinyTex相同的行为)。
要彻底删除TinyTex,请使用以下命令:
终端
quarto uninstall tinytex
每年四月份,TeXlive会将他们的远程包仓库更新到新一年的TeX版本。发生这种情况时,前一年的TeX安装将无法从远程仓库下载和安装包。当这种情况发生时,你可能会看到如下错误:
你的TexLive版本不够新,无法连接到远程仓库并下载包。请更新你的TexLive或TinyTex安装。
当这种情况发生时,你可以使用quarto update tinytex
来下载并安装更新的tinytex版本。
Quarto PDF引擎
Quarto内置的PDF编译引擎处理多次运行LaTeX以解析索引和参考文献条目,并自动执行LaTeX包的安装。本节描述如何自定义内置引擎(有关使用其他引擎的文档,请参阅下面的备用PDF引擎部分)。
PDF编译
以下选项可用于自定义PDF编译:
选项 | 描述 |
---|---|
latex-min-runs |
数字(最小编译次数) |
latex-max-runs |
数字(最大编译次数) |
latex-clean |
布尔值(编译后清理中间文件,默认为true ) |
latex-output-dir |
字符串(中间文件和PDF的输出目录) |
latex-makeindex |
字符串(用于makeindex 的程序) |
latex-makeindex-opts |
数组(makeindex 程序的选项) |
包安装
以下选项可用于自定义自动包安装:
选项 | 描述 |
---|---|
latex-auto-install |
布尔值(启用/禁用自动包安装) |
latex-tlmgr-opts |
数组(tlmgr的选项) |
备用PDF引擎
你可以使用 pdf-engine
和 pdf-engine-opts
来控制 Quarto 将 LaTeX 输出编译为 PDF 时使用的 PDF 引擎。例如:
title: "我的文档"
pdf-engine: lualatex
pdf-engine-opts:
- '--no-shell-escape'
- '--halt-on-error'
上面的例子将使用带有特定选项的 lualatex
PDF 引擎,而不是默认的 xelatex
。
Latexmk
Quarto 内置了一个 Latexmk 引擎,它将多次运行 pdf-engine
来生成你的 PDF(例如,如果你使用交叉引用或参考文献)。此外,如果 TeX Live 可用,此引擎将检测并尝试安装缺失的包、字体或命令。
你可以通过将 latex-auto-mk
选项设置为 false
来禁用 Quarto 的内置 Latexmk 引擎。例如:
title: "我的文档"
latex-auto-mk: false
引擎选项仍然可以使用 pdf-engine-opts
设置。例如:
latex-auto-mk: false
pdf-engine: latexmk
pdf-engine-opts:
- '-auxdir=custom-aux'
- '-emulate-aux-dir'
上面的例子将使用 latexmk
作为 PDF 引擎,并设置一些选项来修改辅助文件的目录名称。