Accueil > LaTeX > Index > Pages en gras avec un lien hypertexte dans un index

Pages en gras avec un lien hypertexte dans un index

vendredi 2 septembre 2011, par Maïeul

Le package hyperrref permet d’insérer des liens hypertextes à l’intérieur du document produit par (Xe)LaTeX. Il ajoute notamment des liens hypertexte au niveau des pages indexées grâce à la commande \index. Seulement ce lien disparaît si vous formatez une page d’index, par exemple pour la mettre en gras. Comment faire pour rétablir ?

Exemple

Soit les entrées suivantes : \index{toto|textbf} et \index{toto}, situées sur deux pages différentes. Si on regarde les entrées dans l’index final, on constate qu’il y a une page en gras mais sans lien hypertexte, et une autre en caractères maigres, mais avec lien hypertexte.

Recherche de la cause

Pour rétablir le lien hypertexte, regardons déjà comment il est produit, en fouillant le fichier .idx.

On constate des entrées sous la forme suivante :

\indexentry{toto|textbf}{1}
\indexentry{toto|hyperpage}{2}

On se rend aisément compte que la commande |hyperpage est à l’origine du lien hypertexte et qu’elle n’est pas présente sur l’entrée en gras.

Solution

Il nous faut donc appliquer la commande \hyperpage à notre entrée en gras. Si on écrit \index{toto|textbf|hyperpage} ou bien \index{toto|hyperpage|textbf} cela ne produit rien : soit c’est le gras qui est appliqué, soit c’est le lien hypertexte.

La solution consiste à créer une nouvelle commande, que j’ai choisi d’appeler \textbfhyperpage — mais vous pouvez choisir un nom plus court, qui exécute ces deux commandes.

Voici son code :

 \newcommand*{\textbfhyperpage}[1]{\textbf{\hyperpage{#1}}}

Il me suffit désormais d’écrire :

\index{toto|textbfhyperpage}

pour avoir mon numéro de page en gras et pointant vers la bonne page.

Messages

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)