「パッケージ hyperref 警告: 一部の PDF オブジェクトが既に書き込まれているため、PDF バージョン番号を設定できませんでした」というメッセージを取り除くにはどうすればよいでしょうか?

「パッケージ hyperref 警告: 一部の PDF オブジェクトが既に書き込まれているため、PDF バージョン番号を設定できませんでした」というメッセージを取り除くにはどうすればよいでしょうか?

LuaLatex で pdfx パッケージを使用して、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}

関連情報