METAFONT

METAFONT（メタフォント）は、フォント作成用のコンピュータプログラムである。組版システム とともにドナルド・クヌースにより開発された。
概要.
METAFONT は文字の形を描くプログラムソースファイルを読み込んで、組版用の情報（文字の大きさや合字などの情報）を持つフォントメトリックファイルと、文字の形の情報（グリフデータ）を持つビットマップフォントファイルを生成するシステムである。フォントファイルを生成する際にいくつかのパラメータを調整することで、同一のソースファイルから幾種ものフォントを生成することも可能であり、それが名称の由来にもなっている。生成する文字の輪郭には、ベジェ曲線が用いられる。
METAFONT は組版システム とともにドナルド・クヌースにより開発された。組版処理をする際、フォントデザインに応じた合字やカーニングなどの情報が必要となる。 では数式組版などにも力点が置かれているが、その際はさらに豊富な組版情報をフォント自体が持つことが期待される。METAFONT は、そのような組版情報を持ったフォントを作成する必要から開発された。METAFONT は と同様にフリーソフトウェアであり、いくつかのプラットフォームに移植されている。
METAFONT で生成したフォントを他の形式（Type1など）に変換するプログラムも開発されている。
また、METAFONT 用のプログラムと似た構文のプログラムで PostScript 形式の画像ファイルを生成できる MetaPost も開発されている。
プログラミング言語としての METAFONT.
プログラミング言語としては、METAFONT は以下のような特徴を持つ。
プログラム例.
簡単なサンプルプログラムとその出力を示す。
 1: beginchar(65,10pt#,10pt#,0pt#);
 2: pickup pencircle xscaled 1.2pt yscaled 0.5pt rotated 120;
 3: z1=(0.1w,0.75h);
 4: z2-z1=whatever*(8,1);
 5: x2=0.9w;
 6: z3=(0.8w,0.1h);
 7: draw z1--z2{z1-z2}..{z2-z1}z3;
 8: labels(1,2,3);
 9: endchar;
 10: end.
 行番号は説明のために付けてある。
（他のプログラム例がw:de:Metafontにも）