宏中的 PDF 元数据定义在外部 .tex 文件中不起作用

宏中的 PDF 元数据定义在外部 .tex 文件中不起作用

我有两个文件。一个是主 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 文件。如果这有任何区别)

相关内容