根据输入增加带有名称的计数器

根据输入增加带有名称的计数器

我有不同的计数器,我想增加它们。我不想单独增加它们,我想编写一个宏来根据输入为我执行此操作。我有以下代码:

\documentclass[10pt,a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{tocloft}

\newcounter{countera}
\newcounter{counterb}
\newcommand{\toC}[1]{
    \stepcounter{%
        \expandafter\csname counter#1\endcsname%
        }
}
\begin{document}
\toC{a}
\end{document}

现在,当我想增加计数器时countera,我只想调用\toC{a}而不是\stepcounter{countera}。通过使用上面的代码,我得到了很多错误,例如! Missing \endcsname inserted.! Extra \endcsname.! LaTeX Error: No counter '\countera ' defined.该宏\toC{}稍后将被展开,因此如果可能的话,我更愿意保持其结构像这样。为什么我会得到这些错误?

答案1

你是这个意思吗?

\documentclass[10pt,a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{tocloft}

\newcounter{countera}
\newcounter{counterb}
\newcommand{\toC}[1]{%
  \stepcounter{%
    counter#1%
  }
}
\begin{document}
\toC{a}
\toC{b}

\thecountera

\thecounterb

\end{document}

相关内容