在论文被录用后,Camera Ready应该是最后需要准备的阶段,这时文章会被转换成PDF/A标准规范,因此原论文中的PDF如果有不合适的地方就会不通过转换,下面是需要注意的几点。
PDF裁剪
自己画的图有的是pdf格式,但是有空白,这时使用Adobe acrobat等PDF软件可以对PDF进行裁剪,但是注意这种裁剪是蒙版裁剪,即空白部分只是不可见,虽然自己看到的PDF没有问题,但是转换成PDF/A标准规范后,被裁剪的空白部分就可见了,可能会遮住文章的某些部分,这时有两种解决方法
- 在程序
plt.savefig("myfig.pdf", dpi=300)
前面,加入plt.tight_layout()
,让程序自己删除不需要的空白部分 - 画成svg格式,在Powerpoint中编辑后,根据svg的大小,新建和svg大小相近的画布,这时导出pdf
PDF拼接
有时候需要多个pdf拼接在一起,多个小图构成一张大图,Powerpoint导入pdf后进行编辑会变糊
- 这时推荐使用Adobe illustrator进行拼接。
- 如果需要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 # 用Type1plt.rcParams['ps.fonttype'] = 42 # 用Type1
画图时,Linux服务器中没有需要的字体?请参考:Matplotlib介绍,基本操作,及美化
matplotlib中的dpi可以理解为ppi, 具体可参考:Matplotlib 系列:导出高 DPI 的图片
matplotlib 中图例的位置
请参考:
matplotlib 到底该如何控制legend的位置之一?
matplotlib如何控制legend的位置之二
如何将pdf转为矢量图片? ↩︎