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


Posted in Python onApril 24, 2021

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

更改措施:

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

import matplotlib
matplotlib.rcParams['pdf.fonttype'] = 42
matplotlib.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.pdf
pdftops -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环境,即可正常导入.

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

Python 相关文章推荐
Python 的 Socket 编程
Mar 24 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python基础中所出现的异常报错总结
Nov 19 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
Python+pandas计算数据相关系数的实例
Jul 03 Python
python通过zabbix api获取主机
Sep 17 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
python实现计算器功能
Oct 31 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
简述python Scrapy框架
Aug 17 Python
Python requests接口测试实现代码
Sep 08 Python
Python实现小黑屋游戏的完整实例
Jan 06 Python
Python使用UDP实现720p视频传输的操作
python通配符之glob模块的使用详解
Apr 24 #Python
Django debug为True时,css加载失败的解决方案
Apr 24 #Python
python 模块重载的五种方法
Apr 24 #Python
写一个Python脚本自动爬取Bilibili小视频
python实现图片批量压缩
Apr 24 #Python
如何用python绘制雷达图
You might like
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
基于mysql的bbs设计(四)
2006/10/09 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
php通过各种函数判断0和空
2020/07/04 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Python中print和return的作用及区别解析
2019/05/05 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
详解python itertools功能
2020/02/07 Python
什么是Python中的匿名函数
2020/06/02 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
总经理助理工作职责
2014/02/06 职场文书
上课打牌的检讨书
2014/02/15 职场文书
职代会闭幕词
2015/01/28 职场文书
校园安全主题班会
2015/08/12 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
Python使用DFA算法过滤内容敏感词
2022/04/22 Python
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android