
RaTeX 是一個以 Rust 編寫的高性能 LaTeX 排版引擎,透過 WASM 與 C ABI 提供跨平台相容性,讓開發者無需嵌入瀏覽器引擎或 WebView 即可實現科學 UI 渲染。
RaTeX 是一款以純 Rust 編寫的新型 LaTeX 渲染引擎,旨在與 KaTeX 兼容,並針對無法使用完整瀏覽器引擎或 JavaScript 運行時的環境進行優化。透過提供一個可以編譯為 WebAssembly 或經由 C ABI 集成的統一 Rust 核心,它為在行動端、伺服器端和桌面平台渲染數學與化學符號提供了一種可移植的解決方案。
圍繞 RaTeX 的討論顯示出社群渴望有一種高效能、可移植的替代方案,來取代傳統沈重的 JavaScript 數學渲染技術棧。許多使用者強調了基於 Rust 的引擎對於原生行動應用程式和伺服器端環境的特定效用,在這些環境中,嵌入 WebView 或 Node.js 實例的負擔過於沉重。該專案對「黃金測試套件(golden-suite)」的承諾——即與 KaTeX 進行像素級的精確對比——受到了特別稱讚。評論者指出,這種嚴謹性在該生態系統中非常罕見,因為許多函式庫僅依賴視覺估算,這無法處理積分和矩陣等進階數學符號所需的複雜間距與縮放。
然而,該專案的呈現方式也引起了一些質疑。幾位參與者指出,登錄頁面似乎深受大型語言模型的輔助,導致了一些他們認為具有誤導性的說法。具體而言,關於「0 KB JS 軟體包(bundle)」的誇耀被批評為技術細節上的文字遊戲,因為 WebAssembly 二進制文件本身具有顯著的體積,且必須被下載和執行。批評者認為,雖然 RaTeX 避免了瀏覽器引擎的開銷,但與 MathJax 或 KaTeX 在僅使用 SVG 模式下的表現相比,它應該對其自身的二進制大小和效能基準測試更加透明。
對話的很大一部分轉向了 Typst,這是一個現代的、基於 Rust 的排版系統,許多人將其視為 LaTeX 的精神繼承者。雖然 RaTeX 專注於在現有應用程式中渲染 LaTeX 數學子集,但許多評論者利用該討論串來倡導 Typst 更簡潔的架構和卓越的開發者體驗。辯論涉及了 TeX 的「歷史包袱」,使用者將傳統的宏系統描述為「以宏為中心的地域」,在不進行脆弱的黑客式修改(hacks)的情況下很難進行自定義。雖然有些人為 TeX 辯護,認為它是時代的產物——指出在 Donald Knuth 最初開發它時,現代詞法作用域尚未被充分理解——但早期採用者的共識是,像 Typst 這樣的新工具提供了一種更直觀、更像程式語言的文檔創建方式。
儘管對新系統充滿熱情,參與者也承認 LaTeX 仍然是學術出版的行業標準。這為 RaTeX 這樣的專案創造了一個利基市場,讓開發者能夠支持無處不在的 LaTeX 語法,同時受益於現代 Rust 後端的安全性和速度。對於使用 Go 等語言工作的開發者來說,在不求助於龐大的外部依賴項的情況下,尋找功能完整的數學渲染仍然是一個痛點,這使得 RaTeX 對於那些希望簡化軟體清單(SBOM)的人來說具有吸引力。
相關文章
其他收藏 · 0