Utilice parámetros como delimitadores en \NewDocumentCommand

Utilice parámetros como delimitadores en \NewDocumentCommand

Usando \NewDocumentCommand, es posible especificar un argumento delimitado (por ejemplo, r()para un argumento requerido entre paréntesis). ¿Es posible utilizar otros argumentos en el mismo comando que esos delimitadores? Por ejemplo, ¿es posible hacer algo como esto o existen soluciones alternativas?

\documentclass{article}

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

\begin{document}

\getbetween() (abc)

\end{document}

(El código anterior produce los errores de que hay un "Número de parámetro no válido en la definición de \__tl_map_1:w." y que hay un "Tipo de argumento no válido '##' en el comando '\getbetween'".)

Respuesta1

Si quieres esto, puedes hacerlo en dos pasos:

\documentclass{article}

\NewDocumentCommand\getbetweenx{}{}

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

\begin{document}

\getbetween() (abc)

\end{document}

información relacionada