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实现设置windows桌面壁纸代码分享
Mar 28 Python
python正则中最短匹配实现代码
Jan 16 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
在python中做正态性检验示例
Dec 09 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
使用jupyter notebook运行python和R的步骤
Aug 13 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
pytorch fine-tune 预训练的模型操作
Jun 03 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+flash+jQuery多图片上传源码分享
2020/07/27 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
项目实践之javascript技巧
2007/12/06 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
js有序数组的连接问题
2013/10/01 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
javascript实现动态标签云
2015/10/16 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
2016/08/28 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
Python的time模块中的常用方法整理
2015/06/18 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python实现的质因式分解算法示例
2018/05/03 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
pytorch permute维度转换方法
2018/12/14 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
一套Java笔试题
2016/08/20 面试题
社区工作者思想汇报
2014/01/13 职场文书
小学节能减排倡议书
2014/05/15 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
学校食堂管理制度
2015/08/04 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书