Think GNU 第 9 回

□プリンタとフォント□

CJ No.1/'90.11.18 発売号掲載

0. はじめに

 異常に暑い夏だったが、台風の到来とともに日増しに秋らしさが深まる今日このごろである。夏休みが終わってコンピュータ業界も活気を取り戻しつつある。

 NeXT ワークステーションが発売されてから、前評判の時ほど騒がれなくなり、久しく次のカラーNeXT の発表が待ち望まれていた。ようやく Motorola の 68040 を CPU とし、Intel の i860 をグラフィック・プロセッサとして用いたマシンの発表があった。この Intel の i860 はグラフィック・プロセッサとして採用される例が多いが、これは速いためなのか、それとも使い易い、という理由からなのか ? Richard Stallman(rms) が「変わった命令を持っている」と以前言っていた。その NeXT ワークステーションは表示制御コード (プロトコル) に Display PostScript を用いている。GNU ソフトウェアの中で PostScript というキーワードが何箇所かに出てくる。つれづれなるままにご紹介したい。

1. プリンタ雑感

1-1. ライン・プリンタとページ・プリンタ

 PostScript という言語がある。これはページ記述言語と呼ばれるものの一種で、もともとプリンタ用に開発された。

 プリンタを出力形式で分類すると、ライン・プリンタかページ・プリンタという種類分けになる。ライン・プリンタが 1 行ずつ印刷する方式に対して、1 ページ分のイメージを作成してからまとめて出力する方式を採っているものをページ・プリンタと呼んでいる。Unix で使うプリンタは特にライン・プリンタかページ・プリンタかの区別はない。

 プリンタの出力方式と清書システムの関係を Unix を中心にその歴史をさかのぼると次のようになる。

(1). タイプライタ専用の清書システム

 Unix が開発される以前に roff という清書システムが作られた。nroff、troff、vtroff、ditroff の名前の原型であるとともに、仕様のモデルにもなった。

(2). 特定の清書システムと特定の出力装置

(3). 特定の清書システムと特定の出力装置をエミュレートするドライバ

 例えば、troff と写植機の代わりの出力装置としてバーサテックという CAD 用の静電プリンタを使うようにしたものがある。

 1975 年当時、写植機の代わりになるプリンタはこれぐらいしかなかった。★1UCB でこの作業を行ない、BSD Unix には troff をこれ用に修正した vtroff*1 が入っていた。★2

(4). 出力装置に依存しない清書システムと各種出力装置用のドライバ

  清書システムを最初から出力装置に依存しないものに仕上げて汎用の中間ファイルにする。それぞれのプリンタに出力するには中間ファイルからプリンタ・コードに変換するフィルタを書けばよい。代表的なものは用意されている (図 1 参照)。

--- 図 1 ショウリャク ---

1-2.Unix のライン・プリンタ

 ライン・プリンタ用の配慮はなされていないが、オフライン・プリントの機能は有している。プリンタ用スプーラ 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

2. 今月のニュース

2-1.GNU ファイル・ユーティリティ (バージョン 1.4)

 これは文字通りファイルを操作するコマンドで、それぞれが小規模なのでまとめてリリースしている。バージョン 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 との変更点を示す。

●入手方法

方 法 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 へ。

2-2. ダイナミック・リンカ / アンリンカ (dld)

 プロジェクト 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) へ。

2-3.Ghostscript(バージョン 2.0)

 作成者は 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 グラフィックを使っている互換の製品もサポートしている。

●特徴
●入手方法

方 法 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 へ。

3. おわりに

 このあいだ rms から GNU Emacs 18.55.94 のαテストに協力してほしい旨の連絡があった。これは次期バージョン 18.56 用で、単なるバグ修正と IBM の RS/6000 をサポートする、というものである。プロジェクト GNU に IBM の RS/6000 が入ったために可能になったのであろう。今テスト段階なので、それ以外におもだった点があるかどうかは不明である。

参考文献

★1

 Don Libes & Sandy Ressler、福崎俊博訳「11.8 デスクトップ・パブリッシング」320 ページ、「Life with UNIX」、アスキー

★2

 "vtroff(1)", UNIX Programmer's Manual, 4.2 Berkeley Software Distribution Virtual VAX-11 Version, August, 1983

★3

 "vtroff(1)", UNIX User's Reference Manual(URM), 4.3 Berkeley Software Distribution Virtual VAX-11 Version, April, 1986


Think GNU 連載 9 回【脚注】

◆1

troff にあるフォントの幅の表とは、フォントの種類と大きさをキーとし、そのフォントの幅が入っているものである。

◆2

英文の正式な契約書はタイプライタでタイプするという指定が多いが、日本でもワードプロセッサが普及していなかったひと昔前までは、契約書は和文タイプライタで作成していた。

*1

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 には実態も入っている。ただ単に記述ミスなのか、あるいはほかの事情があったのだろうか ?

◆3

ここでも GNU General Public License のことを「一般公的使用許諾」と呼んでいたが、現在正式には「一般公有使用許諾」と呼んでいる。

◆4

1992 年 7 月現在、Ghost‐script は 2.4.1 に、GNU Emacs は 18.58 にそれぞれバージョン・アップされている。

◆5

GNU ファックス・プログラム (NetFax) でも Ghost‐script が使用されている。PostScript コードからファックス・コード (G3) への変換のために用いている。日本のユーザが Ghost‐script の日本語化を行なった。