代码之家  ›  专栏  ›  技术社区  ›  Thierry

引文格式和超引用包

  •  3
  • Thierry  · 技术社区  · 15 年前

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

    \section{Some title \citep{BibTeXkey}}
    

    然后书签的标签看起来像

    Some title BibTeXkey
    

    但我希望它是

    Some title (Author, year)
    

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

    我用了这个序列 pdflatex , bibtex , PDPLATEX , PDPLATEX 编译文档。

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

    1 回复  |  直到 10 年前
        1
  •  5
  •   Anton Geraschenko    15 年前

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

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

    生成节标题“带乳胶符号的节”,但该节的PDF书签为“带纯文本版本的节”。

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

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

    不幸的是,这意味着你必须粘贴” (Author, year) “手工操作,这有点烦人,但如果你的书目条目没有改变(这可能不应该改变),而且你也不改变引文惯例,那就没什么大不了的了。

    如果你真的想避免输入“ (作者,年) “通过手动,您可以尝试使用 \show 命令尝试找出 \citep 产生它的输出。但我警告你,这种方法不适合胆小的人:在这种情况下,我认为你最终会看穿 aux 文件,更不用说 blg , brf bbl 文件夹。