如何在sympy中默认设置**设置

时间:2018-02-18 23:15:23

标签: python latex settings sympy

我有一些方程式,我正在使用库同情来打印这些方程式,更具体地说是下一行:

print(sp.latex(equation))

所以我想用等式中的'x'替换“x'_a”,为此我做到了这一点:

print(sp.latex(equation, symbol_names={x:"x'_a"}))

我的问题是:默认情况下有没有办法设置symbol_names = {x:“x'_a”},所以每次打印方程时我都不必复制该行。

1 个答案:

答案 0 :(得分:1)

默认设置可以存储在从LatexPrinter创建的自定义打印机中。例如:

import sympy as sp
from sympy.printing.latex import LatexPrinter
x = sp.symbols('x')
myprinter = LatexPrinter({"symbol_names": {x: "x'_a"}})

现在您可以执行myprinter.doprint(x**2)并获取"x'_a^{2}" ...顺便提一下,这是无效的LaTeX,因此您最好使用名称{x: "{x'_a}"}

但在实践中,定义打印功能可能更容易。

def mylatex(expr):
    return sp.latex(expr, symbol_names={x: "{x'_a}"})

然后使用mylatex(x**2)