Skip to content

Commit d3d7acb

Browse files
committed
Add text.parse_math rcParams
1 parent 45d26c5 commit d3d7acb

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

lib/matplotlib/mpl-data/matplotlibrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,8 @@
296296
# Values other than 0 or 6 have no defined meaning.
297297
#text.antialiased: True # If True (default), the text will be antialiased.
298298
# This only affects raster outputs.
299+
#text.parse_math: True # Use mathtext if there is an even number of unescaped
300+
# dollar signs.
299301

300302

301303
## ***************************************************************************

lib/matplotlib/rcsetup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,6 +918,7 @@ def _convert_validator_spec(key, conv):
918918
"text.hinting_factor": validate_int,
919919
"text.kerning_factor": validate_int,
920920
"text.antialiased": validate_bool,
921+
"text.parse_math": validate_bool,
921922

922923
"mathtext.cal": validate_font_properties,
923924
"mathtext.rm": validate_font_properties,

lib/matplotlib/tests/test_text.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,20 @@ def test_parse_math():
755755
fig.canvas.draw()
756756

757757

758+
def test_parse_math_rcparams():
759+
# Default is True
760+
fig, ax = plt.subplots()
761+
ax.text(0, 0, r"$ \wrong{math} $")
762+
with pytest.raises(ValueError, match='Unknown symbol'):
763+
fig.canvas.draw()
764+
765+
# Setting rcParams to False
766+
plt.rcParams['text.parse_math'] = False
767+
fig, ax = plt.subplots()
768+
ax.text(0, 0, r"$ \wrong{math} $")
769+
fig.canvas.draw()
770+
771+
758772
@image_comparison(['text_pdf_font42_kerning.pdf'], style='mpl20')
759773
def test_pdf_font42_kerning():
760774
plt.rcParams['pdf.fonttype'] = 42

lib/matplotlib/text.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def __init__(self,
142142
wrap=False,
143143
transform_rotates_text=False,
144144
*,
145-
parse_math=True,
145+
parse_math=None,
146146
**kwargs
147147
):
148148
"""
@@ -1289,11 +1289,15 @@ def set_parse_math(self, parse_math):
12891289
12901290
Parameters
12911291
----------
1292-
parse_math : bool
1292+
parse_math : bool or None
12931293
If False, this `Text` will never use mathtext. If True, mathtext
12941294
will be used if there is an even number of unescaped dollar signs.
1295+
``None`` means to use :rc:`text.parse_math`
12951296
"""
1296-
self._parse_math = bool(parse_math)
1297+
if parse_math is None:
1298+
self._parse_math = mpl.rcParams['text.parse_math']
1299+
else:
1300+
self._parse_math = bool(parse_math)
12971301

12981302
def get_parse_math(self):
12991303
"""Return whether mathtext parsing is considered for this `Text`."""

0 commit comments

Comments
 (0)