그림이 참조되지 않는 경우 LaTeX에서 경고를 발행하도록 강제하는 방법이 있습니까?

그림이 참조되지 않는 경우 LaTeX에서 경고를 발행하도록 강제하는 방법이 있습니까?

가능한 중복:
LaTeX에서 참조되지 않은 수치에 대해 경고하도록 하려면 어떻게 해야 합니까?

\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를 추가하세요).\\

관련 정보