Es gibt Tools wieClang-Formatdie beispielsweise eine „hässliche“ (unformatierte) C++-Quellcodedatei nehmen und bestimmte Einrückungen und andere Regeln anwenden, um den Code lesbarer zu machen.
Gibt es ein solches Tool, das LaTeX-Quellcode automatisch formatieren kann? Ich möchte meine LaTeX-Dateien irgendwie sauber und unter den Mitwirkenden konsistent halten.
Antwort1
Das WerkzeugLatexeindringendas wurde von @muzimuzhi-Z in einem Kommentar vorgeschlagen und hat bei mir funktioniert. Dieses Perl-Skript scheint sehr leistungsfähig zu sein, aber der Einstieg ist einfach:
Installation
Ich hatte bereits eine ältere Version (wahrscheinlich über texlive-full
), aber da dieses Projekt ziemlich aktiv weiterentwickelt wird, habe ich mich entschieden, die neueste Version zu erwerben:
- Die Quelle habe ich vonsein offizielles Repository GitHub
- Ich habe alle fehlenden Abhängigkeiten installiert mit
sudo ./helper-scripts/latexindent-module-installer.pl
- Ich habe es zu meinem Pfad in meinem hinzugefügt
~/.bashrc
:export PATH="/path/to/latexindent.pl:$PATH"
Verwendung
Standardoptionen, Überschreiben der Datei ( -w
), ohne eine Kopie auf das Terminal zu schreiben ( -s
):
latexindent.pl -w -s myfile.tex
Dadurch wird eine Sicherungskopie der Originaldatei .bak0
(oder .bak1
usw.) erstellt. Wenn Sie dies in einem Repository haben, möchten Sie es möglicherweise *.bak?
zu Ihrem hinzufügen .gitignore
.
Sie können auch Ihren eigenen Formatierungsstil in einer yml
Datei angeben, wie folgt: latexindent.pl -l mysettings.yml myfile.tex
.
Antwort2
emacs (Überraschung!) kommt mit LaTeX-Unterstützung out-of-the-box, viel,vielAusgefallenere Unterstützung bietet AUC-TeX (und RefTeX für Querverweise und das Zitieren von Bibliographien). Alle Standardpakete, siehe Paketindex.
In jedem Fall formatiere ich meine LaTeX-Quelldateien so, dass jede Zeile eine Phrase enthält, mit Satzzeichen endet, ... Auf diese Weise (empfahl einlangals ich damals troff (!) für meine Abschlussarbeit schrieb und dabei vi verwendete...) bedeuteten Änderungen oft das Löschen/Einfügen oder Verschieben einer oder mehrerer Zeilen. Das Überprüfen auf Fehler wie „eine These“ oder „ein Elefant“ oder „der Fall“ kann mit zeilenorientierten Tools erfolgen (das Beheben erfolgt sogar automatisch mit einem einfachen Regex-Ersetzen). Heute speichere ich es in Git. Das Format hat den zusätzlichen Vorteil, dass das Hinzufügen/Löschen z. B. eines Wortes den Absatz nicht neu umbricht, sodass Versionsunterschiede echte Änderungen hervorheben.
Ja, die Neuformatierung auf diese Weise ist eine lästige Pflicht, die manuell durchgeführt werden muss … aber sie ist einmal erforderlich (und muss auch später wiederholt werden).