如何通过 latexmk 使用 qpdf?

如何通过 latexmk 使用 qpdf?

在手册中latexmk我读过

如果需要,[latexmk] 还可以调用外部程序对生成的文件进行其他后处理。

我该怎么打电话編輯使用 latexmk?我想qpdf --linearize对 latexmk 正在操作的文件执行此操作。最好 latexmk 仅在使用特定标志(例如)调用时才调用 qpdf -l

答案1

latexmk 文档中提到的后处理可能性仅适用于 dvi 和 postscript 文件。(请参阅-dF-pF选项以及配置变量$dvi_filter和的描述$ps_filter。)我需要更正文档中关于这一点的内容。我可以改进 latexmk,使其也适用于 pdf 文件。

但是有一种更简单、更通用的方法。只需定义命令$pdflatex以包含对 qpdf 的调用即可。例如,您可以将以下内容放入 latexmk 的初始化文件之一中:

$pdflatex = 'pdflatex %O %S && qpdf -linearize %D tmp.pdf && mv tmp.pdf %D';

(这是适合类 Unix 操作系统的形式,可能需要为 MS-Windows 进行更改。)当 latexmk 使用它时,它会执行 pdflatex 命令;如果成功,它会调用 qpdf,将结果放入临时文件中;如果成功,则移动临时文件以替换最初生成的 pdf 文件。

我的计算机上没有安装 qpdf,所以我根据它的文档编写适当的调用。

如果您想要一个命令行选项来控制 qpdf 的使用,请将上述行放在其自己的文件中,例如 useqpdf。然后您可以在需要时调用 latexmk 来读取此文件:

latexmk -r useqpdf foo.tex

相关内容