Logo języka | |
| Paradygmat | |
|---|---|
| Aktualnawersja stabilna | 2.71828182 |
| Twórca | |
| Licencja | |
| Platforma sprzętowa | |
| Strona internetowa | |
METAFONT jest częścią systemuTeX. Jest to program autorstwaDonalda Knutha służący do tworzeniafontów bitmapowych. Pierwsza wersja programu została ukończona w1977, ale w1984 METAFONT został przepisany od nowa w językuWEB 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ęciemliczby Eulera – wersja z 2021 roku ma numer 2.71828182[1].
METAFONT interpretuje specjalizowanyjęzyk programowania zorientowany na grafikę, którego składnia była wzorowana naAlgolu. 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ącyobrazy 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ć plikDVI). 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ą zpliku. Pliki zawierające programy metafontowe mają zwyczajoworozszerzeniemf.
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 formaciePostScript, a nie bitmapowe.
| 1GL | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2GL/ Język drugiej generacji/ Asembler | |||||||||||||||
| 3GL / Język trzeciej generacji |
| ||||||||||||||
| 4GL/ Język czwartej generacji/ Język dziedzinowy |
| ||||||||||||||
| 5GL/Logiczne | |||||||||||||||
| Ezoteryczne | |||||||||||||||
| Inne |