我正在尝试生成一个pdflatex
带有参考资料的 PDF 文件(使用)hyperref
;标题和作者都应作为 pdf 属性可见,并且都包含重音符号或非 us-ASCII。文档的其余部分使用\documentclass[a4paper,openright]{book}
、\usepackage[utf8]{inputenc}
和可以很好地编译\usepackage[spanish]{babel}
。
我希望这能起作用:
\usepackage[pdftex,colorlinks=true,
% ...
pdftitle={Título con acentos o eñes},
pdfauthor={Migueláñez}
]{hyperref}
——它会产生大约 54 个警告,并输出类似
Title: T19 tulo con acentos o en126 nes
Author: Miguela19 an126 nez
Creator: LaTeX with hyperref package
Producer: pdfTeX-1.40.10
我也尝试过让 pdfauthor 保持空白,然后使用
\pdfstringdef{myauthor}{Miguel\'{a}\~{n}ez}
或者
\pdfstringdef{myauthor}{Migueláñez}
和
\hypersetup{pdfauthor={\myauthor}}
但所有变体都会导致错误而不是警告。
答案1
尝试使用命令设置属性,\hypersetup{...}
而不是在加载时直接提供它们hyperref
(hyperref 手册,第 4 页):
\usepackage[colorlinks=false]{hyperref} \hypersetup{pdftitle={A Perfect Day}}
如上例所示,信息条目(pdftitle、pdfauthor……)应在包加载后设置。否则 LaTeX 会过早扩展这些选项的值。
因此,以下代码对我来说运行良好,并在 Adobe Reader 中显示正确的作者和标题:
\documentclass[a4paper,openright]{book}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage[pdftex,colorlinks=true]{hyperref}
\hypersetup{pdftitle={Título con acentos o eñes},pdfauthor={Migueláñez}}
\begin{document}
The document
\end{document}
答案2
虽然我认为迪亚博纳斯回答更适合西班牙语或其他非英语文档,无论如何它们都会使用inputenc
,babel
我喜欢发布一个没有它们也能工作的答案。以防有人用非 ASCII 字母编写了纯英语文档。尤其是当你最小化使用的包数量时。
诀窍是按照以下方式转义非 ASCII 字符。请注意,您不能将它们用作包选项,因为 LaTeX 内核\<number>
首先扩展序列并抱怨 eg\3
未定义。\hypersetup
它们在内部工作正常:
\documentclass{book}
\usepackage{hyperref}
\hypersetup{%
pdfauthor={Miguel\341\361ez},
pdftitle={T\355tulo con acentos o e\361es}
}
\begin{document}
Text
\end{document}
结果(的输出pdfinfo file.pdf
):
Title: Título con acentos o eñes
Subject:
Keywords:
Author: Migueláñez
...
所需特殊字符数量的列表如下: http://www.pjb.com.au/comp/diacritics.html
答案3
我知道已经提供了两个答案,但我认为我的答案不同,而且非常方便。为什么要在序言中加载某些内容?如果使用输入,最好指定标题在现实中文件档案,因为它在逻辑上应该在那里。如果你使用 UTF-8 和 unicode 设置编辑文件,只需使用
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage[unicode=true,,]{hyperref} %with more options specified if you like
那么这样做就没有问题了
\newcommand\longtitle{Właśnie tu długi tytuł} %translation: long title
\newcommand\authors{Przemysław Majewski}
\newcommand\headtitle{A tu króciutki} %translation: short title for headers
然后简单说明
%pdf authors and titles for hyperref ---> document specific
\hypersetup{
pdfauthor={\authors},
pdftitle={\longtitle},
pdfsubject={},
pdfkeywords={hypergeometric,,}
}
它有用吗?