2013年4月15日月曜日

【追記あり】SphinxのblockdiagでOSごとにフォント設定を変える方法

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',
]

追記前の元ネタ

といっても、割と単純な方法で、以下を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 コメント:

コメントを投稿