Give each template its own README
The root README keeps what is shared — dependencies, accessibility, the scripts — and links to a per-template README for how to build and what is in it. The Posters section moves to poster_template/README.md with a pointer left behind, since it is that template's caveat. slides_template/README.md replaces the two READMEs that came with beamer-mako. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,109 +0,0 @@
|
||||
================================
|
||||
=== Mako's Beamer Templates ====
|
||||
================================
|
||||
|
||||
Copyright (c) 2013-2026 Benjamin Mako Hill <mako@atdot.cc> / <makohill@uw.edu>
|
||||
|
||||
This repository contains a Beamer presentation template I use for my
|
||||
own presentations. Others in the CDSC lab also use it for lab
|
||||
presentations. It is released under the GNU GPL version 3 or later.
|
||||
|
||||
The latest version can be found on GitLab at:
|
||||
https://gitlab.com/makoshark/beamer-mako
|
||||
|
||||
You can clone the repository with:
|
||||
|
||||
git clone https://gitlab.com/makoshark/beamer-mako.git
|
||||
|
||||
Bug reports, comments, questions, and patches can be directed to:
|
||||
|
||||
Benjamin Mako Hill <makohill@uw.edu> [work]
|
||||
Benjamin Mako Hill <mako@atdot.cc> [personal]
|
||||
|
||||
Patches can be submitted as merge requests via GitLab, or by cloning
|
||||
the repository and sending patches by email:
|
||||
|
||||
git format-patch origin/master
|
||||
git send-email *.patch
|
||||
|
||||
================================
|
||||
=== Dependencies ===============
|
||||
================================
|
||||
|
||||
On Debian or Ubuntu, install the following packages:
|
||||
|
||||
* latexmk
|
||||
* texlive-luatex
|
||||
* texlive-latex-recommended
|
||||
* texlive-latex-extra
|
||||
|
||||
apt install latexmk texlive-luatex texlive-latex-recommended \
|
||||
texlive-latex-extra
|
||||
|
||||
On other systems, installing a full TeX Live distribution should provide
|
||||
everything needed.
|
||||
|
||||
The template uses the Metropolis Beamer theme, bundled in the template/
|
||||
directory along with the OpenSans and RobotoMono fonts it requires.
|
||||
|
||||
================================
|
||||
=== Accessibility ==============
|
||||
================================
|
||||
|
||||
Slides are built as tagged PDFs that validate against PDF/UA-2
|
||||
(ISO 14289-2), which is what upload targets like Canvas check for. Check
|
||||
a file with veraPDF (https://verapdf.org/):
|
||||
|
||||
verapdf -f ua2 my-talk.pdf
|
||||
|
||||
The pieces that do this work are:
|
||||
|
||||
* \DocumentMetadata declares PDF/UA-2, PDF 2.0, and the document
|
||||
language. The language tag tells a screen reader how to pronounce
|
||||
the text.
|
||||
* tagpdf with activate-all turns tagging on.
|
||||
* The frametitle template is patched to emit H1 tags, since Beamer
|
||||
does not treat frame titles as headings on its own.
|
||||
* unicode-math replaces the Computer Modern math fonts, which carry no
|
||||
Unicode mappings and leave formulas unreadable to assistive software.
|
||||
* \hypersetup{pdfdisplaydoctitle=true} makes viewers announce the
|
||||
document title instead of the filename.
|
||||
* The tikz overlays behind \credit, \marktopleft, and \markbottomright
|
||||
are marked as artifacts so they stay out of the reading order.
|
||||
|
||||
Use a slides-only build (make slides) for anything shared. Builds that
|
||||
include speaker notes do not validate, because Beamer repeats the frame
|
||||
title and section headings on the notes half of each page.
|
||||
|
||||
Validating is not the same as being accessible, and this template does
|
||||
the first better than the second. Frame titles and links are tagged;
|
||||
body text, lists, and figures are not, so a screen reader gets the
|
||||
outline of a talk rather than its contents. Closing that gap needs
|
||||
automatic tagging from the LaTeX kernel (\DocumentMetadata{tagging=on}),
|
||||
which requires TeX Live 2025 or later and is waiting on Overleaf to
|
||||
support it, and Beamer support in the LaTeX Tagging Project, which does
|
||||
not exist yet. The alt={...} arguments in the template are written for
|
||||
that day; they are dropped by the current toolchain.
|
||||
|
||||
================================
|
||||
=== Scripts ====================
|
||||
================================
|
||||
|
||||
new_beamer_presentation
|
||||
-----------------------
|
||||
Creates a new presentation directory from the template. Takes a
|
||||
destination directory as its argument:
|
||||
|
||||
new_beamer_presentation <directory>
|
||||
|
||||
Example:
|
||||
|
||||
new_beamer_presentation my-talk
|
||||
|
||||
This creates my-talk/ populated with the template files, with the main
|
||||
source file renamed to my-talk.tex. Fonts are symlinked from the source
|
||||
repository rather than copied, so the repository must remain in place.
|
||||
|
||||
Symlink the script into your PATH with:
|
||||
|
||||
ln -s ~/tex/beamer-mako/new_beamer_presentation ~/bin/
|
||||
@@ -1,97 +0,0 @@
|
||||
# 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
|
||||
```
|
||||
|
||||
Share the slides build, not the notes build: only the slides are tagged and
|
||||
expected to validate with tools like [veraPDF](https://verapdf.org/).
|
||||
|
||||
## Migrating 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}[<+->]` |
|
||||
|
||||
Use `\frametitle`, not the braced argument: by default the class treats
|
||||
`\begin{frame}{Title}` as body text, so the title is not tagged as a heading.
|
||||
Give every `\includegraphics` an `alt={...}` description, and declare table
|
||||
header rows with `\tagpdfsetup{table/header-rows={1}}` before the tabular.
|
||||
|
||||
## 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. Present 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/).
|
||||
|
||||
### 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.
|
||||
80
slides_template/README.md
Normal file
80
slides_template/README.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# 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 `fonts.tex` when it is present,
|
||||
so the notes 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,
|
||||
vendored with a licence header added and the font block left to the document.
|
||||
Re-vendor from the fork rather than editing this copy.
|
||||
Reference in New Issue
Block a user