Principe
La commande \printindex fait appel à l’environnement theindex, que l’on trouve défini dans le fichier book.cls.
C’est la ligne 7 qui nous intéresse. Elle contient l’appel à la commande \@makeschapterhead, qui se charge d’afficher le titre de l’index.
La commande \tableofcontents est définie directement dans le fichier book.cls
Ici c’est la ligne 7 qui nous intéresse, puisqu’elle appelle la commande \chapter*.
Il va s’agir de modifier ces lignes. Pour cela, nous allons utiliser la commande \patchcmd{commande}{recherche}{remplace}{succes}{echec} package etoolbox, qui est chargé par polyglossia.
Cette commande remplace dans la commande commande la valeur recherche par remplace. Si ce remplacement fonctionne, elle retourne succes, sinon echec.
Application pour l’index
Nos caractères à chercher dans le code de la commande contenant des @, nous entourons de \makeatletter et \makeatother.
Nous remplaçons dans la commande \theindex, qui correspond à ce qui est exécuté en début d’environnement theindex,
\@makeschapterhead{\indexname}par
\phantomsection\addcontentsline{toc}{chapter}{\indexname}\@makeschapterhead{\indexname}La commande addcontentsline ajoute l’entrée dans la table des matières. La commande \phantomsection sert au package hyperref à avoir ses signets de navigation correctement placés.
Nous n’exécutons rien de particulier ni en cas de succès ni en cas d’échec.
Application à la table des matières
\patchcmd{\tableofcontents}{\chapter*}{\phantomsection\addcontentsline{toc}{chapter}{\contentsname}\chapter*}{}{}Nous remplaçons dans la commande \tableofcontents,
\chapter*par
\phantomsection\addcontentsline{toc}{chapter}{\contentsname}\chapter*Nous n’exécutons rien de particulier ni en cas de succès ni en cas d’échec.