![在命令内保存计数器值吗?](https://linux22.com/image/285659/%E5%9C%A8%E5%91%BD%E4%BB%A4%E5%86%85%E4%BF%9D%E5%AD%98%E8%AE%A1%E6%95%B0%E5%99%A8%E5%80%BC%E5%90%97%EF%BC%9F.png)
我正在尝试根据计数器的值自动生成命令:
\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}}}