Ajouter ou mettre à jour un package LaTeX manuellement (texlive)
Cet article fait en particulier suite à celui concernant la création de son CV en LaTeX avec moderncv. Pour ceux d’entre vous qui ont essayé, vous êtes probablement tombé sur un os en tentant d’ajouter votre page web dans vos coordonnées :
\documentclass[10pt,a4paper]{moderncv} % ..... \homepage{www.francoistessier.info/blog}
Une erreur sur cette balise empêche la compilation. En y regardant de plus près, on peut s’apercevoir dans /usr/share/doc/texlive-latex-extra-doc/latex/moderncv/CHANGELOG.gz (pour une installation de texlive sous Ubuntu) que la version installé de moderncv est la 0.7. Or, il y a eu quelques mises à jour depuis (version 0.11) permettant entre autres d’utiliser la balise /homepage{} comme dans l’exemple fourni par l’auteur. Mais comment utiliser la dernière version?
Une solution consisterai à écraser la version actuelle par la nouvelle. Certes, ça semble efficace mais c’est trop « risqué », pas propre, et on perdrait cette modification à la prochaine mise à jour de texlive.
Heureusement pour nous, LaTeX a tout prévu! Il existe en effet une variable TEXMFHOME dans sa configuration qui correspond en général au chemin du dossier $HOME/texmf. Ce dossier, s’il existe, est parcouru par LaTeX lors de la compilation d’un document pour y chercher l’existence de la classe utilisée. Deuxième point important, c’est la classe trouvée dans ce dossier (en suivant une arborescence précise), si elle existe, qui est choisie en priorité pour compiler le document. Donc pour utiliser, par exemple, la dernière version de moderncv, on procèdera de cette façon :
- On exécute dans un premier temps la commande suivante pour connaître le dossier correspondant à la variable TEXMFHOME :
$ texconfig conf | grep TEXMFHOME TEXMFHOME=/home/login/texmf
- En fonction du repertoire fourni précédemment, on crée l’arborescence dont à besoin LaTeX pour trouver et utiliser notre package :
$ mkdir -p /home/login/texmf/tex/latex
- On y copie le package téléchargé et décompressé
$ cd /home/login/texmf/tex/latex $ wget http://mirror.ctan.org/macros/latex/contrib/moderncv.zip $ unzip moderncv.zip $ rm moderncv.zip
- En fonction de comment est organisé le package, il sera peut-être nécessaire de faire des manipulations supplémentaires (je pense en particulier aux packages contenant des .ins et .dtx) mais je n’ai pas encore été confronté à ce type de cas…
- On execute la commande sudo texhash qui mettra à jour la base de données de LaTeX. Cette commande ne semble pas nécessaire dans le cas d’une autre version d’un package existant (par exemple moderncv).
Et voilà! Si tout va bien, le package est accessible et, dans le cas de moderncv, il sera utilisé à la place de la version installée avec texlive.
Pour récupérer la dernière version des packages les plus populaires ou en trouver de nouveau, je vous renvoie vers ce site.