Files
ArtemiaandClaude Opus 5.5 d933e348c0 Retire les .odt et l'insertion XML, désormais remplacés par Quarto
Les supports .odt restent récupérables via le tag avant-quarto. Les figures ne déclarent plus que leur identifiant et leur fonction de dessin (légende et emplacement dans le .qmd). Génération SVG reproductible (sans date, identifiants stables) pour des diffs git propres. README : mode d'emploi Quarto et schémas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 15:04:25 +02:00

54 lines
1.5 KiB
Python

"""Charte graphique commune à tous les schémas de la formation."""
from dataclasses import dataclass
from typing import Callable
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt # noqa: E402
# Palette
BLEU = "#1f5fa8" # signal principal
ORANGE = "#e07a1f" # valeur moyenne, mise en évidence
VERT = "#2e8b57"
ROUGE = "#c0392b"
GRIS = "#6b7280"
GRIS_CLAIR = "#e5e7eb"
ENCRE = "#1f2937" # texte
CM = 1 / 2.54 # conversion cm -> pouces pour figsize
plt.rcParams.update({
"font.family": "DejaVu Sans",
"font.size": 10,
"axes.edgecolor": GRIS,
"axes.labelcolor": ENCRE,
"axes.titlesize": 11,
"axes.titleweight": "bold",
"axes.titlecolor": ENCRE,
"axes.spines.top": False,
"axes.spines.right": False,
"axes.grid": True,
"grid.color": GRIS_CLAIR,
"grid.linewidth": 0.8,
"xtick.color": GRIS,
"ytick.color": GRIS,
"lines.linewidth": 2,
"svg.fonttype": "path", # texte vectorisé : rendu identique partout
"svg.hashsalt": "formation-esp32", # identifiants SVG stables d'une génération à l'autre
"savefig.bbox": "tight",
"savefig.pad_inches": 0.1,
"savefig.facecolor": "white",
})
@dataclass
class Figure:
"""Déclaration d'une figure à générer.
La légende et l'emplacement sont dans le .qmd :
![Légende](../schemas/svg/<id>.svg){#fig-<id>}
"""
id: str # ex. "m03-pwm-duty" ; le préfixe mXX donne le module
dessiner: Callable # renvoie une figure matplotlib ou un dessin schemdraw