使用 Sagemath 命令行进行漂亮的打印

Pretty printing with Sagemath command line

如何在 Sagemath 命令行中 "pretty-print" 一些东西(如在 sympy 中)?根据文档中的 this entry,我找到的唯一解决方案是使用 get_test_shell() 函数。但基本上我必须使用

from sage.repl.interpreter import get_test_shell
shell = get_test_shell()
shell.run_cell('%display ascii_art')
shell.run_cell('integral(x^2/pi^x, x)')

我觉得这太麻烦了(4 行复杂的代码只是为了很好地显示内容!)而且您想要显示的内容甚至必须以字符串形式给出。所以我正在寻找一个更简单的选择。我确定还有另一种方法;我就是找不到。

我想我可能使用了错误的术语,因为根据手册本身:

Pretty printing means rendering things so that MathJax or some other latex-aware front end can render real math.

因此,如果我使用 pretty_print_default(True),它将始终打印乳胶,这不是我现在想要的。

我尝试过的一件我认为可行的事情是

from sympy import pretty_print

哪个应该使用 Sympy 的漂亮打印(这是我真正想要的),但它没有任何区别。

您 运行 遇到了我们希望能够对本质上具有交互性的事物进行文档测试的问题。在命令行试试这个:

sage: %display ascii_art
sage: integral(x^2/pi^x, x)

 / 2    2                      \  -x*log(pi) 
-\x *log (pi) + 2*x*log(pi) + 2/*e           
---------------------------------------------
                      3                      
                   log (pi)       

这是 IPython 中的 "magic" 个百分比指令之一。我同意可以更好地记录它。