상호 참조에 페이지 번호를 조건부로 포함하려면 어떻게 해야 합니까(참조된 개체가 다른 페이지에 있는 경우)?

상호 참조에 페이지 번호를 조건부로 포함하려면 어떻게 해야 합니까(참조된 개체가 다른 페이지에 있는 경우)?

그림에 대한 상호 참조가 그림과 같은 페이지에 없는 경우 그림에 페이지 번호를 포함시키고 싶습니다. 하지만 같은 페이지에 있으면 중복되므로 페이지 번호를 생략하고 싶습니다.

즉, 같은 페이지/다른 페이지에 따라 그림 참조의 두 가지 스타일 간에 전환하고 싶습니다.

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

아마현재 페이지 테스트그리고 조건문이 이것을 할 수 있는데, 레시피를 알아낸 사람 있나요?

답변1

시도해 보세요varioref패키지.

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

관련 정보