交叉引用大量连续页面的有效方法

交叉引用大量连续页面的有效方法

这是使用 Pageref 和 Label 命令交叉引用多个页面

考虑一下代码

\documentclass[12pt]{book}
\usepackage[english]{babel}
\usepackage{lipsum}
\usepackage{cleveref}

% To print a dash between the page numbers in the range.
\crefname{page}{p.}{pp.}
\newcommand*{\crefrangeconjunction}{--}

\begin{document}
\thispagestyle{empty}

See \cpageref{R1,R2,R3,R4}.

\newpage
Some words.
\label{R1}
\newpage
Some words.
\label{R2}
\newpage
Some words.
\label{R3}
\newpage
Some words.
\label{R4}
\end{document}

产生

在此处输入图片描述

虽然输出正是我想要的,但如果涉及一百个连续的交叉引用页面,标记任务似乎可能会变得相当费力。

问题:我怎样才能使标记过程更有效率;也就是说,有没有办法引用连续页面字符串中的第一页和最后一页,以便 LateX 生成所需的输出,在本例中,参见第 2-5 页无需贴标签每一个引用的页面?

谢谢。

答案1

你问:

有没有办法引用连续页面字符串中的第一页和最后一页,以便 LateX 生成所需的输出,在本例中为“参见第 2-5 页”,而无需标记每一个引用的页面?

cleveref定义\cpagerefrange,以便

See \cpagerefrange{R1}{R4}.

给出您想要的输出。

(还请注意,您的原始示例需要链接答案中的补丁才能获得所显示的输出。 \cpagerefrange不需要补丁。)

答案2

我尝试遵循上述答案,但一开始有点困惑。当我弄清楚后,我认为发布一个完整的工作示例可能会有所帮助。

\documentclass[12pt]{book}
\usepackage[english]{babel}
\usepackage{lipsum}
\usepackage{cleveref} %defines \cpagerefrange

% Print a dash between the page numbers in the range:
\crefname{page}{p.}{pp.}
\newcommand*{\crefrangeconjunction}{--}

\begin{document}
\thispagestyle{empty}

See \cpagerefrange{R1}{R4}

\newpage
Some words.
\label{R1}

\newpage
Some words.

\newpage
Some words.

\newpage
Some words.
\label{R4}
\end{document}

给出所需的输出:

在此处输入图片描述

相关内容