在文本末尾添加标签

在文本末尾添加标签

我想使用\pageref's 来表示一系列页面,例如,在我的文件中,有这样一段内容

See pages \pageref{ref1}--\pageref{ref1_end}.

其中ref1指向某个部分,并且我想ref1_end指向该部分的结尾:

\section{section 1}\label{ref1}
a lot of text.\label{ref1_end} % label does not work: Reference `ref1_end' on page X undefined on input line Y.

\section{section 2}\label{ref2}
more text \label{ref2_end}

\pageref{ref1}--\pageref{ref1_end}如果两个部分之间有分页符,则使用将是错误的。

如何在文本末尾添加标签。有没有办法使用一些 0 大小环境或幻像部分来实现这一点?

注意:这个问题应该与,但不同之处在于我想知道我可以将标签附加到什么位置而输出文本和间距看起来没有任何不同。

答案1

您需要用标签标记该部分的结尾。我采用了您添加_end最终标签的方案。

\documentclass{article}
\usepackage{refcount}

\usepackage{lipsum}

\newcommand{\pagerefrange}[1]{%
  \ifnum\getpagerefnumber{#1}=\getpagerefnumber{#1_end}\relax
    page~\pageref{#1}%
  \else
    pages~\pageref{#1}--\pageref{#1_end}%
  \fi
}

\begin{document}

See \pagerefrange{ref1} and \pagerefrange{ref2}.

\section{A long section}\label{ref1}

\lipsum[1-10]
End.\label{ref1_end}

\section{A short section}\label{ref2}

\lipsum[1]
End.\label{ref2_end}

\end{document}

该宏比较两个页面引用,如果它们相等则发出“第 n 页”,否则发出“第 m-n 页”。

在此处输入图片描述

相关内容