您好,提前感谢您的帮助。我正在尝试将数学格式与 sympy 表达式混合在一起。我正在使用 jupyter 笔记本。
我可以在单独的行上获得乳胶和漂亮的 sympy 打印,但似乎无法找到一种方法将它们组合成一行。下面的代码打印三行;第三行应该是前两行的组合。希望有一个我还没有想到的优雅的解决方案(有点像Python菜鸟)。
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) )
当您使用字符串格式时,str
sympy 实现的方法用于将表达式转换为字符串。
然而,输出str
不适用于 LaTeX 输出,请参阅str 的文档 https://docs.sympy.org/latest/tutorials/intro-tutorial/printing.html#str:
要获取表达式的字符串形式,请使用 str(expr)。这也是 print(expr) 生成的形式。字符串形式被设计为易于阅读,但采用正确的 Python 语法的形式,以便可以复制和粘贴。表达式的 str() 形式通常看起来与您输入的表达式完全相同。
所以输出是有效的 python 代码:
>> str(expr)
'sqrt(3)*x**3'
为了获得 LaTeX 格式的表达式,sympy 提供了latex功能 https://docs.sympy.org/latest/tutorials/intro-tutorial/printing.html#mathrm-latex。
可以按如下方式调用它:
>> sym.latex(expr)
'\\sqrt{3} x^{3}'
因此,只需将最后一行更改为
display(Math('\\frac{1}{2} %s' %sym.latex(expr)))
它应该看起来像预期的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)