是否有可能绕过MATLAB对矢量格式文件中字体嵌入的限制?

cra*_*gim 5 matlab matlab-figure

根据MATLAB手册,当您使用print或选择保存图形时file|save,如果选择painters渲染器并保存为PDF或EPS矢量格式,则所有字体都将被替换.有没有办法解决这个限制?

每当我输出一个数字时,无论是否使用printexport_fig,字体都会被替换,因此它们不再匹配我计划放入图形的文档中的字体.我更喜欢将它们保存为矢量格式,因为我使用LaTeX,因此我希望能够在我的文档中使用与我的beamer演示文稿中相同的数字,并使它们可以很好地缩放而不会使文件大小膨胀.

Dav*_*d_G 4

如果我正确阅读该链接,则并非所有字体都会被替换。来自“选择打印机驱动程序”

下表列出了使用 Painters 渲染器(完全矢量化输出)生成时 MATLAB PostScript 和 Ghostscript 驱动程序支持的字体。Windows 和 UNIX 均支持同一组字体:

AvantGarde
Helvetica-Narrow
Times-Roman
Bookman
NewCenturySchlbk
ZapfChancery
Courier
Palatino
ZapfDingbats
Helvetica
Symbol
Run Code Online (Sandbox Code Playgroud)

因此,如果您使用上述字体之一,输出的矢量格式图形应保持正确的字体。参见示例:

list_fonts = listfonts
figure('renderer','painters'),
plot(peaks),
xlabel('this font is Helvetica','fontname','Helvetica','fontsize',24)
set(gcf,'paperpositionmode','auto')
print(gcf,'-depsc2','test1.eps')
Run Code Online (Sandbox Code Playgroud)

其产生:

示例输出

因此,从上面的列表中选择一种字体,字体就会正确输出。否则,请更改演示文稿中的字体以匹配上述字体之一。

  • 我的组织的演示文稿模板使用 Electra 和 Avenir 字体,内部报告模板也是如此。美国物理学会期刊使用 RevTeX,它使用 Computer Modern。这完全不是重点,因为在 2013 年,考虑到我的组织为 MATLAB 支付的费用,我不应该局限于 20-30 年前硬编码到 Postscript 打印机中的字体。 (8认同)
  • + 提供此列表 (2认同)