Commentary on the Sixth Edition UNIX Operating SystemをKindleで読もうず

Kidleでよむお!

先日,見かけたエントリー( 初めてのOS source code reading(UNIX 6th source code readingのススメ) )で,

UNIX 6thは初めてOSのソースコードを読む人にうってつけ! 今すぐ読み始めましょう!

と書いてあったので,なんか開発者なら読んでおかないといけないような強迫観念にさらされたので,ちょっと読んでみようかと思いつつです.

さて,いざ読もうかと思いつつ,さすがに予備知識無しに特攻するのもあれなので,参考文献に挙げられている,Commentary on the Sixth Edition UNIX Operating Systemを,まずは読むことにします.

ただ,iPadにPDFを入れても,なんか文字小さいし,これは最近はやりの電子書籍端末で読まないといけない気がしたので,Kindleに入れて見ることを試みてみましたと.

ちなみに,Commentary on the Sixth Edition UNIX Operating Systemは,PostScript, PDF, TeXフォーマットでしか提供されていなかったので,TeXをどうにかEPUB,そしてmobiフォーマットに変換する必要がありますです.

それなら!と探してみたところ,Pandocというツールが発見されました. これは,

Pandoc can read markdown and (subsets of) reStructuredText, textile, HTML, and LaTeX, and it can write plain text, markdown, reStructuredText, HTML, LaTeX, ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki markup, textile, groff man pages, Emacs org-mode, AsciiDoc, Microsoft Word docx, EPUB ebooks, and S5 and Slidy HTML slide shows. PDF output (via LaTeX) is also supported.

と書いてあるとおり,マークアップ系だいたいを相互に変換できるっぽいみたいなので,TeXをEPUBに変換してみますた.

とりあえず,PandocをInstallingを参照しながら,インストールしてですね.

インストールが終わったら,Commentary on the Sixth Edition UNIX Operating Systemのページから,gzipped tarballをダウンロードしてきてですね,それを解凍して,ディレクトリ内で次のコマンドを打ちます.

ダウンロード先に移動してー

$ cd ~/Downloads/

作業ディレクトリを作ってー

$ mkdir lionc

解凍して

$ tar zxvf original.tar.gz -C lionc

移動して

$ cd lionc

変換します

$ pandoc -r latex -w epub -o lionc.epub lionc.tex

ところがですね,ch12.texが文字コードの問題で落ちます.

pandoc: ch12.tex: hGetContents: invalid argument (invalid UTF-8 byte sequence)

僕は,ch12.texをvimで開いて,set fileencoding=utf-8とかして回避しました.

いざ,気を撮り直して,コマンド打ちます.

$ pandoc -r latex -w epub -o lionc.epub lionc.tex

どうでしょう,lionc.epubが出来れば完成ですよ.

あとは,Kindleに入れるとしたら,kindlegenで変換するだけです.

と安易に思って変換しようと

kindlegen lionc.epub

と打ってみたら,

Error(prcgen): The book title was not set. Please set the title before generating the mobi.

と怒られたので,EPUB内部の書籍情報を追記しないといけないっぽいです. たぶん,pandocで変換するときに,TeX内にあるtitle的なところを変更しておけば,よかったような気もしますが,ここはどうにか押し通します.

一時展開ディレクトリを作ってー

$ mkdir tmp

展開してー

$ unzip lionc.epub -d ./tmp

移動してー

$ cd tmp

書籍情報を編集してー

$ vim content.opf

んで,

<dc:title></dc:title>

とかなってる空白な要素を

<dc:title>Commentary on the Sixth Edition UNIX Operating System</dc:title>

のような感じに書き換えます. そいで,もう一度EPUBにアーカイブします.

$ zip lionc.epub *

最後にkindlegenでmobiに変換します.

$ kindlegen lionc.epub

これでlionc.mobiというファイルが出来ましたので,Kindleに転送すればいい感じで読めます.

お疲れ様でした.