2010-08-02 2 views
21

Ich verwende den folgenden Code, um den Titel und den Autor in den Eigenschaften des PDF-Dokuments festzulegen.Einstellung von pdftitle und pdfauthor automatisch in einem LaTeX-Stylesheet

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

Ich mag würde dies es, indem sie in einem Stylesheet (.sty) automatisieren Unten ist mein Versuch, aber es funktioniert nicht. Das PDF ist kompiliert (pdflatex) mit Fehlern. Die Eigenschaften des PDF-Dokuments bleiben jedoch leer.

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

Ich benutze die Variablen \ @title und \ @author, um eine benutzerdefinierte Titelseite zu erstellen. Also ich kenne diese Arbeit.

Irgendwelche Vorschläge?

Antwort

25

Wenn Sie Kompilierungsfehler bekommen, ich vermute das Problem ist das @ Zeichen. Sie müssen Ihren Code in \makeatletter und \makeatother einpacken. Ein weiteres mögliches Problem besteht darin, dass Sie dies tun, bevor Sie die Befehle \title und \author ausführen. Eine gute Lösung dafür wäre, \AtBeginDocument zu verwenden, was es Ihnen ermöglichen würde, das irgendwo in Ihrer Präambel zu platzieren. Beachten Sie, dass Sie die Informationen \title und \author vor \begin{document} definieren müssen.

\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: Setzt man die entsprechenden Teile in einer Stildatei xxx.sty genannt:

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

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

Ihre Lösung funktioniert gut, wenn sie in die Haupttextdatei eingefügt wird. Es funktioniert jedoch nicht, wenn Sie es in eine .sty-Datei einfügen. – Thierry

+0

@Thierry: Ich habe keine Probleme, dies in eine '.sty' Datei zu setzen. – grddev

+0

Nach Ihrem Update funktioniert alles einwandfrei. Danke für die Antwort. – Thierry

Verwandte Themen