使用 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.

相關內容