Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : Latex

Latex création d'un glossaire

Jonathan Mercier

Bonjour cher lecteur,

Je suis un utilisateur courant de latex pour la création de document pdf. Récemment j'ai eu le besoin de mettre un glossaire dans mon document. Je souhaite faire part de mon expérience et des problèmes rencontrés dans l'espérance de vous faire gagner un précieux temps.

Moteur de recherche

Première chose que j'ai faite c'est de rechercher comment créer un glossaire avec latex, il existe différent package pour cela, dont :

Péripétie

La littérature du web décrit glossary comme un paquet "périmé" soit, je ne m'attarde pas dessus et je passe à makeglos. Je recherche la documentation les exemples sur le web ... frustré par le peut de documentation je me dis allons bon va pour le package glossaries.

Glossaries

je récupère via le CTAN le package, lit le fichier INSTALL et procède à l'installation.

Récupération des sources

$ su -
# wget http://mirror.ctan.org/macros/latex/contrib/glossaries.zip
# unzip glossaries.zip

Création des dossiers

 
# mkdir /usr/share/texmf/tex/latex/glossaries
# mkdir /usr/share/texmf/doc/latex/glossaries
# mkdir /usr/share/texmf/tex/latex/glossaries/base/
# mkdir /usr/share/texmf/tex/latex/glossaries/styles
# mkdir /usr/share/texmf/doc/latex/glossaries/samples

Installation des fichier *.tex

# install glossariesbegin.tex  /usr/share/texmf/tex/latex/glossaries/
# install glossaries-user.tex  /usr/share/texmf/tex/latex/glossaries/
# install glossary2glossaries.tex  /usr/share/texmf/tex/latex/glossaries/
# install mfirstuc-manual.tex /usr/share/texmf/tex/latex/glossaries/

Installation des styles de base

# install glossaries-babel.sty  /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries-compatible-207.sty /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries-polyglossia.sty /usr/share/texmf/tex/latex/glossaries/base/
# install glossaries.sty /usr/share/texmf/tex/latex/glossaries/base/
# install mfirstuc.sty /usr/share/texmf/tex/latex/glossaries/base/

Installation dans expl

# install glossaries-accsupp.sty /usr/share/texmf/tex/latex/glossaries/expl/

Installation des fichiers *.dict

# cp *.dict /usr/share/texmf/tex/latex/glossaries/dict/

Installation de la documentation

# cp samples/*.tex /usr/share/texmf/doc/latex/glossaries/samples

mise à jour pour la recherche de package

# texhash

Suppression du dossier téléchargé

# rm -fr glossaries glossaries.zip

Je teste avec l'exemple minimal ...

# latex sample/minimalgls

La compilation échoue il manque le package xfor et etoolbox!

xfor

Installation rapide

# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/xfor/xfor.sty -O /usr/share/texmf/tex/latex/xfor/xfor.sty
# mkdir -p /usr/share/texmf/tex/latex/xfor/
# wget http://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/xfor/xfor.sty -O /usr/share/texmf/tex/latex/xfor/xfor.sty
# texhash 

etoolbox

Installation

# wget http://www.ctan.org/tex-archive/install/macros/latex/contrib/etoolbox.tds.zip
# unzip etoolbox.tds.zip -d etoolbox
# mv etoolbox/doc/* /usr/share/texmf/doc/
# mv etoolbox/tex/latex/* /usr/share/texmf/tex/latex/
# texhash 
# rm -fr etoolbox.tds.zip -d etoolbox

Dernier essai

Je teste avec l'exemple minimal ...
# cd /usr/share/texmf/doc/latex/glossaries/sample/
# latex minimalgls

ça marche! Tout content j'essaye dans mon document la compilation échoue car "AtBeginEnvironment" est déjà définie! Je souhaite en avoir le coeur net, ni une ni deux je vérifie:

# find /usr/share/texmf/tex/latex/ -type f | xargs grep AtBeginEnvironment
/usr/share/texmf/tex/latex/etoolbox/etoolbox.sty:\newrobustcmd{\AtBeginEnvironment}[1]{%
/usr/share/texmf/tex/latex/etoolbox/etoolbox.sty:     '\string\AtBeginEnvironment' will not work\@gobble}}
/usr/share/texmf/tex/latex/caption/caption3.sty:\providecommand*\AtBeginEnvironment[1]{%
/usr/share/texmf/tex/latex/caption/caption3.sty:\@onlypreamble\AtBeginEnvironment
/usr/share/texmf/tex/latex/caption/caption.sty:  \AtBeginEnvironment{#2}{\caption@letfloattype{#2}{#1}}}

Eh oui! en effet le package caption utilise également le même nom! Par conséquent on ne peut pas utiliser caption et etoolbox en même temps (donc glossaries!)

Pour finir

Je suis revenu au bon vieux package glossary. Le package glossary est livré avec TexLive donc rien à faire. Dans un fichier glossaire.tex je mets les définitions


  1. \storeglosentry{def1}{%
  2. name={def1},%
  3. description={...}%
  4. }
  5. \storeglosentry{def2}{%
  6. name={def2},%
  7. description={...}%
  8. }
  9. ...

Et mon document "mondocument.tex" ressemble à:


  1. \usepackage{glossary}
  2. \makeglossary
  3. \input{glossaire}
  4. \begin{document}
  5. \maketitle
  6. \tableofcontents
  7. \thispagestyle{empty}
  8. \newpage\pagenumbering{arabic}
  9. \thispagestyle{fancy}
  10. \addcontentsline{toc}{chapter}{Glossaire}
  11. \printglossary
  12. \input{chap/chapter2}
  13. \input{chap/chapter3}
  14. \input{chap/chapter4}
  15. \end{document}

Pour référencer une définition, il suffit d'utiliser \gls{monlabel} à chaque fois que l'on rencontre une référence dans notre texte.

La compilation seffectue de la manière suivante (la première compilation échoue c'est normal):

$ pdflatex --file-line-error-style mondocument.tex
$ makeindex mondocument.glo -s mondocument.ist -t mondocument.glg -o mondocument.gls
$ pdflatex --file-line-error-style mondocument.tex

Bref le package glossary fonctionne très bien et conviendras à la plupart des utilisateurs.

Liens externes:

Signé: bioinfornatics, Jonathan MERCIER