Postscript

概説

ポストスクリプトはもともと印刷のためのページ記述言語として開発されたものである。
機能的にはC言語などと同じような多くの機能を持っているが、 ここではポストスクリプト言語の中からアニメーションなどのタイトルを作るために 必要ないくつかの演算子などを解説する。
文法などの詳細は市販の参考書を見て欲しい。
一応簡単に説明しておくと、ポストスクリプト言語はスタック言語の一種である。
(スタックというのは下から順番にデータを積み上げてゆくバケツのようなものである) 言語の実行をスタックにデータや演算子を積んだり出したりして進める。
C言語などと比べて考え方が非常に違っているので、とまどうとは思うが コンピュータにとっては計算に都合の良い文法になっている。
たとえば
1 + 2
の計算は次のように表される。
1 2 add
この式は次のように実行されてゆく。
まず最初の数1がスタックに積まれる。その後で数2がその上に積まれる。

        |       |
        |   2   |
        |   1   |
        ‾‾‾‾

そして演算子addがスタックに積まれた時に、

        |  add  |
        |   2   |
        |   1   |
        ‾‾‾‾

このaddが実行されることによって 1と2がスタックから取り出されて、 1 + 2が計算され、その答がスタックに積まれる。

        |       |
        |       |
        |   3   |
        ‾‾‾‾

こうして答の3はスタックの一番上に積まれる。

演算子

(name) findfont (font)
フォント名(name)で指定されたフォント辞書(font)を取り出してスタックに積む。
(font) (scale) scalefont (newfont)
(scale)によってフォント(font)を拡大したフォント(newfont)を作りスタックに積む。
(font) setfont -
(font)を以後使用するカレントフォントにする。
(x) (y) moveto -
カレント・ポイントを左下角を原点として((x),(y))の位置に設定する。 (x),(y)の単位はポイントである。 1ポイント = 0.03527cm
(x) rotate -
カレント・ポイントを原点として(x)だけ回転する。
単位は度である。
(string) show -
(string)をカレント・ポイントにカレント・フォントで描く。
(string) (bool) charpath -
(strings)の輪郭パスを作る。
(bool)はtrueかfalseを指定する。
strokeを使う場合にはfalseを指定する。
(width) setlinewidth -
(width)の太さの線を指定する。
- stroke -
カレントパスをたどって線を描く。
- showpage -
現在のページを出力する。
(x) (y) add (z) xとyの加算した結果(z)をスタックに積む。
z = x + y
(x) (y) sub (z) xとyの減算した結果(z)をスタックに積む。
z = x - y
(x) (y) mul (z) xとyの乗算した結果(z)をスタックに積む。
z = x * y
(x) (y) div (z) xとyの除算した結果(z)をスタックに積む。
z = x / y
/var (x) def
変数varの値を(x)にセットする。
変数はどこで定義されても大域変数になる。
/func {...} def
ファンクション(関数)funcをセットする。
(x) (y) exch (y) (x)
スタック上の(x)と(y)を入れ換える。
(x) (y) (z) {...} for
初期値(x)、増分(y)、終値(z)で{...}を繰り返し実行する。

例1

/Times-Roman findfont  % Times-Romanのフォントを見つける
                         (フォントの名前(Times-Roman)の前に/をつけるのを忘れない)
100 scalefont          % フォントの大きさを100ポイントにする
setfont                % カレント・フォントに決める
230 250 moveto         % (230,250)をカレント・ポイントにする
(Title) show           % Titleという文字を表示
showpage               % 上記の設定で出力

上のプログラムをviでファイル(title.ps)に打ち込んで、次のコマンドで実行すると title.pbmという画像ファイルができる。

# gs -sDEVICE=pbmraw -sOutputFile=title.pbm -g640x480 -r72 title.ps

(コマンド実行後、ctrl+d を押さないと終らないので注意)
title.pbm

例2 (白抜きの文字を作る)

例1で作った文字は黒で塗り潰されたものだったが、外側の輪郭線だけで描かれた文字を作るには下のようなプログラムを作れば良い。

/Courier-BoldOblique findfont
100 scalefont setfont
230 250 moveto
(test) false charpath          % フォントの表示をしない
stroke                         % 輪郭線だけを表示
showpage

実行方法は例1と同じ。
title.pbm

参照

プログラマー/バージョン

    Ghostscript version 2.6.1 (5/28/93)
    Copyright (C) 1990-1993 Aladdin Enterprises, Menlo Park, CA.

Home | Contents
Mail