Webを見ていたらPlantUMLというものがある事を知りました。UMLなどの図をテキストから生成することができるツールです。このようなツールを前々から探していました。UMLの図はInkscapeなどを使ってGUIで描くことは可能ですが、GUIベースのツールを使って描くと、綺麗に描くことに意識が集中してしまうのではないかという疑念を持っていました。例えて言えば、WordのようなWYSIWYGのツールは、直観的に分かりやすいとは思いますが、使えば使うほど壁に突き当たる感じです。それに対して、LaTeXのようなツールは、取っつきにくいかもしれませんが、些事に煩わされず、文章に意識を集中できると思います。
PlantUMLは、Java実行環境を必要とするようです。僕の個人的な希望として、LaTeXやRなどはFreeBSD上で使えるように環境を整えてきたので、PlantUMLもFreeBSD上で利用可能なようにしました。FreeBSDのpkgで利用できるJREは、幾つかあるようですが、openjdk17-jre-17.0.5+8.1_1をインストールすることにしました。PlantUML本体は、ダウンロードのページにファイルが幾つか置いてあるのですが、どれを選んだらよいのか分かりません。入門のページにもplantuml.jarへのリンクがあり、どういう関係になっているのか分からないのですが、ひとまず入門ページのリンクにあるplantuml.jarを使うことにします。
入門ページの説明のとおりに操作したら、あっさりと動いて、PNGファイルができました。素晴らしい。
これから本格的に使っていこうとすると、出力がPNGなのは気になります。画像を拡大すると画質が劣化するのが気になります。調べてみるとSVGで出力することも出来るようなので、そちらを使おうと思います。また日本語も利用したいところです。試しに日本語を入れたサンプルで確認してみると、確かに日本語は出ているのですが、文字が重なってしまって、とても使い物になりません。
Webを調べてみると「PlantUML Server で生成した SVG が中華フォントになるときの日本語フォント指定」という情報を見つけました。この記事によると「skinparam defaultFontName メイリオ」という指定をして解決したようですが、これでは解決しませんでした。
何が悪いのか分からないのですが、なんとなく日本語フォントのメトリック情報がないから綺麗に出力されないのではないかと想像しました。そこでWebを検索すると「javaを使ったSVG→画像変換の際の日本語化など。」という情報がありました。この記事を参考に調べてみると、僕の使っているFreeBSDには日本語フォントが入っていませんでした。そこでpkgを使って、ja-font-ipaを入れました。そして先程の記事を参考に「skinparam defaultFontName IPAGothic」という指定を入れました。
ここで改めて日本語が使われているサンプルでSVGを生成してみると、ちゃんと日本語も出るし、表示も綺麗になりました。これなら今後も使っていけそうです。