#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… Но, честно говоря, я чувствую, что это действительно такая базовая функция, которую не хватает Сочувствию, это довольно разочаровывает.