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

\section{Some title \citep{BibTeXkey}}

书签的标签看起来像
Some title BibTeXkey

但我希望它是
Some title (Author, year)

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

我使用序列 pdflatex , bibtex , pdflatex , pdflatex 来编译文档。

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

最佳答案

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

\section{带有\texorpdfstring 的部分{LaTeX 符号}{纯文本版本}}

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

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

\section{一些标题\texorpdfstring{\citep{BibTeXkey}}{(作者,年份)}}

不幸的是,这意味着您必须手动粘贴“(Author, year) ”,这有点烦人,但如果您的引用书目条目没有更改(这可能不应该更改)并且您没有更改您的引用约定。

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

关于formatting - 引文格式和 hyperref 包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1311385/

10-12 17:32