使用 \pageref 重置页码

使用 \pageref 重置页码

我有一本大书(约 2500 页),放在一个单独的 latex 文件中,里面有很多交叉引用。这本书包含连续的 3 卷,每卷都有目录、简介等。在每卷的开头,命令\frontmatter\mainmatter用于获取罗马页码。我的问题是这会将正常页码重置为 1,从而产生问题(例如,使整个内容的索引变得毫无用处)。

\setcounter{page}{1595}例如,我可以在需要的地方插入,但如果我在前几页中更改任何内容,这个 1595 应该会自动更改。然后我尝试:

\setcounter{page}{\pageref{Volume-II}}

当然,\label{Volume-II}在正确位置插入一个。这不起作用。我可以用标签重置页码计数器吗?如果问题很简单,请原谅,提前谢谢!

弗兰克

答案1

你的问题很不清楚,但如果你在序言中

\newcounter{zzz}

然后

\cleardoublepage
\setcounter{zzz}{\value{page}}
\mainmatter
\setcounter{page}{\value{zzz}}

\mainmatter无需改变页数计数器即可。

答案2

您可以使用\setcounterpageref您可以引用计数包。具体来说,

\setcounterpageref{page}{Volume-II}

将设置页码等于标签的页码Volume-II。在下面的 MWE 中,由于标签设置在最后一页,因此每次编译时页码都会不断增加。

\documentclass{book}

\usepackage{refcount}

\begin{document}
  \setcounterpageref{page}{Volume-II}
  \chapter{Fake chapter}
  \chapter{Fake chapter}
  \chapter{Fake chapter}
  \chapter{Fake chapter}
  \chapter{Fake chapter}
  \label{Volume-II}
\end{document}

顺便说一句,为了你自己的利益,我建议将你的多卷文档分成更小的文件。你可以使用負責包中添加对不同文件中定义的标签的交叉引用。

相关内容