引文格式和hyperref包

时间:2009-08-21 11:18:21

标签: formatting latex citations hyperref

我在我的文档中使用hyperref包。它所做的一件事是根据目录在我的pdf中创建书签。某些章节标题包含对引文的引用

\section{Some title \citep{BibTeXkey}}

书签的标签看起来像

Some title BibTeXkey

但我希望它是

Some title (Author, year)

就像它显示在文本和目录中一样。所以只有书签搞砸了。

我使用序列pdflatexbibtexpdflatexpdflatex来编译文档。

如何更改书签标签以使用与目录中相同的格式?

1 个答案:

答案 0 :(得分:5)

每当我遇到pdf书签无法正常工作的问题时,解决方案通常都是使用\texorpdfstring。它允许您使节文标题包含一些非文本材料(如链接或某些符号),并指定应在pdf书签中显示的内容,该标题不能包含符号。输入

\section{The section with \texorpdfstring{LaTeX symbols}{plain text version}}

生成部分标题“带有LaTeX符号的部分”,但该部分的pdf书签是“带纯文本版本的部分”。

在您的情况下,最简单的事情可能是

\section{Some title \texorpdfstring{\citep{BibTeXkey}}{(Author, year)}}

不幸的是,这意味着您必须手动粘贴“(Author, year)”,这有点令人讨厌,但如果您的参考书目条目没有改变(这可能不应该),这不是什么大问题而且你不会改变你的引用惯例。

如果你真的想避免手动输入“(Author, year)”,你可以尝试使用\show命令来弄清楚\citep如何产生它的输出。但我警告你,这种方法不适合胆小的人:在这种情况下,我认为你最终会查看aux文件,更不用说blg,{{1} }和brf个文件。