Typst 完整教學 2026:中文排版、履歷與 LaTeX 替代實測

Typst 是 Rust 寫的 markup 排版系統,57K 星、Apache-2.0、單一執行檔,編譯長文件只要 0.16 秒。這篇從安裝、中文字型陷阱、表格與數學,到用官方範本做 IEEE 論文與 ATS 履歷,全部在容器裡實測,並附與 LaTeX、Word 的取捨對照。

  • Dennis
  • 8 分鐘閱讀
Typst 完整教學 2026:中文排版、履歷與 LaTeX 替代實測

一句話:Typst 是 LaTeX 替代品,單一檔 17 MB,14 頁編譯 0.16 秒,中文指定字型就好。

Typst 是一套以 markup 語法撰寫、用 Rust 編譯的排版系統,定位是「LaTeX 的能力、Markdown 的學習曲線」。單一執行檔約 17 MB、Apache-2.0 授權,實測 120 個章節的文件編譯成 14 頁 PDF 只花 0.16 秒。對需要產出論文、履歷、技術報告,又受不了 LaTeX 錯誤訊息的人,它是 2026 年最值得花兩小時學的工具。

為什麼現在值得看 Typst

LaTeX 的問題從來不是能力,是摩擦:一個漏掉的括號會噴出三十行看不懂的錯誤、套件衝突要上網查半小時、中文要另外裝 xeCJK 再調字型。Typst 把這些做成內建:

  • markup 直接寫:= 標題 就是標題,*粗體* 就是粗體,不用 \section{}
  • 數學用錢字號:$a^2 + b^2 = c^2$,不用背 \frac 以外的東西
  • 增量編譯:官方主打的就是快,這次實測也確實快
  • 錯誤訊息帶位置與提示:會直接框出問題那行的哪幾個字

一表看懂(2026-11-09 查證)

項目內容
最新穩定版0.15.1(2026-07-17 發布)
授權Apache-2.0
語言Rust
GitHub 星數57,075(forks 1,790)
未關閉 issue1,344
首個 commit2019-09-24
最近推送2026-11-06
官方套件庫(Universe)5,166 個套件
執行檔大小約 17 MB(x86_64 musl 靜態版)
輸出格式PDF、PNG、SVG、HTML(實驗)、bundle(實驗)

一個值得注意的訊號:專案跑了七年、五萬多星,版號還在 0.x。這代表語法仍可能 breaking change(0.15 就禁止路徑用反斜線),好處是團隊沒有急著凍結 API,壞處是你三年前寫的模板可能要修。

安裝:四種方式,挑一種就好

官方 README 列出的方式如下,全部照抄不改:

# 1) 預編譯執行檔(最單純,放進 PATH 就能用)
#    到 GitHub releases 下載對應平台的壓縮檔解開即可
typst update          # 之後用這個指令自我更新

# 2) 套件管理器(版本可能落後)
brew install typst                        # macOS
winget install --id Typst.Typst           # Windows

# 3) 有 Rust 工具鏈
cargo install --locked typst-cli

# 4) Docker
docker run ghcr.io/typst/typst:latest --help

這次實測走第 1 條路:抓 typst-x86_64-unknown-linux-musl.tar.xz(17 MB),解開後直接執行。

$ typst --version
typst 0.15.1 (9dfd3a08)

CLI 有八個子命令:compile、watch、init、eval、fonts、update、completions、info。沒有 new、沒有 build,就這幾個。

第一個文件:從 markup 到 PDF

存成 demo.typ,編譯指令是 typst compile demo.typ(輸出 demo.pdf)。這是最小可用範例:

#set page(paper: "a4", margin: 2.2cm)
#set text(font: "WenQuanYi Zen Hei", size: 10.5pt, lang: "zh", region: "tw")
#set heading(numbering: "1.1")

= Typst 實測文件

這是一段繁體中文。行內數學:$a^2 + b^2 = c^2$,獨立公式:

$ integral_0^1 x^2 dif x = 1/3 $

== 表格

#table(
  columns: (auto, 1fr, auto),
  stroke: none,
  table.header([*工具*], [*定位*], [*編譯速度*]),
  [LaTeX], [學術排版事實標準], [慢],
  [Typst], [現代化 markup 排版], [快],
)

+ 自動編號一
+ 自動編號二

三個關鍵概念,看懂就能改任何模板:

概念寫法作用
set rule#set text(size: 11pt)設定某元素的預設屬性(最常用)
show rule#show heading: it => block(fill: luma(240))[#it]重新定義元素長相(模板的靈魂)
內容區塊[ ... ]把一段內容當參數傳給函式

#set 管「預設值」,#show 管「長相」,[...] 是內容。這三件套就是 Typst 模板的全部語法基礎——這也是為什麼它的範本檔案通常只有一兩百行,而 LaTeX 的 .cls 動輒上千行。

中文排版:唯一會踩的坑是字型名稱

這是實測最重要的一段。第一次編譯時,寫了「Noto Sans CJK TC」優先的候選清單:

#set text(font: ("Noto Sans CJK TC", "WenQuanYi Zen Hei"), lang: "zh", region: "tw")

結果噴警告:

warning: unknown font family: noto sans cjk tc
  ┌─ demo.typ:2:16
2 │ #set text(font: ("Noto Sans CJK TC", "WenQuanYi Zen Hei"), ...)
  │                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

這只是警告、文件照樣編譯,因為清單第二個字型接住了。但把清單拿掉、只寫一個不存在的字型,事情就不一樣了:

$ typst compile single.typ     # 只寫 font: "Noto Sans CJK TC"
$ pdffonts single.pdf
name                          type          emb
OGCMEW+IPAGothic              CID TrueType  yes
MOITFO+LibertinusSerif        CID Type 0C   yes

中文還在,但嵌入的是 IPAGothic——一套日文字型。日文字型有中文字形(漢字),問題是部分字的筆畫寫法與繁體中文不同(例如「骨」的起筆、「直」的內部),而且標點位置是日文規則。這種錯最陰險:PDF 看起來「有字」,讀者的 Word 或系統字型一看卻覺得哪裡怪。

正確做法只有兩步:

# 1) 先問系統到底裝了哪些字型家族(列出的是家族名,不是檔名)
$ typst fonts | grep -i -E "zenhei|noto|cjk"
WenQuanYi Zen Hei

# 2) 用那個名字,或直接指定字型檔所在目錄
$ typst compile --font-path ./fonts demo.typ

實測環境有 37 個字型家族,中文只有文泉驛正黑(WenQuanYi Zen Hei)。把 #set text(font: "WenQuanYi Zen Hei", lang: "zh", region: "tw") 寫對後,pdffonts 就變成:

TRQODT+WenQuanYiZenHei   CID TrueType   yes

同一個 PDF 裡,數學用 NewCMMath、程式碼用 DejaVuSansMono,各自嵌入正確字型。lang: "zh" 與 region: "tw" 一定要寫,它影響斷行規則與標點擠壓;不寫的話,中文標點會用西文間距,行尾對齊看起來就是不對。

實測數據:快在哪裡

在同一台 8 核心容器(無 GPU)用 /usr/bin/time 量:

測試內容結果
單頁文件demo.typ(中文字型+表格+公式+程式碼+figure)0.20 秒,1 頁,48 KB
長文件120 個章節、每節清單0.16 秒,14 頁,173 KB
記憶體峰值上述兩者約 48–57 MB
PDF/A-3b加 --pdf-standard a-3b51 KB(字型完整嵌入)
PNG 輸出--format png --ppi 9666 KB/頁

長文件比短文件快不是筆誤——短文件那次多了字型警告與首次字型掃描的固定成本。重點是數量級:0.16 秒對 14 頁,所以 typst watch 是真的可以邊打字邊看結果,這也是 LaTeX 使用者最難習慣的地方。

官方範本:論文與履歷各一行指令

Universe 有 5,166 個套件,typst init 一行就能拉下模板:

$ typst init @preview/charged-ieee
Successfully created new project from @preview/charged-ieee:0.1.4
> cd ieee-test
> typst watch main.typ

產出 main.typ 與 refs.bib。實際編譯測試範例(#show: ieee.with(title: ..., authors: ..., abstract: ...))得到 1 頁 PDF,過程只有一個字型警告(模板指定了未安裝的 TeX Gyre Cursor,退回預設字型,不影響輸出)。

履歷更實用:

$ typst init @preview/ats-friendly-resume
$ cd ats-resume && typst compile main.typ r.pdf
# → 1 頁 PDF

ats-friendly-resume(0.1.1)的設計目標是「ATS 讀得懂」:單欄、無表格排版、純文字可解析,適合投遞外商或需要機器篩選的職缺。main.typ 開頭就是一段可改的個人資料區塊:

#let name = "你的名字"
#let location = "Taipei, Taiwan"
#show: resume.with(
  author: name,
  author-position: center,
  location: location,
  linkedin: "linkedin.com/in/your-id",
  github: "github.com/your-id",
  font: "New Computer Modern",
  paper: "us-letter",   // 台灣常用 A4,記得改
  lang: "en",
)

兩個要改的地方:paper 換成 "a4",以及若投中文職缺,lang 改 "zh" 並把 font 換成系統實際有的中文字型。

HTML 與 bundle:新功能,但別拿去上線

0.15 版把 HTML 匯出接上 MathML(公式不再是圖片),還加了實驗性的 bundle 匯出(一份專案輸出多檔,適合做多頁網站)。但實際試會發現它被藏在旗標後面:

$ typst compile -f html demo.typ out.html
error: html export is only available when `--features html` is passed

$ typst compile -f html --features html mini.typ mini.html
 = hint: its behaviour may change at any time
 = hint: do not rely on this feature for production use cases
# → 產出 1.9 KB HTML,含內嵌 CSS、MathML 表格

能跑,官方也明講「不要用在生產環境」。適合的用法是「把文件順便吐一份網頁版」,不適合當成網站產生器。

另一個低調但對學術/公家單位有用的功能:--pdf-standard 可以一次要求多個 PDF 規範(PDF/A 存檔、PDF/UA 無障礙)。實測 --pdf-standard a-3b 產出的 PDF 字型全部嵌入、體積從 48 KB 增加到 51 KB,這對需要長期保存或送審的文件是硬需求。

跟 LaTeX、Word 怎麼選

面向TypstLaTeXWord/Google Docs
學習曲線低(markup 直覺)高最低
編譯速度0.2 秒級數秒到數十秒即時
中文支援內建,指定字型即可需 xeCJK/ctex 設定內建
數學公式$...$,語法接近 LaTeX原生最強公式編輯器較弱
版本控制純文字 .typ,diff 乾淨純文字 .tex二進位,難 diff
生態成熟度5,166 套件、七年三十年、期刊模板齊全通用
期刊/研討會接受度新興(IEEE 等已有模板)幾乎全部多數接受
錯誤訊息友善、帶提示較難讀無(所見即所得)
適合誰技術文件、履歷、報告、教材投稿、既有模板、複雜巨集協作、非技術同事

一句話結論:投稿國際期刊前先確認該期刊收不收 Typst;若是自家報告、履歷、技術文件、內部規範,Typst 的投報率遠高於 LaTeX。

已知限制與沒做的事

這篇的實測範圍要說清楚,避免過度推論:

  • 沒有跟 LaTeX 做同一份文件的對照計時。上面的速度數字是 Typst 自己的絕對值,不是相對倍數。坊間常說「Typst 快 10 到 100 倍」,這個數字沒有在本次環境驗證。
  • 沒有測 Windows/macOS 安裝流程,winget、brew 的指令照官方 README 抄,未實跑。
  • 沒有逐一驗證 5,166 個套件,只實測了 charged-ieee 0.1.4 與 ats-friendly-resume 0.1.1 兩個。
  • HTML/bundle 匯出仍是實驗功能,官方明示行為可能隨時改變,不要放進 CI 的關鍵路徑。
  • 版號仍是 0.x,語法有 breaking change 的歷史(0.15 禁止路徑反斜線),模板升級要留時間。
  • 1,344 個未關閉 issue,遇到邊界情況不要假設「一定有人處理過」。
  • 中文字型要自己裝。容器環境預設沒有繁體中文字型時,Typst 會安靜地退回日文 IPAGothic,輸出「看起來對但筆畫不對」的 PDF——這是本文最想提醒的一個坑。

誰適合、誰不需要

  • ✅ 需要產出可版控的 PDF:技術規格書、SOP、薪資結構表、教材講義
  • ✅ 投遞外商或需 ATS 篩選的履歷(ats-friendly-resume 直接解決單欄純文字需求)
  • ✅ 討厭 LaTeX 但又需要數學公式與交叉引用
  • ❌ 需要跟非技術同事即時協作編輯 → 用 Google Docs
  • ❌ 投稿要求 .docx 或特定 .cls 的期刊 → 先問編輯部

站內延伸閱讀

原始來源

本文所有版本號、星數與編譯時間均為 2026-11-09 在容器內實際執行所得;套件數量與專案數據以官方頁面當下顯示為準。

📬 訂閱 most.tw 電子報

每週精選 AI 工具教學與技術乾貨,直接送到你的信箱。免費、隨時可退訂。

訂閱即表示同意收到 most.tw 電子報,隨時可一鍵退訂。

💬 有問題想討論?加 LINE 聯絡我

歡迎透過 LINE 官方帳號直接留言,我會盡快回覆你的問題。

加入 LINE 好友