其實我本來想用個 EPUB for Dummies 之類的標題,但人家系列工具書其實還蠻厲害的,我就先不要這樣隨便開人玩笑好了。然而還是要說明這邊是很簡單的純文字書傻瓜製作方式,如果需要比較複雜的設計,還是找專門的電子書編輯比較好喔。
工欲善其事
這邊使用的都是免費的開源軟體,一個必要的一個選用的。由於開源軟體最怕作者沒錢不更新了,所以覺得好用又有機會的話,也可以考慮一下小額捐款喔。
- Sigil:必要的電子書製作與封裝軟體。官方網站:https://sigil-ebook.com/。官網上目前沒有看到捐款連結。
- Notepad++:選用的純文字編輯軟體,讓工作變好做變簡單用。官網:https://notepad-plus-plus.org/。接受 paypal 和比特幣捐款,位於 paypal 可捐款區域的人可以考慮一下小額贊助。(捐款頁面的幣值是美金喔。)
材料包
- 文字若干:既然是習作,就挖出你陳年壓箱底的好作品來曬吧!這裡我 demo 用好朋友的作品,做好給他當小禮物好了。
- 封面圖一張:習作用的 600 x 800 就好,如果要上架讀墨的話,建議尺寸是 1400 x 1964。為了避免讀檔案出錯,檔名請用純英文數字。
抓穩開始囉(使用Notepad++時)
有沒有用到 Notpad++製作的處理順序會有一點點不一樣,這邊先寫有用 Notepad++的作法。
- 打開 Notepad++,在「語言」選單選「html」。(不選直接往下做也可以,但選下去後面的工作畫面看起來會比較愉快。)
- 把你的內文貼進編輯區。如果文章自動換行了,從「檢視」功能表把「自動換行」項目取消變成沒有打勾。我們現在不需要看到全部的字。
- 如果像上圖一樣,文章分段之間有空行,移除空行。可以手動,也可以參照下面的方式用全部取代功能移除空行。如果分段之間沒有空行,直接跳到步驟 4.。
- 使用搜尋取代功能,左下角「搜尋模式」選「延伸」。
- 尋找「\r\n\r\n」,一鍵全部取代為「\r\n」。\r\n 是 windows 中判斷換行的代號,意思就是把換行兩次變成換行一次。要注意斜線的方向不要錯了。我這邊 demo 的圖檔「孩子……」那一行的空行多了一個空格而不是直接換行兩次所以沒改到,但看起來其他的都改成了。
- 接下來我們錄一個巨集。點「巨集」裡面的「錄製巨集」,然後做下面的動作。巨集錄一次,以後就可以一直使用了。
- 在內文開始的那一行最前面打<p>,然後按幾次「←」把游標移動回本行的最前面,再按一次「↓」把游標往下移動到下一行的最前面。
- 再到巨集選單點「停止錄製巨集」。
- 再點「儲存巨集」,把剛剛錄過的動作存起來,我這邊取名為「每行前加<p>」。儲存巨集的小視窗其實也可以自訂這個巨集用的快捷鍵,但我們這邊不用就不去動那塊。
- 接下來我們要執行巨集了,記得先把游標留在下一行一開始要執行動作的起點。選「重複執行巨集」。跳出來的小框框會有下拉式選單,選剛剛存好命名的那個,然後框框裡也會讓你勾選填空要執行幾次,或直接執行到檔案結尾。選「執行至檔案結尾」。這樣應該每一行開頭都有<p>標籤了。
- 接下來做微調。這篇故事有分層標題,也有真正的空行(空段落)。手動把大標題用<h1></h1>標籤夾起來;第二階的標題用<h2></h2>標籤夾起來,如果有更小的標題就以此類推。空段落我們在<p>後面放一個全型空格,或高檔一點,放一個「不換行空格符」,用字串「 」表示。
這邊標籤或符號用字串的顏色都是軟體自己辨識的。這也是為什麼一開始「語言」的地方要選對。然後有沒有注意到代表段落的<p>標籤都還沒有關起來?這個等等我們讓 Sigil 來自動關起來。
- 已經大部分處理完了,接下來開 Sigil 軟體,開新檔案,有 EPUB2 和 EPUB3 兩種可以選,建議選新的 3。
- 看到中間的編輯畫面了嗎?把剛剛在 Notepad++ 裡面做的東西全部複製,貼到 <body> 和 </body>標籤之間。(把它預設的那個<p> </p>刪掉或取代掉。)
- 然後記得我們剛剛的<p>標籤都沒有尾巴嗎?從「工具」選單裡「重新格式化HTML」,點「修復並美化所有HTML檔案」,就會自動補上尾巴的</p>了。
- 接著在同一頁裡找到位於<head>標籤裡面的<title>標籤,在<title></title>裡面寫上標題,在這邊是「龍與洞窟法庭」。
- 然後是生成目錄。可以從「工具」選單找,也可以從快捷列的目錄圖示點下去即可。
- 點下去之後程式會自動辨認之前上的各層級標題標籤(h1, h2…),產生一個視窗問你哪些要放進目錄裡,就把要的不要的勾一勾,點「確定」就生成完畢。
- 接下來找左手邊「書本瀏覽器視窗」,選那個「nav.xhtml」的檔案,把這個檔案<h1>標籤中間的「Table of Content」改成中文的「目錄」。
- 然後點「工具」裡的「新增封面」。目前我們的電子書裡沒有任何附加檔案,所以跳出來的視窗是空的,右上角有一個「其他檔案」的按鈕。戳下去就可以找出你原本準備好的檔案,選下去點「確定」。就自動生成一個封面頁囉。
- 這個 demo 只有分節沒有分章,但是如果你有分章節,那麼 Sigil 軟體有一個「從游標處分割」按鍵,可以把整本在一個檔案切成一章一章,自動複製前面的表頭。再逐章修改<title>標籤裡的頁面名稱即可。(如果要插入CSS檔案做細節調整,要先做完後面 17、18 條的 CSS 匯入設定再來割,空的檔案也沒關係。)
- 到這邊,在書本瀏覽器裡把幾個檔案用滑鼠拉成合邏輯的順序封面→目錄→內文,存檔出來,其實就是一個一般閱讀器可以看的電子書檔案了。但是我這邊接下來要再來增加一點細節。因為圖檔實在很佔位,下面的說明就不貼圖了。
- 「工具」裡面的中繼資料編輯器,點下去預設有「語言」、「標題」、「修改日期」三個欄位,把它們改一改,另外編輯器上的「增加中繼資料」按鈕可以增加更多諸如「作者」、「出版商」、「介紹」、「類型」等等有的沒的,請隨意填寫。
- 首行縮排,需要用到 css 功能。css 引入網頁的方法有三種,但我們這篇不是全面教學,所以只講一種。回到主要內容那一頁(Section0001.xhtml),找到<head>標籤,在<head></head>之間找個位子(<title></title>的前面或後面都可以),把下面這一行貼進去。意思是這個檔案(章)的排版指示全部都參照 content.css 這個檔案。
<link rel="stylesheet" type="text/css" href="../Styles/content.css"/>
- 但是這個檔案還不存在,所以我們在左手邊的書本瀏覽器,Styles資料夾上面點滑鼠右鍵,選「新增空白樣式」,把新增的 .css 檔案重新命名成 content.css。
- 打開 content.css,目前應該是完全空白的。我們要告訴網頁針對段落(p)元素有什麼指示。我要在這邊放進手行縮排二個字,以及行高是字元的 140%。方法如下面編碼。/**/包起來的部分是給人看的註解,保證自己記得/看得懂的話,不要也沒關係。在這邊存檔就是有首行縮排的電子書了。
/* 段落設定 */
p {text-indent: 2em; line-height: 140%; }
- 直排的設定。中文書當然要直排啊,不然呢?直排的設定有兩個步驟,設定直排、設定右翻。先設定直排。在 content.css 裡面加上下面第一個框框裡的這段。
- 由於 html 標籤比我們剛剛寫過的 p 標籤大(上層),所以建議放在比剛才的 p {} 更前面,不過實際上放前或後都不影響作用。另外因為不是每個字體的標點符號轉直排都好看,所以我們要指定字體。如果所有內容都只要用同一種字體的話,一樣指定在 html 裡面就好了。
- 字體指定的順序是電腦會嘗試先套第一個,一旦這台沒有安裝這個字形,就套用下一個。我這邊寫在前面的華康青花黑體大概大部分人電腦裡沒有,所以會顯示後面的新細明體。不過這是讀墨閱讀器的預設字形,所以如果放到讀墨就可以正確顯示為黑體。
- 右翻的設定。打開書本瀏覽器最下面的 content.opf 檔案,用搜尋功能找到<spine>標籤。把 <spine>標籤的引號裡面加一點東西變成如下面第二個框框。
/* 轉直排、統一字體指定 */
html {
padding: 0;
margin: 0;
writing-mode: vertical-rl;
-webkit-writing-mode: vertical-rl;
-epub-writing-mode: vertical-rl;
-epub-word-break: normal;
word-break: normal;
-epub-line-break: strict;
line-break: strict;
font-family: 華康青花黑體, 新細明體;
}
原本
<spine>
變成
<spine page-progression-direction="rtl">
- 這時候我們發現這本書的第二級標題是半形英文,直排會變成橫躺的英文字。如果不在意就不管它,存檔即可。如果在意的話,回到 Section0001.xhtml,把 part ABC的三個標題改成中文與全型字母的案件ABC。重新跑一次目錄生成。
- 存檔喔耶!(如果要上傳讀墨的話可以再依照讀墨的指引文件稍微修改一下,我印象要改的東西沒有很多,大致上是目錄檔的檔名之類。因為這邊就先不寫了。)
如果不用 Notepad++
那麼前面1~6的步驟都要在 sigil 檔案的<body></body>標籤之間手動完成。Sigil也有搜尋取代,但不知道能不能搜斷行符號,而且似乎沒有巨集錄製的功能。
我之前玩過一陣子,還真的是在Sigil裡面手動慢慢刻……
Notepad++ 真的很棒!