4 releases
new 0.2.2 | Jun 15, 2024 |
---|---|
0.2.1 | Jun 7, 2024 |
0.2.0 | May 25, 2024 |
0.1.0 | Apr 27, 2024 |
#93 in Value formatting
344 downloads per month
32KB
928 lines
tex-fmt
An extremely fast LaTeX formatter written in Rust.
Input | Output |
|
|
- ⚡ Extremely fast run-time performance
- 🔧 No configuration necessary
- 📟 Command-line interface
- 📜 Handles LaTeX file types
.tex
,.bib
,.cls
, and.sty
- 🦀 Written entirely in safe Rust
Installation
Cargo
# install stable release
cargo install tex-fmt
# install from github
cargo install --git "https://github.com/wgunderwood/tex-fmt"
Nix
nix build "github:wgunderwood/tex-fmt"
Performance
When formatting all of the test cases, tex-fmt is hundreds of times faster than latexindent.
Files | Lines | Size | tex-fmt | latexindent | latexindent -m |
---|---|---|---|---|---|
47 | 93k | 3.5M | 0.186s | 96.0s [x516] | 124.3s [x667] |
Limitations
- Semantic parsing of LaTeX code not conducted
- No linting or correction of syntax errors
- Customization via configuration files not supported
- Compliance with existing formatting guidelines not guaranteed
- Editor integration not currently provided
- No spelling or grammar checking
Existing tools
-
latexindent. Perl script, many configuration options, slow on large files.
-
LaTeXTidy. Perl script, download links seem to be broken.
-
latex-pretty. Browser-based, uses latexindent as the backend.
-
latexformat.com. Browser-based.
-
texpretty. C program which works sometimes and appears to be fast. Fails with certain keywords inside brackets.
-
latex-editor. Browser-based.
-
LaTeXFmt. Vim plugin, does not apply indentation.
-
latex-formatter. Visual Studio plugin, uses latexindent as the backend.
Dependencies
~3.5–5.5MB
~96K SLoC