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