2010-02-25 15 views
7

LaTeX è un linguaggio meraviglioso per la scrittura di documenti. Con il pacchetto hyperref e pdflatex, è possibile generare facilmente documenti con metadati, una funzionalità utile per fare riferimento ai documenti direttamente sul Web.Impostazione delle variabili stringa autore o indirizzo in LaTeX

uso spesso i modelli come:

\documentclass[11pt]{article} 
\usepackage[pdftex, pdfusetitle,colorlinks=false,pdfborder={0 0 0}]{hyperref}% 
\hypersetup{% 
pdftitle={My title},% 
pdfauthor={My name},% 
pdfkeywords={my first keyword, my second keyword, more keywords.},% 
}% 
\begin{document} 

\title{My title} 
\author{My name} 
\date{} 
\maketitle 

{\bf Keywords:} my first keyword, my second keyword, more keywords.% 

My text is here... 

\end{document} 

Finora, è bene. La mia domanda viene fuori dall'esempio: esiste un modo per definire le variabili stringa nell'intestazione in modo che possano essere passati come argomenti a hyperref e quindi al frontmatter o al testo. Qualcosa di simile:

\documentclass[11pt]{article} 
%-------definitions----- 
\def\Author{My name} 
\def\Title{My title} 
\def\Keywords{my first keyword, my second keyword, more keywords.} 
%-------------------------- 
\usepackage[pdftex, pdfusetitle,colorlinks=false,pdfborder={0 0 0}]{hyperref}% 
\hypersetup{% 
pdftitle={\Title},% 
pdfauthor={\Author},% 
pdfkeywords={\Keywords},% 
}% 
\begin{document} 
\title{\Title} 
\author{\Author} 
\date{} 
\maketitle 

{\bf Keywords:} \Keywords % 

My text is here... 

\end{document} 

Questo non per la parte \maketitle e per la hyperref metadati con ! Use of \Title doesn't match ! Argument of \let has an extra }., ma anche per l'inclusione le parole chiave.

+1

Credo che in questo caso, il '=' dopo '\ def \ Title' funge da delimitatore di parametro (anche se non sono sicuro che sia consentito per le macro senza parametro). Ciò significa che devi chiamare '\ Title =' invece di plain '\ Title' per esempio. '\ Title =' potrebbe funzionare anche (il delimitatore non fa parte del nome). Ma non avrà il significato (forse previsto) di un incarico. –

+0

Grazie, ho corretto l'errore di battitura! La domanda è stata aperta per un totale di 15 minuti! – meduz

+0

Sto votando per chiudere questa domanda come off-topic perché il problema non può essere riprodotto nelle moderne distribuzioni. – Werner

risposta

10

il modello corretto dovrebbe essere simile:

\documentclass[11pt]{article} 
%-------definitions----- 
\newcommand{\Author}{My name} 
\newcommand{\Title}{My title} 
\newcommand{\Keywords}{my first keyword, my first keyword, more keywords.} 
%-------------------------- 
\usepackage[pdftex, pdfusetitle,colorlinks=false,pdfborder={0 0 0}]{hyperref}% 
\hypersetup{% 
pdftitle={\Title},% 
pdfauthor={\Author},% 
pdfkeywords={\Keywords},% 
}% 
\begin{document} 
\title{\Title} 
\author{\Author} 
\date{} 
\maketitle 
{\bf Keywords:} \Keywords % 

My text is here... 

\end{document} 

compila bene ei metadati mostra bene nel lettore pdf.

2

Provare a utilizzare \newcommand{\Author}{My name} anziché \def.

+0

Questo non dovrebbe fare alcuna differenza. – Werner

Problemi correlati