#### 11.5.1 Defining Arrows and Lines

Arrows (and lines) can be defined between any two blocks using arrow symbols. When you specify a block as start or end of an arrow, its center is targeted. Alternatively, you can specify port for the block (if some other place than its center is needed) or a coordinate instead of a block as start and/or endpoint.

If the arrow (or line) starts (or ends) at a block (or at a coordinate having the same, single block in the specification of both X and Y coordinates) and the arrow starts from the inside of the block, it is clipped to go only to the perimiter of the block. This can be turned off by setting the `routing.clip_block` attribute to `no`.

Currently the usual four arrow symbols are supported: `->` for solid line, `>` for dotted line, `>>` for dashed line and `=>` for double line. They can point backwards so `A->B;` is equivalent to `B<-A;`. Bidirectional arrows (`<->`, `<>`, `<<>>` or `<=>`) or simple lines (`--`, `..`, `++` or `==`) are also valid.

You can specify multiple blocks and coordinates on both sides of the arrow symbol separated by commas. In this case an arrow is added from each block on the left side to each block on the right side (using the same arrow symbol). This is an easy way to quickly add a lot of arrows.

You can chain arrow definitions, so `A->B->C;` is equivalent to `A->B; B->C;`. You can use different arrowheads in a chain and can have more than one block, so `A->B,C<=D;` is equivalent to `A->B; A->C; B<=D; C<=D;`.

You can specify attributes for arrows in square brackets after the arrow specification. Attributes apply to all arrows if you have several blocks, but only for the latest arrow symbol in a chain. For example, `A->B,C [attr1] <=D [attr2];` makes the first set of attributes to apply to the first two arrows (staring from `A`) and the second set of attributes to the second two arrows (starting from `D`).

Note that if the `pedantic` chart option is set to `no` (the default) then any block used to define an arrow will automatically get created if it has not been defined before.