20090319

Как вставить формулу LaTeX в блоге или на форуме

Я уже как-то писал о том, как сделать картинку из формулы. Однако есть ещё более простые способы вставить формулу на веб-страницу.

1-й способ. Javascript-библиотека jsTeXrender (yourequations.com). GPLv3, кстати. Исходный код здесь (в том числе, серверной части).

Где-нибудь на странице подгружаем скрипт. Например, вставляем такой код перед </body>:
<script type="text/javascript" src="http://tex.yourequations.com/"></script>
А все формулы LaTeX пишем внутри тегов <pre lang="eq.latex"/> и <code lang="eq.latex">:
<pre lang="eq.latex">
\!i\hbar\frac{\partial}{\partial t}\psi=-\frac{\hbar^2}{2m}\nabla^2\psi+V\psi
</pre>
И получаем:

\!i\hbar\frac{\partial}{\partial t}\psi=-\frac{\hbar^2}{2m}\nabla^2\psi+V\psi
Плюсы: легко использовать, библиотечку можно разместить у себя. Формулы остаются читаемы даже при выключенном скрипте. При добавлении новых формул ничего настраивать не надо.

2-й способ. Javascript библиотека jsMath. В отличие от описанного в предыдущем способе jsTeXrender, jsMath не требует настроенного сервера для работы, а рисует формулы сама.

Для использования, нужно подгрузить библиотеку:
<script src="путь/к/библиотеке/easy/load.js"></script>
а формулы, по умолчанию можно писать прямо как в LaTeX:
\[
\!i\hbar\frac{\partial}{\partial t}\psi=-\frac{\hbar^2}{2m}\nabla^2\psi+V\psi
\]
jsMath находит их сама и перерисовывает как надо. При желании, маркеры начала и конца формулы можно настроить.

Рисует формулы jsMath хорошо. Достаточно сказать, что именно jsMath используется в стандартном интерфейсе блокнота Sage. Дополнительные примеры можно посмотреть на сайте jsMath.

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

3-й способ. Идём на страничу Texify.com. Вводим туда свою формулу и получаем код для вставки на страницу.

texify example

Можно вставлять формулы и не заходя на сайт, URL картинок формируется так: http://www.texify.com/img/формула-LaTeX.gif. Очень удобно, если формулу надо поправить.

Дополнение. Выданный на texify.com адрес картинки с некоторых пор не работает за пределами сайта texify.com, так что картинку придётся сохранить, куда-то выложить и только после этого вставить, куда надо. Всё это лишает Texify.com смысла.

Аналогичный сервис доступен на mathURL.com. Как и tinyurl.com, он генерирует короткие адреса для картинок с формулами. Вот результат

формула нарисованная mathurl.com

Плюсы: минимум усилий для вставки одной-двух формул. Не зависит от скрипта (можно использовать, например, в ЖЖ или на форумах). Минусы: зависимость от внешнего веб-сервиса.

4-й способ. Похож на первые два, только картинку создаёт CGI-программка mimetex. Программка написана на Си, и TeX-а для своей работы не требует. Формула вставляется так:
<img src="http://ваш.сервер/cgi-bin/mimetex.cgi?формула-LaTeX" alt="формула-LaTeX">
а выглядит так:

mimetex example

Плюсы: легко организовать почти на любом сервере, где разрешены CGI-скрипты, не требует на нём установки LaTeX. Никакой зависимости от сторонних веб-сервисов. Минус: нужен свой сервер.

Вариант этого способа — CGI-программка mathtex. В отличие от mimetex, она использует настоящий LaTeX, установленный на сервере, и dvipng, чтобы создавать картинки. В остальном аналогична.

5-й способ. Есть настоящий pastebin для физиков и математиков. mathbin.net. Там можно постить фрагменты текста, и прямо там обсуждать, как на форуме. Это, однако, немного другой жанр.

5-й способ. Недавно возможность отрисовывать формулу LaTeX в виде картинки появилась в Google Charts. Ссылка на картинку формируется так: http://chart.apis.google.com/chart?cht=tx&chl=формула LaTeX. Например:

Google Charts example

(ссылка на картинку: http://chart.apis.google.com/chart?cht=tx&chl=\huge\!i\hbar\frac{\partial}{\partial%20t}\psi=-\frac{\hbar^2}{2m}\nabla^2\psi+V\psi).

6-й способ. Описан в этом блоге. Опять с подключением внешних скриптов, в этот раз предоставленных сайтом watchmath.com, которые, в свою очередь, обращаются к сервису mathcache.appspot.com. Отрисовкой формул занимается экземпляр mathTeX (см. выше), запущенный кем-то на инфраструктуре Amazon. Скрипты же позволяют вставлять формулы как в LaTeX, просто $формула$ или \[ формула \]. Подключаются скрипты так:
<script type="text/javascript"
src="http://mathcache.s3.amazonaws.com/replacemath.js"></script>
<script type="text/javascript">
replaceMath( document.body );
</script>
Пример отрисовки:
пример mathcache.appspot.com
По стилю использования получается похоже на jsMath. Примечание: при использовании этого скрипта все знаки «доллара» на сайте придётся защищать тегом <code>.

Ещё кое-какие способы перечислены здесь.