带占位符的 xpatchcmd

带占位符的 xpatchcmd

是否有其他方法可以\xpatchcmdxpatch支持占位符的包中找到,如以下虚拟示例所示:

\newcommand{\mycommand}{this is important \foo this is not \bar but this is}
\xpatchcmd{\mycommand}{\foo .* \bar}{}{}{}

目标是实现与

\newcommand{\mycommand}{this is important but this is}

答案1

不,这是不可能的xpatch,但使用(实验性)包可以regexpatch

\documentclass{article}
\usepackage{regexpatch}

\newcommand{\mycommand}{this is important \foo this is not \bar but this is}

\regexpatchcmd{\mycommand}{\c{foo} .* \c{bar}}{}{}{}

\begin{document}

\mycommand

\texttt{\meaning\mycommand}

\end{document}

请注意,搜索正则表达式中的控制序列必须用\c{<cs-name>}示例中的表示。

在此处输入图片描述

相关内容