Tools for creating slide presentations with Julia content

What types of tools do you use to create slide presentations including Julia content? Having spent too much of my life writing LaTeX/Beamer I prefer to start with markdown instead, such as a .jmd file for the Weave package. Weave.convert_docs can be used to create a Jupyter notebook with presentations using Reveal.js. This works but Reveal isn’t exactly flashy. Can you suggest alrernatives?

2 Likes

I recently used Remark.jl for a presentation. It worked quite nicely. It’s based on Remark.js, which allows for some flashyness after a bit of a learning curve.

4 Likes

How well does Remark work with \LaTeX?

1 Like

If you’re willing to post-process the Jupyter notebook then you can use the RISE plug in to make it into an interactive presentation (in which you can run code etc).

2 Likes

That’s pretty much the way I am doing things now. I think most Jupyter installations with IJulia have RISE built-in.

It seems that conversion back to a .jmd file using Weave.convert_doc loses the markup information about slide boundaries, etc.

I thought also of trying the beamer approach through Weave or, perhaps, converting .jmd to .md and pushing it through the xaringan package for R. Then I realized that xaringan uses Remark.js underneath and I am now trying to write for Reveal.jl. I’ll report back on how that goes.

2 Likes

I think it works well now:

https://github.com/piever/Remark.jl/issues/16

cc @piever

4 Likes

LaTeX support in Remark.jl should be good now, with correct KaTeX font rendering.

Remark.jl allows passing a custom css file with your own custom theme (not sure if there are many premade themes already available), so it is possible to add “flashyness” if one is willing spend some time tweaking the style.

1 Like

How do I use Remark in Pluto Notebooks? I am able to install it and run piever’s presentation, but how can I make a new presentation? I also want to be able to run programs in the slides. Can you please help me?
Thank you.

Pluto has a built-in presentation mode. Use present() from your browser’s Javascript console,
or make a button using

html"<button onclick=present()>Present</button>"

(Don’t remember who I got that from, sorry!)

10 Likes