METAFONT jest częścią systemu TeX. Jest to program autorstwa Donalda Knutha służący do tworzenia fontów bitmapowych. Pierwsza wersja programu została ukończona w 1977, ale w 1984 METAFONT został przepisany od nowa w języku WEB i ta wersja jest używana do dziś. Analogicznie do TeX-a, kolejne wersje METAFONT-a, począwszy od 1990 roku, oznaczane są coraz dokładniejszym rozwinięciem liczby Eulera – wersja z 2021 roku ma numer 2.71828182[1].
METAFONT interpretuje specjalizowany język programowania zorientowany na grafikę, którego składnia była wzorowana na Algolu. W języku tym projektant fontu opisuje:
Znaki powstają przez zapełnienie powierzchni ograniczonej krzywymi lub rysowane są wirtualnym pędzlem (pen), który porusza się po ścieżkach definiowanych za pomocą krzywych Béziera. Pędzel może mieć różne kształty i zmieniać swoje atrybuty (rozmiar, kąt obrotu itp.) wzdłuż ścieżki. Wynikiem kompilacji programu METAFONT-owego jest plik GF (generic font) zawierający obrazy bitmapowe wszystkich znaków, wygenerowane w określonej rozdzielczości; ponieważ znaki opisywane są wektorowo, zawsze istnieje możliwość wygenerowania pliku GF w praktycznie dowolnej rozdzielczości.
Pliki GF są na ogół pakowane do plików PK (packed font) zewnętrznym narzędziem GFtoPK. Wcześniej używany był niespakowany format PXL.
METAFONT generuje ponadto pliki TFM (TeX Font Metrics) zawierające informacje o rozmiarze poszczególnych znaków potrzebne TeX-owi, aby mógł złożyć tekst (stworzyć plik DVI). Następnie pliki GK/PK wykorzystywane są przez odrębny program do przetworzenia pliku DVI na wydruk.
METAFONT może pracować interaktywnie, lecz częściej odbywa się to wsadowo, tzn. polecenia odczytywane są z pliku. Pliki zawierające programy metafontowe mają zwyczajowo rozszerzenie mf.
Tak naprawdę zastosowanie programu METAFONT nie ogranicza się tylko do definiowania fontów, można go użyć także do tworzenia ilustracji, chociaż nie jest to specjalnie wygodne. Z tego powodu powstał MetaPost – program będący rozwinięciem METAFONT, przeznaczony do tworzenia rysunków w języku bardzo zbliżonym do METAFONT i wytwarzający pliki wektorowe w formacie PostScript, a nie bitmapowe.
Zobacz też
Przypisy
Linki zewnętrzne