Closed as not planned
Description
In LaTeX, the third parameter (bar thickness) to genfrac
requires a unit, but Matplotlib's mathtext parser does not accept it. This causes an inconsistency in the docs between Matplotlib and LaTeX, cf https://github.com/matplotlib/matplotlib/pull/18948/files#diff-9d1b2ab4b8a5e77dc635425c7e7ec00af5667d684d0809e46a973185e8f9918fR97
Code for reproduction
import matplotlib.pyplot as plt
plt.text(0, 0, r'$\genfrac{(}{)}{3pt}{0}{foo}{bar}$')
plt.draw()
Actual outcome
Traceback (most recent call last):
File "/usr/lib64/python3.8/tkinter/__init__.py", line 1883, in __call__
return self.func(*args)
File "/usr/lib64/python3.8/tkinter/__init__.py", line 804, in callit
func(*args)
File "/usr/lib64/python3.8/site-packages/matplotlib/backends/_backend_tk.py", line 270, in idle_draw
self.draw()
File "/usr/lib64/python3.8/site-packages/matplotlib/backends/backend_tkagg.py", line 9, in draw
super(FigureCanvasTkAgg, self).draw()
File "/usr/lib64/python3.8/site-packages/matplotlib/backends/backend_agg.py", line 393, in draw
self.figure.draw(self.renderer)
File "/usr/lib64/python3.8/site-packages/matplotlib/artist.py", line 38, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/lib64/python3.8/site-packages/matplotlib/figure.py", line 1735, in draw
mimage._draw_list_compositing_images(
File "/usr/lib64/python3.8/site-packages/matplotlib/image.py", line 137, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/lib64/python3.8/site-packages/matplotlib/artist.py", line 38, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/lib64/python3.8/site-packages/matplotlib/axes/_base.py", line 2630, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/usr/lib64/python3.8/site-packages/matplotlib/image.py", line 137, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/lib64/python3.8/site-packages/matplotlib/artist.py", line 38, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/lib64/python3.8/site-packages/matplotlib/text.py", line 685, in draw
bbox, info, descent = textobj._get_layout(renderer)
File "/usr/lib64/python3.8/site-packages/matplotlib/text.py", line 299, in _get_layout
w, h, d = renderer.get_text_width_height_descent(
File "/usr/lib64/python3.8/site-packages/matplotlib/backends/backend_agg.py", line 209, in get_text_width_height_descent
self.mathtext_parser.parse(s, self.dpi, prop)
File "/usr/lib64/python3.8/site-packages/matplotlib/mathtext.py", line 3354, in parse
box = self._parser.parse(s, font_output, fontsize, dpi)
File "/usr/lib64/python3.8/site-packages/matplotlib/mathtext.py", line 2583, in parse
raise ValueError("\n".join(["",
ValueError:
\genfrac{(}{)}{3pt}{0}{foo}{bar}
^
Expected \genfrac{ldelim}{rdelim}{rulesize}{style}{num}{den}, found '{' (at char 8), (line:1, col:9)
Expected outcome
Draws as if passing 3
instead of 3pt
, though possibly slightly different spacing, as I'm not sure in what unit we treat the 3 right now.