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环境,即可正常导入.
以上为个人经验,希望能给大家一个参考,也希望大家多多支持 。如有错误或未考虑完全的地方,望不吝赐教。
最后更新于 2021-11-22 08:21:46 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章
- 花美惠湿厕纸除菌卫生湿纸巾80抽可溶解冲马桶洁厕纸家庭装湿巾
- 纯HTML5+CSS3制作生日蛋糕代码
- 艾草泡脚药包粉月子足浴粉去艾叶生姜花椒寒湿备孕泡脚包调理产妇
- js实现移动端H5页面手指滑动刻度尺功能
- 用U盘装Win8系统完美攻略为笔记本用户量身定做