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入门篇之条件、循环
Oct 17 Python
python制作最美应用的爬虫
Oct 28 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
Apr 17 Python
python3处理含有中文的url方法
May 10 Python
python实现音乐下载的统计
Jun 20 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
May 27 Python
Python程序包的构建和发布过程示例详解
Jun 09 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
手写一个python迭代器过程详解
2019/08/27 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
将keras的h5模型转换为tensorflow的pb模型操作
2020/05/25 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
四风问题对照检查材料整改措施
2014/09/27 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android