我有一个 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>
嵌套括号将使其失败,但您说您没有嵌套括号)。