在 \maketitle 中使用 \hypersetup 不会产生元数据

在 \maketitle 中使用 \hypersetup 不会产生元数据

在 XeLaTeX 的文档类中,我调用hyperref\AtBeginDocument,以便最后加载它,同时重置链接颜色。然后我使用\hypersetupin\maketitle来设置 PDF 元数据。

在下面的 MWE 中,我没有在输出中获得任何 PDF 元数据(pdfinfo 没有返回标题或作者)。我显然对 \hypersetup 的元数据有些误解,但是什么呢?

测试.cls ==============================================================================================

\NeedsTeXFormat{LaTeX2e}[2017/04/15]
\ProvidesClass{test}[v0.1 test hypersetup]
%
\ProcessOptions\relax
\LoadClass[a4paper]{report}
%
\def\MY@customtitle{\relax}
\def\MY@customauthor{\relax}
%
\renewcommand{\title}[1]{\gdef\MY@customtitle{#1}}
\renewcommand{\author}[1]{\gdef\MY@customauthor{#1}}
%
\AtBeginDocument{%
  \RequirePackage[colorlinks]{hyperref}%
  \hypersetup{linkcolor=blue,
              urlcolor=purple,
              citecolor=magenta}%
}
%
\renewcommand{\maketitle}{%
  \begin{titlepage}
    \MY@customtitle
    \par\bigskip
    \MY@customauthor
    \par\vfill
  \end{titlepage}
  \pagenumbering{roman}
  \hypersetup{pdfauthor={\MY@customauthor},
              pdftitle={\MY@customtitle},
              pdfcreator={XeLaTeX}}%
}
\endinput

测试.tex =========================================================================================

\documentclass{test}
\begin{document}
\title{Test document}
\author{A.N. Author}
\maketitle
Here is a link on some \href{http://latex.silmaril.ie}{text}
\end{document}

(此外,非常奇怪的是,尽管 xcolor 文档说默认情况下紫色可用,但它却不支持紫色)。

答案1

目前,hyperref 会将第一页末尾的元数据写入 pdf。您的 \hypersetup 位于 titlepage 环境之后,依此类推,位于第二页之后。这太晚了。

相关内容