LINUX.ORG.RU

Ищу хоть одну живую реализацию рендера MathML на C++ (можно Qt)

 , , , ,


0

1

Требуется мне возможность генерации картинок с формулами, полученных из строк/файлов с разметкой MathGL.

Из всего зоопарка нашел только Qwt. Вроде он основан на MML Widget, который был в Qt Solution в Qt 4-й версии когда еще рулила Nokia. Зеркало Qwt на гитхабе v.6.3.0:

https://github.com/osakared/qwt

В нем есть пример mmlbrowser, который использует класс QwtMathMLDocument. И он даже работает. Вопрос в том, как он работает. Половину символов из своих собственных примеров

/qwt/examples/mmlbrowser/mml

он не показывает. Некоторые примеры не показывает вообще.

Есть что-нибудь более рабочее для генерации изображений формул с MathML на C++?


UPD: Если брать Qwt с официального сайта https://sourceforge.net/projects/qwt/files/qwt/ , то в файле qwtconfig.pri надо раскомментировать строки:

QWT_CONFIG += QwtMathML и QWT_CONFIG += QwtExamples

чтобы собрался код с MathML. Вот только примера mmlbrowser в Qwt v.6.1.3 что лежит на официальном сайте - нет.

Кароче я запутался, почему на оф. сайте имеется v.6.1.3, а на неофициальном зеркале v.6.3.0.

UPD2: Понял закономерность: Qwt не показывает всякие математические символы типа «принадлежит» и буквы греческого алфавита:

<mo lspace="mediummathspace" rspace="0">&exist;</mo>
...
<mo lspace="mediummathspace" rspace="0">&forall;</mo>
...
<mi>&upsilon;</mi>
<mi>&tau;</mi>
<mi>&sigma;</mi>

Может быть шрифтов не хватает? Но каких?

★★★★★

Ответ на: комментарий от Deleted

Я поискал в исходниках Qwt, никакого упоминания про stix нет ни в каком виде. Дело, видимо, в другом.

Xintrea ★★★★★ ()

В худшем случае - можешь выкрутится на вебките и js. Живых реализаций, насколько я помню и лет 5 назад небыло. Да и вообще, mathml не особо взлетел, есть же [la]tex.

pon4ik ★★★★★ ()
Ответ на: комментарий от Xintrea

Эээ, не все так просто. Делаем файл xxx.odt с формулами-заглушками, переименовываем в xxx.zip, раззипливаем в каталог xxx, заменяем «xxx/Object 1/content.xml», ..., «xxx/Object »[0-9]+«/content.xml», на свои mathML-и, стираем все в «xxx/ObjectReplacement/» , зазипиваем обратно. (Проверил в версии 5.1, в других версиях м.б. немного по другому, раньше не надо было сносить в «xxx/ObjectReplacement/»)

Еще можно вставить в html-файл, firefox умеет показывать mathML, но качество хуже OO/LO (имхо).

Откуда вы берете mathML ? , вручную набираете?

Утром анониму не показывалась «Я не робот» и написать нельзя было.

anonymous ()
Ответ на: комментарий от I-Love-Microsoft

Я с Qt лет 7 не работал. Видел народ - делал как то на колене, ещё тогда.

Просто вспомнил, что уже тогда mathml отгремел и особо нигде не юзался.

Думаю, надо просто выбрать рендерер TeX либо ориентированный на события и реализовать бэкэнд, либо плясать с конвертациями в richText/html.

В любом случае уже мильён упражнявшихся даже на житхабе чё то есть. Говорят, надо на tinytex смотреть, но это не точно.

pon4ik ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Но вроде, парни делали честно, вокруг QTextDocument, а не в картинку.

pon4ik ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Мне нужно - как этот tex влепить в программу на Qt? Там (вероятно) есть функция рендеринга в картинку?

Я так и предполагал, если пользоваться QTextEdit. Вопрос в том как сгенерить картинку. На крайний случай картинку можно сгенерить через QWebEngineView, он вроде поддерживает MathML. Но я так не хочу, это какой-то дикий оверхед.

Xintrea ★★★★★ ()
Ответ на: комментарий от pon4ik

Да и вообще, mathml не особо взлетел, есть же [la]tex.

Но он страшен как никто. Я поигрался с OO/LO формулами, это самое человеческое описание формул в текстовом виде. Но весь OO/LO Math за собой таскать - это тоже дикий оверхед.

Xintrea ★★★★★ ()
Ответ на: комментарий от pon4ik

Говорят, надо на tinytex смотреть, но это не точно.

Не tinytex, а mimetex.

Библиотека mimeTeX - реализация рендеринга математических уравнений из формата TeX (LaTeX) в картинку

Она полностью самодостаточна, и даже кириллицу держит (через транслитерацию).

Xintrea ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.