————————————————– ——————–超轻/ HMI </跨度> /kme/.fonts/Alegreya_Sans/AlegreyaSans-Light.ttf光/ HMI </跨度> /kme/.fonts/Alegreya_Sans/AlegreyaSans-Light.ttf正常/ HMI </跨度> /kme/.fonts/Alegreya_Sans/AlegreyaSans-Thin.ttf常规/ HMI </跨度> /kme/.fonts/Alegreya_Sans/AlegreyaSans-Thin.ttf书/ HMI </跨度> /kme/.fonts/Alegreya_Sans/AlegreyaSans-Thin.ttf中/ HMI </跨度> / kme
感谢您发布此消息 - 在尝试安装Fira Sans字体以使用matplotlib时,我遇到了无法显示正确字体粗细的类似问题。将字体权重与文件名相关联的诊断非常有用。
在Mac上,我解决了我的问题,我删除了计算机上的所有Fira Sans .ttf文件,并通过Font Book重新安装ab initio。事实证明,当我不知道自己在做什么时,我之前已经在其他字体目录中放置了几个Fira Sans字体文件(包括FiraSans-Regular)。随后,当我尝试使用Font Book安装Fira Sans时, regular 字体无法正确安装,导致fontmanager选择了奇怪的字体。
regular
tl; dr - 如果您运行上面的诊断并且看不到给定重量旁边的文件名,请检查字体书中字体是否正确安装。
我通过解决方法手动修复了问题。无论如何这似乎是一个错误。正如汤姆所说,我将所有字体复制到$ HOME / .fonts 的 没有子目录 强> 。这改变了我在问题中给出的脚本的输出。为了找出错误,我试图打印出所有组合 重量 和 样式 Alegreya和Alegreya Sans的方式如下:
import matplotlib matplotlib.use('Qt4Agg') print matplotlib.get_backend() import matplotlib.pyplot as plt alignment = {'horizontalalignment':'center', 'verticalalignment':'baseline'} alegreya_weights = { 'Alegreya': ['regular', 'bold', 'black'], 'Alegreya Sans': ['ultralight', 'light', 'regular', 'medium', 'bold', 'extra bold', 'black'] } styles = ['normal', 'italic'] combinations = [] for family in alegreya_weights.keys(): for style in styles: for weight in alegreya_weights[family]: combinations.append((family, weight, style)) N = len(combinations) def textPlot(ax, i, N, family, weight, style): y = 1.-(1./float(N)) -float(i)/(float(N)+1) ax.text(0.5, y, family+' '+weight+' '+style, family=family, weight=weight, style = style, fontsize = 30, **alignment) fig = plt.figure(figsize=(8, .7*N), frameon=False) ax = plt.gca() ax.axis('off') plt.xlim((0.,1.)) plt.ylim((0.,1.)) for i,c in enumerate(combinations): textPlot(ax, i, N, c[0], c[1], c[2]) plt.show()
结果表明 的 只有AlegreyaSans-Regular.ttf被AlegreyaSans-Thin.ttf取代 强> 。我无法确定这是否是由于“Thin”这个词,它在matplotlib-syntax中被称为“ultralight”。我在$ HOME / .cache / matplotlib / fontList.cache中用“AlegreyaSans-Regular.ttf”替换了“AlegreyaSans-Thin.ttf”来解决问题。
现在,以下图像来自上面的脚本。 未检测到薄(超轻) 。
的 感谢汤姆的任何帮助。 强>