Verwenden Sie Parameter als Trennzeichen in \NewDocumentCommand

Verwenden Sie Parameter als Trennzeichen in \NewDocumentCommand

Mit \NewDocumentCommandist es möglich, ein durch Trennzeichen getrenntes Argument anzugeben (z. B. r()für ein erforderliches Argument in Klammern). Ist es möglich, im selben Befehl andere Argumente als diese Trennzeichen zu verwenden? Ist es beispielsweise möglich, so etwas zu tun, oder gibt es Workarounds?

\documentclass{article}

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

\begin{document}

\getbetween() (abc)

\end{document}

(Der obige Code erzeugt die Fehler „Ungültige Parameternummer in der Definition von \__tl_map_1:w.“ und „Ungültiger Argumenttyp ‚##‘ im Befehl ‚\getbetween‘.“)

Antwort1

Wenn Sie dies möchten, können Sie es in zwei Schritten tun:

\documentclass{article}

\NewDocumentCommand\getbetweenx{}{}

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

\begin{document}

\getbetween() (abc)

\end{document}

verwandte Informationen