Я использую модуль Python Sympy
.
В модуле Sympy есть библиотека sympy.printing.mathml
, которая преобразует формулы в mathml
.
Однако я не мог преобразовать греческие буквы, такие как α и β, в mathml.
Как я могу решить эту проблему, если я хочу вставить греческие буквы в формулу?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Я хочу получить mathml, например example2, из формулы python, например, example1.
пример1
S=abs(a)*(β-α)^3/6
пример2
<math><mi>S</mi><mo>=</mo><mstyle displaystyle='true'><mfrac><mrow><mo>|</mo><mi>a</mi><mo>|</mo><mo>⁡<!--FUNCTION APPLICATION--></mo><mo>(</mo><mo>β</mo><mo>-</mo><mo>α</mo><msup><mo>)</mo><mn>3</mn></msup></mrow><mrow><mn>6</mn></mrow></mfrac></mstyle></math>
Я выполнил следующий код.
from sympy import *
from sympy.printing.mathml import mathml
print(mathml(S=abs(a)*(β-α)^3/6,printer='presentation'))
Просто введите их. MathML по-прежнему является XML и может обрабатывать текст Unicode.
Возможный дубликат Печать греческих букв с использованием sympy в тексте
Вы пробовали что-то и столкнулись с проблемой? Что именно? Это может быть реальная проблема или попытка отобразить текст UTF8 на консоли, которая не поддерживает UTF8.
@YiBao, это довольно ... странный способ ввода текста. Вы можете установить греческую клавиатуру на свою ОС и набирать символы. И Windows, и Ubuntu поддерживают греческую клавиатуру.
В терминале, поддерживающем копирование/вставку греческих символов, я смог создать переменную с греческим именем, например. beta = Symbol('beta')
, где beta
был буквальным греческим символом. Вывод формулы, которую вы дали - использование **
вместо ^
идентичен коду, сгенерированному, когда символы для альфа и бета импортируются из abc:
>>> from sympy.abc import alpha, beta
>>> print(mathml(abs(a)*(beta-alpha)**3/6, printer='presentation'))
<mrow><mfrac><mrow><msup><mfenced><mrow><mrow><mo>-</mo><mi>α</
o>+</mo><mi>β</mi></mrow></mfenced><mn>3</mn></msup><mo>&Invisi
o><mrow><mfenced close = "|" open = "|"><mi>a</mi></mfenced></mrow></mro
</mfrac></mrow>
Дайте нам пример, что вы конвертировали... что вы не можете конвертировать... каковы входные данные, ожидаемый результат и так далее!!