在 ipython 笔记本中,我希望能够在表达式的乳胶/mathjax 输出中使用符号(\times 或 \cdot)作为乘法运算符。这可能吗?
sympy.latex()
有一个选项mul_symbol
,但我看不到如何使用它来更改输出单元格中的乳胶。
在 ipython 笔记本中,我希望能够在表达式的乳胶/mathjax 输出中使用符号(\times 或 \cdot)作为乘法运算符。这可能吗?
sympy.latex()
有一个选项mul_symbol
,但我看不到如何使用它来更改输出单元格中的乳胶。
init_printing()
有一个论点latex_printer
,所以你可以做类似的事情
init_printing(latex_printer=lambda *args, **kwargs: latex(*args, mul_symbol='dot', **kwargs))
试试下面的代码:
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)
我有一个保存在库中的函数来创建 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