■ 日本語対応 Xdvik-20c for XFree86 OS/2 ['98/10/15]
☆ 10/15に、VFlib.dll, kpathsea.dll, Xaw3d1_5.dll対応版にバイナリを入れ替えました。
DVIファイルを OS/2 の PM画面で表示するアプリがないのは仕方ないとしても
XFree86 OS/2 で 日本語非対応のxdvi がメイクできているなら、日本語パッチ
をあてたら比較的簡単にできるのではないかと思い、昨年の12月に xdvi + VFlib
のメイクに取り掛かったところ、コンパイルは簡単にできましたが、動いてくれません。
そのうち sukisuki OS/2 mailing listで萩原さんが既に xdvik-18f + VFlibパッチを
メイクして公開していることを知りました。
http://katayama-www.cs.titech.ac.jp/~hagiwara/os2/in-this-directory.html
ソースも公開されているのでさらに気合をいれてやったのですが、ずっとだめ(;_;)。
やっと最近になって、コンパイル時に、*.oでなく *.obj を出力するようにして動作する
ようになりました。gcc/emxのためのソースの修正は萩原さんの業績をすべて活用させて
いただきました。本当にありがとうございました。特にghostscriptを用いてのDVI
ファイル中のeps/psの表示のところは全面的に萩原さんに負っています。
この度メイクしたものは、xdviの最新ヴァージョンに日本語パッチ
をあてたものです。kpathseaは 3.2対応なので、最新の TeX/LaTeX環境にマッチしています。
(
このページに記載していることは、圧縮ファイルに入っているxdvik20c.txtに含まれて
います)
- TeX/LaTeXがインストールされている。xdvik-20cはkpathsea3.2対応なので、あまり
古いと動作しないかも知れません。もちろん PKフォントが必要です。
- XFree86 for OS/2が動作している
- インストール可能なHPFS領域が存在する
- 日本語ghostscript等がインストール済みで、
vfontcapが存在する。vfontcapの設定は日本語ghostscriptのページを参照のこと。
- 印刷のためには日本語ghostscriptと日本語dvipsの双方がインストールされて
いたほうがよい。設定次第では、dviprt for OS/2や DOS用のdviprtを用いることもできます。
1は必須です。2以下は持ってない方のみ
- xdvik20c.lzh[300kb]
- Xaw3d.dll(v1.5)[132kb]、その説明.
- vflib224a.lzh[260kb]
- kpathsea.dll一式[50kb]
- hdu2tud.zip[24kb]: 改行コード変換ユーティリティー。
これは vfontcapの処理に必要です。
うまく動作させることができなかったのでHTML specialなどの hyperlink機能は組み
込んでおりません。
- xdvik: version 20c
- VFlib patch-level: xdvik20c-j1.0p0d (1998/5/19)
- kpathsea 3.2: dynamic link (need kpathsea.dll, 1998/10/15)
- VFlib 2.24 + FreeType 1.1: dynamic link (1998/8/31)
- Xaw3d 1.5 : dynamic link (need Xaw3d1_5.dll)
- 表示: 文字のカラー表示やEPS画像表示可能
(X window対応のghostscriptが必要)
- 印刷: マークしたページのみの印刷など機能は充分です。デフォルトでは
日本語ghostscriptと 日本語dvipsを組み合わせて使用するように
なってます。ghostscriptのプリンタドライバ名は Xのリソースで、あるいは
xdviを実行して印刷するその場で指定します。ghostscriptもdvipsも使わない
でdviprtを用いることもできます。その場合はXのリソースで指定。
- 環境変数VFONTCAPで指定するファイルの改行コードをUNIX式にする。例えば、
> ren vfontcap vf.tmp
> d2u vf.tmp vfontcap
> del vf.tmp
- xdvik20c.lzh をXFree86 for OS/2 のツリーにそのまま展開。環境変数
X11ROOTが j:なら、j:\にて、"lha x xdvik20c"とする
- kp-dll.lzhを展開して、kpathsea.dllを libpathのところに置く
- Xaw3d1_5.lzhを展開して、Xaw3d1_5.docに従ってインストール
- vflib224a.lzhを展開して、VFlib.dllをlibpathにあるところに置く
- XFree/xdvik-doc/にある説明ファイルに一通り目を通す。
- 環境変数設定: XFree86/jsawa@ibm.net/にあるファイルに注目して下さい。
%Rなど意味が重要ですので、XFree86/xdvik-doc/README.markpage+toc+printdvi+paperを
見ながら作業を進めてください。
config.sysで設定するか、XFree86/lib/X11/xinit/xinitrc.cmdにて。
- TMPDIR: これは必ず指定のこと。c:\tmpではだめで、c:/tmpと。
例: set TMPDIR=f:/tmp
- VFONTCAP: ghostscriptなどの VFlib対応アプリを使用している方は既に
できていることでしょう。まだの方はghostscriptのページを参照のこと。
例: set VFONTCAP=i:/gs5.10/kanji/vfontcap
- VFONTMAP: 日本語多書体を使用するための設定ファイルを指定。同梱のもの
を雛形としていいでしょう。
例: set VFONTMAP=i:/gs5.10/kanji/vfontmap
- DVIFILTER: デフォルトで、"dvips.exe -f -t %Z". これはDVIをPS
に変換して、標準出力に出力し、用紙サイズのコマンド %Z が
環境変数XDVIFILTOPTTBLのファイルを参照して決定される
ことをあらわしています。dvips使用の場合はデフォルトのままでいいので
指定しなくても大丈夫と思います。
例: set DVIFILTER=dvips.exe -f -t %Z
- PRINTCMD:デフォルトは"gsos2 -dNOPLATFONTS -sDEVICE=%p -dNOPAUSE
-sPAPERSIZE=%z - -c quit"です。%pは環境変数PRINTERが示すプリンタドライバ名に
変換され、%zはコマンドラインの "-paper"オプションで示す文字列になります。
コマンドラインで指定しない場合は、a4とみなされます。もしも、
dvips+ghostscriptで印刷するなら、デフォルトのままでいいので指定しなくても
かまいません。
例:set PRINTCMD=gsos2 -dNOPLATFONTS -sDEVICE=bjc600 -dNOPAUSE -sPAPERSIZE=%z - -c quit
(プリンタドライバを bjc600 で固定する場合)
- PRINTER:ghostscript使用の前提ですから、デフォルトで "os2prn"と
しています。ご自分のプリンタ用にghostscriptのドライバが指定できる場合は
明示して下さい。この環境変数は、%pとなります。
例: set PRINTER=bjc600
- XDVIFILTOPTTBL: これも印刷にdvipsとghostscriptを組み合わ
せる場合に設定が必要です。通常は、dvipsのライブラリファイルの
場所に、xdvipaper.* の3つのファイルのうち1つをコピーして、当該
ディレクトリを指定します。OS/2ではdvips.exeを用いているのが普通だと
思います。その場合は、x:/texmf/dvips/ に xdvipaper.dvipsをコピーして
下さい。
例:set XDVIFILTOPTTBL=j:/texmf/dvips/xdvipaper.dvips
- XFree86/jsawa@ibm.net/xdvipaper.dvips(dvips使用の場合)が適切なところに
コピーされ、環境変数XDVIFILTOPTTBLが正しいか確認。
- Xのリソースでの設定: XFree86/jsawa@ibm.net/XDviを参照してください。必要と
思われるリソースのみ解説します。XDviの内容を自分用に修正したら、そのまま
XFree86/lib/X11/app-defaults/にコピーする and/or 環境変数HOMEのディレクトリ
にある.Xresourcesにファイルの内容を追加してください。もしも、環境
変数 LANG=ja_JP.SJISとなっていたら、環境変数HOMEにある ja_JP.SJISという
ディレクトリにXDviを置く事。
- XDvi.mfMode: canonbj -- メタファントのモードをこのように指定。
フォントの自動生成機能を使わないなら指定の必要はありません。
- XDvi.vfontmap: i:/gs5.10/kanji/vfontmap--私はこのようにしています。
環境変数VFONTMAPがあれば必要なし。
- XDvi.allowShell: true-- DVIファイルが圧縮された foo.eps.gzを参照
している時には必要です。これにより自動的に gzipを用いて展開してくれ
ます。Unixだとこれが"false"でも解凍してくれるらしいです。
- XDvi.shrinkFactor: 4--1280x1024だと4でいいでしょう。
- XDvi.gamma: 1.5--文字の濃さ。デフォルトでは1.0。
- XDvi.interpreter: gs.exe-- EPSを参照する DVIファイルを表示する
時のghostscriptの名称を設定しますが、OS/2では gsos2.exeが存在するので
これは gs.exeに固定しています。gs.exeは X window表示可能なものでなけれ
ばなりません。もし持ってない場合は、私のページからゲットしてきて、
実行ファイル名を gs.exeとして下さい。
- XDvi.colorSpecial: off-- LaTeX2eのgraphicxパッケージで
dvipsオプションを指定して文字列をカラーにしている場合に、onに
しているとカラー表示してくれます。しかし、常時カラーのDVIを閲覧する
のでなければ、offの方が表示品質はきれいなようです。カラーDVI
を見るときは、コマンドラインで xdvi -usecolorを指定したら
いいと思います。
- XDvi.postscript: on -- ghostscriptによる EPS画像を表示したい
ならばonのままでよし。ghostscriptを用いないならoff
- XDvi.printer: bjc600 -- これは環境変数PRINTERより優先します。
ghostscriptとdvipsを用いて印刷する場合で、os2prnではなく
自分のプリンタ用のghostscriptのドライバを用いる場合は、ここで
指定してください。どんなドライバが使えるかは、">gs -h"や"gsos2 -h"
とすることでわかります。
- XDvi.printAll: %R %f | %P -- これはコンパイル時のデフォルトの
そのままです。dvips+GSなら指定しなくてもよし。
- XDvi.printCurrent: %R -p %c -l %c %f | %P -- これもデフォルト
のままです。dvips+GSなら指定の必要なし。dvipsにページを選択させる
のではなくpsselectやdviselectにやらせたい場合は指定してください。
- XDvi.printMarked: %R -p %m -l %m %f | %P -- 最後にマークした
ページを印刷するコマンドですが、この記載もデフォルトの
ままなので指定の必要は dvips+GSならばありません。
- XDvi.printRegion: %R -p %s -l %e %f| %P -- 最後にマークした
ページから現在のページまでの印刷コマンドですが、この記載もデフォルトです
ので dvips + GSなら指定しなくてもいいです。
- XDvi.printList: %R %f | psselect -p%t | %P -- マークしたページ
をすべて印刷するコマンドでこれも同様です。
- dviprtで印刷する場合: XDviの中の! print for dviprt以下を
コメントをなくして、 print for dvips ....をコメントアウトして下さい。
これにより、dviprtで印刷できます。
★ Xのリソースについて: XFree86 for OS/2 では
XFree86/lib/X11/xinit/.Xresourcesと、環境変数HOMEのところにある
.Xresourcesをxrdb -mergeで参照するようになっています。
HOMEの.Xdefaultsは参照しませんので、XDviの内容を追加するファイル
を間違えないように御注意ください。
以上の設定ができたら X windowを起動してください。起動してから .Xresourcesを
変更した場合は、"xrdb -merge .Xresources"などとして再読み込みのこと。
- 英文DVIファイルの表示確認: これが駄目だとしたら kpathsea側(TeX)に問題があるでしょう。
- 日本語DVIファイルの表示確認: ghostscriptではちゃんと使用できていたvfontcap
が xdviではだめということはまずないはずです。
- カラーDVIの表示: .Xresourcesでカラーをオンにするか、コマンドラインで"-usecolor"を
指定して。これでだめだとしたら、DVIファイル側の問題だと思います。
- EPSファイルを参照するDVIファイルの表示確認: X window対応のghostscriptが必要です。
- 印刷テスト: うまくいかない時は、ghostscriptとdvipsに関連する環境変数やリ
ソース指定を吟味のこと。印刷は X windowに対応してないghostscriptでもオーケーです。
manpageと添付文書を熟読して下さい。それでも困難がある場合は、遠慮なくメール
で問い合わせるか、sukisuki-os2 MLないしNiftyServe FOS2ADV mes 7 で質問してくだ
さい。
- VFlib-2.24:
ftp.se.hiroshima-u.ac.jp/pub/TypeHack/VFlib2-2.24.0.tar.gz
- FreeType 1.1 :
ftp.freetype.org:/pub/freetype/freetype-1.1.full.tar.gz
- xdvik-20c.tar.gz: CTANのdviware/xdvik/ にあります。
例えば、
ftp.riken.go.jp/pub/tex-archive/dviware/xdvik/xdvik-20c.tar.gzを
- xdvik20cのVFlib対応化パッチは
http://www.ipc.chiba-u.ac.jp/~yamaga/TeX/xdvi-j.htmlより、xdvik20c-j1.0p0d.patchを。
1) FreeType 1.1 のビルド: pdkshやbashの環境でなくても可
arc/os2/Makefile.emx, lib\arch\os2\Makefile.emxの CFLAGSをチェック
freetype-1.1\test にて、
> make -f arc/os2/Makefile.os2
これでFreeType Utilitiesが生成され、lib/libttf.a ができます。
必要なのは、lib/libttf.aだけです。
2) VFlib2.24 のビルド: VFlib224a.lzhの解説参照
3) XDviのメイク
xdvik-20c.tar.gzを解凍して VFlibのpatchを適用の上、
a. XFree86/jsawa@ibm.net/xdvik-20c-os2.diffを適用
b. xdvik-20c/kpathseaにて、
configure の
x_includes=j:/XFree86/include
x_libraries=j:/XFree86/lib
prefix=g:/emx
これらを適当に修正して、
> sh configure
> make
kpathsea/STATIC/にて
> emxomf -o libkpathea.lib libkpathsea.a
c. xdvik-20c/xdvikにて
configureを同様に修正して、
>sh configure
>make
多分これではうまくいかないので、同梱の jsawa@ibm.net/Makefile
を適当に修正して下さい。VFlibを -lVFlib_s としてリンクすると
VFlib_s.libがリンクされ、-lVFlibとしてリンクすると、VFlib.dll
を必要とする実行ファイルが作成されます。
以上
1998/10/15
沢田石 順 jsawa@ibm.net
http://www2s.biglobe.ne.jp/~vtgf3mpr/indxos2.htm