В процессе написания своей, узко специализированной конфигурации, понадобилось хранить и выводить на печать математические формулы.
Пример формулы (1): γ=±(100*δ)/Xn (первый символ - латинская гамма)
На печать требовалось выводить формулы в "академическом" представлении. Как в книжках по высшей математике.
Решение виделось таким:
- набор формул на языке разметки LaTex
- рендеринг в картинку (png), хранение картинки в базе
- вставка картинки в макет, при печати
Но, оказалось, рендерить красивые формулы можно на чистом html. На GitHub, уже как год, существует проект KaTeX распространяемый под лицензией MIT. Смысл проекта - онлайн рендеринг математических формул на страницах, при помощи небольшой javascript библиотеки.
Синтаксис описания формул, какой же как и в TeX. Но, надо понимать, что маленькая библиотека поддерживает весьма ограниченный набор функций. Например, на данный момент нет поддержки массивов, но проект развивается и функцию \array скоро добавят (надеюсь). Еще нет поддержки кириллицы, об этом, в конце публикации.
Формулу из примера (1), используя синтаксис Tex, можно записать в виде: \\gamma = \\pm \\frac{100 \\cdot \\sigma}{x_n}
Вот так выглядит рендер формулы в браузере, с помощью KaTex: (да, это картинка, т.к. вставить сюда сгенерированный html не получится)
В прикрепленных к публикации файлах, есть демонстрационная обработка, с примерами работы библиотеки.
Что требуется для корректной работы демонстрационой обработки:
- IE не ниже восьмой версии.
- Установленные локально шрифты семейства Katex.
Какие еще есть особенности:
- Для возможности локальной работы обработки, текст "katex.min.js" и "katex.min.css" вставлен в одноименные макеты обработки. При желании, можно запустить собственный веб сервер, выложить туда файлы с гитхаба, и закомментировать строки: СтрЗаменить(HTMLDocument, "
- По умолчанию, HTMLDocument работает в режиме IE 7 версии, в которой KaTex корректно не отражается. Для решения проблемы, в голову html вставлен тег: "meta http-equiv="X-UA-Compatible" content="IE=9""
- Для установки шрифтов нужно: под правами администратора скопировать в папку Fonts или "Установить" правой кнопкой мыши, все файлы в папке с расширением ttf. Шрифты зарегистрируются в системе, под фамилией Katex. Браузер IE, должен увидеть новые шрифты на лету, без перезапуска.
- Чтобы не устанавливать шрифты локально, можно запустить веб сервер и опубликовать шрифты в папке \SiteName\katex\fonts\. Но такой вариант у меня не заработал: при обработке css, IE упорно не видит шрифты в папке \fonts. Именно IE запущенный в HTMLDocument. В простой, тестовой страничке, все работает нормально.
- KaTex не поддерживает кириллицу. Для решения проблемы, придется вносить изменения в исходный код и собирать katex.min.js самому (Makefile).