diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py
index 126fef3e27a4..9ae5a6b56869 100644
--- a/lib/matplotlib/mathtext.py
+++ b/lib/matplotlib/mathtext.py
@@ -2852,12 +2852,15 @@ def subsuper(self, s, loc, toks):
sub = None
super = None
- # Pick all of the apostrophe's out
+ # Pick all of the apostrophes out, including first apostrophes that have
+ # been parsed as characters
napostrophes = 0
new_toks = []
for tok in toks[0]:
if isinstance(tok, six.string_types) and tok not in ('^', '_'):
napostrophes += len(tok)
+ elif isinstance(tok, Char) and tok.c == "'":
+ napostrophes += 1
else:
new_toks.append(tok)
toks = new_toks
@@ -2912,6 +2915,9 @@ def subsuper(self, s, loc, toks):
super = Hlist([])
for i in range(napostrophes):
super.children.extend(self.symbol(s, loc, ['\prime']))
+ # kern() and hpack() needed to get the metrics right after extending
+ super.kern()
+ super.hpack()
# Handle over/under symbols, such as sum or integral
if self.is_overunder(nucleus):
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.pdf
index ee8cc7b4cc2d..532b5cefcfad 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.png
index b7f10201a37a..37bc5f8118e4 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.png and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.svg
index 25ef4a4827f9..455a228221b1 100644
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.svg
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_31.svg
@@ -18,21 +18,8 @@ z
" style="fill:#ffffff;"/>
-
+
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.pdf
index 806868686888..f5846390d7cb 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.png
index 844329c0af2d..11a901df8f39 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.png and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.svg
index cedbd925cd50..9f2e2e7f77d1 100644
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.svg
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_31.svg
@@ -18,21 +18,8 @@ z
" style="fill:#ffffff;"/>
-
+
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.pdf
index 651d833d5f68..1e40f397af69 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.png
index bcfaa755f644..6e0fb8c17492 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.png and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.svg
index d2803b0b22ec..08a0c804eed2 100644
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.svg
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_31.svg
@@ -18,21 +18,8 @@ z
" style="fill:#ffffff;"/>
-
+
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.pdf
index bb9f86148c82..945fc7cb66fa 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.png
index ad3a90304fa1..a8917d146f31 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.png and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.svg
index 3f7b682991c1..b0828cb09b48 100644
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.svg
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_31.svg
@@ -18,7 +18,7 @@ z
" style="fill:#ffffff;"/>
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.pdf
index 77f734b5d9fe..c03e8a6b1904 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.png
index e57c157014a9..175cd3c5ec15 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.png and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.svg
index 38dde5b18cd8..635a911ad6f5 100644
--- a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.svg
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_31.svg
@@ -18,7 +18,7 @@ z
" style="fill:#ffffff;"/>
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index eeac74ad3878..4486e2d22f00 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -43,7 +43,7 @@
r"$\gamma = \frac{x=\frac{6}{8}}{y} \delta$",
r'$\limsup_{x\to\infty}$',
r'$\oint^\infty_0$',
- r"$f'$",
+ r"$f'\quad f'''(x)\quad ''/\mathrm{yr}$",
r'$\frac{x_2888}{y}$',
r"$\sqrt[3]{\frac{X_2}{Y}}=5$",
r"$\sqrt[5]{\prod^\frac{x}{2\pi^2}_\infty}$",