gpt4 book ai didi

MatLab latex 标题不适用于幂 (^)

转载 作者:行者123 更新时间:2023-12-04 02:19:52 28 4
gpt4 key购买 nike

在 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


说明

既然你基本上已经自己回答了这个问题,我将解释为什么会这样。希望读完这篇文章后,它不再是“奇怪”的行为。如果您选择在 Matlab 中使用 LaTeX 解释器,您将获得真正的 LaTeX 解释器。这意味着提供的字符串必须是有效的 LaTeX 语法。

在数学环境之外使用 ^ 被认为是无效语法,因为它是 reserved character在 latex 中。在这种情况下,一些解释器会自动在前后添加$,但同时抛出警告。

Matlab 中 latex 函数的输出没有 $ 符号。通过这种方式,您可以组合输出并在需要时连接起来,而不会用 $ 符号造成困惑。

要更改为 math-environment在 LaTeX 中,您可以使用已经提到的快捷方式 $...$。另一种方法是使用 \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 latex 标题不适用于幂 (^),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31356855/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com