Другие записи:
"Наша Раша" грозит художнице тюремным сроком |
Голозадый Дима Билан |
Статья Рейнина |
Клин Часто возникает необходимость вставить в письмо или в тот же ЖЖ математическую формулу. Набирать в каком-либо визуальном редакторе формул? Создавать маленький TeX-овский документик и компилировать? Долго и неудобно.
Вот, нашел недавно программку
mimetex, которая частично решила эту проблему. Распространяется в виде исходного кода. В отличие от больших проектов, тут нет тысячи маленьких файлов, а лишь два исходника на C, исходник утилиты для замены шрифтов и пара h-файлов, один из которых содержит описание шрифта (к слову, его можно заменить на другой с помощью упомянутой утилиты).
Компилируется вся эта радость при помощи gcc (под Windows в том числе: Visual C++ почему-то не захотел компилировать, но я и не сильно разбирался). В зависимости от настроек (дефолтовые, кстати, тоже хороши), передаваемых через параметр -D компилятора можно немного изменять функциональность программы (о ней чуть ниже) и даже добавить свои команды.
Размер без оптимизации (с оптимизацией версия под Windows работала нестабильно) получался 1МБ. После упаковки UPX'ом -- 300КБ!
И что мы имеем в этих трех сотнях?
- практически точная поддержка синтаксиса формул TeX и LaTeX,
- шрифты разного размера, включающие курсивное, полужирное начертания, греческие буквы и практически все общеупотребимые символы,
- возможность рисовать диаграммы и схемы, поворачивать рисунок и т.д.,
- ввод матриц и многострочных формул (в том числе и с выравниванием),
- вывод в форматах gif, pbm в том числе с прозрачностью и антиалиасингом (матрицу фильтрования можно задать самому),
- возможность кэширования формул,
- возможность работать как cgi-приложение (mimetex для этого, в общем-то, и задумывался) с фильтрацией запросов по ip,
- встроенный календарик в виде таблички (не сильно нужно, но приятно),
- возможность сокращенного ввода команд.
Остальные подробности на
родном сайте утилиты.
Для более, чем скромного по нынешним меркам размера, это очень и очень неплохо.
Конечно качество немного хуже, чем у какого-нибудь дистрибутива TeX (у меня стоит MikTeX и 80% пакетов из дистрибутива -- это 500МБ, линуксовый tetex тоже не маленький), поэтому ему не тягаться в качестве с latexrender, который просто обращается к дистрибутиву. Но зачем ставить целый дистрибутив, если потребности не так велики -- встроить, например, возможность вставки формул в форум. Да и к чему полиграфическое качество в письме?
В качестве подобных cgi-программ можно использовать также
textogif или
gladTeX, но все они требуют наличия других приложений.
Вот примеры работы программы.
Размеры изображений 868, 302, 746 и 1318 байт соответственно. Можно меньше (раза в два), если отключить антиалиасинг.
Для сравнения последнее изображение, полученное при помощи LaTeX.
Выглядит лучше (а на бумаге -- так вообще замечательно). Лучше размещение элементов, формула стала более сбалансированной, да и шрифты покачественнее прорисованы. Но для веба не подходит -- при масштабировании формула «размылась» (так как прогонялась через цепочку tex→dvips→gs), да и размер изображения побольше будет -- 2900 байт.
По-моему, неплохо. Немаловажно и то, что программа распространяется по GPL, а значит ее исходник с чистой совестью можно использовать в своих целях. Написать плагин, например, к почтовой программе.