METAFONT è un linguaggio di descrizione di pagina usato per definire tipi di carattere vettoriale e il relativo interprete, che traduce il suo codice per generare caratteri bitmap utilizzabili, ad esempio nei documenti Postscript, entrambi concepiti e realizzati da Donald Knuth per realizzare uno strumento per il sistema di composizione tipografica TEX.
Knuth iniziò a lavorare sul programma per la creazione di caratteri nel 1977, e produsse la prima versione di METAFONT nel 1979. A causa di inadeguatezze nel linguaggio METAFONT originale, Knuth sviluppò un nuovo sistema nel 1984, ed è questo sistema aggiornato che è ancora in uso oggi; METAFONT enumera le versioni con un sistema simile a TEX, in cui il numero si avvicina asintoticamente ad e ad ogni revisione.
Mentre il METAFONT, per definizione, genera grafica raster, John Hobby ha reimplementato questo linguaggio per generare codice PostScript. È nato così il MetaPost, che sfrutta la versatilità del linguaggio ideato da Knuth per generare grafica vettoriale.