# Metafont

Metafont est un langage employé pour composer des polices vectorielles. Il a été conçu par Donald Knuth et fait partie du célèbre système de composition TeX.

## Historique

Donald Knuth commence à travailler sur le logiciel de création de fonte en 1977 et produit la première version de Metafont en 1979. Il développe une version du système Metafont complètement différente en 1984, en raison de limitations dans le langage initial. C'est la révision de ce système qui est toujours utilisée de nos jours. Le système de version de Metafont est similaire à celui de TeX, avec un numéro de version approchant asymptotiquement de la constante de Neper e à chaque révision.

## Caractéristiques

Ce langage comprend des instructions graphiques et sa syntaxe de base ressemble à celle des langages de la famille Algol. Une caractéristique de Metafont est de donner la possibilité de définir les contours des caractères avec des relations géométriques puissantes ; par exemple, un point peut être défini comme l'intersection d'un segment de droite et d'une courbe de Bézier. Des instructions permettent d'effectuer des homothéties, des rotations, des symétries, des translations etc. Metafont interprète ces instructions placées dans un fichier source d'extension .mf et génère un fichier d'image d'extension .gf (generic font) contenant la police et ce dernier peut être compressé en un fichier d'extension .pk (packed) à l'aide du programme GFtoPK. Metafont peut aussi produire un fichier d'informations métriques d'une police au format TeX Font Metric, d'extension .tfm.
Metafont est le plus souvent appelé sans demande directe de l'utilisateur. Les fichiers au format DVI ne contiennent que des références aux polices de caractères, plutôt que des références à l'ensemble des points ou des vecteurs constituant un caractère, c'est-à-dire à son œil. D'autres formats comme le PostScript, ne se limitent pas à de telles références. En conséquence, les œils doivent être consultés toutes les fois qu'une demande est faite de visualiser, d'imprimer ou de convertir un fichier DVI. La plupart des distributions de TeX sont configurées de sorte que, toutes les polices indisponibles dans la résolution exigée lors du traitement, soient produites par des appels à Metafont. Les œils sont alors stockés dans des fichiers pour leur réutilisation ultérieure.
D'autre part, Metafont peut être employé pour produire n'importe quel type de graphique et non seulement des caractères. Cependant, MetaPost est préféré pour créer des illustrations avancées, parce qu'il a la possibilité de produire du PostScript.

### Langage de description

Voici un petit exemple du Metafont-Logofont :
Tout d'abord, les coordonnées des points qui définissent F, sont calculées. La ligne 1 définit un nouveau symbole ayant comme nom F et comme code 14. Les abscisses des points 1, 2 et 3 sont initialisées à leftstemloc, une valeur qui indique la position de la ligne gauche. La ligne 3 définit x4 de telle sorte que le point 4 se trouve à la même distance du bord droit, que le point 1 du bord gauche. Dans la ligne 6, les points 1, 3 et 4 sont joints par des segments de droite (segment vertical gauche et segment horizontal supérieur du F). Ensuite les points 2 et 5 sont joints (petite ligne horizontale dans le milieu du F).