在命令内保存计数器值吗?

在命令内保存计数器值吗?

我正在尝试根据计数器的值自动生成命令:

\documentclass{article}

\newcounter{count}

\newcommand\generator[1]%
{%
  \stepcounter{count}%
  \expandafter\def\csname#1\endcsname{\thecount}%
}

\generator{one}
\generator{two}

\begin{document}
  \one
  \two
\end{document}

预期输出为“12”而不是“22”。

答案1

这是一个扩展问题;\thecount需要先进行扩展:

\documentclass{article}

\newcounter{count}

\newcommand\generator[1]%
{%
  \stepcounter{count}%
  \expandafter\edef\csname#1\endcsname{\thecount}%
}

\generator{one}
\generator{two}

\begin{document}
  \one
  \two
\end{document}

在此处输入图片描述

这和我遇到的问题类似,并且激发了计数器的问题;我最初基本上使用埃格尔的方法来自他的回答那里,但是埃格尔他自己也指出在评论中在这种情况下使用就足够了\edef;我已相应地更新了我的答案。

答案2

如果只需要值而不是其表示,请使用:

\newcommand\generator[1]{%
  \stepcounter{count}%
  \expandafter\edef\csname#1\endcsname{\arabic{count}}}

相关内容