METAFONT
![]() | |
ドナルド・クヌース | |
2.71828182
/ 2021 | |
クロスプラットフォーム | |
プログラミング | |
ライセンス | パーミッシブ・ライセンス |
METAFONT(メタフォント)は、フォント
概要
[METAFONT は
METAFONT は
METAFONT で
また、METAFONT
プログラミング言語 としての METAFONT
[プログラミング
- フォントメトリックファイルとフォントグリフファイルを
生成 する - フォント
作成 に特 化 した各種 命令 がある 数学 的 な意味 の方程式 がそのまま扱 え、連立 一 次 方程式 によって変数 の値 を与 えることができる演算 子 の意味 の変更 までできる柔軟 なカスタマイズ可能 性 を持 つ
プログラム例
[![](https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Metafont_sample_1.jpg/220px-Metafont_sample_1.jpg)
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.行 番号 は説明 のために付 けてある。
- 1
行 目 では文字 の情報 を定 めている。この例 では、文字 コード65の文字 を幅 10pt,高 さ10pt,深 さ0pt(幅 と高 さが同 じ値 だが、引数 はこの順 )で作成 することを宣言 している。 - 2
行 目 では文字 を描 くのに用 いる“ペン”を定義 している。このペンは単位 円 を縦横 異 なる比率 で拡大 縮小 してできる楕円 を120度 回転 させたもので、次 の図 のような形 を持 つ。
- 3
行 目 から6行 目 までで3つの点 の位置 を定 めている。3つの点 はそれぞれ z1, z2, z3 で、図 中 では1,2,3とラベルを付 けて表示 してある。w と h の値 は1行 目 の宣言 によって決 められて、この例 では左下 の座標 が (0,0)、右 下 が (w,0)、右 上 が (w,h)等 となる。 - z1 と z3 はそれぞれ3
行 目 と6行 目 で明示 的 に決 められる。 - z2 の
決 め方 に METAFONT の特徴 がよく現 れている。4行 目 の段階 では「z1 から z2 へ向 かうベクトルが (8,1) という成分 を持 つベクトルの何 倍 かになっている」ことだけが定義 されている。続 く5行 目 で z2 のx成分 が明示 的 に与 えられると、z2 の位置 が自動的 に決定 される。METAFONT内部 では、4行 目 の段階 で一 次 方程式 が作 られたのちに5行 目 と併 せて解 かれている。 - 7
行 目 で文字 を描 く。まず z1 から z2 へ直線 を引 き、z2 からは、z2 から z1 へと向 かう方向 へ線 を引 き始 める。その線 は滑 らかな曲線 を描 きながら z3 へと向 かうのだが、最終 的 に z3 へたどり着 くときには z1 から z2 へと向 かう方向 を向 くようにする。 - 8
行 目 では、3つの点 にラベルを付 けて表示 させている。 - 9
行 目 で、1行 目 から続 いた文字 コード 65 の文字 は終了 する。さらに他 のコードの文字 を描 きたければ1行 目 と同様 に続 けることもできる。 - 10
行 目 で1文字 しかないこのフォントセットが終了 する。
(
関連 項目
[- MetaPost (en)
- Computer Modern METAFONTで
作 られた、TeX標準 のフォント。