6 个版本

新版本 0.3.1 2024年8月17日
0.3.0 2024年7月31日
0.2.2 2024年6月15日
0.2.0 2024年5月25日
0.1.0 2024年4月27日

#128开发工具

Download history 22/week @ 2024-04-29 162/week @ 2024-05-20 23/week @ 2024-05-27 159/week @ 2024-06-03 104/week @ 2024-06-10 22/week @ 2024-06-17 121/week @ 2024-07-29 108/week @ 2024-08-12

229 每月下载量

MIT 许可证

33KB
945

tex-fmt tex-fmt

CI crates.io license: MIT

一个极快的、使用 Rust 编写的 LaTeX 格式化工具。

输入 输出
\documentclass{article}

\begin{document}

\begin{itemize}
\item Lists with items
over multiple lines
\end{itemize}

\begin{equation}
E = m c^2
\end{equation}

\end{document}
\documentclass{article}

\begin{document}

\begin{itemize}
  \item Lists with items
    over multiple lines
\end{itemize}

\begin{equation}
  E = m c^2
\end{equation}

\end{document}
  • ⚡ 极快的运行时性能
  • 🔧 无需配置
  • 📟 命令行界面
  • 📜 处理 LaTeX 文件类型 .tex.bib.cls.sty
  • 🦀 完全使用安全的 Rust 编写

安装

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"

用法

tex-fmt file.tex        # format file.tex and overwrite
tex-fmt -c file.tex     # check if file.tex is correctly formatted
tex-fmt -p file.tex     # format file.tex and print to STDOUT
tex-fmt -h              # view help information

性能

当格式化所有测试用例时,tex-fmt 的速度比 latexindent 快数百倍。

文件 大小 tex-fmt latexindent latexindent -m
47 93k 3.5M 0.143s 102.1s [x714] 128.4s [x898]

局限性

  • 未执行 LaTeX 代码的语义解析
  • 不支持代码检查或语法错误纠正
  • 不支持通过配置文件进行自定义
  • 不保证符合现有的格式化指南
  • 当前不提供编辑器集成
  • 不支持拼写或语法检查

现有工具

  • latexindent. Perl 脚本,许多配置选项,在大文件上运行缓慢。

  • LaTeXTidy. Perl 脚本,下载链接似乎已损坏。

  • latex-pretty. 基于 Web,使用 latexindent 作为后端。

  • latexformat.com. 基于 Web。

  • texpretty. 一种C程序,有时可以工作,看起来运行速度快。在某些括号内的关键字中会失败。

  • latex-editor. 基于浏览器的编辑器。

  • LaTeXFmt. Vim插件,不应用缩进。

  • latex-formatter. Visual Studio插件,使用latexindent作为后端。

依赖项

~3.5–5.5MB
~94K SLoC