我有两个文件。一个是主 tex 文件,另一个是包含多个定义的文件(不是 .sty 文件,而是另一个 .tex 文件)。
如果我尝试使用-command(但在外部文件中定义)从我的\@title
-macros设置我的 PDF 元数据,我收到一些错误,例如:\AtBeginDocument
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `\spacefactor' on input line 14.
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): (hyperref) removing `\@m' on input line 14.
我的元数据只是“title”。但是,如果我将代码放在主文件中,它就会按预期工作。mwe 如下:
% main file
\documentclass{scrartcl}
\input{externalfile.tex}
\title{This is a test}
% WORKS
% \makeatletter
% \hypersetup{
% pdftitle={\@title}
% }
% \makeatother
\begin{document}
test
\end{document}
% external file
\usepackage{hyperref}
% DOESN'T WORK
\AtBeginDocument{
\makeatletter
\hypersetup{
pdftitle={\@title}
}
\makeatother
}
任何想法都值得赞赏。但是我想将外部文件保留为 .tex 文件(并且不要切换到 .sty 文件。如果这有任何区别)