我有以下内容:
\newcommand{\makeWord}[1]{%
\newcommand{\#1}{\textrm{#1}}}
\makeWord{AdditiveGroup}
\newcommand{\AdditiveGroup}{\textrm{AdditiveGroup}}
不幸的是,我没有正确定义 makeWord 宏。我该如何解决这个问题?
答案1
\newcommand{\makeWord}[1]{%
\newcommand{\#1}{\textrm{#1}}}
\#1
是两个标记\#
(将排版为#
),1
因此作为 的第一个参数的语法错误\newcommand
。
尝试
\newcommand{\makeWord}[1]{%
\expandafter\newcommand\csname#1\endcsname{\textrm{#1}}}
注意,如果用于数学,这将生成一个 mathord 标记。如果你想要生成一个像这样的运算符,则\log
需要
\newcommand{\makeWord}[1]{%
\expandafter\newcommand\csname#1\endcsname{\mathop{\mathrm{#1}}}}
或使用amsopn
\DeclareMathOperator
命令。