- 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>
108 lines
3.0 KiB
Markdown
108 lines
3.0 KiB
Markdown
# 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 |