2014-01-13 49 views
3

我试图在我的xlabel中使用希腊字母。互联网上的每个解决方案都表示Matlab将接受tex。但代替三角符号我的X轴被简单地标为'D'轴标签中的希腊字母不起作用

a = plot(0:40, y); 
hold on 

plot(delta_T,brechkraft, 'x') 
errorbar(delta_T, brechkraft,delta_b,'x'); 

title('2mm Oelschicht'); 


xlabel('\Delta'); 
ylabel('Brechkraft D in 1/cm'); 
annotation('textbox', [.2 .8 .1 .1],... 
    'String', {'Fit: f(x) = m*x + b', ['m = ', num2str(p(1)) ], ['b = ', num2str(p(2)) ]}); 
shg 
hold off 

saveas(a, 'abc1.png','png'); 
+0

无论默认字体Matlab在你的系统上使用的字体肯定有Delta吗?你尝试过不同的字体吗? – Notlikethat

+0

最后是什么原因? – thewaywewalk

回答

13

这有点好奇,你的语法看起来没问题。你搞砸了你的系统的一些字体?或者,也许您的'interpreter'设置为nonedoc text props)?

与(hx =手柄xlabel的)检查它:

get(hx, 'Interpreter') 

,并设置:

set(hx, 'Interpreter', 'tex') 

如果不工作,作为第一个解决方法,你可以尝试激活Latex interpreter而不是通常默认的tex

x = 0:40; 
y = x.^2; 

plot(y,x, 'x') 
title('\alpha \beta \gamma'); 

hx = xlabel('Symbol $\sqrt{\Delta}$ ','interpreter','latex'); 
hy = ylabel('Symbol $\sqrt{\epsilon}$','interpreter','latex'); 

enter image description here


但实际上,对于简单的希腊字母,这是没有必要的!

使用默认tex解释:

hx = xlabel('\Delta'); 
hy = ylabel('\epsilon'); 

是工作压力太大:

enter image description here

但乳胶语法delta使用不再被认可:

xlabel('Symbol $\sqrt{\Delta}$ ','interpreter','tex'); 
ylabel('Symbol $\sqrt{\epsilon}$','interpreter','tex'); 

其他的想法:get(0,'DefaultAxesFontName')

不,当你键入它返回什么字体? 当您将它设置为HelveticaArial是否工作?

set(0,'DefaultAxesFontName','Helvetica'); 

另据报道,在某些系统(例如Ubuntu的 12.xx),你需要安装TEX字体第一。

相关问题