文字を書くためにまずフォントを選びます。フォントはスケーラブルフォン トとして扱われます。まずフォントの種類を選び、次にその大きさを設定し、 それをコンテキストに設定します。その上で文字列を表示させます。例を見て ください。
/Times-Roman findfont % Times-Romanを選ぶ 15 scalefont % 15ポイントのスケール setfont % 描画フォントに設定 120 220 moveto % 文字を書く位置に移動 (Hello! world) show % Hello! worldと書く
/は文字列定数であることを表しています。Times-Romanというのがデータであ るということです。それをfindfontします。最後の行は()に囲まれた部分が空 白も含めて一括して扱われることを意味しています。
通常のPostScriptプリンターにはおよそ次のようなフォントがあります。
Times-Roman Times-Bold Times-Italic Times-BoldItalic Helvetica Helvetica-Bold Helvetica-Oblique Helvetica-BoldOblique Courier Courier-Bold Courier-Oblique Courier-BoldOblique Symbol
これらは標準フォントですがこれら以外にも色々あります。日本語に関しては
Ryumin-Ligh リュウミン(竜明朝書体)ライト GothicBBB-Medium ゴシックBBBミディアム
が標準です。
文字の外枠(アウトライン)だけを書かすにはどうしたらよいでしょう。文字 のアウトラインもパスとして扱えます。showのかわりにcharpathを使うことに よって図形のパスと同じように扱えます。
100 300 moveto (Outline) true charpath stroke
この例ではOutlineという文字のアウトラインをstrokeしています。もちろん fillもできます。後から出てくるclipにも使えます。
紙の上に文字を表示する位置は通常左下端にmovetoすることで決めています。 ですが文字列の右下の座標を合わせたいときもあります。そのためには文字列 の実際の長さを知らなければなりません。これは次のようにやります。まず右 下にmovetoで移動したあと
(Right-Justify) dup stringwidth pop 0 exch sub 0 rmoveto show
すこし難しいですね。まず文字列Right-Justifyを、showするためと幅を測る ためdupします。スタックに二つ文字列が入っています。つぎのstringwidthで 文字列の寸法を測ります。この結果スタックに幅と高さが入りますが、高さは 必要ないので吐き出してしまいます。popです。次にその幅だけ左から文字を 書きたいので、0をスタックに入れた後スタックの一番上の2つをexchで交換し ます。一番上に幅、次に0が入っています。ここでsubすることにより一番上の 数(幅)で二番目(0)を引きます。結果は-幅です。これをX座標とし、0をプッシュ してY座標としてrmovetoします。文字列の幅だけ左に移動しました。スタック には文字列が残っています。showで表示されました。
同じようにして真ん中で合わせたり高さを合わせることも出来ます。ちょっ と難しい練習問題ですね。