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),仅供参考