Paper中含有Type3的字体,需要修改为Type体

时间:2025-02-15 12:17:48

在提交ACM的Camera-Ready Paper时,被告知论文中有使用 Type-3 字体,应该改为 Type-1。

解释:由于Type-1 和 True Type 都是矢量字体,而 Type-3 并不是,所以放大或者打印时,会出现问题。

原因:可能会有三种原因,Python画的图,OriginLab画的图, 画的流程图。


Python:

  1. 原因:paper中出现Type3字体的是使用python的matplotlib画图时,默认设置是使用Type3,因此导致Type3字体的引入。

  2. 检查方法

    • windows可以安装 Adobe Acrobat,然后打开pdf文件,在文件->属性->字体中查看是否含有Type3字体
    • linux中使用命令:pdffonts MY_PDF.pdf
    • macos可以使用brew install poppler来安装pdffonts
  3. 解决方法:将python中matplotlib的默认字体设置调整为其他类型

    1. 查找matplotlibrc的位置:sudo find / -name "matplotlibrc" (一般都是在你安装的python环境子文件夹下,如~/anaconda3/envs/yolo3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
    2. 两项的值均设置为42即可。
    3. 还有一种临时方法就是直接在你的code中直接添加两个设置项:[''] = 42[''] = 42
  4. 其他问题:
    如果texstudio在读取生成带有type 42字体的eps时,无法在pdf中显示具体文字。可以在python中生成pdf文件,然后用Adobe Acrobat另存为eps。不显示文字

参考链接
参考链接


OriginLab:

  1. 问题描述
    origin 导出eps时,字体的嵌入做的很不好。默认情况字体导出设置是:Use Outlines Fonts。即把图片中字符根据轮廓转成曲线保存,不保留字体信息。
    理论上这样出来的eps都是曲线不存在字体,是不会有问题的。但偏偏origin导出的eps转成会变成“type3"字体类型信息。

  2. 解决方法

    1. 方法1(推荐):origin本身具备导出嵌入字体的功能。具体操作:
      File -> Export Graphs -> Open Dialog -> 弹出导出图片对话框
      Image Type 选择eps格式,然后一直拖下来,找到Image Setting->Eps options->Fonts, 选择 "Adobe Type1"+"Use Built-in Fonts" 即可。
      这样导出的eps文件,只要不含中文字体,就会正确嵌入英文字体。
      注:Origin 8.5.1 SR2版本,貌似该方法不起作用,可能是Bug。
    2. 方法2:eps2eps命令是包含在texlive发行版中的小工具,它能把一个eps图片中字体全部曲线化,转换后的eps再转成pdf时,不带任何字体信息。用法:eps2eps (经过我自己的试验,该方法不起作用。大家可以自己尝试一下。
    3. 如果含有中文,origin不支持导出嵌入正确的中文字体的eps图,但可以选择字体曲线化,即选Use OutlineFonts导出,再用eps2eps转换下即可。或者用Adobe Distiller转换为PDF后,再用acrobat打开,另存为eps格式回去即可。

参考链接


  1. 原因:画的图看似是TrueType的,但是带了一个CID,所以会议的编辑也会建议你修改为Type1或者TrueType的。
  2. 解决方法:使用Acrobat pro把该插图的pdf文件导出为PowerPoint演示文稿(.pptx),打开pptx可以发现其中包含的公式字符都变成了有点模糊的bitmap,然后再把pptx另存为PDF即可,原本字体中的TrueType(CID)变成了普通的TrueType字体。

参考链接