[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Beamer support in Org-mode

From: Thomas S. Dye
Subject: Re: [Orgmode] Beamer support in Org-mode
Date: Thu, 26 Nov 2009 07:04:00 -1000

Hi Carsten,

On Nov 26, 2009, at 1:17 AM, Carsten Dominik wrote:


this is in response to the discussions about beamer
export from Org-mode.  Yesterday I had a long train ride
during which I scanned the beamer documentation (smoking
hot stuff!).  Then I made the attached draft
for Org-mode support, strongly based on the stuff
Eric Fraga has put together recently.  What is described
below sort-of works in some experimental code here, but before
I polish I would like comments on this outline.

NOW is the time to chime in.


- Carsten

This is a very useful idea.  Beamer is definitely smoking hot stuff!

Org-mode with Beamer works tolerably well now. Eric Fraga's setup in a post a few days ago manages to leverage the core of Beamer functionality in plain-vanilla Org-mode. It would be nice to get all of Beamer with Org-mode, but I'm worried that this proposal would create a separate species of Org-mode file, which would have a single use. Perhaps my worry is misplaced, but I think it would be more useful to embed a Beamer presentation within an Org-mode file.


Author: Carsten Dominik <address@hidden>
Date: 2009-11-26 12:08:45 CET

Table of Contents
1 Organization
   1.1 Sections
   1.2 Frames
   1.3 Columns
   1.4 A column
   1.5 Block-like environments
   1.6 Overlay/action tag and environment options
   1.7 Overlay/action in list environment
   1.8 Embedded LaTeX
   1.9 Example
2 org-beamer-mode
   2.1 Fast tag selection for beamer environments
   2.2 Special font-locking of beamer tags

1 Organization

1.1 Sections

By default, level one headlines become sections in the beamer
document.  You can configure the variable org-beamer-frame-level
to change this.  Setting it to three will make level 2 headlines
become subsections.  For the rest of this document, I will assume
that this variable has its default value 2.

In Beamer, the use (or not) of sections and subsections is determined by the theme, which is also responsible for how the title is displayed. So, some mechanism to set the theme will need to be part of the package. After this, in my experience, is the colortheme. The rather somber colors preferred by the Beamer author don't play too well here in Hawai`i, and I typically set the colortheme as well.

1.2 Frames
Level 2 headline (or the level configured in
org-beamer-frame-level) become frames.  The headline text become
the frame title, but if no headline text is given, the frame gets
no title.  If the frame title contains the string "\\", the line
will be split at that location, and the second half become the
frame /subtitle/.

1.3 Columns
Headlines one below frames (level 3 by default) can be used start
columns on a frame.  The presence of such a headline without a
beamer tag (see below) will create the columns environment.  The
text in the headline is ignored.  It is helpful to write
"columns" in this headline anyway.

1.4 A column
Headlines below a columns environment (level 4 by default) open a
column.  The text in the headline should be a number smaller than
one and will be used to define the column width.

This idea of a fixed starting point for mapping Org-mode headlines to Beamer elements looks very good, if you want to devote an entire Org- mode document to a Beamer slide show. Sebastien Vauban's concerns in another message in this thread about all the special requirements for headlines in Beamer mode and their effect on the normal Org-mode use of the file (I'm paraphrasing) are important.

Would it be possible to tag a headline in some way to indicate "Beamer mode starts here" and then have a beamer-export function only export appropriately tagged sub-trees? This would mean that the mapping scheme would start at the marked sub-tree level: sections at level n, frames at level n+1 (depending on the value of org-beamer-frame- level), etc.

With this kind of structure it would be possible to embed more than one beamer slide show in an Org-mode file, so there would need to be some mechanism to generate separate file names.

1.5 Block-like environments
Any headline can become a block-like environment by tagging it
with a beamer tag.  For examples, `:B_block:' will trigger the
creation of a block environment, while `:B_theorem:' will trigger
the creation of a theorem environment.  When it makes sense, the
headline text is used in an appropriate argument of the
environment, if that does not make sense, it is ignored.

1.6 Overlay/action tag and environment options
Any headline can contain three types of cookies

`<...>': The overlay/action setting for the environment
`[<...>]': The default overlay/action specification for the
    content of the environment, which can be overwritten locally
    by each content element.
`[...]': Optional argument(s) for the environment

These can be given in arbitrary order freely in the headline.
Org-mode will fish them out and insert them in the appropriate
locations in the \begin statement of the environment.

Having these cookies plainly in the headline reduces the
usability of the document as a normal document.  I have been
thinking to move them into comments or properties, but I think
this is, in the end, less convenient.  I people want to export
these in other ways as well, we can write a function to clean

1.7 Overlay/action in list environment
For plain list environments (ordered, unordered, and description
lists) you can start each item optionally with an overlay
specification `<...>'.  If any item in the list contains a
default specification `[<...>]', this will be moved into the
begin statement of the itemize/enumerate/description environment,
to provide a default setting for the list items.

1.8 Embedded LaTeX
As is normal for Org-mode, you can embed LaTeX commands into the
text, and they will be transferred literally into the exported
document.  In particular, you can also embed beamer-specific

1.9 Example
Here is a (still very incomplete) example Org document that is
intended for beamer export.

 #+LaTeX_CLASS: beamer
 #+TITLE: Example Presentation
 #+AUTHOR: Carsten Dominik

 * This is the first structural section
 ** Frame 1 \\ with a subtitle
 *** columns will be used
 **** 0.3
 ***** Thanks   :B_block:
       Thanks to Eric Fraga for the first viable beamer setup in Org
 ***** Here we continue after the block :B_normal:
       using a "normal" environment that helps to keep the structure
       after a block
 **** 0.7
 ** Frame 2 \\ where we will not use columns
*** Request :B_block:
     Please test this stuff!

2 org-beamer-mode

Org-mode defines a minor mode org-beamer-mode.  The mode is
turned on automatically when the export class as specified
in #+LaTeX_CLASS is "beamer".  Currently foreseen features are
listed below, more could be added where it makes sense.

2.1 Fast tag selection for beamer environments
The command `C-c C-b' will offer fast selection of the various
tags that trigger specific beamer environments for a headline

2.2 Special font-locking of beamer tags
The special tags are highlighted by a special font

I'm looking forward to expanded Beamer support in Org-mode.

All the best,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]