2026-02-28 10:53:36 +01:00

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:

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:

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

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

# Nur tex-Dateien generieren (ohne Docker)
make generate

# Nur Rückseite kompilieren (nach generate)
make build-back

# Statische Demo-Vorderseite bauen (ohne CSV, für Tests)
make build-front

Weitere Befehle

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)
brevetkarte.tex Statische Demo-Vorderseite (ohne Personalisierung)
generate_cards.py Generiert personalisierte .tex-Dateien
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
Description
No description provided
Readme 512 KiB
Languages
TeX 41.3%
Python 37.1%
Makefile 19.9%
Dockerfile 1.7%