Si je prends l'exemple officiel contenant du latex du site Web matplotlib :
Err:5 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 ruby2.5 amd64 2.5.1-1ubuntu1.1 404 Not Found [IP: 91.189.88.162 80] Get:16 http://archive.ubuntu.com/ubuntu bionic/universe amd64 texlive-latex-extra all 2017.20180305-2 [10.6 MB] Err:13 http://security.ubuntu.com/ubuntu bionic-updates/main amd64 libruby2.5 amd64 2.5.1-1ubuntu1.1 404 Not Found [IP: 91.189.88.162 80] Get:17 http://archive.ubuntu.com/ubuntu bionic/universe amd64 texlive-plain-generic all 2017.20180305-2 [23.6 MB] Fetched 41.5 MB in 4s (11.3 MB/s)
et essayez de l'exécuter dans un bloc-notes Google Colab, cela produira un gros stacktrace avec le message suivant à la fin:
! sudo apt-get install texlive-latex-recommended
Pourquoi cela se produit et comment puis-je résoudre ce problème?
Mes tentatives:
Je pensais que cette erreur pouvait se produire car latex manquait dans la VM de service, alors j'ai essayé d'installer texlive avant d'importer matplotlib avec:
[Errno 2] No such file or directory: 'latex': 'latex'
Cela se termine avec succès. Cependant matplotlib se plaint d'un fichier latex * .sty manquant qui, après une recherche sur Google, devrait être contenu dans le paquet texlive-latex-extra
. Mais lors de l'installation du package supplémentaire, des erreurs se sont produites:
from matplotlib import rc rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']}) rc('text', usetex=True) import numpy as np import matplotlib.pyplot as plt # Example data t = np.arange(0.0, 1.0 + 0.01, 0.01) s = np.cos(4 * np.pi * t) + 2 plt.rc('text', usetex=True) plt.rc('font', family='serif') plt.plot(t, s) plt.xlabel(r'\textbf{time} (s)') plt.ylabel(r'\textit{voltage} (mV)',fontsize=16) plt.title(r"\TeX\ is Number " r"$\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!", fontsize=16, color='gray') # Make room for the ridiculously large title. plt.subplots_adjust(top=0.8) plt.savefig('tex_demo') plt.show()
Je ne peux donc pas terminer l'installation de texlive-latex-extra
. Comment puis-je procéder?
3 Réponses :
C'est donc une solution très piratée, mais je l'ai fait fonctionner au moins. Le problème était en effet le paquet texlive manquant. Après avoir installé texlive-latex-recommended
, il faut encore un fichier type1cm.sty
pour que l'exemple matplotlib fonctionne. Étant donné que le package supplémentaire n'a pas pu être installé facilement, j'ai installé manuellement le package type1cm. Pour ce faire, j'ai exécuté les commandes suivantes avant d'importer matplotlib:
! sudo apt-get install texlive-latex-recommended #1 ! sudo apt-get install dvipng texlive-fonts-recommended #2 ! wget http://mirrors.ctan.org/macros/latex/contrib/type1cm.zip #3 ! unzip type1cm.zip -d /tmp/type1cm #4 ! cd /tmp/type1cm/type1cm/ && sudo latex type1cm.ins #5 ! sudo mkdir /usr/share/texmf/tex/latex/type1cm #6 ! sudo cp /tmp/type1cm/type1cm/type1cm.sty /usr/share/texmf/tex/latex/type1cm #7 ! sudo texhash #8
Ces commandes feront ce qui suit:
type1cm
depuis ctan latex
sur le fichier type1cm.ins
. Notez que fournir le chemin directement à la commande latex n'a pas fonctionné. Les commandes cd
et latex
doivent également être exécutées dans la même ligne (derrière le même symbole!), Sinon le cd n'a aucun effet Ressources :
Comment installer type1cm
Où placer les fichiers * .sty dans l'installation texlive Linux
En fait, il existe une solution plus simple, qui nécessite moins de passages par rapport à la réponse proposée par @ v.tralala. Il suffit en effet d'installer les packages ubuntu contenant les fichiers .sty requis, que dans ce cas sont texlive-latex-extra
et dvipng
. Faites donc les installations suivantes:
! sudo apt-get install texlive-latex-recommended ! sudo apt install texlive-latex-extra ! sudo apt install dvipng
Pour trouver un package ubuntu contenant un fichier .sty spécifique, consultez: https://tex.stackexchange.com/questions/39771/finding-a-ubuntu-package-for-a-sty-file
Fondamentalement, le problème est que type1cm
et type1em
ne sont pas installés par défaut avec matplotlib dans l'environnement colab. Plus d'informations sur ce problème ici: https://github.com/matplotlib/matplotlib/issues/17412
import matplotlib from matplotlib import rc import matplotlib.pyplot as plt %matplotlib inline rc('text', usetex=True) matplotlib.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}'] !apt install texlive-fonts-recommended texlive-fonts-extra cm-super dvipng
Le type1cm
fait partie de texlive-fonts-extra
et type1ec
fait partie de cm-super
.
Donc, pour configurer latex dans matplotlib, vous devriez avoir ce bloc dans votre notebook colab: p>
!apt install texlive-fonts-recommended texlive-fonts-extra cm-super dvipng