Я хочу использовать латекс для своих этикеток в моих рисунках 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")