数式

PlantUML では、AsciiMathの構文が使用できます。

🎉 Copied!
@startuml
:<math>int_0^1f(x)dx</math>;
:<math>x^2+y_1+z_12^34</math>;
note right
Try also
<math>d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h</math>
<math>P(y|bb"x") or f(bb"x")+epsilon</math>
end note
@enduml

また、JLaTeXMathの構文も使用できます:

🎉 Copied!
@startuml
:<latex>\int_0^1f(x)dx</latex>;
:<latex>x^2+y_1+z_{12}^{34}</latex>;
note right
Try also
<latex>\dfrac{d}{dx}f(x)=\lim\limits_{h \to 0}\dfrac{f(x+h)-f(x)}{h}</latex>
<latex>P(y|\mathbf{x}) \mbox{ or } f(\mathbf{x})+\epsilon</latex>
end note
@enduml

他の例:

🎉 Copied!
@startuml
Bob -> Alice : Can you solve: <math>ax^2+bx+c=0</math>
Alice --> Bob: <math>x = (-b+-sqrt(b^2-4ac))/(2a)</math>
@enduml

単体で使用する場合

AsciiMath で記述した式を単体で使用したい場合は、 @startmath@endmath を使用します。

🎉 Copied!
@startmath
f(t)=(a_0)/2 + sum_(n=1)^ooa_ncos((npit)/L)+sum_(n=1)^oo b_n\ sin((npit)/L)
@endmath

また、 JLaTeXMath の場合は、 @startlatex@endlatex を使用します。

🎉 Copied!
@startlatex
\sum_{i=0}^{n-1} (a_i + b_i^2)
@endlatex

どのように処理しているのか

これらの数式を表示するのに、PlantUML では 2つの オープンソースプロジェクトを使用します。

  • AsciiMath : AsciiMath を LaTeX へ変換します。
  • JLatexMath LaTeX で書かれた式を表示します。JLaTeXMath は LaTeX のコードを表示するのに最適な Java のライブラリです。

ASCIIMathTeXImg.js は十分に小さいので、PlantUML の標準ディストリビューションに組み込まれています。

JLatexMath は比較的大きいです。 ダウンロードページ からダウンロードし、4つの jar ファイル (batik-all-1.7.jar, jlatexmath-minimal-1.0.3.jar, jlm_cyrillic.jar and jlm_greek.jar) を PlantUML.jar と同じディレクトリに置く必要があります。