pkg://gs-cjk-resource_1.20010910.orig.tar.gz:939290/
gs-cjk-resource-1.20010910.orig/
upstream/
doc/README.jp
downloads
gs6.51-cjk --- CJK TTF on the fly, CIDFnmap, MDRC & GC patch for gs6.51
Copyright (C) 2001 gs-cjk project. All rights reserved.
Date: 20010629
Milestone: 2
Release: 1
License
-------
このパッケージはBSDライセンスに従って配布されます。詳しくは、
COPYINGファイルを御覧下さい。
Authors
-------
This document is written by the following people:
suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>,
Masatake YAMATO <jet@gyve.org>,
Taiji Yamada <taiji@aihara.co.jp> and
Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
Introduction
------------
(1) what this package provides
このパッケージはgs6.51で中国語(繁体字、簡体字)、日本語、韓国語TrueType
フォントをCID-keyedフォントとして使えるようにするとともに、CID-keyedフォ
ントを使う上でのgs6.51の不具合を修正するためのパッチを提供します。
gsで日本語フォントを使うには、既にVFlibパッチによる方法が広く使われて
いますが、VFlibパッチは日本語フォントをPostScriptのOCFフォントとして使
えるようにするものであり、本パッケージでのCID-keyedフォントによる方式
とは異なります。よって、本パッケージはVFlibパッチを置き換えるものでは
ありません。
(2) what you must be careful - font license
このパッケージにより、さまざまな商用CID-keyedフォント、TrueTypeフォン
トがghostscriptで使えるようになりますが、その前に、あなたが使おうとし
ているフォントの「使用許諾書」もしくはそれに相当するものをお読みになり、
ghostscriptをインストールしたオペレーティングシステムでのそのフォント
の使用や、ghostscriptでのそのフォントの使用が、条項に違反していないか
を必ず確認するようにして下さい。我々gs-cjk projectは、各フォントの使用
許諾条項についての調査を目的とした組織ではありませんが、参考のためにこ
こでいくつかの例を示しておきます。
(例) Adobe社がAcrobat Reader用に無料で配布している、中国語、日本語、韓
国語CID-keyedフォントは、Acrobat Reader以外のアプリケーションでの使用
は許可されていません。各フォントに同梱の使用許諾書をお読み下さい。
(例) Microsoft社が自社製のオペレーティングシステムに同梱しているMS明朝、
MSゴシックTrueTypeフォントについて、その日本法人であるMicrosoft K.Kに
よって、Microsoft社製のオペレーティングシステム以外での使用を禁じる旨
の声明がなされているそうです。詳しくは、そのオペレーティングシステムの
使用許諾書をお読み下さい。
その他の例は、
http://www.ee.t.u-tokyo.ac.jp/~mita/FreeBSD/Truetype-copyright.txt が
参考になるかも知れません。
(3) what we recommend and what we do not recommend
また、我々gs-cjk projectは、このパッケージによりTrueTypeフォントを
CID-keyedフォントとして使用可能にする技術を提供してはいますが、これは、
CID-keyedフォントの代替として、TrueTypeフォントの使用を推奨するもので
はありません。我々開発陣の目的はあくまで、比較的安価なTrueTypeフォント
を利用したghostscriptのTrueType処理まわりの永続的なCJK(Chinese,
Japanese, Korean)化にあります。それに、TrueTypeフォントはCID-keyedフォ
ントと比べて定義される字形が少ないので、本パッケージを通してTrueTypeフォ
ントをCID-keyedフォントとして利用しても、CID-keyedフォントの特徴である
豊富な字形すべてに対応させることは不可能ですし、PostScript, PDFファイ
ルの表示または印刷においては、通常の利用ではTrueTypeフォントで定義され
る字形で事足りることが多いとは思われますが、一部の字形では、その
PostScript, PDF ファイル作成者の意図した通りに印字されないこともあり得
ます[12]。そういった意味で、PostScriptデータに忠実な表示および印刷のた
めには、本来のフォントである商用PostScriptフォントの購入を推奨します。
商用フォントに関する情報やフリーのフォントに関する情報は、「/efont/電
子書体オープンラボ」のサイト http://openlab.ring.gr.jp/efont/ とその
「電子書体に関するリンク集」http://openlab.ring.gr.jp/efont/links.html
を参考にして下さい。
How to Install
--------------
ここでは、(1)パッチの当て方と(2)CMapのインストール、及び(3),(4)フォン
トのインストール方法について説明します。(3.1),(4.1)ではCID-keyedフォン
トのインストール方法について、(3.2),(4.2)ではTrueTypeフォントのインス
トール方法について説明しています。
(3)はシェルスクリプトを用いたM1と同様のフォントのセットアップ方式で
あり、PostScriptで標準的なResourceの枠組を用いる方法です。
(4)はM2から新しく導入された、CIDFnmapを用いたGhostScriptに特有の方式
です。TrueTypeフォントをセットアップする場合、(3)ではフォントファイル
以外にラッパーファイルが必要でしたが、こちらの方式では不要になります。
(1) パッチの当て方、コンパイル、インストール
まず、gs6.51のソースにパッチを当てます。以下ではこのパッケージを
ghostscript-6.51.tar.gzを展開するところと同じディレクトリに展開するも
のとしています(以下のコマンドの例示ではGNUツールを使っていますので、こ
れと非互換なツールを使っている場合はオプションを適切なものに置き変えて
ください)。
% gzip -cd gs6.51-cjk-M2-R1.tar.gz | tar xvf -
% gzip -cd ghostscript-6.51.tar.gz | tar xvf -
パッチがきちんと当たるかどうかチェックしてみましょう。
% cd gs6.51
% cat ../gs6.51-cjk-M2-R1/*.patch | patch -p0 -b --dry-run
これでエラーがなければ、
% cat ../gs6.51-cjk-M2-R1/*.patch | patch -p0 -b
としてパッチを当てます。あとは通常のgs6.51のコンパイルとインストール方
法に従って下さい。
インストールが済んだら、次にgsの/Resourceと/Resource/Fontディレクトリ
を変更します。以下ではこれらを/usr/local/share/ghostscript配下に変更す
るものとします。
まず、gs6.51のlibをインストールしたディレクトリに行ってgs_res.psを編集
する必要があります。適当なエディタで/FontResourceDirと
/GenericResourceDirを次のように修正して下さい。
/FontResourceDir (/usr/local/share/ghostscript/Resource/Font/) readonly .forcedef
/GenericResourceDir (/usr/local/share/ghostscript/Resource/) readonly .forcedef
(2) CMapのインストール
次に、ResourceディレクトリにAdobeが配布する各種CMapファイルを用意しま
す。システムによっては、CMapファイルがOS自体に添付されていたり
(Solaris, IRIX)、あるいは他のアプリケーション(Acrobat Readerなど)で使
うために既にインストールされていることがありますが、古かったり、足りな
かったりするかもしれないので、あらためてインストールすることをお勧めし
ます。
CMapには、「CJK各種エンコーディング用CMap (ToCID CMap)」と、「CJK
PDFコアフォント用CMap (ToUnicode CMap)」があります。これらは、
ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/
http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html
のサイトで配布されていますが、このパッケージでは展開の方法に少々工夫が
必要なので、これらをまとめた
ftp://ftp.gyve.org/pub/gs-cjk/adobe-cmaps-200103.tar.gz
を取得して下さい。これを以下のようにResourceディレクトリで展開します。
% cd /usr/local/share/ghostscript/Resource
% gzip -cd adobe-cmaps-200103.tar.gz | tar xvf -
するとCMapディレクトリ等が生成されます。
さらにAcrobatで用いられているCMapには、ToUnicode CMapの他に「ToCode
CMap(ToBig5, ToPRC, ToShiftJIS, ToWansung)」があり、これは以下のサイト
ftp://ftp-pac.adobe.com/pub/adobe/acrobatreader/
のAcrobat Reader/Asian font packsから取得することも可能ですが、これも
同様に、
ftp://ftp.gyve.org/pub/gs-cjk/acro4-cmaps-1999.tar.gz
から取得することをお勧めします。これも以下のようにResourceディレクトリ
で展開します。
% cd /usr/local/share/ghostscript/Resource
% gzip -cd acro4-cmaps-1999.tar.gz | tar xvf -
するとCMapディレクトリ等が生成されます。
(3) フォントのセットアップ --- Resourceによる方式
gs6.51-cjk-M2-R1.tar.gzを展開したディレクトリに、install-cid.tar.gz
というアーカイブがありますので、これをResourceディレクトリで展開して下
さい。
% cd /usr/local/share/ghostscript/Resource
% gzip -cd install-cid.tar.gz | tar xvf -
すると以下のようなファイルとシンボリックリンクが用意されます。
alias-ac13.sh - Adobe CNS1 and 中国語(繁体字)TrueTypeフォント用
alias-ag14.sh - Adobe GB1 and 中国語(簡体字)TrueTypeフォント用
alias-aj14.sh - Adobe Japan1 and 日本語TrueTypeフォント用
alias-aj20.sh - Adobe Japan2 and 日本語TrueTypeフォント用
alias-ak12.sh - Adobe Korea1 and 韓国語TrueTypeフォント用
alias-cid.sh - これらの実体(直接は使わない)
alias-a???.shはCID-keyedフォントに別名をつけたり、TrueTypeフォントを
CID-keyedフォントとして使えるようにするためのフォントセットアップツー
ルです。繁体字(ac13), 簡体字(ag14), 日本語(aj14), JIS補助漢字(aj20),
韓国語(ak12)用があります。
次に進む前に、CIDFontディレクトリを作成しておいて下さい。
% cd /usr/local/share/ghostscript/Resource
% mkdir CIDFont
(3.1) CID-keyedフォントのセットアップ --- Resourceによる方式
繁体字、日本語、JIS補助漢字、韓国語のCID-keyedフォントのサンプルは
以下のサイトから取得することが出来ます。
ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/samples/
CID-keyedフォントを取得したらResource/CIDFontディレクトリに入れておい
て下さい。これで、CID-keyedフォントのセットアップは完了です。
(3.2) TrueTypeフォントのセットアップ --- Resourceによる方式
TrueTypeフォントは/usr/local/share/fonts/truetypeにすでにあるものとし
ます。もし、TrueTypeフォントの格納場所が異なるなら、alias-cid.shを編集
してTTFontDirを変更して下さい。また、Resourceディレクトリはgsndコマンド
で自動で探されますが、必要があればResourceDirを変更してください。
日本語TrueTypeフォントのファイル名を``filename.ttf''とし、その
CID-keyedフォント名を``NAME''とします。以下のようにするとTrueTypeフォ
ント``filename.ttf''がCID-keyedフォント``NAME''として使えるようになり
ます。
% ./alias-aj14.sh install NAME=filename.ttf
これにより、Resource/CIDFontディレクトリにNAMEファイルが作成されます。
詳しくはResource/CIDFontディレクトリを見て下さい。
これをアンセットアップするには、
% ./alias-aj14.sh uninstall NAME
とします。
その他の形式として、以下にあげるものがあります。
(a) 既に存在するCID-keyedフォントに別名をつける
% ./alias-aj14.sh install Ryumin-Light=WadaMin-Regular
(b) TTC(TrueType Collection)のインデックスを指定してセットアップ
% ./alias-aj14.sh install NAME=filename.ttc,2
(c) CIDからCodeへのマッピングの種類を指定してセットアップ
% ./alias-aj14.sh install NAME,Adobe-Japan1-Unicode=filename.ttf
(d) フォント名にCIDの種類を指定してセットアップ
% ./alias-aj20.sh install NAME-Adobe-Japan2=filename.ttf
もし、お使いのTrueTypeフォントがバージョンが古く、うまくCID-keyedフォ
ントとして使えない場合(error: stackoverflow in cmapglyphs)は、形式(c)
のようにセットアップするとうまくいく場合があります。また、形式(d)のよ
うに、CID-keyedフォント名自体にCIDの種類を指定することも出来ます(但し、
Code がUnicodeであるTrueTypeフォントのみセットアップ可能)。
「CIDからCodeへのマッピングの種類」は以下の通りです。
Adobe-CNS1-Big5 繁体字、Big5 TrueTypeフォント用
Adobe-CNS1-Unicode 繁体字、Unicode TrueTypeフォント用
Adobe-CNS1 繁体字、TrueTypeフォント用、Code自動判定
Adobe-GB1-PRC 簡体字、PRC TrueTypeフォント用
Adobe-GB1-Unicode 簡体字、Unicode TrueTypeフォント用
Adobe-GB1 簡体字、TrueTypeフォント用、Code自動判定
Adobe-Japan1-ShiftJIS 日本語、ShiftJIS TrueTypeフォント用
Adobe-Japan1-Unicode 日本語、Unicode TrueTypeフォント用
Adobe-Japan1 日本語、TrueTypeフォント用、Code自動判定
Adobe-Japan2-Unicode JIS補助漢字、Unicode TrueTypeフォント用
Adobe-Japan2 JIS補助漢字、TrueTypeフォント用、Code省略
Adobe-Korea1-Johab 韓国語、Johab TrueTypeフォント用
Adobe-Korea1-Unicode 韓国語、Unicode TrueTypeフォント用
Adobe-Korea1-Wansung 韓国語、Wansung TrueTypeフォント用
Adobe-Korea1 韓国語、TrueTypeフォント用、Code自動判定
(4) フォントのセットアップ --- CIDFnmapによる方式
新しいCIDFnmapによる方式では、CID-keyedフォント及びCJK TrueTypeフォン
トの定義を、ghostscriptのFontmapとほぼ同等の書式で、CIDFnmapに記述する
ことが出来ます。
よって、gs6.51のlibをインストールしたディレクトリに行ってCIDFnmapを編
集することになります。
(4.1) CID-keyedフォントのセットアップ --- CIDFnmapによる方式
CIDFnmapには以下の書式でCID-keyedフォントを定義することが出来ます。
/CIDFont名 (CIDFontファイル名) ;
インストールされているCIDFnmap.Oreも参考にして下さい。以下のサイトで提
供されているCID-keyedフォント
ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/samples/
をそのまま使うのであれば、CIDFnmapに以下の行を追加するだけでも結構です。
(CIDFnmap.Ore) .runlibfile
(4.2) TrueTypeフォントのセットアップ --- CIDFnmapによる方式
CIDFnmapには以下の書式でCJK TrueTypeフォントをCID-Keyedフォントとして
定義することが出来ます。
/CIDFont名 (TTFファイル名) ;
/CIDFont名 (TTCファイル名) 番号 ;
/CIDFont名 (TTFファイル名) /マッピング名 ;
/CIDFont名 (TTCファイル名) 番号 /マッピング名 ;
ここで、「番号」はTrueType Collectionフォントのインデックスであり、
「マッピング名」は、(3.2)であげた「CIDからCodeへのマッピングの種類」を
意味します。
具体例は、インストールされているCIDFnmap, CIDFnmap.ARP, CIDFnmap.Bae,
CIDFnmap.Solを参考にして下さい。
ちなみに、CID-keyedフォントの別名は以下の書式で定義することが出来ます。
/CIDFont別名 /CIDFont名 ;
History of Milestone 1
----------------------
ここでは、gs-cjk project[1]として開発陣が集い、今回ここにパッケージを
配布するに至った経緯を簡単にまとめておきます。
まず、Hideyuki Suzukiが、ghostscript 6.01以前で日本語TrueTypeフォント
を日本語CID-keyedフォントとして使えるようにしました[3,4]。まさにこの成
果が、この一連の開発の発端となります。配布されるパッチには、TrueType
Collection (TTC)フォント対応が含まれ、また、縦書きグリフをTrueTypeフォ
ントから抽出する試みもなされていました。
そしてそれを受け、Taiji Yamadaが、ghostscript 6.01で、日本語TrueTypeフォ
ントだけでなく、中国語(繁体字、簡体字)、韓国語TrueTypeフォントも
CID-keyedフォントとして使えるようにしました[2]。そこでは、TrueTypeフォ
ントから、繁体字、簡体字、日本語、韓国語を自動判定する試みがなされてい
ます。同時に、縦書き用グリフをTrueTypeフォントから抽出する試みをCJK各
国TrueTypeフォントに対応しました。そしてこの頃から、中国語、韓国語を母
国語とする方々からの多くの動作報告を頂くようになりました。また、
TrueType フォントのエンコーディングからCIDへのマッピングアルゴリズムは、
幾度となくバージョンアップを重ね今に至りますが、まだ発展途上です。
つぎに、Masatake YAMATOはCIDへのマッピングアルゴリズムをPostScriptで実
装し、これにより真の「CJK TTF on the fly」となりました。それ以前は、マッ
ピングアルゴリズムから得られたテーブルをgsの/Resource/TrueTypeに格納し
ておくという方式を採用していましたが、これが不要になったわけです。
しかし、ghostscript 6.50はCID-keyedフォントの未定義グリフで容易にハン
グアップすることが判明し、suzuki toshiyaがMDRC(multi-dimensional range
comparator)を開発し、このおかげでgs6.50でも安定して「CJK TTF on the
fly」が動作するようになりました。同時に、gs6.50のGCのバグもMasatake
YAMATOにより修正されています。
これらのプロセスを経て、このパッケージの配布に至りました。
ちなみに、「CJK TTF on the fly」というネーミングは、gs3.66当時のドキュ
メント(doc/History3.htm)での記述中、gsで非CJK TrueTypeフォントをType
42フォントとして直接使えるようにしたことを示す文章に由来しています。以
下にその原文を引用します。
Adds a ttfont.dev "feature" for including the TrueType
interpreter and the ability to handle Type 42 fonts. A new
procedure, .loadttfont, allows loading a TrueType font
directly (by converting it to a Type 42 on the fly).
「CJK TTF on the fly」を我々は、``on-the-fly Type 2 CID-keyed font''と
呼ぶこともあります。
また、gs-cjk projectは、これらの成果をベースに、CJK TrueTypeフォントか
らType 2 CID-keyedフォントを生成するツールも開発しています。この技術の
利点は、「on the fly」でのTrueTypeフォントの利用と比べて格段に高速であ
ることがあげられます。
Topics of Milestone 2
---------------------
Milestone 2では、CIDからTTF中のグリフへのマップをon-the-flyで生成する
ためのコードがHideyuki Suzukiにより完全に書き換えられました。これは、
この用途に十分適したToCID CMap, FromCID CMapファイルのみを読み込むよう
にしたため、速度が大幅に向上したほか、cid2code.txtが不要になりました。
Taiji Yamadaはこの新しいコードを調整・検証したほか、Acrobat Readerと共
に配布されているToCode(ToBig5, ToPRC, ToShiftJIS, ToWansung)CMapを適用
することによって、Unicode以外のTrueTypeフォントにおいても、より多くの
グリフの表示を可能としました。これらの作業の結果、Milestone 2は高速で
より信頼性の高いものなっています。
また、Masatake YAMATOとHideyuki Suzukiにより、「CIDFnmap機構」が開発さ
れ、CID-keyedフォントがFontmapのように簡単に設定できるようになりました。
それは、ghostscriptのフォント設定のスタイルであるFontmapが基本的に踏襲
されており、ghostscriptユーザには親しみやすい方法です。よって、
ResourceにCID-keyedフォントを格納する既存の方法よりも、CIDFnmapの利用
をお勧めします。
Future Topics
-------------
我々の将来的な課題の中で最も重要なことは、より多くの成果をgs本家に反映
させることです。さもないと、中国、日本、韓国のような文字集合の大きい国々
で必要とされる機能が、いつまで経ってもghostscriptにおいて定着しません。
その結果、新しいバージョンのghostscriptがリリースされるたびに各国用の
パッチを作成するはめになります。このような理由で、gs-cjk projectは、gs
本家への統合を念頭においた開発をしています。
我々の成果の、本家への統合の状況については、本配布物に附属するFILESを
御覧下さい。
Acknowledgment
--------------
gs-cjk projectはこれまで多くの動作報告をしてくれた中国、台湾、韓国そし
て日本の多くの方々、そしてこの開発の動機となった参考文献[6]の著者に感
謝します。gs-cjk projectは、PostScriptという素晴らしい技術を生み、
PostScript処理系の自由な開発を許可しているAdobe社に敬意を表し、そして、
ghostscript開発陣の方々に感謝します。最後に、gs-cjkメーリングリストの
管理等をして下さっている白崎 泰弘<yasuhiro@gnome.gr.jp>氏、興味深く有
意義な議論をして下さっているgs-cjkメーリングリストのメンバーの方々に深
く感謝します。
Notice
------
gs-cjk projectは、開発に協力してくれる方を募っています。gs-cjk project
の開発陣は、メーリングリスト(ML)において互いに議論しながら開発を進めて
いますので、まずはMLへのご参加をお願いします。詳しくは、
http://www.gyve.org/gs-cjk/
を御覧下さい。
References
----------
[1] ``gs-cjk project,'' http://www.gyve.org/gs-cjk/
[2] Taiji Yamada, ``Tips on PostScript,''
http://www.aihara.co.jp/~taiji/tops/
[3] 鈴木 秀幸, ``Ghostscript and Japanese TrueType font,''
http://www.sat.t.u-tokyo.ac.jp/~hideyuki/Ghostscript/truetype.html
[4] 鈴木 秀幸, ``Ghostscript,''
http://www.sat.t.u-tokyo.ac.jp/~hideyuki/Ghostscript/
[5] ``Ghostscript, Ghostview and GSview,''
http://www.cs.wisc.edu/~ghost/
[6] 安岡 孝一, 安岡 素子, ``文字コードの世界,'' 東京電機大出版局,
September 1999.
[7] Ken Lunde, ``Ken Lunde's Home Page,''
http://www.oreilly.com/~lunde/ and
ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/
[8] Adobe Systems Incorporated, ``Technical Notes,''
http://partners.adobe.com/asn/developer/technotes/
[9] Microsoft Corporation, ``OpenType, TrueType specification,''
http://www.microsoft.com/typography/tt/tt.htm
[10] ``/efont/電子書体オープンラボ,'' http://openlab.ring.gr.jp/efont/
[11] 田中 哲, ``Japanized Ghostscript information,'' (mirror only)
http://www.matsusaka-u.ac.jp/mirror/akr/nonresearch/free-software/ghostscript/
[12] Taiji Yamada and gs-cjk project, ``CJKTTCID.INF,''
CJKTTCID.INF file in this package.