шрифты matplotlib не совпадают со шрифтами LaTeX - PullRequest
1 голос
/ 30 апреля 2019

В настоящее время я начинаю писать свою диссертацию и сейчас занимаюсь настройкой всего. Одной из целей является использование того же шрифта в схемах и рисунках, что и в тексте. Однако при выборе жирного текста в matplotlib шрифты не соответствуют латексному шрифту.

В данный момент я использую эти rc_params:

new_rc_params = {'text.usetex': True,
         'svg.fonttype': 'none',
         'text.latex.preamble': r'\usepackage{libertine}',
         'font.size': 10,
         'font.family': 'Linux Libertine',
         'mathtext.fontset': 'custom',
         'mathtext.rm': 'libertine',
         'mathtext.it': 'libertine:italic',
         'mathtext.bf': 'libertine:bold'
         }

mpl.rcParams.update(new_rc_params)

Насколько я могу судить, это приведет к правильному шрифту в обычном тексте.
Matplotlib:
matplotlib1

Сравнение LaTeX:
latex-comparison1

Если я теперь, однако, выделю жирный текст в matplotlib через:

$\mathbf{TS_{I,II}}$

Я получаю следующий вывод:
matplotlib2

Для сравнения: жирный и обычный чистый латексный вывод:
latex-comparison2

Теперь я прочитал, что для лучшей поддержки математики в LaTeX я должен добавить \usepackage[libertine]{nextxmath} к text.latex.preamble в rc_params. Если я сделаю это, matplotlib сгенерирует следующий вывод:

matlplotlib3

Который по-прежнему отличается от шрифта, который я получаю из своего документа LaTeX. У кого-нибудь есть идеи, что я мог бы дополнительно изменить, чтобы сделать шрифты идентичными?

(Не удается опубликовать встроенные изображения ...)

1 Ответ

0 голосов
/ 30 апреля 2019

Я понял это с помощью комментария от @ Patol75

Так что это действительно скорее "питоническая" проблема. По какой-то причине, если вы пытаетесь использовать:

$\textbf{...}$

в метке matplotlib визуализируется следующим образом:

matplotlib4

По какой-то причине, которую я не стал рассматривать дальше, команды LaTeX, начинающиеся с \b... , выдают ошибку . Что помешало простому использованию \bm. Однако, если вы используете r' перед командой, все работает нормально. Поэтому можно использовать:

r'\textbf{TS$_{\textbf{I,II}}$}'

Это дает правильный / ожидаемый результат:
matplotlib5

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