Уравнения LaTeX не отображаются в Google Colab Laboratory при использовании matplotlib - PullRequest
0 голосов
/ 18 апреля 2019

Если я возьму официальный пример с латексом с сайта matplotlib :

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()

и попробуйте запустить его в блокноте Google Colab, он выдаст большую трассировку стека со следующим сообщением в конце:

 [Errno 2] No such file or directory: 'latex': 'latex'

Почему это происходит и как я могу это исправить?

Мои попытки:
Я думал, что эта ошибка может произойти, потому что латекс отсутствует в обслуживающей виртуальной машине, поэтому я попытался установить texlive перед импортом matplotlib с помощью:

! sudo apt-get install texlive-latex-recommended 

Это заканчивается успешно. Однако matplotlib жалуется на некоторые отсутствующие файлы латекса * .sty, которые после поиска в Google должны содержаться в пакете texlive-latex-extra. Но при установке дополнительного пакета произошли некоторые ошибки:

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)

Так что я не могу закончить установку texlive-latex-extra. Как я могу продолжить?

1 Ответ

0 голосов
/ 18 апреля 2019

Так что это очень хакерское решение, но я заставил его работать по крайней мере.Проблема действительно заключалась в отсутствии текстильной упаковки.После установки texlive-latex-recommended для работы примера matplotlib по-прежнему нужен файл type1cm.sty.Поскольку дополнительный пакет не мог быть легко установлен, я вручную установил пакет type1cm.Чтобы достичь этого, перед импортом 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

Эти команды будут выполнять следующие действия:

  1. минимальная установка texlive, которая все еще работает
  2. не уверенесли эти пакеты необходимы, но не повредит многим
  3. , скачайте type1cm пакет из ctan официально
  4. распакуйте в / tmp / type1cm
  5. установите пакет, запустив latexкоманда в файле type1cm.ins.Обратите внимание, что указание пути непосредственно к команде latex не сработало.Также команды cd и latex должны выполняться в одной строке (за тем же символом!), В противном случае компакт-диск не действует
  6. создать папку для пакета type1cm в дереве texmf
  7. скопируйте туда .sty файл
  8. обновите tex, чтобы он нашел новый пакет

Resources :
Как установить type1cm
Где разместить * .sty файлы в Linux texlive install

...