Use parâmetros como delimitadores em \NewDocumentCommand

Use parâmetros como delimitadores em \NewDocumentCommand

Usando \NewDocumentCommand, é possível especificar um argumento delimitado (por exemplo, r()para um argumento obrigatório entre parênteses). É possível usar outros argumentos no mesmo comando que esses delimitadores? Por exemplo, é possível fazer algo assim ou existem soluções alternativas?

\documentclass{article}

\NewDocumentCommand\getbetween { m m r#1#2 } { #3 }

\begin{document}

\getbetween() (abc)

\end{document}

(O código acima produz os erros de que existe um "Número de parâmetro ilegal na definição de \__tl_map_1:w." e que existe um "Tipo de argumento inválido '##' no comando '\getbetween'.")

Responder1

Se você quiser isso, pode fazer isso em duas etapas:

\documentclass{article}

\NewDocumentCommand\getbetweenx{}{}

\NewDocumentCommand\getbetween { m m}{%
 \RenewDocumentCommand\getbetweenx{r#1#2 } {arg was: ``##1''}%
 \getbetweenx}

\begin{document}

\getbetween() (abc)

\end{document}

informação relacionada