#
简介
去年秋天,我意外发现Typst 这个软件。我把这个软件带到组里,意外得到同事们的一致好评,并支撑了许多关键文档的发布。 到今天,我已经高强度使用Typst超过一年。对Typst的喜欢与日剧增。
#
LaTeX 原罪
我相信,热爱书写,热爱公式的人一定会惊艳于LaTeX的排版质量。但是你有多喜欢 LaTeX精美的公式, 你也一定有多讨厌LaTeX冗长语法和漫长的编译时间。 我想每个LaTeXer一定经历过debug LaTeX的过程。 LaTeX的错误提示堪比 makefile。
TeX诞生已经超过40年,是时候尝试一些新鲜的玩意了。
#
程序员的玩具 — Markdown
Markdown 以语法简单闻名,几乎每隔几天github上都会有一个新的Markdown编辑器开源。 围绕Markdown也出现了许多的笔记软件,如obsidian,logseq 等。但是它毕竟只是个 简单的标记语言,几乎没有排版能力。
#
Typst — the New King
Typst 有许多优点:
•
简洁的标记语法
•
增量式编译,极快的编译速度
•
强大的编程功能,语法符合程序员习惯
•
现代的包管理
#
语法
typst可以认为 markdown 和 latex结合体。
类似于markdown 它大量使用标价渲染富文本。比如使用= 标题表示一级标题,使用 *加重* 表示加重, 使用_斜体_表示斜体。 详细可以看表 表 1
段落中断
空行
着重强调
*strong*
强调
_emphasis_
代码段
`print(1)`
链接
https://typst.app/
标签
<intro>
引用
@intro
标题
= Heading
无序列表
- item
有序列表
+ item
术语列表
/ Term: description
数学公式
$x^2$
行中断
\
智能引号
'single' or "double"
快捷符号
~, ---
代码表达式
#rect(width: 1cm)
转义字符
Tweet at us \#ad
注释
/* block */
表 1 Typst 语法
#
增量式编译
使用 typst watch main.typ 可以监视文件变动并自动执行编译,并且这种编译是增量的,所以可以非常快, 即便文件逐渐变得很大。极快的编译速度使得文字的输入变得非常流畅。
#
包管理
总所周知LaTeX有着非常原始的包管理。使用TeX Live发行版的需要下载几个G的安装包。typst 目前只有一个安装包,如果要使用某个包使用下列语法便可以
1
#import "@preview/cetz:0.3.1"
typst
import 命令将自动下载并导入 cetz 包。
#
数学公式
Typst 放弃了LaTeX的公式兼容,这一点常常为新手所诟病。经过一年的使用我觉得这是十分高明的。 不再需要大量输入 \ ,小拇指得到解放,许多象形的符号输入也非常符合直觉,比如使用 -> 输入 → 。使用>= 代替≥,RR 代替ℝ。公式的输入变得非常丝滑。
实际上使用ASCII符号组合输入特殊符号并不是typst的首创。 另一个开源的排版软件Texmacs也采用类似的设计。 我曾经使用过一个学期的TeXmacs来写物理作业,吸引我的也是这一点。
当然对于一些新手无法放弃LaTeX的公式语法,也可使用第三方包mitex输入latex 语法的公式。
#
一些小问题
当然作为一个不超过两岁的软件,typst 仍然有一些问题,比较碍人的一点是中文的输入,在输入中文的时候, 汉字之间不能有空格,否则排版后也会有空格。当然以现在typst的热度,相信很快能得到解决。实际上 typst社区有很多国人参与模板,第三方包,编译器周边的开发。
#
Rust 碎碎念
Typst 使用 rust 开发。rust的热度逐年升高,不管是在社区还是各大公司。实际上,按照个人的一些经验, 使用Rust开发的软件稳定性出众,几乎不会崩溃。同时良好的工程管理环境, rust的开源软件几乎代码拉下来就能无缝运行。与之形成对比的是python,稍微久远的python脚本, 常常会有依赖问题。
希望有更多的软件采用rust开发。
quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio
potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre
in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit.
At etiam Athenis, ut e patre audiebam facete et urban