我遇到了hyperref
警告,但没有明显的负面后果。此外,LaTeX 没有任何抱怨。我只是通过查看文件才发现警告.log
。
Package hyperref Warning: Difference (2) between bookmark levels is greater
(hyperref) than one, level fixed on input line 2366.
和
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `math shift' on input line 2206.
和
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `superscript' on input line 2200.
有人知道这是什么意思吗?
这些行也与参考文献不对应。
答案1
Package hyperref Warning: Difference (2) between bookmark levels is greater
(hyperref) than one, level fixed on input line 2366.
第一个警告可能是由于缺少节级别引起的。例如,\subsubsection
在 之后\section
。如果这是故意的,那么我建议使用 包bookmark
。它以更强大的方式实现书签管理,可以处理缺少的节级别。它在 包之后加载hyperref
:
\usepackage{hyperref}
\usepackage{bookmark}
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `math shift' on input line 2206.
这意味着,您$
在书签中。数学是由 TeX 排版的,PDF 查看器无法使用。如果书签标题没问题,那么您可以忽略警告。否则,书签标题的替代字符串表示形式如下\texorpdfstring
:
\texorpdfstring{$E=mc^2$}{E=mc\texttwosuperior}
为了更广泛地支持数学符号,我建议对书签标题使用 Unicode 编码,通过选项unicode
或设置pdfencoding=auto
,以及新选项psdextra
:
\usepackage[pdfencoding=auto,psdextra]{hyperref}