Categories
General Linux Open Source & Programming Pediatric Orthopedics

Making Media rich Medical Presentations using Emacs, Org-mode and Reveal.js – Part 1


Scenario

As a practicing Paediatric Orthopaedic Surgeon, I am called to meeting to present my work. This involves presenting to peers, co-workers, patients and parents of children I care for. Each of these presentations will be with a different focus on a particular topic. 

While this is not an uncommon scenario, the solution to create a reusable presentation slides using #OpenSourceSoftware tailored to individual audience is. Most doctors are not familiar with programming environment  and shy away from anything that is not WYSIWYG. They rely on good old #PowerPoint / #Keynote to save them. At the most some of them may try and use the clunkly #LibreOffice or #OpenOffice if they want to stick to OpenSource. Recently with advent of tools like Prezi, media heavy interactive presentations have become popular. The popular presentation softwares of KeyNote, PowerPoint have also spruced up their animations and transitions to enable them to look more attractive. Still the WYSIWYG nature of these and point-and-click makes them very slow. We could achieve better, faster and more attractive results with using #FOSS tools. 

 

What I use now

For the past few years I’ve been using a combo of 

  1. #LaTeX via #beamer class 
  2. #RevealJS ,
  3. #Emacs, Org-Mode, org-reveal
  4. #HTML5 and #CSS3
  5. FOSS Image and Video editing softwares as required to arrange the media. I mainly use GIMP, InkScape, KdenLive, OpenShot, HandBrake to arrange my media and encode them. 

My choice depends on the demands of the presentation. 

For media heavy, especially video heavy presentations I use RevealJS. For presentations that are more of less static with few videos I tend to use Beamer / LaTeX. What I note below are my experiences as I tried to create a smooth workflow that could replace PowerPoint ( or KeyNote / LibreOffice ) as a tool to create #Medical Presentations. 

Overtime I have refined my workflow and now I find that I am far more productive and my slides can pack much more information than a power point slide. While the more advanced interactions would require some knowledge of JavaScript, and therefore would turn off most doctors, most of what follows require minimal programming use. 

I will detail my workflow to create simple fast layout using Emacs and RevealJS without handcoding of JS and HTML. We will be relying on the RevealJS, Emacs, Org-Mode and ox-reveal package to do the lifting. 

 

Disclaimer : Even though it doesn’t need programming knowledge, ability to use Emacs is a must for this workflow. It is preferable that one is on a Linux OS as the attempt is to go all #FOSS here. 

 

so, here goes ….

 

Aim

To create an visually impressive medical presentation using non Power Point open source (FOSS) softwares.

Tools

  1. Emacs (24.3 or greater)
  2. org-mode
  3. org-reveal
  4. Reveal.js
  5. Chrome Browser
  6. Open source video codecs on the system

Why this and not PowerPoint ?

Over the years Medical Conference presentations have got mature and old tools have got boring. Varied audiences, topics, media content , interactivity required, transitions and animations to keep audiences interested have all changed.

PowerPoint with it’s traditional set of tools is boring to say the least. The point and click interface is slow by comparison to plain text typing. This seems counter intuitive to PowerPoint pandits but I’ve found that once the media is arranged and readied, once can create more far more attractive presentations with the tools mentioned above. 

As far as medical presentations go, the video presentations embedded PowerPoint / LibreOffice have a habit of breaking on stage. I have seen numerous instances of this happening.

And, of course PowerPoint costs 💰💰

It is also Closed Source making it difficult to edit and reproduce when you are with a system where it is not installed.

 

Okay, but why Emacs, why indeed ?

Emacs is Open Source

Emacs is stable

Emacs is good

Emacs is better than #Vim

Emacs has un-paralleled number of extensions and programming support

Emacs has Org-mode… 

 

Okay, So why org-mode, what has that got to do with presentations ?

org-mode is cool

org-mode is simple text

org-mode can be manipulated anywhere with text-editor

Its FOSS

It can be extended with other tools like org-reveal

 

Hm, Okay, but why Reveal.js ?

An actively developed FOSS Tool with a community

Allows 2D stacking of slides permitting nesting

Plugins and all the JS/CSS/HTML5 goodies can be integrated

Very good slider-presenter notes

PDF export option for handouts

Very nice transitions and animations

Good builtin themes and literally infinite customisation options as per CSS

Works very well with slide-projectors and remote tools to advance slides

 

Okay, but why use org-mode / org-reveal with Reveal.js ?

Org-mode is cool, easy, transparent text typing

org-mode is structured and nested just like a regular presentations would be

One can easily do a text-only sketch of a presentations by typing out a few lines of text in org–mode formatting and out put a neatly animated stacked presentation in Reveal.js

If one were to code HTML and JS with Reveal.js, it would be considerably opaque, with HTML markup and JS obscuring the structural details of the presentation.

By integrating org-mode, org-reveal and reveal.js we are integrating all that is good in respective tools while sticking to what the non-programmer user ( an average medical professional ) would like to do – type text and structure the presentation.

 

So, How to go about making one ?

Part 1 : Preparing the ground

Step 1 :

Install GNU-Emacs > 24.3

 

Step 2 :

Update package-archives and use Melpa archive.

Update org-mode.

 

Step 3 :

Install ox-reveal package

 

Step 4 :

‘require(ox-reveal) in your .emacs file

 

Step 5 :

Download and keep the Reveal.js file in a folder.

Note down the path to the folder relative to the folder where the presentation will live.

If you have Bower installed you can just do bower install revealjs

 

Step 6 :

Create a folder where your presentation will live. 

Inside the folder create subfolders for Images, Videos, Scripts, CSS styles and other documents which may be needed for the presentation. 

Now we can create the main file of the presentation – the Org-mode file using Emacs.  Org-mode file is a simple text file which can be opened using any other text-editor. It has the extension of  “.org”

While using Emacs and Org-Mode, however, it provides lot of goodies. Org-Mode in Emacs has lot of extensions one can install that extends it functionality. One can for example use the same org-mode file to output HTML, LaTeX, and PDF. 

So let us create the main presentation file. I title my presentations the following way, giving it context, separated by underscores : <topic>_<audience>_<date>_<venue> . For example if I am giving a public talk on Cerebral Palsy at my home town of Palakkad, on July 30th,2019 , I would title my presentation like this : “CerebralPalsy_PublicTalk_Palakkad_30072019.org”

This allows me to keep separate org-mode files for different audience and keep using the same images, videos etc.. Therefore I am fully portable and self-contained when I have to whip up a presentation tailored to any particular audience – technical or non-technical. 

C-x C-f  in Emacs  to the file you want to create with .org extension.

C-C C-# to insert Template for a Reveal.JS presentation.

If you have ‘ox-reveal loaded it should be available as a choice.

Once chosen it will list some options at the top of the org-mode file.

We will need to provide the path to the REVEAL_ROOT directory to the place we have stored the reveal.js library. This path is relative to the folder where the file for presentation lives. 

Once these are done, It is important to get the images, videos ready. They have to be edited using FOSS tools for editing photos and videos. Once edited they’ve to be named properly so that we can reference them in our presentations. 

 

This completes the ground work required to start writing the presentation. While this may seem a lot of work, one must remember this is one time effort.

We will deal with the actual creation of  org-mode file, the options while using Reveal.JS in the next part ….

Advertisement