kindle下英文书的mobi资源很多,但是中文版的mobi资源很少,大多需要自己制作来完成。自从拿到kindle后,很是折腾了一把,小有心的,和大家分享一下。帖子的内容主要集中在如何通过calibre来自制mobi格式的书籍,集中在txt到mobi的过程
需要使用到的软件
- calibre, 下载地址 http://calibre-ebook.com/download
- kindle for pc, http://kindleforpc.amazon.com/30427/KindleForPC-installer.exe 用来检查输出后的效果,calibre内置的阅读器速度太慢。
- 一个好一点的文本编辑器,要支持两个功能:regex(正则表达式)和unicode格式转换功能,我现在用的是emeditor
- 文本处理/排版工具软件
- GIDOT TYPESETTER, http://www.gidot.net/typesetter/
- Textforever,可能会用到,主要用于html文件到txt的整理工作 http://www.comicer.com/stronghorse/software/index.htm#TextForever
我在这里举几个例子大家,按照我的步骤操作一下,你基本上就会使用calibre了
第一个例子
话说我今天早上想起来,突然想看一本武侠小说,于是就去到一个我经常逛的网站:
好读,
这个网站以精排版的电子书闻名。好,我们随便挑一本书,古龙的《欢乐英雄》(http://www.haodoo.net/?M=Share&
P=0604)。好读支持的格式是PDB的,但是pdb的格式不能在kindle上直接打开,需要转换。先装一个pdb for
calibre的插件,http://kanru.github.com/calibre-haodoo/。
我们在calibre当中把下载的pdb文件拖到calibre中去,点击工具栏上的“convert books", 左上角是输入格式,右上角是输出格式,如果你需要不高的话,直接点击ok,就是直接转成了mobi格式了
好的,我们用kindle for pc打开刚才转换好的书,看看效果。
虽然在转换的过程当中完美地将TOC(目录)输出,但是从kindle for pc里面看到的效果有两点我不太满意,
- 繁体,看起来还是有点费劲
- 首行没有两字缩进
看来还是需要自己动手,重新排版一下,好吧,这次我们选择输出成txt格式的
用emeditor打开转换好的txt文件,发现还存在问题
ok, 把文件拷贝到GIDOT TYPESETTER中去,选择左下角的“简体字”,再点击工具栏中的“排版”,然后再拷贝回emeditor中去。
经过GIDOT TYPESETTER排版的文本特点:
为什么我要强调中文空格呢?calibre在转换的时候会自动忽略首行缩进的掉半角空格,为了保证首行两字缩进,我们用全角空格来控制
好,下面我们对排版好的文本进行处理。
好的书是自带toc(目录),所以我们要在txt当中加入标记,让calibre在转换的过程当中遇到相应标记时自动生成toc。
calibre支持txt中的markdown
(http://daringfireball.net/projects/markdown/syntax,
什么是markdown,请自己google)语法标记。简单来说calibre可以生成三级目录,每一级目录标记可以使用html当中
h1,h2,h3....等等。而使用markdown语法在txt格式当中进行html标识时,每一行开头以# (#空格)对应h1, ##
(##空格)对应h2,以此类推。
ok,我们现在就需要在每一章标题前面加入#或者##,在emeditor当中按ctrl+h,
在寻找栏中填入\s\s第(一|二|三|四|五|六|七|八|九|十|百|[0-9])+(章)\s+.*,这是正则表达式的语法,\s表示空格,
\s\s表示两个空格,
(一|二|三|四|五|六|七|八|九|十|百|[0-9]),表示在第和章之间只要符合(一|二|三|四|五|六|七|八|九|十|百|[0-9])里
面任一个字符即可,.*表示任意字符,所以\s\s第(一|二|三|四|五|六|七|八|九|十|百|[0-9])+(章)\s+.*表示只要以两个空格
开始的第(*)章后面跟空格的任意文字串
在替换栏中输入##\0, ##是h2的表示, \0表示寻找到符合正则表达式的字符串。点击replace all,所有章节名前面都加入了##标记
好,下一步我们来保存。calibre在转换中文文档时需要是unicode格式,我们在emeditor中file-->save as,在下面的encode当中选择unicode 8即可
在calibre删除掉刚才的pdb格式的欢乐英雄,然后把刚刚保存的文本文件拖到calibre当中去,点击工具栏的convert books
先编辑书籍的基本信息,metadata,kindle是读取mobi的metadata的信息的,不管你的mobi文件名是什么。
书籍的封面,我一般去douban找
点击look&feel, 选中”Remove spacing between paragraphs", 这个选项确保在转换过程中去掉段与段之间的空行。
本来拍过版的text段间是没有空行的,但是为了保险起见,我们还是选中这个选项的好。
如果不选中这个选项,原有的段间空行会被保留,且首行缩进通过indent size来控制,这是单位是em,不大好刚刚好控制在两个汉字的标准(因为kindle当中的字体是可以放大缩小的),所以我们通过排版,在每行首行前加入两个全角空格来保证首行缩进
page setup这里面没有什么好设置的,因为epub, lit, mobi都会随着屏幕的大小、字号的大小来自动调整,我们还是循例选择kindle
structure dection这里选择默认的,唯一要注意的就是下方的insert page breaks before... 默认的设置是在h1,h2标记前加入强行分页符,如果你不想这样的话,自己修改
table of contents, 设置目录项的标识
因为这次我们处理的文件只有一层目录,而且以## (h2)来进行标识,我们在level 1 toc里面填入//h:h2,如果有两层目录的话,那么就在level2 里面填入对应的//h:h1, //h:h3之类的tag
txt input里面一定要选中两个:
treat each line as paragraph, 把输入当中的文本文件当中每一个回车符前的内容当作一段来处理(注意,不是屏幕上显示的一行行文字,因为窗口大小是可变的)
process using markdown, 把输入文本当中的markdwon标记进行处理
mobi output, 没有什么设置的,可以选的就是title for table of content改成目录
点击ok,转换。然后在kindle for pc当中打开看看效果
我比较喜欢每一章的标题位置居中,好,我们更改一下设置
calibre支持css,我们点击工具栏的convert books,然后在look&feel的extra css当中加入h2
{text-align: center; font-size: large; padding-bottom: 20pt;}
css的语法请查阅http://www.w3schools.com/css/default.asp
calibre中的css可以借鉴一下http://amalthia.mediawood.net/tutorials/ebooks/look.html 里面介绍了一些技巧很是不错
传书
从calibre往kindle 里面传书有两种方法
一种是在calibre里面点击工具栏的connect /share ---> start content server,
然后在kindle3的浏览器当中输入地址http://x.x.x.x:8080,
x.x.x.x是calibre所在机器的ip,点击书籍对应的mobi链接,下载到kindle中去
另外一种就是用usb线连上kindle,在calibre当中选择书籍,选择右键,send to device, 已经传好的书前面有个绿色的钩子标记
从calibre往kindle 里面传书的第三种方法(只适合已经注册的 Kindle):
1、设置 Kindle 邮箱,最好设成 @free.kindle.com 邮箱以免3G收费
2、设置 epub 格式送到 Kindle 之前自动转换成 mobi 格式
3、鼠标右键点击一本书后,选菜单 Connect/Share / Sending email to ...