Метафонт
-
Описание Metafont
- Язык описания для растровых шрифтов
- Интерпретатор для генерации растровых шрифтов
- Разработан Дональдом Кнутом для TeX
-
Особенности Metafont
- Определение точек формы глифов геометрическими уравнениями
- Макроязык для упрощения операций
- Богатый набор операций построения контуров
-
Режимы работы Metafont
- Создание растровых изображений для устройств вывода
- Создание файлов метрики шрифта (TFM)
- Режим проверки для дополнительной информации
- Интерактивный режим для отображения изображений
-
Выходные файлы Metafont
- Файлы NNNNgf для вывода растра
- Файлы TFM для метрической информации
- Файлы журнала для обработки
-
Язык Metafont
- Интерпретируемый язык для декларативных программ
- Переменные восьми типов: числовые, пара, путь, преобразование, перо, картинка, логический, строка
- Макросы vardef как девятый тип переменных
- Использование уравнений для определения переменных
-
Синтаксис Metafont
- Токены числовых и строковых констант
- Символические токены с произвольными именами
- Токены capsule с постоянным значением
- Фиксированные классы символов
- Пробельные символы не содержат маркеров
- Комментарии начинаются с %
-
Разделители и приоритеты
- Разделители в Metafont определяются командой, превращающей два символьных токена в пару совпадающих разделителей.
- Программы Metafont обычно используют только обычные круглые скобки.
- Разделители требуются вокруг определенных типов аргументов макроса.
-
Графика в Metafont
- Кривые определяются как кубические сплайны, что обеспечивает большую универсальность.
- Шрифты Metafont состоят из штрихов с «ручками» конечной ширины и заполненных областей.
- Формы шрифта определяются уравнениями, что позволяет использовать параметры, такие как соотношение сторон и наклон шрифта.
-
Использование и распространение
- Metafont не получил широкого распространения среди профессиональных дизайнеров шрифтов.
- Кнут объясняет это сложностью понимания системы.
- Система позволяет обрабатывать шрифты необычными способами, например, преобразование шрифтов с засечками в без засечек.
-
История и развитие
- Дональд Кнут начал работу над Metafont в 1977 году и выпустил первую версию в 1979 году.
- В 1984 году Кнут разработал новую систему Metafont, используемую сегодня.
-
Пример использования
- Пример создания замкнутой бобовидной формы для символа «B».
- Пример использования в файле LaTeX.
-
Создание шрифтов PostScript Type 1
- Существуют инструменты для преобразования Metafont в шрифты PostScript Type 1.
- Большинство инструментов используют MetaPost для преобразования части языка Metafont в EPS outlines.
- Польская команда JNS разработала METATYPE1, но он не поддерживает ручки.
- mf2pt1 также основан на MetaPost, но требует полной замкнутости контуров.
- MetaFog требует ручной постобработки и не является общедоступным.
- Распространенным подходом остается создание растрового изображения и использование автотрейсера.
-
Дополнительные ресурсы
- Дональд Кнут: Метафонт: Программа, 1986.
- Дональд Кнут: «Метафонтовая книга», 1986.
- Яннис Хараламбус, «Шрифты и кодировки», 2007.
- K. Пишка, «Создание шрифтов Type 1 из источников Metafont», 2004.