Si on commente la ligne \usepackage{babel} (sachant que l’option french est chargée dans les options de la classe de document, mais c’est pas grave, ça sera simplement ignoré), l’indentation souhaitée est présente.
Ce qui oriente vers un problème relatif à babel-french, je suppose.
Par curiosité j’ai chargé TeX Live 2025, et dans ce cas, même avec babel-french on a l’indentation.
En rajoutant \listfiles dans le préambule, le fichier .log m’indique dans ce cas :
babel.sty 2025/02/14 v25.4 The multilingual framework for pdfLaTeX, LuaLaTeX and XeLaTeX
french.ldf 2024-07-25 v3.6c French support from the babel system
babel-french.tex
Revenant à TeX Live 2026, qui pose ce problème d’indentation, je remarque un warning dans le .log, que voici :
Package french.ldf Warning: You are relying on the legacy list code.
(french.ldf) There is nothing wrong with this, just be aware
(french.ldf) that new lists templates are available and will
(french.ldf) become the default sooner or later.
(french.ldf) Adding \DocumentMetadata{ ... } before the
(french.ldf) \documentclass{} command, enables the new
(french.ldf) lists templates. Give them a try!
(french.ldf) Reported on input line 15.
Il est question de liste, et peut-être que la composition de la table des matières repose techniquement sur une liste. Je l’ignore, mais ça me semble plausible, au moins partiellement.
Or par rapport à la version 3.6, la documentation de babel-french n’indique qu’un léger changement relatif à une langue (acadian) pour la version 3.7.
Par contre, la version 4 est un gros changement, tandis que la compilation en pdflatex repose sur une version désormais figée, antérieure à la version 4.0.
En restant sous TeX Live 2026 et avec une compilation LuaLaTeX, mais en revenant à la classe article, ce qui nécessite de commenter les lignes suivantes :
\setcounter{tocdepth}{\subsubsectiontocdepth}
\RedeclareSectionCommand[tocindent=30pt]{subsubsection}
l’indentation est bien présente dans la table des matières.
Or, alors que la compilation du code d’origine en LuaLaTeX avec une version récente de babel-french génère un warning qui parle de liste et de \DocumentMetadata{ ... } qu’il faudrait ajouter, la documentation de la version 4.1 de babel-french indique que pour le moment \DocumentMetadata{ ... } est incompatible avec koma-script :
Ni les classes koma-script, ni la classe memoir ne sont, pour le moment (mai 2026), compatibles. Il convient de se passer de la commande \DocumentMetadata{…} si on veut les utiliser actuellement.
Peut-être que le bug n’est pas lié à ça, je n’en sais rien, mais il semble au moins y avoir une fragilité actuelle avec koma-script.
Certaines personnes apprécient koma-script, pour ma part je n’ai jamais compris comment son auteur peut produire une documentation avec du texte qui va à 5 millimètres du bord des pages, ce qui fait que je ne m’y suis jamais vraiment intéressé (c’est dommage, mais je trouve que son choix de design pour sa documentation ne fait pas très sérieux ; peut-être que je passe à côté d’un truc, et qu’en fait ce design est génial, je ne suis pas fermé à cette possibilité).
Peut-être ne suis-je pas le seul à ne pas employer koma-script, ce qui au final fait que le bug dont il est question ici a mis du temps à émerger, s’il y a bien un lien fort avec koma-script.
Bref pour résumer, l’épicentre du bug semble être autour de la version 4.0 (ou supérieur) de babel-french (ce qui immunise la compilation avec pdflatex), peut-être le tagging des PDF et la classe koma-script.
Il est probable que Daniel, qui est déjà intervenu, y verra plus clair.