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 Requests 基础入门
Apr 07 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 Python
Python中作用域的深入讲解
Dec 10 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
5款实用的python 工具推荐
Oct 13 Python
python中tkinter复选框使用操作
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修改session_id示例代码
2014/01/08 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
jQuery控制图片的hover效果(smartRollover.js)
2012/03/18 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
简单介绍Python中的RSS处理
2015/04/13 Python
python3实现高效的端口扫描
2019/08/31 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
业务员简历自我评价
2014/03/06 职场文书
兴趣小组活动总结
2014/05/05 职场文书
公司副总经理任命书
2014/06/05 职场文书
校园文化标语
2014/06/18 职场文书
工程部经理岗位职责
2015/02/02 职场文书
小平小道观后感
2015/06/09 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers