假设我有一个包含以下内容的 TeX 文件:
A \foo[B]{C \bar{D \baz[E]{F}}} G \foo{H} I
我正在寻找一种工具,可以自动删除所有出现的
\foo
命令,用 'y' 替换 \foo[x]{y}
,即使 'y' 包含换行符和/或许多嵌套括号。上面的文字将变成:
A C \bar{D \baz[E]{F}} G H I
我有什么选择?命令行会很好,但我会考虑任何其他选择。
这可以使用 unix(或 Linux)中的 sed 命令来完成。如果您使用的是 Windows,cygwin 提供了一个运行良好的 unix 模拟。
sed -i 's/\\foo\[[^\]]*{//g' <your tex file>
会做到的。这使用了正则表达式。第二个单引号之前的 g 使其删除所有 foo 命令,即使在 tex 代码的一行中多次出现。