我可以添加其他文本以供参考吗?文本(此处的箭头)应放置在页码之前或之后,具体取决于参考内容。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\title{reference}
\begin{document}
Hello1
\label{hello1}
\lipsum[2-4]
\newpage
Helo2, see \pageref{hello1} or \pageref{hello3} or \pageref{hello4} \newline
Desired output: Hello2, see ($\leftarrow$\pageref{hello1}), (\pageref{hello3}$\rightarrow$),(\pageref{hello4}$\rightarrow$)
\lipsum[2-4]
\newpage
Hello3
\label{hello3}
\lipsum[2-4]
\newpage
Hello4
\label{hello4}
\lipsum[2-4]
\newpage
\end{document}
答案1
您可以使用refcount
提供命令的包\getpagerefnumber
。此命令(与普通命令不同\pageref
)可用于数字比较,例如使用内置\ifnum
测试。下面的代码测试三种情况:当前页面之前(左箭头)、当前页面(无箭头)和当前页面之后(右箭头)。
梅威瑟:
\documentclass{article}
\usepackage{refcount}
\usepackage{lipsum}
\title{reference}
\newcommand{\arrpageref}[1]{%
(\ifnum\getpagerefnumber{#1}=\value{page}%
\pageref{#1}\else%
\ifnum\getpagerefnumber{#1}>\value{page}%
\pageref{#1}\textrightarrow\else%
\textleftarrow\pageref{#1}\fi\fi)}
\begin{document}
Hello1
\label{hello1}
\lipsum[2-4]
\newpage
\label{hello2}
Hello2, see \pageref{hello1} or \pageref{hello3} or \pageref{hello4} \newline
Desired output: Hello2, see ($\leftarrow$\pageref{hello1}), (\pageref{hello3}$\rightarrow$),(\pageref{hello4}$\rightarrow$)\newline
Hello2, see \arrpageref{hello1} or \arrpageref{hello2} or \arrpageref{hello3} or \arrpageref{hello4} \newline
\lipsum[2-4]
\newpage
Hello3
\label{hello3}
\lipsum[2-4]
\newpage
Hello4
\label{hello4}
\lipsum[2-4]
\newpage
\end{document}
结果: