Add blanko build target, fix preamble duplication, update event config and margins

- Add --blanko flag to generate_cards.py for blank cards (no CSV needed), 2-up layout
- Fix preamble duplication bug affecting both blanko and multi-participant personalized builds
- Add make build-blanko target; default make now builds personalized + blanko
- Reduce page margins from 0.8cm to 0.4cm for Kyocera P6026
- Widen tikzpicture columns (6.9→7.2cm) and tabular columns (6.6→7.0cm) to fill page width
- Update event.yml for BRM400 Bonn–Lüttich–Bastogne–Bonn, 9. Mai 2026, with 6 controls

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Peter Adam
2026-05-05 09:33:04 +02:00
parent 331e6e70a9
commit a2b5c6dc4a
4 changed files with 108 additions and 53 deletions
+22 -22
View File
@@ -1,7 +1,7 @@
\documentclass[a4paper,10pt,landscape]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[landscape,top=0.8cm,bottom=0.8cm,left=0.8cm,right=0.8cm]{geometry}
\usepackage[landscape,top=0.4cm,bottom=0.4cm,left=0.4cm,right=0.4cm]{geometry}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{tikz}
@@ -32,31 +32,31 @@
\begin{tikzpicture}[x=1cm,y=1cm]
% Black vertical separator lines (drawn first, extend through headers)
\draw[black,line width=0.5pt] (6.9,-7.2) -- (6.9,1.3);
\draw[black,line width=0.5pt] (13.8,-7.2) -- (13.8,1.3);
\draw[black,line width=0.5pt] (20.7,-7.2) -- (20.7,1.3);
\draw[black,line width=0.5pt] (7.2,-7.2) -- (7.2,1.3);
\draw[black,line width=0.5pt] (14.4,-7.2) -- (14.4,1.3);
\draw[black,line width=0.5pt] (21.6,-7.2) -- (21.6,1.3);
% Black header boxes (drawn on top)
\fill[headerblack] (0,0) rectangle (6.9,1.3);
\node[white,align=center,font=\tiny,text width=6.6cm] at (3.45,0.65) {
\fill[headerblack] (0,0) rectangle (7.2,1.3);
\node[white,align=center,font=\tiny,text width=6.9cm] at (3.6,0.65) {
Jeder Teilnehmer muss diese Brevetkarte zu jeder Zeit\\
mit sich führen und an den Kontrollen abstempeln lassen\\
bzw. Fotos erstellen.\\
\textbf{Ohne Kontrollzeiten und Zielzeit keine Wertung!}
};
\fill[headerblack] (6.9,0) rectangle (13.8,1.3);
\node[white,font=\Large] at (10.35,0.65) {HOMOLOGATION};
\fill[headerblack] (7.2,0) rectangle (14.4,1.3);
\node[white,font=\Large] at (10.8,0.65) {HOMOLOGATION};
\fill[headerblack] (13.8,0) rectangle (20.7,1.3);
\node[white,font=\Large] at (17.25,0.65) {TEILNEHMER/-IN};
\fill[headerblack] (14.4,0) rectangle (21.6,1.3);
\node[white,font=\Large] at (18.0,0.65) {TEILNEHMER/-IN};
\fill[headerblack] (20.7,0) rectangle (27.6,1.3);
\node[white,align=center,font=\normalsize] at (24.15,0.75) {BREVET DES RANDONNEURS};
\node[white,font=\Large] at (24.15,0.35) {MONDIAUX};
\fill[headerblack] (21.6,0) rectangle (28.8,1.3);
\node[white,align=center,font=\normalsize] at (25.2,0.75) {BREVET DES RANDONNEURS};
\node[white,font=\Large] at (25.2,0.35) {MONDIAUX};
% Column 1 - Rules (left section)
\node[anchor=north west,text width=6.6cm,font=\small,align=left] at (0.2,-0.3) {
\node[anchor=north west,text width=6.9cm,font=\small,align=left] at (0.2,-0.3) {
\textbf{Es gelten die Regeln von}\\
\textbf{Randonneur Mondiaux}\\
\textbf{insbesondere:}
@@ -73,28 +73,28 @@
\hspace{0.3cm}$\Rightarrow$ \textbf{\underline{Bei Verstoß keine Wertung!}}\\[0.3cm]
};
\node[anchor=south west,text width=6.6cm,font=\small,align=left] at (0.2,-7.0) {
\node[anchor=south west,text width=6.9cm,font=\small,align=left] at (0.2,-7.0) {
\textbf{AUDAX RANDONNEURS ALLEMAGNE E.V.}\\
\href{http://www.audax-randonneure.de}{www.audax-randonneure.de}\\
- gegründet 1992 in Hamburg -
};
% Column 2 - Homologation (middle-left section)
\node[anchor=north,text width=6.6cm,font=\small,align=center] at (10.35,-0.5) {
\node[anchor=north,text width=6.9cm,font=\small,align=center] at (10.8,-0.5) {
Der Randonnée wurde beendet in:\\[0.6cm]
\makebox[2cm]{\dotfill}h\makebox[2cm]{\dotfill}min
};
\node[anchor=center,font=\Large] at (10.35,-4.0) {
\node[anchor=center,font=\Large] at (10.8,-4.0) {
HOMOLOGATION
};
\node[anchor=south,text width=6.6cm,font=\small,align=center] at (10.35,-6.8) {
\node[anchor=south,text width=6.9cm,font=\small,align=center] at (10.8,-6.8) {
Brevet N° \makebox[5cm]{\dotfill}
};
% Column 3 - Participant Info (middle-right section)
\node[anchor=north west,text width=6.6cm,font=\small,align=left] at (14.0,-0.5) {
\node[anchor=north west,text width=6.9cm,font=\small,align=left] at (14.6,-0.5) {
Name: {{NAME}}\\[0.4cm]
Straße: {{STREET}}\\[0.4cm]
PLZ/Ort: {{PLZ_ORT}}\\[0.4cm]
@@ -104,11 +104,11 @@
};
% Column 4 - Event Info (right section)
\node[anchor=north,text width=6.6cm,align=center] at (24.15,-0.4) {
\node[anchor=north,text width=6.9cm,align=center] at (25.2,-0.4) {
\includegraphics[width=5.5cm]{cyclist-logo.png}
};
\node[anchor=north,text width=6.6cm,font=\small,align=center] at (24.15,-2.2) {
\node[anchor=north,text width=6.9cm,font=\small,align=center] at (25.2,-2.2) {
\textbf{{{EVENT_TITLE}}}\\
Randonnée über \textbf{{{EVENT_KM}}} km\\
am \textbf{{{EVENT_DATE}}}\\
@@ -117,7 +117,7 @@
N° ACP du Club \textbf{{{EVENT_CLUB_NR}}}
};
\node[anchor=south,text width=6.6cm,font=\scriptsize,align=center] at (24.15,-7.0) {
\node[anchor=south,text width=6.9cm,font=\scriptsize,align=center] at (25.2,-7.0) {
CONTRÔLÉE ET HOMOLOGUÉE EXCLUSIVEMENT PAR\\
\href{http://www.audax-club-parisien.com}{www.audax-club-parisien.com}\\
- Société fondée en 1904 -