I has been inspecting the current package for creating slides, and I think I can understand the most of the logic of #pause
in their source code. However, with the Polylux
package, it seems like there are no hide
functions working on the content after it.
#let pause = {
// We need two separate `locate`s because `repetitions` needs to be updated
// using the new value of `pause-counter`.
context {
if not handout-mode.get() {
pause-counter.step()
}
}
context {
repetitions.update(rep => calc.max(rep, pause-counter.get().first() + 1))
}
}```
and nor the parsing content that utilize the mark of pause...
```typst
#let polylux-slide(body) = {
context {
if logical-slide.get().first() > 0 {
pagebreak(weak: true)
}
}
logical-slide.step()
subslide.update(1)
repetitions.update(1)
pause-counter.update(0)
// Having this here is a bit unfortunate concerning separation of concerns
// but I'm not comfortable with logic depending on pdfpc...
let pdfpc-slide-markers(curr-subslide) = context [
#metadata((t: "NewSlide")) <pdfpc>
#metadata((t: "Idx", v: counter(page).get().first() - 1)) <pdfpc>
#metadata((t: "Overlay", v: curr-subslide - 1)) <pdfpc>
#metadata((t: "LogicalSlide", v: logical-slide.get().first())) <pdfpc>
]
pdfpc-slide-markers(1)
body
subslide.step()
set heading(outlined: false)
context {
let reps = repetitions.get().first()
for curr-subslide in range(2, reps + 1) {
pause-counter.update(0)
pagebreak(weak: true)
pdfpc-slide-markers(curr-subslide)
body
subslide.step()
}
}
}
How is that possible?