Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Symphy中正确呈现大括号?_Python_Latex_Sympy_Pprint - Fatal编程技术网

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中运行
    init\u printing
    ,Symphy检测到安装了LaTeX,它将使用它渲染数学(
    pprint
    仍将渲染文本)


如果以上两项都不是您的选项,解决方法是使用
pprint(expr,use_unicode=False)
,它将仅使用ASCII字符打印表达式。它看起来不太好看,但在任何单空间字体中都应该正确渲染

另一种选择是使用笔记本而不是qtconsole,它将使用MathJax呈现数学(并且不需要安装LaTeX)。DejaVu fonts为qt console解决了这个问题,所以我假设我在终端中的字体可以用同样的方式修复。我喜欢笔记本的建议-它实际上最符合我的预期用途,尽管mathjax可用,但它似乎也把括号搞乱了!