为什么 LaTeX 会抱怨destination with the same identifier (name{subfigure.1.2}) has been already used, duplicate ignored
这个:
\documentclass{article}
\usepackage{tikz}
\usepackage{subfig}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\end{figure}
\begin{figure}
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\end{figure}
\end{document}
代码运行正常,并按预期生成了四个圆圈。如果我删除,错误消息就会消失hyperref
。无论如何,我想知道这里发生了什么。
答案1
使用时subfig
即使包是空的,您也需要一个caption
。例如,以下代码运行时不会出现警告:
% arara: pdflatex
\documentclass{article}
\usepackage{subfig}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\caption{}
\end{figure}
\begin{figure}
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\subfloat { tikz draw (0cm,0cm) circle(1cm); }
\caption{}
\end{figure}
\end{document}
正如评论中提到的subcaption
不受此影响 - 我个人更喜欢这个包,这里有一个完整的 MWE 来演示它
% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}
\usepackage{subcaption}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\begin{subfigure}{.5\textwidth}
tikz draw (0cm,0cm) circle(1cm);
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
tikz draw (0cm,0cm) circle(1cm);
\end{subfigure}%
\end{figure}
\begin{figure}
\begin{subfigure}{.5\textwidth}
tikz draw (0cm,0cm) circle(1cm);
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
tikz draw (0cm,0cm) circle(1cm);
\end{subfigure}%
\end{figure}
\end{document}