Использовать параметры в качестве разделителей в \NewDocumentCommand

Использовать параметры в качестве разделителей в \NewDocumentCommand

Используя \NewDocumentCommand, можно указать аргумент с разделителями (например, r()для обязательного аргумента в скобках). Можно ли использовать другие аргументы в той же команде, что и эти разделители? Например, можно ли сделать что-то вроде этого или есть какие-то обходные пути?

\documentclass{article}

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

\begin{document}

\getbetween() (abc)

\end{document}

(Приведенный выше код выдает ошибки о том, что имеется «Недопустимый номер параметра в определении \__tl_map_1:w» и что имеется «Недопустимый тип аргумента '##' в команде '\getbetween'».)

решение1

Если вы этого хотите, вы можете сделать это в два шага:

\documentclass{article}

\NewDocumentCommand\getbetweenx{}{}

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

\begin{document}

\getbetween() (abc)

\end{document}

Связанный контент