Copie o conteúdo de um ambiente

Copie o conteúdo de um ambiente

Gostaria de copiar o conteúdo de um ambiente para poder usá-lo em outro lugar. Meu objetivo principal é imprimi-lo dentro de uma nota de dica.

Minha ideia era usar o environpacote:

\NewEnviron{foo}
{
  \xdef\bidule{\BODY}
  %more stuff
}

Mas quando uso, \bidulerecebo um erro:

 Undefined control sequence ....
 leading text: \end{foo}
 Undefined control sequence \endgroup.
 leading text: \end{foo}
 Missing { inserted.
 leading text:   \bidule
main.tex:19: File ended while scanning text of \errhelp.

Se meu entendimento estiver correto, não posso usar \defporque \BODYnão estará definido quando irei usar \foo. Existe uma maneira de atingir meu objetivo?

Responder1

Você não quer fazer uma expansão completa \BODY, mas apenas um nível:

\expandafter\gdef\expandafter\bidule\expandafter{\BODY}

ou

\xdef\bidule{\unexpanded\expandafter{\BODY}}

informação relacionada