根据这个问题:
Redefining Commands in a New Environment
如何重新定义(或使用\def
定义)使用参数的宏?我一直收到illegal parameter definition in \foo
错误。由于我需要自定义分隔符,因此无法使用\newcommand
或\renewcommand
。
我的代码的一般形式如下所示:
\newenvironment{foo}{%
...spacing stuff and counter defs...
\def\fooitem#1. #2\endfooitem{%
...stuff...
}
\def\endfooitem{endfoo}
}
{...after material (spacing)...}
这一定是可能的。现在我正在使用plain-TeX定义(正如我在上面的问题中提到的那样),但我真的希望与LaTeX系统保持一致。
答案 0 :(得分:1)
您需要为每个嵌套定义加倍#字符。在内部,\ newcommand或\ newenvironment正在调用\ def。
\newenvironment{foo}{%
...
\def\fooitem##1. ##2\endfooitem{%
...
除此之外,这是做你想做的事情的方法;没有纯LaTeX方法来定义带有分隔参数的宏。