用Python Matplotlib画图导致paper中含有Type-3字体,如何解决?
在提交ACM或者IEEE论文之前,都会有格式的检查,格式的其中一个要求是paper中不能含有Type-3的字体。因为Type-1和True Type字体都是矢量字体,而Type-3并不是,在放大或者打印时可能会出现问题。
如果使用Python中的matplotlib 以PDF格式来生成的paper中需要的图,而matplotlib 默认字体是Type-3,如果画图时不加以设置,那么就会导致paper中存在不符合要求的Type-3字体。那么如何将matplotlib 默认字体由Type-3设置为Type-1呢?
方法一
调用matplotlib时,通过以下语句临时将pdf.fonttype和ps.fonttype变为42 。
import matplotlib
matplotlib.rcParams['pdf.fonttype'] = 42
matplotlib.rcParams['ps.fonttype'] = 42
方法二
我们可以通过修改matplotlibrc来改变所有 matplotlib 生成的 pdf 中的字体为 Type-3。
# 查找 matplotlibrc 位置
sudo find / -name "matplotlibrc"
# 编辑 matplotlibrc 文件
sudo vim /$(pwd)/matplotlibrc
修改文件中的pdf.fonttype和ps.fonttype的值
pdf.fonttype : 42
ps.fonttype : 42
如何检查paper中是否存在Type-3字体?
① 用Adobe Acrobat Reader打开paper的PDF文件
② 点击File->Properties ->Fonts 查看是否存在Type-3字体