(Translated by https://www.hiragana.jp/)
METAFONT - Wikipedia コンテンツにスキップ

METAFONT

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
METAFONT
作者さくしゃ ドナルド・クヌース
最新さいしんばん
2.71828182 / 2021ねん2がつ5にち (3ねんまえ) (2021-02-05)
対応たいおうOS クロスプラットフォーム
種別しゅべつ プログラミング言語げんご
ライセンス パーミッシブ・ライセンス
テンプレートを表示ひょうじ

METAFONTメタフォント)は、フォント作成さくせいようコンピュータプログラムである。組版くみはんシステム TeX とともにドナルド・クヌースにより開発かいはつされた。

概要がいよう

[編集へんしゅう]

METAFONT は文字もじかたちえがくプログラムソースファイルをんで、組版くみはんよう情報じょうほう文字もじおおきさやごうなどの情報じょうほう)をつフォントメトリックファイルと、文字もじかたち情報じょうほう(グリフデータ)をつビットマップフォントファイルを生成せいせいするシステムである。フォントファイルを生成せいせいするさいにいくつかのパラメータを調整ちょうせいすることで、同一どういつのソースファイルからいくしゅものフォントを生成せいせいすることも可能かのうであり、それが名称めいしょう由来ゆらいにもなっている。生成せいせいする文字もじ輪郭りんかくには、ベジェ曲線きょくせんもちいられる。

METAFONT は組版くみはんシステム TeX とともにドナルド・クヌースにより開発かいはつされた。組版くみはん処理しょりをするさい、フォントデザインにおうじたごうカーニングなどの情報じょうほう必要ひつようとなる。TeX では数式すうしき組版くみはんなどにも力点りきてんかれているが、そのさいはさらに豊富ほうふ組版くみはん情報じょうほうをフォント自体じたいつことが期待きたいされる。METAFONT は、そのような組版くみはん情報じょうほうったフォントを作成さくせいする必要ひつようから開発かいはつされた。METAFONT は TeX と同様どうようフリーソフトウェアであり、いくつかのプラットフォームに移植いしょくされている。

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.
くだり番号ばんごう説明せつめいのためにけてある。
  • 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文字もじしかないこのフォントセットが終了しゅうりょうする。

のプログラムれいw:de:Metafontにも)

関連かんれん項目こうもく

[編集へんしゅう]