Donate258Patreon127


数式

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

@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>
<latex>P(y|\mathbf{x}) \mbox{ or } f(\mathbf{x})+\epsilon</latex>
end note
@enduml

または

@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

WARNING
 This translation need to be updated. 
WARNING

単体で使用する場合

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

@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 を使用します。

@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 の標準ディストリビューション で使用する上で十分に小さいです。(訳者注:そのため、別途インストールする必要はありません。)

PlantUMLは、JavaScriptエンジンを読み込んでJavaScriptコードを実行するために、Java Scripting API (特に、new ScriptEngineManager().getEngineByName("JavaScript");)に依存しています。Java 8にはNashornというJavaScriptエンジンが含まれていますが、これはJava 11で非推奨になりました。

Java 11でAsciiMathを使用する場合、次のような警告が表示されます:

Warning: Nashorn engine is planned to be removed from a future JDK release

NashornはJava 15で削除されました。 次の依存関係を設定すれば、GraalVM JavaScriptエンジンを代わりに使用することができます:

<dependency>
  <groupId>org.graalvm.js</groupId>
  <artifactId>js</artifactId>
  <version>20.2.0</version>
</dependency>
<dependency>
  <groupId>org.graalvm.js</groupId>
  <artifactId>js-scriptengine</artifactId>
  <version>20.2.0</version>
</dependency>

また、Java 11でGraalVM JavaScriptエンジンを使用することもでき、その場合、警告メッセージは表示されません。

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