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:
69
README.md
69
README.md
@@ -3,8 +3,8 @@
|
||||
Copyright (c) 2009-2026 Benjamin Mako Hill <mako@atdot.cc> / <makohill@uw.edu>
|
||||
|
||||
This repository contains LaTeX configuration files and templates used to
|
||||
format papers, memos, letters, and posters. All files are released under
|
||||
the GNU GPL version 3 or later.
|
||||
format papers, memos, letters, talks, and posters. All files are released
|
||||
under the GNU GPL version 3 or later.
|
||||
|
||||
The latest version can be found
|
||||
[in git](https://gitea.communitydata.science/collective/cdsc_tex).
|
||||
@@ -29,6 +29,17 @@ git send-email *.patch
|
||||
```
|
||||
|
||||
|
||||
## Templates
|
||||
|
||||
Each has its own README with build instructions and details.
|
||||
|
||||
* [paper_template](paper_template/README.md) — a paper, in `article`
|
||||
* [memo_template](memo_template/README.md) — a short memo
|
||||
* [letter_template](letter_template/README.md) — a letter
|
||||
* [slides_template](slides_template/README.md) — presentation slides, in ltx-talk
|
||||
* [poster_template](poster_template/README.md) — a conference poster, in beamer
|
||||
|
||||
|
||||
## Dependencies
|
||||
|
||||
On Debian or Ubuntu, install the following packages:
|
||||
@@ -39,30 +50,32 @@ On Debian or Ubuntu, install the following packages:
|
||||
* texlive-fonts-extra
|
||||
* texlive-fonts-recommended
|
||||
* texlive-bibtex-extra
|
||||
* python3-pypdf (slides template only, for the speaker-notes PDF)
|
||||
|
||||
```
|
||||
apt install latexmk texlive-luatex texlive-latex-recommended \
|
||||
texlive-fonts-extra texlive-fonts-recommended \
|
||||
texlive-bibtex-extra
|
||||
texlive-bibtex-extra python3-pypdf
|
||||
```
|
||||
|
||||
On other systems, installing a full TeX Live distribution should provide
|
||||
everything needed.
|
||||
|
||||
All four templates build with LuaLaTeX (via `latexmk -lualatex`). The text
|
||||
fonts are Libertinus Serif and TeX Gyre Heros, both provided by
|
||||
texlive-fonts-extra.
|
||||
everything needed. All templates build with LuaLaTeX (via `latexmk
|
||||
-lualatex`) and take their fonts from TeX Live, so nothing has to be
|
||||
installed as a system font.
|
||||
|
||||
The tagging code requires TeX Live 2025 or later. On Overleaf, set the
|
||||
version under Menu > Settings > TeX Live version. Debian Trixie ships
|
||||
TeX Live 2024; sid (unstable) has TeX Live 2026, which also works and
|
||||
installs without pulling in much else.
|
||||
installs without pulling in much else. The slides template needs a newer
|
||||
LaTeX than the others; see its
|
||||
[README](slides_template/README.md#requirements).
|
||||
|
||||
|
||||
## Accessibility
|
||||
|
||||
The paper, memo, and letter templates produce tagged PDFs that declare
|
||||
PDF/UA-2 (ISO 14289-2). The poster template does not; see below.
|
||||
The paper, memo, letter, and slides templates produce tagged PDFs that
|
||||
declare PDF/UA-2 (ISO 14289-2). The [poster
|
||||
template](poster_template/README.md) does not, because beamer cannot.
|
||||
|
||||
Two keys in the `\DocumentMetadata` block at the top of each template do
|
||||
this, and both are needed: `tagging=on` loads the kernel code that puts
|
||||
@@ -78,10 +91,11 @@ tagging.
|
||||
### Writing an accessible document
|
||||
|
||||
Tagging gets you the structure; the content is still up to the author.
|
||||
The paper template carries a worked example of each of these:
|
||||
The paper and slides templates carry a worked example of each of these:
|
||||
|
||||
* Use `\section` and `\subsection` for headings rather than setting type
|
||||
in bold by hand. Screen reader users navigate by the heading tree.
|
||||
in bold by hand. Screen reader users navigate by the heading tree. In
|
||||
the slides template, give frame titles as `\frametitle`.
|
||||
|
||||
* Give every figure an `alt=` description on `\includegraphics`, saying
|
||||
what the reader is meant to take from it. A decorative image takes
|
||||
@@ -113,7 +127,7 @@ verapdf -f ua2 text.pdf
|
||||
```
|
||||
|
||||
It prints PASS or FAIL, and `--format text` lists the failing clauses.
|
||||
All three tagged templates pass as shipped, so a FAIL points at the
|
||||
All four tagged templates pass as shipped, so a FAIL points at the
|
||||
document rather than the template.
|
||||
|
||||
Note that a PASS is necessary but not sufficient. A document whose
|
||||
@@ -127,21 +141,11 @@ python3 -c "import pikepdf,sys; d=pikepdf.open(sys.argv[1]); \
|
||||
print(d.Root.get('/StructTreeRoot') and 'tagged' or 'UNTAGGED')" file.pdf
|
||||
```
|
||||
|
||||
### Posters
|
||||
|
||||
The poster template is not accessible and makes no accessibility
|
||||
claim. The beamer class rejects `\DocumentMetadata` outright, and the
|
||||
LaTeX Tagging Project lists beamer and beamerposter as no-support,
|
||||
meaning incompatible and not expected to change. When a poster needs
|
||||
an accessible version, build a companion document from the paper or
|
||||
memo template.
|
||||
|
||||
|
||||
## Branches
|
||||
|
||||
This repository has two main branches:
|
||||
|
||||
* `master` — Standard LaTeX templates (paper, memo, letter, poster)
|
||||
* `master` — Standard LaTeX templates (paper, memo, letter, slides, poster)
|
||||
* `knitr` — Knitr/R template for reproducible research documents
|
||||
|
||||
|
||||
@@ -162,6 +166,7 @@ Available types:
|
||||
* `memo` — LaTeX memo template (master branch)
|
||||
* `knitr` — Knitr/R paper template (knitr branch)
|
||||
* `letter` — LaTeX letter template (master branch)
|
||||
* `slides` — ltx-talk presentation template (master branch)
|
||||
|
||||
Example:
|
||||
|
||||
@@ -199,13 +204,14 @@ This defines the following aliases (only if `new_tex_document` is in PATH):
|
||||
* `new_tex_memo` → `new_tex_document memo`
|
||||
* `new_knitr_document` → `new_tex_document knitr`
|
||||
* `new_tex_letter` → `new_tex_document letter`
|
||||
* `new_beamer_presentation` → `new_tex_document slides`
|
||||
|
||||
|
||||
## Migration
|
||||
|
||||
The individual scripts `new_knitr_document` and `new_tex_letter` have
|
||||
been consolidated into `new_tex_document`. The old scripts remain in
|
||||
the repository but are superseded.
|
||||
The individual scripts `new_knitr_document`, `new_tex_letter`, and
|
||||
`new_beamer_presentation` have been consolidated into
|
||||
`new_tex_document`.
|
||||
|
||||
To migrate, replace calls to the old scripts with `new_tex_document`:
|
||||
|
||||
@@ -215,7 +221,14 @@ New: new_tex_document knitr mydir
|
||||
|
||||
Old: new_tex_letter mydir
|
||||
New: new_tex_document letter mydir
|
||||
|
||||
Old: new_beamer_presentation mydir
|
||||
New: new_tex_document slides mydir
|
||||
```
|
||||
|
||||
The presentation template came from
|
||||
[beamer-mako](https://gitlab.com/makoshark/beamer-mako), which is
|
||||
superseded by `slides_template` here.
|
||||
|
||||
Alternatively, source `cdsc_tex_aliases.sh` (see above) to keep using the
|
||||
old names without changing your workflow.
|
||||
|
||||
Reference in New Issue
Block a user