Sphinx/graphviz/rst2pdf 連合との戦いの記録

Python入門者がSphinxでドキュメントを書こうとしてgraphvizやrst2pdf連携関連の不具合などをレポートしつつきれいなPDF出力を目指す戦いの記録
6
tk0miya @tk0miya

とりあえず pdf_use_toc = False, pdf_use_coverpage = False でハッピーになった。くさいものにはふた理論。 #sphinxjp

2010-08-23 17:55:01
tk0miya @tk0miya

pdf まわりのオプション、まとめたらハッピーになれそうな気がする。僕みたいに rst2pdf を知らないと特に。そういうのに手をかけてくれる副会長はえらいと思う。

2010-08-23 18:06:45
tk0miya @tk0miya

英語の BTS に投げるとか、僕の英語力ではできねー。投げ出していいすか。

2010-08-23 20:26:14
tk0miya @tk0miya

とりあえず投げておいた。意味がわからないって突っ込みがきたら識者に手伝ってもらおう。

2010-08-23 20:38:16
tk0miya @tk0miya

とりあえず rst2pdf の誤字が直ったみたい。

2010-08-23 23:16:41
tk0miya @tk0miya

todo_node の warning の件、なんかわかったような気がする。答えは CM …じゃなくてお風呂の後で。

2010-08-24 00:07:06
tk0miya @tk0miya

途中ちょっとかっ飛ばしたけど、直した。 RT @tk0miya: todo_node の warning の件、なんかわかったような気がする。答えは CM …じゃなくてお風呂の後で。

2010-08-24 00:54:33
tk0miya @tk0miya

todo_node の件レポートしといた。やっぱり英語がひどい。 http://bit.ly/a3CFgI

2010-08-24 01:04:36
tk0miya @tk0miya

あとはテーブルヘッダの日本語が化けるのと、ファイル分割してると TOC がちゃんと表示されない (index.rst の分だけ) って件か。後者は面倒だし pdf_use_toc でスキップしたい。

2010-08-24 01:06:45
tk0miya @tk0miya

明日誰かライティングの添削してくだちい。BTS 投げるにしても、中身が伝わらないとつらいし。

2010-08-24 01:10:49
tk0miya @tk0miya

テーブルヘッダの文字が表示されない件は ja.json に stdMonoItalic の設定がされていなかったせいでした。なんか今日一日で rst2pdf's stylesheet の読み方に強くなった気がする。

2010-08-24 01:40:38
tk0miya @tk0miya

眠いから TOC の件はまた今度。pdfbuilder.py の中で生成してるので、あとは toctree の取り方がわかればすぐ作れるね。

2010-08-24 01:52:58
tk0miya @tk0miya

PDF に出力したとき、セクションタイトルを numbered にするにはどうすればいいんだろう。toctree (numbered) を指定しているので HTML だとちゃんと表示されます。 #sphinxjp

2010-08-24 11:30:38
tk0miya @tk0miya

打ち合わせの隙間に rst2pdf の TOC 生成部分を斜め読みしてみたけど、sphinx の toctree の処理をそのまま持って行くのは厳しそう。toctree が生成したノードから TOC を生成するのがよいのかも。がんばれ、誰か。 #sphinxjp

2010-08-24 11:32:18
tk0miya @tk0miya

todo_node のパッチ、受け入れてくれたみたい。sphinx.style の変更がスキップされてるけど、これ当てないと文字とかぶっちゃうんだよね…。今は時間がないのであとでアピールしよう。

2010-08-24 11:40:37
tk0miya @tk0miya

なんか rst2pdf の人は優しいね。あの適当なポストにまともに対応してくれてる。戻ったら感謝の気持ちを込めてさらにツッコミ入れるよ。副会長がね!

2010-08-24 14:45:49
tk0miya @tk0miya

sphinx の外部 dot ファイルパッチが取り込まれてた。しかもキレイになってる。いいね。 http://bit.ly/cacywM #sphinxjp

2010-08-24 14:51:32
tk0miya @tk0miya

TOC の件解決。toctree-node の形式がどこかで変わったのが原因っぽいですな。やはり toctree directive で作った toctree-node を参照しているのだが、sphinx 側の構造変化に追従できてなかった模様。

2010-08-24 21:33:52
tk0miya @tk0miya

しかし、この tree node 探索はなんとかならんのか。xpath ぐらい使わせてくれ。if と for の繰り返しで掘り下げるのは可読性が落ちていかん。

2010-08-24 21:34:59
tk0miya @tk0miya

@shimizukawa こんなん RT してもおもしろくないっすよ。せっかくだから一緒に hack しましょうよ(わら pdf まわりは荒れ放題になってるので、手が必要っす。単に使ってみてダメなところ見つけるだけでもいいと思う。

2010-08-24 22:01:05
tk0miya @tk0miya

なんで sphinx は中間データをこんな形式にしたんだろう。ノード毎にクラスを作ってるので中身のないクラスが山積みになってる。これなら xml とそのパーサーのが結合度が落ちて、サードパーティのツールが入る余地があるとおもうのだが。 #sphinxjp

2010-08-24 22:07:20
tk0miya @tk0miya

ぱっと調べた限りだと、toctree node の中に numbered かどうかの情報が入ってないように見えた。でも、toctree ディレクティブの中では埋め込んでた。さて、どこに消えたんだろうか。

2010-08-24 22:10:45
Yoshiki Shibukawa @shibukawa

どちらかというとDocutils? RT @tk0miya: なんで sphinx は中間データをこんな形式にしたんだろう。 #sphinxjp

2010-08-24 22:12:14
Takayuki Shimizukawa @shimizukawa

@tk0miya とりあえずWindowsでがんばる…のは止めておくw FreeBSDで動くかな

2010-08-24 22:27:56
tk0miya @tk0miya

なるほど。docutils を知る人なら、案外読みやすいのかもしれませんね。 RT @shibukawa: どちらかというとDocutils? RT @tk0miya: なんで sphinx は中間データをこんな形式にしたんだろう。 #sphinxjp

2010-08-24 22:39:37