自动 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...) 更改通常意味着删除/插入或移动一行或多行,可以使用面向行的工具检查诸如“论文”或“大象”或“案例”之类的错误(甚至可以使用简单的正则表达式替换自动修复)。今天我把它藏在 git 中,这种格式还有一个额外的好处,即添加/删除单词等不会重新排列段落,因此版本差异确实突出了真正的变化。

是的,以这种方式重新格式化是一项必须手动完成的苦差事......但它需要一次(并在以后继续进行)。

相关内容