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