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

在ipython笔记本的Symphy输出中使用乘法运算符符号,python,latex,ipython-notebook,sympy,mathjax,Python,Latex,Ipython Notebook,Sympy,Mathjax,在ipython笔记本中,我希望能够在表达式的latex/mathjax输出中为乘法运算符使用符号(\times或\cdot)。这可能吗 sympy.latex()有一个选项mul\u symbol,但我看不出如何使用它来更改输出单元格中的latex。请尝试以下代码: from IPython.display import display, Math from sympy import * x1 = var('x_1') x2 = var('x_2') display(Math(latex(x1

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


sympy.latex()
有一个选项
mul\u symbol
,但我看不出如何使用它来更改输出单元格中的latex。

请尝试以下代码:

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')))
您可以将
dot
更改为
times
ldot

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

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

def Latex(expr):
    return display(Math(latex(expr,mul_symbol='dot')))
现在您可以使用:

Latex(x1*x2)
init_printing()
有一个参数
latex_printer
,因此您可以执行以下操作

init_printing(latex_printer=lambda *args, **kwargs: latex(*args, mul_symbol='dot', **kwargs))

我在库中保留了创建Latex打印机的功能:

def makeLatexPrinter(**localsets):
    def mylatex(expr,**settings):
        settings.update(localsets)
        return latex(expr,**settings)
    return mylatex
然后在我的笔记本中,我使用:

init_printing(use_latex=True,latex_printer=makeLatexPrinter(mul_symbol='dot'))

如果
init_printing()
通过自身传递关键字参数,如
mul_symbol
,则会更干净。

您可以创建自己的latex函数,使用该选项调用sympy latex函数(甚至调用整个
显示(数学(latex(…))
位)。请参阅我的更新答案。是的,我们需要在
init\u printing
中添加一个选项,用于指定打印机的选项。拉请求欢迎!