# Technology for presentations

**URL:** <https://discourse.julialang.org/t/technology-for-presentations/12135>\
**Category:** JuliaCon\
**Tags:** can-of-worms, slides\
**Created:** [July 3, 2018, 3:27pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135 "2018-07-03T15:27:45Z")\
**Posts on this page:** 19\
**Page:** 2

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [July 5, 2018, 9:52am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/21 "2018-07-05T09:52:15Z")

</div>

Thanks for sharing your experience. This is all good to know! In the past I’ve gotten excellent results with inkscape, but I haven’t used it in about six months…

---

<div class="post-metadata">

**Author:** ![dawbarton](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dawbarton/32/215461_2.png) [@dawbarton](https://discourse.julialang.org/u/dawbarton)\
**Post date:** [July 5, 2018, 11:02am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/22 "2018-07-05T11:02:02Z")

</div>

This made me actually get around to installing textext on my Windows machine (I normally just use it under Linux); to get it to work was slightly more involved than I’d hoped…

- Install Inkscape 0.92.3 (with Python extensions)
- Install PyGTK (from [TexText github](https://github.com/textext/textext/wiki/Installation-specific-instructions-for-Windows-systems))
- Install pdf2svg (again from [TexText github](https://github.com/textext/textext/wiki/Installation-specific-instructions-for-Windows-systems)) - I prefer `pdf2svg` over `pstoedit` simply because I wrote it 🙂
- Install TexText v0.8-beta3 (from [TexText releases](https://github.com/textext/textext/releases))
- Comment out lines 640-661 of textext.py (begining `if PLATFORM == WINDOWS: # Try to add some commonly needed paths to PATH`) so that it doesn’t try to use pstoedit, which I don’t have installed. (Assumes that `pdf2svg` got added to the path already by the installer.)
- Run TexText from the extensions menu in Inkscape

All that done and it works nicely.

---

<div class="post-metadata">

**Author:** ![DoktorMike](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/doktormike/32/2736_2.png) [@DoktorMike](https://discourse.julialang.org/u/DoktorMike)\
**Post date:** [July 8, 2018, 10:11pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/23 "2018-07-08T22:11:01Z")

</div>

Not sure this counts as help but just wanted to share what I do. I use rmarkdown ioslides with mermaidjs and later convert to PDF. This allows for plots, images, graphs, code, quotes etc rendered in code. I use it for my Julia talks as well.

---

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [July 9, 2018, 3:47am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/24 "2018-07-09T03:47:40Z")

</div>

Something I am really happy with out of my Beamer + Tikz combo right now.

I am introducing my talk with a series of views of a diagram showing the relationship between various things that I will talk about (and the wider ecosystem)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/9/2/923ed373c44e07c51e42208f307c0657426f9eff.png) ![image](https://global.discourse-cdn.com/julialang/original/3X/4/1/41792fa82a908473557dab23dcee6458280fc60a.png) ![image](https://global.discourse-cdn.com/julialang/original/3X/a/3/a36623aa1009d4ff52457a590126ecf66a9e53ed.png)

Then at the start of each section of my talk,  
I am flashing back to that diagram,  
with the relevant part highlighted.

e.g.

![image](https://global.discourse-cdn.com/julialang/original/3X/6/5/65123791255f73b7032d083a59b4509b2c631d49.png) ![image](https://global.discourse-cdn.com/julialang/original/3X/e/7/e7e8e72e3eabe36b88774d04317bd1ee0630b24a.png)

Now that kinda thing is really hard to do outside of programmatic diagram generation like Tikz gives me.  
Or by spending a lot of time, and having to update a lot of things if you want to change the base diagram.  
(I wish it wasn’t)

---

<div class="post-metadata">

**Author:** ![iamed2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iamed2/32/215082_2.png) [@iamed2](https://discourse.julialang.org/u/iamed2)\
**Post date:** [August 1, 2018, 3:42am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/25 "2018-08-01T03:42:39Z")

</div>

I always use [slides.com](http://slides.com) for my presentations. It’s essentially a hosted, managed GUI wrapper for reveal.js.

The presentation tools are very useful. You can give people a link which will live-update to follow along with your presentation, which is perfect for videoconferencing where you want to show your face as well. Hypothetically you could actually do a screen recording of a client watching the slides for a synchronized slide recording you can composite later. You can also control your presentation from your phone.

I like the layout tools; fragments are a good way to express intra-slide transitions, and grid snapping really helps with positioning graphics. They have code highlighting and even iframe injection. The dangling slide layout has helped me organize my talks as well.

With the lite plan, which I use, you can present while offline and export to PDF. I usually export a PDF as a backup in case the site stops working (which it never has). You can also upgrade and downgrade whenever, so if you have a busy presentation season and then downtime you don’t have to pay for the whole year.

In the end the biggest gain for me was not thinking about making the tech work. I can make simple slides, brain-to-screen, without thinking too hard. That’s definitely a case of different needs for different people of course.

Here’s my presentation from last year so you can see what it looks like if you’re interested: [Using Return Type Annotations Effectively](http://slides.com/iamed2/using-return-type-annotations-effectively)

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [November 5, 2023, 7:18am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/26 "2023-11-05T07:18:46Z")

</div>

> [@jlapeyre](#):
>
> pipeline of pandoc on markdown to pdf via latex as a template.

I think pandoc doesn’t highlight ```julia-repl correctly?

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [November 5, 2023, 8:03am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/27 "2023-11-05T08:03:08Z")

</div>

Linking the post on PPTX.jl, a [Julia package for generating PowerPoint presentations](https://discourse.julialang.org/t/ann-pptx-jl-a-new-package-to-generate-powerpoint-pptx-files/94285).

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [November 5, 2023, 5:22pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/28 "2023-11-05T17:22:08Z")

</div>

Since this thread has been revived, I like to use Marp which generates slides from markdown.

> **[Marp: Markdown Presentation Ecosystem](https://marp.app/)**
>
> Marp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.

It has nice VSCode integration and exports to PDF and PowerPoint.

You can view an example here:

> <https://github.com/JuliaIO/HDF5.jl/tree/master/docs/juliacon_2023>
>
> //github.com/JuliaIO/HDF5.jl/tree/master/docs/juliacon\_2023

The markdown file is the source file and can be [previewed in VSCode](https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode). The PDF seems easiest to preview via Github.

Did I mention it is [open source](https://github.com/marp-team/marpit) under a MIT license?

---

<div class="post-metadata">

**Author:** ![zdenek\_hurak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zdenek_hurak/32/53118_2.png) [@zdenek\_hurak](https://discourse.julialang.org/u/zdenek_hurak)\
**Post date:** [November 7, 2023, 6:35pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/29 "2023-11-07T18:35:10Z")

</div>

Quarto [https://quarto.org/](https://quarto.org/). Markdown, LaTeX, Julia, …

---

<div class="post-metadata">

**Author:** ![bert](https://avatars.discourse-cdn.com/v4/letter/b/9e8a1a/32.png) [@bert](https://discourse.julialang.org/u/bert)\
**Post date:** [November 7, 2023, 7:17pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/30 "2023-11-07T19:17:42Z")

</div>

> **[Asciidoctor reveal.js - Asciidoctor reveal.js Documentation](https://docs.asciidoctor.org/reveal.js-converter/latest/)**
>
> A documentation page for Asciidoctor reveal.js.

The power of reveal.js with the convenience of Asciidoctor. (And not having to deal with all of the stupid issues with Markdown.)

---

<div class="post-metadata">

**Author:** ![ettersi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ettersi/32/6829_2.png) [@ettersi](https://discourse.julialang.org/u/ettersi)\
**Post date:** [November 12, 2023, 3:18pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/31 "2023-11-12T15:18:41Z")

</div>

> **[Slidev](https://sli.dev/)**
>
> Presentation slides for developers

Quite similar to marp. I’m still figuring out which one I like better.

---

<div class="post-metadata">

**Author:** ![jaakkor2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jaakkor2/32/2540_2.png) [@jaakkor2](https://discourse.julialang.org/u/jaakkor2)\
**Post date:** [November 13, 2023, 5:51am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/32 "2023-11-13T05:51:36Z")

</div>

Shoutout to pandoc for converting from markdown to powerpoint. ```julia highlighting works, LaTeX input results in editable math, inserting svg results in editable graphics. Page break with `---`.

```plaintext
using pandoc_jll
run(`$(pandoc()) -o foo.pptx foo.md`)

```

---

<div class="post-metadata">

**Author:** ![tecosaur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tecosaur/32/23206_2.png) [@tecosaur](https://discourse.julialang.org/u/tecosaur)\
**Post date:** [November 13, 2023, 6:49am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/33 "2023-11-13T06:49:31Z")

</div>

For fun, I’ll mention what I’ve been doing for the past few years.

Beamer, exported from [org-mode](https://orgmode.org). Syntax highlighting is done via [a package I made](https://github.com/tecosaur/engrave-faces/) that re-uses Emacs’ fontification, and so works for custom formats (e.g. [my `conf-data-toml-mode`](https://git.tecosaur.net/tec/conf-data-toml) for DataToolkit.jl `Data.toml` files), and works with extensions I’ve made such as highlighting markup in comments and `julia>` REPL prompts 🙂.

You can see my slides from JuliaCon as an example: [https://pretalx.com/media/juliacon2023/submissions/9BTTRL/resources/presentation\_0F8lVWc.pdf](https://pretalx.com/media/juliacon2023/submissions/9BTTRL/resources/presentation_0F8lVWc.pdf)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/c/4/c497f3b8b90ab5a4c9c830d03702edbc66a8bec4.png)

---

<div class="post-metadata">

**Author:** ![j-fu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j-fu/32/11373_2.png) [@j-fu](https://discourse.julialang.org/u/j-fu)\
**Post date:** [November 13, 2023, 5:42pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/34 "2023-11-13T17:42:43Z")

</div>

Don’t forget Pluto’s presentation mode: [Button to toggle presentation mode in export menu by fonsp · Pull Request #2660 · fonsp/Pluto.jl · GitHub](https://github.com/fonsp/Pluto.jl/pull/2660)

---

<div class="post-metadata">

**Author:** ![Jakob](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@Jakob](https://discourse.julialang.org/u/Jakob)\
**Post date:** [November 13, 2023, 9:31pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/35 "2023-11-13T21:31:30Z")

</div>

I’m really liking [typst](https://typst.app) right now

---

<div class="post-metadata">

**Author:** ![liuyxpp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/liuyxpp/32/9870_2.png) [@liuyxpp](https://discourse.julialang.org/u/liuyxpp)\
**Post date:** [November 14, 2023, 2:31am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/36 "2023-11-14T02:31:58Z")

</div>

Very interesting! Do you know whether it can be exported to .tex/.docx so that it can be submitted to Publishers which requires tex or Word submission?

---

<div class="post-metadata">

**Author:** ![Jakob](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@Jakob](https://discourse.julialang.org/u/Jakob)\
**Post date:** [November 14, 2023, 7:38am UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/37 "2023-11-14T07:38:50Z")

</div>

There is some [integration with pandoc](https://github.com/mokeyish/obsidian-enhancing-export/issues/58) and also [quarto](https://quarto.org/docs/prerelease/1.4/typst.html), but I haven’t used that yet, so don’t know how well that works.

---

<div class="post-metadata">

**Author:** ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)\
**Post date:** [November 14, 2023, 12:08pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/38 "2023-11-14T12:08:37Z")

</div>

> [@Jakob](#):
>
> I’m really liking [typst](https://typst.app) right now

Agree 100%, I’ve transitioned my CV and just about everything else that I had been using latex for - it’s a dream to use.

But the [presentation package](https://github.com/andreasKroepelin/polylux) seems pretty bare-bones at the moment. And also, these a more fundamental issue with this kind of system for presentations - I have a bad taste in my mouth for “animations” that are just adding additional pages to a PDF (this applies to beamer as well). I like my presentations to have slides get built incrementally, and this leads to **enormous** files (eg a deck for an hour long presentation with about 40 slides ends up as ~200 pages in the PDF).

---

<div class="post-metadata">

**Author:** ![Jakob](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@Jakob](https://discourse.julialang.org/u/Jakob)\
**Post date:** [November 14, 2023, 3:55pm UTC](https://discourse.julialang.org/t/technology-for-presentations/12135/39 "2023-11-14T15:55:48Z")

</div>

Yeah, polylux is pretty barebones but I found it to already work surprisingly nicely. I agree with the fundamental issue of animations in pdf-based slides; typst/latex seems to be mostly suited for static presentations. The javascript-based tools might be better for that, but they tend to be quite fiddly and I don’t want to write CSS…

[Previous page](https://discourse.julialang.org/t/technology-for-presentations/12135.md?page=1)
