Skip to main content
Version: 0.3.x

Simple Animations

Touying provides two markers for simple animation effects: #pause and #meanwhile.

pause

The purpose of #pause is straightforward – it separates the subsequent content into the next subslide. You can use multiple #pause to create multiple subslides. Here's a simple example:

#slide[
First #pause Second

#pause

Third
]

image

This example will create three subslides, gradually revealing the content.

As you can see, #pause can be used inline or on a separate line.

meanwhile

In some cases, you may need to display additional content simultaneously with #pause. In such cases, you can use #meanwhile.

#slide[
First

#pause

Second

#meanwhile

Third

#pause

Fourth
]

image

This example will create only two subslides, with "First" and "Third" displayed simultaneously, and "Second" and "Fourth" displayed simultaneously.

Handling set-show rules

If you use set-show rules inside slide[..], you might be surprised to find that subsequent #pause and #meanwhile do not work. This is because Touying cannot detect the content inside styled(..) (content after set-show rules is encompassed by styled).

To address this issue, Touying provides a setting parameter for the #slide() function. You can place your set-show rules in the setting parameter. For example, changing the font color:

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

#pause

Second
]

image

Similarly, Touying currently does not support #pause and #meanwhile inside layout functions like grid. This is due to the same limitation, but you can use the composer parameter of #slide() to meet most requirements.

Internals

Touying doesn't rely on counter and locate to implement #pause. Instead, it has a parser written in Typst script. It parses the input content block as a sequence and then transforms and reorganizes this sequence into the series of subslides we need.