我正在使用最新的 llncs 文档类:llncs 2014/03/31 v2.19
和 hyperref 2012/11/06 v6.83m
这是一个最小的工作示例:
\documentclass[envcountsame,envcountsect]{llncs}
\usepackage{hyperref}
\begin{document}
The hyperlink to Definition~\ref{def:2} and Definition~\ref{def:3}
points to Definition~\ref{def:1} instead.
\section{First Section}
\begin{definition} \label{def:1}
First definition
\end{definition}
\vfill
\pagebreak
\section{Second Section}
\begin{definition} \label{def:2}
Second definition
\end{definition}
\vfill
\pagebreak
\section{Third Section}
\begin{definition} \label{def:3}
Third definition
\end{definition}
\end{document}
使用 pdflatex 编译时,我收到以下警告:
pdfTeX warning (ext4): destination with the
same identifier (name{definition.1}) has been already used, duplicate ignored
<to be read again>
\relax
l.22 \begin{definition}
\label{def:2} [2]pdfTeX warning (ext4): destination with the same identifier (name{definition.1}) has been already used, duplicate ignored <to be read again>
\relax
l.30 \begin{definition}
\label{def:3} [3] (./llncsproblem.aux)
.aux 文件内容如下:
\@writefile{toc}{\contentsline {section}{\numberline {1}First Section}{1}{section.0.1}}
\newlabel{def:1}{{1.1}{1}{First Section}{definition.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Second Section}{2}{section.0.2}}
\newlabel{def:2}{{2.1}{2}{Second Section}{definition.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Third Section}{3}{section.0.3}}
\newlabel{def:3}{{3.1}{3}{Third Section}{definition.1}{}}
这会导致错误的超链接。仅使用两个 llncs 选项 envcountsame、envcountsect 中的一个即可正常工作。
答案1
我询问了 Springer 的 Frank Holzwarth,他回答说他设法用 llncs.cls 文件的最新版本 2.20(2015 年 6 月 24 日)解决了这个问题。在 Springer 官方网站正式发布该文件之前,您可以找到它这里。
答案2
使用 LLNCS v.2.20,链接可以工作,但警告仍然存在。这似乎是由于\newaliascnt
之前hyperref
加载了 LLNCS 调用。
消除警告的一个解决方案似乎是在序言末尾添加:
\def\theHdefinition{\theHtheorem}