在逐项列举环境后,个人计数器意外重置

在逐项列举环境后,个人计数器意外重置

我创建了一个名为 foo 的计数器来累计我想从老板那里得到的钱。当使用 itemize 环境时,计数器会意外重置。有人知道为什么或如何解决问题吗(请告诉我我做错了什么 ;-) )?我添加了注释行来澄清我想要做的事情。每次我添加一笔钱时,都会创建总和。

\documentclass{scrbook}
%\usepackage{eurosym}
%\newcommand{\eu}[1]{\advance\foo by #1 \EUR{#1}}
\begin{document}
Create Counter: \newcount\foo

Give counter: \the\foo

Increase by three: \advance\foo by 3

Give result: \the\foo

\begin{itemize}
    \item Increase by seven: \advance\foo by 7
    %\item \eu{7}
    \item Give result: \the\foo
\end{itemize}

Give result: \the\foo
\end{document}  

PDF 如下所示:

创建计数器:

给计数器:0

增加三:

给出结果:3

• 增加 7 个:

• 给出结果:10

给出结果:3

我在 Win7 64 机器上使用带有 Miktex 2.9 的 texniccenter。

答案1

这些是 TeX-core 计数器,可在本地工作。您必须使用\global\advance。但是,我建议使用 LaTeX 计数器,默认情况下它们是全局的:

\documentclass{scrbook}

\begin{document}
Create Counter: \newcounter{foo}

Give counter: \arabic{foo}

Increase by three: \addtocounter{foo}{3}

Give result: \arabic{foo}

\begin{itemize}
    \item Increase by seven: \addtocounter{foo}{3}
    \item Give result: \arabic{foo}
\end{itemize}

Give result: \arabic{foo}
\end{document} 

相关内容