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

30.09.14

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка-пример работы библиотеки KaTex
.epf 33,63Kb
6
6 Скачать (1 SM) Купить за 1 850 руб.
Необходимые для обработки шрифты
.zip 525,63Kb
4
4 Скачать (1 SM) Купить за 1 850 руб.

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

Пример формулы (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    3165    stopa85    12    

38

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

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

19.10.2023    7556    user1959478    51    

36

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

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3111    maksa2005    8    

26

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

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

1 стартмани

09.06.2023    10905    7    SpaceOfMyHead    18    

61

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

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

03.04.2023    4361    RustIG    9    

25

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

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

23.11.2022    3531    gzharkoj    14    

25

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

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

1 стартмани

21.03.2022    9042    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DAnry 9 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. Трактор 1254 02.10.14 17:50 Сейчас в теме
первый символ - латинская гамма

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