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

时间:2013-05-30 22:35:09

标签: matlab matlab-figure

根据MATLAB手册,当您使用print或选择file|save保存图形时,如果选择painters渲染器并保存为PDF或EPS矢量格式,{{ 3}}。有没有办法解决这个限制?

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

2 个答案:

答案 0 :(得分:4)

如果我正确读取该链接,则所有字体都不会被替换。来自'Choosing a Printer Driver'

  

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

AvantGarde
Helvetica-Narrow
Times-Roman
Bookman
NewCenturySchlbk
ZapfChancery
Courier
Palatino
ZapfDingbats
Helvetica
Symbol

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

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')

产生:

example output

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

答案 1 :(得分:0)

我也多次遇到过这个问题,而且我有一个简单但有效的方法,永远不会让我失望(在Windows上,需要GSview)。

1)将图片保存为PDF

2)将PDF另存为ps

3)用GSview打开ps,然后点击“File-> PS to EPS”,指定文件名并完成。

希望这有帮助。