4

まだ文書化されていないHG2-Updateを使用して MATLAB プロットを作成しています。

ここに画像の説明を入力ここに画像の説明を入力 (出典:ヤイル・アルトマン)

実際、現行バージョンのリリース 2013bを使用すると、非常にうまく機能し、多くの問題はありません。ただし、図をベクター グラフィックス (renderer: '-painters')、特にpdfとしてエクスポートする必要があります。

私はコマンドを使用します:

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

また

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

レンダリングの問題があり、印刷に図全体が含まれておらず、一部が切り取られているか、デフォルト以外のフォントが認識されていません。

しかし、私は本当にHG2を使い続けたいと思っていますし、それでもベクター グラフィックスを使いたいと思っています。解決策または回避策はありますか?

4

2 に答える 2

2

まだ公式ではないHG2-Updateを使用してベクター グラフィックスをエクスポートすることは、かなりの問題です。.pdfエクスポートはまだ完全に台無しです。境界ボックスが正しく設定されていないことを除けば、正常に機能しているのは.svgエクスポートです。

'-dsvg'長い回避策は次のとおりです。 ( print-command) または'svg'( -command) を使用してプロットをsaveasベクター グラフィックとして保存し、オープン ソース アプリケーションの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 ファイルを削除します。

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

私は同じ問題を抱えていて、thewaywewalk の回避策を使用しました。MATLAB 関数 "hgexport" が HG2 (R2014a) で動作することを発見しました。

問題はまだ用紙サイズでした。すべてのグラフに同じサイズを使用し、白い枠をできるだけ少なくしたいと考えています。ここでは、2 つのサイズを設定する必要があります。

用紙サイズは で設定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 に答える