我在《由.txt自製電子書.epub並傳入iPad的步驟》這篇教學文裡介紹過使用epubBuilder來產生.epub電子書檔案,使用Kindle後必須再用別的工具把.txt或.epub等格式的檔案轉換為Kindle支援的.mobi或.azw3的檔案,這個工具便是多功能的電子書轉檔軟體:Calibre–eBook Management。
Calibre有很多功能,本篇主要針對文字檔案轉換成.mobi或.azw3格式來分享心得,同時提及將檔案傳給Kindle的幾個方法。另外用到的軟體是文字編輯器EmEditor與MarkdownPad 2。轉換的策略是把.TXT做成Markdown格式,再轉換成Kindle接受的.mobi或.azw3格式。
用Calibre產生電子書並傳入Kindle的步驟
要把文字格式的檔案變成Kindle能使用的檔案,一般可以依照下列順序執行:
- 使用文字編輯器整理.TXT檔內容
- 使用Calibre:加入書籍
- 使用Calibre:編輯元數據,所謂的元數據就是電子書的基本資料
- 使用Calibre:轉換書籍,在此指定輸入與輸出格式,並設定各項轉換參數
- 使用Calibre:連線分享,將電子書傳入Kindle
1. 文字檔案整理
使用.TXT檔案的原因當然是因為.TXT檔是網路上最容易取得的電子書格式,尤其是網路小說。以下是下載了.TXT檔案後的後製處理步驟,使用的文字編輯器是EmEditor,如果你想要免費的編輯器的話,可以試看看NotePad++:
- 將.TXT檔的編碼統一儲存為UTF-8不帶簽名(BOM)
- 用ConvertZ或MS-Word將簡體中文轉換為繁體中文,如果下載的是繁體版或習慣看簡體,自然就可以省略這個步驟
-
我不喜歡段落開頭的空白,以下列的規則運算式(Regular Expression,或譯為正規運算式)將開頭空白刪除:
- 尋找:^(空白)
- 取代為:(空字串)
- 說明:^符號表示設定開頭的文字才符號尋找對象;
(空白)是一或多個半形空白,若檔案裡是使用全形空白,則改為全形空白;
(空字串)就是空的內容,不輸入任何文字
-
有些書籍段落間沒有多空一行,我習慣要空一行:
- 尋找:\n
- 取代為:\n\n
- 說明:\n是換行符號,這個替換是把一個換行變成兩個換行。\n有時要用\r\n才行
-
有時書籍段落間的空行又過多,用下列方法刪除:
- 尋找:\n\n
- 取代為:\n
- 說明:把兩個換行變成一個換行
-
把引號換成台灣慣用的引號:
- 尋找: “
- 取代為:「
- 尋找:”
- 取代為:」
- 範例:把 “大王有令,停止前進!”改成「大王有令,停止前進!」
-
因為我們會優先使用文字的Markdown格式,再把書籍裡可能出現的一些Markdown特殊文字都改成全形:
尋找 取代為 說明 * * 半形的星號換成全形星號 - - 半形的減號換成全形減號 = = 半形的等號換成全形等號 # # 半形的井號換成全形井號 -
目錄章節替換:電子書沒有目錄要搜尋或變更位置非常不便,因此在轉換格式時最好一併將目錄也產生出來,但由於每本書的章節編法都有不同,替換時若對正規運算式有較多認識則比較容易依不同狀況來變化,以下是幾個常見的替換(參考:EmEditor How to: Regular Expression Syntax),以Markdown的 # 來定義階層:
尋 找 | 取 代 為 | 說明 |
---|---|---|
^卷(.*) | # 卷\1 | ^表示只對以「卷」開頭的段落有效; 把「卷三」取代為「# 卷三」,一個井號表示卷是第一階層 |
^第(.*)卷(.*) | # 第\1卷\2 | 把「第三卷 標題」取代為「# 第三卷 標題」, 「第01卷 標題」取代為「# 第01卷 標題」 |
^第(.*)節(.*) | ## 第\1卷\2 | 同上,卷變節。兩個井號表示第二階層 |
^([0-9]{1,3})(.*) | ## \1\2 | 開頭是1到3個數字的加上兩個井號, 把「001 標題」取代為「## 001 標題」 |
以上這些替換經常要做,我們可以將之寫成EmEditor的巨集腳本,則有新書要轉換時只要執行巨集就可以了。
腳本內容範例如下,可以將每次不同的替換逐步擴充,那麼日後需要手動再下正規運算式的機會就越少:
document.selection.Replace("“","「",eeFindNext | eeFindSaveHistory | eeReplaceAll); document.selection.Replace("”","」",eeFindNext | eeFindSaveHistory | eeReplaceAll); document.selection.Replace("^ ","",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("*","*",eeFindNext | eeFindSaveHistory | eeReplaceAll); document.selection.Replace("#","#",eeFindNext | eeFindSaveHistory | eeReplaceAll); document.selection.Replace("=","=",eeFindNext | eeFindSaveHistory | eeReplaceAll); document.selection.Replace("-","-",eeFindNext | eeFindSaveHistory | eeReplaceAll); document.selection.Replace("^第(.*)集 (.*)第(.*)章 (.*)","# 第\\1集 \\2\\n## 第\\3章 \\4",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^第(.*)卷 (.*)第(.*)章 (.*)","# 第\\1卷 \\2\\n## 第\\3章 \\4",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^正文 第(.*)章(.*)","## 第\\1章 \\2",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^卷(.*) (.*)","# 卷\\1 \\2",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^第(.*)卷 (.*)","# 第\\1卷 \\2",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^第(.*)集 (.*)","# 第\\1集 \\2",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^第(.*)章 (.*)","## 第\\1章 \\2",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^第(.*)節 (.*)","## 第\\1節 \\2",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp); document.selection.Replace("^([0-9]{1,3}) (.*)","## \\1 \\2",eeFindNext | eeFindSaveHistory | eeReplaceAll | eeFindReplaceRegExp);
2. 使用Calibre加入書籍
選擇整理好的檔案就能將之加入Calibre圖書館。
3. Calibre: 編輯元數據
元數據基本上可以不編輯,直接使用就可以,如果想要寫入更多資訊到輸出檔裡就可輸入需要的欄位,不過用下載元數據可以節省很多輸入時間,但網路小說很多都下載不到資料;如果是簡體書籍,建議由【偏好設定】→【元數據下載】把豆瓣網(Douban books)加進來,可以增加搜尋成功的機率。封面也可以Google找到圖片後,在【改變封面】→【瀏覽】選擇下載的圖片來當做封面。
4. Calibre轉換書籍
接著是轉檔的重點戲,以下是我的常用設置:
-
外觀與感覺:在過濾樣式資訊裡把樣式都打勾,表示產生的電子書不受輸入的HTML內的樣式影響
-
頁面設定:選擇輸入設備為Kindle Paperwhite
-
目錄頁是產生目錄的設定頁,分別把第1級目錄頁、第2級目錄頁與第3級目錄頁設定為 //h:h1、//h:h2與//h:h3,表示檔案裡有 #、##與###三個階層的標題。如果檔案裡只有##, 那麼把第1級目錄頁直接設成 //h:h2,第2與第3級目錄頁則清成空白。
-
輸入格式選用TXT,格式化樣式變更為Markdown
-
MOBI輸出頁籤的Kindle選項應選用old,both和new在Kindle裡的右邊界留白會變大,看起來版面不太舒服
-
Calibre在轉換Markdown格式的文字檔時經常會發生「轉換時發生錯誤」的問題,此時可以使用下列方法解決:
- 用工具(我使用的是MarkdownPad2)或線上轉換網頁把Markdown轉成HTML格式
- 用工具(我使用的是MarkdownPad2)或線上轉換網頁把Markdown轉成HTML格式
-
Calibre加入書籍時選用.html的檔案,Calibre會自動把.html包裝成.zip檔,再依上列要點轉換書籍為.mobi或.azw3
-
寄信到Kindle雲端時不能用.azw3的檔案,因此需要在其他設備上同步閱讀的電子書只能寄出.mobi檔,但Kindle的.mobi檔案無法指定行距等參數,在Kindle上閱讀時行與行之間的高度較小,如果你看不習慣的話,就無法使用同步的功能了。.azw3的行距則比較大,看起來比較舒服,但只能傳到Kindle本機閱讀。
5. 傳送檔案到Kindle
要把檔案儲存到Kindle裡有下列幾個方法:
- 使用USB連接:使用USB線連接後,電腦會出現Kindle磁碟,用檔案複製就能把檔案存到Kindle了
- 把檔案寄給「你的註冊帳號@kindle.cn」就可以。使用Calibre轉換書籍後,可以使用【連線/分享】選擇寄信選項。
-
由Calibre的【連線/分享】→【啟動內容伺服器】開啟Calibre的Web Server,接著我們就能由Kindle(或別的設備)瀏覽Web Server來下載需要的檔案
▼ 由工具列執行瀏覽器並瀏覽Calibre的網頁(以上面圖片為例,瀏覽網址是「http://192.168.0.102:8080/」)
▼ 瀏覽Calibre內容伺服器後可以下載Calibre圖書館裡的檔案
另外,【連線/分享】→【啟動無線裝置連線】目前只能配合Android App Calibre Companion使用。
##
您可能也會有興趣的類似文章
- Kindle Paperwhite新手入門簡易操作說明 (0則留言, 2014/12/28)
- 修改WordPress外掛讓Markdown與HTML格式並存 (0則留言, 2011/03/30)
- 使用EmEditor以特定編碼開檔的方法 (0則留言, 2014/03/21)
- 使用Markdown on Save外掛完美解決Markdown與HTML格式並存狀況 (2則留言, 2011/03/31)
- 跨平台的Markdown編輯器:Smark (0則留言, 2014/09/16)
- 帶iPad去旅行—行前準備篇+Markdown試用 (5則留言, 2011/03/05)
- Windows Markdown工具:MarkdownPad 2新版本登場 (0則留言, 2013/03/26)
- 如何將Markdown文件轉換成HTML? (1則留言, 2011/03/06)
- 使用Chrome應用程式StackEdit線上編寫Markdown文件 (0則留言, 2013/07/12)
- Java程式庫Markdown4J簡介 (0則留言, 2013/02/22)
- 與Evernote整合的線上Markdown編輯器:馬克飛象(Maxiang) (0則留言, 2014/04/23)
- 使用多平台的Markdown編輯器Haroopad,從此不用再把文件放到雲端 (3則留言, 2014/04/25)
- 國人寫的Windows Markdown記事本軟體:PureMarkdown (0則留言, 2013/02/14)
- 快速建立IntelliJ IDEA的Live Template的步驟 (0則留言, 2014/02/21)
- 快速產生HTML網頁格式的速記語法:Markdown (0則留言, 2013/09/20)