Проблема латексной реализации с matplotlib / python: RuntimeError: Латексная команда не найдена - PullRequest
0 голосов
/ 23 января 2019

Я хочу использовать латекс для своих этикеток в моих рисунках matplotlib. Я использую Mac OS X и Тонни. Я скачал тестовую программу, но каждый раз получаю сообщение об ошибке:

RuntimeError: Латексная команда не найдена. Установите xelatex или измените pgf.texsystem на нужную команду.

Я думаю, что это ошибка пути ...

Я также пытался изменить путь

os.environ["PATH"] += os.pathsep + '/usr/local/texlive/2018/bin/x86_64-darwin'

Вместо этого я получаю эту ошибку:

kpathsea: make_tex: Неверное имя файла `DejaVu Serif ', содержит' ' /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) /Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/init.py:886: MatplotlibDeprecationWarning: examples.directory устарела; в будущем будут найдены примеры относительно каталога 'datapath'. msgstr "найдено относительно каталога 'datapath'.". формат (ключ)) Traceback (последний вызов был последним): Файл "/Users/Marten/Downloads/pgf_preamble_sgskip.py", строка 33, в plt.tight_layout (0,5) Файл "/Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/pyplot.py", строка 1382, влотная_слота gcf (). тесная_слуга (pad = pad, h_pad = h_pad, w_pad = w_pad, rect = rect) Файл "/Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/figure.py", строка 2370, влотный_слой renderer = get_renderer (self) Файл "/Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/tight_layout.py", строка 228, в get_renderer renderer = canvas.get_renderer ()Файл "/Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/backends/backend_pgf.py", строка 946, в get_renderer return RendererPgf (self.figure, None, dummy = True) Файл "/Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/backends/backend_pgf.py", строка 393, в init self.latexManager = LatexManagerFactory.get_latex_manager () Файл "/Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/backends/backend_pgf.py", строка 208, в get_latex_manager new_inst = LatexManager () Файл "/Users/Marten/Library/Python/3.7/lib/python/site-packages/matplotlib/backends/backend_pgf.py", строка 290, в init "или ошибка в преамбуле: \ n% s"% stdout) matplotlib.backends.backend_pgf.LatexError: LaTeX вернул ошибку, возможно, отсутствует шрифт или ошибка в преамбуле: b'Это XeTeX, версия 3.14159265-2.6-0.99999 (TeX Live 2018) (предварительно загруженный формат = xelatex) \ n ограничено \ write18 включено. \ n ** вход в расширенный режим \ nLaTeX2e <2018-04-01> уровень исправления 2 \ nBabel <3.18> и шаблоны переносов для 84 загруженных языков. \ n \ n * (/ usr / local / texlive / 2018 / texmf-dist / tex / latex / base / minimal.cls \ nДокумент класса: минимальный 2001 / 05/25 Стандартный минимальный класс LaTeX \ n) \ n * (/ usr / local / texlive / 2018 / texmf-dist / tex / latex / units / units.sty \ n (/ usr / local / texlive / 2018 / texmf- расстояние / текс / латекс / основание / ifthen.sty) \ п (/usr/local/texlive/2018/texmf-dist/tex/latex/units/nicefrac.sty)) \ п * (/ USR / местные / texlive / 2018 / TEXMF-расстояние / текс / латекс / metalogo / metalogo.sty \ п (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty\n (/ USR / местные / texlive / 2018 / TEXMF-расстояние / текс / латекс / графика / keyval.sty) \ п (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty\n (/ USR / местные / texlive /2018/texmf-dist/tex/latex/graphics/trig.sty)\n(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)\n(/ USR / местные / texlive / 2018 / TEXMF-расстояние / текс / латекс / графика четкости / xetex.def))) \ п (/ USR / местные / texlive / 2018 / TEXMF-расстояние / текс / общий / ifxetex / ifxetex. STY) \ п (/usr/local/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec.sty\n (/ USR / местные / texlive / 2018 / TEXMF-расстояние / текс / латекс / l3packages / xparse /xparse.sty\n(/usr/local/texlive/2018/texmf-dist/tex/latex/l3kernel/expl3.sty\n(/usr/local/texlive/2018/texmf-dist/tex/latex/l3kernel /expl3-code.tex)\n(/usr/local/texlive/2018/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def)))\n(/usr/local/texlive/2018/texmf-dist /tex/latex/fontspec/fontspec-xetex.sty\n(/usr/local/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty\n(/usr/local/texlive/2018/texmf -dist / текс / латекс / основание / tuenc.def)) \ п (/usr/local/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec.cfg)))) \ п * (/ USR / местный / texlive / 2018 / TEXMF-расстояние / текс / латекс / юникод-математический / юникод-math.sty \ п (/ USR / местная / texlive / 2018 / TEXMF-расстояние / текс / латекс / юникод-математика / юникод-математика -xetex.s \ nty \ п (/ USR / местные / texlive / 2018 / TEXMF-расстояние / текс / латекс / l3packages / l3key s2e / l3keys2e.sty) \ n (/usr/local/texlive/2018/texmf-dist/tex/latex/filehook/filehook.sty)\n(/usr/local/texlive/2018/texmf-dist/tex/ латекс / основание / FIX-cm.sty \ п (/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def)) \ п (/ USR / местные / texlive / 2018 / texmf- расстояние / текс / латекс / юникод-математика / юникод-математика-table.t \ пех))) \ п * \ п !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!! \ п! \ п! Ошибка fontspec: "font-not-found" \ n! \ П! Шрифт "DejaVu Serif" не найден. \ N! \ П! Смотрите дополнительную информацию в документации по fontspec. \ N! \ П! Для немедленной помощи наберите H. \ N! ......................................... ...... \ n \ n <*> \ setmainfont {DejaVu Serif} \ n \ nНет страниц вывода. \ nТекст, написанный на texput.log. \ n '

Тестовая программа:

import matplotlib as mpl
mpl.use("pgf")
import matplotlib.pyplot as plt
import os
os.environ["PATH"] += os.pathsep + '/usr/local/texlive/2018/bin/x86_64-darwin'

plt.rcParams.update({
    "font.family": "serif",  # use serif/main font for text elements
    "text.usetex": True,     # use inline math for ticks
    "pgf.rcfonts": False,    # don't setup fonts from rc parameters
    "pgf.texsystem" : "xelatex",
    "pgf.preamble": [
         "\\usepackage{units}",          # load additional packages
         "\\usepackage{metalogo}",
         "\\usepackage{unicode-math}",   # unicode math setup
         r"\setmathfont{xits-math.otf}",
         r"\setmainfont{DejaVu Serif}",  # serif font via preamble
         ]
})

plt.figure(figsize=(4.5, 2.5))
plt.plot(range(5))
plt.xlabel("unicode text: я, ψ, €, ü, \\unitfrac[10]{°}{µm}")
plt.ylabel("\\XeLaTeX")
plt.legend(["unicode math: $λ=∑_i^∞ μ_i^2$"])
plt.tight_layout(.5)

plt.savefig("pgf_preamble.pdf")
plt.savefig("pgf_preamble.png")

1 Ответ

0 голосов
/ 24 января 2019

Итак, я попробовал другую тестовую программу с plt.rc('text', usetex=True) и plt.rc('font', family='serif') без дополнительной преамбулы. И это работает, когда я добавляю путь os.environ["PATH"] += os.pathsep + '/usr/local/texlive/2018/bin/x86_64-darwin'. Так что проблема решается по-другому. - maden994 только что отредактировал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...