texjporg / cjk-gs-support

Scripts to ease the use of CJK fonts with Ghostscript
32 stars 10 forks source link

Add AI0 snippet #40

Closed trueroad closed 4 years ago

trueroad commented 4 years ago

まだ途中ですが AI0 フォントの snippet 処理を作ってみています。

37 でご指摘させていただいた、

AI0 フォントに対して AJ1 用の CMap で snippet が作られてしまう件の対策が入っています。 さらに、AI0 フォントはフォント毎に CMap を指定できるようにした方がいいだろうと思い、 データベースで指定可能にするところまで実装してみました。

sourcehan の CMap (Adobe が配布しているファイル名)をデータベースに追加しており、 --dump-data で個別の CMap 名が読み込めていることを確認しています。

あとは実際に snippet を生成するところなどが残っています。

trueroad commented 4 years ago

AI0 の snippet を作る、削除する部分を作り込みました。

trueroad commented 4 years ago

41 から c8f9877e5448fdd8fe96727599ca88acc61bc654 の効率化をしていただいたので、

この pull request を書き直してみました。

aminophen commented 4 years ago

ありがとうございます。まだ全容はつかめていませんが

trueroad commented 4 years ago

SourceHanSansSC-Heavy, SourceHanSansTC-Regular, SourceHanSerifSC-SemiBold の CMap が空なのは何か意図があるのでしょうか?

すみません、単純にミスです。 直しましたのでご確認ください。

(Noto については全部 CMap list が空なので,それはそういうものかと思いましたが。)

SourceHan 用の CMap ファイルは配布されていますが、 Noto CJK 用の CMap ファイルは配布されていないのではないかと思います。 恐らく SourceHan 用の CMap がそのまま使えるような気がしますが(試していません)、 ファイル名もフォント名も違いますので空にしています。

AI0 font のエイリアス機能は,どんな場合の利用を意図しているのでしょうか?

Class: Japan 等にはエイリアス機能があるのに AI0 だけ無いというのもよくないかな、 と思って付けたものです。 SourceHan の中で一部のウェイトが無い場合に他のウェイトで代替するようなことができそうですし、 Noto CJK と SourceHan は互いに代替することも可能と思います。

aminophen commented 4 years ago

SourceHan の中で一部のウェイトが無い場合に他のウェイトで代替するようなことができそうですし、 Noto CJK と SourceHan は互いに代替することも可能と思います。

なるほど確かにありえますね。マージしました。ありがとうございます。

aminophen commented 4 years ago

マージした後に気づきましたが,SourceHan 用の CMap が kpsewhich で見つからない状態にすると,結構な回数の kpsewhich が走って

cjk-gs-integrate: cidfmap.aliases already loaded in a/Init/cidfmap, no changes

cjk-gs-integrate: finished

の間で(私の環境だと)数分止まってしまいますね…。もうちょっと効率化したいです。(ウェイト毎に7回,存在しない同一の CMap を kpsewhich で探すからだろうか?)

trueroad commented 4 years ago

結構な回数の kpsewhich が走って

結果をキャッシュしておく方法がよさそうです。 ちょっと考えてみます。別の pull request を立てようと思います。