Matlab的騷操作——中文和LaTeX標記
前幾天,對于作圖時label設置,無法同時包含中文和latex標記,以及字體無法更改的問題困擾了很久。在查閱官方文檔無果后,給Mathworks公司技術人員發郵件,原來目前尚未提供這一功能,然后工作人員已將我的建議提交給Matlab開發,期待未來版本可以完善喔!
但是中文和latex同時存在也不是無解的喔!
首先我們先熟悉一下TeX標記和LaTeX標記!
您可以使用TeX標記向圖中添加包含希臘字母和特殊字符的文本。此外,還可以使用TeX 標記添加上標、下標以及修改文本類型和顏色。默認情況下,MATLAB? 支持一部TeX 標記。要使用其他特殊字符,如積分和求和符號,可以改用 LaTeX 標記。
包含 LaTeX 行間數學公式的文本
在作圖時,我們經常需要將公式顯示在圖像上,此時就需要Matlab在title、xlabel、ylabel、zlabel...上插入LateX公式。
默認情況下,MATLAB可以解析使用TeX標記的文本。但是,要獲得更多格式設置選項,您可以改用LaTeX標記。例如,您可以使用 LaTeX在文本中包含數學表達式。要使用 LaTeX 標記,需將 Text 對象的 Interpreter 屬性設置為 'latex'。
%舉個例子
alpha = 0.1:0.1:10; beta = sin(alpha )./alpha ;
plot(alpha, beta);
set(gca,'Fontname','Times New Roman');
xlabel('$\alpha$','interpreter','latex', 'FontSize', 18);
ylabel('$\beta$','interpreter','latex', 'FontSize', 18);
title('$\frac{sin(x)}{x}$','interpreter','latex', 'FontSize', 20);
handle= legend('$\frac{sin(x)}{x}$');
set(handle,'Interpreter','latex', 'FontSize', 20)
text('Interpreter','latex','String','$$\leftarrow\frac{sin(x)}{x}$$','Position',[2,.5],'FontSize',16);
其中,‘interpreter’ 表示所采用的解釋器語法,此時需要設置為'latex'。
'$...$' 是指放在行內的公式;會將字符縮小到與設定的字符一樣大,即一個公式占一行。
'\$\$...\$\$是指單獨占據一行或幾行的公式;會將每一個字符都設定為預設的大小,一個公式占多行。
'$...$'和'\$\$...\$\$例子
figure(1);
set(gcf, 'position', [0 0 700, 300]);
subplot(1,2,1);
plot(alpha, beta);
title('$\frac{sin(x_\alpha)}{x}$','interpreter','latex');
set(gca,'position',[0.05 0.1 0.4 0.7]);
subplot(1,2,2);
plot(alpha, beta);
title('$$\frac{sin(x_\alpha)}{x}$$' ,'interpreter','latex')
set(gca,'position',[0.6 0.1 0.35 0.7]);
從這個圖上的標題來看,是不是兩者的區別更清楚了呀!
TeX 標記選項
MATLAB 支持部分 TeX 標記。使用 TeX 標記可添加上標和下標、修改文本類型和顏色以及包含特殊字符。只要文本對象的 Interpreter 屬性設置為 'tex'(默認值),MATLAB 便會解釋 TeX 標記,同時TeX支持中文字符(但是我覺得很丑耶,不信你試試)。
修飾符會一直作用到文本結尾,但上標和下標除外,因為它們僅修飾下一個字符或花括號中的字符。當您將 Interpreter 屬性設置為 'tex' 時,支持的修飾符如下所示。
下表列出了當 Interpreter 屬性設置為 'tex' 時支持的特殊字符。
敲黑板——那到底該如何同時設置中文和latex字體呢?
目前只有一種方法,那就是用兩個text函數,分別存放中文和latex字體喔!所以label內容同時存在中文和latex時候,目前只能把兩者分開,然后調整text文本框的位置!
再看個例子!
ezplot('x^2+(y-(x^2)^(1/3))^2=9')
xlim([-5 5]); ylim([-4 5]);
text(-2.2,1,'$${x^2}+{\left({y-{x^{\frac{2}{3}}}}\right)^2}=9$$','FontSize',16,'Interpreter','latex')%存放latex字體
text(-2,2.5,'\fontname{宋體}愛你呦\fontname{Times New Roman}\heartsuit Matlab','FontSize',16,'Interpreter','tex')%存放TeX常規字體
set(gca,'Fontname','Times New Roman');
title('$${x^2}+{\left({y-{x^{\frac{2}{3}}}}\right)^2}= 9$$','FontSize',16,'Interpreter','latex')
如果復雜的LaTeX字符命令記不住怎么辦呢?
小編揚揚給你提供兩種方法。
方法一:利用matlab自帶的LaTeX函數即可轉化為latex字符!
方法二:利用math type公式編輯器來完成!
方法一
利用matlab自帶的LaTeX函數即可轉化為latex字符!
注意:需要將其中的變量都轉化為符號變量,不然會報錯噠!
方法二
利用math type公式編輯器來完成!
第一步:打開math type偏好設置——剪切和復制偏好設置
第二步:選擇粘貼方式為MathML或TeX——LaTeX
第三步:粘貼到matlab命令行窗口,去掉兩端部分
這樣就完成啦,兩種方法我還是推薦第二種,更簡單快捷一些!
LATEX書籍推薦
Latex是被公認的生成公式最漂亮的排版語言(軟件),如果小伙伴(打工仔們)對latex排版感興趣可以自學一下下面這本書,后臺回復“latex”即可獲取書籍電子版喔!
Matlab學習教程
掃二維碼|關注我們
微信號|Superyang_C
后臺回復|一對一技術支持
點擊藍字 關注我們
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















