![在 CONTEXT 中,如何获取章节总数?](https://linux22.com/image/333434/%E5%9C%A8%20CONTEXT%20%E4%B8%AD%EF%BC%8C%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E7%AB%A0%E8%8A%82%E6%80%BB%E6%95%B0%EF%BC%9F.png)
对于总数量页面,可用于\lastcounter[userpage]
获取文档中的总页数。实际上,它给出的是最后一页的页数(这更有趣)。类似的命令适用于获取文档中的公式、图表等的总数。
我怎样才能获得章节? 在 Lua 中检查structures.counters
不会显示与章节编号相关的计数器。
以下是我的使用案例:部分和小节我已经安排好后者的编号,使其在每个新部分不重置。我希望我的文档中的子部分总数为:以下示例中的“5”。
第 1 部分 第1节 第2节 第 2 部分 第3节 第四节 第5节
该命令\somenamedheadnumber{subsection}{last}
提供了当前活动结构(在我的情况下是当前部分)中的最后一个小节编号,但我找不到获取整个文档的最后一个值的方法。
在 TeX/LaTeX 中,我会添加一个钩子来\subsection
将计数器值记录到文件中,然后在文档开头读取该文件来计算最终值。(如果\AtEndDocument
在 LaTeX 中使用,这会简化一些。)我确信在 CONTEXT 中有一个简单的方法可以做到这一点,但我找不到它。
答案1
您可以使用命令\determinelistcharacteristics然后\structurelistsize
访问该值。例如:
\starttext
\determinelistcharacteristics
[chapter]
[criterium=text]
number of chapters: \structurelistsize
\startsectionlevel [title=Foo]
\startsectionlevel [title=title 1] section 1 \stopsectionlevel
\startsectionlevel [title=title 2] section 2 \stopsectionlevel
\stopsectionlevel
\startsectionlevel [title=Bar]
\startsectionlevel [title=title 3] section 3 \stopsectionlevel
\startsectionlevel [title=title 4] section 4 \stopsectionlevel
\stopsectionlevel
\stoptext
将 的第一个参数替换\determinelistcharacteristics
为section
或subsection
任何其他部分级别,以获取其他部分级别的计数器。
criterium=text
如果命令位于节之后而非节之前,则需要。\determinelistcharacteristics
如果不设置标准, 的值\structurelistsize
将是错误的。