您好,谢谢您的帮助。我正在尝试将漂亮的数学格式与sympy表达式混合在一起。我正在使用jupyter-notebook。
我可以在单独的行上得到乳胶和漂亮的sympy印刷,但是似乎找不到一种将它们组合成一行的方法。下面的代码显示三行;第三行应该是前两者的组合。希望有一个我还没有想到的优雅解决方案(Python noob的一部分)。
import sympy as sym
from IPython.display import display, Math
sym.init_printing()
x = sym.symbols('x')
expr = sym.sqrt(3) * x**3
display(Math('\\frac{1}{2} ') )
display(expr)
display(Math('\\frac{1}{2} %s' %expr) )
答案 0 :(得分:0)
使用字符串格式时,由sympy实现的str
方法用于将表达式转换为字符串。
但是,str
的输出不适用于LaTeX输出,请参见documentation of str:
要获取表达式的字符串形式,请使用str(expr)。这也是print(expr)生成的形式。字符串形式被设计为易于阅读,但采用正确的Python语法形式,以便可以复制和粘贴。表达式的str()形式通常看起来与您输入表达式时完全相同。
因此输出应为有效的python代码:
>> str(expr)
'sqrt(3)*x**3'
要获取LaTeX格式的表达式,sympy禁止使用latex
function。
可以按如下方式调用它:
>> sym.latex(expr)
'\\sqrt{3} x^{3}'
因此,只需将最后一行更改为
display(Math('\\frac{1}{2} %s' %sym.latex(expr)))
它应该看起来像预期的那样。