![使用 \def 创建新计数](https://linux22.com/image/475815/%E4%BD%BF%E7%94%A8%20%5Cdef%20%E5%88%9B%E5%BB%BA%E6%96%B0%E8%AE%A1%E6%95%B0.png)
我有以下宏/命令:
\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}