Установка pdftitle и pdfauthor автоматически в таблице стилей LaTeX - PullRequest
26 голосов
/ 02 августа 2010

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

Есть предложения?

Ответы [ 2 ]

28 голосов
/ 07 августа 2010

Если вы получаете ошибки компиляции, я думаю, проблема в символе @. Вам нужно обернуть ваш код в \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}

ОБНОВЛЕНИЕ: Помещение соответствующих частей в файл стиля с именем xxx.sty:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xxx}
\RequirePackage{hyperref}

\makeatletter
\AtBeginDocument{
  \hypersetup{
    pdftitle = {\@title},
    pdfauthor = {\@author}
  }
}
\makeatother
4 голосов
/ 02 января 2016

Для этого есть опция пакета pdfusetitle, см. Чтобы гиперссылка взяла pdfinfo из \ title и \ author .

...