在 ipython 笔记本的 sympy 输出中使用乘法运算符的符号

elf*_*nor 5 python latex sympy mathjax jupyter-notebook

在 ipython 笔记本中,我希望能够在表达式的 Latex/mathjax 输出中使用符号(\times 或 \cdot)作为乘法运算符。这可能吗?

sympy.latex()有一个选项mul_symbol,但我不知道如何使用它来更改输出单元中的乳胶。

asm*_*rer 7

init_printing()有一个争论latex_printer,所以你可以做类似的事情

init_printing(latex_printer=lambda *args, **kwargs: latex(*args, mul_symbol='dot', **kwargs))
Run Code Online (Sandbox Code Playgroud)


kor*_*nce 3

尝试以下代码:

from IPython.display import display, Math
from sympy import *
x1 = var('x_1')
x2 = var('x_2')
display(Math(latex(x1*x2,mul_symbol='dot')))
Run Code Online (Sandbox Code Playgroud)

您可以更改dottimesldot

这使得 IPython 使用所需的符号渲染乳胶。

如果您不希望最后一行弄乱所有代码,只需定义一个函数:

def Latex(expr):
    return display(Math(latex(expr,mul_symbol='dot')))
Run Code Online (Sandbox Code Playgroud)

现在你可以使用:

Latex(x1*x2)
Run Code Online (Sandbox Code Playgroud)

  • 是的,我们需要向 `init_printing` 添加一个选项,让您指定打印机的选项。欢迎拉请求! (2认同)