Pergunta

De acordo com esta pergunta:

Redefining Comandos em um novo ambiente

Como se redefinir (ou definir usando \def) um macro que os parâmetros de usos? Eu continuo recebendo um erro illegal parameter definition in \foo. Desde que requerem delimitadores personalizados, eu não posso usar \newcommand ou \renewcommand.

A forma geral dos meus Looks código como este:

\newenvironment{foo}{% 
    ...spacing stuff and counter defs...
    \def\fooitem#1. #2\endfooitem{%
        ...stuff...
    }
    \def\endfooitem{endfoo}
}
{...after material (spacing)...}

Esta deve ser possível. Agora eu estou usando definições plain-tex (como já referi na pergunta acima), mas eu realmente gostaria de ser consistente com o sistema LaTeX.

Foi útil?

Solução

Você precisa dobrar os caracteres # para cada definição aninhada. Internamente, a \ newcommand ou a \ newenvironment está chamando \ def.

\newenvironment{foo}{% 
  ...
  \def\fooitem##1. ##2\endfooitem{%
    ...

Além disso, esta é a maneira de fazer o que você está tentando fazer; não existe um método puro-LaTeX para definir uma macro com argumentos delimitados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top