■ 日本語対応 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に含まれて います)
●インストールの前提
●ダウンロード
    1は必須です。2以下は持ってない方のみ
  1. xdvik20c.lzh[300kb]
  2. Xaw3d.dll(v1.5)[132kb]、その説明.
  3. vflib224a.lzh[260kb]
  4. kpathsea.dll一式[50kb]
  5. hdu2tud.zip[24kb]: 改行コード変換ユーティリティー。 これは vfontcapの処理に必要です。
● 制限事項
うまく動作させることができなかったのでHTML specialなどの hyperlink機能は組み 込んでおりません。
● 実装内容
● インストール
  1. 環境変数VFONTCAPで指定するファイルの改行コードをUNIX式にする。例えば、
               > ren vfontcap vf.tmp
               > d2u vf.tmp vfontcap
               > del vf.tmp
    
  2. xdvik20c.lzh をXFree86 for OS/2 のツリーにそのまま展開。環境変数 X11ROOTj:なら、j:\にて、"lha x xdvik20c"とする
  3. kp-dll.lzhを展開して、kpathsea.dllを libpathのところに置く
  4. Xaw3d1_5.lzhを展開して、Xaw3d1_5.docに従ってインストール
  5. vflib224a.lzhを展開して、VFlib.dllをlibpathにあるところに置く
  6. XFree/xdvik-doc/にある説明ファイルに一通り目を通す。
  7. 環境変数設定: XFree86/jsawa@ibm.net/にあるファイルに注目して下さい。
    %Rなど意味が重要ですので、XFree86/xdvik-doc/README.markpage+toc+printdvi+paperを 見ながら作業を進めてください。
      config.sysで設定するか、XFree86/lib/X11/xinit/xinitrc.cmdにて。
    1. TMPDIR: これは必ず指定のこと。c:\tmpではだめで、c:/tmpと。
      例: set TMPDIR=f:/tmp
    2. VFONTCAP: ghostscriptなどの VFlib対応アプリを使用している方は既に できていることでしょう。まだの方はghostscriptのページを参照のこと。
      例: set VFONTCAP=i:/gs5.10/kanji/vfontcap
    3. VFONTMAP: 日本語多書体を使用するための設定ファイルを指定。同梱のもの を雛形としていいでしょう。
      例: set VFONTMAP=i:/gs5.10/kanji/vfontmap
    4. DVIFILTER: デフォルトで、"dvips.exe -f -t %Z". これはDVIをPS に変換して、標準出力に出力し、用紙サイズのコマンド %Z が 環境変数XDVIFILTOPTTBLのファイルを参照して決定される ことをあらわしています。dvips使用の場合はデフォルトのままでいいので 指定しなくても大丈夫と思います。
      例: set DVIFILTER=dvips.exe -f -t %Z
    5. 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 で固定する場合)
    6. PRINTER:ghostscript使用の前提ですから、デフォルトで "os2prn"と しています。ご自分のプリンタ用にghostscriptのドライバが指定できる場合は 明示して下さい。この環境変数は、%pとなります。
      例: set PRINTER=bjc600
    7. XDVIFILTOPTTBL: これも印刷にdvipsとghostscriptを組み合わ せる場合に設定が必要です。通常は、dvipsのライブラリファイルの 場所に、xdvipaper.* の3つのファイルのうち1つをコピーして、当該 ディレクトリを指定します。OS/2ではdvips.exeを用いているのが普通だと 思います。その場合は、x:/texmf/dvips/ に xdvipaper.dvipsをコピーして 下さい。
      例:set XDVIFILTOPTTBL=j:/texmf/dvips/xdvipaper.dvips
  8. XFree86/jsawa@ibm.net/xdvipaper.dvips(dvips使用の場合)が適切なところに コピーされ、環境変数XDVIFILTOPTTBLが正しいか確認。
  9. 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を置く事。
    1. XDvi.mfMode: canonbj -- メタファントのモードをこのように指定。 フォントの自動生成機能を使わないなら指定の必要はありません。
    2. XDvi.vfontmap: i:/gs5.10/kanji/vfontmap--私はこのようにしています。 環境変数VFONTMAPがあれば必要なし。
    3. XDvi.allowShell: true-- DVIファイルが圧縮された foo.eps.gzを参照 している時には必要です。これにより自動的に gzipを用いて展開してくれ ます。Unixだとこれが"false"でも解凍してくれるらしいです。
    4. XDvi.shrinkFactor: 4--1280x1024だと4でいいでしょう。
    5. XDvi.gamma: 1.5--文字の濃さ。デフォルトでは1.0。
    6. XDvi.interpreter: gs.exe-- EPSを参照する DVIファイルを表示する 時のghostscriptの名称を設定しますが、OS/2では gsos2.exeが存在するので これは gs.exeに固定しています。gs.exeは X window表示可能なものでなけれ ばなりません。もし持ってない場合は、私のページからゲットしてきて、 実行ファイル名を gs.exeとして下さい。
    7. XDvi.colorSpecial: off-- LaTeX2eのgraphicxパッケージで dvipsオプションを指定して文字列をカラーにしている場合に、onに しているとカラー表示してくれます。しかし、常時カラーのDVIを閲覧する のでなければ、offの方が表示品質はきれいなようです。カラーDVI を見るときは、コマンドラインで xdvi -usecolorを指定したら いいと思います。
    8. XDvi.postscript: on -- ghostscriptによる EPS画像を表示したい ならばonのままでよし。ghostscriptを用いないならoff
    9. XDvi.printer: bjc600 -- これは環境変数PRINTERより優先します。 ghostscriptとdvipsを用いて印刷する場合で、os2prnではなく 自分のプリンタ用のghostscriptのドライバを用いる場合は、ここで 指定してください。どんなドライバが使えるかは、">gs -h"や"gsos2 -h" とすることでわかります。
    10. XDvi.printAll: %R %f | %P -- これはコンパイル時のデフォルトの そのままです。dvips+GSなら指定しなくてもよし。
    11. XDvi.printCurrent: %R -p %c -l %c %f | %P -- これもデフォルト のままです。dvips+GSなら指定の必要なし。dvipsにページを選択させる のではなくpsselectやdviselectにやらせたい場合は指定してください。
    12. XDvi.printMarked: %R -p %m -l %m %f | %P -- 最後にマークした ページを印刷するコマンドですが、この記載もデフォルトの ままなので指定の必要は dvips+GSならばありません。
    13. XDvi.printRegion: %R -p %s -l %e %f| %P -- 最後にマークした ページから現在のページまでの印刷コマンドですが、この記載もデフォルトです ので dvips + GSなら指定しなくてもいいです。
    14. XDvi.printList: %R %f | psselect -p%t | %P -- マークしたページ をすべて印刷するコマンドでこれも同様です。
    15. dviprtで印刷する場合: XDviの中の! print for dviprt以下を コメントをなくして、 print for dvips ....をコメントアウトして下さい。 これにより、dviprtで印刷できます。
    ★ Xのリソースについて: XFree86 for OS/2 では XFree86/lib/X11/xinit/.Xresourcesと、環境変数HOMEのところにある .Xresourcesxrdb -mergeで参照するようになっています。 HOMEの.Xdefaultsは参照しませんので、XDviの内容を追加するファイル を間違えないように御注意ください。
    以上の設定ができたら X windowを起動してください。起動してから .Xresourcesを 変更した場合は、"xrdb -merge .Xresources"などとして再読み込みのこと。
  10. 英文DVIファイルの表示確認: これが駄目だとしたら kpathsea側(TeX)に問題があるでしょう。
  11. 日本語DVIファイルの表示確認: ghostscriptではちゃんと使用できていたvfontcap が xdviではだめということはまずないはずです。
  12. カラーDVIの表示: .Xresourcesでカラーをオンにするか、コマンドラインで"-usecolor"を 指定して。これでだめだとしたら、DVIファイル側の問題だと思います。
  13. EPSファイルを参照するDVIファイルの表示確認: X window対応のghostscriptが必要です。
  14. 印刷テスト: うまくいかない時は、ghostscriptとdvipsに関連する環境変数やリ ソース指定を吟味のこと。印刷は X windowに対応してないghostscriptでもオーケーです。
●運 用
manpageと添付文書を熟読して下さい。それでも困難がある場合は、遠慮なくメール で問い合わせるか、sukisuki-os2 MLないしNiftyServe FOS2ADV mes 7 で質問してくだ さい。
● ソースの所在
  1. VFlib-2.24: ftp.se.hiroshima-u.ac.jp/pub/TypeHack/VFlib2-2.24.0.tar.gz
  2. FreeType 1.1 : ftp.freetype.org:/pub/freetype/freetype-1.1.full.tar.gz
  3. xdvik-20c.tar.gz: CTANのdviware/xdvik/ にあります。 例えば、 ftp.riken.go.jp/pub/tex-archive/dviware/xdvik/xdvik-20c.tar.gz
  4. 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
                                     
HOMEPAGEへ
OS/2,LaTeX,Postscriptのページへ