python - Matplotlib 在同一文本对象中有 mathtext 方程和粗体特殊 unicode 字符
问题描述
作为我正在进行的项目的一部分,我需要在 Matplotlib 文本艺术家中同时拥有希伯来语的粗体文本和 mathtext 方程。但是,我需要使用(现代计算机)字体集呈现 mathtext 方程'cm'
,并将希伯来文本呈现为实际的粗体希伯来文本而不是虚拟符号。
我尝试使用自定义 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 Matplotlib 指南(请参阅“字体”)
rcparams 选项(用于字体自定义,ctrl+F “mathtext”)
Stackoverflow 回答并解释了如何仅将部分文本设为粗体
编辑: 现代计算机的字体中没有希伯来字符。但是,这些字符不需要是计算机现代字体,这似乎是 Matplotlib 方面的一个限制,我希望可以以比创建新字体系列更好的方式绕过它。
解决方案
推荐阅读
- java - 将额外的属性合并到二级 JSON 字符串中
- scheduling - 如果上下文切换时间为0,QT 1 RR调度是最高效的调度算法吗?
- javascript - 无法理解 javascript 中 const 的用法
- algorithm - 哪个最有效:Kadane 算法还是滑动窗口技术?
- php - 登录页面不显示
- oracle12c - OSB 12c - 服务器需要重新启动才能激活会话
- python - 在列标题 pandas 上方添加一些文本行
- r - 如何计算R中每个因子的总数
- node.js - 我可以执行一个函数来响应 TestCafe 中的失败断言吗?
- javascript - 除了使用 canvas.toDataUrl() 之外,有没有办法将图像转换为 .webp 文件以便在移动设备上工作(在 javascript 中)?