#### 9.3.4 Block Arrows ¶

When typing `block` in front of any arrow definition, it will become a block arrow. The label of a block arrow is displayed inside it. In addition to the attributes above, block arrows also have fill and shadow attributes, similar to entities.

All arrowheads explained above for regular arrows are supported, except the `double` and `triple` ones. In general, types with `empty` in them, draws a variant of the arrowhead which is not taller that the body of the block arrow. The ones with `line` draw the same as the ones without. Three additional types ‘`empty_inv`’, ‘`stripes`’ and ‘`triangle_stripes`’ types are supported, as well. See the example below for a detailed list of all types supported for block arrows.

If the arrow has multiple segments and the type of the inner arrowheads is either of `half`, `line`, `empty`, `solid` or `sharp` the block arrow is split into multiple smaller arrows. In this case the arrow label is placed into the leftmost, rightmost or middle one of the smaller arrows, depending on the value of the `text.ident` attribute.

It is also possible to use different arrow symbols leading to different line types, but only if the middle arrow type is such that the arrow is split into multiple contours. If not, the whole arrow is drawn with the line type of the first segment.

Block arrows do not accept the `arrow.skiptype` attribute and are not impacted by setting the `aline.*`, `atext.*` or the `arrow` attribute of their source entity. However, they can be slanted using the `angle` attribute.