LaTeX 中的连续页码

LaTeX 中的连续页码

我想在正文完成后继续对文档的前言进行罗马数字编号。遗憾的是,以下方法不起作用。计数器从 1 重新开始。

\pagenumbering{roman}
...

\setcounter{savepage}{\number\value{page}}
\newpage
\pagenumbering{arabic}

\section{Introduction}
\lipsum{}

\newpage
\setcounter{page}{\number\value{savepage}}
\pagenumbering{roman}

\begin{appendix}
\section*{Appendix}

\end{appendix}

答案1

\pagenumbering做以下两件事(来自latex.ltx):

\def\pagenumbering#1{%
  \global\c@page \@ne
  \gdef\thepage{\csname @#1\endcsname \c@page}}

  • 页码设置为一(\global\c@page \@ne
  • 页码表示更改为使用参数 ( \gdef\thepage{\csname @#1\endcsname \c@page})

由于它将页码重置为 1,因此您保存和恢复页码的操作不会保留。因此,请使用以下编码顺序:

\pagenumbering{roman}
\setcounter{page}{\value{savepage}}

请注意,这将使附录中的第一页相当于你的前页。如果您希望它从下一页开始,请使用

\setcounter{page}{\numexpr\value{savepage}+1}

答案2

比 Werner 的解决方案稍微复杂一些,但可以存储整个“计数器”树。

使用包xassoccnt,定义一个backup counter group,比如说pagebackup,用计数器填充它page,将状态存储到某个 id 中(比如说roman),然后在将计数器输出roman再次更改为 后恢复它\pagenumbering

在下面的使用示例中,前五页vi按要求用罗马数字编号,附录编号继续用 。

我同意,对于这样的场合来说这太过分了,但对于其他问题来说,了解一下还是有好处的。

\documentclass{article}

\usepackage{xassoccnt}

\DeclareBackupCountersGroupName{pagebackup}
\AssignBackupCounters[name=pagebackup]{page}

\usepackage{blindtext}
\begin{document}



\pagenumbering{roman}

\blindtext[20]

\clearpage
\BackupCounterGroup[backup-id=roman]{pagebackup}
\pagenumbering{arabic}

\section{Introduction}
\blindtext[10]


\clearpage
\pagenumbering{roman}
\RestoreBackupCounterGroup[backup-id=roman]{pagebackup}

\appendix
\section*{Appendix}
\blindtext[50]

\end{document}

enter image description here enter image description here

相关内容