Writing Non-Beamer presentations in org-mode

Table of Contents


While Beamer is a great option for generating high-quality presentations from Org-mode documents, sometimes a lighter-weight simpler option is desirable. This page presents the alternative options for giving quick slide-show presentations from Org-mode documents.

is an Emacs minor mode for giving presentations. The Emacs editor is used in a full-screen mode as the presentation engine, and headings of the Org-mode buffer are presented directly (with a few nice bells and whistles).
is a standards-based suite for writing slide-show presentations in html web pages. The browser is used as the presentation engine, and a slightly altered form of Org-mode's HTML export serves as the base of the presentation.
Is an Exporter of Org-mode documents to HTML5 slide show presentations. (see gist.github.com/509761 for code and usage information)
is a simple tool to treat a tree of an org buffer as a single slide. Since each slide is displayed by simple narrowing, an editable presentation is easily achieved without restricting the functionality of Org-mode. And usage of org-tree-slide is not limited to a presentation. Three profiles are predefined for different scenarios.
is an Org-mode extension that exports Org documents into Reveal.js presentations. Reveal.js is a web-based presentation framework with 3-D effects, customizable themes and animations, powered by the latest HTML5 technologies. For details, please check the org-reveal section below.


Epresent was originally developed on top of outline mode by Tom Tromey. Eric Schulte then adopted it for work with Org-mode. The code for using Org-mode with epresent is available at https://github.com/eschulte/epresent.

Epresent leverages existing Org-mode features like inline image display, inline latex fragments, and in-buffer code fontification to generate very nice (if somewhat nerdy) looking presentations directly from within Emacs. This has the nice benefit that during-presentation editing and code evaluation is possible.

The README file in the epresent repository has instillation instructions, however usage is as simple as…

  1. M-x load-file epresent.el
  2. open the example present.org file located in the repository
  3. call M-x epresent-run
  4. press "t" to view the top level of the presentation
  5. navigate the presentation with "n", "p", "t" and quit with "q"


S5 is a "Simple Standards-Based Slide Show System" implemented using HTML, CSS and Javascript.

Two S5 options exist for Org-mode.

  1. Yann Hodique has developed a javascript based option which works directly with Org-mode's existing html export.

    This technique is described on Yann's blog s5 presentation from org-mode.

  2. There is also code implementing an altered version of Org-mode's existing html export tailored to generating static S5 presentations.

    This second technique is described below.

Code and usage for org-export-as-s5.

  • The emacs-lisp code available here defines a single function (org-export-as-s5) as a simple wrapper around Org-mode's existing html export. This function is based heavily on Pierre de Buyl's very thorough S5 export instructions posted to the Org-mode mailing list.
  • Simply evaluate this code, or add it to your .emacs, then call M-x org-export-as-s5 from within an Org-mode buffer. Note: the ui directory holding S5 support files must be located in the same directory as the exported html.
  • Currently there are three themes which can be set with the following.
    (setq org-s5-theme "railscast")   ; based off `color-theme-railscasts'
    (setq org-s5-theme "default")     ; the default S5 theme
    (setq org-s5-theme "i18n")        ; the i18n theme by the author of S5
  • This entire directory is available as a git repository
  • For two examples of org-S5 in action see here


org-tree-slide is an Emacs minor mode for org-mode. Once you toggle M-x org-tree-slie-mode, just type <left> and <right> to move between slides. To show CONTENT, type C-x s c. When you exit this minor mode, the slideshow will be finished.

The code is available at Github. Please read README.org and check user variables for flexible control.

Download org-tree-slide from the following direct link: https://raw.github.com/takaxp/org-tree-slide/master/org-tree-slide.el

Recommended key bindings and profiles

(global-set-key (kbd "<f8>") 'org-tree-slide-mode)
(global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)

Preset profiles are defined in org-tree-slide.

  1. M-x org-tree-slide-simple-profile ; Simple use
  2. M-x org-tree-slide-presentation-profile ; Presentation use
  3. M-x org-tree-slide-narrowing-control-profile ; TODO Pursuit with narrowing

These functions set user variables for each using scenario. You can find more detail in README.org.


Sander Boer created orgmode-slideshow – see his message:

I hacked together a javascript and a css that transforms the default html export of my org file to a slide show:

Here's the org-file:

Here's the rest (depends on jQuery)


Reveal.js is a web-based presentation framework, with attracting features like:

  • 3-D slide transition effect.
  • 2-D slide arrangement.
  • Fragmented items.
  • Navigation control.
  • Slide thumbnail.
  • Customizable themes.

An example of Reveal.js is available online.

Org-reveal is an Org-mode extension that exports Org-mode documents into Reveal.js presentations. With org-reveal, you can easily organize Reveal.js presentations without knowing the detail of HTML, AND with some extra benifits:

  • Highlighted source codes.
  • Neat math equations.

An example of presentation generated by org-reveal is available online, together with the original Org document.


Both Reveal.js and org-reveal are hosted on GitHub.



See org-reveal's Readme.org for detail instruction about installing Reveal.js/org-reveal and the setting ups.

Though you can read it online, it is recommended to download the projects and read it in your Emacs, so that you can try exporting it to Reveal.js presentation while reading.

Documentation from the http://orgmode.org/worg/ website (either in its HTML format or in its Org format) is licensed under the GNU Free Documentation License version 1.3 or later. The code examples and css stylesheets are licensed under the GNU General Public License v3 or later.