星期五, 5月 25, 2012

中文直書與 Kindle DX

其實我在兩年前寫了關於 Kindle DX 如何閱讀中文小說的 blog,但是其實後來自己對於這樣子的方法不甚滿意,最主要的原因是。

用橫書看金庸感覺很怪 XD

但是我又是個懶人,於是這問題一直放著,一直到現在 iPad 或者是 Android 平板都有出相應的好讀網站閱讀軟體,我自己用 KDX 也是看英文居多,於是這問題就一直一直放著 ... 直到我開始看 "明朝的那些事兒"。剛開始我是用我自己的 ipod touch 看的 ... Orz,其實非常的耗時 (因為我翻了好多好多頁),後來索性再看看現在 KDX 破解的現況,KDX 現今可以看中文的破解,大抵上來說都是換掉內建的字體,比較好的可以做到英文字體是原本 KDX 內建,中文是黑體,也就是說,可以直接看中文的 mobi 檔,但是,它還是橫書 XD。只是那一瞬間覺得不能再懶下去了,所以乖乖來找解決方案。

如果自己不想去 hack KDX 但是又想看直書,最快的方法,把文字複製到 Word 上貼上,然後設定成直書之後輸出成 PDF 應該就解決了 XD 可惜我比較喜歡用 LaTeX ,所以就使用了一個簡單的方法: 在 XeLaTeX 上的 xeCJK package 配合 fontspec package 可以直接把字旋轉 90 度並中文輸出就可以了。最主要關於字型的設定如下


# use fontspect package
\usepackage{fontspec}
  
# use xeCJK package
\usepackage{xeCJK}     

# set CJK main font and rotate
\setCJKmainfont[Vertical=RotatedGlyphs]{Hei TC}

最主要的設定只有最後一行,其他的都是使用所需要的套件,於是乎,剩下的就是讀出內容,加上 header 和 footer 形成 tex 檔,然後 complie 生成 pdf 檔,丟到 Kindle DX 上,收工。


在 Kindle DX 上的效果如下圖,照片中所使用的字體是 "華康明體 Std W5",實際看起來對比照片略粗




為此,我自己寫了一個簡單的好讀網站的 pdb file 轉成 tex file 的小程式,也符上一個簡單的 XeLaTeX template,皆放在 github 上,如果有使用上的問題,歡迎留言或來信。


github: PDB-TeX-Converter


其中有幾點討論如下。

  1. 為什麼生出來的檔案沒有頁碼 ?
    頁碼在 LaTeX 直書排版上一直是一個很大的問題,但是 Kindle DX 本身就有頁碼,所以直接省略。
  2. 為什麼不讀 updb 檔 ?
    我嘗試搞了幾個晚上之後放棄,我對於編碼實在是不了解,如果可以,我會試試看。
  3. 如何使用 XeLaTeX ?
    這個要講要講很久,在 Mac OSX 上是安裝 MacTeX,在 Linux 上是安裝 TeXLive,在 Windows 上 ... 嗯,應該是 TeXLive,但是我沒研究 XD。如果你使用的是 Mac OSX 或者是在 Linux 從 package manager 直接安裝 TeXLive,這隻小程式在運作上應該不會有問題。目前已知在安裝好 MacTeX 2011 的 Mac OSX 上運作可直接生出 pdf 檔。
  4. 如何知道字體的英文名稱?
    首先,先行建立字體列表,在 command line 中輸入fc-cache -f -c -v接下來,在 command line 中輸入fc-list
    即可看到字體的相對應英文名稱,在上面的範例是 Hei TC,這其實就是 Mac OSX 中的 "黑體 TC"。


---
這個應該是很小眾的需求 XD。


2012/06/07 --- 根據 Josh Ko 的建議,還是使用直向直書模式,不過生出來的 pdf 需手動旋轉頁面。示範圖更新如上,代碼更新已上傳至 github 。

2012/08/08 --- 根據 anynomous 的建議,天火藏書排版系統是現有的方案,而我自己也已經建立了一個新專案為 convert2tex ,主要是可以把 epub/ txt/ pdb (限好讀網站格式)轉換成 tex 檔和支援簡體轉繁體。雖然現在已經是 stable,但還在補強中,修好就會上傳並說明關於這個專案。(可能會很久很久 XDXD)