#00012026-10-06Justin

為什麼你應該使用 Typst 取代 LaTeX

比較 Typst 與 LaTeX 的編譯速度、語法與編譯環境,以及 Typst 現階段的不足。
typstlatex

LaTeX 作為過去幾十年最多人使用的排版語言,在學術界有無法撼動的地位,尤其是在數學、工程、物理等領域。 但用過的人都知道,LaTeX 非常難用,以下舉幾個例子:

  • 編譯時間很長
  • 錯誤訊息完全沒用(甚至有 error 還可以編譯?)
  • 大量反斜線,可讀性低,語法也和一般程式語言差異很大
  • 文件混亂,自己寫模板幾乎不可能
  • 編譯環境很臃腫

即使現在有像 Overleaf 這樣的線上環境,也還是沒辦法改善這些問題(Overleaf 的進階功能甚至還要付費)。 而 Typst 的目的就是要解決這些問題。

Typst 是以 Rust 編寫的開源排版系統,設計初衷就是做出比 LaTeX 更強大、更容易上手的工具。

Typst vs. LaTeX

編譯速度:Typst 的編譯速度遠勝 LaTeX。LaTeX 需要幾秒才能編譯完的文件,用 Typst 重寫後通常不到一秒,增量編譯更只要幾毫秒。

語法:Typst 的語法整體來說與 Markdown 非常相似,上手難度很低,可以參考以下範例:

LaTeX

\documentclass{article}
\usepackage[margin=2cm]{geometry}

\begin{document}
\section{Introduction}
This is \textbf{bold} and \emph{italic}.

\begin{itemize}
  \item First
  \item Second
\end{itemize}

\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
\end{document}

Typst

#set page(margin: 2cm)

= Introduction
This is *bold* and _italic_.

- First
- Second

$ x = (-b plus.minus sqrt(b^2 - 4a c)) / (2a) $

相較之下,Typst 的寫法明顯更爲簡潔。

編譯環境:LaTeX 經過多年發展,衍生出許多不同的編譯引擎(如 pdfLaTeX、XeLaTeX、LuaLaTeX),彼此並不完全相容。 編譯時也常遇到缺少套件的問題,環境設定複雜。Typst 則有官方維護的編譯器與套件庫,錯誤訊息也很清楚,編譯體驗好很多。

Typst 現階段的缺點

  • 有些期刊要求用 LaTeX 寫,沒辦法用 Typst(不過其實可以用 AI 轉換)
  • 如果合作者不會用 Typst,通常只能改用 LaTeX
  • Typst 尚未發布 1.0,部分功能還不太穩定,版本之間也可能有破壞性變更
  • 雖然官方有線上共編的網站,但還是不如 Overleaf 方便(不過我覺得共編本來就該用 Git/GitHub)

結論

我用 Typst 大概兩年多了,我的作業、簡報都是用 Typst 寫的。體驗很好,能做到想到什麼打什麼,而不用頻繁地查指令。 我覺得 Typst 在未來有機會取代 LaTeX,成為主流的排版語言。 順帶一提,這個網站也是用 Typst(透過 Tola)寫成的。