-- はじめに追記 --
アップデート5.9.6でフォントの追加が可能になったので、フォントの差し替えはもう必要ない。
さらに追加したフォントも太さの調節が可能になっている。したがって、以下で説明しているフォントの作り直しも必要ない。喜ぶべし。
-- 追記おしまい --
FW5.9.4でようやく日本語フォントも太さを調節できるようになった(欧文フォントは5.8.11から可能)。だが、フォントを差し替えた場合は太さの調節ができなくなる。そこで、差し替えフォントの太さ調節を有効にする方法。
フォントにAMZNというテーブルを追加してやるとよい、という情報が巨大掲示板に。それで試してみた。
フォントを差し替えている場合、たいていはja.fontの筑紫明朝を好みのフォントに入れ替えていると思うが、jailbreakのFont Hackでも可能なので、ja.fontの筑紫明朝と欧文フォントを一つ例にして、やり方を説明。
◎必要なもの
・ttx
linuxの場合はfonttoolsをインストールすればよい。(apt install fonttools など)
Mac、Windowsは、
AFDKO (Adobe Font Development Kit for OpenType)をインストール(コマンドラインで操作するらしい)。
・差し替え用のフォント
ここでは
源暎こぶり明朝を例に説明する。
Kindleのデフォルトフォントはすべてttfだが、源暎こぶり明朝はotf。
フォントの種類が違うので、不安だったら
IPAexフォントなどのttfで(源暎こぶり明朝にはttf版もあるが、ファイルサイズが大きく、ja.fontに収まらないため。筑紫明朝のボールドを何かサイズの小さいフォントに差し替えれば別だろうが)。
源暎こぶり明朝はNotoSerif CJK(Adobeでは源ノ明朝の名前で配布)を元にしているので、文字数はIPAフォント(とその派生)よりも多く、安心。IPA派生のKoKin明朝では、たまにない漢字が別フォントで置き換えられて表示されたりする。
-- 追記 --
調べたら、Kindleにデフォルトで入っているフォントにはotfもあった(OpenDislexic)。なので、otfを使う事自体には問題はなさそうだ。
-- 追記おしまい --
◎ja.fontの筑紫明朝を太字化可能な差し替えフォントに
1. ja.fontからTsukuMinPr5-Medium.ttfを(ボールドフォントも差し替えるつもりならTsukuMinPr5-Bold.ttfも)取り出す。
やり方は、
フォント差し替え解説ページか、linuxの場合は
こちらを参照。
2. 筑紫明朝からAMZNというテーブルを抽出して、tsukumin_m.ttxというファイルに保存する。(以下の説明はlinuxを元にしているが、他もコマンドラインによる操作なので、似たようなものと推測)
ttx -t "AMZN" -o tsukumin_m.ttx TsukuMinPr5-Medium.ttf
ボールドフォントも差し替える場合はボールドフォントに対しても同じ操作を。
ttx -t "AMZN" -o tsukumin_b.ttx TsukuMinPr5-Bold.ttf
3.源暎こぶり明朝はotfなので、いま抽出したテーブルのttxファイルに修正が必要。tsukumin_m.ttx/tsukumin_b.ttxの次の個所をエディタで修正。
sfntVersion="\x00\x01\x00\x00"
を
sfntVersion="OTTO"
(オー・ティー・ティー・オー)に修正。こうしないと、otfなのにttf扱いされるため、正常なフォントにならない。
もちろんttfを使う場合はこの修正はいらない。
4. 差し替えフォント(源暎こぶり明朝、GenEiKoburiMin-R.otf)にAMZNテーブルを追加して、GenEiKoburiMin-R_AMZN.otfというフォントに出力する。
ttx -m GenEiKoburiMin-R.otf -o GenEiKoburiMin-R_AMZN.otf tsukumin_m.ttx
ボールドフォントも変更する場合は、tsukumin_b.ttxを使って同じ要領で。
(筑紫明朝のボールドを差し替えない場合は、本にボールドが出てきたら、とうぜん表示には筑紫明朝が使われる)
5. 確認
ttx -l GenEiKoburiMin-R_AMZN.otf
してみて、AMZNというtagがリストにあればOK。
5.あとはGenEiKoburiMin-R_AMZN.otfを使って、ja.fontを作り直しておしまい。やり方は上のリンクページの通り。
◎差し替え欧文フォントの太字有効化
欧文フォントの差し替えにはjailbreak必須。
以下はjailbreak済みで、Font Hackをインストールしている人が対象。Font Hackでもちろん和文の筑紫明朝だけでなくデフォルトの明朝も差し替え可能だが。
例として使うフォントは、
Bitter ht。これもotf。
・手順
1. Kindle内のどのフォントを差し替えるか決めて、そのフォントを取り出す。
ここでは差し替えが一番簡単な"Caecillia Condensed"を"Bitter ht"に差し替えるものとする。
KUALを使ってkindleからフォントを取り出す。
KUAL > Fonts > Fonts Hack Behavior > Backup default fonts
の順にタップ。KindleをPCにUSB接続、"linkfonts/backup"というフォルダにフォントがコピーされている。
2. 差し替えるフォント(ここではCaecillia Condensed)のRegular、Bold、BoldItalic、Italicの4フォントをPCの適当なフォルダにコピー。具体的には、
Caecilia_LT_67_Cond_Medium.ttf
Caecilia_LT_68_Cond_Medium_Italic.ttf
Caecilia_LT_77_Cond_Bold.ttf
Caecilia_LT_78_Cond_Bold_Italic.ttf
の4フォント(自分が差し替えたいフォントに読み替えること)。
3. Caecillia CondensedのAMZNテーブルを抽出して、caecilia.ttxというファイルに保存する。
ttx -t "AMZN" -o caecilia.ttx Caecilia_LT_67_Cond_Medium.ttf
(4フォントともAMZNテーブルの中身は同じだったので、この一度の操作でOK)
4. otfに差し替える場合の追加処理
caecilia.ttxの次の個所をエディタで修正。
sfntVersion="\x00\x01\x00\x00"
を
sfntVersion="OTTO"
ttfを使う場合はこの修正はしないこと。
5. caecilia.ttxをBitter htフォントのあるフォルダに持っていく。それから、
Bitter htの4フォントにcaecilia.ttxに記載されたAMZNテーブルを追加して、Bitter-Regular_AMZN.otfなどとして出力する。
・レギュラーフォント
ttx -m Bitter-Regular.otf -o Bitter-Regular_AMZN.otf caecilia.ttx
・イタリック
ttx -m Bitter-Italic.otf -o Bitter-Italic_AMZN.otf caecilia.ttx
・ボールド
ttx -m Bitter-Bold.otf -o Bitter-Bold_AMZN.otf caecilia.ttx
・ボールドイタリック
ttx -m Bitter-BoldItalic.otf -o Bitter-BoldItalic_AMZN.otf caecilia.ttx
これで太字有効のフォントは完成。
Caeciliaではなく他のフォントを差し替えるなら、当然そのフォントの"AMZN"テーブルを抽出するのは言うまでもない。
あとはFont Hackのやり方通りにフォントを差し替える。
◎スクリーンショット
左がデフォルトの明朝、右が源暎こぶり明朝
Kindleデフォルトの明朝と似た感じだが、ひらがな、カタカナが存在感を主張しないので、すっきりした印象。
jailbreakのFont Hackを使った場合、源暎こぶり明朝にはボールドフォントがないため、本にボールドが出てくると、代わりにデフォルト明朝のボールドが使われるようだ。似た感じのフォントなのでさほど違和感はなさそう。
◎おまけでNotoSerif CJKはどうか?
源暎こぶり明朝の元になっているのは、
去年リリースされた明朝系のNotoフォント。このオリジナルでも試してみた。
NotoSerif CJKはフルだとサイズが大きいので、中国語、韓国語抜きのサブセットのNotoSerif JPを使った。具体的には、NotoSerifJP-Medium.otfとNotoSerifJP-Bold.otf。ダウンロードは
ここから探して。もしくは
ここの一番下のリンク。
太字化はできるが、ルビの表示がおかしい。行間があいてしまう。また、字間が詰まっている。
自由に使えるフォントでボールドフォントがあるものは珍しいので、残念。
源暎こぶり明朝は縦書きを意識したフォントらしいので、IPA派生フォント以外にしたいなら、おすすめかもしれない。もちろんフォントの太さを調節できるようにするという前提で。