Files
brevetcard/README.md

108 lines
2.9 KiB
Markdown
Raw Normal View History

2026-02-28 10:17:16 +01:00
# Brevetkarten-PDF-Generator
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-28 10:17:16 +01:00
## 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_brevetcard.csv.example export_brevetcard.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_brevetcard.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
```
2026-02-28 10:17:16 +01:00
## Dateien
| Datei | Beschreibung |
|---|---|
| `event.yml.example` | Vorlage für Veranstaltungsdaten (→ als `event.yml` kopieren) |
| `export_brevetcard.csv.example` | Vorlage für Teilnehmerdaten (→ als `export_brevetcard.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 |
2026-02-28 10:17:16 +01:00
## Duplexdruck
1. `brevetkarte-personalized.pdf` auf einer Seite drucken
2026-02-28 10:17:16 +01:00
2. `brevetkarte-rueckseite.pdf` auf der Rückseite drucken
3. Blatt horizontal in der Mitte schneiden → zwei separate Brevetkarten