当我加载时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}}