您好,提前感谢您的帮助。我正在尝试将数学格式与 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) )
Run Code Online (Sandbox Code Playgroud)
当您使用字符串格式化时,strsympy 实现的方法用于将表达式转换为字符串。但是, 的输出str不适用于 LaTeX 输出,请参阅str 的文档:
要获取表达式的字符串形式,请使用 str(expr)。这也是 print(expr) 生成的形式。字符串形式被设计为易于阅读,但形式是正确的 Python 语法,以便可以复制和粘贴。表达式的 str() 形式通常看起来与您输入的表达式完全相同。
所以输出是有效的 python 代码:
>> str(expr)
'sqrt(3)*x**3'
Run Code Online (Sandbox Code Playgroud)
为了获得 LaTeX 格式的表达式,sympy 提供了latex函数。可以按如下方式调用它:
>> sym.latex(expr)
'\\sqrt{3} x^{3}'
Run Code Online (Sandbox Code Playgroud)
因此,只需将最后一行更改为
display(Math('\\frac{1}{2} %s' %sym.latex(expr)))
Run Code Online (Sandbox Code Playgroud)
它应该看起来像预期的那样。
| 归档时间: |
|
| 查看次数: |
2573 次 |
| 最近记录: |