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 相关文章推荐
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
python提取具有某种特定字符串的行数据方法
Dec 11 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
Django logging配置及使用详解
Jul 23 Python
Django如何将URL映射到视图
Jul 29 Python
Golang GBK转UTF-8的例子
Aug 26 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
Python 字符串池化的前提
Jul 03 Python
Python自定义sorted排序实现方法详解
Sep 18 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
Nov 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
PHP实现用户认证及管理完全源码
2007/03/11 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
php中通过curl检测页面是否被百度收录
2013/09/27 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
JS实现随机点名器
2020/04/12 Javascript
EXTJS7实现点击拖拉选择文本
2020/12/17 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
python3大文件解压和基本操作
2017/12/15 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
社区八一活动方案
2014/02/03 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
求职简历自我评价范文
2015/03/10 职场文书
接待员岗位职责范本
2015/04/15 职场文书
高考1977观后感
2015/06/04 职场文书