如何把 Kindle 电子书的横排文字改成竖排
更新时间:2018-10-06 分类:阅读杂记 浏览量:7386
横排和竖排是当前中文书籍的两种排版方式,我们都知道,竖式排版、从右向左阅读的方式源于古代的竹简书籍,是一个历史悠久的传统。而横式排版、从左向右阅读方式则是近代才发生的事,是西化产物。虽然如今的书籍出版横式排版是主流,但是传统的竖排版式有着上千年的传承,不可能被消除,对于佛经等书籍,也只有这种传统的纵排行文方式才能让人体会到其中意韵。
实现电子书文本的竖排并不复杂。简单讲,就是用 KindleUnpack 把 mobi、azw 或 azw3 格式的电子书拆解,对拆分出来的文件进行简单修改,比如修改 HTML 文档中的标点符号以适合竖排行文规范。然后修改其中的 OPF 文件实现从右向左翻页,修改 CSS 文件实现文本的竖排。如果是修改 ePub 文件则更简单了,一个 Sigil 就能搞定。最后再用 KindleGen 把修改后的这些文件重新打包成 mobi 格式。
下面以把 azw3 格式的《怎样读书》一书转换成竖式排版作为示例,列出具体步骤。
目录
一、准备软件工具
如果你需要把 mobi、azw 或 azw3 格式电子书的内容修改成竖排请下载以下两款软件:
- KindleUnpack 下载:KindleUnpack 下载传送门
- Sublime Text 3 下载:
如果你需要把 epub 格式的电子书内容修改成竖排,请下载下面这款软件:
- Sigil 下载:Sigil 下载传送门
* 如果你需要修改的是 ePub 格式的电子书,则可以直接用 Sigil 软件编辑。下面提到的 OPF 文件、HTML 文件以及 CSS 文件都会显示在窗口左栏中,层次结构和 KindleUnpack 拆解出来的差不多。修改的内容也和下面所说的一模一样。如果你想要在 Kindle 阅读,也需要用 KindleGen 将其转换成 mobi 格式。下面的步骤中除了需要注意的地方有所提示,不再赘述对此格式的具体修改操作作描述。
然后还需要下载把修改后的文件重新打包成 mobi 格式的转换工具:
- KindleGen 下载:KindleGen 下载传送门
二、拆解电子书
如果你需要修改的是 mobi、azw 或 azw3 格式的电子书,需要先将其拆解为原始文件。这里是用 KindleUpack 将电子书进行拆分(如果还不会使用这款软件,请参考《KindleUnpack:拆解 Kindle 电子书文件的利器》这篇文章)。比如我们的示例电子书“怎样读书.azw3”,拆分后的结构如下所示:
├──── HDImages
├──── mobi7
├──── cover00088.jpeg
├──── image00048.jpeg
├──── ……
├──── image00092.jpeg
├──── mobi8
├──── META-INF
├──── container.xml
├──── OEBPS
├──── Fonts
├──── Images
├──── cover00088.jpeg
├──── image00048.jpeg
├──── ……
├──── image00092.jpeg
├──── Styles
├──── style0001.css
├──── Text
├──── cover_page.xhtml
├──── nav.xhtml
├──── part0000.xhtml
├──── ……
├──── part0015.xhtml
├──── content.opf
├──── toc.ncx
├──── Zen Yang Du Shu (Taiwanese_chinese Editio - Hu Shi.epub
├──── mimetype
虽然看上去文件乱糟糟的有很多,但无需紧张,我们只需要修改其中的两个文件:content.opf 和 style0001.css(上表中红色带下划线的文件)以及批量替换 xhtml 文档内容中的标点符号(上表中蓝色带下划线的文件)即可。其他的文件不用管它。
三、文档预处理
首先我们需要对上面标有红、蓝色带下划线的那些文件进行必要的修改:
1、修改电子书语言
使用 Sublime Text 打开 content.opf 文件,找到下面这行代码:
<dc:language>zh</dc:language>
将其修改为如下所示代码:
<dc:language>zh-tw</dc:language>
这样做的好处是,Kindle 会自动将横排标点转换为竖排标点,并且会自动居中,较为美观。但需要注意的是,Kindle 中只预置了“宋體”和“黑體”两款繁体字体,所以更改语言后也只有这两种字体可选。
2、修改翻页方向
同样修改 content.opf 文件,找到下面这行代码:
<meta name="primary-writing-mode" content="horizontal-lr" />
将其修改为如下所示代码:
<meta name="primary-writing-mode" content="vertical-rl" />
这样就能实现电子书从右向左翻页的效果了。
* 如果打开 OPF 文件后没有找到 <meta name="primary-writing-mode" content="horizontal-lr" />
这一行代码也没关系,只需要把 <meta name="primary-writing-mode" content="vertical-rl" />
这行代码添加到任意一个 meta 标签的前面或后面即可。
3、修改标点符号
更改所有 XHTML 文档中的标点符号可以使用 Sublime Text 的批量替换功能。依次点击 Sublime Text 菜单“Find -> Find in Files…”调出文件查找替换功能,点击“where”输入框后的【…】按钮,在弹出的菜单中点击“Add Folder”,在弹出的对话框中选择刚才拆解出来的“Text”文件夹。
在“Find”输入框中输入被替换的标点符号,在“Replace”输入框中输入替换后的标点符号,点击【Replace】按钮开始替换。按照下面所示的替换关系依次替换。替换时 Sublime Text 可能会打开所有被替换的文件,所以最后不要忘了点击菜单中的“File -> Save All”保存全部文件。
- “ 替换成「
- ” 替换成 」
- ‘ 替换成『
- ’ 替换成 』
如果用 Sigil 修改 ePub 电子书,批量替换的时候注意“模式”那里的第二项要选择“所有HTML文件”。
* 注意:“ 或 ” 一定要用中文引号。如果你觉得标点符号没有更改必要也可以忽略此步骤。
四、添加竖排效果
接下来是修改 CSS 文件,添加几个样式以实现文本竖排以及页边距的微调。比如本例中修改的是 style0001.css。打开 CSS 文件,在文件的最上面添加下面的样式代码:
body {
margin: 5%;
text-align: justify;
-webkit-writing-mode: vertical-rl;
}
其中 margin
控制页面的左、上、右、下边距,text-align
控制强制文本上下两端对齐,-webkit-writing-mode
控制文本竖排显示。另外,如果打开 CSS 文件后,发现已经有了 body{ ... }
或 html{ ... }
这样的样式声明,也可以只把上面代码 body{ ... }
中的属性插入已有的声明之中。
五、重新生成电子书
接下来是使用 KindleGen 重新打包修改后的文件,如果你还不会使用 KindleGen,请参考《 Kindle Previewer 和 KindleGen 官方转换工具》这篇文章,有详细的使用步骤。
打开命令提示符,先把 KindeGen 拖到命令提示符上(Mac OS X 上为终端,下同),再把刚才修改后的 OPF 文件拖到命令提示符上(注意两个路径间需要用空格隔开),按回车键开始转换。转换完毕后你会得到一个由更改后的文件重新生成的 content.mobi 文件,把它改下名(如果需要的话),然后拷贝或推送到你的 Kindle 中就可以看到修改后的竖排文本效果的电子书了。
对于修改后的 ePub 电子书也是同样的操作,打开命令提示符,现将 KindeGen 拖到命令提示符上,再把修改后的 ePub 文件拖到命令提示符上(注意两个路径间需要用空格隔开),按回车键开始转换。转换完毕后你会得到一个 mobi 文件,该文件既是实现竖排文本效果的电子书。
* 因为亚马逊的 KF8 标准电子书才支持如文字竖排这种 CSS3 属性的,所以最好使用最新的 KindleGen 重新转换修改后的文件。一定不要用 Calibre 软件中转换 mobi 格式的 old 模式,这种方式转换的是 mobi7 标准的 mobi 电子书,是完全不支持 CSS3 属性,自然也实现不了文本竖版效果。
* 用 KindleGen 生成的 mobi 格式电子书推送后无法显示封面。
六、修改前后效果
修改前的横式排版效果:
修改完成后的竖式排版效果:
七、其他实现方式
以上,是 Kindle 电子书横排变竖排的基本原理,当然如果你懒得手动修改这些文件,也可以选择其他可将这些工作自动化完成的工具。下面列举目前可用的横排转竖排的工具,可以自行试用:
-
天火藏書排版系統
天火藏书排版系统是一套电子书直书系统,可以将目前常见的 TXT/ePub/Mobi/AZW/AZW3 和 Palm PDB 文档重新排版成直排形式的 PDF/ePub/Mobi 文档,非常适合六吋电子书阅读器阅读。
-
AozoraEpub 3
AozoraEPUB 3 是一个可以将青空文库格式的纯文本电子书转换成 EPUB 的 Java 软件,自定义设定丰富,打包迅速,效果拔群,而且Windows/Linux/Mac OS X下都能直接使用,只要系统中安装有Java。该软件默认即输出为竖排文字,可通过选项自定义为横版。
如果你有更好的工具,也可以在本文底部留言推荐哦。
参考文章:
http://www.jebook.org/index.php/archives/238
http://www.zhihu.com/question/21234737