Typst 如何安装与配置:5分钟编译出第一份 PDF
2026/9/11 9:48:39 网站建设 项目流程

Typst 如何安装与配置:5分钟编译出第一份 PDF

【免费下载链接】typstA markup-based typesetting system that is powerful and easy to learn.项目地址: https://gitcode.com/GitHub_Trending/ty/typst

论文明早交稿,LaTeX 改一行要重编十分钟。Typst 是一套基于标记语言的排版系统,写下的标记直接变成 PDF,编译通常在 1 秒内完成。本文带你:装好编译器并验证、跑通第一份文档、接上编辑器自动预览、排掉字体与中文字段。

从 LaTeX 换到 Typst 的理由

这节回答「值不值得换」。

  • 编译是单遍的:整份文档一次通过,不存在多遍依赖收敛,小型文档 1 秒内出结果。
  • 语法是纯文本标记:标题就是一个=,没有\begin{...}\end{...}的环境嵌套。
  • 常用排版内置:表格、编号、图表引用都是现成函数,不用翻包名。
  • 报错直接给出行号和列位置,定位错误不用猜。
  • 脚本即语言:循环、条件、函数都是原生语法,文档自动化不用宏包。

装好之前先花 30 秒确认机器没问题。

动手装之前的 30 秒自查

对照这张表,四项都满足就能直接开始:

项目最低要求
系统Windows 10+、macOS 10.15+ 或主流 Linux 发行版
磁盘约 100 MB 可用空间
网络能访问发行渠道即可(仅升级、装包时需要)
前置依赖无;仅源码编译需要 Rust 1.92+

门槛都满足的话,下面按你的系统选一条路走。

各系统最快安装路径

这节只给一条首选命令和一条验证命令,跟着敲就行。

Windows:winget 一行装好

winget install --id Typst.Typst

新开终端验证:

typst --version

预期输出形如typst 0.15.1 (提交号),能看到版本号即成功。也可以从 Typst 官网发布页手动下载 Windows 包,解压后把目录加入 PATH。

macOS:brew 三分钟搞定

brew install typst typst --version

预期输出typst 0.15.1 (提交号)。也可以从官网发布页下载 macOS 包,解压到/usr/local/bin即可。

Linux:包管理器或源码二选一

Debian/Ubuntu 系:

sudo apt install typst typst --version

预期输出typst 0.15.1 (提交号)。发行版没有现成包时,用 Rust 1.92+ 源码编译:cargo install --locked typst-cli,编译约 3~5 分钟。

容器环境:Docker 构建验证

git clone https://gitcode.com/GitHub_Trending/ty/typst cd typst docker build -t typst . docker run --rm typst --version

预期最后一条命令输出版本号。仓库根目录的 Dockerfile 基于 alpine 构建,入口点直接就是 typst 可执行文件。

想升级到最新版:typst update,升级出问题还可以typst update --revert回退到上一版本。

装好只是开始,下面让它真正干活。

5分钟跑通第一个文档

这节让你第一次亲手生成一份 PDF。新建hello.typ

#set page(paper: "a4") #set heading(numbering: "1.") = 简介 Typst 是一套基于标记语言的排版系统。 $ E = mc^2 $ - 第一个条目 - 第二个条目

编译并观察两种模式:

typst compile hello.typ typst watch hello.typ

第一条命令终端输出hello.pdf,同目录下出现同名 PDF,成功;第二条先完成一次编译,随后常驻监视,保存文件即自动重编。链路是这样的:

编译能跑通后,命令层面只需要记住一小撮。

高频命令速查

按场景分好组,总共 7 条,背下来够用:

场景命令作用什么时候用
编译typst compile in.typ单次编译,默认输出同名.pdf提交前、CI 中
编译typst compile in.typ out.pdf指定输出路径需要自定义文件名时
编译typst eval "2 + 3"直接求值一段代码快速验证表达式
监视typst watch in.typ文件变动自动重编本地写作期间常驻
字体typst fonts列出所有已发现字体装完字体后确认
排查typst info打印系统、字体路径等环境信息环境行为不符合预期时
帮助typst help watch查看单条命令详细用法忘了参数时

命令行只是底线,编辑器里写文档才是日常。

编辑器接自动编译:VS Code 与 Neovim

这节把「保存即预览」配上。

VS Code:装官方 Typst 扩展,工作区settings.json加两行:

{ "typst.compileOnSave": true }

保存后侧栏自动刷新 PDF 预览即算配好。

Neovim(0.11+):装语言服务器 tinymist,配置里启用:

vim.lsp.install("tinymist") vim.lsp.enable("tinymist")

装好后打开.typ文件出现诊断、补全即成功。其他编辑器各有一个插件:Emacs 用 typst-mode、Vim 用 vim-typst、Sublime Text 装 Typst 包。

编辑器顺了,接下来处理最容易翻车的字体。

字体与中文排版配置

只讲两类场景,每类一条命令加一个声明。

自定义字体路径:字体放在项目外时,临时传路径给编译命令:

typst compile --font-path ./fonts doc.typ

想全局生效,设环境变量TYPST_FONT_PATHS(指向你的字体目录)即可,效果等同每次加--font-path

中文字体:先装一套,再在文档里声明:

sudo apt install fonts-noto-cjk

文档开头加一行(字体名以typst fonts输出为准):

#set text(font: "思源宋体 CN")

中文段落不再出现方块字即配置成功。

字体和路径问题占了报错的大半,下面把高频故障一次排掉。

六个常见报错的排查路径

症状:中文显示为方块(豆腐字)→ 系统没有中文字体 →sudo apt install fonts-noto-cjk,再按上一节声明字体名。

症状:提示找不到某字体→ 自定义字体目录没传进去 →typst compile --font-path ./fonts doc.typ

症状:command not found: typst→ 未安装或 PATH 未刷新 → 重跑对应系统的安装命令,新开终端再typst --version验证。

症状:改了文档 PDF 却没变→ 用的是一次性compile,它不会持续监听 → 改用typst watch doc.typ

症状:图片显示不出来→ 路径是相对.typ文件解析的 → 确认相对路径拼写,格式限 PNG、JPEG、WebP、SVG。

症状:同一文档不同机器结果不一致→ Typst 版本不同 → 两边都执行typst update统一到最新版。

排障清单看完,老 LaTeX 用户可以对着下表搬家了。

LaTeX 转 Typst 对照表

常用元素的新写法如下:

LaTeX 写法Typst 写法
\section{标题}= 标题
\textbf{文本}**文本**
\emph{文本}_文本_
\begin{itemize}...\end{itemize}- 条目
\begin{enumerate}...\end{enumerate}+ 条目
$E=mc^2$$ E = mc^2 $
\includegraphics{file}#image("file.png")
\begin{tabular}...\end{tabular}#table(...)

想让整体版式贴近 LaTeX 的观感,在文档头部放这几行:

#set page(paper: "a4", margin: 1.75in) #set par(leading: 0.55em, spacing: 0.55em, first-line-indent: 1.8em, justify: true) #show heading: set block(above: 1.4em, below: 1em)

一句话建议:=声明标题、编号交给排版引擎的习惯可以直接保留;而环境嵌套和自写宏包的习惯必须放下,Typst 里一律换成函数调用和set/show规则。

日常写熟了之后,可以把重复的版式沉淀下来。

进阶玩法:模板函数与项目初始化

模板函数解决「每份报告都要重复敲页眉页脚」的问题,把版式写成一个函数:

// template.typ #let report(title, content) = { #set page( margin: 1.5in, header: [#title], footer: [第 #counter(page).display() 页], ) #align(center)[#text(weight: "bold", size: 24pt)[#title]] #content }

文档里两行接入:#import "template.typ": report,然后#show: report("我的报告"),正文照常写。

新项目则用typst init从模板起步,它会在当前目录生成一份带完整结构的.typ入口文件,预期输出是新建的文件名。

到这里,编译、监视、字体、排障、模板都通了,剩下的路自己选方向。

下一步

Typst 的安装只花了几分钟,真正的价值在于把排版交给标记本身:你写内容,它管版面,编译以秒计。接下来建议按顺序走三步:先读教程章节补语法体系,再通读官方示例集当语法手册,最后去社区模板市场挑一个起步模板。

  • docs/content/:官方文档源,含教程、语言参考与迁移指南
  • tests/suite/:按主题分目录的官方示例集,可直接编译对照效果
  • Typst 官方论坛:提问与讨论的主阵地
  • Universe 模板社区:按场景挑现成模板

【免费下载链接】typstA markup-based typesetting system that is powerful and easy to learn.项目地址: https://gitcode.com/GitHub_Trending/ty/typst

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询