LINUX.ORG.RU

matplotlib+tex missing font metrics file: lass0800

 ,


1

1

Вроде и texlive-full (2017.20170818-1) установлен, matplotlib версии 2.0.0+dfsg1-2+b1 ругается при рисовании:

import matplotlib
matplotlib.rcParams.update({'font.size': 8})
import matplotlib.pyplot as plt
from matplotlib import rc;
rc("text"	,usetex=True)
rc('text.latex',unicode=True)
rc("text.latex",preamble=r"\usepackage{amsmath}\usepackage{amssymb}")
rc('text.latex',preamble=r'\usepackage[utf8]{inputenc}')
rc('text.latex',preamble=r'\usepackage[russian]{babel}')
...
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1,xlabel=r"$\phi,\,\textrm{kV}$",ylabel=r"$q\left(\phi\right),\,\textrm{charge units}$")
ругань:
  File "/usr/lib/python3/dist-packages/matplotlib/dviread.py", line 394, in _fnt_def
    raise error_class("missing font metrics file: %s" % fontname)
FileNotFoundError: missing font metrics file: lass0800
На другом компьютере всё ок. WAT и ЧЯДНТ? Алсо, а можно ли в матплотлибе использовать xetex что бы не иметь всего этого идиотизма со шрифтами?

★★★★★

Можно, например, так:

import matplotlib as mpl
mpl.use('pgf')

import matplotlib.pyplot as plt

pgf_options = {
    "text.usetex": True,
    "pgf.texsystem": "lualatex",
    "pgf.rcfonts": False,
    "pgf.preamble": [
        r"\usepackage{amsmath,amssymb}",
        r"\usepackage{fontspec}",
        r"\setmainfont{CMU Serif}",
        r"\usepackage[russian]{babel}"
        ]
    }

mpl.rcParams.update(pgf_options)

fig = plt.figure()
ax1 = fig.add_subplot(1,1,1,xlabel=r"$\phi,\,\textrm{kV}$",
                      ylabel=r"$q(\phi),\,\textrm{charge units}$")
fig.savefig('tex-demo')
(lualatex можно заменить на xelatex, мне просто так больше нравится.)

TeopeTuK ★★ ()