diff --git a/slides_template/README.ltx-talk b/slides_template/README.ltx-talk new file mode 100644 index 0000000..28403b8 --- /dev/null +++ b/slides_template/README.ltx-talk @@ -0,0 +1,114 @@ +================================ +=== ltx-talk port ============== +================================ + +This branch is the presentation template ported from beamer to the +ltx-talk class. It is experimental and kept apart from master, where the +beamer template is still the one in daily use. + +The reason to move is accessibility. 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 has since made +this worse by refusing \DocumentMetadata outright, which breaks tagging +on TeX Live 2025 entirely. + +ltx-talk was written by the LaTeX Project with tagging as a design goal, +and the difference in the output is not subtle. Slides built here carry +real paragraphs, lists as L/LI/Lbl/LBody, sections as headings, formulas +as MathML, and alt text that actually reaches the PDF. veraPDF passes on +the strength of that structure rather than in spite of its absence. + +================================ +=== Requirements =============== +================================ + + * TeX Live 2025 or newer (ltx-talk needs LaTeX 2025-11-01 or later) + * LuaLaTeX; XeTeX is not supported + * Python 3 with pypdf, for assembling the notes PDF + * veraPDF, to check conformance + +Fonts and figures are the same ones the beamer template used and sit +beside the source. They have to: LuaTeX fails to resolve a +parent-relative Path= for fonts and dies with an unhelpful +empty-filename error. + +================================ +=== Building =================== +================================ + + make slides the deck; this is what gets uploaded + make notes double-width slide + notes pages for presenting + make validate check the deck against PDF/UA-2 + make pdfpc build the notes PDF and open it in pdfpc + +Only the slides build is expected to validate. The notes PDF is +assembled by hand from two PDFs, which destroys the tag tree, and that is +fine: it exists to be read while talking and is never shared. + +================================ +=== Speaker notes ============== +================================ + +ltx-talk has no \note command. Its README and website describe speaker +notes as part of what the class is for, but the feature has not been +written: the request is open upstream as issue #156, where the maintainer +has said notes are wanted but that the interface needs thought first. As +of v0.5.3 nothing has landed. + +Notes here are therefore captured rather than typeset. talk-notes.sty +defines \note so that it contributes nothing to the slides and instead +records its text to a side file, and mknotes reads that file afterwards +to build the presenter PDF. + +The awkward part is that a frame is not a page. Overlays expand one frame +into several slides, and how many is not knowable from the source. So +talk-notes.sty writes a record for every page from the shipout hook, +which is the first moment at which the frame and slide identity of a page +is settled: + + PAGE 3|FRAME 3|SLIDE 1 + PAGE 4|FRAME 3|SLIDE 2 + PAGE 5|FRAME 3|SLIDE 3 + +Notes take the same overlay specifications as everything else, so +\note<1>{...} appears only beside the first slide of its frame and +\note<3->{...} only from the third on. A note without a specification +runs alongside the whole frame. + +The assembled page puts the slide on the left and, on the right, a grey +band carrying the section and the 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 dspdfviewer and pdfpc, which show them +already. + +================================ +=== Theme ====================== +================================ + +trantor.sty is Marco Pompili's Metropolis-like theme for ltx-talk, +vendored here under its MIT license (see LICENSE.trantor) and modified in +two places: font selection has been moved out to the document, since this +template ships OpenSans and RobotoMono, and the Euler maths font it +loaded by default is not packaged in Debian's TeX Live. + +Upstream: https://github.com/mrc-pop/trantor + +================================ +=== Known gaps ================= +================================ + +Frame titles are not headings. ltx-talk's role map declares +frametitle -> H4, but no such elements are emitted, so the tag tree has +sections but no per-slide headings. The manual calls the relationship +between frame titles and sectioning "still very much open". + +Overlay tagging has an open upstream bug, issue #33, where \only<1> and +\only<2> produce output that fails validation. The \pause and <+-> forms +used here are the well-supported case. + +ltx-talk is version 0.5.x and warns that almost all interfaces may still +change. talk-notes.sty reads two of its private internals, +\g__talk_frame_int and \g__talk_slide_int, which is the price of getting +an exact page mapping and the first thing to check if a future release +breaks the notes build.