自動 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. これを自分のパスに追加しました~/.bashrc:export 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ソースファイルを各行にフレーズを1つずつ含め、句読点で終わらせるようにフォーマットします。長さ以前、論文用に troff (!) を書いていたとき、vi を使用していました...) 変更は、行の削除/挿入または行の移動を意味することが多く、"an thesis" や "a elephant" や "the the case" などの間違いのチェックは、行指向のツールで行うことができます (単純な正規表現の置換で自動的に修正することもできます)。今日、私はそれを git に保存します。この形式には、たとえば単語の追加/削除によって段落がリフローされないという追加の利点があり、バージョンの違いによって実際の変更が強調表示されます。

はい、そのように再フォーマットするのは手作業で行う必要がある面倒な作業です...しかし、それは一度だけ必要です (そして後で続けます)。

関連情報