如何把 Kindle 电子书的横排文字改成竖排
横排和竖排是当前中文书籍的两种排版方式,我们都知道,竖式排版、从右向左阅读的方式源于古代的竹简书籍,是一个历史悠久的传统。而横式排版、从左向右阅读方式则是近代才发生的事,是西化产物。虽然如今的书籍出版横式排版是主流,但是传统的竖排版式有着上千年的传承,不可能被消除,对于佛经等书籍,也只有这种传统的纵排行文方式才能让人体会到其中意韵。
实现电子书文本的竖排并不复杂。简单讲,就是用 KindleUnpack 把 mobi、azw 或 azw3 格式的电子书拆解,对拆分出来的文件进行简单修改,比如修改 HTML 文档中的标点符号以适合竖排行文规范。然后修改其中的 OPF 文件实现从右向左翻页,修改 CSS 文件实现文本的竖排。如果是修改 ePub 文件则更简单了,一个 Sigil 就能搞定。最后再用 KindleGen 把修改后的这些文件重新打包成 mobi 格式。
下面以把 azw3 格式的《怎样读书》一书转换成竖式排版作为示例,列出具体步骤。
目录
一、准备软件工具
二、拆解电子书
三、文档预处理
1、修改电子书语言
2、修改翻页方向
3、修改标点符号
四、添加竖排效果
五、重新生成电子书
六、修改前后效果
七、其他实现方式
一、准备软件工具
如果你需要把 mobi、azw 或 azw3 格式电子书的内容修改成竖排请下载以下两款软件:
- KindleUnpack 下载:https://bookfere.com/tools#KindleGen
- Sublime Text 3 下载:
如果你需要把 epub 格式的电子书内容修改成竖排,请下载下面这款软件:
- Sigil 下载:https://bookfere.com/tools#Sigil
* 如果你需要修改的是 ePub 格式的电子书,则可以直接用 Sigil 软件编辑。下面提到的 OPF 文件、HTML 文件以及 CSS 文件都会显示在窗口左栏中,层次结构和 KindleUnpack 拆解出来的差不多。修改的内容也和下面所说的一模一样。如果你想要在 Kindle 阅读,也需要用 KindleGen 将其转换成 mobi 格式。下面的步骤中除了需要注意的地方有所提示,不再赘述对此格式的具体修改操作作描述。
然后还需要下载把修改后的文件重新打包成 mobi 格式的转换工具:
- KindleGen 下载:https://bookfere.com/tools#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{ ... }
中的属性插入已有的声明之中。
另外,需要检查所有 CSS 文件,看是否有与 -webkit-writing-mode: vertical-rl;
相冲突的声明,如 -webkit-writing-mode: horizontal-tb;
,如果有的话可以将其删除,或将其属性值 horizontal-tb
修改为 vertical-rl
。否则,可能会导致电子书无法在 Kindle 中正常打开。
五、重新生成电子书
接下来是使用 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。该软件默认即输出为竖排文字,可通过选项自定义为横版。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/204.html
“转换电子书格式”相关阅读
- KindleGen:亚马逊官方 Kindle 电子书格式转换工具
- Calibre使用教程之为电子书添加或修改封面
- EpubPress:把打开的多个网页转成一本电子书
- 如何把 KFX 格式转换成 MOBI 等其它电子书格式
- Kindle 漫画制作软件 ChainLP 简明教程
- Calibre 常用命令行工具详解之 ebook-convert
- Kindle Comic Converter:最简单的漫画转换工具
- 把 TXT 文档转换成带目录的 MOBI 格式电子书
- Kindle Comic Creator:亚马逊官方漫画转换工具
- Calibre 使用教程之为电子书添加更换字体
- 如何把 Kindle 电子书转换成增强型排版的 KFX 格式
- Calibre 使用教程之电子书繁体字转简体字
- Calibre 使用教程之转换电子书格式
- 亚马逊 Kindle Convert:纸质书无损转换电子书
- 如何将 AZW3 格式无损转换为 EPUB 格式并保持原有排版
竖排似乎有一个问题,就是标注的时候想从第一页的末尾标注到第二页开头,横排的时候可以一直在末尾按住拖动跳到下一页,但是竖排不会跳到下一页。只能反向操作,从第二页反过来标注,这时候会自动跳到第一页。
您好,該方法只在epub2.0起效,在epub3.0不起效。
你好,下载了一本台湾的竖排繁体epub电子书,通过calibre插件变成简体横版之后还是保存为epub,拿kindle看书,只能看目录的几张图片,查看目录还有,但是不能翻页,翻页就是目录的那几张图片,这是什么现象?怎么解决呢?
直接从calibra编辑图书然后重复第三和第四步,保存之后即可
按照网上教程制作的竖排电子书放入kindle,发现上下边距很宽,左右边距很窄(基本上靠边缘)百度尝试了各种方法都无法解决这个问题。有强迫症。只能留言求助站长有没有好的办法。感谢。
参考一下这篇https://www.zhihu.com/question/298737845/answer/2508469010,看看能否解决页边距的问题