【字体,矢量图,matplotlib】Camera Ready中需要注意的几点

在论文被录用后,Camera Ready应该是最后需要准备的阶段,这时文章会被转换成PDF/A标准规范,因此原论文中的PDF如果有不合适的地方就会不通过转换,下面是需要注意的几点。

PDF裁剪

自己画的图有的是pdf格式,但是有空白,这时使用Adobe acrobat等PDF软件可以对PDF进行裁剪,但是注意这种裁剪是蒙版裁剪,即空白部分只是不可见,虽然自己看到的PDF没有问题,但是转换成PDF/A标准规范后,被裁剪的空白部分就可见了,可能会遮住文章的某些部分,这时有两种解决方法

  1. 在程序plt.savefig("myfig.pdf", dpi=300)前面,加入plt.tight_layout(),让程序自己删除不需要的空白部分
  2. 画成svg格式,在Powerpoint中编辑后,根据svg的大小,新建和svg大小相近的画布,这时导出pdf

PDF拼接

有时候需要多个pdf拼接在一起,多个小图构成一张大图,Powerpoint导入pdf后进行编辑会变糊

  1. 这时推荐使用Adobe illustrator进行拼接。
  2. 如果需要PDF转换成SVG格式,那么texlive 发行版,应该带有 pdftocairo.exe 这样一个工具,这是个开源的命令行工具,只需要命令行输入:pdftocairo -svg source.pdf, 就可以由 source.pdf 生成 source.svg. 1

使用其他字体

PDF/A标准规范不允许使用Type3字体,Times New Roman应该是Type1格式的,但是如果想用NimbusRomNo9L这类字体,可能会画出Type3字体,这时需要多加两句,代码如下:

    plt.rcParams['font.family'] = 'NimbusRomNo9L'  # [NimbusRomNo9L, Times New Roman]
    plt.rcParams['pdf.fonttype'] = 42  # 用Type1
    plt.rcParams['ps.fonttype'] = 42  # 用Type1

画图时,Linux服务器中没有需要的字体?请参考:Matplotlib介绍,基本操作,及美化

matplotlib中的dpi可以理解为ppi, 具体可参考:Matplotlib 系列:导出高 DPI 的图片

matplotlib 中图例的位置

请参考:
matplotlib 到底该如何控制legend的位置之一?
matplotlib如何控制legend的位置之二


  1. 如何将pdf转为矢量图片? ↩︎

你可能感兴趣的:(matplotlib)