Установка pdftitle и pdfauthor автоматически в таблице стилей LaTeX

Я использую код ниже для установки заголовка и автора в свойствах документа 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. Таким образом, я знаю, что они работают.

Какие-либо предложения?

26
задан Thierry 2 August 2010 в 12:59
поделиться

1 ответ

Если вы получаете ошибки компиляции, я предполагаю, что проблема заключается в символе @. Вам нужно обернуть ваш код в \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
28
ответ дан 28 November 2019 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: