Syncs with the stack now open upstream as pull requests: the progress bar
extracted into a shared command, \subsectionpage, \appendix, the dark
title band, and the metropolis-style dividers.
Two local changes are reapplied on top, as before: the licence notice in
the header, and font selection left to the document so this template can
use OpenSans and RobotoMono.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The port flattened \author and \institute to one line each. Restore
master's content: email under the name, both affiliations with roles.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Ports the fix now proposed upstream: trantor's title page never printed
\subtitle, so a deck that set one silently lost it.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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>
Adds a subsection with its divider, and after \appendix a table and a
figure, so the appendix numbering, table tagging and alt text all have
something exercising them. The table declares its header row, without which
the header cells are tagged TD like any other.
Frame titles are given as \frametitle rather than as the argument to
\begin{frame}, since only the command form is tagged as a heading.
The palette override moves above \usepackage{trantor} so the theme picks it
up, and the notes show both forms: plain \note and \note[item].
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
veraPDF was wired in as a make dependency, which it should not be: it is a
check to run by hand, not something a build needs installed. The validate
target goes away.
The vc target came back. It generates the git revision file and was lost in
the port, so \input{vc} had nothing to read. spell came back with it.
notes.config is deliberately not restored. It existed to flip
\setbeameroption between slides, notes-on-second-screen and notes-only, and
ltx-talk has no such option: the slides build never contains notes and the
notes PDF is assembled afterwards by mknotes.
fonts.tex has to be kept out of the wildcard. It is a fragment with no
\documentclass, and make otherwise tries to typeset it and hangs waiting
for input.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Notes were rendered as a bullet list, which beamer does not do. Reading
beamerbasenotes.sty: a plain \note appends its text to a running block with
no separator at all, and \note[item] accumulates separately into an
enumerate printed after that block.
Match both. talk-notes.sty takes \note<spec>[item]{text}, as beamer does,
and records which kind it is. The one deviation is a paragraph break
between plain notes instead of running them together, which is easier to
read on a page.
The notes half is laid out like beamer's too: a grey band across the head
carrying the section and the position in the talk, the current slide flush
into the outer corner, and the notes below. The heading is set in the
sans face against the roman body so it reads as apparatus rather than as
part of the notes.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The notes pages were typeset in the default Latin Modern while the slides
used OpenSans and RobotoMono, so the two halves of a presenter page did not
match.
Move the font declarations to fonts.tex, which the slides \input and
mknotes passes to the notes document. mknotes uses it by default when it
exists, so a deck that copies the two notes files in gets matching fonts
without having to remember a flag; --preamble names a different fragment,
and a file named there but missing is an error rather than ignored.
The notes document now compiles from the document directory with
-output-directory rather than running inside the temporary one, so the
relative font paths in the fragment resolve.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Brings across the work now sitting in pull requests upstream: a palette of
named colours in place of hardcoded black and white, the frame title in a
dark band, section and subsection dividers set metropolis-style on the
light background over a progress bar, \appendix so backup slides stay out
of the frame count, and a fix for the divide by zero the progress bar hit
before the aux file existed.
The separate MIT licence file goes away. The notice it carried now sits in
the header of trantor.sty itself, which is what the licence asks for and
leaves one licence file in the repository.
Fork: https://github.com/makoshark/trantor
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Only \frametitle{...} produces a tagged heading in ltx-talk. Giving the
title as the argument to \begin{frame}{...} silently yields a frame with
no heading element at all, which is why the deck had sections but nothing
per slide. Use the command form throughout.
The resulting headings sit at ltx-talk's default H4, nested under the H1
that a section produces. That level can be remapped with \tagpdfsetup if
assistive software turns out to want frame titles higher up.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Covers the build targets, why only the slides build is expected to
validate, and how the notes are captured. Also records the known gaps so
they are not rediscovered later: frame titles are not emitted as
headings despite the role map declaring frametitle -> H4, overlay
tagging has an open upstream bug for the \only forms, and talk-notes.sty
depends on two ltx-talk internals that a future release may rename.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Beamer cannot produce a genuinely tagged PDF. The master template
validates as PDF/UA-2 only because tagpdf marks everything it was not
told about as decorative, so a screen reader gets the frame titles and
nothing else. Beamer 3.77 then made matters worse by refusing
\DocumentMetadata outright, which breaks tagging on TeX Live 2025 and
leaves the deck failing validation altogether.
ltx-talk was written by the LaTeX Project with tagging as a design goal.
The slides built here carry real paragraphs, lists as L/LI/Lbl/LBody,
sections as headings, formulas as MathML, and alt text that reaches the
PDF. veraPDF passes on the strength of that structure rather than in
spite of its absence.
The metropolis theme files go with beamer; trantor replaces them. Fonts,
figures and the purple palette are unchanged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ltx-talk has no \note command. Its README and website list speaker notes
among what the class is for, but the feature is unwritten: the request is
open upstream as issue #156, where the maintainer has said notes are
wanted but that the interface needs thought first. Nothing has landed as
of v0.5.3.
So notes are captured rather than typeset. talk-notes.sty defines \note
to contribute nothing to the slides and instead record its text, and
mknotes reads that afterwards to assemble the presenter PDF: slide on the
left, and on the right a grey header band, a thumbnail of the current
slide flush into the corner, and the notes below. Previous and next
slides are left to dspdfviewer and pdfpc, which show them already.
The hard part is that a frame is not a page, since overlays expand one
frame into an unpredictable number of slides. Records are therefore
written from the shipout hook, the first point at which the frame and
slide identity of a page is settled, which makes the mapping exact rather
than guessed. Notes honour the usual overlay specifications, so
\note<1>{...} appears beside only the first slide of its frame.
The assembled PDF is not tagged and is not meant to be shared; only the
slides build is.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
trantor is Marco Pompili's Metropolis-like theme for ltx-talk, added
under its MIT license so the deck keeps roughly its present look after
the class change. Two things differ from upstream: font selection moves
out to the document, since this template ships OpenSans and RobotoMono,
and the Euler maths font it loaded by default is dropped because
lum-euler is not packaged in Debian's TeX Live.
Upstream: https://github.com/mrc-pop/trantor
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Slides-only builds validate as PDF/UA-2, which is what upload targets
check for, but only frame titles and links are actually tagged. Say so
rather than leaving the veraPDF pass to imply more than it means.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Computer Modern math fonts have no ToUnicode entries, which failed
ISO 14289-2 clause 8.4.5.8 on six checks and left every formula opaque
to assistive software. Switching to an OpenType math font changes the
rendering of math only slightly.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
veraPDF reported two metadata failures against ISO 14289-2: nothing
identified the file as PDF/UA (clause 5), and ViewerPreferences was
missing DisplayDocTitle (clause 8.11.2), so viewers announced the
filename instead of the title.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Makefile has built with lualatex since the tagged PDF work in
2841ae9, but the README still told people to install texlive-xetex.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The black page number is illegible against the dark standout background.
Defines a custom frame numbering template that outputs nothing on standout
frames and the normal fraction on all others.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
\alert{} is invisible on standout frames due to the inverted color
scheme; fall back to \textit{} using the metropolis@standout boolean.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch to LuaLaTeX (better tagged PDF support), add \DocumentMetadata
for PDF 2.0 and language metadata, enable tagpdf tagging, and mark
tikz overlay commands (\credit, \marktopleft, \markbottomright) as
PDF artifacts.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add README with dependencies, clone instructions, script usage, and
patch submission guidance. Remove stale rubber invocation from the
clean target in the Makefile.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch from git checkout-index to git archive with a temp directory,
fixing unquoted variables, TMPDIR name collision, missing set -e,
missing existence check for destination, and mktemp running
unconditionally. Fix typo in error message.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- moved from pdflatex to xelatex
- changed all the .sty files to those build from th latest version of
mtheme
- reworked the default template in a series of ways
- removed a bunch of cruft
- changed the logo to the new centered logo