我现在开始写博士论文,现在正在设置所有内容。其中一个目标是在方案和图中使用与文本中相同的字体。但是,在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文档中获得的字体不同。有没有人有任何想法,我可以另外更改,使字体相同?
(无法发布内嵌图片......)
在@ Patol75的评论的帮助下,我想出来了
所以它确实是一个“pythonic”问题。出于某种原因,如果您尝试使用:
$\textbf{...}$
在matplotlib标签中,它呈现如下:
由于某些原因我没有进一步研究,LaTeX命令从\b...
spit out an error开始。这阻止了\bm
的易用性。但是,如果在命令前使用r'
一切正常。因此,可以使用:
r'\textbf{TS$_{\textbf{I,II}}$}'
这会产生正确/预期的输出: matplotlib5