Я работаю над приложением Python, которое генерирует PDF-файлы для экзаменов. Данные экзамена извлекаются с сервера, и все математические выражения в данных сохраняются в формате MathML. У меня возникли проблемы со вставкой этих выражений MathML в PDF-файл.
Я попробовал сначала преобразовать MathML в Latex, а затем в изображение, используя этот ответ и Matplotlib, это сработало для простых выражений, но не помогло. работаю с очень сложными объектами, я думаю, потому, что он не охватывает все объекты MathML, потому что я продолжаю видеть такие ошибки, как Entity not определенный или ожидаемый токен.
Я знаю, что полученный MathML действителен, потому что я пытался отобразить его на браузер, и он работает.
Я также пытался найти способы вставить MathML напрямую, чтобы избежать преобразования, но не смог найти ни одного.
Вот пример, который я попробовал, но он не удался.
import matplotlib.pyplot as plt
from lxml import etree
def mathml_to_tex(mathml):
xslt = etree.parse('./mathml/mmltex.xsl')
transform = etree.XSLT(xslt)
mathml_tree = etree.fromstring(mathml)
svg_tree = transform(mathml_tree)
return str(svg_tree)
def latex_to_image(latex_code):
fig, ax = plt.subplots(figsize=(5, 1))
ax.text(0.5, 0.5, latex_code, fontsize=20, ha='center', va='center')
ax.axis('off')
buffer = io.BytesIO()
fig.savefig(buffer, format='png', bbox_inches='tight', pad_inches=0)
buffer.seek(0)
plt.close(fig)
return buffer
def show_tex(mathml, output_file):
tex = mathml_to_tex(mathml)
img = latex_to_image(tex)
with open(output_file, "wb") as temp_file:
temp_file.write(img.read())
mathml_data = '''
x
+
y
+
i
j
k
5
7
8
θ
η
x
×
∯
log
2
∂
sin
ln
∑
B
B
∈
ℝ
'''
show_tex(mathml_data, 'output.png')
ValueError:
\sqrt{x + y} + \left(\begin{array}{ccc}i& j& k\\ 5& 7& 8\\ \theta & \eta & x\end{array}\right)\times ∯{\mathrm{log}}_{2}\left(\partial \mathrm{sin}\left(\mathrm{ln}\left(\sum _{\mathfrak{B}}^{\mathcal{B}}\right)\right)\right) \in \mathrm{ℝ}
^
ParseSyntaxException: Expected token, found '\' (at char 22), (line:1, col:23)
Подробнее здесь: https://stackoverflow.com/questions/788 ... ing-python
Как вставить MathML в PDF с помощью Python? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как правильно отображать большие вложенные математические уравнения с помощью MathML?
Anonymous » » в форуме CSS - 0 Ответы
- 50 Просмотры
-
Последнее сообщение Anonymous
-