20
0
Files
cdsc_tex/slides_template/README.md
Benjamin Mako Hill b7e37320de Let decks define note macros in notes-preamble.tex
Notes that use a deck's own macros failed to typeset, since mknotes
only pulled in fonts.tex. A deck now defines them in notes-preamble.tex
(starting with \input{fonts.tex}), which mknotes prefers when present.
The Makefile keeps the new fragment out of the document list.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 00:11:19 +09:00

83 lines
3.1 KiB
Markdown

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