Ghostscript 5.50 用 VFlib 対応パッケージ gs5.50-vflib version 1.0 1998/09/20

このパッケージは gs5.50 で VFlib を通して日本語フォントを使用できるよう
にするためのものです。(そのために gs261j11 と gs261d13 の VFlib 関係のコー
ドを利用しています。)

インストールのしかた:
  パラメータ:
    SOMEWHERE : パッケージ類のある場所
    PREFIX    : インストール場所(デフォルトは /usr/local)

  短気な人向け:

    % tar xfz $SOMEWHERE/gs5.50-vflib-1.0.tar.gz
    % tar xfz $SOMEWHERE/ghostscript-5.50.tar.gz
    % patch -s -p0 < gs5.50-vflib-1.0/gs5.50-vflib-1.0.diff
    % cd gs5.50
    % tar xfz $SOMEWHERE/jpegsrc.v6b.tar.gz
    % mv jpeg-6b jpeg
    % tar xfz $SOMEWHERE/libpng-1.0.2.tar.gz
    % mv libpng-1.0.2 libpng
    % tar xfz $SOMEWHERE/zlib-1.1.3.tar.gz
    % mv zlib-1.1.3 zlib
    % ln -s unix-gcc.mak makefile
    % vi makefile       # set prefix to $PREFIX
                        # edit XINCLUDE, XLIBS, XLIBDIRS,
                        # VFINCLUDE, VFLIBDIRS, VFLIBS
                        # XCFLAGS, XLDFLAGS, GCFLAGS,
    % make
    % make install
    % cd $PREFIX/share/ghostscript
    % tar xfz $SOMEWHERE/ghostscript-fonts-std-5.10a.tar.gz
    % cd fonts
    % tar xfz $SOMEWHERE/ghostscript-fonts-other-5.10.tar.gz

  すこしはドキュメントを読む気がある向け:
    0. VFlib 2.x をインストールする
      古い VFlib (VFlib-2.22pl10 など)では make install とするだけでは
      vfontcap はインストールされません。
      その場合、src/Makefile の DEFAULT_VFCAP として指定した場所に
      vfontcap を作ります。

      また、可能ならコンパイラやリンカに引数を追加しなくても VF.h や
      libVFlib2.a または libVFlib.aを参照できるようにしておきます。
      (そうしたくない場合は、gs の makefile の VFINCLUDE と VFLIBDIRS を
      設定することによって、必要な引数を追加することができます。)

      VFlib 2.24.0 は
        ftp://ftp.se.hiroshima-u.ac.jp/pub/TypeHack/VFlib2-2.24.0.tar.gz
      から入手できます。

      VFlib 3.x は今のところ使用できません。

    1. gs5.50-vflib を展開する

      % tar xfz $SOMEWHERE/gs5.50-vflib-1.0.tar.gz
      % ls
      gs5.50-vflib-1.0
      % less gs5.50-vflib-1.0/README

    2. gs を展開する
      gs5.50 は ftp://ftp.cs.wisc.edu/ghost/aladdin/gs550/ から入手でき
      ます。

      % tar xfz $SOMEWHERE/ghostscript-5.50.tar.gz
      % cd gs5.50
      % tar xfz $SOMEWHERE/jpegsrc.v6b.tar.gz
      % tar xfz $SOMEWHERE/libpng-1.0.2.tar.gz
      % tar xfz $SOMEWHERE/zlib-1.1.3.tar.gz
      % cd ..

    3. パッチをあてる
      gs5.50-vflib version 1.0 に含まれている gs5.50-vflib-1.0.diff を適
      用します。

      % ls
      gs5.50                  gs5.50-vflib-1.0
      % patch -s -p0 < gs5.50-vflib-1.0/gs5.50-vflib-1.0.diff

      gs5.50-vflib-1.0.diff は(patch-2.5 のマニュアルのお勧めに従って)
      diff -Naur として生成してあります。パッチがうまく当たらなければ、
      新しい patch をインストールしてみてください。

      また、gs5.50 リリース後に出たパッチがあればそれもあてます。
      http://www.cs.wisc.edu/~ghost/aladdin/relnotes/gs550/index.html

    4. 設定する
      例えば次のようにします。

      % cd gs5.50
      % mv jpeg-6b jpeg
      % mv libpng-1.0.2 libpng
      % mv zlib-1.1.3 zlib
      % ln -s unix-gcc.mak makefile
      % vi makefile       # set prefix to $PREFIX
                          # edit XINCLUDE, XLIBS, XLIBDIRS,
                          # VFINCLUDE, VFLIBDIRS, VFLIBS
                          # XCFLAGS, XLDFLAGS

      VFlib 関連の設定は VFINCLUDE, VFLIBDIRS, VFLIBS で行ないます。

      VFINCLUDE はヘッダファイルの位置を指定し、VFLIBDIRS はライブラリの
      位置を指定します。これらはコンパイラの引数として与えられる形で記述
      し、デフォルトでは空になっています。

      VFLIBS はリンクするライブラリを指定します。
      VFlib 2.24.0 では VFlib2 というライブラリを用いるので、
      デフォルトでは VFlib2 (と FreeType の ttf)というライブラリをリンク
      するようになっています。古い VFlib を使う場合は VFLIBS を VFlib と
      して下さい。

      また、FreeType を使用しない場合には VFLIBS から ttf を除きます。

      その他の詳細は gs5.50 に含まれている Make.htm を参照してください。

    5. コンパイルする

      % make             

    5. インストールする

      % make install

    6. フォントをインストールする

      % cd $PREFIX/share/ghostscript
      % ls
      5.50vflib
      % tar xfz $SOMEWHERE/ghostscript-fonts-std-5.10a.tar.gz
      % cd fonts
      % tar xfz $SOMEWHERE/ghostscript-fonts-other-5.10.tar.gz

    7. (optional) PostScript フォントの名前とと VFlib のフォントの名前を対
      応させる

      この設定は $PREFIX/share/ghostscript/5.50vflib/vflib/kconfig.ps で行
      なわれており、デフォルトでは次のように対応づけられています。

        PostScript での名前:    VFlib での名前:
        Ryumin-Light            min
        GothicBBB-Medium        goth

      他の名前のフォントを使いたい場合には変更します。

      また、フォントに別名を付けたい場合もここで設定を行ないます。
      デフォルトでは次のような別名がつけられています。

      別名:             内容:
      FutoMinA101-Bold  Ryumin-Light
      FutoGoB101-Bold   GothicBBB-Medium
      Jun101-Light      GothicBBB-Medium

    8. (optional) (experimental) external font を設定する
      gs には external font と呼ばれる機構があり、ある条件下では文字の描
      画を gs 自体ではなく、下位層にまかせることができ(るような機構を実
      装することができ)ます。
      (詳細は gs5.50 に含まれている Xfonts.htm を参照してください。)

      gs5.50-vflib では、この機構を利用して文字の描画(イメージの展開)を
      VFlib にまかせることができます。この機構は、PostScript のフォント
      の名前から決まる特別な名前のフォントを VFlib が提供することによっ
      て有効になります。

      例えば、次のように vfontcap を設定するとこの機構が有効となります。

      GS-Ryumin-Light:\
              :fc=min:\
      GS-GothicBBB-Medium:\
              :fc=goth:

      つまり、(PostScript の)フォントの名前の前に "GS-" という3文字を連
      結した名前のフォントを用意することによって、この機構が有効になりま
      す。また gs の引数に -dNOPLATFONTS という引数を付けることによって
      この機構を無効にすることができます。

      この機構は VFlib が gs よりも質の高い描画能力を持っている時に意味
      があり、特に FreeType に対応した VFlib を使うことを意図しています。
      http://itohws03.ee.noda.sut.ac.jp/~matsuda/VFlib-FT/

      gs5.10-VFlibBM と比較すると、次のような得失があります。

      * VFlib がアウトラインから展開したイメージをアウトラインに直してそ
      れを更に gs がイメージに変換する、というようなふざけた手順を踏まな
      いので、精神衛生上好ましい。
      しかし、現在のところ、1文字展開するたびにアウトラインを 2回生成す
      るため、FreeType のようにアウトラインの生成が遅い場合には、速度は
      低下する。

      * イメージから生成したギザギザのアウトラインが PostScript プログラ
      ムから見えるということが起きない。

      * show と charpath が inconsistent な挙動をする可能性がある。
      (仕様)

      * metrics の修正が効かない。たぶん。
      (未確認。もしかしたら効くかも。)

      * {上,下,左,右}*{反転,無反転}の8種類以外の変形を行なった場合にはこ
      の機構は働かない。
      (VFlib のインターフェースの問題)

      * anti-alias したときに、anti-alias されない。
      (バグかも)

入手先:

  http://www.ldl.jaist.ac.jp/~akr/nonresearch/free-software/ghostscript/gs5.50-vflib-1.0.tar.gz
  ftp://ftp.cs.wisc.edu/ghost/aladdin/gs550/ghostscript-5.50.tar.gz
  ftp://ftp.cs.wisc.edu/ghost/aladdin/fonts/ghostscript-fonts-std-5.10a.tar.gz
  ftp://ftp.cs.wisc.edu/ghost/aladdin/fonts/ghostscript-fonts-other-5.10.tar.gz
  ftp://ftp.cs.wisc.edu/ghost/3rdparty/jpegsrc.v6b.tar.gz
  ftp://ftp.cs.wisc.edu/ghost/3rdparty/libpng-1.0.2.tar.gz
  ftp://ftp.cs.wisc.edu/ghost/3rdparty/zlib-1.1.3.tar.gz

  ftp://ftp.cs.wisc.edu/ghost/aladdin/gs550/ にある次のファイルは上記の
  ファイルのシンボリックリンクなので必要ありません。

  ghostscript-5.50jpeg.tar.gz
  ghostscript-5.50libpng.tar.gz
  ghostscript-5.50zlib.tar.gz
  ghostscript-fonts-std-5.50.tar.gz
  ghostscript-fonts-other-5.50.tar.gz

このパッケージに利用したファイル:
  gs261j11 から:
    gs_init.ps の変更点の一部を利用
    gs.mak の変更点の一部を lib.mak に利用
    kfutil.c, article9.ps, fmaptype.ps, kbase.ps, kmapping.ps, vchars.ps
    を未修正で利用.
    allkanji.ps, hankaku.ps, kinit.ps, kcomp.ps, koutline.ps, metrics2.ps
    を修正して利用.
    ドキュメント

  gs261d13 から:
    vflib.ps(kconfig.ps), kfvflib.ps を未修正で利用
    kfvflib.mak を int.mak に利用
    zkfvflib.c を分割/修正し, gxxfvf.c, gxxfvfd.c, zkfvflib.c として利用
    ドキュメント

テスト環境:
  Solaris 2.6, unix-gcc.mak, VFlib2-2.24.0,
  egcs-2.90.29 980515 (egcs-1.0.3 release)

使用条件:
  このパッケージは無保証です。

  田中が記述した部分については任意の利用を許可します。
  gs261j11, gs261d13 から利用した部分に関してはそれぞれの条件
  にしたがってください。それぞれの条件は OLD-DOC/gs261j10-doc,
  OLD-DOC/gs261d13-doc 以下のドキュメントを参照してください。

将来計画:
  VFlib 第3版
  日本語テキスト抽出

  怠けものな作者のかわりになんとかしてくれるひとはいませんか？

変更点:
  gs5.50-vflib-1.0:
    gs5.50 に対応。
    PDF, CIDFont 関係の怪しい変更を削除。

  gs5.10-vflib-1.6:
    縦書きフォントで句読点などが上にずれるバグを修正。
    vchars.ps をごまかして動作するようにした vchars1.ps を追加。

  gs5.10-vflib-1.5:
    長いフォント名を扱えるようにした。

  gs5.10-vflib-1.4:
    内部のファイル構成の変更
    external font 機構を EUC と SJIS に対しても有効にした。

  gs5.10-vflib-1.3:
    external font 機構を使えるようにした。

  gs5.10-vflib-1.2:
    存在しない文字を表示したときのエラー情報をクリアした。
    vfontcap を gs のパスから探す機能を復活させた。

  gs5.10-vflib-1.1:
    変更点を記録し始めた。
    FutoGoB101-Bold, FutoMinA101-Bold, Jun101-Light という別名をつけた。

注:
  gs261j11 は片山紀生氏の「Ghostscript version 2.6.1 日本語化
  パッケージ gs261j11」を指します。

  gs261d13 は淺山和典氏の「Ghostscript 2.6.1 DJ's GPP 化パッ
  ケージ version 1.3」内の「日本語 Font Driver on VFlib version
  1.0 for Ghostscript version 2.6.1-j」を指します。

  gs5.50/Current.htm に記述されている通り、cshow は複合フォン
  トではうまく動きません。(その結果、vchars.ps はうまく動きま
  せん。)

  jdvi2kps 3.0 以前のフォントメトリックの修正コードは動作しません。
  (definefont した後に FDepVector の中身を作っているため修正前のフォント
  が参照され、結局のところ修正しない場合と同じ結果となります。)

作者:
  田中 哲
  akr@jaist.ac.jp
  http://www.ldl.jaist.ac.jp/~akr/

配布元:
  http://www.ldl.jaist.ac.jp/~akr/nonresearch/free-software/ghostscript/
