Matplotlib在同一文本对象中具有mathtext方程和粗体特殊unicode字符

时间:2019-06-25 22:21:46

标签: python matplotlib

作为我正在进行的项目的一部分,我需要在希伯来语中同时包含粗体文本和Matplotlib文本艺术家中的mathtext方程。但是,我需要使用'cm'(计算机现代)字体集来呈现mathtext方程,并且将希伯来语文本呈现为实际的粗体希伯来语文本,而不是虚拟符号。
我尝试使用自定义的matplotlib字体和mathtext.fallback_to_cm标志来尝试诱使渲染器使用我的字体以及使用cm的其他所有字体渲染希伯来语,但是它似乎没有用,即使这样做确实非常不可移植杂乱无章(创建自定义Arial字体,但仅使用希伯来语字符以使一些句子加粗)。此外,文档似乎表明自定义模式“不受支持,将来可能会消失” 这是一些演示问题的代码:

import matplotlib.pyplot as plt

plt.rcParams['text.latex.preamble'] = [r'\usepackage{lmodern}']

#plt.rcParams['mathtext.fontset'] = 'cm' #disable/enable this line!!

plt.text(0.1, 0.5, "equation: $\\sum_i2^3$. bold text: $\\bf{א}$", fontsize=20)

plt.show()

启用或禁用带注释的输出行将在具有常规希伯来字母和具有常规Mathtext方程之间交替变化。
我用来寻找解决方案的一些资源:
the mathtext Matplotlib guide (see "fonts")
rcparams options (for font customization, ctrl+F "mathtext")
Stackoverflow answer with explanation on how to have only some of the text bold

编辑: 现代计算机在其字体中没有希伯来语字符。但是,这些字符不必是计算机上的现代字体,这似乎是Matplotlib方面的限制,我希望可以以比创建新字体系列更好的方式来绕过它们。

0 个答案:

没有答案