20
0
Files
cdsc_tex/slides_template/README.ltx-talk.md
Benjamin Mako Hill 288d571df2 Rewrite the port's README as Markdown
Converts it and fills in what was missing: install instructions, links to
ltx-talk, trantor, veraPDF and the presenter viewers, the upstream issues
behind the speaker-notes workaround and the overlay tagging bug, and how to
use the notes machinery in another document.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 07:26:23 -07:00

104 lines
3.4 KiB
Markdown

# ltx-talk port
This branch is the presentation template ported from beamer to the
[ltx-talk](https://github.com/josephwright/ltx-talk) class. ltx-talk was
written with tagging as a design goal.
## Requirements
* LuaLaTeX
* TeX Live 2025 or newer (ltx-talk needs LaTeX 2025-11-01 or later);
`texlive-latex-recommended` ships the class
* `python3-pypdf`, for assembling the notes PDF
You can install all three on Debian with:
```
apt install texlive-latex-recommended python3-pypdf
```
## Building
```
make slides # the deck; this is what gets uploaded
make notes # double-width slide + notes pages for presenting
make pdfpc # build the notes PDF and open it in pdfpc
```
The notes are a kludge. They exist to be read while talking and not shared.
Only the slides build is expected to validate with tools like
[veraPDF](https://verapdf.org/).
## Speaker notes
ltx-talk has no `\note` command. Its README and website list speaker notes
among what the class is for, but the feature is unwritten (see
[issue #156](https://github.com/josephwright/ltx-talk/issues/156)).
`talk-notes.sty` defines `\note` so that it records its text to a side file and
contributes nothing to the slides. `mknotes` reads that file afterwards and
builds the presenter PDF.
The assembled page puts the slide on the left and, on the right, a grey band
carrying the section and position in the talk, a thumbnail of the current
slide flush into the corner, and the notes below. Previous and next slides are
left to the viewer: [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/).
### Installing speaker notes
To use speaker notes in another ltx-talk document, copy two files out of this
repository:
- `mknotes`
- `talk-notes.sty`
Load the package in the preamble:
```latex
\usepackage{talk-notes}
```
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.
Build the deck, then assemble the presenter PDF:
```
./mknotes example
```
That reads `example.pdf` and `example.notes` and writes `example-notes.pdf`,
the double-width version you present from. The slides in `example.pdf` are
untouched.
If `fonts.tex` is present it is used for the notes pages, so they match the
deck. `--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.
## Known gaps
Frame titles must be given as `\frametitle{...}` inside the frame, not as the
argument to `\begin{frame}{...}`. Only the command form is tagged.
ltx-talk tags frame titles at H4, well below sections, and its manual calls the
relationship between frame titles and sectioning "still very much open".
[Issue #33](https://github.com/josephwright/ltx-talk/issues/33): `\only<1>` and
`\only<2>` produce output that fails validation. The `\pause` and `<+->` forms
used here are unaffected.
ltx-talk is version 0.5.x and warns that almost all interfaces may change.
`talk-notes.sty` reads two internals, `\g__talk_frame_int` and
`\g__talk_slide_int` — the first thing to check if a release breaks the notes
build.