Support via Liberapay

Writing Non-Beamer presentations in org-mode


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 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 use cases.
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

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 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-slide-mode, just type C-> and C-< to move between slides. To show CONTENT, type C-x s c. When you exit this minor mode, the slideshow will be finished. It is recommended to customize the default keybindings so that user can smoothly operate their presentations.

The code is available at Github. Please read and check the user variables to make your presentation more attractive.

Download org-tree-slide from the following direct link:

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

Frame maximized presentation

Normally, presentations will appear in full screen or frame maximized. moom is useful in such cases since the package can change frame position and size by keyboard and the font size will be increased suitably for your presentation.


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.


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



See org-reveal's 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 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.