iPython ノートブックで plantuml UML ツールを使用するにはどうすればよいですか? UML図は事務処理で頻繁に使用されるため、役立つはずです。
インターネットからグーグルで検索した後、iPython ノートブックで Asymptote を使用するための優れたリファレンスを見つけたので、iPython ノートブック用の plantuml 拡張機能を作成しました。以下は詳細な手順です。
作業ディレクトリ (例: $HOME/workshop) から iPython ノートブックを起動します。
# cd $HOME/workshop # ipython notebook --pylab inline
$HOME/workshop.eg:plantuml.py で拡張スクリプトを作成します。
""" An Plantuml extension for generating UML figures from within ipython notebook. """ import os from IPython.core.magic import magics_class, cell_magic, Magics from IPython.display import Image, SVG @magics_class class Plantuml(Magics): @cell_magic def plantuml(self, line, cell): """Generate and display a figure using Plantuml. Usage: %java -jar plantuml.jar -tsvg filname """ self.filename = line self.code = cell with open(self.filename + ".plt", "w") as file: file.write(self.code) os.system("java -jar plantuml.jar -tsvg %s.plt" % self.filename) return SVG(filename=self.filename+".svg") def load_ipython_extension(ipython): ipython.register_magics(Plantuml)
公式サイトからplantuml.jarを $HOME/workshop にダウンロードします。
新しい iPython ノートブックを作成し、セルの下で実行して拡張機能をロードし、拡張機能を使用します。
%install_ext plantuml.py %reload_ext plantuml
結果をテストするために plantuml セルを作成します。
%%plantuml figure1 @startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response @enduml
その後、plantuml のすべてが iPython ノートブック内で機能します。
いくつかの質問は次のとおりです。
- plantuml コードの構文が間違っている場合、plantuml のエラー出力は iPython ノートブックに表示されません。SVG の生成に失敗した場合はエラー テキストを出力し、そうでない場合は SVG ファイルをノートブックに出力します。
- 拡張機能は SVG 形式を使用しています。PDF 形式または PNG 形式を使用できるかどうかわかりません。TiKz も拡張したいのですが、pdflatex は常に pdf ファイル形式を出力します。最初にサードパーティ ツールを使用して SVG 形式に変換する必要があります。少し時間がかかります。