HOME > 馬鹿 > ghostscript を電卓として使う

Postscript は、スタックを使って計算する言語であるから、それを実装した ghostscript は、dc みたいに後置記法を使った計算機として使えるはずである。そして、Postscript はもちろんページ記述言語であるから、計算結果を任意のフォントを使って、任意のフォント・サイズで表示できるわけだ。ある意味、最高に表現力に富んだ電卓になるはずじゃん?

計算結果を表示するためには、数値を文字列に変換してやらなくてはならんね。Postscript でそれをやるためには、文字列オブジェクトと数値オブジェクトを用意して cvs という関数を使い、数値オブジェクトの表すところを文字列オブジェクトに上書きしてやる。

以下、対話環境でやっているので、GS> とか GS<1> とかいうプロンプトがついている。

ghostscript に計算式を入力して、答えを美しき Postscript で表示してみむ。

GS>/Times-Roman findfont  % フォントの決定
GS<1>50 scalefont      % フォントサイズの決定
GS<1>setfont           % フォントをセット
GS>100 100 moveto         % 答えの出力を開始する位置に移動
GS>/kotae 20 string def   % kotae という文字列用の変数を用意
GS>1 2 add                % 実際に計算 1+2 を実行し
GS<1>kotae cvs         % その結果たる数値 3 をカラの文字列変数に上書格納
GS<1>show              % 出力

あるいは、はじめからカラの変数を用意せずに、

GS>/Times-Roman findfont  % フォントの決定
GS<1>50 scalefont      % フォントサイズの決定
GS<1>setfont           % フォントをセット
GS>100 100 moveto         % 答えの出力を開始する位置に移動
GS>1 2 add                % 実際に計算 1+2 を実行し
GS<1>(00) cvs          % その結果たる数値 3 を文字列 "00" に上書格納
GS<1>show              % 出力

とやってもよし。

——目次——
HOME
├雑文
├写真
├壁紙
├馬鹿
├読書
├語学
│├英語
│└日本語
├電算
├地理
│└白地図
└ブログ