sympy - SymPy中索引变量的奇怪打印
问题描述
我试图弄清楚如何在 SymPy 中打印索引变量以使其看起来比下面更干净。由于某种原因,我无法使用 Mathjax,所以我很抱歉只有一张照片可以使用。
import sympy
from sympy import *
init_printing(use_latex='mathjax')
S = IndexedBase('S')
i,j,t = Idx('i'),Idx('j'),Idx('t')
S[i]
解决方案
正如我之前的评论所述,现有的乳胶打印机目前不支持它。
但是,您可以手动实现_latex(self, expr)
for Idx
,或使用自定义打印机:
from sympy import *
from sympy.printing.latex import LatexPrinter
class CustomLatexPrinter(LatexPrinter):
def _print_Idx(self, expr):
return expr.name
@classmethod
def printer(cls, expr, **kwargs):
return cls(kwargs).doprint(expr)
init_printing(use_latex='mathjax', latex_printer=CustomLatexPrinter.printer)
我在这里所做的只是简单地实现_print_Idx
将标签作为字符串(通过name
属性)返回,并提供一个打印机函数来匹配init_printing
latex_printer
.
然后,按照你的例子
推荐阅读
- python - 带有元素计数器的 set() (如 bash 中的 sort | unique -c )
- json - 使用继承解析复杂的 JSON 对象
- swift - 如何复制或克隆精灵?
- redux-form - Field Array push 无法聚焦下一个字段?
- laravel - 结帐表格未提交
- c - 程序的输出,当全局变量被重新声明为局部变量时
- scala - 列表过滤器中的布尔运算符
- debugging - 无法使用 VS 2017 15.8.7 和 SSDT for SQL 2016 首次亮相 SSIS 脚本任务
- sql - BigQuery - 动态提取数组内的所有数组元素
- asp.net-mvc-5 - 在 Edit 方法中,更新数据会创建新数据而不是 mvc5