2012年2月5日 星期日

[Kindle] 使用Calibre來建立中文的分類 - Kindle Collections plugin

雖然Kindle keyboard有鍵盤, 但也只能輸入英文, 因此也沒辦法建立中文的分類, 有時候還蠻頭痛分類的命名

自從買了Kindle後, 還蠻常用Calibre的, 不過很慚愧的是, 常用它來轉文件卻很多功能都沒去發現到, 今天為了想改個Kindle的字型, 才發現它很多好用的plugin可以用, 其中一個就是Kindle Collections plugin

安裝的方法:

_2012-02-06_12
---->

_2012-02-06_12

----> Get a new plugin

然後找到Kindle Collections安裝即可

裝好後可能會沒看到任何東西, 所以必須要去Preferences -> Toolbar設定

選擇"The main toolbar when a device is connected", 從左邊找到Kindle Collections把它放到右邊去, 這時候當你Kindle連上電腦後就可以看到這樣的按鈕在toolbar上:

_2012-02-06_12

它提供的功能包含讓你從Calibre同步分類過去, 也可以手動編輯分類, 我不想同步, 所以我用到的只有手動編輯

另外值得一提的是它有一個"Modify Kindle Settings"的功能, 可以讓你在不用Jailbreak下換字型 (這也是我今天最主要的目的):

_2012-02-06_12

在做這件事之前, 必須先在你Kindle的根目錄開一個"fonts"的目錄並把你的ttf字型檔放進去(檔名格式是xxx-Regular.ttf, xxx-Bold.ttf)

我還蠻喜歡Android ICS的蘿蔔頭(Roboto)字型的, 不過早上弄了半天一直不成功, 後來才發現, Roboto只有英文字型, 如果在中文書內改變字型, 就會跑回預設設定, 也就是原先預設的字型

解決的方法就是要合併中文字型進去, 在Android中, 中文字型是放到DroidSansFallback.ttf去了, 這時候可以用fontforge來合併字型

這邊有提到怎做:

  1. http://7thgen.info/blog/2008/07/merging-font-with-fontforge/
  2. http://fontforge.sourceforge.net/scripting.html

 

Open($1 + ".ttf")

SelectAll()

ScaleToEm(1024)

Generate("temp.ttf", "", 0x14)

Close()

Open($2 + ".ttf")

SelectAll()

ScaleToEm(1024)

MergeFonts("temp.ttf")

Generate("new_" + $2 + ".ttf", "", 0x14)

Close()

 

 

因為Roboto除了正常字體外還有粗體, 斜體, 粗斜體等等字型檔, 我不太確定只合併一個夠不夠, 所以小改了 1 裡面提的script, 假設把上面的script存成merge.pe , 執行的方法如下:

fontforge -script merge.pe DroidSansFallback Roboto-Regular

依序再把其他字型合併

這是正常改成Roboto的結果:

Screen_shot-57283

按"Aa"鍵可以挑字型, 這時候你可以看到字型設定在"alt", 這方法的缺點是, 千萬別改成其他字型, 要不然設定又會跑回預設, 也會找不到"alt"

中文字型也有比原先好看點, 但我還不是很滿意, 之後再來試試其他字型:

Screen_shot-57285

但選單的字型是不會跟著改的, 還是原來的:

Screen_shot-57286

 

 

最後....上面Kindle的screenshot是怎抓的? "Alt + ↑ + G"