2011年11月09日
Sphinx 始めました
KINECTセンサープログラミングを書いたときに挫折したSphinxに、再度トライしてみました。
今回は、これ用の資料です。実践セミナーなので、スライドのほかに手元にテキストがあるといいかなぁと思い作っています。
結論から言うと、Sphinxにハマりました(詰まってるんじゃなくて、クセになるほうのw)。しばらくはこれで遊んでそうです。
せっかくなので、Sphinxに関して自分がやったことをまとめたいと思います。
大まかには次の項目です(環境はWindows 7)。
- Sphinxのインストール
- HTMLへの出力
- PDFへの出力
- ePubへの出力
最初に読むといいサイト
- Sphinxクックブック :: ドキュメンテーションツール スフィンクス Sphinx-users.jp
- 逆引き辞典 :: ドキュメンテーションツール スフィンクス Sphinx-users.jp
- 404 Not Found
- Sphinxをはじめよう :: ドキュメンテーションツール スフィンクス Sphinx-users.jp
- Sphinxのドキュメントサンプル:業務利用例 :: ドキュメンテーションツール スフィンクス Sphinx-users.jp
- Quick reStructuredText
Sphinxのインストール
こちらを参照しながら進めればOKです
僕のWindows環境にはだいたいTracLightningが入っているので、それに同梱されているPythonを使っています。
そのため、やることは「easy_install sphinx」だけです。便利です。
HTMLへの出力
これも難しいことはないです
Sphinxのフォルダで「make html」するだけです
PDFへの出力
一番手間取りました。おそらく設定がLinuxやMac OSになっていてWindowsとは違うことに起因していると推測しています。
#あ、表の項目が文字化けするので、解決策があれば教えてほしいです。。。
インストール
こちらを参考にしました
上記サイトではexeをダウンロードして入れてますが、全部easy_installでいけました
easy_install reportlab
easy_install PIL
easy_install rst2pdf
reportlabの修正
reportlab内でエラーが発生するので、少しいじります(thsnks こんぴろさん)。
# simple = last or abs(extraSpace)<=1e-8 or line.lineBreak ←オリジナル。コメントアウトする simple = last or abs(extraSpace)<=1e-8 or getattr(line, 'lineBreak', False) ←追記する
もう一つ修正
Pyton2.7で環境を作ったからか、こちらの変更も必要でした
#def get_language(language_code, reporter):
def get_language(language_code, reporter=None):
設定
こちらを参考にしました。
- conf.py
# -- Options for PDF output --------------------------------------------------
pdf_documents = [
('index', u'ne_academy', u'ne_academy', u'GEIS Co. Ltd.'),
]
pdf_stylesheets = ['sphinx','a4','ja']
pdf_font_path = ['C:\Windows\Fonts']
pdf_language = "ja"
# How many levels deep should the table of contents be?
pdf_toc_depth = 3
- ja.json
{
"fontsAlias" : {
"stdFont": "meiryo",
"stdBold": "meiryob",
"stdItalic": "meiryo",
"stdBoldItalic": "meiryob",
"stdMono": "meiryo"
},
"styles" : [
["base" , {
"wordWrap": "CJK"
}],
["literal" , {
"wordWrap": "None"
}]
]
}
ePubへの出力
とても簡単です。こちらの通りにやったらできました。できたものをiPhoneに突っ込んだら普通に読めてびっくりですw
設定
conf.pyの設定は上記を参考にしています
- conf.pyの例(転載)
project = u'エキスパートPythonプログラミング 10章サンプル' epub_title = project copyright = u'Packt Publishing 2008, ASCII MEDIA WORKS Inc., Copyright 2010' epub_author = u'2010, Tarek Ziade著、稲田直哉、渋川よしき、清水川貴之、森本哲也訳' epub_basename = 'expert_python_programming_sample' epub_language = u'ja' epub_publisher = u'Packt Publishing / アスキー・メディアワークス' epub_identifier = u'http://ascii.asciimw.jp/books/books/detail/978-4-04-868629-7.shtml' epub_scheme = 'URL' epub_tocdepth = 3
まとめ
マークアップを覚えるのが大変なのと、探しづらいのが難点ですが、とても書きやすい上に見た目もきれいにしてくれるのでモチベーションが上がります。
しばらくはSphinxでいろいろ書いてみようと思います。
購入: 15人 クリック: 690回
- 637 http://pipes.yahoo.com/pipes/pipe.info?_id=242f50e5030d8e9e73ce52013bcbf820
- 56 http://pipes.yahoo.com/pipes/pipe.info?_id=5ade92e9fff3fecb7d4f85da00c55ba8
- 22 http://t.co/us8emtv1
- 11 http://reader.livedoor.com/reader/
- 7 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCgQFjAA&url=http://d.hatena.ne.jp/kaorun55/20111109/1320810877&ei=Wch9T8SJOaTzmAXTuJjoCw&usg=AFQjCNERgSuwjxDGzfGwwxTnQ2FU1_U6TA&sig2=ZUJ92DDDqK5xw4Daq3YJzg
- 6 http://t.co/Cv8MWCpH
- 6 http://www.google.com/reader/view/feed/http://forza.cocolog-nifty.com/blog/atom.xml
- 5 http://www.google.co.jp/url?sa=t&rct=j&q=easy_install reportlab&source=web&cd=2&sqi=2&ved=0CCsQFjAB&url=http://d.hatena.ne.jp/kaorun55/20111109/1320810877&ei=vgLPTv-MM4nImQX_yqTYDQ&usg=AFQjCNERgSuwjxDGzfGwwxTnQ2FU1_U6TA&cad=rja
- 4 http://d.hatena.ne.jp/torutk/20110520/p1
- 4 http://t.co/VaDd6Quy










