Presenting with Emacs

Text rendering in Emacs has been looking mighty good since 23.1, and this opens up possibilities to do even more in Emacs. For example, I recently came across something called epresent.el on GitHub, by Eric Schulte et al. The epresent.el Emacs Lisp file leverages Org-Mode to implement a simple presentation mode for Emacs. Using Org-Mode is, at least for me, faster than struggling with something like OpenOffice.org Impress.

Having discovered epresent.el, I proceeded to customize it to my tastes, and even tried it out by EPresenting my slides during a two-hour lecture that I recently gave at University of Helsinki. I’d say the solution works fairly well for less serious presentations, making for something more informal and fun. Having access to the power of Emacs and Org-Mode also makes it convenient to do more than just show slides, as one can for example embed shell commands that help demonstrate what is stated on a given slide.

I’ve made my customized version of epresent.el available on GitHub. For Eric’s version, along with a sample document, see eschulte / epresent, also on GitHub.

To run the code you will want to be using a fairly recent version of Org-Mode (I’m using 7.4), and Emacs version 23.

While it’s possible to load and use epresent.el directly, without setting it up in any way, I would suggest adding something to your Emacs configuration file to make EPresenting more convenient. In my case I first add the directory containing epresent.el to the Emacs load-path, and then execute

(autoload 'epresent-run "epresent")

(add-hook 'org-mode-hook
        (function
         (lambda ()
           (setq truncate-lines nil)
           (setq word-wrap t)
           (define-key org-mode-map [f3]
             'epresent-run)
           )))

This sets up some parameters to my liking, and adds a key binding for conveniently starting a presentation. To exit a presentation (and go back to normal Org-Mode) one can simply press “q”.