Def 在更新环境中

Def 在更新环境中

我重新定义了使用“局部变量”的自定义环境:

\newenvironment{asdf}[3]{
  \def\argi{#1}
  \def\argii{#2}
  \def\argiii{#3}
  %....
}
{ }

但当我这样做时:

\renewenvironment{asdf}[3]{
  \def\argi{#1}
  \def\argii{#2}
  \def\argiii{#3}
  %....
}
{ }

在本文的后面,LaTeX 声称

! Illegal parameter number in definition of \test

而且我也不知道它\test来自哪里。

答案1

对我有用:

\documentclass{article}
\begin{document}
I redefine a custom environment of mine that uses "local variables":
\newenvironment{asdf}[3]{
  \def\argi{#1}
  \def\argii{#2}
  \def\argiii{#3}
  %....
}
{ }
But when I do:
\renewenvironment{asdf}[3]{
  \def\argi{#1}
  \def\argii{#2}
  \def\argiii{#3}
  %....
}
{ }
\end{document}

我怀疑您还未告诉我们更多内容,例如,您还包含\renewenvironment其他内容。请不要忘记,如果您还包含\renewenvironment其他宏,则需要将#符号加倍:

\def\reset{%
  \renewenvironment{asdf}[3]{
    \def\argi{##1}
    \def\argii{##2}
    \def\argiii{##3}
  }
  { }
}

相关内容