Compare commits
3 Commits
4bb3806cc7
...
b3e7d99ec6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3e7d99ec6 | ||
|
|
fbd55f841a | ||
|
|
dbc3dc18ac |
161
README.md
161
README.md
@@ -1,124 +1,139 @@
|
||||
# Brevet Card PDF Generator
|
||||
# Brevetkarten-PDF-Generator
|
||||
|
||||
LaTeX-based generator for Audax Randonneurs Deutschland brevet cards with front and back sides for duplex printing.
|
||||
LaTeX-basierter Generator für Audax Randonneurs Allemagne Brevetkarten mit Vorder- und Rückseite für den Duplexdruck.
|
||||
|
||||
## Quick Start
|
||||
## Schnellstart
|
||||
|
||||
```bash
|
||||
# Build everything and generate both PDFs
|
||||
# Alles bauen und beide PDFs erzeugen
|
||||
make build
|
||||
|
||||
# The PDFs will be created as:
|
||||
# - brevetkarte.pdf (front side with participant info)
|
||||
# - brevetkarte-rueckseite.pdf (back side with control points)
|
||||
# Die PDFs werden erstellt als:
|
||||
# - brevetkarte.pdf (Vorderseite mit Teilnehmerinfos)
|
||||
# - brevetkarte-rueckseite.pdf (Rückseite mit Kontrollen)
|
||||
```
|
||||
|
||||
## Prerequisites
|
||||
## Voraussetzungen
|
||||
|
||||
- Docker
|
||||
- Make
|
||||
|
||||
## Usage
|
||||
## Verwendung
|
||||
|
||||
### Build Both PDFs
|
||||
### Beide PDFs bauen
|
||||
```bash
|
||||
make build
|
||||
```
|
||||
|
||||
This will:
|
||||
1. Build the Docker image with TeXLive
|
||||
2. Compile `brevetkarte.tex` to `brevetkarte.pdf` (front side)
|
||||
3. Compile `brevetkarte-rueckseite.tex` to `brevetkarte-rueckseite.pdf` (back side)
|
||||
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)
|
||||
|
||||
### Build Individual Sides
|
||||
### Einzelne Seiten bauen
|
||||
|
||||
```bash
|
||||
# Just build front side
|
||||
# Nur Vorderseite bauen
|
||||
make build-front
|
||||
|
||||
# Just build back side
|
||||
# Nur Rückseite bauen
|
||||
make build-back
|
||||
|
||||
# Build both sides (without rebuilding Docker image)
|
||||
# Beide Seiten bauen (ohne Docker-Image neu zu bauen)
|
||||
make build-pdf
|
||||
```
|
||||
|
||||
### Other Commands
|
||||
### Personalisierte Karten aus CSV
|
||||
|
||||
```bash
|
||||
# Just build the Docker image
|
||||
# 1. Beispiel-CSV kopieren und Teilnehmerdaten eintragen
|
||||
cp "Export Brevetkarte.csv.example" "Export Brevetkarte.csv"
|
||||
# "Export Brevetkarte.csv" mit den Teilnehmern befüllen
|
||||
|
||||
# 2. Personalisierte Karten erzeugen und bauen
|
||||
make build-personalized
|
||||
# Ausgabe: brevetkarte-personalized.pdf
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
### Weitere Befehle
|
||||
|
||||
```bash
|
||||
# Nur das Docker-Image bauen
|
||||
make build-image
|
||||
|
||||
# Open interactive shell in container
|
||||
# Interaktive Shell im Container öffnen
|
||||
make shell
|
||||
|
||||
# Clean generated files (.aux, .log, .pdf)
|
||||
# Erzeugte Dateien löschen (.aux, .log, .pdf)
|
||||
make clean
|
||||
|
||||
# Clean everything including Docker image
|
||||
# Alles löschen inkl. Docker-Image
|
||||
make clean-all
|
||||
|
||||
# Rebuild from scratch
|
||||
# Von Grund auf neu bauen
|
||||
make rebuild
|
||||
|
||||
# Show help
|
||||
# Hilfe anzeigen
|
||||
make help
|
||||
```
|
||||
|
||||
## Files
|
||||
## Dateien
|
||||
|
||||
- `brevetkarte.tex` - LaTeX source for the front side (participant info)
|
||||
- `brevetkarte-rueckseite.tex` - LaTeX source for the back side (control points)
|
||||
- `cyclist-logo.png` - Audax Randonneurs logo (extracted from original)
|
||||
- `Dockerfile` - Docker image definition with TeXLive
|
||||
- `Makefile` - Build automation
|
||||
- `Brevet200km_2025_09_20_Namensseite_blanko.pdf` - Original front side template
|
||||
- `Brevet200km_2025_09_20_Kontrollseite.pdf` - Original back side template
|
||||
- `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
|
||||
|
||||
## Output
|
||||
## Ausgabe
|
||||
|
||||
### Front Side (brevetkarte.pdf)
|
||||
Contains two identical brevet cards that can be cut in half. Each card includes:
|
||||
- Participant information fields (Name, Address, etc.)
|
||||
- Event details (200km "Auf eine Pommes nach Belgien")
|
||||
- Randonneur Mondiaux rules
|
||||
- Homologation section
|
||||
- Start time: 8:30
|
||||
### 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
|
||||
|
||||
### Back Side (brevetkarte-rueckseite.pdf)
|
||||
Contains control points table (4 columns × 6 rows):
|
||||
- **Rows 1-3**: Control points for upper card
|
||||
- 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 - Finish (Unisport, Bonn)
|
||||
- **Rows 4-6**: Control points for lower card (same as above, but Nr. 5: Km 214)
|
||||
- Empty columns for stamps/signatures
|
||||
- Control question for verification
|
||||
### 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
|
||||
|
||||
## Duplex Printing
|
||||
## Duplexdruck
|
||||
|
||||
The PDFs are designed for duplex (double-sided) printing:
|
||||
1. Print `brevetkarte.pdf` on one side
|
||||
2. Print `brevetkarte-rueckseite.pdf` on the reverse side
|
||||
3. The columns and rows are aligned so that:
|
||||
- Front side columns match back side columns
|
||||
- Upper card (rows 1-3) aligns with front side upper card
|
||||
- Lower card (rows 4-6) aligns with front side lower card
|
||||
4. Cut the sheet in half horizontally to create two separate brevet cards
|
||||
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
|
||||
|
||||
## Customization
|
||||
## Anpassung
|
||||
|
||||
Edit `brevetkarte.tex` to modify front side:
|
||||
- Event name, date, and location
|
||||
- Distance (200km)
|
||||
- Start time
|
||||
- Club information
|
||||
- Brevet number format
|
||||
`brevetkarte.tex` bearbeiten für die Vorderseite:
|
||||
- Veranstaltungsname, Datum und Ort
|
||||
- Distanz (200 km)
|
||||
- Startzeit
|
||||
- Vereinsinformationen
|
||||
- Brevetformat
|
||||
|
||||
Edit `brevetkarte-rueckseite.tex` to modify back side:
|
||||
- Control point locations
|
||||
- Control times (von/bis)
|
||||
- Distances
|
||||
- Control questions
|
||||
`brevetkarte-rueckseite.tex` bearbeiten für die Rückseite:
|
||||
- Kontrollpunkte
|
||||
- Kontrollzeiten (von/bis)
|
||||
- Distanzen
|
||||
- Kontrollfragen
|
||||
|
||||
Reference in New Issue
Block a user