如何把 Kindle 電子書的橫排文字改成豎排

橫排和豎排是當前中文書籍的兩種排版方式,我們都知道,豎式排版、從右向左閱讀的方式源于古代的竹簡書籍,是一個歷史悠久的傳統。而橫式排版、從左向右閱讀方式則是近代才發生的事,是西化產物。雖然如今的書籍出版橫式排版是主流,但是傳統的豎排版式有著上千年的傳承,不可能被消除,對于佛經等書籍,也只有這種傳統的縱排行文方式才能讓人體會到其中意韻。

實現電子書文本的豎排并不復雜。簡單講,就是用 KindleUnpack 把 mobi、azw 或 azw3 格式的電子書拆解,對拆分出來的文件進行簡單修改,比如修改 HTML 文檔中的標點符號以適合豎排行文規范。然后修改其中的 OPF 文件實現從右向左翻頁,修改 CSS 文件實現文本的豎排。如果是修改 ePub 文件則更簡單了,一個 Sigil 就能搞定。最后再用 KindleGen 把修改后的這些文件重新打包成 mobi 格式。

下面以把 azw3 格式的《怎樣讀書》一書轉換成豎式排版作為示例,列出具體步驟。

目錄

一、準備軟件工具

二、拆解電子書

三、文檔預處理

1、修改電子書語言

2、修改翻頁方向

3、修改標點符號

四、添加豎排效果

五、重新生成電子書

六、修改前后效果

七、其他實現方式

一、準備軟件工具

如果你需要把 mobi、azw 或 azw3 格式電子書的內容修改成豎排請下載以下兩款軟件:

如果你需要把 epub 格式的電子書內容修改成豎排,請下載下面這款軟件:

* 如果你需要修改的是 ePub 格式的電子書,則可以直接用 Sigil 軟件編輯。下面提到的 OPF 文件、HTML 文件以及 CSS 文件都會顯示在窗口左欄中,層次結構和 KindleUnpack 拆解出來的差不多。修改的內容也和下面所說的一模一樣。如果你想要在 Kindle 閱讀,也需要用 KindleGen 將其轉換成 mobi 格式。下面的步驟中除了需要注意的地方有所提示,不再贅述對此格式的具體修改操作作描述。

然后還需要下載把修改后的文件重新打包成 mobi 格式的轉換工具:

二、拆解電子書

如果你需要修改的是 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.opfstyle0001.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-horizontal-lr

修改完成后的豎式排版效果:

kindle-vertical-rl

七、其他實現方式

以上,是 Kindle 電子書橫排變豎排的基本原理,當然如果你懶得手動修改這些文件,也可以選擇其他可將這些工作自動化完成的工具。下面列舉目前可用的橫排轉豎排的工具,可以自行試用:

  1. 天火藏書排版系統

    天火藏書排版系統是一套電子書直書系統,可以將目前常見的 TXT/ePub/Mobi/AZW/AZW3 和 Palm PDB 文檔重新排版成直排形式的 PDF/ePub/Mobi 文檔,非常適合六吋電子書閱讀器閱讀。

  2. 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

相關推薦

發表評論

微信掃一掃

微信掃一掃

微信掃一掃,分享到朋友圈

如何把 Kindle 電子書的橫排文字改成豎排
返回頂部

顯示

忘記密碼?

顯示

顯示

獲取驗證碼

Close
香港开奖直播开奖记录