More sophisticated piecewise revealing
#one-by-one
#pause
may be considered syntactically a bit surprising by some although (or
because) it is very convenient to use.
If you prefer to signal the grouping of content appearing together syntactically
by using scopes, you can use #one-by-one
:
#one-by-one[Do you know ][$pi$ ][to a thousand decimal places?]
resulting in
If we still want to uncover certain elements one after the other but starting
on a later subslide, we can use the optional start
argument of #one-by-one
:
#one-by-one(start: 3)[This ][came ][pretty late.]
resulting in
This optional start
argument exists for all functions displayed on this page.
#line-by-line
#one-by-one
is especially useful for arbitrary contents that you want to display
in that manner.
Sometimes, it produces a bit too much syntactical noise again with
all the brackets between content, though.
That is especially true if each piece fits into a single line, as for example
for a simple bullet list.
Instead of
#one-by-one[
- first
][
- second
][
- third
]
you can also write
#line-by-line[
- first
- second
- third
]
resulting in
The content provided as an argument to #line-by-line
is parsed as a sequence
by Typst with one element per line (hence the name of this function).
We then simply iterate over that sequence
as if it were given to #one-by-one
.
#list-one-by-one
What if you want a more customized bullet list, though?
The code above produces a tight list, for example, and maybe you do not want that.
All your needs are covered by the #list-one-by-one
function:
#list-one-by-one(marker: [--], tight: false)[first][second][third]
resulting in
As you can see, you can provide any arguments that the
list
function accepts.
#enum-one-by-one
Analogously, there is the same thing for enums, accepting the same arguments as
enum
:
#enum-one-by-one(numbering: "i)", number-align: start)[first][second][third]
resulting in
#terms-one-by-one
And finally we have a function to produce a term list:
#terms-one-by-one(separator: [~---~])[/ first: 1st][/ second: 2nd][/ third: 3rd]
resulting in
Note that #list-one-by-one
and #enum-one-by-one
expect only the body of
the individual items while you need to provide an actual term item (using the
/ term: description
syntax) to #terms-one-by-one
.
Also, you will realise that the bullet markers, the numbers, and the terms in the lists, enums, and term lists are not hidden for technical reasons, respectively. You can truly consider this either a bug or a feature... (This could be "fixed" for enums and term lists, so file an issue on GitHub if this bothers you a lot!)