[Tex/LaTex] Def in renewenvironment

environments

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}
  %....
}
{ }

later on in the document, LaTeX claims

! Illegal parameter number in definition of \test

And also, I have no idea where \test comes from.

Best Answer

Works for me:

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

I suspect here's more you're not telling us, such as that you have the \renewenvironment inside something else. Don't forget that if you have \renewenvironment inside another macro, you need to double the # signs:

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