章节数没有增加

章节数没有增加

考虑以下 MWE:

\documentclass[12pt,twoside,letterpaper]{report}

\usepackage{etoolbox}

\newcounter{totchapters}

\providecommand\totchap{}

\makeatletter
\AtEndDocument{%
  \addtocounter{totchapters}{\value{chapter}}%
  \immediate\write\@mainaux{%
    \string\gdef\string\totchap{\number\value{totchapters}}%
  }%
}
\makeatother

\pretocmd{\chapter}{\addtocounter{totchapters}{\value{chapter}}\setcounter{chapter}{0}}{}{}

\begin{document}
\totchap    \chapter{one}
\chapter{two}
\chapter{three}
\chapter{four}
\end{document}

我正在尝试获取文档中章节总数。我的灵感来自https://tex.stackexchange.com/a/55583/10898。但由于某种原因,章节计数器受到影响,不再增加。为什么会出现这种情况?如何解决?请注意,我想使用此总数进行计算。

答案1

您可以更改代码以使用\stepcounter{totchapters}而不是

\addtocounter{totchapters}{\value{chapter}}

也许我误解了原意,但这是一个完整的 MWE,可以按预期工作

% arara: pdflatex
\documentclass{report}

\usepackage{etoolbox}

\newcounter{totchapters}

\providecommand\totchap{}

\makeatletter
\AtEndDocument{%
  %\stepcounter{totchapters}%
  \immediate\write\@mainaux{%
    \string\gdef\string\totchap{\number\value{totchapters}}%
  }%
}
\makeatother

\pretocmd{\chapter}{\stepcounter{totchapters}}{}{}

\begin{document}
\totchap\
\chapter{one}
\chapter{two}
\chapter{three}
\chapter{four}
\end{document}

答案2

无需任何重新定义即可totcount完成此操作。

\documentclass[12pt,twoside,letterpaper]{report}

\usepackage{totcount}
\regtotcounter{chapter}

\begin{document}
This document has \total{chapter} chapters.

\chapter{one}
\chapter{two}
\chapter{three}
\chapter{four}
\end{document}

第一页将显示

本文件共有 4 章。

相关内容