我正在尝试根据计数器的值自动生成命令:
\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}}}