Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AI0 フォントの snippet #37

Closed
trueroad opened this issue Nov 9, 2019 · 6 comments
Closed

AI0 フォントの snippet #37

trueroad opened this issue Nov 9, 2019 · 6 comments
Labels

Comments

@trueroad
Copy link
Member

trueroad commented Nov 9, 2019

SourceHanSerif-Light-UniJIS-UTF8-H
SourceHanSans-Medium-UniJIS-UTF8-H
などのように AI0 フォントに AJ1 用の CMap を繋げた snippet が生成されるようですが、これらはまともに動作せず、盛大な文字化けを引き起こします。以下の PostScript ファイル

/HaranoAjiMincho-Light-UniJIS-UTF8-H findfont 12 scalefont setfont
100 500 moveto
(HaranoAjiMincho-Light 日本語いろはにほへと) show
/HaranoAjiGothic-Medium-UniJIS-UTF8-H findfont 12 scalefont setfont
100 480 moveto
(HaranoAjiGothic-Medium 日本語いろはにほへと) show
/SourceHanSerif-Light-UniJIS-UTF8-H findfont 12 scalefont setfont
100 460 moveto
(SourceHanSerif-Light 日本語いろはにほへと) show
/SourceHanSans-Medium-UniJIS-UTF8-H findfont 12 scalefont setfont
100 440 moveto
(SourceHanSans-Medium 日本語いろはにほへと) show

を Ghostscript で PDF に変換すると、源ノフォントでは「日本語いろはにほへと」の部分が文字化けします。アルファベットの部分は文字化けしませんでしたが、たまたま同じ CID が同じ文字に割り当たっていただけで、化けても不思議ではないものと思います。
test-sourcehan.pdf

@aminophen
Copy link
Member

すみません,知ってはいたのですが面倒だったのでサボっていました。後日対応します。

@aminophen aminophen added the bug label Nov 9, 2019
@aminophen
Copy link
Member

ちなみに,ptex-fontmaps (kanji-config-updmap) で sourcehan を指定しても,dvips が生成する PostScript で SourceHanSerif-Light-UniJIS-UTF8-H というフォントが使われることは有りません。(非埋め込みにフォールバックするため)

@trueroad
Copy link
Member Author

trueroad commented Nov 9, 2019

既知だったのですね。余計な指摘をしてしまったようで申し訳ありません。

AI0 なら snippet は無くて良いと認識しているので、例えば database/cjkgs-sourcehansans.dat などにある、

Class: Japan

などを

Class: AI0

のように変更して、cjk-gs-support.plmy %encode_listAI0 を追加するのかな、とか思っています。そうすると #27 では AI0 か否かの判定も必要になりますね。。。

@aminophen
Copy link
Member

いえいえ,完全に忘れていたのでむしろリマインドありがとうございます。

今の snippet が機能しないのは確かですが,Ghostscript で AI0 フォントを扱う上手い方法があればそれに代替したいところです。

(そういえば,「イマドキのGhostscriptはTrueTypeフォントに限っては「Unicode指定のグリフアクセス」ができる」という話もありました。 https://www.ghostscript.com/doc/9.26/Use.htm#UnicodeTT この辺が OpenType でも使えればいいんですが…。)

@trueroad
Copy link
Member Author

trueroad commented Nov 9, 2019

一応、源ノフォントであれば、 CMap に UniSourceHanSansJP-UTF16-H を置いて(源ノフォントのサイトにあります) SourceHanSans-Regular-UniSourceHanSansJP-UTF16-H みたいな snippet を作って、PostScript に UTF-16 で書けば動作します。いちいち個別に CMap を用意しなければならないので面倒ですが…。

あとは、 LilyPond は snippet を必要としない PostScript を生成します。 snippet 不要で、 CIDFonts にリンクさえ置いてあれば OK です。そのPostScript 中では文字コードではなくて CID を直接指定しているので snippet が不要になります。ただし、CID 直接指定なので PostScript 生成後にフォントが変わって CID が変更になると化けるようになってしまいます。

@trueroad trueroad mentioned this issue Mar 3, 2020
@aminophen
Copy link
Member

Merged #40.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants