Typst:强大且易上手的排版系统

Typst:强大且易上手的排版系统

技术背景

Typst 是一款基于标记的新型排版系统,旨在具备与 LaTeX 相当的强大功能,同时更易于学习和使用。它具有以下特性:

  1. 内置常用格式标记:为最常见的排版任务提供内置标记。
  2. 灵活的功能:可应对其他各类排版需求。
  3. 紧密集成的脚本系统:支持排版中的脚本操作。
  4. 多种排版功能:涵盖数学公式排版、参考文献管理等。
  5. 快速编译:借助增量编译实现快速编译。
  6. 友好的错误提示:在出现问题时给出友好的错误信息。

实现步骤

安装

Typst 的命令行界面(CLI)可通过多种方式获取:

  1. 从发布页面获取:可从 Typst 发布页面 下载最新版本的源代码和预构建二进制文件。下载适用于你平台的存档文件,并将其放置在系统路径中。若要保持更新,可运行 typst update
  2. 使用包管理器安装
    • Linux:可在 Repology 查看,也可使用 Snap 安装。
    • macOS:使用 brew install typst 安装。
    • Windows:使用 winget install --id Typst.Typst 安装。
  3. 使用 Rust 工具链安装
    • 安装最新发布版本:cargo install --locked typst-cli
    • 安装开发版本:cargo install --git https://github.com/typst/typst --locked typst-cli
  4. Nix 用户:使用 nix-shell -p typst 构建和运行开发版本,如 nix run github:typst/typst -- --version
  5. Docker 用户:运行预构建镜像 docker run ghcr.io/typst/typst:latest --help

使用

安装完成后,可按以下方式使用 Typst:

  1. 编译文档
    • 在当前工作目录生成 PDF 文件:typst compile file.typ
    • 在指定路径生成 PDF 文件:typst compile path/to/source.typ path/to/output.pdf
  2. 实时监控:监控源文件,文件更改时自动重新编译:typst watch file.typ
  3. 字体设置
    • 添加字体搜索路径:typst compile --font-path path/to/fonts file.typ
    • 列出发现的字体:typst fonts --font-path path/to/fonts 或通过环境变量设置(Linux 语法):TYPST_FONT_PATHS=path/to/fonts typst fonts
  4. 查看帮助
    • 查看可用子命令和选项:typst help
    • 查看子命令详细用法:typst help watch

核心代码

以下是一个 Typst 文档示例,展示了页面设置、标题、数学公式、脚本等功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#set page(width: 10cm, height: auto)
#set heading(numbering: "1.")

= Fibonacci sequence
The Fibonacci sequence is defined through the
recurrence relation $F_n = F_{n-1} + F_{n-2}$.
It can also be expressed in _closed form:_

$ F_n = round(1 / sqrt(5) phi.alt^n), quad
phi.alt = (1 + sqrt(5)) / 2 $

#let count = 8
#let nums = range(1, count + 1)
#let fib(n) = (
if n <= 2 { 1 }
else { fib(n - 1) + fib(n - 2) }
)

The first #count numbers of the sequence are:

#align(center, table(
columns: count,
..nums.map(n => $F_#n$),
..nums.map(n => str(fib(n))),
))

最佳实践

  1. 使用在线编辑器:若追求最佳写作体验,可免费注册 Typst 的协作在线编辑器。
  2. 遵循设计原则
    • 一致性简化:掌握 Typst 中一种操作方法后,可将其应用到其他类似操作。例如,= Introduction#heading[Introduction] 功能相同,前者是后者的语法糖。
    • 可组合性实现强大功能:Typst 通过提供可组合的系统,实现灵活排版。
    • 增量性保证性能:Typst 的所有语言特性都支持增量编译,借助 comemo 系统在后台完成大部分复杂工作。

常见问题

  1. 编译失败:若编译失败,检查错误提示信息,可能是语法错误或缺少依赖项。
  2. 字体问题:若字体显示异常,确保字体路径设置正确,可使用 typst fonts 命令检查字体发现情况。
  3. 版本问题:使用包管理器安装时,版本可能落后于最新发布版本,可从发布页面获取最新版本。

Typst:强大且易上手的排版系统
https://119291.xyz/posts/typst-powerful-and-easy-typesetting-system/
作者
ww
发布于
2025年7月19日
许可协议