refcheck 和 \nameref 不兼容

refcheck 和 \nameref 不兼容

考虑以下 MWE

\documentclass[12pt]{article}
\usepackage[colorlinks]{hyperref}
\usepackage[norefs]{refcheck}
\begin{document}
As we will see later (see \nameref{ans}), the answer is 42.
\section{The answer}\label{ans}
This simplifies to 42.
\end{document}

排版正确,但我收到警告,说 ans 从未被引用。我怎样才能让 refcheck 意识到它被引用了?

答案1

\nameref*警告,目前这还不起作用......

refcheck重新定义了常用的\...ref命令,如\ref\pageref\biblabel等,并将其挂接到这些命令中,将参数存储到列表中(使用的标签名称),但它没有提供类似的方法\nameref

我认为,\cref等等cleveref也将失败。

\documentclass[12pt]{article}
\usepackage[colorlinks]{hyperref}
\usepackage[norefs]{refcheck}
\makeatletter
\AtBeginDocument{%
\let\@@nameref@@\nameref
\expandafter\DeclareRobustCommand\expandafter
{\csname relax\string\nameref\endcsname}[1]{\@@nameref@@{#1}\wrtusdrf{#1}}%
\expandafter\let\expandafter\nameref\csname relax\string\nameref\endcsname
}
\makeatother

\begin{document}
As we will see later (see \nameref{ans}), the answer is 42.
\section{The answer}\label{ans}
This simplifies to 42.
\end{document}

相关内容