Я хочу получить выход латекса из выражения sympy без вычисления выражения. Например, если я делаю латекс ((2 + 3)/7), выход будет 5/7 (с латексом), но для меня это просто для вывода (2 + 3)/7 с латексом. Как это: \ гидроразрыва {2 + 3} {7}Использование функции latex() sympy без вычисления ввода
ответ
Вы можете вручную настроить long_frac_ratio
long_frac_ratio: Разрешенное отношение ширины числителя к ширине знаменателя, прежде чем мы начнем разрывая длинные дроби. Значение по умолчанию 2.
>>> latex(e,long_frac_ratio=3)
'\\frac{2 + 3}{7}'
Вы можете попробовать sympify выражение с ключевым словом evaluate=False
:
>>> latex(S('(2+3)/7',evaluate=False))
'\\frac{1}{7} \\left(2 + 3\\right)'
я вроде нашел это, но проблема в том, что иногда это делает некоторые странные вещи. например, (2 + 3)/7 становится (1/7) (2 + 3), что не является оптимальным для того, что мне нужно делать. (\ frac {1} {7} \ left (2 + 3 \ right)) Я могу просто найти другую библиотеку для разбора латекса или написать собственный парсер. – Zelnoth
Не забудьте про опции режима: – smichr
@smichr "Опции режима:" ?? Также возникла проблема с парсером Latex, игнорируя значение 'evaluation = False'. Есть ли варианты режима, чтобы избежать этого? – JeromeJ
(лучше добавленным в качестве еще одного ответа)
Не стоит забывать о вариантах режима:
>>> e = S('(2+3)/7', evaluate=False)
>>> latex(e,mode='inline')
'$\\left(2 + 3\\right)/7$'
>>> latex(e,mode='plain')
'\\frac{1}{7} \\left(2 + 3\\right)'
>>> latex(e,mode='equation')
'\\begin{equation}\\frac{1}{7} \\left(2 + 3\\right)\\end{equation}'
>>> latex(e,mode='equation*')
'\\begin{equation*}\\frac{1}{7} \\left(2 + 3\\right)\\end{equation*}'
ценят помощь, но добавление режима (как вы можете видеть на выходе из латекса) по-прежнему выводится неправильно. (он добавляет (2 + 3) справа от 1/7 вместо вывода (2 + 3)/7. Кроме того, установка оценки на false все еще вычисляет умножение, которое также я не хочу делать. обходной путь, который не использует sympy, но меня все еще интересует, если это возможно даже в sympy. – Zelnoth
Возможно, опция fold_short_frac - это то, что вы ищете?
>>> latex(S('(2+3)/7',evaluate=False), fold_short_frac=True)
'\\left(2 + 3\\right)/7'
Кроме того, не уверен, что вы имеете в виду относительно оценки = False, не работающей для Mul. Возможно, вы можете привести пример.
>>> S('2*3',evaluate=False)
2*3
>>> S('2*3/7',evaluate=False)
2*3/7
Нашел, почему я думал, что это умножается. Я проверял вещи в жизненном пространстве, которые, похоже, делают вычисления при выводе ответов. поэтому S ('2 * 3/7', значение = False) возвращает 6/7, но если я его печатаю, он показывает 2 * 3/7. Также fold_short_frac определенно не то, что я ищу, так как я хочу, чтобы frac В частности, ответ на мой вопрос будет заключаться в том, чтобы получить функцию latex() для вывода этого: \ frac {2 + 3} {7} – Zelnoth
- 1. SymPy print только имя функции
- 2. Ускорение вычисления символической детерминанты в SymPy
- 3. Как LaTeX печатать объекты sympy изнутри циклов
- 4. Sympy: Использование «допущений» для вычисления кусочков, в частности для IndexedBase
- 5. Ошибка вычисления в таблице Latex
- 6. SymPy - ufuncify функции вектора
- 7. Sympy и лямбда-функции
- 8. Использование конструкторов для сравнения/вычисления ввода пользователя
- 9. Модульный инвертор функции в sympy
- 10. SymPy: упрощение обратной функции
- 11. Оценка функции Sympy
- 12. шаблонные функции в SymPy
- 13. альтернатива упрощающей функции sympy
- 14. Использование sympy с mayavi
- 15. Заменить вызов функции с sympy
- 16. Использование LaTeX в matplotlib
- 17. Есть ли векторизованный способ вычисления градиента в sympy?
- 18. Как построить выражения комбинаторики в Python Sympy Latex?
- 19. Преобразование формулы LaTex в тип, который можно использовать внутри SymPy
- 20. Как отображать символ процента с помощью SymPy и LaTeX
- 21. Sympy - Как объявить математический символ с любой строкой LaTeX
- 22. Сделайте этот болезненный процесс немного быстрее (python, sympy, latex)
- 23. SymPy: Использование диких символов в качестве входных данных для функции
- 24. Использование Vim + latex-suite + knitr
- 25. Интеграция пользовательской функции с sympy
- 26. Матричные неопределенные функции в SymPy
- 27. SymPy: заменой функции в выражение
- 28. Sympy: Получить функции из выражения
- 29. Использование функции в качестве другой функции ввода
- 30. Использование элементов ввода без формы
Ничего особенного! Странно, что он по умолчанию установлен так низко. – Zelnoth