Typst学习手记

记录一下在学习和使用Typst过程中的知识点

格式控制类

首行2字符空白+两端对齐

1
#set par(first-line-indent: (amount: 2em, all: true), justify: true)

标题黑体+正文仿宋(CJK)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#show heading: it => {
  let spacing = if it.level == 1 {
    1em
  } else {
    0.8em
  }
  let weight = if it.level == 1 {
    "bold"
  } else if it.level == 2 {
    "semibold"
  } else {
    "regular"
  }
  let size = if it.level == 1 {
    font-size.at("3")
  } else if it.level == 2 {
    font-size.at("4")
  } else {
    font-size.at("-4")
  }
  set block(above: spacing, below: 7pt)
  set text(weight: weight, size: size, font: (font.main, font.Sans))
  it
}

自定义类

有序列表序号客制化

1
#set enum(numbering: "a.")

常用数组/函数

CJK大小-像素大小

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#let font-size = (
  "0": 42pt,
  "-0": 36pt,
  "1": 26pt,
  "-1": 24pt,
  "2": 22pt,
  "-2": 18pt,
  "3": 16pt,
  "-3": 15pt,
  "4": 14pt,
  "-4": 12pt,
  "5": 10.5pt,
  "-5": 9pt,
  "6": 7.5pt,
  "-6": 6.5pt,
  "7": 5.5pt,
  "-7": 5pt,
)

字体

1
2
3
4
5
6
7
#let font = (
  main: "IBM Plex Serif",
  mono: "IBM Plex Mono",
  Serif: "Noto Serif CJK SC",
  Sans: "Noto Sans CJK SC",
  size: font-size.at("-4"),
)

大标题

1
2
3
4
#let title(title) = {
  set align(center)
  text(title, weight: "bold", size: font-size.at("-2"), font: (font.main, font.Sans))
}
使用 Hugo 构建
主题 StackJimmy 设计,DoubleCat 修改
© Copyright Licensed under CC BY-NC-SA 4.0