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}