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列出一个文件夹及其子目录的所有文件
Jun 30 Python
scrapy爬虫实例分享
Dec 28 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 Python
python:print格式化输出到文件的实例
May 14 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
用Python逐行分析文件方法
Jan 28 Python
python支付宝支付示例详解
Aug 22 Python
python快速排序的实现及运行时间比较
Nov 22 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 Python
pycharm 代码自动补全的实现方法(图文)
Sep 18 Python
python 下划线的多种应用场景总结
May 12 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
jQuery 操作XML入门
2008/12/25 Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
javascript 写类方式之九
2009/07/05 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
JavaScript 日期时间选择器一些小结
2018/04/02 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
Python3使用requests发闪存的方法
2016/05/11 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
2018/01/22 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
python 实现端口扫描工具
2020/12/18 Python
工商管理实习自我鉴定
2013/09/28 职场文书
走进敬老院活动总结
2014/07/10 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
早会开场白台词大全
2015/06/01 职场文书
小学班级管理心得体会
2016/01/07 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP