文章目录
写在前面
Typst是一种排版语言(可用于出版与学术写作的可编程标记语言),与LaTex和Word类似。两位德国的研究生感觉LaTex太臃肿了,安装包都要几个G,编译速度很慢,于是决定自己开发一种用于学术写作的编程语言,也就是Typst。
真有意思。说自己“Just for fun”,然后开始开发自己的编程语言,免受LaTex臃肿运行的烦恼。
来讲讲Typst的优点吧。
- 编译快速。Typst使用Rust语言编写,这也是Typ(e+ru)st为什么叫Typst的原因,
- 体量轻便。本地离线Typst安装包仅有14mb(截止2024年2月10日),可以十分迅速地部署在自己的设备上。
- 语法简洁。上手难度与Markdown相当,语法简洁,可阅读性强。语法简洁带来的另一个好处是可以自己修改文档的样式,并且明白修改了什么样式,而LaTex必须前往浩如烟海的.cls文件中阅读意义不明代码,小心翼翼地进行修改。
- 编程简单。如果将LaTex类比为C++,Typst可以类比为Python。Typst的编程过程不拘泥于固定的表达式,可以通过多种多样灵活的编程方式实现自己的目的,提高写作效率。
- 社区开放。Typst的社区十分活跃,每个用户都可以在上面提出修改意见,而且Typst团队的更新频率很高, 几个月前的版本和现在的版本比起来丰富了太多功能,简直日新月异。
当然,Typst也有缺点。
-
支持度不高。因为它是一种新的排版语言,期刊对它的支持度不高。大多数期刊不提供Typst模板,只有Word模板和LaTex模板,因此要用Typst写英文论文可能存在论文风格不匹配的问题,需要自己设置样式。
-
中文匹配差。此外,Typst对中文的支持程度仍然存在不足之处,没有像Word那么如指臂使。
但是,不管怎么说,作为一种新的可以用来排版的语言,学习一下Typst,掌握一项新技能,总不是一件坏事儿。
那么在这里对Typst进行简明扼要地介绍,期望读者看完这篇文章之后可以达到使用Typst进行初步写作的水平。
对比阅读
安装
Typst可以在官网的app(https://typst.app/)上写作,写作结束之后导出pdf即可。这样存在的一个问题是,要是没有网络怎么办?加上Typst官网在国外,在国内进入Typst官网不太稳定,所以我安装了一个离线版Typst使用,这样更加方便。
我用的是VSCode+Typst。
Typst的安装
首先,在Typst的github(https://github.com/typst/typst)里下载Typst的安装包。
找到Releases
,点进去。
点进去之后往下拉,看见Assets
,选择typst-x86_64-pc-windows-msvc.zip
,点击下载。
typst-x86_64-pc-windows-msvc.zip
下载好之后,解压安装包,将包里面的文件放在想要放的盘符里。我放在了C盘里,新建了一个typst
文件夹用来放Typst的程序。
好,到这里Typst的安装就结束了。总结来说就俩步:下载、解压。是不是很简单。
系统路径设置
记住刚才解压文件的位置,拿我电脑上的Typst举例,可执行文件typst.exe
的路径为C:\Software\typst
,在系统变量环境的Path
中添加该路径即可。
配置完毕后,打开电脑终端(win+r 输入 cmd),输入typst
,如果显示如下画面,则说明导入路径成功。
VSCode的设置
接下来是VSCode的设置。
打开VSCode,找到扩展,搜索Typst LSP
,点击下载。下载完毕之后,启用即可。
因为我自己电脑上原来配置好了LaTex,因此PDF查看器已经设置好了。如果没有相应的PDF查看器,可以再在扩展中安装一个名为Typst Preview
的应用。
至此,Typst的前期准备工作全部完成。
下面可以开始Typst的编写了。
用Typst写作
好了,假如现在要写一篇IEEE的会议论文,一篇完整的论文包括文字、图片、表格、数学公式、参考文献,最后还要设置好符合IEEE会议论文的风格。
那么现在,打开VSCode,创建一个新项目,可以命名为con_paper.typ
。注意嗷,Typst的文件后缀名是.typ
。
和LaTex的教程一样,我这里介绍几种最常用的指令,学会这几种就可以写出一篇完整的学术论文了。
要介绍的指令有以下6种:
- 节指令:
=
、==
、… - 图指令:
#figure()
- 表指令:
#table()
- 公式指令:
$...$
- 参考文献指令:
.bib
- 引用指令:
@...
节指令
Typst的节指令很简单,输入= xxx
,即认为该文字为一级标题;
输入== xxx
,即认为该文字为