用罗马数字值定义

用罗马数字值定义

是否可以写一个带有计数器值的定义?

我有很多用罗马数字定义的东西:

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

相关内容