Presentations: The quantum of information for all parts of society for which the quantum of information is not a tweet or a Facebook status update. Powerpoint presentations are already purported to have various oft-cited defects but these I will not discuss here. In my trade they are a necessary evil. I’m all about harm minimisation of the evil, by minimising the amount of time I must waste on it.
The default options:
- Microsoft Powerpoint.
- Apple Keynote.
Both these are a colossal waste of time, adding little to my research while sucking energy into a black hole of trying to give a shit about niggly presentation and file type compatibility issues. Both, last time I looked, had a terrible mathematical equation typesetting work flow, although Keynote went beyond terrible to abysmal in this area. Although admittedly the last time I looked it was 2011.
An alternative strategy might re-use the documentation, code, maths markup and/or graphs from my actual research articles and code.
It turns out that this is not hard as such, merely harder than it should be. Read on for options.
These are secretly HTML slides, but that is more of an implementation detail. My current default choice, supporting web display, mathematical markup, code, and dynamic interaction. Recommended. My preferred option for RMarkdown is outputting HTML slides, covered below, but it is also worth mentioning that it can output PDF slides, and crucially, Powerpoint.
The main trick is known the speaker notes, which look like this.
::: notes This is a speaker note. :::
Generate a PDF using your choice of technology Display the PDF in presentation mode using your PDF viewer. AFAICT this cannot play multimedia stuff.
Scribus is a good open source desktop publisher system
(think InDesign, but free.)
I discovered it while writing some posters, but it has
many features to recommend it for PDFs also, including an in-built
LaTeX math renderer and good support for vector graphics, and
it will even render arbitrary graphs from weird command-line software
Beamer, the LaTeX slide thingy, also works.
It is hard to do too exciting a design but this in itself is perhaps a feature.
It lends a certain reassurance to the
audience that you are performing the rituals of academia in a Right and Proper fashion.
knitr does support beamer slides too, although why would you want to do that?
There is no hope of making beamer match my corporate style guide in any sensible timeframe, but I could choose the closest approximation by looking at the example theme matrix. OTOH, who actually meets corporate style guidelines? No academic I know at any academic conference I have been to.
reveal.js HTML slide output. TBD.
wunderpresentation turns other things into presentations. For the moment, notably, trello.
In addition to the basic reveal.js integration in jupyter, there is even a convenient (although slightly restricted) version of reveal available to display and interact with jupyter notebooks as slideshows via RISE.
Customisation of style etc for RISE:
- use nbextensions_configurator; this tool offers an interactive way to enable, disable and tweak all notebook extensions - see screenshot below;
- define settings in JSON files, typically by using python scripts;
- you can also embed settings in a specific notebook’s metadata;
- and you can also provide your own CSS file(s), that can supersede styling of the various DOM pieces.
HTML slides are powerful because they can leverage all the powers of web browsers, which are a powerful execution platform these days.
reveal.js is the poster child for HTML slides. the online editor makes it easier to collaborate with my non-HTML-nerd colleagues.
- Git source code
- It has a GUI theme editor.
- There is a commercial spinoff GUI slide editor slides.com.
- jupyter notebooks support reveal.js.
- Note that Rmarkdown suppports reveal.js.
Creating themes seems to require you to fork reveal’s github repo for full generality, which feels a bit weird. Although in principle one can still just inject those CSS stylesheets as made famous by the web, right? Either way, in practice themeing can be a rabbit hole of flex-box and responsive media queries.
Do you need to preview slideshows to colleagues who are allergic to html? You can export as a PDF, although it’s not quite as immediate as you’d hope.
See also sundry workflow notes.
remark.js is mostly similar to Reveal.js, is a more minimalist maybe and a little tidier.
Other HTML slide systems
The classic is Eric Meyer’s S5, although it’s showing its age. No longer recommended.
Elegant but no longer maintained, deck.js …
marp is an integrated markdown presentation writer
an interactive tutorial on making interactive tutorials using d3.js (which would also work fine with
So how do you actually give a good presentation?
Like most academics, I will defer this one to some unspecified future date.
Alternatives: Animations and interactives
- 3b1b’s manim is a curious passion project to create interactive mathematical animations in code, targeting e.g. youtube.