text
プロパティ 'Interpreter' を値 'latex' に設定することで、LaTeX 形式のテキストと方程式を Matlab プロットに埋め込むことができます。
text(0.1, 0.5, 'Einstein: $E = m c^2$', ...
'Interpreter', 'latex', 'FontSize', 32)
これらの方程式は、画面だけでなく、eps ファイルにエクスポートされたイラストにも表示されます。
適切な LaTeX コマンドを使用して、フォントをデフォルトの Computer Modern Serif から Computer Modern Typewriter などに変更することもできます。
text(0.1, 0.5, '\fontfamily{cmtt}\selectfont Einstein: $E = m c^2$', ...
'Interpreter', 'latex', 'FontSize', 32)
私の質問は次のとおりです:追加のフォントを Matlab インストールに挿入して、これらのフォントを「インタープリター」「ラテックス」で使用できるようにして、画面上でレンダリングしたり、eps ファイルを生成したりすることは可能ですか? はいの場合、どのように?
バックグラウンド
/opt/MATLAB/R2013a
(私の Linux システムでは、Matlab インストールに関連するすべてのパス。)
Matlab には、(La)TeX インタープリターのカスタマイズされたバージョンが含まれています。これは、引数として LaTeX コードを取り、その出力引数内で dvi データを返すtex.m
inと呼ばれるフロントエンド m-file を介して呼び出されます。toolbox/matlab/graphics
カスタマイズされた LaTeX インストールは にsys/tex
あり、TeX フォント メトリック ファイルが含まれていますsys/tex/tfm
。
この dvi をレンダリングする Matlab の部分に関する情報はありません。ただし、レンダリング用のフォント データは と の下にsys/fonts/ttf
ありsys/fonts/type1
ます。
したがって、追加フォントを使用可能にすることは、LaTeX インタープリターで使用できるようにすることと、レンダリング機能で使用できるようにすることの 2 つの部分で構成されます。tex.m
最初の部分は、LaTeX の独立した通常のインストールを通じて dvi を生成し、通常の方法 (フォント パッケージなど) でこの LaTeX にフォントをインストールするように を操作することで取り組むことができます。undocumentedmatlabを参照してください。
したがって、質問の 2 番目の部分が重要です。追加のフォントを に挿入して、Matlab の dvi レンダラー コンポーネントで使用できるようにする方法sys/fonts/ttf
ですsys/fonts/type1
。
コンクリートケース
特別なケースで 2 番目の問題を具体的に解決しようとしました。Computer Modern Sans フォントは を介して Matlab-LaTeX インストールに含まれていますtex/tfm/cmss10.tfm
が、対応する ttf ファイルと pfb ファイルが見つからsys/fonts
ないため、レンダリングされません。
Matlab の ttf ファイルのコレクションには、ある種のインベントリがないようです。したがって、存在する他のファイルのファイルとフォルダーの命名規則に従って、ファイルcmss10.ttf
を matplotlib のインストールから に単純にコピーしました。sys/fonts/ttf/cm/mwa_cmss10.ttf
この手順は、Max OS X 上の Matlab 2011bの Alec の Web ログで機能すると報告されていますが、私のシステムでは、画面表示にも eps エクスポートにも効果がありません。
fonts.dir
Matlab の type1 フォントのコレクションには、ファイル、fonts.scale
、およびenc ファイルでいっぱいのencodings.dir
フォルダーに分散された複雑なインベントリがあります。encodings
今回も TeXlive インストールから cmss10.pfb を見つけ、名前を変更してコピーし、リストされている他のフォントの例に従ってインベントリ ファイルにエントリを作成しました。繰り返しますが、この手順はまったく効果がありません。
Matlab が ttf ファイルと pfb ファイルをどのように使用するかについて詳しく知っている人はいますか?また、cmss10 ファイルを Matlab レンダリングにアクセスできるようにする方法についてヒントを教えてもらえますか? または、これをデバッグして、Matlab の LaTeX サポートの内部動作について詳しく知る方法を提案する人はいますか?