
\ref{}
내 문서에는 여러 그림이 있는데, 그 중 대부분은 문서에 배치한 직후 (사용)에 대한 참조를 만들었습니다 . 그러나 문서에 참조하는 것을 잊어버린 몇 가지 그림이 있어서 일부 그림은 인용 없이 "걸려" 있습니다. 이는 내 실수이므로 수정해야 합니다.
그래서 내 질문은 다음과 같습니다.
수치가 참조되지 않은 경우 라텍스가 경고를 발행하도록 강제하는 방법이 있습니까?
답변1
그만큼refcheck
패키지가 여기서 유용할 수 있습니다.
다음 MWE에는 참조되지 않은 그림이 있으므로 PDF에 주위에 refcheck
경고를 표시합니다 .?
\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
를 추가하세요).\\