\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

これが必要な場合は、次の 2 つの手順で実行できます。

\documentclass{article}

\NewDocumentCommand\getbetweenx{}{}

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

\begin{document}

\getbetween() (abc)

\end{document}

関連情報