如何在 sympy 中正确渲染大括号?
How to render large parenthesis correctly in sympy?
我正在尝试使用 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 更糟糕,因为它不显示括号。
当表达式变得更复杂时,这会非常混乱。如果我遗漏了什么或者是否可以配置 sympy 以更好地显示,请告诉我。
pprint
默认使用Unicode字符打印括号,如
2
⎛ 2⎞
⎝a - b ⎠
您的 qtconsole 似乎没有呈现它们,这可能意味着您使用的字体不支持它们。
我的建议:
安装 DejaVu Sans Mono 并将您的 qtconsole 字体设置为该字体(参见 )。根据我的经验,DejaVu Sans Mono 是 SymPy 使用的 Unicode 字符的最佳字体。
在您的计算机上安装 LaTeX。如果您在 qtconsole SymPy 中 运行 init_printing
检测到安装了 LaTeX,它将使用它渲染数学(pprint
仍将渲染文本)。
如果以上都不适合您,解决方法是使用 pprint(expr, use_unicode=False)
,它将仅使用 ASCII 字符打印表达式。它看起来不太好,但它应该可以在任何等宽字体中正确呈现。
我正在尝试使用 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 更糟糕,因为它不显示括号。
当表达式变得更复杂时,这会非常混乱。如果我遗漏了什么或者是否可以配置 sympy 以更好地显示,请告诉我。
pprint
默认使用Unicode字符打印括号,如
2
⎛ 2⎞
⎝a - b ⎠
您的 qtconsole 似乎没有呈现它们,这可能意味着您使用的字体不支持它们。
我的建议:
安装 DejaVu Sans Mono 并将您的 qtconsole 字体设置为该字体(参见 )。根据我的经验,DejaVu Sans Mono 是 SymPy 使用的 Unicode 字符的最佳字体。
在您的计算机上安装 LaTeX。如果您在 qtconsole SymPy 中 运行
init_printing
检测到安装了 LaTeX,它将使用它渲染数学(pprint
仍将渲染文本)。
如果以上都不适合您,解决方法是使用 pprint(expr, use_unicode=False)
,它将仅使用 ASCII 字符打印表达式。它看起来不太好,但它应该可以在任何等宽字体中正确呈现。