Le package glossaries
se veut être le remplaçant du vieillissant glossary
. Comme son nom l’indique, glossaries
permet de générer plusieurs glossaires. Son utilisation est assez facile, pour peu qu’on l’ai paramétré proprement, ce qui n’est pas forcément gagné… C’est pourquoi je vais essayer de résumer la configuration minimale qui vous permettra une prise en main (presque) rapide.
J’avais déjà fait allusion à ce package dans mon billet sur le template pour manuscrit de thèse, mais je n’avais pas le temps de trop développer cet aspect.
Table des matières
Compilation
Que vous utilisiez ou non xindy (voir plus bas), c’est bien avec makeglossaries
que vous génèrerez vos glossaires. Pour avoir toutes les références croisées à jour, c’est le même délire qu’avec bibtex, à savoir :
pdflatex Document.tex makeglossaries Document pdflatex Document.tex pdflatex Document.tex |
En anglais
Je vais commencer par développer l’utilisation pour la langue de Freddie Mercury, car c’est celle qui demande le moins de paramétrage.
Chargement du package
Il faut charger glossaries
après hyperref
pour avoir les liens actifs. De plus, il faut penser à demander les glossaires :
\usepackage[pdfborder={0 0 0}]{hyperref} \usepackage{glossaries} \makeglossaries |
Définir des acronymes
\newacronym{<label>}{<acronyme>}{<Définition>} |
Ensuite, vous appelez les acronymes grâce à la commande \gls{
. A la première occurrence de chacun d’eux, la définition sera affichée, suivie de l’acronyme entre parenthèses. Aux occurrences suivantes, seul l’acronyme sera affiché. On dispose de plus des commandes suivantes :
\glspl{
} : pluriel\Gls{}
: majuscule au premier mot (si c’est la définition qui est affichée)\Glspl{}
: combinaison des deux commandes précédentes
Exemple :
\usepackage{glossaries} \makeglossaries \newacronym{tem}{TEM}{Transmission Electron Microscope} \newacronym{sem}{SEM}{Scanning Electron Microscope} \begin{document} One can use a \gls{sem}. \Glspl{sem} are different from \glspl{tem}. \end{document} |
Et pour afficher la liste des acronymes :
\printglossary[type=\acronymtype] |
Il est de plus possible de définir spécifiquement les pluriels des acronymes ou des définitions en option des \newacronym
et même le texte à afficher à la première occurrence :
\newacronym[ plural={<acronyme pluriel>}, first={<texte à afficher à la première occurrence>}, firstplural={<idem, mais au pluriel>} ]{<label>}{<acronyme>}{<Définition>} |
Définir un glossaire
Chaque entrée se définit comme suit :
\newglossaryentry{<label>}{ name={<mot à afficher dans le texte>}, plural={<pluriel du mot>}, description={<définition affichée dans le glossaire>} } |
Les commandes pour afficher l’entrée restent les mêmes que précédemment : \gls
, \Gls
etc.
A l’endroit où vous souhaitez voir le glossaire, mettez :
\printglossary |
Attention si utilisez à la fois les acronymes et les glossaires : par défaut, il n’y aura qu’un seul glossaire pour les deux. Si vous souhaitez les séparer (de façon à avoir un « Glossary » et « Acronyms », il faut préciser l’option acronym
lors du chargement du package glossaries
:
\usepackage[acronym]{glossaries} |
Liste des symboles (ou nomenclature)
Pour cela, on va commencer par définir un nouveau type de glossaire, que l’on appellera intelligemment notation. Juste après avoir chargé le package, placez :
\newglossary[nlg]{notation}{not}{ntn}{Notations} |
Les différentes options servent à définir les noms des extensions pour les fichiers de compilation et le titre du glossaire affiché. Ensuite, chaque symbole se définit ainsi :
\newglossaryentry{<label>} { type=notation, name={<caractère mathématique à afficher>}, description={<définition à afficher dans la nomenclature>}, sort={<nom donné pour le classement>} } |
Pour définir le nom, une très bonne habitude est d’utiliser la commande \ensuremath{}
, qui vous permettra ainsi d’appeler le symbole avec la commande \gls{}
, indifféremment dans du texte ou dans une équation. L’option sort
permet de contrôler le classement des symboles dans l’ordre alphabétique (vous mettriez Φ avant ou après π ?).
Pour afficher la nomenclature :
\printglossary[type=notation] |
Exemple :
\newglossaryentry{a} { type=notations, name={\ensuremath{a}}, description={Some kind of constant}, sort={a} } \newglossaryentry{phi} { type=notations, name={\ensuremath{\Phi}}, description={Another constant}, sort={phi} } \begin{document} One can define \gls{a} as a function a \gls{phi}: \begin{equation} \gls{a}=\gls{phi}+\pi \end{equation} \printglossaries \end{document} |
Afficher tous les glossaires en même temps
\pringlossaries |
Ajouter les glossaires à la table des matières
Il faut préciser l’option toc
(table of content) lors de l’appel du package glossaries
:
\usepackage[toc]{glossaries} |
En français
Outre les titres à corriger (« Acronyms » et autre « Glossary »), il faut s’assurer que glossaries
saura classer les mots accentués, et surtout que les pluriels soient corrects. En effet, comme on l’a vu précédemment, en anglais les acronymes prennent un « s » au pluriel, ce qui n’est pas le cas en français.
xindy
Pour s’assurer de la compatibilité du packages glossaries
avec les caractères français, il est préférable d’utiliser xindy, qui est une surcouche pour la commande makeglossaries
. Il faut alors préciser son utilisation lors de l’appel du package glossaries
:
\usepackage[xindy]{glossaries} |
Virer les « s » pour les pluriels des acronymes
Placez la commande suivante dans le préambule :
\renewcommand{\glspluralsuffix}{} |
Par contre les pluriels des définitions ne fonctionneront plus non plus. Vous devrez donc définir vous même, pour chaque entrée dans la liste des acronymes, le pluriel correspondant (avec l’option firstplural, voir plus haut).
Titres des glossaires
Pour chaque commande \printglossary
, il suffit de préciser en option un « title ». On peut de plus choisir le titre affiché dans la table des matières (toc
) :
\printglossary[type=\acronymtype , title={Liste des acronymes}, toctitle={Liste des acronymes}] \printglossary[type=notation , title={Nomenclature}, toctitle={Nomenclature}] \printglossary[title={Glossaire}, toctitle={Glossaire}] |
Pour aller plus loin
Pour finir, voici quelques astuces qui peuvent vous sauver de la calvitie forcée.
Réinitialiser les acronymes
Pour que les acronymes soient de nouveau affiché comme au premier jour (c’est-à-dire avec la définition) :
\glsresetall |
Afficher correctement les titres des glossaires dans les entêtes
Par défaut, les titres des glossaires affichés dans les entêtes avec fancyhdr sont en minuscule, ce qui jure un peu avec les autres titres. Pour corriger cela, il faut rajouter ucmark
en option du package :
\usepackage[ucmark,toc]{glossaries} |
Utiliser un fichier spécifique pour les entrées des glossaires
Plus qu’une astuce, c’est un conseil : si vous utilisez glossaries
, c’est a priori que vous êtes sur un gros coup ! Donc vous aurez tout intérêt à définir un fichier spécifique, par exemple Glossaire.tex, et l’appeler avec la commande suivante :
\loadglsentries{Glossaire} |
Afficher un texte arbitraire à la place d’une entrée
Il est possible de citer une entrée avec un texte de votre choix (ce qui aura pour effet d’ajouter la page correspondante au glossaire et ajouter l’hyperlien dans le PDF) :
\glsdisp{<label>}{<texte à afficher>} |
Je suis loin d’avoir fait le tour de glossaries
, donc si vous voulez plus d’info, je vous invite à vous rendre sur la page de la documentation ou sur le WikiBook dédié.