Переформатирование документа LaTeX с помощью perl

Переформатирование документа LaTeX с помощью perl

У меня есть 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;}

Как мне написать 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: Изменяет ваш входной файл на месте (создавая резервную копию оригинала). Удобно для изменения файлов без процесса {copy, delete-original, rename}.

решение2

Попробуй это:

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

Связанный контент