2012-03-06 17 views
2

MATLABのTeXタイプセット式のフォント間隔は、デフォルトで高度に圧縮されています。間隔の量を増やす方法はありますか?たとえば、分数の分子と分母が2つの線を分ける線に接触しないようにする方法はありますか?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'コマンドは、小数点以下の環境のような適切な場所に追加することもできます。私は分数内に数分の1があれば数学記号が分数線に触れることに気付きます。したがって、記号的な混雑を改善する可能性のある他の騒音を知っていれば私に知らせてください。 – user001

1

凡例のプロパティのリストを見ると、自動配置と一致する行間隔を指定する方法はないようです。ただし、OuterPositionプロパティの最終的な項目(高さ)を変更することで、ボックスを拡大することで行間隔を微調整することができます。ボックスの配置は左下隅に基づいているようですので、凡例ボックスが北の位置にある場合は、2番目のエントリ(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プロパティを変更すると、プロットの軸に対してボックスの自動配置をクリアしているので、このコードの断片を実行した後の図のサイズ変更について警戒する必要があります。図のサイズを変更すると、凡例のボックスが移動します。