Латех в вебе
Постоянные читатели помнят, что у меня есть движок сайтов S2, и он с помощью расширения s2_latex ищет в тексте страницы формулы на латехе и заменяет их на картинки. Расширение обращается к сервису codecogs.com. Этот сервис зачастую глючит, и я уже давно сделал свой, с блек-дже... качественным SVG и выравниванием по базовой линии.
Мой сервис делает из формул картинки. Вот, для примера, знакомое всем решение квадратного уравнения в SVG и PNG:
На обычных мониторах преимуществ у SVG нет. Но на ретине или при большом увеличении SVG выглядит более чем достойно. А за ретиной будущее.
В svg-файлы можно добавлять скрипты. Благодаря этому я решил проблему с базовой линией. Чтобы понять, в чем состоит эта проблема, достаточно посмотреть на любую страницу Википедии с формулами:
Символы в формулах крупнее и жирнее, чем в окружающем тексте. Они в буквальном смысле выпадают из окружающего текста. Меняем гротеск на антикву, увеличиваем кегль и добавляем выравнивание по базовой линии:
Теперь буквы в формулах аккуратно располагаются на тех же линиях, что и буквы в окружающем тексте. Чтобы заработала магия с выравниванием по базовой линии, к странице нужно подключить специальный скрипт.
У svg-формул есть существенный недостаток: многие браузеры искажают их при печати. В последних версиях IE и FF получается удовлетворительный результат. В браузерах на хромиуме лучше не распечатывать текст с формулами.
Я подготовил описание сервиса и инструкцию. Посмотреть сервис в работе можно в блоге о теоретической физике. В следующий раз я расскажу о том, как всё это работает.
Комментарии
Можно включить в википедии в настройках учётной записи.
Вообще у MathJax и svg-картинок есть свои достоинства и недостатки. Я о них как-нибудь напишу подробнее. Самое главное, что мне не нравится в MathJax — рендеринг формул в JS. Он происходит каждый раз при открытии страниц на каждом компьютере. И MathJax — это подмножество команд латеха.
У меня рендеринг происходит на сервере в полноценном латехе, результат кешируется и отдается в дальнейшем как статические файлы. В перспективе на этой же инфраструктуре можно будет делать картинки не только с формулами, но и чертежами TikZ, диаграммами Юнга и т. д.
Оставьте свой комментарий