通过文档自动运行计数器

通过文档自动运行计数器

以下最小示例说明了我的情况:

\documentclass{article}
\usepackage{calculator}
\newcommand{\pts}{0}

\begin{document}

\ADD{\pts}{3}{\pts}\pts

\ADD{\pts}{3}{\pts}\pts

\ADD{\pts}{3}{\pts}\pts

\begin{enumerate}
    \item \ADD{\pts}{3}{\pts}\pts
    \item \ADD{\pts}{3}{\pts}\pts
\end{enumerate}

\pts

\end{document}

理想情况下,我希望计数器\pts在应用枚举环境(或实际上任何环境)后增加。包文档确实指出:

但是这些命令充当声明,因此其范围在环境和组中是本地的。

有办法解决这个问题吗?有没有办法让计数器在文档中运行,以便添加(或根据需要进行其他算术运算,计算器包确实可以很好地完成这些操作)。

答案1

您需要\pts在离开enumerate环境之前进行全局设置。为此,请使用以下\GLOBALCOPY命令\GLOBALCOPY{\pts}{\pts}::

\documentclass{article}
\usepackage{calculator}
\newcommand{\pts}{0}

\begin{document}

\ADD{\pts}{3}{\pts}\pts

\ADD{\pts}{3}{\pts}\pts

\ADD{\pts}{3}{\pts}\pts

\begin{enumerate}
   \item \ADD{\pts}{3}{\pts}\pts
   \item \ADD{\pts}{3}{\pts}\pts
   \GLOBALCOPY{\pts}{\pts}             %%%% Globalize \pts !!!
\end{enumerate}

\pts

\end{document}

答案2

您可以使用计数器而不是命令:

\documentclass{article}
\newcounter{pts}

\begin{document}

\addtocounter{pts}{3}\thepts

\addtocounter{pts}{3}\thepts

\addtocounter{pts}{3}\thepts

\begin{enumerate}
    \item \addtocounter{pts}{3}\thepts
    \item \addtocounter{pts}{3}\thepts
\end{enumerate}

\thepts

\end{document}

相关内容