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 相关文章推荐
pycharm 使用心得(三)Hello world!
Jun 05 Python
Python内置函数 next的具体使用方法
Nov 24 Python
Python实现八皇后问题示例代码
Dec 09 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
12个Python程序员面试必备问题与答案(小结)
Jun 24 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
Python集成开发工具Pycharm的安装和使用详解
Mar 18 Python
Python中的整除和取模实例
Jun 03 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
Django执行源生mysql语句实现过程解析
Nov 12 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中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
asp.net刷新本页面的六种方法总结
2014/01/07 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
Python中类型检查的详细介绍
2017/02/13 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
2018/04/02 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python中reader的next用法
2018/07/24 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
python中selenium库的基本使用详解
2020/07/31 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
竞职演讲稿范文
2014/01/11 职场文书
小学生元旦广播稿
2014/02/21 职场文书
健康状况证明书
2014/11/26 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python