CJ No.1/'90.11.18 発売号掲載
異常に暑い夏だったが、台風の到来とともに日増しに秋らしさが深まる今日このごろである。夏休みが終わってコンピュータ業界も活気を取り戻しつつある。
NeXT ワークステーションが発売されてから、前評判の時ほど騒がれなくなり、久しく次のカラーNeXT の発表が待ち望まれていた。ようやく Motorola の 68040 を CPU とし、Intel の i860 をグラフィック・プロセッサとして用いたマシンの発表があった。この Intel の i860 はグラフィック・プロセッサとして採用される例が多いが、これは速いためなのか、それとも使い易い、という理由からなのか ? Richard Stallman(rms) が「変わった命令を持っている」と以前言っていた。その NeXT ワークステーションは表示制御コード (プロトコル) に Display PostScript を用いている。GNU ソフトウェアの中で PostScript というキーワードが何箇所かに出てくる。つれづれなるままにご紹介したい。
PostScript という言語がある。これはページ記述言語と呼ばれるものの一種で、もともとプリンタ用に開発された。
プリンタを出力形式で分類すると、ライン・プリンタかページ・プリンタという種類分けになる。ライン・プリンタが 1 行ずつ印刷する方式に対して、1 ページ分のイメージを作成してからまとめて出力する方式を採っているものをページ・プリンタと呼んでいる。Unix で使うプリンタは特にライン・プリンタかページ・プリンタかの区別はない。
プリンタの出力方式と清書システムの関係を Unix を中心にその歴史をさかのぼると次のようになる。
(1). タイプライタ専用の清書システム
Unix が開発される以前に roff という清書システムが作られた。nroff、troff、vtroff、ditroff の名前の原型であるとともに、仕様のモデルにもなった。
(2). 特定の清書システムと特定の出力装置
troff と写植機 ◆1
この組み合わせで出力すれば一般の出版されている本と同じ仕上がりが得られる。
うろ覚えであるが、ほぼ次のような仕組みになっている。写植機ではフォントをフィルムで用意し、レンズを切り替えることによりフォントの大きさを変化させ、またフォント・フィルムを入れ替えることによりフォントの種類を変化させて、フィルムに焼き付け高解像度の出力を可能にしている。troff は写植機のフォントの幅の表を持っており (つまりそれぞれの文字の幅が違っている)、清書する時のテキストの配置に用いる。
nroff とタイプライタ方式のプリンタ
計算機からコントロールできるタイプライタで、仕上がりは使用するタイプライタの品質に依存する。一番きれいなものは IBM 製であると言われていた。印字部分がゴルフ・ボールに似ており、さまざまなフォントが用意されていた。印字品質がその人のステータスを表すとまで言われていた (今も言われているかもしれない。契約書は現在でもタイプライタで記入のこと、と指定されているところが多い)。◆2
IBM タイプライタの対抗機種でバトミントン・プリンタと呼ばれる NEC 製のものがあった。タイプライタの印字幅は全て同一である。
(3). 特定の清書システムと特定の出力装置をエミュレートするドライバ
例えば、troff と写植機の代わりの出力装置としてバーサテックという CAD 用の静電プリンタを使うようにしたものがある。
1975 年当時、写植機の代わりになるプリンタはこれぐらいしかなかった。★1UCB でこの作業を行ない、BSD Unix には troff をこれ用に修正した vtroff*1 が入っていた。★2
(4). 出力装置に依存しない清書システムと各種出力装置用のドライバ
清書システムを最初から出力装置に依存しないものに仕上げて汎用の中間ファイルにする。それぞれのプリンタに出力するには中間ファイルからプリンタ・コードに変換するフィルタを書けばよい。代表的なものは用意されている (図 1 参照)。
--- 図 1 ショウリャク ---
ライン・プリンタ用の配慮はなされていないが、オフライン・プリントの機能は有している。プリンタ用スプーラ lpr である。オプションを与えて、普通のテキスト・ファイルや、ditroff(Unix の清書プログラム) の出力ファイルの切り替えを行なう。ditroff はテキストの中に清書用のコマンドを挿入する形式のもので、例えば図 2 のような入力ファイルを nroff に与えると図 3 のような出力 (一部を紹介) が得られる。
図 2.nroff/ditroff の入力例
.TH gcc 1"18 June 1989" "Version 1.36" .de BP .sp .ti-.2i \(** .. .SH NAME gcc\-GNU project C Compiler .SH SYNOPSIS .B gcc [options]files .SH WARNING This man page is an extract of the documentation of the .I GNU C compiler and is limited to the meaning of the options. It is updated only occasionally,because the GNU project does not use nroff. For complete,current documentation,refer to the Info file .B gcc or the DVI file .B gcc.dvi which are made from the Texinfo source file .BR gcc.texinfo. .SH DESCRIPTION The .I GNU C compiler uses a command syntax much like the Unix C compiler. The .I gcc program accepts options and file names as operands. Multiple single-letter options may
図 3.nroff の出力例
次のコマンドを実行した結果の一部を示す。
% nroff -man gcc.1 | colcrt gcc(1) Unix Programmer's Manual gcc(1) NAME gcc-GNU project C Compiler SYNOPSIS gcc[options]files WARNING This man page is an extract of the documentation of the GNU --- C compiler and is limited to the meaning of the options. It - -------- is updated only occasionally,because the GNU project does not use nroff. For complete,current documentation,refer to the Info file gcc or the DVI file gcc.dvi which are made from the Texinfo source file gcc.texinfo. DESCRIPTION The GNU C compiler uses a command syntax much like the Unix - -------- C compiler. The gcc program accepts options and file names --- as operands. Multiple single-letter options may
これは文字通りファイルを操作するコマンドで、それぞれが小規模なのでまとめてリリースしている。バージョン 1.3 から 1.4 への更新情報が 9 月 10 日に David J.MacKenzie からニュース・グループ gnu.utils.bug にアナウンスされた。
このパッケージには次のプログラムが入っている。
cat、chmod、cmp、cp、cut、dd、dir、du、head、install、ln、ls、mkdir、mkfifo、mv、paste、rm、rmdir、tac、tail、touch、vdir
バージョン 1.3 との変更点を示す。
roff の man マクロを新たに用意した。
新しいプログラムの追加 (cut、paste、touch)
POSIX.2 に準拠させる。
オプションの追加とバグ修正。
方 法 anonymous ftp
マシン名 prep.ai.mit.edu(IP アドレスは 18.71.0.38)
ファイル名 pub/gnu/fileutils-1.4.tar.Z
電子メールにて bug-gnu-utils@prep.ai.mit.edu へ。
プロジェクト GNU から配布しているソフトウェアではないが、GNU の一般公的使用許諾 (GNU General Public License、通称 copyleft) に則ったソフトウェアということでカリフォルニア大学ディビス校、W. Wilson Ho から dld のβテスト・リリースのアナウンスが 9 月 10 日にあった。◆3
これは C 言語で書かれたライブラリ・パッケージで、ダイナミック・リンク / アンリンクを行なうものである。
この dld を使うと、実行中に別のオブジェクトを新たに追加したり、外すことができる。実行時に次の操作全てが行なえる。
モジュールのロード
ライブラリの検索
外部参照部分の未決定部分の決定
グローバルデータや静的データ領域の確保
電子メールにて how@IVY.UCDAVIS.EDU(W. Wilson Ho) へその旨を伝える。
同じく電子メールにて how@IVY.UCDAVIS.EDU(W. Wilson Ho) へ。
作成者は Peter Deutsch である。1 つ前のリリース・バージョンは 1.3 であり、今回のリリースまで 1 年あまりを要した。中間のβバージョンとして 1.4β3、4、5、7 があったようだ。次のバージョンは 1.4 になるものとばかり思っていたが、2.0 になった。
Karl Berry から Peter Deutsch の代理投稿ということで Ghostscript 2.0 の情報が 9 月 12 日にアナウンスされた。◆4,5
Ghostscript は、GNU のグラフィック言語である。PostScript 言語とほぼ完全な互換性を持つ。X バージョン 11 をサポートしている (図 4 参照)。Ghostscript には、(PostScript 言語を扱いたくないクライアント・プログラムのために)C 言語の呼び出し可能なグラフィック・ライブラリも入っており、IBM PC や EGA グラフィックを使っている互換の製品もサポートしている。
試用フォントではなく実際のフォント (X11 BDF フォントやほかのビットマップ・フォントをベースにしたものと Hershey フォント) を作成して使える。
Adobe type 1 フォントを完全にサポート。
表示部分のドライバとして、新たに Sun View Window System や Borland グラフィック・インタフェースをサポート。
EPSON や HP の DeskJet、LaserJet プリンタをサポート (SONY NEWS 用のビットマップ・レーザプリンタ用のドライバも入っている)。
描画結果を 8 あるいは 24 ビット・カラーの pixmap でダンプ可能。
1 つの実行形式の中に複数のドライバを含めることができる。
複数のディレクトリからライブラリ・ファイルを検索する。
方 法 anonymous ftp
マシン名 prep.ai.mit.edu(IP アドレスは 18.71.0.38)
ディレクトリ名 pub/gnu/
ファイル名 ghostscript-2.0.tar.Z…ソース・プログラム本体
ghostscript-2.0fonts.tar.Z…Hershey フォント以外のフォント
ghostscript-2.0hershey.tar.Z…Hershey フォント
gs_2_0.exe…MS-DOS 用のバイナリ
電子メールにて bug-ghostscript@prep.ai.mit.edu へ。
このあいだ rms から GNU Emacs 18.55.94 のαテストに協力してほしい旨の連絡があった。これは次期バージョン 18.56 用で、単なるバグ修正と IBM の RS/6000 をサポートする、というものである。プロジェクト GNU に IBM の RS/6000 が入ったために可能になったのであろう。今テスト段階なので、それ以外におもだった点があるかどうかは不明である。
Don Libes & Sandy Ressler、福崎俊博訳「11.8 デスクトップ・パブリッシング」320 ページ、「Life with UNIX」、アスキー
"vtroff(1)", UNIX Programmer's Manual, 4.2 Berkeley Software Distribution Virtual VAX-11 Version, August, 1983
"vtroff(1)", UNIX User's Reference Manual(URM), 4.3 Berkeley Software Distribution Virtual VAX-11 Version, April, 1986
troff にあるフォントの幅の表とは、フォントの種類と大きさをキーとし、そのフォントの幅が入っているものである。
英文の正式な契約書はタイプライタでタイプするという指定が多いが、日本でもワードプロセッサが普及していなかったひと昔前までは、契約書は和文タイプライタで作成していた。
vtroff…BSD Unix にはバーサテック関係のコマンドとして 4.3BSD のマニュアル 3 に次のコマンドが入っている。
vgrind(1)
プログラム・リストの清書ツールで、ファイルの属性から判断してソース・プログラムの形式 (どのような言語か、シェル・スクリプトか) を決定しキーワード名やコメント部分のフォントを変化させたり、タイトルをつけた troff/vtroff/ditroff 用のファイルを生成する。ソース・プログラムの形式は記述ファイル (/usr/lib/vgrindefs) に書かれており、指定された言語のキーワード、コメントの開始 / 終了などが正規表現で与えられている。
vlp(1)
vgrind の Lisp に特化したもので Franz Lisp で書かれている。
vp(4)
静電プリンタ、バーサテックのドライバの記述。
vfont(5)
バーサテック用のフォント・ファイルのフォーマットである。
どういうわけか vtroff(1) が 4.3BSD のマニュアルで参照されているが実態 (マニュアル本体) は入っていない。4.2BSD のマニュアル★2 には実態も入っている。ただ単に記述ミスなのか、あるいはほかの事情があったのだろうか ?
ここでも GNU General Public License のことを「一般公的使用許諾」と呼んでいたが、現在正式には「一般公有使用許諾」と呼んでいる。
1992 年 7 月現在、Ghost‐script は 2.4.1 に、GNU Emacs は 18.58 にそれぞれバージョン・アップされている。
GNU ファックス・プログラム (NetFax) でも Ghost‐script が使用されている。PostScript コードからファックス・コード (G3) への変換のために用いている。日本のユーザが Ghost‐script の日本語化を行なった。