我有以下宏/命令:
\def\definenewcounter#1{\newcount \csname#1\endcsname}
它应该创建一个新的计数,其名称是参数 1 的名称,但它会抛出错误。如何解决这个问题?
以下是更完整的示例:
\documentclass[]{article}
\def\definenewcounter#1{\newcount \csname#1\endcsname}
\begin{document}
\definenewcounter{countertest}
\end{document}
答案1
显示的代码定义\csname
为计数寄存器,然后会产生多个错误。
你可以使用
\documentclass[]{article}
\def\definenewcounter#1{\expandafter\newcount \csname#1\endcsname}
\begin{document}
\definenewcounter{countertest}
\end{document}
但这对于 LaTeX 来说似乎是一个奇怪的构造,因为它已经提供了
\documentclass[]{article}
\begin{document}
\newcounter{countertest}
\end{document}