2012-03-06 109 views
2

MATLAB中TeX-typeset方程中的字体间距默认为高度压缩。有没有办法增加间隔的数量,例如,一个分数的分子和分母不会与分离两者的线接触?MATLAB:乳胶解释器字体间距

plot(1:10,rand(1,10)); 
set(gca,'FontSize',18); 
legend('$\frac{xy}{\exp\left(\frac{x}{y}\right)}$'); 
set(legend(),'interpreter','latex'); 

回答

2

我认为最简单的方法是使用一些LaTeX的诡计。

长话短说,LaTeX $ ... $用于内联数学,但对于显示数学,您应该使用\[ ... \]或使用相同的$$ ... $$的传统方法。对于LaTeX文档,不要使用后者,但对于MATLAB来说应该就足够了。

内嵌的数学和数学显示之间的差异,就像使用反引号之间和缩进在StackOverflow的差(``)。第一个将在两个段落之间显示你的代码。用数学,只有显示模式的数学才会有更大公式的体面布局。

所以下面的代码应该解决您的问题:

plot(1:10,rand(1,10)); 
set(gca,'FontSize',18); 
legend('$$\frac{xy}{\exp\left(\frac{x}{y}\right)}$$'); 
set(legend(),'interpreter','latex'); 

如果您想得更多,你可能想咨询这让你开始有很多LaTeX的贸易的技巧的Not So Short Introduction To LaTeX2e

编辑: 我倾向于只是一种手段使用,以提高在公式中的间距是用什么幻影(\phantom\vphantom\hphantom),但\vspace\vskip可能有点清洁剂使用。

+0

好主意,谢谢。我应该考虑切换到数学显示模式。你也可以在适当的位置添加'\ displaystyle'命令,比如在一个分数环境中。如果我的分数在分数范围内,我仍然会注意到数学符号接触分数线,所以如果您知道任何其他可能改善符号拥挤的方法,请告诉我。 – user001 2012-03-06 20:31:46

1

通过图例的属性列表寻找,似乎没有被指定的行间距,其与自动定位相一致的任何方式。您可以通过放大框来填充行间距,但是通过更改OuterPosition属性中的最终条目(高度)即可。看起来盒子的位置是基于其左下角的,所以如果你的图例框位于北方位置,那么你还需要将第二个入口(y位置)减少相等数量。

在这个例子中我由25%(其中我发现,给出很好的结果),这增加了线间隔增加一个北定位图例框的高度。

h = legend(s1,s2,s3, 'location', 'northeast'); 
set(h, 'fontsize', 16, 'interpreter', 'latex') 

outerposition = get(h, 'OuterPosition'); 
delta_h = 0.25*outerposition(4); 
outerposition(2) = outerposition(2) - delta_h; 
outerposition(4) = outerposition(4) + delta_h; 
set(h, 'OuterPosition', outerposition) 

你必须要警惕,运行这段代码后调整的数字,因为改变OuterPosition属性清除箱的自动贴片关于图轴。如果您调整图形的大小,图例框会去散步。