blog/content/tips/presenting.md

121 lines
4.2 KiB
Markdown
Raw Normal View History

---
Title: Tools for making and giving presentations
Date: 2024-11-03
Author: Fabrice
Category: Tips
Tags: presentation, vim, latex
Slug: presenting
Header_Cover: ../images/covers/pts24-talk.jpg
Summary: Some of the tools I use for making and giving presentations.
Lang: en
---
# Introduction
Over the past year, I have to give quite a few presentations in different
contexts: internal to the company, for open-source conferences, for business
conferences…
I use this opportunity to refine a bit my presentation tools, and I just
summarize them here for curious people.
This page may be updated, for instance if I start using [typst] for slide
making. If you have subscribed to this blogs [RSS feed], you will be notified
of future updates.
# Making Slides
For slide making, I prefer using tools that separate the content from the actual
design. Im thus not using fancy WYSIWYG tools for that. If you are not
interested in that, you can already skip to the [presenting slides] section.
## LaTeX Beamer
As explained in the [typst article], Im mostly using [LaTeX] to produce/typeset
documents, and presentations are not an exception. For this purpose Im using
[beamer].
For this purpose, my [vim setup for LaTeX] proved to be pretty useful,
especially with the “on save compilation”. However, the backward search is not
very accurate with beamer slides.
### Overlays and Graphics
The main advantage, besides my familiarity with [LaTeX], lays in the [overlay]
system in beamer, that is quite powerful and provides a very precise way to
display elements, especially with [TikZ] to design animated graphics.
For instance in the example below, I can show the top part of the graph
initially, then the bottom, and change the name of the last node for the second
slide. That can be easily adjusted to have more steps in the process.
```latex
\usetikzlibrary{positioning}
\begin{tikzpicture}
\tikzstyle{node} = [draw, rectangle, fill=blue!40, minimum height=2em]
\tikzstyle{arrow} = [->, >=stealth, very thick]
\node[node] (start) {Data};
\node[node, right=1cm of start] (a1) {Enc($\cdot$)};
\node<2->[node, below=5mm of a1] (a2) {Sig($\cdot$)};
\node<1>[node, right=1cm of a1] (stop) {Encrypted Data};
\node<2->[node, right=1cm of a1] (stop) {Encrypted and Signed Data};
\draw[arrow] (start) -- (a1);
\draw<2->[arrow] (start) -- (a2);
\draw[arrow] (a1) -- (stop);
\draw<2->[arrow] (a2) -- (stop);
\end{tikzpicture}
```
Resulting in:
![The last image from the above code](../examples/tikz-graph.svg "The last image from the above code"){width=66%}
Moreover, you have access to the whole latex ecosystem, especially those for
neat illustrations such as [tikzpingus].
### Customisation
It is also quite easy to customise slides with beamer. For instance, with
[metropolis], from its
[documentation](https://ctan.tetaneutral.net/macros/latex/contrib/beamer-contrib/themes/metropolis/doc/metropolistheme.pdf),
section 8 describe where to find specific colours. As for the fonts, if you are
using xelatex/lualatex, a simple `\setmainfont` suffices to redefine it.
For instance, if I want to have the alert text in orange:
```latex
\setbeamercolor[alerted text]{fg=orange}
```
### Drawbacks
However, LaTeX starts to slow down quickly, especially with a lot of [TikZ]
drawings… On documents, its not really an issue as it is possible to cache the
drawings with the `externalize` tikz library. However, when mixing overlays and
TikZ, it starts to [need some
tweaks](https://tex.stackexchange.com/questions/78955/use-tikz-external-feature-with-beamer-only).
I never included them in my workflow as they make TikZ drawings more complicated
than they are.
## reveal.js
# Presenting Slides {#presenting-slides}
## wl-mirror
## pdfpc
[RSS feed]: /feeds/all.rss.xml
[typst]: https://typst.app/
[typst article]: {filename}../software/typst.md
[presenting slides]: #presenting-slides
[LaTeX]: https://www.latex-project.org/
[beamer]: https://ctan.org/pkg/beamer
[vim setup for LaTeX]: {filename}../software/nvim-latex.md
[overlay]: https://www.overleaf.com/learn/latex/Beamer_Presentations%3A_A_Tutorial_for_Beginners_(Part_4)%E2%80%94Overlay_Specifications
[TikZ]: https://www.ctan.org/pkg/pgf
[tikzpingus]: https://github.com/EagleoutIce/tikzpingus