Python 如何在Symphy中正确呈现大括号?
我试图使用Python 如何在Symphy中正确呈现大括号?,python,latex,sympy,pprint,Python,Latex,Sympy,Pprint,我试图使用pprint在qtconsole或终端中呈现简单的代数表达式,但结果几乎是误导性的。这里有一个最小的例子 from sympy import pprint, simplify, init_printing from sympy.abc import a, b init_printing() c = a - b**2 pprint(simplify(c**2)) print(simplify(c**2)) 我在jupyer qtconsole和rxvt unicode终端中都尝试了这
pprint
在qtconsole或终端中呈现简单的代数表达式,但结果几乎是误导性的。这里有一个最小的例子
from sympy import pprint, simplify, init_printing
from sympy.abc import a, b
init_printing()
c = a - b**2
pprint(simplify(c**2))
print(simplify(c**2))
我在jupyer qtconsole和rxvt unicode终端中都尝试了这段代码,但都没有正确显示多级父项。在终端上,我得到了方括号所在的矩形符号。qtconsole更糟糕,因为它没有显示parenthsi
当表达式变得更复杂时,这是非常令人困惑的。请告诉我是否缺少某些内容,或者是否可以将Symphy配置为更好地显示这些内容。
pprint
默认情况下使用Unicode字符打印括号,如
2
⎛ 2⎞
⎝a - b ⎠
您的qtconsole似乎没有呈现它们,这可能意味着您使用的字体不支持它们
我的建议:
- 安装DejaVu Sans Mono并将qtconsole字体设置为该字体(请参阅)。根据我的经验,DejaVu Sans Mono是SymPy使用的Unicode字符的最佳字体
- 在计算机上安装LaTeX。如果在qtconsole中运行
,Symphy检测到安装了LaTeX,它将使用它渲染数学(init\u printing
仍将渲染文本)pprint
如果以上两项都不是您的选项,解决方法是使用
pprint(expr,use_unicode=False)
,它将仅使用ASCII字符打印表达式。它看起来不太好看,但在任何单空间字体中都应该正确渲染 另一种选择是使用笔记本而不是qtconsole,它将使用MathJax呈现数学(并且不需要安装LaTeX)。DejaVu fonts为qt console解决了这个问题,所以我假设我在终端中的字体可以用同样的方式修复。我喜欢笔记本的建议-它实际上最符合我的预期用途,尽管mathjax可用,但它似乎也把括号搞乱了!