我有不同的计数器,我想增加它们。我不想单独增加它们,我想编写一个宏来根据输入为我执行此操作。我有以下代码:
\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}