I use the code below to set the title and author in the pdf document properties.
\usepackage[pdftex]{hyperref}
\hypersetup{
pdftitle = {The documents title},
pdfauthor = {me}
}
I would like to automate this by putting it in a stylesheet (.sty) Below is my attempt, but it is not working. The pdf is compiled (pdflatex) with errors. But the pdf document properties remain empty.
\usepackage[pdftex]{hyperref}
\hypersetup{
pdftitle = {\@title},
pdfauthor = {\@author}
}
I use the \@title and the \@author variables to create a custom titlepage. So I know those work.
Any suggestions?
If you get compile errors, I'm guessing the problem is the @
character. You need to wrap your code in \makeatletter
and \makeatother
. Another possible problem is that you do this before you execute the \title
and \author
commands. A nice fix for this would be to use \AtBeginDocument
, which would allow you to place this anywhere in your preamble. Note that you have to define the \title
and \author
information before \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: Putting the relevant parts in a style file named xxx.sty
:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xxx}
\RequirePackage{hyperref}
\makeatletter
\AtBeginDocument{
\hypersetup{
pdftitle = {\@title},
pdfauthor = {\@author}
}
}
\makeatother
There is the package option pdfusetitle
for it, see Make hyperref take pdfinfo from \title and \author.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With