Sympy:如何打印所有 LaTeX 排版的表​​达式列表?

Sympy: how to print a list of expressions all LaTeX typeset?

我有一个多项式表达式列表(在我的例子中是作为 Groebner 基础计算的输出获得的),我想查看。我正在使用 Jupyter,我已经开始

import sympy as sy
sy.init_printing()

这会导致单个表达式被很好地排版。对于非 Groebner 示例:

sy.var('x')
fs = sy.factor_list(x**99-1)
fs2 = [x[0] for x in fs[1]]
fs2

结果是一个很好的 LaTeX 排版表达式列表。但是我如何一次一个地打印这些表达式;更确切地说;每行一个?我试过:

for f in fs2:
    sy.pprint(f)

但这会生成 ascii 漂亮的打印,而不是 LaTeX。总的来说,我的表达往往很长,我真的很想单独看一下。我当然可以

fs2[0]
fs2[1]
fs2[2]

等等,但这很烦人,而且对于长列表几乎没有用。有什么想法或建议吗?谢谢!

Jupyter(通过 IPython)有一个名为 display 的便捷函数,它与 SymPy 配合得很好:

import sympy as sy
sy.init_printing()
sy.var('x')
fs = sy.factor_list(x**99-1)
fs2 = [x[0] for x in fs[1]]
for f in fs2:
    display(f)

输出:

您还可以使用 latex 函数获取每个多项式的乳胶代码:

import sympy as sy
from sympy.printing.latex import latex
sy.init_printing()
sy.var('x')
fs = sy.factor_list(x**99-1)
fs2 = [x[0] for x in fs[1]]
for f in fs2:
    print(latex(f))

输出:

x - 1
x^{2} + x + 1
x^{6} + x^{3} + 1
x^{10} + x^{9} + x^{8} + x^{7} + x^{6} + x^{5} + x^{4} + x^{3} + x^{2} + x + 1
x^{20} - x^{19} + x^{17} - x^{16} + x^{14} - x^{13} + x^{11} - x^{10} + x^{9} - x^{7} + x^{6} - x^{4} + x^{3} - x + 1
x^{60} - x^{57} + x^{51} - x^{48} + x^{42} - x^{39} + x^{33} - x^{30} + x^{27} - x^{21} + x^{18} - x^{12} + x^{9} - x^{3} + 1