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
后台回复|一对一技术支持
点击蓝字 关注我们
查看更多评论 >