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
- #LaTeX via #beamer class
- #RevealJS ,
- #Emacs, Org-Mode, org-reveal
- #HTML5 and #CSS3
- 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.
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 ….
To create an visually impressive medical presentation using non Power Point open source (FOSS) softwares.
- Emacs (24.3 or greater)
- Chrome Browser
- 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
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.
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 ….