使用 perl 重新格式化 LaTeX 文档

使用 perl 重新格式化 LaTeX 文档

我有一个LaTeX文档,其中文本和方程的修改以红色完成,以便将它们与未修改的文本区分开来:

{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}

这种修饰可以是单个单词、短语、句子、段落或方程式。例如:

 \pi \rho \hat{\bf x} \int\omega_{\color{red} \theta}

或者

{\color{red} This work presents the ``numerical study'' of convection in vertical annuli;}

我怎样才能写一个可以替换to 的perl单行代码?我的意思是删除整个文档中的右花括号。{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}MODIFIED TEXT OR EQUATION GOES HERE.{\color{red}}LaTeX

答案1

perl -p -i -e 's/{\\color{red}(.*)}/\1/g' filename

标志的解释(来自https://stackoverflow.com/a/6302045/330830):

-p:在命令周围放置一个打印循环,以便它作用于标准输入的每一行。主要用于 Perl 以便在功能和简单性方面击败 awk :-)

-e:允许您将程序作为参数而不是在文件中提供。您不想为每个小 Perl 单行代码创建一个脚本文件。

-i:就地修改输入文件(备份原始文件)。无需{复制、删除原始、重命名}过程即可轻松修改文件。

答案2

尝试这个:

$ echo "{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}" | \
perl -pe 's/\{\\color\{red\} (.*?)\}/$1/g'
MODIFIED TEXT OR EQUATION GOES HERE.

相关内容