KINECTセンサープログラミングを書いたときに挫折したSphinxに、再度トライしてみました。
今回は、これ用の資料です。実践セミナーなので、スライドのほかに手元にテキストがあるといいかなぁと思い作っています。
結論から言うと、Sphinxにハマりました(詰まってるんじゃなくて、クセになるほうのw)。しばらくはこれで遊んでそうです。
せっかくなので、Sphinxに関して自分がやったことをまとめたいと思います。
大まかには次の項目です(環境はWindows 7)。
最初に読むといいサイト
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内(C:\Python27\Lib\site-packages\reportlab-2.5-py2.7-win32.egg\reportlab\platypus\paragraph.py)でエラーが発生するので、少しいじります(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で環境を作ったからか、こちらの変更も必要でした
- http://netmark.jp/2011/08/sphinxrst2pdftypeerror-get-language-takes-exactly-2-arguments-1-given.html
#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" }] ] }
設定
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