Ubuntu 9.10
Python 2.6.4
Sphinx 1.07
rst2pdf 0.16
sudo aptitude install build-essential python-setuptools python-sphinx python2.6-dev texlive-full sudo easy_install -UZ PIL sudo easy_install -UZ reportlab sudo easy_install rst2pdf
でSphinxのドキュメントをPDFにしようとすると次のエラーがでる。
AttributeError: BuildEnvironment instance has no attribute 'domains'そんな値ねーよ!って怒られる。
色々調べてみたけど、どうしてもコレが解決しなかったのでrst2pdfの最新ソースみてみた。
pdfbuilder.py
これの227行目。
if indices_config and hasattr(self.env, 'domains'):超ドストレートな修正が入ってた(;゚Д゚)
という分けでソースを直に編集する。
sudo vi /usr/local/lib/python2.6/dist-packages/rst2pdf-0.16-py2.6.egg/rst2pdf/pdfbuilder.py
OK、通った。
で続いて
too many values to unpackというエラーが出るのでこれに対処する。設定ファイルであるja.jsonを編集する
"embeddedFonts" :とするとこのエラーは消える。
[[
"VL-Gothic-Regular.ttf",
"VL-PGothic-Regular.ttf",
"ipam.ttf",
"ipag.ttf",
"ipagp.ttf", ←削除する
"ipamp.ttf" ←削除する
]],
次は
[ERROR] pdfbuilder.py:129 FragLine instance has no attribute 'lineBreak'というエラー。これもソースコードが問題っぽい。
これもソースコード修正すれば行けるっぽい
sudo vi /usr/local/lib/python2.6/dist-packages/reportlab-2.5-py2.6-linux-i686.egg/reportlab/platypus/paragraph.pyで335行目付近を以下の様に編集
# simple = last or abs(extraSpace)<=1e-8 or line.lineBreak ←オリジナル。コメントアウトする
simple = last or abs(extraSpace)<=1e-8 or getattr(line, 'lineBreak', False) ←追記する
でOK。 後Sphinxで使うCSSを編集したい場合は
/usr/share/sphinx/themes
/usr/local/lib/python2.6/dist-packages/Sphinx-1.1-py2.6.egg/sphinx/themes
以下にCSSがあるんでそれをいじる。或いはここに作った奴を配置する。 blockdiagを入れる。
sudo easy_install sphinxcontrib-blockdiagでconf.pyに以下の2つを追加する。フォントはTrueTypeである必要有り
extensions = ['sphinxcontrib.blockdiag'] blockdiag_fontpath = '/usr/share/fonts/truetype/ipafont/ipagp.ttf'以下の様に書けば図が出来る
.. blockdiag:: diagram admin { top_page -> config -> config_edit -> config_confirm -> top_page; }
0 件のコメント:
コメントを投稿