Sphinxで簡単なフローとかを書く時にblockdiagを使うことがある。ただ、blockdiagは、フォント設定をしておかないとSphinxのビルド時にエラーになってしまう。
しかも、フォントの設定はMac・Linux・Windowsでパスも使うフォントも違う。そこで、Sphinxのconf.pyを使って、OSごとにフォント設定を変える方法を紹介。
追記
この記事を公開後、Twitterで作者さんからもっと便利な対処方法を教えていただきました。そちらの方が便利なので、以下の方法をお勧めします。@tk0miyaさんありがとうございました!
blockdiag_fontpath = [ 'C:\WINDOWS\Fonts\MEIRYO.TTC', '/Users/mas/Library/Fonts/meiryo.ttc', '/etc/alternatives/fonts-japanese-gothic.ttf', ]
blockdiag_fontpathは配列が指定できるので、分岐せずに全部指定するのがお勧めです。ファイルが見つからない場合はスキップします。 RT @mas0061 ブログ書いた →SphinxのblockdiagでOSごとに… goo.gl/fb/tpKhL
— Takeshi KOMIYAさん (@tk0miya) 2013年4月15日
追記前の元ネタ
といっても、割と単純な方法で、以下をconf.pyに入れるだけ。
import platform 〜中略〜 os_name = platform.system() if os_name.startswith("CYGWIN"): blockdiag_fontpath = 'C:\WINDOWS\Fonts\MEIRYO.TTC' elif os_name == "Darwin": blockdiag_fontpath = '/Library/Fonts/ヒラギノ角ゴ Pro W3.otf' elif os_name == "Linux": blockdiag_fontpath = '/etc/alternatives/fonts-japanese-gothic.ttf' else: sys.exit()
ちなみに、UbuntuだとIPAフォントを入れる方法が一般的っぽいけど、デフォルトの日本語フォントで事足りてる。fontpathを/usr/share/fonts以下の方にしてないのは、シンボリックリンクだからかblockdiagがエラーになるから元ファイルを設定してる。
今回紹介した方法とは別に、各OSの$HOME/.blockdiagrcにフォント設定を書く方法もある。でも、今のところblockdiagを常用してるわけじゃないので、この方法をしばらく使ってる。
0 コメント:
コメントを投稿