防止抽象环境重置页码

防止抽象环境重置页码

我将其 \documentclass[12pt, a4paper]{report}用于我的论文。我的论文有三个部分,每个部分都有一个摘要。每当我添加摘要时,页码都会重置为 1。我想继续使用添加摘要之前的页码。

最小工作示例:

\documentclass[12pt, a4paper]{report}

\begin{document}
\title{title}
\maketitle
\tableofcontents

\chapter*{Introduction}
\addcontentsline{toc}{part}{Introduction}

 Introduccion

\part{Part 1}
\begin{abstract}
abstract
\end{abstract}

Part1

\part{part 2}
\begin{abstract}
abstract
\end{abstract}

Part2

\part{3}
\begin{abstract}
abstract
\end{abstract}


\end{document}

答案1

这取决于类的选项titlepage。默认设置是titlepage=true。你可以做两件事:

\documentclass[12pt, a4paper,notitlepage]{report}

或者重新定义摘要:

\makeatletter
\renewenvironment{abstract}{%
  \if@twocolumn
    \section*{\abstractname}%
  \else
    \small
    \begin{center}%
      {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
    \end{center}%
    \quotation
  \fi}
  {\if@twocolumn\else\endquotation\fi}
\makeatother

答案2

您可以修补titlepage环境。abstract使用titlepage(如果设置了类选项titlepage,它似乎是针对报告类的)并将titlepage页面计数器设置为 1(在\begin \end)。

\usepackage{etoolbox}
\makeatletter
\patchcmd{\titlepage}{\setcounter{page}\@ne}{}     {}{\PackageError{titlepage}{failed to patch \string\begin{titlepage} to not reset the page counter}{}}
\patchcmd{\endtitlepage}{\setcounter{page}\@ne}{}  {}{\PackageError{titlepage}{failed to patch \string\end{titlepage} to not reset the page counter}{}}
\makeatother

参见\show\abstract\show\titlepage

相关内容