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 相关文章推荐
Python3 入门教程 简单但比较不错
Nov 29 Python
python求列表交集的方法汇总
Nov 10 Python
python base64 decode incorrect padding错误解决方法
Jan 08 Python
Python中max函数用法实例分析
Jul 17 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Windows下python3.6.4安装教程
Jul 31 Python
对python的输出和输出格式详解
Dec 08 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
Python的Django框架中的数据过滤功能
2015/07/17 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
Python3生成手写体数字方法
2018/01/30 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
AUC计算方法与Python实现代码
2020/02/28 Python
Html5 webview元素定位工具的实现
2020/08/07 HTML / CSS
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
工程部经理岗位职责
2013/12/08 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
投标邀请书范文
2014/01/31 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
科学育儿宣传标语
2014/10/08 职场文书
区域销售大会开幕词
2016/03/04 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python