SymPy: Установите конкретное латексное имя для символа

#python #ipython #sympy

Вопрос:

Можно ли задать латексное имя символа явно и по-другому, чем его симпатическое имя? В старом выпуске на github я нашел x = sympy.symbols("x", latex=r"alpha") , но, похоже, это больше не работает. Я думаю, что latex кварг устарел, но я не уверен. Печать x (даже с помощью sympy.latex(x) просто возврата x вместо α .

Ответ №1:

Возможно, причиной прекращения (если это когда-либо было возможно) является тот факт, что вы можете ссылаться на символ с любой переменной python: имена переменных в python не обязательно должны совпадать с именем символа.

 >>> x=symbols('alpha')
>>> pprint(x)
α
 

Это всего лишь распространенная идиома-называть символы переменной так же, как (или наводить на мысль) об их названии.

Комментарии:

1. Спасибо за ответ! Но я уже знал это; проблема, однако, заключается в том, что 1. у меня есть несколько довольно уродливых имен переменных (например, $widetilde{V}_S^R$ и т. Д.) И 2. Все еще есть ошибка, которая не позволяет мне использовать обратные косые черты в именах индексов, если вы хотите лямбдизировать содержащее его выражение. Так что иметь дополнительное латексное имя было бы действительно неплохо.

2. хорошо-не уверен, что есть какой-либо такой вариант. Как насчет того, чтобы просто сохранить заменяющий словарь для целей отображения. Поэтому вычисляйте с помощью правильных имен символов, а затем печатайте expr.subs(replacement_dict) вместо expr .

3. Да, это в большей степени то, чем я сейчас занимаюсь, но это начинает становиться действительно запутанным :Если я в основном реализовал сопоставление символов с таблицей символов для допустимых имен Python, я действительно не хочу добавлять другую таблицу для имен Latex. Было бы лучше просто ввернуть мою старую таблицу, преобразовать все имена sympy в допустимые имена Python и полностью переключиться на таблицу Latex… Но, честно говоря, я чувствую, что это действительно такая базовая функция, которую не хватает Сочувствию, это довольно разочаровывает.