Научные публикации или учебные материалы, размещаемые в сети Интернет, могут содержать математические выражения: формулы, специальные обозначения и др. Существует несколько способов включения математических выражений в веб-страницы. Поэтому актуальна проблема выбора наименее трудоемкого и наиболее функционального способа. В статье проанализированы способы включения математических выражений в веб-страницы, выявлены их преимущества и недостатки. Сделан вывод о том, что наименее трудоемким и наиболее функциональным способом для выполнения этой операции является использование Javascript-библиотеки KaTeX.
Пруцков А. В. Математические выражения в веб-страницах // Cloud of Science. – 2020. – T. 7. – № 3. – С. 551-558.
Одним из способов представления результатов исследований научному сообществу является размещение научных статей и отчетов (далее научные документы) в сети Интернет. Чаще всего научные документы представляются в формате PDF. Однако в некоторых случаях требуется их размещение в формате HTML.
Научные документы, как правило, содержат математические выражения: формулы, буквы с дополнительными значками, матрицы и др. Существует несколько способов вставки математических выражений в веб-страницу.
Целью работы является анализ способов вставки математических выражений в веб-страницы и выявление преимуществ и недостатков на основе их практического применения.
$$ \frac{a+b}{c+d} $$ |
Существуют несколько способов преобразования графического и внутритекстового представлений в классическое.
Если научный документ имеет формат документа Word, то получить изображения математических выражение можно путем сохранения документа как веб-страницы. В результате будут созданы веб-страница, а также изображения математических выражений в формате PNG в отдельной папке. Созданная веб-страница содержит избыточные данные о документе Word и требует редактирования перед размещением ее на веб-сервере.
Примеры записи формулы (1) внутритекстовыми представлениями приведены в таблице 1. Для получения представлений использовался онлайн-редактор формул VisualMathEditor [5].
TeX/LaTeX | ASCIIMath | MathML |
---|---|---|
\frac{a+b}{c+d} |
(a+b)/(c+d) |
|
При загрузке веб-страницы вызывается функция библиотеки. Функция перебирает все элементы веб-страницы. Если элемент является внутритекстовым представлением математического выражения, то функция преобразует его в классическое представление путем добавления новых тэгов.
Библиотека MathJax [6, 7] разрабатывалась при поддержке Американского математического общества и других организаций как платформа для математики в веб-страницах в основных Интернет-обозревателях (браузерах). Библиотека поддерживает все три внутритекстовых представления.
Библиотека KaTeX [8] позиционируется как более быстрая по загрузке альтернатива библиотеки MathJax. Библиотека поддерживает только внутритекстовое представление TeX.
Существует промежуточный способ между вставкой графических изображений и использованием Javascript-библиотек. Интернет-ресурс codecogs.com [9] динамически преобразует внутритекстовое представление в графическое.
Автором статьи при создании веб-страниц были проанализированы все перечисленные способы по различным параметрам (табл. 2), что позволило выявить их преимущества и недостатки.
Параметр | Вставка математического выражения как графического изображения | MathJax | KaTeX | CodeCogs |
---|---|---|---|---|
Трудоемкость написания веб-страницы | Высокая | Низкая | Низкая | Средняя |
Скорость загрузки страницы | Низкая | Средняя | Высокая | Низкая |
Исходное представление математического выражения | Графическое | Внутри- текстовое, TeX/LaTeX, ASCIIMath, MathML | Внутри- текстовое, TeX | Внутри- текстовое, LaTeX |
На странице [10] можно сравнить скорости загрузки веб-страницы с математическими выражениями с использованием библиотек KaTeX и MathJax. В среднем библиотека KaTeX выполняет преобразования представлений более чем в 20 раз быстрее, чем библиотека MathJax.
Таким образом, наилучшим способом вставки математических выражений в веб-страницу среди всех способов, рассмотренных в статье, является использование JavaScript-библиотеки KaTeX.
или класса тэга, например:
BODY { COUNTER-RESET: equation; } .equation-number:after { CONTENT: "(" counter(equation) ")"; COUNTER-INCREMENT: equation; }
Номер формулы имеет вид (X) (строка 5), где X – значение счетчика, и добавляется в начало текста внутри тэга (строка 4). При каждом новом тэге класса equation-number счетчик увеличивается (строка 6). В начале страницы счетчик обнуляется (строка 2).
В результате математические выражения в веб-странице будут пронумерованы.
В статье рассматривались только математические выражения, но не химические формулы, что также является темой для отдельной статьи.
По этой тематике не так много публикаций, несмотря на ее актуальность, поэтому список литературы состоит в основном из ссылок на веб-страницы.
Автор благодарит профессора Никульчева Евгения Витальевича за предоставленную им возможность публиковать статьи в таком авторитетном журнале, как журнал Cloud of Science.