下面的 MWE 给出了一个警告:“警告(pdf 后端):忽略名称为‘section.1’的重复目标”。注释掉选项“localanchorname”或 \usepackage{caption} 后,警告会消失。是否可以在保留两者的同时消除(而不是消除)此警告?
\documentclass{article}
\PassOptionsToPackage{%
localanchorname%
}{hyperref}
\usepackage{caption}
\usepackage{hyperref}
\begin{document}
\section{Heading One}
xxx
\begin{figure}
\end{figure}
\end{document}
答案1
基本上,标题与选项不兼容,localanchorname
因为它在组中设置目标名称。
我认为该选项不是很有用,最好将标签放在它所属的位置,但如果您需要它,则必须在组后重置目的地:
\documentclass{article}
\PassOptionsToPackage{%
localanchorname%
}{hyperref}
\usepackage{caption}
\makeatletter
\AtBeginDocument{%
\renewcommand*\caption@makestart[1]{%
\begingroup
\Hy@hypertexnamesfalse
\hyper@makecurrent{#1.caption}%
\global\let\my@currentHref\HyperGlobalCurrentHref
\endgroup
\let\@currentHref\my@currentHref
\caption@Debug{hypcap start=\@currentHref}}}%
\makeatother
\usepackage{hyperref}
\begin{document}
\section{Heading One}
xxx
\begin{figure}
\end{figure}
\end{document}