如何免越狱且不内嵌更换 Kindle 电子书字体

Kindle 设备自 5.9.6 版本固件起已原生支持自定义字体,点击这里了解详情,同时此方法失效。

前两天发布了一篇名为“Kindle 中文字体推荐”的文章,列出了一些看起来不错且适合阅读的正文字体,没想到有很多小伙伴对其颇感兴趣,短短几天累积了百条留言,感谢热心小伙伴们的推荐补充。

之前 Kindle 伴侣曾在那篇文章中说 Kindle 换字体有两种方法,一种是通过越狱替换原生字体,另一种是将字体内嵌到电子书内。其实并不是很准确。在文末的留言中,小伙伴 Dummy-B 指出,其实还有另一种换字体的技巧,这种方法不需要越狱即可实现。经过测试验证后,在这里分享给大家。

其实这种方法的原理和把字体嵌入电子书的方法相似,只是不再需要把字体嵌入到每一本电子书中,而只需把字体拷贝一份到 Kindle 中,然后让电子书引用它即可。这样不仅可以大大减小电子书文件体积了,还能为不同的元素应用不同的字形,比如标题为一种黑体,正文内容是一种宋体,注释内容是一种楷体等,可以让排版更丰富。而且,不需要担心分享问题,当你把电子书分享给别人的时候,即便对方没有放入字体文件,也能使用系统原生字体替代,不会影响阅读。

一、把字体拷贝到 Kindle

用 USB 数据线把 Kindle 连到电脑,待出现 Kindle 磁盘后,进入 Kindle 的根目录(与 documents 文件夹同级)新建一个名为“fonts”的文件夹,然后把字体拷贝到该文件夹中。

需要注意的是,你需要记录一下放入“fonts”文件中的字体的真实名称,下面的步骤会用到。字体的真实名称获取方法为:如果是 Windows 系统,请安装“字体试衣间”之类的字体管理软件获取字体真实名称;如果是 Mac 系统,双击打开字体文件,窗口标题显示的即是字体的真实名称。

如果你不知道选用什么字体,可以前往《Kindle 中文字体推荐:更换一下字形口味》这篇文章中选用你喜欢的字形,每种字形都附上了字体的真实名称。如果你也有好的字体也欢迎留言推荐。

二、将字体引入 CSS 样式

接下来就需要修改电子书的 CSS 文件,使其引用我们放置到 Kindle 中的字体,从而实现字形的改变。需要注意的是,可以实现改变字形的电子书格式必须是 KF8 标准的 mobi 或 azw3 格式。

比如,本例想把一本电子书的标题替换为“方正悠黑”(真实名称为:MHei PRC);把正文内容替换为“方正新书宋简体”(真实名称为:FZNewShuSong-Z10S)。就可以在添加或修改电子书的 CSS 文件,添加以下代码,然后把修改后的电子书拷贝到 Kindle,本步骤就完成了。

/* 定义字体 */
@font-face {
    font-family: "youhei"; /* 引用名,可自定义 */
    src: local("MHei PRC"); /* 字的体真实名称 */
}
@font-face {
    font-family: "shusong";
    src: local("FZNewShuSong-Z10S");
}

/* 应用字体 */

/*
|
| 注意,下面的 .yh 和 .ss 只是随意写的 CSS 选择器,请根据具体情况自行修改。
| 比如你想把所有电子书改成某个字体,就直接使用 body { ... },如果想要分开
| 处理标题和正文,需要查看一下电子书源文件中实际的 CSS 选择器什么再修改。
|
*/

.yh {
    font-family: "youhei"; /* 定义字体中的引用名*/
}
.ss {
    font-family: "shusong", serif; /* serif 表示前一个字体无效就应用原生宋体*/
}

需要注意的是,如果应用了自定义字体且未生效的话,Kindle 会将自动调用原生黑体,代码中的 serif 可以理解为,如果前一个字体无效,就使用原生的“衬线字体”(中文可以理解为宋体)代替,这样在分享电子书的时候,就可以避免无法使用 Kindle 的字体设置进行设置的情况(正文会全部变成黑体)。

修改电子书的 CSS 有多种方法,比如通过 Calibre 转换、修改电子书源文件、把电子书转换成 epub 再修改等。下面简要说说三种修改电子书 CSS 的方法。

方法一:通过 Calibre 转换。在 Calibre 的转换面板中,切换到“界面外观”面板,然后在右侧标签中切换到“样式”,在下面的“Extra CSS”中填写上面提到的 CSS 代码即可。需要注意的是,如果选则的输出格式是 mobi 格式,还需要切换到“MOBI 输出”面板,把“MOBI 文件类型”改为“both”。最后开始转换。

方法二:修改电子书源文件。这种方法更简单,可以使用 KindleUnpack教程)这个小软件把 azw3 或 KF8 标准的 mobi 格式拆解成源文件,然后在拆解后的文件夹中找到 Styles 文件夹,修改里面的 CSS 文件即可。最后用 KindleGen 根据 opf 文件重新生成 mobi 文件。

方法三:转换成 epub 再修改。如果习惯使用 Sigil 修改电子书,也可以把电子书转换成 ePub 格式再修改。修改方法和方法二一样,打开 CSS 文件添加或修改以上代码即可。

三、重启 Kindle 查看效果

前面的步骤操作完成后,重新启动一下 Kindle,待重启完毕后打开那本修改后的电子书,就可以看到文本字体已经变成相应的自定义字体了。需要注意的是,重启后需要等待一会儿 Kindle 才能载入字体。如果较长时间字体无法载入,就通过 Kindle 的字体设置切换一下字体看是否能生效。

另外,越狱并安装了 Fonts Hack 的 Kindle 也可使用此方法,但是简单的重启是无效的。可能是插件接管了系统字体的原因,需要通过 KUAL 菜单依次点击 Fonts -> Fonts Hack Behavior -> Update fontconfig cache 重新生成字体缓存。当然,既然越狱了再在根目录新建 Fonts 目录有点儿多此一举,可以通过菜单 * Migrate your fonts directory * 把根目录的字体文件合并到 Fonts Hack 的字体文件夹中,或者直接把字体拷贝到 linkfonts/fonts 文件夹中,就可以在 CSS 中引用它们了。

再次感谢小伙伴 Dummy-B 提供的方法,并耐心回复邮件排查问题。如果本文对您有帮助,欢迎分享给其它使用 Kindle 并对此感兴趣的小伙伴。如果您发现了文中的谬误,也欢迎留言指正。

未经允许不得转载:书路 » 如何免越狱且不内嵌更换 Kindle 电子书字体

赞 (0) 打赏