Форматирование цитирования и пакет hyperref

Я использую в своем документе пакет hyperref. Одна из вещей, которые он делает, - это создание закладок в моем PDF-файле на основе оглавления. Некоторые заголовки разделов содержат ссылку на цитату.

\section{Some title \citep{BibTeXkey}}

Ярлык закладки тогда будет выглядеть так:

Some title BibTeXkey

Но я бы хотел, чтобы это было

Some title (Author, year)

Так же, как это отображается в тексте и в оглавлении. Так что перепутаны только закладки.

Я использовал последовательность pdflatex, bibtex, pdflatex, pdflatex для компиляции документа.

Как изменить метку закладки, чтобы использовать тот же формат, что и в оглавлении?


person Thierry    schedule 21.08.2009    source источник


Ответы (1)


Всякий раз, когда у меня возникает проблема с неправильной работой закладок 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)» вручную, вы можете попробовать использовать _ 4_, чтобы попытаться выяснить, как \citep производит этот вывод. Но я предупреждаю вас, что этот подход не для слабонервных: в этом случае, я думаю, вы в конечном итоге просматриваете файл aux, не говоря уже о файлах blg, brf и bbl.

person Anton Geraschenko    schedule 21.08.2009