Index et table des matières dans la table des matières

vendredi 9 septembre 2011, mise à jour mercredi 8 août 2012, par Maïeul
Suivre la vie du site RSS 2.0 Forum

Comment permettre à l’index produit avec \printindex d’apparaître dans la table des matières ? Comment permettre à la table des matières d’apparaître dans la table des matières ? Voici la solution que j’ai adoptée, pour la classe book.

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.

P.-S.

Si vous n’utilisez pas le package hyperref, ne mettez pas \phantomsection.

Vos commentaires

  • Le 16 septembre 2011 à 14:33, par Raphaël Pinson En réponse à : Index et table des matières dans la table des matières

    Le paquet imakeidx a une option intoc lors de la création d’un index, par exemple :

    \makeindex[title={My index},intoc,columns=2]
  • Le 16 septembre 2011 à 14:54, par Maïeul En réponse à : Index et table des matières dans la table des matières

    a cool ca, tu sais si c’est compatible splitindex ? il faut que je teste

  • Le 16 septembre 2011 à 15:09, par Raphaël Pinson En réponse à : Index et table des matières dans la table des matières

    splitindex est intégré dans imakeidx et utilisé à la demande (i.e. si le nombre de fichiers est trop important pour gérer le split en TeX). Dans mon cas, je split sans l’option splitindex car je n’ai que 2 indexes :

    % Make indexes
    \usepackage{imakeidx}
    % Bibleref index
    \newcommand{\biblerefindextitle}{Index des r\'ef\'erences bibliques}
    \indexsetup{firstpagestyle=scrheadings}
    \makeindex[name=bibleref,title=\biblerefindextitle,intoc,options=-s bibleref.ist,columns=2]
    \renewcommand{\biblerefindex}{\index[bibleref]}
    % Only reference Bible chapters in index
    %\usepackage[verses]{bibleref-xidx}
    % Thematic index
    \newcommand{\themeindextitle}{Index thématique}
    \makeindex[title=\themeindextitle,intoc,columns=2]
  • Le 18 septembre 2011 à 15:05, par Maïeul En réponse à : Index et table des matières dans la table des matières

    a oui pas mal le coup de la compilation automatique.

    Ceci dit cela est incompatible avec mon système pour indexer automatiquement les sources primaires, qui nécéssite un passage via un script python.

    Bon tout cela m’embête bien, du coup je ne sais pas quelle solution indiquer dans le chapitre de mon bouquin.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Acheter XeLaTeX appliqué aux sciences humaines

À propos

Titulaire d’un doctorat en théologie et d’un doctorat en histoire, sous la direction conjointe de Frédéric Amsler et d’Élisabeth_Malamut, je commence à partir du 1er août 2017 un travail d’édition critique des Actes de Barnabé.

Dans le cadre de la rédaction de mon mémoire de master puis de ma thèse de doctorat, j’ai été emmené à utiliser LaTeX, et j’ai donc décider de partager mes techniques. En effet, au cours de mes premiers apprentissages, j’ai découvert que les ressources indiquant les outils pour l’utilisation de LaTeX en sciences humaines étaient rares. Ceci m’a conduit à maintenir ou créer plusieurs packages LaTeX et à donner plusieurs formations.

J’ai reçu en 2018 le prix DANTE e.V pour mon travail autour de LaTeX, en particulier autour de reledmac et reledpar.

Par ailleurs, je suis membre actif de la communauté SPIP, au sein de laquelle j’administre le site Spip-Contrib. Je propose sur ce site quelques notes sur SPIP, en général à destination de webmestre.

Il m’arrive également de faire un petit peu de Python, de temps en temps.

Enfin, je tiens un blog de réflexions politiques et religieuses.

Maïeul