pprint
、print
を試しました。前者はUnicodeバージョンのみを印刷し、後者はきれいな印刷を行いません。
from sympy import symbols, Function
import sympy.functions as sym
from sympy import init_printing
init_printing(use_latex=True)
from sympy import pprint
from sympy import Symbol
x = Symbol('x')
# If a cell contains only the following, it will render perfectly.
(pi + x)**2
# However I would like to control what to print in a function,
# so that multiple expressions can be printed from a single notebook cell.
pprint((pi + x)**2)
ディスプレイを使用する必要があります:
from IPython.display import display
display(yourobject)
適切な表現(text/LaTex/png ...)を選択します。最近の十分なバージョンのIPython(6.0+)ディスプレイはデフォルトでインポートされますが、明示的にインポートすることをお勧めします。
問題は、init_printingステートメントにあります。ノートブックでは、latexを実行したくないので、代わりにmathjaxを使用する必要があるため、代わりにこれを試してください。
init_printing(use_latex='mathjax')
これを使用すると、セルの最後の行にsympy式がある場合でも、どこでも通常のきれいな印刷が得られます。
これは機能します
from IPython.display import display, Latex
from sympy import *
x = symbols('x')
display(x)
int_x = Integral(cos(x)*exp(x), x)
result = "$${} = {}$$".format(latex(int_x), latex(int_x.doit()))
display(Latex(result))
derv_x = Derivative(cos(x)*exp(x), x)
result = "$${} = {}$$".format(latex(derv_x), latex(derv_x.doit()))
display(Latex(result))
自分で試してみてください。