% !TeX TS-program = pdflatex
% !TeX encoding = UTF-8
\documentclass{article}
\usepackage{float}
\usepackage{graphicx}
\counterwithin{figure}{section}
\usepackage{hyperref}
%\counterwithin{figure}{section}
%\usepackage[all]{hypcap}
\begin{document}
\section{one}
\begin{figure}[H]
\centerline{\includegraphics[width=10cm]{example-image}}
\caption{example-image}
\end{figure}
\clearpage
\section{two}
\begin{figure}[htb]
\centerline{\includegraphics[width=11cm]{example-image-a}}
\caption{example-image-a}
\end{figure}
\end{document}
(pdftex.def) 请求的大小:312.9803pt x 234.74237pt。pdfTeX
警告(ext4):具有相同标识符(name{figure.1})的目标已
被使用,重复项将被忽略
以再次读取>
\relax
l.23 \caption{example-image-a}
我读了
- pdfTeX 警告(ext4):具有相同标识符(name{figure.1})的目标已被使用,重复项被忽略
- pdfTeX 警告(ext4):具有相同标识符(name{choice.1})的目标已被使用,重复项被忽略
- https://texfaq.org/FAQ-hyperdupdest
- https://golatex.de/warnung-destination-with-same-identifier-already-used-t21202.html
- pdfTeX 警告(ext4):具有相同标识符(name{page.1})的目标已被使用,重复项被忽略
- pdfTeX 警告:具有相同标识符的目标已被使用,重复被忽略(奇怪的行为)
- 如何修复具有相同标识符(name{page.A})的目的地已被使用,重复被忽略?
问题仍然存在
答案1
重新定义\theHfigure
,以便为目标锚点提供唯一的标识符:
\documentclass{article}
\usepackage{float}
\usepackage{graphicx}
\counterwithin{figure}{section}
\usepackage{hyperref}
%\counterwithin{figure}{section}
%\usepackage[all]{hypcap}
\renewcommand\theHfigure{\thesection.\arabic{figure}}
\begin{document}
\section{one}
\begin{figure}[H]
\centerline{\includegraphics[width=10cm]{example-image}}
\caption{example-image}
\end{figure}
\clearpage
\section{two}
\begin{figure}[htb]
\centerline{\includegraphics[width=11cm]{example-image-a}}
\caption{example-image-a}
\end{figure}
\end{document}
答案2
hyperref 补丁\counterwithin
,但你在 hyperref 获得修补机会之前使用它。因此使用\counterwithin
后加载 hyperref 包,问题就解决了。
Ulrike 的回答只是一种变通方法,试图纠正错误的包加载和使用顺序造成的损害。恕我直言,这是错误的方法。
也可以看看https://texfaq.org/FAQ-hyperdupdest
“因此,在大多数情况下,你应该在加载 hyperref 之前加载你的软件包,然后 hyperref 会对其进行修补,使它们正常工作,这样你就可以在加载两者之后使用你的(已修补的)软件包”
在这种情况下意味着:首先加载提供的包\counterwithin
(这里不需要,因为它是由最新的 LaTeX 内核提供的),hyperref
然后加载(这样它可以修补\counterwithin
,然后(且只有这样)使用\counterwithin
。
答案3
\counterwithin{figure}{section}
\usepackage[all]{hypcap}
在 hyperref-package 后的序言中。在这种情况下,\counterwithin{figure}{section}
aswell\usepackage[all]{hypcap}
就足够了,但有时你需要两者,这\usepackage{caption}
通常也会有所帮助。
这个问题使用