2018年11月9日

製作與轉換適合Kindle 8中文直書直排之Mobi格式電子書技巧大公開 for Mac

前情提要...先前提到一些電子書的相關資源,這篇將來說明一下如何將取得的橫式中文的電子書轉換為符合閱讀的直式中文,雖然目前多數的書籍或是電腦上的文章都是橫式閱讀,但是畢竟看傳統中文小說跟文章還是習慣直式的閱讀方式。這篇是收集網路上各種格式轉換與編排加上自己轉換的經驗與實例寫的技術文件。

本文會依照Kindle版本更新,隨時更動最新的使用方法。

以下是我的個人經驗,但每一本電子書都有不同的編輯方式,還是必須依照個案修正。

一、相關的軟體與工具:


  1. 電子書閱讀器:Amazon Kindle 8
  2. 橫排格式(Mobi , ePub , azw3 -> ePub)與簡繁轉換工具軟體 - Calibre for Mac
  3. ePub 電子書格式編輯軟體 - Sigil for Mac
  4. Amazon 原廠提供的ePub轉Mobi 格式專用軟體 KindleGen for Mac
  5. Windows 的用戶也都有以上三個軟體,操作方式大同小異,亦可參考之!

二、Calibre 直排中文與簡繁轉換:


通常入手的檔案最好是ePub格式那是最佳的,若不是ePub格式只好用軟體轉換成為ePub格式,以下將用實例來解說如何轉換格式和簡體轉繁體:

在這裡會用到的是「轉換書籍」、「編輯詮釋資料」、「編輯書籍」這三個部分。
也可以在轉換書籍時編輯詮釋資料,手動把簡體改為改為繁體字。



步驟一:在轉換設定中加入Extra CSS:


Extra CSS 如下:
@page{
margin:5%;
}

/*強制使用Kindle內建繁體字型for 5.9.7*/
@font-face {
font-family: "songti";
src: local("Song T")   
}
@font-face {
font-family: "Heiti";
src: local("MYing Hei T")   
}

/*強制使用Kindle內建繁體字型for 5.10.1.1*/
@font-face {
    font-family: "songtiTC";
    src: local("STSongTC"), local("st"), local("st"), local("SongTi"), local("Songti"), local("Songti"), local("Songti SC"), local("Songti TC"), local("STSongti"), local("STSong"), local("Song S"), local("STBShusong"), local("TBMincho"), local("HYMyeongJo"), local("DK-SONGTI")
    }
@font-face {
    font-family: "HeitiTC";
    src: local("STHeitiTC"), local("ht"), local("STHeiti"), local("STHei"), local("MYing Hei S"), local("TBGothic"), local("Heiti"), local("Heiti SC"), local("Heiti TC"), local("DK-HEITI")
    } 
@font-face {
    font-family: "KaiTC";
    src: local("STKaitiTC"),local("kt"), local("KaiTi"), local("STKaiti"), local("STKai"), local("Kaiti"), local("Kaiti TC"), local("Kaiti SC"), local("DK-KAITI");
    }
@font-face {
    font-family: "YuantiTC";
    src: local("STYuanTC"), local("yuan"), local("STYuan"), local("Yuanti"), local("Yuanti SC"), local("Yuanti TC")
    } 

body{
-epub-writing-mode: vertical-rl;   /*直式設定 for epub*/
-epub-line-break: normal;          /*斷行設定 for epub*/
-webkit-writing-mode: vertical-rl; /*直式設定*/
-webkit-line-break: normal;        /*斷行設定*/
line-break: strict;                /*斷行設定,參數(normal , auto , strict)*/
writing-mode: vertical-rl;         /*直式設定 for Kindle*/
line-height: 1.4;                  /*控制行間距(可忽略)*/
text-indent: 2em;                  /*首行空兩格*/
margin: 3%;
}

[進階] 某些橫書的標點符號會使用類似英文模式的例如:‘ 和 ’ 在中文直排直書中會有問題,所以必須改成,可以在這裡先行處理或是到後面使用Sigil處理都可以。後面繁簡轉換時雖然幫你轉換部分符號,但是實際操作時發現這兩個不會轉換。


步驟二:完成後,使用「編輯書籍」的Plugin - Convert Chinese Simplified to Traditional,並選取全部文件來進行簡繁文字轉換,到這裡大致完成一半。

簡繁轉換時請注意一下選單內容如下,③轉換符號部分有些符號無法轉換,例如:‘ 和 ’ 

[2018.6.24補充]Text Direction 可以轉換括號橫排-->直排



[Plugin安裝]在「偏好設定」-「取得外掛讓Calibre變得更強大」


三、Sigil 編輯ePub格式:

主要這裡有三個檔案需要處理 content.opf, page_styles.css 和 stylesheet.css

1. 在 content.opf 中要搜尋修改這三個部分,也就是轉換直排中文的關鍵之一

這部分非常重要!非常重要!非常重要!
若有一個部分沒改好或是錯誤就影響繁體中文直排的樣式。

①變更「繁體中文直排與標點」與「Kindle左右邊界留空
搜尋<dc:language>zh</dc:language>改為
<dc:language>zh-tw</dc:language>

②是設定由「左往右的直排格式
通常是搜尋不到這部份,直接在<dc:language>zh</dc:language>下一列加入即可

<meta content="vertical-rl" name="primary-writing-mode" />

③是變更「翻頁方向由右至左
搜尋<spine toc="ncx">改為
<spine page-progression-direction="rtl" toc="ncx"> 

[2018.4.18 補充]:在Sigil裡面可設定常用的Code「片段」來快速變更這些修改的部分。
(還是要手動插入替換喔!)





2. page_styles.css 部分

主要是字型跟上下邊距的設定,依照每本書不同需求稍微更改在步驟一已經利用Extra CSS置入Kindle所需要的參數,大致如下即可,因為還是要根據每一本電子書的設定不同來修正,進階部分還可以設定某段落使用自訂的內建不同字型。

[2018.06.24補充]Kindle系統5.9.6.1版本後可以自訂使用者字體,但僅限沒有CSS為設定字體的文字,如後設定自訂使用者字體可參考後文:適合Kindle直排中文的中文字型」一文

[2018.11.04更新]Kindle系統5.10.1.1版本更新了繁體字型為四種字體宋體、黑體、楷體、圓體,可以自行更換未CSS被強制設定字型的文字,若編輯書籍時需強制使用這四種字體時可參考以下設定。



@page {
margin: 5%;
}

/*強制使用Kindle內建繁體字型for 5.9.7*/
@font-face {
font-family: "SongTi";
src: local("Song T")
}
@font-face {
font-family: "Heiti";
src: local("MYing Hei T")
}

/*強制使用Kindle內建繁體字型for 5.10.1.1*/

@font-face {
    font-family: "songtiTC";
    src: local("STSongTC")
    }
@font-face {
    font-family: "HeitiTC";
    src: local("STHeitiTC")

    } 
@font-face {
    font-family: "KaiTC";
    src: local("STKaitiTC")
    }
@font-face {
    font-family: "YuantiTC";
    src: local("STYuanTC")
    } 

若有需要用到內建的橫式中文的四種字體宋体、楷体、黑体、圆体可以在自行加入建議使用在直排中的無標點的標題[註:在Kindle 5.10.1.1 此問題已經不存在。]


@font-face {
font-family: "STSong";
src: local("STSong"),
}
@font-face {
font-family: "STKai";
src: local("STKai")
}
@font-face {
font-family: "STHeiti";
src: local("STHeiti")
}
@font-face {
font-family: "STYuan";
src: local("STYuan")
}

[補充資料]Kindle系統內建字體英文名
繁體字體名:STSongTC(宋體)、STHeitiTC (黑體) 、STKaitiTC(楷體)、STYuanTC(圓體)
簡體字體名:STSong (宋体)、STHeiti (黑体)、STKai (楷体)、STYuan (圆体)
[Kindle內建繁體字型for 5.10.1.1]
繁體字體名:Song T (宋體)、MYing Hei T (黑體)  [Kindle內建繁體字型for 5.9.7]

3. stylesheet.css 

這部份比較複雜一點,特別是遇到用多看或是其他高階CSS編輯過的電子書。
每一本書都有不一樣的CSS設定,這裡只講幾個重點,會CSS的就容易了解。大概看懂這幾個就可以應用。
  • font-family: SongTi;  – 字型設定:電子書中需要在不同標題或是特別之處要用與本文不同的字體時可用font-family來設定該部分的字體
  • font-weight: bold; – 粗體字在Kindle在直排繁體中文有四種字體,可使用粗體來增加文章變化
  • margin: 3% 2em 3%;  – 邊距設定:上/左右/下 寬度,依照每本設定不同需要微調
  • line-height: 1.4;  – 行距設定:個人覺得比較舒適的寬度
  • text-indent: 2em; –  首行縮進兩個字元,主要套用全篇或是本文中
  • text-align: left | right | centre | justify; – 文字對齊方式靠上/下/置中/左右貼齊
通常我會一面修正一面查看電子書的內容去查出文章內那個段落搭配那一些CSS指令,善用Sigil 的Preview功能邊改邊修。

最後,檢查一下看看有沒有遺漏的部分或忘記修改的部分。

如果轉檔時目錄有問題時,請檢查 TOC.ncx 這個設定目錄的檔案,可以利用Sigil 內建的[工具]->[目錄]->[產生目錄](⌘ T)來重建,它會依照H1 H2 H3 H4 等等標題設定來產生目錄。有時也要注意有些書中會完全沒有使用H1 H2...等等來設定標題,這時候若是產生目錄會有大問題。只能用手動修改目錄。

沒有問題後就可以用KindleGen轉檔為Mobi檔案後傳入Kindle中再檢查看看有沒有需要再修正的地方,有時候在電腦上看到的與Kindle上看到的會不一樣。

[提醒]轉檔後的Mobi檔若是放入(Kindle App)非實體的Kindle電子書中是無法實現中文直書直排的樣式。

四、使用KindleGen轉檔


方式一:入門

下載KindleGen後解壓縮,開啟Mac的應用程式Terminal(終端機),將解壓縮後的應用程式KindleGen拖曳到Terminal畫面中,再將要轉檔的book.ePub檔案用同樣的方式拖曳到Terminal畫面中,按下enter,即可轉檔,若成功會產生book.mobi檔案在相同的路徑下。
Windows  的用戶也是可以使用此方式轉檔。

方式二:進階

使用 Applescript 建立服務建立半自動化,首先開啟Automator建立一個自動化服務。
若不了解可以參考Youtube 的影片:https://youtu.be/JX9eXSKwLmc



依照下圖①到⑤順序建立服務,貼上底下程式碼後存檔為「KindleGen 轉檔 ePub to Mobi」或是自行命名亦可。

[Note!!!]我是將KindleGen 程式放在路徑/Applications/KindleGen 這裡,若路徑不同請自行更改底下程式碼內的路徑即可。

[2018.4.18更新]:把原先設定的路徑“/Applications/KindleGen/kindlegen”改為“/Applications/KindleGen”並附加“-dont_append_source”,原先截圖畫面與程式碼會有不同,請以程式碼為準。


on run {input, paramenters}
 set posix_path to POSIX path of (input)
 tell application "Terminal"
  activate
  do script "/Applications/kindlegen -dont_append_source " & posix_path & " " in window 1
 end tell
 return input
end run

使用時先開啟Terminal程式(新版可以不用先開),要轉檔的ePub放置在桌面(Desktop)或是文件(Document)的目錄中(只要目錄沒有空格應該就可以),點選該檔案後按右鍵(或雙指輕點)跳出選單選擇服務可以看到剛剛存檔的名稱「KindleGen 轉檔 ePub to Mobi」,就可以輕鬆轉檔。
[注意!!!]ePub檔名或放置的目錄不可以有空格否則無法轉檔!!!



測試沒問題後,把製作好的「服務」複製到路徑 ~/資源庫/Services 下。(2018.04.18 補充說明)




[2018.4.18更新]建議將這個服務建立系統快捷鍵來快速轉檔,通常我是這麼處理的。


完成轉檔後將Mobi檔案使用USB傳輸線將檔案傳入Kindle的documents目錄中,最後就可以來看看轉檔後成果。

歡迎加入Telegram Group 繁體中文直排電子書交流(Epub,Mobi)

轉檔後成果:
[小秘訣] Kindle 8截取螢幕畫面,同時點左上右下對角或右上左下對角即可截取畫面。