NotoSerif JPフォントをkindle、kobo用に修正
古くは青キンをはじめとして、kindleやkoboの差し替え/追加用フォントとして、IPA派生フォントがよく使われる。だが、IPAフォントはkindle/koboにデフォルトで入っているフォントより文字数が少ない。その上、koboはデフォルトの日本語フォント(Kobo筑紫明朝)にはボールドフォントをつけないというケチっぷり。そのせいで、ボールドはレギュラーフォントをソフトウェア的に太らせて表示するので、お世辞にもきれいとは言いがたい。kindleのja.fontの差し替えも、IPAフォントにボールドフォントがないため、レギュラーフォントとボールドフォントが別になり、字形が違ってしまう。
NotoSerif CJKは、JIS X 0208、JIS X 0213、JIS X 0212、Adobe-Japan1-6のすべての漢字に対応していて、IPA系のフォントよりも文字数に不安はなく、 ボールドフォントもリリースされている(ExtraLight、Light、Regular、Medium、SemiBold、Bold、Blackの7ウェイトある)。
というわけで、NotoSerif CJKは試してみたいフォント。当然、koboで使えば本来のボールドフォントの表示になる。
ところが、使ってみると、kindleやkoboではルビの行間があいてしまう。これはkindleのスクリーンショット。
前回の記事ではNotoSerif JP Mediumのスクリーンショットだったが、今回はRegularを使っている。Regularでは字間が詰まる問題は生じないようだ。
そこで、修正してみた。
フォントのhheaテーブルの"ascent"(高さ)と"descent"(深さ)の値を、OS/2テーブルの"Typo Ascender"(組版での高さ)と"Typo Descender"(組版での深さ)と同じにすることで、不具合は解消されるようだ。
修正後のスクリーンショット
KoboSerif JPのレギュラーは細いので、koboで使う場合は、FWにパッチをあてて、ランチャーを使うなどして、フォントの太さ調整を有効にする必要があるだろう。本来、フォントの太さ調整なんてkoboには昔からついている機能。なのに、koboは和書ではその機能が使えないようにしている。つい最近アマゾンは和書でも太字調節可能にしたというのに、楽天koboは昔からある機能を日本語ユーザーにはブロックしたまま、何もしないかもしれない。和書は行間・余白の調節すらできない、劣悪な日本語環境をkobo touchの時代からずっと放置しているから。
要望があればフォントはアップしてもいいが、需要はなさそう。
-----
以下は修正手順。
◎必要なもの
・フォント
NotoSerif CJKから、C(中国語)とK(韓国語)を抜いた日本語だけのサブセット。
NotoSerifJP-Regular.otf
NotoSerifJP-Bold.otf
・ttx(前回の記事参照)
・kindle用に太字有効化が必要なら、筑紫明朝から抽出したAMZNテーブルのttxファイル(前回の記事のtsukumin_m.ttx/tsukumin_b.ttxがそれ)
◎行間の修正手順
NotoSerifJP-Regular.otfを例にして説明する。
1. NotoSerifJP-Regular.otfのOS/2テーブルの"Typo Ascender"(組版での高さ)と"Typo Descender"(組版での深さ)を調べるために、OS/2テーブルをos2.ttxに書き出してみる。
ttx -t "OS/2" -o os2.ttx NotoSerifJP-Regular.otf
os2.ttxの中身を確認する。その中の
sTypoAscender value="880"
sTypoDescender value="-120"
が"Typo Ascender"(組版での高さ)と"Typo Descender"(組版での深さ)。
2. 次にhheaテーブルをhhea.ttxとして抽出する。
ttx -t "hhea" -o hhea.ttx NotoSerifJP-Regular.otf
3. hhea.ttxをエディタで開いて、"ascent value"と"descent value"を、"Typo Ascender"(組版での高さ)と"Typo Descender"(組版での深さ)の数値に書き換える。つまり、
ascent value="880"
descent value="-120"
にする。
4. このhhea.ttxを使って、行間が修正されたフォントを出力する。
ttx -m NotoSerifJP-Regular.otf -o NotoSerifJP-Regular_hhea-fixed.otf hhea.ttx
NotoSerifJP-Regular_hhea-fixed.otfが修正されたフォント。
あとは、ボールドのNotoSerifJP-Bold.otfも同じ要領で修正する。
5. さらにkindleの差し替えフォントの太字有効化も必要なら、前回の記事を見て作業。
でも、*.ttxごとに2回フォントを作り変えるのは手間。hhea.ttx、AMZNテールブル用のttxの2つを1つにまとめてしまえば、1度で済む。(まとめ方は「hhea_amzn_ttx.txt」を参考に)。まとめたものを仮にfix_regular_hhea_amzn.ttxとすると、それを使ってオリジナルのNotoSerifJP-Regular.otfを修正するには、ttx -m NotoSerifJP-Regular.otf -o NotoSerifJP-Regular_fixed.otf fix_regular_hhea_amzn.ttx
とする。レギュラーのNotoSerifJP-Regular_fixed.otfが完成。
ボールドフォント(NotoSerifJP-Bold.otf)にも同じ手順を繰り返す。
解説終了。
| 固定リンク
「Kindle」カテゴリの記事
- Kindle Paperwhite 第11世代を jailbreak して昔のUIを復活させる(2022.04.29)
- Kindle: jailbreakする気なら、5.14.3にアップデートしないこと(2022.04.26)
- Kobo LIbra 2 か Kindle Paperwhiteか? あまり表に出ていない情報も(2021.11.07)
- BooxもカラーE Ink端末発売(2020.04.24)
- ヨーロッパでもカラーE Inkの電子書籍端末販売(2020.04.17)
「kobo」カテゴリの記事
- 2022年新モデル Kobo Clara 2E 新リーク情報(2022.08.08)
- 2022年 新モデルはKobo Clara 2E のようだ(2022.08.05)
- Kobo: アップデート 4.32.19501(2022.04.16)
- Kobo Sage:バッテリー消費とkoreaderの対策(2022.04.19)
コメント