是否有其他方法可以\xpatchcmd
从xpatch
支持占位符的包中找到,如以下虚拟示例所示:
\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>}
示例中的表示。