MATLAB中TeX排版方程式中的字体间距默认为高度压缩。有没有办法增加间距,所以,例如,分数的分子和分母不会与分隔两者的线接触?
plot(1:10,rand(1,10));
set(gca,'FontSize',18);
legend('$\frac{xy}{\exp\left(\frac{x}{y}\right)}$');
set(legend(),'interpreter','latex');
答案 0 :(得分: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');
如果你想要更多,你可能想咨询Not So Short Introduction To LaTeX2e,这可以让你开始了很多LaTeX交易的技巧。
修改强>
我倾向于用作改善公式中间距的技巧是使用幻像(\phantom
,\vphantom
,\hphantom
),但\vspace
或\vskip
可能是使用起来更干净。
答案 1 :(得分: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属性会清除框相对于绘图轴的自动放置。如果您调整图形大小,则图例框将显示为walkabouts。