Latex语言是现在使用最广泛的Tex格式,Tex这种语言具有简单排版和程序设计的功能。
不过,LaTeX比TeX更为结构化,它有很多预设模版,包含供建立索引、表格、列表等的宏和公用软件。利用Latex,即使我们不会排版和程序设计也可以生成复杂的论文规格的表格和数学公式。
我们使用matlab对数据或模型进行计算处理之后,时常会需要输出结果呈现Latex的格式,或者能方便转换成latex格式方便后续编辑。
Matlab中使用Latex大体可分为两种情境:1.使用Latex公式标注Matlab生成的各类图形;2.把Matlab的运行结果转换成Latex格式。
标注Matlab生成的图形
1. 生成图形的各类图例中添加Latex公式
Matlab生成的图形中title、xlabel、ylabel、zlabel、textbox和legend等Interpreter有三个属性:latex 、tex、none,默认是tex。首先把属性设置为latex,在Matlab中使用LaTeX语言的格式有三种:
\( LaTeX命令\)
$ LaTeX命令$
$$ LaTeX命令$$
% 在标题中插入LateX公式
figure(1);
x = 0:pi/100:2*pi;
plot(x, sin(x));
title('$\sin(x)$','interpreter','latex', 'FontSize', 18);
set(gcf, 'position', [0 0 300 300],'color',[1,1,1]);
% interpreter’ 表示所采用的解释器语法,此时需要设置为'latex'
% 在图例中插入LateX公式
figure(1);
x = 0:pi/100:2*pi;
plot(x, sin(x));
handle = legend('$\sin(x)$');
set(handle,'Interpreter','latex', 'FontSize',18)
% 在坐标轴中插入LateX公式
figure(1);
x = 0:pi/100:2*pi;
plot(x, sin(x));
xlabel('$\alpha$','interpreter','latex', 'FontSize', 18);
ylabel('$\sin(\alpha)$','interpreter','latex', 'FontSize', 18);
2. latex公式换行
第一种方式是将字符串改写成:{’
.
.
.
...
...’, ‘
.
.
.
...
...’};
第二种方式是将字符串改写成:[’
.
.
.
...
...’, newline, ‘
.
.
.
...
...’]
figure(1);
subplot(1,2,1);
% 换行方式一
title({'$fortest:\sin(x)+\alpha_1(k_1+x)+\alpha_2(k_2+x)$',...
'$+...+\alpha_n(k_n+x)$'},'interpreter','latex', 'FontSize', 10);
subplot(1,2,2);
% 换行方式二
title(['$fortest:\sin(x)+\alpha_1(k_1+x)+\alpha_2(k_2+x)$',newline,...
'$+...+\alpha_n(k_n+x)$'],'interpreter','latex', 'FontSize', 10);
set(gcf,'color',[1,1,1])
3. “$…$”与“$$…$$”的区别
“$…$”将字符缩小到与设定的字符一样大,即一个公式占一行。
“$$…$$”会将每一个字符都设定为预设的大小,一个公式占多行。
figure(1);
x = 0:pi/100:2*pi;
subplot(1,2,1);
plot(x, sin(x)./x);
title('$\frac{sin(x_\alpha)}{x_\alpha}$','interpreter','latex', 'FontSize', 18);
set(gca,'position',[0.05 0.1 0.4 0.7]);
subplot(1,2,2);
plot(x, sin(x));
title('$$\frac{sin(x_\alpha)}{x_\alpha}$$','interpreter','latex', 'FontSize', 18);
set(gca,'position',[0.5 0.1 0.4 0.7]);
set(gcf,'color',[1,1,1])
计算结果转换成Latex模式
对于Matlab计算出的符号运算结果,可以通过latex()函数转化成LeTeX命令格式。
由于latex()函数只对符号表达式进行转换,对于数值结果一定要通过sym()函数转化成符号格式。可同时使用latex()和sym()函数:latex(sym(i)); 其中i代表符号表达式:
syms a b c d
i = a/b+c-d^2
latex(sym(i))
结果显示:
ans = 'c+\frac{a}{b}-d^2'
另外,可以把Matlab的分析图片结果转化成Latex使用的.eps格式,以便后续使用latex进行编辑使用,有需要的话要用到Latex Markup,保存输出时点“latex”选项即将M-file转换成 text-file。
附加参考
1. Tex字符字体的设置
2. Tex字符命令对照表
3. 数学公式常用命令
参考
[1] 小思同学,Matlab中输入Latex公式,CSDN,https://blog.csdn.net/XSTX1996/article/details/81627219
[2] Thundermighty,【一个视频学会系列】Latex排版,https://www.bilibili.com/video/av39993441/
[3] zd0303,CSDN:https://blog.csdn.net/zd0303/article/details/7536967
[4] http://blog.sina.com.cn/s/blog_8fc890a20102v0sl.html
欢迎关注公众号“数学建模公会”,解锁更多建模相关教程、应用代码哦~