METAFONT
METAFONT — язык программирования, используемый для разработки векторных шрифтов. Также это название интерпретатора, выполняющего код METAFONT.
METAFONT | |
---|---|
Тип | Язык программирования |
Разработчик | Дональд Кнут |
Операционная система | Кроссплатформенное ПО |
Первый выпуск | 1979 |
Последняя версия | 2.718281 (март 2008) |
Лицензия | Пермиссивная |
Медиафайлы на Викискладе |
Этот язык программирования был разработан Дональдом Кнутом как дополнение к его типографской системе TeX. Одной из особенностей METAFONT является то, что все очертания символов определяются с помощью развитых геометрических описаний, например, возможно определить какую-либо точку как пересечение отрезка и кривой Безье.
Кнут начал разработку METAFONT в 1977 и выпустил первую версию в 1979. Из-за недостатков в оригинальном языке METAFONT Кнут полностью переработал METAFONT и выпустил исправленную версию в 1984, которая используется по сей день.
METAFONT можно использовать для построения не только символов шрифтов, но и любых других графических объектов. Однако для сложных изображений предпочтительней система MetaPost, использующая в своей работе PostScript.
METAFONT чаще всего запускается без непосредственного участия пользователя. Файлы DVI содержат лишь ссылки на соответствующие гарнитуры шрифтов, а не сами растровые или векторные шрифты, что возможно, например, в PostScript. Следовательно, когда требуется просмотреть, распечатать или сконвертировать файл DVI, необходим доступ непосредственно к изображениям символов в гарнитурах. Большинство дистрибутивов TeX сконфигурированы таким образом, что недоступные шрифты с необходимым разрешением автоматически генерируются вызовами METAFONT. Гарнитуры затем сохраняются для последующего использования.
Также METAFONT может работать в интерактивном режиме и включает команды для отображения на экране получаемых изображений. Кнут говорит, что сейчас использует METAFONT как своего рода калькулятор для решения сложных выражений, а для математических иллюстраций он пользуется MetaPost.
Пример
mode_setup; % Define a beanlike shape for the character B beginchar("B",11pt#,11pt#,0); % Setup coordinates as an equation system y1=y2=y3=0; y4=y5=y6=h; x1=x4=0; x2=x5=w; x3=x6=2*w; % Define pen pickup pencircle xscaled 0.2w yscaled 0.04w rotated 45; % Draw the character curve draw z1..z3..z6{z2-z6}..z5..{z4-z2}z4..cycle; endchar; end
Литература
- Дональд Кнут. Все про TEX = The TEXBook. — М.: «Вильямс», 2003. — С. 560. — ISBN 5-8459-0382-3.
- Дональд Кнут. Все про METAFONT = The METAFONTbook. — М.: «Вильямс», 2003. — С. 384. — ISBN 5-8459-0442-0.
Ссылки
- http://mirror.ctan.org/systems/knuth/dist/mf/mfbook.tex — книга Дональда Кнута 'Всё про METAFONT' (METAFONTbook) в формате TeX (англ.).
- The METAFONT Tutorial: an online guide to using METAFONT.