縦書きに対応
qrac opened this issue · comments
Qrac commented
使用するグリフが異なるので、同じファイルにしてしまうとファイルの容量が倍増してしまう。
別ファイルに分けるのが望ましいか。
そもそも縦書きで詰めるシーンはあるだろうか。
Qrac commented
ニーズが少ないと思われるので次期バージョン、または別のライブラリにすることで検討。
Qrac commented
そこまでのモチベーションと時間はなかったので今回も見送る。
Qrac commented
Qrac commented
容量比較
- 横書きのみ(Noto Sans CJK JP):2,612 バイト(ディスク上の4 KB)
- 横書きのみ(Noto Sans JP):2,508 バイト(ディスク上の4 KB)
- 横書き+縦書き(Noto Sans JP):3,592 バイト(ディスク上の4 KB)
Qrac commented
Qrac commented
Qrac commented
Playgroundで試したところ、どうやら縦書きモードの時に括弧を詰める font-feature-settings
が効かない様子。これを実装すれば、縦書きを用いるWebサイトにとっては未だ有用なのかもしれない。
Qrac commented
縦書きに対応する場合、横書きのグリフを縦書きのグリフに置き換えるにはフォントのフューチャー機能を使う。
Noto Sans JP → Yaku Han JPのようにグリフを減らした場合にフューチャーはエラーを起こすので、全削除して自動生成を行う。
Noto Sans JP, Noto Serif JP
基本的には vert
の欄に同名のグリフの末尾に .vert
が付与されたものを適応してくれるが、2文字だけ横と縦でグリフ名が異なるものがあり、それだけ抜け落ちてしまう。
自動生成のチェックを外し、以下の2行を加える。
sub angleLeft by anglebracketleft.vert;
sub angleRight by anglebracketright.vert;
これで抜け落ちた 〈〉
を縦のグリフにマッピングできる。
M PLUS Rounded 1c
M PLUS Rounded 1cの 〈〉
は横型も縦型も anglebracketleft
anglebracketright
なので自動生成のみで完結できる。
Qrac commented
完了。