matplotlib中的Latex字体

matplotlib中的Latex字体,matplotlib,latex,Matplotlib,Latex,我知道已经有几个问题了(例如),但在matplotlib中设置latex字体时一直存在问题。我正在使用 font = {'family' : 'serif', 'serif': 'helvet', 'weight' : 'bold', 'size' : 20} matplotlib.rc('font', **font) matplotlib.rc('text', usetex=True) 乍一看,这是正确的,但如果仔细观察,图中字母的宽度似乎与用乳胶编写的手稿中字

我知道已经有几个问题了(例如),但在matplotlib中设置latex字体时一直存在问题。我正在使用

font = {'family' : 'serif',
    'serif': 'helvet',
    'weight' : 'bold',
    'size'   : 20}

matplotlib.rc('font', **font)
matplotlib.rc('text', usetex=True)
乍一看,这是正确的,但如果仔细观察,图中字母的宽度似乎与用乳胶编写的手稿中字母的宽度不匹配(见截图)

请注意,这个问题是关于图中的文本,而不是关于图中的数学字体(它工作得很好),而且也不仅仅是关于字体大小的问题。所以我有两个问题:

  • 字体中的衬线设置对我的参数有什么作用吗(我也用过计算机Modern Roman,但看不出有什么区别)

  • 有没有办法使这种字体完全正确


  • 我知道这看起来像是一个固执的人,但我在工作中使用matplotlib,我确实需要精确匹配这些字体。如果这是不可能的,我将需要使用外部图形(或latex/psfrag)软件在生成图形后插入字体-这是可以的,但我很高兴在我停止尝试之前知道人们对此的想法或处理这些问题。谢谢

    那么您确定在latex文档中也使用相同的字体?我认为latex可能会调整段落中的字母间距,因此,如果在latex和您的图中使用单个单词“集合人口”,还会有差异吗?如果你想让人们进一步了解这一点,那么提供一个包含latex文档的文档可能会有所帮助。你用什么格式保存你的图片?我将图片保存为pdf格式(使用savefig)——这会有所不同吗?不,我认为字母宽度是恒定的,但单词之间的间距不同(我不确定字母的间距,但是的,即使我在一个单词中加入“集合人口”也有明显的区别)。同样值得注意的是,字体的大小很小,但高度更高。(此外,即使字母“p”不同,乳胶中较低的水平线也更宽更粗。)我认为这通常是好的,因为通常字体没有经过仔细比较,但显然在这种情况下,人们确实注意到了。我稍后会发布一个可验证的示例,但我只是想检查我是否犯了一些显而易见的错误-如果看起来更微妙,可能不值得,最好不要这样做matplotlib(这很好,因为matplotlib的主要目的不是匹配tex 100%)