(Press ?
for help, n
and p
for next and previous slide; usage hints)
Jens Lechtenbörger (License Information)
January 2024 (emacs-reveal 9.32.1 and later)
A separate Howto for Text-To-Speech (TTS) with emacs-reveal exists as well...
.html
(and whatever follows) in address bar of
browser with .pdf
Slides contain additional notes as plain text if you see the folder icon at the top right (as on this slide)
Emacs-reveal
is free software
to generate reveal.js presentations (slides with audio) from simple text
files in Org mode
Emacs-reveal
should really be used with the text editor GNU Emacs
GitLab.com
, e.g., with the
Web IDE
(requires login))Emacs-reveal
builds upon Gnu Emacs with
Org mode
emacs-reveal
)elisp/publish.el
stops with an error,
resulting in broken presentations
Add following to beginning of elisp/publish.el
to
generate only HTML
(setq oer-reveal-publish-org-publishing-functions
'(oer-reveal-publish-to-reveal))
Emacs-reveal
can manage bundled software
emacs-reveal-managed-install-p
being t
oer-reveal-revealjs-version
specifies the
target version of reveal.js for emacs-revealemacs-reveal-managed-install-p
to nil
emacs-reveal
changes values of other packages
(org-ref
, oer-reveal
) without warningemacs-reveal
emacs-reveal
in a directory of your choice
~/.emacs.d/elpa
, and clone software
cd ~/.emacs.d/elpa
git clone --recursive https://gitlab.com/oer/emacs-reveal.git
--recursive
downloads submodules)~/.emacs
(add-to-list 'load-path "~/.emacs.d/elpa/emacs-reveal")
(require 'emacs-reveal)
org-ref
or citeproc
is
offered, if necessary)emacs-reveal
yourself
--recursive
)
cd ~/.emacs.d/elpa
git clone https://gitlab.com/oer/emacs-reveal.git
~/.emacs
(add-to-list 'load-path "~/.emacs.d/elpa/emacs-reveal")
(setq emacs-reveal-managed-install-p nil)
emacs-reveal-managed-install-p
(require 'emacs-reveal)
"~/.emacs.d/elpa/emacs-reveal"
remain empty)emacs-reveal
git clone --recursive https://gitlab.com/oer/emacs-reveal-howto.git
--recursive
gets an embedded repository for figurescd emacs-reveal-howto/
howto.org
emacs --batch --load elisp/publish.el
emacs-reveal.el
elisp/publish.el
tries
(a) ~/.emacs.d/elpa/emacs-reveal
(suggested on
earlier slide) and
(b) sibling directory emacs-reveal
org/config.org
Create presentations with Docker
“Docker logo” under Docker Brand Guidelines; from Docker
emacs-reveal
Create and publish presentations on GitLab
“GitLab Logo” by GitLab under CC BY-NC-SA 4.0; from gitlab.com
emacs-reveal-howto
howto.org
.org
oer-reveal-publish-all
)emacs --batch --load elisp/publish.el
public/
firefox public/howto.html
public/
to public web server.org
file using Org export functionality: C-c C-e w b
(export with oer-reveal)
emacs-reveal
should be in effect
(emacs-reveal.el
is loaded, e.g., with
step (2) above)reveal.js
, must be accessible in .org
file’s
directory
I use
emacs --batch --load elisp/publish.el
once to populate public/
, then create a symbolic link:
ln -s public/reveal.js
(setq oer-reveal-export-dir "./")
C-c C-e v v
and C-c C-e
v b
) or oer-reveal (C-c C-e w w
and C-c C-e w b
)
oer-reveal-plugins
and
oer-reveal-plugin-config
Sample invocations in directory of this project
docker run --rm -it -v $PWD:/oer registry.gitlab.com/oer/emacs-reveal/emacs-reveal:9.12.0 cd oer emacs --batch --load elisp/publish.el
git clone <the URL of YOUR GitLab project>
looks like code
Just some horizontally centered text. Created by assigning class
org-center
(for which oer-reveal.css
specifies text-align: center
).
Alternatively, Org’s center
blocks are exported by plain HTML export,
see org-html-center-block
.
Information on that slide is derived from
header lines of howto.org
#+SPDX-FileCopyrightText: 2017-2020 Jens Lechtenbörger <https://lechten.gitlab.io/#me> #+SPDX-License-Identifier: CC-BY-SA-4.0
#+
to
be recognized as Org mode keywordsPro
Con
audio-autoplay
, audio-speed=2.0
reveallicense
, revealimg
, revealgrid
This figure is part of a different presentation
emacs-reveal
;; Semicolon starts comment until end of line (Emacs Lisp). ;; Note that the line for dc:title below is just a comment. In that ;; case, "Image" is used as generic title; uncomment for real title. ;; CC0 does not require attribution of author/creator; uncomment if needed. ((filename . "./figures/3d-man/decision-1013751_1920.jpg") ; Note the path prefix ; (dc:title . "The title given by the author") (licenseurl . "https://creativecommons.org/publicdomain/zero/1.0/") (licensetext . "CC0 1.0") ; (cc:attributionName . "Jens Lechtenbörger") ; (cc:attributionURL . "https://lechten.gitlab.io/#me") (dc:source . "https://pixabay.com/en/decision-question-response-1013751/") (sourcetext . "Pixabay") (imgalt . "Balance tipping in favor of Yes") (imgadapted . "converted from") ; Adjust as needed (texwidth . 0.5) ; Width in percent of textwidth for LaTeX export )
“Fairphone 2” by Kaihsu Tai under CC BY-SA 4.0; cropped from Wikimedia Commons
Single line in source file, using macro revealgrid
{{{revealgrid(42,"./figures/devices/computer.grid",60,4,3,"\"ga1 ga2 ga2 ga3\" \"ga1 ga4 ga5 ga6\" \"ga7 ga8 ga9 ga9\"")}}}
With file computer.grid
as follows
("./figures/devices/white-male-1834091_1920.meta" "./figures/devices/commodore-160186_1280-CC0.meta" "./figures/devices/laptop-154091_1280.meta" "./figures/devices/router-157597_1280.meta" "./figures/devices/car-49278_960_720.meta" "./figures/devices/beauty-1260974_1920.meta" "./figures/devices/vintage-tv-1116587_960_720.meta" "./figures/devices/smartwatch-1874536_1280.meta" "./figures/devices/Fairphone_2_reverse.meta")
(Audios produced with MaryTTS, converted to Ogg format with Audacity)
Emacs-reveal
embeds this
quiz plugin
org-re-reveal-klipse-languages
for supported subset
reveal_klipsify_src:t
(as in
header of this file) or set variable org-re-reveal-klipsify-src
to t
; be sure to disable scaling of reveal.jsorg-src-preserve-indentation
to t
(see bottom of this file)
<h1 class="whatever">hello, what's your name</h1>
console.log("success");
var x='string using single quote';
x
def factorial(n):
if n < 2:
return 1
else:
return n * factorial(n - 1)
print(factorial(10))
dot
of Graphvizoer-reveal-publish-babel-languages
org-publish-project-alist
graph { hello [label="Hello"]; world [label="World!"]; hello -- world; }
The following snippet of elisp/publish.el
activates dot
and
publication of generated images
(make-directory "img" t) (setq oer-reveal-publish-babel-languages '((dot . t) (emacs-lisp . t)) org-publish-project-alist (list (list "img" :base-directory "img" :base-extension "png" :publishing-function 'org-publish-attachment :publishing-directory "./public/img")))
before_script
Except where otherwise noted, the work “How to create presentations with emacs-reveal”, © 2017-2024 Jens Lechtenbörger, is published under the Creative Commons license CC BY-SA 4.0.
In particular, trademark rights are not licensed under this license. Thus, rights concerning third party logos (e.g., on the title slide) and other (trade-) marks (e.g., “Creative Commons” itself) remain with their respective holders.