我懂了这里将整个命令放在外部 .tex 文件中很不错\hypersetup
。在我的例子中,只需要一个片段,它由外部程序生成,并且会经常更改,例如内部版本号。但这不起作用:
\documentclass{article}
\usepackage{hyperref}
\hypersetup{pdfsubject=\input{buildno.txt}} % other info omitted
\begin{document}
Thanks
\end{document}
生成的 PDF 将包含一个主题“buildno.txt”,而不是文本文件的内容。有没有一种方便的方法来加载此类信息,而无需\hypersetup
在外部文件中编写整个命令脚本?
答案1
您可以修改外部文件,将主题定义为命令,然后输入文件并使用该命令;例如:
\begin{filecontents*}{buildnodef.txt}
\def\buildno{version 6}
\end{filecontents*}
\documentclass{article}
\input{buildnodef.txt}
\usepackage{hyperref}
\hypersetup{pdfsubject=\buildno} % other info omitted
\begin{document}
Thanks
\end{document}
或者,你可以将文件内容读入命令,然后就可以使用。例如,使用包catchfile
:
\begin{filecontents*}{buildno.txt}
version 7
\end{filecontents*}
\documentclass{article}
\usepackage{catchfile}
\CatchFileDef{\buildno}{buildno.txt}{}
\usepackage{hyperref}
\hypersetup{pdfsubject=\buildno} % other info omitted
\begin{document}
Thanks
\end{document}