Como posso incluir condicionalmente o número da página em uma referência cruzada (quando o objeto referenciado está em uma página diferente)?

Como posso incluir condicionalmente o número da página em uma referência cruzada (quando o objeto referenciado está em uma página diferente)?

Quando uma referência cruzada a uma figura não estiver na mesma página da figura, gostaria de incluir o número da página na figura. Mas quando eles estão na mesma página, isso é redundante – e quero omitir o número da página.

Em outras palavras, quero alternar entre esses dois estilos de referência de figura dependendo da mesma página/página diferente:

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

ProvavelmenteTestando a página atuale condicionais podem fazer isso, alguém já elaborou uma receita?

Responder1

Tente ovariorefpacote.

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

informação relacionada