揭秘Kindle众多神秘使用技巧:用微信推送文档

点一杯咖啡,再来一点Kindle…

除了爱情,没有任何事情像阅读这样让我们觉得,迟来的开始也可以如此美好!

不可否认,在网络阅读越发的流行今天,Kindle 已经成为了网络阅读最佳承载体之一;因为 Kindle,我们可以静下心来享受沉浸于阅读;因为 Kindle,我们可以将阅读作为一种享受。

但好产品并不意味着好使用,接下来雷锋网就和大家分享 Kindle 那些鲜为人知的使用技巧,让阅读更加自然。

Continue reading “揭秘Kindle众多神秘使用技巧:用微信推送文档”

kindle paperwhite越狱后使用SSH密钥免密码登录

kindle paperwhite (固件5.4.4)越狱,安装usbnet:http://zzss.cf/?p=2134

开启usbnet,使用ssh登录发现默认的root密码失效, passwordtool算的密码也不可用。

解决过程:

Continue reading “kindle paperwhite越狱后使用SSH密钥免密码登录”

kindle paperwhite原生系统+koreader=完美阅读体验

大家都知道,kindle系统的缺点在于格式支持少,pdf体验差,所以很多人选择多看系统。我曾经也用过多看系统,但总觉得整个UI设计不如原生系统。
后来发现了一个叫koreader的插件,它的出现对kindle阅读器来说,简直起到了如虎添翼的作用。这样一来,既不用更换其他系统,又能使机子支持多种格式,如epub,html,doc,chm等常见格式,而且使得kindle对pdf的阅读支持达到了几乎完美的效果(它的页面重排功能相当强大,甚至连扫描版都能很好的跟重排了,而且每翻五页,才全刷一次,相当不错,有了它,甚至都可以不用考虑kindle dx了)。

Continue reading “kindle paperwhite原生系统+koreader=完美阅读体验”

使用Dropbox将电子书自动推送到Kindle阅读器

kindle无论你使用Kindle原系统,还是多看系统,只要你把电子书文件放到你的Dropbox的某个文件夹中,它就会自动推送到你的Kindle阅读器中。

这里使用的wappwolf服务,可以实时监控你的Dropbox,当你在指定文件夹中上传了一个文件,它会按照你预先定义的规则去处理,比如,发送至你的kindle推送邮箱。这样,文章就会自动推送到你的阅读器中。

Continue reading “使用Dropbox将电子书自动推送到Kindle阅读器”

KPW关闭系统自动更新

KPW只要联网,会自动更新系统,所以用用原版,多看又会用不了了,降级后最好先关闭wifi,关闭系统自动更新后,再刷多看

最近再多看上闲逛时,发现有些同学提到了kindle 会自动升级到最新的固件。
虽然亚马逊提供了自动升级服务很人性,免除了我们手动升级的麻烦……
但是对于我们大多数人来说,kindle对于中文的支持不佳,所以我们要替换字体来解除kindle的字体支持的缺陷,一旦自动升级又要重新破解又要重新换字体,挺麻烦的。
经过我的尝试,终于发现了kindle自动升级的奥秘。
原理:kindle在连接wifi时会自动查询本机的版本号与官方提供的最新版本,如果不匹配,它就会自动联网然后下载升级bin文件。
具体解决方法!!!!!!

提醒,操作过程中请关闭WiFi。
1)将KT 通过USB 插入电脑,确定你的kindle的盘符

2)然后看一看根目录下有没有叫做update.bin.tmp.partial和update.bin的文件。如果有请把这两个文件删除,如果没有进行下一步。
3)在根目录下建个“文件夹”命名为a。

4)在Windows 的CMD 界面下(如何进入CMD 界面:按WIN 键+R,在命令行输入CMD)

输入i:(这个i是指你的kindle的盘符,刚才让你记住的那个)回车

然后输入rename a update.bin.tmp.partial 然后按回车。

5)回到你的kindle根目录下,把update.bin.tmp.partial(图标是个文件夹)的权限设置成只读(对该文件点击鼠标右键选择属性)

6)安全断开Kindle 和电脑的连接,之后你的kindle就不会自动升级了。

Kindle多看系统安装字典方法

正确的字典安装步骤:
A.字典下载地址:http://abloz.com/huzheng/stardict-dic/
B.选择自己所需的字典进行下载。
C.下载完成后,其格式为.tar.bz的压缩包,如:stardict-gaojihanyudacidian_fix-2.4.2.tar.bz2,选中该压缩包,右键,选择”解压文件”。
D.解压后生成三个文件,后缀分别为.dz、.idx、.ifo。
E.然后选中.dz文件,使用7-zip解压,生成.dict文件。
F.解压后共产生四个文件,后缀分别为.dz 、.idx、 .ifo、.dict,其中idx 、ifo、 dict三个是最终需要的文件。
G.连接usb,把idx 、ifo、 dict这三个文件放入DK_System\xKindle\res\dict目录下即可。
说明:
1. 一个完整的字典包括*.idx 、*.ifo、 *.dict这三部分,缺一不可;
2. 可照上述方法添加多本词典;
3. 上述说明所涉及到的解压工具7-Zip可在网上下载;
如果安装步骤正确,但在选择词的时候没有弹出释义框则是字典不全的问题

 

PS,字典下载:

http://bbs.duokan.com/forum/thread-10833-1-1.html

批量删除Kindle Library中的文档

我一般都是用邮件给自己的Kindle、Kindle App for iOS/Android发送书籍文章。也直接用dogear狗耳朵ikindle爱看豆等订阅新闻之类的,不用连线的感觉很爽!经常用这个功能的童靴们都知道,每一个文档都会在出现你的Kindle Library中。长期积累下来想找一个以前传送过的文档很麻烦,尤其是Kindle Library还不支持中文搜索。
我用dogear狗耳朵每日推送的看完就删除,但一直留在Kindle Library实在很烦。而且在Kindle Library里边还得一个一个地删除,每次删除一个文档页面就要自动刷新。在手工删了几十个之后实在不能忍了,只好放狗搜索。在Kindle forum里找到一个解决办法:http://goo.gl/ggjBH。但是他的方法只能一下子删除一整页(15个)。或者进行搜索,在搜索结果页面进行删除。于是自己基于Giacomo1871的脚本修改了一下。
使用方法如下,译自英文回复:
非常感谢Giacomo1871。你的方法确实有用!我另外做了一个可以更加灵活地删除条目的Bookmarklet。类似地:1.将代码加入书签栏。2.在Personal Documents页面,点击一下这个书签,然后在每个条目之前会出现一个复选框。3.选择你想删除条目对应的复选框。当然也有全部选择、全部不选和反向选择的快速连接。4.再次点击书签,被选择的条目将被删除。
代码如下:

javascript:(function(){ var v = new RegExp('PersonalDocuments'); if (!v.test(document.URL)) { return false; } {a=document.getElementsByClassName('rowBodyCollapsed');b=document.getElementsByName('checkboxForDelete');if(b.length==0){document.getElementById('Row1Button').innerHTML += "<a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=true;};})();'>All</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=false;};})();'> None</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=!b[i].checked;};})();'> Reverse</a>";for(var i = 0; i<a.length; i++){ tmp=document.getElementById('Row' + (i+1) + 'Button'); tmp.innerHTML += "<input type='checkbox' name='checkboxForDelete' />";};}else{for(var i = 0; i<b.length; i++){if(b[i].checked){Fion.deleteItem('deleteItem_'+a[i].getAttribute('asin'));}};}return;}})();

请使用下面的代码,修复了某些浏览器中在非Personal Documents页面中执行脚本会跳转页面的bug:

 

javascript:(function(){ var v = new RegExp('PersonalDocuments'); if (!v.test(document.URL)) {alert("The script can only work in Personal Documents!");}else{a=document.getElementsByClassName('rowBodyCollapsed');b=document.getElementsByName('checkboxForDelete');if(b.length==0){document.getElementById('Row1Button').innerHTML += "<a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=true;};})();'>All</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=false;};})();'> None</a><a href='javascript:(function(){for(var i=0;i<b.length;i++){b[i].checked=!b[i].checked;};})();'> Reverse</a>";for(var i = 0; i<a.length; i++){ tmp=document.getElementById('Row' + (i+1) + 'Button'); tmp.innerHTML += "<input type='checkbox' name='checkboxForDelete' />";};}else{for(var i = 0; i<b.length; i++){if(b[i].checked){Fion.deleteItem('deleteItem_'+a[i].getAttribute('asin'));}};}return;}})();

[http://www.xcv58.com/2012/05/kindle-library.html]

使用同步盘自动推送书籍至Kindle

Kindle paperwhite 靓照一张额…刚买了一个Kindle paperwhite,发现Kindle 的书籍推送服务果然很好很强大。你只需要用邮箱向Kindle推送账号(@kindle.com for 3G 接收 ,@free.kindle.com for wifi 接收)发送一封邮件,就可以自动把这些文档通过 wifi 或 3G 推送到你的设备了。(你需要同步的文档放在邮件附件中,Kindle支持转化的格式见文末)

不过发邮件这种事多麻烦,要是仅仅需要 复制/粘贴 ,在桌面就可以完成Kindle书籍的自动推送,那岂不是爽翻了?额,懒人的智慧是无穷的,人类因为懒进化出了繁荣昌盛的现代文明,所以说:这么懒的服务当然有人做了!使用同步盘,真的可以自动推送书籍至Kindle,而且,不只是PC端喔!!!

 

使用Wappwolf提供的服务推送至Kindle

lifehacker介绍过Wappwolf的服务。Wappwolf支持3种同步盘,包括Google Drive,Dropbox 和Box。这些同步盘在天朝的情况是,Google Drive同步很快,Dropbox略慢(但功能更强大),Box没有用过。

注册Wappwolf非常简单,默认支持使用Dorpbox账户登录,也可以选择Google Drive,Box登录。

登录后,建立一个“automator”,选择“Send it to your kindle”这个服务,按提示一步一步完成。

提示:

1、你的Kindle推送Email账号可以在这里找到:Manage Your Kindle –>Personal Document Settings。

2、发送邮件到Kindle推送账号的邮件,需要添加至你的Approved Personal Document E-mail List

使用IFTTT,建立Dropbox –> Gmail

使用IFTTT(关于IFTTT这个服务的介绍)算是曲线救国,这个方法也流传已久,这里附上一个已经建好了“Recipe”(Dropbox –> Gmail):https://ifttt.com/recipes/25275

如果已经注册了IFTTT,点击使用就好了。注意这里的Email当然是你的Kindle推送邮箱地址,***@free.kindle.com。而且你的Gmail邮箱同样需要添加至你的Approved Personal Document E-mail List。

Kindle推送邮箱地址示例

此外,IFTTT的广大用户已经充分发挥想象,建立了其他各种稀奇古怪的Kindle推送服务,喜欢折腾的童鞋可以点这里

Kindle推送服务支持的转化格式

(不支持epub有点遗憾…不过可以通过其他软件/服务转格式)

Microsoft Word (.doc, .docx)
Rich Text Format (.rtf)
HTML (.htm, .html)
Text (.txt) documents
Archived documents (zip , x-zip) and compressed archived documents
Mobi book
JPEGs (.jpg), GIFs (.gif), Bitmaps (.bmp), and PNG images (.png).
Adobe PDF (.pdf)

又及:

WLW2012升级之后,终于把”超链接”插入放在和编辑文字的同一栏了…感动有木有!!!

[http://ifeiyang.cn/archives/2636.html]

Kindle 中文阅读终极优化指南

由于 Amazon Kindle 目前只在美国和英国等少数以英语为主要语言的国家发售,它的键盘甚至无法原生输入俄语、挪威语等字母语言,更别提中文了。自然,它对中文的默认支持也不怎么样。但是作为一个母语为中文的 Kindle 用户,阅读中文书籍是经常发生的事,用中文作笔记也是会遇到的。而是一个完美主义者,面对网上那些数量稀少且并不完美的 Kindle 中文阅读教程,我决定自己动手,探索、整理出一份“完美”的Amazon Kindle 中文阅读优化指南

一、Kindle 基本介绍

Amazon Kindle 是 Amazon 公司(或者叫 Amazon 帝国更贴切……)推出的一系列电子书阅读器。目前主要有以下设备:

  • 第一代:Kindle
    最早的版本,只有白色版,屏幕就四阶灰度,可用存储空间只有 180MiB……
  • 第二代:Kindle 2 和 Kindle DX(包括 Kindle DXG)
    Kindle 2 开始有十六阶灰度屏了。Kindle DX 是 Kindle 2 的“放大版”,固件和 Kindle 2 是一样的。DXG 是灰色版的 DX,不过性能上也有一些改进。
  • 第三代:Kindle Keyboard →我用的
    最流行的版本,很好很强大,3G 版更可全球漫游上网。
  • 第四代:Kindle 和 Kindle Touch
    第四代就叫 Kindle……民间也叫 Kindle 4,它有一个非触屏和一个触屏版,是 Kindle Keyboard 的“缩水版”,但是比较便宜,只要 $79。
  • Kindle Fire(基于 Android 的平板电脑)
    我觉得这个不能算在前面的系列里,因为它不再是用 E-Ink 屏幕了。
  • Kindle Reading Apps(运行于 iOS 和 Android 设备,以及网页上)
    这个只能算一套软件了……而不是硬件设备,放在这里只是因为名字里有“Kindle”。

本文所指的 Kindle,主要是指 Amazon 推出的各代以 E-Ink 作为显示屏幕的设备,不包括 Kindle Fire 和 Kindle Reading Apps 在内。

本文用作教程的 Kindle,即我有拥有的 Kindle,是 Kindle 的第三代,官方名称为 Kindle Keyboard,本教程所介绍的方法理论上也可用于其他代的 Kindle(不包括 Kindle Fire)。 Kindle Touch 用户可以参考这个帖子

本文所提到的 update-*.zip 文件均出自 MobileRead 论坛,可在此链接找到。

二、现状与我们的目的

正如上文所说,Kindle 未在使用 CJK/CJKV中日韩(越)统一表意文字) 的国家和地区发售,所以默认对 CJK 的支持是比较差的,在目录界面下,一些中文字会变成□□□□,在网页里,中文字的大小也是很不整齐的,并且有不少是用的日本字型,笔画看着很奇怪。

以上提到的问题虽然可以通过 changeLocale 的 debug 代码来解决,但是阅读中文时的字体依然是丑陋的无衬线字体。这种无衬线字体在 CRT 和 LCD 上用用还勉强能接受,但是在接近印刷品的 E-Ink 屏幕上用,就显得太不搭调了,长时间阅读会造成眼睛非常疲劳,丧失了 E-Ink 的优点。并且,默认的中文字体是没有标准、粗体、斜体、粗斜体的区分的,无论是标题还是正文还是注释,一律是同样的样式。对比拉丁字符的不同样式,实在是令人不爽。

首先声明一点:电脑上各种字处理软件里中文字体的“粗体”实质是“仿粗体”,“斜体”实质是“仿斜体”,是软件模拟出来的,只有少量中文字体(如微软雅黑)的粗体、斜体才是独立的字体。

正是因为这种软件模拟的存在,我们才能在电脑上看到各种中文字符“变粗”(仿粗体)和“变斜”(仿斜体),哪怕这个字体本身没有对应的粗体和斜体。而手持设备上一般没有这种软件模拟,所以只能显示字体本身的样子。但是,既然有“仿粗体”和“仿斜体”,就有真正的粗体和斜体,比如微软雅黑和粗体的微软雅黑是两个独立的字体,前者是 msyh.ttf,后者是 msyhbd.ttf我们只要使用独立的粗体、斜体字体便可在 Kindle 上实现中文字符的不同样式。

能“解决”上面所有的问题方法的是把所有的书全部弄成 PDF。但是要在 Kindle 上看 PDF,最好得是特制的六寸 PDF。每本书都转换并且方便,并且 PDF 相比 mobi 格式丧失了不少功能,因此该方法被枪毙。

所以,作为一个完美主义者,我要实现以下目的:(递进)

  1. 完美显示中文(告别□□□□!)
  2. 使用优质的衬线中文字体来代替无衬线中文字体(让 E-Ink 像印刷品一样!)
  3. 实现中文字体的普通、粗体斜体粗斜体的不同样式(标题就该突出!)
  4. 目录界面和状态栏中的中文也要使用自定义字体并显示出样式(光阅读界面是好看的怎么能叫完美呢?)
    除此以外,由于我还需要用 Kindle 阅读英语和德语的书籍,所以还有一个附加要求:
  5. 拉丁字符要保持原有的专业与美观,不能变丑(中文字体里嵌的拉丁字符实在不敢恭维)

三、两种不完美的解决方案

calibre 法

这种方法不需要越狱,几乎接近完美。但是很遗憾,它有 bug,不完美。这里简略介绍一下步骤,完整的图文教程可见《Kindle 3 不越狱换字体》

  1. 安装 calibre 这个强大到变态的专业、开源、自由的跨平台(基于 Python)电子书管理软件。
  2. 安装 Kindle Collections 这个 calibre 插件。
  3. 连接 Kindle,把优质衬线中文字体(如方正雅宋系列)按照特定的命名规则(CJK-Regular.ttf, CJK-Bold.ttf...)复制到 fonts 目录下。
  4. 连接 Kindle,在 Kindle Collections 里选择 Modify Kindle Settings,勾选 Allow user fonts,并在列表中选择 CJK
  5. 在提示成功后,拔掉并重启 Kindle,在阅读的时候按 Aa键,便可看到 Typeface 一项中多了一个 alt,那个就是自定义字体了。

这种方法接近完美,可以实现中文字体的不同样式显示,但是该方案的三个问题,这是我在使用的过程中发现的:

  • 虽然在阅读界面下,已经是自定义字体了,但是目录界面和状态栏的标题仍然调用的是简陋的原生字体,不爽。
  • 在阅读中英混合的书籍时,如果选择了自定义的衬线中文字体,那么书中的拉丁字符也会用自定义字体来渲染,而中文字体中的拉丁字符一般都比较丑陋,远没有纯拉丁字体中的字符好看,不爽。而如果选择原生字体,那么中文字符也会变成自带的衬线字体,依然不爽。
    也就是说,该方法能实现到上面的“目的列表”里的第 3 条,而第 4、5 条无法实现。
  • 更大的 bug:看起来Aa中的几种 Typeface 是可以自由切换的,但是实际上是有 bug 的,即切换成非 alt 之后,想再切换回来就会发现……alt 选项消失了!这意味着你就算不在乎上面那个 bug,在需要看英文书籍的时候切换到原生字体后,再看中文书籍时,根本无法切换成自定义字体(alt)!这个奇葩的 bug 只能通过连接电脑,在 calibre 的 Kindle Collections 里再次设置并重启 Kindle 解决,非常麻烦。

Fonts Hack 法

这种方法主要是指安装 Fonts Hack,这个升级包也可在上文提到的 MobileRead 里的那个帖子中下载到所需文件。下面简单说一下步骤和不足:

  1. 安装 Fonts Hack。即把对应你的 Kindle 版本型号的 update-fonts-*.bin 放到 Kindle 根目录并在 Kindle 中选择 Update your Kindle
  2. 再次连接 Kindle,能够看到根目录多了一个 linkfonts 目录,在 fonts 子目录中即可看到一堆字体,其中 Sans-*.ttf 和 Serif-*.ttf 是阅读书籍时用到的拉字字符字体文件,而 CJK.ttf是中日韩统一表意文字用到的字体,中文字体自然也在里面了,这就是平时看到的简陋的无衬线中文字体。
  3. 把 CJK.ttf 替换成优质衬线中文字体如方正准雅宋
  4. 在 linkfonts 目录中新建一个名为 reboot 的空文件并拔掉 Kindle 可以实现 Framework 重启或者直接从 Kindle 中选择 Restart your Kindle 以应用新字体。

这样操作之后,所有的中文字体(阅读界面、目录界面、状态栏)都已经是调用了自定义字体了,但是,这些字体是没有任何样式可言的,全部只有 Regular。而如果把原生字体如 Sans-Regular.ttfSerif-Regular.ttf 等换成对应样式的衬线中文字体,又会面临拉丁字符非常丑陋的问题(即上文“目的列表”中第 5 条无法实现)

四、选好你的字体

在正式开工之前,还是再讲一下字体吧。我向来对字体比较挑剔的,原来用 Windows 的时候 GDI++ 是必不可少的东西,不渲染浑身不爽;后来用 Linux 了,则与 /etc/fonts/local.conf 搏斗了好久……现在用了 Kindle 了,面对着与 LCD 完全不同的 E-Ink 屏幕,对字体的挑剔就又上升了一个台阶……

非常幸运的是,在以中文为母语的 Kindle 用户中,对字体很挑剔的不只我一个,这位博主的博文《Kindle 3的字体、行距、边距》便是一篇很好的关于 Kindle 选字体的文章,讲得头头是道,且配图清晰动人,强烈建议大家去围观。这里简要地归纳总结一下我对字体(尤其是简体中文字体)的几点看法:

  • 总原则是:CRT、LCD 等低 ppi 屏幕上阅读大量文字请使用无衬线字体;在印刷品上阅读大量文字请使用衬线字体。
  • Windows Vista 之前的 Windows 一直用的中易宋体(衬线字体),实在是不该。好在 Vista 之后改成微软雅黑(无衬线字体)了。长时间在 CRT、LCD 上阅读衬线字体非常容易疲劳,不信你找篇长文章用五号字的“华文楷体”阅读试试……
  • 印刷品上衬线字体比无衬线字体看着不易疲劳,所以大部分报纸上正文都是小五号报宋体(衬线字体),只有标题为了题目才会用无衬线字体。
  • Kindle 由于采用了 167 ppi 的高 ppi 的 E-Ink 屏幕,比电脑屏幕的 72 ppi 90-120 dpi 高出一倍多了,比报纸的 100-150 dpi 也高出一些,所以完全可以当作印刷品对待,所以应该使用衬线字体。
所以这样选字体:
  • 在低 ppi 的电脑屏幕上,推荐使用无衬线中文字体,比如微软的商业字体“微软雅黑”,自由开源的“文泉驿徽米黑”、“文泉驿正黑”也是不错的选择。
  • 在高 ppi 的 Kindle 的 E-Ink 屏幕上,推荐使用衬线中文字体,比如方正雅宋系列里的“方正准雅宋”。如果你习惯在 Kindle 上看小字体的话,你甚至可以选择“方正报宋”“汉仪报宋”这样的适合小字号的笔画很细的衬线字体。(报纸上用的就是这样的字体)

再恶毒地“抨击”一下几个字体:

  • 华文楷体对于大量文字来说是个失败的字体……不解释……很难理解为什么有人会拿它做成 PDF 电子书。上次看到舍友在 Tablet S 上看华文楷体的 PDF 《盗墓笔记》,震惊了……那个字密密麻麻的,非常恶心。
  • 中易宋体是一个非常落后的字体,它太古旧了,没有 hinting 信息,bug 多多,只是由于微软和 Windows 的关系,横行霸道了许多年,至今仍可在一些老顽固的 XP 电脑上看到。
  • 微软雅黑和苹果丽黑,在电脑屏幕上算是比较成功的字体,但这只是因为它们为低 ppi 优化过!用在 Kindle 上是很不合适的,可是有些电子书制作者在做 PDF 电子书时候依然选择微软雅黑作为字体……实在是不该。

说了这么多,你现在可以在本节开头的图片中选择合适的字体了吧?非衬线字体直接不考虑了……我的选择是:

如果你习惯看报纸并且想在正文看更小的字体的话,主字体可以选择“汉仪报宋”或者“方正报宋”。

大部分字体在网上搜索一下名字即可找到下载地址,但是“华文中宋斜”和“华文中宋粗斜”这两个字体并不好找,因此我把它们打包了一下,可以点此下载

五、开始优化字体

前面的准备工作做了那么多,实际上真正的优化过程步骤却并不多,像是前面介绍的两种不完美方法的结合。

更改 Locale

这个步骤是为了让目录界面不出现□□□□。方法就是在目录界面,按 Enter 键,然后输入下面三行 debug 代码,每行按 Enter 结束,然后再按 Enter 再打开新的输入框。

;debugOn				#打开 debug 模式
~changeLocale zh-CN.utf8		#更改 Local 为 zh-CN.utf8
;debugOff				#关闭 debug 模式,可以不输入

这个命令是大小写不敏感的,我区分大小写只是为了好看……另外,在 debug 模式开启的时候输入

~help

可以查看有哪些 debug 命令哦。

执行完这三行命令之后,是需要重启才能应用的,不过先别急着重启,越狱的时候一起重启吧。

越狱

这个不用说了吧,是装软件的前提。从上文那个 MobileRead 链接中下载 update-jailbreak-*.zip,并解压出对应你的机器的版本的 update_jailbreak_*_install.bin 文件,放到 Kindle 的根目录中,然后在 Kindle 的 Settings 页面中,按 Menu,选择 Update your Kindle,等待两分钟左右,即可完成越狱,并且由于已经重启了,上一步的 Locale 也就生效了。这时 Kindle 的根目录中应该已经多出了linkjail 这个目录了。在 Kindle 的内部文件系统中,相应的目录已经被换成了符号链接,目标就是这个linkjail,我们可以通过修改 linkjail 中的文件来达到修改 Kindle 内部文件系统文件的目的。

安装 Fonts Hack

依然是在那个链接中,下载 update-fonts-*.zip,解压出对应版本的update_fonts_*_install.bin 文件,放到 Kindle 的根目录中,在 Kindle 的 Settings 页面中,按Menu,选择 Update your Kindle,等待两分钟左右,即可完成安装。

复制自定义字体

这时再连接 Kindle,便可发现根目录下多了 linkfonts 目录,同样,这也是 Kindle 内部文件系统中某些符号链接的目标,在 linkfonts/fonts 目录下,可以看到一堆字体。请把你准备好的四个中文字体文件(普通、粗体、斜体、粗斜体)复制到 linkfonts/fonts 目录下,保持字体原来的文件名也是这样的,不过为了方便下文引用,最好把它们命名成下面这样,另外,不要用中文名……

  • CJK_Regular.ttf → 普通字体,用于正文的显示
  • CJK_Bold.ttf → 粗体字体,用于粗体的显示
  • CJK_Italic.ttf → 斜体字体,用于斜体的显示
  • CJK_BoldItalic.ttf →粗斜字体,用于粗斜体的显示

注意:这个目录中还有一个 CJK.ttf,它是 Droid Sans Fallback,即 Android 中默认的中文字体(无衬线!),是 Fonts hack 用来代替原生的中文字体的,理论上删除它,然后引用别的字体也是没有关系的,但是由于 Fonts hack 的一些保险装置,删除它之后会导致 Fonts hack 自动失效,所以还是留着它吧,不引用它就好了。

更改配置文件

上一步已经把所需要用到的四个字体复制到 linkfonts/fonts 目录了,但是它们是不会被自动使用的,需要更改配置文件让 Kindle 去使用它们。

打开 linkfonts/etc 目录,可以看到一堆字体的配置文件。Linux 桌面版用户对这些文件应该很熟悉了……我们要动刀的是 fonts.properties, fonts.properties-3, fonts,properties-3-nocondensed 这三个文件。

注意:这三个文件都是 Unix/Linux/OS X 的 LF 换行格式,千万别用 Windows 自带的“记事本”去编辑保存它!否则会变成 CR+LF 的换行格式!Windows 用户请使用 Notepad++ 去编辑,或者下载我编辑好的文件。

这三个文件的内容大同小异,是在不同的阅读模式下的字体渲染设置。主要是改 # international font support 这一行后面的一些内容。默认是这个样子的:

# international font support
code2000.0=I18N.ttf
code2000.plain=I18N.ttf

jpan.0=CJK.ttf
jpan.plain=CJK.ttf
jpan.1=CJK.ttf
jpan.bold=CJK.ttf

kore.0=CJK.ttf
kore.plain=CJK.ttf
kore.1=CJK.ttf
kore.bold=CJK.ttf

hant.0=CJK.ttf
hant.plain=CJK.ttf
hant.1=CJK.ttf
hant.bold=CJK.ttf

hans.0=CJK.ttf
hans.plain=CJK.ttf
hans.1=CJK.ttf
hans.bold=CJK.ttf

可以看出,最上面一段是对符号字体(这是最后一个 Fallback,关于 Fallback 的顺序,请参见这个帖子)进行设置,不用修改,后面四段内容分别对日文、谚文、正体中文和简体中文进行了设置,格式如下:

[字符集].[样式]=[字体文件名]

“字符集”无非 CJK (目前还没有支持 V ——喃文哦),而样式则是有八种的,比如系统原生 Serif 的设置:

# Serif font definition
#
serif.0=Serif_Regular.ttf
serif.1=Serif_Bold.ttf
serif.2=Serif_Italic.ttf
serif.3=Serif_BoldItalic.ttf
serif.plain=Serif_Regular.ttf
serif.bold=Serif_Bold.ttf
serif.italic=Serif_Italic.ttf
serif.bolditalic=Serif_BoldItalic.ttf

可以看出有 0, 1, 2, 3, plain, bold, italic, bolditalic 八种,并且应该是两两对应的。明白了这一点,就很容易了,把刚才那四段定义 CJK 字体的内容改成这模样就行了:

# international font support
code2000.0=I18N.ttf
code2000.plain=I18N.ttf

jpan.0=CJK_Regular.ttf
jpan.1=CJK_Bold.ttf
jpan.2=CJK_Italic.ttf
jpan.3=CJK_BoldItalic.ttf
jpan.plain=CJK_Regular.ttf
jpan.bold=CJK_Bold.ttf
jpan.italic=CJK_Italic.ttf
jpan.bolditalic=CJK_BoldItalic.ttf

kore.0=CJK_Regular.ttf
kore.1=CJK_Bold.ttf
kore.2=CJK_Italic.ttf
kore.3=CJK_BoldItalic.ttf
kore.plain=CJK_Regular.ttf
kore.bold=CJK_Bold.ttf
kore.italic=CJK_Italic.ttf
kore.bolditalic=CJK_BoldItalic.ttf

hant.0=CJK_Regular.ttf
hant.1=CJK_Bold.ttf
hant.2=CJK_Italic.ttf
hant.3=CJK_BoldItalic.ttf
hant.plain=CJK_Regular.ttf
hant.bold=CJK_Bold.ttf
hant.italic=CJK_Italic.ttf
hant.bolditalic=CJK_BoldItalic.ttf

hans.0=CJK_Regular.ttf
hans.1=CJK_Bold.ttf
hans.2=CJK_Italic.ttf
hans.3=CJK_BoldItalic.ttf
hans.plain=CJK_Regular.ttf
hans.bold=CJK_Bold.ttf
hans.italic=CJK_Italic.ttf
hans.bolditalic=CJK_BoldItalic.ttf

注意:这后面的字体名是可以改的,由于我在上一步的时候已经把自定义的字体名改成这模样了,所以是这样填的,如果你用的是其他的文件名的话,请对应修改

正如上文所说,有 fonts.properties, fonts.properties-3, fonts,properties-3-nocondensed 这样三个文件,都要做类似的修改。修改完了之后用 Unix 的 LF 换行格式保存。

对于不想装 Notepad++ 的 Windows 用户或是懒人,这里有一份我已经改好的配置文件,解压后覆盖即可……不过前提是你的自定义字体文件名和我的命名方式一样。点此下载:fonts-conf-wzyboy.tar.gz

重启 Kindle 的 Framework

这时候算是基本大功告成了,重启 Kindle 即可应用新字体。不过 Kindle 的完全重启(Settings - Restart your Kindle)时间有点长,所以 Fonts hack 中提供了只重启 Framework 的方法,即在拔掉 Kindle 之前,在 linkfonts 目录下面新建一个名为 reboot 的空文件。如果 Windows 用户不方便新建无扩展名的空文件的话,可以原地复制粘贴一下 autorebooot 这个文件然后再重命名为 reboot,它就是一个空文件……

这个文件建立之后,再拔掉 Kindle,就会看到屏幕左下角有一行字 Restarting framework... 过会儿就会重启完成,应用新字体了。这样比完全重启方便一些,也更快一些。

换回拉丁字体

上文说了,由于我不仅要在 Kindle 上阅读中文书籍,还会阅读英语和德语的书籍,所以对拉丁字体的要求也比较高。而 Fonts hack 把原生的拉丁字体给换掉了!Serif(衬线)字体由 PMN Caecilia 换成了 Droid Serif,而 Sans Serif(无衬线)字体则由经典的 Helvetica 换成了 Droid Sans。后者的替换我没意见,反正我不用无衬线字体的,而前者的替换……令人发指。Droid Serif 实在是太丑了,跟中易宋体中的拉丁字符有得一拼……绝对不如原生的 PMN Caecilia 好看,所以我要换回去。有与我类似需要的同学可以继续读下去,不看英文书的可以跳过……

换回去的方法挺简单,在 linkfonts/backups 下面那些 Caecilia 开头的文件就是原生的 Serif 字体了。这里我被弄糊涂过,经过一些试验,我确认那八个字体中只有四个是原来的拉丁字体,另外四个带Cond 字样的是紧密版的(即在 Aa 中选择 condensed 之后调用的字体)。对应关系如下:

Caecilia_LT_75_Bold.ttf → Serif_Bold.ttf
Caecilia_LT_76_Bold_Italic.ttf → Serif_BoldItalic.ttf
Caecilia_LT_66_Medium_Italic.ttf → Serif_Italic.ttf
Caecilia_LT_65_Medium.ttf → Serif_Regular.ttf

按照这样的对应关系把它们复制、替换掉 linkfonts/fonts 里的字体,然后再用上一节“重启 Kindle 的 Framework”中的方法,即可应用新字体。

六、成果

于是,就这样,搞定了。

再一张:

如截图所示,连目录中也是中文衬线字体(状态栏里的标题也是),也有各种样式的区别。为此我特意做了一个 mobi 文件,用来检验成果:Lorem ipsum – wzyboy.mobi.tar.gz

如果你在完成上面的所有步骤之后,也能显示出这样的画面,那么,你成功了:

但是始终觉得截图不能显示出 Kindle 真正的美丽,照片才行……为此我拍了好多张像本章章首图那样的照片……真的是像纸一样清晰可读。

七、尾声

我花了近一个月去折腾,又花了三天时间写成本文,算是符合“用心写作”的概念了吧。这是博客搬家到 VPS之后的第一篇文章,会是对 VPS 的一次压力测试吗?希望是的。

希望这篇文章对越来越多的 Kindle 中文用户有用。

补充:如想在 Kindle Keyboard 上输入中文,可参考《Kindle 3 安装中文输入法》。目前只能用拼音……不能用五笔。

欢迎转载,转载请注明出自:http://wzyboy.im/post/736.html。谢谢合作。

 

[http://wzyboy.im/post/736.html]