Home About Archive RSS

Interactive presentations

I often present new material for my students in class. I teach programming and information technology at a vocational school, so I often need to run code as examples of what I am presenting. When a student has a question about how the code works, I can show the answer by tweaking the code and rerun it. I might ask my students something and write down their answers in my presentation as well or I might hand out individual tasks, collect the answers and use the presentation to share the results with everyone on the screen. (We have large 4k touch screens that also have whiteboard functionality in every classroom.)

Emacs Org mode is a tool for outlining ideas (and a lot of other stuff like calendaring, todos and project planning) in a pure text markup format with support for inline images and code blocks in almost any programming language. You can run the code blocks when you want or tangle them out to a separate code file a la literate programming. Emacs is extendable and hackable enough that it can be made to work as presentation software. Ric Lister has made an Emacs package called org-present which I use. I make my presentation in org mode as an org file (org markup is similar to markdown), and add the images and code blocks directly within the text with the markup. When I am in class, I run the function org-present to start a presentation.

Each top level heading in my org document becomes a slide. I can write directly into the slides while I present them since they are just text files in org markup displayed with larger font sizes and nicer headlines etc, which makes it possible to do things like ask my students something and write down their answers. I can also run code blocks by hitting Ctrl-C Ctrl-C with the pointer above the code block and the results pop up underneath in a separate results block within the text of my presentation. Another advantage is that if I alt-tab into another program like Firefox or Thonny, my presentation within Emacs does not switch out of presentation mode like most presentation software like PowerPoint tends to do. I can come back to my presentation after showing a Youtube video with Firefox and continue where I left off.

After class, I export the presentation including code blocks, images and results of running the code to a PDF and put it on our learning platform to make it easy for students not present to see what was happening or for later review before a test or an exam. I have set up org-present to work the way I like with a bit of code in my Emacs config. I turn on display of inline images and set a standard width that usually works (that I can easily change with some metadata above an image if needed) and use org-present-big to make everything large. I then hook my configuration into the start of org-present and also have a function that resets my configuration that I hook in when org-present is quit. I highly recommend org-present if you want interactivity within your presentations, especially if you already use Emacs and Org mode. It lets me hold interactive presentations presentation software like PowerPoint, Prezi or Keynote cannot.

© Einar Mostad 2010 - 2025. Content is licensed under the terms of CC BY SA except code which is GNU GPL v3 or later.