Presentation Tools

On tools for presentation.

Standard technology

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.

Aside: I was going to try out the cloud-based Microsoft Sway which addresses some of my Powerpoint irritations. However it also supports no mathematics so is once again a non-starter for me.

RMarkdown slides

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.

RMarkdown Powerpoint

RMarkdown Powerpoint is simple.

The main trick is known the speaker notes, which look like this.

::: notes
This is a speaker note.

PDF slides

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 automagically via render frames.

Latex slides

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.

Note that BibTeX does not work with beamer. BibLaTeX, by contrast, seems to.

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.


Jupyter support reveal.js HTML slide output. TBD.


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:

  1. use nbextensions_configurator; this tool offers an interactive way to enable, disable and tweak all notebook extensions - see screenshot below;
  2. define settings in JSON files, typically by using python scripts;
  3. you can also embed settings in a specific notebook’s metadata;
  4. and you can also provide your own CSS file(s), that can supersede styling of the various DOM pieces.

PDF export is clunky but works.

HTML slides

HTML slides are powerful because they can leverage all the powers of web browsers, which are a powerful execution platform these days. Many of the systems mentioned above output to HTML slides, but you can also use them bareback.

reveal.js and remark.js are the best I have tried. Reveal.js seems more popular, although a little over-engineered. There are many additional options listed below.


reveal.js is the poster child for HTML slides. the online editor makes it easier to collaborate with my non-HTML-nerd colleagues.

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.

It has native R support via xaringan, which is Yihui Xe’s favourite. It has such luxuries as presenter notes and interactive style generator.

It was not immediately obvious what dialects of markdown are supported by remark.js. (not pandoc!) Specifically it supports gfm and commonmark. The documentation for the former is superior.

Other HTML slide systems

Alternatives: Animations and interactives

python animations?

Warning! Experimental comments system! If is does not work for you, let me know via the contact form.

No comments yet!

GitHub-flavored Markdown & a sane subset of HTML is supported.