来自ipython笔记本中的sympy的格式化程序错误

Ron*_*Ron 5 sympy ipython-notebook

我在iPython Notebook中有以下Sympy相关代码:

from sympy import *
init_printing()
Run Code Online (Sandbox Code Playgroud)

...

定义常量

c, d, e, f = symbols("c, d, e, f")
Run Code Online (Sandbox Code Playgroud)

...

定义两个矩阵

v = Matrix(2,1,[1,1])
w = Matrix(2,1,[2,3])
Run Code Online (Sandbox Code Playgroud)

定义符号矩阵

v, v1, v2 = symbols("v, v1, v2")
v = Matrix(2,1, [v1, v2])
w, w1, w2 = symbols("w, w1, w2")
w = Matrix(2,1, [w1, w2])
Run Code Online (Sandbox Code Playgroud)

添加符号向量v&w

v + w
Run Code Online (Sandbox Code Playgroud)

导致以下错误消息

/home/ron/anaconda/lib/python2.7/site-packages/IPython/core/formatters.py:239:  FormatterWarning: Exception in image/png formatter: 
\left[\begin{smallmatrix}v_{1} + w_{1}\\v_{2} + w_{2}\end{smallmatrix}\right]
      ^
Expected "\right" (at char 6), (line:1, col:7)
  FormatterWarning,
Run Code Online (Sandbox Code Playgroud)

然后产生正确的答案

[v1+w1v2+w2]
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果我重新执行单元格,错误消息就会消失.我在ipython qtconsole中尝试了相同的代码,结果相同.这是一个错误还是我的编码很差?

进一步搜索后,我在第一个单元格中尝试了以下内容:

from IPython.display import display

from sympy.interactive import printing
printing.init_printing(use_latex='mathjax')

from __future__ import division
import sympy as sym
from sympy import *
Run Code Online (Sandbox Code Playgroud)

到目前为止,这消除了上述错误.

来自SymPy的新单元:nbviewer上的开源符号数学

asm*_*rer 6

这是一个bug,已在SymPy的git版本中修复.你可以放心地忽略它.如果将笔记本导出为使用png进行数学运算的格式,则只会出现问题.如果要完全抑制错误,可以使用init_printing(use_latex='mathjax').