跳到主要内容
版本:0.3.x

简单动画

Touying 为简单的动画效果提供了两个标记:#pause#meanwhile

pause

#pause 的用途很简单,就是用于将后续的内容放到下一张 subslide 中,并且可以使用多个 #pause 以创建多张 subslides,一个简单的例子:

#slide[
First #pause Second

#pause

Third
]

image

这个例子将会创建三张 subslides,逐渐地将内容展示出来。

如你所见,#pause 既可以放在行内,也可以放在单独的一行。

meanwhile

有些情况下,我们需要在 #pause 的同时展示一些其他内容,这时候我们就可以用 #meanwhile

#slide[
First

#pause

Second

#meanwhile

Third

#pause

Fourth
]

image

这个例子只会创建两张 subslides,并且 "First" 和 "Third" 同时显示,"Second" 和 "Fourth" 同时显示。

如何处理 set-show rules?

如果你在 slide[..] 里面使用了 set-show rules,你会惊讶的发现,在那之后的 #pause#meanwhile 都失效了。这是因为 Touying 无法探知 styled(..) 内部的内容(set-show rules 后的内容会被 styled 囊括起来)。

为了解决这个问题,Touying 为 #slide() 函数提供了一个 setting 参数,你可以将你的 set-show rules 放到 setting 参数里,例如修改字体颜色:

#slide(setting: body => {
set text(fill: blue)
body
})[
First

#pause

Second
]

image

同理,Touying 目前也不支持 grid 这类 layout 函数内部的 #pause#meanwhile,也是由于同样的限制,但是你可以使用 #slide()composer 参数,大部分情况下都应该能满足需求。

原理

Touying 不依赖 counterlocate 来实现 #pause,而是用 Typst 脚本写了一个 parser。它会将输入内容块作为 sequence 解析,然后改造重组这个 sequence 为我们需要的一系列 subslides。