Matplotlib: Изменить размер математического шрифта
Я делаю несколько графиков с помощью matplotlib, и я столкнулся с проблемой рендеринга TeX. Кажется, что x-высота математического текста немного меньше, чем у обычного битового потока Vera Sans. Смотрите следующий пример:
x = linspace(0, 30, 300);
y = 0.5*rand(300)+20/(numpy.power(x-15, 2)+4);
xlabel(r'$\omega$ (rad$\cdot$Hz)');
ylabel(r'Intensity$^2$');
title(r'Why is $mathtext$ so much smaller than normal text?');
Как видите, это особенно заметно по греческим буквам и цифрам. В идеале я бы мог определить некоторый коэффициент масштабирования, который бы просто увеличивал математический текст при каждом размере шрифта. Есть ли способ сделать это просто? Я не хочу просто использовать Computer Modern везде. Я также не хочу компилировать новый текстовый математический шрифт, если это вообще возможно.
Одно из решений, которое я выбрал бы, - это использование шрифтов без засечек для греческих букв и цифр, но по какой-то причине matplotlib игнорирует их форматирование:
title('Why does $mat\mathsf{plot}lib$ ignore formatting for $\mathsf{2}$ ($\mathsf{two}), $\mathbf{2}$ ($\mathbf{two}) and $\mathsf{\omega}$?')
Я предполагаю, что это как-то связано с характером того, как эти вещи набираются, но есть ли способ это исправить?
3 ответа
Кроме того, вы можете использовать
\mathdefault{...}
или его псевдоним\mathregular{...}
использовать шрифт, используемый для обычного текста за пределами математического текста. У этого подхода есть ряд ограничений, в частности, из-за того, что будет доступно гораздо меньше символов, но может быть полезно, чтобы математические выражения хорошо сочетались с другим текстом на графике.
Попробуйте установить
rcParams['text.usetex'] = True
который будет пытаться использовать внешнюю установку LaTeX, а не встроенный рендерер mathtext. Смотрите эту вики (хотя она немного устарела) и обсуждение вопроса № 1336.
Другой вариант, если вы ориентируетесь на LaTeX, это использовать pstricks.
Эта проблема должна быть исправлена в matplotlib 2. Смотрите проблему
Различный размер шрифта между математическим режимом и обычным текстом # 7778.
а также