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

前两天发布了一篇名为“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("FZTanHeiS-B-GB");
}

/* 应用字体 */

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

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

需要注意的是,如果应用了自定义字体且未生效的话,Kindle 会将自动调用原生黑体,代码中的 san-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 并对此感兴趣的小伙伴。如果您发现了文中的谬误,也欢迎留言指正。

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的 Email 将会被保密。如果是在本站首次留言,审核后才能显示。

小伙伴们发表了 21 条评论

  1. 能够一个文件只能放到一个收藏夹就好了,同一个文件可以同时放到几个收藏夹里,管理不方便。如果能够批量删除本机书籍,还有一个文件只能放到一个收藏夹里就好了

    • 咖喱猪 您好。本文提供的方法没有对 Kindle 系统做任何操作,应该不是导致此问题的原因。

  2. 试了,不行
    也担心邮箱推送被重新修改的可能
    用的USB直接拷入

    5.8.2,越狱,已装linkfonts
    因为这种方法相当于替换系统默认的四种中文字体中的一种的定义
    缺点是只能换一个字体
    想能用楼主的新方法补充一个字体选择进去
    可惜一直不成功

    另外,越狱换字体的方法,能不能把宋黑楷圆四个字体的定义都换了?

    • xmchx239 您好。linkfonts 是可以替换所有默认字体的,包括简体中文四个字体、繁体中文两个字体以及所有英文字体。

      • 感谢朋友回复。我是按照教程中“使用文本编辑器(不要用记事本,推荐使用 Sublime Text 等专门的代码编辑器)打开重命名后的文件,将其中的 %TO_OVERRIDE% 替换成 STSong、STKai、STHeiti、STYuan 中的一个(分别对应系统字体中的 宋体、楷体、黑体、圆体);把 %TO_USE% 改成要使用的字体的字体名称 (注意要用真实字体名,而不是 .ttf 文件的文件名),修改完毕后保存文件。”做的,替换了STHeiti,如果还想替换其它的怎么做?我试过,比如用相同的语句换STSong,然后宋体变我想要的字体了,黑体又变回去了。

  3. 您好~ 我用了上述的方法(一),但不管是用usb傳送,還是一鍵推送
    皆沒有顯示已經存在calibre裡fonts文件夾的字體,我的版本是5.8.1
    是因為版本問題嗎?謝謝~

    • ze 您好。首先,字体文件需要放到根目录下 fonts 文件夹中;然后需要注意,不要直接复制示例中的应用字体的 CSS 代码,因为每一本电子书的 CSS 选择器并不一样,所以需要根据实际情况引用。

      • 我也没成功,在calibre里看转换的mobi已经改对了
        .calibre3 {
        font-family: “ltzh”;
        line-height: 1.2
        }
        但是send to kindle后发现,转成的azw3里,相应的css偏偏在font-family那里空了一行,如下
        .calibre3 {

        line-height: 1.2
        }

        请教下应该怎么搞定?

        • czz 您好。推送后,电子书会被亚马逊服务器重新处理,这可能是 font-family 被移除的原因。所以如果想要使用自定义字体,还是建议本地传输电子。

  4. Kindle官方能做的跟电脑系统类似,让用户自由选择使用系统字体或者安装自己喜欢的字体就好了.

  5. 好,这样只为了换字体的同学可以不用越狱了。听说kwp3没有开发多看版本,是因为程序员自制了andriod for kindle并且不卡,可以安装kindle版京东阅读和新浪微博等,问了下价格刷一次手工费要接近百元,好眼馋啊。

  6. 学习了,记得在某论坛或某吧里 行者老路 分享的书 就是需要拷贝他提供的“fonts”的文件夹到kindle中