21

matlab プロットのフォントをラテックス フォントと同じに変換することは可能ですか。たとえば、次の方法でプロットのフォントを変更できます。

x = -pi:.1:pi;
y = sin(x);
plot(x,y)
set(gca,'FontName','Helvetica');

同じことをラテックスフォントで行うことは可能ですか(ラテックスが基本フォントとして使用するフォントの実際の名前がわからないため、ラテックスフォントと言います)。

4

7 に答える 7

14

テキストオブジェクトの場合は、「Interpreter」プロパティを「latex」に設定する必要があります。だから、例えばあなたはすることができます

xlabel('$$\int_0^x\!\int_y dF(u,v)$$','Interpreter','latex');

目盛りラベルの場合、それを簡単にするために利用できるファイルがあるかもしれませんが、それはより困難です()。

于 2012-06-26T17:19:29.747 に答える
4

ラテックス文字列内でフォントを定義できます。たとえば、セリフ フォント (Roman) とサン セリフ フォント (Helvetica だと思います) を切り替えるには、次のようにします。

text(0.5, 0.8, '\textsf{sans serif}','interpreter','latex')
text(0.5, 0.7, '\textrm{roman}','interpreter','latex')
text(0.5, 0.6, '$$\mathsf{math\,\,mode\,\,sans\,\,serif}$$','interpreter','latex')
text(0.5, 0.5, '$$\mathrm{math\,\,mode\,\,roman}$$','interpreter','latex')
于 2012-06-26T18:02:39.450 に答える
3

フォント (LaTeX スタイルのカーニング、合字などを含む) を完全に一致させるには、Matlab の図のテキストを LaTeX でタイプセットする必要があります。psfragを使用する laprint スクリプトは、これを行う簡単な方法です。

于 2012-06-26T19:32:27.723 に答える
2

免責事項: 私は専門家ではありません。

ただし、Linux のコマンドfc-listはシステム上のすべてのフォントを一覧表示します。それらはすべて Matlab でサポートされていると思います。

ubuntu (およびおそらく他のディストリビューション) では、ラテックス フォントLatin Modern、または略して lm と呼ばれます。それらはすべて次の方法で見つけることができます。

# fc-list | grep lmroman
/usr/share/texmf/fonts/opentype/public/lm/lmroman10-bold.otf: Latin Modern Roman,LM Roman 10:style=10 Bold,Bold
/usr/share/texmf/fonts/opentype/public/lm/lmroman7-italic.otf: Latin Modern Roman,LM Roman 7:style=7 Italic,Italic
... etc etc...

コロンと最初のコンマの間には、Latin Modern Romanのローマ字フォントの名前であるLatin Modern Roman と書かれています。

  • ラテン・モダン・サンズ
  • ラテンモダンローマンキャップ
  • ラテン・モダン・モノ
  • などなど

これらのフォントは、mathmode の latex で\textrm(roman)、 (serif) などを呼び出すときに使用されると思います。\textsfもちろん、fc-listコマンドを使用してすべてを見つけることができます。

プロットでラテックス フォントを取得するには、次のコマンドを実行するだけです。

plot(rand(10), 'o');
xlabel('index', 'FontName', 'Latin Modern Roman', 'FontSize', 25); 
ylabel('value', 'FontName', 'Latin Modern Roman', 'FontSize', 25); 
set(gca, 'FontName', 'Latin Modern Roman', 'FontSize', 25);

そして結果は素晴らしいです:

プロット例

PS: ラテン モダンはコンピューター モダンとまったく同じではありませんが、見た目は似ていて、実際の違いはわかりません。

Matlab の Interpreter オプションに関しては、私の知る限りでは、斧のラベルなど、プロットのすべてのテキスト要素には適用されません。

>> plot(rand(10), '.'); set(gca, 'Interpreter', 'latex');
Error using hg.axes/set
The name 'Interpreter' is not an accessible property for an instance of class 'axes'.

残念ながら、matlab のprint機能には欠陥があり、eps ファイルや pdf ファイルにフォントを埋め込むことができません。このため、同じシステム上であっても、生成されたファイルのフォントが置換される場合があります。これに取り組むために、このライブラリではフォントを埋め込むことができます: http://www.mathworks.com/matlabcentral/fileexchange/23629-export-fig

Figure をエクスポートする前に、必ず Figure の背景を白に設定してください。また、ghostscript を呼び出すため、ライブラリが多くのメモリを消費する可能性があることに注意してください。

さらに、フォントを変更したい場合、インタープリターを変更するのはやり過ぎに思えます。

于 2015-02-24T17:49:19.510 に答える
2

にエクスポートする.eps場合は、後で簡単なテキスト エディターを使用して図を編集し、そこでフォントを交換することができます。少し面倒ですが、うまくいきます。各文字のカーニングを個別に変更することもできます (その位置がそこにハードコーディングされているため)。

各文字のフォントを個別に変更することもできます (Latex (つまり Computer Modern) のシンボルが必要で、残りのラベルを Helvetica で再度使用したい場合は、これを行うことがあります)。

于 2013-11-21T15:59:06.943 に答える
0

MATLAB の Figure を LaTeX にエクスポートすることを目的としており、一貫したルック アンド フィール (フォントを含む) が必要な場合は、matlab2tikz (私がかつて開始したプロジェクト) を使用する必要があります。

于 2013-09-12T16:47:03.723 に答える