如何有條件地將頁碼包含在交叉引用中(當引用的物件位於不同頁面上)?

如何有條件地將頁碼包含在交叉引用中(當引用的物件位於不同頁面上)?

當對圖的交叉引用與圖不在同一頁上時,我想在圖中包含頁碼。但是當它們位於同一頁上時,這是多餘的——我想省略頁碼。

換句話說,我想根據相同頁面/不同頁面在這兩種圖形引用樣式之間切換:

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

相關內容