以下最小示例说明了我的情况:
\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}