Typst 快速入门:以数学建模论文为例
本文将会介绍Typst的基本信息,以及针对有学术论文、数学建模论文写作需求人群的Typst快速入门方法。旨在提供最省时省力的Typst论文产出指南。
What is typst
Typst is a new markup-based typesetting system for the sciences.
Typst是一个类似LateX的写作工具,使用Rust开发。Typst比LateX更轻便简洁,易于上手。更重要的是,Typst的增量渲染可以让Typst写作所见即所得,相比LateX几十秒一次的更新,体验翻了几倍。
Start up
VS Code
在VS Code 插件中搜索typst
,依次安装 Typst LSP
、Typst Preview
、Typst Companion
,新建文件,扩展名为.typ
,打开编辑即可。
Typst App
直接访问Typst进入。
Syntax
用Typst日常写作涉及到的语法并不多,也不复杂。复杂一些的语法主要用在模板中设置排版格式。Typst英文文档:Typst Documentation,中文社区文档:概览 – Typst 中文文档 (typst-doc-cn.github.io)在上手Typst前,建议先过一遍文档。
Typst基本语法与Markdown类似,基本通用。
= 一级标题
== 二级标题
=== 三级标题
*加粗*
_斜体_
- 无序列表
- 无序列表
- 无序列表
+ 有序列表
+ 有序列表
+ 有序列表
图片
#image("img1.png", width: 70%)
表格
#table(
columns: 2,
[*Amount*], [*Ingredient*],
[360g], [Baking flour],
[250g], [Butter (room temp.)],
[150g], [Brown sugar],
[100g], [Cane sugar],
[100g], [70% cocoa chocolate],
[100g], [35-40% cocoa chocolate],
[2], [Eggs],
[Pinch], [Salt],
[Drizzle], [Vanilla extract],
)
Typst公式使用自带的公式引擎,语法详见Math – Typst Documentation,另外,符号有专门的符号表,General Symbols – Typst Documentation。
如果你仍旧放不下LateX,你也可以使用Latex公式编辑,只需要引入第三方包Mitex
即可。mitex – Typst Universe
#import "@preview/mitex:0.2.2": * //版本请更改为最新发布版本
#mitext(`
\iftypst
#set math.equation(numbering: "(1)", supplement: "equation")
\fi
\section{Title}
A \textbf{strong} text, a \emph{emph} text and inline equation $x + y$.
Also block \eqref{eq:pythagoras}.
\begin{equation}
a^2 + b^2 = c^2 \label{eq:pythagoras}
\end{equation}
`)
到此为止,你已经可以使用Typst来撰写markdown能撰写的所有文档了!
Use a Template
当然,我们使用Typst不是用来替代markdown的。对于论文写作,更看重的是排版。与Latex一样,Typst也有模板,我们只需要去找到需要的论文模板,使用即可。
一些模板资源:
- Typst Universe:Search — Typst: Universe
- 中文社区论文模板:中文用户指南 – Typst 中文文档 (typst-doc-cn.github.io)
本文不讨论如何定制模板,对于一般用户,虽然Typst刚刚起步,不过社区已经有了不少优质的论文模板可供使用,拿过来改改参数就可以了。你也可以在Typst App Web页面创建项目时自定义论文的样式。
模板使用举例
我们以美国数学建模的论文写作为例,先找一份论文模板:sxdl/MCM-Typst-template: A Typst template for COMAP’s Mathematical Contest in MCM/ICM. (github.com) 这份模板还没有在提交到官网,因此我们clone到本地,将lib.typ
和fonts文件复制到新的项目文件夹中,然后,新建文件main.typ
,编辑
#import "lib.typ": *
如果是已经发布的模板,可以使用preview自动下载
#import "@preview/mcm-scaffold:0.1.0": *
之后,我们根据文档里的步骤,修改指定未知的参数,然后继续往下码字即可。
#import "@preview/mcm-scaffold:0.1.0": *
#show: mcm.with(
title: "A Simple Example for MCM/ICM Typst Template",
problem-chosen: "ABCDEF",
team-control-number: "1111111",
year: "2025",
summary: [
#lorem(100)
#lorem(100)
#lorem(100)
#lorem(100)
],
keywords: [MCM; ICM; Mathemetical; template],
magic-leading: 0.65em,
)
// Your content goes below.
可以看到渲染结果:
Conclusion
OK!至此,你已经可以使用Typst完整完成一篇论文的写作了。从配置到使用,不用半小时就好了。相比LateX动辄几个G的包,真的方便很多!
关于论文的排版,请参考官方文档Formatting – Typst Documentation,另外,一些高级的排版技巧,文档中没有体现,后续文章将分享一些Typst的排版技巧。