自動 LaTeX 程式碼格式化(類似 clang-format)

自動 LaTeX 程式碼格式化(類似 clang-format)

有一些工具,例如clang 格式例如,採用「醜陋」(未格式化)的 C++ 原始碼檔案並應用特定的縮排和其他規則以使程式碼更具可讀性。

有沒有這樣一個可以自動格式化LaTeX原始碼的工具?我想以某種方式保持我的 LaTeX 文件在貢獻者之間保持乾淨和一致。

答案1

工具晚點這是 @muzimuzhi-Z 在對我有用的評論中建議的。這個 Perl 腳本看起來很強大,但啟動很簡單:

安裝

我已經有了一個舊版本(可能會通過texlive-full),但由於這個專案正在積極開發,我決定獲取最新版本:

  1. 我得到了來源其官方儲存庫 GitHub
  2. 我安裝了任何缺少的依賴項sudo ./helper-scripts/latexindent-module-installer.pl
  3. 我將其添加到我的路徑中~/.bashrcexport PATH="/path/to/latexindent.pl:$PATH"

用法

預設選項,覆蓋檔案 ( -w),而不將副本寫入終端機 ( -s):

latexindent.pl -w -s myfile.tex

.bak0這將保留原始文件(或等)的備份.bak1。如果您的儲存庫中有此內容,您可能需要將其新增*.bak?至您的.gitignore.

您也可以在文件中指定自己的格式樣式yml,如下所示:latexindent.pl -l mysettings.yml myfile.tex.

答案2

emacs(驚訝!)提供了開箱即用的 LaTeX 支持,很多,很多更高級的支援提供了 AUC-TeX(以及用於交叉引用和引用書目的 RefTeX)。所有標準封裝,請查看封裝索引。

無論如何,我將 LaTeX 原始檔格式化為每行包含一個短語,以標點符號結尾,...這樣(建議長的當我為我的論文寫 troff (!) 時,使用 vi...) 更改通常意味著刪除/插入或移動一行或多行,檢查諸如“論文”或“大象”或“the該案例”可以使用面向行的工具來完成(甚至可以透過簡單的正規表示式替換來自動修復)。今天我將它儲存在 git 中,該格式還有一個額外的好處,即添加/刪除例如單字不會重排該段落,因此版本差異確實突出了真正的更改。

是的,以這種方式重新格式化是一件必須手動完成的苦差事……但只需要一次(並在以後繼續)。

相關內容