matplotlib字体与LaTeX字体不匹配

问题描述 投票:1回答:1

我现在开始写博士论文,现在正在设置所有内容。其中一个目标是在方案和图中使用与文本中相同的字体。但是,在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:

乳胶比较:

但是,如果我现在在matplotlib中选择粗体文本:

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

我得到以下输出:

为了比较粗体和普通的纯LaTeX输出:

现在,我已经读过,为了在LaTeX中获得更好的数学支持,我应该将\usepackage[libertine]{nextxmath}添加到text.latex.preamble中的rc_params。如果我这样做,matplotlib会生成以下输出:

它仍然与我从LaTeX文档中获得的字体不同。有没有人有任何想法,我可以另外更改,使字体相同?

(无法发布内嵌图片......)

python matplotlib latex
1个回答
0
投票

在@ Patol75的评论的帮助下,我想出来了

所以它确实是一个“pythonic”问题。出于某种原因,如果您尝试使用:

$\textbf{...}$

在matplotlib标签中,它呈现如下:

matplotlib4

由于某些原因我没有进一步研究,LaTeX命令从\b... spit out an error开始。这阻止了\bm的易用性。但是,如果在命令前使用r'一切正常。因此,可以使用:

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

这会产生正确/预期的输出: matplotlib5

© www.soinside.com 2019 - 2024. All rights reserved.