如何有条件地在交叉引用中包含页码(当引用的对象位于不同的页面上时)?

如何有条件地在交叉引用中包含页码(当引用的对象位于不同的页面上时)?

当对某幅图的交叉引用与该图不在同一页时,我想在图中包括页码。但当它们在同一页时,这显得多余——我想省略页码。

换句话说,我想根据 samepage/differentpage 在这两种图形引用样式之间切换:

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

相关内容