331e6e70a91a9ec70daeead8ab07fe4f98a63cf7
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_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:
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
make build-personalized
Führt folgende Schritte aus:
generate_cards.pyliestExport Brevetkarte.csv+event.yml- Erzeugt
brevetkarte-personalized.tex(Vorderseite, eine Karte pro Teilnehmer) - Erzeugt
brevetkarte-rueckseite.tex(Rückseite mit Kontrollpunkten aus event.yml) - 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
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_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 |
Duplexdruck
brevetkarte-personalized.pdfauf einer Seite druckenbrevetkarte-rueckseite.pdfauf der Rückseite drucken- Blatt horizontal in der Mitte schneiden → zwei separate Brevetkarten
Description
Languages
TeX
41.3%
Python
37.1%
Makefile
19.9%
Dockerfile
1.7%