Symphy/Ipython何时自动为系数下标以显示?

Symphy/Ipython何时自动为系数下标以显示?,python,sympy,Python,Sympy,下面我展示了Symphy/IPython在显示之前向a0的乳胶添加下标。我试着查看源代码,但找不到这是在哪里完成的? 理想情况下,我希望能够访问此latex字符串变量来修改或至少停止此行为,以便手动处理所有下标 相反,变量an和a1的行为直接。an的latex只是字符串,a1维护我手动给它的下标 来自sympy导入的* a0,an,a1=符号('a0 an a_1') 从IPython.core.interactiveshell导入interactiveshell 显示(InteractiveS

下面我展示了Symphy/IPython在显示之前向
a0
的乳胶添加下标。我试着查看源代码,但找不到这是在哪里完成的? 理想情况下,我希望能够访问此latex字符串变量来修改或至少停止此行为,以便手动处理所有下标

相反,变量
an
a1
的行为直接。
an
的latex只是字符串,
a1
维护我手动给它的下标

来自sympy导入的
*
a0,an,a1=符号('a0 an a_1')
从IPython.core.interactiveshell导入interactiveshell
显示(InteractiveShell.instance().display_formatter.format(a0))
显示(InteractiveShell.instance().display_formatter.format(an))
显示(InteractiveShell.instance().display_formatter.format(a1))
印刷品(乳胶(a0))
印刷品(乳胶(an))
打印(乳胶(a1),“\n”)
打印(str(a0))
打印(str(an))
打印(str(a1))
显示器(a0)
显示(an)
显示器(a1)

我对这种行为感到困惑的例子 我可以制作一个变量
xh
,其中
print(xh)
给出'xh',但是
latex(xh)
给出
x{h}
(因此显示将产生一个下标),就像上面的
a1
一样。或者,我如何才能阻止这种行为?如果我希望变量
a1
带有
latex(a1)
给出
a1
而不是
a1
,该怎么办

其他信息

IPython 7.20.0、SymPy 1.7.1、Python 3.8.8

我的上下文以编程方式处理大量sympy变量的左下标和右下标,这种自动行为正在妨碍我。然而,我认为就其本身而言,讨论上述行为是合理的


编辑:添加了变量的
str()
latex()
。增加了额外的部分,用一个例子解释我的理解不足。

回答我自己的问题,我认为这种行为来自
split\u super\u sub()
。文件指出,以下是“所有打印机通用的一些实用约定”的一部分

在:

从sympy.printing.conventions导入拆分超级子
打印(拆分超级子(“a0”))
打印(拆分超级子系统(“an”))
输出:

('a',[],['0'])
(‘安’、[]、[])
编辑的附加注释:
在我的例子中,现在我可以在
init\u打印旁边编写一个自定义
split\u super\u sub
和一个自定义
LatexPrinter
(latex\u printer=
来更改我代码中的打印行为
symbols
函数支持范围索引,如
symbols('a1:4'))
。文档专门将此链接到冒号的使用,
符号('a:4')
,但是
符号('a1')
可能是其子类。
符号
是一个复杂的函数,需要一个或多个字符串并生成多个带有各种范围快捷方式的
Symbol
对象。谢谢,这是有意义的。但是,symbols创建了这些“索引”变量,这些变量与
indexed()
创建的变量不同,我想知道区别在哪里。下标存储在哪里?它不在
str()中显示的字符串中python变量
a0
是一个
symphy.Symbol
对象,它是更基本的
symphy
类的子类。
str
(和
repr
)是由类定义的,只是一个字符串显示。它不显示对象的所有属性。显然,
a0
a1
之间存在潜在的差异,即使latex显示类似。如何
sympy
显示其对象是一个复杂的主题。这是有意义的,我如何创建其他变量像这样的es?有没有一种方法可以在不更改
str
的情况下更改latex显示?例如,我可以创建一个变量
xh
,其中
print(xh)
给出“xh”,但
latex(xh)
给出
x{h}
(因此显示将生成一个下标)。此外,如果我希望变量
a1
latex(a1)一起使用,如何停止这种行为
giving
a1
?您的评论已经超出了原来的问题。我认为您需要学习
sympy
文档,例如
printing
部分,其中包括
latex
部分。这也是学习文档的替代品。