diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py
index 9f975bda9312..bbc3ebd551da 100644
--- a/lib/matplotlib/mathtext.py
+++ b/lib/matplotlib/mathtext.py
@@ -188,7 +188,7 @@ def render_glyph(self, ox, oy, info):
oy - info.metrics.ymin)
else:
info.font.draw_glyph_to_bitmap(
- self.image, ox, oy - info.metrics.iceberg, info.glyph,
+ self.image, ox, oy - info.metrics.ymax, info.glyph,
antialiased=rcParams['text.antialiased'])
def render_rect_filled(self, x1, y1, x2, y2):
@@ -621,6 +621,8 @@ def _get_info(self, fontname, font_class, sym, fontsize, dpi):
ymax = ymax+offset,
# iceberg is the equivalent of TeX's "height"
iceberg = glyph.horiBearingY/64.0 + offset,
+ vbearing = (glyph.horiBearingY/64.0 +
+ glyph.vertBearingY/64.0 + offset),
slanted = slanted
)
@@ -1307,8 +1309,11 @@ def _update_metrics(self):
self.width = metrics.advance
else:
self.width = metrics.width
- self.height = metrics.iceberg
- self.depth = -(metrics.iceberg - metrics.height)
+ if self.c in ('-', '\minus'):
+ self.height = metrics.vbearing
+ else:
+ self.height = metrics.iceberg
+ self.depth = max(-metrics.ymin, 0)
def is_slanted(self):
return self._metrics.slanted
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_07.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_07.pdf
index 0313d072518d..86695643ed12 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_07.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_07.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_21.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_21.pdf
index 3657cd1d0f61..e813a33c5990 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_21.pdf and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_21.pdf differ
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
new file mode 100644
index 000000000000..61a62e8bdf03
Binary files /dev/null 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_68.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.png
new file mode 100644
index 000000000000..a7802075e756
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.svg
new file mode 100644
index 000000000000..0134edaaf7ce
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_68.svg
@@ -0,0 +1,67 @@
+
+
+
+
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
new file mode 100644
index 000000000000..0227e41390c7
Binary files /dev/null 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_68.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.png
new file mode 100644
index 000000000000..99a88a0b687f
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.svg
new file mode 100644
index 000000000000..996f130e4aa0
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_68.svg
@@ -0,0 +1,56 @@
+
+
+
+
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
new file mode 100644
index 000000000000..26bf2f8a30b0
Binary files /dev/null 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_68.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.png
new file mode 100644
index 000000000000..99a88a0b687f
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.svg
new file mode 100644
index 000000000000..996f130e4aa0
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_68.svg
@@ -0,0 +1,56 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index 365f1a3d456c..f635b0779166 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -92,7 +92,8 @@
r"$\left(2 \, a=b\right)$", # Sage bug #8125
r"$? ! &$", # github issue #466
r'$\operatorname{cos} x$', # github issue #553
- r'$\sum _{\genfrac{}{}{0}{}{0\leq i\leq m}{0