Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Open
Description
Bug summary
FigureCanvasPgf
does not usexelatex
but usespdflatex
.
Code for reproduction
"""============PGF preamblemodified from the official example:https://matplotlib.org/stable/users/explain/text/pgf.html#custom-preamble============"""importmatplotlibasmplimportmatplotlib.pyplotasplt# "The last method allows you to keep using regular interactive backends and to save xelatex, lualatex or pdflatex compiled PDF files from the graphical user interface." said by tutorialfrommatplotlib.backends.backend_pgfimportFigureCanvasPgfmpl.backend_bases.register_backend("pdf",FigureCanvasPgf)# mpl.use("pgf") # uncomment to work!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.preamble":"\n".join( [r"\usepackage{url}",# load additional packagesr"\usepackage{unicode-math}",# unicode math setupr"\setmainfont{DejaVu Serif}",# serif font via preamble ] ), })fig,ax=plt.subplots(figsize=(4.5,2.5))ax.plot(range(5))ax.set_xlabel("unicode text: я, ψ, €, ü")ax.set_ylabel(r"\url{https://matplotlib.org}")ax.legend(["unicode math: $λ=∑_i^∞ μ_i^2$"])fig.tight_layout(pad=0.5)plt.show()
Actual outcome
RuntimeError:latex was not able to process the following string:b'unicode text: \\u044f, \\u03c8, \\u20ac, \\xfc'Here is the full command invocation and its output:latex -interaction=nonstopmode --halt-on-error --output-directory=tmpsm7x8wc7 077a9af4443e140dcb75f16b8d670c44.texThis is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024[/Arch](http://localhost:8888/Arch) Linux) (preloaded format=latex) restricted \write18 enabled.
RuntimeError:latex was not able to process the following string:b'unicode text: \\u044f, \\u03c8, \\u20ac, \\xfc'Here is the full command invocation and its output:latex -interaction=nonstopmode --halt-on-error --output-directory=tmpsm7x8wc7 077a9af4443e140dcb75f16b8d670c44.texThis is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024[/Arch](http://localhost:8888/Arch) Linux) (preloaded format=latex) restricted \write18 enabled.
---------------------------------------------------------------------------RuntimeError Traceback (most recent call last)Cell In[1], line 3734 ax.set_ylabel(r"\url{https://matplotlib.org}")35 ax.legend(["unicode math: $λ=∑_i^∞ μ_i^2$"])---> 37 fig.tight_layout(pad=0.5)38 plt.show()39# fig.savefig("/tmp/test.pdf")File [~/mambaforge/lib/python3.11/site-packages/matplotlib/figure.py:3540](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/figure.py#line=3539), in Figure.tight_layout(self, pad, h_pad, w_pad, rect) 3538 previous_engine = self.get_layout_engine() 3539 self.set_layout_engine(engine)-> 3540 engine.execute(self) 3541 if previous_engine is not None and not isinstance( 3542 previous_engine, (TightLayoutEngine, PlaceHolderLayoutEngine) 3543 ): 3544 _api.warn_external('The figure layout has changed to tight')File [~/mambaforge/lib/python3.11/site-packages/matplotlib/layout_engine.py:183](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/layout_engine.py#line=182), in TightLayoutEngine.execute(self, fig)181 renderer= fig._get_renderer()182withgetattr(renderer,"_draw_disabled", nullcontext)():--> 183 kwargs = get_tight_layout_figure(184 fig, fig.axes, get_subplotspec_list(fig.axes), renderer,185 pad=info['pad'], h_pad=info['h_pad'], w_pad=info['w_pad'],186 rect=info['rect'])187if kwargs:188 fig.subplots_adjust(**kwargs)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/_tight_layout.py:266](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/_tight_layout.py#line=265), in get_tight_layout_figure(fig, axes_list, subplotspec_list, renderer, pad, h_pad, w_pad, rect)261return {}262 span_pairs.append((263slice(ss.rowspan.start* div_row, ss.rowspan.stop* div_row),264slice(ss.colspan.start* div_col, ss.colspan.stop* div_col)))--> 266 kwargs = _auto_adjust_subplotpars(fig, renderer,267 shape=(max_nrows, max_ncols),268 span_pairs=span_pairs,269 subplot_list=subplot_list,270 ax_bbox_list=ax_bbox_list,271 pad=pad, h_pad=h_pad, w_pad=w_pad)273# kwargs can be none if tight_layout fails...274if rectisnotNoneand kwargsisnotNone:275# if rect is given, the whole subplots area (including276# labels) will fit into the rect instead of the (...)280# auto_adjust_subplotpars twice, where the second run281# with adjusted rect parameters.File [~/mambaforge/lib/python3.11/site-packages/matplotlib/_tight_layout.py:82](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/_tight_layout.py#line=81), in _auto_adjust_subplotpars(fig, renderer, shape, span_pairs, subplot_list, ax_bbox_list, pad, h_pad, w_pad, rect)80for axin subplots:81if ax.get_visible():---> 82 bb += [martist._get_tightbbox_for_layout_only(ax, renderer)]84 tight_bbox_raw= Bbox.union(bb)85 tight_bbox= fig.transFigure.inverted().transform_bbox(tight_bbox_raw)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:1411](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=1410), in _get_tightbbox_for_layout_only(obj, *args, **kwargs) 1405 """ 1406 Matplotlib's `.Axes.get_tightbbox` and `.Axis.get_tightbbox` support a 1407 *for_layout_only* kwarg; this helper tries to use the kwarg but skips it 1408 when encountering third-party subclasses that do not support it. 1409 """ 1410 try:-> 1411 return obj.get_tightbbox(*args, **{**kwargs, "for_layout_only": True}) 1412 except TypeError: 1413 return obj.get_tightbbox(*args, **kwargs)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/_api/deprecation.py:454](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/_api/deprecation.py#line=453), in make_keyword_only.<locals>.wrapper(*args, **kwargs)448iflen(args)> name_idx:449 warn_deprecated(450 since, message="Passing the%(name)s%(obj_type)s"451"positionally is deprecated since Matplotlib%(since)s; the"452"parameter will become keyword-only%(removal)s.",453 name=name, obj_type=f"parameter of{func.__name__}()")--> 454 return func(*args, **kwargs)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/axes/_base.py:4395](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/axes/_base.py#line=4394), in _AxesBase.get_tightbbox(self, renderer, call_axes_locator, bbox_extra_artists, for_layout_only) 4393 for axis in self._axis_map.values(): 4394 if self.axison and axis.get_visible():-> 4395 ba = martist._get_tightbbox_for_layout_only(axis, renderer) 4396 if ba: 4397 bb.append(ba)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:1411](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=1410), in _get_tightbbox_for_layout_only(obj, *args, **kwargs) 1405 """ 1406 Matplotlib's `.Axes.get_tightbbox` and `.Axis.get_tightbbox` support a 1407 *for_layout_only* kwarg; this helper tries to use the kwarg but skips it 1408 when encountering third-party subclasses that do not support it. 1409 """ 1410 try:-> 1411 return obj.get_tightbbox(*args, **{**kwargs, "for_layout_only": True}) 1412 except TypeError: 1413 return obj.get_tightbbox(*args, **kwargs)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/axis.py:1352](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/axis.py#line=1351), in Axis.get_tightbbox(self, renderer, for_layout_only) 1350 # take care of label 1351 if self.label.get_visible():-> 1352 bb = self.label.get_window_extent(renderer) 1353 # for constrained[/tight_layout](http://localhost:8888/tight_layout), we want to ignore the label's 1354 # width[/height](http://localhost:8888/height) because the adjustments they make can't be improved. 1355 # this code collapses the relevant direction 1356 if for_layout_only:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:956](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=955), in Text.get_window_extent(self, renderer, dpi)951raiseRuntimeError(952"Cannot get window extent of text w[/o](http://localhost:8888/o) renderer. You likely"953"want to call 'figure.draw_without_rendering()' first.")955with cbook._setattr_cm(self.figure,dpi=dpi):--> 956 bbox, info, descent = self._get_layout(self._renderer)957 x, y=self.get_unitless_position()958 x, y=self.get_transform().transform((x, y))File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:381](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=380), in Text._get_layout(self, renderer)379 clean_line, ismath=self._preprocess_math(line)380if clean_line:--> 381 w, h, d = _get_text_metrics_with_cache(382 renderer, clean_line,self._fontproperties,383 ismath=ismath, dpi=self.figure.dpi)384else:385 w= h= d=0File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:69](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=68), in _get_text_metrics_with_cache(renderer, text, fontprop, ismath, dpi)66"""Call ``renderer.get_text_width_height_descent``, caching the results."""67# Cached based on a copy of fontprop so that later in-place mutations of68# the passed-in argument do not mess up the cache.---> 69 return _get_text_metrics_with_cache_impl(70 weakref.ref(renderer), text, fontprop.copy(), ismath, dpi)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:77](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=76), in _get_text_metrics_with_cache_impl(renderer_ref, text, fontprop, ismath, dpi)73@functools.lru_cache(4096)74def_get_text_metrics_with_cache_impl(75 renderer_ref, text, fontprop, ismath, dpi):76# dpi is unused, but participates in cache invalidation (via the renderer).---> 77 return renderer_ref().get_text_width_height_descent(text, fontprop, ismath)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py:213](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py#line=212), in RendererAgg.get_text_width_height_descent(self, s, prop, ismath)211 _api.check_in_list(["TeX",True,False],ismath=ismath)212if ismath=="TeX":--> 213 return super().get_text_width_height_descent(s, prop, ismath)215if ismath:216 ox, oy, width, height, descent, font_image= \217self.mathtext_parser.parse(s,self.dpi, prop)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py:652](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py#line=651), in RendererBase.get_text_width_height_descent(self, s, prop, ismath)648 fontsize= prop.get_size_in_points()650if ismath=='TeX':651# todo: handle properties--> 652 return self.get_texmanager().get_text_width_height_descent(653 s, fontsize, renderer=self)655 dpi=self.points_to_pixels(72)656if ismath:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:363](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=362), in TexManager.get_text_width_height_descent(cls, tex, fontsize, renderer)361if tex.strip()=='':362return0,0,0--> 363 dvifile = cls.make_dvi(tex, fontsize)364 dpi_fraction= renderer.points_to_pixels(1.)if rendererelse1365with dviread.Dvi(dvifile,72* dpi_fraction)as dvi:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:295](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=294), in TexManager.make_dvi(cls, tex, fontsize)293with TemporaryDirectory(dir=cwd)as tmpdir:294 tmppath= Path(tmpdir)--> 295 cls._run_checked_subprocess(296 ["latex","-interaction=nonstopmode","--halt-on-error",297f"--output-directory={tmppath.name}",298f"{texfile.name}"], tex, cwd=cwd)299 (tmppath [/](http://localhost:8888/) Path(dvifile).name).replace(dvifile)300return dvifileFile [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:258](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=257), in TexManager._run_checked_subprocess(cls, command, tex, cwd)254raiseRuntimeError(255f'Failed to process string with tex because{command[0]}'256'could not be found')from exc257except subprocess.CalledProcessErroras exc:--> 258 raise RuntimeError(259'{prog} was not able to process the following string:\n'260'{tex!r}\n\n'261'Here is the full command invocation and its output:\n\n'262'{format_command}\n\n'263'{exc}\n\n'.format(264 prog=command[0],265 format_command=cbook._pformat_subprocess(command),266 tex=tex.encode('unicode_escape'),267 exc=exc.output.decode('utf-8','backslashreplace'))268 )fromNone269 _log.debug(report)270return reportRuntimeError:latex was not able to process the following string:b'unicode text: \\u044f, \\u03c8, \\u20ac, \\xfc'Here is the full command invocation and its output:latex -interaction=nonstopmode --halt-on-error --output-directory=tmpsm7x8wc7 077a9af4443e140dcb75f16b8d670c44.texThis is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024[/Arch](http://localhost:8888/Arch) Linux) (preloaded format=latex) restricted \write18 enabled.entering extended mode(./077a9af4443e140dcb75f16b8d670c44.texLaTeX2e <2023-11-01> patch level 1L3 programming layer <2024-02-20>([/usr/share/texmf-dist/tex/latex/base/article.cls](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/article.cls)Document Class: article 2023[/05/17](http://localhost:8888/05/17) v1.4n Standard LaTeX document class([/usr/share/texmf-dist/tex/latex/base/size10.clo](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/size10.clo)))([/usr/share/texmf-dist/tex/latex/type1cm/type1cm.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/type1cm/type1cm.sty))([/usr/share/texmf-dist/tex/latex/cm-super/type1ec.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/cm-super/type1ec.sty)([/usr/share/texmf-dist/tex/latex/base/t1cmr.fd](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/t1cmr.fd)))([/usr/share/texmf-dist/tex/latex/base/inputenc.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/inputenc.sty))([/usr/share/texmf-dist/tex/latex/geometry/geometry.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/geometry/geometry.sty)([/usr/share/texmf-dist/tex/latex/graphics/keyval.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/graphics/keyval.sty))([/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty](http://localhost:8888/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty)([/usr/share/texmf-dist/tex/generic/iftex/iftex.sty](http://localhost:8888/usr/share/texmf-dist/tex/generic/iftex/iftex.sty))))([/usr/share/texmf-dist/tex/latex/underscore/underscore.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/underscore/underscore.sty))([/usr/share/texmf-dist/tex/latex/firstaid/underscore-ltx.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/firstaid/underscore-ltx.sty))([/usr/share/texmf-dist/tex/latex/base/textcomp.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/textcomp.sty))([/usr/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def](http://localhost:8888/usr/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def))No file 077a9af4443e140dcb75f16b8d670c44.aux.*geometry* driver: auto-detecting*geometry* detected driver: dvips! LaTeX Error: Unicode character я (U+044F)notset upfor usewith LaTeX.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help. ... l.29 {\rmfamily unicode text: я , ψ, €, ü}%No pages of output.Transcript written on tmpsm7x8wc7[/077a9af4443e140dcb75f16b8d670c44.log.](http://localhost:8888/077a9af4443e140dcb75f16b8d670c44.log.)Error in callback <function _draw_all_if_interactive at 0x7feb602cc7c0> (for post_execute), with arguments args (),kwargs {}:---------------------------------------------------------------------------RuntimeError Traceback (most recent call last)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/pyplot.py:197](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/pyplot.py#line=196), in _draw_all_if_interactive()195def_draw_all_if_interactive() ->None:196if matplotlib.is_interactive():--> 197 draw_all()File [~/mambaforge/lib/python3.11/site-packages/matplotlib/_pylab_helpers.py:132](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/_pylab_helpers.py#line=131), in Gcf.draw_all(cls, force)130for managerincls.get_all_fig_managers():131if forceor manager.canvas.figure.stale:--> 132 manager.canvas.draw_idle()File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py:1893](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py#line=1892), in FigureCanvasBase.draw_idle(self, *args, **kwargs) 1891 if not self._is_idle_drawing: 1892 with self._idle_draw_cntx():-> 1893 self.draw(*args, **kwargs)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py:388](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py#line=387), in FigureCanvasAgg.draw(self)385# Acquire a lock on the shared font cache.386with (self.toolbar._wait_cursor_for_draw_cm()ifself.toolbar387else nullcontext()):--> 388 self.figure.draw(self.renderer)389# A GUI class may be need to update a window using this draw, so390# don't forget to call the superclass.391super().draw()File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:95](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=94), in _finalize_rasterization.<locals>.draw_wrapper(artist, renderer, *args, **kwargs)93@wraps(draw)94defdraw_wrapper(artist,renderer,*args,**kwargs):---> 95 result = draw(artist, renderer, *args, **kwargs)96if renderer._rasterizing:97 renderer.stop_rasterizing()File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/figure.py:3154](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/figure.py#line=3153), in Figure.draw(self, renderer) 3151 # ValueError can occur when resizing a window. 3153 self.patch.draw(renderer)-> 3154 mimage._draw_list_compositing_images( 3155 renderer, self, artists, self.suppressComposite) 3157 for sfig in self.subfigs: 3158 sfig.draw(renderer)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/image.py:132](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/image.py#line=131), in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)130if not_compositeornot has_images:131for ain artists:--> 132 a.draw(renderer)133else:134# Composite any adjacent images together135 image_group= []File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/axes/_base.py:3070](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/axes/_base.py#line=3069), in _AxesBase.draw(self, renderer) 3067 if artists_rasterized: 3068 _draw_rasterized(self.figure, artists_rasterized, renderer)-> 3070 mimage._draw_list_compositing_images( 3071 renderer, self, artists, self.figure.suppressComposite) 3073 renderer.close_group('axes') 3074 self.stale = FalseFile [~/mambaforge/lib/python3.11/site-packages/matplotlib/image.py:132](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/image.py#line=131), in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)130if not_compositeornot has_images:131for ain artists:--> 132 a.draw(renderer)133else:134# Composite any adjacent images together135 image_group= []File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/axis.py:1395](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/axis.py#line=1394), in Axis.draw(self, renderer, *args, **kwargs) 1393 # Shift label away from axes to avoid overlapping ticklabels. 1394 self._update_label_position(renderer)-> 1395 self.label.draw(renderer) 1397 self._update_offset_text_position(tlb1, tlb2) 1398 self.offsetText.set_text(self.major.formatter.get_offset())File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:748](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=747), in Text.draw(self, renderer)745 renderer.open_group('text',self.get_gid())747withself._cm_set(text=self._get_wrapped_text()):--> 748 bbox, info, descent = self._get_layout(renderer)749 trans=self.get_transform()751# don't use self.get_position here, which refers to text752# position in Text:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:381](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=380), in Text._get_layout(self, renderer)379 clean_line, ismath=self._preprocess_math(line)380if clean_line:--> 381 w, h, d = _get_text_metrics_with_cache(382 renderer, clean_line,self._fontproperties,383 ismath=ismath, dpi=self.figure.dpi)384else:385 w= h= d=0File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:69](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=68), in _get_text_metrics_with_cache(renderer, text, fontprop, ismath, dpi)66"""Call ``renderer.get_text_width_height_descent``, caching the results."""67# Cached based on a copy of fontprop so that later in-place mutations of68# the passed-in argument do not mess up the cache.---> 69 return _get_text_metrics_with_cache_impl(70 weakref.ref(renderer), text, fontprop.copy(), ismath, dpi)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:77](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=76), in _get_text_metrics_with_cache_impl(renderer_ref, text, fontprop, ismath, dpi)73@functools.lru_cache(4096)74def_get_text_metrics_with_cache_impl(75 renderer_ref, text, fontprop, ismath, dpi):76# dpi is unused, but participates in cache invalidation (via the renderer).---> 77 return renderer_ref().get_text_width_height_descent(text, fontprop, ismath)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py:213](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py#line=212), in RendererAgg.get_text_width_height_descent(self, s, prop, ismath)211 _api.check_in_list(["TeX",True,False],ismath=ismath)212if ismath=="TeX":--> 213 return super().get_text_width_height_descent(s, prop, ismath)215if ismath:216 ox, oy, width, height, descent, font_image= \217self.mathtext_parser.parse(s,self.dpi, prop)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py:652](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py#line=651), in RendererBase.get_text_width_height_descent(self, s, prop, ismath)648 fontsize= prop.get_size_in_points()650if ismath=='TeX':651# todo: handle properties--> 652 return self.get_texmanager().get_text_width_height_descent(653 s, fontsize, renderer=self)655 dpi=self.points_to_pixels(72)656if ismath:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:363](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=362), in TexManager.get_text_width_height_descent(cls, tex, fontsize, renderer)361if tex.strip()=='':362return0,0,0--> 363 dvifile = cls.make_dvi(tex, fontsize)364 dpi_fraction= renderer.points_to_pixels(1.)if rendererelse1365with dviread.Dvi(dvifile,72* dpi_fraction)as dvi:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:295](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=294), in TexManager.make_dvi(cls, tex, fontsize)293with TemporaryDirectory(dir=cwd)as tmpdir:294 tmppath= Path(tmpdir)--> 295 cls._run_checked_subprocess(296 ["latex","-interaction=nonstopmode","--halt-on-error",297f"--output-directory={tmppath.name}",298f"{texfile.name}"], tex, cwd=cwd)299 (tmppath [/](http://localhost:8888/) Path(dvifile).name).replace(dvifile)300return dvifileFile [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:258](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=257), in TexManager._run_checked_subprocess(cls, command, tex, cwd)254raiseRuntimeError(255f'Failed to process string with tex because{command[0]}'256'could not be found')from exc257except subprocess.CalledProcessErroras exc:--> 258 raise RuntimeError(259'{prog} was not able to process the following string:\n'260'{tex!r}\n\n'261'Here is the full command invocation and its output:\n\n'262'{format_command}\n\n'263'{exc}\n\n'.format(264 prog=command[0],265 format_command=cbook._pformat_subprocess(command),266 tex=tex.encode('unicode_escape'),267 exc=exc.output.decode('utf-8','backslashreplace'))268 )fromNone269 _log.debug(report)270return reportRuntimeError:latex was not able to process the following string:b'unicode text: \\u044f, \\u03c8, \\u20ac, \\xfc'Here is the full command invocation and its output:latex -interaction=nonstopmode --halt-on-error --output-directory=tmpb6xko1st 077a9af4443e140dcb75f16b8d670c44.texThis is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024[/Arch](http://localhost:8888/Arch) Linux) (preloaded format=latex) restricted \write18 enabled.entering extended mode(./077a9af4443e140dcb75f16b8d670c44.texLaTeX2e <2023-11-01> patch level 1L3 programming layer <2024-02-20>([/usr/share/texmf-dist/tex/latex/base/article.cls](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/article.cls)Document Class: article 2023[/05/17](http://localhost:8888/05/17) v1.4n Standard LaTeX document class([/usr/share/texmf-dist/tex/latex/base/size10.clo](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/size10.clo)))([/usr/share/texmf-dist/tex/latex/type1cm/type1cm.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/type1cm/type1cm.sty))([/usr/share/texmf-dist/tex/latex/cm-super/type1ec.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/cm-super/type1ec.sty)([/usr/share/texmf-dist/tex/latex/base/t1cmr.fd](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/t1cmr.fd)))([/usr/share/texmf-dist/tex/latex/base/inputenc.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/inputenc.sty))([/usr/share/texmf-dist/tex/latex/geometry/geometry.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/geometry/geometry.sty)([/usr/share/texmf-dist/tex/latex/graphics/keyval.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/graphics/keyval.sty))([/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty](http://localhost:8888/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty)([/usr/share/texmf-dist/tex/generic/iftex/iftex.sty](http://localhost:8888/usr/share/texmf-dist/tex/generic/iftex/iftex.sty))))([/usr/share/texmf-dist/tex/latex/underscore/underscore.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/underscore/underscore.sty))([/usr/share/texmf-dist/tex/latex/firstaid/underscore-ltx.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/firstaid/underscore-ltx.sty))([/usr/share/texmf-dist/tex/latex/base/textcomp.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/textcomp.sty))([/usr/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def](http://localhost:8888/usr/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def))No file 077a9af4443e140dcb75f16b8d670c44.aux.*geometry* driver: auto-detecting*geometry* detected driver: dvips! LaTeX Error: Unicode character я (U+044F)notset upfor usewith LaTeX.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help. ... l.29 {\rmfamily unicode text: я , ψ, €, ü}%No pages of output.Transcript written on tmpb6xko1st[/077a9af4443e140dcb75f16b8d670c44.log.](http://localhost:8888/077a9af4443e140dcb75f16b8d670c44.log.)---------------------------------------------------------------------------RuntimeError Traceback (most recent call last)File [~/mambaforge/lib/python3.11/site-packages/IPython/core/formatters.py:343](http://localhost:8888/mambaforge/lib/python3.11/site-packages/IPython/core/formatters.py#line=342), in BaseFormatter.__call__(self, obj)341pass342else:--> 343 return printer(obj)344# Finally look for special method names345 method= get_real_method(obj,self.print_method)File [~/mambaforge/lib/python3.11/site-packages/IPython/core/pylabtools.py:152](http://localhost:8888/mambaforge/lib/python3.11/site-packages/IPython/core/pylabtools.py#line=151), in print_figure(fig, fmt, bbox_inches, base64, **kwargs)149from matplotlib.backend_basesimport FigureCanvasBase150 FigureCanvasBase(fig)--> 152 fig.canvas.print_figure(bytes_io, **kw)153 data= bytes_io.getvalue()154if fmt=='svg':File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py:2164](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py#line=2163), in FigureCanvasBase.print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs) 2161 # we do this instead of `self.figure.draw_without_rendering` 2162 # so that we can inject the orientation 2163 with getattr(renderer, "_draw_disabled", nullcontext)():-> 2164 self.figure.draw(renderer) 2165 if bbox_inches: 2166 if bbox_inches == "tight":File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:95](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=94), in _finalize_rasterization.<locals>.draw_wrapper(artist, renderer, *args, **kwargs)93@wraps(draw)94defdraw_wrapper(artist,renderer,*args,**kwargs):---> 95 result = draw(artist, renderer, *args, **kwargs)96if renderer._rasterizing:97 renderer.stop_rasterizing()File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/figure.py:3154](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/figure.py#line=3153), in Figure.draw(self, renderer) 3151 # ValueError can occur when resizing a window. 3153 self.patch.draw(renderer)-> 3154 mimage._draw_list_compositing_images( 3155 renderer, self, artists, self.suppressComposite) 3157 for sfig in self.subfigs: 3158 sfig.draw(renderer)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/image.py:132](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/image.py#line=131), in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)130if not_compositeornot has_images:131for ain artists:--> 132 a.draw(renderer)133else:134# Composite any adjacent images together135 image_group= []File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/axes/_base.py:3070](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/axes/_base.py#line=3069), in _AxesBase.draw(self, renderer) 3067 if artists_rasterized: 3068 _draw_rasterized(self.figure, artists_rasterized, renderer)-> 3070 mimage._draw_list_compositing_images( 3071 renderer, self, artists, self.figure.suppressComposite) 3073 renderer.close_group('axes') 3074 self.stale = FalseFile [~/mambaforge/lib/python3.11/site-packages/matplotlib/image.py:132](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/image.py#line=131), in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)130if not_compositeornot has_images:131for ain artists:--> 132 a.draw(renderer)133else:134# Composite any adjacent images together135 image_group= []File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/axis.py:1395](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/axis.py#line=1394), in Axis.draw(self, renderer, *args, **kwargs) 1393 # Shift label away from axes to avoid overlapping ticklabels. 1394 self._update_label_position(renderer)-> 1395 self.label.draw(renderer) 1397 self._update_offset_text_position(tlb1, tlb2) 1398 self.offsetText.set_text(self.major.formatter.get_offset())File [~/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py:72](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/artist.py#line=71), in allow_rasterization.<locals>.draw_wrapper(artist, renderer)69if artist.get_agg_filter()isnotNone:70 renderer.start_filter()---> 72 return draw(artist, renderer)73finally:74if artist.get_agg_filter()isnotNone:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:748](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=747), in Text.draw(self, renderer)745 renderer.open_group('text',self.get_gid())747withself._cm_set(text=self._get_wrapped_text()):--> 748 bbox, info, descent = self._get_layout(renderer)749 trans=self.get_transform()751# don't use self.get_position here, which refers to text752# position in Text:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:381](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=380), in Text._get_layout(self, renderer)379 clean_line, ismath=self._preprocess_math(line)380if clean_line:--> 381 w, h, d = _get_text_metrics_with_cache(382 renderer, clean_line,self._fontproperties,383 ismath=ismath, dpi=self.figure.dpi)384else:385 w= h= d=0File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:69](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=68), in _get_text_metrics_with_cache(renderer, text, fontprop, ismath, dpi)66"""Call ``renderer.get_text_width_height_descent``, caching the results."""67# Cached based on a copy of fontprop so that later in-place mutations of68# the passed-in argument do not mess up the cache.---> 69 return _get_text_metrics_with_cache_impl(70 weakref.ref(renderer), text, fontprop.copy(), ismath, dpi)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/text.py:77](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/text.py#line=76), in _get_text_metrics_with_cache_impl(renderer_ref, text, fontprop, ismath, dpi)73@functools.lru_cache(4096)74def_get_text_metrics_with_cache_impl(75 renderer_ref, text, fontprop, ismath, dpi):76# dpi is unused, but participates in cache invalidation (via the renderer).---> 77 return renderer_ref().get_text_width_height_descent(text, fontprop, ismath)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py:213](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backends/backend_agg.py#line=212), in RendererAgg.get_text_width_height_descent(self, s, prop, ismath)211 _api.check_in_list(["TeX",True,False],ismath=ismath)212if ismath=="TeX":--> 213 return super().get_text_width_height_descent(s, prop, ismath)215if ismath:216 ox, oy, width, height, descent, font_image= \217self.mathtext_parser.parse(s,self.dpi, prop)File [~/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py:652](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/backend_bases.py#line=651), in RendererBase.get_text_width_height_descent(self, s, prop, ismath)648 fontsize= prop.get_size_in_points()650if ismath=='TeX':651# todo: handle properties--> 652 return self.get_texmanager().get_text_width_height_descent(653 s, fontsize, renderer=self)655 dpi=self.points_to_pixels(72)656if ismath:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:363](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=362), in TexManager.get_text_width_height_descent(cls, tex, fontsize, renderer)361if tex.strip()=='':362return0,0,0--> 363 dvifile = cls.make_dvi(tex, fontsize)364 dpi_fraction= renderer.points_to_pixels(1.)if rendererelse1365with dviread.Dvi(dvifile,72* dpi_fraction)as dvi:File [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:295](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=294), in TexManager.make_dvi(cls, tex, fontsize)293with TemporaryDirectory(dir=cwd)as tmpdir:294 tmppath= Path(tmpdir)--> 295 cls._run_checked_subprocess(296 ["latex","-interaction=nonstopmode","--halt-on-error",297f"--output-directory={tmppath.name}",298f"{texfile.name}"], tex, cwd=cwd)299 (tmppath [/](http://localhost:8888/) Path(dvifile).name).replace(dvifile)300return dvifileFile [~/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py:258](http://localhost:8888/mambaforge/lib/python3.11/site-packages/matplotlib/texmanager.py#line=257), in TexManager._run_checked_subprocess(cls, command, tex, cwd)254raiseRuntimeError(255f'Failed to process string with tex because{command[0]}'256'could not be found')from exc257except subprocess.CalledProcessErroras exc:--> 258 raise RuntimeError(259'{prog} was not able to process the following string:\n'260'{tex!r}\n\n'261'Here is the full command invocation and its output:\n\n'262'{format_command}\n\n'263'{exc}\n\n'.format(264 prog=command[0],265 format_command=cbook._pformat_subprocess(command),266 tex=tex.encode('unicode_escape'),267 exc=exc.output.decode('utf-8','backslashreplace'))268 )fromNone269 _log.debug(report)270return reportRuntimeError:latex was not able to process the following string:b'unicode text: \\u044f, \\u03c8, \\u20ac, \\xfc'Here is the full command invocation and its output:latex -interaction=nonstopmode --halt-on-error --output-directory=tmp0lcpl6of 077a9af4443e140dcb75f16b8d670c44.texThis is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024[/Arch](http://localhost:8888/Arch) Linux) (preloaded format=latex) restricted \write18 enabled.entering extended mode(./077a9af4443e140dcb75f16b8d670c44.texLaTeX2e <2023-11-01> patch level 1L3 programming layer <2024-02-20>([/usr/share/texmf-dist/tex/latex/base/article.cls](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/article.cls)Document Class: article 2023[/05/17](http://localhost:8888/05/17) v1.4n Standard LaTeX document class([/usr/share/texmf-dist/tex/latex/base/size10.clo](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/size10.clo)))([/usr/share/texmf-dist/tex/latex/type1cm/type1cm.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/type1cm/type1cm.sty))([/usr/share/texmf-dist/tex/latex/cm-super/type1ec.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/cm-super/type1ec.sty)([/usr/share/texmf-dist/tex/latex/base/t1cmr.fd](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/t1cmr.fd)))([/usr/share/texmf-dist/tex/latex/base/inputenc.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/inputenc.sty))([/usr/share/texmf-dist/tex/latex/geometry/geometry.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/geometry/geometry.sty)([/usr/share/texmf-dist/tex/latex/graphics/keyval.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/graphics/keyval.sty))([/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty](http://localhost:8888/usr/share/texmf-dist/tex/generic/iftex/ifvtex.sty)([/usr/share/texmf-dist/tex/generic/iftex/iftex.sty](http://localhost:8888/usr/share/texmf-dist/tex/generic/iftex/iftex.sty))))([/usr/share/texmf-dist/tex/latex/underscore/underscore.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/underscore/underscore.sty))([/usr/share/texmf-dist/tex/latex/firstaid/underscore-ltx.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/firstaid/underscore-ltx.sty))([/usr/share/texmf-dist/tex/latex/base/textcomp.sty](http://localhost:8888/usr/share/texmf-dist/tex/latex/base/textcomp.sty))([/usr/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def](http://localhost:8888/usr/share/texmf-dist/tex/latex/l3backend/l3backend-dvips.def))No file 077a9af4443e140dcb75f16b8d670c44.aux.*geometry* driver: auto-detecting*geometry* detected driver: dvips! LaTeX Error: Unicode character я (U+044F)notset upfor usewith LaTeX.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help. ... l.29 {\rmfamily unicode text: я , ψ, €, ü}%No pages of output.Transcript written on tmp0lcpl6of[/077a9af4443e140dcb75f16b8d670c44.log.](http://localhost:8888/077a9af4443e140dcb75f16b8d670c44.log.)
Expected outcome
It should usexelatex
and works likempl.use("pgf")
, and then display the plot under the cell.
This works:
"""============PGF preamble============"""importmatplotlibasmplimportmatplotlib.pyplotaspltmpl.use("pgf")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.preamble":"\n".join( [r"\usepackage{url}",# load additional packagesr"\usepackage{unicode-math}",# unicode math setupr"\setmainfont{DejaVu Serif}",# serif font via preamble ] ), })fig,ax=plt.subplots(figsize=(4.5,2.5))ax.plot(range(5))ax.set_xlabel("unicode text: я, ψ, €, ü")ax.set_ylabel(r"\url{https://matplotlib.org}")ax.legend(["unicode math: $λ=∑_i^∞ μ_i^2$"])fig.tight_layout(pad=0.5)%matplotlibinline# magic code works as expect!plt.show()
Additional information
No response
Operating system
Arch
Matplotlib Version
3.8.4
Matplotlib Backend
module://matplotlib_inline.backend_inline
Python version
3.11.8
Jupyter version
4.1.6
Installation
conda
Metadata
Metadata
Assignees
Labels
No labels