diff --git a/doc/api/api_changes.rst b/doc/api/api_changes.rst
index be878d0a7dc7..3727aa434925 100644
--- a/doc/api/api_changes.rst
+++ b/doc/api/api_changes.rst
@@ -11,6 +11,12 @@ help figure out possible sources of the changes you are experiencing.
For new features that were added to matplotlib, please see
:ref:`whats-new`.
+Changes in 2.0.x
+================
+
+* The spacing commands in mathtext have been changed to more closely
+ match vanilla TeX.
+
Changes in 1.4.x
================
diff --git a/lib/matplotlib/_mathtext_data.py b/lib/matplotlib/_mathtext_data.py
index eb741d913278..cb87d445cd48 100644
--- a/lib/matplotlib/_mathtext_data.py
+++ b/lib/matplotlib/_mathtext_data.py
@@ -1946,7 +1946,6 @@
'boxminus' : 8863,
'equiv' : 8801,
'Lleftarrow' : 8666,
- 'thinspace' : 8201,
'll' : 8810,
'Cup' : 8915,
'measeq' : 8798,
@@ -2169,7 +2168,6 @@
'cdots' : 8943,
'hat' : 770,
'eqgtr' : 8925,
- 'enspace' : 8194,
'psi' : 968,
'frown' : 8994,
'acute' : 769,
diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py
index cbe8bfd6bdd4..69c110ba9a04 100644
--- a/lib/matplotlib/mathtext.py
+++ b/lib/matplotlib/mathtext.py
@@ -2431,13 +2431,18 @@ def _make_space(self, percentage):
self._em_width_cache[key] = width
return Kern(width * percentage)
- _space_widths = { r'\ ' : 0.3,
- r'\,' : 0.4,
- r'\;' : 0.8,
- r'\quad' : 1.6,
- r'\qquad' : 3.2,
- r'\!' : -0.4,
- r'\/' : 0.4 }
+ _space_widths = { r'\,' : 0.16667, # 3/18 em = 3 mu
+ r'\thinspace' : 0.16667, # 3/18 em = 3 mu
+ r'\/' : 0.16667, # 3/18 em = 3 mu
+ r'\>' : 0.22222, # 4/18 em = 4 mu
+ r'\:' : 0.22222, # 4/18 em = 4 mu
+ r'\;' : 0.27778, # 5/18 em = 5 mu
+ r'\ ' : 0.33333, # 6/18 em = 6 mu
+ r'\enspace' : 0.5, # 9/18 em = 9 mu
+ r'\quad' : 1, # 1 em = 18 mu
+ r'\qquad' : 2, # 2 em = 36 mu
+ r'\!' : -0.16667, # -3/18 em = -3 mu
+ }
def space(self, s, loc, toks):
assert(len(toks)==1)
num = self._space_widths[toks[0]]
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.pdf
index a3c7ab5ee242..94cdddaf6dcf 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_69.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_69.pdf
index 09f7a773762e..19064b48cd0e 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_69.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_69.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.pdf
new file mode 100644
index 000000000000..2b83c3c73f5c
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.png
new file mode 100644
index 000000000000..55986a513061
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.svg
new file mode 100644
index 000000000000..ea4591841c6d
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_70.svg
@@ -0,0 +1,97 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.pdf
index d429f2bdb4ba..c647dc9ec534 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_69.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_69.pdf
index be7f1724d154..a5754449e493 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_69.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_69.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.pdf
new file mode 100644
index 000000000000..c6f4bfac8505
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.png
new file mode 100644
index 000000000000..4c8eeab5035c
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.svg
new file mode 100644
index 000000000000..7c4e65dc5827
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_70.svg
@@ -0,0 +1,74 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.pdf
index 4a5908b173ba..7c282bc1868b 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_69.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_69.pdf
index 870a8b1c6d3f..c51b5f4e7ae0 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_69.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_69.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.pdf
new file mode 100644
index 000000000000..ceb6df75c042
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.png
new file mode 100644
index 000000000000..2c86c67da769
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.svg
new file mode 100644
index 000000000000..603294c36659
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_70.svg
@@ -0,0 +1,55 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index cec257de255b..9b3ac7ea8e54 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -94,7 +94,8 @@
r'$\operatorname{cos} x$', # github issue #553
r'$\sum _{\genfrac{}{}{0}{}{0\leq i\leq m}{0 M \: M \; M \ M \enspace M \quad M \qquad M \! M$'
]
digits = "0123456789"