The Living Thing / Notebooks :


Slide decks and other stylised academic dominance displays

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, starting here, with technical harm.

Standard technology

The default options:

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 transitions and fiddly filetype compatibility issues. Both, last time I looked, had a terrible mathematical equation typesetting workflow, although Keynote went beyond terrible to abysmal in this area.

An alternative strategy might re-use the documentation, code, math 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.

Plain PDF

Generate a PDF using your choice of technology Display the PDF in presentation mode using your PDF viewer.

HTML slides

HTML slides are powerful because of all the work that has gone into browser support these days.

Reveal.js and remark.js are the best, for my money. Reveal.js seems more popular, although a little overengineered. I ended up using reveal.js because the online editor makes it easier to collaborate with my non-HTML-nerd colleagues, and it is integrated with jupyter.


Some notes about reveal.js.

Creating themes seems to require you to fork reveal’s github repo for full generality, which feels a bit weird. Although you can still just inject those famous CSS style sheets as made famous by the web, right? Practically, themeing can be a rabbit hole of flex-box and responsive media queries. I suspect if you are doing too much of that you should just be using powerpoint or keynote or something, unless your day-job is actually CSS.

Note that there is a convenient (although slightly restricted) version of reveal available through interactive jupyter slideshows via RISE.

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.

[You can print a slideshow as a PDF from Chrome manually. For reveal (and certain other formats) you can use decktape which runs its own private Chrome browser headless merely as a print driver.

RISE is the interactive jupyter notebook slidehow that uses reveal as a backend.

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.

See also sundry workflow notes.


remark.js is mostly similar.

It has native R support via xaringan, which is Yihui Xe’s favourite

Latex slides

Beamer, the LaTeX slide thingy, also works. It is depressing and boring, but it does lend a certain reassurance to the audience that you aren’t going to rock the boat and say anything controversial. I am not a huge fan of LaTeX except for its mathematical markup support, and that is (sufficiently) available in HTML too thanks to MathJax, but if I work on slides in beamer my colleagues will be calmer because they feel they understand it better.

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.

Pedagogic considerations

So how do you actually give a good presentation?

Like most academics, I will leave this one for some unspecified future date.

Alternatives: Animations and interactives