diff --git a/lib/matplotlib/_mathtext_data.py b/lib/matplotlib/_mathtext_data.py
index 010945d4aeba..7f6c4e84f735 100644
--- a/lib/matplotlib/_mathtext_data.py
+++ b/lib/matplotlib/_mathtext_data.py
@@ -2355,17 +2355,17 @@
[
(0x0030, 0x0039, 'rm', 0x1d7d8), # 0-9
(0x0041, 0x0042, 'it', 0xe154), # A-B
- (0x0043, 0x0043, 'it', 0x2102), # C (missing in beta STIX fonts)
+ (0x0043, 0x0043, 'it', 0x2102), # C
(0x0044, 0x0044, 'it', 0x2145), # D
(0x0045, 0x0047, 'it', 0xe156), # E-G
- (0x0048, 0x0048, 'it', 0x210d), # H (missing in beta STIX fonts)
+ (0x0048, 0x0048, 'it', 0x210d), # H
(0x0049, 0x004d, 'it', 0xe159), # I-M
- (0x004e, 0x004e, 'it', 0x2115), # N (missing in beta STIX fonts)
+ (0x004e, 0x004e, 'it', 0x2115), # N
(0x004f, 0x004f, 'it', 0xe15e), # O
- (0x0050, 0x0051, 'it', 0x2119), # P-Q (missing in beta STIX fonts)
- (0x0052, 0x0052, 'it', 0x211d), # R (missing in beta STIX fonts)
+ (0x0050, 0x0051, 'it', 0x2119), # P-Q
+ (0x0052, 0x0052, 'it', 0x211d), # R
(0x0053, 0x0059, 'it', 0xe15f), # S-Y
- (0x005a, 0x005a, 'it', 0x2124), # Z (missing in beta STIX fonts)
+ (0x005a, 0x005a, 'it', 0x2124), # Z
(0x0061, 0x0063, 'it', 0xe166), # a-c
(0x0064, 0x0065, 'it', 0x2146), # d-e
(0x0066, 0x0068, 'it', 0xe169), # f-h
@@ -2380,8 +2380,23 @@
'bf':
[
(0x0030, 0x0039, 'rm', 0x1d7d8), # 0-9
- (0x0041, 0x005a, 'bf', 0xe38a), # A-Z
- (0x0061, 0x007a, 'bf', 0xe39d), # a-z
+ (0x0041, 0x0042, 'bf', 0xe38a), # A-B
+ (0x0043, 0x0043, 'bf', 0x2102), # C
+ (0x0044, 0x0044, 'bf', 0x2145), # D
+ (0x0045, 0x0047, 'bf', 0xe38d), # E-G
+ (0x0048, 0x0048, 'bf', 0x210d), # H
+ (0x0049, 0x004d, 'bf', 0xe390), # I-M
+ (0x004e, 0x004e, 'bf', 0x2115), # N
+ (0x004f, 0x004f, 'bf', 0xe395), # O
+ (0x0050, 0x0051, 'bf', 0x2119), # P-Q
+ (0x0052, 0x0052, 'bf', 0x211d), # R
+ (0x0053, 0x0059, 'bf', 0xe396), # S-Y
+ (0x005a, 0x005a, 'bf', 0x2124), # Z
+ (0x0061, 0x0063, 'bf', 0xe39d), # a-c
+ (0x0064, 0x0065, 'bf', 0x2146), # d-e
+ (0x0066, 0x0068, 'bf', 0xe3a2), # f-h
+ (0x0069, 0x006a, 'bf', 0x2148), # i-j
+ (0x006b, 0x007a, 'bf', 0xe3a7), # k-z
(0x0393, 0x0393, 'bf', 0x213e), # \Gamma
(0x03a0, 0x03a0, 'bf', 0x213f), # \Pi
(0x03a3, 0x03a3, 'bf', 0x2140), # \Sigma
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.pdf
new file mode 100644
index 000000000000..eb281a975da8
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.png
new file mode 100644
index 000000000000..cd7fd7ba5093
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.svg
new file mode 100644
index 000000000000..93e04ce5c5e8
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font.svg
@@ -0,0 +1,3056 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.pdf
new file mode 100644
index 000000000000..a5128ac88733
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.png
new file mode 100644
index 000000000000..0b94a85b8a3b
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.svg
new file mode 100644
index 000000000000..f544d68cb295
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stix.svg
@@ -0,0 +1,3272 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.pdf b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.pdf
new file mode 100644
index 000000000000..d81983806ec3
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.png b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.png
new file mode 100644
index 000000000000..d7b5f32c1ba5
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.svg b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.svg
new file mode 100644
index 000000000000..9dc4f52e2c0f
--- /dev/null
+++ b/lib/matplotlib/tests/baseline_images/test_mathtext/mathtext_font_stixsans.svg
@@ -0,0 +1,3080 @@
+
+
+
+
diff --git a/lib/matplotlib/tests/test_mathtext.py b/lib/matplotlib/tests/test_mathtext.py
index 736ba2072792..2c95581cf8d1 100644
--- a/lib/matplotlib/tests/test_mathtext.py
+++ b/lib/matplotlib/tests/test_mathtext.py
@@ -82,25 +82,73 @@
r'${x}_{92}^{31415}+\pi $',
r'${x}_{{y}_{b}^{a}}^{{z}_{c}^{d}}$',
r'${y}_{3}^{\prime \prime \prime }$',
- r"$\left( \xi \left( 1 - \xi \right) \right)$" # Bug 2969451
+ r"$\left( \xi \left( 1 - \xi \right) \right)$", # Bug 2969451
]
-def _run_all_tests():
- fig = plt.figure(figsize=(5, len(math_tests) / 2.0))
- for i, test in enumerate(math_tests):
- fig.text(0, float(len(math_tests) - i - 1) / len(math_tests), test)
+digits = "0123456789"
+uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+lowercase = "abcdefghijklmnopqrstuvwxyz"
+uppergreek = (r"\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi "
+ r"\Omega")
+lowergreek = (r"\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota "
+ r"\lambda \mu \nu \xi \pi \kappa \rho \sigma \tau \upsilon "
+ r"\phi \chi \psi")
+all = [digits, uppercase, lowercase, uppergreek, lowergreek]
+
+font_test_specs = [
+ ([], all),
+ (['mathrm'], all),
+ (['mathbf'], all),
+ (['mathit'], all),
+ (['mathtt'], [digits, uppercase, lowercase]),
+ (['mathcircled'], [digits, uppercase, lowercase]),
+ (['mathrm', 'mathcircled'], [digits, uppercase, lowercase]),
+ (['mathbf', 'mathcircled'], [digits, uppercase, lowercase]),
+ (['mathbb'], [digits, uppercase, lowercase,
+ r'\Gamma \Pi \Sigma \gamma \pi']),
+ (['mathrm', 'mathbb'], [digits, uppercase, lowercase,
+ r'\Gamma \Pi \Sigma \gamma \pi']),
+ (['mathbf', 'mathbb'], [digits, uppercase, lowercase,
+ r'\Gamma \Pi \Sigma \gamma \pi']),
+ (['mathcal'], [uppercase]),
+ (['mathfrak'], [uppercase, lowercase]),
+ (['mathbf', 'mathfrak'], [uppercase, lowercase]),
+ (['mathscr'], [uppercase, lowercase]),
+ (['mathsf'], [digits, uppercase, lowercase]),
+ (['mathrm', 'mathsf'], [digits, uppercase, lowercase]),
+ (['mathbf', 'mathsf'], [digits, uppercase, lowercase])
+ ]
+
+font_tests = []
+for fonts, chars in font_test_specs:
+ wrapper = [' '.join(fonts), ' $']
+ for font in fonts:
+ wrapper.append(r'\%s{' % font)
+ wrapper.append('%s')
+ for font in fonts:
+ wrapper.append('}')
+ wrapper.append('$')
+ wrapper = ''.join(wrapper)
+
+ for set in chars:
+ font_tests.append(wrapper % set)
+
+def _run_all_tests(tests):
+ fig = plt.figure(figsize=(5, len(tests) / 2.0))
+ for i, test in enumerate(tests):
+ fig.text(0, float(len(tests) - i - 1) / len(tests), test)
return fig
@image_comparison(baseline_images=['mathtext'])
def test_mathtext():
- fig = _run_all_tests()
+ fig = _run_all_tests(math_tests)
fig.savefig('mathtext')
@image_comparison(baseline_images=['mathtext_stix'])
def test_mathtext_stix():
matplotlib.rcParams['mathtext.fontset'] = 'stix'
- fig = _run_all_tests()
+ fig = _run_all_tests(math_tests)
fig.savefig('mathtext_stix')
matplotlib.rcParams['mathtext.fontset'] = 'cm'
@@ -109,9 +157,30 @@ def test_mathtext_stix():
def test_mathtext_stixsans():
matplotlib.rcParams['mathtext.fontset'] = 'stixsans'
- fig = _run_all_tests()
+ fig = _run_all_tests(math_tests)
fig.savefig('mathtext_stixsans')
matplotlib.rcParams['mathtext.fontset'] = 'cm'
+@image_comparison(baseline_images=['mathtext_font'])
+def test_mathtext_font():
+ fig = _run_all_tests(font_tests)
+ fig.savefig('mathtext_font')
+
+@image_comparison(baseline_images=['mathtext_font_stix'])
+def test_mathtext_font_stix():
+ matplotlib.rcParams['mathtext.fontset'] = 'stix'
+
+ fig = _run_all_tests(font_tests)
+ fig.savefig('mathtext_font_stix')
+ matplotlib.rcParams['mathtext.fontset'] = 'cm'
+
+@image_comparison(baseline_images=['mathtext_font_stixsans'])
+def test_mathtext_font_stixsans():
+ matplotlib.rcParams['mathtext.fontset'] = 'stixsans'
+
+ fig = _run_all_tests(font_tests)
+ fig.savefig('mathtext_font_stixsans')
+
+ matplotlib.rcParams['mathtext.fontset'] = 'cm'