Matlab的騷操作——中文和LaTeX標記



前幾天,對于作圖時label設置,無法同時包含中文和latex標記,以及字體無法更改的問題困擾了很久。在查閱官方文檔無果后,給Mathworks公司技術人員發郵件,原來目前尚未提供這一功能,然后工作人員已將我的建議提交給Matlab開發,期待未來版本可以完善喔

Matlab的騷操作——中文和LaTeX標記的圖1

但是中文和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);

Matlab的騷操作——中文和LaTeX標記的圖2

其中,‘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]);

Matlab的騷操作——中文和LaTeX標記的圖3

從這個圖上的標題來看,是不是兩者的區別更清楚了呀!


TeX 標記選項

MATLAB 支持部分 TeX 標記。使用 TeX 標記可添加上標和下標、修改文本類型和顏色以及包含特殊字符。只要文本對象的 Interpreter 屬性設置為 'tex'(默認值),MATLAB 便會解釋 TeX 標記,同時TeX支持中文字符(但是我覺得很丑耶,不信你試試)。

修飾符會一直作用到文本結尾,但上標和下標除外,因為它們僅修飾下一個字符或花括號中的字符。當您將 Interpreter 屬性設置為 'tex' 時,支持的修飾符如下所示。

Matlab的騷操作——中文和LaTeX標記的圖4

下表列出了當 Interpreter 屬性設置為 'tex' 時支持的特殊字符。

Matlab的騷操作——中文和LaTeX標記的圖5
Matlab的騷操作——中文和LaTeX標記的圖6

敲黑板——那到底該如何同時設置中文和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')

Matlab的騷操作——中文和LaTeX標記的圖7

如果復雜的LaTeX字符命令記不住怎么辦呢?




小編揚揚給你提供兩種方法。

方法一:利用matlab自帶的LaTeX函數即可轉化為latex字符!

方法二:利用math type公式編輯器來完成!

方法一


利用matlab自帶的LaTeX函數即可轉化為latex字符!

Matlab的騷操作——中文和LaTeX標記的圖8

注意:需要將其中的變量都轉化為符號變量,不然會報錯噠!

方法二


利用math type公式編輯器來完成!

第一步:打開math type偏好設置——剪切和復制偏好設置

Matlab的騷操作——中文和LaTeX標記的圖9

第二步:選擇粘貼方式為MathML或TeX——LaTeX

Matlab的騷操作——中文和LaTeX標記的圖10

第三步:粘貼到matlab命令行窗口,去掉兩端部分

Matlab的騷操作——中文和LaTeX標記的圖11

這樣就完成啦,兩種方法我還是推薦第二種,更簡單快捷一些!

Matlab的騷操作——中文和LaTeX標記的圖12

LATEX書籍推薦



Latex是被公認的生成公式最漂亮排版語言(軟件),如果小伙伴(打工仔們)對latex排版感興趣可以自學一下下面這本書,后臺回復latex”即可獲取書籍電子版喔!


Matlab學習教程

Matlab的騷操作——中文和LaTeX標記的圖13

掃二維碼|關注我們


微信號|Superyang_C

后臺回復|一對一技術支持

點擊藍字 關注我們


登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

8
3
5