在MatLab(R2015a)中,我想使用乳胶来标注我的情节标题。
对于某些功能来说这很好用,但如果方程中有一个功能则不行。
以下代码有效,并显示右侧的格式化标题和左侧未格式化的标题。
显示警告:
警告:更新文本时出错。
String必须具有有效的解释器语法:y = x ^ 2
syms x y
eq = y == x^2;
subplot(1,2,1)
ezplot(eq)
title(latex(eq),'interpreter','latex')
eq = y == x+2;
subplot(1,2,2)
ezplot(eq)
title(latex(eq),'interpreter','latex')
编辑:
我发现我可以通过在双方附加$
来使其工作。但我必须这样做似乎很奇怪。
这样可行:
title(strcat('$',latex(eq),'$'),'interpreter','latex')
答案 0 :(得分:3)
通过在生成的LaTeX表达式之前和之后添加$
- 符号,可以轻松解决问题。因此,您可以将«title
- 行»更改为:
title(['$',latex(eq),'$'],'interpreter','latex')
另一种方法是使用问题中提出的strcat
。
既然你已经基本上自己回答了这个问题,我将解释它为什么会发生。希望在阅读之后,它不再是“怪异”的行为。如果您选择在Matlab中使用LaTeX-interpreter,那么您真的会得到一个LaTeX解释器。这意味着提供的字符串必须是有效的LaTeX语法。
在数学环境之外使用^
被认为是无效语法,因为它在LaTeX中是reserved character。在这种情况下,一些解释器会自动添加$
之前和之后,但会同时发出警告。
Matlab中latex
- 函数的输出没有$
- 符号。这样,您可以根据需要组合输出和连接,而不会产生$
- 符号的混乱。
要更改为LaTeX中的math-environment,您可以使用已提到的快捷方式$...$
。另一种方法是使用\begin{math} your_equation \end{math}
。它为您的方程产生相同的结果,可以在这里用于演示目的。以下行将执行相同的工作,但写入时间稍长:
title(['\begin{math}',latex(eq),'\end{math}'],'interpreter','latex')
现在,只有一个方程式正确显示的原因在于^
中的无效字符y = x^2
。然后Matlab选择解释器none
,因此显示未格式化的字符串。 +
- 登录y = x + 2
在数学环境之外有效,因此可以正确显示(但不会在数学环境中解释)。