Предотвратите замену Sympy уравнения

Возможно, я не замечаю очевидного, но как вы мешаете Sympy перестраивать уравнения?

Я использую Sympy в ноутбуке iPython, поэтому я могу легко скопировать код Latex в Lyx, но мне нужны уравнения в том же порядке, как я определил их.

Например, формула для излучения серого тела как функция ее температуры:

enter image description here

Sympy автоматически помещает компонент температуры на передний план, что дает очень необычное представление формулы. Есть ли способ предотвратить это?

Ответ 1

В настоящее время в SymPy нет возможности печатать вещи точно по мере их ввода, потому что эта информация даже не сохраняется нигде.

Я верю в умножение, символы упорядочены по алфавиту, причем заглавные буквы идут до строчных букв (в основном, порядка от ord). Лучший трюк, который я могу придумать, - использовать параметр symbol_names для latex, который позволяет вам изменить имя, используемое для символа в его представлении LaTeX. Заказ будет по-прежнему основываться на оригинальном имени символа, поэтому вы можете обмануть его:

>>> from sympy.abc import epsilon, omega, t
>>> latex(epsilon*sigma*t**4, symbol_names={t:"T"})
\epsilon \sigma T^{4}

Если вы хотите, чтобы это красиво печаталось в ноутбуке, вам придется написать пользовательскую версию расширения для печати, которое передает ваш symbol_names dict на latex. См. https://github.com/sympy/sympy/blob/master/sympy/interactive/printing.py (в идеале можно просто передать параметры latex на init_printing, я открою проблему в трекере отслеживания SymPy для этого).