Рендеринг математических формул с помощью KaTex.

30.09.14

Разработка - Математика и алгоритмы

Рендеринг математических формул в HTMLDocument, с применением javascript библиотеки KaTex.

Скачать исходный код

Наименование Файл Версия Размер
Обработка-пример работы библиотеки KaTex
.epf 33,63Kb
6
.epf 33,63Kb 6 Скачать
Необходимые для обработки шрифты
.zip 525,63Kb
4
.zip 525,63Kb 4 Скачать

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

Пример формулы (1): γ=±(100*δ)/Xn (первый символ - латинская гамма)
На печать требовалось выводить формулы в "академическом" представлении. Как в книжках по высшей математике. 

Решение виделось таким:

  1. набор формул на языке разметки LaTex
  2. рендеринг в картинку (png), хранение картинки в базе  
  3. вставка картинки в макет, при печати

 


Но, оказалось, рендерить красивые формулы можно на чистом html. На GitHub, уже как год, существует проект KaTeX распространяемый под лицензией MIT. Смысл проекта - онлайн рендеринг математических формул на страницах, при помощи небольшой javascript библиотеки.

Синтаксис описания формул, какой же как и в TeX. Но, надо понимать, что маленькая библиотека поддерживает весьма ограниченный набор функций. Например, на данный момент нет поддержки массивов, но проект развивается и функцию \array скоро добавят (надеюсь). Еще нет поддержки кириллицы, об этом, в конце публикации.

Формулу из примера (1), используя синтаксис Tex, можно записать в виде: \\gamma = \\pm \\frac{100 \\cdot \\sigma}{x_n}
Вот так выглядит рендер формулы в браузере, с помощью KaTex: gamma = pm frac{100 cdot sigma}{x_n} (да, это картинка, т.к. вставить сюда сгенерированный html не получится)

В прикрепленных к публикации файлах, есть демонстрационная обработка, с примерами работы библиотеки.

Что требуется для корректной работы демонстрационой обработки:

  1. IE не ниже восьмой версии.
  2. Установленные локально шрифты семейства Katex.

 

Какие еще есть особенности:

  1. Для возможности локальной работы обработки, текст "katex.min.js" и "katex.min.css" вставлен в одноименные макеты обработки. При желании, можно запустить собственный веб сервер, выложить туда файлы с гитхаба, и закомментировать строки: СтрЗаменить(HTMLDocument, "
  2. По умолчанию, HTMLDocument работает в режиме IE 7 версии, в которой KaTex корректно не отражается. Для решения проблемы, в голову html вставлен тег: "meta http-equiv="X-UA-Compatible" content="IE=9"" 
  3. Для установки шрифтов нужно: под правами администратора скопировать в папку Fonts или "Установить" правой кнопкой мыши, все файлы в папке с расширением ttf. Шрифты зарегистрируются в системе, под фамилией Katex. Браузер IE, должен увидеть новые шрифты на лету, без перезапуска.
  4. Чтобы не устанавливать шрифты локально, можно запустить веб сервер и опубликовать шрифты в папке \SiteName\katex\fonts\. Но такой вариант у меня не заработал: при обработке css, IE упорно не видит шрифты в папке \fonts. Именно IE запущенный в HTMLDocument. В простой, тестовой страничке, все работает нормально. 
  5. KaTex не поддерживает кириллицу. Для решения проблемы, придется вносить изменения в исходный код и собирать katex.min.js самому (Makefile).

 

KaTex математические формулы

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    1890    stopa85    12    

34

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    4695    user1959478    50    

34

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    7701    4    SpaceOfMyHead    17    

56

Мини-обзор разных решений задач

Математика и алгоритмы Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    3119    RustIG    6    

25

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    7955    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

Математика и алгоритмы Платформа 1С v8.3 Бесплатно (free)

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4570    fishca    13    

37

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8962    John_d    73    

46
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DAnry 8 01.10.14 17:08 Сейчас в теме
Очень интересная работа, узкой специализации конечно, но интересная...
2. orehova123 01.10.14 19:33 Сейчас в теме
Ох, красавец! А я свой диплом в ЛаТехе писала от и до. Научник тогда еще бубнил "ну сдалась тебе твоя 1с-ка". Знал бы он, что и на 1с тоже такое делать можно :)
Плюсую за идею и работу! Развивай, дойдешь до того, чтоб в конфе писались целые статьи, а не просто формулы рисовались
3. monsta 58 01.10.14 23:01 Сейчас в теме
Знал бы он, что и на 1с тоже такое делать можно

Показать HTML документ?
wunderland; infoengineer; +2 Ответить
4. orehova123 02.10.14 09:43 Сейчас в теме
5. Трактор 1247 02.10.14 17:50 Сейчас в теме
первый символ - латинская гамма

Разве в латинице есть буква гамма? Это же греческая буква.
6. PiccaHut001 08.10.14 14:57 Сейчас в теме
"5.KaTex не поддерживает кириллицу" - бесполезная хрень, смысл её использовать у нас?
Оставьте свое сообщение