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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
python中Apriori算法实现讲解
Dec 10 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python实现对csv文件的列的内容读取
Jul 04 Python
python实现windows倒计时锁屏功能
Jul 30 Python
python定位xpath 节点位置的方法
Aug 27 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 Python
python中xlrd模块的使用详解
Feb 01 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
一段php加密解密的代码
2006/10/09 PHP
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
浅谈python常用程序算法
2019/03/22 Python
Django中FilePathField字段的用法
2020/05/21 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
性能服装:HYLETE
2018/08/14 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
导游词之江南周庄
2019/12/06 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python