- Dockerfile 65.2%
- Shell 34.8%
| out | ||
| .env.example | ||
| .gitignore | ||
| compile.sh | ||
| compose.yaml | ||
| Dockerfile | ||
| README.md | ||
| reformat.sh | ||
| run.sh | ||
beamertools
Docker tooling for building and maintaining the Beamer presentations in the sibling repositories.
The presentation sources are mounted into the container; only the compiled PDF is written back to this repository.
Prerequisites
- Docker with Compose
- The presentation repository checked out next to this one:
präsentationen/
├── beamertools/ ← this repo
└── Grundprojekt-Hauptprojekt-Praesentation/
└── main.tex
Setup
-
Copy the environment file and set your host user ID and group ID:
cp .env.example .envEdit
.envif your values differ from the defaults:id -u # → HOST_UID id -g # → HOST_GIDCompose reads
.envautomatically so file ownership on mounted volumes matches your user. -
Build the image (once, or after changing the Dockerfile or scripts):
docker compose build
Usage
All commands are run from beamertools/.
Compile PDF
docker compose run --rm beamer
Output: out/main.pdf
The compile step copies sources to a temporary directory inside the container, runs latexmk, and copies only the PDF to ./out. LaTeX build artefacts (.aux, .log, …) stay in the container.
Preview continuous (rebuild on save)
docker compose run --rm preview
Runs latexmk -pvc and rebuilds whenever you save a source file. Output goes to out/main.pdf. Press Ctrl+C to stop.
Build artefacts (.aux, .log, …) are written to ./out during preview; they stay out of the presentation repository.
Reformat source
docker compose run --rm reformat
Runs latexindent on main.tex in the presentation repository and writes the result back in place.
Services
| Service | Command | Purpose |
|---|---|---|
beamer |
docker compose run --rm beamer |
Build main.pdf via latexmk |
preview |
docker compose run --rm preview |
Rebuild on save via latexmk -pvc |
reformat |
docker compose run --rm reformat |
Format main.tex via latexindent |
beamer and preview mount ./out for the PDF. All services mount ../Grundprojekt-Hauptprojekt-Praesentation at /work.
Image contents
Based on texlive/texlive:latest with Inkscape added for SVG logos (\includesvg requires -shell-escape).
Included LaTeX packages used by the presentation: beamer (Warsaw / seahorse themes), babel-ngerman, csquotes, hyperref, graphicx, pgf, svg.