5

LaTeXドキュメントにうまく収まるmatlab図を作成しようとしています。既知の問題は、XTickLabel と YTickLabels が LaTeX インタープリターを使用してレンダリングされず、見栄えの悪いプロットを引き起こすことです。(注: tex ラベルをテキスト オブジェクト (つまりformat_tics ) に置き換えることを含むいくつかの修正があることは認識していますが、これらの解決策は、複数の図をプロットする場合には自明ではなく、多くの微調整を必要とする独自の問題があります。個々の図ごとに。)

図内のオブジェクトを置き換えるのではなく、フォントを変更することでこの問題にアプローチする方が、もう少しエレガントだと思います。

LaTex フォントの .otf バージョンをダウンロードし、図全体に表示するように設定しました。

    set(0,'defaulttextinterpreter','latex')
    set(0,'DefaultTextFontSize', 10)
    set(0,'DefaultTextFontname', 'CMU Serif')
    set(0,'DefaultAxesFontSize', 10)
    set(0,'DefaultAxesFontName','CMU Serif')

matlab の Figure ウィンドウでは問題がないように見えます。ただし、印刷するとバラバラになります。

「ペインター」レンダラーを使用して (エクスポート GUI または印刷コマンドのいずれかを使用して) 印刷すると、フォントがおかしくなり、一貫性がなくなります。一部の記号は正しく表示されず、印刷された図全体に異なるフォントが表示されます。

 print('-depsc','-painters',['InstP.eps'])        

zbuffer レンダラーに切り替えると、フォントは一定になりますが、他にもバグがあります。品質が低下し、一部のテキストが省略されます (または他のテキストに覆われます)。

 print('-depsc','-zbuffer',['InstZ.eps'])  

OpenGLはどこでも混乱しています。

これらのレンダリングがこれらのフォントで問題を抱えている理由を誰か知っていますか? また、フォントを正しくレンダリングするための回避策はありますか?

サンプルコード:

    subplot(1,2,1)
         imshow(IMG,'XData',XDat,'YData',YDat);
         axis image;axis([0 20 -5 5]);
         xlabel('$x^*$');
    subplot(1,2,2)
    imshow(SqImg,'XData',Xs,'YData',Xs);
    xlabel('$\Phi_B$');
    ylabel('$\Phi_A$');
    axis square;
    set(gca,'YDir','normal',...
            'XAxisLocation','bottom',... 
            'YAxisLocation','left',... 
         'XTick',(0:.5:1).^Exp,'XTickLabel',0:.5:1,...
         'YTick',(0:.5:1).^Exp,'YTickLabel',0:.5:1);


 print('-depsc','-painters',['InstP.eps'])        
 print('-depsc','-zbuffer',['InstZ.eps'])        
4

1 に答える 1

0

print コマンドの代わりに imwrite コマンドを使用して図を画像ファイルに変換していますが、これは EPS では機能しません。

fhand = figure();
subplot(1,2,1);
...
I = getframe(fhand)
imwrite(I.cdata,'Inst.png','PNG')
于 2013-06-12T17:16:50.103 に答える