thmtools 打破与算法的联系

thmtools 打破与算法的联系

我不知道为什么,但加载thmtools会破坏与算法的链接。只需删除此包或在加载之后加载\numberwithin似乎可以修复编译,但我想知道这是否是一个已知问题,以及将其删除/移动到随机不同的行是否是修复此问题的正确方法。

MWE:(为了测试,只需点击最后一页的第二个链接:您将转到错误的定理)

\documentclass{article}

\usepackage{hyperref}
\usepackage{mathtools}
\usepackage{amssymb, amsthm, amsmath}

%% thmtools is the problem with numberwithin{algorithm}{section}!
\usepackage{thmtools}


\usepackage{algorithm, algorithmicx, algpseudocode}
\floatname{algorithm}{Protocol}
\providecommand*\algorithmautorefname{Protocol}
\numberwithin{algorithm}{section}


\begin{document}

\section{Section with links}

\begin{algorithm}[H]
  \caption{I am an algorithm that attracts all the links} \label{protocol:firstProtocol}
  I attract all the link...
\end{algorithm}

\newpage
\section{Section with no links}


\begin{algorithm}[H]
\caption{Nobody wants to link me :(} \label{protocol:secondProtocol}
Please link to me!!
\end{algorithm}


\newpage

Le premier est \autoref{protocol:firstProtocol} et le deuxième est \autoref{protocol:secondProtocol}.

\end{document}

答案1

除极少数hyperref例外总是最后要加载的包(它必须重新定义许多其他包,因此需要查看它们是否已被加载)。

向下移动hyperref,两个链接都击中了我的正确目标。

相关内容