如果在同一页面上

如果在同一页面上

我想编写一个宏,其工作原理类似于\ref附加功能:如果参数与引用(实际页面)位于同一页面上,则会添加page \pageref

我尝试过,但我认为我的方法不对。这是我的代码:

\documentclass{article}

\usepackage{ifthen}

\newcommand{reff}[1]{%
  \ifthenelse{\thepage = \pageref{#1}}%
    {\ref{#1}}%
    {\ref{#1} page \pageref{#1}}%
}

\begin{document}

\section{References}

The first test section \reff{test1} and the second test section \reff{test2}.

\section{\label{test1## Heading ##} Test section}

\newpage

\section{\label{test2} Second test section}

\end{document}

我收到以下错误:

! LaTeX Error: Missing \begin{document}.

它应该显示:

The first test section 2 and the second test section 3 page 2.

感谢您的帮助。

答案1

在重新发明轮子之前,先看一下varioref包(即运行 texdoc varioref):

姆韦

\documentclass{article}
\usepackage[colorlinks,linkcolor=blue]{hyperref}
\usepackage{varioref}
\begin{document}
\section{References}
The first test section \vref{test1} 
and the second test section \vref{test2}.
\section{\label{test1} Test section}
\newpage
\section{\label{test2} Second test section}
\end{document}

相关内容