在 \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}

相关内容