使用 \def 创建新计数

使用 \def 创建新计数

我有以下宏/命令:

\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}

相关内容