Interested Article - METAFONT

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 .
  • Дональд Кнут . = The METAFONTbook. — М. : , 2003. — С. . — ISBN 5-8459-0442-0 .
  • Graham Douglas. Typeset the source code documentation for MetaFont .

Примечания

  1. . ru.overleaf.com . Дата обращения: 2 августа 2022.

Ссылки

  • — книга Дональда Кнута 'Всё про METAFONT' (METAFONTbook) в формате TeX ( англ. ).
Источник —

Same as METAFONT