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¶
| 对比项 | Typst | LaTeX |
|---|---|---|
| 编译速度 | 毫秒级 | 秒~分钟 |
| 学习曲线 | 低(类 Markdown) | 高(大量命令) |
| 错误信息 | 清晰易懂 | 晦涩难读 |
| 期刊支持 | 部分支持(持续增加) | 几乎全部支持 |
| 包生态 | 增长中(2000+) | 非常成熟(5000+) |
| 中文支持 | 原生支持 | 需要 xelatex/ctex |
常见报错¶
| 报错 | 原因 | 解决 |
|---|---|---|
unknown font family | 系统没有该字体 | 安装字体或换一个 |
file not found | 图片/文献路径错 | 检查文件路径 |
expected ... found ... | 语法错误 | 检查括号配对、逗号 |
cannot access file | 权限问题 | 检查文件权限 |