Nameref 指的是章节标题而不是定理标题

Nameref 指的是章节标题而不是定理标题

我见过类似的问题这里,但答案是在 2011 年发布的,说明这是由于使用的 nameref 版本已过时。我必须使用 Overleaf 来处理我的文档,而我无法访问(我认为)它正在使用的版本。但是,我希望 Overleaf 不会嵌入 13 年前的过时版本的软件包。

MWE 在这里:

\documentclass{article}

\usepackage{hyperref}
\usepackage[hyperref, standard, thmmarks]{ntheorem}

\begin{document}
\section{My section}
\begin{Definition}[My definition]
    \label{definition:mine}
    That's my definition.
\end{Definition}
Reference : \nameref{definition:mine}
\end{document}

Nameref 将超链接显示为“我的部分”而不是“我的定义”。使用我上面发布的帖子的可接受答案并没有改变这一点。这可能是什么原因造成的?

答案1

据我所知,ntheorem 没有设置\@currentlabelname。您可以自己设置:

\documentclass{article}

\usepackage{hyperref}
\usepackage[hyperref, standard,thmmarks]{ntheorem}

\begin{document}
\section{My section}

\tracingmacros=1 
\begin{Definition}[My definition]
\makeatletter\def\@currentlabelname{My definition}\makeatother
    \label{definition:mine}
    That's my definition.
\end{Definition}
Reference : \nameref{definition:mine}
\end{document}

相关内容