无法让我的 pdf 和 .ps 文件使用 type 1 字体

无法让我的 pdf 和 .ps 文件使用 type 1 字体

我正在准备一篇论文,准备提交给 ACM 论文集和数字图书馆。但是,我一直收到出版社发来的“您的 pdf 和 .ps 文件都使用 type 3 字体,您需要使用 type 1 字体”的错误信息。

我已生成 PS 和 PDF 格式的图表,并且均使用 type 3 字体。我希望尽可能避免任何需要我重现图表(使用 matplotlib 和 python)的解决方案(重新计算的计算时间意味着我会错过最后期限)。

我尝试了以下命令:

dvips -P pdf -t letter -o <file>.ps <file>.dvi

\usepackage[T1]{fontenc}
\usepackage{lmodern}

在我的 PS 文件和 PDFS 中仍然可以获得 Type 3 字体

pdffonts <file>.pdf 
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
LBEWKO+NimbusSanL-Regu               Type 1C           yes yes no      10  0
PUBBEM+NimbusSanL-Bold               Type 1C           yes yes no       8  0
YFYECG+CMSY10                        Type 1C           yes yes yes     18  0
AHPFBS+NimbusRomNo9L-ReguItal        Type 1C           yes yes no      16  0
AXUBMJ+NimbusRomNo9L-Regu            Type 1C           yes yes no      14  0
YSSGKF+NimbusRomNo9L-Medi            Type 1C           yes yes no      12  0
[none]                               Type 3            yes no  no      67  0
JCUPWZ+CMR10                         Type 1C           yes yes no      69  0
[none]                               Type 3            yes no  no      35  0
[none]                               Type 3            yes no  no      51  0
[none]                               Type 3            yes no  no      71  0
[none]                               Type 3            yes no  no      65  0
[none]                               Type 3            yes no  no      93  0
[none]                               Type 3            yes no  no      66  0
[none]                               Type 3            yes no  no      59  0
[none]                               Type 3            yes no  no      68  0
[none]                               Type 3            yes no  no      63  0
ITCMPN+Helvetica-Bold                Type 1C           yes yes no     117  0
WZLTXN+Helvetica                     TrueType          yes yes yes    121  0
FKSFIN+CMMI10                        Type 1C           yes yes no     125  0
JVZHNQ+Helvetica-Bold                TrueType          yes yes yes    123  0
MTASZJ+Helvetica                     Type 1C           yes yes no     115  0
KXKKTR+Symbol                        Type 1C           yes yes no     119  0
GQCMLS+StandardSymL                  Type 1C           yes yes no     132  0
EDAHZQ+Helvetica                     TrueType          yes yes no     138  0
JWFHTI+Helvetica-BoldOblique         TrueType          yes yes yes    142  0
XUKNTB+HelveticaNeue                 TrueType          yes yes yes    134  0
KRAGHG+Helvetica-Bold                TrueType          yes yes yes    144  0
MAUGEX+Helvetica_00                  TrueType          yes yes no     140  0
[none]                               Type 3            yes no  no     152  0
[none]                               Type 3            yes no  no     160  0
[none]                               Type 3            yes no  no     174  0
[none]                               Type 3            yes no  no     154  0
[none]                               Type 3            yes no  no     168  0
[none]                               Type 3            yes no  no     176  0
[none]                               Type 3            yes no  no     162  0
[none]                               Type 3            yes no  no     167  0
[none]                               Type 3            yes no  no     175  0
[none]                               Type 3            yes no  no     169  0
SITHQP+NimbusMonL-Regu               Type 1C           yes yes no     190  0

我想知道我该如何纠正字体类型问题。有没有办法事后更改 PDF 或 PS 图的字体,以生成符合 PDF 和 PS 版本的论文,而无需任何 Type 3 字体?

附言:我希望得到详细的解释,因为我是新手,刚刚开始使用这些工具。我不介意不太理想的解决方法。

更新:1. 有问题的图片可以从以下网址下载此 Dropbox 链接

答案1

如果pkfix无法pkfix-helper提供帮助,最简单的方法是使用一种工具,该工具可以将包含嵌入字体的文本的文档转换为曲线/轮廓。这样就不会出现任何类型的嵌入字体,也不会带来麻烦。它还可以节省寻找合适替换字体等的努力。

由于您的.ps文件包含DocumentMediaDSC 注释,我们可以利用它们来节省一些工作。

$ grep DocumentMedia class_1_best_describer_mention.ps
%%DocumentMedia: 555x608 555 608 0 () ()

在几乎所有主要的基于矢量的绘图程序中打开.ps文件。例如,在打开文件时CorelDraw选择或在导出为时选择。在其他程序中,它可能被称为或类似名称。Import text as curves.psExport text as curves.epsCreate Outlines

编辑导出的文件并在开始行附近的某处.eps添加上面的行。%%DocumentMedia:%%BoundingBox:

如果你愿意的话,你可以将.eps结局改为.ps

创建.pdf文件。从DocumentMedia上面的行中取出尺寸,并将它们放入下面的命令中,放入相应的 DEVICE*POINTS 选项中。

$ ps2pdf -dDEVICEWIDTHPOINTS=555 -dDEVICEHEIGHTPOINTS=608 class_1_best_describer_mention-2.ps class_1_best_describer_mention-2.pdf

现在您有了可以通过的文件。

然而,最好的方法是按照避免在 matplotlib 绘图中使用 Type 3 字体

我已经转换了您提供的示例文件,如果仍然需要的话,我会提供它们。

答案2

如果您正在使用dvips并且 CM(Computer Modern)字体适合您的文档,请尝试以下操作:

$ dvips -P cmz -t letter -f <file>.dvi -o <file>.ps

-P选项指定一台打印机并-P cmz指定T1 Computer Modern 打印机字体。

更详细的解释可以在TeX 常见问题解答

相关内容