跳转至

Typst 现代排版系统

一句话概述:Typst 是用 Rust 写的新一代排版工具,编译速度比 LaTeX 快几十倍,语法更简单,适合写论文、报告和简历。

核心知识点

概念白话解释
Typst新排版系统 = LaTeX 的现代替代品
.typ源文件 = Typst 的文档格式
typst.app在线编辑器 = 类似 Overleaf 的在线平台
show rule样式规则 = 控制元素的显示方式
set rule设置规则 = 修改元素的默认属性
package包 = 社区贡献的模板和功能扩展

安装配置

# macOS
brew install typst                                    # Homebrew 安装

# Linux(下载预编译二进制)
curl -fsSL https://typst.community/typst-install/install.sh | sh

# 验证
typst --version                                       # 查看版本(v0.14+)

# 编译文档
typst compile paper.typ                               # 编译为 PDF
typst compile paper.typ paper.pdf                     # 指定输出文件名
typst watch paper.typ                                 # 实时监听+编译(改了自动刷新)

基本语法

// paper.typ

// 文档设置
#set document(title: "我的论文", author: "彭文强")      // 文档元数据
#set page(paper: "a4", margin: 2.5cm)                  // A4 纸,2.5cm 边距
#set text(font: "Noto Serif CJK SC", size: 12pt)      // 中文字体
#set par(justify: true, leading: 1.5em)                // 两端对齐,1.5 倍行距
#set heading(numbering: "1.1")                         // 标题编号

// 标题
= 一级标题                                              // 类似 Markdown 的 #
== 二级标题                                             // 类似 ##
=== 三级标题                                            // 类似 ###

// 正文
这是正文内容。*加粗*  _斜体_  `行内代码`
// 列表
- 无序列表项1                                           // 无序列表
- 无序列表项2
  - 嵌套项

+ 有序列表项1                                           // 有序列表
+ 有序列表项2

// 数学公式
行内公式:$E = m c^2$                                    // 单 $ 行内
独立公式:
$ sum_(i=1)^n x_i = integral_0^1 f(x) dif x $          // 独立公式

// 代码块
```python
print("Hello Typst")                                  // 代码块

// 图片

figure(

image("fig1.png", width: 80%), // 插入图片 caption: [图1:实验结果] // 图题 )

// 表格

figure(

table( columns: 3, // 3列 [样本], [Shannon], [Simpson], // 表头 [S1], [3.21], [0.89], // 数据行 [S2], [2.98], [0.85], ), caption: [表1:多样性指数] )

// 参考文献

bibliography("refs.bib") // BibTeX 文献

## 模板与包

```typst
// 使用社区模板(从 typst.app/universe 查找)
#import "@preview/charged-ieee:0.1.0": ieee             // 导入 IEEE 模板

#show: ieee.with(
  title: "我的论文标题",
  authors: (
    (name: "彭文强", affiliation: "XX大学"),
  ),
  abstract: [摘要内容...],
  bibliography: bibliography("refs.bib"),
)

= 引言
论文正文...

Typst vs LaTeX

对比项TypstLaTeX
编译速度毫秒级秒~分钟
学习曲线低(类 Markdown)高(大量命令)
错误信息清晰易懂晦涩难读
期刊支持部分支持(持续增加)几乎全部支持
包生态增长中(2000+)非常成熟(5000+)
中文支持原生支持需要 xelatex/ctex

常见报错

报错原因解决
unknown font family系统没有该字体安装字体或换一个
file not found图片/文献路径错检查文件路径
expected ... found ...语法错误检查括号配对、逗号
cannot access file权限问题检查文件权限

速查表

# 命令行
typst compile file.typ                                 # 编译为 PDF
typst watch file.typ                                   # 实时编译
typst fonts                                            # 列出可用字体

# 语法速记
# = 一级标题   == 二级标题                               # 标题
# *加粗*  _斜体_  `代码`                                 # 格式
# $公式$                                                # 数学
# - 无序   + 有序                                       # 列表
# #image("file.png")                                   # 图片
# #table(columns: N, ...)                               # 表格
# #set / #show                                          # 样式规则
# #import "@preview/pkg:ver"                            # 导入包