您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:pdf论文中python画的图Type 3 fonts字体不兼容的解决方案

51自学网 2021-10-30 22:43:36
  python
这篇教程pdf论文中python画的图Type 3 fonts字体不兼容的解决方案写得很实用,希望能帮到您。

python matplotlib画图产生的Type 3 fonts字体不兼容

更改措施:

使用Type 42字体来生成PostScript 和PDF 文件。

import matplotlibmatplotlib.rcParams['pdf.fonttype'] = 42matplotlib.rcParams['ps.fonttype'] = 42

补充:Type 3字体的解决办法

这个问题困扰了我一天了,成功解决,这种感觉太爽了。

提交MNRAS的pdf文件可能会因为含有type3字体而无法在线生成proof。

如遇此种情况,可先如下确认

pdffonts paper.pdf

看输出是否含有type3字体

如果是,则先考虑官方的建议,在文件头部加入:

/usepackage[T1]{fontenc}/usepackage{aecompl}

重新编译

问题依旧的话,应该是插图中含有type3字体。比如用python画图,默认的似乎就是输出成type3. 修改

~/.matplotlib/matplotlibrc

加入(或者修改)如下两行

ps.fonttype : 42 # Output Type 3 (Type3) or Type 42 (TrueType)pdf.fonttype : 42 # Output Type 3 (Type3) or Type 42 (TrueType)

重新画图

另一种解决方式是,将问题图片(如果是eps格式)用eps2eps转换一遍。但转换之后的图片中的字体被像素化了,放大时不清晰,不推荐。

还有一个方法效果好一些:先转成pdf再转回eps, 比如对fig.eps,

epstopdf fig.eps fig.pdfpdftops -eps -r 400 fig.pdf fig.eps

补充:python3 PIL使用font字体错误:OSError: cannot open resource问题解决

错误日志

>>> from PIL import ImageFont>>> ImageFont.truetype<function truetype at 0x0000021178B82B70>>>> ImageFont.truetype("NotoSansCJK-Regular.ttc", 30)Traceback (most recent call last):  File "<stdin>", line 1, in <module>  File "D:/Users/52489/Anaconda3/lib/site-packages/PIL/ImageFont.py", line 261, in truetype    return FreeTypeFont(font, size, index, encoding, layout_engine)  File "D:/Users/52489/Anaconda3/lib/site-packages/PIL/ImageFont.py", line 144, in __init__    self.font = core.getfont(font, size, index, encoding, layout_engine=layout_engine)OSError: cannot open resource

解决方法

缺少对应字体文件: NotoSansCJK-Regular.ttc

在网上找到对应的font文件

以我的Ubuntu 16为例, 字体文件在"/usr/share/fonts/truetype"中,

因此,把下载到的ttc文件放到 /usr/share/fonts/truetype 文件夹当中.

重新启动python环境,即可正常导入.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。


Python使用UDP实现720p视频传输的操作
解决Django transaction进行事务管理踩过的坑
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。