Я использую код ниже для установки заголовка и автора в свойствах документа PDF.
\usepackage[pdftex]{hyperref}
\hypersetup{
pdftitle = {The documents title},
pdfauthor = {me}
}
Я хотел бы автоматизировать, это путем помещения его в таблицу стилей (.sty) Ниже является моей попыткой, но это не работает. PDF компилируется (pdflatex) с ошибками. Но свойства документа PDF остаются пустыми.
\usepackage[pdftex]{hyperref}
\hypersetup{
pdftitle = {\@title},
pdfauthor = {\@author}
}
Я использую \@title и \@author переменные для создания пользовательского titlepage. Таким образом, я знаю, что они работают.
Какие-либо предложения?
Если вы получаете ошибки компиляции, я предполагаю, что проблема заключается в символе @
. Вам нужно обернуть ваш код в \makeatletter
и \makeatother
. Другая возможная проблема заключается в том, что вы делаете это до выполнения команд \title
и \author
. Хорошим решением этой проблемы будет использование команды \AtBeginDocument
, которая позволит вам поместить это в любое место преамбулы. Обратите внимание, что вы должны определить \title
и \author
информацию перед \begin{document}
.
\documentclass{article}
\usepackage[pdftex]{hyperref}
\makeatletter
\AtBeginDocument{
\hypersetup{
pdftitle = {\@title},
pdfauthor = {\@author}
}
}
\makeatother
\title{Test title}
\author{Sam Author}
\begin{document}
\maketitle
\end{document}
UPDATE: Помещение соответствующих частей в файл стилей с именем xxx.sty
:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xxx}
\RequirePackage{hyperref}
\makeatletter
\AtBeginDocument{
\hypersetup{
pdftitle = {\@title},
pdfauthor = {\@author}
}
}
\makeatother