METAFONT

METAFONT
Логотип программы METAFONT
Тип Язык программирования
Разработчик Дональд Кнут
Операционная система Кроссплатформенное ПО
Первый выпуск 1979
Последняя версия 2.718281 (март 2008)
Лицензия Пермиссивная
Логотип Викисклада Медиафайлы на Викискладе

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

Этот язык программирования был разработан Дональдом Кнутом как дополнение к его типографской системе 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.
  • Graham Douglas. Typeset the source code documentation for MetaFont[1].

Примечания

  1. Typeset the source code documentation for MetaFont  (рус.). ru.overleaf.com. Дата обращения: 2 августа 2022.

Ссылки

  • http://mirror.ctan.org/systems/knuth/dist/mf/mfbook.tex — книга Дональда Кнута 'Всё про METAFONT' (METAFONTbook) в формате TeX (англ.).
  • The METAFONT Tutorial: an online guide to using METAFONT.
Перейти к шаблону «TeX navbox»
ΤΕΧ
Макропакеты
Альтернативные движки ΤΕΧ
Дистрибутивы
Сообщество
  • CTAN
  • TUGboat
  • The PracTeX Journal
  • Deutschsprachige Anwendervereinigung TeX
Разное
Перейти к шаблону «Свободная типографика»
Гарнитуры операционных систем
Другие гарнитуры
Программное обеспечение
Лицензии
Группы и люди
  • Категория:Свободные шрифты
Перейти к шаблону «Дональд Кнут»
Публикации
Программное обеспечение
  • ΤΕΧ
  • MIXAL (MIX
  • MMIX
  • GNU MDK)
Шрифты
Грамотное программирование
  • WEB
  • CWEB
Алгоритмы
Другое
  • Dancing Links
  • Knuth reward check
  • Премия Кнута
  • Man or boy test
  • Quater-imaginary base
  • -yllion
  • Potrzebie system of weights and measures