可能重复:
如何让 LaTeX 对未引用的图形发出警告?
在我的文档中,我有几个图,其中大部分都是我\ref{}
在将它们放入文档后立即创建了参考资料(使用)。但是,我忘记在文档中引用一些图,导致一些图“悬而未决”,没有任何引用,这是我的错误,必须予以纠正。
所以,我的问题是:
如果某个图形从未被引用,是否有办法强制乳胶发出警告?
答案1
这refcheck
包在这里可能会有用。
以下 MWE 有一个未引用的图,因此它refcheck
会在您的 pdf?
周围放置一个警告。
\documentclass{article}
\usepackage{refcheck}
\begin{document}
\begin{figure}
\centering
\rule{20pt}{30pt}
\caption{}
\label{fig:myfig}
\end{figure}
\end{document}
一旦您引用该图形,就会?
被删除。请注意,此方法确实依赖于每个图形都有一个标签。
请注意,我已经refcheck
用进行了演示figure
,但它的工作原理相同任何事物带有标签(table
、chapter
、equation
等)。
答案2
这是一个手工制作的解决方案:
将以下内容添加到您的序言中:
\makeatletter
\let\LaTeX@original@label\label
\let\LaTeX@original@ref\ref
\newcommand{\warnunused}{}
\renewcommand{\label}[1]{%
\expandafter\global\expandafter\def\csname warning@#1\endcsname{%
\typeout{warning: label #1 was not referenced.}}%
\g@addto@macro\warnunused{%
\csname warning@#1\endcsname}
\LaTeX@original@label{#1}}
\renewcommand{\ref}[1]{%
\expandafter\global\expandafter\def\csname warning@#1\endcsname{}
\LaTeX@original@ref{#1}}
\makeatother
以及紧接在 之前的以下内容\end{document}
:
\warnunused
现在,每次运行 LaTeX 时,对于每个未引用的标签,你都会得到一行
warning: label (your label here) was not referenced.
在您的标准输出和 refwarn.log 中。
如果您希望直接在文档中显示警告,请删除警告宏中的(并可能在周围\typeout
添加和在末尾添加)。\texttt
#1
\\