Resaltar automáticamente referencias indefinidas

Resaltar automáticamente referencias indefinidas

¿Hay alguna manera de obligar a LaTeX a cambiar automáticamente el formato del ??que se compone en lugar de una referencia indefinida? Por ejemplo, ¿se puede hacer que LaTeX dibuje un fondo amarillo "resaltado" detrás del ??, o renderizar el ??texto en rojo?

Me gustaría que fuera más fácil detectar estas referencias indefinidas al leer el resultado PDF.

Una MWE sería

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

Sería especialmente bueno si esto pudiera funcionar para citas bibliográficas indefinidas, así como para referencias cruzadas indefinidas.

Respuesta1

No creo que te pierdas esto:

\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}

Respuesta2

Según la respuesta de David, aquí hay una solución con anotaciones en PDF como 'fondo amarillo "resaltado"':

\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}

ingrese la descripción de la imagen aquí

sin hacer clic ni pasar el mouse, obtendrá información sobre herramientas:

ingrese la descripción de la imagen aquí

información relacionada