MatLab 乳胶标题不适用于幂 (^)
MatLab latex title doesn't work for powers (^)
在 MatLab (R2015a) 中,我想使用 latex 为绘图标题设置样式。
这对于某些函数来说效果很好,但如果方程中有幂就不行了。
下面的代码有效,并在右侧显示格式化标题,在左侧显示未格式化标题。
显示警告:
Warning: Error updating Text.
String must have valid interpreter syntax: 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')
解决方案
通过在生成的 LaTeX 表达式前后添加 $
符号可以轻松解决问题。因此,您可以将 «title
-lines» 更改为:
title(['$',latex(eq),'$'],'interpreter','latex')
另一种方法是使用您问题中建议的 strcat
。
说明
既然你基本上已经自己回答了这个问题,我将解释为什么会这样。希望阅读本文后,它不再是 'weird' 行为。如果您选择在 Matlab 中使用 LaTeX 解释器,您将获得真正的 LaTeX 解释器。这意味着提供的字符串必须是有效的 LaTeX 语法。
在数学环境之外使用 ^
被认为是无效语法,因为它在 LaTeX 中是 reserved character。在这种情况下,一些解释器会自动在前后添加 $
,但同时会发出警告。
Matlab 中 latex
函数的输出没有 $
符号。这样你就可以组合输出并在需要时连接而不用 $
-signs.
造成混乱
要在 LaTeX 中更改为 math-environment,您可以使用已经提到的快捷方式 $...$
。另一种方法是使用 \begin{math} your_equation \end{math}
。它为您的方程式生成相同的结果,可在此处用于演示目的。下面一行可以完成同样的工作,但写起来有点长:
title(['\begin{math}',latex(eq),'\end{math}'],'interpreter','latex')
现在,您的方程式只有一个显示正确的原因在于 y = x^2
中的无效字符 ^
。 Matlab 然后选择解释器 none
并因此显示未格式化的字符串。 +
-sign in y = x + 2
在数学环境之外有效,因此它可以正确显示(但不会在数学环境中解释)。
在 MatLab (R2015a) 中,我想使用 latex 为绘图标题设置样式。
这对于某些函数来说效果很好,但如果方程中有幂就不行了。
下面的代码有效,并在右侧显示格式化标题,在左侧显示未格式化标题。
显示警告:
Warning: Error updating Text.
String must have valid interpreter syntax: 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')
解决方案
通过在生成的 LaTeX 表达式前后添加 $
符号可以轻松解决问题。因此,您可以将 «title
-lines» 更改为:
title(['$',latex(eq),'$'],'interpreter','latex')
另一种方法是使用您问题中建议的 strcat
。
说明
既然你基本上已经自己回答了这个问题,我将解释为什么会这样。希望阅读本文后,它不再是 'weird' 行为。如果您选择在 Matlab 中使用 LaTeX 解释器,您将获得真正的 LaTeX 解释器。这意味着提供的字符串必须是有效的 LaTeX 语法。
在数学环境之外使用 ^
被认为是无效语法,因为它在 LaTeX 中是 reserved character。在这种情况下,一些解释器会自动在前后添加 $
,但同时会发出警告。
Matlab 中 latex
函数的输出没有 $
符号。这样你就可以组合输出并在需要时连接而不用 $
-signs.
要在 LaTeX 中更改为 math-environment,您可以使用已经提到的快捷方式 $...$
。另一种方法是使用 \begin{math} your_equation \end{math}
。它为您的方程式生成相同的结果,可在此处用于演示目的。下面一行可以完成同样的工作,但写起来有点长:
title(['\begin{math}',latex(eq),'\end{math}'],'interpreter','latex')
现在,您的方程式只有一个显示正确的原因在于 y = x^2
中的无效字符 ^
。 Matlab 然后选择解释器 none
并因此显示未格式化的字符串。 +
-sign in y = x + 2
在数学环境之外有效,因此它可以正确显示(但不会在数学环境中解释)。