2010-08-02 16 views
21

Utilizo el siguiente código para configurar el título y el autor en las propiedades del documento pdf.Configuración de pdftitle y pdfauthor automáticamente en una hoja de estilo LaTeX

\usepackage[pdftex]{hyperref} 
\hypersetup{ 
    pdftitle = {The documents title}, 
    pdfauthor = {me} 
} 

quisiera automatizar este poniéndolo en una hoja de estilo (.sty) A continuación es mi intento, pero no está funcionando. El pdf está compilado (pdflatex) con errores. Pero las propiedades del documento pdf permanecen vacías.

\usepackage[pdftex]{hyperref} 
\hypersetup{ 
    pdftitle = {\@title}, 
    pdfauthor = {\@author} 
} 

Utilizo las variables \ @title y \ @author para crear una página de título personalizada. Entonces sé que esos trabajos.

¿Alguna sugerencia?

Respuesta

25

Si obtiene errores de compilación, supongo que el problema es el carácter @. Debe envolver su código en \makeatletter y \makeatother. Otro posible problema es que haga esto antes de ejecutar los comandos \title y \author. Una buena solución para esto sería usar \AtBeginDocument, lo que le permitiría colocar esto en cualquier parte de su preámbulo. Tenga en cuenta que debe definir la información \title y \author antes de \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} 

ACTUALIZACIÓN: Poniendo las partes pertinentes en un archivo llamado estilo xxx.sty:

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

\makeatletter 
\AtBeginDocument{ 
    \hypersetup{ 
    pdftitle = {\@title}, 
    pdfauthor = {\@author} 
    } 
} 
\makeatother 
+0

Su solución funciona bien cuando se coloca en el archivo tex principal. Sin embargo, no funciona cuando lo pones en un archivo .sty. – Thierry

+0

@Thierry: no tengo problemas para poner esto en un archivo '.sty'. – grddev

+0

Después de su actualización, todo funciona bien. Gracias por la respuesta. – Thierry

Cuestiones relacionadas