![refcheck 和 \nameref 不兼容](https://linux22.com/image/331010/refcheck%20%E5%92%8C%20%5Cnameref%20%E4%B8%8D%E5%85%BC%E5%AE%B9.png)
考虑以下 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}