Ghostscript version 2.6.1 日本語化パッケージ gs261j
Version 1.0 Jan.11,1994 by 片山紀生 (katayama@nacsis.ac.jp)
Copyright (C) 1991,1992,1993,1994 Norio Katayama.


○機能

  1. Ghostscriptの日本語への拡張
    a. 複合フォントのサポート
    b. 文字メトリックス(Metrics, Metrics2, CDevProc)のサポート
    c. 縦書きモードのサポート

  2. 漢字フォントのサポート
    a. X11R5 PCFフォントファイルからの読出し
    b. X11R4 SNFフォントファイルからの読出し
    c. Sony(TM)ベクターフォントファイルからの読出し
    d. Zeit(TM)フォーマットフォントファイルからの読出し
		作者: 川本琢二(Ext)さん、井上康成(K-ras)さん
    e  Zeit(TM) JG フォーマットフォントファイルからの読出し
		作者: 淺山和典さん
    f. 日本語TeX PKフォントファイルからの読出し

  3. デバイスドライバ
    a. gdevnwp (Sony NWP-533/537 プリンタ)
    b. gdevlips (Canon LIPS-II/II+/III プリンタ)
		作者: 倉島顕尚さん
    c. gdevp201 (NEC PC-PR201 プリンタ)
    d. gdevp150 (NEC PC-PR150 プリンタ)
                作者: 甲本卓也さん
    e. gdevepag (ESC/Page)
                作者: 成松 宏さん
    f. gdevj100 (Star JJ-100 プリンタ)
		作者: 横山和由さん
    g. gdev10v  (Canon BJ10v プリンタ)
                作者: 岩井輝男さん、前田敦司さん、松井孝雄さん



○動作確認

  +--------------+-----------------+-----------------+-------------+
  |  OS          |  Machine        |  Compiler       |  Device     |
  +--------------+-----------------+-----------------+-------------+
  | SunOS 4.1.3  | SPARC Station 2 | cc -O  / gcc -O | X11         |
  +--------------+-----------------+-----------------+-------------+



○コメント

◇ DJ's GPP を使ってコンパイルするには、淺山和典さんが作られた
『Ghostscript 2.6.1 DJ's GPP 化パッケージ』を利用することで可能です。
PC-VAN のサイエンス SIG (SSCIENCE) や Nifty Serve のソフトウェア工房
(FLABO) から入手できるようになるそうです。
 淺山さんのメールアドレスは、NIFTY: GHF01532, PC-VAN: TPM03937 です。

◇ zkfjtex.c など一部のプログラムは char 型が signed char 型であること
を前提としています。そのため、MIPS 系のコンパイラなど char を unsigned
char として処理するコンパイラについては -signed オプションか何かを用い
て char を signed char として処理するように設定して下さい。

◇ X11R5 PCFフォントまたはX11R4 SNFフォントを利用する際、X11環境(サー
バ、共有ライブラリなど)は必要ありません。フォント・ファイルさえ読み込
むことができれば漢字を表示することができます。

◇ 質問、要望、バグリポート、改良案など歓迎します。
   JUNET: katayama@nacsis.ac.jp	NIFTY: NBB01613



○ご注意

◇この日本語化パッケージには、市販の漢字フォントファイルのデータを読出
す機能が含まれていますが、それらを利用する際には販売元のライセンス規定
にふれぬようご注意下さい。(参照 『○漢字フォントのライセンスについて』)

◇この日本語化パッケージは、オフィシャルなものではありませんから、オリ
ジナルのバックアップを取ってから作業を行なって下さい。

◇このパッケージの使用により生じた問題に関しては、当方では一切責任を負
いかねますのであらかじめご了承願います。

◇このパッケージの複写、修正、再配布は、営利目的でない場合に限り自由に
行なって構いません。



○インストール方法(UNIX)

[1] Ghostscriptのコンパイルとインストール

(1) Ghostscript version 2.6.1 のソースファイルを用意して下さい。
    このパッケージは以下のパッチをあてたソースファイルを前提にしています。
        ghostscript-2.6.1.fix-01.gz
        ghostscript-2.6.1.fix-02.gz
        ghostscript-2.6.1.fix-03.gz
        ghostscript-2.6.1.fix-04.gz

(2) ソースファイルを用意したディレクトリで、このパッケージを展開して下
さい。

(3) パッチファイル`gs261j.diff'をオリジナルソースファイルにあてて下さい。

(4) unix-cc.mak, unix-gcc.mak, unix-ansi.mak のいずれかを Makefile に
コピーし、各サイトの環境に合わせて編集して下さい。特に、次の四つの設定
を行なって下さい。

 1. prefix, exec_prefix, bindir, datadir, gsdatadir マクロによって、
  Ghostscript をインストールするディレクトリを指定して下さい。

  例) 標準設定の場合

	prefix = /usr/local
	exec_prefix = $(prefix)
	bindir = $(exec_prefix)/bin
	datadir = $(prefix)/lib
	gsdatadir = $(datadir)/ghostscript


 2. 各サイトの環境に合わせて CFLAGS, LDFLAGS, EXTRALIBS, XINCLUDE,
  XLIBDIRS マクロを設定して下さい。


 3. FEATURE_DEVS に、使いたい漢字フォントに合わせて以下の名前を加えて
  下さい。

	kfpcf.dev	X11R5 PCFフォントファイル
	kfsnf.dev	X11R4 SNFフォントファイル
	kfsony.dev	Sonyベクターフォントファイル
	kfzeit.dev	Zeitフォーマットフォントファイル
	kfztbez.dev	Zeit JG フォーマットフォントファイル
	kfjtex.dev	日本語TeX PKフォントファイル

  例) PCFフォントファイル、SNFフォントファイル、Zeitフォーマットフォン
      トファイル、Zeit JG フォーマットフォントファイル、日本語TeX PKフォ
      ントファイルを使えるようにする場合

	FEATURE_DEVS=filter.dev dps.dev level2.dev kanji.dev \
		     kfpcf.dev kfsnf.dev kfzeit.dev kfztbez.dev kfjtex.dev
	
      Sonyベクターフォントファイルのみを使用する場合

	FEATURE_DEVS=filter.dev dps.dev level2.dev kanji.dev \
		     kfsony.dev

      PCFフォントファイル、SNFフォントファイル、Zeitフォーマットフォン
      トファイル、Zeit JG フォーマットフォントファイル、日本語TeX PKフォ
      ントファイル、Sonyベクターフォントファイルを使えるようにする場合

	FEATURE_DEVS=filter.dev dps.dev level2.dev kanji.dev \
		     kfpcf.dev kfsnf.dev kfzeit.dev kfztbez.dev kfjtex.dev \
                     kfsony.dev


 4. DEVICE_DEVS に、使いたいデバイスドライバを並べて下さい。

  例) X11用のデバイスドライバを使うとき

	DEVICE_DEVS=x11.dev

    このパッケージに含まれているデバイスドライバを使用するときには、
  drivers ディレクトリにある各ドライバのドキュメントを参照して下さい。


(5) make コマンドで gs をコンパイルし、make install でインストールして
下さい。

(6) Makefile の gsdatadir マクロによって指定したディレクトリの下に 
ghostscript-fonts-2.6.1.tar.gz を展開して下さい。

  例) gsdatadir が標準設定の /usr/local/lib/ghostscript であるとき

	% cd /usr/local/lib/ghostscript
	% gunzip < ghostscript-fonts-2.6.1.tar.gz | tar xvf -


[2] 漢字フォントのコンフィギュレーション

(1) Makefile の gsdatadir マクロによって指定したディレクトリの下に
kanji というサブディレクトリがあるので、そのディレクトリに移動して下さい。

  例) gsdatadir が標準設定の /usr/local/lib/ghostscript であるとき

	% cd /usr/local/lib/ghostscript
	% cd kanji


(2) 下に列挙したテンプレートファイルの中から使いたいフォントに応じて、
いずれかをコピーし kconfig.ps をつくって下さい。

	pcf.ps	 X11R5 PCFフォントファイル用
	snf.ps	 X11R4 SNFフォントファイル用
	sony.ps	 Sonyベクターフォントファイル用
	zeit.ps	 Zeitフォーマットフォントファイル用
        ztbez.ps Zeit JG フォーマットフォントファイル用
	jtex.ps  日本語TeX PKフォントファイル用

(3) kconfig.ps を各サイトの環境に合わせて編集して下さい。通常、変更し
なければならないのはフォントファイル名だけです。

  kconfig.ps の詳細については「○漢字コンフィギュレーションファイルに
ついて」を参照して下さい。


[3] 漢字フォントの表示テスト

  サンプルプログラムを gs に実行させ、漢字フォントが正しく表示されるこ
とを確かめて下さい。

	hankaku.ps	半角文字の一覧を表示します。
	allkanji.ps	全角漢字の一覧を表示します。
	fmaptype.ps	複合フォントのフォントマッピングのテストです。
	vchars.ps	縦書き文字の一覧を表示します。
	article9.ps	日本国憲法の第九条です。

  サンプルプログラムは、漢字フォントディレクトリにあるのでディレクトリ
パスを指定する必要はありません。

	例) % gs hankaku.ps

(注) マシンの製造元から提供されているSNFファイルを使用した場合、文字が
   正しく表示されないことがあります。これは、bdftosnf.h のデフォルト値
	#define DEFAULTGLPAD		1
	#define DEFAULTBITORDER		MSBFirst
	#define DEFAULTBYTEORDER	MSBFirst
	#define DEFAULTSCANUNIT		1
   が、SNFファイルのフォーマットと一致してないことが原因と考えられます。
   もし、文字の表示が正しくない場合には、zkfsnf.c の37行め〜53行めを変
   更してみることをお勧めします。



○漢字コンフィギュレーションファイルについて

  このファイルは漢字フォントを定義するためのものです。デフォルトでは、
kconfig.ps という名前のファイルが使われますが、コマンド・オプションに
よって変更することもできます。


[1] 漢字フォントの定義

  漢字フォントの定義は次のフォーマットによって行ないます。

	フォント名  ユニークID  [ フォントファイル名 ]  コマンド

  ◎フォント名
	定義する漢字フォントの名前です。標準的な名前は、/Ryumin-Light 
      と /GothicBBB-Medium の二つです。

  ◎ユニークID
	定義する漢字フォントを識別するための番号です。取り敢えず、
      4300000番台から200おきに指定すればよいでしょう。

  ◎フォントファイル名
	使用するフォントファイルの名前です。このフィールドは、コマンド
      によって書式が異なります。テンプレートファイルのコメントを参照し
      て下さい。

  ◎コマンド
	漢字フォントを定義するためのコマンドです。

  例えば、"/usr/lib/X11/fonts/misc/k24.pcf"という名前のX11R5 PCFフォン
トファイルを利用して /Ryumin-Light という漢字フォントを定義するときに
は、次の文を漢字コンフィギュレーションファイルに書いておきます。

  /Ryumin-Light  4300000 (/usr/lib/X11/fonts/misc/k24.pcf) pcfkanji

  この文を書くことによって、以下の漢字フォントが利用できるようになりま
す。

    /Ryumin-Light.r##	(## = 21〜7E)		横書きJISコード漢字
    /Ryumin-Light.r##v	(## = 21, 22, 24, 25)	縦書きJISコード漢字
    /Ryumin-Light.sr##	(## = 81〜9F, E0〜EA)	横書きシフトJIS漢字
    /Ryumin-Light.sr##v	(## = 81〜83)		縦書きシフトJIS漢字

    /Ryumin-Light.Roman		半角英数
    /Ryumin-Light.Hiragana	半角ひらがな
    /Ryumin-Light.Katakana	半角カタカナ
    /Ryumin-Light.Hankaku	半角英数・ひらがな・カタカナ
    /Ryumin-Light.SuppK		シフトJIS用半角カタカナ

    /Ryumin-Light-H		横書きJISコード漢字
    /Ryumin-Light-V		縦書きJISコード漢字
    /Ryumin-Light-Ext-H		横書き拡張JISコード漢字
    /Ryumin-Light-Ext-V		縦書き拡張JISコード漢字
    /Ryumin-Light-EUC-H		横書きEUCコード漢字
    /Ryumin-Light-EUC-V		縦書きEUCコード漢字
    /Ryumin-Light-RKSJ-H	横書き半角英数・片仮名・シフトJIS漢字
    /Ryumin-Light-RKSJ-V	縦書き半角英数・片仮名・シフトJIS漢字
    /Ryumin-Light-83pv-RKSJ-H	横書き半角英数・片仮名・シフトJIS漢字

  拡張JISコード用の漢字フォントも定義されますが、出力される文字は当然
フォントファイルの内容によって決まります。したがって、フォントファイル
に含まれない文字は表示されませんし、JIS-78になるかJIS-83になるかもフォ
ントファイルに依存します。


[2] 漢字フォントの別名の定義

  漢字フォントに別名を定義するときには、copyfont というオペレータを使い
ます。copyfont のフォーマットは次の通りです。

  既存のフォント名	別名	copyfont

例えば、/GothicBBB-Medium-83pv-RKSJ-H の別名として /ChuGothicBBB-Medium を
定義するときには、漢字コンフィギュレーションファイルに次のように書きます。

  /GothicBBB-Medium-83pv-RKSJ-H	/ChuGothicBBB-Medium	copyfont



○コマンドオプション

gs コマンドのオプションとして以下のものが使えます。

    -dNOKANJI		漢字フォントを定義しなくなります。
    -sKCONFIG=pcf.ps	漢字コンフィギュレーションファイルを指定します。



○漢字フォントのライセンスについて

以下は漢字フォントのライセンスについての情報です。参考にして下さい。


◇ Zeit「書体倶楽部」

  Zeitファイル用のプログラムを作られた川本さんが問い合わせて下さったと
ころ、「フォントデータの読出しは、ユーザが書体倶楽部を購入しフリーウェ
アによって読出すのであれば構わない」という回答だったそうです。


◇ 大日本印刷「JTeX用フォント」

  筑波大学の木本豪さんが大日本印刷に問い合わせて下さったところ、「もと
もとのライセンス契約がTeX用となっているので、新たな形態で使用する場合
大日本印刷の方へ連絡する必要がある」という回答だったそうです。

以下は、木本さんのメールからの引用です。

大日本印刷のフォントを使うにあたっては、
---- ここから ----

「TeX のフォントを GhostScript のソフトウエアで使うために
こうこうします」
という旨のメモを、下記に送ってくれればいいそうです。

〒162-01 新宿区市ヶ谷加賀町 1-1-1 
大日本印刷（株） CTS 事業部 CTS 開発本部システム開発第 1 部
斉藤 雅

  そうすれば、（すでに大日本印刷の手元にある）使用許諾契約書
に添付しておく、とのことです。
  （すでにライセンスを持っていると言う前提で話をしました。）
  PK を変換して使うか、GhostScript の方を PK に対応させて
使うか、ということについても、上のメモに実際の使用形態を
書けばどちらでもかまわないそうです。

---- ここまで ----



○謝辞

このパッケージを作成するにあたっては以下の方々にご協力を頂きました。
この場をかりてお礼申し上げます。ありがとうございました。

gs23j10 の開発に協力して下さった方
	IMAGICAの井川さん
	東工大の鵜飼さん
	豊橋技科大の大見嘉弘さん
	古河電工の大山哲弥さん
	東大の倉島顕尚さん
	電通大の桑田正行さん
	慶応の中丸幸治さん
	富士通国際研の野呂さん
	大阪電通大の南野さん

Zeitフォーマットファイル用の漢字フォントプログラムを作られた方
	井上康成さん		
	松下電器の川本琢二さん

Zeit JG フォーマットファイル用の漢字フォントプログラムを作られた方
	淺山 和典さん

Canon LIPS-II/II+/III プリンタ用ドライバを作られた方  
	日本電気の倉島顕尚さん

NEC PC-PR150 プリンタ用ドライバを作られた方
	神戸大学の甲本卓也さん

ESC/Page 用ドライバを作られた方
	日本電気アイシーマンコンシステム九州LSI開発センターの成松 宏さん

Star JJ-100 プリンタ用ドライバを作られた方
	横山和由さん

Canon BJ10v プリンタ用ドライバを作られた方
	慶応大学の岩井輝男さん、前田敦司さん、松井孝雄さん



○ファイル・リスト

gs261j.doc		ドキュメント(英語)
gs261j.jis		ドキュメント(JIS)
gs261j.sj		ドキュメント(シフトJIS)
gs261j.euc		ドキュメント(EUC)

gs261j.diff		Ghostscript Ver. 2.6.1 差分ファイル

zcomp.c			複合フォントオペレータ定義プログラム
kfutil.c		漢字フォントユーティリティプログラム
zkfimpath.c		イメージパスオペレータ定義プログラム

zkfpcf.c		PCFフォント用オペレータ定義プログラム
zkfsnf.c		SNFフォント用オペレータ定義プログラム
zkfsony.c	       	Sony(TM)ベクターフォント用オペレータ定義プログラム
zkfzeit.c		Zeit(TM)フォント用オペレータ定義プログラム
zkfztbez.c		Zeit(TM) JG フォント用オペレータ定義プログラム
zkfjtex.c		日本語TeX PKフォント用オペレータ定義プログラム

drivers/
    gdevnwp/		Sony NWP-533/537 プリンタ用ドライバ
    gdevlips/		Canon LIPS-II/II+/III プリンタ用ドライバ
    gdevp201/		NEC PC-PR201 プリンタ用ドライバ
    gdevp150/		NEC PC-PR150 プリンタ用ドライバ
    gdevepag/		ESC/Page 用ドライバ
    gdevj100/		Star JJ-100 プリンタ用ドライバ
    gdev10v/            Canon BJ10v プリンタ用ドライバ

kanji/
    kinit.ps		漢字化用プログラム
    metrics2.ps		縦書き用プログラム
    kbitmap.ps		ビットマップ漢字フォント用プログラム
    koutline.ps		アウトラインフォント用プログラム
    kbase.ps		漢字ベースフォント定義用プログラム
    kcomp.ps		漢字複合フォント定義用プログラム
    kmapping.ps		漢字JISコードマッピング用プログラム

    kfpcf.ps		X11R5 PCFフォント用プログラム
    kfsnf.ps		X11R4 SNFフォント用プログラム
    kfsony.ps	       	Sony(TM)ベクターフォント用プログラム
    kfzeit.ps		Zeit(TM)フォント用プログラム
    kfztbez.ps		Zeit(TM) JG フォント用プログラム
    kfjtex.ps		日本語TeX PKフォント用プログラム

    pcf.ps		X11R5 PCFフォント用テンプレートファイル
    snf.ps		X11R4 SNFフォント用テンプレートファイル
    sony.ps		Sony(TM)ベクターフォント用テンプレートファイル
    zeit.ps		Zeit(TM)ベクターフォント用テンプレートファイル
    ztbez.ps		Zeit(TM) JG フォント用テンプレートファイル
    jtex.ps		日本語TeX PKフォント用テンプレートファイル

    hankaku.ps		半角文字表示サンプル
    allkanji.ps		全漢字表示サンプル
    fmaptype.ps		複合フォントマッピングサンプル
    vchars.ps		縦書き文字のサンプル
    article9.ps		縦書き文章のサンプル

include.pcf/		PCFフォント用ヘッダファイルを格納したディレクトリ
include.snf/		SNFフォント用ヘッダファイルを格納したディレクトリ



○バージョンについて

gs23j10 (Oct. 4, 1991)
    Ghostscript ver. 2.3用 日本語化パッケージ

gs23j11 (Dec.24, 1991)
    漢字フォントファイル名を検索するハッシュルーチンのバグを修正した。
    変数名 index と関数名 index とが衝突する問題を回避した。

gs23j12 (Jan.17, 1992)
    フォントメトリックスを単一の数値で指定したときエラーが起こるバグを
  修正した。


gs24j10 (May.15, 1992)
    Ghostscript ver. 2.4.1用 日本語化パッケージ

gs241j11 (Jul. 1, 1992)
    gs24j10 のバグを修正した。


gs261j01b (Aug.20, 1993)
    Ghostscript ver. 2.6.1用 日本語化パッケージ βバージョン

gs261j10 (Jan.11, 1994)
    Ghostscript ver. 2.6.1用 日本語化パッケージ



○差分について

bfont.h
  make_composite_font(), make_descender_fonts()のプロトタイプ宣言を追加。   

gs_init.ps
  オリジナルのフォントオペレータを複合フォントオペレータに置換。
  kinit.ps および metrics2.ps を読み込む用に変更。

gs_fonts.ps
  QUIET モードで、かつ、フォントファイルが見つからないとき、フォント名を
  スタックに残してしまうという不具合の修正。

gschar.c
  gs_setcachedevice2 を修正。縦書きフォント(WMode=1)に対応。
  gs_setrootfont(), gs_currentrootfont()を定義。

gschar.h
  gs_setrootfont(), gs_currentrootfont()のプロトタイプ宣言を追加。   

gsfont.c
  キャッシュサイズを拡大。
  UniqueID を持たないはずの複合フォントを、ベースフォント同様キャッシュ
してしまうという不具合の修正。

gzstate.h
  状態として、rootfont を追加。

zchar2.c
  zrootfont() が gs_currentrootfont() を使うように変更。

zfont.c
  ルートフォントに対応するため、zsetfontを変更。
  複合フォントに対して makefont を行なう際、make_composite_font()を呼
ぶように変更。
  make_composite_font()を定義。
	
zfont0.c
  zbuildfont0の最後で、make_descender_fonts()を呼ぶように変更。
  make_descender_fonts()を定義。

zfont2.c
  makefontキャッシュの効率化のため偽UniqueIDを生成するよう変更。

gs.mak
  複合フォント機能、漢字フォント機能を追加。

cc-head.mak
gcc-head.mak
ansihead.mak
  GS_LIB_DEFAULT に $(gsdatadir)/kanji を追加。
  コンパイル・オプションに -DCOMPFONT -DWMODE -DKANJI を追加。
  FEATURE_DEVS に kanji.dev kfpcf.dev kfsnf.dev kfzeit.dev kfztbez.dev
  kfjtex.dev を追加。

unixhead.mak
  暗黙のルール `.c.o' の依存ファイル $(AK) を削除。

unixtail.mak
  出力される実行ファイルの名前を `gs' から $(GS)$(XE) に変更。

unix-cc.mak
unix-gcc.mak
unix-ansi.mak
  gs.mak, cc-head.mak, gcc-head.mak, ansihead.mak に合わせて変更。
