Используя \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}