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中执行shell命令的几个方法小结
Sep 18 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
python简单操作excle的方法
Sep 12 Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 Python
Python实现代码统计工具
Sep 19 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
Python依赖包迁移到断网环境操作
Jul 13 Python
详解如何修改python中字典的键和值
Sep 29 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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
python写xml文件的操作实例
2014/10/05 Python
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
Python实现的建造者模式示例
2018/08/06 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
简单了解python中的与或非运算
2019/09/18 Python
基于Python fminunc 的替代方法
2020/02/29 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
银行类自荐信
2014/02/04 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
安徽导游词
2015/02/12 职场文书
暑假生活随笔
2015/08/15 职场文书
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏