3

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

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

4

3 回答 3

4

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

init_printing(latex_printer=lambda *args, **kwargs: latex(*args, mul_symbol='dot', **kwargs))
于 2015-11-16T22:31:42.440 回答
2

试试下面的代码:

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')))

您可以更改dottimesldot

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

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

def Latex(expr):
    return display(Math(latex(expr,mul_symbol='dot')))

现在你可以使用:

Latex(x1*x2)
于 2013-08-28T03:07:45.737 回答
0

我有一个保存在库中的函数来创建 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

于 2015-12-01T19:17:54.900 回答