如何在保留参数的同时删除所有出现的命令?

如何在保留参数的同时删除所有出现的命令?

我有一个 tex 文件,其中多次出现了我自己定义的命令\add{...}。此命令将文本字符串作为参数,并为其赋予不同的颜色(例如 \textcolor{red}{#1})。现在我需要删除所有这些命令,同时保持参数本身完好无损。我可以想出一些迂回的方法来做到这一点;只需删除所有出现的命令\add,让匹配的命令{}命令在文档中保持浮动。或者甚至可以更改\add命令的定义,使其将参数的颜色设置为文档的默认颜色。

我想知道的是,如何\add从我的文档中完全删除命令,包括括号。我一直很小心,只在文本字符串上使用命令,从不进行任何数学或引用,这样各\add{...}部分内就不会有嵌套的括号。我认为这应该意味着某种类似正则表达式的技术可以解决我的问题?

(需要说明的是,我知道这种\add标记修订的方式远不如使用 latexdiff,但我愿意与我的教授争论的只有这么多。)

答案1

如果您可以运行perl,则可以使用以下命令获取您想要的内容:

perl -pi.bak -e 's/\\add{(.*?)}/\1/g' <filename>

这将运行perl,将文件备份为<filename>.bak,并用替换每个出现的\\add{<stuff>}<stuff>嵌套括号将使其失败,但您说您没有嵌套括号)。

相关内容