0%

MATLAB中插入LaTeX粗斜体数学公式

MATLAB可通过定义Interpreter类型,来选择文本字符解释器:

  1. none - 显示字面字符(默认)
  2. tex - 使用\(\TeX\)标记子集解释字符
  3. latex - 使用\(\LaTeX\)标记解释字符

在线帮助文档给出了MATLAB支持的\(\LaTeX\)命令,包括用于生成粗正体数学公式的\bf命令

例如,\(\bf{y=2x}\) \bf{y=2x}

而不包括\(\LaTeX\)amsmath宏包中常用的\bm\boldsymbol命令,也就无法使用这些命令

粗斜体数学公式用于表示矢量\(\boldsymbol{x}\)\(\boldsymbol{v}\)\(\boldsymbol{a}\),矩阵\(\boldsymbol{A}\)\(\boldsymbol{B}\)\(\boldsymbol{C}\)


解决方案

使用\(\LaTeX\)的原生命令\boldmath\unboldmath,下面给出示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
%version - R2018b
clc;clear;close all;
pt=40;%字体大小

%匿名函数, 缩短代码长度
latex_bm=@(position,string) text('Position',position,'String',string,...
'Units','Normalized','FontSize',pt,'Interpreter','latex');

figure(1);axis equal;axis off;box off;grid off;hold on;

pos1=[0.4,0.95];
str1='\boldmath{$y$}\unboldmath{$_x$}';
latex_bm(pos1,str1);

% latex_bm(pos1,str1)等价于
% text('Position',pos1,'String',str1,'Units',...
% 'Normalized','FontSize',pt,'Interpreter','latex');

pos2=[0.4,0.65];
str2='\boldmath{$y_x$}';
latex_bm(pos2,str2);

pos3=[0.4,0.35];
str3='\boldmath{$x$}\unboldmath{$+\rm{d}$}\boldmath{$x$}';
latex_bm(pos3,str3);

pos4=[0.4,0.05];
str4='\boldmath{$x$}\unboldmath{$\,+\,\rm{d}$}\boldmath{$x$}';
latex_bm(pos4,str4);

下图给出了运行结果

对代码中str1~str4做几点说明:

  • str1:不需要加粗的部分用\unboldmath声明

  • str2\boldmath会将其中所有内容加粗,包括上下标、加减乘除等运算符号

  • str3:一个复杂示例,但其中+位置不正常

  • str4:使用\(\LaTeX\)的空格命令调整位置,达到很好的效果

    空格命令:

    描述 命令 效果
    两个quad空格 a \qquad b \(a \qquad b\)
    一个quad空格 a \quad b \(a \quad b\)
    大空格 a\ b \(a\ b\)
    中空格 a\;b \(a\;b\)
    小空格 a\,b \(a\,b\)
    无空格 ab \(ab\)
    紧缩 a\!b \(a\!b\)

本站采用的渲染器是\(\KaTeX\),看看\boldsymbol{x}+\mathrm{d}\boldsymbol{x}的效果

\[ \boldsymbol{x}+\mathrm{d}\boldsymbol{x} \]