我一直在努力使Word(方程式)和Matplotlib(图)之间的数学字体保持一致。在Word-equation中,我有以下选项:cambria数学,stix两个数学,dejavu数学漩涡(我不会使用最后一个)。
在matplotlib中,对于我的图,我用途:plt.rcParams['mathtext.fontset'] = 'stix'
(我不使用Tex)。
当我比较Word-equation“stix two math”结果和Matplotlib“stix”结果时,它们是不同的。(为什么?)我还尝试了this,通过直接指向PC中的.otf文件来修改matlplotlib。如果我理解正确的话,这只对文本有效,而对mathtext无效(mathtext在'$ equation $'
内部),所以我不能不改变mathtext以使其与word-equation一致。
有什么建议吗?谢谢,只要字体一致就可以了.但我不知道该怎么做。
版本和PC:Windows 10、Matplotlib 3.4.1、Python 3.9.13、
1条答案
按热度按时间ut6juiuv1#
也许这对其他使用ms word和使用python(matplotlib)的图形/绘图准备手稿的人来说会很有用。
首先,设置Ms word的数学字体。默认是Cambria Math,但我们可以添加其他数学字体,如stix two,xits等。请记住,数学和常规文本的字体是不同的。设置默认数学字体:在一个.doc文件中插入一个公式,进入标签
equation tools
,在“转换”旁边,点击箭头,将出现一个名为equation options
的窗口。选择默认值。在matplotlib中,它取决于我们需要匹配的字体:基本的是here。根据我有限的理解,在解决我自己的问题时,有几个选择:
1.使用matplotlib的mathtext字体家族:这是matplotlib中最简单的方法,但可用的mathfont非常有限。注意:stix math字体matplotlib是有点不同,如果你安装最新的stix两个数学在您的系统上(这是正在使用在您的字处理器).示例:
字符串
有关可用字体,请参见rcParams。
1.使用Tex引擎你必须知道一点关于乳胶序言。这里有(至少)两种选择:2.a.使用pdflatex
型
与下面的方法相比,这个方法稍微简单一些。不过,请参阅此answer以了解更多信息。
2.b.通过pgf后端使用XeLaTeX/LuaLaTeX,如here所述。例如,我们可以使用Cambria数学:
型
使用pgf后端,代码的工作方式略有不同:
\mathrm
相反,有\symup.
请参考此question。对于方法2,我们必须理解如何正确地设置前导码。上面给出了一些例子,但要了解更多信息,您需要参考latex文档/论坛等。
到目前为止,方法2.提供了最佳方法,因为它为数学文本提供了许多选项。它使用
unicode math
包,其中包含大量字体选项。更多信息是here。