Suivant: , Précédent: , Monter: Indexes   [Table des matières][Index]


25.3.2 \index

Synopsis :

\index{chaîne-article-index}

Déclare un article dans l’index. Cette commande est fragile (voir \protect).

Par exemple, comme décrit dans Indexes, une façon d’obtenir un index du code ci-dessous est de compiler le document avec pdflatex test, puis de traiter les articles de l’index avec makeindex test, et ensuite de compiler de nouveau avec pdflatex test.

% fichier test.tex
  ...
W~Ackermann (1896--1962).\index{Ackermann}
  ...
fonction d'Ackermann\index{Ackermann!fonction}
  ...
taux de croissance\index{Ackermann!fonction!taux de croissance}

Les trois articles obtiendront un numéro de page, comme dans ‘Ackermann, 22’. LaTeX formate le deuxième comme un sous-article du premier, sur la ligne du dessous et renfoncé, et le troisième comme un sous-article du deuxième. On ne peut pas imbriquer les articles au delà du troisième niveau de sous-articles. (Si vous ajoutez \index{Ackermann!fonction!taux de croissance!comparaison} alors makeindex dit ‘Scanning input file test.idx....done (4 entries accepted, 1 rejected)’ et le quatrième niveau est silencieusement absent de l’index).

Si vous saisissez un deuxième \index avec la même chaîne-article-index alors vous obtiendrez un unique article d’index avec deux numéros de page (à moins qu’il se trouve que les deux soient sur la même page). Ainsi, ajouter comme pour Ackermann.\index{Ackermann} plus loin dans le même document que ci-dessus donnera un article d’index du genre de ‘Ackermann, 22, 151’. Notez aussi que vous pouvez saisir les articles d’index dans un ordre quelconque, ainsi par exemple \index{Ackermann!fonction} peut arriver avant \index{Ackermann}.

Obtenez une plage de page en sortie, du genre de ‘Hilbert, 23--27’, comme avec le code ci-dessous :

W~Ackermann (1896--1962).\index{Ackermann}
  ...
D~Hilbert (1862--1943)\index{Ackermann!Hilbert|(}
  ...
désapprouvait son mariage.\index{Ackermann!Hilbert|)}

Si le début et la fin de la plage de pages sont égaux alors le systène ne donne qu’un seul numéro de page, et non une plage.

Si vous indexez des sous-articles mais sans article principal, comme dans \index{Jones!programme} et \index{Jones!resultats}, alors la sortie est l’article ‘Jones’ sans virgule ni numéro de page, suivi de deux sous-articles, du genre de ‘programme, 50’ et ‘resultats, 51’.

On génère un article d’index qui dit ‘Voir’ en utilisant un caractère barre verticale : \index{Ackermann!function|see{fonction de P\'eter}}. On peut également obtenir ‘voir aussi’ avec seealso. (Le texte ‘voir’ est défini par \seename, et ‘voir ausi’ par \alsoname lorsqu’on charge un paquetage d’internationalisation tel que babel or polyglossia, et que la langue sélectionnée est le français, sinon par défaut c’est ‘see’ et ‘see also’, on peut aussi les redéfinir directement avec quelque-chose du genre de \renewcommand{\seename}{cf.} \renewcommand{\alsoname}{ibid.}).

La production du mot ‘voir’ fait partie d’une fonctionalité plus générale. Après la barre verticale vous pouvez mettre le nom cmd d’une commande \cmd à un argment, comme dans \index{group|textit} (notez l’absence de contr’oblique sur la commande \textit) et le système appliquera cette commande au numéro de page dans l’article d’indexe, donnant ici quelque-chose du genre de \textit{7}. Vous pouvez aussi définir vos propres commandes comme dans \newcommand{\pagecours}[1]{{\color{blue}#1}} et ensuite \index{Ackermann!function|pagecours} donnera un numéro de page en bleu (voir Color). Voici in autre exemple, moins pratique :

\newcommand\pageindex[1]{#1, \thepage}
  ... Epimenides.\index{self-reference|pageindex}

qui crée une article citant le numéro de page dans le listing de l’index.

Les deux fonctions décrites plus haut peuvent être combinées, comme dans :

\index{Ackermann!fonction|(pagecours}
  ...
\index{Ackermann!fonction|)}

ce qui en sortie produit un article d’index du genre de ‘fonction, 23--27’ où la plage de numéros de page est en bleu.

Considérez un article d’index tel que ‘β-testeur’. Le saisir telle que $\beta$-testeur aura pour effet qu’il sera classé selon le signe dollar. Vous pouvez le saisir en utilisant une arobe, comme dans \index{bêta-testeur@$\beta$-testeur}. Lorsque vous spécifiez un article avec une arobe qui sépare deux chaînes, pos@texte, alors pos donne la position alphabétique de l’article alors que texte produit le texte de l’article. Un autre exemple est que \index{Saint Michael's College@SMC} produit un article d’index ‘SMC’ classé dans un autre endroit que son épellation donnerait naturellement.

Pour mettre le caractère !, @, | ou " dans un article d’index, échappez le en le précédant d’un guillement anglais double, ". (Le guillemet double est ignoré pour le classement alphabétique).

Nombre de paquetages sur le CTAN apportent des fonctionnalités supplémentaires allant au-délà de celles fournies par makeidx. L’un deux est index qui permet d’avoir des index multiples et contient une commande \index*{index-entry-string} qui imprime la chaîne-article-index en plus de l’indexer.

La commande \index écrit l’information d’indexation dans le fichier nom-racine.idx. Plus spécifiquement, elle écrit le texte de la commande \indexentry{chaîne-article-index}{num-page}, où num-page est la valeur du compteur \thepage. Il peut arriver, lorsque la commande \printindex perd les pédales, que vous ayez à détruire ce fichier pour repartir de bases saines.

Si vous oubliez l’accolade fermante sur une commande \index alors vous obtiendrez un message du genre de :

Runaway argument?  {Ackermann!function
!  Paragraph ended before \@wrindex was complete.

Suivant: , Précédent: , Monter: Indexes   [Table des matières][Index]