2010-02-25 25 views
7

LaTeX là ngôn ngữ tuyệt vời để viết tài liệu. Với gói hyperrefpdflatex, bạn dễ dàng tạo tài liệu có siêu dữ liệu, một tính năng thú vị để tài liệu của bạn được tham chiếu ngay trên web.Thiết lập biến chuỗi tác giả hoặc địa chỉ trong LaTeX

Tôi thường sử dụng các mẫu như:

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

Cho đến nay, đó là tốt. Câu hỏi của tôi bật ra từ ví dụ: là có một cách để xác định các biến chuỗi trong tiêu đề để chúng có thể được chuyển làm đối số cho hyperref và sau đó đến frontmatter hoặc văn bản. Một cái gì đó như:

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

này không cho các phần \maketitle và cho hyperref siêu dữ liệu với ! Use of \Title doesn't match ! Argument of \let has an extra }. mà còn cho bao gồm các từ khóa.

+1

Tôi tin rằng trong trường hợp này, '=' sau khi '\ def \ Title' hoạt động như một dấu phân cách tham số (mặc dù tôi không chắc liệu nó có được phép cho các macro không tham số) hay không. Điều đó có nghĩa là bạn phải gọi '\ Title =' thay vì '\ Title' đơn giản. '\ Title =' cũng sẽ hoạt động (dấu tách không phải là một phần của tên). Nhưng nó sẽ không có ý nghĩa (có thể được mong đợi) của một bài tập. –

+0

Cảm ơn, tôi đã sửa lỗi đánh máy! Câu hỏi đã mở tổng cộng 15 phút! – meduz

+0

Tôi đang bỏ phiếu để đóng câu hỏi này là không có chủ đề vì vấn đề không thể được sao chép theo các bản phân phối hiện đại. – Werner

Trả lời

10

Mẫu đúng nên hình như:

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

Biên dịch tốt và siêu dữ liệu cho thấy tốt trong người đọc pdf.

2

Hãy thử sử dụng \newcommand{\Author}{My name} thay vì \def.

+0

Điều này sẽ không tạo ra bất kỳ sự khác biệt nào. – Werner