d5910d953e7442d01346d17dfce76123b996b42e
[worg.git] / org-tutorials / non-beamer-presentations.org
1 #+TITLE:     Writing Non-Beamer presentations in org-mode
2 #+AUTHOR:    Eric Schulte
3 #+DATE:      <2011-06-02 Thu>
4 #+DESCRIPTION: 
5 #+KEYWORDS: 
6 #+LANGUAGE:  en
7 #+OPTIONS:   H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t
8 #+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
9 #+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
10 #+EXPORT_SELECT_TAGS: export
11 #+EXPORT_EXCLUDE_TAGS: noexport
12 #+LINK_UP:   
13 #+LINK_HOME: 
14
15 * Introduction
16
17 While [[file:org-beamer/tutorial.org][Beamer]] is a great option for generating high-quality
18 presentations from Org-mode documents, sometimes a lighter-weight
19 simpler option is desirable.  This page presents two alternative
20 options for giving quick slide-show presentations from Org-mode
21 documents.
22
23 - [[Epresent]] :: is an Emacs minor mode for giving presentations.  The
24      Emacs editor is used in a full-screen mode as the presentation
25      engine, and headings of the Org-mode buffer are presented
26      directly (with a few nice bells and whistles).
27
28 - [[S5]] :: is a standards-based suite for writing slide-show
29      presentations in html web pages.  The browser is used as the
30      presentation engine, and a slightly altered form of Org-mode's
31      HTML export serves as the base of the presentation.
32
33 - org-html5presentation :: Is an Exporter of Org-mode documents to
34      HTML5 slide show presentations.
35      (see [[https://gist.github.com/509761][gist.github.com/509761]] for code and usage information)
36
37 - [[org-tree-slide]] :: is a simple tool to treat a tree of an org buffer as
38      a single slide. Since each slide is displayed by simple narrowing,
39      an editable presentation is easily achieved without restricting
40      the functionality of Org-mode. And usage of org-tree-slide is not
41      limited to a presentation. Three profiles are predefined for
42      different scenarios.
43
44 * Epresent
45   :PROPERTIES:
46   :CUSTOM_ID: Epresent
47   :END:
48
49 Epresent was originally developed on top of outline mode by Tom
50 Tromey.  Eric Schulte then adopted it for work with Org-mode.  The
51 code for using Org-mode with epresent is available at
52 https://github.com/eschulte/epresent.
53
54 Epresent leverages existing Org-mode features like inline image
55 display, inline latex fragments, and in-buffer code fontification to
56 generate very nice (if somewhat nerdy) looking presentations directly
57 from within Emacs.  This has the nice benefit that during-presentation
58 editing and code evaluation is possible.
59
60 The README file in the epresent repository has instillation
61 instructions, however usage is as simple as...
62 1. =M-x load-file epresent.el=
63 2. open the example =present.org= file located in the repository
64 3. call =M-x epresent-run=
65 4. press "=t=" to view the top level of the presentation
66 5. navigate the presentation with "=n=", "=p=", "=t=" and quit with "=q="
67
68 * S5
69   :PROPERTIES:
70   :CUSTOM_ID: S5
71   :END:
72
73 [[http://meyerweb.com/eric/tools/s5/][S5]] is a "/Simple Standards-Based Slide Show System/" implemented using
74 HTML, CSS and Javascript.
75
76 Two S5 options exist for Org-mode.
77
78 1. Yann Hodique has developed a javascript based option which works
79    directly with Org-mode's existing html export.
80
81    This technique is described on Yann's blog
82    [[http://www.hodique.info/blog/2009/11/14/s5_presentation_from_org-mode][s5 presentation from org-mode]].
83
84 2. There is also code implementing an altered version of Org-mode's
85    existing html export tailored to generating static S5
86    presentations.
87
88   This second technique is described below.
89
90 ** Code and usage for =org-export-as-s5=.
91 - The emacs-lisp code available [[https://github.com/eschulte/org-S5/blob/master/org-export-as-s5.el][here]] defines a single function
92   (=org-export-as-s5=) as a simple wrapper around Org-mode's existing
93   html export.  This function is based heavily on Pierre de Buyl's
94   [[http://thread.gmane.org/gmane.emacs.orgmode/33143/match=s5][very thorough S5 export instructions]] posted to the Org-mode mailing
95   list.
96
97 - Simply evaluate this code, or add it to your =.emacs=, then call
98   =M-x org-export-as-s5= from within an Org-mode buffer. *Note*: the
99   [[http://gitweb.adaptive.cs.unm.edu/org-S5.git/tree/HEAD:/ui][ui]] directory holding S5 support files must be located in the same
100   directory as the exported html.
101
102 - Currently there are three themes which can be set with the
103   following.
104   #+begin_src emacs-lisp
105     (setq org-s5-theme "railscast")   ; based off `color-theme-railscasts'
106     (setq org-s5-theme "default")     ; the default S5 theme
107     (setq org-s5-theme "i18n")        ; the i18n theme by the author of S5
108   #+end_src
109
110 - This entire directory is available as a [[https://github.com/eschulte/org-S5/blob/master/org-export-as-s5.el][git repository]]
111
112 - For two examples of org-S5 in action see [[http://eschulte.github.com/org-S5/][here]]
113
114 * org-tree-slide
115   :PROPERTIES:
116   :CUSTOM_ID: org-tree-slide
117   :END:
118
119 org-tree-slide is an Emacs minor mode for org-mode. Once you toggle
120 =M-x org-tree-slie-mode=, just type =<left>= and =<right>= to move between 
121 slides. To show CONTENT, type =C-x s c=. When you exit this minor mode,
122 the slideshow will be finished.
123
124 The code is available at [[https://github.com/takaxp/org-tree-slide][Github]]. Please read [[https://github.com/takaxp/org-tree-slide/blob/master/README.org][README.org]] and check user
125 variables for flexible control.
126
127 Download org-tree-slide from the following direct link:
128 [[https://raw.github.com/takaxp/org-tree-slide/master/org-tree-slide.el]]
129
130 ** Recommended key bindings and profiles
131
132 #+begin_src emacs-lisp
133 (global-set-key (kbd "<f8>") 'org-tree-slide-mode)
134 (global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)
135 #+end_src
136
137 Preset profiles are defined in org-tree-slide.
138 1. =M-x org-tree-slide-simple-profile=            ; Simple use
139 2. =M-x org-tree-slide-presentation-profile=      ; Presentation use
140 3. =M-x org-tree-slide-narrowing-control-profile= ; TODO Pursuit with narrowing
141 These functions set user variables for each using scenario.
142 You can find more detail in [[https://github.com/takaxp/org-tree-slide/blob/master/README.org][README.org]].