From 5943ae676aa6ba39a631baebb320f5314fc58f70 Mon Sep 17 00:00:00 2001 From: Leo Singer Date: Fri, 23 Aug 2013 22:26:11 -0700 Subject: [PATCH] Fix #2339: render math text when using path effects --- .../test_patheffects/patheffect3.pdf | Bin 4817 -> 9236 bytes .../test_patheffects/patheffect3.png | Bin 14416 -> 21621 bytes .../test_patheffects/patheffect3.svg | 418 +++++++++++++++--- lib/matplotlib/tests/test_patheffects.py | 6 +- lib/matplotlib/text.py | 3 +- 5 files changed, 356 insertions(+), 71 deletions(-) diff --git a/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.pdf b/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.pdf index 1d400a17dee957a6473e47d7ffa0ee961f8a1ed1..8798f5999a71b2dd1e76b047e4e76a4a3f0ff9c7 100644 GIT binary patch delta 5243 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 diff --git a/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.png b/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.png index 709e17dbd6c8e56207fad0b1596e21a46a0dd0e7..91d2086f85c70fbf1240661da3e53d55926e0ebe 100644 GIT binary patch literal 21621 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 m2(pj*Abj!N@9K%sOxA`~LvtEvCQ# literal 14416 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 JhkK7-{2xBwGrs@; diff --git a/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.svg b/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.svg index 8408f55b6790..9b646f8d5117 100644 --- a/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.svg +++ b/lib/matplotlib/tests/baseline_images/test_patheffects/patheffect3.svg @@ -5,7 +5,7 @@ @@ -31,7 +31,7 @@ z +L518.4 43.2" style="fill:none;stroke:#0000ff;stroke-linecap:square;"/> @@ -39,80 +39,286 @@ L518.4 43.2" style="fill:none;stroke:#0000ff;"/> +L0 -4" id="m93b0483c22" style="stroke:#000000;stroke-width:0.5;"/> - + +L0 4" id="m741efc42ff" style="stroke:#000000;stroke-width:0.5;"/> - + + + + + + + + + + + + + - + - + + + + + + + + + + + + - + - + + + + + + + + + + + + - + - + + + + + + + + + + + + - + - + + + + + + + + + + + + - + - + + + + + + + + + + + + @@ -123,80 +329,128 @@ L0 4" id="mdad270ee8e" style="stroke:#000000;stroke-linecap:butt;stroke-width:0. +L4 0" id="m728421d6d4" style="stroke:#000000;stroke-width:0.5;"/> - + +L-4 0" id="mcb0005524f" style="stroke:#000000;stroke-width:0.5;"/> - + + + + + + + + + - + - + + + + + + + + + - + - + + + + + + + + + - + - + + + + + + + + + - + - + + + + + + + + + - + - + + + + + + + + + @@ -224,54 +478,80 @@ L72 43.2" style="fill:none;stroke:#000000;"/> +M89.28 62.2137 +L109.44 62.2137" style="fill:none;stroke:#0000ff;stroke-linecap:square;"/> - - + + - +" id="Cmr10-32"/> + - - - - - - - + + + + + + + + diff --git a/lib/matplotlib/tests/test_patheffects.py b/lib/matplotlib/tests/test_patheffects.py index 9a5480232fd4..639c309614c7 100644 --- a/lib/matplotlib/tests/test_patheffects.py +++ b/lib/matplotlib/tests/test_patheffects.py @@ -43,12 +43,14 @@ def test_patheffect2(): path_effects=[withStroke(linewidth=3, foreground="w")]) -@image_comparison(baseline_images=['patheffect3'], remove_text=True) +@image_comparison(baseline_images=['patheffect3']) def test_patheffect3(): ax3 = plt.subplot(111) p1, = ax3.plot([0, 1], [0, 1]) - leg = ax3.legend([p1], ["Line 1"], fancybox=True, loc=2) + ax3.set_title(r'testing$^{123}$', + path_effects=[withStroke(linewidth=1, foreground="r")]) + leg = ax3.legend([p1], [r'Line 1$^2$'], fancybox=True, loc=2) leg.legendPatch.set_path_effects([withSimplePatchShadow()]) diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index 62fc182c5e00..ddf11901e018 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -586,7 +586,8 @@ def draw(self, renderer): self._fontproperties, angle) else: path_effect.draw_text(renderer, gc, x, y, clean_line, - self._fontproperties, angle) + self._fontproperties, angle, + ismath=ismath) else: if rcParams['text.usetex']: renderer.draw_tex(gc, x, y, clean_line,