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 :

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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…
  5. 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.

4 réflexions au sujet de « Ajouter ou mettre à jour un package LaTeX manuellement (texlive) »

  1. Bonjour,
    merci pour ces info. j’ai fait tout et toute l’insallation a marché, je travaille sur linux SL5, c’est la premiere fois que j’utilise moderncv, mais toujours je trouve des probleme et je comprends pas pourquoi!! , en faite j’ai fait tous les etapes qe vous avez mis en haut. puis dans le dossier moderncv decomprisser , il ya un dossier exemple, j’ai entrer dedans et j’ai essayé de compiler un exemple mais ca marche pas , par exemple (latex template.tex) et il affiche: j’ai pas compris ce que manque ou bien il faut sortir de ce dossier modern cv et n’est pas crée le cv dedans?? que c’est qu’il faut faire.??. si vous pouvez m’aider je serais très reconnaissante.
    ================exemple=======================
    This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
    %&-line parsing enabled.
    entering extended mode
    (./template.tex
    LaTeX2e
    Babel and hyphenation patterns for english, usenglishmax, dumylang, noh
    yphenation, arabic, basque, bulgarian, coptic, welsh, czech, slovak, german, ng
    erman, danish, esperanto, spanish, catalan, galician, estonian, farsi, finnish,
    french, greek, monogreek, ancientgreek, croatian, hungarian, interlingua, ibyc
    us, indonesian, icelandic, italian, latin, mongolian, dutch, norsk, polish, por
    tuguese, pinyin, romanian, russian, slovenian, uppersorbian, serbian, swedish,
    turkish, ukenglish, ukrainian, loaded.
    (/usr/share/texmf/tex/latex/moderncv/moderncv.cls
    Document Class: moderncv 2006/09/09 v0.5 modern curriculum vitae document class

    (/usr/share/texmf/tex/latex/base/size11.clo)
    (/usr/share/texmf/tex/latex/base/ifthen.sty)
    (/usr/share/texmf/tex/generic/oberdiek/ifpdf.sty)
    (/usr/share/texmf/tex/latex/graphics/color.sty
    (/usr/share/texmf/tex/latex/config/color.cfg)
    (/usr/share/texmf/tex/latex/graphics/dvips.def)
    (/usr/share/texmf/tex/latex/graphics/dvipsnam.def))
    (/usr/share/texmf/tex/latex/base/fontenc.sty
    (/usr/share/texmf/tex/latex/base/t1enc.def))
    (/usr/share/texmf/tex/latex/marvosym/marvosym.sty)
    (/usr/share/texmf/tex/latex/ltxmisc/url.sty)
    (/usr/share/texmf/tex/latex/hyperref/hyperref.sty
    (/usr/share/texmf/tex/latex/graphics/keyval.sty)
    (/usr/share/texmf/tex/latex/hyperref/pd1enc.def)
    (/usr/share/texmf/tex/latex/config/hyperref.cfg)
    (/usr/share/texmf/tex/latex/oberdiek/kvoptions.sty)
    Implicit mode ON; LaTeX internals redefined

    Package hyperref Warning: Option `pdfpagelabels’ is turned off
    (hyperref) because \thepage is undefined.

    )
    *hyperref using driver hdvips*
    (/usr/share/texmf/tex/latex/hyperref/hdvips.def
    (/usr/share/texmf/tex/latex/hyperref/pdfmark.def))
    (/usr/share/texmf/tex/latex/tools/longtable.sty)
    (/usr/share/texmf/tex/latex/graphics/graphicx.sty
    (/usr/share/texmf/tex/latex/graphics/graphics.sty
    (/usr/share/texmf/tex/latex/graphics/trig.sty)
    (/usr/share/texmf/tex/latex/config/graphics.cfg)))
    (/usr/share/texmf/tex/latex/fancyhdr/fancyhdr.sty)
    (/usr/share/texmf/tex/latex/moderncv/moderncvcompatibility.sty)
    (/usr/share/texmf/tex/latex/base/omscmr.fd))
    (/usr/share/texmf/tex/latex/lm/lmodern.sty)
    ! Undefined control sequence.
    l.13 \moderncvcolor
    {blue} % color options ‘blu…

    ?

    ! LaTeX Error: Missing \begin{document}.

    See the LaTeX manual or LaTeX Companion for explanation.
    Type H for immediate help.

    l.13 \moderncvcolor{b
    lue} % color options ‘blu…

    ?
    (/usr/share/texmf/tex/latex/geometry/geometry.sty)
    ! Undefined control sequence.
    l.27 \name
    {John}{Doe}
    ?

    ! LaTeX Error: Missing \begin{document}.

    See the LaTeX manual or LaTeX Companion for explanation.
    Type H for immediate help.

    l.27 \name{J
    ohn}{Doe}
    ?
    ! Undefined control sequence.
    l.34 \homepage
    {www.johndoe.com} % optional, remove /…

    ?
    ! Undefined control sequence.
    l.35 \social
    [linkedin]{john.doe} % optional, remove /…

    ?
    ! Undefined control sequence.
    l.36 \social
    [twitter]{jdoe} % optional, remove /…

    ?
    ! Undefined control sequence.
    l.37 \social
    [github]{jdoe} % optional, remove /…

    ?
    No file template.aux.
    (/usr/share/texmf/tex/latex/lm/t1lmr.fd)
    (/usr/share/texmf/tex/latex/hyperref/nameref.sty
    (/usr/share/texmf/tex/latex/oberdiek/refcount.sty))
    (/usr/share/texmf/tex/latex/moderncv/moderncvstylecasual.sty
    (/usr/share/texmf/tex/latex/lm/t1lmss.fd))
    ! Undefined control sequence.
    l.57 \makecvtitle

    ?

    Overfull \hbox (20.86911pt too wide) in alignment at lines 59–63
    [] []

    Overfull \hbox (20.86911pt too wide) in alignment at lines 63–68
    [] []
    ! Argument of \@iiminipage has an extra }.

    \par
    l.86 \end{itemize}}

    ?
    Runaway argument?
    {t}{\def \@currenvir {itemize}\edef \@currenvline {\on@line }\csname \ETC.
    ! Paragraph ended before \@iiminipage was complete.

    \par
    l.86 \end{itemize}}

    ?
    ! Missing } inserted.

    }
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Misplaced \cr.
    \cr

    l.87 …iption line 1\newline{}Description line 2}

    ?
    ! Missing \cr inserted.

    \cr
    l.87 …iption line 1\newline{}Description line 2}

    ?
    ===============================================

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>