在 \section 中使用 \autocite 时出错

在 \section 中使用 \autocite 时出错

当我加载时hyperref并使用\autocite{...}内的命令\section{...},我的.log文件显示以下警告:

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\autocite' on input line 27.

我希望引用整个部分,因为它将从另一个来源(即实验程序)改编而来。

有人能解释一下这个警告以及如何解决它吗?搜索类似的问题并没有找到解决方案,所以如果这是重复的,请原谅我。

MWE 重现警告:

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@BOOK{example,
  author    = {Example E. Example},
  title     = {The Complete Example Reference},
  publisher = {The Example Companies, Inc.},
  year      = {2012},
  address   = {New York},
  isbn      = {000-0-00-000000-0},
  pages     = {1--10}
}
\end{filecontents*}
\usepackage{hyperref}
\hypersetup{colorlinks=true}
\begin{document}
\section{Example\autocite{example}}
This entire section is to be cited!
\nocite{*}
\printbibliography
\end{document}

答案1

当软件包hyperref不知道如何处理将要放入 PDF 条目中的内容时,它会发出此类警告。就您而言,hyperref它不知道如何将指令\autocite放入 PDF 书签中。为了防止这种情况,您可以使用\texorpdfstring{text to be typeset}{text for the bookmark}

\section{\texorpdfstring{Example\autocite{example}}{A Relevant Example}}

另一个选项,如果您要生成目录则特别有用,那就是使用可选参数\section(毕竟,在目录中也使用引用标记没有多大意义):

\section[A Relevant Example]{Example\autocite{example}}

相关内容