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字符串连接的N种方式总结
Sep 17 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
简单了解django索引的相关知识
Jul 17 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
Python数学形态学实例分析
Sep 06 Python
python 统计文件中的字符串数目示例
Dec 24 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
Python 列表中的修改、添加和删除元素的实现
Jun 11 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
Python 文字识别
May 11 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
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python中文编码问题小结
2014/09/28 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
pycharm导入源码的具体步骤
2020/08/04 Python
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
医学专业毕业生个人求职信
2013/12/25 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
2014年度党员自我评议
2014/09/13 职场文书
实习证明格式范文
2015/06/16 职场文书