如何摆脱:“包 hyperref 警告:无法设置 PDF 版本号,因为某些 PDF 对象已写入”?

如何摆脱:“包 hyperref 警告:无法设置 PDF 版本号,因为某些 PDF 对象已写入”?

我想使用 pdfx 包和 LuaLatex 来生成符合 PDF/X 标准的 PDF 文件。

以下警告输出:

Package hyperref Warning: The PDF version number could not be set,                                                                                                                                                                            
(hyperref)                because some PDF objects are already written:                                                                                                                                                                       
(hyperref)                  3 PDF objects                                                                                                                                                                                                     
(hyperref)                The version should be set as early as possible:                                                                                                                                                                     
(hyperref)                  

答案1

x-1a1标准适用于 PDF 1.3(您真的想要吗?),因此 pdfx 尝试设置它并使用 hyperref。

问题是,hyperref一方面它需要晚点加载,因为它想要修补各种代码;另一方面,为了设置 PDF 版本,它必须尽早加载,因为只有在没有其他包向 PDF 写入任何内容时它才能设置它。

我认为使用 pdfx 时最好的方法是一开始就独立设置所需的 pdf 版本并忽略警告:

\ExplSyntaxOn
\sys_ensure_backend:
\pdf_version_gset:n{1.3}
\ExplSyntaxOff

\documentclass{...}

答案2

感谢您的关注。

我以不同的顺序加载了 pdfx 包,警告就消失了。

以下是我所做更改的摘录:

\usepackage[x-1a1]{pdfx}
\usepackage{standalone}
\usepackage{lettrine}
\usepackage{url}

相关内容