未定義の参照を自動的に強調表示します

未定義の参照を自動的に強調表示します

??未定義の参照の代わりにタイプセットされる の書式を LaTeX で自動的に変更する方法はありますか? たとえば、 の背後に黄色の「ハイライト」背景を描画したり??、 を??赤いテキストでレンダリングしたりすることはできますか?

PDF 出力をざっと読むときに、これらの未定義の参照を簡単に見つけられるようにしたいと思います。

MWEは

\documentclass{article}
\begin{document}
\ref{undefinedReference}
\end{document}

これが、定義されていない相互参照だけでなく、定義されていない書誌引用にも機能するようになれば、特に素晴らしいと思います。

答え1

これを見逃すことはないと思います:

\documentclass{article}
\usepackage{color}
\makeatletter

\def\@setref#1#2#3{%
  \ifx#1\relax
   \protect\G@refundefinedtrue
   \nfss@text{\reset@font\bfseries\huge\textcolor{red}{DEFINE #3 NOW, AND MAKE IT QUICK!}}%
   \@latex@warning{Reference `#3' on page \thepage \space
             undefined}%
  \else
   \expandafter#2#1\null
  \fi}

\makeatother
\begin{document}
\ref{undefinedReference}
\end{document}

答え2

David の回答に基づいて、PDF 注釈を「黄色の「ハイライト」背景」として使用するソリューションを次に示します。

\documentclass{article}
\usepackage[rgb]{xcolor}
\usepackage{pdfcomment}
\makeatletter

\def\@setref#1#2#3{%
  \ifx#1\relax
   \protect\G@refundefinedtrue
   \nfss@text{\reset@font\bfseries\pdfmarkupcomment[color=yellow,author={RefCheck Assistant}]{??}{DEFINE #3 NOW, AND MAKE IT QUICK!}}%
   \@latex@warning{Reference `#3' on page \thepage \space
             undefined}%
  \else
   \expandafter#2#1\null
  \fi}

\makeatother
\begin{document}
see \ref{undefinedReference}
\end{document}

ここに画像の説明を入力してください

クリックせずにマウスオーバーするとツールヒントが表示されます:

ここに画像の説明を入力してください

関連情報