我在使用 生成的 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' {} \;
此致