Why I Switched from Beamer to Quarto Reveal.js for My Presentations

Why I Switched from Beamer to Quarto Reveal.js for My Presentations

Why I switched from Beamer to Quarto Reveal.js for reproducible, maintainable, and portable slides in teaching, research, and data science.

After years of using LaTeX Beamer for technical, research, and teaching slides, I’ve now fully switched to Quarto. So far it has been one of the most satisfying tooling changes I’ve made in a while.

Quarto Reveal.js slides are fast, clean presentations that blend text, code, output, and math. They are ideal for how I work and teach across statistics, econometrics, and data science. This post is about why I switched and what I liked so far.

Written with the zeal of a recent convert.

My Beamer Years

Before switching to Quarto, I faithfully used Beamer for many years. It worked fine when I was a PhD candidate who only occasionally needed to present research internally or in conferences.

However, things became rather unmanageable when I started as a professor. Now I needed and wanted to

  • Move between machines (home, office, travel) regularly.
  • Design and run full courses that blend theory, code, and data.
  • Present and teach in rooms with wildly different AV setups.
  • Have everything work as quickly as possible.

Under these constraints, Beamer became a liability:

  • Clumsy asset management: data analysis had to be done elsewhere, figures manually exported and embedded. Code snippets required extra formatting layers and often had syntax highlighting issues.
  • Brittle builds: Beamer error messages are rather cryptic. Output could vary across machines depending on the TeX distribution. Even reproducibility across my own systems became hard!
  • Painful customization: I know LaTeX well, but even some simple layout changes would require quite a bit of time of frustration.

Quarto As a Solution: What I Like

After looking for alternatives, I gave Quarto’s Reveal.js slides a try. It solved nearly every problem I’d been struggling with.

If you want to see an example of my Quarto slides, check out the website for my undergraduate advanced econometrics class

Executable, Reproducible Slides

The most important change is conceptual: Quarto slides are executable documents.

I write the narrative and code in one file. When I render the slides, the code runs, and the outputs (figures, summaries, tables) are automatically inserted. The result is a clean HTML file that I present directly from a browser.

Quarto Slides in VS Code

This is exactly the workflow I had been looking for when embedding data or simulations into the presentation. If the code or data changes, I re-render and rerun everything. No exporting and re-importing (no awkward forgotten outdated figures!) unless I explicitly want to use specific fixed results.

Quarto also offers an interactive mode in VSCode. I can work with code chunks just like in a Jupyter Notebook, all within the same window and with the same source file. Once I’m happy with the results, I simply render the slide with the finalized code cells.

Quarto Interactive Mode

Clean Syntax, Maintainable Documents, Straightforward Math

Quarto uses Markdown + code chunks. Slides are readable, easy to edit, and easy to return to later. This simplicity has made a big difference in my teaching and research prep. I spend less time fiddling and more time refining the actual content. It’s also made it easier to reuse, adapt, and scale up materials across contexts.

Math support is also smooth. I have quite a few custom math macros. With HTML outputs, I can select MathJax as the math renderer, and I can define all my custom commands in a small mathjax.html file. Including that file in the header takes a single line in the YAML front matter, and the macros are then available throughout.

MathJax config file

Modern Output: Responsive, Customizable, Cross-Device

I now render slides to HTML using Reveal.js and present directly from the browser. That alone solves several longstanding problems:

  • Responsive layout: slides adapt well to different devices and projectors (no more misjudged aspect ratios).
  • Easy customization: styling via themes or CSS is straightforward.
  • Interactivity: I can embed Plotly plots or add tabs, collapsible code blocks, and other UI features with minimal effort.
  • Portability: no need to worry about fonts, encoding, or PDF viewers. As long as there is an internet connection, all is good.

I still generate PDFs for compatibility or archiving, but HTML is now my default. And if needed, the PDF can be generated straight from the browser version.

Stability (i.e. Less Fighting With My Tools)

Perhaps most importantly: it’s stable.

I no longer have misleading errors and warnings in my life. Editor support (in VSCode) is excellent — I get previews, hover-rendered equations, linting, and clear error messages.

VSCode Equation Preview

This has quietly saved me a lot of frustration.

A Portable, Git-Friendly Workflow

One of the biggest improvements: all my slides now live in Git repositories, are synced via GitHub, and deployed directly to my website. With Git, I can version-control my work and use issues and branches to organize myself. This aligns closely with the workflow I try to have: reproducibility, automation, and versioning are central.

Optional Interactivity

I don’t go overboard here, but having the option to include interactive elements is genuinely useful.

  • Live plots with Plotly.
  • Hoverable explanations, collapsible blocks.
  • Tabs for comparing different views or results.

I think these things make the slides look better and add an extra layer of flexibility to visualizations.

Add-ons That I like

There were only two things that I missed about Beamer — section header (in the spirit of the Berlin Beamer theme) and native TiKZ.

But even those things I was able to easily replicate with a couple of add-ons:

  • reveal-header: lets you add a consistent header or logo to every slide.
  • diagram: supports embedded diagrams using Mermaid, GraphViz, TikZ, and others. I use it mostly for quick schema and causal graphs.

In Short

Quarto has made my slides:

  • More reproducible
  • Easier to maintain
  • More portable and future-proof

Beamer served its purpose for me. I appreciate what it made possible (and I think I’ve made some good-looking slides with it from time to time). But for the kind of work I do now, across teaching, research, and data science, Quarto has been a vastly better fit.


© 2025. All rights reserved.