
У меня есть два файла: мой основной tex-файл и файл с несколькими определениями (не .sty-файл, а другой .tex-файл).
Если я попытаюсь задать метаданные PDF из моих \@title
макросов с помощью \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-файл. Если это имеет какое-либо значение)