Les règles du matériel pédagogique · Règle 3

Un document augmenté reste fidèle à lui-même

Quand on ajoute à un document existant, ce qui existait ne change pas, ce qu'on ajoute en adopte la forme, et la fidélité se mesure.

Un document qu'on augmente reste fidèle à lui-même : ce qui existait ne change pas (sauf la coquille qu'on a explicitement le droit de corriger), ce qu'on ajoute en adopte la forme (on copie un gabarit existant, on ne redessine pas), et la fidélité se mesure par une différence de pixels entre l'ancien rendu et le nouveau, jamais à l'oeil.

Le cas qui a donné la règle

Un diaporama de cours en huit diapositives présentait le génome de cinq problèmes d'algorithmes évolutifs : un sac à dos, une tournée de villes, des notes de musique, une synthèse sonore, des avatars en pixels. Son sous-titre promettait « le processus des mutations » et aucune diapositive ne le montrait. Le troisième laboratoire du module, un dinosaure qui apprend à sauter, n'y avait pas son génome. Et le mot « génome » portait un accent circonflexe de trop dans tous les titres.

La commande était claire : ajouter onze diapositives (le génome manquant, génotype et phénotype, la mutation et le crossover selon la représentation, la fitness selon le cas, puis une section « zoom » avec le flip, le swap, le bruit et le crossover de deux avatars), corriger la coquille, et ne rien changer d'autre aux diapositives existantes.

Le diaporama venait d'un export Google Slides. Le republier demandait de le rendre à nouveau en images, avec un autre logiciel que celui qui avait produit les images d'origine. La question « est-ce que les huit diapositives d'origine ont encore la même gueule ? » ne s'est pas réglée en les regardant : on a superposé l'ancien PNG et le nouveau d'une diapositive non modifiée et compté les pixels différents.

Le résultat

Moins de 1 % de pixels différents sur une diapositive inchangée, un pixel d'écart en hauteur (720 contre 721). Dix-neuf diapositives en ligne, et personne ne peut dire où finissent les anciennes et où commencent les nouvelles.

Pourquoi

L'oeil de l'étudiant est calibré sur l'original. Une diapositive d'un autre style au milieu du deck dit « ajoutée après, moins importante », même si c'est la plus importante du lot. La forme commune donne aux ajouts la même autorité qu'au reste.

L'auteur garde la main sur son matériel. Un document retapé dérive : une coquille apparaît, un lien se perd, un mot change. Copier le gabarit et n'écrire que le nouveau, c'est ne toucher que ce qu'on a promis de toucher. Cette règle absorbe la candidate « publier les originaux, pas les recopies » : les images publiées sont toujours celles de l'original, augmenté ou pas.

La fidélité est une affirmation, donc elle se prouve. « Ça a l'air pareil » n'engage à rien ; « 0,4 % de pixels différents » se vérifie, se rejoue et se compare d'une fois à l'autre. C'est la règle 2 appliquée au rendu : une mesure, jamais une estimation.

Comment l'appliquer

1. Copier, ne pas recréer

La nouvelle diapositive est une copie d'une diapositive existante du même type (titre et corps, ou section), dont on remplace le contenu. Dans un pptx, la copie se fait avec un outil qui tient la comptabilité des relations du fichier, jamais en dupliquant un slideN.xml à la main :

python3 -c "import zipfile; zipfile.ZipFile('deck.pptx').extractall('decompresse')"
python3 add_slide.py decompresse/ slide3.xml --after slide7.xml    # imprime le fichier créé
(cd decompresse && zip -Xr ../deck-structure.pptx .)

Toute la structure d'abord (copies, ordre), le contenu ensuite : une copie faite après l'édition clone le contenu édité.

2. Écrire dans la langue du document

Les paragraphes, les tableaux et les mises en évidence des ajouts reprennent exactement le XML que la source produit : mêmes styles de tableau, mêmes marges de cellule, même gris d'en-tête, mêmes attributs de paragraphe. On lit une diapositive existante et on reproduit ce qu'on y voit plutôt que d'utiliser les valeurs par défaut de la bibliothèque.

3. Ne corriger que ce qui est permis, et le compter

La coquille autorisée se corrige par remplacement dans le texte, sans toucher au formatage. On compte les corrections et on les annonce (« 17 corrections : Génôme, génôme, tout en en »). Tout le reste des diapositives d'origine est intouchable, même l'amélioration évidente : elle fera l'objet d'une autre commande.

4. Mesurer avant de publier

On rend tout le deck avec la même chaîne (LibreOffice vers PDF, puis PDF vers PNG à la largeur du site), puis on compare une diapositive non modifiée à son ancien rendu :

python3 soffice.py --headless --convert-to pdf --outdir rendu deck-augmente.pptx
pdftoppm -png -scale-to-x 1280 -scale-to-y -1 rendu/deck-augmente.pdf rendu/diapositive

python3 - <<'FIN'
from PIL import Image, ImageChops
ancienne = Image.open("site/diapositives/diapositive-03.png").convert("RGB")
nouvelle = Image.open("rendu/diapositive-03.png").convert("RGB")
if ancienne.size != nouvelle.size:
    nouvelle = nouvelle.crop((0, 0) + ancienne.size)
difference = ImageChops.difference(ancienne, nouvelle).convert("L")
pixelsDifferents = sum(1 for valeur in difference.getdata() if valeur > 40)
total = ancienne.size[0] * ancienne.size[1]
print(f"{100 * pixelsDifferents / total:.2f} % de pixels différents")
FIN

Sous 1 %, on publie. Au-dessus, une police n'est pas substituée correctement ou un gabarit a bougé : on cherche pourquoi avant de mettre en ligne. Arial rendu en Liberation Sans passe le test ; une police décorative sans équivalent métrique ne le passera pas, et c'est justement ce qu'on veut savoir.

Avant de dire « c'est en ligne »
  • Chaque nouvelle diapositive regardée en image : débordements, mots coupés, chevauchements.
  • Une diapositive d'origine mesurée contre son ancien rendu : moins de 1 %.
  • Le texte du deck final fouillé pour la coquille : zéro occurrence.
  • L'ancienne version archivée à côté, jamais effacée.
  • La source vivante (le Google Slides, le fichier de l'auteur) signalée comme non mise à jour si c'est le cas.

Les pièges

Le titre noir sur noir

Une diapositive copiée hérite du gabarit, pas toujours des styles de ses textes. Le titre blanc sur la barre noire portait sa couleur dans chaque run de texte : le nouveau titre, sans cette couleur explicite, est sorti noir sur noir. Lire le XML d'une diapositive d'origine avant d'écrire le premier mot.

« Pendant qu'on y est »

L'envie de rafraîchir une vieille diapositive au passage est la première menace à la règle. Le périmètre d'une commande d'augmentation, c'est les ajouts et la coquille permise. Le reste se note et se propose, il ne se fait pas.

Régénérer plus que la cible

Relancer le script qui fabrique toutes les pages de diaporamas pour n'en changer qu'une écrase les retouches faites depuis sur les autres. On patche la page visée, on laisse les voisines.

La source vivante n'est pas le fichier qu'on a modifié

Un export pptx augmenté ne met pas à jour le Google Slides dont il vient. Le dire explicitement, avec le chemin du fichier à réimporter, sinon la prochaine édition dans l'outil d'origine repart de l'ancienne version.

Où c'est transposable

La règle ne parle pas que de diapositives. Un cahier de notes (notebook) qu'on augmente reprend le style des cellules existantes ; une page d'énoncé qui gagne un encadré copie une carte déjà présente plutôt que d'en inventer une ; un site qui reçoit une nouvelle semaine réutilise le gabarit de la précédente. Dans chaque cas, la même question, et la même façon d'y répondre : est-ce que l'existant a bougé ? On le mesure.

Fichiers de référence : INTELLIGENCE/ONLINE/augmenter-diaporama-genome-et-algorithme-evolutif.py (la construction, rejouable) et INTELLIGENCE/ONLINE/publier-diaporama-genome-augmente.sh (le rendu, l'archivage, la publication). La recette complète et ses pièges vivent dans la compétence diapositives-indiscernables, relancée par ECOLE/expert-diapositives.sh.