【前端:Typst】--let关键字的用法
在 Typst 中,#let
命令是用于定义变量和函数的核心指令,其用法非常灵活。以下是详细的用法说明和示例。
目录
1.基础变量定义
2.函数定义
3.默认参数
4.内容块参数(Content Blocks)
5.递归函数
1.基础变量定义
// 定义简单变量
#let name = "Typst"
#let version = 0.10
#let is_active = true// 使用变量
当前系统: #name\
版本号: #version\
激活状态: #if is_active {"激活"} else {"未激活"}
注意:Typst 不支持中文作为变量或直接输出的标识符,需要使用引号"中文字符"
2.函数定义
// 基本函数
#let greet(name) = "Hello, " + name + "!"
#greet("World") // 输出:Hello, World!
多参数函数
#let add(a, b) = a + b
1 + 2 = #add(1, 2)
注意:调用函数和变量的时候都需要添加 #
3.默认参数
#let banner(text1, color: blue) = {set text(fill: color, weight: "bold")[ #text1 ]
}#banner("重要通知")\ // 蓝色
#banner("紧急警告", color: red) // 红色
注意:在 Typst 中,大括号
{}
是代码块,中括号[]
表示内容块(文本段落)。如果你想让一个函数“输出”一段可见的文本内容,必须把它写在[]
中。,文本前面需要添加‘#’也就是说:通过函数调用文本需要是一下格式:
[ #text1 ]
注意:大括号用来定义函数体的内部约束,定义函数或组件,第二就是代码块
4.内容块参数(Content Blocks)
#let framed(body) = {box(stroke: 1pt,inset: 8pt,body)
}#framed[这是一个带边框的内容区块,可以包含 *任意* 内容。
]
box
创建一个矩形容器,可用于布局
5.递归函数
#let countdown(n) = {if n <= 0 {text("发射!")} else {str(n) + " " + countdown(n - 1)
}
}#countdown(5)