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爬取NUS-WIDE数据库图片
Oct 05 Python
Python深入06——python的内存管理详解
Dec 07 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
Python提取频域特征知识点浅析
Mar 04 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
简单了解Django ContentType内置组件
Jul 23 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
django之从html页面表单获取输入的数据实例
Mar 16 Python
Python 处理日期时间的Arrow库使用
Aug 18 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
PHP实现简易计算器功能
2020/08/28 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
Js图片点击切换轮播实现代码
2020/07/27 Javascript
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
Python利用IPython提高开发效率
2016/08/10 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python基于win32api实现键盘输入
2020/12/09 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
音乐专业应届生教师求职信
2013/11/04 职场文书
公司领导推荐信
2013/11/12 职场文书
运动会致辞稿50字
2014/02/04 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
2015年安全生产责任书
2015/01/30 职场文书
新生开学寄语大全
2015/05/28 职场文书