4

我正在使用仍未记录的HG2-Update来创建我的 MATLAB 绘图,因为它们看起来要好得多。

在此处输入图像描述在此处输入图像描述 (来源:亚尔奥特曼)

实际上,使用当前版本的Release 2013b效果非常好,并且没有太多问题。除了想将图形导出为矢量图形(渲染器:)'-painters',尤其是pdf

我使用命令:

saveas(gcf,'test.pdf','pdf')

或者

print(gcf,'test.pdf','-dpdf')

存在渲染问题,打印不包含整个图形,并且某些部分被裁剪或无法识别非默认字体。

但我真的很想继续使用HG2,而且我仍然想使用矢量图形。有什么解决方案或解决方法吗?

4

2 回答 2

2

使用尚未正式发布的 HG2-Update导出矢量图形是一个相当大的问题。.pdf -export 仍然完全搞砸了。工作正常的是.svg -export,除了边界框设置不正确。

长期的解决方法是:使用'-dsvg'( print-command) 或'svg'( saveas-command) 将绘图保存为矢量图形,在开源应用程序Inkscape中打开文件并再次保存为.pdf并在导出区域设置绘图复选标记。

相当复杂,所以我找到了一种方法,可以直接从 Matlab 中通过命令行(仍然需要 Inkscape!):

filename = 'test';
inkscapepath = '"C:\Program Files (x86)\Inkscape\inkscape.exe"';

%// save as .svg
saveas(gcf,filename,'svg')
%// open and save with "export-area-drawing" set via command line
system( [inkscapepath ' ' filename ...
         '.svg --export-area-drawing --export-pdf=' filename '.pdf'])

这需要一些时间,但目前没有任何已知问题。

之后另外删除 svg-File:

delete([filename '.svg'])
于 2014-08-10T13:28:07.237 回答
1

我遇到了同样的问题,并使用了 thewaywewalk 的解决方法。现在我发现 MATLAB 函数“hgexport”在 HG2(在 R2014a 中)下工作。

一个问题仍然是纸张尺寸。我想对所有带有尽可能少的白框的图形使用相同的大小。在这里你必须设置两个尺寸:

纸张set(gcf,'PaperSize',[width height])大小是通过导出样式设置的,图表的大小是通过导出样式设置的。这些是在“导出设置”或命令行中设置的:

exp_style=hgexport('readstyle','default');
exp_style.Width = 'width';
exp_style.Height = 'height';
exp_style.Renderer = 'painters';

现在您可以导出 pdf:

hgexport(gcf,'pdfname',exp_style,'Format','pdf');

PS:在 HG2 中,您还可以将 Latex 用于刻度标签:

set(gca,'TickLabelInterpreter','latex');
于 2015-01-26T13:00:42.247 回答