diff的输出无法在启用的LaTeX中呈现

问题描述 投票:2回答:1

我想在sympy中区分表达式如下。我正在使用启用乳胶的jupyter qtconsole

from sympy import *
init_printing()
p0,nu,lamb,k,epsp, dp0 = symbols(r'p_0, nu, lambda, kappa, \delta\epsilon_p^p, \deltap_0')
test = Eq(epsp,((lamb-k)/nu)*dp0/p0)
p0expr = solve(test,p0)[0]
diff(p0expr, epsp)
diff(p0expr,k)
diff(p0expr,lamb)

我想关注最后三行代码,第6,7和8行。第7行和第8行输出乳胶样式输出,第6行不输出。为什么第6行不能用乳胶输出?

python sympy
1个回答
0
投票

从查看diff(p0expr, epsp)的文本输出,

-\deltap_0*(-kappa + lambda)/(\delta\epsilon_p^p**2*nu)

问题在于对你命名为\delta\epsilon_p^p的变量进行平方。 (另外两个导数没有平方。)如果这个方块在LaTeX标记中转换为

\delta\epsilon_p^p^2

由于多个上标,结果是无效的LaTeX。建议:在这个符号名称周围加上花括号,

symbols(r'p_0, nu, lambda, kappa, {\delta\epsilon_p^p}, \deltap_0')

这将防止名称和包含它的公式之间的这种干扰。

http://live.sympy.org/测试:

live sympy

顶部输出来自您的版本,底部是大括号,如上所示。它呈现除了\deltap,当然这是一个未定义的LaTeX命令。除非它是你在其他地方定义的自定义事物,否则它应该用{\delta}p_0修复。

© www.soinside.com 2019 - 2024. All rights reserved.