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

how to set a **setting by default in sympy

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

print(sp.latex(equation))

所以我想用 "x'_a" 替换等式中的 'x',为此我做了这个:

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

我的问题是:有没有办法默认设置 symbol_names={x:"x'_a"},这样我就不必每次打印时都复制该行等式.

默认设置可以存储在从 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).