注意 / Info
本站经 Typst GmbH 许可,提供 Typst v0.10.0+后期随缘更新 官方文档的翻译,由中文社区维护。建议与官方文档一同阅读,因为可能存在错译、漏译或过时信息。如有意改进翻译内容或网站本身,可在GitHub上提出 Issue、发起 Pull Requests。此外,也欢迎加入「Typst 非官方中文交流群」(QQ 793548390)
This site provides a Chinese translation of the Typst v0.10.0+后期随缘更新 documentation maintained by the “Typst Chinese Community” with permission from Typst GmbH. We recommend using this alongside the official documentation. We welcome contributions through Issues and Pull Requests on our GitHub repository for both translation improvements and website enhancements. Feel free to join our QQ chat group “Typst 非官方中文交流群” (793548390).
Typst文档简体中文版
v0.10.0+后期随缘更新

语法

Typst 是一种标记语言。 这意味着,使用简单的语法就可以进行常用的布局操作, 再辅以 set 和 show 规则,格式化文档更加简单,更加自动化, 这些均是基于紧密集成在 Typst 内的脚本语言, 其内置大量常用函数,用户亦可根据需求自定义函数。

标记模式

Typst 为常用文档元素内置了语法标记。 这些语法标记大多只是相关函数的快捷表达方式, 下表列出了所有语法标记,以及它们的详细使用的链接地址。

名称示例详情链接
段落中断空行parbreak
着重强调*strong*strong
强调_emphasis_emph
代码段`print(1)`raw
链接https://typst.app/link
标签<intro>label
引用@introref
标题= Headingheading
无序列表- itemlist
有序列表+ itemenum
术语列表/ Term: descriptionterms
数学公式$x^2$Math
行中断\linebreak
智能引号'single' or "double"smartquote
快捷符号~, ---Symbols
代码表达式#rect(width: 1cm)Scripting
转义字符Tweet at us \#adBelow
注释/* block */, // lineBelow

数学模式

数学模式是一种特殊的语法标记模式,专门用来输入数学公式。 通过 $ 字符包裹一个数学公式, 如果这个公式头尾都至少一个空格(例如$ x^2 $),这个公式将会形成一个文档块,单独占用一行, 如果头尾没有空格(例如$x^2$),这个公式将会排版在行内, 下面是针对数学模式的语法概述:

名称示例详情链接
行内数学公式$x^2$Math
块级数学公式$ x^2 $Math
底部附缀$x_1$attach
顶部附缀$x^2$attach
分数$1 + (a+b)/5$frac
行中断$x \ y$linebreak
对齐点$x &= 2 \ &= 3$Math
变量访问$#x$, $pi$Math
字段访问$arrow.r.long$Scripting
隐式乘积$x y$Math
快捷符号$->, !=$Symbols
数学公式内字符串$a "is natural"$Math
数学函数调用$floor(x)$Math
代码表达式$#rect(width: 1cm)$Scripting
转义字符$x\^2$Below
注释$/* comment */$Below

代码模式

在代码块和表达式中,新的表达式不再前缀 # 字符。 许多代码语法元素是表达式特有的, 下面列出了代码模式下所有可用的语法:

名称示例详情链接
变量访问xScripting
字面常量1pt, "hey"Scripting
代码块{ let x = 1; x + 2 }Scripting
文档内容块[*Hello*]Scripting
括号表达式(1 + 2)Scripting
数组(1, 2, 3)Array
字典(a: "hi", b: 2)Dictionary
一元运算符-xScripting
二元运算符x + yScripting
赋值x = 1Scripting
字段访问x.yScripting
方法调用x.flatten()Scripting
函数调用min(x, y)Function
匿名函数(x, y) => x + yFunction
let 绑定let x = 1Scripting
命名函数let f(x) = 2 * xFunction
set 规则set text(14pt)Styling
set-if 规则set text(..) if .. Styling
show-set 规则show par: set block(..)Styling
函数式 show 规则show raw: it => {..}Styling
show-everything 规则show: columns.with(2)Styling
条件表语句if x == 1 {..} else {..}Scripting
for 循环for x in (1, 2, 3) {..}Scripting
while 循环while x < 10 {..}Scripting
循环流程控制break, continueScripting
函数返回return xFunction
include 模块include "bar.typ"Scripting
import 模块import "bar.typ"Scripting
从模块内 import 条目import "bar.typ": a, b, cScripting
注释/* block */, // lineBelow

注释

Typst 会忽略注释,最终生成的文档不会包含它们。 它们通常被用于剔除旧版本,或者添加标注说明。 如果一行开头是 //,这行就会被认为是注释:

// our data barely supports
// this claim

We show with $p < 0.05$
that the difference is
significant.
Preview

也可以通过 /**/ 来包裹注释,这种方式,注释可以分布于多行:

Our study design is as follows:
/* Somebody write this up:
   - 1000 participants.
   - 2x2 data design. */
Preview

转义序列

转义序列可以用来插入难于输入的特殊字符,或者 Typst 内有特殊含义的字符。 前缀一个反斜杠转义一个字符,转移序列如果是十六进制, 比如 \u{1f600},就会插入一个 Unicode 码点。 这些类型的转义序列也作用于字符串中。

I got an ice cream for
\$1.50! \u{1f600}
Preview
转到官方文档(英文)

搜索