在 Hugo 中为 Typst 配置语法高亮(PaperMod 主题)

如果你使用 Typst 的话,你肯定想在自己的 Blog 中对 Typst 代码进行高亮。但由于目前为止 Typst 还处于发展阶段,比较小众, highlight.js 并没有对 Typst 进行支持。但感谢社区的贡献,一款 highlight.js 的 Typst 支持库诞生了:来自于 typst.ts 项目的 highlighter。 本文主要针对于 Papermod 主题进行 highlighter 的配置。 首先我们需要进入到 Blog 目录下的 themes 目录,并找到 PaperMod 的位置。在此我用 %blog_dir%/themes/PaperMod 表示。可以发现其中的结构如下: . ├── LICENSE ├── README.md ├── assets ├── go.mod ├── i18n ├── images ├── layouts └── theme.toml 首先我们先要进入到 assets 目录更换 highlight.js 的版本,因为 highlighter 最低需要 11.9.0 的版本。我们前往官网下载最新版本,并将 highlight.min.js 丢入 ./assets/js 替换掉原本的(可以对原先的 highlight.js 进行备份操作)。 然后我们前往 ./layouts/partials/head.html 进行 HTML 头的修改以初始化 highlight....

December 4, 2023 · 2 min · EvanLuo42

Typst Tablex 简单教程

Typst 目前最好用的表格库应该就是 Tablex 了,虽然官方文档还是很清楚的,但是不妨在这里逐步实现一个复杂的三线表。 在读完本文后,你将会实现如下的效果: 配置 Typst 现在已经推出了包管理器功能。在 .typ 文件当中添加一行代码即可引入 Tablex 库: #import "@preview/tablex:<version>": * // <version> 最好填最新版 如果只想引入需要的函数,可以把 * 换成对应的函数名称 使用 首先我们需要使用 Tablex 的 tablex() 函数显示出一个表格: #tablex() 然后我们要进行一些配置,比如列数、居中等: #tablex( columns: 11, // 通过查看成品图,可以发现总共有 11 列数据 align: center + horizon, // 在每一个 cell 中上下左右都居中对齐 auto-vlines: false, // 因为我们要做的是三线格,所以把垂直的线去掉 repeat-header: true, // 在表格过长,需要两页展示时,会在显示内容的同时,重新加上表头 ) 这是表格的配置部分,下面我们要来写表头。 在成品图当中,我们发现有一些表头横跨了三行,也有的表头横跨了十列。这是通过 colspanx() 与 rowspanx() 实现的。colspanx() 指的是该表头横跨几列。rowspanx() 同理。在编写的时候,我们可以把这种横跨了几列或几行的元素看作一个单独的 cell,把它们当做普通的单元格来写,这样会好理解一点。也就是说我们的成品表格的表头应该有三行。 那我们可以写出以下代码: #tablex( columns: 11, align: center + horizon, auto-vlines: false, repeat-header: true, // 第一行 rowspanx(3)[*Sugar \ Concn....

December 3, 2023 · 2 min · EvanLuo42