Presentate:0.2.1 Ideas Integrated

Another presentation package?

Yes, it is.

This time, coming up with updates for

  • Relative index specification (auto and none), for using only and uncover with current number of pauses.
  • Package integration environment with render wrapper and animation module.

To emphasize on this, you now can have hidden marker and number in list and enum using step-item function:

#import "@preview/presentate:0.2.1": * 
#set page(paper: "presentation-16-9")
#set text(size: 25pt)

#slide[
  = Item and Enum 
  #set align(horizon)
  #step-item[
    - First Item
      #step-item[
        + First Subitem 
        + Second Subitem
      ]
    - Second Item 
    - Third Item
  ]
]


by methods that do not affect the layout. The other effect is you can have only and uncover that will modify the content based on current pauses. You can see this effect on this example.

For the render function, it provides framework that can modify any packages’ functions to react with the slide animation. Aside from only, uncover, pause, this module provides animate that you can choose how to hide each elements. These examples demonstrate how to use them, and to emphasize their power, integration with alchemist package is shown here:

#import "@preview/alchemist:0.1.8" as alc

#let modifier(func, ..args) = func(stroke: none, ..args) // hide the bonds with `stroke: none`
#let (single,) = animation.animate(modifier: modifier, alc.single)
#let (fragment,) = animation.animate(modifier: (func, ..args) => func(colors: (white,),..args), alc.fragment) // set atom colors to white

#slide[
  = Alchemist Molecules
  #render(s => ({
      alc.skeletize({
        fragment(s, "H_3C")
        s.push(auto)
        single(s, angle: 1)
        fragment(s, "CH_2")
        s.push(auto)
        single(s, angle: -1, from: 0)
        fragment(s, "CH_2")
        s.push(auto)
        single(s, from: 0, angle: 1)
        fragment(s, "CH_3")
      })
    },s)
  )
]

Although the API is verbose sometimes, but functional approach allows infinite modifications to comply with other packages.

For more information, here is the documentation and github. Enjoy!

2 Likes