MATLAB 中使用 LaTeX 详细教程

一、LaTeX 在 MATLAB 中的作用

MATLAB 支持使用 LaTeX 解释器 来渲染文本对象中的数学公式和特殊符号,适用于:

  • 坐标轴标签(xlabel, ylabel, zlabel
  • 图形标题(title
  • 图例(legend
  • 文本注释(text, annotation
  • 颜色条标签(colorbar

✅ 效果:显示斜体变量、希腊字母、积分、求和、分数等,媲美论文级排版


二、启用 LaTeX 解释器

在任何文本命令中,通过设置 'Interpreter' 属性为 'latex' 来启用 LaTeX:

xlabel('$\sin(x)$', 'Interpreter', 'latex')
title('$\int_0^\infty e^{-x^2} dx$', 'Interpreter', 'latex')
legend('$y = \alpha x^2 + \beta$', 'Interpreter', 'latex')
text(0.5, 0.5, '$\sqrt{a^2 + b^2}$', 'Interpreter', 'latex')

📌 注意

  • 文本必须用 单引号 ' ' 包裹,LaTeX 公式用 美元符号 $ $ 包围(行内模式)。
  • 使用 $$ $$ 可以实现居中显示的“显示模式”公式(类似独立公式)。

三、LaTeX 基础语法(MATLAB 支持子集)

MATLAB 使用的是 简化版 LaTeX(基于 TeX),支持大多数常用命令,但不支持 \usepackage 或自定义宏。

1. 数学模式

  • 行内公式:$...$
  • 显示公式:$$...$$
title('$E = mc^2$', 'Interpreter', 'latex')        % 行内
title('$$E = mc^2$$', 'Interpreter', 'latex')      % 居中大公式

2. 上标与下标

LaTeX效果MATLAB 示例
x^2'$x^2$'
x_{i,j}xi,j'$x_{i,j}$'

3. 希腊字母

字母LaTeX示例
α\alpha'$\alpha$'
β\beta'$\beta$'
θ\theta'$\theta$'
Δ\Delta'$\Delta$'

4. 分数

ylabel('$\frac{a}{b}$', 'Interpreter', 'latex')  % a/b
title('$\frac{\partial f}{\partial x}$')         % 偏导

5. 根号

text(0.5,0.5, '$\sqrt{x^2 + y^2}$', 'Interpreter', 'latex')

6. 求和与积分

title('$\sum_{i=1}^n x_i$', 'Interpreter', 'latex')
title('$\int_a^b f(x) dx$', 'Interpreter', 'latex')

7. 箭头、点、向量

xlabel('$\vec{v} \cdot \dot{x}$', 'Interpreter', 'latex')
ylabel('$\rightarrow$', 'Interpreter', 'latex')

8. 字体样式(有限支持)

text(0.5,0.5, '$\mathbf{bold}$, \mathit{italic}$', 'Interpreter', 'latex')

⚠️ 注意:\mathrm, \mathbf, \mathit 支持,但 \usepackage{amsmath} 等不可用。


四、完整示例:绘制带 LaTeX 标签的图形

x = linspace(0, 4*pi, 100);
y = exp(-x/(2*pi)) .* sin(x);

figure;
plot(x, y, 'LineWidth', 2);
hold on;
plot(x, exp(-x/(2*pi)), 'r--', 'LineWidth', 1);
plot(x, -exp(-x/(2*pi)), 'r--', 'LineWidth', 1);
hold off;

% 使用 LaTeX 设置标签
xlabel('$\theta$ (rad)', 'Interpreter', 'latex', 'FontSize', 14);
ylabel('$A e^{-\theta / 2\pi} \sin(\theta)$', 'Interpreter', 'latex', 'FontSize', 14);
title('$$\text{Damped Oscillation: } y = A e^{-\theta / 2\pi} \sin(\theta)$$', ...
      'Interpreter', 'latex', 'FontSize', 16);

% 图例
legend('$y$', '$\pm A e^{-\theta / 2\pi}$', 'Interpreter', 'latex', 'Location', 'best');

grid on;
set(gca, 'FontSize', 12, 'TickLabelInterpreter', 'latex');  % 刻度标签也用 LaTeX

五、高级技巧

1. 设置全局 LaTeX 默认

set(groot, 'DefaultTextInterpreter', 'latex');
set(groot, 'DefaultAxesTickLabelInterpreter', 'latex');

所有后续图形的文本和刻度标签默认使用 LaTeX。

2. 刻度标签使用 LaTeX

xticks(0:pi:4*pi);
xticklabels({'0', '$\pi$', '$2\pi$', '$3\pi$', '$4\pi$'});
xticklabelinterpreter('latex');

3. 避免中文与 LaTeX 冲突

❌ 错误:

xlabel('时间 $t$', 'Interpreter', 'latex');  % 中文不被 LaTeX 支持

✅ 正确做法:使用英文或使用 none 解释器

xlabel('Time $t$ (s)', 'Interpreter', 'latex');  % 推荐

或:

xlabel('时间 t (s)', 'Interpreter', 'none');  % 支持中文,但 t 不是斜体

4. 使用 compose 构造动态 LaTeX 字符串(R2021b+)

alpha = 0.5;
label = compose('$$y = %g e^{-\\alpha x}$$', alpha);
title(label, 'Interpreter', 'latex');

注意:反斜杠需转义为 \\


六、常见问题与解决

问题原因解决方法
字符串必须具备有效的解释器语法包含中文或非法 LaTeX避免中文,检查 $ 匹配
公式显示为红色LaTeX 语法错误检查括号、花括号、命令拼写
字体不一致LaTeX 使用内置字体使用 exportgraphics 导出 PDF 保持一致性
性能慢复杂 LaTeX 渲染耗时简化公式,或使用 'tex' 解释器

七、导出高质量图像(推荐)

LaTeX 渲染在屏幕和导出时效果最佳使用 矢量格式

exportgraphics(gcf, 'plot.pdf', 'ContentType', 'vector');
exportgraphics(gcf, 'plot.eps', 'ContentType', 'vector');

避免使用 PNG/JPG,以免公式模糊。


八、LaTeX vs. Tex 解释器对比

特性'latex''tex'(默认)
支持中文
数学公式✅ 完整✅ 基本(\alpha, \bf
上下标$x^2$x^2
分数\frac{a}{b}
积分/求和\int, \sum\int, \sum
字体控制有限\bf, \it, \rm

📌 建议

  • 需要复杂公式 → 用 'latex'(避免中文)
  • 需要中文 + 简单符号 → 用 'tex'

九、参考资料


✅ 总结

目标推荐做法
显示数学公式使用 'Interpreter', 'latex'
包含中文使用 'Interpreter', 'none''tex'
专业论文图表全英文 + LaTeX + PDF 导出
动态公式使用 compose + \\ 转义

📌 核心原则LaTeX 模式下不要使用中文字符,否则会报错。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值