
Depois de explorar o expl3, atualizei parte do meu código para ele e me deparei com um problema interessante que não estava prevendo.
Recebo um erro estranho que acho que é ao tentar armazenar vários parágrafos em uma sequência. Não encontrei nada no manual da interface3, alguém sabe como contornar isso?
Coloquei meu método antigo e meu novo método de trilha para armazenamento de variáveis abaixo para quem estiver interessado.
Aqui está meu código antigo.
\newcommand{\@supernote}{}
\newcommand{\supernote}[1]{\renewcommand\@supernote{#1}}
E aqui está meu novo código.
\seq_new:N \itemsupernote
\NewDocumentCommand{\supernote}{sm} {
\seq_put_right:Nn \itemsupernote {#2}
}
Chamar a função funciona da mesma maneira para ambos
\supernote{Here is my example
and here is the other half}
Aqui está o meu erro para o novo método, caso ajude.
runaway argument? {here is my example Paragraph ended before \supernote was omplete.
<to be read again> \par l.109
Responder1
O problema não está na camada de código (que é 'longa'), mas na configuração da sua interface. Como o caso mais comum para comandos de documento é que eles devem receber apenas pequenos trechos de texto, xparse
cria comandos 'curtos' como padrão. Para tornar um argumento 'longo' você precisa marcá-lo como tal com um+
\NewDocumentCommand \supernote { s +m }
{
\seq_put_right:Nn \itemsupernote {#2}
}
Observe que xparse
ele lida com argumentos longos/curtos argumento por argumento, em vez de alternar todos eles de uma só vez.