我正在嘗試製作一個很適合LaTeX文檔的matlab圖形。一個已知的問題是,XTickLabel和YTickLabels不使用LaTeX解釋器渲染,導致看起來不好的情節。 (注意:我意識到有一些修復涉及用文本對象替換tex標籤(即format_tics),但是這些解決方案在繪製多個數字時並不重要,並且帶有需要大量調整的自身問題)Matlab字體在打印或導出時不能正確渲染
我覺得通過改變字體來解決這個問題,而不是替換圖中的對象,這有點優雅。
我downloaded a .otf乳膠字體的版本,並將其設置爲顯示整個圖形:
set(0,'defaulttextinterpreter','latex')
set(0,'DefaultTextFontSize', 10)
set(0,'DefaultTextFontname', 'CMU Serif')
set(0,'DefaultAxesFontSize', 10)
set(0,'DefaultAxesFontName','CMU Serif')
東西要在MATLAB圖窗口好;然而當印刷時,事情就會崩潰。
如果我使用「畫家」渲染器打印(使用導出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'])
我應該注意到,我對[拉丁現代羅馬](http://www.ctan.org/tex-archive/fonts/lm/fonts/opentype/public/lm)也有同樣的問題,字體 – mrsoltys
作爲解決方法,您可以使用'plot2svg'(http://www.mathworks.de/matlabcentral/fileexchange/7401-scalable-vector-graphics-svg-export-of-figures)創建'* .svg'可以使用IncScape或Adobe Illustrator輕鬆轉換爲'* .eps'的文件。 –
File Exchange的其他解決方法選項是['export_fig'](http://www.mathworks.co.uk/matlabcentral/fileexchange/23629-exportfig),並且由於您正在使用LaTeX ['matlab2tikz'] (http://www.mathworks.co.uk/matlabcentral/fileexchange/22022-matlab2tikz)。這些解決方案的後者將使您的數字*真正*適應LaTeX字體/環境。 – wakjah