如何在 PDF 元数据中包含外部文件的内容(内置属性,如Subject
,或自定义属性,如My ID
)?
我已经用 编写了一些文本shell-output.txt
,例如date > shell-output.txt
或git rev-parse HEAD > shell-output.txt
(具体内容不重要)。我正在用 进行编译xelatex demo.tex
,并且我愿意接受其他标志,--shell-escape
例如write18
。
- PDF 元数据应该包括我的文件的内容
- PDF 元数据确实包含文字文件名,但不包含其内容
日志中的错误:
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\@ifnextchar' on input line 10.
制作示例:
\documentclass{article}
\usepackage{hyperref}
\hypersetup{
pdfinfo={
MyID={\input{shell-output.txt}},
% Custom PDF metadata not shown in many applications,
% switch to more common attribute for debug
% Subject={\input{shell-output.txt}},
}
}
\begin{document}
Unimportant.
\end{document}
答案1
输入在这里不起作用,但您可以手动逐行读取文件的内容,并将其分配给变量并在稍后使用,如下所示:
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\newread \myFile
\openin \myFile = shell-output.txt
\read \myFile to \myOutputLineOne
\read \myFile to \myOutputLineTwo
\hypersetup{%
pdfinfo={%
Subject = {\myOutputLineOne},
Author = {\myOutputLineTwo},
}
}
Lorem ipsum.
\closein \myFile
\end{document}