Сайт Романа ПарпалакаБлог20140122

Латех в вебе

22 января 2014 года, 12:19

Постоянные читатели помнят, что у меня есть движок сайтов S2, и он с помощью расширения s2_latex ищет в тексте страницы формулы на латехе и заменяет их на картинки. Расширение обращается к сервису codecogs.com. Этот сервис зачастую глючит, и я уже давно сделал свой, с блек-дже… качественным SVG и выравниванием по базовой линии.

Мой сервис делает из формул картинки. Вот, для примера, знакомое всем решение квадратного уравнения в SVG и PNG:

На обычных мониторах преимуществ у SVG нет. Но на ретине или при большом увеличении SVG выглядит более чем достойно. А за ретиной будущее.

В svg-файлы можно добавлять скрипты. Благодаря этому я решил проблему с базовой линией. Чтобы понять, в чем состоит эта проблема, достаточно посмотреть на любую страницу Википедии с формулами:

Символы в формулах крупнее и жирнее, чем в окружающем тексте. Они в буквальном смысле выпадают из окружающего текста. Меняем гротеск на антикву, увеличиваем кегль и добавляем выравнивание по базовой линии:

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

У svg-формул есть существенный недостаток: многие браузеры искажают их при печати. В последних версиях IE и FF получается удовлетворительный результат. В браузерах на хромиуме лучше не распечатывать текст с формулами.

Я подготовил описание сервиса и инструкцию. Посмотреть сервис в работе можно в блоге о теоретической физике. В следующий раз я расскажу о том, как всё это работает.

Поделиться

C Новым годом Ctrl Круговая трактриса

Читайте также

Новая версия S2 и блог о теоретической физике
Выпустил новую версию движка S2.
2011

Комментарии

#1. 22 января 2014 года, 17:46. Влад пишет:
Почему не MathJax? У него самый приятный рендеринг. http://i024.radikal.ru/1401/4e/4dd615af7f29.png
Можно включить в википедии в настройках учётной записи.
#2. 22 января 2014 года, 18:10. пишет:
Когда я начинал разбираться в этом вопросе, MathJax был слишком медленным. CodeCogs был вне конкуренции. Сейчас ситуация с быстродействием у MathJax не такая плачевная.

Вообще у MathJax и svg-картинок есть свои достоинства и недостатки. Я о них как-нибудь напишу подробнее. Самое главное, что мне не нравится в MathJax — рендеринг формул в JS. Он происходит каждый раз при открытии страниц на каждом компьютере. И MathJax — это подмножество команд латеха.

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

Оставьте свой комментарий


Формулы на латехе: $$f(x) = x^2-\sqrt{x}$$ превратится в $$f(x) = x^2-\sqrt{x}$$.
Выделение текста: [i]курсивом[/i] или [b]жирным[/b].
Цитату оформляйте так: [q = имя автора]цитата[/q] или [q]еще цитата[/q].
Других команд или HTML-тегов здесь нет.

Записи