Portable scientific presentations for web browsers with Liminal

When it comes to creating scientific presentations, particularly those with a lot of equations, the major tools at our disposal are all cumbersome in one way or another. This post describes another solution that is easy to learn, efficient to use, visually appealing, and readily portable.

Liminal: A theme for scientific presentations using Remark.js
Available for download from GitHub

A screenshot of the Liminal tutorial

Those of us working with equations are generally writing in LaTeX. To make a scientific presentation, one option is to use WYSIWYG tools such as Powerpoint or Keynote, in which case the power and flow of writing with a formatting language is lost. Equations either have to be inserted one by one as LaTeX code or else as captured images.

Alternatively, one could stick with LaTeX and use Beamer. However, because presentations are more sensitive to the details of visual layout than are papers, it is important to check to see how the slides are being rendered. This leads in my experience to an unfortunate change-compile-wait-change loop. I find the entire process to be clunky and awkward, and yielding not particular attractive results.

Moreover, since people mainly find out about our work on the web, wouldn’t it be great if we could read each others’ presentations directly in our browsers, without having to download a file and launch another application?

There is another solution that I find much more ergonomic. I write my presentation in LaTeX mixed together with Markdown for the slide markup. This source code is then rendered in a browser as a Powerpoint-style presentation using a remarkable Javascript package called Remark.js by Ole Petter Bang.

Because the default Remark.js styling is not very suitable for scientific presentations, I designed my own styling by modifying the CSS. In addition, I added support for rendering equations through the KaTeX library, which quite unlike MathJax is small enough to be distributed along with the talk.

The result are presentations that are portable and compact, meaning you can give someone a small zip file and they can view the presentation later offline, without needing to access MathJax or other anonline library. This slightly modified version of Remark.js is called Liminal.

I have been using Liminal for the past four years for all of my talks, and find very good compatibility across the different browsers and operating systems. Inspired by the interest of some colleagues, I’ve recently streamlined and improved it and am now making it available for general use.

In addition to the features of Remark.js, Liminal includes:

  • A particular choice of slide layout and styling
  • A subtle fade in/out transition between slides
  • Markup for a title slide, for footnotes, and for citations
  • A compass at the bottom left that links to a table of contents
  • Markup for a two-column format
  • Perhaps most importantly, portable equations using KaTeX
  • A directory structure to keep things organized

See the tutorial for full details within a sample presentation. Liminal is distributed under the MIT license.