通过matplotlib在TeX中使用希腊符号的符号字体

6 python latex matplotlib

要在Python的matplotlib包中用希腊字母注释我的数字,我使用以下内容:

import matplotlib
matplotlib.use('PDF')
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
plt.rcParams['ps.useafm'] = True
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
plt.rcParams['pdf.fonttype'] = 42
# plot figure
# ...
# annotate figure
plt.xlabel(r'$\mu$ = 50')
plt.ylabel(r'$\sigma$ = 1.5')
Run Code Online (Sandbox Code Playgroud)

这使得Helvetica字体中的等号及其右边的所有符号都符合预期,希腊符号默认为通常的TeX字体(我认为是Times New Roman.)

我怎样才能使希腊字母使用的字体是"符号"字体呢?对我来说重要的是不要让它出现在TeX的默认Times字体中.

谢谢你的帮助.

Tho*_*mas 13

有趣的你应该问这个; 不久前我一直在努力解决类似的问题.考虑到TeX中字体处理的复杂程度,我完全回避了TeX.

但是,任何体面的Helvetica都内置了希腊字母,因此您不需要使用Symbol字体.只需将一些Unicode代码点放入字符串中,如下所示:

plt.xlabel(u'\u03bc = 50')
plt.ylabel(u'\u03c3 = 1.5')
Run Code Online (Sandbox Code Playgroud)

为了找到代码点,这个Unicode代码点查找/搜索工具非常方便.

我不确定matplotlib是否以及如何处理Unicode字符串.如果上述操作失败,请编码matplotlib期望的某些编码.

(如果你真的坚持使用Symbol:我不认为你可以在同一个标​​签中使用多个字体,那么你将不得不添加多个标签并编写一些代码以使它们彼此对齐.它不是很漂亮,但是可以办到.)