如何获取每章的总页数(在章节标题处)

如何获取每章的总页数(在章节标题处)

我正在写一篇论文,我想跟踪每章的目标页数。目前我有一个粗略的(非功能性)宏,我把它放在章节标题下面。

如何获取某一章节的页数?

梅威瑟:

\documentclass{memoir}

% The magic counter would go where ??? is
\newcommand\pagesexpected[1]{??? of #1 pages written}

\begin{document}
\chapter{Foo bar}
\pagesexpected{3}

\end{document}

示例 MWE

(我个人是 LuaLaTeX 的忠实粉丝,因此绝对鼓励使用 Lua,但任何帮助都会受到赞赏/可以稍后移植到 Lua。)

答案1

计数器page是一个非常不可靠的朋友。它只能粗略地跟踪,xcntperchap它有一个\RegisterTrackCounter宏定义page要跟踪的内容chapter(如指定),即存储每章的页数。

请注意,基本上除 之外的任何计数器都可以与page 很好地配合使用。xcntperchapxassoccnt

该宏\ObtainTrackedValue{chapter}{page}将检索当前章节的页数,但如果有空白页,它可能会失败,就像在许多情况下一样\cleardoublepage

这需要最新的xassoccntv1.4 和xcntperchapv0.4 软件包。(和 L3 内核软件包的最新更新xparse需要对这两个软件包进行少量代码更改。)

以下是获取这两个软件包的旧版本的链接: https://www.dropbox.com/sh/s6apfkrga0qk92e/AAA2Wbq9uVSkZ19M4M8CC4Via?dl=0

但出于兼容性原因,我不建议恢复到v1.1更早的版本xassoccntv0.2(或更早的)版本。xcntperchap

编辑根据 OP v1.3(xassoccnt)和 v0.3(xcntperchap)与旧版本xparse(2017/04/01 之前)兼容。

\documentclass{memoir}
\usepackage{xcntperchap}% Loads xassoccnt as well!

\RegisterTrackCounter{chapter}{page}
\newcommand\pagesexpected[1]{\ObtainTrackedValueExp{chapter}{page} of #1 pages written}

\usepackage{blindtext}

\begin{document}
\chapter{Foo bar}
\pagesexpected{5}

\blindtext[20]

\chapter{Foo bar stuff}
\pagesexpected{5}

\blindtext[15]


\end{document}

编辑:页面计数器需要特殊处理,我应该在将来的版本中解决这个问题xassoccntxcntperchap

相关内容