#+TITLE:     Writing Beamer presentations in org-mode
#+AUTHOR:    Eric S Fraga
#+EMAIL:     e.fraga@ucl.ac.uk
#+DATE:      [2013-03-13 Wed]
#+DESCRIPTION: Example of using org to create presentations using the beamer exporter
#+KEYWORDS:  beamer org orgmode

# specifying the beamer startup gives access to a number of
# keybindings which make configuring individual slides and components
# of slides easier.  See, for instance, C-c C-b on a frame headline.
#+STARTUP: beamer

#+STARTUP: oddeven

# we tell the exporter to use a specific LaTeX document class, as
# defined in org-latex-classes.  By default, this does not include a
# beamer entry so this needs to be defined in your configuration (see
# the tutorial).
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [bigger]

# Beamer supports alternate themes.  Choose your favourite here

# the beamer exporter expects to be told which level of headlines
# defines the frames.  We use the first level headlines for sections
# and the second (hence H:2) for frames.
#+OPTIONS:   H:2 toc:t

# the following allow us to selectively choose headlines to export or not
#+SELECT_TAGS: export
#+EXCLUDE_TAGS: noexport

# for a column view of options and configurations for the individual
# frames
#+COLUMNS: %20ITEM %13BEAMER_env(Env) %6BEAMER_envargs(Args) %4BEAMER_col(Col) %7BEAMER_extra(Extra)

* Introduction
** Overview
   This presentation provides an illustration of some of the capabilities of the *Beamer* export in =org= mode:

   1. simple slides (this one),
   2. slides with special blocks,
   3. multi-column slides and
   4. the use of *Babel* for literate programming.

   This file should be exported using =M-x org-export-dispatch= specifying =l= for \LaTeX{} and then =P=, for instance, to generate the PDF.

* Methodology

** A simple slide
This slide consists of some text with a number of bullet points:

- the first, very *important*, point!
- the previous point shows the use of *bold* emphasis which is translated to a =\alert{}= directive in \LaTeX.

The above list could be numbered or any other type of list and may include sub-lists.

** A more complex slide
This slide illustrates the use of Beamer blocks.  The following text,
with its own headline, is displayed in a block:
*** Org mode increases productivity                               :B_theorem:
    :BEAMER_env: theorem
    - org mode means not having to remember \LaTeX commands.
    - it is based on ASCII text which is inherently portable.
    - Emacs!

    \hfill \(\qed\)

** Two columns

*** A block                                                                                            :BMCOL:
    :BEAMER_col: 0.4
    - this slide consists of two columns
    - the first (left) column has no heading and consists of text
    - the second (right) column has an image and is enclosed in an *example* block

*** A screenshot                                                                             :B_example:BMCOL:
    :BEAMER_env: example
    :BEAMER_col: 0.5
    #+ATTR_LATEX: width=\textwidth

** Babel
   This slide shows some code and resulting output using *Babel*.  Note the specification of =BEAMER_act= property for the second column.
*** Octave code                                               :BMCOL:B_block:
    :BEAMER_col: 0.45
    :BEAMER_env: block
#+name: octaveexample
#+begin_src octave :results output :exports both :cache yes
A = [1 2 ; 3 4]
b = [1; 1];
x = A\b

*** The output                                                                                 :BMCOL:B_block:
    :BEAMER_col: 0.4
    :BEAMER_env: block
    :BEAMER_act: <2->

#+results[a02a...]: octaveexample
A =

   1   2
   3   4

x =



* Conclusions

** Summary
   - org is an incredible tool for time management
   - *but* it is also excellent for writing and for preparing presentations
   - Beamer is a very powerful \LaTeX{} package for presentations
   - the combination is unbeatable!