我创建了一个名为 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}