見出し画像

【Asciidoc】ダイアグラム ー PlantUMLのSkinparam ー

今回は「PlantUML」の「Skinparam」について
PDFに反映するため「PDFテンプレート」を利用します。
自分はこの方法を利用して
 「PlantUML」をPDF変換する時の「SVG」文字化けを防いでいます。

取り敢えず、私の記事「【Asciidoc】PDFに変換する ー テンプレートを作る(後半) ー」のテンプレートを改造します。

extends: default-with-font-fallbacks
font:
  catalog:
    merge: true
    ZenGothic:
      normal: ZenKakuGothicNew-Regular.ttf
      bold: ZenKakuGothicNew-Bold.ttf
      italic: ZenMaruGothic-Regular.ttf
      bold_italic: ZenMaruGothic-Bold.ttf
    ZenMincho:
      normal: ZenOldMincho-Regular.ttf
      bold: ZenOldMincho-Bold.ttf
      italic: ZenKurenaido-Regular.ttf
      bold_italic: HenKurenaido-Bold.ttf
    PlemolJP:
      normal: PlemolJPConsoleNF-Regular.ttf
      bold: PlemolJPConsoleNF-Bold.ttf
      italic: PlemolJPConsoleNF-Italic.ttf
      bold_italic: PlemolJPConsoleNF-BoldItalic.ttf
# 下記を追加します
    ZenMaruGothic:
      normal:  ZenMaruGothic-Regular.ttf
      bold: ZenMaruGothic-Bold.ttf
      italic: ZenMaruGothic-Regular.ttf
      bold_italic: ZenMaruGothic-Bold.ttf

丸ゴシックのフォントカタログを追加しました。
「Asciidoc」ファイルのヘッダは

= PlantUML skinparam
:doctype: article
:encoding: utf-8
:lang: ja
:scripts: cjk
:pdf-theme: ./themes/my-theme.yml
:pdf-fontsdir: ./fonts;GEM_FONTS_DIR

のようにテンプレートを読み込み利用する属性を設定します。

まず、フォントを利用してみましょう。
【Asciidoc】ダイアグラム ー クラスとコードと ー」で作成したダイアグラムを変更します。

[plantuml,para1,svg]
--
@startuml
skinparam defaultFontName ZenMaruGothic

actor 夏目漱石


夏目漱石 -> (猫 初期化) : 作成
夏目漱石 -> (猫 名前) : 付ける
夏目漱石 -> (猫 描写) : 表示する

@enduml

--

[plantuml,para2,svg]
--
@startuml
skinparam defaultFontName ZenMincho

actor ダニエルデフォー


ダニエルデフォー -> (人間 初期化) : 作成
ダニエルデフォー -> (ロビンソン・クルーソー 名前) : 付ける
ダニエルデフォー -> (人間 描写) : 表示する

@enduml

--

「skinparam defaultFontName」でPDFテンプレートのフォントカタログ名を指定します。
変換すると

フォントの変更

指定されたフォントが利用されているのを見て取れます。

次に「skinparam monochrome true」を指定します。
白黒印刷が多いので自分は多用しています。

[plantuml,para3,svg]
--

@startuml
skinparam defaultFontName ZenMaruGothic


class 動物 {
  -種族: String
  -名前: String
  +Set種族(種族: String): void
  +Set名前(名前: String): void
  +Show描写(): void
}

作家 -> 動物 : 作成(初期化)
作家 -> 動物 : Set種族(種族名)
作家 -> 動物 : Set名前(氏名)
作家 -> 動物 : Show描写()
@enduml

--


[plantuml,para5,svg]
--

@startuml
skinparam defaultFontName ZenMaruGothic
skinparam monochrome true


class 動物 {
  -種族: String
  -名前: String
  +Set種族(種族: String): void
  +Set名前(名前: String): void
  +Show描写(): void
}

作家 -> 動物 : 作成(初期化)
作家 -> 動物 : Set種族(種族名)
作家 -> 動物 : Set名前(氏名)
作家 -> 動物 : Show描写()
@enduml

--

変換すると

白黒設定

「クラス」の「C」及び「イベント」の「箇条書きマーク」が「白黒」になっていることが見て取れます。

さて、今回は「PlantUML」の「Skinparam」を利用してフォント利用等カスタマイズしてみました。「Asciidoc-PDF」のテンプレートとセットで利用するため、「PlantUML」単体で利用する場合と比べるとフォントの指定方法が少し違います。(ご注意を。)

下記「PlantUML」の公式ページ

にて「Skinparam」の説明がされているので興味の在る方はご一読を。
…ではまた。

当Noteは下記の「AsciiDoc Language Documentation」の文法に従っています。


いいなと思ったら応援しよう!