В рамках проекта, над которым я работаю, мне нужно иметь жирный текст в уравнениях иврита и математический текст в текстовом редакторе Matplotlib.Но мне нужно, чтобы уравнения математического текста отображались с использованием набора шрифтов '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()
Включение или отключение закомментированной строки будет чередоваться междуобычные ивритские буквы и нормальные математические уравнения.
некоторые ресурсы, которые я использовал для поиска решений:
руководство по Matthlotlib для mathtext (см. «шрифты»)
параметры rcparams (длянастройка шрифта, ctrl + F "mathtext")
Ответ Stackoverflow с объяснением того, как сделать только часть текста жирным шрифтом
Редактировать: Компьютерные современные шрифты не содержат символов иврита.Однако эти символы не обязательно должны быть компьютерным современным шрифтом, это просто ограничение со стороны Matplotlib, которое, я надеюсь, можно обойти лучше, чем создание нового семейства шрифтов.