Files
brevetcard/README.md
Peter Adam 9b42f824f9 Remove static tex files, simplify Dockerfile and build workflow
- Remove brevetkarte.tex (unused static demo, superseded by template)
- Dockerfile: remove unnecessary COPY, workspace is volume-mounted at runtime
- Makefile: remove build-front, default target is now build-personalized
- README: remove references to removed files and targets

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 11:15:07 +01:00

108 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Brevetkarten-PDF-Generator
LaTeX-basierter Generator für Audax Randonneurs Allemagne Brevetkarten mit Vorder- und Rückseite für den Duplexdruck.
## Voraussetzungen
- Docker
- Make
- Python 3 + PyYAML (`pip install pyyaml`)
## Konfigurationsdateien
Vor dem ersten Build zwei Dateien aus den Beispielen anlegen und befüllen:
```bash
cp "Export Brevetkarte.csv.example" "Export Brevetkarte.csv"
cp event.yml.example event.yml
```
Beide Dateien sind in `.gitignore` eingetragen und werden nicht ins Repository übernommen.
### event.yml
Enthält alle veranstaltungsspezifischen Daten:
```yaml
event:
title: "Name der Veranstaltung"
km: "200"
date: "1. Januar 2025"
start_location: "Stadt, Ort"
club: "Clubname"
club_nr: "000000"
startzeit: "8:00"
backside:
"1_1": |
\vspace{2mm}
\textbf{Nr. 1:} Km 0 -- Startort\\
...
"1_2": "" # leer = Stempelfeld
...
```
Die `backside`-Sektion belegt die 12 Zellen der Rückseite (3 Zeilen × 4 Spalten, Schlüssel `"Zeile_Spalte"`). Der Inhalt ist freies LaTeX. Leere Zellen (`""`) dienen als Stempelfelder.
### Export Brevetkarte.csv
Teilnehmerdaten im Format:
```
Startnr, Nachname, Vorname, Straße, PLZ, Ort, Land, Medaille
```
Siehe `Export Brevetkarte.csv.example` für das vollständige Format.
## Verwendung
### Personalisierte Karten erzeugen und bauen
```bash
make build-personalized
```
Führt folgende Schritte aus:
1. `generate_cards.py` liest `Export Brevetkarte.csv` + `event.yml`
2. Erzeugt `brevetkarte-personalized.tex` (Vorderseite, eine Karte pro Teilnehmer)
3. Erzeugt `brevetkarte-rueckseite.tex` (Rückseite mit Kontrollpunkten aus event.yml)
4. Kompiliert beide .tex-Dateien zu PDFs
### Einzelne Schritte
```bash
# Nur tex-Dateien generieren (ohne Docker)
make generate
# Nur Rückseite kompilieren (nach generate)
make build-back
```
### Weitere Befehle
```bash
make build-image # Docker-Image bauen
make shell # Interaktive Shell im Container
make clean # Erzeugte Dateien löschen (.aux, .log, .pdf)
make clean-all # Alles löschen inkl. Docker-Image
make help # Alle Befehle anzeigen
```
## Dateien
| Datei | Beschreibung |
|---|---|
| `event.yml.example` | Vorlage für Veranstaltungsdaten (→ als `event.yml` kopieren) |
| `Export Brevetkarte.csv.example` | Vorlage für Teilnehmerdaten (→ als `Export Brevetkarte.csv` kopieren) |
| `brevetkarte-template.tex` | Vorlage Vorderseite (Platzhalter aus CSV + event.yml) |
| `brevetkarte-rueckseite-template.tex` | Vorlage Rückseite (Zellplatzhalter aus event.yml) |
| `generate_cards.py` | Generiert .tex-Dateien aus Templates + Konfiguration |
| `cyclist-logo.png` | Audax Randonneurs Logo |
| `Dockerfile` | Docker-Image-Definition (debian:bookworm-slim + TeX Live) |
| `Makefile` | Build-Automatisierung |
## Duplexdruck
1. `brevetkarte-personalized.pdf` auf einer Seite drucken
2. `brevetkarte-rueckseite.pdf` auf der Rückseite drucken
3. Blatt horizontal in der Mitte schneiden → zwei separate Brevetkarten