Настройка авторских или адресных строковых переменных в LaTeX - PullRequest
7 голосов
/ 25 февраля 2010

LaTeX - замечательный язык для написания документов. С пакетом hyperref и pdflatex вы легко генерируете документы с метаданными, что является хорошей функцией для получения ссылок на документы прямо в Интернете.

Я часто использую шаблоны как:

\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}

Пока все хорошо. Мой вопрос всплывает из примера: есть ли способ определить строковые переменные в заголовке, чтобы они могли быть переданы в качестве аргументов hyperref, а затем в frontmatter или в текст. Что-то вроде:

\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}

Сбой для части \maketitle и для метаданных hyperref с ! Use of \Title doesn't match ! Argument of \let has an extra }., но также для включения ключевых слов.

Ответы [ 2 ]

10 голосов
/ 25 февраля 2010

Правильный шаблон должен выглядеть так:

\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}

Прекрасно компилируется, а метаданные хорошо отображаются в программе чтения PDF.

2 голосов
/ 25 февраля 2010

Попробуйте использовать \newcommand{\Author}{My name} вместо \def.

...