好,通过上两讲相信你已经基本熟悉修改 Kindle 系统文件的方法了。这一讲我闲话不多说,直接进入重点:如何完美显示中文字体(包括粗体、斜体和斜粗体)。
用过 Kindle 4 的人都知道有时候中文显示会呈现文字一粗一细,一大一小,甚至出现很别扭的笔画等等情况,而且当文章中出现斜体和粗斜体的时候,中文完全无法显示为这两种字体形式,最明显的莫过于当目录中 Collections 的名字同时含有中文和英文的时候,就会出现中文不斜,有时候还不粗的情况。
其实想要在 Kindle 里面完美显示中文,必须达成“Kindle 完美中文的三位一体”(好吧,我承认是我编撰的= =,不过一点不夸张哦):
- 完美的中文字体
- 完备的配置文件
- 完善的默认编码
下面且听我我一一道来……
第一位:完美的中文字体
感谢这个帖子的作者对 Kindle 3 完美中文显示的不懈努力,完美的字体有了保障。在他的帖子里面提供的几种字体(方正兰亭黑+方正兰亭中黑和方正准雅宋+方正粗雅宋几种组合)我们都可以按照自己喜好下载并更换到 Kindle 里面。
P.S. *nix 文件系统区分大小写,请注意文中各处大小写不要错位,否则可能会引起砖机等严重后果!
这些字体包解开后会看到四个文件,分别为:CJK.ttf(对应一般字体)、CJK_Bold.ttf(对应粗体)、CJK_Italic.ttf(对应斜体)和CJK_BoldItalic.ttf(对应斜粗体)。通过 SSH 登录到 Kindle,将文件放入主分区的下列文件夹中。(所有系统字体都在这里)
/usr/java/lib/fonts/ |
当然,光把文件放进去怎么行呢?所以就有了下一位……
第二位:完备的配置文件
Kindle 字体的配置文件位置在:
/usr/java/lib/font.properties |
接下来,为了安全起见,我们需要备份这个文件:
cp /usr/java/lib/font.properties /usr/java/lib/font.properties.bak |
然后就可以打开 font.properties 文件进行修改了。
首先,找到下面的部分:
1 2 3 4 | hans.0=MHeiM18030_E.ttf hans.plain=MHeiM18030_E.ttf hans.1=MHeiM18030_E_Bold.ttf hans.bold=MHeiM18030_E_Bold.ttf |
很明显,其中 hans 代表简体中文、0/1 和 plain/bold 代表一般字体和粗体。通过分析其他字体的情况,我们还能找到:
0/plain = 一般字体 1/bold = 粗体 2/italic = 斜体 3/bolditalic = 斜粗体
但是默认的配置文件中,CJK 字体都只含有一般和粗体两种。所以,将这部分修改为:
1 2 3 4 5 6 7 8 | hans.0=CJK.ttf hans.1=CJK_Bold.ttf hans.2=CJK_Italic.ttf hans.3=CJK_BoldItalic.ttf hans.plain=CJK.ttf hans.bold=CJK_Bold.ttf hans.italic=CJK_Italic.ttf hans.bolditalic=CJK_BoldItalic.ttf |
然后保存,再加上之前已经复制到机器里面的中文字体,显示就会很完美了:目录粗/斜体、期刊的页眉页脚、文中的斜体都可以正常显示了。
第三位:完善的默认编码
由于 Kindle 的默认编码是英语,所以在显示 CJK 文字的时候,由于在配置表(不是“第二位”提到的那一个,详见这里的“Linux的字体管理机制”一章)里面日语比中文靠前所以日文汉字总是被优先显示;而我们看的文章中有相当一部分文字并不是日语汉字,所以才被渲染成了中文,造成了字体粗细和大小不一的问题。
将 Kindle 的字体编码切换为中文很简单,只要在正常开机、在书籍目录的情况下,按下键盘键(从左至右第二个键)调出搜索栏,一次一行输入:
1 2 3 | ;debugOn ~changelocale zh-CN.utf8 ;debugOff |
注意大小写,在每一行输入完毕后按下五向键中间的确认键完成输入,即可继续进行下一行的输入。
在调整编码后请重新启动 Kindle。
结语
到这里,Kindle 的中文显示应该已经基本完美了。不过遇到metadata语言标定为非中文的书籍,字体还是会乱成一锅粥= =(残念啊)。为了减轻(似乎还无法完全解决)影响可以考虑将日文字体指向中文字体。在“第二位”中提到的配置文件里查找:
1 2 3 4 | jpan.0=HeiSeiMaruGoth213_E.ttf jpan.plain=HeiSeiMaruGoth213_E.ttf jpan.1=HeiSeiMaruGoth213_E_Bold.ttf jpan.bold=HeiSeiMaruGoth213_E_Bold.ttf |
替换为:
1 2 3 4 5 6 7 8 | jpan.0=CJK.ttf jpan.1=CJK_Bold.ttf jpan.2=CJK_Italic.ttf jpan.3=CJK_BoldItalic.ttf jpan.plain=CJK.ttf jpan.bold=CJK_Bold.ttf jpan.italic=CJK_Italic.ttf jpan.bolditalic=CJK_BoldItalic.ttf |
即可。不过要注意的是,请不要将韩语和繁体中文替换为 CJK 字体,否则会导致无法显示韩语和国际音标显示错误的问题。
P.S. 题图中的OALD辞典可以在这里下载
5 Comments
非常感谢博主的文章,在wzyboy的基础之上,解决了音标乱码的问题~
在搜索kindle中文支持的时候无意中看到你的博客,想不到你也是在澳洲。好巧啊。
不知道你用过paperwhite没, 如果用过的话,你知道paperwhite对中文的显示怎么样啊?
KPW自带中文字体和中文UI的啊,字体也勉勉强强够用了,不需要再改了。
Kindle 4 第三课:完美中文字体 https://b.billgong.com/2248.a
请教一下这个帖子中截图的英汉字典是哪个?谢谢 🙂
出处实在想不起来在哪里,所以我传上来好了,见文章末尾。