![使用 \pageref 重置页码](https://linux22.com/image/379261/%E4%BD%BF%E7%94%A8%20%5Cpageref%20%E9%87%8D%E7%BD%AE%E9%A1%B5%E7%A0%81.png)
我有一本大书(约 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}
顺便说一句,为了你自己的利益,我建议将你的多卷文档分成更小的文件。你可以使用負責包中添加对不同文件中定义的标签的交叉引用。