【问题标题】:Greek letters in axes labels are not working轴标签中的希腊字母不起作用
【发布时间】:2014-02-01 21:24:36
【问题描述】:

我正在尝试在我的情节 xlabel 中使用希腊字母。互联网上的每个解决方案都说 Matlab 将接受 tex。但是我的 x 轴不是 delta 符号,而是简单地标记为“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');

【问题讨论】:

  • Matlab 在您的系统上使用的任何默认字体是否肯定有 Delta 字形?你试过不同的字体吗?
  • 最后是什么原因?

标签: matlab plot matlab-figure tex


【解决方案1】:

有点好奇,你的语法似乎没问题。您是否搞砸了系统的某些字体?或者您的'interpreter' 设置为none (doc text props)?

用(hx = xlabel 的句柄)检查它:

get(hx, 'Interpreter')

并将其设置为:

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

如果这不起作用,作为第一个解决方法,您可以尝试激活 Latex 解释器,而不是通常默认的 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');


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

使用默认的tex 解释器:

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

也在工作:

但使用乳胶语法 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 fonts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-22
    • 2012-10-15
    • 1970-01-01
    • 2019-05-09
    • 2015-08-10
    • 2018-04-30
    • 2016-09-01
    • 1970-01-01
    相关资源
    最近更新 更多