无法消除 pdftex“PDF 包含:带有页面组的多个 PDF”错误

无法消除 pdftex“PDF 包含:带有页面组的多个 PDF”错误

我在使用 生成的 PDF 时遇到了问题Inkscape。如果在单个页面上包含多个以此方式生成的文件,则会出现以下错误:

pdfTeX warning: pdflatex.exe (file <FILENAME>.pdf): PDF inclusion: multiple pdfs with page group included in a single page>]

这似乎是一个已知的错误TeX,已在这里讨论: 多个 PDF 中包含页面组,但页面组包含在单个页面中,警告

ghostscript我希望通过抑制警告来解决这个问题,而不是两次运行所有的 PDF,silence但是我无法创建有效的警告过滤器。

我尝试了\WarningFilter{pdflatex}{PDF inclusion}各种排列,但都没有用。我认为这是因为文件名放在了错误的开头。

手册silence指出最好使用该\WarningFilter*选项并在文件中找到生成错误消息的过程.sty。由于 pdfTeX 不是一个包,因此它(据我所知)没有文件.sty。我无法确定哪个文件包含生成错误的脚本,因此无法创建函数过滤器。

有人知道哪个文件(基于 Windows MiKTeX 的发行版)会产生这些错误,或者在这种情况下如何制作一个有效的过滤器?

答案1

此警告由二进制文件本身生成。从 pdfTeX 1.40.15 (TeX Live 2014) 开始,可以使用新原语来抑制此警告:

\pdfsuppresswarningpagegroup=1

引用文档:

\pdfsuppresswarningpagegroup(整数)

通常,当包含的多个 pdf 文件具有所谓的“页面组对象”(/Group)时,pdfTeX 会发出警告,因为只有一个可以“获胜”——即传播到页面级别。通常页面组是相同的,但如果它们不相同,结果将无法预测。如果 pdfTeX 实际上检测到页面组是否相同并且仅在有问题的情况下发出警告,那就太理想了;不幸的是,这并不容易(欢迎修补)。然而,人们经常发现没有实际问题。那么每次运行时看到的警告只是噪音,可以通过将此参数设置为正数来抑制。该原语是在 pdfTeX 1.40.14 中引入的。

文件中的NEWS版本号为1.40.15,其中介绍了原语。

答案2

我还没有找到这个问题的快速答案。以下命令行代码不会消除问题,但可以解决它。它应该很容易理解并且是通用的:

find . -name "*.pdf" -type f -exec sed -i '\/Group <</,+5d' {} \;

它的作用:它在当前文件夹中递归搜索 .pdf 文件。在这些文件中,会搜索条目“/Group <<”。从此行 +5 more (即整个 Group 条目)开始,删除这些行。问题解决了!

请注意,对于单个特定文件,此脚本将是:

find . -name "FILENAME.pdf" -type f -exec sed -i '\/Group <</,+5d' {} \;

此致

相关内容