Typst的简单教程
为什么使用Typst
Markdown是一种简易的标记语言,但其不支持自定义函数和嵌套等
相对应的另一种常用语言是LaTeX,但其非常臃肿和复杂,并且不支持html
Typst是一种静态脚本语言,有着类似js的灵活性
起步
标题使用 =代替#无序列表使用 -而不是*或+有序列表可用 +代替1.等加粗使用 *包围而不是**不支持Markdown的链接、图片、表格语法
.typ文件,在开头加入以下内容:#import "/lib/lib.typ": *;
#show: template;
#let title = [这里是标题];
#set raw(lang: "java");#import "/lib/lib.typ": *; // 导入依赖,我们写了一些基础设施在这里
#show: template; // 应用模板(样式),这个模板也在基础设施中
#let title = [这里是标题]; // 设置文档标题
#set raw(lang: "java"); // 设置代码块的默认语言,例如java标记模式
#开始,结束的;可以省略,例如:文本直接写在这里
- 支持标题等特殊语法
- 支持无序列表
+ 支持
+ 有序
+ 列表
```text
支持代码块
```
`支持行内代码`
#let x = "这是一个变量";
1#x;2#x;3#x;- 支持标题等特殊语法
- 支持无序列表
- 支持
- 有序
- 列表
支持代码块支持行内代码代码模式
常量字面值
#"字符串字面量";
#114514; // 整数
#3.1415926; // 浮点数
#true; // 布尔值
#none; // 空字符串字面量 114514 3.1415926
true代码块
{}包围,代码块也是表达式,其中每一个语句的值则为代码块的值,多个则拼接,没有则为none(插入进标记模式中不显示);可以省略#{ // 代码块开始
"字符串表达式1";
"表达式2";
};字符串表达式1表达式2
变量
let创建变量,使用=赋值#{
let x = 10;
x = x + 5;
x;
};15
#let x = 10;
#(x = x + 5); // 此处添加括号,否则只解析#x为代码
#x;15
函数
#let add(a, b) = a + b;
#add(1, 2);3
表格
table函数。columns指定列数,之后按行优先依次给出每个单元格,单元格是[]内容块。相邻的[]各算一个参数,所以直接连着写就行:#table(columns: 2, align: center + horizon)[偏移][含义
][`0x00`][文件总大小 − 4
][`0x04`][schema 版本 = 1
]| 偏移 | 含义 |
0x00 | 文件总大小 − 4 |
0x04 | schema 版本 = 1 |
,分隔)时才需要逗号 —— 括号内相邻的[]会被解析成函数调用,报expected function, found content。数学模式
$包围,在此文档不常用