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;}

で置き換えることができる1行のコードをどのように記述しますか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は1行のスクリプトファイルを作成したくありません。

-i:入力ファイルを所定の位置に変更します(元のファイルのバックアップ)。 {コピー、元の削除、名前変更}プロセスなしでファイルを簡単に変更できます。

答え2

この試み:

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

関連情報