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

TrueType フォント用 -04 map の追加 #32

Open
h20y6m opened this issue Nov 3, 2023 · 3 comments
Open

TrueType フォント用 -04 map の追加 #32

h20y6m opened this issue Nov 3, 2023 · 3 comments

Comments

@h20y6m
Copy link

h20y6m commented Nov 3, 2023

TrueType フォントについても -04 map を追加してはどうかという提案です。

これまではIPAex 等の TrueType フォントでは H map でも 2004-H map でも結果は同じでしたが、
Adobe-Japan1-UCS2 が新しくなり JIS90 字形の CID が異体字セレクタ(IVS)付きに変換されるようになったため違いが出てくる可能性があります。

texjporg/tex-jp-build#155 にあるように現在の dvipdfmx では異体字セレクタ(SVS, IVS)を考慮していないため JIS90 字形の文字が豆腐になってしまいます。

dvipdfmx の対応案として「警告を出して異体字セレクタ(SVS, IVS)を無視する」というのが出ています。
これにより豆腐になることなくこれまで通り文字が出力されるはずですが、
JIS90 字形の map を使用すると警告が出るようになります。

また、フォントが異体字セレクタに対応していたら format 14 テーブルを読んで異体字を出力できるようにという構想もあります。
もしこれが実現した場合 Adobe-Japan1 の IVS に対応しているフォントでは出力される字形がデフォルトのものから JIS90 字形に変化しています。

このため TrueType フォントについても -04 map を追加するのが良いのではないかと思います。

(もう 2023 年なのだし -04 なし map を 2004-H にしてしまえ!とも思ったけどさすがに怒られそう……)

@h20y6m
Copy link
Author

h20y6m commented Mar 20, 2024

いろいろ考えて、
以下のようにするのはどうでしょうか?

  • TrueType フォント
    • {,u}ptex-XXX.map は 2004 字形用 CMap を使用する
      • Adobe-Japan1-UCS2 は 2004 字形のグリフには IVS が付いていないので今まで通りデフォルトの字形が利用できる
      • 90 字形用 CMap のままだと IVS を無視した警告が出るようになる
    • ipaex, yu-win10 等 IVS による 90 字形への切り替えをサポートしているフォントは {,u}ptex-XXX-90.map を新設する
  • Adobe-Japan1 CID フォント
    • {,u}ptex-XXX.map は そのフォントのデフォルトの字形にあった CMap を使用する
      • 例えば ptex-haranoaji.map は 2004-{H,V} CMap にする
      • 字形を指定しなければそのフォントがデフォルトをしている字形になるのが良いのではないか
    • {,u}ptex-XXX-90.map を新設する
      • 明示的に 90 字形を選択できるようにする
  • kanji-config-updmap
    • --jis90 オプションを新設する

h20y6m added a commit that referenced this issue Mar 20, 2024
@h20y6m
Copy link
Author

h20y6m commented Mar 20, 2024

'jis90map' branch で試しに作ってみました。

ただし

  • Adobe-Japan1 CID フォント
    • {,u}ptex-XXX.map は そのフォントのデフォルトの字形にあった CMap を使用する

はやっていません。

@h20y6m
Copy link
Author

h20y6m commented Mar 24, 2024

'jis90map' branch の現状

  • TrueType 用の .map で JIS2004 字形用の CMap を使うように変更
    • 従来 TrueType では字形選択ができなかったのでどちらの CMap でもにデフォルトの字形になっていた。
    • TL2024 の dvipdfmx とバージョン 10.002 の Adobe-Japan1-UCS2 で JIS90 字形用 CMap を使うと IVS に対応したフォントでは JIS90 字形になるようになった。
    • このため IPAex フォントなどのデフォルトが JIS2004 字形で IVS で JIS90 字形に対応している TrueType フォントでは字形が変わってしまう。
    • JIS2004 字形用の CMap を使えば IVS が付かないのでこれまで通りデフォルトの字形することが可能となる。
  • JIS90 字形を選択する -90.map を追加
    • せっかく TrueType でも JIS90 字形を選択できるようになったので IVS で JIS90 字形をサポートする True Type フォント用に -90.map を追加する。
    • それに合わせてもともと字形選択が可能な AJ1 CID フォント等についても -90.map を追加する。
  • kanji-config-updmap--jis90 オプションを追加
    • 上記の -90.map を指定できるようにするために --jis90 オプションを追加する。

ptex-fontmaps-data.dat について、いい方法が思いつかなかったので -90 を選択できないことを表す記号として + を勝手に追加しています。何かいい案があれば……

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

No branches or pull requests

1 participant