参照されるオブジェクトが別のページにある場合、条件付きで相互参照にページ番号を含めるにはどうすればよいですか?

参照されるオブジェクトが別のページにある場合、条件付きで相互参照にページ番号を含めるにはどうすればよいですか?

図への相互参照が図と同じページにない場合は、図にページ番号を含めたいと思います。しかし、図が同じページにある場合は、これは冗長であるため、ページ番号を省略したいと思います。

つまり、同じページ/異なるページに応じて、図の参照の次の 2 つのスタイルを切り替えたいのです。

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

関連情報