Рубрики
Без рубрики

Быстрый хак: преобразование Mathml в латекс

Недавно мне нужно преобразовать некоторые коды MathML в метаданных статьи от SCOAP3 до формата LATEX. Большинство … Помечено Mathml, латекс, Python.

Недавно мне нужно преобразовать некоторые коды Mathml в метаданных статьи из SCOAP3 до формата латекса. Большинство институциональных репозиториев избежают сущностей XML, поэтому Mathml не делает правильно. Я попробовал API WIRIS Но это очень медленно и дают ошибки в большинстве длинных формул. Наконец я нашел XSL-схема Ярошевича Это работает без проблем.

Пример кода Python:

import lxml.etree as ET

def to_latex(text):

    """ Remove TeX codes in text"""
    text = re.sub(r"(\$\$.*?\$\$)", " ", text) 

    """ Find MathML codes and replace it with its LaTeX representations."""
    mml_codes = re.findall(r"()", text)
    for mml_code in mml_codes:
        mml_ns = mml_code.replace('', '') #Required.
        mml_dom = ET.fromstring(mml_ns)
        xslt = ET.parse("mmltex/mmltex.xsl")
        transform = ET.XSLT(xslt)
        mmldom = transform(mml_dom)
        latex_code = str(mml_dom)
        text = text.replace(mml_code, latex_code)
    return text

Оригинал: “https://dev.to/furkan_kalkan1/quick-hack-converting-mathml-to-latex-159c”