フォント METAFONT 新しいページはコチラ
提供: yonewiki
(→簡単なMETAFONTの流れ) |
(→簡単なMETAFONTの流れ) |
||
114行: | 114行: | ||
そんなところです。これでMETAFONTプログラムへの道が開けたかと思います。習得を急いでいる方は、他の文献をあさればMETAFONTプログラムのすべてを理解できると思います。急いでいない方は、管理人と少しづつ、METAFONTプログラムからOpenTypeフォントやTrueTypeフォントなどいろいろなものをつくる勉強をしましょう。なんど、このページにやってきても全然更新されていない!とかっていう展開もあるかもしれません。 | そんなところです。これでMETAFONTプログラムへの道が開けたかと思います。習得を急いでいる方は、他の文献をあさればMETAFONTプログラムのすべてを理解できると思います。急いでいない方は、管理人と少しづつ、METAFONTプログラムからOpenTypeフォントやTrueTypeフォントなどいろいろなものをつくる勉強をしましょう。なんど、このページにやってきても全然更新されていない!とかっていう展開もあるかもしれません。 | ||
+ | |||
+ | |||
+ | == '''METAFONTファイルからPostScript Adobe Standard Type1(pfb)フォントを生成する''' == | ||
+ | 上記では、drawコマンド一行で直接メタフォントプログラムを書きましたが、通常は*.mfファイルのような拡張子のMETAFONTファイルを作ります。本来であれば、様々な設定が必要ですが、フォントファイルに1文字分だけのグリフ(アウトラインを持たせた)最小限のメタフォントプログラムを作り、これをpfbファイルにし、さらにttfやotfファイルを生成します。 | ||
+ | |||
+ | 以下は「O」の文字だけをそれなりのカタチのアウトラインを作ってフォントファイルに埋め込むためのメタフォントプログラム o.mfファイルのサンプルです。 | ||
+ | mode_setup; | ||
+ | |||
+ | font_identifier:="O"; | ||
+ | font_size 10pt#;%この指定が無いとDesign Sizeが指定されていないというエラーになります。 | ||
+ | |||
+ | em#:=10pt#; cap#:=7pt#; | ||
+ | thin#:=1/3pt#; thick#:=5/6pt#; | ||
+ | o#:=1/5pt#; | ||
+ | |||
+ | define_pixels(em,cap); | ||
+ | define_blacker_pixels(thin,thick); | ||
+ | define_corrected_pixels(o); | ||
+ | curve_sidebar=round 1/18em; | ||
+ | |||
+ | beginchar("O",0.8em#,cap#,0); "The letter O"; | ||
+ | penpos1(thick,10); penpos2(.1[thin,thick],90-10); | ||
+ | penpos3(thick,180+10); penpos4(thin,270-10); | ||
+ | x1l=w-x3l=curve_sidebar; x2=x4=.5w; | ||
+ | y1=.49h; y2l=-o; y3=.51h; y4l=h+o; | ||
+ | penstroke z1e{down}..z2e{right} | ||
+ | ..z3e{up}..z4e{left}..cycle; | ||
+ | penlabels(1,2,3,4); | ||
+ | endchar; | ||
+ | end. | ||
+ | という感じで、クヌース先生が教えてくれた「O」のアウトラインを描くプログラムです。 | ||
+ | |||
+ | |||
+ | このプログラムの中身を説明しませんが、試しに現在よく使われているフォントファイルを作成する作業を知るために、わけがわからないまま変換作業をしてみます。プログラムの細かい説明はまた時間があったらどこかでやりたいと思います。 | ||
+ | |||
+ | そしたら、[[フォント]]にある手順でFonfForgeをインストールした上で、以下のコマンドを実行します。 | ||
+ | >mf | ||
+ | **\mode=localfont; input o.mf | ||
+ | |||
+ | それで次に | ||
+ | >mf2pt1 o.mf | ||
+ | ちなみに4行目のfont_size 10pt#;という指定が無い場合は | ||
+ | a design size must be specified in o.mf or on the command line | ||
+ | というようねエラーになります。 | ||
+ | |||
+ | |||
+ | mf2pt1コマンドの実行結果は以下のようになると思います。 | ||
+ | |||
+ | |||
+ | 上記によって生成されたpfbファイルをFontForgeで開いてフォントファイルの出力からttfやotfのファイルを保存できます。 | ||
== '''TEXにフォントを認識させる''' == | == '''TEXにフォントを認識させる''' == |