当对某幅图的交叉引用与该图不在同一页时,我想在图中包括页码。但当它们在同一页时,这显得多余——我想省略页码。
换句话说,我想根据 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}