Typst快速上手指南:LaTeX的现代替代品
Typst是一种新兴的排版系统,设计初衷是为了解决LaTeX的一些长期存在的问题,如复杂的语法、冗长的编译时间和陡峭的学习曲线。作为LaTeX的现代替代品,Typst提供了更简洁的语法、即时预览和更友好的错误提示,同时保持了高质量的排版输出,特别是在数学公式方面。
Typst与LaTeX的对比
Typst设计初衷是为了保留LaTeX的排版质量,同时解决其使用中的痛点。以下是两者的主要对比:
特性 | Typst | LaTeX |
---|---|---|
编译速度 | 毫秒级,实时预览 | 可能需要数秒至数分钟 |
语法复杂度 | 简洁,类似Markdown | 复杂,自成体系 |
错误提示 | 清晰友好,精确定位 | 往往难以理解,定位模糊 |
学习曲线 | 平缓,易于入门 | 陡峭,入门困难 |
生态系统 | 新兴,但快速发展 | 成熟,有大量现有资源 |
自定义能力 | 通过函数实现,面向现代编程 | 通过宏实现,语法特殊 |
数学排版 | 强大,语法更简洁 | 极其强大,事实标准 |
安装与环境配置
Typst提供了多种使用方式,满足不同用户的需求:
在线编辑器:无需安装,直接访问Typst网页版开始使用
本地安装:
Windows系统:
# 使用Scoop scoop install typst # 或使用Winget winget install --id Typst.Typst
macOS系统:
# 使用Homebrew brew install typst
Linux系统:
# 使用Cargo (Rust包管理器) cargo install --git https://github.com/typst/typst
编辑器插件:
- VS Code:安装官方Typst插件
- Vim/Neovim:使用typst.vim插件
- 其他编辑器也有相应的插件支持
Typst基本语法
Typst的语法融合了Markdown的简洁性和LaTeX的表达能力,使用起来非常直观。
文档结构
一个基本的Typst文档结构如下:
#set document(title: "我的第一个Typst文档")
#set page(numbering: "1", number-align: center)
#set text(font: "Source Han Sans SC", lang: "zh", size: 11pt)
= 文档标题
== 第一章节
这是一个段落,可以直接输入文本。*这是加粗文本*,_这是斜体文本_。
=== 小节
- 这是无序列表项
- 另一个无序列表项
- 嵌套的列表项
1. 这是有序列表
2. 另一个有序列表项
数学公式排版
Typst的数学公式语法与LaTeX类似,但更加简洁:
行内公式:使用$...$
包围
这是一个行内公式:$E = mc^2$,它会嵌入在文本行中。
行间公式:使用$ ... $
并单独成段
这是一个行间公式:
$ F = G \frac{m_1 m_2}{r^2} $
它会居中显示。
数学公式示例:
// 分数
$ f(x) = \frac{1}{1 + x^2} $
// 求和
$ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} $
// 积分
$ \int_{a}^{b} f(x) \derivative{x} $
// 矩阵
$ A = \matrix(
1, 2, 3;
4, 5, 6;
7, 8, 9
) $
// 分段函数
$ f(x) = \cases(
x^2 &若 x > 0,
-x^2 &若 x \le 0
) $
高级功能与技巧
图表与图像
#figure(
image("path/to/image.jpg", width: 80%),
caption: "图片标题"
)
引用与参考文献
// 在文档中插入引用
正如@smith2023所述...
// 在文档最后添加参考文献
#bibliography("references.bib")
自定义函数与模板
Typst允许您定义函数来创建自定义组件:
#let theorem(body, name: none) = {
let title = "定理"
if name != none {
title += " (" + name + ")"
}
block(
fill: rgb(240, 240, 250),
inset: 10pt,
radius: 4pt,
width: 100%,
)[
#text(weight: "bold")[#title]
#body
]
}
// 使用自定义函数
#theorem[
存在无限多个素数。
][欧几里得]
从LaTeX迁移到Typst的技巧
如果您之前使用LaTeX,以下是迁移到Typst的一些实用建议:
文档结构变化:
- LaTeX的
\section{}
变为Typst中的= 标题
- LaTeX的
\begin{环境}...\end{环境}
变为Typst中的函数调用
- LaTeX的
数学符号对应:
- 大多数LaTeX数学符号在Typst中都可以直接使用
- LaTeX的
\frac{a}{b}
在Typst中是\frac{a}{b}
(相同) - LaTeX的
\begin{matrix}...\end{matrix}
在Typst中是\matrix(...)
包与功能对应:
- LaTeX中的包功能在Typst中通常由内置函数提供
- 例如,LaTeX中的
graphicx
包在Typst中不需要,直接使用image()
函数
编译流程差异:
- Typst支持实时预览,不需要LaTeX的多次编译过程
- Typst直接输出PDF,不会生成中间文件
使用SimpleTex辅助Typst文档创建
尽管Typst简化了公式输入,但对于复杂的数学公式,手动编写代码仍然耗时。SimpleTex可以帮助您:
- 识别已有的数学公式并转换为Typst兼容的代码
- 将手写或印刷的数学公式转换为数字格式
- 将LaTeX数学公式代码转换为Typst格式,辅助迁移过程
使用SimpleTex处理公式识别,再将结果导入Typst文档,可以大大提高文档创建效率。
结语
Typst作为LaTeX的现代替代品,为文档排版带来了全新的体验。它简化了语法,加快了编译速度,同时保持了高质量的排版输出,特别适合需要频繁编辑和预览的情况。对于学术写作和数学文档创建,Typst提供了一个比Markdown更强大、比LaTeX更友好的选择。
如果您已经是LaTeX用户,Typst值得一试;如果您是排版新手,Typst可能是一个比LaTeX更容易上手的起点。随着Typst社区的不断发展,我们可以期待它在未来成为学术文档排版的重要选择。