使用 LuaTeX 和 hyperref 嵌入文件并设置 AFRelationship

使用 LuaTeX 和 hyperref 嵌入文件并设置 AFRelationship

我想将文件嵌入到 pdf 中。我需要 PDF 中的 /AFRelationship 条目,因为这是 PDF/A 强制要求的。下面的最小示例适用于 pdfTeX。当hyperref禁用时,它也适用于 LuaTeX。但是它不适用于 hyperref 和 LuaTeX。

平均能量损失

\documentclass{article}
\usepackage{embedfile}
\usepackage{hyperref}
\embedfile[afrelationship={/Source}]{\jobname.tex}

\begin{document}
Text
\end{document}

MWE 输出

生产

<</Type/Filespec/F(testbrief.tex)/AFRelationship\376\377\000/\000S\000o\000u\000r\000c\000e/EF<</F 1 0 R>>>>

这会在 Acrobat DC 的 PDF/A3-b 预检中引发验证错误: 在此处输入图片描述
有了hyperref残疾人,我

<</Type/Filespec/F(testbrief.tex)/AFRelationship/Source/EF<</F 1 0 R>>>>

已通过验证。

问题

由于我需要 luatex 来处理字体,需要 hyperref 来处理链接和元数据,所以这是一个问题。如何解决这个问题?

答案1

更新

已将 embedfile 的修正版本上传到 ctan。不再需要该补丁。现在,没有补丁的条目如下所示

<</Type/Filespec/F(a.tex)/AFRelationship/Source/EF<</F 1 0 R>>>>

旧答案。

这是一个错误。Embedfile 不应该尝试转换该值。

尝试这个补丁

\documentclass{article}
\usepackage{l3pdf}
\ExplSyntaxOn
\pdf_uncompress:
\ExplSyntaxOff
\usepackage{embedfile}
\usepackage{etoolbox}
\makeatletter
\patchcmd\EmFi@embedfile
 {\EmFi@convert\EmFi@afrelationship\EmFi@@afrelationship}
 {\let\EmFi@@afrelationship\EmFi@afrelationship}{}{\fail}
\makeatother

\usepackage{hyperref}

\embedfile[afrelationship={/Source}]{embedtest.tex}
\begin{document}
Text
\end{document}

相关内容