Кернинг шрифта (горизонтальное пространство между символами) в надстрочном тексте matplotlib в suptitle? - PullRequest
0 голосов
/ 18 октября 2019

Рассмотрим этот фрагмент:

#!/usr/bin/env python3

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
mynumber = 0
fig.suptitle(r'Yeah, this: $\mathregular{{2^{{ {}+1 }} }}$'.format(mynumber), fontsize=14)
plt.show()

На Matplotlib 3.1.1, Python 3.7.5 под MINGW64 (MSYS2) в Windows 10 я получаю это для заголовка сюжета:

fig_suptitle

Однако, на мой вкус, горизонтальный пробел / кернинг между 0 и + (и между + и 1)в тексте 0 + 1 это слишком много;Я хотел бы более плотный кернинг, что-то вроде этого (фотография отредактирована в Gimp):

fig_suptitle_02

Возможно ли это сделать / контролировать в Matplotlib, и еслиИтак - как я могу контролировать это (кернинг в верхнем индексе в тексте заголовка сюжета, с шрифтом по умолчанию)?

1 Ответ

0 голосов
/ 18 октября 2019

Опять же, благодаря @ImportanceOfBeingErnest -> \! на самом деле является командой TeX, и это означает:

https://tex.stackexchange.com/questions/455375/what-does-aka-backslash-exclamation-mark-do

Команда \! толькоразрешено в математическом режиме ... Его цель - вставить отрицательный тонкий пробел, который полезен в нескольких местах ... Отрицательный интервал \! точно соответствует положительному на \,

... и так, оказывается, его можно «сложить», то есть повторить, для еще большей затяжки;и мне просто нужно было повторить это дважды, чтобы получить почти тот же результат, что и тот, который я сфотографировал в ОП:

fig.suptitle(r'Yeah, this: $\mathregular{{2^{{ {}\!\!+\!\!1 }} }}$'.format(mynumber), fontsize=14)

Итак, теперь это хорошо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...