因緣和合 · 方有此系統
「緣起」者,謂諸法因種種因緣相合而生。天火藏書排版系統之所以成立,亦由諸多因緣牽引而起;其後歷年增補,亦記於下。
緣起本文
緣起(梵語:प्रतीत्यसमुत्पाद,pratītyasamutpāda),一切有為法,皆因種種因緣和合而成,此理即為緣起。任何事物都因各種條件相互依存而處於變化之中。天火藏書排版系統之所以產生,也正是因為種種因緣配合,才有了這套系統。
數位世界變動很快,而且勢不可擋。1991 年 MP3 發明後,十年內便席捲全世界;二十年後的今天,數位音樂已成為主流。過去許多抗拒數位音樂的公司與團體,也無法阻擋數位潮流的推進。
數位相機也是如此。1995 年消費型數位相機出現後,市場迅速成長;十年後,使用軟片的相機已經很少見。到了今天,高階單眼相機也大多數位化,數位相機更普遍內建於手機與平板電腦之中,每年銷售數量早已超過十億台。這同樣是一股無可阻擋的趨勢。
電子書的潮流,我想也應該是一股無法避免的趨勢。Amazon 於 2007 年推出第一部 Kindle 後,電子書成為主流的戰爭便已開始。2011 年,在 Amazon 網站上,電子書的銷量已經超越實體書。事實上,如今已不再是電子書與實體書之間的戰爭,而是電子書與電子書之間的競爭。從軟體規格到硬體規格,各家廠商都競爭得相當激烈;電子書與雲端服務綁定的策略,也宣告了這將是一場贏者全拿的戰爭。未來會如何,現在尚不可知,也許五年後便能見到結果。
然而,在電子書的戰爭之中,中文書似乎仍未受到足夠重視。目前市面上的電子書軟硬體,對中文書的友善程度實在相當糟糕,連一套像樣的直書閱讀系統都很難找到。中文書由右而左的直排閱讀,是長久以來養成的習慣;然而到了現在,電子書只要能夠正確顯示中文,似乎就已經值得感謝神了。
自從購入第一台 Kindle 4 後,對於無法由右而左直排閱讀一事,我一直感到相當無奈。尋覓之下,發現日本也有相同的問題,並且已有相關網站提供許多解法;可惜日文環境與中文環境畢竟仍有差異,無法完全套用。於是在萬般無奈之下,只好決定自己寫一套系統,並製作成網站版本,供網友使用。天火藏書排版系統,便是在這樣的情況下產生的。
個人對排版本來並不熟稔,只好開始鑽研 LaTeX;然而相關環境仍舊相當不友善,許多部分最後只好自己動手處理。用上了一切會的程式語言,以及原本不會的程式語言,總算拼湊出這套系統。
天火藏書排版系統是一套將 TXT 轉換為 PDF 的直書排版系統,適用於中文直書排版。當然,它的功能不只如此。中文文字編碼本身便相當複雜,因此系統最後統一轉為 UTF-8 處理,並加入編碼偵測、繁簡互轉、文章校對以及直書排版等功能,將這些工作整合成一套較為方便使用的系統。
其中,光是標點校正、中英混排與斷行處理,就花費了相當多的功夫。雖然雛型只花了一個星期便完成,但前前後後大約仍花了一個月的時間,才逐漸接近較為完善的形態。
希望大家使用愉快。
寫於 2011 · 12 · 01
後記與增補
-
2012八月 · 卅一
新增 ePub 與 ZIP 轉直書 PDF
為使用方便,又補上了 ePub 轉 PDF 直書以及 ZIP 轉 PDF 直書的功能,並新增許多特別排版用的標籤語法。此外,章節目錄與插圖功能也陸續完成,整套系統總算大致成形。
事實上,這些功能完成之後,我又寫了一些小程式,希望能更方便地處理電子書;待整理完成後,這些功能也會陸續上線。支援 ePub 格式,主要是因為目前多數電子書皆以 ePub 格式存在,其本身具備章節與標籤系統,更適合進一步處理;至於 ZIP 格式的支援,則主要是為了日文電子書,例如青空文庫格式,以及自訂排版時的使用需求。
-
2012十二月 · 廿一
新增 MOBI 與 ePub 直排輸出
這套系統誕生約滿一年後,Kindle Paperwhite 與 iPad Mini 相繼出現。Paperwhite 支援了完整的縱書功能,iBooks 3 也開始支援直排。面對這些新的變化,原有僅提供 PDF 的功能,已不完全符合大家的需要。因此,我花了許多時間,將 MOBI 直排與 ePub 直排的功能一併寫了出來。
其實,ePub 直排可說是 MOBI 直排的副產物。原本的打算是直接支援 KF8,不過稍微修改後,同樣也能適用於 ePub,因此便一併推出。其中最重要的,是字型重組以及縮小 MOBI 檔案體積的部分,這些都花費了相當多的時間撰寫與處理。
希望未來電子書能夠全面走向直排的世界。
-
2013九月 · 初三
支援 Google Play 圖書
這套系統誕生約滿兩年後,Google Play 圖書進入台灣。為了支援這套系統,又重新開始修改程式。由於其原生字體的表現實在慘不忍睹,因此花了不少時間處理相關問題;不過總算讓三大系統的支援都大致齊全了。
不論是 Kindle、iBooks,或是 Google Play 圖書,都可以使用本系統進行轉換,讓你的閱讀不再受到限制。
-
2015一月 · 廿二
新增 MOBI 輸入與 DRM 偵測
這套系統誕生約滿三年後,原本以為不會再有任何重大修改了。然而,隨著時代的推進,使用 MOBI 格式的書籍逐漸增加,因此又花了大量時間,加入 MOBI 格式輸入的支援,並提供自動檢查 DRM 的功能。
如此一來,使用者便不必先透過其他軟體將 MOBI 轉換成 EPUB,再交由本系統處理,省去了不少時間與麻煩。根據記錄看來,這套系統似乎每年都會有一次重大更新,不知道下一次又會增加什麼功能。
希望大家能多多支持中文直排電子書,也歡迎將本系統介紹給更多人使用。
-
2026五月 · 廿四
近乎全面性的改寫
這套系統誕生十餘年後,自 2025 年開始,又重新進行了一次近乎全面性的改寫。由於過去的架構已經過於老舊,許多設計也難以因應現在的使用需求,因此決定重新以 Docker 建立整體環境,讓系統日後能更方便地移植到新的機器上;同時使用 Gunicorn 建立 API 模式,為未來的擴充與整合預先打下基礎。
這一次的改寫,幾乎重寫了所有程式。過去透過 LaTeX 製作 PDF 的方式已不再使用,改為自行撰寫所需的排版與轉換模組,盡可能減少依賴第三方程式所造成的相容性與維護問題。前前後後重寫了數萬行程式碼,網站介面也重新設計,繁簡轉換功能亦重新整理,並加入新詞抽取的處理方式,以提升轉換結果的正確性。
此外,系統也引入 Markdown 作為文件正規化處理的中間格式,讓不同來源的內容能以較一致的方式進行整理與轉換,使整套系統的功能又向前推進了一步。對 EPUB3 的支援也重新完成,不僅能完整處理直排內容,字型處理的部分也不再透過 FontForge,而是由系統自行處理,使結果更加精準而穩定。
過去為了達到直排效果,曾經需要自行修改字形或替換標點符號;如今則盡可能保留原有文字與標點的樣貌,在不任意改動內容的情況下,仍能得到合適的直書閱讀結果。一路走來,這套系統的目的始終沒有改變:希望中文電子書能夠更自然、更方便地以直排方式閱讀。