Typst-介绍和基本使用

Typst 官网
Typst 官方文档
Typst Github 官网

介绍

Typst 是一个新的基于标记语言的排版系统, 旨在提供与 LaTeX 一样强大的功能, 但使用起来要简单得多.

其与 LaTeX 的简单对比如下:

Typst LaTeX
语法 简洁一致 不同包约定可能不同
编译速度 通常只需几毫秒 通常要几秒
环境搭建 原生支持多种语言, 不必下载大量宏包 需安装大量宏包
包管理 有自己原生的包管理器 也有包管理
数学排版 复杂数学排版待提高 复杂数学排版支持好

相关概念

TikZ

TikZ, TikZ ist kein Zeichenprogramm, 是一个用于创建矢量图形和绘图的强大的绘图工具. 是一个灵活而全面的宏包, 可以与 LaTeX 一起使用, 用于在文档中插入高质量的图形和图表.

CJK

CJK, “Chinese, Japanese, Korean”, 指中日韩字符集.

安装

在 Archlinux 下, 可以直接用 pacman 安装:

1
sudo pacman -S typst

typst 是 Typst 的编译器.

如果有 Rust 开发环境, 也可以:

1
cargo install --git https://github.com/typst/typst --locked typst-cli

typst compiler 基本使用

查看帮助文档

使用 help 子命令:

1
2
3
4
5
# Prints available subcommands and options.
typst help

# Prints detailed usage of a subcommand.
typst help watch

静态编译

使用 compile 子命令:

1
2
3
4
5
# Creates `file.pdf` in working directory.
typst compile file.typ

# Creates PDF file at the desired path.
typst compile path/to/source.typ path/to/output.pdf

即时编译

watch 子命令:

1
2
# Watches source files and recompiles on changes.
typst watch file.typ

查看可用字体

1
typst fonts

会打印出 font 列表.

添加字体

结合 compilefonts 子命令:

1
2
3
4
5
6
7
8
# Adds additional directories to search for fonts.
typst compile --font-path path/to/fonts file.typ

# Lists all of the discovered fonts in the system and the given directory.
typst fonts --font-path path/to/fonts

# Or via environment variable (Linux syntax).
TYPST_FONT_PATHS=path/to/fonts typst fonts

Typst 基本语法

Typst 文件一般以 typ 结尾.

添加标题

=, 如:

1
2
3
4
5
6
= Introduction
In this report, we will explore the
various factors that influence _fluid
dynamics_ in glaciers and how they
contribute to the formation and
behaviour of these natural structures.

二级标题用 ==, 三级用 === 等. 分自然段直接空行即可:

1
2
3
4
5
6
7
8
9
10
= Introduction
== second
=== third
In this report, we will explore the
various factors that influence _fluid
dynamics_ in glaciers and how they
contribute to the formation and
behaviour of these natural structures.

hello newline

列表

有序列表用 +, 如:

1
2
3
+ The climate
+ The topography
+ The geology

编译的结果如:

无序列表则用 -, 如:

1
2
3
- The climate
- The topography
- The geology

编译结果如:

子列表如:

1
2
3
4
5
+ The climate
- Temperature
- Precipitation
+ The topography
+ The geology

(这里对缩进无要求)

添加图片

Typst 支持的图片格式有 PNG, JPEG, GIF, 以及 SVG.

通过 image 函数来添加图片, 这里使用相对路径, 如:

1
#image("wallhaven-5dpvr1_1920x1080.png")

编译效果如下:

可以通过添加参数来改变图片效果, 如改变宽度:

1
#image("wallhaven-5dpvr1_1920x1080.png", width: 70%)

70% 外, 还可以用 0.7, 1cm, 0.7in 等.

添加 caption

figure 函数来实现更复杂的功能, 如这里添加 caption:

1
2
3
4
5
6
#figure(
image("wallhaven-5dpvr1_1920x1080.png", width: 70%),
caption: [
hello wallpaper
],
)

引用图片

需要先给图片加上一个 label 如这里的 <wallpaper>:

1
2
3
4
5
6
7
8
hello newline @wallpaper

#figure(
image("wallhaven-5dpvr1_1920x1080.png", width: 70%),
caption: [
hello wallpaper
],
) <wallpaper>

渲染结果如:

添加 bibliography

bibliography function, 其参数为一个 bibliography file:

1
2
3
4
5
= Methods
We follow the glacier melting models
established in @glacier-melt.

#bibliography("works.bib")

渲染结果如:

数学公式

行内数学公式同样用 $ 包裹, 如:

1
2
The equation $Q = rho A v + C$
defines the glacial flow rate.

若想让公式独占一行, 可:

1
2
3
4
The flow rate of a glacier is
defined by the following equation:

$ Q = rho A v + C $

注意两边的空格.

避免变量干扰, 可以用 " 包裹字符:

1
2
3
4
The flow rate of a glacier is given
by the following equation:

$ Q = rho A v + "time offset" $

也可以正常跨行写:

1
2
3
4
Total displaced soil by glacial flow:

$ 7.32 beta +
sum_(i=0)^nabla Q_i / 2 $

下标用 _, 上标用 ^:

1
2
3
4
5
Total displaced soil by glacial flow:

$ 7.32 beta +
sum_(i=0)^nabla
(Q_i (a_i - epsilon)) / 2 $

Typst-介绍和基本使用
http://example.com/2024/04/10/Typst-介绍和基本使用/
作者
Jie
发布于
2024年4月10日
许可协议