是否可以写一个带有计数器值的定义?
我有很多用罗马数字定义的东西:
\def\abcI{} ..
\def\abcII{} ..
\def\abcIII{} ..
但这是不可能的:
\newcounter{myabc}
\addtocounter{myabc}{1}
\abc\Roman{myabc}
\stepcounter{myabc}
还有其他方法可以做到这一点吗?
答案1
你可以这样做:
\newcommand*\abcRoman[1]{\csname abc\Roman{#1}\endcsname}
...
\abcRoman{myabc}
\stepcounter{myabc}
嗯,我怀疑这可能不是你真正需要的,但这取决于知道你想用你的代码做什么。
正如 egreg 所建议的,如果您可以在宏中使用小写罗马数字,则可以更安全:
\newcommand\abci{...}
\newcommand\abcii{...}
\newcommand\abciii{...}
\newcommand*\abcroman[1]{\csname abc\romannumeral\value{#1}\endcsname}
...
\newcounter{myabc}
\setcounter{myabc}{1}
\abcroman{myabc}
\stepcounter{myabc}