计算定理总数

计算定理总数

我有:

\usepackage{amsthm}
\newtheorem{problem}{Problem}
....
\begin{problem}...\end{problem}...
...
\begin{problem}...\end{problem}...

在文档的第一页中,我如何才能知道文档中使用的问题环境的数量?也就是说,我想知道最后一个problem计数器的值。

答案1

以下代码使用该.aux文件来实现这一点。它提供了一个\total@problems设置\totalproblems为其参数的宏。并在文档末尾调用此宏来存储 counter 的值problem。您需要运行两次,0第一次运行时会存储该值。

\documentclass{article}

\usepackage{amsthm}
\newtheorem{problem}{Problem}

% STARTS HERE
\makeatletter
\AtEndDocument{\write\@auxout{\protect\total@problems{\arabic{problem}}}}
\def\total@problems#1{\global\def\totalproblems{#1}}
\total@problems{0}
\makeatother
% ENDS HERE

\begin{document}

Number of problems: \totalproblems

....
\begin{problem}...\end{problem}...
...
\begin{problem}...\end{problem}

\end{document}

答案2

该包totcount提供了一个非常有效的解决方案。只需将计数器注册到“总计数器”列表中即可。

\documentclass{article}

\usepackage{totcount}

\newtheorem{problem}{Problem}
\regtotcounter{problem} % register the counter for getting the total

\begin{document}

Number of problems: \total{problem}

\begin{problem}
A
\end{problem}

\begin{problem}
B
\end{problem}

\end{document}

使用\total{problem}将打印所需的数字;如果由于总数的变化而需要另一次运行,LaTeX 将发出警告。

相关内容