跳转至

Typst 学习

【并不复杂的Typst讲座 [ITalk技术沙龙]】

Hello World

#set page(width: 20em, height: auto)
#show heading.where(level: 1): set align(center)

#show "Typst": set text(fill: blue, weight: "bold")
#show "LaTeX": set text(fill: red, weight: "bold")
#show "Markdown": set text(fill: purple, weight: "bold")

= Typst 讲座
Typst 是为 *学术写作* 而生的基于 _标记_ 的排版系统。

Typst = LaTeX 的排版能力 + Markdown的简洁语法 + 现代的脚本语言

#underline[本讲座]包含一下内容:

+ 快速入门 Typst
+ Typst 编写各类模版
  - 笔记、论文、简历和 Slides
+ Typst 高级特性
  - 脚本、样式和包管理
+ Typst 周边生态开发体验
  - Pinit、MiTeX、Touying  VS Code 插件

```py 
print("Hello Typst!")
![1779452767630](image/typst/1779452767630.png)

## 标记只是语法糖

= 一级标题 <=> #heading(level: 1, [一级标题])

== 二级标题 <=> #heading(level: 2, [二级标题])

加粗 <=> #strong[加粗]

强调 <=> #emph[强调]

  • 无序列表 <=> #list.item[无序列表]
  • 有序列表 <=> #enum.item[有序列表]

/ 术语: 术语列表 <=> #terms.item[术语][术语列表]

print('Hello')

<=>

raw(lang: "py", block: true, "print('Hello Typst!')")

## 标记模式和脚本模式

- 标记模式下,使用`#`进入脚本模式

    - 脚本模式下不需要额外井号,如`#heading(strong([加粗]))`
    - 大段脚本代码可以使用花括号`{}`, `{1 + 1}`

- 脚本模式下,使用方括号`[]`进入标记模式,称为内容块

    - 是强类型语言,有`int`, `str`
    - 内容块`[]`类型`content`是Typst的核心类型,可嵌套使用
    - `fn(..)[XXX][YYY]`是`#fn(.., [XXX], [YYY])`的语法糖

## Set/Show Rules

- Set 规则可以设置样式,即为函数设置**参数默认值**
    - `#set heading(numbering:  "1.")`
    - 这样之后所有`#heading[标题]`都会默认是`#heading(numbering: "1.", [标题])`

- Show 规则用于全局替换  **宏**

## 数学公式

- `$x$`行内公式,`$x^2 = 1$ <circle>`是行间公式
- 相较于 $\LaTeX$ 有一些语法糖,引入宏包也可以使用$\LaTeX$语法

## 制作模版

布拉布拉

## 制作简历模版

## 制作 Slides