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实现将汉字转换成汉语拼音的库
May 05 Python
linux下python抓屏实现方法
May 22 Python
python如何通过protobuf实现rpc
Mar 06 Python
vscode 远程调试python的方法
Dec 01 Python
python素数筛选法浅析
Mar 19 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
解决python有时候import不了当前的包问题
Aug 28 Python
django认证系统实现自定义权限管理的方法
Aug 28 Python
python 默认参数相关知识详解
Sep 18 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 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开发中常用的字符串操作函数
2011/02/08 PHP
php eval函数用法总结
2012/10/31 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
replace()方法查找字符使用示例
2013/10/28 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python中join和split用法实例
2015/04/14 Python
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
Python中每次处理一个字符的5种方法
2015/05/21 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
python虚拟环境完美部署教程
2019/08/06 Python
Python Selenium库的基本使用教程
2021/01/04 Python
119消防日活动总结
2014/08/29 职场文书
创业计划书之物流运送
2019/09/17 职场文书