# Slides Template

Presentation slides on the [ltx-talk](https://github.com/josephwright/ltx-talk)
class, which was written with tagging as a design goal. See the
[root README](../README.md) for what tagging buys and how to check it.

## Requirements

* LuaLaTeX
* ltx-talk, from `texlive-latex-recommended`. It needs LaTeX 2025-11-01 or
  later, which is newer than TeX Live 2025 as first released; Overleaf's
  TeX Live 2025 may predate it, so compile there before relying on it.
* `python3-pypdf`, for assembling the notes PDF

```
apt install latexmk texlive-luatex texlive-latex-recommended \
  texlive-fonts-extra python3-pypdf
```

Slides are set in Open Sans and Roboto Mono, both from `texlive-fonts-extra`.

## Building

```
make slides      # the deck
make notes       # double-width slide and notes pages, for presenting
make pdfpc       # build the notes PDF and open it in pdfpc
```

Share the slides build. The notes build is not tagged and exists to be looked
at while talking.

## Writing slides

Give frame titles as `\frametitle`, not as the braced argument to `frame`. The
class treats `\begin{frame}{Title}` as body text, so a title given that way is
not tagged as a heading.

Coming from beamer:

| beamer | here |
|---|---|
| `\begin{frame}{Title}` | `\frametitle{Title}` inside the frame |
| `\begin{frame}[standout]{}` | `\standout{...}` |
| `\sectionpage` from the theme | `\section{...}` then `\sectionpage` |
| `\subsectionpage` | `\subsection{...}` then `\subsectionpage` |
| `\note{...}`, `\note[item]{...}` | same, after `\usepackage{talk-notes}` |
| `\appendix` | same |
| `\alert{...}`, `\item<2->`, `\pause` | same |
| `\only<1>{...}` | avoid; use `\pause` or `\begin{itemize}[<+->]` |

## Speaker notes

ltx-talk has no `\note` command (see
[issue #156](https://github.com/josephwright/ltx-talk/issues/156)).
`talk-notes.sty` defines one that records its text to a side file and
contributes nothing to the slides; `mknotes` reads that file afterwards and
builds the presenter PDF.

Write notes with `\note{...}`, or `\note<2->{...}` to bind one to particular
slides of a frame. As in beamer, plain notes run together as text, each
starting a new paragraph, and `\note[item]{...}` adds an entry to a numbered
list printed after them.

`make notes` writes `<jobname>-notes.pdf`, the double-width version you present
from. Show it with [dspdfviewer](https://github.com/dannyedel/dspdfviewer),
[pdfpc](https://pdfpc.github.io/), or the web viewers
[Beamer Viewer](https://beamerviewer.euxane.eu/) and
[backstage](https://bckstg.xyz/).

To use notes in another ltx-talk document, copy `mknotes` and `talk-notes.sty`
across and load the package. `mknotes` picks up `notes-preamble.tex`,
or else `fonts.tex`, when present, so the notes match the deck; a deck whose
notes use its own macros defines them in `notes-preamble.tex` (starting with
`\input{fonts.tex}`). `--preamble FILE` names a different fragment.

## Theme

`trantor.sty` is [Marco Pompili's](https://github.com/mrc-pop)
[Metropolis-like theme](https://github.com/mrc-pop/trantor) for ltx-talk,
vendored with a licence header added and the font block left to the document.
Re-vendor from the fork rather than editing this copy.
