我想用罗马数字对文档的前几部分进行页码编号,然后用阿拉伯数字对其余部分进行页码编号,但我不希望阿拉伯数字从 1 开始。由于我不知道目录和其他前几部分的长度,所以我不想对主要部分的第一页进行硬编码。有没有办法防止 \pagenumbering 重置,或者以某种方式将 \setcounter 指向“最后一页的页码 + 1”?
梅威瑟:
\documentclass{article}
\pagenumbering{roman}
\setcounter{page}{3}
\begin{document}
%preliminary materials
This should be on page ``iii''.
\newpage
Page ``iv''.
\newpage
Page ``v''.
%main section
\newpage
\pagenumbering{arabic}
\setcounter{page}{6} % how can I set this without hard coding the 6?
Page ``6''.
\end{document}
答案1
您可以定义\pagenumberingnoreset
:
\makeatletter
\newcommand\pagenumberingnoreset[1]{\gdef\thepage{\csname @#1\endcsname\c@page}}
\makeatother
不过,正如我在评论中所说,这严重违反了印刷原则,这也是它在 LaTeX 中不存在的原因(之一)。
上述定义基于的原始定义\pagenumbering
:
\newcommand\pagenumbering[1]{%
\global\c@page\@ne % this resets the counter
\gdef\thepage{\csname @#1\endcsname\c@page}%
}