【问题标题】:Exporting figures as vector graphics in .pdf-format using HG2-Update and 'painters' renderer is not working properly使用 HG2-Update 和“画家”渲染器将图形导出为 .pdf 格式的矢量图形无法正常工作
【发布时间】:2014-10-03 10:35:37
【问题描述】:

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

(来源:Yair Altman)

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

我使用命令:

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

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

rendering issues,打印不包含整个图形,部分部分被裁剪或无法识别非默认字体。

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

【问题讨论】:

    标签: matlab plot matlab-figure matlab-hg2


    【解决方案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');
    

    【讨论】:

      【解决方案2】:

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

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

      相当复杂,所以我找到了一种方法直接从 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'])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 2023-03-21
        • 2010-10-01
        • 1970-01-01
        • 2017-04-18
        • 1970-01-01
        相关资源
        最近更新 更多