envcountsame 和 envcountsect 选项的 hyperref 和 LLNCS 样式存在问题

envcountsame 和 envcountsect 选项的 hyperref 和 LLNCS 样式存在问题

我正在使用最新的 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}

相关内容