Outils du site


wiki:latex:install:linux:texlive

Installation de TeX Live sous Linux

Pour une installation automatisée d'une certain nombre d'éléments de base ainsi que la création de liens symboliques dans les dossiers /usr/local/bin, /usr/local/info et /usr/local/man, je propose le script suivant.

#!/bin/bash

archive="install-tl-unx.tar.gz"
install="/tmp/texlive-install"
profile="/tmp/texlive.profile"

function install-unpack
{
    if [ ! -f $archive ]
    then
        wget http://mirror.ctan.org/systems/texlive/tlnet/$archive
    fi
    
    if [ ! -d $install ]
    then
        mkdir $install && tar -zxvf install-tl-unx.tar.gz --directory $install --strip 1
    fi
}

# collection-basic (plain)
# collection-latex (latex)
# collection-binextra (asymptote, pdfcrop, latexmk, dvipng, ...)
function install-base
{
    echo "collection-basic 1" > $profile
    echo "collection-latex 1" >> $profile
    echo "collection-binextra 1" >> $profile
    echo "option_path 1" >> $profile
    echo "option_sys_bin /usr/local/bin" >> $profile
    echo "option_sys_info /usr/local/info" >> $profile
    echo "option_sys_man /usr/local/man" >> $profile
    sudo $install/install-tl -profile $profile
}

function install-packages
{
    # collection-langfrench
    list="babel-french hyphen-french"
    # collection-mathextra
    list="$list yhmath stmaryrd unicode-math"
    # collection-latexrecommended
    list="$list mh xkeyval setspace xcolor metalogo fontspec jknapltx beamer ms"
    # collection-fontsrecommended
    list="$list marvosym lm-math ec rsfs zapfding symbol"
    # collection-fontsextra
    list="$list fourier esvect ifsym"
    # collection-science
    list="$list siunitx"
    # collection-latexextra
    list="$list was enumitem titlesec lastpage cancel etextools etoolbox ucs filehook csquotes"
    # collection-xetex
    list="$list euenc xunicode polyglossia"
    # collection-luatex
    list="$list luaotfload luatexbase luatextra luacode lualatex-math lualibs"
    # collection-genericextra
    list="$list xlop"
    # collection-genericrecommended
    list="$list ulem"
    sudo tlmgr install $list
}

function install-clean
{
    rm -v $archive
    rm -v $profile
    rm -rv $install
}

function remove
{
    sudo rm -rv "/usr/local/texlive/$1/"
    sudo find /usr/local/bin/ -lname "*$1*" -delete
}

if [ "$1" = "du" ]; then
    du -h --max-depth=1 /usr/local/texlive/
fi

if [ "$1" = "install" ]; then
    install-unpack
    install-base
    install-packages
    install-clean
fi

if [ "$1" = "remove" ]; then
    remove $2
fi
  • La commande install permet d'installer la dernière version de TeX Live avec les collections basic, latex et binextra (via un fichier texlive.profile) puis installe des paquets supplémentaires (via tlmgr). Tout ça peut être adapté en fonction des besoin.
  • La commande remove 2013 permet de supprimer une installation précédente de TeX Live (ici la version 2013).
  • La commande du permet d'afficher le contenu du dossier d'installation de TeX Live afin d'afficher les versions installées ainsi que l'espace disque qu'elles occupent.

Tout ceci n'est bien sûr qu'une base de travail et reste à adapter en fonction de vos besoins.

Mise à jour de TeX Live

La commande suivante permet de mettre à jour l'intégralité de la distribution.

$ sudo tlmgr update --self --all

Installer un paquet via tlmgr

L'utilitaire tlmgr permet de gérer tout ce qui concerne l'installation, la recherche ou le retrait des différents paquets latex disponibles dans la distributions TeX Live. Par exemple, si on souhaite installer le paquet mathrsfs, on peut être tenté d'utiliser la commande suivante (qui fonctionnera pour pas mal de paquets) :

$ sudo tlmgr install mathrsfs

Cependant, dans ce cas précis, on va obtenir la réponse suivante :

package mathrsfs not present in package repository.

Ceci veut dire qu'il n'existe aucun paquet répertorié sous le nom de mathrsfs. En effet, ce paquet fait en fait partie d'une collection de paquets : il faut donc trouver le nom de cette collection. On utilise pour cela la commande suivante :

$ tlmgr search --global --file mathrsfs.sty

On va alors obtenir la réponse suivante :

jknapltx:
	texmf-dist/tex/latex/jknapltx/mathrsfs.sty

Ceci signifie que le fichier mathrsfs.sty appartient au paquet connu par TeX Live sous le nom de jknapltx. On peut donc l'installer ainsi :

$ sudo tlmgr install jknapltx

Obtenir des informations sur un paquet via tlmgr

Pour obtenir des informations sur le paquet jknapltx, on utilise la commande suivante :

$ tlmgr info jknapltx

On obtient alors :

package:     jknapltx
category:    Package
shortdesc:   Miscellaneous packages by Joerg Knappen.
longdesc:    Miscellaneous macros by Jorg Knappen, including: represent counters in greek; Maxwell's non-commutative division; latin1jk, latin2jk and latin3jk, which are their inputenc definition files that allow verbatim input in the respective ISO Latin codes; blackboard bold fonts in maths; use of RSFS fonts in maths; extra alignments for \parboxes; swap Roman and Sans fonts; transliterate semitic languages; patches to make (La)TeX formulae embeddable in SGML; use maths "minus" in text as appropriate; simple Young tableaux.
installed:   Yes
revision:    19440
sizes:       doc: 17k, run: 77k
relocatable: No
cat-date:    2014-01-03 22:58:53 +0100
cat-license: gpl
collection:  collection-latexrecommended

On peut voir que le paquet est installé sur le système, en version 19440 et qu'il fait partie de la collection collection-latexrecommended. Avec l'option –list on obtient la liste complète des fichiers installés par le paquet.

$ tlmgr info --list jknapltx

Qui donne (en plus de ce qui était affiché par la commande précédente) :

Included files, by type:
run files:
  texmf-dist/tex/latex/jknapltx/greekctr.sty
  texmf-dist/tex/latex/jknapltx/holtpolt.sty
  texmf-dist/tex/latex/jknapltx/latin1jk.def
  texmf-dist/tex/latex/jknapltx/latin2jk.def
  texmf-dist/tex/latex/jknapltx/latin3jk.def
  texmf-dist/tex/latex/jknapltx/mathbbol.sty
  texmf-dist/tex/latex/jknapltx/mathrsfs.sty
  texmf-dist/tex/latex/jknapltx/parboxx.sty
  texmf-dist/tex/latex/jknapltx/sans.sty
  texmf-dist/tex/latex/jknapltx/semtrans.sty
  texmf-dist/tex/latex/jknapltx/sgmlcmpt.sty
  texmf-dist/tex/latex/jknapltx/smartmn.sty
  texmf-dist/tex/latex/jknapltx/tccompat.sty
  texmf-dist/tex/latex/jknapltx/ursfs.fd
  texmf-dist/tex/latex/jknapltx/ustmary.fd
  texmf-dist/tex/latex/jknapltx/young.sty
doc files:
  texmf-dist/doc/latex/jknapltx/00readme.txt
  texmf-dist/doc/latex/jknapltx/README.TEXLIVE
  texmf-dist/doc/latex/jknapltx/mathbbol.rme
  texmf-dist/doc/latex/jknapltx/mathrsfs.rme

L'option –list permet également d'obtenir la liste des paquets contenus dans une collection. Par exemple, pour collection-latexrecommended, on peut utiliser la commande suivante.

$ tlmgr info --list collection-latexrecommended

Qui donne :

package:     collection-latexrecommended
category:    Collection
shortdesc:   LaTeX recommended packages
longdesc:    A collection of recommended add-on packages for LaTeX which have widespread use.
installed:   No
sizes:       
relocatable: Yes
depends:
	collection-latex
	anysize
	beamer
	booktabs
	caption
	cite
	cmap
	crop
	ctable
	eso-pic
	euler
	extsizes
	fancybox
	fancyref
	fancyvrb
	float
	fontspec
	fp
	index
	jknapltx
	koma-script
	l3kernel
	l3packages
	l3experimental
	listings
	mdwtools
	memoir
	metalogo
	mh
	microtype
	ms
	ntgclass
	parskip
	pdfpages
	powerdot
	psfrag
	rcs
	rotating
	sansmath
	section
	seminar
	sepnum
	setspace
	subfig
	textcase
	thumbpdf
	typehtml
	underscore
	xcolor
	xkeyval

Afficher la documentation d'un paquet via texdoc

Pour afficher la documentation d'un paquet installé sur le système, on utilise la commande suivante :

$ texdoc nom_du_paquet

Il arrive que cette recherche échoue, en particulier si la documentation et le paquet ne sont pas éponymes. Dans ce cas, on peut faire une recherche sur le nom :

$ texdoc -s nom

Une liste de documents est alors proposée. A vous de choisir celui qui paraît pertinent.

Si jamais texdoc n'a pas été sélectionné à l'installation de texlive (collection-binextra), il est possible de l'installer via tlmgr puis de créer un lien symbolique dans /usr/local/bin/ :

$ sudo tlmgr install texdoc
$ sudo ln -s /usr/local/texlive/2014/bin/i386-linux/texdoc /usr/local/bin/

Le chemin vers l'exécutable texdoc peut-être à modifier en fonction de la version de Tex Live utilisée (et éventuellement de la distribution Linux utilisée).

wiki/latex/install/linux/texlive.txt · Dernière modification: 2015/06/16 23:19 par MB