如何找到标签的位置,尤其是在 Overleaf 或 Latex 中定义的多个标签?

如何找到标签的位置,尤其是在 Overleaf 或 Latex 中定义的多个标签?

在撰写论文时,我收到了Label multiply defined警告。这种情况可能会发生,但不是大问题,但现在我的论文相当长,分为几个子文件。我找不到第二个定义,所以我必须浏览每个文档和CTR-F标签。

是否有某些功能(在 Overleaf 中)可以查找有问题的标签?在日志中,它仅出现在错误消息中....

答案1

只是为了好玩:

\documentclass{article}
%\usepackage{hyperref}% changes number of arguments for \newlabel

\newcommand{\listoflabels}{}
\let\normalnewlabel=\newlabel
\makeatletter
\renewcommand{\newlabel}[2]{%
  \protected@edef\listoflabels{\listoflabels label(#1) page(\getpagelabel#2)\protect\par}%
  \global\let\listoflabels=\listoflabels
  \normalnewlabel{#1}{#2}}
\makeatother
\IfPackageLoadedTF{hyperref}{\def\getpagelabel#1#2#3#4#5{#2}}% see also cleveref
  {\def\getpagelabel#1#2{#2}}

\newcounter{foo}

\begin{document}
\listoflabels

\refstepcounter{foo}\label{bar}

\refstepcounter{foo}\label{bar}

\pageref{bar}
\end{document}

相关内容