Je rencontre un problème dans la création de l'index de mon mémoire. Pour faire simple, je dois faire un inventaire de sites archéologiques. J'ai eu envie de me faciliter la tâche en créant une commande qui se charge de la mise en forme. Comme j'ai plus de neuf paramètres à prendre en compte, il me faut utiliser Je n'ai rencontré quasiment aucun problème, sauf pour l'index. En effet, je veux que chaque site figure dans l'index. En résumé, pour chaque site je définis le nom du site, et la commune sur laquelle il se trouve si les deux sont différents. Si la commune et le nom du site sont identiques, je ne définis que le nom du site. Dans l'index, je souhaite que figure le nom du site, et la commune si celle-ci est définie avec un renvoie vers le nom du site (avec J'ai en outre défini une clé d'index qui me permet de changer l'entrée dans l'index pour quelques cas particuliers. Le nom du site est dans tous les cas défini. Pour cela, voici une version simplifiée de ce que j'ai fait — je travaille avec XeLaTeX : Ouvrir dans l'éditeur
\documentclass[french]{article} \usepackage{fontspec} \usepackage{makeidx} \usepackage{index} \usepackage{xkeyval} \usepackage{babel} \makeatletter \define@key{myitem}{Commune}{\def\@Commune{#1}} \define@key{myitem}{NomSite}{\def\@NomSite{#1}} \define@key{myitem}{Index}{\def\@Index{#1}} \def\NewItem#1{% \setkeys{myitem}{#1} \@PrintItem } \def\@PrintItem{% \ifx\@Index\@undefined% \ifx\@Commune\@undefined% \expandafter\index\expandafter{\@NomSite}% \else% \expandafter\index\expandafter{\@NomSite}% \expandafter\index\expandafter{\@Commune|see{\@NomSite}}% \fi% \else% \@Index% \fi% \@NomSite% \ifx\@Commune\@undefined% .% \else% ,\ \@Commune.% \fi% \let\@Index\@undefined% \let\@NomSite\@undefined% \let\@Commune\@undefined% } \makeatother \makeindex \begin{document} \NewItem{NomSite={UnSite}} \NewItem{Commune={UneCommune},NomSite={UnAutreSite},Index={\index{UnAutreIndex}}} \NewItem{Commune={UneAutreCommune},NomSite={EncoreUnSite}} \printindex \end{document} Après la compilation, il manque dans mon index la mention « UneAutreCommune » avec le renvoi à « EncoreUnSite », car voici ce que je trouve dans le fichier .idx : Ouvrir dans l'éditeur
\indexentry {UnSite}{1} \indexentry {UnAutreIndex}{1} \indexentry {EncoreUnSite}{1} \indexentry {UneAutreCommune|see{\@NomSite }}{1} Du coup, ma question est : comment faire pour que le nom du site soit bien lu lorsque j'utilise la syntaxe |
Lors de l'appel à Ouvrir dans l'éditeur
\edef\temp{{\@Commune|see{\@NomSite}}}% \expandafter\index\temp Le fichier Ouvrir dans l'éditeur
\indexentry {UnSite}{1} \indexentry {UnAutreIndex}{1} \indexentry {EncoreUnSite}{1} \indexentry {UneAutreCommune|see{EncoreUnSite}}{1} Publiée 01 Nov '15, 21:38 unbonpetit ♦♦ @unbonpetit : merci beaucoup pour cette réponse rapide et efficace (comme toujours) ! Ça fonctionne parfaitement.
(01 Nov '15, 22:15)
Namrod
@Namrod : si la réponse vous convient, merci d'accepter ma réponse.
(01 Nov '15, 22:16)
unbonpetit ♦♦
@Namrod Si une réponse fournit la (meilleure) solution à la question, merci de l'indiquer non pas au moyen d'un commentaire mais en acceptant la réponse.
(02 Nov '15, 10:52)
denis ♦♦
|
@unbonpetit : merci beaucoup pour ta réponse rapide et efficace (comme d'habitude) ! Ça fonctionne parfaitement. Publiée 01 Nov '15, 22:14 Namrod |
@Namrod Les formules de politesse et les signatures sont à éviter : elles ont été supprimées de votre contribution.