2026-02-28 10:17:16 +01:00
# Brevetkarten-PDF-Generator
2026-02-03 13:46:49 +01:00
2026-02-28 10:17:16 +01:00
LaTeX-basierter Generator für Audax Randonneurs Allemagne Brevetkarten mit Vorder- und Rückseite für den Duplexdruck.
2026-02-03 13:46:49 +01:00
2026-02-28 10:17:16 +01:00
## Schnellstart
2026-02-03 13:46:49 +01:00
```bash
2026-02-28 10:17:16 +01:00
# Alles bauen und beide PDFs erzeugen
2026-02-03 13:46:49 +01:00
make build
2026-02-28 10:17:16 +01:00
# Die PDFs werden erstellt als:
# - brevetkarte.pdf (Vorderseite mit Teilnehmerinfos)
# - brevetkarte-rueckseite.pdf (Rückseite mit Kontrollen)
2026-02-03 13:46:49 +01:00
```
2026-02-28 10:17:16 +01:00
## Voraussetzungen
2026-02-03 13:46:49 +01:00
- Docker
- Make
2026-02-28 10:17:16 +01:00
## Verwendung
2026-02-03 13:46:49 +01:00
2026-02-28 10:17:16 +01:00
### Beide PDFs bauen
2026-02-03 13:46:49 +01:00
```bash
make build
```
2026-02-28 10:17:16 +01:00
Dies führt folgende Schritte aus:
1. Docker-Image mit TeX Live bauen
2. `brevetkarte.tex` zu `brevetkarte.pdf` kompilieren (Vorderseite)
3. `brevetkarte-rueckseite.tex` zu `brevetkarte-rueckseite.pdf` kompilieren (Rückseite)
2026-02-03 13:46:49 +01:00
2026-02-28 10:17:16 +01:00
### Einzelne Seiten bauen
2026-02-03 13:46:49 +01:00
```bash
2026-02-28 10:17:16 +01:00
# Nur Vorderseite bauen
2026-02-03 13:46:49 +01:00
make build-front
2026-02-28 10:17:16 +01:00
# Nur Rückseite bauen
2026-02-03 13:46:49 +01:00
make build-back
2026-02-28 10:17:16 +01:00
# Beide Seiten bauen (ohne Docker-Image neu zu bauen)
2026-02-03 13:46:49 +01:00
make build-pdf
```
2026-02-28 10:17:16 +01:00
### Personalisierte Karten aus CSV
2026-02-28 10:15:07 +01:00
```bash
2026-02-28 10:17:16 +01:00
# 1. Beispiel-CSV kopieren und Teilnehmerdaten eintragen
2026-02-28 10:15:07 +01:00
cp "Export Brevetkarte.csv.example" "Export Brevetkarte.csv"
2026-02-28 10:17:16 +01:00
# "Export Brevetkarte.csv" mit den Teilnehmern befüllen
2026-02-28 10:15:07 +01:00
2026-02-28 10:17:16 +01:00
# 2. Personalisierte Karten erzeugen und bauen
2026-02-28 10:15:07 +01:00
make build-personalized
2026-02-28 10:17:16 +01:00
# Ausgabe: brevetkarte-personalized.pdf
2026-02-28 10:15:07 +01:00
```
2026-02-28 10:17:16 +01:00
Die CSV-Datei `Export Brevetkarte.csv` wird nicht von git erfasst (sie kann personenbezogene Daten enthalten). Die Datei `Export Brevetkarte.csv.example` zeigt das erwartete Format.
2026-02-28 10:15:07 +01:00
2026-02-28 10:17:16 +01:00
### Weitere Befehle
2026-02-03 13:46:49 +01:00
```bash
2026-02-28 10:17:16 +01:00
# Nur das Docker-Image bauen
2026-02-03 13:46:49 +01:00
make build-image
2026-02-28 10:17:16 +01:00
# Interaktive Shell im Container öffnen
2026-02-03 13:46:49 +01:00
make shell
2026-02-28 10:17:16 +01:00
# Erzeugte Dateien löschen (.aux, .log, .pdf)
2026-02-03 13:46:49 +01:00
make clean
2026-02-28 10:17:16 +01:00
# Alles löschen inkl. Docker-Image
2026-02-03 13:46:49 +01:00
make clean-all
2026-02-28 10:17:16 +01:00
# Von Grund auf neu bauen
2026-02-03 13:46:49 +01:00
make rebuild
2026-02-28 10:17:16 +01:00
# Hilfe anzeigen
2026-02-03 13:46:49 +01:00
make help
```
2026-02-28 10:17:16 +01:00
## Dateien
- `brevetkarte.tex` - LaTeX-Quelle für die Vorderseite (zwei identische Blanko-Karten)
- `brevetkarte-template.tex` - Vorlage für personalisierte Karten (Platzhalter werden aus CSV ersetzt)
- `brevetkarte-rueckseite.tex` - LaTeX-Quelle für die Rückseite (Kontrollen)
- `Export Brevetkarte.csv.example` - Beispiel-CSV mit dem Teilnehmerdatenformat
- `generate_cards.py` - Erzeugt `brevetkarte-personalized.tex` aus CSV und Vorlage
- `cyclist-logo.png` - Audax Randonneurs Logo
- `Dockerfile` - Docker-Image-Definition (debian:bookworm-slim + TeX-Live-Pakete)
- `Makefile` - Build-Automatisierung
## Ausgabe
### Vorderseite (brevetkarte.pdf)
Enthält zwei identische Brevetkarten, die in der Mitte geschnitten werden können. Jede Karte enthält:
- Teilnehmerinformationen (Name, Adresse usw.)
- Veranstaltungsdetails (200 km „Auf eine Pommes nach Belgien")
- Randonneur-Mondiaux-Regeln
- Homologationsbereich
- Startzeit: 8:30
### Rückseite (brevetkarte-rueckseite.pdf)
Enthält die Kontrollentabelle (4 Spalten × 6 Zeilen):
- **Zeilen 1– 3**: Kontrollen für die obere Karte
- Nr. 1: Start (Km 0 – Unisport, Bonn)
- Nr. 2: Km 57 – Nationalpark-Tor, Heimbach
- Nr. 3: Km 100 – Friterie „Au Petit Creux", Waimes
- Nr. 4: Km 165 – Mahlberg
- Nr. 5: Km 205 – Ziel (Unisport, Bonn)
- **Zeilen 4– 6**: Kontrollen für die untere Karte (wie oben, aber Nr. 5: Km 214)
- Leere Spalten für Stempel/Unterschriften
- Kontrollfrage zur Verifikation
## Duplexdruck
Die PDFs sind für den Duplexdruck (beidseitiger Druck) ausgelegt:
1. `brevetkarte.pdf` auf einer Seite drucken
2. `brevetkarte-rueckseite.pdf` auf der Rückseite drucken
3. Spalten und Zeilen sind so ausgerichtet, dass:
- Vorderseitenspalten mit Rückseitenspalten übereinstimmen
- Obere Karte (Zeilen 1– 3) mit der oberen Vorderseitenkarte fluchtet
- Untere Karte (Zeilen 4– 6) mit der unteren Vorderseitenkarte fluchtet
4. Blatt horizontal in der Mitte schneiden, um zwei separate Brevetkarten zu erhalten
## Anpassung
`brevetkarte.tex` bearbeiten für die Vorderseite:
- Veranstaltungsname, Datum und Ort
- Distanz (200 km)
- Startzeit
- Vereinsinformationen
- Brevetformat
`brevetkarte-rueckseite.tex` bearbeiten für die Rückseite:
- Kontrollpunkte
- Kontrollzeiten (von/bis)
- Distanzen
- Kontrollfragen