diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py
index 02428615ae50..fe7138fedec0 100644
--- a/lib/matplotlib/mathtext.py
+++ b/lib/matplotlib/mathtext.py
@@ -28,7 +28,7 @@
from pyparsing import (
Combine, Empty, FollowedBy, Forward, Group, Literal, oneOf, OneOrMore,
Optional, ParseBaseException, ParseFatalException, ParserElement,
- QuotedString, Regex, StringEnd, Suppress, ZeroOrMore)
+ ParseResults, QuotedString, Regex, StringEnd, Suppress, ZeroOrMore)
from matplotlib import cbook, colors as mcolors, rcParams
from matplotlib.afm import AFM
@@ -2873,11 +2873,7 @@ def accent(self, s, loc, toks):
])
def function(self, s, loc, toks):
- self.push_state()
- state = self.get_state()
- state.font = 'rm'
- hlist = Hlist([Char(c, state) for c in toks[0]])
- self.pop_state()
+ hlist = self.operatorname(s, loc, toks)
hlist.function_name = toks[0]
return hlist
@@ -2885,13 +2881,29 @@ def operatorname(self, s, loc, toks):
self.push_state()
state = self.get_state()
state.font = 'rm'
+ hlist_list = []
# Change the font of Chars, but leave Kerns alone
for c in toks[0]:
if isinstance(c, Char):
c.font = 'rm'
c._update_metrics()
+ hlist_list.append(c)
+ elif isinstance(c, str):
+ hlist_list.append(Char(c, state))
+ else:
+ hlist_list.append(c)
+ next_char_loc = loc + len(toks[0]) + 1
+ if isinstance(toks[0], ParseResults):
+ next_char_loc += len('operatorname{}')
+ next_char = next((c for c in s[next_char_loc:] if c != ' '), '')
+ delimiters = self._left_delim | self._ambi_delim | self._right_delim
+ delimiters |= {'^', '_'}
+ if (next_char not in delimiters and
+ toks[0] not in self._overunder_functions):
+ # Add thin space except when followed by parenthesis, bracket, etc.
+ hlist_list += [self._make_space(self._space_widths[r'\,'])]
self.pop_state()
- return Hlist(toks[0])
+ return Hlist(hlist_list)
def start_group(self, s, loc, toks):
self.push_state()
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.pdf
deleted file mode 100644
index 1447f1a5a6ee..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.pdf and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.png
deleted file mode 100644
index fb9f1ce54186..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.png and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.svg
deleted file mode 100644
index 68674dc6ae48..000000000000
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_66.svg
+++ /dev/null
@@ -1,202 +0,0 @@
-
-
-
-
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.pdf
deleted file mode 100644
index b67c465c0f74..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.pdf and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.png
deleted file mode 100644
index 4355536a39a7..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.png and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.svg
deleted file mode 100644
index 89e96a72bc99..000000000000
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_66.svg
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.pdf
deleted file mode 100644
index 7249772bd597..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.pdf and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.png
deleted file mode 100644
index fb1c41c2c248..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.png and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.svg
deleted file mode 100644
index 2c3d08c82b2b..000000000000
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_66.svg
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.pdf
deleted file mode 100644
index da794b5b7bda..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.pdf and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.png
deleted file mode 100644
index 7c75c2893837..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.png and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.svg
deleted file mode 100644
index bce6b5573076..000000000000
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_66.svg
+++ /dev/null
@@ -1,154 +0,0 @@
-
-
-
-
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.pdf
deleted file mode 100644
index 4e72c0fd146a..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.pdf and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.png
deleted file mode 100644
index 2d2a22d88f8b..000000000000
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.png and /dev/null differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.svg
deleted file mode 100644
index 56641fa94ea7..000000000000
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_66.svg
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index 6bc84b19f1eb..285841f7277b 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -11,6 +11,7 @@
from matplotlib import mathtext
+# If test is removed, use None as placeholder
math_tests = [
r'$a+b+\dot s+\dot{s}+\ldots$',
r'$x \doteq y$',
@@ -91,7 +92,7 @@
r"$\left( \xi \left( 1 - \xi \right) \right)$", # Bug 2969451
r"$\left(2 \, a=b\right)$", # Sage bug #8125
r"$? ! &$", # github issue #466
- r'$\operatorname{cos} x$', # github issue #553
+ None,
r'$\sum _{\genfrac{}{}{0}{}{0\leq i\leq m}{0