矢印シェイプ
矢印の形状は、以下の簡単な文法を使用して指定および命名できます。終端記号は太字で、非終端記号はイタリック体で示します。リテラル文字はシングルクォートで囲みます。角括弧 `[` と `]` はオプションの項目を囲みます。縦棒 `|` は選択肢を区切ります。
文法
| arrowname | : | aname [ aname [ aname [ aname ] ] ] |
| aname | : | [ modifiers ] shape |
| modifiers | : | [ 'o' ] [ side ] |
| side | : | 'l' |
| | | 'r' | |
| shape | : | box |
| | | crow | |
| | | curve | |
| | | icurve | |
| | | diamond | |
| | | dot | |
| | | inv | |
| | | none | |
| | | normal | |
| | | tee | |
| | | vee |
基本シェイプ
| シェイプ | 画像 |
|---|---|
box |
![]() |
crow |
![]() |
curve |
![]() |
diamond |
![]() |
dot |
![]() |
icurve |
![]() |
inv |
![]() |
none |
![]() |
normal |
![]() |
tee |
![]() |
vee |
![]() |
シェイプ修飾子
修飾子に関しては
'l'- シェイプをクリップし、エッジの左側の部分のみを残します。
'r'- シェイプをクリップし、エッジの右側の部分のみを残します。
'o'- シェイプの open(塗りつぶされていない)バージョンを使用します。
左右は、矢印がノードに「接触」する点に向かってエッジから見た方向として定義されます。
例として、矢印シェイプ `lteeoldiamond` は `'l' 'tee' 'o' 'l' 'diamond'` として解析され、次のシェイプに対応します
指定された最初の矢印シェイプがノードに最も近接していることに注意してください。後続の矢印シェイプは、指定されている場合、ノードからさらに離れた位置に配置されます。また、`none` のシェイプはスペースを使用するため、たとえば、矢印 `nonenormal` は `normal` と同じではありません。
構文的に有効なすべての修飾子の組み合わせが意味のある、または意味的に有効であるとは限りません。たとえば、`none` ではどの修飾子も意味がありません。次の表は、どの修飾子がどのシェイプで許可されているかを示しています。
| 修飾子 | 'l'/'r' |
o |
|---|---|---|
box |
✅ | ✅ |
crow |
✅ | |
curve |
✅ | |
diamond |
✅ | ✅ |
dot |
✅ | |
icurve |
✅ | |
inv |
✅ | ✅ |
none |
||
normal |
✅ | ✅ |
tee |
✅ | |
vee |
✅ |
これにより、42種類の矢印シェイプが得られます。オプションの2番目、3番目、4番目のシェイプは、それぞれ独立して42種類のいずれかを選択できますが、最後が `none` になることはできません。これは冗長なシェイプを作成するためです。したがって、41 × 42³ + 41 × 42² + 41 × 42 + 42 = 3,111,696 種類の組み合わせがあります。
次の図は、単一の矢印シェイプで可能な42種類の組み合わせを示しています。矢印に接続されたノードは描画されていませんが、エッジの右側に表示されます。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| box | lbox | rbox | obox | olbox | orbox |
![]() |
![]() |
![]() |
|||
| crow | lcrow | rcrow | |||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| diamond | ldiamond | rdiamond | odiamond | oldiamond | ordiamond |
![]() |
![]() |
||||
| dot | odot | ||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| inv | linv | rinv | oinv | olinv | orinv |
![]() |
|||||
| none | |||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| normal | lnormal | rnormal | onormal | olnormal | ornormal |
![]() |
![]() |
![]() |
|||
| tee | ltee | rtee | |||
![]() |
![]() |
![]() |
|||
| vee | lvee | rvee | |||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
| curve | lcurve | rcurve | icurve | licurve | ricurve |




















































