# 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.