從巨集定義 PDF 元資料在外部 .tex 檔案中不起作用

從巨集定義 PDF 元資料在外部 .tex 檔案中不起作用

我有兩個文件。我的主 tex 文件和一個具有多個定義的文件(不是 .sty 文件,而是另一個 .tex 文件)。

\@title如果我嘗試使用 -command 從我的 -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.

我的元數據只是“標題”。但是,如果我將程式碼放在主文件中,它就會按預期工作。 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 檔案。如果這有什麼區別)

相關內容