Matplotlib:TexLive 安装不起作用

问题描述

我正在尝试在我的绘图中使用 Latex。但是,如果我使用 plt.rc('text',usetex=True),我收到以下错误

回溯(最近一次调用最后一次):

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\texmanager.py",line 277,in _run_checked_subprocess
   stderr=subprocess.STDOUT)

 File "C:\Users\Leo\anaconda3\lib\subprocess.py",line 411,in check_output
   **kwargs).stdout

 File "C:\Users\Leo\anaconda3\lib\subprocess.py",line 512,in run
   output=stdout,stderr=stderr)

CalledProcessError: Command '['latex','-interaction=nonstopmode','--halt-on-error','C:\\Users\\Leo\\.matplotlib\\tex.cache\\d97ff769cca1b07656427b11e7187cec.tex']' returned non-zero exit status 1.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):

 File "C:\Users\Leo\anaconda3\lib\site-packages\IPython\core\formatters.py",line 341,in __call__
   return printer(obj)

 File "C:\Users\Leo\anaconda3\lib\site-packages\IPython\core\pylabtools.py",line 248,in <lambda>
   png_formatter.for_type(figure,lambda fig: print_figure(fig,'png',**kwargs))

 File "C:\Users\Leo\anaconda3\lib\site-packages\IPython\core\pylabtools.py",line 132,in print_figure
   fig.canvas.print_figure(bytes_io,**kw)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\backend_bases.py",line 2193,in print_figure
   self.figure.draw(renderer)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\artist.py",line 41,in draw_wrapper
   return draw(artist,renderer,*args,**kwargs)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\figure.py",line 1864,in draw
   renderer,self,artists,self.suppressComposite)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\image.py",line 131,in _draw_list_compositing_images
   a.draw(renderer)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\artist.py",**kwargs)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\cbook\deprecation.py",in wrapper
   return func(*inner_args,**inner_kwargs)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\axes\_base.py",line 2747,in draw
   mimage._draw_list_compositing_images(renderer,artists)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\image.py",**kwargs)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\axis.py",line 1166,in draw
   renderer)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\axis.py",line 1092,in _get_tick_bBoxes
   for tick in ticks if tick.label1.get_visible()],File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\axis.py",in <listcomp>
   for tick in ticks if tick.label1.get_visible()],File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\text.py",line 900,in get_window_extent
   bBox,info,descent = self._get_layout(self._renderer)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\text.py",line 287,in _get_layout
   ismath="TeX" if self.get_usetex() else False)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py",line 228,in get_text_width_height_descent
   s,fontsize,renderer=self)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\texmanager.py",line 423,in get_text_width_height_descent
   dvifile = self.make_dvi(tex,fontsize)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\texmanager.py",line 311,in make_dvi
   texfile],tex)

 File "C:\Users\Leo\anaconda3\lib\site-packages\matplotlib\texmanager.py",line 290,in _run_checked_subprocess
   exc=exc.output.decode('utf-8'))) from exc

RuntimeError: latex was not able to process the following string:
b'lp'

Here is the full report generated by latex:
Failed to create process. 

我已经安装了 TexLive 并且可以通过键入 latex 从命令提示调用它。它位于文件夹中 C:\texlive

我之前安装了 MikTex 并且已经尝试解决这个问题好几个小时了,请帮帮我!

解决方法

除了(有效的)LaTeX 安装之外,您还需要 dvipng(您可以检查它是否包含在您的 TexLive 发行版中,否则下载它)和 Ghostscript(版本 9.0或以后)。这三个组件的所有二进制文件需要位于您的 PATH 变量中。由于您指出您可以从提示中调用 latex,因此您的 PATH 中似乎已经有了这个。

我建议您检查您的系统上是否有 (1) 正确的 dvipngGhostscript 二进制文件,以及 (2) 它们是否位于您的 PATH 上。>

如果这些都没有帮助,您可以查看 matplotlib usetex documentation page。在页面底部附近,您可以找到两个部分(“可能的挂断”和“疑难解答”),它们可能对您有进一步的帮助。