有 \ref{} 和 \pageref{}。但我想要混合行为。我想在文本中使用类似“XXX (page.YYY)”的内容,其中 XXX 是 \ref{} 通常生成的内容(章节/节/等编号),而 YYY 是页码。如何实现?
答案1
创建新命令,例如\fullref
\newcommand{\fullref}[1]{%
\ref{#1}
(p.~\pageref{#1})%
}
并致电
\fullref{label}
这是一个不测试页面的 MWE。正如@Mico 所说,我建议使用https://www.ctan.org/pkg/varioref。软件包的作者已经想到了你 :-)
答案2
我建议你看看瓦里雷夫包及其\vref
宏。该宏具有以下属性:
如果被交叉引用的项目恰好位于同一页面,它的行为与普通
\ref
宏类似,即不附加任何内容;如果该项目位于紧接的前一页或后一页,则在交叉引用中根据需要附加“在上一页”或“在下一页”;
如果该项目位于文档的其他位置,则会将字符串“在页面上”附加到交叉引用。