Typst 是为科学写作而诞生的基于标记的排版系统。 它被设计之初就是作为一种替代品,用于替代像LaTeX 这样的高级工具,又或者是像 Word 和 Google Docs 这样的简单工具。而 Emacs作为一款以自由著称的编辑器,也是支持编写Typst的。本文将逐步介绍如何在 Emacs上使用 Typst

下载Typst

首先我们需要下载 typst 到具体的 Gnu/Linux 发行版上,我使用Arch系的发行版,所以我使用以下的命令就能安装 typst:

1
sudo pacman -S typst

安装好后使用如下命令查看是否配置进环境变量:

1
typst --version

如果出现如下类似的信息说明安装成功:

1
2
[user@archlinux ~]$ typst --version
typst 0.10.0 (70ca0d25)

配置Emacs

typstEmacs 上有两个包,分别是typst-ts-modetypst-mode。前者使用了 elpaca 作为包管理器,而后者使用 straight 作为包管理器。我不熟悉 elpaca ,所以选择使用了 typst-mode 。这是一种实用主义的折中选择,考虑到 typst-mode 已经被 archived ,但这不妨按我们使用它,它依旧很好用。

首先我们需要安装 staright ,如果你正在使用 staright 请跳过这个部分。 你需要把下面的代码放置到 init.el 中, 同时保证 Emacs 能顺利访问 GitHub 。如果你不知道如何让 Emacs 实现代理,可以通过在 Shell 中启动。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
;; set straight.el
(defvar bootstrap-version)
(let ((bootstrap-file
       (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
      (bootstrap-version 6))
  (unless (file-exists-p bootstrap-file)
    (with-current-buffer
        (url-retrieve-synchronously
         "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
         'silent 'inhibit-cookies)
      (goto-char (point-max))
      (eval-print-last-sexp)))
  (load bootstrap-file nil 'nomessage))

如果由于网络问题没有正确安装,你可以选择删除在 .emacs.d 中出现的 straight 目录,然后重新启动Emacs进行安装。

staright 安装完毕后,将下面的代码放置在 init.el 中后,重启 EmacsEmacs 便会自动进行安装 typst-mode

1
2
(use-package typst-mode
   :straight (:type git :host github :repo "Ziqi-Yang/typst-mode.el"))

同样需要有良好的网络作为基础。

重启后,我们便可以使用 typst-mode 编写 typst 代码了。

安装PDF浏览器(可选eaf-pdf-viewer)

为了能顺利显示PDF,你需要确保你的 GNU/Linux 上至少有一个pdf浏览器,如果你想将pdf浏览器嵌入到emacs中显示,你可以参考我写的《如何在Arch Linux上安装EAF-PDF-Viewer》一文或在查询其他人的相关博客。

增强实时性(可选)

在打开 typst-toggle-watch 后,会弹出默认使用的PDF浏览器。此时你在emacs上键入 typst 代码后使用保存快捷键后,相应的pdf浏览器 会自动更新。那么如果要增强实时性,做到更改后自动更新pdf,最简单的办法是我们让 emacs 自动保存。著名的前苏联诗人沃兹·基硕德·斯基曾说过:“我们也许永远不能成为巨人,但是我们可以是使用妖术的恶魔,让我们用智慧欺骗巨人们打架吧!”。懒猫大大 写过一个名为auto-save 的插件。 我们将auto-save的代码嵌入到 init.el 中就可以实现增强实时性

typst