Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
3_composition:annexes:index:generer_plusieurs_index [2021/10/13 22:09] – Fusion de la page française et de la page anglaise. Début de traduction. yannick.tanguy | 3_composition:annexes:index:generer_plusieurs_index [2022/11/29 19:50] (Version actuelle) – Usage de ⟨...⟩ dbitouze |
---|
Les capacités d'indexation usuelles de <latex>\LaTeX</latex> (fournies par l'extension [[ctanpkg>makeidx]]) ne permettent d'obtenir qu'un seul index dans votre document. Cependant, même des documents assez modestes peuvent être améliorés par la présence d'index pour des sujets distincts. | Les capacités d'indexation usuelles de <latex>\LaTeX</latex> (fournies par l'extension [[ctanpkg>makeidx]]) ne permettent d'obtenir qu'un seul index dans votre document. Cependant, même des documents assez modestes peuvent être améliorés par la présence d'index pour des sujets distincts. |
| |
===== Avec l'extension multind ===== | ===== Avec l'extension “multind” ===== |
| |
L'extension [[ctanpkg>multind]] permet de générer facilement plusieurs index. Il modifie légèrement les commandes d'indexation afin que l'utilisateur puisse spécifier, pour chaque entrée, l'index concerné. | L'extension [[ctanpkg>multind]] permet de générer facilement plusieurs index. Il modifie légèrement les commandes d'indexation afin que l'utilisateur puisse spécifier, pour chaque entrée, l'index concerné. |
| |
FIXME //Traduction à poursuivre.// | En pratique, vous balisez chaque commande ''\makeindex'', ''\index'' et ''\printindex'' avec un nom de fichier et les commandes d'indexation sont écrites et lues dans les fichiers avec les extensions appropriées. La commande ''\printindex'' est modifiée à partir d'une ancienne version du standard <latex>\LaTeX</latex> 2.09 afin qu'elle ne crée pas son propre titre de chapitre ou de section. Ainsi, vous décidez quels noms (et niveaux de sectionnement) de vos index sans avoir à passer par la solution évoquée par la question « [[3_composition/langues/traduire_le_titre_de_table_des_matieres_ou_bibliographie|Comment changer les textes prédéfinis de LaTeX ?]] ». |
| |
You tag each ''\makeindex'', ''\index'' and ''\printindex'' command with a file name, and indexing commands are written to (or read from) the name with the appropriate (''idx'' or ''ind'') extension appended. The ''\printindex'' command is modified from an old version of the LaTeX 2.09 standard so that it doesn't create its own chapter or section heading; you therefore decide what names (or sectioning level, even) to use for the indexes, and [[FAQ-fixnam|''\indexname'']] is completely ignored. | Voici un exemple donnant un index « fruits » et un index « légumes » : |
| |
To create a "fruits" and an "legumes" index, one might write: | |
| |
<code latex> | <code latex> |
| \documentclass{article} |
| \usepackage[french]{babel} |
\usepackage{multind} | \usepackage{multind} |
\makeindex{fruits} | \makeindex{fruits} |
\makeindex{legumes} | \makeindex{legumes} |
... | \begin{document} |
\index{fruits}{poire} | (...) \index{fruits}{poire} |
\index{legumes}{haricot} | (...) \index{legumes}{haricot} |
\index{fruits}{pomme} | (...) \index{fruits}{pomme} |
... | (...) |
\printindex{fruits}{Index des fruits} | \printindex{fruits}{Index des fruits} |
\printindex{legumes}{Index des légumes} | \printindex{legumes}{Index des légumes} |
... | (...) |
| \end{document} |
</code> | </code> |
| |
To complete the job, run LaTeX on your file enough times that labels, etc., are stable, and then execute the commands | Il faut ensuite exécuter <latex>\LaTeX</latex> sur votre fichier suffisamment de fois pour que les étiquettes, etc., soient stables, puis exécuter les commandes suivantes (si vous utilisez ''makeindex'') : |
| |
<code latex> | <code latex> |
</code> | </code> |
| |
before running LaTeX again. Note that the names of the index files to process are not necessarily related to the name of the LaTeX file you're processing, at all. (There's no documentation that comes with the package: what you see above is as good as you will get...) | Puis, il faudra compiler à nouveau votre document avec <latex>\LaTeX</latex> pour obtenir le document avec les index. |
| |
The [[ctanpkg>multind|multind]] package doesn't work with the [[FAQ-AMSpkg|AMSLaTeX classes]], but the AMS provide a substitute, the [[ctanpkg>amsmidx|amsmidx]] package. You use the [[ctanpkg>amsmidx|amsmidx]] package pretty much the same as you would [[ctanpkg>multind|multind]], but if things aren't clear, there //is// documentation (unlike [[ctanpkg>multind|multind]]). | Notez ici que les noms des fichiers d'index à traiter ne sont pas du tout liés au nom du fichier <latex>\LaTeX</latex> que vous traitez, ce qui est différent de la manière de procéder vue à la question « [[3_composition/annexes/index/commandes_de_base|Comment générer un index ?]] ». Notez aussi qu'il n'y a pas de documentation fournie avec cette extension ! Ce que vous lisez ci-dessus sera à peu près tout ce que vous trouverez sur le sujet. |
| |
===== Avec l'extension index ===== | L'extension [[ctanpkg>multind]] ne fonctionne pas avec les [[1_generalites/glossaire/que_sont_ams-tex_et_ams-latex|classes AMSLaTeX]], mais il existe un substitut : l'extension [[ctanpkg>amsmidx]]. Cette extension s'utilise à peu près de la même manière que [[ctanpkg>multind]]. Toutefois, si les choses ne sont pas claires, une [[texdoc>amsmidx|documentation]] est là bien disponible. |
| |
The [[ctanpkg>index|index]] package provides a comprehensive set of indexing facilities, including a ''\newindex'' command that allows the definition of new styles of index. ''\newindex'' takes a "tag" (for use in indexing commands), replacements for the ''idx'' and ''ind'' file extensions, and a title for the index when it's finally printed; it can also change the item that's being indexed against (for example, one might have an index of artists referenced by the figure number where their work is shown). | ===== Avec l'extension “index” ===== |
| |
Using [[ctanpkg>index|index]], to create an author index together with a "normal" index, one would start with preamble commands: | L'extension [[ctanpkg>index]] fournit un ensemble complet de fonctions d'indexation, y compris une commande ''\newindex'' qui permet la définition de nouveaux styles d'index. ''\newindex'' prend une //étiquette// (à utiliser dans les commandes d'indexation pour les rattacher à un index), des remplacements pour les extensions de fichier ''idx'' et ''ind'', et un titre pour l'index lorsqu'il est finalement imprimé. Cette commande peut également changer la référence présentée en index (par exemple, on peut avoir un index d'artistes référencés par le numéro de figure où leur travail est présenté plutôt que par le numéro de page). |
| |
| En utilisant cette extension pour créer un index d'auteur avec un index classique, il faudrait commencer par les commandes suivantes en préambule : |
| |
<code latex> | <code latex> |
\usepackage{index} | \usepackage{index} |
\makeindex | \makeindex |
\newindex{aut}{adx}{and}{Name Index} | \newindex{aut}{adx}{and}{Index des auteurs} |
</code> | </code> |
| |
which load the package, define a "main" (original-style) index, and then define an author index. Then, in the body of the document, we might find commands like: | Ceci charge l'extension, définit un index principal, puis définit un index d'auteur. Dans le corps du document, nous pourrons trouver des commandes telles que : |
| |
<code latex> | <code latex> |
\index[aut]{Another Idiot} | \index[aut]{Anne O'Nyme} |
... | (...) |
\index{FAQs} | \index{FAQ} |
</code> | </code> |
| |
Which place an entry in the author index, and then one in the main index. At the end of the document, we have two commands: | Ces commandes placent respectivement une entrée dans l'index des auteurs et une entrée dans l'index principal. Plus loin se trouveront deux commandes : |
| |
<code latex> | <code latex> |
</code> | </code> |
| |
Which will print the main index and then the author index. Supposing this lot to be in ''myfile.tex'', after enough runs through LaTeX that labels are stable, execute the following commands (Unix-style shell commands shown here, but the principle is the same whatever system you're using) : | Ceci affiche l'index principal puis l'index des auteurs. En supposant que tout ceci soit dans un fichier ''mondoc.tex'', après un nombre suffisant de compilations pour stabiliser les étiquettes, exécutez les commandes suivantes (ici, des commandes shell Unix mais le principe est le même quel que soit le système que vous utilisez) : |
| |
<code latex> | <code latex> |
makeindex myfile | makeindex mondoc |
makeindex myfile.adx -o myfile.and | makeindex mondoc.adx -o mondoc.and |
</code> | </code> |
| |
and rerun LaTeX. The ''makeindex'' commands process ''myfile.idx'' to ''myfile.ind'' (the default action), and then ''myfile.adx'' to ''myfile.and'', the two files needed as input by the two ''\printindex'' commands in ''myfile.tex''. | Ensuite, recompilez le document avec <latex>\LaTeX</latex>. Les commandes ''makeindex'' traitent ''mondoc.idx'' pour obtenir ''mondoc.ind'' (l'action par défaut) et ''mondoc.adx'' pour obtenir ''mondoc.and''. Les fichiers ''mondoc.idx'' et ''mondoc.and'' seront appelés par les deux commandes ''\printindex'' dans ''monfichier.tex''. |
| |
| ===== Avec l'extension “splitidx” ===== |
| |
| L'extension [[ctanpkg>splitindex]] peut fonctionner de la même manière que les autres : chargez-la avec l'option ''split'' et déclarez chaque index avec une commande ''\newindex'' : |
| |
| <code latex> |
| \newindex[⟨nom de l'index⟩]{⟨raccourci⟩} |
| </code> |
| |
| Dans ce cas, [[ctanpkg>splitindex|splitidx]] générera un fichier ''\jobname.⟨raccourci⟩'' pour recevoir les entrées d'index générées par des commandes telles que ''\sindex[⟨raccourci⟩]{⟨élément⟩}''. Comme avec les autres extensions, cette méthode est limitée par le nombre total de fichiers de sortie de <latex>\TeX</latex>. |
| |
| Cependant, [[ctanpkg>splitindex]] est également fourni avec un petit exécutable ''splitindex'' (disponible pour plusieurs systèmes d'exploitation). Si vous utilisez ce programme auxiliaire (et n'utilisez pas ''split''), il n'y a pas de limite au nombre d'index. En dehors de cette astuce, [[ctanpkg>splitindex]] prend en charge les mêmes fonctionnalités que [[ctanpkg>index]]. Un exemple d'utilisation figure dans la documentation. |
| |
===== Avec l'extension splitidx ===== | ===== Avec l'extension “imakeidx” ===== |
| |
The [[ctanpkg>splitindex|splitidx]] package can operate in the same way as the others: load the package with the ''split'' option, and declare each index with a ''\newindex'' command: | L'extension [[ctanpkg>imakeidx]] dispose d'un large éventails de possibilités. Par exemple, il peut exécuter un générateur d'index via les commandes (avec la méthode détaillée à la question « [[2_programmation/compilation/write18|Comment lancer un sous-processus pendant la compilation ?]] » afin de simplifier la réalisation d'un document. |
''\newindex[<index name>]{<shortcut>}'' | |
and [[ctanpkg>splitindex|splitidx]] will generate a file ''\jobname.<shortcut>'' to receive index entries generated by commands like ''\sindex[<shortcut>]{<item>}''. As with the other packages, this method is limited by TeX's total number of output files. However, [[ctanpkg>splitindex|splitindex]] also comes with a small executable ''splitindex'' (available for a variety of operating systems); if you use this auxiliary program (and don't use ''split''), there's no limit to the number of indexes. Apart from this trick, [[ctanpkg>splitindex|splitidx]] supports the same sorts of things as does [[ctanpkg>index|index]]. An example of use appears in the documentation. | |
| |
===== Avec l'extension imakeidx ===== | Cette extension peut créer plusieurs index : |
| * de manière conventionnelle, comme le fait([[ctanpkg>multind]]) ; |
| * ou de façon plus fine avec le script externe ''splitindex'' fourni avec l'extension [[ctanpkg>splitindex]]. |
| |
The [[ctanpkg>imakeidx|imakeidx]] package can do a wide range of things (in particular, it can run an index-builder --- via [[FAQ-spawnprog|''\write18'' commands]] --- so as to simplify business of making the final copy of a document). The package can also make multiple indexes; it can do the job in the conventional ([[ctanpkg>multind|multind]]) way, or by using the external ''splitindex'' script provided with the [[ctanpkg>splitindex|splitindex]] package. (This arrangement allows efficient operation with small numbers of indexes, while retaining the flexibility of permitting large numbers of indexes without hitting the restriction of numbers of active output streams.) | Cette organisation permet un fonctionnement efficace avec un petit nombre d'index, tout en conservant la flexibilité d'autoriser un grand nombre d'index sans toucher à la restriction du nombre de flux de sortie actifs. |
| |
===== Avec la classe memoir ===== | ===== Avec la classe “memoir” ===== |
| |
The [[ctanpkg>memoir|memoir]] class has its own multiple-index functionality (as well as its own index layout options, which other packages delegate to the index style used by ''makeindex''). | La classe [[ctanpkg>memoir]] a sa propre fonctionnalité d'index multiples. Elle dispose aussi de ses propres options de disposition d'index, que d'autres extensions délèguent au fichier de style d'index utilisé par ''makeindex''. |
| |
----- | ----- |
//Source:// [[faquk>FAQ-multind|Multiple indexes]] | //Source:// [[faquk>FAQ-multind|Multiple indexes]] |
| |
{{htmlmetatags>metatag-keywords=(LaTeX,index,multind) | {{htmlmetatags>metatag-keywords=(LaTeX,annexes,index,multind) |
metatag-og:title=(Comment générer plusieurs index) | metatag-og:title=(Comment générer plusieurs index) |
metatag-og:site_name=(FAQ LaTeX francophone) | metatag-og:site_name=(FAQ LaTeX francophone) |
}} | }} |