From 4b9ff6034858ba04d4d681e992150c405b717fe6 Mon Sep 17 00:00:00 2001 From: Ryan Watkins Date: Sat, 25 Feb 2017 18:03:06 -0800 Subject: [PATCH 1/8] Feature addition: I added in the the \dfrac macro (displaystyle fraction) to the mathtex implementation. --- .../text_labels_and_annotations/dfrac_demo.py | 15 +++++++++ lib/matplotlib/mathtext.py | 31 ++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 examples/text_labels_and_annotations/dfrac_demo.py diff --git a/examples/text_labels_and_annotations/dfrac_demo.py b/examples/text_labels_and_annotations/dfrac_demo.py new file mode 100644 index 000000000000..3af064a81e04 --- /dev/null +++ b/examples/text_labels_and_annotations/dfrac_demo.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- +""" +Created on Sat Feb 25 17:50:37 2017 + +@author: watkinrt +""" + +import matplotlib.pyplot as plt + +fig = plt.figure(figsize=(5.25, 0.75)) +fig.text(0.5, 0.3, r'\dfrac: $\dfrac{a}{b}$', + horizontalalignment='center', verticalalignment='center') +fig.text(0.5, 0.7, r'\frac: $\frac{a}{b}$', + horizontalalignment='center', verticalalignment='center') \ No newline at end of file diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py index f22dbe96901f..03562076450d 100644 --- a/lib/matplotlib/mathtext.py +++ b/lib/matplotlib/mathtext.py @@ -2309,6 +2309,7 @@ def __init__(self): p.float_literal = Forward() p.font = Forward() p.frac = Forward() + p.dfrac = Forward() p.function = Forward() p.genfrac = Forward() p.group = Forward() @@ -2396,6 +2397,11 @@ def __init__(self): Suppress(Literal(r"\frac")) - ((p.required_group + p.required_group) | Error(r"Expected \frac{num}{den}")) ) + + p.dfrac <<= Group( + Suppress(Literal(r"\dfrac")) + - ((p.required_group + p.required_group) | Error(r"Expected \dfrac{num}{den}")) + ) p.stackrel <<= Group( Suppress(Literal(r"\stackrel")) @@ -2449,6 +2455,7 @@ def __init__(self): | p.function | p.group | p.frac + | p.dfrac | p.stackrel | p.binom | p.genfrac @@ -3043,8 +3050,11 @@ def _genfrac(self, ldelim, rdelim, rule, style, num, den): state.font, state.fontsize, state.dpi) rule = float(rule) - num.shrink() - den.shrink() + + # If style != displaystyle == 0, shrink the num and den + if style: + num.shrink() + den.shrink() cnum = HCentered([num]) cden = HCentered([den]) width = max(num.width, den.width) @@ -3091,21 +3101,32 @@ def frac(self, s, loc, toks): state.font, state.fontsize, state.dpi) num, den = toks[0] - return self._genfrac('', '', thickness, '', num, den) + return self._genfrac('', '', thickness, 1, num, den) + + def dfrac(self, s, loc, toks): + assert(len(toks)==1) + assert(len(toks[0])==2) + state = self.get_state() + + thickness = state.font_output.get_underline_thickness( + state.font, state.fontsize, state.dpi) + num, den = toks[0] + + return self._genfrac('', '', thickness, 0, num, den) def stackrel(self, s, loc, toks): assert(len(toks)==1) assert(len(toks[0])==2) num, den = toks[0] - return self._genfrac('', '', 0.0, '', num, den) + return self._genfrac('', '', 0.0, 1, num, den) def binom(self, s, loc, toks): assert(len(toks)==1) assert(len(toks[0])==2) num, den = toks[0] - return self._genfrac('(', ')', 0.0, '', num, den) + return self._genfrac('(', ')', 0.0, 1, num, den) def sqrt(self, s, loc, toks): #~ print "sqrt", toks From 45f5d635122967862e48e05b508422ccdf62bf2a Mon Sep 17 00:00:00 2001 From: Ryan Watkins Date: Sun, 26 Feb 2017 08:48:46 -0800 Subject: [PATCH 2/8] PEP8 fixes --- .../text_labels_and_annotations/dfrac_demo.py | 6 ++--- lib/matplotlib/mathtext.py | 26 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/text_labels_and_annotations/dfrac_demo.py b/examples/text_labels_and_annotations/dfrac_demo.py index 3af064a81e04..47bdc36cfeaf 100644 --- a/examples/text_labels_and_annotations/dfrac_demo.py +++ b/examples/text_labels_and_annotations/dfrac_demo.py @@ -9,7 +9,7 @@ import matplotlib.pyplot as plt fig = plt.figure(figsize=(5.25, 0.75)) -fig.text(0.5, 0.3, r'\dfrac: $\dfrac{a}{b}$', +fig.text(0.5, 0.3, r'\dfrac: $\dfrac{a}{b}$', + horizontalalignment='center', verticalalignment='center') +fig.text(0.5, 0.7, r'\frac: $\frac{a}{b}$', horizontalalignment='center', verticalalignment='center') -fig.text(0.5, 0.7, r'\frac: $\frac{a}{b}$', - horizontalalignment='center', verticalalignment='center') \ No newline at end of file diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py index 03562076450d..82a8e63abc85 100644 --- a/lib/matplotlib/mathtext.py +++ b/lib/matplotlib/mathtext.py @@ -2397,7 +2397,7 @@ def __init__(self): Suppress(Literal(r"\frac")) - ((p.required_group + p.required_group) | Error(r"Expected \frac{num}{den}")) ) - + p.dfrac <<= Group( Suppress(Literal(r"\dfrac")) - ((p.required_group + p.required_group) | Error(r"Expected \dfrac{num}{den}")) @@ -3050,8 +3050,8 @@ def _genfrac(self, ldelim, rdelim, rule, style, num, den): state.font, state.fontsize, state.dpi) rule = float(rule) - - # If style != displaystyle == 0, shrink the num and den + + # If style != displaystyle == 0, shrink the num and den if style: num.shrink() den.shrink() @@ -3087,14 +3087,14 @@ def _genfrac(self, ldelim, rdelim, rule, style, num, den): return result def genfrac(self, s, loc, toks): - assert(len(toks)==1) - assert(len(toks[0])==6) + assert(len(toks) == 1) + assert(len(toks[0]) == 6) return self._genfrac(*tuple(toks[0])) def frac(self, s, loc, toks): - assert(len(toks)==1) - assert(len(toks[0])==2) + assert(len(toks) == 1) + assert(len(toks[0]) == 2) state = self.get_state() thickness = state.font_output.get_underline_thickness( @@ -3104,8 +3104,8 @@ def frac(self, s, loc, toks): return self._genfrac('', '', thickness, 1, num, den) def dfrac(self, s, loc, toks): - assert(len(toks)==1) - assert(len(toks[0])==2) + assert(len(toks) == 1) + assert(len(toks[0]) == 2) state = self.get_state() thickness = state.font_output.get_underline_thickness( @@ -3115,15 +3115,15 @@ def dfrac(self, s, loc, toks): return self._genfrac('', '', thickness, 0, num, den) def stackrel(self, s, loc, toks): - assert(len(toks)==1) - assert(len(toks[0])==2) + assert(len(toks) == 1) + assert(len(toks[0]) == 2) num, den = toks[0] return self._genfrac('', '', 0.0, 1, num, den) def binom(self, s, loc, toks): - assert(len(toks)==1) - assert(len(toks[0])==2) + assert(len(toks) == 1) + assert(len(toks[0]) == 2) num, den = toks[0] return self._genfrac('(', ')', 0.0, 1, num, den) From bedfdc024da63cb97e500125619fd3e0396169ab Mon Sep 17 00:00:00 2001 From: Ryan Watkins Date: Sun, 26 Feb 2017 14:57:19 -0800 Subject: [PATCH 3/8] Documentation: Updated the docstring for the dfrac_demo Bug fix: I added a plt.show() to the end of the dfrac_demo Tests: I added in a new test for the dfrac macro (along with the corresponding comparison files) within the test_mathtex test suite. --- .../text_labels_and_annotations/dfrac_demo.py | 21 ++- .../test_mathtext/mathtext_stixsans_82.pdf | Bin 0 -> 6460 bytes .../test_mathtext/mathtext_stixsans_82.png | Bin 0 -> 1731 bytes .../test_mathtext/mathtext_stixsans_82.svg | 149 ++++++++++++++++++ lib/matplotlib/tests/test_mathtext.py | 5 + 5 files changed, 171 insertions(+), 4 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.png create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.svg diff --git a/examples/text_labels_and_annotations/dfrac_demo.py b/examples/text_labels_and_annotations/dfrac_demo.py index 47bdc36cfeaf..b807338a74d4 100644 --- a/examples/text_labels_and_annotations/dfrac_demo.py +++ b/examples/text_labels_and_annotations/dfrac_demo.py @@ -1,9 +1,21 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- """ -Created on Sat Feb 25 17:50:37 2017 +======================================= +The difference between \dfrac and \frac +======================================= + +In this example, the differences between the \dfrac and \frac TeX macros are +illustrated; in particular, the difference between display style and text style +fractions when using Mathtex. + +.. versionadded:: 2.1 + +.. note:: + To use \dfrac with the LaTeX engine (text.usetex : True), you need to + import the amsmath package with the text.latex.preamble rc, which is + an unsupported feature; therefore, it is probably a better idea to just + use the \displaystyle option before the \frac macro to get this behavior + with the LaTeX engine. -@author: watkinrt """ import matplotlib.pyplot as plt @@ -13,3 +25,4 @@ horizontalalignment='center', verticalalignment='center') fig.text(0.5, 0.7, r'\frac: $\frac{a}{b}$', horizontalalignment='center', verticalalignment='center') +plt.show() diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.pdf new file mode 100644 index 0000000000000000000000000000000000000000..085487d51e597d739aec9897a2eeb7d844d6d365 GIT binary patch literal 6460 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 B>2d%7 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.svg new file mode 100644 index 000000000000..5b7bab5501a8 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stixsans_82.svg @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py index de089f4e1c4f..5371f92616da 100644 --- a/lib/matplotlib/tests/test_mathtext.py +++ b/lib/matplotlib/tests/test_mathtext.py @@ -110,6 +110,7 @@ r'$\overline{\omega}^x \frac{1}{2}_0^x$', # github issue #5444 r'$,$ $.$ $1{,}234{, }567{ , }890$ and $1,234,567,890$', # github issue 5799 r'$\left(X\right)_{a}^{b}$', # github issue 7615 + r'$\dfrac{\$100.00}{y}$', # github issue #1888 ] digits = "0123456789" @@ -223,6 +224,8 @@ def test_fontinfo(): (r'$\rightF$', r'Unknown symbol: \rightF'), (r'$\left(\right$', r'Expected a delimiter'), (r'$\left($', r'Expected "\right"'), + (r'$\dfrac$', r'Expected \dfrac{num}{den}'), + (r'$\dfrac{}{}$', r'Expected \dfrac{num}{den}'), ], ids=[ 'hspace without value', @@ -243,6 +246,8 @@ def test_fontinfo(): 'right with invalid delimiter', 'unclosed parentheses with sizing', 'unclosed parentheses without sizing', + 'dfrac without parameters', + 'dfrac with empty parameters', ] ) def test_mathtext_exceptions(math, msg): From 0d10078c59909858b8a674f290c6ba1b0027260d Mon Sep 17 00:00:00 2001 From: Ryan Watkins Date: Wed, 1 Mar 2017 17:21:07 -0800 Subject: [PATCH 4/8] Documentation update: I updated the dfrac_demo docstring to be a raw string with the backslashes escaped. Feature modification: I added in a dictionary to the Parser class of mathtex to link math style names to their TeX numerical values. I used a dictionary instead of hardcoding specific math style (ex. DISPLAYSTYLE=0) as I will use the dictionary in my implementation of the math styles in the future. --- .../text_labels_and_annotations/dfrac_demo.py | 16 ++++++++-------- lib/matplotlib/mathtext.py | 18 +++++++++++++----- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/examples/text_labels_and_annotations/dfrac_demo.py b/examples/text_labels_and_annotations/dfrac_demo.py index b807338a74d4..989d27f11443 100644 --- a/examples/text_labels_and_annotations/dfrac_demo.py +++ b/examples/text_labels_and_annotations/dfrac_demo.py @@ -1,19 +1,19 @@ -""" -======================================= -The difference between \dfrac and \frac -======================================= +r""" +========================================= +The difference between \\dfrac and \\frac +========================================= -In this example, the differences between the \dfrac and \frac TeX macros are +In this example, the differences between the \\dfrac and \\frac TeX macros are illustrated; in particular, the difference between display style and text style -fractions when using Mathtex. +fractions when using Mathtex. aasdsads .. versionadded:: 2.1 .. note:: - To use \dfrac with the LaTeX engine (text.usetex : True), you need to + To use \\dfrac with the LaTeX engine (text.usetex : True), you need to import the amsmath package with the text.latex.preamble rc, which is an unsupported feature; therefore, it is probably a better idea to just - use the \displaystyle option before the \frac macro to get this behavior + use the \\displaystyle option before the \\frac macro to get this behavior with the LaTeX engine. """ diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py index 82a8e63abc85..07e788169511 100644 --- a/lib/matplotlib/mathtext.py +++ b/lib/matplotlib/mathtext.py @@ -2224,6 +2224,10 @@ class Parser(object): The grammar is based directly on that in TeX, though it cuts a few corners. """ + + _math_style_dict = dict(displaystyle=0, textstyle=1, + scriptstyle=2, scriptscriptstyle=3) + _binary_operators = set(''' + * - \\pm \\sqcap \\rhd @@ -3052,7 +3056,7 @@ def _genfrac(self, ldelim, rdelim, rule, style, num, den): rule = float(rule) # If style != displaystyle == 0, shrink the num and den - if style: + if style != self._math_style_dict['displaystyle']: num.shrink() den.shrink() cnum = HCentered([num]) @@ -3101,7 +3105,8 @@ def frac(self, s, loc, toks): state.font, state.fontsize, state.dpi) num, den = toks[0] - return self._genfrac('', '', thickness, 1, num, den) + return self._genfrac('', '', thickness, + self._math_style_dict['textstyle'], num, den) def dfrac(self, s, loc, toks): assert(len(toks) == 1) @@ -3112,21 +3117,24 @@ def dfrac(self, s, loc, toks): state.font, state.fontsize, state.dpi) num, den = toks[0] - return self._genfrac('', '', thickness, 0, num, den) + return self._genfrac('', '', thickness, + self._math_style_dict['displaystyle'], num, den) def stackrel(self, s, loc, toks): assert(len(toks) == 1) assert(len(toks[0]) == 2) num, den = toks[0] - return self._genfrac('', '', 0.0, 1, num, den) + return self._genfrac('', '', 0.0, + self._math_style_dict['textstyle'], num, den) def binom(self, s, loc, toks): assert(len(toks) == 1) assert(len(toks[0]) == 2) num, den = toks[0] - return self._genfrac('(', ')', 0.0, 1, num, den) + return self._genfrac('(', ')', 0.0, + self._math_style_dict['textstyle'], num, den) def sqrt(self, s, loc, toks): #~ print "sqrt", toks From 2c9b9bcf45cc7bbb0bd1b336bf66c994cced5617 Mon Sep 17 00:00:00 2001 From: Ryan Watkins Date: Sat, 25 Mar 2017 07:29:22 -0700 Subject: [PATCH 5/8] Although Sphyinx requires "\\" to show "\" characters, I removed them as matplotlib doesn't currently support this behavior in docstrings. --- examples/text_labels_and_annotations/dfrac_demo.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/text_labels_and_annotations/dfrac_demo.py b/examples/text_labels_and_annotations/dfrac_demo.py index 989d27f11443..4c0e0e3d04ce 100644 --- a/examples/text_labels_and_annotations/dfrac_demo.py +++ b/examples/text_labels_and_annotations/dfrac_demo.py @@ -1,19 +1,19 @@ r""" ========================================= -The difference between \\dfrac and \\frac +The difference between \dfrac and \frac ========================================= -In this example, the differences between the \\dfrac and \\frac TeX macros are +In this example, the differences between the \dfrac and \frac TeX macros are illustrated; in particular, the difference between display style and text style fractions when using Mathtex. aasdsads .. versionadded:: 2.1 .. note:: - To use \\dfrac with the LaTeX engine (text.usetex : True), you need to + To use \dfrac with the LaTeX engine (text.usetex : True), you need to import the amsmath package with the text.latex.preamble rc, which is an unsupported feature; therefore, it is probably a better idea to just - use the \\displaystyle option before the \\frac macro to get this behavior + use the \displaystyle option before the \frac macro to get this behavior with the LaTeX engine. """ From 57fd91004a4d22274e15fe5f0883583887a1a993 Mon Sep 17 00:00:00 2001 From: Ryan Watkins Date: Sun, 16 Apr 2017 10:30:27 -0700 Subject: [PATCH 6/8] Remove stray text from documentation. --- examples/text_labels_and_annotations/dfrac_demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/text_labels_and_annotations/dfrac_demo.py b/examples/text_labels_and_annotations/dfrac_demo.py index 4c0e0e3d04ce..71e2e9df31f1 100644 --- a/examples/text_labels_and_annotations/dfrac_demo.py +++ b/examples/text_labels_and_annotations/dfrac_demo.py @@ -5,7 +5,7 @@ In this example, the differences between the \dfrac and \frac TeX macros are illustrated; in particular, the difference between display style and text style -fractions when using Mathtex. aasdsads +fractions when using Mathtex. .. versionadded:: 2.1 From d0cfe37ec401bd3ad80ea2dfae20e986ccc80ada Mon Sep 17 00:00:00 2001 From: Ryan Watkins Date: Tue, 4 Jul 2017 13:45:18 -0700 Subject: [PATCH 7/8] With the resent merging of the sphinx-gallery branch, I went through and updated the docstring to appropriately escape the backslashes. --- examples/text_labels_and_annotations/dfrac_demo.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/text_labels_and_annotations/dfrac_demo.py b/examples/text_labels_and_annotations/dfrac_demo.py index 71e2e9df31f1..4ffd7767c5b0 100644 --- a/examples/text_labels_and_annotations/dfrac_demo.py +++ b/examples/text_labels_and_annotations/dfrac_demo.py @@ -1,19 +1,19 @@ r""" ========================================= -The difference between \dfrac and \frac +The difference between \\dfrac and \\frac ========================================= -In this example, the differences between the \dfrac and \frac TeX macros are +In this example, the differences between the \\dfrac and \\frac TeX macros are illustrated; in particular, the difference between display style and text style fractions when using Mathtex. .. versionadded:: 2.1 .. note:: - To use \dfrac with the LaTeX engine (text.usetex : True), you need to + To use \\dfrac with the LaTeX engine (text.usetex : True), you need to import the amsmath package with the text.latex.preamble rc, which is an unsupported feature; therefore, it is probably a better idea to just - use the \displaystyle option before the \frac macro to get this behavior + use the \\displaystyle option before the \\frac macro to get this behavior with the LaTeX engine. """ From b80d97522efa02d80762e5c571e693f55820686c Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sun, 16 Jul 2017 11:34:48 -0500 Subject: [PATCH 8/8] TST: add missing tests --- .../test_mathtext/mathtext_cm_82.pdf | Bin 0 -> 6940 bytes .../test_mathtext/mathtext_cm_82.png | Bin 0 -> 1805 bytes .../test_mathtext/mathtext_cm_82.svg | 231 ++++++++++++++++++ .../test_mathtext/mathtext_dejavusans_82.pdf | Bin 0 -> 5955 bytes .../test_mathtext/mathtext_dejavusans_82.png | Bin 0 -> 1892 bytes .../test_mathtext/mathtext_dejavusans_82.svg | 141 +++++++++++ .../test_mathtext/mathtext_dejavuserif_82.pdf | Bin 0 -> 6130 bytes .../test_mathtext/mathtext_dejavuserif_82.png | Bin 0 -> 1917 bytes .../test_mathtext/mathtext_dejavuserif_82.svg | 154 ++++++++++++ .../test_mathtext/mathtext_stix_82.pdf | Bin 0 -> 6427 bytes .../test_mathtext/mathtext_stix_82.png | Bin 0 -> 1689 bytes .../test_mathtext/mathtext_stix_82.svg | 177 ++++++++++++++ 12 files changed, 703 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.png create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.svg create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_82.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_82.png create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_82.svg create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_82.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_82.png create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_82.svg create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_82.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_82.png create mode 100644 lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_82.svg diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7fcd5d932ab1ae07c54af426b117f400fbc3cb37 GIT binary patch literal 6940 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 D8<25R literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.png new file mode 100644 index 0000000000000000000000000000000000000000..55c704c48547539535eb45c226640ac04e44b84d GIT binary patch literal 1805 zcmcJPX;4#F6vrPz7)oWC7AhhL;x?=i2u+MgkVV20mV`wJs~`yoB$CGx6-Zmw0xk$L z>?mOin^6RnwJ?GkO9&A}0TndE4gyI*(Oz}N_DjFDZ|2>1-<@;Md;i}(=bz^6Xd@@9 zDhol7oGspp2tnKAz}#L&8jP#SjZeTsieX{vDg&)^uJOzaZ!1OR092Rm?Gx}5{BZL;AX=HH7z{r43W56h5l%XyKjm8)T zoeVl0sHaJVVLBFx{CkrDEs}!FyOBEpLDKHFR>xdp3m3+5R6bdwcg5+7G&wL#FEqP? zSgnOBm63K~dmTfh=Ma|_K6bn>134>Ncplj@o?lcXNKw!j=JU(?`yB}m4%5RFqn%MO{9s93Q&DmJ zq6Y41<}P$lHQBWZM4X=sP}j5ZSB7;QPb&Ph&Az8O$jU+-v;Yrhif-4e6po{-Sd z)6=uIu_{D3X&U&o*Dg(V%ss6mXR&j1Jvg^-yY1b(H}bAGQ@GV1s)e14B`H80k*_?D=@=tu>JqeBUci0H39!R>;hqE7V=%`|Ew zk?8L3?r*8e(^3^MiM><2cW)jmr&-+;BWiuyydDM-Gcz-pbABE1byix}0D}3^>(=Q? z+ojjnX85hENo$QhlASy6m`Y&q6iTI+mlrHv^hvVVgV-ifggMj25skORWU=?#U!Bf4 z*XB!bbbMQcWLGYzLj9e#k}oyiiU zDkmq$?!XnM@cWsN7HO6-eF(xlxvEcwUv(kE#~N+j+}uKGG!Gk_l%K;!mz$%^N}Pr? zoQys+l;9E`O|4A-^J|K$tE*W0OBPVE&lW(hbSiNtlM9M*3B}E3iZb}2PeY1WPN>o*(8f+TmX^Ba|s{6XF_Z1opNC?ZWWs{v($H~ zs9YKlk{FE7IpRM2=>iVguAKNK2gaORvLWS93k`jwhKqmE*xXzY_g<9OouW{{-}WhdqLg!5C1{D5rIH>J6uhAD_)xHQ3;%Ak30Re!H;&YrKRt2F0v1lEdiz4_f%Nm zmrD3j=DU6O%3%g?Q3jOK@53KIFahnYvN0H27i(JYaG;EiDQpvVMz>!oP7)!Uy}ov= z_)D|4R!Y!Q6VC4J3c;*N*=byppv%O&N+|8hJqY2m;!Ax{x2<2Ovxvv2Q0eC8*@aQAB~a)=CX+>$M9@1&Vixt@EkfC{z+OyHC~ADX zuflHAL0*~7t*Otg6}_M{(F0{G`7TPCXQ9l@>XVbD`<^_hx_;fF+SM+;!w>1(`e0)M z!Ad|nszUh9DU!gq!9!VDIg33p;j2$>%IJhN(}D0y`@&z`ae3Yp&hINgyLoz6&y6%N zaFQ%F;9XhlAfsv!4$k1AaCK&=+#Vad?9XjRlqS-d+gN6Cn{59>RlqPfO-=4Rs;fXC zz(!8vxy{n0iNNn3EJW+7$=7hXF5D9i;>B?iO4W^dIOQ_*F}?CL(*p+&3MMBT#>Tu% vOiUiWd5uG`yuUhT#}EIvk^ZYi=X`=_KYCPnn=zMxZ9}%!j#l*+{=fbOHqI4A literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.svg new file mode 100644 index 000000000000..19f8a85b606a --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_cm_82.svg @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_82.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavusans_82.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4b1874debd8a53dc243b4d7495be401594e0a1ce GIT binary patch literal 5955 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 VVmT+No(#VOfOT?r + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_82.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_82.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6170feca8d3886e00b2e04c433b6916f6dc4eee9 GIT binary patch literal 6130 zcmeHLdstIP78k2XuVS@gMg5d*?%Z={&YW}R zH#5I8{Wa>yAS#$8`fsX2r4 zp@e8M;D#!f4iPqKv`*4XB4X{GBF!cVG4{GfFG-@sggE?4C^Qyxs!o(p5{#pc1pT5- zLW<}t7;}{48SZ#SqhzGeW#|n?Q##`9-6zDSOc7Hhq?DC6nM08va5@lXGMObS3<3Sa z!4%O1Z-QOHXp1>F8(}xYbx5HW^NgvYb~FqPZ{sX_lQmm!5lyMnou1py^e%8NUR6 zq3%=P_q4~oL)}%gDkhg(*7#2R`9_I4w8Z#gm>4KnLcX%h-|+p#)3eIH9jaORL-<&# z+^g5Z^4WLpy}KuN&s!<|)aI9O8B4|_EgI~9YSq!7OtlpcLa&}%5!`0?s{h0 z@@wDuKv6j8ZNGze4b_|J+AEzizRBD-Fn?Wy-_oTq9fG^=`)Ggpo&9;IYA#jz4Dv|w zI5c-PYCBE$+)K9#H7{+Sn>}F2(O&)uQJR})=cHGitnXJ-FV4&T^4!kkVLI<&_j1pT zK3isc*EX^E-`cAIs+@NM#L2q6sS0yXU4e-Uy|=nHxVA+7OSgY)|8o9I!;@2NB-9~NBx!>!SShRIh_4*I*j~l#yUDYpZ!)~1& z@#xJv+bjKMpN${fO3d(5bH-(12U0MQf_Xm@Szth>~{%d&fAvWHHK1DVQWN#^K*sgRZf9$3Qg4 zA;nmI7A%RDz7YytZi*!DP}o|=X|z2SiAIBz0Z!X@GMBvq+u;mdm^BqIUV#?yE|(o8 z8q+f*_zt7lzXZ_?FR#sX*hBayb^G@%w$DnKDLqrf!^G)rvYikemWEwO60^o*xjp)B z5mZcQw9myI>>qX~3GpQPM-<|J)x%IK#F8{(c@n7@72+A55ICp{B%+lZV&I7j2X^A` zxINSORO0rJD}?hq!ziJjQr3a>;KD&)iUh?n)MqwFQDKu0eCBTUX_jo~ehmcJHmt+%Q zbnF@@fE%zPINT0D1sGLnuk$R67#N6wCBl=uTo+gf70W`{K{vF=g~i7UtQZ_l+=s*7 za6CNib&j@&3y+V(g2$Jq4Tq2<2|2VdCI=yw!y+5zFi^%Cc8>)CMPU_C!7e#xUhWQE zIf^2nfD51sH^vces>lYCNKgrKPuVDN+KB__d^w(Su$*?tnpg-s4-v)IV<0rD$E~ms zPZTcrod+agO`x5?@A5YsR!|`DLSw;5kU@Zf;8tJ&n0bgLMgyBcm!EH+ zrcU~Ga!zQ$PTRsTzpa-pepPkkldcA4gn;}CVjy}vs_gVtOAw;n{Xt z-|Rj|-pI@fUl6c(f#LQm0SQJXO=!1{`gF{o;0}KwCYByf98+I6vE)_$&dWa+cbav~ z`}*vY-K#$TSJ}Xe#eoH<5>LI5HGOOT$=9-kH5Y$6v1Z5R*E2t^3te-i(Cg2NdJm7& zN0=Ek!r%hWnf->|Smj?=G3R01Ih~i2E$INj{K;lf#Wb75xRalF?&X(XzWq%{bZ*H=|pgsk;`wYia&~Y zZQ$g&o{F41k?#!{+u1O-u*WyU4-EO|)Lq1qy;(sCy|>Kg7u5Ca^XN#Qdz4?c^}d85z5`ove} zWDE^RY{dyzy7f3GXxJ=Wo!~S_a}IzLr372pGhx@-86_94+<)X9CMf5a2D|k~uX#V_M}6D#nrGmih?MgCrTP+|Z9}4|s!zFoi@Oz%dm-d| zU*CPTJ%4KW^hnU5;+iRjn4M82c~@sz3s%K?zOAwD{A}^$%hk6B#os=_eG#!EswkmL z@_CTL*nN?kyb3E_6&BkN3 z>$*@YJC(hcc17n`wsv65qb)T{D*dJ`()DT?8_G4AX_bn)a!}ac{u2j<{aax$XJ!J= zWTBc3Y}RZ*a7Zd@IHhxI$I)=bM{3y0nuldSj+&kuT??O=)IC lW8eVDwPrKMn_Sl!XTZwg?c`H$kz^PFYAB+A|A_cV;x~It#!3JH literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_82.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_dejavuserif_82.png new file mode 100644 index 0000000000000000000000000000000000000000..a6aa19c18065bd427a0130c11420c3168c926242 GIT binary patch literal 1917 zcmbVNdo8}tP}l*fxA6N&#A5jZg+#De<#J^-{H(;Nxk zE9l^D-abNS&50^}?6C|3RNjT3Zff=xY1jPsK|TJH%{+&vxO4h?2yD&HE}=1YJEqhb zA9Qi1xJlwiFYKnjJKa9DlPf7#v*)I`ZGDYbR?o}^uQ=k?Ow~06AZ3?5 z5`Zu5L!rbG1_TBw4?@>=m<9HRCnfoN zczASgB*nzIGnq_N6O;b;>uS~1lPqS!*JN^Tetuh~B=wkCd-}Yj`M%p33m@@?z5N9NgE3>$`sS zYCT3zuSO&yCr9x4a(NRgCw6|I{N}nquSZoPLFmSBxi!14UXr&bxAPMcyy*1m)&#Zb zfdek(<>lmrm2f-G(W6ibL9Pd8-c^V5{;;JA+XYIo4Ja(4IughAp?K2pauBDW0616bxe7lwzW= z&226{Xm?7-rHG#^&| zJ2sfWLwx1uHw6MgMRqoZHn6xD{xoDa7RzQZ4%Y>=>j>NVs&8RMY=Q{+ei~=2Ew6iK zpvJc)^@d(J5rp7jtnXgGuqKg6EC%C#K;swRA(2Q}rUOGYzG;-k`g*tc_;^v$d(kEd znUd}!otD^evWwYN2`H>!NTI=AXG@C6uWzP7#JDVNFYU#(kyrk#X%95!aFaW>XC+htBRri&MdK^se=XJ8%H*V}Z6#v!%;v}zU zeDl4;XwRN2vR7V?ju{vX#$K`G$zLVC2NvM{(R=Zwj~_e2c%QdwgE!Z-#GQ0P{`vFg z7yXgIIJ$C+8zx=1DC5Cg6G8`LV8B#sUw(u>CfbsBBp0%SSL@~ak<>8+S=nTE@&Kin;oV^L!8{% z+biwqxhN^7)}^Ow8c~ym74RO-V$^oLc=DCuK5A0+>7~)<_t0Sfge&q*{`G6u1|B_1 z-wbJaaex*U8tMk|_hV~B;qBoeJ0imC$dPl7PEIQ2yoZ6lzObUgaZXaym_PzL51;9Y z0|>UZ-a$b@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_82.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_82.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1657aaf5625a8e83e155f6810f0ea467f4bcebef GIT binary patch literal 6427 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_82.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_stix_82.png new file mode 100644 index 0000000000000000000000000000000000000000..0143688609e47b1eea4c804f4a9888ce8c614177 GIT binary patch literal 1689 zcmcgsi8s_+9KWbA&t%DqGbm~7%w#(<81kqY%TRAbc$TtEDdRC2Y3xywya;b>QJM*^8KE3zu)`$-0$a`;6OM7haq4905~3J zc@6+UICQoVIRLHP_{uhD+ZSwsCyGFWCgObuvPA=N7lHv0_u88Rg=WmlkkgK0`S3~1^Iw$UX;MAWXjdc7ZpQ%f`TuT0~B>pCs4YmKyoleUr%30)6dZGq>lGRZ=*|E ziX;jp5Q9d4y@VnM`Jw6M8Jz&^|A@CdMGVcJe`k+NjRdckJ0s|S-a)3{he^p9ZN~nh zO~q z$uydq$4lB-MTw1ZgV@;E;f9;kmW_#tC!1SaY1U7r58kf&b-cMTlhN)rC(6E2(*tVS zR#z+I}R>eS1FF(|T<*Ze(vJzxxXQ!Up@_BBk0u%h{ zUICMt*iRmLVfP`>nMue=L7IlG;_5=?yR!_*mA>tWR^CusQ!dC(Fos9jY;P?8BrJY} z=;V|UvM^fYd7?0Qs-uX-BG7G5r%bGcO>%ja7n|;;tl8(9boDUp`vwP{W&KH{w<*dt zl*uY@t2m$k?OKyhnr1~B+tyuP>d3&IEG-&Xi_!p5V`*=h(ZZ9@^i!lPM@V;S~~oW|;GMj1qeOc$uZ zk;!Em8XA<1B`=7)>5*!3vwvgcE())qskxJ1)RZWrnbq#n(K!IY+j|jGR!rka^6clX z{F(WA#}l$dt;2dQbwQKXcnw~8hi^qOi}m7b^tSG&Hhum51?%e}eZ9SEh@=@FcPf4M ziod@yo?#Y=LhPch5NL@+| zVQa;t&Ib=9t@6))gV-c=$sFxouZAdj_N=$SF3XzL?pv|BtLa=^Tr8b*x^G~>Nmfo? zzW2FLYwzgjRij;3DzzG8Y`i<23r3?MNE5FT4!xNSiesp%sOanJ<`opE;JZ5+X4ko& z?5eBYlZ;^Q~ZMrisb2O&a`Ko_wZn(qdfxj(Rjmv(YFv?|AjTQ z5Jc(d=sfP|ASg?Tmby2%95ss|Iy$DUFT8VIT|piqb6z@Pa{A-pazuCc9Vc#TYHB8( zu1;%N_J9gp;m!eeocl{!(d*=+B~?{@3;Dp=Jk&&><~PpbK!2(0JoZ4;{&?d(q2lOk z${?FPzC0Ly%cyA)9mU-%gQdqXb^whD=~?y|0;th#XF76>Ys1#Abp76vr6QmuZz%*O zxi=aj_%7Po+SV$mDNm@2W7GdUI1Y*7IgbLeV@TjpW+p;;*_vQ^m=TA4>i7^q;N4W6thV!K^PhG16mKkaS(jO)X z;BN20fTmP}gcz`13KcXz1!aMRTt((!>yic8(GVk#-a~1JEBun7dY#9@fbd6xP&wO_ zw&C#D0jFx8OH`9qk_Fq6R7BK%RGM`WlX+(A%VGv+v3lzykiSQQy4-0f%=hVa-?Y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy