SphinxでのPlantUMLの利用

2.11. SphinxでのPlantUMLの利用#

Sphinxに sphinxcontrib-plantuml を導入することで、PlantUMLの入力データをsphinx 文書の中に 取り込むことができます。この文書でもこの方法を使っています。

.. uml::

   @startuml
   Alice -> Bob
   @enduml

のように ディレクティブ uml の中にPlantUMLのソースコードを記述します。

umlfigure ディレクティブと同じオプションが使えます。 また PlantUMLのファイル名を uml の引数として与えることも可能です。

.. uml:: _diagram/AliceBob.uml

sphinx の conf.pyには以下のような設定を追加します。 plantuml_jar にはインストールした PlnatUML の jarファイルのパスを指定します。

extensions.append('sphinxcontrib.plantuml')
plantuml_jar = '/opt/src/plantUML/plantuml-1.2024.6.jar'       # GLPv3 version
plantuml_java_options=" ".join([
             "-DPLANTUML_LIMIT_SIZE=8192",
             "-Djava.awt.headless=true", #
])

# sphinxcontrib-plantumlのオプション
plantuml = f"java {plantuml_java_options} -jar {plantuml_jar}"
plantuml_output_format="svg_img",
plantuml_latex_output_format="png",
# plantuml_epstopdf="epstopdf", # TeXLive
# plantuml_cache_path="_plantuml" ,