¿Cómo puedo incluir condicionalmente el número de página en una referencia cruzada (cuando el objeto al que se hace referencia está en una página diferente)?

¿Cómo puedo incluir condicionalmente el número de página en una referencia cruzada (cuando el objeto al que se hace referencia está en una página diferente)?

Cuando una referencia cruzada a una figura no está en la misma página que la figura, me gustaría incluir el número de página en la figura. Pero cuando están en la misma página, esto es redundante y quiero omitir el número de página.

En otras palabras, quiero cambiar entre estos dos estilos de referencia de figuras dependiendo de la misma página/página diferente:

\newcommand{\figref}[1]{Figure~\ref{fig:#1}, page \pageref{fig:#1}}
\newcommand{\simplefigref}[1]{Figure~\ref{fig:#1}}

ProbablementeProbando para la página actualy los condicionales pueden hacer esto, ¿alguien ha elaborado una receta?

Respuesta1

Prueba elvariorefpaquete.

\documentclass[english]{scrartcl}

\usepackage{babel}
\usepackage{varioref}

\usepackage{blindtext}% just for testing

\begin{document}
Text \vref{fig1}. \blindtext

\blindtext[5]% change this number to see
             % the different outputs of \vref

\begin{figure}
  \rule{2cm}{2cm}
  \caption{Text}\label{fig1}
\end{figure}
\end{document}

información relacionada