如果我从matplotlib website中获取包含乳胶的官方示例:
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'
为什么会发生这种情况,我该如何解决?
我的尝试:
我认为这个错误可能是因为服务VM中缺少latex,所以我尝试在导入matplotlib之前安装texlive:
! sudo apt-get install texlive-latex-recommended
此操作成功完成。然而matplotlib抱怨缺少一些latex *.sty文件,在谷歌搜索后,该文件应该包含在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
的安装。我该如何继续?
4条答案
按热度按时间vnjpjtjt1#
事实上,有一个更简单的解决方案,它需要更少的段落来回答@ v. tralala提出的答案。安装包含所需的.sty文件的ubuntu包就足够了,在本例中是
texlive-latex-extra
和dvipng
。因此,执行以下安装:要查找包含特定.sty文件的ubuntu软件包,请参阅:https://tex.stackexchange.com/questions/39771/finding-a-ubuntu-package-for-a-sty-file
bis0qfac2#
起因
基本上,问题是
type1cm
和type1em
在colab环境中没有默认安装matplotlib。更多关于这个问题在这里:https://github.com/matplotlib/matplotlib/issues/17412解决方案
type1cm
是texlive-fonts-extra
的一部分,type1ec
是cm-super
的一部分。所以要在matplotlib中设置latex,你应该在colab notebook中有这个块:
hgncfbus3#
所以这是一个非常黑客的解决方案,但我得到了它的工作至少。问题确实出在丢失的texlive软件包上。安装
texlive-latex-recommended
后,仍然需要一个type1cm.sty
文件,matplotlib示例才能工作。由于额外的包不能很容易地安装,我手动安装了type 1cm包。为了实现这一点,我在导入matplotlib之前执行了以下命令:这些命令将执行以下操作:
1.最小的texlive安装仍然工作
1.不确定这些包是否有必要,但不会伤害太多
1.从ctan官方下载
type1cm
软件包1.解压到/tmp/type 1cm
1.通过在
type1cm.ins
文件上运行latex
命令来安装软件包。请注意,直接提供latex命令的路径不起作用。此外,cd
和latex
命令必须在同一行中执行(在同一行后面)。符号),否则cd无效1.在texmf树中为type 1cm packge创建文件夹
1.复制.sty文件在那里
1.更新tex以便它找到新的包
资源:
How to install type1cm
Where to place *.sty files in Linux texlive install
2ul0zpep4#
我也遇到了同样的问题。我解决了它:sudo apt-get install cm-super dvipng