【问题标题】:using the symbol font for Greek symbols in TeX via matplotlib通过 matplotlib 在 TeX 中使用希腊符号的符号字体
【发布时间】:2011-01-09 14:20:19
【问题描述】:

要在 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')

这使得等号及其右侧的所有内容都按预期使用 Helvetica 字体,而希腊符号默认为通常的 TeX 字体(我认为是 Times New Roman。)

如何使用于希腊字母的字体改为“符号”字体?重要的是不要让它出现在 TeX 的默认 Times 字体中。

感谢您的帮助。

【问题讨论】:

  • 通常的 TeX 字体不是 Times New Roman,而是 Computer Modern。只是说。
  • 您想要哪种希腊字体? Helvetica 字体中的希腊字母、希腊字体或 Unicode 中的希腊字符?这可能会有所帮助:stason.org/TULARC/travel/greece/…

标签: python latex matplotlib


【解决方案1】:

你应该问这个很有趣;不久前,我一直在努力解决类似的问题。考虑到 TeX 中的字体处理有多复杂,我会完全避开 TeX。

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

plt.xlabel(u'\u03bc = 50')
plt.ylabel(u'\u03c3 = 1.5')

对于查找代码点,这个Unicode codepoint lookup/search tool 真的很方便。

我不确定 matplotlib 是否以及如何处理 Unicode 字符串。如果上述方法失败,请使用 matplotlib 期望的某种编码进行编码。

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

【讨论】:

    猜你喜欢
    • 2016-06-29
    • 2011-07-14
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    相关资源
    最近更新 更多