首页 > 解决方案 > 在 sympy 乳胶中将系数渲染为分数

问题描述

我想渲染一个分数乘以一个积分。我试过了:

from sympy import *
x, h = symbols("x h")
(2/h) * Integral(x**2, (x, 0, 1))

生成的乳胶是:

'\\frac{2 \\int\\limits_{0}^{h} x^{2}\\, dx}{h}'

看起来很可怜​​:

坏乳胶

是否可以像这样将分数保留为系数?

好乳胶

这可以使用sympy live轻松复制。谢谢你的帮助。

标签: pythonlatexsympy

解决方案


正如@Stelios 指出的那样,您可以使用未评估的 Mul 使表达式按您想要的方式显示。为避免重新输入表达式,并将 Integral 之外的所有内容拉到前面,您可以使用以下命令:

>>> latex(Mul(*eq.as_independent(Integral, as_Add=False),evaluate=False))
\frac{2}{h} \int\limits_{0}^{1} x^{2}\, dx

as_independent方法将独立于某些事物的术语或因素分开 - 在本例中为 Integral。未评估的 Mul 将它们重新组合在一起,但阻止它们重新排序。


推荐阅读