Sphinx + blockdiag + seqdiag + nwdiag + actdiag でドキュメント書いて日本語PDFへ出力したメモ

Sphinxのインストール

Macであればhomebrewでインストールできますが、残念ながらそのままではPDF形式で書き出す時に日本語が使えません。既にインストール済みの場合はパッチを当てる事もできますが、ここはパッチ済みのものをインストールします。

なお、ここで使っている"easy_install"コマンドはPythonのパッケージ管理スクリプトです。MacOSXであればはじめからPythonが入っていますので、このコマンドは特に何もしなくても使えるはずです。

   $ easy_install https://bitbucket.org/sphinxjp/website/downloads/Sphinx-1.1.2sphinxjp-latex.tar.gz

Latexのインストール

Ubuntu Linux
aptで入れられます。なんか色々インストールしてようやく日本語PDF出力できるようになりました。
無駄な事もしてるかもしれませんが、とりあえずやったことまるっと書いておきます。

  $ sudo apt-get install texlive texlive-base texlive-latex3 \
                         platex-bin okumura-clsfiles ptex-base \
                         ptex-bin dvipsk-ja xdvik-ja ptex-jisfonts \
                         gs-cjk-resource jmpost dvipdfmx \
                         texlive-math-extra okumura-clsfiles \
                         jbibtex-bin mendexk
  $ sudo apt-get install texlive-latex-extra nkf dvipng
  $ sudo apt-add-repository ppa:texlive-backports/ppa
  $ sudo apt-get update
  $ sudo apt-get install texlive-lang-cjk
  $ sudo apt-get install xdvik-ja
  $ sudo apt-get install texlive-latex-extra
  $ sudo apt-get install texlive-fonts-recommended
  $ sudo apt-get install ttf-sazanami-gothic ttf-sazanami-mincho

MacOSX
Sphinxをインストールすれば、既にHTML等への書き出しはできますが、PDFに書き出すにはLatexが必要です。

MacではTexLive( http://www.tug.org/mactex/2011/ )をインストールすればLatexと各種付属コマンドが使えるようになります。

また、MacでのTexliveのインストール方法や各種設定は
Mac-Tex Wiki 奥村研究所
が詳しいです。


ここではTexLive-2011のトップページから最新のMacTexをダウンロードしてインストールします。

ダウンロードページ http://www.tug.org/mactex/2011/



blockdiagのインストール

blockdiagはブロック図生成ツールでSphinxと連携する事ができます。
blockdiagのインストールはeasy_installから行えます。

   # easy_install blockdiag

更にSphinxのblockdiag拡張をインストールします。

   # easy_install sphinxcontrib-blockdiag

seqdiagのインストール

seqdiagはシーケンス図生成ツールでSphinxと連携する事ができます。
seqdiagのインストールはeasy_installから行えます。

   # easy_install seqdiag

更にSphinxのseqdiag拡張をインストールします。

   # easy_install sphinxcontrib-seqdiag

nwdiagのインストール

nwdiagはネットワーク図生成ツールでSphinxと連携する事ができます。

nwdiagのインストールはeasy_installから行えます。

   # easy_install nwdiag

更にSphinxのnwdiag拡張をインストールします。

   # easy_install sphinxcontrib-nwdiag

また、シスコルータのアイコンを使用する為の拡張をインストールします

   # easy_install blockdiagcontrib-cisco

利用出来るアイコンは `シスコアイコン一覧 を参照してください。

追記

私のMacOSX環境ではシスコルータを使おうとすると"decoder jpeg not available"というエラーがでて使えませんでした。回避するには一旦PILを削除して入れ直します。

   # brew install libjpeg (既に存在するというメッセージが出る事を確認)
   # mv /Library/Python/2.7/site-packages/PIL-1.1.7-py2.7-macosx-10.7-intel.egg /tmp/
   # easy_install pil

actdiagのインストール
nwdiagはネットワーク図生成ツールでSphinxと連携する事ができます。

nwdiagのインストールはeasy_installから行えます。

   # easy_install actdiag

更にSphinxのactdiag拡張をインストールします。

   # easy_install sphinxcontrib-actdiag

以上でセットアップ完了。

sphinx-quickstartによるプロジェクト生成

プロジェクトの生成はコマンドで行います。

   $ sphinx-quickstart

いくつか質問されます。絶対に回答しなければならないのは、次の項目です。後はEnterキーだけで大丈夫です。

  • プロジェクト名
  • バージョン番号
  • 著者の名前

プロジェクトの初期設定

日本語PDFを書き出し、さらにblockdiag等によるダイアグラム拡張を有効にするにはプロジェクト毎に以下の設定を行う必要があります。

プロジェクトディレクトリの直下にあるconf.pyを編集します。

   # 言語の設定(既にあるので変更)
   language = 'ja'
   
   # LaTeX の docclass 設定(新規で追加)
   latex_docclass = {'manual': 'jsbook'}
   
   # Enabled extensions(既にあるのでblockdiag,seqdiag,nwdiag拡張を追加)
   extensions = ['sphinxcontrib.blockdiag', 'sphinxcontrib.seqdiag', 'sphinxcontrib.nwdiag', 'sphinxcontrib.actdiag']

   # Fontpath for blockdiag (truetype font) (新規追加する)

   # Mac OSXでOsakaフォントを使う場合
   blockdiag_fontpath = '/Library/Fonts/Osaka.ttf'

   # Ubuntu Linuxでsazanami-minhchoを使う場合
   blockdiag_fontpath = '/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf'

   # 以下共通
   blockdiag_antialias = True
   seqdiag_fontpath = blockdiag_fontpath
   seqdiag_antialias = True
   nwdiag_fontpath = blockdiag_fontpath
   nwdiag_antialias = True
   actdiag_fontpath = blockdiag_fontpath
   actdiag_antialias = True